Chapter 2 - Architecture (2)
Chapter 2 - Architecture (2)
04/12/2024 1
Cont…
a connector is a mechanism that mediates communication,
coordination, or cooperation among components, e.g., facilities for
RPC, message passing, or streaming multimedia data
there are various architectural styles
Layered architectures
Object-based architectures
Data-centered architectures
Event-based architectures
04/12/2024 2
Layered architectures
• 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; requests go down the hierarchy and results flow upward
e.g., network layers
04/12/2024 3
Object-based architectures
• each object corresponds to a component and these components are
connected through a remote procedure call mechanism (matches the client-
server paradigm)
04/12/2024 4
Data-centered architectures(Persistent Data space)
processes communicate through a common Active or pasive repository;
e.g., a shared distributed file system
04/12/2024 5
• Event-based architectures: processes communicate through the
propagation of events (can also optionally carry data)
• publish/subscribe systems
• processes publish events and the middleware ensures that only those
processes that subscribed to those events will receive them
• processes are loosely coupled; no need of explicitly referring to
each other
04/12/2024 6
Shared data spaces
• event-based architectures combined with data-centered architectures
• processes are decoupled in time.
04/12/2024 7
2.2 System Architectures
• 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
• deciding on software components, their interaction, and their placement is
what system architecture is all about
• can be centralized, decentralized or a hybrid
2.2.1 Centralized Architectures
• thinking in terms of clients requesting services from servers
• 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
• we have a request-reply behavior
04/12/2024 8
• Cont.…
• client-server applications are targeted toward supporting user access to
databases, 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
2. The processing level
3. The data level
• Note: The user-interface level contains all that is necessary to directly
interface with the
• user, such as display management. The processing level typically
contains the applications.
• The data level manages the actual data that is being acted on.
04/12/2024 9
User Interface
04/12/2024 10
Server and client Interaction
04/12/2024 11
• communication between client and server can be by a connectionless protocol
if the underlying network is fairly reliable; efficient since there is no much
overhead but assuring reliability is difficult
• we don’t also know the source of error; was the request or the reply lost,
for instance
• when messages are lost or corrupted let the client send the request again;
applicable only for idempotent operations
• an operation is idempotent if it can be repeated multiple times without
harm; e.g., reading a record in a database but, transferring an amount to a
bank account is not idempotent
• by a reliable connection-oriented protocol, if the underlying
network is unreliable, establishing and terminating connections is
expensive
04/12/2024 12
Client-Server Architectures
• how to physically distribute a client-server application across several
machines
• Multi-tiered Architectures
04/12/2024 13
(a) put only terminal-dependent part of the user interface on the client machine
and let the applications remotely control the presentation
(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 powerful client machines what are called fat
clients (more popular)
(d) and (e) are difficult to manage since client side software is distributed and is
prone to error; it is also dependent on the client’s platform such as operating
system
04/12/2024 14
2.2.2 Decentralized Architectures
• vertical distribution: refers to the ones discussed so far where the different
tiers correspond directly with the logical organization of applications; place
logically different components on different machines
• horizontal distribution: physically split up the client or the server into
logically equivalent parts
• an example is a peer-to-peer system where processes are equal and hence
each process acts as a client and a server at the same time (servant)
• read about the different approaches of peer-to-peer architecture -pages 44 -
51 and about Architectures versus Middleware - pages 54 -66
04/12/2024 15
• another example is the horizontal distribution of a Web service
04/12/2024 16
Chapter 2 Questions
1. What is unstructured peer layer?
2. What is Super Peer Architecture
3. What is a distributed hybrid Architecture
4. What is an edge server?
5. If a client and a server are placed far apart, we may see network
latency dominating overall performance. How can we tackle this
problem?
6. What is a three-tiered client-server architecture?
7. What is the difference between a vertical distribution and a
horizontal distribution?
8. Consider an unstructured overlay network in which each node
randomly chooses c neighbours. If P and Q are both neighbours of R,
what is the probability that they are also neighbours of each other?
04/12/2024 17
Thank you!
04/12/2024 18