Chapter 1 slides
Download
Report
Transcript Chapter 1 slides
Chapter 1
Characterization of Distributed Systems
Distributed Systems:
Concepts and Design
Edition 5, © Addison-Wesley 2012
DISTRIBUTED SYSTEMS (Essential Issue)
A distributed system is:
A collection of independent computers that appears to
its users as a single coherent system.
Another Definition
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.
2
Introduction
Distributed Systems
Multiple independent computers that appear as one
Lamport’s Definition
“ You know you have one when the crash of a computer you have never heard of
stops you from getting any work done.”
“A number of interconnected autonomous computers that
provide services to meet the information processing needs of
modern enterprises.”
Distributed Systems
3
Key Issue
Concurrency:
In a network of computers, concurrent program
execution is the norm.
No global clock:
When programs need to cooperate they coordinate
their actions by exchanging messages. (a direct
consequence of the fact that the only communication
is by sending messages through a network.)
Independent failures:
Faults in the network result in the isolation of the
computers that are connected to it, but that doesn’t
mean that they stop running.
4
Characteristics of DS
How it works is hidden from user.
Interaction is consistent & uniform
Scalability
Continuously available, even if some parts are out of
order
5
DS Layered Architecture
Commonly implemented through layers & middleware
6
DS Goals
Make Resources Available
Hide the fact that resources are distributed
Distribution Transparency
Be Open
Be Scalable
- coordinate their activities
- share resources: hardware, software, data.
7
Make Resources Available
E.g. Printers, storage facilities, data, files, webpages,
networks etc.
For economic reasons
For collaboration reasons
To create virtual organisations
This produces challenges
Security
Privacy
Examples of Distributed Systems
Transactional applications - Banking systems
Manufacturing and process control
Inventory systems
General purpose (university, office automation)
Communication – email, IM, VoIP, social networks
Distributed information systems
WWW
Cloud Computing Infrastructures
Federated and Distributed Databases
Distributed Systems
9
Selected application domains and associated networked applications
Finance and commerce
eCommerce e.g. Amazon and eBay, PayPal,
online banking and trading
The information society
Web information and search engines, ebooks,
Wikipedia; social networking: Facebook and MySpace.
Creative industries and
entertainment
online gaming, music and film in the home, usergenerated content, e.g. YouTube, Flickr
Healthcare
health informatics, on online patient records,
monitoring patients
Education
e-learning, virtual learning environments;
distance learning
Transport and logistics
GPS in route finding systems, map services:
Google Maps, Google Earth
Science
The Grid as an enabling technology for
collaboration between scientists
Environmental management
sensor technology to monitor earthquakes,
floods or tsunamis
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
10
An example financial trading system
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
11
A typical portion of the Internet
intranet
☎
ISP
☎
☎
☎
backbone
satellite link
desktop computer:
server:
network link:
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Portable and handheld devices in a distributed system
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Cloud computing
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
14
Growth of the Internet (computers and web servers)
Date
1993, July
1995, July
1997, July
1999, July
2001, July
2003, July
2005, July
Computers
Web servers
Percentage
1,776,000
130
0.008
6,642,000
19,540,000
56,218,000
125,888,197
23,500
1,203,096
6,598,697
31,299,592
0.4
6
12
25
~200,000,000
42,298,371
21
353,284,187
67,571,581
19
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Advantages of Distributed Systems
Performance: very often a collection of processors can provide higher performance
(and better price/performance ratio) than a centralized computer.
Distribution: many applications involve, by their nature, spatially separated machines
(banking, commercial, automotive system).
Reliability (fault tolerance): if some of the machines crash, the system can survive.
Incremental growth: as requirements on processing power grow, new machines can
be added incrementally.
Sharing of data/resources: shared data is essential to many applications (banking,
computer supported cooperative work, reservation systems); other resources can
be also shared (e.g. expensive printers).
16
Disadvantages of Distributed Systems
Difficulties of developing distributed software: how
should operating systems, programming languages
and applications look like?
Networking problems: several problems are created by
the network infrastructure, which have to be dealt with:
loss of messages, overloading, ...
Security problems: sharing generates the problem of
data security.
17
Distributed Systems Challenges
Design issues that arise specifically from the
distributed nature of the application:
• Transparency
• Communication
• Performance & scalability
• Heterogeneity
• Openness
• Reliability & fault tolerance
• Security
18
Transparency in a Distributed System
An important goal of distributed systems is to hide the fact that processes
/ resources are physically distributed Enabling users to use the system
without worrying about where the resources are.
Transparency
Description
Access
Hide differences in data representation and how a resource
is accessed
Location
Hide where a resource is located
Migration
Hide that a resource may move to another location
Relocation
Hide that a resource may be moved to another location
while in use
Replication
Hide that a resource may be shared by several competitive
users
Concurrency
Hide that a resource may be shared by several competitive
users
Failure
Hide the failure and recovery of a resource
Persistence
Hide whether a (software) resource is in memory or on
disk
Transparencies
Access transparency: enables local and remote resources to be accessed using identical
operations.
Location transparency: enables resources to be accessed without knowledge of their physical
or network location (for example, which building or IP address).
Concurrency transparency: enables several processes to operate concurrently using shared
resources without interference between them.
Replication transparency: enables multiple instances of resources to be used to increase
reliability and performance without knowledge of the replicas by users or application
programmers.
Failure transparency: enables the concealment of faults, allowing users and application
programs to complete their tasks despite the failure of hardware or software components.
Mobility transparency: allows the movement of resources and clients within a system
without affecting the operation of users or programs.
Performance transparency: allows the system to be reconfigured to improve performance
as loads vary.
Scaling transparency: allows the system and applications to expand in scale without change
to the system structure or the application algorithms.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Access Transparency
Different Resources may represent data in different formats, but
this shouldn’t be an issue for the user.
A user on an Intel workstation sending data to a Sun SPARC machine,
shouldn’t be concerned that Intel orders its bytes by little endian format
(high order bytes first) while SPARC uses big endian format (low order
bytes first).
Different file naming formats should also not be of concern to
the user. ‘/’ or ‘\’.
Location Transparency
Location Transparency refers to the physical position
of a resource, which should be hidden from the user.
This is normally achieved through naming, where
normally only logical names are used;
http://cis.payap.ac.th/index.php
Where is it (physically)?
Has it always been there?
Migration / Relocation Transparency
In the previous web address, you have no idea whether
index.html has always been on the cis.payap.ac.th server, or
when it might have moved there. If resources can be moved
without affecting the way the resource is accessed then
migration transparency is provided. If that movement
occurs while the resource is being accessed, then relocation
transparency is provided. Consider moving around using a
wireless laptop.
Replication Transparency
The efficiency of distributed systems can be improved
greatly by locating replicas (copies) of a resources
physically closer to a user. Replication transparency
enables the system to do this, without the user
knowing they are using a replica.
Concurrency Transparency
A goal of distributed systems is often sharing of
resources between users. These users may wish to
access or even update the same data at the same
time (concurrently). An important challenge when
designing distributed systems is how to deal with
concurrent accesses.
How to maintain consistency when different users use the same
resource in different ways.
Failure Consistency
“You know you have one when the crash of a computer you’ve
never heard of stops you from getting any work done!”
Failure Consistency tries to mask failures such as this.
It is difficult to identify between a resource that has failed and a
resource which is performing badly (slowly).
Consider opening a webpage - is it dead or painfully slow, how long should
the browser wait?
Complete Transparency?
Complete Transparency isn’t always completely
necessary.
E.g. daily newspaper arriving at 7am regardless of location in
the world.
Nor is it always possible.
Physics behind signal transmission.
Scalability
A further goal of Distributed Systems is that they
should be scalable - that is that they can grow;
Scalable by size; more users or resources can be added to the
system.
Scalable by location; resources and users may be physically
distant.
Scalable by administration; system can be easily manageable
as it grows.
Scalability
One problem often encountered when dealing with scalability is
dealing with centralisation.
Centralised services
Centralised data
Centralised algorithms
Imagine how the internet would work if there was only one single
DNS table, and every address resolution request had to be
directed through that computer.
Scalability
Another problem affecting scalability concerns whether
synchronous communication is actually possible.
Many existing systems were designed for synchronous communication.
The laws of physics (including the speed of light), limits the
speed of communication between physically distant
resources.
Leaving a ‘client’ blocked until a reply is sent back.
Scalability & Administration
What happens when a system needs to scale across
multiple, independent adminstrative domains?
Conflicting policies
Resource Usage
Management
Security
Solving Scalability (briefly & currently)
Hiding Communication Latencies
Essentially asynchronous communication. Not waiting for a reply, instead
creating a special handler (thread) to complete previous requests.
Distribution
Splitting a component into smaller parts – e.g. DNS, splits .com, .th, .edu etc.
Replication
For example caching. A copy of the data closer to the request.
Replication & Scalability
Replication can have a downside effect on Scalability
Consistency Problems
How big a problem is this?
Scalability Problems
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
Examples of scalability limitations.
Scaling Techniques (1)
1.4
The difference between letting:
a) a server or
b) a client check forms as they are being filled
Scaling Techniques (2)
1.5
An example of dividing the DNS name space into zones.
Communication
Components of a distributed system have to communicate in order to interact. This implies
support at two levels:
1. Networking infrastructure (interconnections & network software).
2. Appropriate communication primitives and models and their implementation:
• communication primitives:
- send
- receive
- remote procedure call (RPC)
• communication models
- client-server communication: implies a message exchange between two processes: the
process which requests a service and the one which provides it;
- group muticast: the target of a message is a set of processes, which are members of
a given group.
37
Case Study
Web servers and web browsers
Browsers
Web servers
http://www.google.comlsearch?q=obama
www.google.com
Internet
www.cdk5.net
http://www.cdk5.net/
www.w3c.org
File system of
www.w3c.org
standards
http://www.w3.org/standards/faq.html#conformance
faq.html
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012