UNIT I
Characterization of Distributed Systems: Introduction, Examples of Distributed systems, Resource Sharing
and Web, Challenges.
System Models: Introduction, Architectural models, Fundamental models.
Characterization of Distributed Systems: Introduction
A distributed system as one in which hardware or software components located at networked computers
communicate and coordinate their actions only by passing messages. This simple definition 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 on
separate continents, in the same building or in the same room. Our definition of distributed systems has the
following significant consequences:
Concurrency: In a network of computers, concurrent program execution is the norm. I can do my work
on my computer while you do your work on yours, sharing resources such as web pages or files when
necessary. The capacity of the system to handle shared resources can be increased by adding more resources
(for example. computers) to the network.
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. This is a direct consequence of the fact that the only
communication is by sending messages through a network.
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 can fail in new ways. Faults in the network
result in the isolation of the computers that are connected to it, but that doesn’t mean that they stop running. In
fact, the programs on them may not be able to detect whether the network has failed or has become unusually
slow. Similarly, the failure of a computer, or the unexpected termination of a program somewhere in the system
(a crash), is not immediately made known to the other components with which it communicates. Each
component of the system can fail independently, leaving the others still running.
Examples of Distributed systems
To place distributed systems in a realistic context through examples: the Internet, an intranet and mobile
computing.
1. The Internet (Figure 1) :
§ A vast interconnected collection of computer networks of many different types.
§ Passing message by employing a common means of communication (Internet Protocol).
§ The web is not equal to the Internet.
1
2. Intranets (Figure 2):
§ An intranet is a private network that is contained within an enterprise.
§ It may consist of many interlinked local area networks and also use leased lines in the Wide Area
Network.
§ It separately administrated and enforces local security policies.
§ It is connected to the Internet via a router
§ It uses firewall to protect an Intranet by preventing unauthorized messages leaving or entering
§ Some are isolated from the Internet
§ Users in an intranet share data by means of file services.
2
3. Mobile and Ubiquitous Computing (Figure 1.3)
a. Distributed systems techniques are equally applicable to mobile computing involving laptops,
PDAs and wearable computing devices.
b. Mobile computing (nomadic computing) - perform of computing tasks while moving (nomadic
computing)
c. Ubiquitous computing - small computers embedded in appliances
i. harness of many small, cheap computation devices
ii. It benefits users while they remain in a single environment such as home.
Distributed In Figure 3 user has access to three forms of wireless connection:
d. A laptop is connected to host's wireless LAN.
e. A mobile (cellular) phone is connected to Internet using Wireless Application Protocol (WAP)
via a gateway.
f. A digital camera is connected to a printer over an infra-red link.
Resource Sharing and Web
• Equipments are shared to reduce cost. Data shared in database or web pages are high-level resources
which are more significant to users without regard for the server or servers that provide these.
• Patterns of resource sharing vary widely in their scope and in how closely users work together:
§ Search Engine: Users need no contact between users
§ Computer Supported Cooperative Working (CSCW): Users cooperate directly share resources.
Mechanisms to coordinate users' action are determined by the pattern of sharing and the
geographic distribution.
• For effective sharing, each resource must be managed by a program that offers a communication
interface enabling the resource to be accessed and updated reliably and consistently.
• Server is a running program (a process) on a networked computer that accepts requests from programs
running on other computers to perform a service and responds appropriately .
• The requesting processes are referred to as a client.
3
• An executing web browser is a client. It communicates with a web server to request web pages from it.
• When a client invokes an operation upon the server, it is called the remote invocation.
• Resources may be encapsulated as objects and accessed by client objects. In this case a client object
invokes a method upon a server object.
The World Wide Web (WWW)
• WWW is an evolving system for publishing and accessing resources and services across Internet. Web is
an open system. Its operations are based on freely published communication standards and documents
standards.
• Key feature: Web provides a hypertext structure among the documents that it stores. The documents
contain links - references to other documents or resources. The structures of links can be arbitrarily
complex and the set of resources that can be added is unlimited.
• Three main standard technological components:
• HTML (Hypertext Makeup Language) specify the contents and layout of web pages.
• Contents: text, table, form, image, links, information for search engine, ...;
• Layout: text format, background, frame, ...
• URL (Uniform Resource Location): identify a resource to let browser find it.
• scheme : scheme-specific-location
• [Link] (HyperText Transfer Protocol)
• URL (continued):
• [Link] (File Transfer Protocol)
• telnet://[Link] (log into a computer)
• [Link] (identify a user's email address)
• HTTP (HyperText Transfer Protocol) defines a standard rule by which browsers and any other
types of client interact with web servers. Main features:
• Request-reply interaction
• Content types may or may not be handled by browser - using plug-in or external helper
One resource per request - Several requests can be made concurrently.
• Simple access control
• Services and dynamic pages
• form - Common Gateway Interface program on server (Perl)
• JavaScript (download from server and run on local computer)
• Applet (download from server and run on local computer)
4
Challenges
As distributed systems are getting complex, developers face a number of challenges:
– Heterogeneity
– Openness
– Security
– Scalability
– Failure handling
– Concurrency
– Transparency
– Quality of service
Heterogeneity:
The Internet enables users to access services and run applications over a heterogeneous collection of
computers and networks. Heterogeneity (that is, variety and difference) applies to all of the following:
o Hardware devices: computers, tablets, mobile phones, embedded devices, etc.
o Operating System: Ms Windows, Linux, Mac, Unix, etc.
o Network: Local network, the Internet, wireless network, satellite links, etc.
o Programming languages: Java, C/C++, Python, PHP, etc.
o Different roles of software developers, designers, system managers
Different programming languages use different representations for characters and data structures such as
arrays and records. These differences must be addressed if programs written in different languages are to be
able to communicate with one another. Programs written by different developers cannot communicate with
one another unless they use common standards, for example, for network communication and the
representation of primitive data items and data structures in messages. For this to happen, standards need to
be agreed and adopted – as have the Internet protocols.
Middleware : The term middleware applies to a software layer that provides a programming abstraction as well
as masking the heterogeneity of the underlying networks, hardware, operating systems and programming
languages. Most middleware is implemented over the Internet protocols, which themselves mask the
differences of the underlying networks, but all middleware deals with the difference in operating systems and
hardware
Heterogeneity and mobile code : The term mobile code is used to refer to program code that can be transferred
from one computer to another and run at the destination – Java applets are an example. Code suitable for
running on one computer is not necessarily suitable for running on another because executable programs are
normally specific both to the instruction set and to the host operating system.
Transparency:
Transparency is defined as the concealment from the user and the application programmer of the separation of
components in a distributed system, so that the system is perceived as a whole rather than as a collection of
independent components. In other words, distributed systems designers must hide the complexity of the systems
as much as they can.
– 8 forms of transparency:
• Access transparency – access to local an remote resources using identical operations
• Location transparency – access to resources without knowing the physical location of the
machine
• Concurrency transparency – several processes operate concurrently without interfering
each other
• Replication transparency – replication of resources in multiple servers. Users are not
aware of the replication
• Failure transparency – concealment of faults, allows users to complete their tasks without
knowing of the failures
5
• Mobility transparency – movement of resources and clients within a system without
affecting users operations
• Performance transparency – systems can be reconfigured to improve performance by
considering their loads
• Scaling transparency – systems and applications can be expanded without changing the
structure or the application algorithms
Openness
The openness of a computer system is the characteristic that determines whether the system can be extended
and re-implemented in various ways. 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. If the well-defined interfaces for a system are published, it is easier for developers to add new
features or replace sub-systems in the future. Example: Twitter and Facebook have API that allows developers
to develop their own software interactively.
Concurrency
Both services and applications provide resources that can be shared by clients in a distributed system. There is
therefore a possibility that several clients will attempt to access a shared resource at the same time. For
example, a data structure that records bids for an auction may be accessed very frequently when it gets close to
the deadline time. For an object to be safe in a concurrent environment, its operations must be synchronized in
such a way that its data remains consistent. This can be achieved by standard techniques such as semaphores,
which are used in most operating systems.
Security
Many of the information resources that are made available and maintained in distributed systems have a high
intrinsic value to their users. Their security is therefore of considerable importance. Security for information
resources has three components:
confidentiality (protection against disclosure to unauthorized individuals)
integrity (protection against alteration or corruption),
availability for the authorized (protection against interference with the means to access the resources).
Scalability
Distributed systems must be scalable as the number of user increases. The scalability is defined by B. Clifford
Neuman as
A system is said to be scalable if it can handle the addition of users and resources without suffering a noticeable
loss of performance or increase in administrative complexity
Scalability has 3 dimensions:
o Size
o Number of users and resources to be processed. Problem associated is overloading
o Geography
o Distance between users and resources. Problem associated is communication reliability
o Administration
o As the size of distributed systems increases, many of the system needs to be controlled. Problem
associated is administrative mess
Failure Handling
Computer systems sometimes fail. When faults occur in hardware or software, programs may produce incorrect
results or may stop before they have completed the intended computation. The handling of failures is
particularly difficult.
– Dealing with failures in distributed systems: