0% found this document useful (0 votes)
19 views

Chapter 2 - Architecture

This document discusses different architectural styles and system architectures for distributed systems. It describes four main architectural styles: layered architectures, object-based architectures, data-centered architectures, and event-based architectures. It also discusses centralized, decentralized, and hybrid system architectures. Centralized architectures involve clients requesting services from servers, while decentralized architectures involve processes acting as both clients and servers in a peer-to-peer fashion. The document provides examples of how to physically distribute client-server and peer-to-peer systems across multiple machines.

Uploaded by

laliselamatolera
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Chapter 2 - Architecture

This document discusses different architectural styles and system architectures for distributed systems. It describes four main architectural styles: layered architectures, object-based architectures, data-centered architectures, and event-based architectures. It also discusses centralized, decentralized, and hybrid system architectures. Centralized architectures involve clients requesting services from servers, while decentralized architectures involve processes acting as both clients and servers in a peer-to-peer fashion. The document provides examples of how to physically distribute client-server and peer-to-peer systems across multiple machines.

Uploaded by

laliselamatolera
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Chapter 2

Architecture

1
Chapter 2 - Architecture
Logical organization and physical organization i.e., software or
system architectures: how they are organized and how they
communicate
Architectural styles
• System architectures: centralized (client-server) vs decentralized
ones (where machines play equal roles)
2.1 Architectural Styles: refers to the logical organization of
distributed systems into software components.
 A component is a modular unit with well-defined, required and
provided interfaces that is replaceable within its environment;
can be replaced provided that we respect its interfaces 2
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

3
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

the layered architectural style 4


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)

the object-based architectural style

5
Data-centered architectures
 processes communicate through a common repository; e.g., a shared distributed file
system
 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

6
Shared data spaces
• event-based architectures combined with data-centered architectures
• processes are decoupled in time.

the shared data-space architectural style

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
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
8
Server and client Interaction

9
• 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
10
Client-Server Architectures
• how to physically distribute a client-server application across several
machines
• Multi-tiered Architectures

Two-tiered architecture: alternative client-server organizations

11
(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
12
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)
13
• another example is the horizontal distribution of a Web service

14
THANK
YOU!!!

15

You might also like