Distributed Systems: Concepts and Design
To be aware of the characteristics of concurrency, independent failure of components and lack of a global clock, which necessarily arise in a distributed system consisting of components that coordinate their actions only by passing messages.
To place distributed systems in a realistic context through examples: the Internet, an intranet and mobile computing.
To motivate the benefits of resource sharing and to introduce the Web as an example.
To gain a good understanding of the challenges related to heterogeneity, openness, security, scalability, failure handling, concurrency and transparency as they apply to distributed systems.
A distributed system is defined as one in which components at networked computers communicate and coordinate their actions only by passing messages. This definition allows for concurrent execution of programs, but prevents the possibility of a global clock and means that components can fail independently of one another.
The Internet is a very large distributed system that allows users throughout the world to make use of its services.
An intranet is a part of the Internet that is separately administered and uses a firewall to enforce its own local security policies. Users in an intranet share data by means of file services.
Distributed systems techniques are equally applicable to mobile computing (involving laptops, PDAs and wearable computing devices) as well as ubiquitous computing (involving the small computers embedded in appliances).
Shared resources are managed by server processes, which provide client processes with access to those resources via a well-defined set of operations. In a distributed system written in an object-oriented language, resources may be encapsulated as objects whose methods are invoked by client objects.
Scalability of services is a key aspect. The Web illustrates some of the approaches to addressing it (e.g. the use of hierarchic naming, partitioned data, caching and replication).
Transparency hides the separation of components. Eight forms of transparency are defined on page 23.
Although almost all students are regular users of the Internet services, they may not have thought about how the services are accessed, nor may they be aware of the engineering involved in making for example, the Web a useful application.
There is a possible confusion between the Web and the Internet. This point should be clarified in Section 1.2.1.
Section 1.2 can be used to illustrate the range of distributed systems. It would be worth pointing out the scale of the Internet (e.g. use Figures 1.5 and 1.6). Show that intranets contain the local representatives of Internet services (e.g. web servers) as well as local data sharing services. The section on mobile and distributed computing can be used to illustrate the future possibilities of wireless networks (covered in Chapter 3) and of the requirements for discovery services.
The web can be presented as an example of resource sharing. It is worth spending some time on the structure of URLs and emphasizing their dependence on DNS. Exercises 1.5-6 could be useful here.
Exercises 1.7-13 are intended to address some aspects of each of the challenges in Section 1.4. They could be used as a basis for class discussion.
The transparencies listed on page 23 are discussed in the requirements for file systems and in relation to NFS in Chapter 8. Transparency is also discussed in relation to RMI in Chapter 5 and to replication in Chapter 14.