You are on page 1of 40

HARAMAYA UNIVERSITY

COLLEGE OF COMPUTING AND INFORMATICS


DEPARTMENT OF SOFTWARE ENGINEERING

FUNDAMENTALS OF DISTRIBUTED SYSTEMS

CHAPTER ONE

INTRODUCTION TO DISTRIBUTED SYSTEMS

Compiled By: Gizachew B.


2
Contents

 Introduction

 Characteristics of Distributed System

 Middleware

 Motivation of Distributed System

 Goals of Distributed System

 Example of Distributed System

 Types of Distributed System


3 References

Textbook(s):

G. Coulouris, J. Dollimore, T. Kindberg. Distributed Systems: Concepts and Design. Addison-Wesley,

2012. A. S. Tanenbaum and Maarten van Steen, Distributed Systems, Principles and Paradigms,

Prentice Hall, 2002.

Other Reference:

Ajay D. Kshemkalyani and Mukesh Singhal, Distributed Computing: Principles, Algorithms, and

Systems. Cambridge University Press, 2008.


4 Introduction (1)

 The coming on of computers was motivated by the need to perform complex data calculations and

processing quickly.

 Once their usage to perform these tasks is universal, the next computing advances are encouraged by

the necessity to collaborate with other computers via a network.

 The earliest solutions are based on a model called centralized systems, in which a single computer

with one or multiple CPUs processes all incoming requests.

 However, reasons such as cost, reliability, and the separate nature of the divisions that makes up

organizations using the systems causes this model to be less attractive.


5 Introduction (2)

 Another model, called distributed systems, addresses these issues with its distribution.

 Instead of having one single powerful computer, distributed systems employ multiple computers

communicating to each other via a common network.

 The independent, distributed, and sometimes heterogeneous nature of these computers also

underlies the importance of having a distributed system software to provide a common view of the

systems.

 Various definitions of distributed systems have been given in the literature, none of them

satisfactory, and none of them in agreement with any of the others.


6 Introduction (3)

Andrew Tannenbaum “A distributed system is a collection of independent computing elements

that appear to its users as a single coherent system.”

G. Coulouris, J. “A system in which hardware and software components located at

Dollimore, T. networked computers communicate and coordinate their actions only by

Kindberg. message passing.”

Leslie Lamport “A distributed system is one in which the failure of a computer you didn’t

even know existed can be a cause to become your own computer unusable”
7 Introduction (4)

 A distributed system is a collection of independent computers that linked by a network and equipped

with distributed system software.

 A well-developed distributed system software provides the illusion of a single and integrated environment

although it is actually implemented by multiple computers in different locations.

 In order to support heterogeneous computers and networks while offering a single-system view,

distributed systems are often organized by means of a layer of software that is, logically placed between a

higher-level layer consisting of users and applications, and a layer underneath consisting of operating

systems and basic communication facilities.


8 Characteristics of Distributed System (1)

Characteristics 1: Collection of independent (autonomous) computing elements

 Modern distributed system can, and often will, consists of all kinds of nodes, ranging from very big high-

performance computers to small computers devices.

 In practice, nodes are programmed to achieve common goals, which are realized by exchanging messages with

each other.

 An important observation is that , as a consequence of dealing with independent nodes, each one will have its

own notion of time. In other words, we cannot always assume that there is global clock.

 This lack of a common reference of time leads to fundamental question regarding the synchronization and

coordination with a distributed system. (We will see in chapter 6)


9 Characteristics of Distributed System (2)

 The fact that we are dealing with a collection of nodes implies that we may also need to manage the

membership and organization of that collection.

 In other words, we may need to register which nodes may or may not belong to the system, and also provide

each member with a list of nodes it can directly communicate with.

 In an open group, any node is allowed to join the distributed system, effectively meaning that it can send

messages to any other node in the system.

 In contrast, with a closed group, only the members of that group can communicate with each other and a

separate mechanism is needed to let a node join or leave the group.


10 Characteristics of Distributed System (3)

Characteristics 2: Single Coherent System

 Distributed system should appear as a single coherent system

 There should be a single system view, meaning that an end user should not even notice that processes, data,

and control are dispersed across a computer network.

 In a single coherent system the collection of nodes as a whole operates the same, no matter where, when,

and how interaction between a user and the system takes place.

 Offering a single coherent view is often challenging enough. For example, it requires that an end user would

not be able to tell exactly on which computer a process is currently executing, or even perhaps that part of a

task has been spawned off to another process executing somewhere else.

 Likewise, where data is stored should be of no concern, and neither should it matter that the system may be

replicating data to enhance performance.


11 Middleware (1)

 Middleware is defined as a software solution that sits between the application layer and operating system

(OS) layer of your infrastructure stack to enable a channel of communication and data flow between these

two components.

 To assist the development of distributed applications, distributed systems are often organized to have a

separate layer of software that is logically placed on top of the respective operating systems of the

computers that are part of the system.

 The distributed system provides the means for components of a single distributed application to

communicate with each other, but also to let different applications communicate.

 At the same time, it hides, as best and reasonable as possible, the differences in hardware and operating

systems from each application.


12 Middleware (2)

 In a sense, middleware is the same to a distributed system as what an operating system is to a computer: a

manager of resources offering its applications to efficiently share and deploy those resources across a

network.

 Next to resource management, it offers services that can also be found in most operating systems, including:

o Facilities for inter application communication

o Security services

o Accounting services

o Masking of and recovery from failures.


13 Middleware (3)

Computer 1 Computer 2 Computer 3 Computer 4

Application A Applications B Application C

Distributed System Layer (Middleware)

Local OS 1 Local OS 2 Local OS 3 Local OS 4

Network
14 Motivation for Distributed System (1)

 Inherently distributed computations

o Many applications such as money transfer in banking, reaching consensus among parties that
are geographically distant etc.

 Resource Sharing

o Sharing of resources such as peripherals, complete data site because it is often neither practical
nor cost effective.

 Access to geographically remote data and resource

o Such as bank databases, supercomputers, resource-constrained mobile devices.


15 Motivation for Distributed System (2)

 Reliability

o Possibility of replicating resources and execution to enhance reliability.

o The geographically distributed resources are not likely to crash/malfunction at the same time.

o Reliability entails several aspects.

• Availability: resource should be accessed at all times.

• Integrity: resource should be correct and complete.

• Fault tolerance: the ability to recover from system failures.

 Expandability

Heterogeneous processors may be easily added or replaced without affecting performance.


16 Goals of Distributed System (1)

 Four important goals that should be met to make building a distributed system
worth the effort.
 A distributed system should;

o Make resources easily accessible.

o Be transparent.

o Be open.

o Be scalable.
17 Goals of Distributed System (2)

Making Resources Accessible

 The main goal of a distributed system is to make it easy for the users and applications to access remote

resources, and to share them in a controlled and efficient way.


 Resources can be just about anything, but typical examples include things like printers, computers, storage
facilities, data, files, web pages, and networks etc.

 Connecting users and resources also makes it easier to collaborate and exchange information, as is clearly

illustrated by the success of the Internet with its simple protocols for exchanging files, mail. documents,

audio, and video.

 The connectivity of the Internet is now leading to numerous virtual organizations in which geographically

widely-dispersed groups of people work together by means of groupware.


18 Goals of Distributed System (3)

Transparency

 An important goal of a distributed system is to hide the fact that its processes and resources are

physically distributed across multiple computers.

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


19 Goals of Distributed System (4)

 The concept of transparency can be applied to several aspects of a distributed system

Transparency Description

Access Hide differences in data representation and how a resource is accessed

Location Hide where a resource is located

Migration Hide that a resource may move to another location

Relocation Hide that a resource may be moved to another location while in use

Replication Hide that a resource is replicated

Concurrency Hide that a resource may be shared by several competitive users

Failure Hide the failure and recovery of a resource


20 Goals of Distributed System (5)

Openness

 An open distributed system is essentially a system that offers components that can easily be used

by, or integrated into other systems.

 The openness of distributed systems is determined primarily by the degree to which new resource-

sharing services can be added and be made available for use by a variety of client programs.

 Openness cannot be achieved unless the specification and documentation of the key software

interfaces of the components of a system are made available to software developers.

 An open distributed system is a system that offers services according to standard rules that describe

the syntax and semantics of those services.


21 Goals of Distributed System (6)

 In other words, they specify precisely the names of the functions that are available together with types of the

parameters, return values, possible exceptions that can be raised, and so on.

 The hard part is specifying precisely what those services do, that is, the semantics of interfaces.

 In practice, such specifications are given in an informal way by means of natural language.

 If properly specified, an interface definition allows an arbitrary process that needs a certain interface, to talk

to another process that provides that interface.

 It also allows two independent parties to build completely different implementations of those interfaces,

leading to two separate components that operate in exactly the same way
22 Goals of Distributed System (7)

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

 They may be extended at the hardware level by the addition of computers to the network and at the

software level by the introduction of new services and the re-implementation of old ones, enabling

application programs to share resources.

 Openness in a distributed system is:

 Interoperability: components of different origin can communicate.

 Portability: components work on different platforms.


23 Goals of Distributed System (8)

Scalability

 Distributed systems operate effectively and efficiently at many different scales, ranging from a

small intranet to the Internet.

 A system is described as scalable if it will remain effective when there is a significant increase in the

number of resources and the number of users.

 The number of computers and servers in the Internet has increased dramatically.
24 Goals of Distributed System (9)

Scalability

 Scalability of a system can be measured along at least three different dimensions.

 First, a system can be scalable with respect to its size, meaning that we can easily add more users

and resources to the system without any noticeable loss of performance.

 Second, a geographically scalable system is one in which the users and resources may lie far apart.

o But the fact that communication delays may be significant is hardly noticed.

 Third, a system can be administratively scalable, that it can still be easy to manage even if it spans

many independent administrative organizations.


25 Examples of Distributed System

1. Internet 2. Intranets

 A vast collection of interconnected computer  Portion of the Internet separately administered and

networks of many different types. can be configured to enforce local security policies by

 Programs running on the computers connected the owning organisation.

to it interact by passing messages, employing a  It ranges from a LAN on a single site to a connected

common means of communication, the set of LANs for different branches of a company on

Internet Protocols. different countries (continents).

 Internet Protocols enables programs running  It is connected to the Internet via a router which

anywhere to address messages to programs allows use of services between intranet users and the

anywhere else. Internet and other intranets.


26 Types of Distributed System (1)

Distributed Systems

 Distributed Transaction Processing


Distributed Information Systems
 Enterprise Application Integration

 Cluster Computing
Distributed Computing Systems  Grid Computing
 Cloud Computing

Distributed Pervasive Systems  Mobile & Ubiquitous Computing Systems


 Sensor Networks
27 Types of Distributed System (12)

A. DISTRIBUTED INFORMATION SYSTEMS

 Distributed information system are systems mainly used for management and integration of business functions.

o Distributed Transaction Processing.

o Enterprise Application Integration.

• Enterprise application integration (EAI) is the task of uniting the databases and workflows

associated with business applications to ensure that the business uses the information

consistently and that changes to core business data made by one application are correctly

reflected in others.
28 Types of Distributed System (2)

B. DISTRIBUTED COMPUTING SYSTEMS

 Distributed computing is a computing concept that, in its most general sense, refers to multiple computer

systems working on a single problem.

 In distributed computing, a single problem is divided into many parts, and each part is solved by different

computers.

 As long as the computers are networked, they can communicate with each other to solve the problem.

 If done properly, the computers perform like a single entity.

 The ultimate goal of distributed computing is to maximize performance by connecting users and IT resources in

a cost-effective, transparent and reliable manner.

 Used for high-performance computing tasks.


29 Types of Distributed System (3)

Cluster Computing

 Cluster computing is a collection of inter-connected stand-alone computers working together as a single

integrated computing resource.

 In cluster computing the underlying hardware consists of a collection of similar workstations or PCs, closely

connected by means of a high speed local-area network.

 In addition, each node runs the same operating system.

 A cluster is a group of servers and other resources that act like a single system and enable high availability.

 A characteristic feature of cluster computing is its homogeneity.

 In most cases, the computers in a cluster are largely the same, they all have the same operating system, and

are all connected through the same network.


30 Types of Distributed System (4)
31 Types of Distributed System (5)

Grid Computing

 Grid Computing is the practice of leveraging multiple computers, often geographically distributed but connected by

networks, to work together to accomplish joint tasks. It is typically run on a “data grid,” a set of computers that

directly interact with each other to coordinate jobs.

 Grid computing works by running specialized software on every computer that participates in the data grid. The

software acts as the manager of the entire system and coordinates various tasks across the grid.

 Specifically, the software assigns subtasks to each computer so they can work simultaneously on their respective

subtasks.

 After the completion of subtasks, the outputs are gathered and aggregated to complete a larger-scale task.

 The software lets each computer communicate over the network with the other computers so they can share

information on what portion of the subtasks each computer is running, and how to consolidate and deliver outputs.
32 Types of Distributed System (6)

 Grid computing’ is distinguished from the cluster computing, because in Grid computing each node has

heterogeneous and geographically dispersed (such as a WAN) and its own resource manager and perform a

different task and are loosely connected by the Internet or low-speed networks, but in cluster computing

resources are managed in a single location (Like a LAN).

 A key issue in a grid computing system is that resources from different organizations are brought together to

allow the collaboration of a group of people or institutions.

 Such a collaboration is realized in the form of a virtual organization.

 The people belonging to the same virtual organization have access rights to the resources that are provided

to that organization.
33 Types of Distributed System (7)

Cloud Computing

 Cloud computing is the on-demand availability of computer system resources, especially data storage and

computing power, without direct active management by the user.

 The term is generally used to describe data centers available to many users over the Internet.

 Large clouds, predominant today, often have functions distributed over multiple locations from central servers.

 Cloud computing relies on sharing of resources to achieve coherence and economies of scale.
34 Types of Distributed System (8)
35 Types of Distributed System (9)

Cloud Computing has three layers

Infrastructure

 The lowest layer is formed by the means to manage the necessary hardware: processors, routers, but also

power and cooling systems.

 It is generally implemented at data centers and contains the resources that customers normally never get to

see directly.

 This is an important layer forming the backbone for most cloud computing platforms.

 It deploys virtualization techniques to provide customers an infrastructure consisting of virtual storage and

computing resources.
36 Types of Distributed System (10)

Platform

 One could argue that the platform layer provides to a cloud-computing customer what an operating

system provides to application developers, namely the means to easily develop and deploy

applications that need to run in a cloud.

Application

 Actual applications run in this layer and are offered to users for further customization.

 Well-known examples include those found in office suites (text processors, spreadsheet applications,

presentation applications, and so on).


37 Types of Distributed System (11)

 Cloud-computing providers offer these layers to their customers through various interfaces

(including command-line tools, programming interfaces, and Web interfaces), leading to three

different types of services:

– Infrastructure-as-a-Service (IaaS) covering hardware and infrastructure layer

– Platform-as-a-Service (PaaS) covering the platform layer

– Software-as-a-Service (SaaS) in which their applications are covered


38 Types of Distributed System (13)

C. DISTRIBUTED PERVASIVE SYSTEMS

 As its name suggests, pervasive systems are intended to naturally distributed.

 What makes them unique in comparison to the computing and information systems described so far, is that the

separation between users and system components is much more unclear.

 There is often no single dedicated interface, such as a screen/keyboard combination.

 Instead, a pervasive system is often equipped with many sensors that pick up various aspects of a user’s

behavior.

 Many devices in pervasive systems are characterized by being small, battery powered, mobile, and having only

a wireless connection, although not all these characteristics apply to all devices.
39 Types of Distributed System (14)

 Unlike desktop computing, pervasive computing can occur with any device, at any time, in any

place and in any data format across any network and can hand tasks from one computer to

another as, for example, a user moves from his car to his office.

 Pervasive computing devices have evolved to include:

o Laptops, notebooks, smartphones, tablets, wearable devices, and sensors.

 An example of pervasive computing is an Apple Watch that alerts the user to a phone call and

allows the call to be completed through the watch.

You might also like