Slides.01 Modified
Slides.01 Modified
(3rd Edition)
Distributed System
Definition
A distributed system is a collection of autonomous computing elements
that appears to its users as a single coherent system.
Characteristic features
► Autonomous computing elements, also referred to as nodes, be
they hardware devices or software processes.
► Single coherent system: users or applications perceive a single
system ⇒ nodes need to collaborate.
2 / 56
Introduction: What is a distributed system? Characteristic 1: Collection of autonomous computing elements
Independent behavior
Each node is autonomous and will thus have its own notion of time:
there is no global clock. Leads to fundamental synchronization and
coordination problems.
Collection of nodes
► How to manage group membership?
► How to know that you are indeed communicating with an
authorized (non)member?
3 / 56
Introduction: What is a distributed system? Characteristic 1: Collection of autonomous computing elements
Organization
Overlay network
Each node in the collection communicates only with other nodes in the
system, its neighbors. The set of neighbors may be dynamic, or may
even be known only implicitly (i.e., requires a lookup).
4 / 56
Introduction: What is a distributed system? Characteristic 2: Single coherent system
Coherent system
Essence
The collection of nodes as a whole operates the same, no matter
where, when, and how interaction between a user and the system
takes place.
Examples
► An end user cannot tell where a computation is taking place
► Where data is exactly stored should be irrelevant to an
application
► If or not data has been replicated is completely hidden
Keyword is distribution transparency
5 / 56
Introduction: What is a distributed system? Middleware and distributed systems
Network
6 / 56
Introduction: Design goals
7 / 56
Introduction: Design goals Supporting resource sharing
Sharing resources
Canonical examples
► Cloud-based shared storage and files
► Peer-to-peer assisted multimedia streaming
► Shared mail services (think of outsourced mail systems)
► Shared Web hosting (think of content distribution networks)
Observation
“The network is the computer”
(quote from John Gage, then at Sun Microsystems)
8 / 56
Introduction: Design goals Making distribution transparent
Distribution transparency
Types
Transparency Description
Access Hide differences in data representation and how
an object is accessed
Location Hide where an object is located
Relocation Hide that an object may be moved to another
location while in use
Migration Hide that an object may move to another location
Replication Hide that an object is replicated
Concurrency Hide that an object may be shared by several
independent users
Failure Hide the failure and recovery of an object
Degree of transparency
Observation
Aiming at full distribution transparency may be too much:
► There are communication latencies that cannot be hidden
► Completely hiding failures of networks and nodes is (theoretically
and practically) impossible
► You cannot distinguish a slow computer from a failing one
► You can never be sure that a server actually performed an
operation before a crash
► Full transparency will cost performance, exposing distribution of
the system
► Keeping replicas exactly up-to-date with the master takes
time
► Immediately flushing write operations to disk for fault
tolerance
Degree of transparency
Conclusion
Distribution transparency is a nice a goal, but achieving it is a different
story, and it should often not even be aimed at.
Observation
Most systems account only, to a certain extent, for size scalability.
Often a solution: multiple powerful servers operating independently in
Scalability dimensions 15 / 56
Introduction: Design goals Being scalable
Scaling techniques 22 / 56
Introduction: Design goals Being scalable
Client Server
MAARTEN M
FIRST NAME A
LAST NAME VAN STEEN A
E-MAIL R
MVS@VAN-STEEN.NET T
E
N
Scaling techniques 23 / 56
Introduction: Design goals Being scalable
Scaling techniques 24 / 56
Introduction: Design goals Being scalable
Scaling techniques 25 / 56
Introduction: Types of distributed systems
28 / 56
Introduction: Types of distributed systems High performance distributed computing
Parallel computing
Observation
High-performance distributed computing started with parallel
computing
Interconnect P P P P
P P P Interconnect
Processor Memory
29 / 56
Introduction: Types of distributed systems High performance distributed computing
Cluster computing
Cluster computing 31 / 56
Introduction: Types of distributed systems High performance distributed computing
Grid computing
Note
To allow for collaborations, grids generally use virtual organizations. In
essence, this is a grouping of users (or better: their IDs) that will allow
for authorization on resource allocation.
Grid computing 32 / 56
Introduction: Types of distributed systems High performance distributed computing
Grid computing 33 / 56
Introduction: Types of distributed systems High performance distributed computing
Cloud computing
Google docs
aa Svc
Software
Platforms
Amazon S3
Computation (VM), storage (block, file) Amazon EC2
Infrastructure
Infrastructure
aa Svc
Hardware
Cloud computing
Cloud computing 35 / 56
Introduction: Types of distributed systems Distributed information systems
Integrating applications
Situation
Organizations confronted with many networked applications, but
achieving interoperability was painful.
Basic approach
A networked application is one that runs on a server making its
services available to remote clients. Simple integration: clients
combine requests for (different) applications; send that off; collect
responses, and present a coherent result to the user.
Next step
Allow direct application-to-application communication, leading to
Enterprise Application Integration.
42 / 56
Introduction: Types of distributed systems Distributed information systems
Server
Reply
Transaction Request
Requests
Request
Client TP monitor Server
application
Reply
Reply
Request
Server
Reply
Observation
In many cases, the data involved in a transaction is distributed across
several servers. A TP Monitor is responsible for coordinating the
execution of a transaction.
Communication middleware
Observation
Emerging next-generation of distributed systems in which nodes are
small, mobile, and often embedded in a larger system, characterized
by the fact that the system naturally blends into the user’s environment.
47 / 56