Distributed Systems
Distributed Systems
4
ARCHITECTURE OF
DISTRIBUTES SYSTEM
Concurrency
In a distributed system it is possible that many clients
access the same resource at the same time.
No global clock
The only communication is by sending messages through
a network.
Independent failures
Components running on different computers can fail
without hurting other programs.
10
5
ADVANTAGES
6
RESOURCES AND COMPONENTS
The terms “resources” and “components” are used to
describe how a distributed system is built up.
These terms are very abstract, but the range of things
that can be connected and shared is very large.
11
IMPORTANT TERMS
Service
A distinct part of a computer system that manages a collection of
related resources and presents their functionality to users and
applications
Internet services: http, telnet, pop3...
Server
A running program (a process) on a networked computer that
accepts requests from programs running on other computers to
perform a service, and responds appropriately
Internet servers: Apache, Sendmail, WU-ftpd, OpenSSH
Client
The requesting process 12
CHALLENGES FOR A DISTRIBUTED
SYSTEM
Heterogeneity
Openness
Security
Scalability
Failure handling
Concurrency
Transparency
16
HETEROGENEITY
Different networks, hardware, operating systems,
programming languages, developers
We set up protocols to solve these heterogeneities
Middleware: a software layer that provides a programming
abstraction as well as masking the heterogeneity. Ex: RMI
Mobile code: code that can be sent from one computer to
another and run at the destination. Ex: Applet
17
OPENNESS
The openness of DS is determined primarily by the degree to
which new resource-sharing services can be added and be
made available for use by a variety of client programs
Open systems are characterized by the fact that their key
interfaces are published
Open DS are based on the provision of a uniform
communication mechanism and published interfaces for
access to shared resources
Open DS can be constructed from heterogeneous hardware
and software
18
SECURITY
Security for information resources has three
components:
Confidentiality: protection against disclosure to
unauthorized individuals. E.g. ACLs (access control
lists) to provide authorized access to information
Integrity: protection against alteration or corruption. E.g.
changing the account number or amount value in a
money order
Availability: protection against interference with the
means to access the resources. E.g. denial of service
(DoS, DDoS) attacks 19
SCALABILITY
A system is described as scalable if it remains effective
when there is a significant increase in the number of
resources and the number of users
Challenges:
Controlling the cost of resources
Controlling loss of performance
Preventing software resources from running out
Avoiding performance bottlenecks
20
FAILURE HANDLING
When faults occur in hardware or software,
programs may produce incorrect results or they may
stop before they have completed the intended
computation
Techniques for dealing with failures:
Detecting failures
Masking failures
Tolerating failures
Recovering from failures
21
CONCURRENCY
There is a possibility that several clients will attempt to
access a shared resource at the same time
Any object that represents a shared resource in a distributed
system must be responsible for ensuring that operates
correctly in a concurrent environment
22
TRANSPARENCY
23
EIGHT FORMS OF
TRANSPARENCY:
Access transparency: Access to local or remote resources is
identical. E.g. Network File System / Dropbox
Location transparency: Access without knowledge of
location E.g. separation of domain name from machine
address.
Concurrency transparency: enables several processes to
operate concurrently using shared resources without
interference between them.
Replication transparency: Access to replicated resources
as if there was just one. And provide enhanced reliability
and performance without knowledge of the replicas by users
or application programmers.
17
Failure transparency: Tasks can be completed despite
failures. E.g. message retransmission, failure of a Web
server node should not bring down the website.
Mobility transparency: Allow the movement of
resources and clients within a system without affecting
the operation of users or applications. E.g. switching
from one name server to another at runtime; migration of
an agent/process from one node to another.
Performance transparency: Allows the system to be
reconfigured to improve performance as loads vary. E.g.,
dynamic addition/deletion of components, switching
from linear structures to hierarchical structures when the
number of users increases.
18
SUMMARY
Distributed systems are everywhere
Distributed system is an operating system that manages multiple computer
through networks.
Distributed system serves as a middleware that provides interface for
multiple applications across multiple machines.
Resource sharing is the
main motivating factor for
constructing distribute
systems
The construction of a
distributed system produces
many challenges
24