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

Chapter 1-Introduction

This document provides an introduction to distributed systems. It defines a distributed system as a collection of independent computers that appears as a single system to users. Key points include: - After the 1980s, cheaper microprocessors and computer networks enabled connecting many computers to work as a single application, unlike previous centralized systems. - Distributed systems aim to provide transparency, openness, and scalability. They organize computers with middleware software and use techniques like distribution, replication, and hiding communication latencies to scale. - Distributed systems allow sharing resources and data across multiple computers for availability, reliability, performance, and to leverage inherent distribution in organizations and communication networks. However, they also introduce problems around concurrency, security, failures
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views

Chapter 1-Introduction

This document provides an introduction to distributed systems. It defines a distributed system as a collection of independent computers that appears as a single system to users. Key points include: - After the 1980s, cheaper microprocessors and computer networks enabled connecting many computers to work as a single application, unlike previous centralized systems. - Distributed systems aim to provide transparency, openness, and scalability. They organize computers with middleware software and use techniques like distribution, replication, and hiding communication latencies to scale. - Distributed systems allow sharing resources and data across multiple computers for availability, reliability, performance, and to leverage inherent distribution in organizations and communication networks. However, they also introduce problems around concurrency, security, failures
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

Chapter 1 - Introduction

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE


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 was a single
computer with its peripherals
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 2
 Definition of a Distributed System
 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:


1. hardware: autonomous machines

2. software: a single system view for the users

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 3


 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)

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 4


 Why Distributed?
 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 distribution, e-mail, video

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 5


 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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 6


 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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 7


1.2 Organization and Goals of a Distributed System
 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
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 8
 Goals of a distributed system: a distributed system should
 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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 9


 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
Replication Hide 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
UNIVERSITY OF GONDAR state OF COMPUTER SCIENCE
DEPARTMENT 10
 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
 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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 11


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

 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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 12


 scalability problems

Concept Example
Single server for all users-mostly for security
Centralized services
reasons
Centralized data A single on-line telephone book
Doing routing based on complete
Centralized algorithms
information
examples of scalability limitations

 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
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 13
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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 14


(a) a server checking the correctness of field entries
(b) a client doing the job
 e.g., shipping code is now supported in Web applications using Java
Applets

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 15


b. Distribution
 e.g., DNS - Domain Name System ([email protected])
 divide the name space into zones
 for details, see later in Chapter 4 - Naming

an example of dividing the DNS name space into zones


UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 16
c. Replication
 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 (see Chapter 6 - Consistency and Replication)

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 17


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
 two types: cluster computing and grid computing
 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 parallel on multiple
machines

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE 18


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.
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE
 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/

2.Distributed Information Systems


 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)

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE


 Transaction Processing Systems
 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
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE
properties of transactions, often referred to as ACID
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

UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE


3.Distributed Pervasive Systems
 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 requirements for pervasive applications


 embrace contextual changes: a device is aware that its environment
may change all the time, e.g., changing its network access point
 encourage ad hoc composition: devices are used in different ways
by different users
 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
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE
Thank you!
?
UNIVERSITY OF GONDAR DEPARTMENT OF COMPUTER SCIENCE

You might also like