CH 1 Distributed System
CH 1 Distributed System
components located on different machines that communicate and coordinate actions in order to
appear as a single coherent system to the end-user.
● All the nodes in the distributed system are connected to each other. So nodes can easily
share data with other nodes.
● More nodes can easily be added to the distributed system i.e. it can be scaled as
required.
● The failure of one node does not lead to the failure of the entire distributed system.
Other nodes can still communicate with each other.
● Resources like printers can be shared with multiple nodes rather than being restricted to
just one.
1. Components in the system are concurrent. A distributed system allows resource sharing,
including software by systems connected to the network at the same time.
2. There can be multiple components, but they will generally be autonomous in nature.
3. A global clock is not required in a distributed system. The systems can be spread across
different geographies.
4. Compared to other network models, there is greater fault tolerance in a distributed
model.
5. The price/performance ratio is much better.
● Transparency: Achieving the image of a single system image without concealing the
details of the location, access, migration, concurrency, failure, relocation, persistence,
and resources to the users
● Openness: Making the network easier to configure and modify
● Reliability: Compared to a single system, a distributed system should be highly capable
of being secure, consistent, and have a high capability of masking errors.
● Performance: Compared to other models, distributed models are expected to give a
much-wanted boost to performance.
● Scalability: Distributed systems should be scalable with respect to geography,
administration, or size.
Transparency:
The distributed systems should be perceived as a single entity by the users or the application
programmers rather than as a collection of autonomous systems, which are cooperating. The
users should be unaware of where the services are located and also the transferring from a
local machine to a remote one should also be transparent.
Types of Transparencies
The implementation of the distributed system is very complex, as a number of issues have to
be considered to achieve its final objective. The complexities should not worry the user of the
distributed system from using it i.e., the complexities should be hidden from the user who uses
the distributed system. This property of the distributed system is called its transparency. There
are different kinds of transparencies that the distributed system has to incorporate. The
following are the different transparencies encountered in the distributed systems.
1. Access Transparency: Clients should be unaware of the distribution of the files. The files
could be present on a totally different set of servers which are physically distant apart and a
A single set of operations should be provided to access these remote as well as the local files.
Applications written for the local file should be able to be executed even for the remote files. The
examples illustrating this property are the File system in Network File System (NFS), SQL
queries, and Navigation of the web.
2. Location Transparency: Clients should see a uniform file namespace. Files or groups of
files may be relocated without changing their pathnames. A location transparent name contains
no information about the named object’s physical location. This property is important to support
the movement of the resources and the availability of services. The location and access
transparencies together are sometimes referred to as Network transparency. The examples are
The File system in NFS and the pages of the web.
4. Replication Transparency: This kind of transparency should be mainly incorporated for the
distributed file systems, which replicate the data at two or more sites for more reliability. The
client generally should not be aware that a replicated copy of the data exists. The clients should
also expect operations to return only one set of values. The examples are Distributed DBMS
and Mirroring of Web pages.
5. Failure Transparency: Enables the concealment of faults, allowing user and application
programs to complete their tasks despite the failure of hardware or software components. Fault
tolerance is provided by the mechanisms that relate to access transparency. The distributed
system is more prone to failures as any of the components may fail which may lead to
degraded service or the total absence of that service. As the intricacies are hidden the
distinction between a failed and a slow running process is difficult. Examples are Database
Management Systems.
6. Migration Transparency: This transparency allows the user to be unaware of the movement
of information or processes within a system without affecting the operations of the users and the
applications that are running. This mechanism allows for the load balancing of any particular
client, which might be overloaded. The systems that implement this transparency are NFS and
Web pages.
Middleware sits "in the middle" between application software that may be working on different
operating systems. Middleware is typically used in distributed systems where it simplifies
software development by doing the following:
● Hides the intricacies of distributed applications
● Hides the heterogeneity of hardware, operating systems, and protocols
● Provides uniform and high-level interfaces used to make interoperable, reusable, and
portable applications
● Provides a set of common services that minimize duplication of efforts and enhances
collaboration between applications
● Java RMI
● CORBA
● DCOM
The users of a true distributed system should not know, on which machine their
programs are running and where their files are stored.
Compiled By Diwas Pandey
5
CENTRALIZED COMPUTING:
This is done at a central location using terminals that are attached to a central computer. The
computer itself may control all the peripherals directly (if they are physically connected to the
central computer) or they may be attached via a terminal server. Alternatively, if the terminals
have the capability, they may be able to connect to the central computer over the network.
Centralized computing offers greater security because all the processing is controlled in a
central location. In addition, if one terminal breaks down the user can simply go to another
terminal and log in again and all their files will still be accessible. The central computer performs
the computing functions and controls the remote terminals. The disadvantage of this system is
that this system of computing relies totally on the central computer, should the central computer
crash, the entire system will be unavailable (go down). Accessing the network may also be slow.
● RELIABILITY: If one machine crashes, the system as a whole can still survive.
● SPEED: A distributed system may have more total computing power than a mainframe
● OPEN SYSTEM: Since it is an open system it is always ready to communicate with other
systems. An open system that scales has an advantage over a perfectly closed and
self-contained system.
● ECONOMIC: A collection of microprocessors offers a better price or performance than
mainframes.
● INCREMENTAL GROWTH: Computing power can be added in small increments
1. Architectural Models
2. Interaction Models (Fundamental Model)
3. Fault Models (Fundamental Model)
1. Architectural Models
The architectural model describes responsibilities distributed between system components and
how are these components placed.
a)Client-server model
☞ The system is structured as a set of processes, called servers, that offer services to the
users, called clients.
b)Peer-to-peer
● Processes (objects) interact without a particular distinction between clients and servers.
● The pattern of communication depends on the particular application.
● A large number of data objects are shared; any individual computer holds only a small
part of the application database.
● Processing and communication loads for access to objects are distributed across many
computers and access links.
● This is the most general and flexible model.
Main features:
● Lower and upper bounds on the execution time of processes can be set.
● Transmitted messages are received within a known bounded time.
● Drift rates between local clocks have a known bound.
Important consequences:
☞ Many distributed systems (including those on the Internet) are asynchronous. - No bound on
process execution time (nothing can be assumed about speed, load, and reliability of
computers). - No bound on message transmission delays (nothing can be assumed about
speed, load, and reliability of interconnections) - No bounds on drift rates between local clocks.
Important consequences:
In practice, timeouts are used with asynchronous systems for failure detection.
☞ Fault models are needed in order to build systems with predictable behavior in case of faults
(systems that are fault-tolerant).
☞ such a system will function according to the predictions, only as long as the real faults
behave as defined by the “fault model”.
Resource sharing and web challenges in distributed systems include the following points
● Transparency is described as the ambush from the user and the utilization programmer
of the division of components in a shared system so that the arrangement is perceived
as a whole, preferably than as a combination of independent components.
● The openness of a computer system is the feature that determines whether the
operation can be stretched and reimplemented in multiple forms or not.
● Both services and applications produce the support that can be yielded by consumers in
a dispersed arrangement. There is, therefore, a probability that infrequent customers will
endeavor to reach an accorded support at the selfsame beat.
● Several data resources that are created possible and sustained in shared methods have
a huge inherent advantage to their users. Their salvation is, therefore, of significant
interest.
● cloud computing
● grid computing
● cluster computing
Cloud Computing uses distributed computing to provide customers with highly scalable
cost-effective infrastructures and platforms. Cloud providers usually offer their resources
through hosted services that can be used over the internet. A number of different service
models have established themselves on the market:
One advantage of this is that highly powerful systems can be quickly used and the
computing power can be scaled as needed. There is no need to replace or upgrade an
expensive supercomputer with another pricey one to improve performance.
Since grid computing can create a virtual supercomputer from a cluster of loosely
interconnected computers, it is specialized in solving problems that are particularly
computationally intensive. This method is often used for ambitious scientific projects and
decrypting cryptographic codes.