0% found this document useful (0 votes)
42 views33 pages

Chapter 2 Slides

This document contains slides summarizing key concepts from Chapter 2 on architectural models of distributed systems. The slides cover generations of distributed systems, architectural elements like objects and components, communication paradigms like inter-process communication and remote invocation, preferred distributed communication methods like remote procedure calls and remote method invocation, architectural styles like client-server and peer-to-peer, and technologies like web services and AJAX. Diagrams are included illustrating different architectural patterns.

Uploaded by

sumipriyaa
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)
42 views33 pages

Chapter 2 Slides

This document contains slides summarizing key concepts from Chapter 2 on architectural models of distributed systems. The slides cover generations of distributed systems, architectural elements like objects and components, communication paradigms like inter-process communication and remote invocation, preferred distributed communication methods like remote procedure calls and remote method invocation, architectural styles like client-server and peer-to-peer, and technologies like web services and AJAX. Diagrams are included illustrating different architectural patterns.

Uploaded by

sumipriyaa
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/ 33

Slides for Chapter 2:

Architectural Models

Resource from : Coulouris, Doll more, Kindberg and Blair Distributed


Systems: Concepts and Design, Edition 5, © Addison-Wesley 2012

Dr. M. Sudha
Associate Professor
Information Technology Dept.
Figure 2.1
Generations of distributed systems

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
2
Figure 2.2
Communicating entities and communication paradigms

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
3
Architectural Elements and Communicating Paradigms

Elements
Objects
Components
Web services

Communicating paradigms
Inter process Communication IPC
Remote invocation RI
Indirect Communication

4
IPC

Inter process communication refers to the


relatively low-level support for communication
between processes in distributed systems,
1. Including message-passing primitives,
2. Direct access to the API offered by Internet
protocols (socket programming)
3. Support for multicast communication.

5
Remote Invocation

Remote invocation represents the most common


communication paradigm in distributed systems,

Covering a range of techniques based on a


two-way exchange between communicating
entities in a distributed system and resulting in
the calling of a remote operation, procedure or
method,

6
Remote Invocation

Request-reply protocols
Request-reply protocols: Request-reply protocols are
effectively a pattern imposed on an underlying message-
passing service to support client-server computing
Involve a pairwise exchange of messages from client to
server and then from server back to client, with
• first message containing an encoding of the operation
to be executed at the server and also an array of bytes
holding associated arguments
• second message containing any results of the operation,
again encoded as an array of bytes.

7
Preferred Distributed Communication

Remote procedure calls


RPC works is that a sender or client creates a request in
the form of a procedure, function or method call to a
remote server, which RPC translates and sends.
• When the remote server receives the request, it sends a
response back to the client and the application continues
its process.
• When the server processes the call or request, the client
waits for the server to finish processing before resuming
its process.
• In general, RPC applications use software modules
called proxies and stubs, which make them look like
local procedure calls (LPC). 8
Remote method invocation

Remote method invocation was first introduced in


Java Development Kit (JDK) 1.1 and is
extensively used in distributed object computing.
It performs the object-oriented equivalence of
remote procedure calls.
RMI functionalities come in a java.rmi package
and provide a distributed object capability for
Java-based applications.

9
Figure 2.3
Clients invoke individual servers

Client invocation invocation Server

result result
Server

Client
Key:
Process: Computer:

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.4a
Peer-to-peer architecture

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.4b
A service provided by multiple servers

Service

Server
Client

Server

Client
Server

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.5
Web proxy server

Client Web
server
Proxy
server

Client Web
server

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.6
Web applets

a) client request results in the downloading of applet code

Client Web
Applet code server

b) client interacts with the applet

Web
Client Applet server

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.7
Software and hardware service layers in distributed systems

Applications, services

Middleware

Operating system
Platform

Computer and network hardware

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.8
Two-tier and three-tier architectures

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
16
Figure 2.9
AJAX example: soccer score updates

new Ajax.Request('scores.php?
game=Arsenal:Liverpool’,
{onSuccess: updateScore});
function updateScore(request) {
.....
( request contains the state of the Ajax request
including the returned result.
The result is parsed to obtain some text giving the
score, which is used to update the relevant portion
of the current page.)
.....
17
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.10
Thin clients and compute servers

Compute server
Network computer or PC

Thin network Application


Client Process

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.11
The web service architectural pattern

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
19
Fundamental models are

• Interaction: Computation occurs within processes;


• Passing messages,
• Communication (information flow)
• Coordination between processes.
• (synchronization and ordering of activities)
Interaction model must reflect the facts that communication
takes place with delays that are often of considerable
duration
Accuracy with which independent processes can be
coordinated is limited by these delays and by the
difficulty of maintaining the same notion of time across
all the computers in a distributed system.
20
Types of Interaction Model Synchronous distributed systems:
Hadzilacos and Toueg [1994]

Synchronous distributed system to be one in which


the following bounds are defined:
• The time to execute each step of a process has
known lower and upper bounds.
• Each message transmitted over a channel is
received within a known bounded time.
• Each process has a local clock whose drift rate
from real time has a known bound.

21
Asynchronous distributed systems:
Many distributed systems, such as the Internet, are very useful
without being able to qualify as synchronous systems.
An asynchronous distributed system is one in which there
are no bounds on:
• Process execution speeds – for example, one process step
may take only a picosecond and another a century; all that
can be said is that each step may take an arbitrarily long
time.
• Message transmission delays – messages from process A to
process B may be, a message may be received after an
arbitrarily long time.
• Clock drift rates – again, the drift rate of a clock is arbitrary.

22
latency

Delay between the start of a message’s transmission from


one process and the beginning of its receipt by another
is referred to as latency , it includes
• time taken for the first of a string of bits transmitted
through a network to reach its destination.
• The delay in accessing the network, which increases
significantly when the network is heavily loaded.
• The time taken by the operating system communication
services at both the sending and the receiving processes
• Also, involves Bandwidth and Jitter

23
Failure:

The correct operation of a distributed system is threatened


whenever a fault occurs
• In any of the computers on which it runs (including
software faults)
• In the network that connects them.

DS model defines and classifies the faults.


• This provides a basis for the analysis of their potential
effects and for the design of systems that are able to
tolerate faults of each type while continuing to run
correctly.

24
Security:

The modular nature of distributed systems and


their openness exposes
them to attack by both external and internal
agents. Our security model defines and
classifies the forms that such attacks may take,
providing a basis for the analysis of
threats to a system and for the design of systems
that are able to resist them.

25
Figure 2.12
Categories of middleware

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
26
Figure 2.13
Real-time ordering of events

send receive receive


X
1 m1 4
m2
send
receive
Y 2 3 Physical
receive time

send
Z
receive receive

m3 m1 m2
A
receive receive receive
t1 t2 t3

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.14
Processes and channels

process p process q

send m receive

Communication channel
Outgoing message buffer Incoming message buffer

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.15
Omission and arbitrary failures

Class of failure Affects Description


Fail-stop Process Process halts and remains halted. Other processes may
detect this state.
Crash Process Process halts and remains halted. Other processes may
not be able to detect this state.
Omission Channel A message inserted in an outgoing message buffer never
arrives at the other end’s incoming message buffer.
Send-omission Process A process completes a send, but the message is not put
in its outgoing message buffer.
Receive-omission Process A message is put in a process’s incoming message
buffer, but that process does not receive it.
Arbitrary Process or Process/channel exhibits arbitrary behaviour: it may
(Byzantine) channel send/transmit arbitrary messages at arbitrary times,
commit omissions; a process may stop or take an
incorrect step.

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.11
Timing failures

Class of Failure Affects Description


Clock Process Process’s local clock exceeds the bounds on its
rate of drift from real time.
Performance Process Process exceeds the bounds on the interval
between two steps.
Performance Channel A message’s transmission takes longer than the
stated bound.

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.17
Objects and principals

Access rights Object


invocation

Client
result Server

Principal (user) Network Principal (server)

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.18
The enemy

Copy of m

The enemy
m’
Process p m Process q
Communication channel

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.19
Secure channels

Principal A Principal B

Process p Secure channel Process q

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012

You might also like