INTRODUCTION TO
DISTRIBUTED SYSTEMS
CHAPTER # 1 Advanced Distributed Systems
What is a Distributed Systems
A distributed system is:
A collection of independent computers that appears to its
users as a single coherent system
Or
Distributed system are collection of computers that act,
and appear as one large computer.WWW is the example
of Distributed sytem.
Or
Collection of multiple,logically related database distributed
over a network is DDS.
Chapter # 1 Advanced Distributed Systems 2
Distributed System
A distributed system could be;
A single system with multiple processors
A cluster of workstation
It is a collection of heterogeneous computers
Resources resides in separate units
Communication is done through message passing or shared
memory
A standardized distributed system architecture removes
complexity resulting from diversity of technology
The performance of a distributed system is determined by the
speed and latency to end-to-end communication
Chapter # 1 Advanced Distributed Systems 3
Distributed System
Chapter # 1 Advanced Distributed Systems 4
Distributed System
Chapter # 1 Advanced Distributed Systems 5
Advantages of Distributed System
Communication and resource sharing possible
Data sharing
one computer can obtain access to data held at some other computer
Function sharing
it enables one computer to use facilities available on some other computer
Economical : Price - performance ratio
Enable one application to utilized several computer resources
Reliability
The effect of breakdown of one or more components can be reduced
Scalability
It has potential for incremental growth
Chapter # 1 Advanced Distributed Systems 6
Advantages or why distributed system-shahzad
Why distributed system?
Much better price/performance ratio.
Resource sharing.
Enhanced performance -- tasks can be executed
concurrently; load distribution to reduceresponse
time.
Higher reliability -- data replication.
Easier modular expansion -- hardware and software
resources can be easily added withoutreplacing
existing resources.
Bottle neck problem
Chapter # 1 Advanced Distributed Systems 7
Distributed OS vs Network OS
Network Operating System
Users are aware of multiplicity of machines
Access to resources of various machines is done explicitly by:
Remote logging into the appropriate remote machine
Transferring data from remote machines to local machines, via the File
Transfer Protocol (FTP) mechanism
Distributed Operating System
Users not aware of multiplicity of machines
access to remote resources similar to access to local resources
Data Migration
transfer data by transferring entire file, or
transferring only those portions of the file necessary for the immediate task
Computation Migration
transfer the computation, rather than the data, across the system
Chapter # 1 Advanced Distributed Systems 8
Distributed Application Examples
The World Wide Web
Automated banking systems
Cellular phone network
Global positioning systems
Retail point-of-sale terminals
Air-traffic control
Avionics (fly-by-wire)
Chapter # 1 Advanced Distributed Systems 9
Motivation for Distribution
Share resources
Personalise environments
Location independence
People & information are distributed
Performance & cost
Modularity & expandability
Availability & reliability
Scalability
Chapter # 1 Advanced Distributed Systems 10
Design Goals & Challenges
What we are trying to achieve when we construct a distributed
system.
Cetrtain common characteristics can be used to assess
distributed system.
Heterogeneity
Openness
Scalability
Security
Failure handling
Concurrency
Performance
Consistency
Transparencies
Chapter # 1 Advanced Distributed Systems 11
Heterogeneity (The distributed system contains many different
kinds of hardware and software working together in cooperative fashion to
solve problems. )
Variety and differences in
Computer hardware
Operating systems
Networks
Programming languages
Implementations by different developers
Middleware (a software layer) is used to deal with
heterogeneity
It provide a programming abstraction as well as masking the
heterogeneity of the underlying networks, hardware, OS, and
programming languages (e.g., CORBA)
Chapter # 1 Advanced Distributed Systems 12
Openness
Openness determines how the system can be extended and
implemented in various ways
Openness is achieved by publishing the key interfaces
Openness is concerned with extensions and improvements
of distributed systems
New components have to be integrated with existing
components
Differences in data representation of interface types on
different processors (of different vendors) have to be
resolved
Chapter # 1 Advanced Distributed Systems 13
(oppeness) shahzad
The openness of a computer system is the characteristic that
determines whether the system can be extended and re-
implemented in various ways like:
Interoperability (The ability of computer systems or software
to exchange and make use of information.)
-Ability of a computer system to run application programs
from different vendors, and to interact with other computers
across local or wide-area networks regardless of their physical
architecture and operating systems
Portability (the ability of software to be transferred from one
machine to another machine.)
Extensibility (the quality of being designed to allow the
addition of new capabilities or functionality)
Example: Twitter and Facebook have API that allows
developers to develop theirs own software interactively.
Chapter # 1 Advanced Distributed Systems 14
(oppeness) shahzad-1
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.
Achieving openness:
At least make the distributed system independent
from heterogeneity of the underlying environment:
HardwarePlatforms
Languages
Chapter # 1 Advanced Distributed Systems 15
(oppeness) shahzad-2
Policies vs. Mechanisms
Defining 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?
Implementing openness:Ideally, a distributed system
provides only mechanisms:
Allow (dynamic) setting of caching policies, preferably per
cachable itemSupport different levels of trust for mobile
codeProvide adjustable QoS parameters per data streamOffer
different encryption algorithms
Chapter # 1 Advanced Distributed Systems 16
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
Achieving openness
At least make the distributed system independent from
heterogeneity of the underlying environment
Hardware
Platforms
Languages
Chapter # 1 Advanced Distributed Systems 17
Implementing Openness
Requires support for different policies
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?
Ideally, a distributed system provides only mechanisms
Allow (dynamic) setting of caching policies
Support different levels of trust for mobile code
Provide adjustable QoS parameters per data stream
Offer different encryption algorithms
Chapter # 1 Advanced Distributed Systems 18
Scalability of Distributed Systems
Scalability is adaptation of distributed systems to
accommodate more users
respond faster (this is the hard one)
It is done to
control the performance loss
prevent software resources running out
avoid performance bottleneck
Usually done by adding more and/or faster processors
Components should not need to be changed when scale of a
system increases
Design components to be scalable
Chapter # 1 Advanced Distributed Systems 19
Scalability of Distributed Systems
At least three components
Size scalability
Number of users and/or processes
Geographical scalability
Maximum distance between nodes
Administrative scalability
Number of administrative domains
Most system easily scale with size
Actual challenge resides with geographical and administrative
scalability
Chapter # 1 Advanced Distributed Systems 20
Techniques for Scalability in DS
Hide communication latencies
Avoid waiting for responses; do something else
Make use of asynchronous communication
Have separate handler for incoming response
Problem: not every application fits this model
Distribution
Partition data and computations across multiple machines
Move computations to clients (Java applets)
Decentralized naming services (DNS)
Decentralized information systems (WWW)
Replication/caching
Make copies of data available at different machines
Replicated file servers and databases
Mirrored Web sites
Web caches (in browsers and proxies)
File caching (at server and client)
Chapter # 1 Advanced Distributed Systems 21
Scalability-shahzad
Scalability can be measured over multiple dimensions, such as:[5]
Administrative scalability: The ability for an increasing number of
organizations or users to access a system.
Functional scalability: The ability to enhance the system by adding
new functionality without disrupting existing activities.
Geographic scalability: The ability to maintain effectiveness during
expansion from a local area to a larger region.
Load scalability: The ability for a distributed system to expand and
contract to accommodate heavier or lighter loads, including, the
ease with which a system or component can be modified, added,
or removed, to accommodate changing loads.
Generation scalability: The ability of a system to scale by adopting
new generations of components.
Heterogeneous scalability is the ability to adopt components from
different vendors. (different machine , differnent Operating
System)
Chapter # 1 Advanced Distributed Systems 22
Security
Security is one the important concern while designing a
distributed systems as the things are going to be shared
In a distributed system, clients send requests to access data
managed by servers, resources in the networks
Doctors requesting records from hospitals
Users purchase products through electronic commerce
Security is required for
Concealing the contents of messages: security and privacy
Identifying a remote user or other agent correctly (authentication)
New challenges
Denial of service attack
Security of mobile code
Chapter # 1 Advanced Distributed Systems 23
Failure Handling (Fault Tolerance)
Hardware, software and networks fail
Distributed systems must maintain availability even at low
levels of hardware/software/network reliability
Failure handling in distributed system is mainly concerned
with
Detecting failure
Masking failure
Fault tolerance is achieved by
recovery
redundancy
Chapter # 1 Advanced Distributed Systems 24
Concurrency
Components in distributed systems are executed in
concurrent processes
Components access and update shared resources
(e.g. variables, databases, device drivers)
Concurrency should be provided for both the
process & resource side
Integrity of the system may be violated if concurrent
updates are not coordinated
Lost updates
Inconsistent analysis
Chapter # 1 Advanced Distributed Systems 25
Transparencies
Distributed systems should be perceived by users
and application programmers as a whole rather than
as a collection of cooperating components
Transparency has different aspects
These represent various properties that distributed
systems should have
Chapter # 1 Advanced Distributed Systems 26
Distributed System Transparencies
Location transparency
It hides that where the resource is located
It enables resources to be accessed without knowledge of their
physical or network location
for example, which building or IP address
The name of the resource does not indicate the physical location
If users change location, their view of system would not change
This implies the support of access transparency
Example; Files, processors
Access transparency
Enables local and global resources to be accessed using identical
operation
hide differences in data representation and how a resource is accessed
enables local and remote resources to be accessed using identical
operations
Chapter # 1 Advanced Distributed Systems 27
Distributed System Transparencies
Migration transparency
It hides that a resource may move to another location
It allows the movement of resources and clients within a system
without affecting the operation of users or programs
Users cannot notice if a resource or their job has been migrated from
one location to other within distributed system
Location transparency is necessary for this to occur
Replication transparency
It enables multiple instances of resources (files and servers) to be used
to increase reliability and performance without knowledge of the
replicas by users or application programmers
All changes and updates must be made simultaneously to all replicas
It increases the reliability and performance
Chapter # 1 Advanced Distributed Systems 28
Distributed System Transparencies
Concurrency transparency
It hides that a resource may be shared by several competing users or
processes, or
It enables several processes to operate concurrently using shared
resources without interference between them
A processor utilizes multiple resources at the same time
Failure transparency
If a link or system in distributed system fails, the entire system should
not fail
It hides the failure and recovery of a resource or system
It enables the concealment of faults, allowing users and application
programs to complete their tasks despite the failure of hardware or
software components
Chapter # 1 Advanced Distributed Systems 29
Distributed System Transparencies
Performance transparency
Allows the system to reconfigure as the load vary
It hides the procedure and effect of load balancing and load sharing
Scaling transparency
It hide that the new components are added to system
It allows the system and applications to expand in scale without
change to the system structure or the application algorithms
Chapter # 1 Advanced Distributed Systems 30
Degree of Transparency
Aiming at full distribution transparency may be too much
Users may be located in different continents
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
Full transparency will cost performance, exposing distribution
of the system
Keeping Web caches exactly up-to-date with the master
Immediately flushing write operations to disk for fault tolerance
Chapter # 1 Advanced Distributed Systems 31
DS Information Management Solution
A Distributed System can be manage in two manners
Distributed and centralized solution
Centralized solution
Place the entire decision/information in one location
Easy to manage
Application upgrade is quite simple
Disadvantages
Become critical element
If fails, entire distributed system is subject to failure
Network traffic is increased towards centralized system
Chapter # 1 Advanced Distributed Systems 32
DS Information Management Solution
Distributed solution
It does not suffer from critical element
If one system fails, entire DS will not fail
Disadvantages
Increase traffic when involve broadcasting information
Difficult for several locations to maintain consistent information
It requires huge cooperation among participants
Chapter # 1 Advanced Distributed Systems 33
A Typical Portion of the Internet
intranet %
%
% ISP
backbone
satellite link
computers:
server:
network link:
Chapter # 1 Advanced Distributed Systems 34
A Typical Internet
Desktop
email server computers
print and other servers
Local area
Web server network
email server
print
File server
other servers
the rest of
the Internet
router/firewall
Chapter # 1 Advanced Distributed Systems 35
Portable & Handled Devices in a DS
Internet
Host intranet WAP
Wireless LAN gatew ay Home intranet
Mobile
phone
Printer Laptop
Camera Host site
Chapter # 1 Advanced Distributed Systems 36
Reference
Tanenbaum, Maarten van Steen
Chapter 1
Coulouris et. al.
Chapter 1
Chapter # 1 Advanced Distributed Systems 37