You are on page 1of 39

CHAPTER ONE:

INTRODUCTION TO
DISTRIBUTED SYSTEMS
Reference: Chapter One: Coulouris, G.,
Dollimore, J., Kindberg, T., Blair, G., Distributed
Systems: Concepts and Design, 5th Edition,
Addison Wesley, 2011
Introduction to distributed
systems
Introduction
Definition of a Distributed System
• We define distributed system as one in which hardware or
software components located at networked computers
communicate and coordinate their actions only by passing
messages.
• A distributed system consists of a collection of autonomous
computers linked by a computer network and equipped with
distributed system software.
• This software enables computers to coordinate their
activities and to share the resources of the system
hardware, software, and data.

Distributed systems by Patrick ndungu 2


Introduction to distributed
systems
Definition of a Distributed System
 This def. Simply covers the entire range of
systems in which networked computers can
usefully be deployed.
 Computers that are connected by a network may
be spatially separated by any distance.
They may be in the same building, on separate
continents, or in the same room.

Distributed systems by Patrick ndungu 3


Introduction to distributed systems
Definition of a Distributed System
• How to characterize a distributed system?
– concurrency of components
– lack of global clock
– independent failures of components
• Leslie Lamport :-)
– You know you have a distributed system when the crash of a
computer you’ve never heard of stops you from getting any
work done!
– Prime motivation: to share resources

Distributed systems by Patrick ndungu 4


Definition of a Distributed System

• The definition of distributed systems


has the following significant
consequences:
1. Concurrency:
 In a network of computers, concurrent program execution is the
norm.
2. No global clock:
 When programs need to cooperate they coordinate their actions by exchanging
messages. Close coordination often depends on a shared idea of the time at which the
programs’ actions occur. But it turns out that there are limits to the accuracy with
which the computers in a network can synchronize their clocks – there is no single
global notion of the correct time.
3. Independent failures:
 All computer systems can fail, and it is the responsibility of system
designers to plan for the consequences of possible failures.

Distributed systems by Patrick ndungu 5


Definition of a Distributed System
A distributed system
– can also be defined as a collection of autonomous computers linked
by a computer network that appear to the users of the system as a
single computer.
– System architecture: the machines are autonomous; this means they are computers
which, in principle, could work independently;
– The user’s perception: the distributed system is perceived as a single system solving
a certain problem (even though, in reality, we have several computers placed in
different locations).
– By running a distributed system software the computers are enabled to:
• coordinate their activities
• share resources:- hardware, software, data. etc
• The prime motivation for constructing and using distributed systems
stems from a desire to:-
– share resources and
» The range of things that can usefully be shared in a networked computer system.
» from hardware components e.g. disks and printers, software-defined entities
e.g. files, databases and data objects of all kinds.
» It includes the stream of video frames that emerges from a digital video
camera and the audio connection that a mobile phone call represents.
– coordinate activities. Distributed systems by Patrick 6
ndungu
Examples of Distributed System
Distributed Systems application domains connected with networking:

Distributed systems by Patrick ndungu 7


Examples of Distributed System

1. Web search
An example: Google
• Highlights of this infrastructure:
physical infrastructure
distributed file system
structured distributed storage system
lock service
programming model

Distributed systems by Patrick ndungu 8


Examples of Distributed System

2. Massively multiplayer online games (MMOGs)


An example:
EVE online – client-server architecture!
 EverQuest – more distributed architecture

 Research on completely decentralized approaches


based on peer-to-peer (P2P) technology

Distributed systems by Patrick ndungu 9


Examples of Distributed System

3. Network of Workstations

 Personal workstations + processors not assigned to specific users.


 Single file system, with all files accessible from all machines in the
same way and using the same path name.
 For a certain command the system can look for the best place
(workstation) to execute it.

Distributed systems by Patrick ndungu 10


Examples of Distributed System
4. Automatic Banking (teller machine) System

Primary requirements:
i. Security and reliability.
ii. Consistency of replicated data.
iii. Concurrent transactions (operations which involve accounts in different banks;
simultaneous access from several users, etc).
iv. Fault tolerance
3.Etc
Other Examples
• Student to give more examples in class.
Distributed systems by Patrick 11
ndungu
Introduction to distributed systems
Trends in Distributed Systems
• The emergence of pervasive networking technology and the modern Internet
– networking has become a pervasive resource and devices can be connected
at any time and any place
• is a concept in software engineering and computer science where
computing is made to appear anytime and everywhere. (24/7)
– In contrast to desktop computing, ubiquitous computing can occur using any
device, in any location, and in any format.
– A user interacts with the computer, which can exist in many different
forms, including laptop computers, tablets and terminals in everyday objects
such as a refrigerator or a pair of glasses.
– The underlying technologies to support ubiquitous computing include
Internet, advanced middleware, operating system, mobile code, sensors,
microprocessors, new I/O and user interfaces, networks, mobile protocols,
location and positioning, and new materials
• the emergence of ubiquitous computing coupled with the desire to support user
mobility in distributed systems;
Distributed systems by Patrick 12
ndungu
Introduction to distributed systems

A typical portion of the Internet:

Distributed systems by Patrick 13


ndungu
Trends in Distributed Systems Cont…
• Distributed multimedia systems
– the increasing demand for multimedia
services;
• live or pre-ordered television broadcasts
• video-on-demand
• music libraries
• audio and video conferencing

Distributed systems by Patrick 14


ndungu
Trends in Distributed Systems Cont…
• the increasing demand for multimedia services;
the view of distributed systems as a utility – cloud
computing.

Distributed systems by Patrick 15


ndungu
Trends in Distributed Systems
• The term cloud computing is used to capture this vision of computing as a
utility.
• A cloud is defined as a set of Internet based application, storage and
computing services sufficient to support most users’ needs, thus enabling
them to largely or totally dispense with local data storage and application
software.
– The term also promotes a view of everything as a service, from physical
or virtual infrastructure through to software, often paid for on a per-
usage basis rather than purchased.
– Note that cloud computing reduces requirements on users’ devices,
allowing very simple desktop or portable devices to access a potentially
wide range of resources and services.
– Clouds are generally implemented on cluster computers to provide the
necessary scale and performance required by such services.
– A cluster computer is a set of interconnected computers that
cooperate closely to provide a single, integrated high performance
computing capability.
Distributed systems by Patrick 16
ndungu
Trends in Distributed Systems
Distributed computing as a utility
• Cloud computing

Distributed systems by Patrick 17


ndungu
Trends in Distributed Systems
Portable and handheld devices in a distributed system
– mobile computing
– location/context-aware computing
– Ubiquitous computing
– Spontaneous interoperation
– service discovery

Distributed systems by Patrick 18


ndungu
Introduction to distributed systems
Why Distributed Systems?
• Nb
– Distributed systems have been around since the early 1970’s and
– have been made possible by advances in computer and communications technology.
• Systems are distributed for either or both of two main reasons:
1) Organizations today are expanding far beyond their traditional
geographic boundaries in search for;-
– new business, new customers, new markets and improved financial and
organizational viability.
• Consequently, an organization and its information systems may be
inherently distributed and in connecting its systems into a seamless
whole, a distributed system appears.
2) An organization may take inherently centralized information
processing systems and distribute them to achieve higher
reliability, availability, safety or performance, or all of the
above.
Distributed systems by Patrick 19
ndungu
Introduction to distributed systems
• Sharing resources
– What are the resources?
• Hardware
– Not every single resource is for sharing
• Data
– Databases
– Proprietary software
– Software production
– Collaboration
– Sharing Resources - considerations
– Namespace for identification
– Name translation to network address
– Synchronization of multiple access
20
Distributed systems by Patrick ndungu
Introduction to distributed systems
Advantages of Distributed Systems?
1. It can be more fault-tolerant
– It can be designed so that if one component of the system fails
then the others will continue to work
• Such a system will provide useful work in the face of quite a large number of
failures in individual component systems.
2. It is more flexible
– A distributed system can be made up from a number of different
components.
• Some of these components may be specialized for a specific task while others
may be general purpose. Components can be added, upgraded, moved and
removed without impacting upon other components.
3. It is easier to extend
– More processing, storage or other power can be obtained by
increasing the number of components.
•   Distributed systems by Patrick 21
ndungu
Advantages of Distributed Systems?
4. It is easier to upgrade
– A distributed system may be upgraded in increments by replacing
individual components without a major disruption, or a large cash
injection.
– When a single large computer system becomes obsolete all of it has
to be replaced in a costly and disruptive operation.
5. Local autonomy
– by allowing domains of control to be defined where decisions are made relating to
purchasing, ownership, operating priorities, IS development and management, etc.
Each domain decides where resources under its control are located.
6. Increased Reliability and Availability
– In a centralized system, a component failure can mean that the whole system is
down, stopping all users from getting services.
– In a distributed system, multiple components of the same type can be configured to
fail independently. This aspect of replication of components improves the fault
tolerance in distributed systems, consequently, the reliability and availability of the
system is enhanced.
Distributed systems by Patrick 22
ndungu
Advantages of Distributed Systems?
7. Improved Performance
– Large centralized systems can be slow performers due to the sheer volume of
data and transactions being handled.
– A service that is partitioned over many server computers each supporting a
smaller set of and users access to local data and resources results in faster
access.
– The support of parallel access to distributed data across the organization.
• Is another performance advantage

8. Security breaches are localized


– In distributed systems with multiple security control domains,
– a security breach in one domain does not compromise the whole system.
• Each security domain has varying degree of security
authentication, access control and auditing.

Distributed systems by Patrick 23


ndungu
Disadvantages of Distributed Systems?

1. It’s more difficult to manage and secure


– Centralized systems are inherently easier to secure and easier to manage
because control is done from a single point.
– Distributed systems require more complex procedures for security,
administration, maintenance and user support due to greater levels of co-
ordination and control required.
2. Lack of skilled support and development Staff
– Since the equipment and software in a DS can be sourced from different
vendors, unlike in traditional systems where everything is sourced from the same
vendor, it’s difficult to find personnel with a wide range of skills to offer
comprehensive support.
3. They are significantly more complex.
4. They introduce problems of synchronization between processes.
5. They introduce problems of maintaining consistency of data.

Distributed systems by Patrick 24


ndungu
Introduction to distributed systems
Characteristics of Distributed Systems?
1. Multiple autonomous processing elements
– A distributed system is composed of several independent components each
with processing ability.
• There is no master-slave relationship between processing elements. Thus,
it excludes traditional centralized mainframe based systems.
2. Information exchange over a network
– the network connects autonomous processing elements.
• Processes interact via non-shared local memory multiple processor
computer systems can be classified into those that share memory
(multiprocessor computers) and those without shared memory (multi-
computers).
• A hybrid configuration involves separate computers with a distributed
shared memory.

Distributed systems by Patrick 25


ndungu
Characteristics of Distributed Systems?
3. Transparency
– A distributed system is designed to conceal from the users the fact that
they are operating over a wide spread geographical area and provide the
illusion of a single desktop environment.
– It should allow every part of the system to be viewed the same way
regardless of the system size and provide services the same way to every
part of the system. Some aspects of transparency include:-
• Global names –
– the same name works everywhere. Machines, users, files, control groups
and services have full names that mean the same thing regardless of
where in the system the name is used.
• Global access –
– the same functions are usable everywhere with reasonable performance. A
program can run anywhere and get the same results. All the services and
objects required by a program to run are available to the program regardless
of where in the system it is executing.
• Global security –
– same user authentication and control access work everywhere e.g. same
mechanism to let the same person next door and someone at another site
read ones files. Authentication to any computer in the system. 26
Distributed systems by Patrick ndungu
Characteristics of Distributed Systems
– Global management
- the same person can administrate system components anywhere.
System management tools perform the same actions e.g.
configuration of workstations.

Distributed systems by Patrick 27


ndungu
Components of a Distributed Systems
A distributed System has three major components:-
1.Data
– this is concerned with the structures and
functions for information retention and
manipulation.
2. Processing
– this is concerned with processing data objects.
3. Presentation
– this is processing directly concerned with making
data visible to users and handling user interaction.

Distributed systems by Patrick 28


ndungu
Design Issues of Distributed Systems
1. Heterogeneity:
o variety and difference in:
•Networks
•computer hardware
• OS
•programming languages
•implementations by different developers
– They must be constructed from a variety of different networks,
operating systems, computer hardware and programming
languages.
– The Internet communication protocols mask the difference in
networks, and middleware can deal with the other differences.

Distributed systems by Patrick 29


ndungu
Design Issues of Distributed Systems
1. Heterogeneity cont….
Middleware
– middleware – software layer providing:
• programming abstraction
• masking heterogeneity of:
 underlying networks
 Hardware
 operating systems
– Heterogeneity and mobile code
• Mobile code – programming code that can be transferred from one
computer to another and run at the destination (Example: think Java
applets)
• Virtual machine approach – way of making code executable on a
variety of host computers – the compiler for a particular language
generates code for a virtual machine instead of a particular hardware
order code.
Distributed systems by Patrick ndungu 30
Design Issues of Distributed Systems
2. Openness:
OPENNESS of a:
– Computer system - can the system be extended
and reimplemented in various ways?
– distributed system - can new resource-sharing services be
added and made available for use by variety of client
programs? An open system –
• An open distributed system has:
– uniform communication mechanism
– published interfaces to shared resources
• Open DS
– heterogeneous hardware and software, possibly from
different vendors, but conformance of each component to
published standard must be tested and verified for the
system to work correctly
Distributed systems by Patrick ndungu 31
Design Issues of Distributed Systems
2. Openness Cont….

– Distributed systems should be extensible – the


first step is to publish the interfaces of the
components, but the integration of components
written by different programmers is a real
challenge.

3. Security:
– Encryption can be used to provide adequate protection of
shared resources and to keep sensitive information
secret when it is transmitted in messages over a network.
Denial of service attacks are still a problem.
Distributed systems by Patrick ndungu 32
Design Issues of Distributed Systems
3. Security Cont..
1. Confidentiality –protection against disclosure to unauthorized
individuals
2. Integrity – protection against alteration or corruption
3. Availability – protection against interference with the means
to access the resources
» Security challenges not yet fully met:
 denial of service attacks
 security of mobile code

Distributed systems by Patrick ndungu 33


Design Issues of Distributed Systems
4. Scalability:
– the ability to work well when the system load or the number of
users increases
– A distributed system is scalable if the cost of adding a user is a
constant amount in terms of the resources that must be added.
– Challanges with building scalable distributed systems:
» Controlling the cost of physical resources
» Controlling the performance loss
» Preventing software resources running out (like 32-bit
internet addresses, which are being replaced by 128
bits)
» Avoiding performance bottlenecks
– Example: some web-pages accessed very frequently –
remedy:
» Caching and replication

Distributed systems by Patrick 34


ndungu
Design Issues of Distributed Systems
Scalability cont….
– A distributed system is scalable if the cost of adding a user is a
constant amount in terms of the resources that must be added.
– The algorithms used to access shared data should avoid
performance bottlenecks and data should be structured
hierarchically to get the best access times. Frequently accessed
data can be replicated.

Distributed systems by Patrick 35


ndungu
Design Issues of Distributed Systems
5. Failure tolerance/handling:
– Techniques for dealing with failures
» Detecting failures
» Masking failures
» messages can be retransmitted
» disks can be replicated in a synchronous action
» Tolerating failures
» Recovery from failures
– Any process, computer or network may fail independently of
the others. Therefore each component needs to be aware of
the possible ways in which the components it depends on
may fail and be designed to deal with each of those failures
appropriately.

.
Distributed systems by Patrick 36
ndungu
Design Issues of Distributed Systems

6. Concurrency:
– The presence of multiple users in a distributed system is a source
of concurrent requests to its resources.
» Each resource must be designed to be safe in a concurrent
environment.

– Example: Several clients trying to access shared resource


at the same time . Any object with shared resources in a DS
must be responsible that it operates correctly in a
concurrent environment

Distributed systems by Patrick 37


ndungu
Design Issues of Distributed Systems
7. Transparency:
– The aim is to make certain aspects of distribution invisible to
the application programmer so that they need only be concerned
with the design of their particular application. For example,
• they need not be concerned with its location or the details of how its
operations are accessed by other components, or whether it will be
replicated or migrated. Even failures of networks and processes can be
presented to application programmers in the form of exceptions – but they
must be handled.

8. Quality of service:
– It is not sufficient to provide access to services in distributed
systems. In particular, it is also important to provide guarantees
regarding the qualities associated with such service access.
Examples of such qualities include parameters related to
performance, security and reliability.

• Distributed systems by Patrick 38


ndungu
The END

Q&A

THANKS

Distributed systems by Patrick 39


ndungu

You might also like