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

Lesson 2

The document discusses various architectural styles and models for distributed systems, including layered architectures, object-based architectures, event-based architectures, and data-centered architectures. It also covers centralized client-server models, multitier architectures, structured and unstructured peer-to-peer networks, topology management in overlay networks, the use of superpeers, edge-server systems, collaborative content distribution with BitTorrent and Globule, using interceptors to handle remote object invocations, and general approaches to adaptive software like separation of concerns, computational reflection, and component-based design.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

Lesson 2

The document discusses various architectural styles and models for distributed systems, including layered architectures, object-based architectures, event-based architectures, and data-centered architectures. It also covers centralized client-server models, multitier architectures, structured and unstructured peer-to-peer networks, topology management in overlay networks, the use of superpeers, edge-server systems, collaborative content distribution with BitTorrent and Globule, using interceptors to handle remote object invocations, and general approaches to adaptive software like separation of concerns, computational reflection, and component-based design.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 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