SlideShare a Scribd company logo
1 of 40
DISTRIBUTED
SYSTEM
I C S 2 4 0 3 L E C T 1
D E N N I S B O E R A
DEFINITIONS
• A distributed system is a collection of independent
computers that appears to its users as a single
coherent system.
• A distributed system is a collection of autonomous
computers linked by a computer network that appear
to the users of the system as a single computer.
• A collection of autonomous computers linked by a
computer network and supported by software that
enables the collection to operate as an integrated
facility.
• You know you have one when the crash of a
computer you have never heard of stops you from
getting any work done. (Leslie Lamport).
IMPORTANT ASPECTS:
• A distributed system consists of components (i.e.,
computers) that are autonomous
• Users (people or programs) think they are dealing with
a single system
• Autonomous components need to collaborate
•Examples of distributed systems:
–Network of workstations
–Distributed manufacturing system (e.g, automated
assembly line)
–Network of branch office computers
–Automatic Teller Machine Network (ATMs)
–Local Area Network
–Database Management System
–World-Wide Web
CHARACTERISTICS OF DISTRIBUTED SYSTEMS:
Differences between various computers and the ways
in which they communicate are mostly hidden from
users.
Users and applications can interact with a distributed
system in a consistent and uniform way, regardless of
where and when interaction takes place.
Distributed systems should also be relatively easy to
expand or scale.
A distributed system will normally be continuously
available
Multiple autonomous components.
Heterogeneous.
Components are not shared by all users.
Resources may not be accessible.
Software runs in concurrent processes on different
processors.
Multiple Points of control.
Multiple Points of failure (but more fault tolerant!).
• Layers of software support heterogeneous computers
and networks while offering a single system view -
sometimes called middleware.
Four networked computers and three applications:
1. Application B is distributed across computers 2 and
3.
2. Each application is offered the same interface
3. Distributed system provides the means for
components of a single distributed application to
communicate with each other, but also to let different
applications communicate.
4. It also hides the differences in hardware and
operating systems from each application.
GOALS
• Four goals that should be met to make building a
distributed system worth the effort:
• 1. should make resources easily accessible
• 2. should reasonably hide the fact that resources are
distributed across a network;
• 3. should be open
• 4. should be scalable.
1. MAKING RESOURCES ACCESSIBLE
• Main goal of a distributed system –
make it easy for the users (and applications) to
access remote resources
to share them in a controlled and efficient way.
• Resources - anything: printers, computers, storage
facilities, data, files, Web pages, and networks, etc.
• Accessibility Issues
security
unwanted communication
2. DISTRIBUTION TRANSPARENCY
• Goal - hide the fact that its processes and resources
are physically distributed across multiple computers –
systems should be transparent
• Different forms of transparency in a distributed system
(ISO, 1995).
Transparency Description
Access Hide differences in data representation and
how a resource is accessed
Migration Hide that a resource may move to another
location
Location Hide where a resource is located
Relocation Hide that a resource may be moved to another
location while in use
Replication Hide that a resource is replicated
Concurrency Hide that a resource may be shared by
several competitive users
Failure Hide the failure and recovery of a resource
Degree of Transparency
• Issues:
Timing:
• e.g. requesting an electronic newspaper to appear in
your mailbox before 7 A.M. local time, as usual, while
you are currently at the other end of the world living in
a different time zone.
 Synchronization:
• e.g. a wide-area distributed system that connects a
process in San Francisco to a process in Amsterdam
limited by laws of physics - a message sent from one
process to the other takes about 35 milliseconds.
it takes several hundreds of milliseconds using a
computer network.
• signal transmission is not only limited by the speed of
light, but also by limited processing capacities of the
intermediate switches.
 Performance:
• e.g. many Internet applications repeatedly try to
contact a server before finally giving up.
• Consequently, attempting to mask a transient server
failure before trying another one may slow down the
system as a whole.
Consistency:
• e.g. need to guarantee that several replicas, located
on different continents, need to be consistent all the
time - a single update operation may now even take
seconds to complete, something that cannot be
hidden from users.
Context Awareness:
• e.g. notion of location and context awareness is
becoming increasingly important, it may be best to
actually expose distribution rather than trying to hide
it.
• Consider an office worker who wants to print a file
from her notebook computer.
• It is better to send the print job to a busy nearby
printer, rather than to an idle one at corporate
headquarters in a different country.
Limits of Possibility:
• Recognizing that full distribution transparency is
simply impossible, we should ask ourselves whether it
is even wise to pretend that we can achieve it.
3. OPENNESS
• Goal: offer services according to standard rules that
describe the syntax and semantics of those services.
e.g.
computer networks - standard rules govern the
format, contents, and meaning of messages sent and
received.
distributed systems - services are specified through
interfaces, which are often described in an Interface
Definition Language (IDL).
• Interface definitions written in an IDL nearly always
capture only the syntax of services
• specify names of the available functions with types of
parameters, return values, possible exceptions that can
be raised, etc.
• allows an arbitrary process that needs a certain
interface to talk to another process that provides that
interface
• allows two independent parties to build completely
different implementations of those interfaces, leading to
two separate distributed systems that operate in exactly
• Properties of specifications:
• Complete - everything that is necessary to make an
implementation has been specified.
• Neutral - specifications do not prescribe what an
implementation should look like
Lead to:
• Interoperability - characterizes the extent by which two
implementations of systems or components from
different manufacturers can co-exist and work
together by merely relying on each other's services as
specified by a common standard.
• Portability - characterizes to what extent an
application developed for a distributed system A can
be executed, without modification, on a different
distributed system B that implements the same
interfaces as A.
• Goals: an open distributed system should also be
extensible. i.e.
be easy to configure the system out of different
components (possibly from different developers).
be easy to add new components or replace existing
ones without affecting those components that stay in
place.
4. SCALABILITY
• Scalability of a system is measured with respect to:
1. Size - can easily add more users and resources to
the system.
2. Geographic extent - a geographically scalable
system is one in which the users and resources may
lie far apart.
3. Administrative scalability - can be easy to manage
even if it spans many independent administrative
organizations.
Scalability limitations of size
Concept Example
Centralized services A single server for all users
Centralized data A single on-line telephone
book
Centralized algorithms Doing routing based on
complete information
ARCHITECTURE
Distributed programming typically falls into one of
several basic architectures or categories:
• Client-server — Smart client code contacts the
server for data, then formats and displays it to the
user. Input at the client is committed back to the
server when it represents a permanent change.
• 3-tier architecture — Three tier systems move the
client intelligence to a middle tier so that stateless
clients can be used. This simplifies application
deployment. Most web applications are 3-Tier.
• N-tier architecture — N-Tier refers typically to web
applications which further forward their requests to
other enterprise services. This type of application is
the one most responsible for the success of
application servers.
• Tightly coupled (clustered) — refers typically to a
set of highly integrated machines that run the same
process in parallel, subdividing the task in parts that
are made individually by each one, and then put back
together to make the final result.
• Peer-to-peer —an architecture where there is no
special machine or machines that provide a service or
manage the network resources. Instead all
responsibilities are uniformly divided among all
machines, known as peers. Peers can serve both as
clients and servers.
• Space based — refers to an infrastructure that
creates the illusion (virtualization) of one single
address-space. Data are transparently replicated
according to application needs. Decoupling in time,
space and reference is achieved.
SCALING TECHNIQUES
• Three techniques for scaling:
a. hiding communication latencies
b. distribution
c. replication
A. Hiding communication latencies - important to
achieving geographical scalability.
• 1. try to avoid waiting for responses to remote service
requests.
e.g, when a service has been requested at a remote
machine, an alternative to waiting for a reply from the
server is to do other useful work at the requester's
side.
construct the requesting application in such a way
that it uses only asynchronous communication.
• 2. reduce the overall communication
e.g. in interactive applications when a user sends a
request he will generally have nothing better to do
than to wait for the answer.
move part of the computation that is normally done at
the server to the client process requesting the service.
B. Distribution - splitting a component into smaller
parts and spreading those parts across the system.
e.g. Internet Domain Name System (DNS).
• The DNS name space is hierarchically organized into
a tree of domains, which are divided into non-
overlapping zones.
• Names in each zone are handled by a single name
server.
• Resolving a name means returning the network
address of the associated host.
C. Issues of caching and replication - multiple copies
of a resource -> modifying one copy makes that copy
different from the others -> leads to consistency
problems.
• Weak consistency – e.g. a cached Web document of
which the validity has not been checked for the last
few minutes.
• Strong consistency – e.g. electronic stock exchanges
and auctions.
• problem –
An update must be immediately propagated to all
other copies.
If two updates happen concurrently, it is often also
required that each copy is updated in the same order.
Generally requires some global synchronization
mechanism – hard to implement in a scalable way (i.e.
speed of light
PITFALLS
• False assumptions that everyone makes when
developing a distributed application for the first time
(by Peter Deutsch):
• 1. The network is reliable.
• 2. The network is secure.
• 3. The network is homogeneous.
• 4. The topology does not change.
• 5. Latency is zero.
• 6. Bandwidth is infinite.
• 7. Transport cost is zero.
• 8. There is one administrator.
END

More Related Content

Similar to Lect 1 Distributed System.pptx

Distributed operating system
Distributed operating systemDistributed operating system
Distributed operating systemudaya khanal
 
Lect 2 Types of Distributed Systems.pptx
Lect 2 Types of Distributed Systems.pptxLect 2 Types of Distributed Systems.pptx
Lect 2 Types of Distributed Systems.pptxPardonSamson
 
introduction to cloud computing for college.pdf
introduction to cloud computing for college.pdfintroduction to cloud computing for college.pdf
introduction to cloud computing for college.pdfsnehan789
 
20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.ppt20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.pptsuganthi66742
 
Distributed Operating System.pptx
Distributed Operating System.pptxDistributed Operating System.pptx
Distributed Operating System.pptxharpreetkaur1129
 
01Introduction to Cloud Computing .pptx
01Introduction to Cloud Computing  .pptx01Introduction to Cloud Computing  .pptx
01Introduction to Cloud Computing .pptxssuser586772
 
Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes SAhammedShakil
 
- Introduction - Distributed - System -
- Introduction - Distributed - System  -- Introduction - Distributed - System  -
- Introduction - Distributed - System -ssuser7c150a
 
Concepts of Distributed Computing & Cloud Computing
Concepts of Distributed Computing & Cloud Computing Concepts of Distributed Computing & Cloud Computing
Concepts of Distributed Computing & Cloud Computing Hitesh Kumar Markam
 
UNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptx
UNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptxUNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptx
UNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptxLeahRachael
 
Chapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systemsChapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systemsFrancelyno Murela
 
02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdfRobeliaJoyVillaruz
 
An Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.pptAn Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.pptHarshalUbale2
 

Similar to Lect 1 Distributed System.pptx (20)

CCUnit1.pdf
CCUnit1.pdfCCUnit1.pdf
CCUnit1.pdf
 
Distributed operating system
Distributed operating systemDistributed operating system
Distributed operating system
 
Lect 2 Types of Distributed Systems.pptx
Lect 2 Types of Distributed Systems.pptxLect 2 Types of Distributed Systems.pptx
Lect 2 Types of Distributed Systems.pptx
 
Lecture 9.pptx
Lecture 9.pptxLecture 9.pptx
Lecture 9.pptx
 
introduction to cloud computing for college.pdf
introduction to cloud computing for college.pdfintroduction to cloud computing for college.pdf
introduction to cloud computing for college.pdf
 
PPTS DS UNIT-1.pptx
PPTS DS UNIT-1.pptxPPTS DS UNIT-1.pptx
PPTS DS UNIT-1.pptx
 
20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.ppt20IT703_PDS_PPT_Unit_I.ppt
20IT703_PDS_PPT_Unit_I.ppt
 
Distributed Operating System.pptx
Distributed Operating System.pptxDistributed Operating System.pptx
Distributed Operating System.pptx
 
01Introduction to Cloud Computing .pptx
01Introduction to Cloud Computing  .pptx01Introduction to Cloud Computing  .pptx
01Introduction to Cloud Computing .pptx
 
Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes Distributed system Tanenbaum chapter 1,2,3,4 notes
Distributed system Tanenbaum chapter 1,2,3,4 notes
 
Types of computing
Types of computingTypes of computing
Types of computing
 
- Introduction - Distributed - System -
- Introduction - Distributed - System  -- Introduction - Distributed - System  -
- Introduction - Distributed - System -
 
Concepts of Distributed Computing & Cloud Computing
Concepts of Distributed Computing & Cloud Computing Concepts of Distributed Computing & Cloud Computing
Concepts of Distributed Computing & Cloud Computing
 
UNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptx
UNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptxUNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptx
UNIT 4 - UNDERSTANDING THE NETWORK ARCHITECTURE.pptx
 
DSchap-02.ppt
DSchap-02.pptDSchap-02.ppt
DSchap-02.ppt
 
Distributed computing
Distributed computingDistributed computing
Distributed computing
 
Chapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systemsChapter 1 -_characterization_of_distributed_systems
Chapter 1 -_characterization_of_distributed_systems
 
02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
An Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.pptAn Introduction to Cloud Computing and Lates Developments.ppt
An Introduction to Cloud Computing and Lates Developments.ppt
 

Recently uploaded

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 

Recently uploaded (20)

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort 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
 

Lect 1 Distributed System.pptx

  • 1. DISTRIBUTED SYSTEM I C S 2 4 0 3 L E C T 1 D E N N I S B O E R A
  • 2. DEFINITIONS • A distributed system is a collection of independent computers that appears to its users as a single coherent system. • A distributed system is a collection of autonomous computers linked by a computer network that appear to the users of the system as a single computer.
  • 3. • A collection of autonomous computers linked by a computer network and supported by software that enables the collection to operate as an integrated facility. • You know you have one when the crash of a computer you have never heard of stops you from getting any work done. (Leslie Lamport).
  • 4. IMPORTANT ASPECTS: • A distributed system consists of components (i.e., computers) that are autonomous • Users (people or programs) think they are dealing with a single system • Autonomous components need to collaborate
  • 5. •Examples of distributed systems: –Network of workstations –Distributed manufacturing system (e.g, automated assembly line) –Network of branch office computers –Automatic Teller Machine Network (ATMs) –Local Area Network –Database Management System –World-Wide Web
  • 6. CHARACTERISTICS OF DISTRIBUTED SYSTEMS: Differences between various computers and the ways in which they communicate are mostly hidden from users. Users and applications can interact with a distributed system in a consistent and uniform way, regardless of where and when interaction takes place. Distributed systems should also be relatively easy to expand or scale. A distributed system will normally be continuously available
  • 7. Multiple autonomous components. Heterogeneous. Components are not shared by all users. Resources may not be accessible. Software runs in concurrent processes on different processors. Multiple Points of control. Multiple Points of failure (but more fault tolerant!).
  • 8. • Layers of software support heterogeneous computers and networks while offering a single system view - sometimes called middleware.
  • 9.
  • 10. Four networked computers and three applications: 1. Application B is distributed across computers 2 and 3. 2. Each application is offered the same interface 3. Distributed system provides the means for components of a single distributed application to communicate with each other, but also to let different applications communicate. 4. It also hides the differences in hardware and operating systems from each application.
  • 11. GOALS • Four goals that should be met to make building a distributed system worth the effort: • 1. should make resources easily accessible • 2. should reasonably hide the fact that resources are distributed across a network; • 3. should be open • 4. should be scalable.
  • 12. 1. MAKING RESOURCES ACCESSIBLE • Main goal of a distributed system – make it easy for the users (and applications) to access remote resources to share them in a controlled and efficient way. • Resources - anything: printers, computers, storage facilities, data, files, Web pages, and networks, etc.
  • 14. 2. DISTRIBUTION TRANSPARENCY • Goal - hide the fact that its processes and resources are physically distributed across multiple computers – systems should be transparent • Different forms of transparency in a distributed system (ISO, 1995).
  • 15. Transparency Description Access Hide differences in data representation and how a resource is accessed Migration Hide that a resource may move to another location Location Hide where a resource is located Relocation Hide that a resource may be moved to another location while in use Replication Hide that a resource is replicated Concurrency Hide that a resource may be shared by several competitive users Failure Hide the failure and recovery of a resource
  • 16. Degree of Transparency • Issues: Timing: • e.g. requesting an electronic newspaper to appear in your mailbox before 7 A.M. local time, as usual, while you are currently at the other end of the world living in a different time zone.
  • 17.  Synchronization: • e.g. a wide-area distributed system that connects a process in San Francisco to a process in Amsterdam limited by laws of physics - a message sent from one process to the other takes about 35 milliseconds. it takes several hundreds of milliseconds using a computer network. • signal transmission is not only limited by the speed of light, but also by limited processing capacities of the intermediate switches.
  • 18.  Performance: • e.g. many Internet applications repeatedly try to contact a server before finally giving up. • Consequently, attempting to mask a transient server failure before trying another one may slow down the system as a whole.
  • 19. Consistency: • e.g. need to guarantee that several replicas, located on different continents, need to be consistent all the time - a single update operation may now even take seconds to complete, something that cannot be hidden from users.
  • 20. Context Awareness: • e.g. notion of location and context awareness is becoming increasingly important, it may be best to actually expose distribution rather than trying to hide it. • Consider an office worker who wants to print a file from her notebook computer. • It is better to send the print job to a busy nearby printer, rather than to an idle one at corporate headquarters in a different country.
  • 21. Limits of Possibility: • Recognizing that full distribution transparency is simply impossible, we should ask ourselves whether it is even wise to pretend that we can achieve it.
  • 22. 3. OPENNESS • Goal: offer services according to standard rules that describe the syntax and semantics of those services. e.g. computer networks - standard rules govern the format, contents, and meaning of messages sent and received. distributed systems - services are specified through interfaces, which are often described in an Interface Definition Language (IDL).
  • 23. • Interface definitions written in an IDL nearly always capture only the syntax of services • specify names of the available functions with types of parameters, return values, possible exceptions that can be raised, etc. • allows an arbitrary process that needs a certain interface to talk to another process that provides that interface • allows two independent parties to build completely different implementations of those interfaces, leading to two separate distributed systems that operate in exactly
  • 24. • Properties of specifications: • Complete - everything that is necessary to make an implementation has been specified. • Neutral - specifications do not prescribe what an implementation should look like Lead to: • Interoperability - characterizes the extent by which two implementations of systems or components from different manufacturers can co-exist and work together by merely relying on each other's services as specified by a common standard.
  • 25. • Portability - characterizes to what extent an application developed for a distributed system A can be executed, without modification, on a different distributed system B that implements the same interfaces as A.
  • 26. • Goals: an open distributed system should also be extensible. i.e. be easy to configure the system out of different components (possibly from different developers). be easy to add new components or replace existing ones without affecting those components that stay in place.
  • 27. 4. SCALABILITY • Scalability of a system is measured with respect to: 1. Size - can easily add more users and resources to the system. 2. Geographic extent - a geographically scalable system is one in which the users and resources may lie far apart. 3. Administrative scalability - can be easy to manage even if it spans many independent administrative organizations.
  • 28. Scalability limitations of size Concept Example Centralized services A single server for all users Centralized data A single on-line telephone book Centralized algorithms Doing routing based on complete information
  • 29. ARCHITECTURE Distributed programming typically falls into one of several basic architectures or categories: • Client-server — Smart client code contacts the server for data, then formats and displays it to the user. Input at the client is committed back to the server when it represents a permanent change. • 3-tier architecture — Three tier systems move the client intelligence to a middle tier so that stateless clients can be used. This simplifies application deployment. Most web applications are 3-Tier.
  • 30. • N-tier architecture — N-Tier refers typically to web applications which further forward their requests to other enterprise services. This type of application is the one most responsible for the success of application servers. • Tightly coupled (clustered) — refers typically to a set of highly integrated machines that run the same process in parallel, subdividing the task in parts that are made individually by each one, and then put back together to make the final result.
  • 31. • Peer-to-peer —an architecture where there is no special machine or machines that provide a service or manage the network resources. Instead all responsibilities are uniformly divided among all machines, known as peers. Peers can serve both as clients and servers. • Space based — refers to an infrastructure that creates the illusion (virtualization) of one single address-space. Data are transparently replicated according to application needs. Decoupling in time, space and reference is achieved.
  • 32. SCALING TECHNIQUES • Three techniques for scaling: a. hiding communication latencies b. distribution c. replication
  • 33. A. Hiding communication latencies - important to achieving geographical scalability. • 1. try to avoid waiting for responses to remote service requests. e.g, when a service has been requested at a remote machine, an alternative to waiting for a reply from the server is to do other useful work at the requester's side. construct the requesting application in such a way that it uses only asynchronous communication.
  • 34. • 2. reduce the overall communication e.g. in interactive applications when a user sends a request he will generally have nothing better to do than to wait for the answer. move part of the computation that is normally done at the server to the client process requesting the service.
  • 35. B. Distribution - splitting a component into smaller parts and spreading those parts across the system. e.g. Internet Domain Name System (DNS). • The DNS name space is hierarchically organized into a tree of domains, which are divided into non- overlapping zones. • Names in each zone are handled by a single name server. • Resolving a name means returning the network address of the associated host.
  • 36. C. Issues of caching and replication - multiple copies of a resource -> modifying one copy makes that copy different from the others -> leads to consistency problems. • Weak consistency – e.g. a cached Web document of which the validity has not been checked for the last few minutes. • Strong consistency – e.g. electronic stock exchanges and auctions. • problem –
  • 37. An update must be immediately propagated to all other copies. If two updates happen concurrently, it is often also required that each copy is updated in the same order. Generally requires some global synchronization mechanism – hard to implement in a scalable way (i.e. speed of light
  • 38. PITFALLS • False assumptions that everyone makes when developing a distributed application for the first time (by Peter Deutsch): • 1. The network is reliable. • 2. The network is secure. • 3. The network is homogeneous. • 4. The topology does not change.
  • 39. • 5. Latency is zero. • 6. Bandwidth is infinite. • 7. Transport cost is zero. • 8. There is one administrator.
  • 40. END