Slides for Chapter 2:
Architectural Models
From Coulouris, Dollimore, Kindberg and
Blair
Distributed Systems:
Concepts and Design
Edition 5, © Addison-Wesley 2012
2
2.1 Introduction
Physical models
the most explicit way in which to describe a system; they capture the
hardware composition of a system in terms of the computers (and other
devices, such as mobile phones) and their interconnecting networks.
Architectural models
a system in terms of the computational and communication tasks performed
by its computational elements; the computational elements being individual
computers or aggregates of them supported by appropriate network
interconnections.
Fundamental models
an abstract perspective in order to examine individual aspects of a
distributed system
3-important-aspects of distributed systems: interactions models, failure
models, security models
3
2.2 Physical models
Baseline physical model
Early distributed systems (section 3.5)
Internet-scale distributed systems
chapter 1, figures 1.3
CORBA
Contemporary distributed systems
Grid computing
Distributed systems of systems
4
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
5
2.3 Architecture models
The architecture of a system is its structure in terms of
separately specified components and their
interrelationships. The overall goal is to ensure that the
structure will meet present and likely future demands on
it. Major concerns are to make the system reliable,
manageable, adaptable and cost-effective.
Understanding such trade-offs is arguably the key skill in
distributed systems design.
6
2.3.1 Architectural elements
4 key questions:
What are the entities that are communicating in the distributed system?
How do they communicate, or, more specifically, what communication
paradigm is used?
What (potentially changing) roles and responsibilities do they have in the
overall architecture?
How are they mapped on to the physical distributed infrastructure (what
is their placement)?
7
Comminicating entities Roles and responsibilities
objects client-server (fig. 2.3)
components peer-to-peer (fig. 2.4a)
web services Placement
Communication paradigms mapping of services to
multiple servers (fig. 2.4b)
interprocess communication
caching (fig 2.5)
remote invocation (chapter
mobile code (fig. 2.6)
5)
mobile agents
request-reply
protocols
remote procedure
calls
remote method
invocation
indirect communication
(chapter 6)
group
communication 8
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
9
Figure 2.3
Clients invoke individual servers
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
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
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.6
Web applets
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
2.3.2 Architecture patterns
Architectural patterns build on the more primitive architectural
elements discussed above and provide composite recurring
structures that have been shown to work well in given
circumstances
Many architectural patterns have been identified for distributed
systems
- layering
- tiered architectures
- related concept of thin clients
- web services
15
Figure 2.7
Software and hardware service layers in distributed systems
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
17
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.)
.....
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
18 © 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
20
2.3.3 Associated middleware solutions
The task of middleware is to provide a higher-level
programming abstraction for the development of
distributed systems and, through layering, to abstract
over heterogeneity in the underlying infrastructure to
promoteinteroperability and portability
Categories of middleware (fig. 2.12)
Limitations of middleware
21
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
22
2.4 Fundamental models
23
2.4.1 Interaction model
Fundamentally distributed systems are composed of many
processes, interacting in complex ways
Two significant factors affecting interacting processes
in a distributed system:
• Communication performance is often a limiting characteristic.
• It is impossible to maintain a single global notion of time
24
Performance of communication channels
Computer clocks and timing events
Two variants of the interaction model
Event ordering (fig. 2.13)
25
Figure 2.13
Real-time ordering of events
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
2.4.2 Failure model
Omission failures
Process omission failures
Communication omission failures (fig. 2.14)
Arbitrary failures
Timing failures
Masking failures
Reliability of one-to-one communication
27
Figure 2.14
Processes and channels
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 AffectsDescription
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.16
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
2.4.3 Security model
The security of a distributed system can be achieved by
securing the processes and the channels used for their
interactions and by protecting the objects that they
encapsulate against unauthorized access.
Protecting objects (fig. 2.17)
Securing processes and their interactions
The enemy (fig. 2.18)
31
The threats from a potential enemy include threats to
processes and threats to communication channels.
Defeating security threats:
• Cryptography and shared secrets
• Authentication
• Secure channel (fig. 2.19)
32
Figure 2.17
Objects and principals
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
Exercises
36