| ## Why Distributed Computing? By distributed computing we mean computing that involves the cooperation of two or more machines communicating over a network (see the following figure). The machines participating in the system can range from personal computers to supercomputers; the network can connect machines in one building or on different continents. A Potential DCE Network Why is enabling this type of cooperative computing important? One reason is historical: computing resources that used to operate independently now need to work together. For example, consider an office that acquired personal workstations for individual use. After a while, there were many workstations in the office building, and the users recognized that it would be desirable to share data and resources among the individual computers. They accomplished this by connecting the workstations over a network. A second reason is functional: if there is special-function hardware or software available over the network, then that functionality does not have to be duplicated on every computer system (or node) that needs to access the special-purpose resource. For example, an organization could make a typesetting service available over the network, allowing users throughout the organization to submit their jobs to be typeset. A third reason is economical: it may be more cost-effective to have many small computers working together than one large computer of equivalent power. In addition, having many units connected to a network is the more flexible configuration; if more resources are needed, another unit can be added in place, rather than bringing the whole system down and replacing it with an upgraded one. Finally, a distributed system can be more reliable and available than a centralized system. This is a result of the ability to replicate both data and functionality. For example, when a given file is copied on two different machines, then even if one machine is unavailable, the file can still be accessed on the other machine. Likewise, if several printers are attached to a network, then even if an administrator takes one printer offline for maintenance, users can still print their files using an alternate printer. Distributed computing inherently brings with it not only potential advantages, but also new problems. Examples are keeping multiple copies of data consistent, and keeping the clocks on different machines in the system synchronized. A system that provides distributed computing support must address these new issues. More: Why DCE? Potential Users of DCE ###