Chapter One
• Introduction
What is distributed system? Various definition of distributed system has been given in the
literature, none of them satisfactory, and none of them in agreement with any of the others. For
our purposes it is sufficient to give a loose characterization:
A distributed system is a collection of independent computers that appears to its users as a
single coherent computer system.
This definition has two main aspects of meaning: The first one is that a distributed system
consists of components (i.e., Computer hardware) that are autonomous. The second is that users
or programs think they are dealing with a single system.
• Characteristics of Distributed System
A distributed system is a system designed to support the development of application and services
which can exploit a physical architecture consisting of multiple, autonomous processing
elements that do not share primary memory but cooperate by sending asynchronous message
over a communication network.
1.2.1 Making resource accessible
The main goal of a distributed system is to make it easy for the users or application to access
remote resources, and to share them in a controlled and efficient way.
1.2.2 Distribution Transparency
The main goal of a distributed system is to hide the fact that its processes and resources are
physically distributed across multiple computers.
Types of distribution transparency
The concept of transparency can be applied in several aspects on a distributed system. The most
important ones shown in table.1.1
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 be moved 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
Table 1.1 Different forms of transparency in a distributed system (ISO, 1995).
1.2.3 Openness
An open distributed system is a system that offers services according to standard rules that
describe the syntax and semantics of those service. For examples, in computer networks,
standard rules govern the format, contents, and meaning of messages sent and received.
Separating policy from mechanism: to achieve flexibility in distributed system the systems must
be organized as collection of easily replaceable or adaptable components.
1.2.4 Scalability
A distributed system should be easy to expand and scale. Hiding communication latencies is
important to achieve geographical scalability. Distribution of components by dividing the name
space (DNS) into zones.
1.3 Organization of Distributed System
In Order to support heterogonous computers and networks while offering a single system view,
distributed system are often organized by means of a layer of software that is, logically placed
between a higher level layer consisting of users and applications, facilities. Distributed system
sometimes called as middleware. Fig 1.2 show the organization of distributed system.
Fig
ure 1.1. A Distributed System Organized as Middleware
1.4 Types of Distributed System
1.4.1 Distributed Computing System
The need of distributed system is to have high performance computing task system. To create a
distributed system with high performance task system there are two subgroup techniques. These
are:
Cluster Computing System
In clustering computing techniques, 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 nodes runs the same operating system. It is about having high degree of homogeneity.
Cluster computing is used for parallel programming in which a single program is run in parallel
on multiple machine. Each cluster consists of a collection of computer nodes that controlled and
accessed by means of a single master node. Example of cluster computer is formed by Linux-
based cluster which have common general configuration as show in the fig 1.3
Figure 1.2 an example of a cluster computing system
Grid Computing System
In grid computing technique the system has high degree of heterogeneity: no assumptions are
made concerning hardware, operating systems, networks, administrative domains, security
policies, etc.
A key issue in grid computing system is that resources from different organizations are brought
together to allow the collaboration of a group of people or institutions. The users belonging to
the same virtual organization have access right to the resources that are provided to that
organization. Typically, resources consist of computer servers implemented as cluster
computing, storage facilities, and databases. Fig 1.4 show architecture of making grid of
computing devices from different cluster computing.
Figure 1.3 A layered architecture for grid computing systems
The architecture consists of four layers. The fabric layer provides interface to local resources at a
specific site for allowing sharing of resources. The connectivity layer consists of communication
protocols for supporting grid transactions that span the usage of multiple resources. The
resource layer is responsible for managing a single resource. It uses the functions provided by
the connectivity layer and calls direct the interface made available by the fabric layer. The
collective layer functions are handling access to multiple resources and typically consists of
services for resource discovery, allocation and scheduling of tasks onto multiple resources, data
replication and soon. The application layer consists of the application that operate within a
virtual organization and which make use of the grid computing environment.
1.4.2 Distributed Information System
Another important class of distributed system is found in organization that were confronted with
a wealth of networked applications. Simply distributed information system mean a networked
application consisting of a server running that application (often including a database) and
making it available to remote programs, called clients.
In distributed information system there are two forms transaction processing systems and
enterprise application integration.
Transaction processing system
In practice, operation on a database are usually carried out in the form of transactions.
Programming using transaction requires special primitives that must either be supplied by the
underlying distributed system.
While making transaction processing, our transaction should have the following properties:
ACID
• Atomic: To the outside world, the transaction happens indivisibly
• Consistent: The transaction does not violate system invariants.
• Isolated: Concurrent transaction do not interface with each other.
• Durable: Once a transaction commits, the changes are permanent
In the early days of enterprise middleware systems, the component that handled distributed (or
nested) transaction formed the core for integrating applications at the server or database level.
This component was called a transaction processing monitor or TP monitor for short. Its main
task was to allow a distributed application to access multiple server/database by offering it a
transaction programming model, as show in fig. 1.4
Figure 1.4 the role of a TP monitor in distributed system
Enterprise Application Integration
As mentioned, the more application became decoupled from the databases they were built upon,
the more evident it became that facilities were needed to integrate applications independent from
their databases.
This need for inter application communication led to many different communication models. The
main idea was that existing application could directly exchange information, as shown in fig 1.5.
Figure 1.5 Middleware as a communication facilitator in enterprise application integration
Several types of communication middleware exist for implementing enterprise application
integration.
The remote procedure calls (RPC), an application component can effectively send a request to
another application component by doing a local procedure call, which results in the request being
packaged as a message and sent to the caller. Likewise, the result will be sent back and returned
to the application as the result of the procedure call.
The remote method invocations (RMI) the same as an RPC, except that it operates on objects
instead of applications.
The message oriented middleware (MOM), in this case the application simply sends messages to
logical contact points.
1.4.3 Distributed Pervasive System
In pervasive distributed system the nodes often characterized by being are small, wireless,
battery-powered, and mobile and embedded as part of a large system.
One system to be said pervasive distributed system the following are requirement:
• Embrace contextual changes.
• Encourage ad hoc composition
• Recognize sharing as the default
Embracing contextual changes means that a device must be continuously be aware of the fact
that its environment may change all the time. Encouraging ad hoc composition refers to the fact
that many devices in pervasive systems will be used in very different ways by different users.
Recognize share as the default refers one very important aspect of pervasive systems is that
devices generally join the system in order to access information.
Let us now take a look at some concrete example of pervasive systems:
Home System
Under this pervasive system all kinds of devices such as kitchen appliances, surveillance
cameras, clocks, controllers for lighting, and so on, will all be hooked up into a single distributed
system.
Electronic Health Care System
It is important and upcoming class of pervasive system are those related to personal electronic
health care. Personal health care systems are often equipped with various sensors organized in a
(preferably wireless) body- area network (BAN). In electronic health care pervasive system, the
network should be able to operate while a person is moving, with no strings (i.e. wires) attached
to immobile devices.
This requirement leads to two obvious organizations of pervasive distributed health care system,
as show in fig 1.6.
Figure 1.6 monitoring a person in a pervasive electronic health care system using (a) a local hub
or (b) a continuous wireless connection.
Sensor Networks
It consists of spatially distributed autonomous sensor to cooperatively monitor physical or
environmental conditions, such as temperature, sound, vibration, pressure, monitor or pollutants,
etc.
To organize a sensor network as a distributed database, there are essentially two extremes, as
show in fig 1.7. The first sensors do not cooperate but simply send their data to a centralized
database located at the operator’s site. The second forwards the queries to relevant sensors and to
let each compute an answer, requiring the operator to sensibly aggregate the returned answer.
Figure 1.7 organizing a sensor network database, while storing and processing data (a) only at
the operator’s site or (b) only at the sensors.
Finally, if you want to create sensor network your project or research should answer the
following three questions:
• How do we (dynamically) set up an efficient tree in a sensor network?
• How does aggregation of results take place? Can it be controlled?
• What happens when network links fail?
From a distributed system’s perspective to create or implement a distributed pervasive system
the project or research should answer the following questions:
• Where and how should monitored data be stored?
• How can we prevent loss of crucial data?
• What infrastructure is needed to generate and propagate alerts?
• How can physicians provide online feedback?
• How can extreme robustness of the monitoring system be realized?
• What are the security issues and how can the proper policies be enforced?
1.5 Hardware and Software Concepts in Distributed System
Hardware Concepts in distributed system
Even though all distributed systems consists of multiple CPUs, there are several different ways
the hardware can be organized, especially in terms of how they are interconnected and how they
communicate.
In this section we will take a brief look at distributed system hardware, in particular, how the
machines are connected together.
In distributed system hardware classified into two ways. These are multiprocessor and
multicomputer. Multiprocessor means the machine share memory. In contrast, in multicomputer,
every machine has its own private memory. The fig 1.8 (a) and (b) describe how the
multiprocessor and multicomputer machine interconnected respectively.
Figure 1.8 (a) A crossbar switch interconnection for multiprocessor machines.
Figure 1.8 (b) A multicomputer consisting of workstations on a LAN
Software Concepts in distributed system
In the distributed system the software is more important that the hardware when making the
imagination of distributed system to acts as single coherent system to its users.
In this section, we will see the software implementation for having distributed system having
high performance of tasking. We will see in brief the operating system relation with distributed
system hardware. There are three types of software in distributed system. Those are:
Loosely-coupled software (Network Operating Systems) (NOS) allows machines and users of a
distributed system to be fundamentally independent of one another, but still to interact to a
limited degree where that is necessary. Fig 1.9 describes the general structure of network
operating system
Figure 1.9 Network Operating System Structure
Most of service offered by network operating system are remote login, remote file copy and
shared file system through file system. When have NOSs the machine many have the
functionality of web service, file service, database service, DNS service and DHCP service
server.
Middleware software is software of distributed system which enhance the service of network
operating system.
As we have discussed in the network operating system software, they are loosely coupled
software on loosely coupled hardware. Other than the share file system, it is quite apparent to the
users that such a system consists of numerous computers. Each can run its own operating system
and do whatever its owner wants.
In NOS each machine can run its own operating system and do whatever its owner wants. There
is essentially no coordination at all, except for the rule that client-server traffic must obey the
system’s protocols.
The goal of middleware software is to create the illusion in the minds of the users that the entire
network of computers connected by NOS in a single timesharing system, rather than a collection
of distinct machines. The middleware provides characteristics of transparency, ease of use,
scalable and openness.
Figure 1.10 middleware software in NOSs
Tightly- coupled software referred to as distributed operating systems (DOS) allows the
operating system try to maintain a single, global view of the resources it manages. It’s an
operating system involved adding middleware software in NOS.
1.6 The Client- Server Model
In the basic client-server model, processes in a distributed system are divided into two groups. A
server is a process implementing a specific service, for example, a file system service or a
database service. A client is a process that request a service from a server by sending it request
and subsequently waiting for the server’s reply. The client- server interaction, also known as
request-reply behavior is show in fig 1.11
Figure 1.11 general interaction between a client and a server
The client-server model has been subject to many debates. One of the main issues was how to
draw a clear distinction between a client and a server. For example, a server for a distributed
database may continuously act as a client because it is forwarding request to different file servers
responsible for implementing the database tables. In such a case, the database server itself
essentially does no more than process queries.
However, considering that many client-server applications are targeted toward supporting user
access to databases, many people have advocated a distinction between the following three
levels:
• The user-interface level
• The processing level
• The data level
The user-interface level contains all that is necessary to directly interface with the user, such as
display management. The processing level typically contains the applications. The data level
manages the actual data that is being acted on. Fig 1.12 show how those three layer or levels
organized in detail.
Figure 1.12 the simplified organization of an internet search engine into three different layers
Nowadays, most business oriented environments, multitier architectures are used for transaction
processing the service like show in fig 1.13.
Figure 1.13 an example of server acting as client