Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Distributed Systems:: Principles and Paradigms

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31

Distributed Systems:

Principles and Paradigms

Chapter 01
Introduction
Prologue
Distributed Processing (분산 처리) vs. Distributed System
(분산 시스템)
 DS research in the 80’s vs. 90’s
 Centralized vs. Distributed System
 What are the examples of Distributed Systems?
Distributed System: Definition

A distributed system is a collection of independent


computers that appears to its users as a single
coherent system
Two aspects:
(1) hardware - autonomous computers
(2) software – users think they are dealing with a single system

01 – 1 Introduction/1.1 Definition
Goals of Distributed Systems

• Allow users to access and share resources


• Transparency
- To hide the fact that its processes and resources are
physically distributed across multiple computers

• Openness
- To offer services according to standard rules that
describe the syntax and semantics of those services
- E.g., specify interfaces using an interface definition
language (IDL)

• Scalability

01 – 2 Introduction/1.2 Goals
Transparency

01 – 3 Introduction/1.2 Goals
Degree of Transparency
Observation: Aiming at full transparency may be too much:
• Users may be located in different continents; distribution is apparent and
not something you want to hide
• Completely hiding failures of networks and nodes is (theoretically and
practically) impossible
– You cannot distinguish a slow computer from a failing one
– You can never be sure that a server actually performed an operation
before a crash

• Full transparency will cost performance, exposing distribution of the


system
– Keeping Web caches exactly up-to-date with the master copy
– Immediately flushing write operations to disk for fault tolerance

01 – 4 Introduction/1.2 Goals
Openness of Distributed Systems
Open distributed system: Be able to interact with services from other
open systems, irrespective of the underlying environment:
• Systems should conform to well-defined interfaces
• Systems should support portability of applications
• Systems should easily interoperate

Achieving openness: At least make the distributed system independent


from heterogeneity of the underlying environment:
• Hardware
• Platforms
• Languages

01 – 5 Introduction/1.2 Goals
Policies versus Mechanisms
Implementing openness: Requires support for different policies
specified by applications and users:
• What level of consistency do we require for client cached data?
• Which operations do we allow downloaded code to perform?
• Which QoS requirements do we adjust in the face of varying bandwidth?
• What level of secrecy do we require for communication?

Implementing openness: Ideally, a distributed system provides only


mechanisms:
• Allow (dynamic) setting of caching policies, preferably per cachable item
• Support different levels of trust for mobile code
• Provide adjustable QoS parameters per data stream
• Offer different encryption algorithms
01 – 6 Introduction/1.2 Goals
Scalability in Distributed Systems
Observation: Many developers of modern distributed systems easily use
the adjective “scalable” without making clear why their system actually
scales.
Scalability: At least three components:
• Number of users and/or processes (size scalability)
• Maximum distance between nodes (geographical scalability)
• Number of administrative domains (administrative scalability)

Most systems account only, to a certain extent, for size scalability. The
(non)solution: powerful servers.
Today, the challenge lies in geographical and administrative scalability.

01 – 7 Introduction/1.2 Goals
Techniques for Scaling
Distribution: Partition data and computations across multiple machines:
• Move computations to clients (Java applets)
• Decentralized naming services (DNS)
• Decentralized information systems (WWW)

Replication: Make copies of data available at different machines:


• Replicated file servers (mainly for fault tolerance)
• Replicated databases
• Mirrored Web sites
• Large-scale distributed shared memory systems

Caching: Allow client processes to access local copies:


• Web caches (browser/Web proxy)
• File caching (at server and client)
01 – 8 Introduction/1.2 Goals
Scaling – The Problem
Observation: Applying scaling techniques is easy, except for one thing:
• Having multiple copies (cached or replicated), leads to
inconsistencies: modifying one copy makes that copy different from
the rest.
• Always keeping copies consistent and in a general way requires
global synchronization on each modification.
Global synchronization makes large-scale solutions practically impossible.

Observation: If we can tolerate inconsistencies, we may reduce the


need for global synchronization.

Observation: Tolerating inconsistencies is application dependent.

01 – 9 Introduction/1.2 Goals
Distributed Systems: Hardware Concepts

• Multiprocessors
• Multicomputers
• Networks of Computers

01 – 10 Introduction/1.3 Hardware Concepts


Multiprocessors and Multicomputers
Distinguishing features:
• Private versus shared memory
• Bus versus switched interconnection

01 – 11 Introduction/1.3 Hardware Concepts


Networks of Computers
High degree of node heterogeneity:
• High-performance parallel systems (multiprocessors as well as
multicomputers)
• High-end PCs and workstations (servers)
• Simple network computers (offer users only network access)
• Mobile computers (palmtops, laptops)

High degree of network heterogeneity:


• Local-area gigabit networks
• Wireless connections
• Long-haul, high-latency POTS connections
• Wide-area switched megabit connections

Observation: Ideally, a distributed system hides these differences

01 – 12 Introduction/1.3 Hardware Concepts


Distributed Systems:Software Concepts

• Distributed operating system


• Network operating system
• Middleware

01 – 13 Introduction/1.4 Software Concepts


Distributed Operating System

Some characteristics:
• OS on each computer knows about the other computers
• OS on different computers generally the same
• Services are generally (transparently) distributed across computers

01 – 14 Introduction/1.4 Software Concepts


Multicomputer Operating System
Harder than traditional (multiprocessor) OS: Because memory is not
shared, emphasis shifts to processor communication by message
passing:
• Often no simple global communication:
– Only bus-based multicomputers provide hardware broadcasting
– Efficient broadcasting may require network interface
programming techniques
• No simple system-wide synchronization mechanisms
• Virtual (distributed) shared memory requires OS to maintain global
memory map in software
• Inherent distributed resource management: no central point where
allocation decisions can be made

Practice: Only very few truly multicomputer operating systems exist


(example: Amoeba)

01 – 15 Introduction/1.4 Software Concepts


Network Operating System
Some characteristics:
• Each computer has its own operating system with networking facilities
• Computers work independently (i.e., they may even have different
operating systems)
• Services are tied to individual nodes (ftp, telnet,WWW)
• Highly file oriented (basically, processors share only files)

01 – 16 Introduction/1.4 Software Concepts


Middleware

Some characteristics:
• OS on each computer need not know about the other computers
• OS on different computers need not generally be the same
• Services are generally (transparently) distributed across computers

01 – 17 Introduction/1.4 Software Concepts


Need for Middleware
Motivation: Too many networked applications were difficult to integrate:
• Departments are running different NOSs
• Integration and interoperability only at level of primitive NOS Services
• Need for federated information systems:
– Combining different databases, but providing a single view to
applications
– Setting up enterprise-wide Internet services, making use of existing
information systems
– Allow transactions across different databases
– Allow extensibility for future services (e.g., mobility, teleworking,
collaborative applications)
• Constraint: use the existing operating systems, and treat them as the
underlying environment

01 – 18 Introduction/1.4 Software Concepts


Middleware Services (1/2)
Communication services: Abandon primitive socket-based message
passing in favor of:
• Procedure calls across networks
• Remote-object method invocation
• Message-queuing systems
• Advanced communication streams
• Event notification service
Information system services: Services that help manage data in a
distributed system:
• Large-scale, system-wide naming services
• Advanced directory services (search engines)
• Location services for tracking mobile objects
• Persistent storage facilities
• Data caching and replication
01 – 19 Introduction/1.4 Software Concepts
Middleware Services (2/2)

Control services: Services giving applications control over when,


where, and how they access data:
• Distributed transaction processing
• Code migration

Security services: Services for secure processing and communication:


• Authentication and authorization services
• Simple encryption services
• Auditing service

01 – 20 Introduction/1.4 Software Concepts


Comparison of DOS, NOS, and Middleware
1: Degree of transparency
2: Same operating system on each node?
3: Number of copies of the operating system
4: Basis for communication
5: How are resources managed?
6: Is the system easy to scale?
7: How open is the system?

01 – 21 Introduction/1.4 Software Concepts


Client–Server Model

• Basic model
• Application layering
• Client–Server architectures

01 – 22 Introduction/1.5 Client–Server Model


Basic Client–Server Model (1/2)

Characteristics:
• There are processes offering services (servers)
• There are processes that use services (clients)
• Clients and servers can be distributed across different machines
• Clients follow request/reply model with respect to using services

01 – 23 Introduction/1.5 Client–Server Model


Basic Client–Server Model (2/2)
Servers: Generally provide services related to a shared resource:
• Servers for file systems, databases, implementation repositories, etc.
• Servers for shared, linked documents (Web, VoD)
• Servers for shared applications
• Servers for shared distributed objects
Clients: Allow remote service access:
• Programming interface transforming client’s local service calls to
request/reply messages
• Devices with (relatively simple) digital components (barcode readers,
teller machines, hand-held phones)
• Computers providing independent user interfaces for specific services
• Computers providing an integrated user interface for related services
(compound documents)
01 – 24 Introduction/1.5 Client–Server Model
Application Layering (1/2)
Traditional three-layered view:
• User-interface layer contains units for an application’s user interface
• Processing layer contains the functions of an application, i.e. without
specific data
• Data layer contains the data that a client wants to manipulate through
the application components

Observation: This layering is found in many distributed information


systems, using traditional database technology and accompanying
applications.

01 – 25 Introduction/1.5 Client–Server Model


Application Layering (2/2)

01 – 26 Introduction/1.5 Client–Server Model


Client-Server Architectures

Single-tiered: dumb terminal/mainframe configuration


Two-tiered: client/single server configuration
Three-tiered: each layer on separate machine
Traditional two-tiered configurations:

01 – 27 Introduction/1.5 Client–Server Model


Alternative C/S Architectures

Observation: Multi-tiered architectures seem to constitute buzzwords that


fail to capture many modern client–server systems.
Cooperating servers: Service is physically distributed across a collection
of servers:
• Traditional multi-tiered architectures
• Replicated file systems
• Network news services
• Large-scale naming systems (DNS, X.500)
• Workflow systems
• Financial brokerage systems
Cooperating clients: Distributed application exists by virtue of client
collaboration:
• Teleconferencing where each client owns a (multimedia) workstation
• Publish/subscribe architectures in which role of client and server is blurred
• Peer-to-Peer (P2P) applications
01 – 28 Introduction/1.5 Client–Server Model
Reading

Read Chapter 1 of Distributed Systems: Principles and


Paradigms book

01 – 28 Introduction/1.5 Client–Server Model

You might also like