View
213
Download
0
Tags:
Embed Size (px)
Citation preview
ECI-M-811 Distributed Systems and Internetworking
Coordinator: Dr. Zhanfang Zhao
Office: T409
Tel: 020 7815 6340
Fax: 020 7815 7051
Email: [email protected]
URL: http://ecce3.sbu.ac.uk/staff/zhaoza/dsi/
Blackboard: http://blackboard.lsbu.ac.uk/
Textbooks
Core reading:– ‘Distributed Systems: Principles and Paradigms
Tanenbaum AS. Prentice Hall 2002.
Background reading:– ‘Distributed Systems: Concept and Design’
Coulouris G etc, Addison Wesley, 2001.
Topics
• Introduction to DS
• Communication in DS
• Process in DS
• Naming System in DS
• Synchronization in DS
• New technologies
Outcomes (Distributed System Part)At the end of this unit the student will be able to:
• Familiar with the concepts of distributed systems hardware and distributed system facilities.
• Able to appreciate the capabilities and limitations of applications software running over local and wide area networks.
• Able to understand, design and implement simple client-server systems.
• Able to know how the World Wide Web system works
Introduction to Distributed System
Contents of this lesson:
• Definition of the Distributed System
• The Goals when Building a Distributed System
• Basic Software Concepts
• The Middleware
• System Architecture & Client-Server Model
Definition of a Distributed System (1)A distributed system is:A collection of independent computers that appears
to its users as a single coherent system. --Tanenbaum
Two aspects of this definition:• Hardware: The machines are autonomous.• Software: The user think they are dealing with a single system.Important characteristics of DS:• Differences between various computers and the ways in which they
communicate are hidden from users• Users and applications can interact with a DS in a consistent and uniform way• Ds should also be easy to extend or scale• To support heterogeneous computers and networks while offering a single
system view, DS is often organized in certain layers called middleware
Definition of a Distributed System (2)
A distributed system is a collection of autonomous hosts that that are connected through a computer network. Each host executes components and operates a distribution middleware, which enables the components to coordinate their activities in such a way that users perceive the system as a single, integrated computing facility.
-----------Wolfgang Emmerich, 2000
Hostn-1
Hostn
Host2
Host1
Definition of a Distributed System (3)
MiddlewareMiddleware
MiddlewareMiddleware
Network Operating SystemNetwork Operating System
Network Operating SystemNetwork Operating System
HardwareHardware
HardwareHardware
Component1 Componentn
Component1 Componentn
Component1 Componentn
Component1 Componentn
Network
Middleware ExamplesTransaction-oriented
– IBM CICS
– BEA Tuxedo
– IBM Encina
– Microsoft Transaction Server
Message-oriented– Microsoft Message
Queue
– Sun Tooltalk
Procedural– Sun ONC
– Linux RPCs
– OSF DCE
Object-oriented– OMG CORBA
– Sun Java/RMI
– Microsoft COM
.net Remote
– Sun Enterprise Java Beans
Centralised System Characteristics
One component with non-autonomous parts
Component shared by users all the time
All resources accessible
Software runs in a single process
Single Point of control
Single Point of failure
Distributed System Characteristics
Multiple autonomous components
Components are not shared by all users
Resources may not be accessible
Software runs in concurrent processes on different processors
Multiple Points of control
Multiple Points of failure
Goals
• Four important goals should be met to make it worth to build a distributed systems:
1. Connecting users and resources
2. Transparency
3. Openness
4. Scalability
Transparency in a Distributed System
Different forms of transparency in a distributed system.
Definition: A DS that is able to present itself to users and applications as if it were only a single computer system is said to be transparent
Transparency Description
AccessHide 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
RelocationHide that a resource may be moved to another location while in use
Replication Hide that a resource may be replicated
ConcurrencyHide that a resource may be shared by several competitive users
Failure Hide the failure and recovery of a resource
PersistenceHide whether a (software) resource is in memory or on disk
Transparency
• Distributed systems should be perceived by users and application programmers as a whole rather than as a collection of cooperating components.
• Transparency has different dimensions
• These represent various properties that distributed systems should have.
Access Transparency
Access Transparency
LocationTransparency
LocationTransparency
ConcurrencyTransparencyConcurrencyTransparency
Migration Transparency
Migration Transparency
Performance TransparencyPerformance Transparency
Scalability Transparency
Scalability Transparency
Replication TransparencyReplication
Transparency
FailureTransparency
FailureTransparency
Distribution Transparency
Access Transparency
• Enables local and remote information objects to be accessed using identical operations.
• Example: File system operations in NFS.
• Example: Navigation in the Web.
• Example: SQL Queries
Location Transparency
• Enables information objects to be accessed without knowledge of their location.
• Example: File system operations in NFS
• Example: Pages in the Web
• Example: Tables in distributed databases
Concurrency Transparency
• Enables several processes to operate concurrently using shared information objects without interference between them.
• Example: Automatic teller machine network
• Example: Database management system
Replication Transparency
• Enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programs
• Example: Distributed DBMS
• Example: Mirroring Web Pages.
Failure Transparency
• Enables the concealment of faults
• Allows users and applications to complete their tasks despite the failure of other components.
• Example: Database Management System
Migration Transparency
• Allows the movement of information objects within a system without affecting the operations of users or application programs
• Example: NFS
• Example: Web Pages
Performance Transparency
• Allows the system to be reconfigured to improve performance as loads vary.
• Example: Distributed make.
Scaling Transparency
• Allows the system and applications to expand in scale without change to the system structure or the application algorithms.
• Example: World-Wide-Web
• Example: Distributed Database
Openness• An open distributed system is a system that offers
services according to standard rules that describe the syntax and semantics of those services.
• Openness means that the system can easily be extended and modified.
• To facilitate the openness, the system should have a well defined and well-documented interfaces. These interface must declare the services that a component offers. And these interfaces are often described in an Interface Define Language (IDL)
• A service is an operation that a component performs on behalf of a user or another component.
• The interface definition should be complete and neutral.– Complete means that everything that is necessary to make an
implementation has indeed been specified.
Scalability
Adaption of distributed systems to– accomodate more users– respond faster (this is the hard one)
Usually done by adding more and/or faster processors.
Components should not need to be changed when scale of a system increases.
Design components to be scalable!
Scalability Problems
Examples of scalability limitations.
Concept Example
Centralized services A single server for all users
Centralized data A single on-line telephone book
Centralized algorithmsDoing routing based on complete information
Software Concepts
An overview between • DOS (Distributed Operating Systems)• NOS (Network Operating Systems)• Middleware
System Description Main Goal
DOSTightly-coupled operating system for multi-processors and homogeneous multicomputers
Hide and manage hardware resources
NOSLoosely-coupled operating system for heterogeneous multicomputers (LAN and WAN)
Offer local services to remote clients
MiddlewareAdditional layer atop of NOS implementing general-purpose services
Provide distribution transparency
Uniprocessor Operating SystemsSeparating applications from operating
system code through a microkernel.
1.11
Multiprocessor Operating Systems (1)
A monitor to protect an integer against concurrent access.
•An important extension of MOS is that it supports multiple processors having access to a shared memory. These data in the shared memory must be protected against the concurrent access to guarantee consistency.•Two synchronized primitives are used, one is semaphore, another is monitor
monitor Counter {
private:
int count = 0;
public:
int value() { return count;}
void incr () { count = count + 1;}
void decr() { count = count – 1;}
}
Multiprocessor Operating Systems (2)
A monitor to protect an integer against concurrent access, but blocking a process.
monitor Counter {
private:
int count = 0;
int blocked_procs = 0;
condition unblocked;
public:
int value () { return count;}
void incr () {
if (blocked_procs == 0)
count = count + 1;
else
signal (unblocked);
}
void decr() {
if (count ==0) {
blocked_procs = blocked_procs + 1;
wait (unblocked);
blocked_procs = blocked_procs – 1;
}
else
count = count – 1;
}
}
Multicomputer Operating Systems (2)
Alternatives for blocking and buffering in message passing.
1.15
Network Operating System (2)Two clients and a server in a network operating system.
File systems is supported by one or more machines called file servers
1-20
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.
1.23
System Architecture & Client Server Model
Important styles of architecture for distributed systems
• Layered architectures• Object-based architectures• Data-centered architectures• Event-based architectures
Clients and Servers
General interaction between a client and a server.
• In the basic client server model, the process in a computing system are divided into two groups. A server is a process implementing a specific service, for example database service. A client is a process that requests a service from a server by sending it a request and subsequently waiting or the server’s reply
1.25
An Example Client and Server (1)
The header.h file used by the client and server.
Used for parameters
Application LayeringFor the web applications, the CS applications generally been organized into three levels:
1-28
Distributed System Paradigms
World Wide Web Architecture Model:
• Traditional Web-based Systems– Overall organization– Web Documents– Programming Languages: HTML, XML &
MIME (Multipurpose Internet Mail Exchange)
– Multi-tiered Architectures
• Web Services
Web Services Fundamentals
The principle of a Web service:• WSDL (Web Services Definition Language) is a formal language very much
the same as the interface definition languages of RPC
• SOAP ( Simple Object Access Protocol) is essentially a framework in which much of the communication between two process can be standardized
• UDDI ( Universal Description, Discovery and Integration)