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
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
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 TransparencyLocal and remote resources are
accessed using identical operations
➲Location TransparencyUsers 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 TransparencyApplications should be able to complete
their task despite failures occurring in certain parts of the system
Goals Contd...
➲Replication TransparencyThe 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 TransparencyLoad 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) TransparencyCan expand in scale(incremental growth)
without change to system's structure or application algorithms
➲Persistence TransparencyHide whether a (software)resource is in
memory or on disk[R. Chow]
Goals Contd...
➲Parallelism TransparencyThis permits parallel activities without
users knowing how,where, and when these activities are carried out by the systems
➲Revision TransparencyThis 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
168.50.23.1 6666 gosolar/index.html
Web Server
Network address Socket
2:37:6a:1:d0:4a
file
Web Server
ARP lookup
DNS lookup
Resource ID(IP number,port number,pathname)
CONTD...
➲DNS Lookup can be ● Iterative
NS1
NS2
NS3
Client
Name Servers
A client iteratively contacts name servers NS1-NS3 in order to resolve a name
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
Top Related