Chapter 1 - Introduction to Distributed System
Chapter 1 - Introduction to Distributed System
Outlines
• Chapter 1: Introduction
• Chapter 2: Architecture
• Chapter 3: Process
• Chapter 4: Communication
• Chapter 5: Naming
• Chapter 6: Synchronization
• Chapter 7: Consistency & Replication
• Chapter 8: Fault Tolerance
01/21/2025 04:18:51 PM 1
Objectives of learning DS
01/21/2025 04:18:51 PM 2
01/21/2025 04:18:51 PM 3
Chapter 1 - Introduction to Distributed System
1.1 Introduction and Definition
before the mid-80s, computers were
very expensive (hundred of thousands or even millions of dollars)
very slow (a few thousand instructions per second)
not connected among themselves
after the mid-80s: two major developments
cheap and powerful microprocessor-based computers appeared
computer networks
LANs at speeds ranging from 10 to 1000 Mbps
WANs at speed ranging from 64 Kbps to gigabits/sec
consequence
feasibility of using a large network of computers to work for the same
application; this is in contrast to the old centralized systems where there
01/21/2025 04:18:51 PM 4
was a single computer with its peripherals.
Definition of a Distributed System
• scalability
01/21/2025 04:18:51 PM 7
Problems of Distribution
Concurrency, Security
clients must not disturb each other
Privacy
unwanted communication such as spam
Partial failure
we often do not know where the error is (e.g., RPC)
Location, Migration, Replication
clients must be able to find their servers
Heterogeneity
hardware, platforms, languages, management
01/21/2025 04:18:51 PM 8
Characteristics of Distributed Systems
differences between the computers and the ways they communicate are hidden
from users
users and applications can interact with a distributed system in a consistent and
uniform way regardless of location
distributed systems should be easy to expand and scale
a distributed system is normally continuously available, even if there may be
partial failures
1.2 Organization and Goals of a Distributed System
01/21/2025 04:18:51 PM 10
Goals of a distributed system:
a distributed system should be
easily connect users with resources (printers, computers, storage
facilities, data, files, Web pages, ...)
reasons: economics, to collaborate and exchange information
be transparent: hide the fact that the resources and processes are
distributed across multiple computers
be open
be scalable
Transparency in a Distributed System
a distributed system that is able to present itself to users and applications
as if it were only a single computer system is said to be transparent
01/21/2025 04:18:51 PM 11
different forms of transparency in a distributed system
Transparency Description
Access Hide differences in data representation
(endianness, file naming, ...) and how a resource
is accessed
Location Hide where a resource is physically located; where
is http://www.prenhall.com/index.html? (naming)
Migration Hide that a resource may move to another location
Relocation Hide that a resource may be moved to another location while in use;
e.g., mobile users using their wireless laptops
ReplicationHide that a resource is replicated
Concurrency Hide that a resource may be shared by several
competitive users; a resource must be left in a consistent state
Failure Hide the failure and recovery of a resource
Persistence Hide whether a (software) resource is in memory or on
disk
01/21/2025 04:18:51 PM 12
Openness in a Distributed System
a distributed system should be open
we need well-defined interfaces
interoperability
components of different origin can communicate
portability
components work on different platforms
Another goal of an open distributed system is that it should be
flexible and extensible; easy to configure the system out of different
components; easy to add new components, replace existing ones
01/21/2025 04:18:51 PM 13
an Open Distributed System is a system that offers services
according to standard rules that describe the syntax and semantics
of those services; e.g., protocols in networks
standards - a necessity
should allow competition in non-normative areas
in distributed systems, such services are often specified through
interfaces often described using an Interface Definition Language (IDL)
specify only syntax: the names of the functions, types of
parameters, return values, possible exceptions
01/21/2025 04:18:51 PM 14
Scalability in Distributed Systems
a distributed system should be scalable
size: adding more users and resources to the system
geographically: users and resources may be far apart
administratively: should be easy to manage even if it spans many
administrative organizations
Examples of scalability
01/21/2025 04:18:51 PM problems 15
Scaling Techniques
how to solve scaling problems
the problem is mainly performance, and arises as a result of
limitations in the capacity of servers and networks (for
geographical scalability)
three possible solutions: hiding communication latencies,
distribution, and replication
01/21/2025 04:18:51 PM 16
a. Hide Communication Latencies
try to avoid waiting for responses to remote service requests
let the requester do other useful job:- i.e., construct requesting
applications that use only asynchronous communication instead of
synchronous communication; when a reply arrives the application is
interrupted
good for batch processing and parallel applications but not for
interactive applications
for interactive applications, move part of the job to the client to reduce
communication; e.g. filling a form and checking the entries
01/21/2025 04:18:51 PM 17
(a) a server checking the correctness of field entries
(b) a client doing the job
01/21/2025 04:18:51 PM 18
b. Distribution
e.g., DNS - Domain Name System ([email protected])
divide the name space into zones
for details, see later in Chapter 5 - Naming
01/21/2025 04:18:51 PM 20
1.3 Types of distributed Systems
Three types: distributed computing systems, distributed information systems,
and pervasive/embedded systems
1. Distributed Computing Systems
• Used for high-performance computing tasks
• Cluster Computing
• a collection of similar workstations or PCs (homogeneous), closely connected by means
of a high-speed LAN
• each node runs the same operating system
• used for parallel programming in which a single computer intensive program is run in
01/21/2025 04:18:51 PM 21
parallel on multiple machines
• Grid Computing: Resource sharing and coordinated problem solving in
dynamic, multi-institutional virtual organizations
• high degree of heterogeneity: no assumptions are made concerning
hardware, operating systems, networks, administrative domains,
security policies, etc.
• Globus is a software sytem for Grid Computing; read about the Globus
Alliance at http://www.globus.org/
01/21/2025 04:18:51 PM 24
Thank you!
01/21/2025 04:18:51 PM 25