0% found this document useful (0 votes)
364 views

Distributed Systems:: Principles and Paradigms

The document discusses distributed systems, defining them as collections of independent computers that appear as a single coherent system to users. It covers goals of distributed systems like transparency, openness, and scalability. Various techniques for scaling distributed systems are presented, including distribution, replication, and caching, along with challenges of maintaining consistency while scaling.

Uploaded by

dinka
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
364 views

Distributed Systems:: Principles and Paradigms

The document discusses distributed systems, defining them as collections of independent computers that appear as a single coherent system to users. It covers goals of distributed systems like transparency, openness, and scalability. Various techniques for scaling distributed systems are presented, including distribution, replication, and caching, along with challenges of maintaining consistency while scaling.

Uploaded by

dinka
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 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