Distributed Computing Models
Distributed Computing Models
1. Architectural Models
2. Interaction Models
3. Fault Models
Distributed Systems Fö 2 1 of 24
Basic Notions
Resources in a distributed system are shared between users. They are normally
encapsulated within one of the computers and can be accessed from other
computers by communication.
Distributed Systems Fö 2 2 of 24
Architectural Models
- Client-server model
- Peer-to-peer
The system is structured as a set of processes, called servers, that offer services
to the users, called clients.
Distributed Systems Fö 2 4 of 24
Client - Server
client
client
server
client server/
client
A server can itself request services from other servers; in this new relation,
the server itself acts like a client.
Distributed Systems Fö 2 5 of 24
Peer-to-Peer
All processes (objects) play similar role:
Processes (objects) interact without particular distinction between clients
and servers.
The pattern of communication depends on the particular application.
A large number of data objects are shared; any individual computer holds
only a small part of the application database.
Processing and communication loads for access to objects are
distributed across many computers and access links.
This is the most general and flexible model.
peer peer
peer peer
Distributed Systems Fö 2 6 of 24
Peer-to-Peer
Some problems with client-server:
Centralisation of service poor scaling
Limitations:
- capacity of server
- bandwidth of network connecting the server
Distributed Systems Fö 2 7 of 24
Peer-to-Peer
Some problems with client-server:
Centralisation of service poor scaling
Limitations:
- capacity of server
- bandwidth of network connecting the server
Distributed Systems Fö 2 8 of 24
Peer-to-Peer
Some problems with client-server:
Centralisation of service poor scaling
Limitations:
- capacity of server
- bandwidth of network connecting the server
Several variations have been proposed, with considering factors such as:
- mobile devices
Distributed Systems Fö 2 10 of 24
Proxy Server
A proxy server provides copies (replications) of resources which are managed by
other servers.
client server
proxy
server
client server
Proxy servers are typically used as caches for web resources. They maintain a
cache of recently visited web pages or other resources.
When a request is issued by a client, the proxy server is first checked, if the
requested object (information item) is available there.
Proxy servers can be located at each client, or can be shared by several clients.
The purpose is to increase performance and availability, by avoiding frequent
accesses to remote servers.
Distributed Systems Fö 2 11 of 24
Mobile Code
Mobile code: code sent from one computer to another and run at the destination.
client server
applet code
Distributed Systems Fö 2 12 of 24
Mobile Agents
Mobile agent: a running program that travels from one computer to another
carrying out a task on someone’s behalf.
Typical tasks:
Collect information
Install/maintain software on computers
Compare prises from various vendors bay visiting their sites.
Distributed Systems Fö 2 13 of 24
Interaction Models
Distributed Systems Fö 2 14 of 24
Synchronous Distributed Systems
Main features:
Distributed Systems Fö 2 15 of 24
Synchronous Distributed Systems
Main features:
Important consequences:
Distributed Systems Fö 2 17 of 24
Asynchronous Distributed Systems
Important consequences:
Distributed Systems Fö 2 18 of 24
Asynchronous Distributed Systems
In practice timeouts are used with asynchronous systems for failure detection.
However, additional measures have to be applied in order to avoid duplicated
messages, duplicated execution of operations, etc.
Distributed Systems Fö 2 19 of 24
Fault Models
What kind of faults can occur and what are their effects?
Omission faults
Arbitrary faults
Timing faults
Distributed Systems Fö 2 20 of 24
Fault Models
What kind of faults can occur and what are their effects?
Omission faults
Arbitrary faults
Timing faults
Fault models are needed in order to build systems with predictable behaviour in
case of faults (systems which are fault tolerant).
A fault tolerant system will function according to the predictions, only as long
as the real faults behave as defined by the “fault model”. Otherwise .......
Distributed Systems Fö 2 21 of 24
Omission Faults (Fail Stop Model)
Distributed Systems Fö 2 22 of 24
Arbitrary (Byzantine) Faults
Distributed Systems Fö 2 23 of 24
Timing Faults
Timing faults can occur in synchronous distributed systems, where time limits are
set to process execution, communications, and clock drifts.
Distributed Systems Fö 2 24 of 24