Chapter 2: System Models Architectural Models Fundamental Models
Models zArchitectural Models ya high-level view of the distribution of functionality between components and the relationships between them. z Fundamental Models yThese are vertical views or slices, representing some key aspects of distributed systems. yEach fundamental model represents a set of issues that must be addressed in the design of distributed systems yInteraction model, failure model, security model
Figure 2.1 Software and hardware service layers in distributed systems
Figure 2.2 Clients invoke individual servers
Figure 2.3 A distributed application based on peer processes
Figure 2.4 A service provided by multiple servers
Figure 2.5 Web proxy server
Figure 2.6 Web applets
Figure 2.7 Thin clients and compute servers Thin Client Application Process Network computer or PC Compute server network
Interaction Models zPerformance of Communication Channels yDelay, Loss zUnsynchronized Clocks zSynchronous Model yExecution time bounded yCommunication delay bounded yClock drift bounded yWait the response zAsynchronous Model
Figure 2.8 Real-time ordering of events
Figure 2.9 Processes and channels
Figure 2.10 Omission and arbitrary failures Class of failureAffectsDescription Fail-stopProcessProcess halts and remains halted. Other processes may detect this state. CrashProcessProcess halts and remains halted. Other processes may not be able to detect this state. OmissionChannelA message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer. Send-omissionProcessA process completes asend, but the message is not put in its outgoing message buffer. Receive-omissionProcessA message is put in a process’s incoming message buffer, but that process does not receive it. Arbitrary (Byzantine) Process or channel Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step.
Figure 2.11 Timing failures Class of FailureAffectsDescription ClockProcessProcess’s local clock exceeds the bounds on its rate of drift from real time. PerformanceProcessProcess exceeds the bounds on the interval between two steps. PerformanceChannelA message’s transmission takes longer than the stated bound.
Failures zProcesses and communication channels can fail. zThe classification of their failures is useful for the analysis of failures of protocols. zComponents that exhibit Byzantine or arbitrary failures may do anything at any time. zTiming failures occur only in synchronous systems. zMost failures in distributed systems are benign (e.g. omission but not Byzantine failures). zA service may mask the failures of the components from which it is constructed, for example, reliable one-to-one communication may be built by masking omission failures.
Figure 2.12 Objects and principals
Figure 2.13 The enemy Communication channel Copy of m Process p q m The enemy m’
Figure 2.14 Secure channels Principal A Secure channel Process p q Principal B