Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Module 1: Introduction to Distributed Systems
Introduction to Distributed Systems
A Distributed System is a collection of independent computers (nodes) that
appears to its users as a single coherent system. The computers communicate
and coordinate their actions only by-passing messages over a network.
➤ Formal definition by Andrew Tanenbaum:
"A distributed system is a collection of independent computers that appears to
its users as a single coherent system."
Concept Explanation:
In a distributed system, multiple machines work together transparently. Key
characteristics include:
• Concurrency — multiple processes run simultaneously across nodes.
• No global clock — each machine has its own clock; synchronization is a
major challenge.
• Independent failures — any component can fail without bringing the
whole system down.
• Message passing — nodes exchange data via network messages (TCP/IP,
RPC, etc.).
• Resource sharing — CPU, memory, storage, and data are shared across the
network.
The system hides the complexity of the underlying hardware and network from
end users, making everything look like a single machine.
Step by Step Working:
How a distributed system processes a user request:
1. A user sends a request (e.g., Google search query).
2. A front-end server (load balancer) receives the request.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
3. The request is forwarded to appropriate back-end nodes (web servers, data
servers).
4. Multiple nodes process parts of the request simultaneously (parallel
processing).
5. Results are aggregated by a coordinator node.
6. The final response is sent back to the user.
Real world Example:
Scenario: You type a search query in Google.
Behind the scenes: Thousands of servers across multiple data centres worldwide
process your query simultaneously.
Outcome: You receive a response in under 0.5 seconds — thanks to the
distributed architecture.
Other examples: WhatsApp messaging, Netflix video streaming, Amazon
shopping cart, ATM networks, airline reservation systems.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Advantages:
• Scalability — add more nodes to handle increased load.
• Fault Tolerance — if one node fails, others continue working.
• Resource Sharing — efficient use of CPUs, memory, and data.
• Performance — parallel processing speeds up computation.
• Geographical Distribution — nodes can be in different locations
worldwide.
• Cost-effective — commodity hardware can be used instead of expensive
mainframes.
Disadvantages
• Complexity — design and management are far more difficult than a single
system.
• Security — more points of attack; data travels over networks.
• Network Dependency — performance depends on network reliability.
• Consistency — keeping data consistent across nodes is hard (CAP
theorem).
• Debugging — finding errors in a distributed environment is very
challenging.
• Latency — network communication adds delay compared to local
operations.
Applications and Use cases:
Domain Example
Web Services Google, Amazon, Facebook
Banking ATM networks, inter-bank transactions
Telecommunications Mobile networks (GSM/LTE)
Healthcare Hospital record systems across branches
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Scientific Computing SETI home, weather forecasting
Cloud Computing AWS, Azure, Google Cloud
Importance of Distributed Computing:
Distributed systems form the backbone of the modern internet and enterprise
IT infrastructure. Without distributed computing:
• Large-scale websites like Amazon or Google could not function.
• Big data processing (Hadoop, Spark) would be impossible.
• Modern microservices and cloud architectures would not exist.
• Real-time services like WhatsApp, Zoom, or Netflix would fail.
Issues in Distributed Computing
Issues in distributed systems are the fundamental challenges and problems that
designers and developers must address to build reliable, efficient, and scalable
distributed applications.
Concept Explanation:
Issue Description
Heterogeneity Different hardware, OS, programming languages, networks.
Middleware solves this.
Openness System must follow standard interfaces & protocols so new
components can be added.
Security Confidentiality, Integrity, Availability (CIA) must be maintained
over network.
Scalability System should work well as users/data/resources grow —
horizontally or vertically.
Failure Handling Detect, mask, tolerate, and recover from partial failures of
nodes/network.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Concurrency Multiple processes access shared resources simultaneously —
needs synchronization.
Transparency Hide distribution from users (access, location, replication, failure
transparency).
Quality of Service Reliability, Security, Performance, and Availability must be
maintained.
Step by Step Working: How issues are addressed
1. Heterogeneity → Solved by Middleware layers (e.g., CORBA, Java RMI, REST
APIs).
2. Openness → Use standard protocols (TCP/IP, HTTP, SOAP, REST).
3. Security → Encryption (SSL/TLS), Authentication (OAuth), Firewalls.
4. Scalability → Load balancing, sharding, replication, CDN.
5. Failure Handling → Redundancy, checkpointing, heartbeat mechanisms.
6. Concurrency → Locking, semaphores, distributed transactions.
Applications and Use Cases:
• Cloud platforms (AWS, Azure) address all 7 issues above.
• Banking systems handle concurrency through distributed transactions.
• Healthcare systems require strong security and openness.
Goals in Distributed Computing
Goals define what a well-designed distributed system should achieve. These are
the fundamental objectives that guide the design decisions.
Concept Explanation: Four Primary Goals
Goal Explanation
Connecting Resources Allow users and resources (hardware/software) to connect easily
and share.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Transparency Hide the distributed nature from users. System appears as one.
Openness Standard interfaces so the system can be easily extended or
modified.
Scalability System handles growth in users, data, and geography without
degradation.
Types of Transparency:
Transparency Type What it Hides
Access How resources are accessed (local vs remote — same
interface).
Location Where a resource is physically located.
Replication That multiple copies of a resource exist.
Failure Faults and recovery from nodes/network.
Migration That a resource may have moved to another location.
Performance Variations in performance due to load.
Scaling That the system is expanding.
Step by step:
1. Connecting Resources: Achieved via networking protocols (TCP/IP) and
middleware.
2. Transparency: Middleware abstracts low-level details from applications.
3. Openness: APIs, standard data formats (JSON/XML), open protocols.
4. Scalability: Horizontal scaling (add servers), CDN for geographic reach.
Types of Distributed Computing
Distributed systems are classified based on their purpose, architecture, and how
components are interconnected. Three main categories exist: Distributed
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Computing Systems, Distributed Information Systems, and Distributed Pervasive
Systems.
Concept Explanation:
A. Distributed Computing Systems
• Used for high-performance computing tasks.
• Types: Cluster Computing, Grid Computing.
• Example: Weather forecasting, scientific simulations.
B. Distributed Information Systems
• Manage and access large volumes of data across multiple systems.
• Types: Transaction Processing Systems, Enterprise Application Integration.
• Example: Banking databases, ERP systems (SAP).
C. Distributed Pervasive Systems
• Systems embedded in our surroundings — IoT, smart homes.
• Characteristics: Small nodes, wireless, mobile, seamlessly integrated.
• Example: Smart watches, healthcare wearables, home automation.
Step by Step working:
How a Distributed Computing System (Cluster) processes a task:
1. A user submits a large computation job.
2. The master/head node splits it into sub-tasks.
3. Sub-tasks are distributed to worker nodes.
4. Worker nodes compute in parallel.
5. Results are sent back to the master node.
6. Master aggregates and returns the final result.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Real world example:
Computing: Hadoop Cluster for big data processing at Facebook.
Information: SWIFT — international banking transaction system.
Pervasive: Fitbit — wearable that syncs data with cloud health servers.
Advantages
• Flexibility — each type is optimized for its purpose.
• Computing Systems: Very fast parallel processing.
• Information Systems: High data availability and consistency.
• Pervasive Systems: Seamless integration into daily life.
Disadvantages
• Computing: Complex job scheduling required.
• Information: Data consistency across distributed databases is hard.
• Pervasive: Security and privacy concerns with always-on devices.
Grid and Cluster Computing Models
Cluster Computing: A set of connected computers (nodes) working together as a
single system, usually located in the same physical location, tightly coupled via a
high-speed LAN.
Grid Computing: A distributed model where geographically dispersed computers
(across organizations/countries) work together to solve large computational
problems, loosely coupled over the internet.
Concept Explanation:
Feature Cluster Computing Grid Computing
Coupling Tightly coupled Loosely coupled
Location Same physical location Geographically distributed
Network High-speed LAN Internet / WAN
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Admin Single administration Multiple organizations
Homogeneity Homogeneous nodes Heterogeneous nodes
Speed Very fast Slower (network latency)
Example Beowulf Cluster, HPC labs SETI home, LHC Grid (CERN)
Step by step working:
Cluster Computing Working
1. All nodes connected via high-speed switch/LAN.
2. Master node assigns tasks to worker nodes.
3. Workers process tasks in parallel (MPI/OpenMP).
4. Results returned to master node and aggregated.
Grid Computing Working
1. Resources from multiple organizations are pooled.
2. A grid middleware (e.g., Globus Toolkit) manages resource access.
3. Jobs are submitted to a scheduler (e.g., PBS, SGE).
4. Scheduler distributes tasks to available nodes worldwide.
5. Nodes execute tasks; results sent back over the internet.
Advantages
Cluster
• High performance with low latency.
• Cost-effective using commodity hardware.
• Easy to manage (single administrator).
Grid
• Access to massive geographically distributed resources.
• Resource sharing across organizations.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
• Solves problems too large for a single cluster.
Disadvantages
Cluster
• Limited to one location — no geographic distribution.
• Single point of failure at master node.
Grid
• High network latency due to internet communication.
• Complex security — data travels across multiple organizations.
• Difficult resource management across administrative domains.
What is NOS AND DOS?
Feature NOS DOS
Transparency Low — user knows about other High — single system image
machines
Architecture Each node has its own OS Single OS distributed across
nodes
Resource Sharing Explicit (user must request) Automatic and transparent
Example Windows Server, Novell NetWare Mach, Amoeba, Sprite
Complexity Simpler to implement Very complex to implement
Used in Corporate LANs, file servers Research, supercomputers
Step-by-Step Working
NOS Working
1. Each machine runs its own local OS.
2. NOS adds a networking layer on top.
3. User explicitly logs into the network (e.g., maps a drive letter to a shared
folder).
4. File requests go over the network to the server.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
DOS Working
1. A single OS kernel is spread across all nodes.
2. Processes can transparently migrate between nodes.
3. Memory and files are accessed as if local.
4. The OS handles load balancing automatically.
Examples
NOS: Windows Server 2019 — used in offices for file/print sharing.
NOS: Novell NetWare — used widely in corporate networks in the 1990s.
DOS: Amoeba OS — developed at Vrije Universiteit Amsterdam for research.
DOS: Sprite OS — developed at UC Berkeley; supports transparent process
migration.
DOS: Mach Microkernel — basis for macOS kernel (XNU).
System Advantages / Disadvantages
NOS Advantages Simple to implement, widely available, uses existing OS.
NOS Disadvantages Low transparency — user must know network details; not a true
single image.
DOS Advantages High transparency, automatic load balancing, true single system
image.
DOS Disadvantages Very complex to design; rarely used commercially due to
complexity.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Middleware – Models and Services:
Middleware is a software layer that sits between the operating system and the
applications in a distributed system. It provides common services and
abstractions that make it easier to build distributed applications, hiding the
complexity of the underlying network and hardware.
Think of middleware as a translator or glue layer that helps different systems
talk to each other.
Concept Explanation:
Middleware Model Description & Examples
Message-Oriented Communicates through asynchronous messages. Example:
Middleware (MOM) RabbitMQ, Apache Kafka, IBM MQ.
Remote Procedure Call A process calls a procedure on a remote machine as if it were
(RPC) local. Example: gRPC, XML-RPC.
Remote Method OOP version of RPC — calls methods on remote objects.
Invocation (RMI) Example: Java RMI, CORBA.
Object Request Broker Manages communication between distributed objects. Example:
(ORB) CORBA ORB.
Database Middleware Allows access to distributed databases. Example: ODBC, JDBC.
Transaction Processing Manages distributed transactions. Example: IBM CICS, Tuxedo.
Monitor (TPM)
Web Services Uses HTTP/XML/JSON for cross-platform integration. Example:
Middleware SOAP, REST, GraphQL.
Step by Step working:
1. Client application calls a remote procedure (looks like a local call).
2. Client stub packages parameters into a message (marshalling).
3. Message is sent over the network to the server.
4. Server stub unpacks the message (unmarshalling).
5. Server executes the actual procedure.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
6. Result is packed by server stub and sent back.
7. Client stub unpacks the result and returns it to the application.
Real world examples:
Middleware in Action
RPC/gRPC: Used by Google internally for microservice communication (YouTube, Maps).
MOM/Kafka: LinkedIn uses Apache Kafka to process billions of events per day.
JDBC: Your Java banking app uses JDBC to connect to a remote Oracle database.
REST API: Weather apps call OpenWeatherMap REST API for data.
CORBA: Used in defence and telecom systems for inter-language communication.
Services Offered by Middleware
Service Category Description
Communication Message passing, RPC, event notification between processes.
Naming Locating resources by name (DNS-like) regardless of physical
location.
Persistence Storing and retrieving objects/data across sessions (JDBC, JPA).
Security Authentication, authorization, encryption for distributed
transactions.
Transaction ACID properties across distributed databases (2PC protocol).
Management
Concurrency Locking and synchronization across distributed processes.
Fault Tolerance Detecting failures and recovering from them transparently.
Resource Management Load balancing, scheduling of distributed tasks.
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Advantages of Middleware
• Hides heterogeneity — lets Java talk to C++ application transparently.
• Simplifies distributed application development.
• Provides standard services (security, transactions) out of the box.
• Increases portability and interoperability.
• Reduces development time and cost.
Disadvantages of Middleware
• Adds an extra layer — introduces latency.
• Can become a bottleneck if not designed well.
• Complex to configure and maintain.
• Vendor lock-in with proprietary middleware products.
• Debugging across middleware layers is difficult.
Applications and Use Cases:
Domain Middleware Used
Enterprise Integration CORBA, ESB (Enterprise Service Bus)
Web Applications REST, SOAP, GraphQL
Messaging Systems RabbitMQ, Apache Kafka, ActiveMQ
Banking IBM CICS, Tuxedo (TPM)
Mobile Apps Firebase (Google's mobile middleware)
Microservices gRPC, Istio service mesh
Subject – Distributed Computing Faculty – Dr Nazneen Pendhari
Importance / Why Middleware Is Needed:
Without middleware, developers would need to:
• Write low-level socket code for every network communication.
• Handle serialization/deserialization of data manually.
• Implement security, transactions, and naming from scratch.
Middleware abstracts all of this, letting developers focus on business logic
instead of infrastructure complexity.
MODULE 1 — COMPLETE SUMMARY
Topic Key One-Liners
Distributed System Collection of independent computers appearing as ONE system
(Tanenbaum).
7 Issues Heterogeneity, Openness, Security, Scalability, Failure, Concurrency,
Transparency.
4 Goals Connecting Resources, Transparency, Openness, Scalability.
7 Transparency Types Access, Location, Replication, Failure, Migration, Performance, Scaling.
Types Computing (Cluster+Grid), Information (TPS+EAI), Pervasive
(IoT+Wearables).
Cluster vs Grid Cluster=LAN+tightly coupled; Grid=WAN+loosely coupled+multi-org.
NOS vs DOS NOS=each node has own OS; DOS=single OS across all nodes (higher
transparency).
Middleware Software layer between OS and App hiding network/hardware complexity.
Middleware Models RPC, RMI, MOM (async), ORB (CORBA), DB Middleware, TPM, Web
Services.
Middleware Services Communication, Naming, Persistence, Security, Transactions, Concurrency,
Fault Tolerance.