Distributed Systems Principles and Paradigms: Second Edition Andrew S. Tanenbaum Maarten Van Steen
Distributed Systems Principles and Paradigms: Second Edition Andrew S. Tanenbaum Maarten Van Steen
Chapter 1
Introduction
Figure 1-1. A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers each application the same interface.
Problems
Eavesdropping or intrusion on communication Tracking of communication to build a profile
Degree of Transparency
Completing hiding the distribution aspects from users is not always a good idea in a distributed system.
Attempting to mask a server failure before trying another one may slow down the system Expecting several replicas to be always consistent could degrade performance unacceptably For mobile and embedded devices, it may be better to expose distribution rather than trying to hide it Signal transmission is limited by the speed of light as well as the speed of intermediate switches.
Openness
An open distributed system offers services according to standard rules that describe the syntax and semantics of those services.
Services are described via interfaces, which are often describe via an Interface Definition Language (IDL). Interfaces only specify syntax so semantics is left to the ambiguities of natural language. Interoperability, Portability, Extensibility
Separating policy from mechanism
Scalability
Scalability can be measured against three dimensions.
Size: be able to easily add more users and resources to a system Geography: be able to handle users and resources that are far apart Administrative: be able to manage even if it spans independent administrative organizations
Distributed Approach
Characteristics of decentralized algorithms: No machine has complete information about the system state Machines make decisions based only on local information Failure of one machine does not ruin the algorithm There is no implicit assumption that a global clock exists
Scaling Techniques
Hiding communication latencies: Examples would be asynchronous communication as well as pushing code down to clients (e.g. Java applets and Javascript)
Distribution: Taking a component, splitting into smaller parts, and subsequently spreading them across the system Replication: Replicating components increases availability, helps balance the load leading to better performance, helps hide latencies for geographically distributed systems. Caching is a special form of replication.
Figure 1-4. The difference between letting (a) a server or (b) a client check forms as they are being filled.
Figure 1-5. An example of dividing the DNS name space into zones.
Figure 1-11. Middleware as a communication facilitator in enterprise application integration. RPC, RMI and MOM are examples.
Figure 1-12. Monitoring a person in a pervasive electronic health care system, using (a) a local hub or (b) a continuous wireless connection.
Figure 1-13. Organizing a sensor network database, while storing and processing data (a) only at the operators site or
Figure 1-13. Organizing a sensor network database, while storing and processing data or (b) only at the sensors.