2. • The content of this chapter is structured as follows:
Software architectural
Layered architectures
Object-based architectures
Data-centered architectures
Event-based architectures
System architectures
Client-server architecture
Peer-to-peer (P2P) architecture
Introduction
20.11.2022 2
3. 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., facilities for RPC, message/file passing, or streaming data
20.11.2022 3
4. 2.2. Architectural Styles
There are various architectural styles
A) Layered architectures
B) Object-based architectures
C) Data-centered architectures
E) Event-based architectures
20.11.2022 4
5. 2.2. Architectural Styles
A) Layered architectures:
Components are organized in a layered fashion where a
The layers on the bottom provide a service to the layers on the top.
• Which means request flows from top to bottom,
• The response is sent from bottom to top.
A well known example for this is the OSI model that
incorporates a layered architecture
the layered architectural style
20.11.2022 5
7. B) Object-based architectures:
Each object corresponds to a component and
The components are connected through a remote procedure
call mechanism (client-server paradigm)
No specific architecture like layers
No sequential step like layers
the object-based architectural style
2.2. Architectural Styles……
20.11.2022 7
8. 2.2. Architectural Styles……
B) Object-based architectures……
Communication between object happen as method
invocations.
These are generally called Remote Procedure Calls
(RPC).
Some popular examples are
Java RMI,
Web Services and
REST API Calls.
This has the following properties.
This architecture style is less structured.
Component object
Connector RPC or RMI
20.11.2022 8
9. 2.2. Architectural Styles……
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
10. 2.2. Architectural Styles……
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: With this, everyone else will be notified telling
that such an event has occurred.
So, if anyone is interested, that node can pull the
event from the bus and use it.
Sometimes these events could be data, or event
URLs to resources.
20.11.2022 10
11. 2.2. Architectural Styles……
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).
the event-based architectural style
20.11.2022 11
12. 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
13. 20.11.2022 13
2.2 System Architectures
A) Centralized Architecture: e.g., Client-server architecture
It consists of a client and a server.
The client can then request from the server, and the server
will respond accordingly.
14. More on Client-server architecture
general interaction between a client and a server
20.11.2022 14
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
15. • e.g., the general organization of an Internet search engine into 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
16. Multi-tiered Architectures
(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 16
Two-tiered architecture: alternative client-server organizations
17. Multi-tiered Architectures
an example is the organization of Web sites
20.11.2022 17
three-tiered architecture: an example of a server acting as a client
18. More on Client-server architecture…..
• Advantages:
– Easier to Build and Maintain
– Better Security
– Stable
• Disadvantages:
– Single point of failure
– Less scalable
20.11.2022 18
19. 2.2 System Architectures…..
B) Decentralized Architectures: e.g., Peer-to-peer (P2P) architecture
– P2P is a good example for decentralized
architectures
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
20.11.2022 19
20. Decentralized Architectures….
Two major decentralized forms of architectures
Vertical distribution:
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
read about the different approaches of peer-to-peer
architecture - pages 44 - 51 and about Architectures versus
Middleware - pages 54 - 66
20.11.2022 20
21. another example is the horizontal distribution of a Web
service
20.11.2022 21