Chapter Two: System Models
Chapter Two: System Models
Chapter Two: System Models
SYSTEM MODELS
1
The organization of distributed systems is mostly about
the software components that constitute the system.
These software architectures tell us how the various
software components are to be organized and how they
should interact.
The actual realization of a distributed system requires that
we instantiate and place software components on real
machines.
2
Architectural Styles
It refers to the logical organization of distributed systems
into software components, also referred to as software
architecture.
Architectural style is formulated in terms of components,
the way that components are connected to each other, the
data exchanged between components and finally how
these elements are jointly configured into a system.
A somewhat more difficult concept to grasp is that of a
connector; which is generally described as a mechanism
that mediates communication, coordination, or
cooperation among components
3
Using components and connectors, we can come to
various configurations, which is classified into
architectural styles
Several architectural styles for a distributed system
are:
Layered architecture
Object-based architecture
Data-centered architecture
Event-based architecture
4
1. Layered architecture
The basic idea for the layered style is that components
are organized in a layered fashion where a component at
layer Li is allowed to call components at the underlying
layer Li-1, but not the other way around
This model has been widely adopted by the networking
community (i.e. network layer)
key observation in this architecture
is that control generally flows from
layer to layer; requests go down the
hierarchy
whereas the results flow upward.
5
2. Object-based architecture
In this architecture, each object corresponds to a
component and these components are connected through
a (remote) procedure call mechanism. It matches the
client-server system architecture.
6
3. Data centered architecture
Data centered architectures evolve around the idea that
processes communicate through a common repository
like shared distributed file system.
For example, web based distributed systems processes
communicate through the use of shared Web based data
services.
data
7
4. Event based architecture
processes essentially communicate through the
propagation of events.
event propagation has generally been associated with what
are known as publish/subscribe systems.
The basic idea is that processes publish events after which
the 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.
8
Event-based architectures can be combined with data
centered architectures, yielding shared data spaces. 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.
9
System Architecture
System architecture refers to the logical organization of
distributed systems into software components or how are
processes organized in a system; where do we place
software components.
System architecture decides on software components,
their interaction, and their placement.
Consists of centralized, decentralized and hybrid
architectures.
10
A. Centralized Architectures
It is the idea thinking in terms of clients that request
services from servers (client server model)
In the basic client-server model, processes in a distributed
system are divided into two groups. A server is a process
implementing a specific service, for example, a file system
service or a database service. 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.
This client-server interaction, also known as request-reply
behavior
11
Communication between a client and a server can be
implemented by means of a simple connectionless
protocol when the underlying network is fairly reliable.
In these cases, when a client requests a service, it simply
packages a message for the server, identifying the service
it wants, along with the necessary input data.
The message is then sent to the server.
The latter, in turn, will always wait for an incoming
request, subsequently process it, and package the results
in a reply message that is then sent to the client.
Many client-server systems use a reliable connection
oriented protocol in which communication is inherently
unreliable.
12
What is connectionless protocol? What is its
advantage and disadvantage?
being efficient( advantage)
client cannot detect whether the original
request message was lost. (dis adv.)
13
Application layering
The main issue in client-server model is that there is no
clear distinction between a client and a server
However, considering that many client-server applications
are targeted toward supporting user access to databases,
the following three levels exists.
The user interface level; The processing level; The data level
The user-interface level contains all that is necessary to
directly interface with the user. Clients typically implement
the user-interface level. This level consists of the programs
that allow end users to interact with applications.
The processing level contains applications. The data level
manages the actual data that is being acted on.
14
Multitiered Architectures
The distinction into three logical levels suggests possibilities
for physically distributing a client-server application across
several machines.
The simplest organization is to have only two types of
machines:
1. A client machine containing only the programs implementing
the user-interface level.
2. A server machine containing the rest, that is the programs
implementing the processing and data level.
everything is handled by the server while the client is
essentially no more than a dumb terminal, possibly with a
pretty graphical interface.
client machines and server machines, leading to what is also
referred to as a (physically) two tiered architecture.
15
Read page 7
16
Server-side solutions are becoming increasingly more
distributed as a single server is being replaced by multiple
servers running on different machines.
In particular, when distinguishing only client and server
machines, a server may sometimes need to act as a client,
leading to a (physically) three-tiered architecture.
17
B. Decentralized Architectures
Multitiered client-server architectures are a direct
consequence of dividing applications into a user interface,
processing components, and a data level. The different
tiers correspond directly with the logical organization of
applications.
In many business environments, distributed processing is
equivalent to organizing a client-server application as a
multitiered architecture. We refer to this type of
distribution as vertical distribution.
18
The characteristic feature of vertical distribution is that it
is achieved by placing logically different components on
different machines. The term is related to the concept of
vertical fragmentation as used in distributed relational
databases, where it means that tables are split column
wise, and subsequently distributed across multiple
machines.
from a system management perspective, having a vertical
distribution can help: functions are logically and
physically split across multiple machines, where each
machine is tailored to a specific group of functions.
19
In modern architectures, it is often the distribution of
the clients and the servers that counts, which we refer to
as horizontal distribution
In this type of distribution, a client or server may be
physically split up into logically equivalent parts, but
each part is operating on its own share of the complete
data set, thus balancing the load. An example of
horizontal distribution is a peer-to-peer system.
each process will act as a client and a server at the same
time referred to as acting as a servant
Two types of overlay networks exist: structured and
unstructured
20
In a structured peer-to-peer architecture, the overlay
network is constructed using a deterministic procedure.
By far the most used procedure is to 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.
Unstructured peer-to-peer systems largely rely on
randomized algorithms for constructing an overlay
network. The main idea is that each node maintains a list
of neighbors, but this list is constructed in a random way.
Likewise, data items are assumed to be randomly placed
on nodes.
21
C. Hybrid Architectures
These classes of distributed system architectures are the
one in which client-server solutions are combined with
decentralized architectures.
An important class of distributed systems that is
organized according to a hybrid architecture is formed by
edge-server systems. These systems are deployed on the
Internet where servers are placed "at the edge" of the
network. This edge is formed by the boundary between
enterprise networks and the actual Internet
End users, or clients in general, connect to the Internet by
means of an edge server.
22
23
The edge server's main purpose is to serve content,
possibly after applying filtering and transcoding
functions.
The basic model is that for a specific organization, one
edge server acts as an origin server from which all
content originates.
That server can use other edge servers for replicating
Web pages.
24