0% found this document useful (0 votes)
6 views19 pages

Distributed System

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 19

Distributed system

• Definition: A distributed system includes multiple physically different nodes linked together
using the network. All the nodes in this system communicate with each other and control processes
in a team. Nodes include a small portion of the distributed operating system software. It connects
multiple computers through a single channel. It uses many central processors to serve multiple
real-time applications and users.
• Types of distributed system
❑ Client/server systems
❑ Peer-to-peer systems
❑ Middleware
❑ Three-tier
❑ N-tier
Client/server systems
• In client-server systems, the client requests a resource or file and the server fetches that
resource. Users and servers usually communicate through a computer network, so they are
a part of distributed systems. A client is in contact with just one server.
Peer-to-peer systems
• The peer-to-peer techniques contain nodes that are equal participants in data sharing. The nodes
communicate with each other as needed to share resources. This is done with the help of a network.
All the tasks are equally separated between all the nodes.
Middleware
• Middleware can be thought of as an application that sits between two separate applications and
provides service to both. It works as a base for different interoperability applications running on
different operating systems. Data can be transferred to other between others by using this service.
Three-tier
• Three-tier system uses a separate layer and server for each function of a program. In this data of
the client is stored in the middle tier rather than sorted into the client system or on their server
through which development can be done easily. It includes an Application Layer, Data Layer, and
Presentation Layer. This is mostly used in web or online applications.
N-tier
• N-tier is also called a multitier distributed system. The N-tier system can contain any number of
functions in the network. N-tier systems contain similar structures to three-tier architecture. When
interoperability sends the request to another application to perform a task or to provide a service.
N-tier is commonly used in web applications and data systems.
Distributed system goals
• Boosting Performance: The distributed system tries to make things faster by dividing a
bigger task into small chunks and finally processing them simultaneously in different computers.
It’s just like a group of people working together on a project. For example, when we try to search
for anything on the internet the search engine distributes the work among several servers and then
retrieve the result and display the webpage in a few seconds.
• Enhancing Reliability: Distributed system ensures reliability by minimizing the load of
individual computer failure. If one computer gets some failure then other computers try to keep the
system running smoothly. For Example, when we search for something in social media if one
server gets an issue then also we are able to access photos, and posts because they switch the server
quickly.
• Scaling for the Future: Distributed systems are experts at handling increased demands. They
manage the demands by incorporating more and more computers into the system. This way they
run everything smoothly and can handle more users.
Contd.
• Resourceful Utilization: Resource Utilization is one of the most prominent features of a
Distributed system. Instead of putting a load on one computer, they distribute the task among the
other available resource. This ensures that work will be done by utilizing every resource.
• Fault Tolerance and Resilience: Distributed system comes with backup plans. If any
computer fails they redirect the task to some other computer ensuring less delay and a smooth
experience.
• Security and Data Integrity: Distributed system have special codes and lock to protect data
from other. They use some renowned techniques for encryption and authentication to keep
information safe and unauthorized access. Distributed systems prioritize data security as you keep
your secret safe.
• Load Balancing: As we know distributed systems ensure good resource utilization and allow
the system to handle a high volume of data without getting it slow down, this is achieved by load
balancing, in which it evenly distributed load to all the computers available. Thus preventing
single-machine overload and preventing bottlenecks.
Distributed System Models
• Following are different models in distributed system

❑ Physical Model

❑ Architectural Model

❑ Fundamental Model
Physical Model
• A physical model is basically a representation of the underlying hardware elements of a distributed
system. It encompasses the hardware composition of a distributed system in terms of computers
and other devices and their interconnections.
• It is primarily used to design, manage, implement and determine the performance of a distributed
system. A physical model majorly consists of the following components:

❖ Nodes
❖ Links
❖ Middleware
❖ Network Topology
❖ Communication Protocols
Architectural Model
• Architectural model in a distributed computing system is the overall design and structure of the
system, and how its different components are organized to interact with each other and provide the
desired functionalities. It is an overview of the system, on how will the development, deployment
and operations take place.
• The key aspects of the architectural model are
❖ Client-Server model
❖ Peer-to-peer model
❖ Layered model
❖ Micro-services model
• In the micro-service model, a complex application or task, is decomposed into multiple
independent tasks and these services running on different servers. Each service performs only a
single function and is focused on a specific business capability. This makes the overall system
more maintainable, scalable, and easier to understand.
Fundamental Model
• The fundamental model in a distributed computing system is a broad
conceptual framework that helps in understanding the key aspects of
the distributed systems. These are concerned with more formal
description of properties that are generally common in all architectural
models. It represents the essential components that are required to
understand a distributed system’s behaviour.
• Three fundamental models are as follows
1. Interaction Model
2. Remote Procedure Call (RPC)
3. Failure Model
4. Security Model
Interaction model
• Distributed computing systems are full of many processes interacting with
each other in highly complex ways. Interaction model provides a framework
to understand the mechanisms and patterns that are used for communication
and coordination among various processes. Different components that are
important in this model are –
• Message Passing – It deals with passing messages that may contain, data,
instructions, a service request, or process synchronisation between different
computing nodes. It may be synchronous or asynchronous depending on the
types of tasks and processes.
• Publish/Subscribe Systems – Also known as pub/sub system. In this the
publishing process can publish a message over a topic and the processes that
are subscribed to that topic can take it up and execute the process for
themselves. It is more important in an event-driven architecture.
Remote Procedure Call(RPC)
• It is a communication paradigm that has an ability to invoke a new process or a method on a
remote process as if it were a local procedure call. The client process makes a procedure call
using RPC and then the message is passed to the required server process using communication
protocols. These message passing protocols are abstracted and the result once obtained from the
server process, is sent back to the client process to continue execution.
Failure model
• This model addresses the faults and failures that occur in the distributed
computing system. It provides a framework to identify and rectify the faults
that occur or may occur in the system. Fault tolerance mechanisms are
implemented so as to handle failures by replication and error detection and
recovery methods. Different failures that may occur are:
• Crash failures – A process or node unexpectedly stops functioning.
• Omission failures – It involves a loss of message, resulting in absence of
required communication.
• Timing failures – The process deviates from its expected time quantum and
may lead to delays or unsynchronised response times.
• Byzantine failures – The process may send malicious or unexpected
messages that conflict with the set protocols.
Security model
• Distributed computing systems may suffer malicious attacks, unauthorised access and data
breaches. Security model provides a framework for understanding the security
requirements, threats, vulnerabilities, and mechanisms to safeguard the system and its
resources. Various aspects that are vital in the security model are –
• Authentication – It verifies the identity of the users accessing the system. It ensures that
only the authorised and trusted entities get access. It involves –
• Password-based authentication – Users provide a unique password to prove their identity.
• Public-key cryptography – Entities possess a private key and a corresponding public key, allowing
verification of their authenticity.
• Multi-factor authentication – Multiple factors, such as passwords, biometrics, or security tokens,
are used to validate identity.
• Encryption – It is the process of transforming data into a format that is unreadable without
a decryption key. It protects sensitive information from unauthorized access or disclosure.

Design Issues in distributed model
• The following are some of the major design issues of distributed systems
1. Heterogeneity: Heterogeneity is applied to the network, computer hardware, operating system, and
implementation of different developers. A key component of the heterogeneous distributed system
client-server environment is middleware. Middleware is a set of services that enables applications
and end-user to interact with each other across a heterogeneous distributed system.
2. Openness: The openness of the distributed system is determined primarily by the degree to which
new resource-sharing services can be made available to the users. Open systems are characterized
by the fact that their key interfaces are published. It is based on a uniform communication
mechanism and published interface for access to shared resources. It can be constructed from
heterogeneous hardware and software.
3. Scalability: The scalability of the system should remain efficient even with a significant increase
in the number of users and resources connected. It shouldn’t matter if a program has 10 or 100
nodes; performance shouldn’t vary. A distributed system’s scaling requires consideration of a
number of elements, including size, geography, and management.
Contd.
4. Security: The security of an information system has three components Confidentially, integrity, and
availability. Encryption protects shared resources and keeps sensitive information secrets when
transmitted.
5. Failure Handling: When some faults occur in hardware and the software program, it may produce
incorrect results or they may stop before they have completed the intended computation so corrective
measures should to implemented to handle this case. Failure handling is difficult in distributed
systems because the failure is partial i, e, some components fail while others continue to function.
6. Concurrency: There is a possibility that several clients will attempt to access a shared resource at
the same time. Multiple users make requests on the same resources, i.e. read, write, and update. Each
resource must be safe in a concurrent environment. Any object that represents a shared resource in a
distributed system must ensure that it operates correctly in a concurrent environment.
7. Transparency: Transparency ensures that the distributed system should be perceived as a single
entity by the users or the application programmers rather than a collection of autonomous systems,
which is cooperating. The user should be unaware of where the services are located and the transfer
from a local machine to a remote one should be transparent.
Communication in distributed system
• Message passing is the interaction of exchanging messages between at least two processors. The
cycle which is sending the message to one more process is known as the sender and the process
which is getting the message is known as the receiver.
• In a message-passing system, we can send the message by utilizing send function and we can
receive the message by utilizing receive function. Following are the general syntaxes for send
function and receive function.
Send()
Receive()
Send (receiver, message)
Receive(sender, message)

• Message passing is possible at whatever point the processors are in communication. The
communication of a message can be established in distributed in two ways.
• Interprocess communication(IPC)
• Remote methodology call(RPC)

You might also like