ABSTRACT

A distributed program is one that runs on multiple computers. These types of programs are concurrent because parts of them are run on physically different CPUs; therefore, these systems can often be modeled as components and can use the techniques described in the text. Distributed programming has evolved from very simple mechanisms using technologies such as Unit-to-UNIX Copy (UUCP) and sockets into techniques that take advantage of the higher-level languages in which the programs are written. Perhaps the best example of this is Java

remote method invocation

(RMI), which uses the Java interfaces and exceptions to create distributed programs that almost completely hide the complexity of a distributed program.