SYSTEM MODELS
• Difficulties and threats for distributed systems
• 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.
• Wide range of system environments: A distributed
system must accommodate heterogeneous hardware,
operating systems and networks.
SYSTEM MODELS
• The networks may differ widely in performance –
wireless networks operate at a fraction of the speed of
local networks.
• Internal problems:
• Non-synchronized clocks, conflicting data updates
and many modes of hardware and software failure
involving the individual system components.
SYSTEM MODELS
• External threats:
• Attacks on data integrity and secrecy, denial of
service attacks.
SYSTEM MODELS
• Types of model in a distributed system
• 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.
SYSTEM MODELS
• Architectural models describe a system in terms of
the computational and communication tasks
performed by its computational elements;
• Fundamental models take an abstract perspective
in order to examine individual aspects of a
distributed system.
SYSTEM MODELS
• There are three important aspects of distributed
systems examined by fundamental models:
• 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.
SYSTEM MODELS
• Physical models
• A physical model is a representation of the underlying
hardware elements of a distributed system that
• abstracts away from specific details of the computer
and networking technologies employed.
• Three generations of distributed systems:
• Early distributed systems: Such systems emerged
in the late 1970s and early 1980s in response to the
emergence of local area networking technology,
usually Ethernet.
SYSTEM MODELS
• These systems typically consisted of between 10
and 100 nodes interconnected by a local area
network,
• with limited Internet connectivity and supported a
small range of services
• such as shared local printers and file servers as
well as email and file transfer across the Internet.
SYSTEM MODELS
• Internet-scale distributed systems: Building on
this foundation, larger-scale distributed systems
started to emerge in the 1990s
• in response to the dramatic growth of the Internet
during this time (for example, the Google search
engine was first launched in 1996).
• In such systems, the underlying physical
infrastructure consists of a physical model, i.e., an
extensible set of nodes interconnected by a
network of networks (the Internet).
SYSTEM MODELS
• Contemporary distributed systems: In these
systems, nodes were typically desktop computers
and therefore relatively
• static (that is, remaining in one physical location for
extended periods),
• discrete (not embedded within other physical entities)
and
• autonomous (to a large extent independent of other
computers in terms of their physical infrastructure).
SYSTEM MODELS
• Architectural models
• The architecture of a system is its structure in terms
of separately specified components and their inter-
relationships.
• The overall goal is to ensure that the structure will
meet present and likely future demands on it.
SYSTEM MODELS
• The architectural styles of distributed systems
include:
• client-server models,
• peer-to-peer approaches,
• distributed objects,
• distributed components,
• distributed event based systems
SYSTEM MODELS
• Architectural elements
• To understand the fundamental building blocks of a
distributed system, it is necessary to consider four
key questions:
• What are the entities that are communicating in the
distributed system?
• How do they communicate, or, more specifically,
what communication paradigm is used?
SYSTEM MODELS
• What (potentially changing) roles and
responsibilities do they have in the overall
architecture?
• How are they mapped on to the physical
distributed infrastructure (what is their
placement)?
SYSTEM MODELS
• Communicating entities
• The first two questions above are absolutely central to
an understanding of distributed systems;
• what is communicating and how those entities
communicate together define a rich design space for
the distributed systems developer to consider.
• From a system perspective, the answer is normally
very clear in that the entities that communicate in a
distributed system are typically processes
SYSTEM MODELS
• Communication paradigms
• Here the attention is turned to how entities
communicate in a distributed system,
• and consider three types of communication
paradigm:
• Inter-process communication;
• remote invocation;
• indirect communication.
SYSTEM MODELS
• Roles and responsibilities
• In a distributed system processes or objects,
components or services,
• including web services– interact with each other to
perform a useful activity,
• for example, to support a chat session.
• In doing so, the processes take on given roles, and
• these roles are fundamental in establishing the overall
architecture to be adopted.
SYSTEM MODELS
• There are two architectural styles stemming from the
role of individual processes:
• Client-server: This is the architecture that is most
often cited when distributed systems are discussed.
SYSTEM MODELS
• In the above figure, processes take on the roles of
being clients or servers.
• In particular, client processes interact with individual
server processes
• in potentially separate host computers in order to
access the shared resources that they manage.
SYSTEM MODELS
• Servers may in turn be clients of other servers, as the
figure indicates.
• For example, a web server is often a client of a local
file server that manages the files in which the web
pages are stored
• Web servers and most other Internet services are
clients of the DNS service, which translates Internet
domain names to network addresses. .
SYSTEM MODELS
• Peer-to-peer: In this architecture all of the
processes involved in a task or activity
• play similar roles, interacting cooperatively as
peers without any distinction between
• client and server processes or the computers on
which they run.
SYSTEM MODELS
• In practical terms, all participating processes run the
same program and offer the same set of interfaces to
each other.
• While the client-server model offers a direct and
relatively simple approach to the sharing of data and
other resources, it scales poorly.
SYSTEM MODELS
• Peer-to-peer architecture
SYSTEM MODELS
• A service provided by multiple servers
SYSTEM MODELS
• Placement
• Placement is crucial in terms of determining the
properties of the distributed system,
• most obviously with regard to performance but also
to other aspects, such as reliability and security.
• The question of where to place a given client or
server in terms of machines and processes within
machines is a matter of careful design.
SYSTEM MODELS
• Placement needs to take into account the patterns of
• communication between entities,
• the reliability of given machines and their current
loading,
• the quality of communication between different
machines and so on.
SYSTEM MODELS
• The following are placement strategies:
• mapping of services to multiple servers: Services
may be implemented as several server processes in
separate host computers interacting as necessary to
provide a service to client processes ;
• Caching: A cache is a store of recently used data
objects that is closer to one client or a particular set
of clients than the objects themselves. ;
SYSTEM MODELS
• mobile code: Applets are a well-known and widely
used example of mobile code.
• The code is downloaded to the browser and runs
there.
• An advantage of running the downloaded code
locally is that it can give good interactive response
• since it does not suffer from the delays or
variability of bandwidth associated with network
communication. ;
SYSTEM MODELS
• mobile agents: A mobile agent is a running
program (including both code and data) that travels
• from one computer to another in a network
carrying out a task on someone’s behalf,
• such as collecting information, and eventually
returning with the results.
SYSTEM MODELS
• Architectural patterns
• Layering: The concept of layering is a familiar
one and is closely related to abstraction.
• In a layered approach, a complex system is
partitioned into a number of layers,
• with a given layer making use of the services
offered by the layer below.
• In terms of distributed systems, this equates to a
vertical organization of services into service layers.
SYSTEM MODELS
SYSTEM MODELS
• Tiered architecture
• Tiered architectures are complementary to
layering.
• Whereas layering deals with the vertical
organization of services into layers of abstraction,
• tiering is a technique to organize functionality of a
given layer and
• place this functionality into appropriate servers
and, as a secondary consideration, on to physical
nodes.
SYSTEM MODELS
• Two-tier architecture
SYSTEM MODELS
• Three-tier architecture
SYSTEM MODELS
• This standard style of interaction constrains the
development of web applications in several
significant ways:
• Once the browser has issued an HTTP request for a
new web page,
• the user is unable to interact with the page until the
new HTML content is received and presented by
the browser.
SYSTEM MODELS
• In order to update even a small part of the current
page with additional data from the server,
• an entire new page must be requested and
displayed.
• This results in a delayed response to the user,
additional processing at both the client and the
server and redundant network traffic.
SYSTEM MODELS
• Thin clients
• This trend has given rise to interest in the concept
of a thin client,
• enabling access to sophisticated networked
services, provided for example by a cloud solution,
• with few assumptions or demands on the client
device.
• Thin client refers to a software layer that supports
a window-based user interface that is local to the
user while executing application programs on a
remote computer.
SYSTEM MODELS
• Categorization of middleware
• distributed objects,
• distributed components,
• publish subscribe systems,
• message queues,
• web services, and peer-to-peer
SYSTEM MODELS
• Limitations of middleware
• Much has been achieved in simplifying the
programming of distributed systems through the
development of middleware support,
• but some aspects of the dependability of systems
require support at the application level.
• But consider the problem of a user who attempts to
transfer a very large file over a potentially unreliable
network.
SYSTEM MODELS
• TCP provides some error detection and correction,
but it cannot recover from major network
interruptions.
• Therefore the mail transfer service adds another level
of fault tolerance, maintaining a record of progress
• and resuming transmission using a new TCP
connection if the original one breaks.
SYSTEM MODELS
• Fundamental models
• In general, fundamental model should contain only
the essential ingredients needed to consider
understanding and reasoning about some aspects of a
system’s behavior.
• The purpose of such a model is:
• To make explicit all the relevant assumptions about
the systems to be modeled.
• To make generalizations concerning what is
possible or impossible, given those assumptions.
SYSTEM MODELS
• Interaction model
• The discussion of system architectures indicates that
fundamentally distributed systems are composed of
many processes, interacting in complex ways.
• For example:
• Multiple server processes may cooperate with one
another to provide a service
• A set of peer processes may cooperate with one
another to achieve a common goal
SYSTEM MODELS
• There are two significant factors affecting interacting
processes in a distributed system:
• Communication performance is often a limiting
characteristic.
• It is impossible to maintain a single global notion
of time.
SYSTEM MODELS
• Event ordering
• In many cases, the interest is in knowing whether an
event (sending or receiving a message) at one process
occurred before, after or
• concurrently with another event at another process.
• For example, consider the following set of exchanges
between a group of email users, X, Y, Z and A, on a
mailing list:
SYSTEM MODELS
• User X sends a message with the subject Meeting.
• Users Y and Z reply by sending a message with the
subject Re: Meeting.
SYSTEM MODELS
• In real time, X’s message is sent first, and Y reads it
and replies;
• Z then reads both X’s message and Y’s reply and
sends another reply, which references both X’s and
Y’s messages.
• But due to the independent delays in message
delivery. For example, user A might see:
SYSTEM MODELS
• Failure model
• In a distributed system both processes and
communication channels may fail – that is, they may
depart from what is considered to be correct or
desirable behavior:
• Omission failures,
• Arbitrary failures,
• Timing failures,
• Masking failures
SYSTEM MODELS
• Reliability of one-to-one communication
• The term reliable communication is defined in terms
of validity and integrity as follows:
– Validity: Any message in the outgoing message
buffer is eventually delivered to the incoming
message buffer.
– Integrity: The message received is identical to one
sent, and no messages are delivered twice.
SYSTEM MODELS
• Security model
• Architectural model provides the basis for security
model:
• the security of a distributed system can be
achieved by securing the processes and
• the channels used for their interactions and by
• protecting the objects that they encapsulate against
unauthorized access.
SYSTEM MODELS
• Protection is described in terms of objects,
although the concepts apply equally well
• to resources of all types.
SYSTEM MODELS
• The enemy
• To model security threats, postulate/identify an
enemy that is
• capable of sending any message to any process and
reading or copying any message sent between a pair
of processes.
• Such attacks can be made simply by using a computer
connected to a network to run a program that reads
network messages addressed to other computers on
the network,
SYSTEM MODELS
• or a program that generates messages that
make false requests to services, purporting to
come from authorized users.
SYSTEM MODELS
• Defeating security threats
• Here, the main techniques are introduced on which
secure systems are based:
• Cryptography and shared secrets,
• Authentication, and
• Secure channels
Assignment
1. Discuss difficulties and threats for distributed systems.
2. Discuss three generations of distributed systems.
3. Define and explain Architectural models of a distributed system.
4. Describe Communicating entities and Communication paradigms of a
distributed system.
5. Define Key techniques for indirect communication in Communication
paradigms of distributed systems.
6. Using a diagram, discuss two architectural styles that stem from the
role of individual processes.
7. Explain 4 placement strategies to alter the characteristics of a given
design in the distributed system.
8. Discuss the Architectural patterns in the DS and the task given to
middleware .
9. Explain two significant factors affecting interacting processes in a
distributed system.
10. Discuss different failure model types.
11. Discuss the main techniques introduced to secure distributed systems.