Chapter 2
Chapter 2
1
INTRODUCTION
There are different ways on how to view the
organization of a distributed system;
• i.e. logical and physical organization (software & system
architecture)
Software Architecture:
• describe the organization and interaction of software
components
• tell us how the various software components are to be
organized and how they should interact.
System Architectures:
• describe the placement of software components on
physical machines.
The realization of an architecture may be:
2. Object-based architectures
3. Data-centered architectures
ƒ
4. Event-based architectures 3
1. LAYERED ARCHITECTURES
components are organized in a layered fashion where
a component at layer LN is allowed to call components
at the underlying layer LN-1, but not the other way
around;
requests go down the hierarchy and results flow upward
• e.g., network layers
Example:
• a shared distributed file system:
• all communication takes place through files.
• Web-based distributed systems:
• processes communicate through the use of shared Web-based data
services.
6
4. EVENT-BASED ARCHITECTURES
Processes communicate through the propagation of
events, (can also optionally carry data)
event propagation has been associated with
publish/subscribe systems
processes publish events after which the middleware
ensures that only those processes that subscribed to
those events will receive them.
Advantage:
processes are loosely coupled; they need not explicitly refer to
each other.
7
CONT…
9
SYSTEM ARCHITECTURES
tells us the actual physical realization of components.
how are processes organized in a system.
where do we place software components.
10
CENTRALIZED ARCHITECTURES
traditional client-server structure.
vertical (or hierarchical) organization of communication
and control paths (as in layered software architectures).
logical separation of functions into client (requesting
process) and server (responder).
a server is a process implementing a specific service
a client is a process that requests a service from a server by
sending a request and waiting for a reply
have a request-reply behavior
14
CONT…
Multi-tiered architectures
Layer and tier are roughly equivalent terms, but layer
typically implies software and tier is more likely to refer to
hardware.
Two-tier and three-tier are the most common.
16
TWO-TIERED (C/S) ARCHITECTURES
Server provides processing and data management;
client provides simple graphical display (thin-client).
Perceived performance loss at client
Easier to manage, more reliable, client machines
don’t need to be so large and powerful
17
CONT…
18
Fig. 2.6: Two-tiered architecture: alternative client-server organizations
CONT…
a) put only terminal-dependent part of the user interface
on the client machine and give the applications remote
control over the presentation of their data.
b) put the entire user-interface software on the client side.
c) move part of the application to the client, e.g. checking
correctness in filling forms.
a) to c) are for thin clients.
d) and e) are for fat clients; more popular.
used for powerful client machines, connected through a
network to a distributed file system or database.
most of the application is running on the client machine, but
all operations on files or database entries go to the server.
difficult to manage since client-side software is distributed
and is prone to error; it is also dependent on the client’s 19
platform such as operating system
THREE-TIERED (C/S) ARCHITECTURES
In some applications servers may also need to be
clients, leading to a three level architecture;
Distributed transaction processing
Web servers that interact with database servers
Distribute functionality across three levels of machines
instead of two.
20
22
CONT…
24
GROUP DISCUSSION
If a client and a server are placed far apart, we may see
network latency dominating overall performance. How
can we tackle this problem?
26