Chapter 2 - Architecture
Chapter 2 - Architecture
03/31/24 1
Course Outline
Introduction
ArchitecturalStyles
System Architectures
03/31/24 2
Introduction
Distributed System’s architecture defines how the
various components and nodes in the system are
connected, communicate, and collaborate to achieve
a common goal.
The architecture of a distributed system
03/31/24 3
Introduction
The organization of distributed systems is mostly
about the software components that constitute the
system.
These software architectures tell us how the
03/31/24 4
Common types of architecture are
1. Centralized architectures ( traditional ) in
which a single server implements most of the
software components (and thus functionality),
while remote clients can access that server
using simple communication means.
2. Decentralized architectures in which machines
more or less play equal roles, as well as hybrid
organizations.
03/31/24 5
The logical organization of distributed systems
into software components, also referred to as
software architecture.
Such a style is formulated in terms of
03/31/24 6
A connector, which is generally described as a
mechanism that mediates communication,
coordination, or cooperation among components.
Basic architectural styles for distributed systems
are:
1. Layered architectures
2. Object-based architectures
3. Data-centered architectures
4. Event-based architectures
03/31/24 7
Components are organized in a layered
fashion.
Widely adopted by the networking community.
Requests go down the hierarchy where as the
03/31/24 8
Each object considered as a component, and these
components are connected through a remote
(procedure call) mechanism.
Matches the client-server system architecture.
The layered and object based architectures still form the
most important styles for large software systems.
03/31/24 9
Processes communicate through a common (passive
or active) repository.
Web-based distributed systems are largely data-
centric: processes communicate through the use of
shared Web-based data services.
03/31/24 10
Communicate through the propagation of events,
which optionally also carry data.
Event propagation has generally been associated
with what are known as publish/subscribe systems.
The basic idea is that processes publish events after
middleware ensures that only those processes that
subscribed to those events will receive them.
The main advantage of event-based systems is that
processes are loosely coupled.
03/31/24 11
This is the result of combination of event-based
and data-centered architectures.
The essence of shared data spaces is that
processes are now also decoupled in time: they
need not both be active when communication
takes place.
They all aim at achieving (at a reasonable level)
distribution transparency.
There is no single solution that will meet the
requirements for all possible distributed
applications, researchers have abandoned the idea
that a single distributed system can be used to
cover 90% of all possible cases.
03/31/24 12
Deciding on software components, their
interaction, and their placement leads to
an instance of a software architecture,
also called a system architecture.
Common types are:
1. Centralized organizations
2. Decentralized organizations
3. Hybrid organizations
03/31/24 13
Helps us to understand and manage the complexity
of distributed systems.
Common example in this organization is client-
server model.
In the basic client-server model, processes in a
distributed system are divided into two (possibly
overlapping) groups.
1. A server is a process implementing a specific
service, for example, a file system service or a
database service.
2. A client is a process that requests a service from a
server by sending it a request and subsequently
waiting for the server's reply.
03/31/24 14
General interaction between a client and a server also
known as request-reply behaviour.
03/31/24 15
There is often no clear distinction b/n client and
server. For example, a server for a distributed
database may continuously act as a client because it
is forwarding requests to different file servers
responsible for implementing the database tables.
Many people have advocated a distinction between the
following three levels, essentially following the layered
architectural style we discussed previously:
1. The user-interface level:contains interface with the user
2. The processing level: contains the applications
3. The data level: manages the actual data
03/31/24 16
The simplified example of their organization is an
Internet search engine into three different layers.
03/31/24 17
The simplest organization is to have only two types of machines:
1. A client machine containing only the programs implementing
(part of) the user-interface level.
2. A server machine containing the rest, that is the programs
implementing the processing and data level.
We refer to this type of distribution as vertical distribution. The
characteristic feature of vertical distribution is that it is achieved by
placing logically different components on different machines.
03/31/24 18
Server may sometimes need to act as a client,
A typical example of where a three-tiered architecture is used in
transaction processing.
A separate process, called the transaction processing monitor,
coordinates all transactions across possibly different data
servers.
03/31/24 19
we refer to as horizontal distribution w/c is
known as peer-to-peer systems.
Interaction between processes is symmetric:
each process will act as a client and a server at
the same time (which is also referred to as
acting as a servent).
A process cannot communicate directly with an
arbitrary other process, but is required to send
messages through the available communication
channels.
Two types of overlay networks exist: those that
are structured and those that are Unstructured
Peer-to- Peer Architectures.
03/31/24 20
Structured Peer-to-Peer Architectures
Overlay network is constructed using a
deterministic procedure.
Organize the processes through a distributed hash
table (DHT).
In a DHT -based system, data items are assigned a
random key from a large identifier space, such as a
128-bit or160-bit identifier.
03/31/24 21
Largely rely on randomized algorithms for constructing an
overlay network.
Data items are assumed to be randomly placed on nodes.
As a consequence, when a node needs to locate a specific data
item, the only thing it can effectively do is flood the network with
a search query.
One of the goals is to construct an overlay network that
resembles a random graph.
The basic model is that each node maintains a list of neighbours,
where, ideally, each of these neighbours represents a randomly
chosen live node from the current set of nodes.
03/31/24 22
One key observation is that by carefully exchanging
and selecting entries from partial views, it is
possible to construct and maintain specific
topologies of overlay networks.
This topology management is achieved by adopting
a two layered approach
03/31/24 23
Nodes such as those maintaining an
index or acting as a broker are generally
referred to as superpeers.
Organized in a peer-to-peer network,
leading to a hierarchical organization.
03/31/24 24
Distributed systems in which client-server
solutions are combined with decentralized
architectures.
Edge-Server Systems
Servers are placed "at the edge" of the network
formed by enterprise networks and the actual
Internet, for example, as provided by an Internet
Service Provider (ISP).
03/31/24 25
Traditional client-server scheme is
deployed.
Once a node has joined the system, it
03/31/24 26
Middleware systems actually follow a specific
architectural style.
Benefit that designing applications may become
simpler.
Interceptors
Conceptually, an interceptor is nothing but a
software construct that will break the usual flow
of control and allow other application code to be
executed.
The basic idea is simple: an object A can call a
03/31/24 27
The need for adaptation comes from the fact that
the environment in which distributed applications
are executed changes continuously to consider
the construction of adaptive software.
Discussion
This approach is seen to work better when
discussing the physical organization of
distributed systems when decisions are
taken about where components are placed.
03/31/24 28
03/31/24 29
Questions?
03/31/24 30