Professional Documents
Culture Documents
DC UNIT 1
DC UNIT 1
DISTRIBUTED
SYSTEM
PROF. POOJA BANSODE
WHAT IS A DISTRIBUTED SYSTEM?
• While distributed systems offer many advantages, they also present some challenges
that must be addressed. These challenges include:
• Network latency: The communication network in a distributed system can introduce
latency, which can affect the performance of the system.
• Distributed coordination: Distributed systems require coordination among the nodes,
which can be challenging due to the distributed nature of the system.
• Security: Distributed systems are more vulnerable to security threats than centralized
systems due to the distributed nature of the system.
• Data consistency: Maintaining data consistency across multiple nodes in a distributed
system can be challenging.
DESIGN ISSUES OF THE DISTRIBUTED SYSTEM
• 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.
GOALS OF DISTRIBUTED SYSTEM
• 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.
GOALS OF DISTRIBUTED SYSTEM
Client/Server Systems
Peer-to-Peer Systems
Middleware
Three-tier
N-tier
TYPES OF DISTRIBUTED SYSTEMS
• 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.
TYPES OF DISTRIBUTED SYSTEMS
• 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.
Grid and Cluster computing Models
Cluster Computing:
A computation process on such a computer network i.e. cluster is called Cluster Computing.
Grid Computing:
together over a long distance to perform a task that would rather be difficult for a single machine.
NETWORK OPERATING SYSTEM (NOS)
PCs and, in some instances, older terminals that are connected on a local area network (LAN).
However, a typical NOS no longer exists, as most OSes have built-in network
Peer-to-peer (P2P) network let users share network resources saved in a common, accessible location.
P2P usually works best for small and medium LANs and is less expensive to set up compared to the
client-server model.
In this architecture, all functions and applications are unified under one file server that can be used
Client-server tends to be more expensive than P2P to set up and requires significant technical maintenance.
Features of network operating systems are typically associated with user administration,
Directory services.
-DOS basically refers to any kind of operating system but was majorly used for MS-DOS.
-DOS provides a command line in which the users can give instructions in the form of commands.
-The early versions of DOS were simple in functioning but then subsequent versions
The file operations such as creation, editing and deletion of files is easy.
-Correct environment – It provides the user an environment where user can do input,
-Single user operating system – It can have only one user at a time on the computer.
In recent years, there has been a rise in the number of middleware solutions available in the market.
However, due to this array of choices available it has become vital for enterprises
to first identify what type of solution they require before making a purchasing decision.
Advantages of Middleware in Distributed Systems:
-Middleware is an intermediate layer of software that sits between the application and the network.
-It is used in distributed systems to provide common services, such as authentication, authorization,
-Middleware can be modularized from the application so it has better potential for reuse with
-Application developers can design Middleware so it’s sufficiently high-level that it becomes independent of
specific hardware environments or operating system platforms which simplifies porting applications developed
on one type of platform onto another without rewriting code or without resorting to inefficient and
-Developing distributed systems can be not just challenging but also very time-consuming,
-This is because it requires considering the software architecture of both the client and server
address both current and emerging challenges in order to enable their users to build
• Middleware refers to software that acts as an intermediary between different applications, services,
or components to facilitate communication and data exchange. There are various models and types
of middleware, each serving specific purposes in the realm of distributed computing and software
architecture. Here are some common models of middleware:
• Message-Oriented Middleware (MOM):
• Description: MOM facilitates communication between distributed components or systems by
allowing them to send and receive messages asynchronously. It often includes message queues,
publish-subscribe systems, and other communication patterns.
• Example: IBM MQ, Apache Kafka, RabbitMQ.
1. Remote Procedure Call (RPC) Middleware:
1. Description: RPC middleware enables communication between distributed components by allowing one
program to execute procedures or functions on another remote system as if they were local. It abstracts the
network communication details.
2. Example: Java RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture),
gRPC.
• These models of middleware play crucial roles in addressing various challenges related to
distributed computing, communication, and integration within complex software
architectures. The choice of middleware depends on the specific requirements and
characteristics of the systems being developed.
SERVICES OFFERED BY MIDDLEWARE
• The services offered by middleware aim to simplify the development, deployment, and
management of distributed systems.
• Communication Services:
• Description: Middleware facilitates communication between distributed components by
providing abstractions for message passing, remote procedure calls (RPC), and other
communication patterns.
• Examples: Message-Oriented Middleware (MOM), RPC middleware, Object Request
Broker (ORB).
1. Concurrency Services:
1. Description: Middleware often includes services for managing concurrency and parallelism,
ensuring that multiple processes or threads can work together seamlessly without conflicts.
2. Examples: Transaction processing middleware, concurrency control mechanisms.
2. Transaction Services:
1. Description: Middleware provides transaction management services to ensure the consistency
and atomicity of operations across multiple distributed resources.
2. Examples: Transaction processing middleware, distributed transaction coordinators.
1. Security Services:
1. Description: Middleware offers security services to authenticate users, authorize access to
resources, and ensure the confidentiality and integrity of data during communication.
2. Examples: Secure Socket Layer (SSL), authentication and authorization mechanisms.
2. Event Services:
1. Description: Middleware supports event-driven architectures by providing services for event
notification, subscription, and handling.
2. Examples: Publish-Subscribe middleware, event-driven frameworks.
1. Concurrency and Parallelism Services:
1. Description: Middleware helps manage concurrent access to shared resources and supports
parallel processing to improve system performance.
2. Examples: Concurrency control mechanisms, parallel processing middleware.