Lesson 2

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 30

Lesson 2

DISTRIBUTED SYSTEM
ARCHITECTURES

Mehamed Ahmed(Ph.D.)
[email protected]
Architectural Styles (1)

Important styles of architecture for


distributed systems
• Layered architectures
• Object-based architectures
• Event-based architectures
• Data-centered architectures

2
Architectural Styles (2)

Figure 2-1. The (a) layered architectural style and …


3
Architectural Styles (3)

Figure 2-1. (b) The object-based architectural style.


4
Architectural Styles (4)

s
te m
sy s
ibe
sc r
su b
sh /
b li
pu
Figure 2-2. (a) The event-based architectural style and …
5
Architectural Styles (5)

Figure 2-2. (b) The shared data-space architectural style.


6
Centralized Architectures
• In the basic client-server model, processes in a
distributed system are divided into two (possibly
overlapping) groups.
• A server is a process implementing a specific service,
for example, a file system service or a database
service.
• A client is a process that requests a service from a
server by sending it a request and subsequently
waiting for the server's reply.
• This client-server interaction, also known as request-
reply behavior is shown in Fig
7
Centralized Architectures…

Figure 2-3. General interaction between a client and a server.

8
Application Layering (1)
• The client-server model has been subject to many debates
and controversies over the years.
• One of the main issues was how to draw a clear distinction
between a client and a server. Not surprisingly, there is often
no clear distinction.

• For example, a server for a distributed database may


continuously act as a client because it is forwarding requests
to different file servers responsible for implementing the
database tables.
• In such a case, the database server itself essentially does no
more than process queries.

9
Application Layering (1)…

Recall previously mentioned layers of


architectural style
• The user-interface level
• The processing level
• The data level

10
Application Layering (2)

Figure 2-4. The simplified organization of an Internet search


engine into three different layers. 11
Multitiered Architectures (1)

The simplest organization is to have only two


types of machines:
• A client machine containing only the
programs implementing (part of) the user-
interface level
• A server machine containing the rest,
– the programs implementing the processing and
data level

12
Multitiered Architectures (2)

Figure 2-5. Alternative client-server organizations (a)–(e).


13
Multitiered Architectures (3)

Figure 2-6. An example of a server acting as client.


14
Structured Peer-to-Peer Architectures (1)

Figure 2-7. The mapping


of data items onto
nodes in Chord.
15
Structured Peer-to-Peer Architectures (2)

Figure 2-8. (a) The mapping


of data items onto nodes
in CAN.
16
Structured Peer-to-Peer Architectures (3)

Figure 2-8. (b) Splitting a


region when a node
joins.

17
Unstructured Peer-to-Peer
Architectures (1)

Figure 2-9. (a) The steps taken by the active thread. 18


Unstructured Peer-to-Peer
Architectures (2)

Figure 2-9. (b) The steps take by the passive thread 19


Topology Management of Overlay
Networks (1)

Figure 2-10. A two-layered approach for constructing and


maintaining specific overlay topologies using techniques from
unstructured peer-to-peer systems. 20
Topology Management of Overlay
Networks (2)

Figure 2-11. Generating a specific overlay network using a two-


layered unstructured peer-to-peer system [adapted with
permission from Jelasity and Babaoglu (2005)].
21
Superpeers

Figure 2-12. A hierarchical organization of nodes into a


superpeer network. 22
Edge-Server Systems

Figure 2-13. Viewing the Internet as consisting of a


collection of edge servers. 23
Collaborative Distributed Systems (1)

Figure 2-14. The principal working of BitTorrent [adapted with


permission from Pouwelse et al. (2004)].
24
Bit Torrent Explained

25
Collaborative Distributed Systems (2)

Components of Globule collaborative content


distribution network:
• A component that can redirect client requests
to other servers.
• A component for analyzing access patterns.
• A component for managing the replication of
Web pages.

26
Interceptors

Figure 2-15. Using interceptors to handle


remote-object invocations. 27
General Approaches to Adaptive
Software
Three basic approaches to adaptive
software:
• Separation of concerns
• Computational reflection
• Component-based design

28
Assignment

• Discuss the following DS models and concepts concerning to


their way of controlling and mentoring.
– Systems Monitoring with Astrolabe
– The Feedback Control Model
– Differentiating Replication Strategies in Globule
– Automatic Component Repair Management in Jade

29

You might also like