Professional Documents
Culture Documents
CHAPTER ONE
Introduction
Middleware
Textbook(s):
2012. A. S. Tanenbaum and Maarten van Steen, Distributed Systems, Principles and Paradigms,
Other Reference:
Ajay D. Kshemkalyani and Mukesh Singhal, Distributed Computing: Principles, Algorithms, and
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 earliest solutions are based on a model called centralized systems, in which a single computer
However, reasons such as cost, reliability, and the separate nature of the divisions that makes up
Another model, called distributed systems, addresses these issues with its distribution.
Instead of having one single powerful computer, distributed systems employ multiple computers
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
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
A well-developed distributed system software provides the illusion of a single and integrated environment
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
Modern distributed system can, and often will, consists of all kinds of nodes, ranging from very big high-
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
The fact that we are dealing with a collection of nodes implies that we may also need to manage the
In other words, we may need to register which nodes may or may not belong to the system, and also provide
In an open group, any node is allowed to join the distributed system, effectively meaning that it can send
In contrast, with a closed group, only the members of that group can communicate with each other and a
There should be a single system view, meaning that an end user should not even notice that processes, data,
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
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
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
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 Security services
o Accounting services
Network
14 Motivation for Distributed System (1)
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.
Reliability
o The geographically distributed resources are not likely to crash/malfunction at the same time.
Expandability
Four important goals that should be met to make building a distributed system
worth the effort.
A distributed system should;
o Be transparent.
o Be open.
o Be scalable.
17 Goals of Distributed System (2)
The main goal of a distributed system is to make it easy for the users and applications to access remote
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,
The connectivity of the Internet is now leading to numerous virtual organizations in which geographically
Transparency
An important goal of a distributed system is to hide the fact that its processes and resources are
A distributed system that is able to present itself to users and applications as if it were only a single
Transparency Description
Relocation Hide that a resource may be moved to another location while in use
Openness
An open distributed system is essentially a system that offers components that can easily be used
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
An open distributed system is a system that offers services according to standard rules that describe
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
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
Scalability
Distributed systems operate effectively and efficiently at many different scales, ranging from a
A system is described as scalable if it will remain effective when there is a significant increase in the
The number of computers and servers in the Internet has increased dramatically.
24 Goals of Distributed System (9)
Scalability
First, a system can be scalable with respect to its size, meaning that we can easily add more users
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
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
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 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
Distributed Systems
Cluster Computing
Distributed Computing Systems Grid Computing
Cloud Computing
Distributed information system are systems mainly used for management and integration of business functions.
• 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)
Distributed computing is a computing concept that, in its most general sense, refers to multiple computer
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.
The ultimate goal of distributed computing is to maximize performance by connecting users and IT resources in
Cluster Computing
In cluster computing the underlying hardware consists of a collection of similar workstations or PCs, closely
A cluster is a group of servers and other resources that act like a single system and enable high availability.
In most cases, the computers in a cluster are largely the same, they all have the same operating system, and
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
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
A key issue in a grid computing system is that resources from different organizations are brought together to
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
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)
Infrastructure
The lowest layer is formed by the means to manage the necessary hardware: processors, routers, but also
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
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,
Cloud-computing providers offer these layers to their customers through various interfaces
(including command-line tools, programming interfaces, and Web interfaces), leading to three
What makes them unique in comparison to the computing and information systems described so far, is that the
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.
An example of pervasive computing is an Apple Watch that alerts the user to a phone call and