Transcript Open

Distributed Computing
Umar Kalim
Dept. of Communication Systems Engineering
[email protected]
http://www.niit.edu.pk/~umarkalim
19/09/2007
Fall 2007
cs425
1
Agenda
Course details
Introduction
Fall 2007
cs425
2
Reading material
Text book:
– Andrew S. Tanenbaum, Maarten van Steen
“Distributed systems: principles and paradigms”.
Reference books:
– Jean Dollimore, Tim Kindberg, George Coulouris
“Distributed Systems: Concepts and Design”
– Joe Wigglesworth and Paula McMillan “Java Programming:
Advanced Topics”, 3rd edition
– Bruce Eckel “Thinking in Java” 3rd edition Availabe online
from Bruce Eckel's web site http://www.mindviewinc.com/
Reference material
– Selected publications available online
http://www.niit.edu.pk/~umarkalim/dc
Fall 2007
cs425
3
Course details
Lectures & Handouts
– Will be available online
Office hours:
– Usually one (1) hour after the lecture
Fall 2007
cs425
4
Grading policy
Assignments
5%
Quizzes
10%
Survey report/Project
15%
OHT
30%
End-term
40%
Fall 2007
Assignments
– Individual
– No late submission
Quizzes
– Mostly unannounced
– Occasionally announced
cs425
5
Objective of this course?
Provide an understanding of the technical issues
involved in the design of modern distributed systems
Present some of the major current paradigms
Outcomes
– Appreciation of the main principles underlying distributed
systems: processes, communication, naming,
synchronization, consistency, fault tolerance, and security.
– Familiarity with some of the main paradigms in distributed
systems: object-based systems, file systems, and
coordination-based systems
Fall 2007
cs425
6
Lets begin!
Fall 2007
cs425
Ref: csc.liv.ac.uk
7
Definition of a Distributed System
A distributed system is:
A collection of independent computers that
appears to its users as a single coherent
system.
Fall 2007
cs425
8
Examples of Distributed Systems
Computer world:
– University computer network
– SETI@home
 Search for ExtraTerrestrial Intelligence
– GRID (distributed computing facilities)
Ordinary life:
– WWW, P2P systems (such as Emule, Azureus etc)
– Banks (Cash machines)
– Ticket reservation
Fall 2007
cs425
9
Goals of a Distributed Systems
User-side goals (why distributed system)
– Easily connect users/resources
– Exhibit transparency
Technical goals (how to achieve)
– Be open
– Be scalable
Looking at these goals helps us answer the
question: “is building a distributed system worth
the effort?”
Fall 2007
cs425
10
Connecting Users and Resources
Typical resources
– Printers, computers, computing power, data
Why sharing
– Economics
– Collaboration, Information Exchange (groupware)
Problems with sharing
– Security
– Unwanted collaboration
Fall 2007
cs425
11
Transparency in distributed systems
Transparent distributed system:
– Appears to its users as if it were only a single
computer system
Fall 2007
cs425
12
Forms of transparency
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
Fall 2007
cs425
13
Degree of transparency
Transparency is
– Not always desirable
 Users located in different continents (context-aware)
– Not always possible
 Hiding failures (you can distinguish a slow computer from
a failing one)
Trade-off between a high degree of
transparency and the performance of the system
Fall 2007
cs425
14
Openness
Open systems
– Offer services according to standard rules that describe the
syntax and semantics of these services
– Enjoy neutral and complete specifications
 Network protocols
Advantages of being open:
– Interoperability
 Open systems can work together
– Portability
 Ability to transform an application from one software or hardware
platform to another
Open ≠ Free!
Fall 2007
cs425
15
Scalability
Along three different dimensions
– Size (the number of users and/or processes)
– Geographical (maximum distance between
participants)
– Administrative (number of administrative domains)
Fall 2007
cs425
16
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
Fall 2007
cs425
17
Scaling Techniques
Three techniques:
– Hiding communication latencies
 Try to avoid waiting for responses to remote service
requests as much as possible
– Distribution
– Replication
Fall 2007
cs425
18
Scaling Techniques (1)
1.4
The difference between letting:
a) a server or
b) a client check forms as they are being filled
Fall 2007
cs425
19
Scaling Techniques (2)
1.5
An example of dividing the DNS name space into zones.
Fall 2007
cs425
20
Scaling Techniques (3)
Replication
–
–
–
–
Increases availability
Balances the load
Reduces communication latency
But causes consistency problems
Caching (client-driven)
Fall 2007
cs425
21
Modelling distributed systems
When building distributed applications, system
builders have often looked to the nondistributed systems world for models to follow
(… inspiration?)
Consequently, distributed systems tend to
exhibit certain characteristics that are already
familiar to us
This applies equally to hardware concepts as it
does to software concepts
Fall 2007
cs425
22
Classification of Multiple CPU
Computer Systems
Two groups:
Multiprocessors
– Shared memory
– Several processors
Multicomputers
– Each machine has its own memory
– Network communication
Fall 2007
cs425
23
Bus based multiprocessor systems
Simplified representation of a shared-memory
supercomputer
Initially for supercomputers only, but
– AMD and Intel provide 2-, 4-, and 8-processor workstations
– Intel Hyper-Thread technology
Fall 2007
cs425
24
Multicomputer Systems
a) Grid
b) Hypercube
How to run multiprocessor software on multicomputer
systems?
– Distributed operating systems
Fall 2007
cs425
25
Multicomputer Operating Systems
General structure of a (DOS) multicomputer operating
system
Fall 2007
cs425
26
Modeling on Multicomputers
Excessively tightly connected
– Such systems tend to be homogeneous (same hardware
and software in all nodes)
– Compromises openness and scalability
Fall 2007
cs425
27
Network Operating System
 General structure of a network operating system – all the
systems are of different types: heterogeneous
Fall 2007
cs425
28
Network Operating System
Two clients and a server in a network operating
system – relatively primitive set of services
provided
Fall 2007
cs425
29
Distributed Systems on top of
Network Operating Systems
Too primitive, low level communication
– Compromises transparency
What to do???
Fall 2007
cs425
30
Best of both worlds
“Middleware” – best possible compromise?
Middleware = NOS + additional software
layer
Fall 2007
cs425
31
Distributed Systems as Middleware
 A distributed system organized as middleware.
 Note that the middleware layer extends over multiple machines.
Fall 2007
cs425
32
Middleware and Openness
 In an open middleware-based distributed system, the protocols
used by each middleware layer should be the same, as well as the
interfaces they offer to applications. This is a much higher
 level of abstraction than (for instance) the NOS Socket API.
Fall 2007
cs425
33
Modelling Software Concepts
System
Description
Main Goal
DOS
Tightly-coupled operating system for multiprocessors and homogeneous
multicomputers
Hide and manage
hardware
resources
NOS
Loosely-coupled operating system for
heterogeneous multicomputers (LAN and
WAN)
Offer local
services to remote
clients
Middleware
Additional layer atop of NOS implementing
general-purpose services
Provide
distribution
transparency
Fall 2007
cs425
34
Comparing DOS/NOS/Middleware
Item
Distributed OS
Network
OS
Middlewarebased OS
Multiproc.
Multicomp.
Degree of transparency
Very High
High
Low
High
Same OS on all nodes
Yes
Yes
No
No
Number of copies of OS
1
N
N
N
Basis for communication
Shared
memory
Messages
Files
Model specific
Resource management
Global,
central
Global,
distributed
Per node
Per node
Scalability
No
Moderately
Yes
Varies
Openness
Closed
Mostly Closed
Open
Open
 A comparison between multiprocessor operating systems, multicomputer operating
systems, network operating systems, and middleware based distributed systems.
Fall 2007
cs425
35
Summary
Distributed Systems … autonomous computers
working together to give the appearance of a
single, coherent system.
They are transparent, scalable and open.
Unfortunately, they also tend to be complex.
Fall 2007
cs425
36
Questions?
That’s all for today!
Fall 2007
cs425
37