Title: Distributed Systems: Concepts and Design
1Distributed Systems Concepts and Design
2Topics
- Chapter 1 Characterization of Distributed
Systems - Chapter 2 System Models
3What is Distributed Systems
- A distributed system is one in which components
located at networked computers communicate and
coordinate their actions only by passing
messages. - Three Examples
- The internet
- An intranet which is a portion of the internet
managed by an organization - Mobile and ubiquitous computing
4The Internet
- The Internet is a very large distributed system.
- The implementation of the internet and the
services that it suports has entailed the
development of practical solutions to many
distributed system issues.
5Intranets
- An intranet is a portion of the Internet that is
separately administered and has a boundary that
can be configured to enforce local security
policies - The main issues arising in the design of
components for use in intranets are file
services, firewalls, cost.
6Mobil and ubiquitous computing
- The portability of the devices, such as laptop
computers, PDA, mobil phone, refrigerators,
togather with their ability to connect
conveniently to networks in different places,
makes mobile computing possible. - Ubiquitous computing is the harnessing of many
small cheap computational devices that are
present in users physical environments,
including the home, office and elsewhere.
7Mobil and ubiquitous computing (continue)
- Mobile and ubiquitous computing raise significant
system issues presents an architecture for mobile
compuing and outlines the issues that arise from
it, including how to support the discovery of
resources in a host environment eliminating the
need for users to reconfigure their mobile
devices as they move around helping users to
cope with limited connectivity as they travel
and providing privacy and other security
guarantees to users and the environments that the
visit.
8Significant Consequences of DS
- Concurrency
- The capacity of the system to handle shared
resources can be increased by adding more
resources to the network. - No global clock
- The only communication is by sending messages
through a network. - Independent failures
- The programs may not be able to detect whether
the network has failed or has become unusually
slow.
9Resource
- The term resource is a rather abstract one,
but it best characterizes the range of things
that can usefully be shared in a networked
computer system. It extends from hardware
components such as disks and printers to
software-defined entities such as files,
databases and data objects of all kinds.
10Important Terms of Web
- Services
- A distinct part of a computer system that manages
a collection of related resources and presents
their functionality to users and applications. - 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 apppropriately. - IIS, Apache...
- Client
- The requesting processes.
11The World Wide Web
- The WWW is an evolving system for publishing and
accessing resources and services across the
Internet. - The Web is an open system
- Its oeration is based on communication standards
and document standards tht are freely published
and widely implemented. - The Web is one with respect to the types of
resource that can be published and shared on.
12The main standard components of Web
- HyperText Markup Language (HTML)
- Uniform Resource Laocators (URLs)
- HyperText Transfer Protocol (HTTP)
- HTTP is a request-reply protocol.
13More Discussion of Web
- Dynamic pages
- CGI
- Javascript
- ASP, PHP...
- Discussion
- Hypertext model is lacking in some respects, such
as lost in hyperspace. - HTML is limited in exchanging structured data,
one solution is XML. - The problems of scale.
- A Web page is not always a satisfactory user
interface.
14Challenges
- Heterogeneity
- Openness
- Security
- Scalability
- Failure handling
- Concurrency
- Transparency
15Heterogeneity
- 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. - Mobile code code that can be sent from one
computer to another and run at the destination.
16Openness
- 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 constrcted from heterogeneous
hardware and software.
17Security
- Security for information resources has three
components - Confidentiality protection against disclosure to
unauthorized individuals. - Integrity protection against alteration or
corruption. - Availability protection against interference
with the means to access the resources. - Two new security challenges
- Denial of service attacks (DoS).
- Security of mobile code.
18Scalability
- 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 or money.
- Controlling the performance loss.
- Preventing software resources from running out
- Avoiding preformance bottlenecks.
19Failure 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 form failures
- Redundancy
20Concurrency
- 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.
21Transparency
- Transparency is defined as the concealment from
the user and the application programmer of the
separation of components in a distributed system,
so that the system is perceived as a whole rather
than as a collection of independent components. - Eight forms of transparency
- Access transparency
- Location transparency
- Concurrency transparency
- Replication transparency
- Failure transparency
- Mobility transparency
- Performance transparency
- Scaling transparency
22Summary
- Distributed systems are everywhere
- Internet, intranet, wireless networks.
- Resource sharing is the main motivating factor
for constructing distribute systems. - The constrcution of distributed systems produces
many challenges.
23Chapter 2 System Models
- Introduction
- Architectural models
- Fundamental models
- summary
24Introduction
- In this chapter we bring out the common
properties and design issues for distributed
systems in the form of descriptive modes. - An architectural model defines the way in which
the components of systems interact with one
another and the way in which they are maped onto
an underlying network of computers - In section2.3, we introduce three fundamental
models that help to reveal key problems for the
designers of distributed system.
25Difficulties and threats for distributed systems
- Widely varying modes of use.
- Wide range of system environments
- Internal problems non-synchronized clocks,
conflicting data updates, many modes of hardware
and software failure involving the individual
components of a system.
26Architectural models
- An architectural model of a distributed system
first simplifies and abstracts the functions of
the individual components of a DS and then it
considers - The placement of the components across a network
of computers - The interrelationships between the components.
27Architectural models (cont.)
- Software layers
- System architectures
- Variations on the client-server model
- Interfaces and objects
- Design requirements for distributed architectures
28Software layers
- Applications, services
- Middleware
- Operating system
- Computer and network hardware
29System architectures
- Client-server model
- Services provided by multiple servers
- Proxy srvers and caches
- Peer processes
30Variations on the client-server model
- Mobile code
- Mobile agents
- Network computers
- Thin client
- Mobile devices and spontaneous networking
- The X-11 window system
31Design requirements for distributed architectures
- Performance issues
- Use of caching and replication
- Dependability issues
32Performance issues
- Responsiveness
- Users of interactive aplication require a fast
and consistent response to interaction. - Throughput
- The rate at which computational work is done.
- Quality of services
- The ability to meet the deadlines of users need.
- Balancing computer loads
- In some case load balancing may involve moving
partially-completed work as the loads on hosts
changes.
33Use of caching and replication
- The performance issues often appear to be major
obstacles to the successful deployment of DS, but
much progress has been made in the design of
systems that overcome them by the use of data
replication and caching.
34Dependability issues
- The dependability of computer systems as
correctness, security and fault tolerance. - Fault tolerance reliability is achieved through
redundancy. - Security the architectural impact of the
requirement for security concerns the need to
locate sensitive data and other resources only in
computers that can be effectively secured against
attack.
35Fundamental Models
- Interaction model
- Failure model
- Security model
36Interaction model
- Performance of communication channels
- Computer clocks and timing events
- Two variants of the interaction model
- Agreement in pepperland
- Event ordering
37Performance of communication channels
- Communication performance is often a limiting
characteristic. - The delay between the sending of a message by one
process and its receipt by another is referred to
as latency. - Bandwidth
- Jitter is the variation in the time taken to
deliver a series of messages.
38Computer clock and timing event
- It is impossible to maintain a single global
notion of time. - There are several approaches to correcting the
times on computer clocks. (from GPS)
39Two variants of the interaction model
- Synchronous distributed system
- The time to execute each step f a process has
known lower and uper bounds. - Each message transmitted over a channel is
received within a known bounded time - Each process has a local clock whose drift rate
from real time has a known bound. - Asynchronous distributed system
- No bound on process executiong speeds
- No bound on message transmisson delays
- No bound on clock drift rates.
40Agreement in pepperland
- The pepperland divisions need to agree on which
of them will lead the charge against the Blue
Meanies, and when the charge will take place. - In asynchronous pepperland, the messengers are
very variable in their speed. - The divisions know some useful constraints every
message takes at least min. Minutes and at most
max minutes to arive. - The leading division sends a message charge!,
then waits for min minutes, then it charges. - The other divisions charge is guaranteed to be
after the leading divisions, but no more than
(max-min) after it.
41Event ordering
- In many cases, we are interested in knowing
whether an event (sending or receiving a message)
at one process occurred before, after or
concurrently with another event at another
process. The execution of a system can be
described in terms of events and their ordering
despite the lack of accurate clocks. - example(p. 58).
42Failure model
- Omission failures
- Arbitrary failures
- Failure detection
- Impossibility of reaching agreement in the
presence of failure - Masking failure
- Reliability of one to one communication
43Security model
- Protecting objects
- Securing processes and their interactions
- The enemy
- Defeating security threats
- Other possible threats from the enemy
- The uses of security models
44summary
- Most DS are arranged according to one of a
variety of architectural models. - The fundamental models interaction, failure,
and security identify the common
characteristics of the basic components from
which distributed systems are constructed.