Unit - I: Examples of Distributed Systems
Unit - I: Examples of Distributed Systems
Unit – I
Introduction: Now a days networks of computers are used in everywhare. The Internet is one,
it provides the information of world as web or village. It means, know the information within
fracation of seconds which we require. Different networks are composed and they used the internet.
For example, Mobile phone networks, corporate networks, factory networks, campus networks, home
networks, in-car networks etc. All of these networks using ‘Distributed Systems’ technology to
communicate and coordinate their actions only by passing messages.
The figure illustrates a typical portion of the Internet. Programms running on the computers
connected to it interact by passing messages in communication. The design and construction of the
Internet communication mechanism (the Internet protocols) is a major technical achievement,
enabling a program running anywhere to address messages to programs anywhere else.
Internet is also a very large distributed system. It enables users, wherever they are, to make
use of services such as the World Wide Web, email and file transfer.
The figure shows a collection of intranets that subnetworks operated by compaines and other
organizations.
Internet Service Providers (ISPs) are companies that provide modem links and other types of
connection to individual users and small organizations, enabling them to access services anywhere in
the Intranets are linked together by backbones.
A backbone is a network link with a high transmission capacity, employing satellite connections,
fiber optic cables and other high-bandwidth circuits.
2. Intranets: An intranet is a portion of the internet that is separately administered and has a
boundary that can be configured to enforce local security policies.
The figure shows a typical intranet. It is composed of several local area networks (LANs)
linked by backbone connections. The network configuration of a particular intranet is the
responsibility of the organization that administers it and may vary widely.
Loc al area
Web server netw ork
email s erv er
print
File s erv er
other s erv ers
the res t of
the Internet
router/f irew all
An intranet is connected to the Internet via a router, which allows the users inside the
intranet to make use of services elswhere such as the Web or email. It also allows the users in
other intranets to access the services it provides. Many organizations need to protect their own
serives from unauthoriezed use by possibly malicious users elsewhere.
For example, a company will not want secure information to be accessible to users in competing
organizations, and a hospital will not want sensitive patient data to be revealed. Companies also want
to protect themselves from harmful programs such as viruses entering and attacking the computers
in the intranet and possibly destroying valuable data.
The role of a firewall is to protect an intranet by preventing unauthorized messages leaving or
entering. A firewall is implemented by filtering incoming and outgoing messages, for example
according to their source or destination. A firewall might for example allow only those messages
releated to email and web access to pass into or out of the intranet that it protects.
The main issues arising in the design of components for use in intranets are:
File services are needed to enable users to share data.
Firewalls tend to impede legitimate access to services
The cost of software installation and support is an important issue.
Internet
Mobile
phone
Printer Laptop
Camera Host site
Service: A service is a distinct part of a computer system that manages a collection of related
resources and presents their functionality to users and applications.
For example,
We access shared files through a file service;
We send documents to printers through a printing service;
We buy goods through an electronic payment service.
The only access we have to the service is via the set of operations that it exports.
For example, a file service provides read, write and delete operations on files.
The Web has moved beyond these simple data resources to encompass services, such as electronic
purchasing of goods. It has evolved without changing its basic architecture. The Web is based on
three main standard technological components:
The HyperText Markup Language (HTML), a language for specifying the contents and layout
of pages as they are displayed by web browsers;
Uniform Resource Locators (URLs), also known as Uniform Resource Identifiers (URIs), which
identify documents and other resources stored as part of the Web;
A client-server system architecture, with standard rules for interaction (the HyperText
Transfer Protocol – HTTP) by which browsers and other clients fetch documents and other
resources from web servers. Figure shows some web servers, and browsers making requests to
them. It is an important feature that users may locate and manage their own web servers
anywhere on the Internet
HTML : The HyperText Markup Language [www.w3.org II] is used to specify the text and images
that make up the contents of a web page, and to specify how they are laid out and formatted for
presentation to the user. A web page contains such structured items as headings, paragraphs, tables
and images. HTML is also used to specify links and which resources are associated with them.
Users may produce HTML by hand, using a standard text editor, but they more commonly use an
HTML-aware ‘wysiwyg’ editor that generates HTML from a layout that they create graphically. A
typical piece of HTML text follows:
<IMG SRC = “http://www.cdk5.net/WebExample/Images/earth.jpg”> 1
<P> 2
Welcome to Earth! Visitors may also be interested in taking a look at the 3
<A HREF = “http://www.cdk5.net/WebExample/moon.html”>Moon</A>. 4
</P> 5
• This HTML text is stored in a file that a web server can access.
• A browser retrieves the contents of this file from a web server.
-The browser interprets the HTML text
-The server can infer the content type from the filename extension.
URLs : The purpose of a Uniform Resource Locator [www.w3.org III] is to identify a resource. It
means, the term used in web architecture documents is Uniform Resource Identifier (URI),
The ‘scheme’, declares which type of URL this is. URLs are required to identify a variety of
resources. For example, mailto:[email protected] identifies a user’s email address;
ftp://ftp.downloadIt.com/software/aProg.exe identifies a file that is to be retrieved using the File
Transfer Protocol (FTP) rather than the more commonly used protocol HTTP.
Other examples of schemes are ‘tel’ (used to specify a telephone number to dial, which is
particularly useful when browsing on a mobile phone) and ‘tag’ (used to identify an arbitrary entity).
HTTP URLs are the most widely used, for accessing resources using the standard HTTP protocol. An
HTTP URL has two main jobs: to identify which web server maintains the resource, and to identify
which of the resources at that server is required.
HTTP:The HyperText Transfer Protocol [www.w3.org IV] defines the ways in which browsers and
other types of client interact with web servers.
• Main features
– Request-replay interaction : HTTP is a ‘request-reply’ protocol. The client sends a
request message to the server containing the URL of the required resource. The server
looks up the path name and, if it exists, sends back the resource’s content in a reply
message to the client. Otherwise, it sends back an error response such as the familiar
‘404 Not Found’.
– Content types : The strings that denote the type of content are called MIME
(RFC2045,2046)
– One resource per request: Clients specify one resource per HTTP request. If a web
page contains nine images, say, then the browser will issue a total of ten separate
requests to obtain the entire contents of the page.
– Simple access control: Any user with network connectivity to a web server can access
any of its published resources. for example, by typing in a password.
• Dynamic content
– Common Gateway Interface: a program that web servers run to generate content for
their clients
• Downloaded code : Sometimes the designers of web services require some service-related
code to run inside the browser, at the user’s computer. In this particular way, need run one of
the following code.
– JavaScript
– Applet
In both examples, the challenge is to send sensitive information in a message over a network in a
secure manner. But security is not just a matter of concealing the contents of messages – it also
involves knowing for sure the identity of the user or other agent on whose behalf a message was sent.
In the first example, the server needs to know that the user is really a doctor, and in the
second example, the user needs to be sure of the identity of the shop or bank with which they are
dealing.
The second challenge here is to identify a remote user or other agent correctly. Both of these
challenges can be met by the use of encryption techniques developed for this purpose.
4. Scalability: 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.
Figure shows the increasing number of computers and web servers during the 12-year history of the
Web up to 2005 [zakon.org]. It is interesting to note the significant growth in both computers and
web servers in this period, but also that the relative percentage is flattening out.
To overcome the above problems in distributed system, the properties and design issues can
change with the use of descriptive system models. Each type of model is planned to provide an
abstract, simplified but consistent description of a relevant aspect of distributed system design:
Architectural models describe a system in terms of the computational and communication tasks
performed by its computational elements. It means, the computational elements being individual
computers or aggregates of them supported by appropriate network interconnections.
Fundamental models are concerned with properties that are common in all of the architectural
models. It is addressed by three fundamental models that examine the important aspects of
distributed systems:
interaction models, which consider the structure and sequencing of the communication
between the elements of the system;
Failure models, which consider the ways in which a system may fail to operate correctly.
Security models, which consider how the system is protected against attempts to interfere
with its correct operation or to steal its data.
Architectural models: The architectural of a system has a collection of individually
defined components. The complete objective is to make sure that the structure will satisfy the
current and future demands on it. The vital responsibilities are to make the system cost effective,
manageable, reliable and adaptable. The architectural design of a building has same features like
determining architectural style gives a constant frame of reference for the design.
The central architectural models are constructed almost on the notion of process and object.
The functioning of separate components of a distributed system is first simplified and then
abstracted in an architectural model. This model later evaluates the following things.
a) The arrangement of components throughout a network of computers i.e., trying to specify
beneficial patterns for the distribution of data and workload.
b) The interrelationships b/w the components i.e., the components functional roles and the
pattern of communication.
By altering client server model, one can construct few dynamic systems.
a) A process can assign a task to another, since it is possible to the code from one process to
another.
Example: The code from servers is downloaded by the client processes and executed locally.
To minimize access delays and communication traffic, the code and objects that accesses the
process can be transferred.
b) Few of the distributed systems are designed to allow the computers and other mobile devices
to be added or removed smoothly, enabling to find obtainable services and also to provide
their services to others.
There are many patterns that are used fully for the allocation of work in a distributed system.
These patterns have a major effect on the performance of the resulting system.
An architectural model of a distributed system is concerned with the placement of its parts and the
relationships b/w them.
Example: Client-server, Peer-to-peer
2. Middleware: A piece of software placed b/w the application and operating system is called
“middleware”. Its intension is to enclose heterogeneity and to supply an accessible
programming model to application programmers. The concept of middleware can be easily
explained in the context of objects or processes in a set of computers that interact with each
other to carryout communication and resource-sharing support for distributed application.
Middleware supplies helpful building blocks in the construction of software components.
These components can interact in distributed applications.
It provides useful building blocks. They are Remote method invocation, communication
b/w a group of processes, notification of events, partitioning, placement and retrieval of data
or objects, replication, transmission of multimedia data in real time.
The earliest examples of middleware is remote procedure calling packages (eg: sun RPC) and
group communication system [ eg: Isis]. Object-oriented middleware products and standards
are
a) CORBA b) java RMI c)Microsoft Distributed Component objects model (DCOM)
d) Web services e) The ISO/ITU-T’s Reference model for open distributed processing
(RM-ODP).
2. System Architecture: The architecture model has two types of environments in
distributed systems. They are
1. Client-server model and 2. Multiple server model.
In order to access the shared resources managed by server processes in different host computers,
the client processes interact with those server processes. The figure above specifies that the
clients of some servers may also be consisting the web pages has a common client called web server.
The DNS service has many clients such as web servers and many other internet services. The service
provided by DNS is that it interprets Internet domain names to network address. Search engines
are another example related to web. It allows users to search the sites all over the Internet for
synopsis of information accessible on web pages. These synopses are created by programs called web
crawlers.
At search engine site, these web crawlers are executed in the background, using HTTP
requests to access web servers all over the Internet. A search engine can play the role of both a
server and a client. It performs the following two tasks,
a) It replies to queries from browser clients.
b) Executing web crawlers that act as clients of other web servers.
Multiple server’s model: In multiple server model, several servers implement the services as its
processes in separate host computers. After implementation these computers interact with each
other if required in order to provide the service either by partitioning the services into set of
objects and distributing them among themselves or by maintaining replicate copies of these services
on several hosts. The server may also provide the service either by partitioning the services into set
of objects and distributing them among themselves by maintain replicate copies of these services on
several hosts. The multiple server model is shown in fig.
3.Proxy servers and caches: A cache is repository. A cache has storage facility of recently
used objects that is closer to the objects themselves. A web proxy server provides a shared cache
of web resources for the client machines at a site or across several sites.
Increase availability
Increase performance
Reduce the load on the wide-area network and web server.
When a client process requests an object, the caching service starts examining the cache for
updated copy. If the updated copy is available, then caching service provides the object from the
repository. Otherwise, it retrieves an updates copy. In general caches are situated in a proxy
server that is shared by multiple clients or available with each client.
The objective of a proxy server is to extend the performance and availability of the service by
decreasing the load on wide-area network and web servers. Apart from this, they are used to get
remote web servers through a firewall. For a client machine at a site or over multiple sites, a shared
cache is supplied by web proxy server.
Applic ation
Coordinat ion
c ode
Mobile Agents: A mobile agent is a running program that travels from one system to another in a
network. A network performs a task such as gathering information, providing results on behalf of
someone. A mobile agent may make many invocations to local resources at each site it visits. Eg:
access to individual database entries.
Mobile agents are possibly used in cases such as
a) Install software on the computers of an organization.
b) To compare the prices of products different vendors by visiting the site of every vendor and
carryout a sequence of database operations.
A recent example is worm program developed at Xerox PARC. It is designed in such a way to
transfer detailed computations by using of idle computers.
Thin Clients: A window-based user interface on a computer local to the user while running
applications on a remote computer is supported by a software layer referred to as thin client.
A computer server has the capacity to run applications simultaneously. It is a powerful
computer that runs a multiprocessor version of an operating system (UNIX or windows NT).
The highly interactive graphical activities such as CAD and image processing are the limitation
of the tin client architecture. Since, the transfer of image and vector information b/w the thin
Network Computers: The desktop computer local to a user is used to run the applications. For
these computers, the operating system and application software generally needs data to be placed on
a local disk and more active code. A more technical effort is needed to manage application files and
to maintain local software but most of the users are not eligible to provide this effort.
With the help of network computer, the user downloads application software and its operating
system from remote file server. It takes response to the above problem. Although the files are
administered by a remote file server, applications such as web browser also run locally. It is possible
for a user to move from one network computer to other, because a file server stores all the data and
code of an application.
Mobile devices: Mobile devices are the hardware computing components that carry software and
are freely movable b/w physical locations and networks. Some examples of mobile devices include the
following: laptops, handheld devices, mobile phones, PDAs (Personal Digital Assistants), digital
cameras, and some wearable computers like smart watches.
Mostly mobile devices are supported by wireless networking. They can be oerated on greater
ranges of networks such as GSM and 3G telecommunication networks. Some of them can operate
over network upto hundreds of meters like Wifi (IEEE802.11) or upto ten meters like Bluetooth. On
mobile devices there is a possibility of existing for both, client and server. The existences of clients
are common, but in some cases it might be possible for a mobile device to have server as well.
6.Mobile devices and Spontaneous networking : Key Features of Spontaneous Networking are
easy connection to a local network and Easy integration with local services
• Security problems from connectivity of mobile users:
Limited connectivity
Security and privacy
• The purpose of a discovery service is to accept and store details of services that are available
on the network and to respond to queries from clients.
• A discovery service offers two interfaces:
A registration service accepts registration requests from servers and records the
details in the discovery service’s database.
A lookup service accepts queries concerning available services and searches its
database for registered services that match the queries.
1.Interaction Model: Interacting processes are responsible for the execution of activities in the
distributed systems. Each process has a state that cannot be accessed or updated by another
process. A state consists of variables and a set of data that can be updated and accessed by its
state.
Interacting processes in a distributed system are affected by two significant factors:
a) Performance of communication channels: is characterized by:
iv. Jitter: It is the difference in time during the transmission of a message. This difference in
time can be seen when a series of audio data samples with variant time intervals are played
resulting into distortion in time.
b) Computer clocks:
• Each computer in a distributed system has its own internal clock to supply the
value of the current time to local processes.
• Therefore, two processes running on different computers read their clocks at
the same time may take different time values.
• Clock drift rate refers to the relative amount a computer clock differs from a
perfect reference clock.
• Several approaches to correcting the times on computer clocks are proposed.
• Clock corrections can be made by sending messages; from a computer has an
accurate time to other computers, which will still be affected by network
delays.
Types of Interaction model: Setting time limits for process execution, as message delivery, in a
distributed system is hard.
Two opposing extreme positions provide a pair of simple interaction models:
Synchronous distributed systems:
• A system in which the following bounds are defined:
1. Time to execute each step of a process has known lower and upper
bounds.
2. Each message transmitted over a channel is received within a known
bounded time.
3. Each process has a local clock whose drift rate from perfect time has a
known bound.
• Easier to handle, but determining realistic bounds can be hard or impossible.
Asynchronous distributed systems:
A system in which there are no bounds on:
1. Process execution times.
2. Message delivery times.
3. Clock drift rate.
Allows no assumptions about the time intervals involved in any execution.
Exactly models the Internet.
- Browsers are designed to allow users to do other things while they are waiting.
s end
Z
receiv e receiv e
m3 m1 m2
A
receiv e receiv e receiv e
t1 t2 t3
2. Failure Model: Defines the ways in which failure may occur in order to provide an understanding
of its effects.
• The classification of failures and differences between the failures of processes and
communication channels is provided as:
– Omission failures
• Process or channel failed to do something.
• Communication omission failures.
– Arbitrary failures
• Any type of error can occur in processes or channels (worst).
– Timing failures
• Applicable only to synchronous distributed systems where time limits may not be
met.
I. Omission failures:
• Process or channel failed to do something.
• Communication omission failures.
Omission failures are classified into
1. Process omission failure 2. Communication omission failures
1. Process Omission Failures: The primary reason in processes for omission failure is its crash. That
means a process has been terminated completely. The design services that can resist the faults can
be simplified on the assumption that the services crash clearly. In a clean crash, a process
terminates or executes correctly. Due to a crash, the process does not respond to invocation
messages repeatedly. This favors other processes in identifying the crash using timeout implies that
a process is not responding. The reasons for this may be its crash or slow performance, or
undelivered of messages.
A crash that is identified by other processes is called fail-stop. This can be introduced in a
synchronous system as:
If messages delivery is correct.
A.Sathiyaraj/Assoc.Prof/CSE Dept/RISE Groups
22 If processes employ timeouts identify failure of their processes.
Consider the example, if the reply to a process is not delivered within the specified time limit,
then the process that is waiting for the reply concludes that sender process has been failed.
2. Communication Omission Failures: Send and receive are two communication primitives. Consider
the example where send operation is performed by process A. It inserts a message in its outgoing
message buffer. Communication channel transmits this message to process B’s incoming message
buffer. Receive operation is performed by process B that takes the message from its incoming
message buffer and delivers it.
The communication channel raises an omission failure if the message from A’s outgoing
message buffer is not transmitted to B’s incoming message buffer. This is called a dropped message
which is due to insufficient buffer space at the receiver site or at the intervening gateway, or by
error at network transmission. These consequences are identified by the checksum that is attached
with the message content.
Following are the failures resulting due to loss of messages:
a) Send-omission failure: Occur in b/w sending process and outgoing message buffer.
b) Receive-Omission failures: Occur in b/w incoming message buffer and receiving process.
c) Channel-Omission failures: Occur in b/w outgoing message buffer and incoming message
buffer.
II. Arbitrary Failures: Arbitrary failure describes the semantics of a worst failure in which
there is a possibility of occurrence of any type of error. In a process an arbitrary failure is caused
when it skips any of its execution phases or adopts a new phase for execution. For example, a
process may set incorrect values in its data items or it may return an incorrect value.
III. Timing Failures: Timing failure is applicable in synchronous distributed system whereas in
asynchronous distributed system, it is not guaranteed.
a) Synchronous Distributed System: In synchronous distributed system, time limits are fixed on
process execution time, message delivery time and clock drift rate. A process is affected if it
exceeds its time bounds. A channel is affected if the time taken for the transmission exceeds the
specified bounds. A clock failure affects its process if its local time exceeds its drift rate bounds
from real time. These three failures fail to respond within the specified bounds.
b) Asynchronous Distributed system: In asynchronous distributed system, timing failure cannot be
guaranteed and there is a possibility of a heavily loaded server to respond late.