Professional Documents
Culture Documents
Introduction
Architecture Models
Fundamental Models
Summary
What is a model?
Each model is intended to provide an
abstract, simplified but consistent
description of a relevant aspect of
distributed system design
Architecture model
Architecture model
define the way in which they are mapped onto the
underlying network of computers
determine the distribution of data and
computational tasks amongst the physical nodes of
the system
evaluating the performance, reliability, scalability
and other properties of distributed systems.
Including
Client-server model
Peer process model
Variations of the client-server model
Fundamental model
Are concerned with a more formal description of the
properties that are common in all of the architectural
models
Including
The interaction model: deal with performance and
with the difficulty of setting time limits in a
distributed system
The failure model: give a precise specification of the
faults that can be exhibited by processes and
communication channels
The security model: discuss the possible threats to
processes and communication channels
4
Introduction
Architecture Models
Fundamental Models
Summary
Applications, services
Middleware
Operating system
Platform
Computer and network hardware
8
Platform
Are the lowest-level hardware and
software layers
e.g.
- Intel x86/Windows
- Intel x86/Linux
- Intel x86/Solaris
- SPARC/SunOS
- PowerPC/MacOS
9
Middleware
Its purpose is to mask heterogeneity and
provide a convenient programming model
e.g. OMGs CORBA, Java RMI, DCOM
Support of abstractions
- Remote method invocation: Sun RPC
- Group communication: Isis
- Notification of events:COBAR
- The replication of shared data
- Transmission of multimedia data
10
Limitation of middleware
some systems require support at the
application level.
E.g. transfer of large electronic mail
the end-to-end argument [1984]
some communication-related functions can be
completely and reliably implemented only with the
knowledge and help of the application standing at
the end points of the communication system
E.g. TCP, DNS and the Web
11
System architectures
The division of responsibilities between
system components (applications, server
and other processes) and the placement of
the components on computers in the
network
12
Arch. 1: Client/Server
Be historically the most important and remain
the most widely employed
Servers may in turn be clients of other servers
Client
invocation
invocation
result
Client
Server
Server
result
Key:
Process:
Computer:
13
Client
Proxy
server
Web
server
Client
15
Application
Coordination
code
Application
Coordination
code
16
Napster
insert(X,
1.2.3.4)
...
Publish
I have X!
1.2.3.4
17
Napster
4.3.2.1
Fetch
Query
search(A)
-->
4.3.2.1
Reply
Where is file A?
18
Gnutella
I have file A.
I have file A.
Reply
Query
Where is file A?
19
KaZaA
insert(X,
123.2.21.23)
...
Publish
I have X!
123.2.21.23
20
10
KaZaA
search(A)
-->
123.2.22.50
123.2.22.50
Query
search(A)
-->
123.2.0.18
Replies
Where is file A?
123.2.0.18
21
BitTorrent
Tracker
C
22
11
BitTorrent
C
23
Consistent hashing
Node identifier hash = hash(IP address)
Key identifier hash = hash(key)
A key is stored at its successor:
node with next higher ID
24
12
Chord
Key 5
Node 105
K5
K20
N105
Key=Hash(book1)=5
Key=Hash(book2)=20
Key=Hash(book3)=80
Circular ID space
N32
N90
K80
25
Chord
N120
N10
N105
N32
K80 N90
N60
26
13
Key Location
log(N)
log(N)
Notation
Definition
finger[k].start
.interval
[finger[k].start,finger[k+1].start)
.node
first node>=n.finger[k].start
successor
predecessor
Lookup(id)
14
Lookup PseudoCode
To find the successor of an id :
Chord returns the successor of the
closest preceding finger to this id.
29
Lookup cost
The finger pointers at repeatedly doubling
distances around the circle cause each
iteration of the loop in find_predecessor to
halve the distance to the target identifier.
In an N node Network the number of
messages is of
O(Log N)
30
15
ID
Next_hop
file
id
next_hopid
fileid
id
id
next_hop
id
31
query(10)
n2
n1
4 n1 f4
12 n2 f12
5 n3
9 n3 f9
4
4
n4
14 n5 f14
13 n2 f13
3 n6
2
n3
3 n1 f3
14 n4 f14
5 n3
n5
5
4 n1 f4
10 n5 f10
8 n6
small world,
Six Degrees of Separation
32
16
...
CFS, OceanStore, PAST, ChordDNS
()
put(key, data)
data
get (key)
Hash
(DHash)
lookup(key)
node IP address
(Chord)
node
node
node
33
34
17
Client
Applet code
Web
server
Client
Applet
Web
server
35
36
18
37
Network computer or PC
Thin
Client
network
Application
Process
38
19
39
Alarm
service
Internet
Hotel wireless
network
Discovery
service
Camera
TV/PC
Laptop
PDA
Guests
devices
40
20
In object-oriented languages
-- Many objects can be encapsulated in
processes
Distribution of responsibilities
-- a static client-server architecture or the
more dynamic object-oriented model
41
21
Performance issues
Responsiveness. E.g. the performance of webbrowsing clients
the load and performance of the server and
network
delay in the client and server operating systems
communication and middleware services as well
as code of the service
Throughput
the rate at which computational work is done
It is affected by processing speeds and by data
transfer rates
Balancing computational loads
43
E.g. applets, several computers for a service
Quality of service
Reliability, security, performance and
adaptability
The failure model, the security model
and the interaction model
QoS is commandeered to refer to the
ability to meet time-critical data(RSVP)
Qos applies to OSs as well as networks.
44
22
45
23
Introduction
Architecture Models
Fundamental Models
Summary
47
48
24
49
25
51
52
26
Interaction model
Examples of interaction in distributed
system
DNS, NIS
multiple server processes cooperate with
one another
53
27
55
28
Timing event
e.g., GPS, Logical time
57
29
Synchronous DS
VOD
Voice Conference System
60
30
Event ordering
send
X
m1
2
receive
receive
receive
send
3
m
2
4
receive
Physical
time
send
receive
A
t1
t2
receive
m
m
m
1
2
3
receive receive receive
t3
Failure model
Define the ways in which failure may
occur in order to provide an
understanding of the effects of failures
Taxonomy[Hadzilacos and Toueg, 1994]
Omission failures
Arbitrary failures
Time failures
62
31
1. Omission failures
A process or communication channel fails to
perform actions that it is supposed to do
Process omission failure: Crash
Fail-stop: Crash that can be detected by
other processes certainly, e.g., by timeouts
in synchronous DS
Communication omission failures: dropping
messages
Send omission, receive omission, channel
omission
Benign failures
63
1. Omission failures
p
process
Send m
receive
Communication channel
Outgoing message buffer
64
32
Class of failure
Affects Description
Fail-stop
Process
Crash
Process
Omission Channel
Sendomission
Process
Receiveomission
Process
33
3. Timing failures
Applicable in syn. distributed system,
but not in asyn. distributed system
Class of
Failure
Clock
Affects
Description
Process
Performance Process
Performance Channel
Masking failures
Hide
e.g. replicated servers
Convert
e.g. Checksum: arbitrary failure -> omission failure
Reliability of one-to-one communication
Validity
any message in the outgoing message buffer is
eventually delivered to the incoming message
buffer
Integrity
the message received is identical to one sent, and
no messages are delivered twice, against
68
retransmit protocols and spurious messages
34
Security model
The security of a distributed system
The processes
The communication channels
The objects
Protecting the objects
Access rights: who is allowed to perform the
operations of an object
Principal: the authority who has some rights on the
object
69
Security model
Access rights
Object
invocation
Client
Principal (user)
result
Network
Server
Principal (server)
70
35
The enemies
Threats to processes
Process p
Communication channel
Process q
71
Mobile code
malicious mobile program, e.g. Trojan horse
attachment
72
36
Authentication
proving the identities supplied by their senders
73
Secure channels
Each process knows reliably the identities
of the principal on whose behalf the other
process is executing
Ensure the privacy and integrity of the
data transmitted across it
Each message includes physical or logical
time stamp
Principal B
Principal A
Process p
Secure channel
Process q
74
37
Introduction
Architecture Models
Fundamental Models
Summary
75
Architecture Models
Client / Server
e.g. Web, FTP, NEWS
Multiple Servers
e.g. DNS
Peer processes
Variations of C/S
Mobile code, mobile agent, network computer,
thin client, spontaneous networks
76
38
Fundamental Models
Interaction models
synchronous DS and asynchronous DS
Failure models
omission failures
arbitrary failures
timing failures
Security model
the enemies
the approaches of defeating them
77
39