Distributed Systems:: Principles and Paradigms
Distributed Systems:: Principles and Paradigms
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
01 – 1 Introduction/1.1 Definition
Goals of Distributed Systems
• 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
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
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?
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)
01 – 9 Introduction/1.2 Goals
Distributed Systems: Hardware Concepts
• Multiprocessors
• Multicomputers
• Networks of Computers
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
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
• Basic model
• Application layering
• Client–Server architectures
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