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

Overview of Distributed Computing Systems

The document provides an overview of distributed computing systems, detailing their characteristics, goals, issues, and types, including centralized, peer-to-peer, and hybrid systems. It discusses middleware's role in facilitating communication and coordination between distributed applications, as well as various models and services it offers. Additionally, it explains the client-server model, its architecture, and the importance of scalability and resource sharing in distributed environments.

Uploaded by

gauri.deshpande
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views19 pages

Overview of Distributed Computing Systems

The document provides an overview of distributed computing systems, detailing their characteristics, goals, issues, and types, including centralized, peer-to-peer, and hybrid systems. It discusses middleware's role in facilitating communication and coordination between distributed applications, as well as various models and services it offers. Additionally, it explains the client-server model, its architecture, and the importance of scalability and resource sharing in distributed environments.

Uploaded by

gauri.deshpande
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Distributed Computing

Module -1

Introduction to Distributed Systems

1.1 Characterization of Distributed Systems: Issues, Goals, and Types of distributed


systems, Distributed System Models, Hardware concepts, Software Concept.
1.2 Middleware: Models of Middleware, Services offered by middleware, Client
Server model.

1.1 Characterization of Distributed Systems:

Distributed System:
A distributed system is a group of independent computers that are connected by a network and
work together as a single system.

Fig 1-Distributed System

These computers communicate to share resources and perform tasks. Distributed systems provide
scalability, reliability, and resource sharing.

Goals of Distributed System:


Distributed Computing

The main goals of distributed systems are to make resources easy to use, hide system
complexity, support open standards, and allow the system to grow easily.
1. Resource Sharing
One of the primary goals of a distributed system is resource sharing. Resources such as hardware
(printers, storage), software (applications), and data (files, databases) should be shared among
users connected to the system. This helps in reducing cost and improving efficiency.
2. Transparency
Transparency means hiding the fact that the system is distributed from users and applications.
Users should not need to know where resources are located or how they are accessed. The
system should look like a single, unified system even though it is made up of many computers.
3. Openness
Openness refers to the use of standard interfaces and protocols so that systems from different
vendors can work together. An open distributed system can be easily extended, modified, and
integrated with other systems without depending on a single manufacturer.
4. Scalability
Scalability is the ability of a distributed system to grow without affecting performance. The
system should work efficiently even when the number of users, computers, or the geographical
area increases. This can be achieved by avoiding centralized components and using techniques
such as replication and distribution.

Issues in Distributed System:


Distributed systems face several fundamental challenges due to the absence of global control and
shared memory.
1. Heterogeneity:
Heterogeneity refers to differences in hardware, operating systems, networks, data formats, and
programming languages used in a distributed system. Middleware is used to hide these
differences and provide a uniform programming interface.
2. Scalability:
Scalability is the ability of a system to grow in size, geographical distribution, and administrative
domains without loss of performance.
Distributed Computing

Problems affecting scalability:


 Centralized services
 Centralized data storage
 Centralized algorithms
Solutions include replication, caching, and distribution of responsibilities.
3. Fault Tolerance:
Fault tolerance is the ability of a distributed system to continue functioning even when some
components fail. Since partial failures are common, systems must detect failures and recover
automatically using techniques such as redundancy and replication.
4. Concurrency:
Concurrency arises when multiple processes execute simultaneously and access shared
resources. Proper synchronization mechanisms are required to maintain data consistency.
5. Transparency:
Transparency hides the distributed nature of the system from users and applications.
Types of transparency:
 Access transparency: Enables local and remote information objects to be accessed using
identical operations.
 Location transparency: Enables information objects to be accessed without knowledge of
their physical or network location.
 Migration transparency: Allows the movement of information objects within a system
without affecting the operations of users or application programs.
 Replication transparency: Hides the existence of multiple copies of information objects and
makes them appear as a single object to users and applications.
 Concurrency transparency: Allows multiple users and processes to access shared
information objects at the same time without interfering with each other.
 Failure transparency: Hides system failures and enables the system to continue functioning
even when some components fail.
 Persistence transparency: Hides whether information objects are stored in memory or on
disk and ensures that data remains available across system restarts.
6. Security:
Distributed Computing

Security ensures protection of data and resources against unauthorized access. Important aspects
include authentication, authorization, confidentiality, and integrity.

Types of Distributed System:


1. Centralized Distributed Systems

Fig 2- Centralized System

In a centralized distributed system, one main server controls all resources and processes. Clients
send requests to this server, which processes them and sends back the results. This system is
simple to manage and easy to implement because all control is in one place. However, if the
central server fails, the entire system stops working, and it can become slow if many clients send
requests at the same time.

Advantages:

 Easy management and control

 Efficient resource allocation

 Simple to implement

Disadvantages:

 Single point of failure


Distributed Computing

 Performance bottleneck under heavy load

 Low fault tolerance

2. Peer-to-Peer (P2P) Distributed Systems

Fig 3- Peer to Peer System

In a peer-to-peer system, all computers (nodes) are equal. There is no central server, and each
node can act as both a client and a server. Nodes communicate directly with each other. P2P
systems are self-organizing, scalable, and more fault-tolerant because the system can continue
working even if some nodes fail. However, lack of central control makes resource discovery and
security management more challenging.

Advantages:

 No central control; decentralized management

 Highly scalable and fault-tolerant

 No single point of failure

Disadvantages:

 No central coordination
Distributed Computing

 Security and trust challenges

 Harder to locate resources efficiently

3. Hybrid Distributed Systems

Fig 4: Hybrid Distributed System

Hybrid systems combine centralized and P2P models. Some nodes act as servers while others
work as peers. This allows flexibility in resource management, better scalability, and improved
fault tolerance. However, these systems are more complex to design, require careful management
of resources, and may have higher network communication overhead.

Advantages:

 Flexible resource allocation

 Combines strengths of centralized and P2P systems

 Improved scalability and reliability

Disadvantages:

 Complex to implement and manage


Distributed Computing

 Potential conflicts in resource allocation

 Extra communication overhead


Distributed Computing

Distributed System Models

Distributed computing system models describe how a distributed system is structured, how its
components interact, and how it ensures communication, reliability, and security. They are
classified into three main types:

 Physical Model
 Architectural Model
 Fundamental Model

1. Physical Model

The physical model represents the hardware components, network links, and middleware of a
distributed system. It is used to design, manage, implement, and evaluate system performance.

Components:

Nodes:

 Devices that process data, execute tasks, and communicate with other nodes (e.g., servers,
workstations, user computers)
 Provide interfaces for user interaction and access to backend services (storage, database,
processing, web).
 Each node includes an operating system, execution environment, and middleware for
communication and coordination.

Links:

Communication channels connecting nodes, either wired (copper, fiber optic) or wireless.

Types of links:

 Point-to-point: Connects exactly two nodes.


 Broadcast: One node sends data to multiple nodes simultaneously.
 Multi-access: Multiple nodes share the same channel; protocols prevent interference.

Middleware:
Distributed Computing

 Software on nodes that facilitates communication, resource management, synchronization,


fault tolerance, and security.
 Enables decentralized control and decision-making.

Network Topology:

 Arrangement of nodes and links.


 Common topologies: bus, star, mesh, ring, or hybrid.

Communication Protocols:

 Rules and procedures for transmitting and interpreting data.


 Examples: TCP, UDP, HTTPS, MQTT.

Working:

Fig 5: Physical Model

 Nodes communicate over links using protocols.


 Middleware manages communication, coordination, and error handling.
 Requests and data are exchanged, processed, and results returned to nodes.

Example:
Distributed Computing

Distributed database system with multiple servers connected over LAN/WAN.

2. Architectural Model

Definition:

The architectural model defines the overall design and structure of the distributed system,
specifying how components interact to provide services.

Types:

Client-Server Model:

 Centralized approach: clients send requests, servers respond.


 Works on a request-response model using protocols like TCP/IP or HTTP.
 Applications: Web services, cloud computing, database management.

Peer-to-Peer (P2P) Model:

 Decentralized: all nodes (peers) are equal and can request or provide services.
 Highly scalable; peers can join or leave dynamically.
 Communication occurs directly among peers without intermediaries.
 Example: BitTorrent.

Layered Model:

 System organized into multiple layers, each providing specific services.


 Layers communicate with adjacent layers using well-defined protocols.
 Provides a hierarchical structure and abstracts lower-layer complexity.

Microservices Model:

 Complex applications are decomposed into independent, single-function services running


on different servers.
 Each service can be developed, deployed, and scaled independently.
 Improves maintainability, scalability, and clarity.
 Example: E-commerce platforms with separate services for payment, catalog, and inventory.

Working:
Distributed Computing

Fig 6 :Architectural Model

 Clients send requests according to architecture type.


 Servers or peers process requests and return responses.
 Middleware and layers manage communication, business logic, and data storage.

3. Fundamental Model

Definition:

The fundamental model is a conceptual framework describing the essential behavior,


communication, fault tolerance, and security of distributed systems. It is common across all
architectural models.

Components:

Interaction Model: Defines how processes communicate and coordinate.

Components:

 Message Passing: Sends data, instructions, or service requests between nodes; can be
synchronous or asynchronous.
 Publish/Subscribe (Pub/Sub): Processes publish messages to a topic; subscribers consume
the messages, enabling event-driven execution.
Distributed Computing

Remote Procedure Call (RPC) Model:

 Enables a process to invoke a procedure on a remote node as if it were local.


 Middleware handles request transmission, execution on server, and result delivery.

Failure Model: Deals with faults and recovery in distributed systems.

Types of failures

 Crash failures: Node stops unexpectedly.


 Omission failures: Message lost, causing missed communication.
 Timing failures: Node exceeds expected response time.
 Byzantine failures: Node sends malicious or incorrect messages.

Security Model: Ensures authentication, encryption, and data integrity.

Components:

 Authentication: Password-based, public-key cryptography, multi-factor authentication.


 Encryption: Converts data into unreadable format to protect confidentiality.
 Data Integrity: Ensures data is not tampered with; mechanisms include hash functions and
digital signatures.

Working:

Fig 7: Fundamental Model

 Processes interact via messages or RPC calls.


 Failures are detected and handled using replication or retries.
 Security ensures authorized access, encrypted communication, and integrity of data.

Example:
Distributed Computing

 IoT systems using MQTT (interaction).


 Java RMI/gRPC for RPC.
 Replicated database with failover (failure handling).
 Secure online banking (security).

Hardware Concept And Software Concept


Hardware in distributed computing refers to the physical infrastructure required to
support distributed systems. It includes:
• Processors & Nodes: Multiple interconnected computers (nodes) that communicate
over a network.
• Networking Devices: Routers, switches, and network interfaces that enable
communication between distributed components.
• Storage Systems: Distributed databases and cloud storage that allow shared access
to data.
• Middleware Hardware: Load balancers and distributed memory systems that
optimize performance.
• Cloud & Edge Computing Devices: Servers, data centers, and IoT devices that support
distributed applications.
Software Concept
Software in distributed computing consists of programs and algorithms that manage
communication, coordination, and resource sharing. It includes:
• Distributed Operating Systems: Systems like Google Fuchsia, Amoeba, and Plan 9
that support distributed architectures.
• Middleware: Software layers that provide communication and synchronization (e.g.,
Apache Kafka, CORBA, and RPC).
• Distributed Algorithms: Algorithms for consensus (Paxos, Raft), mutual exclusion,
and load balancing.
• Virtualization & Cloud Platforms: Software that enables cloud computing (e.g.,
Distributed Computing

VMw

1.2 Middleware

1.2.1 Models of Middleware:

Middleware is a software layer that acts as a bridge between applications and the operating
system/network, enabling communication and coordination in a distributed system.

Purpose of Middleware

The main purpose of middleware is to reduce the complexity of distributed system development
by hiding low-level implementation details.

Purposes:

 It enables communication between distributed applications


 It supports interoperability among heterogeneous systems
 It provides location, access, and failure transparency
 It manages security, transactions, and concurrency
 It enhances scalability and reliability of distributed systems

Categories of Middleware (Shortened):

1. Platform Middleware:
Provides a runtime environment (container) to develop and run applications. Examples
include web servers, application servers, and content management systems (CMS).
2. Enterprise Application Integration (EAI) Middleware:
Enables integration of business applications without custom connectors by ensuring data
integrity and supporting B2B communication.

Working of Middleware:

The middleware works as an intermediary that manages communication and coordination


between distributed applications.
Distributed Computing

Working Steps:

 The client application sends a request using middleware APIs


 Middleware converts the request into a network-compatible format (marshalling)
 The request is transmitted over the network
 The server application processes the request
 Middleware receives and formats the response
 The response is delivered to the client application

Types of Middleware/ Models of Middleware

· RPC Model: A program on one computer can call a function on another computer, and the
middleware handles all communication so it works like a local function.

· Message-Oriented Model: Applications communicate by sending messages through a queue


system, allowing them to work independently and not wait for each other.

· Object-Oriented Model: Objects on different computers interact by calling each other’s


methods, providing abstraction and making remote objects feel like local ones.

· Transaction-Oriented Model: Middleware ensures that a group of operations across multiple


systems either all succeed or all fail, maintaining data consistency.

·Service-Oriented Model: Applications are divided into separate services that communicate
using standard protocols, making systems more flexible and reusable.
Distributed Computing

·Event-Based Model: Components communicate by generating and listening to events, allowing


asynchronous and decoupled interactions.

1.2.2 Services offered by Middleware

Middleware provides various services that help distributed applications communicate,


coordinate, and operate reliably. These services include:

1. Communication Services:
Middleware enables applications to exchange data across different systems, using
mechanisms like remote procedure calls or message queues.
2. Naming and Directory Services:
It helps locate and identify resources or services in a distributed environment, such as
through DNS or LDAP.
3. Security Services:
Middleware provides authentication, authorization, and data encryption to protect
applications and information.
4. Transaction Management:
It ensures that a series of operations across multiple systems either all succeed or all fail,
maintaining data consistency.
5. Persistence and Database Services:
Middleware manages consistent access to databases and storage systems, simplifying data
handling for distributed applications.
6. Event and Notification Services:
It allows components to react to events and send notifications asynchronously, supporting
publish–subscribe models.
7. Concurrency Control:
Middleware manages access to shared resources to prevent conflicts and ensure data
integrity.
8. Load Balancing and Fault Tolerance:
It distributes work across multiple servers and handles failures to maintain system reliability
and availability.
Distributed Computing

1.2.3 Client Server model

The Client-Server Model is a distributed computing architecture in which tasks and


responsibilities are divided between clients and servers.

 Clients are devices or programs that request services or resources from servers.
 Servers are systems that provide services, process requests, and deliver responses to clients.
This model helps organize distributed systems by separating service consumers from service
providers.

Characteristics

1. Two types of entities: The system has clients, which request services, and servers, which
provide services.
2. Request-response communication: Clients initiate communication by sending requests,
and servers respond after processing the requests.
3. Resource sharing: Servers centralize resources such as databases, files, or applications,
making them available to multiple clients.
4. Scalability: Multiple clients can connect to a single server without changing the server
architecture, supporting growth.
5. Centralized control: Servers manage security, access, and maintenance, ensuring
consistency and proper resource usage.

Architecture

a) Two-Tier Architecture
Distributed Computing

The Two-Tier Architecture consists of two layers: the client layer and the server layer.

·The client layer is responsible for the user interface and sending requests to the server.

·The server layer handles data storage, retrieval, and processing of client requests.

·Working: When a client sends a request (e.g., to fetch data), the server processes it and returns
the results directly to the client.

· Example: A web browser (client) directly querying a database server to retrieve information.

b) Three-Tier Architecture

The Three-Tier Architecture divides the system into three layers:

1) Client Tier (Presentation): Handles the user interface and displays results to the user.
2) Middle Tier (Application Server): Processes business logic and rules, acting as an
intermediary between client and database.
3) Database Tier (Data Storage): Stores and manages persistent data

Working: The client sends a request to the application server, which processes the request using
business logic and retrieves/stores data from the database. The response is then sent back to the
client.

Example: A web application where the browser communicates with an application server, which
interacts with a database server.

Advantages
Distributed Computing

 Centralized control: Server manages resources, security, and updates, making


administration easier.
 Efficient resource sharing: Multiple clients can use the same server resources.
 Simplified maintenance: Updates and patches can be applied on the server without
changing clients.
 Scalability: Additional clients can be added without major changes to the system.

Disadvantages

 Single point of failure: If the server fails, all clients lose access to services.
 Performance bottleneck: Server performance limits the number of clients it can handle.
 Network dependency: Communication relies on network reliability; congestion or failure
can disrupt services.

You might also like