What is a Distributed System
Download
Report
Transcript What is a Distributed System
Transparency
In
Distributed Systems
Hiremath,Naveen
[email protected]
OUTLINE
➲ What
is a Distributed
System?
➲ Why D.S.?
➲ Design Issues of D.S.
➲ Transparency in a D.S.
➲ Transparency Goals
➲ Degree of Transparency
➲ Case Study
What is a Distributed
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
An Example
Workstations
Local Area Network
WAN Gateway
Servers
What is a Distributed
System ?
(Alternate take)
“A distributed system is a
system in which I can’t do my
work because some computer
that I’ve never even heard of
has failed.”
Leslie Lamport, Microsoft Research (ex DEC)
Why
Distributed System ?
➲ Allows
collaboration,information
exchange irrespective of
geographical
location(banking,reservation
systems)
➲ Doing tasks faster by doing
them in parallel
➲ Avoiding a single point of failure
Continued...
➲ Incremental Growth
➲ Facilitates human to
communication
➲ Economics[J. Wein]
human
Disadvantages
of
Distributed Systems
➲ Difficulties
of developing
distributed software
➲ Networking Problems
➲ Security problems[B. Karp, S.
Hailes]
Design Issues of
Distributed Systems
➲ Heterogeneity
➲ Openness
➲ Security
➲ Reliability and fault tolerance
➲ Scalability
➲ Concurrency
➲ Achieving Transparency[A. S.
Tanenbaum]
Transparency In
a Distributed System
➲ Definition:
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 than
rather as a collection of
independent components.
Transparency Goals
➲ How
to achieve the single
system image?
➲ How
to “fool” everyone into
thinking that the collection of
machines is a “simple”
computer ?
Goals Contd...
➲ Access Transparency
Local and remote resources are
accessed using identical operations
➲ Location Transparency
Users cannot tell where hardware and
software resources(files,CPU's) are
located; the name of the resource
shouldn't encode the location of the
resource
Goals Contd...
➲ Migration(Mobility)
Transparency
Resources should be free to move
from one location to another without
having their names changed
➲ Failure Transparency
Applications should be able to
complete their task despite failures
occurring in certain parts of the
system
Goals Contd...
➲ Replication Transparency
The system is free to make additional
copies of files and other
resources(for purpose of
performance and/or reliability),
without the users noticing. Example:
several copies of a file; at a certain
request that copy is accessed which
is closest to the client
Goals Contd...
➲ Concurrency Transparency
The users will not notice the existence
of other users in the system(even if
they access the same resources)
➲ Performance Transparency
Load variation should not lead to
performance degradation. This
could be achieved by automatic
reconfiguration as response to
changes of the load
Goals Contd...
➲ Scaling(Size) Transparency
Can expand in scale(incremental
growth) without change to system's
structure or application algorithms
➲ Persistence Transparency
Hide whether a (software)resource is
in memory or on disk[R. Chow]
Goals Contd...
➲ Parallelism Transparency
This permits parallel activities without
users knowing how,where, and
when these activities are carried out
by the systems
➲ Revision Transparency
This refers to the vertical growth of
systems as opposed to the
horizontal growth as in scalable
transparency. Revision of softwares
not visible to users [B. Karp,2006]
Degree of
Transparency
➲ Distribution
transparency is
generally preferable, but not
always a good idea:
●
It is undesirable to hide the
location of the printer from its
users
CONTD...
●
●
Need for trade-off between a
high degree of transparency
and the performance of a
system
It is impossible to hide the fact
that Mother Nature will not
allow it to send a message
from one process in Atlanta to
the other in Beijing in less than
approximately 35 ms
Case Study:Internet
Naming Service
➲ How
name things and find
things in a distributed system?
➲ How
to build one?
Lets evaluate this with respect to
Transparency
Role of Names & Name
Services
➲ Resources
are accessed using
identifier or reference
● An identifier can be stored in
variables and retrieved from
tables quickly
● Identifier includes or can be
transformed to an address for
an object e.g. NFS file
handle,CORBA object
reference
CASE STUDY CONTD...
●
A name is a human-readable
value(usually a string) which
can be resolved to an identifier
or an address
● Internet domain name, file
path name
● e.g. www.gsu.edu,
/etc/passwd
CASE STUDY CONTD...
➲ Names
are preferable to
identifiers because
● The binding of the named
resource to a physical location
is deferred and can be
changed
● They are more meaningful to
users
Resource access using
a URL
www.gsu.edu:6666/gosolar/index.html
DNS
lookup
Resource ID(IP number,port number,pathname)
168.50.23.1 6666 gosolar/index.html
ARP
lookup
Network address
2:37:6a:1:d0:4a
Socket
file
Web Server
Server
Web
CONTD...
➲ DNS Lookup
● Iterative
can be
NS1
Client
Name
Servers
NS2
NS3
A client iteratively contacts name servers NS1-NS3 in
order to resolve a name
CONTD...
●
Recursive server-controlled
2
1
Client
NS
1
NS
2
4
5
N
S3
3
References
[1]A. S. Tanenbaum, “Distributed Operating
Systems”,Prentice Hall, pp.22-25.
[2]R. Chow,T. Johnson, “Distributed Operating
Systems & Algorithms”, Addison Weley,
pp.29-32.
[3]J. Wein, “Parallel & Distributed Systems”
[4]B. Karp, “RPC & Transparency”,UCL
Computer Science,2006
[5]Y. Lu,”Distributed Operating Systems”,UNL
[6]J. Holliday,”Distributed Computing”,SCU
[7]B. Karp, S. Hailes,”Distributed Systems &
Security:An Introduction,UCL Computer
Science,2006
References CONTD...
[8]P. Eles, “Distributed Systems”, IDA,
Linkopings University
[9]Advanced Distributed Systems,School of
Computing, Napier University
[10]P. Boulet,”Distributed
Systems,Fundamental Concepts”,TIIR,2006