Systems that are intended for use in real-world environments should be designed to function correctly in the widest possible range of circumstances and in the face of many possible difficulties and threats.
Difficulties and threats for distributed systems • Here are some of the problems that the designers of distributed systems face.
Widely varying modes of use: The component parts of systems are subject to wide variations in workload – for example, some web pages are accessed several million times a day. Some parts of a system may be disconnected, or poorly connected some of the time – for example when mobile computers are included in a system. Some applications have special requirements for high communication bandwidth and low latency – for example, multimedia applications. Wide range of system environments: A distributed system must accommodate heterogeneous hardware, operating systems and networks. The networks may differ widely in performance – wireless networks operate at a fraction of the speed of local networks. Systems of widely differing scales, ranging from tens of computers to millions of computers, must be supported.
Internal problems: Non-synchronized clocks, conflicting data updates and many modes of hardware and software failure involving the individual system components.
External threats: Attacks on data integrity and secrecy, denial of service attacks. The discussion and examples of Chapter 1 suggest that distributed systems of different types share important underlying properties and give rise to common design problems. In thischapter we show how the properties and design issues of distributed systems can be captured and discussed through the use of descriptive models. Each type ofmodel is intended to provide an abstract, simplified but consistent description of a
relevant aspect of distributed system design:
Physical models are the most explicit way in which to describe a system; they capture the hardware composition of a system in terms of the computers (and other devices, such as mobile phones) and their interconnecting networks.
Architectural models describe a system in terms of the computational and communication tasks performed by its computational elements; the computational elements being individual computers or aggregates of them supported by appropriate network interconnections.
Fundamental models take an abstract perspective in order to examine individual aspects of a distributed system. In this chapter, we introduce fundamental models that examine three important aspects of distributed systems: interaction models, which
consider the structure and sequencing of the communication between the elements of the system; failure models, which consider the ways in which a system may fail to
operate correctly and; security models, which consider how the system is protected against attempts to interfere with its correct operation or to steal its data.