0% found this document useful (0 votes)
12 views37 pages

Chapter 1

The document provides an introduction to distributed systems, detailing their evolution from expensive, slow, and isolated computers to powerful, networked systems post-1980s. It defines distributed systems as collections of independent computers that present a unified interface to users, highlighting their characteristics, goals, and types, including distributed computing, information, and pervasive systems. Key aspects such as transparency, scalability, and the importance of middleware are discussed, along with challenges like concurrency and partial failures.

Uploaded by

temsgentesfaye1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views37 pages

Chapter 1

The document provides an introduction to distributed systems, detailing their evolution from expensive, slow, and isolated computers to powerful, networked systems post-1980s. It defines distributed systems as collections of independent computers that present a unified interface to users, highlighting their characteristics, goals, and types, including distributed computing, information, and pervasive systems. Key aspects such as transparency, scalability, and the importance of middleware are discussed, along with challenges like concurrency and partial failures.

Uploaded by

temsgentesfaye1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Woliata Sodo University

Dawro Tarcha Campus


Department of Information Technology

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

 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


By: Tamrat T.
…Cont
3
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 was a single computer with its peripherals

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.”

 A distributed system is:


a collection of independent computers that appears to its users as a single
coherent system - computer (Tanenbaum & Van Steen)

 This definition has two aspects:


 Hardware: autonomous machines

 Software:
By: Tamrat T.
a single system view for the users
Definition of a Distributed System
5
 Other Definitions

 A distributed system is a system designed to support the development of applications and


services which can exploit a physical architecture consisting of multiple, autonomous
processing elements that do not share primary memory but cooperate by sending
asynchronous messages over a communication network (Blair & Stefani)

 A distributed system is a computing platform built with many computers that:

Operate concurrently;

Are physically distributed(have their own failure modes)

Are linked by a network;

Have independent clocks


By: Tamrat T.
Why Distributed?
6  Resource and Data Sharing

 printers, databases, multimedia servers, ...

 Availability, Reliability

 the loss of some instances can be hidden

 Scalability, Extensibility

 the system grows with demand (e.g., extra servers)

 Performance

 huge power (CPU, memory, ...) available

 Inherent distribution, communication

 organizational
By: Tamrat T. distribution, e-mail, video
Problems of Distribution
7  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,
By: Tamrat T.
platforms, languages, management
…Cont
8  Concurrent execution of processes:

o Non-determinism, race conditions, synchronization, deadlocks, …

 No global clock

o Coordination is done by message exchange

o No single global notion of the correct time

 No global state

o No process has a knowledge of the current global state of the system.

 Units may fail independently

o Network faults may isolate computers that are still running

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.

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.

By: Tamrat T.
Organization and Goals of a Distributed System
10

To support heterogeneous computers and networks and to provide a


single-system view, a distributed system is often organized by means of a
layer of software called middleware that extends over multiple machines.

a distributed system
organized as
middleware;

note that the


middleware layer
extends over
multiple machines

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, ...)

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
By: Tamrat T.
Transparency in a Distributed System
12

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.

By: Tamrat T.
Transparency in a Distributed System
13

Access transparency: enables local and remote resources to be accessed


using identical operations.
Location transparency: enables resources to be accessed without
knowledge of their physical or network location (for example, which
building or IP address).
Concurrency transparency: enables several processes to operate
concurrently using shared resources without interference between them.

By: Tamrat T.
Transparency in a Distributed System
14

Replication transparency: enables multiple instances of resources to be


used to increase reliability and performance without knowledge of the
replicas by users or application programmers.

Failure transparency: enables the concealment of faults, allowing users and


application programs to complete their tasks despite the failure of hardware
or software components.

By: Tamrat T.
…Cont
15

Mobility transparency: allows the movement of resources and clients


within a system without affecting the operation of users or programs.
Performance transparency: allows the system to be reconfigured to
improve performance as loads vary.
Scaling transparency: allows the system and applications to expand in
scale without change to the system structure or the application
algorithms.

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

Centralized data A single on-line telephone book


By: Tamrat T.
Centralized algorithms Doing routing based on complete information
Scaling Techniques
20

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 (3) possible solutions:
1. Hiding communication latencies,
2. Distribution, and
3. Replication.

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

(a) a server checking the correctness of field entries


By: Tamrat T.

(b) a client doing the job


2. Distribution
23

Another important scaling technique is distribution.


 Distribution involves taking a component, splitting it into smaller
parts, and subsequently spreading those parts across the system.
An excellent example of distribution is the Internet Domain Name
System (DNS).
The DNS name space is hierarchically organized into a tree of
domains, which are divided into non overlapping zones, as shown in
Fig below.
By: Tamrat T.
…Cont
24

By: Tamrat T.
…Cont
25

The names in each zone are handled by a single name server.


Without going into too many details, one can think of each path
name, being the name of a host in the Internet, and thus associated
with a network address of that host.
Basically, resolving a name means returning the network address of
the associated host.

By: Tamrat T.
…Cont
26

Consider, for example, the name nl.vu.cs.flits.


To resolve this name, it is first passed to the server of zone Z1 (see Fig.)
which returns the address of the server for zone Z2, to which the rest of
name, vu.cs.flits, can be handed.
The server for Z2 will return the address of the server for zone Z3,
which is capable of handling the last part of the name and will return the
address of the associated host.

By: Tamrat T.
3. Replication
27

Replicate components across a distributed system to increase


availability and for load balancing, leading to better performance
Decided by the owner of a resource.
Caching (a special form of replication) also reduces communication
latency; decided by the user.
But, caching and replication may lead to consistency problems

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

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 compute intensive
program is run in parallel on multiple machines

By: Tamrat T.
A. Cluster Computing
30

an example of a cluster computing system


 a master node runs a middleware (containing libraries for parallel
programs) and controls other compute nodes;
 it allocates tasks
 provides an interface to users… etc.
By: Tamrat T.
B. Grid Computing
31
“Resource sharing and coordinated problem solving in dynamic,
multi-institutional virtual organizations" Ian Foster)
High degree of heterogeneity: no assumptions are made
concerning hardware, operating systems, networks, administrative
domains, security policies, etc.
Globus is a software system for Grid Computing; read about the
Globus Alliance at http://www.globus.org/

By: Tamrat T.
2. Distributed Information Systems
32

Problem: many networked applications with a problem of


interoperability
At the lowest level: wrap a number of requests into a single larger
request and have it executed as a distributed transaction; all or none of
the requests would be executed.
How to let applications communicate directly with each other, i.e.,
Enterprise Application Integration (EAI).

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

 A model for enabling convenient, on-demand network access to a shared pool of


configurable computing resources (e.g., networks, servers, storage, applications,
and services) that can be rapidly provisioned and released with minimal
management effort or service provider interaction
By: Tamrat T.
37

By: Tamrat T.

You might also like