SlideShare a Scribd company logo
1 of 53
Distributed Systems
Principles and Paradigms
Maarten van Steen
VU Amsterdam, Dept. Computer Science
Room R4.20, steen@cs.vu.nl
Chapter 01: Introduction
Version: October 27, 2010
Contents
2 /26
Chapter
01: Introduction
02: Architectures
03: Processes
04: Communication
05: Naming
06: Synchronization
07: Consistency & Replication
08: Fault Tolerance
09: Security
10: Distributed Object-Based Systems
11: Distributed File Systems
12: Distributed Web-Based Systems
13: Distributed Coordination-Based Systems
Introduction 1.1 Definition
Distributed System: Definition
Local OS 1 Local OS 2 Local OS 3 Local OS 4
Appl. A Application B Appl. C
A distributed system is a piece of software that ensures that:
a collection of independent computers appears to its users as
a single coherent system
Two aspects: (1) independent computers and
(2) single system ⇒ middleware.
Computer 1 Computer 2 Computer 3 Computer 4
Network
3 /26
Distributed system layer (middleware)
Introduction 1.2 Goals
Goals of Distributed Systems
Making resources available
Distribution transparency
Openness
Scalability
4 /26
Introduction 1.2 Goals
Distribution Transparency
Transp. Description
Access Hides differences in data representation and invocation
mechanisms
Location Hides where an object resides
Migration Hides from an object the ability of a system to change
that object’s location
Relocation Hides from a client the ability of a system to change the
location of an object to which the client is bound
Replication Hides the fact that an object or its state may be replicated
and that replicas reside at different locations
Concurrency Hides the coordination of activities between objects to
achieve consistency at a higher level
Failure Hides failure and possible recovery of objects
Note
Distribution transparency is a nice a goal, but achieving it is a different story.
5 /26
Introduction 1.2 Goals
Distribution Transparency
Transp. Description
Access Hides differences in data representation and invocation
mechanisms
Location Hides where an object resides
Migration Hides from an object the ability of a system to change
that object’s location
Relocation Hides from a client the ability of a system to change the
location of an object to which the client is bound
Replication Hides the fact that an object or its state may be replicated
and that replicas reside at different locations
Concurrency Hides the coordination of activities between objects to
achieve consistency at a higher level
Failure Hides failure and possible recovery of objects
Note
Distribution transparency is a nice a goal, but achieving it is a different story.
5 /26
Introduction 1.2 Goals
Degree of Transparency
Observation
Aiming at full distribution transparency may be too much:
Users may be located in different continents
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 Web caches exactly up-to-date with the master
Immediately flushing write operations to disk for fault tolerance
6 /26
Introduction 1.2 Goals
Degree of Transparency
Observation
Aiming at full distribution transparency may be too much:
Users may be located in different continents
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 Web caches exactly up-to-date with the master
Immediately flushing write operations to disk for fault tolerance
6 /26
Introduction 1.2 Goals
Degree of Transparency
Observation
Aiming at full distribution transparency may be too much:
Users may be located in different continents
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 Web caches exactly up-to-date with the master
Immediately flushing write operations to disk for fault tolerance
6 /26
Introduction 1.2 Goals
Degree of Transparency
Observation
Aiming at full distribution transparency may be too much:
Users may be located in different continents
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 Web caches exactly up-to-date with the master
Immediately flushing write operations to disk for fault tolerance
6 /26
Introduction 1.2 Goals
Openness of Distributed Systems
Open distributed system
Be able to interact with services from other open systems, irrespective
of the underlying environment:
Systems should conform to well-defined interfaces
Systems should support portability of applications
Systems should easily interoperate
Achieving openness
At least make the distributed system independent from heterogeneity
of the underlying environment:
Hardware
Platforms
Languages
7 /26
Introduction 1.2 Goals
Openness of Distributed Systems
Open distributed system
Be able to interact with services from other open systems, irrespective
of the underlying environment:
Systems should conform to well-defined interfaces
Systems should support portability of applications
Systems should easily interoperate
Achieving openness
At least make the distributed system independent from heterogeneity
of the underlying environment:
Hardware
Platforms
Languages
7 /26
Introduction 1.2 Goals
Policies versus Mechanisms
Implementing openness
Requires support for different policies:
What level of consistency do we require for client-cached data?
Which operations do we allow downloaded code to perform?
Which QoS requirements do we adjust in the face of varying bandwidth?
What level of secrecy do we require for communication?
Implementing openness
Ideally, a distributed system provides only mechanisms:
Allow (dynamic) setting of caching policies
Support different levels of trust for mobile code
Provide adjustable QoS parameters per data stream
Offer different encryption algorithms
8 /26
Introduction 1.2 Goals
Policies versus Mechanisms
Implementing openness
Requires support for different policies:
What level of consistency do we require for client-cached data?
Which operations do we allow downloaded code to perform?
Which QoS requirements do we adjust in the face of varying bandwidth?
What level of secrecy do we require for communication?
Implementing openness
Ideally, a distributed system provides only mechanisms:
Allow (dynamic) setting of caching policies
Support different levels of trust for mobile code
Provide adjustable QoS parameters per data stream
Offer different encryption algorithms
8 /26
Introduction 1.2 Goals
Scale in Distributed Systems
Observation
Many developers of modern distributed system easily use the adjective
“scalable” without making clear why their system actually scales.
Scalability
At least three components:
Number of users and/or processes (size scalability)
Maximum distance between nodes (geographical scalability)
Number of administrative domains (administrative scalability)
Observation
Most systems account only, to a certain extent, for size scalability. The
(non)solution: powerful servers. Today, the challenge lies in geographical and
administrative scalability.
9 /26
Introduction 1.2 Goals
Scale in Distributed Systems
Observation
Many developers of modern distributed system easily use the adjective
“scalable” without making clear why their system actually scales.
Scalability
At least three components:
Number of users and/or processes (size scalability)
Maximum distance between nodes (geographical scalability)
Number of administrative domains (administrative scalability)
Observation
Most systems account only, to a certain extent, for size scalability. The
(non)solution: powerful servers. Today, the challenge lies in geographical and
administrative scalability.
9 /26
Introduction 1.2 Goals
Scale in Distributed Systems
Observation
Many developers of modern distributed system easily use the adjective
“scalable” without making clear why their system actually scales.
Scalability
At least three components:
Number of users and/or processes (size scalability)
Maximum distance between nodes (geographical scalability)
Number of administrative domains (administrative scalability)
Observation
Most systems account only, to a certain extent, for size scalability. The
(non)solution: powerful servers. Today, the challenge lies in geographical and
administrative scalability.
9 /26
Introduction 1.2 Goals
Techniques for Scaling
Hide communication latencies
Avoid waiting for responses; do something else:
Make use of asynchronous communication
Have separate handler for incoming response
Problem: not every application fits this model
10 /26
Introduction 1.2 Goals
Techniques for Scaling
Distribution
Partition data and computations across multiple machines:
Move computations to clients (Java applets)
Decentralized naming services (DNS)
Decentralized information systems (WWW)
11 /26
Introduction 1.2 Goals
Techniques for Scaling
Replication/caching
Make copies of data available at different machines:
Replicated file servers and databases
Mirrored Web sites
Web caches (in browsers and proxies)
File caching (at server and client)
12 /26
Introduction 1.2 Goals
Scaling – The Problem
Observation
Applying scaling techniques is easy, except for one thing:
Having multiple copies (cached or replicated), leads to
inconsistencies: modifying one copy makes that copy different
from the rest.
Always keeping copies consistent and in a general way requires
global synchronization on each modification.
Global synchronization precludes large-scale solutions.
Observation
If we can tolerate inconsistencies, we may reduce the need for global
synchronization, but tolerating inconsistencies is application
dependent.
13 /26
Introduction 1.2 Goals
Scaling – The Problem
Observation
Applying scaling techniques is easy, except for one thing:
Having multiple copies (cached or replicated), leads to
inconsistencies: modifying one copy makes that copy different
from the rest.
Always keeping copies consistent and in a general way requires
global synchronization on each modification.
Global synchronization precludes large-scale solutions.
Observation
If we can tolerate inconsistencies, we may reduce the need for global
synchronization, but tolerating inconsistencies is application
dependent.
13 /26
Introduction 1.2 Goals
Scaling – The Problem
Observation
Applying scaling techniques is easy, except for one thing:
Having multiple copies (cached or replicated), leads to
inconsistencies: modifying one copy makes that copy different
from the rest.
Always keeping copies consistent and in a general way requires
global synchronization on each modification.
Global synchronization precludes large-scale solutions.
Observation
If we can tolerate inconsistencies, we may reduce the need for global
synchronization, but tolerating inconsistencies is application
dependent.
13 /26
Introduction 1.2 Goals
Scaling – The Problem
Observation
Applying scaling techniques is easy, except for one thing:
Having multiple copies (cached or replicated), leads to
inconsistencies: modifying one copy makes that copy different
from the rest.
Always keeping copies consistent and in a general way requires
global synchronization on each modification.
Global synchronization precludes large-scale solutions.
Observation
If we can tolerate inconsistencies, we may reduce the need for global
synchronization, but tolerating inconsistencies is application
dependent.
13 /26
Introduction 1.2 Goals
Scaling – The Problem
Observation
Applying scaling techniques is easy, except for one thing:
Having multiple copies (cached or replicated), leads to
inconsistencies: modifying one copy makes that copy different
from the rest.
Always keeping copies consistent and in a general way requires
global synchronization on each modification.
Global synchronization precludes large-scale solutions.
Observation
If we can tolerate inconsistencies, we may reduce the need for global
synchronization, but tolerating inconsistencies is application
dependent.
13 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.2 Goals
Developing Distributed Systems: Pitfalls
Observation
Many distributed systems are needlessly complex caused by mistakes
that required patching later on. There are many false assumptions:
The network is reliable
The network is secure
The network is homogeneous
The topology does not change
Latency is zero
Bandwidth is infinite
Transport cost is zero
There is one administrator
14 /26
Introduction 1.3 Types of Distributed Systems
Types of Distributed Systems
Distributed Computing Systems
Distributed Information Systems
Distributed Pervasive Systems
15 /26
Introduction 1.3 Types of Distributed Systems
Distributed Computing Systems
Observation
Many distributed systems are configured for High-Performance
Computing
Cluster Computing
Essentially a group of high-end systems connected through a LAN:
Homogeneous: same OS, near-identical hardware
Single managing node
16 /26
Introduction 1.3 Types of Distributed Systems
Distributed Computing Systems
Local OS
Local OS Local OS Local OS
Standard network
Component
of
parallel
application
Component
of
parallel
application
Component
of
parallel
application
Parallel libs
Management
application
High-speed network
17 /26
Remote access
network
Master node Compute node Compute node Compute node
Introduction 1.3 Types of Distributed Systems
Distributed Computing Systems
Grid Computing
The next step: lots of nodes from everywhere:
Heterogeneous
Dispersed across several organizations
Can easily span a wide-area network
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.
18 /26
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems
Observation
The vast amount of distributed systems in use today are forms of
traditional information systems, that now integrate legacy systems.
Example: Transaction processing systems.
BEGIN TRANSACTION(server, transaction)
READ(transaction, file-1, data)
WRITE(transaction, file-2, data)
newData := MODIFIED(data)
IF WRONG(newData) THEN
ABORT TRANSACTION(transaction)
ELSE
WRITE(transaction, file-2, newData)
END TRANSACTION(transaction)
END IF
19 /26
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems
Observation
The vast amount of distributed systems in use today are forms of
traditional information systems, that now integrate legacy systems.
Example: Transaction processing systems.
BEGIN TRANSACTION(server, transaction)
READ(transaction, file-1, data)
WRITE(transaction, file-2, data)
newData := MODIFIED(data)
IF WRONG(newData) THEN
ABORT TRANSACTION(transaction)
ELSE
WRITE(transaction, file-2, newData)
END TRANSACTION(transaction)
END IF
Note
Transactions form an atomic operation.
19 /26
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems: Transactions
Model
A transaction is a collection of operations on the state of an object (database,
object composition, etc.) that satisfies the following properties (ACID)
20 /26
Atomicity: All operations either succeed, or all of them fail. When the
transaction fails, the state of the object will remain unaffected by the
transaction.
Consistency: A transaction establishes a valid state transition. This does not
exclude the possibility of invalid, intermediate states during the
transaction’s execution.
Isolation: Concurrent transactions do not interfere with each other. It appears
to each transaction T that other transactions occur either before T , or
after T, but never both.
Durability: After the execution of a transaction, its effects are made
permanent: changes to the state survive failures.
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems: Transactions
Model
A transaction is a collection of operations on the state of an object (database,
object composition, etc.) that satisfies the following properties (ACID)
Atomicity: All operations either succeed, or all of them fail. When the
transaction fails, the state of the object will remain unaffected by the
transaction.
Consistency: A transaction establishes a valid state transition. This does not
exclude the possibility of invalid, intermediate states during the
transaction’s execution.
Isolation: Concurrent transactions do not interfere with each other. It appears
to each transaction T that other transactions occur either before T , or
after T, but never both.
Durability: After the execution of a transaction, its effects are made
permanent: changes to the state survive failures.
20 /26
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems: Transactions
Model
A transaction is a collection of operations on the state of an object (database,
object composition, etc.) that satisfies the following properties (ACID)
Atomicity: All operations either succeed, or all of them fail. When the
transaction fails, the state of the object will remain unaffected by the
transaction.
Consistency: A transaction establishes a valid state transition. This does not
exclude the possibility of invalid, intermediate states during the
transaction’s execution.
Isolation: Concurrent transactions do not interfere with each other. It appears
to each transaction T that other transactions occur either before T , or
after T, but never both.
Durability: After the execution of a transaction, its effects are made
permanent: changes to the state survive failures.
20 /26
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems: Transactions
Model
A transaction is a collection of operations on the state of an object (database,
object composition, etc.) that satisfies the following properties (ACID)
Atomicity: All operations either succeed, or all of them fail. When the
transaction fails, the state of the object will remain unaffected by the
transaction.
Consistency: A transaction establishes a valid state transition. This does not
exclude the possibility of invalid, intermediate states during the
transaction’s execution.
Isolation: Concurrent transactions do not interfere with each other. It appears
to each transaction T that other transactions occur either before T , or
after T, but never both.
Durability: After the execution of a transaction, its effects are made
permanent: changes to the state survive failures.
20 /26
Introduction 1.3 Types of Distributed Systems
Distributed Information Systems: Transactions
Model
A transaction is a collection of operations on the state of an object (database,
object composition, etc.) that satisfies the following properties (ACID)
Atomicity: All operations either succeed, or all of them fail. When the
transaction fails, the state of the object will remain unaffected by the
transaction.
Consistency: A transaction establishes a valid state transition. This does not
exclude the possibility of invalid, intermediate states during the
transaction’s execution.
Isolation: Concurrent transactions do not interfere with each other. It appears
to each transaction T that other transactions occur either before T , or
after T, but never both.
Durability: After the execution of a transaction, its effects are made
permanent: changes to the state survive failures.
20 /26
Introduction 1.3 Types of Distributed Systems
Transaction Processing Monitor
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
TP monitor
Server
Server
Server
Client
application
Requests
Reply
Request
Request
Request
Reply
Reply
Reply
Transaction
21 /26
Introduction 1.3 Types of Distributed Systems
Distr. Info. Systems: Enterprise Application Integration
Problem
A TP monitor doesn’t separate apps from their databases. Also
needed are facilities for direct communication between apps.
Server-side
application
Server-side
application
Server-side
application
Client
application
Client
application
Communication middleware
Remote Procedure Call (RPC)
Message-Oriented Middleware (MOM)
22 /26
Introduction 1.3 Types of Distributed Systems
Distributed Pervasive Systems
Observation
Emerging next-generation of distributed systems in which nodes are small,
mobile, and often embedded in a larger system.
Some requirements
Contextual change: The system is part of an environment in which
changes should be immediately accounted for.
Ad hoc composition: Each node may be used in a very different ways by
different users. Requires ease-of-configuration.
Sharing is the default: Nodes come and go, providing sharable services
and information. Calls again for simplicity.
Note
Pervasiveness and distribution transparency: a good match?
23 /26
Introduction 1.3 Types of Distributed Systems
Distributed Pervasive Systems
Observation
Emerging next-generation of distributed systems in which nodes are small,
mobile, and often embedded in a larger system.
Some requirements
Contextual change: The system is part of an environment in which
changes should be immediately accounted for.
Ad hoc composition: Each node may be used in a very different ways by
different users. Requires ease-of-configuration.
Sharing is the default: Nodes come and go, providing sharable services
and information. Calls again for simplicity.
Note
Pervasiveness and distribution transparency: a good match?
23 /26
Introduction 1.3 Types of Distributed Systems
Pervasive Systems: Examples
Home Systems
Should be completely self-organizing:
There should be no system administrator
Provide a personal space for each of its users
Simplest solution: a centralized home box?
Electronic health systems
Devices are physically close to a person:
Where and how should monitored data be stored?
How can we prevent loss of crucial data?
What is needed to generate and propagate alerts?
How can security be enforced?
How can physicians provide online feedback?
24 /26
Introduction 1.3 Types of Distributed Systems
Pervasive Systems: Examples
Home Systems
Should be completely self-organizing:
There should be no system administrator
Provide a personal space for each of its users
Simplest solution: a centralized home box?
Electronic health systems
Devices are physically close to a person:
Where and how should monitored data be stored?
How can we prevent loss of crucial data?
What is needed to generate and propagate alerts?
How can security be enforced?
How can physicians provide online feedback?
24 /26
Introduction 1.3 Types of Distributed Systems
Sensor networks
Characteristics
The nodes to which sensors are attached are:
Many (10s-1000s)
Simple (small memory/compute/communication capacity)
Often battery-powered (or even battery-less)
25 /26
Introduction 1.3 Types of Distributed Systems
Sensor networks as distributed systems
Operator's site
Sensor network
Sensor data
is sent directly
to operator
Sensor network
Operator's site
Query
Sensors
send only
answers
Each sensor
can process and
store data
(a)
(b)
26 /26

More Related Content

Similar to Intro to distributed systems

Distributed OS - An Introduction
Distributed OS - An IntroductionDistributed OS - An Introduction
Distributed OS - An IntroductionSuhit Kulkarni
 
- Introduction - Distributed - System -
- Introduction - Distributed - System  -- Introduction - Distributed - System  -
- Introduction - Distributed - System -ssuser7c150a
 
Chapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systemsChapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systemsFrancelyno Murela
 
Presentation of ditributed system
Presentation of ditributed systemPresentation of ditributed system
Presentation of ditributed systemgoogle
 
chapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.pptchapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.pptAschalewAyele2
 
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
characteristicsofdistributedsystem-121004123308-phpapp02.pptcharacteristicsofdistributedsystem-121004123308-phpapp02.ppt
characteristicsofdistributedsystem-121004123308-phpapp02.pptRamkumardevendiranDe
 
DISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docxDISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docxvinaypandey170
 
Chapter 1-Introduction.ppt
Chapter 1-Introduction.pptChapter 1-Introduction.ppt
Chapter 1-Introduction.pptsirajmohammed35
 
Introduction to Distributed System
Introduction to Distributed SystemIntroduction to Distributed System
Introduction to Distributed SystemSunita Sahu
 
Lecture 1 distriubted computing
Lecture 1 distriubted computingLecture 1 distriubted computing
Lecture 1 distriubted computingARTHURDANIEL12
 
Introduction to Distributed System
Introduction to Distributed SystemIntroduction to Distributed System
Introduction to Distributed SystemRKGhosh3
 
Chapter 1 Introduction- DS.pptx
Chapter 1 Introduction- DS.pptxChapter 1 Introduction- DS.pptx
Chapter 1 Introduction- DS.pptxTadeseBeyene
 
433672084-distributed-vs-parallel-computing-ppt.ppt
433672084-distributed-vs-parallel-computing-ppt.ppt433672084-distributed-vs-parallel-computing-ppt.ppt
433672084-distributed-vs-parallel-computing-ppt.pptMattChristianAustria2
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating SystemAjithaG9
 
Distributed system
Distributed systemDistributed system
Distributed systemchirag patil
 

Similar to Intro to distributed systems (20)

Chapter One.ppt
Chapter One.pptChapter One.ppt
Chapter One.ppt
 
Distributed OS - An Introduction
Distributed OS - An IntroductionDistributed OS - An Introduction
Distributed OS - An Introduction
 
- Introduction - Distributed - System -
- Introduction - Distributed - System  -- Introduction - Distributed - System  -
- Introduction - Distributed - System -
 
Chapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systemsChapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systems
 
Distributed Systems.pptx
Distributed Systems.pptxDistributed Systems.pptx
Distributed Systems.pptx
 
Presentation of ditributed system
Presentation of ditributed systemPresentation of ditributed system
Presentation of ditributed system
 
chapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.pptchapter 1- introduction to distributed system.ppt
chapter 1- introduction to distributed system.ppt
 
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
characteristicsofdistributedsystem-121004123308-phpapp02.pptcharacteristicsofdistributedsystem-121004123308-phpapp02.ppt
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
 
DISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docxDISTRIBUTED SYSTEM.docx
DISTRIBUTED SYSTEM.docx
 
istributed system
istributed systemistributed system
istributed system
 
Chapter 1-Introduction.ppt
Chapter 1-Introduction.pptChapter 1-Introduction.ppt
Chapter 1-Introduction.ppt
 
Introduction to Distributed System
Introduction to Distributed SystemIntroduction to Distributed System
Introduction to Distributed System
 
Lecture 1 distriubted computing
Lecture 1 distriubted computingLecture 1 distriubted computing
Lecture 1 distriubted computing
 
Distributed architecture (SAD)
Distributed architecture (SAD)Distributed architecture (SAD)
Distributed architecture (SAD)
 
Introduction to Distributed System
Introduction to Distributed SystemIntroduction to Distributed System
Introduction to Distributed System
 
Chapter16 new
Chapter16 newChapter16 new
Chapter16 new
 
Chapter 1 Introduction- DS.pptx
Chapter 1 Introduction- DS.pptxChapter 1 Introduction- DS.pptx
Chapter 1 Introduction- DS.pptx
 
433672084-distributed-vs-parallel-computing-ppt.ppt
433672084-distributed-vs-parallel-computing-ppt.ppt433672084-distributed-vs-parallel-computing-ppt.ppt
433672084-distributed-vs-parallel-computing-ppt.ppt
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
 
Distributed system
Distributed systemDistributed system
Distributed system
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

Intro to distributed systems

  • 1. Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Introduction Version: October 27, 2010
  • 2. Contents 2 /26 Chapter 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06: Synchronization 07: Consistency & Replication 08: Fault Tolerance 09: Security 10: Distributed Object-Based Systems 11: Distributed File Systems 12: Distributed Web-Based Systems 13: Distributed Coordination-Based Systems
  • 3. Introduction 1.1 Definition Distributed System: Definition Local OS 1 Local OS 2 Local OS 3 Local OS 4 Appl. A Application B Appl. C A distributed system is a piece of software that ensures that: a collection of independent computers appears to its users as a single coherent system Two aspects: (1) independent computers and (2) single system ⇒ middleware. Computer 1 Computer 2 Computer 3 Computer 4 Network 3 /26 Distributed system layer (middleware)
  • 4. Introduction 1.2 Goals Goals of Distributed Systems Making resources available Distribution transparency Openness Scalability 4 /26
  • 5. Introduction 1.2 Goals Distribution Transparency Transp. Description Access Hides differences in data representation and invocation mechanisms Location Hides where an object resides Migration Hides from an object the ability of a system to change that object’s location Relocation Hides from a client the ability of a system to change the location of an object to which the client is bound Replication Hides the fact that an object or its state may be replicated and that replicas reside at different locations Concurrency Hides the coordination of activities between objects to achieve consistency at a higher level Failure Hides failure and possible recovery of objects Note Distribution transparency is a nice a goal, but achieving it is a different story. 5 /26
  • 6. Introduction 1.2 Goals Distribution Transparency Transp. Description Access Hides differences in data representation and invocation mechanisms Location Hides where an object resides Migration Hides from an object the ability of a system to change that object’s location Relocation Hides from a client the ability of a system to change the location of an object to which the client is bound Replication Hides the fact that an object or its state may be replicated and that replicas reside at different locations Concurrency Hides the coordination of activities between objects to achieve consistency at a higher level Failure Hides failure and possible recovery of objects Note Distribution transparency is a nice a goal, but achieving it is a different story. 5 /26
  • 7. Introduction 1.2 Goals Degree of Transparency Observation Aiming at full distribution transparency may be too much: Users may be located in different continents 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 Web caches exactly up-to-date with the master Immediately flushing write operations to disk for fault tolerance 6 /26
  • 8. Introduction 1.2 Goals Degree of Transparency Observation Aiming at full distribution transparency may be too much: Users may be located in different continents 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 Web caches exactly up-to-date with the master Immediately flushing write operations to disk for fault tolerance 6 /26
  • 9. Introduction 1.2 Goals Degree of Transparency Observation Aiming at full distribution transparency may be too much: Users may be located in different continents 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 Web caches exactly up-to-date with the master Immediately flushing write operations to disk for fault tolerance 6 /26
  • 10. Introduction 1.2 Goals Degree of Transparency Observation Aiming at full distribution transparency may be too much: Users may be located in different continents 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 Web caches exactly up-to-date with the master Immediately flushing write operations to disk for fault tolerance 6 /26
  • 11. Introduction 1.2 Goals Openness of Distributed Systems Open distributed system Be able to interact with services from other open systems, irrespective of the underlying environment: Systems should conform to well-defined interfaces Systems should support portability of applications Systems should easily interoperate Achieving openness At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages 7 /26
  • 12. Introduction 1.2 Goals Openness of Distributed Systems Open distributed system Be able to interact with services from other open systems, irrespective of the underlying environment: Systems should conform to well-defined interfaces Systems should support portability of applications Systems should easily interoperate Achieving openness At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages 7 /26
  • 13. Introduction 1.2 Goals Policies versus Mechanisms Implementing openness Requires support for different policies: What level of consistency do we require for client-cached data? Which operations do we allow downloaded code to perform? Which QoS requirements do we adjust in the face of varying bandwidth? What level of secrecy do we require for communication? Implementing openness Ideally, a distributed system provides only mechanisms: Allow (dynamic) setting of caching policies Support different levels of trust for mobile code Provide adjustable QoS parameters per data stream Offer different encryption algorithms 8 /26
  • 14. Introduction 1.2 Goals Policies versus Mechanisms Implementing openness Requires support for different policies: What level of consistency do we require for client-cached data? Which operations do we allow downloaded code to perform? Which QoS requirements do we adjust in the face of varying bandwidth? What level of secrecy do we require for communication? Implementing openness Ideally, a distributed system provides only mechanisms: Allow (dynamic) setting of caching policies Support different levels of trust for mobile code Provide adjustable QoS parameters per data stream Offer different encryption algorithms 8 /26
  • 15. Introduction 1.2 Goals Scale in Distributed Systems Observation Many developers of modern distributed system easily use the adjective “scalable” without making clear why their system actually scales. Scalability At least three components: Number of users and/or processes (size scalability) Maximum distance between nodes (geographical scalability) Number of administrative domains (administrative scalability) Observation Most systems account only, to a certain extent, for size scalability. The (non)solution: powerful servers. Today, the challenge lies in geographical and administrative scalability. 9 /26
  • 16. Introduction 1.2 Goals Scale in Distributed Systems Observation Many developers of modern distributed system easily use the adjective “scalable” without making clear why their system actually scales. Scalability At least three components: Number of users and/or processes (size scalability) Maximum distance between nodes (geographical scalability) Number of administrative domains (administrative scalability) Observation Most systems account only, to a certain extent, for size scalability. The (non)solution: powerful servers. Today, the challenge lies in geographical and administrative scalability. 9 /26
  • 17. Introduction 1.2 Goals Scale in Distributed Systems Observation Many developers of modern distributed system easily use the adjective “scalable” without making clear why their system actually scales. Scalability At least three components: Number of users and/or processes (size scalability) Maximum distance between nodes (geographical scalability) Number of administrative domains (administrative scalability) Observation Most systems account only, to a certain extent, for size scalability. The (non)solution: powerful servers. Today, the challenge lies in geographical and administrative scalability. 9 /26
  • 18. Introduction 1.2 Goals Techniques for Scaling Hide communication latencies Avoid waiting for responses; do something else: Make use of asynchronous communication Have separate handler for incoming response Problem: not every application fits this model 10 /26
  • 19. Introduction 1.2 Goals Techniques for Scaling Distribution Partition data and computations across multiple machines: Move computations to clients (Java applets) Decentralized naming services (DNS) Decentralized information systems (WWW) 11 /26
  • 20. Introduction 1.2 Goals Techniques for Scaling Replication/caching Make copies of data available at different machines: Replicated file servers and databases Mirrored Web sites Web caches (in browsers and proxies) File caching (at server and client) 12 /26
  • 21. Introduction 1.2 Goals Scaling – The Problem Observation Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. Observation If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is application dependent. 13 /26
  • 22. Introduction 1.2 Goals Scaling – The Problem Observation Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. Observation If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is application dependent. 13 /26
  • 23. Introduction 1.2 Goals Scaling – The Problem Observation Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. Observation If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is application dependent. 13 /26
  • 24. Introduction 1.2 Goals Scaling – The Problem Observation Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. Observation If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is application dependent. 13 /26
  • 25. Introduction 1.2 Goals Scaling – The Problem Observation Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. Observation If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is application dependent. 13 /26
  • 26. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 27. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 28. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 29. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 30. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 31. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 32. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 33. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 34. Introduction 1.2 Goals Developing Distributed Systems: Pitfalls Observation Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 14 /26
  • 35. Introduction 1.3 Types of Distributed Systems Types of Distributed Systems Distributed Computing Systems Distributed Information Systems Distributed Pervasive Systems 15 /26
  • 36. Introduction 1.3 Types of Distributed Systems Distributed Computing Systems Observation Many distributed systems are configured for High-Performance Computing Cluster Computing Essentially a group of high-end systems connected through a LAN: Homogeneous: same OS, near-identical hardware Single managing node 16 /26
  • 37. Introduction 1.3 Types of Distributed Systems Distributed Computing Systems Local OS Local OS Local OS Local OS Standard network Component of parallel application Component of parallel application Component of parallel application Parallel libs Management application High-speed network 17 /26 Remote access network Master node Compute node Compute node Compute node
  • 38. Introduction 1.3 Types of Distributed Systems Distributed Computing Systems Grid Computing The next step: lots of nodes from everywhere: Heterogeneous Dispersed across several organizations Can easily span a wide-area network 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. 18 /26
  • 39. Introduction 1.3 Types of Distributed Systems Distributed Information Systems Observation The vast amount of distributed systems in use today are forms of traditional information systems, that now integrate legacy systems. Example: Transaction processing systems. BEGIN TRANSACTION(server, transaction) READ(transaction, file-1, data) WRITE(transaction, file-2, data) newData := MODIFIED(data) IF WRONG(newData) THEN ABORT TRANSACTION(transaction) ELSE WRITE(transaction, file-2, newData) END TRANSACTION(transaction) END IF 19 /26
  • 40. Introduction 1.3 Types of Distributed Systems Distributed Information Systems Observation The vast amount of distributed systems in use today are forms of traditional information systems, that now integrate legacy systems. Example: Transaction processing systems. BEGIN TRANSACTION(server, transaction) READ(transaction, file-1, data) WRITE(transaction, file-2, data) newData := MODIFIED(data) IF WRONG(newData) THEN ABORT TRANSACTION(transaction) ELSE WRITE(transaction, file-2, newData) END TRANSACTION(transaction) END IF Note Transactions form an atomic operation. 19 /26
  • 41. Introduction 1.3 Types of Distributed Systems Distributed Information Systems: Transactions Model A transaction is a collection of operations on the state of an object (database, object composition, etc.) that satisfies the following properties (ACID) 20 /26 Atomicity: All operations either succeed, or all of them fail. When the transaction fails, the state of the object will remain unaffected by the transaction. Consistency: A transaction establishes a valid state transition. This does not exclude the possibility of invalid, intermediate states during the transaction’s execution. Isolation: Concurrent transactions do not interfere with each other. It appears to each transaction T that other transactions occur either before T , or after T, but never both. Durability: After the execution of a transaction, its effects are made permanent: changes to the state survive failures.
  • 42. Introduction 1.3 Types of Distributed Systems Distributed Information Systems: Transactions Model A transaction is a collection of operations on the state of an object (database, object composition, etc.) that satisfies the following properties (ACID) Atomicity: All operations either succeed, or all of them fail. When the transaction fails, the state of the object will remain unaffected by the transaction. Consistency: A transaction establishes a valid state transition. This does not exclude the possibility of invalid, intermediate states during the transaction’s execution. Isolation: Concurrent transactions do not interfere with each other. It appears to each transaction T that other transactions occur either before T , or after T, but never both. Durability: After the execution of a transaction, its effects are made permanent: changes to the state survive failures. 20 /26
  • 43. Introduction 1.3 Types of Distributed Systems Distributed Information Systems: Transactions Model A transaction is a collection of operations on the state of an object (database, object composition, etc.) that satisfies the following properties (ACID) Atomicity: All operations either succeed, or all of them fail. When the transaction fails, the state of the object will remain unaffected by the transaction. Consistency: A transaction establishes a valid state transition. This does not exclude the possibility of invalid, intermediate states during the transaction’s execution. Isolation: Concurrent transactions do not interfere with each other. It appears to each transaction T that other transactions occur either before T , or after T, but never both. Durability: After the execution of a transaction, its effects are made permanent: changes to the state survive failures. 20 /26
  • 44. Introduction 1.3 Types of Distributed Systems Distributed Information Systems: Transactions Model A transaction is a collection of operations on the state of an object (database, object composition, etc.) that satisfies the following properties (ACID) Atomicity: All operations either succeed, or all of them fail. When the transaction fails, the state of the object will remain unaffected by the transaction. Consistency: A transaction establishes a valid state transition. This does not exclude the possibility of invalid, intermediate states during the transaction’s execution. Isolation: Concurrent transactions do not interfere with each other. It appears to each transaction T that other transactions occur either before T , or after T, but never both. Durability: After the execution of a transaction, its effects are made permanent: changes to the state survive failures. 20 /26
  • 45. Introduction 1.3 Types of Distributed Systems Distributed Information Systems: Transactions Model A transaction is a collection of operations on the state of an object (database, object composition, etc.) that satisfies the following properties (ACID) Atomicity: All operations either succeed, or all of them fail. When the transaction fails, the state of the object will remain unaffected by the transaction. Consistency: A transaction establishes a valid state transition. This does not exclude the possibility of invalid, intermediate states during the transaction’s execution. Isolation: Concurrent transactions do not interfere with each other. It appears to each transaction T that other transactions occur either before T , or after T, but never both. Durability: After the execution of a transaction, its effects are made permanent: changes to the state survive failures. 20 /26
  • 46. Introduction 1.3 Types of Distributed Systems Transaction Processing Monitor 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 TP monitor Server Server Server Client application Requests Reply Request Request Request Reply Reply Reply Transaction 21 /26
  • 47. Introduction 1.3 Types of Distributed Systems Distr. Info. Systems: Enterprise Application Integration Problem A TP monitor doesn’t separate apps from their databases. Also needed are facilities for direct communication between apps. Server-side application Server-side application Server-side application Client application Client application Communication middleware Remote Procedure Call (RPC) Message-Oriented Middleware (MOM) 22 /26
  • 48. Introduction 1.3 Types of Distributed Systems Distributed Pervasive Systems Observation Emerging next-generation of distributed systems in which nodes are small, mobile, and often embedded in a larger system. Some requirements Contextual change: The system is part of an environment in which changes should be immediately accounted for. Ad hoc composition: Each node may be used in a very different ways by different users. Requires ease-of-configuration. Sharing is the default: Nodes come and go, providing sharable services and information. Calls again for simplicity. Note Pervasiveness and distribution transparency: a good match? 23 /26
  • 49. Introduction 1.3 Types of Distributed Systems Distributed Pervasive Systems Observation Emerging next-generation of distributed systems in which nodes are small, mobile, and often embedded in a larger system. Some requirements Contextual change: The system is part of an environment in which changes should be immediately accounted for. Ad hoc composition: Each node may be used in a very different ways by different users. Requires ease-of-configuration. Sharing is the default: Nodes come and go, providing sharable services and information. Calls again for simplicity. Note Pervasiveness and distribution transparency: a good match? 23 /26
  • 50. Introduction 1.3 Types of Distributed Systems Pervasive Systems: Examples Home Systems Should be completely self-organizing: There should be no system administrator Provide a personal space for each of its users Simplest solution: a centralized home box? Electronic health systems Devices are physically close to a person: Where and how should monitored data be stored? How can we prevent loss of crucial data? What is needed to generate and propagate alerts? How can security be enforced? How can physicians provide online feedback? 24 /26
  • 51. Introduction 1.3 Types of Distributed Systems Pervasive Systems: Examples Home Systems Should be completely self-organizing: There should be no system administrator Provide a personal space for each of its users Simplest solution: a centralized home box? Electronic health systems Devices are physically close to a person: Where and how should monitored data be stored? How can we prevent loss of crucial data? What is needed to generate and propagate alerts? How can security be enforced? How can physicians provide online feedback? 24 /26
  • 52. Introduction 1.3 Types of Distributed Systems Sensor networks Characteristics The nodes to which sensors are attached are: Many (10s-1000s) Simple (small memory/compute/communication capacity) Often battery-powered (or even battery-less) 25 /26
  • 53. Introduction 1.3 Types of Distributed Systems Sensor networks as distributed systems Operator's site Sensor network Sensor data is sent directly to operator Sensor network Operator's site Query Sensors send only answers Each sensor can process and store data (a) (b) 26 /26