Chapter 1
Chapter 1
Chapter One
Introduction to Distributed Systems
1
By:- Tamrat T(Msc)
Dawro Tarcha, Ethiopia
By: Tamrat T.
Introduction
2
Before the mid-80s, computers were
Computer networks:
By: Tamrat T.
Definition of a Distributed System
4
System: “A complex whole; a set of connected parts; an organized
assembly of resources and procedures (collection of …) united and
regulated by interaction or interdependence to accomplish a set of specific
functions.”
Software:
By: Tamrat T.
a single system view for the users
Definition of a Distributed System
5
Other Definitions
Operate concurrently;
Availability, Reliability
Scalability, Extensibility
Performance
organizational
By: Tamrat T. distribution, e-mail, video
Problems of Distribution
7 Concurrency, Security
Privacy
Partial failure
Heterogeneity
hardware,
By: Tamrat T.
platforms, languages, management
…Cont
8 Concurrent execution of processes:
No global clock
No global state
o System
By: Tamrat T. failures may not be immediately known
Characteristics of Distributed Systems
9
Differences between the computers and the ways they communicate
are hidden from users.
By: Tamrat T.
Organization and Goals of a Distributed System
10
a distributed system
organized as
middleware;
By: Tamrat T.
Goals of a Distributed System
11
Goals of a distributed system: a distributed system should
Be easily connect users with resources (printers, computers,
storage facilities, data, files, Web pages, ...)
Be transparent: hide the fact that the resources and processes are
distributed across multiple computers
Be open
Be scalable
By: Tamrat T.
Transparency in a Distributed System
12
By: Tamrat T.
Transparency in a Distributed System
13
By: Tamrat T.
Transparency in a Distributed System
14
By: Tamrat T.
…Cont
15
By: Tamrat T.
Openness in a Distributed System
16
A distributed system should be open
We need well-defined Interfaces
Interoperability
components of different origin can communicate
Portability
components work on different platforms
By: Tamrat T.
… Cont
17
o 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.
o 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
By: Tamrat T.
… Cont
18
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, ...
By: Tamrat T.
Scalability in Distributed Systems
19
A distributed system should be scalable in terms of :-
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
Scalability problems:
Concept Example
Centralized services Single server for all users-mostly for security reasons
By: Tamrat T.
1. Hiding communication latencies
21
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
By: Tamrat T.
… Cont
22
e.g., shipping
code is now
supported in
Web
applications
using Java
Applets
By: Tamrat T.
…Cont
25
By: Tamrat T.
…Cont
26
By: Tamrat T.
3. Replication
27
By: Tamrat T.
Types of distributed Systems
28
Three (3) types:
1. Distributed Computing Systems,
2. Distributed Information Systems, and
3. Pervasive / Embedded Systems
1. Distributed Computing Systems: used for high-performance
computing tasks
Two (2) types: A. Cluster Computing and
B. Grid Computing
By: Tamrat T.
A. Cluster Computing
29
By: Tamrat T.
A. Cluster Computing
30
By: Tamrat T.
2. Distributed Information Systems
32
By: Tamrat T.
Transaction Processing Systems
33
Applications Special primitives are required Transaction Processing Systems
Consider database to program transactions, supplied either by the underlying
distributed system or by the language runtime system.
Exact list of primitives depends on the type of application; procedure calls, ordinary
statements, etc. can also be included.
e.g., assume the following banking operation
withdraw an amount x from account 1
deposit the amount x to account 2
what happens if there is a problem after the first activity is carried out?
Group the two operations into one transaction; either both are carried out or neither
we need a way to roll back when a transaction is not completed.
By: Tamrat T.
Properties of Transactions (ACID)
34
1. Atomic: to the outside world, the transaction happens indivisibly; a transaction either
happens completely or not at all; intermediate states are not seen by other processes.
2. Consistent: the transaction does not violate system invariants; e.g., in an internal transfer in
a bank, the amount of money in the bank must be the same as it was before the transfer (the
law of conservation of money); this may be violated for a brief period of time, but not seen to
other processes.
3. Isolated or Serializable: concurrent transactions do not interfere with each other; if two or
more transactions are running at the same time, the final result must look as though all
transactions run sequentially in some order.
4. Durable: once a transaction commits, the changes are permanent; see later in Chapter 8 -
Fault Tolerance.
By: Tamrat T.
3. Distributed Pervasive Systems
35
The distributed systems discussed so far are characterized by their stability; fixed nodes having
high-quality connection to a network.
There are also mobile and embedded computing devices which are small, battery-powered, mobile,
and with a wireless connection.
Three (3) requirements for pervasive applications
1. Embrace Contextual Changes: a device is aware that its environment may change all the
time, e.g., changing its network access point.
2. Encourage ad hoc Composition: devices are used in different ways by different users
3. Recognize Sharing as the default: devices join a system to access or provide information
Examples of pervasive systems
Home Systems that integrate consumer electronics , Electronic Health Care Systems to monitor the well-being
of individuals, Sensor Networks [ read pages 26 – 30 on your text book]
By: Tamrat T.
36 …………Conti
Internet Computing: use of (idle) computers interconnected by Internet for
processing large throughput applications
Cloud Computing: a general term for anything that involves delivering hosted
services over the Internet
By: Tamrat T.