Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Chapter 2: Coulouris +
2/22/2018 1
This chapter provides an
explanation of three important
and complementary ways in
which the design of distributed
systems can usefully be described
and discussed:
2/22/2018 2
Physical models
consider the types of computers and devices that
constitute a system
and their interconnectivity
Architectural models describe a system in terms of
the computational and communication tasks
performed by its computational elements;
Client-server
and peer-to-peer are two of the most commonly
used forms of architectural model for distributed
systems.
Fundamental models take an abstract perspective in
order to describe solutions to individual issues faced
by most distributed systems.
2/22/2018 3
System Models
Fundamental models:
Interaction model deals with
communication details among the
components and their timing and
performance details.
Failure model gives specification of
faults and defines reliable
communication and correct processes.
Security model specifies possible
threats and defines the concept of
secure channels.
2/22/2018 4
Physical models
2/22/2018 5
1. Baseline physical model: A distributed system is
one in which hardware or software components
located at networked computers communicate and
coordinate their actions only by passing messages.
2. Early distributed systems: Such systems emerged in
early 1980s in response to the emergence of LAN
Ethernet
3. Internet-scale distributed systems: Building on this
foundation, larger-scale distributed systems
emerged in the 1990s in response to the dramatic
growth of the Internet during this time
4. Contemporary distributed systems:
mobile computing has led to physical models where nodes
such as laptops or smart phones may move from location to
location in a distributed system
ubiquitous computing has led to a move from discrete nodes
to architectures where computers are embedded in everyday
objects and in the surrounding environment (for example, in
washing machines
2/22/2018 6
Architectural Model
Concerned with placement of its parts and
relationship among them.
Example: client-server model, peer-to-peer model
Abstracts the functions of the individual
components.
Defines patterns for distribution of data and
workload.
Defines patterns of communication among the
components.
Example: Definition of server process, client
process and peer process and protocols for
communication among processes; definition
client/server model and its variations.
2/22/2018 7
Software and hardware service
layers in distributed systems
Middlew are
Operating sy stem
Platform
2/22/2018 8
platform
2/22/2018 10
System Architectures
The main types of architectural model are
Client-server model
Peer to Peer
2/22/2018 11
Client-server model
The system is structured as a set of processes, called
servers, that offer services to the users, called clients.
The client-server model is usually based on a simple
request/reply protocol, implemented with send/receive
primitives or using remote procedure calls (RPC) or
remote method invocation (RMI)
Client sends a request (invocation) message to the
server asking for some service.
Server does the work and returns a result (e.g. the data
requested) or an error code if the work could not be
performed.
A server can itself request services from other servers;
thus, in this new relation, the server itself acts like a
client.
2/22/2018 12
Clients invoke individual servers
result
Server
result EX: 1. File server,
2. Web crawler
EX: Web server
Client
Key:
Proc es s: Computer:
EX: browser,
web client
2/22/2018 13
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.
2/22/2018 14
2/22/2018 15
Some problems with client-server:
• Centralisation of service poor scaling
- Limitations:
capacity of server
bandwidth of network connecting the server
Peer-to-Peer tries to solve some of the above
Problems with peer-to-peer:
• High complexity due to the need to cleverly place
individual objects to retrieve the objects and to maintain
potentially large number of replicas.
2/22/2018 16
Variations of the Basic Models
Server
Client
Server
Client
Server
Client Web
s erv er
Client Web
Applet code s erv er
Web
Client Applet s erv er
• Performance issues
• Use of caching and replication
• Dependability issues
2/22/2018 26
Performance issues
Responsiveness
–Users of interactive aplication require a fast and consistent
response to interaction.
Interactive apps require a fast and consistent response.
The speed at which the response is obtained is determined not
just by the server and network load and performance, but also
by the delays in all the software components involved, i.e, the
operating system, the middleware services (such as remote
method invocation support like naming) and the application
code itself providing the service.
Throughput
–This is the rate at which computational work is done
(number of users serviced per second) and is affected by the
processing speeds and at clients and servers and by data
transfer rates.
Quality of Service
• Quality of the service being provided depends on the
following non-functional properties of the system:
reliability,security, performance, and adaptability (or
extensibility) to meet changing system requirements.
• The performance aspect of QoS was traditionally defined in
terms of responsiveness and computational throughput,
but for applications handling time-critical data, performance
has been redefined in terms of the ability to meet
timeliness guarantees.
• In many cases, QoS refers to the ability of the system to meet
such deadlines.
• Its achievement depends upon the availability of the
necessary computing and network resources at the
appropriate times.
• 2/22/2018
This includes being able to reserve critical resources. 29
Design requirements for distributed architectures
2/22/2018 34
The Interaction Model
Omission Failures
These refer to cases when a process or communication
channel fails to perform actions that it is supposed to.
Process Omission Failures:
1) Process Crash: The main omission failure of a process
is to crash, i.e., the process has halted and it will not
execute any more. Other processes may or may not
be able to detect this state. A process crash is
detected via timeouts. In an asynchronous system, a
timeout can only indicate that a process is not
responding – it may have crashed or may be slow, or
the message may not have arrived yet.
2) Process Fail-Stop: A process halts and remains
halted. Other processes may detect this state. This
can be detected in synchronous systems when
timeouts are used to detect when other processes fail to
respond and messages are guaranteed to be delivered
2/22/2018 39
2/22/2018 40
The Failure Model
2/22/2018 42
The Failure Model
The Failure Model
2/22/2018 45