Professional Documents
Culture Documents
Chapter 2: Architectures
February 28, 2020
Fuad Yimer
Architectures
Introduction
2 / 25
Architectures
Architectures
Software architecture - logical organization of distributed systems into
software components
A architectural style is formulated in terms of:
Types of components
The way that components are connected to each other
The data exchanged between components
How these elements are jointly configured into a system.
Architectural styles
4 / 25
Architectures 2.1 Architectural styles
5 / 25
Architectures 2.1 Architectural styles
Note
Layered style used for client-server system
Object-based style for distributed object system
Layered and object-based style are the most important style for
distributed system today
6 / 25
Architectures 2.1 Architectural styles
Data-centered architectures
Access and update of data stored
is the main purpose of the system.
Processes communicate info
primarily by reading and
modifying data in some shared
repository;
e.g., a shared distributed file
system , database
Components:
Data store
Client interact with store
Connectors:
Queries
7 / 25
Architectures 2.1 Architectural styles
8 / 25
Architectures 2.1 Architectural styles
Components:
Can be an instance of class or simply a module
Publisher: individual components announce data that they wish to share
with their subscribers.
Subscriber: individual components register their interest for published
data.
Connectors:
Event buses
9 / 25
Architectures 2.1 Architectural styles
10 / 25
Architectures 2.2 System Architectures
System Architectures
11 / 25
Architectures 2.2 System Architectures
Centralized Architectures
Request Reply
Server
Provide service Time
12 / 25
Architectures 2.2 System Architectures
Centralized Architectures
13 / 25
Architectures 2.2 System Architectures
Observation
This layering is found in many distributed information systems, using
traditional database technology and accompanying applications.
14 / 25
Architectures 2.2 System Architectures
Observation
This layering is found in many distributed information systems, using
traditional database technology and accompanying applications.
14 / 25
Architectures 2.2 System Architectures
User-interface
User interface level
HTML page
Keyword expression containing list
HTML
generator Processing
Query Ranked list level
generator of page titles
Ranking
Database queries algorithm
Two-Tired Architecture
Where are the three application-layers placed? On the client machines,
or on the server machines?
A range of possible solutions:
Thin-Client - Server provides processing and data management; client
provides simple graphical display
Pros: easier to manage, more reliable, client machines dont need to be so
large and powerful
Con: perceived performance loss at client
Fat-Client - All application processing and some data resides at the client
Pros: reduces work load at server; more scalable
Con: harder to manage by system admin, less secure
Other solutions in between thin-client and fat-client
17 / 25
Architectures 2.2 System Architectures
18 / 25
Architectures 2.2 System Architectures
19 / 25
Architectures 2.2 System Architectures
Horizontal Distribution
Sometimes, the physical distribution of the clients and the servers is what
actually counts.
A client or server may be physically split up into logically equivalent parts, but
each part is operating on its own share of the complete data set, thus balancing
the load.
The architecture in this case is decentralized and forms horizontal distribution.
Peer-to-peer systems are a class of modern architectures that support horizontal
20 / 25
Architectures 2.2 System Architectures
21 / 25
Architectures 2.2 System Architectures
Hybrid Architectures
23 / 25
Architectures 2.2 System Architectures
End of chapter 2
Any Question ?
24 / 25