Вы находитесь на странице: 1из 5

Distributed Systems Peter Arnold peter.arnold254@gmail.

com
1

Introduction
A distributed system is a collection of autonomous hosts connected through a computer network. Hosts
communicate through message passing to facilitate cooperation. A distributed system can also be
referred to as a collection of independent computers that appears to its users as a single coherent
system. Hosts on a distributed system work jointly to perform a single task or provide a common service.
Examples of distributed systems
1. The Web
If you buy a flight on-line, your computer interacts with a distant machine.
Shared Resources such as Documents
Users interested in the documents are also distributed.
The documents are also distributed.
2. Civil Aviation
Modern planes have replicated flight control computers (Airbus A330/A340 planes have 5 for
in

3. Peer-to-Peer (P2P) file sharing networks
Each user contributes to the network
Auto-organization, no centralized entity
4. Bank ATMs :
Clients at different ATMs may access the same accounts simultaneously
ATMs use nearest central office
Each office acts as a backup of the other
Clients may access their accounts from ATM machines.
z xm b m s depicted in the figure
below.

Distributed Systems Peter Arnold peter.arnold254@gmail.com
2


Components of a Distributed System
Data component - Concerned with structures for information retention and manipulation
Processing component - Concerned with processing data objects
Presentation component - Makes data visible to users and handling user interaction
Communication channel - Pipelines between processes. This usually refers to inter-platform network
Message Data sent between processes over communication channel
Characteristics of a Distributed System
Multiple Computers
A distributed system usually consists of more than one physical computer, each consisting of CPUs, local
memory, and possibly stable storage, and Input/output paths to connect it with the environment.
Interconnections
Refers to mechanisms for communicating with other nodes on a network.
Availability
A distributed system should be permanently available (even though parts of it may be unavailable at
times .
Shared State
If a subset of nodes cooperates to provide a service, then a shared state is maintained by these nodes.
The shared state is distributed or replicated among the participants.
Scalability
Should be easy to expand and scale.
t he rest of
email server
Web server
Desktop
compu ters
File server
router/ firewall
print and ot her servers
ot her servers
print
Local area
net work
email server
t he I nt ernet
F 1 z
Distributed Systems Peter Arnold peter.arnold254@gmail.com
3

Transparency
The separation of the components of a distributed system is concealed from the user and the
application programmer.
Fault tolerance
The ability to continue in operation after a fault has occurred.
Processes interact via non-shared local memory.
Goals of Distributed Systems
To ensure availability i.e. to make sure that a user requesting for a service gets it.
To achieve consistency
To achieve reliability
To improve efficiency
To improve performance
To ensure scalability
Advantages of Distributed Systems
For many applications there are a number of economic and technical reasons or motivations that make
distributed systems much more attractive than their centralized counterparts. The advantages of
distributed systems include:
1. Sharing of resources Distributed systems allow sharing of resources e.g. storage drives, printers,
databases, files etc.
2. Better Performance - By using the combined processing and storage capacity of many nodes,
performance levels can be improved.
3. Scalability - Resources such as processing and storage capacity can be increased incrementally.
4. Inherent distribution - Some applications, such as email and the Web are naturally distributed. This
includes cases where users are geographically dispersed as well as when single resources (e.g., printers,
data) need to be shared.
5. Enhanced Reliability - By having redundant components the impact of hardware and software faults
on users can be reduced.
Distributed Systems Peter Arnold peter.arnold254@gmail.com
4

Disadvantages of Distributed Systems
The advantages associated with distributed systems are often offset by several problems encountered
during the use and development of the same systems. These limitations include the following.
New components lower network performance
Networks are needed to connect independent nodes and are subject to performance limitations.
Besides these limitations, networks also constitute new potential points of failure.
Weak security
Because a distributed system consists of multiple components, there are more elements that can be
compromised and must, therefore, be secured. This leads to a compromise of security in the same
systems.
Software complexity
Distributed systems software is more complex and harder to develop than conventional software,
hence, it is more expensive to develop and there is a greater chance of introducing errors.
Management complexity
More effort is required for distributed systems management.
Distributed Systems Concepts
Resources - Refers to services, components or servers in the context of providers of information e.g.
web servers. A resource is anything that can be shared or used on a distributed network. Examples of
resources that can be shared on a distributed system include computers, file storage systems, RAM,
CPU, files, communication channels, databases, servers e.g. a web server and applications.
Transparency - Refers to the property of hiding aspects of distribution from the user, e.g. location and
access transparency.
Distributed paradigms - Refers to models, for describing distribution and communication. Some of these
paradigms are: client/server model, peer to peer model.
Client - Computer which acts as a consumer of information in a distributed system.
Server - Computer which act as a provider of information. A server provides a service e.g. a web server.
Node - Used to represent any computer on a distributed network.
Services - Services are analogous to function calls. Servers receive a request (i.e. the arguments to a
function call) and return a response (i.e. the returned function data or data updated within a pass by
reference argument).
Distributed Systems Peter Arnold peter.arnold254@gmail.com
5

A Peer - A special kind of node in which runs both a client and a server. A computer is both a consumer
and provider of information.
Rules of the Thumb
Trade-offs
At a certain point, trade-offs must be made i.e. a choice must be made about which requirement or
property is more important and how far to go when fulfilling that requirement. For instance availability
holds only in the face of certain problems, but not others?
Separation of Concerns
When tackling a large, complex, problem (such as designing a distributed system), it is useful to split the
problem up into separate concerns and address each concern individually. Approaching the design of a
distributed system in this particular way leads to highly modular or layered systems, which helps to
m xb
Keep It Simple, Stupid (KISS)
Overly, complex systems are error prone and difficult to use. If possible, solutions to problems and
resulting architectures should be simple rather than mind-numbingly complex.
Policy versus Mechanism
Separation of policy and mechanism helps to build flexible and extensible systems, and is, therefore,
important to follow when designing distributed systems e.g. different mechanisms can be used to
implement one policy.
End-to-End Argument
When building layered systems some functions can only be reliably implemented at the application
level. End to end functionality refers to functionality required at the application level. Implementing
functionality at the wrong level forces everyone to use that mechanism. It also renders the mechanism
less useful than when it is implemented at a higher (application) level.