MSCS 237 Communication issues 1 What is a

  • Slides: 20
Download presentation
MSCS 237 Communication issues 1

MSCS 237 Communication issues 1

What is a Distributed System? Colouris et al. (2001): Is a system in which

What is a Distributed System? Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate and coordinate their actions only by message passing. Emmerich(1997): A distributed system consists of a collection of autonomous computers, connected through a network and distribution middleware, which enables computers to coordinate their activities and to share the resources of the system, so that users perceive the system as a single, integrated computing facility. Sinha (1997): is a collection of processors interconnected by a communication network in which each processor has its own local memory and others peripherals, and the communication between two processors of the system takes place by message passing over the communication network. Points over the local and remote 2 resources.

Centralized versus Distributed System • Centralised – One component with nonautonomous parts – Component

Centralized versus Distributed System • Centralised – One component with nonautonomous parts – Component shared by users all the time – All resources accessible – Software runs in a single process – Single Point of control – Single Point of failure • Distributed – Multiple autonomous components – Components are not shared by all users – Resources may not be accessible – Software runs in concurrent processes on different processors – Multiple Points of control – Multiple Points of failure 3

Common Characteristics • Resource Sharing • Openness • Concurrency • Scalability • Fault Tolerance

Common Characteristics • Resource Sharing • Openness • Concurrency • Scalability • Fault Tolerance • Transparency 4

Transparency Distributed systems should be perceived by users and application programmers as a whole

Transparency Distributed systems should be perceived by users and application programmers as a whole Scalability Transparency Performance Transparency Failure Transparency Migration Transparency Replication Transparency Concurrency Transparency Access Transparency Location Transparency 5

Transparencies • Access transparency: enables local and remote resources to be accessed using identical

Transparencies • Access transparency: enables local and remote resources to be accessed using identical operations. • Location transparency: enables resources to be accessed without knowledge of their location. • Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them. • Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers. 6

Transparencies(cont) • Failure transparency: enables the concealment of faults, allowing users and application programs

Transparencies(cont) • Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components. • Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs. • Performance transparency: allows the system to be reconfigured to improve performance as loads vary. • Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms. 7

Software and hardware service layers in distributed systems Applications, services Middleware Operating system Platform

Software and hardware service layers in distributed systems Applications, services Middleware Operating system Platform Computer and network hardware 8

A working Model of a distributed system Component 1 . . . Componentn Component

A working Model of a distributed system Component 1 . . . Componentn Component 1 Middleware. . . Componentn Component 1 . . . Componentn Middleware. . . Componentn Network op. system Middleware Computer hardware Network op. system Computer hardware Host 1 Network op. system Host 2 Hostn-1 Computer hardware Network Hostn © W. Emmerich, 2000 9

Process types in a distributed system • Client: is a triggering process. Clients make

Process types in a distributed system • Client: is a triggering process. Clients make requests that trigger reactions from server. • Server: is a reactive process. A server waits for requests to be made, then reacts to them. • Peer: is a collection of identical processes that interact to provide a service o resolve a problem. • There are several process-interaction patterns on distributed system. • Each interaction paradigm is an example or model of a communication pattern and associated programming technique that can be used to solve a variety of interesting distributed programming techniques. 10

Clients invoke individual servers 11

Clients invoke individual servers 11

A service provided by multiple servers 12

A service provided by multiple servers 12

Web proxy server 13

Web proxy server 13

A distributed application based on peer processes 14

A distributed application based on peer processes 14

Web applets 15

Web applets 15

Thin clients and compute servers Compute server Network computer or PC Thin Client network

Thin clients and compute servers Compute server Network computer or PC Thin Client network Application Process 16

Spontaneous networking in a hotel Music service gateway Alarm service Internet Hotel wireless network

Spontaneous networking in a hotel Music service gateway Alarm service Internet Hotel wireless network Discovery service Camera TV/PC Laptop PDA Guests devices 17

Processes and channels 18

Processes and channels 18

Omission and arbitrary failures Class of failure Fail-stop Affects Description Process halts and remains

Omission and arbitrary failures Class of failure Fail-stop Affects Description Process halts and remains halted. Other processes may detect this state. Process halts and remains halted. Other processes may Crash Process not be able to detect this state. Omission Channel A message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer. Send-omission Process A process completes a send, but the message is not put in its outgoing message buffer. Receive-omission Process A message is put in a process’s incoming message buffer, but that process does not receive it. Arbitrary Process or Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, (Byzantine) channel commit omissions; a process may stop or take an incorrect step. 19

Timing failures Class of Failure Affects Description Clock Process Performance Channel Process’s local clock

Timing failures Class of Failure Affects Description Clock Process Performance Channel Process’s local clock exceeds the bounds on its rate of drift from real time. Process exceeds the bounds on the interval between two steps. A message’s transmission takes longer than the stated bound. 20