You are on page 1of 26

Chapter 2(A) – Distributed System

Architectures
Introduction

• The content of this chapter is structured as follows:


 Software architectural
 Layered architectures
 Object-based architectures
 Data-centered architectures
 Event-based architectures
 System architectures
 Centralized Architectures
 Decentralized Architectures

20.11.2022
  2
2.1. Why we need Architectures
 For hardware and software arrangement
 This arrangement is generally known as a topology
 The ways on how to view the organization of software components and how
they should interact
 Distributed system architectures are bundled up with components and
connectors.
– Component: A modular unit with well-defined interfaces; replaceable; reusable
– Connector: A communication link between modules
• e.g., RPC, message/file passing, or streaming data

20.11.2022 3
Con’t……
• An architectural style should consider the following
concepts:
– Components
– Connection between components
– The data flowing through the components
– Configuration.
– Encompasses a way to cluster and classify groups of
similar systems

20.11.2022
  4
2.2. Software Architectural
• Software architecture is the logical organization of software
components and their interaction with other structures.
• Software architectures expresses component organization

 There are various architectural styles


A) Layered architectures
B) Object-based architectures
C) Data-centered architectures
E) Event-based architectures

20.11.2022
  5
2.2. Software Architectural….
A) Layered architectures:
Components are organized in a layered fashion
The layers on the bottom provide a service to the layers on the top.
• The request flows from Top-to-Down,
• The response is sent from Down-to-Top.

20.11.2022
 the layered architectural style
6
2.2. Software Architectural….
B) Object-based architectures:
 Each object corresponds to a component
 The components are connected through a remote procedure
call mechanism (client-server paradigm)
 No specific architecture like layers
 No sequential step like layers

20.11.2022

the object-based architectural style  7
2.2. Software Architectural….
B) Object-based architectures……
 Communication between object
 This types of architecture has the following properties:
 Component Object
 Connector RPC or RMI

20.11.2022  8
2.2. Software Architectural….
C) Data-centered architectures
 All components communicate through a common repository;
 e.g., a shared distributed file system
 It contains all the required data in one place
 It follows publish/subscribe type of communication. 

 Distributed file systems, and


 Web based data services

20.11.2022  9
2.2. Software Architectural….
D ) Event-based architectures:
 Components communicate through the propagation of events.
 It uses Publish/subscribe systems
 How It works?
 Step-1: An event is generated.
 Step-2: It will be sent to the bus system.
 Step-3: Within bus, everyone else will be notified telling
that such an event has occurred.
 Sometimes these events could be data, or event URLs to
resources.

20.11.2022
 10

2.2. Software Architectural….
D ) Event-based architectures…..
 Easy to add, remove and modify components in the system. S
 Some examples are, publisher - subscriber system, and
Enterprise Services Bus (ESB), Broadcast.

the event-based architectural style


20.11.2022 11

2.2 System Architectures
Two major system-level architectures:
A. Centralized Architectures
e.g., client-server architectures
B. Decentralized Architectures
e.g., p2p
. . 

20.11.2022
 12

A) Centralized Architecture:
 Example, client-server architecture
 It consists of a client and a server.
 Clients directly connected to server .
 The client can then request from the server, and the server
will respond accordingly.

20.11.2022
 13

Components of Centralized Architecture are,  
 Client (Computer, laptop, Mobile, etc.). 

 Server. 

 Communication link (Cables, Wi-Fi, etc.).

20.11.2022
 14

Client-server Interaction

general interaction between a client and a server


 Client-server architecture has been subjected to many database-
based applications.
 Client-server applications usually have three different layers
 The user-interface level: implemented by clients and contains all that

is required by a client; usually through GUIs, but not necessarily


 The processing level: contains the applications

 The data level: contains the programs that maintain the actual data

20.11.2022
 15

Client-server applications
 Client-server architecture has been subjected to many
database-based applications.
 Client-server applications usually have three different layers
 The user-interface level: implemented by clients and
contains all that is required by a client; usually through
GUIs, but not necessarily
 The processing level: contains the applications
 The data level: contains the programs that maintain the
actual data

20.11.2022
 16

Example, Internet search engine
• It has three different layers
 There is a question in Client-Server Architectures
 Questions: how to physically distribute a client-server application
across several machines
 Solution: Multi-tiered Architectures, e.g., Two-tiered architecture

20.11.2022
 18

Alternative client-server organizations:
Multi-tiered architecture
A. Two-tiered architecture

(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
(d) and (e) are for powerful client machines (more popular)
20.11.2022 19
Alternative client-server organizations:
Multi-tiered architecture……
B .Three-tiered architecture: an example of a server acting as a client

 an example is the organization of Web sites

20.11.2022
 20

Advantages and Disadvantages of Client-
server architecture

• Advantages:
– Easier to Build and Maintain
– Better Security
– Stable
• Disadvantages:
– Single point of failure

20.11.2022
 21

B) Decentralized Architectures:

e.g., Peer-to-peer (P2P) architecture


 Removes distinction between a client and a server
 Works on the concept of no central control in a distributed system
 A node can either act as a client or server at any given time once it
joins the network.
 A node that requests something is called a client
 A node that provides response is called a server
 No single point of failure

20.11.2022 22

 Two major decentralized forms of architectures

A)Vertical distribution:

 Place logically different components on different


machines
 Multi-tiered client-server architectures directly derive from
the three levels of applications
 Logical organization is mapped onto the tiers
 Often, distributed processing amounts at building a client-
server application according to a multi-tiered architecture

20.11.2022
 23
B) Horizontal distribution:
 Physically split up the client or the server into logically
equivalent parts
 Clients and servers may be physically split into logically-
equivalent parts, each one working on its own portion of
the whole data set
 Example, peer-to-peer system where processes are equal
and hence each process acts as a client and a server at
the same time

20.11.2022
 24

 Example for horizontal distribution of a Web service

20.11.2022
 25

2.3 Client-Server Vs. Peer-to-Peer Architectures

20.11.2022
 26

You might also like