History
- Distributed systems did not start suddenly. They evolved gradually from networking developments.
- The true distributed system era began in the late 1970s and early 1980s with the development of LANs and client-server computing.
- A brief history of the development of a distributed system is as follows –
- Early Foundations (1965 – 1975) : This period laid the foundation of distributed computing and includes-
- Mainframe computers were dominant.
- ARPANET was developed in 1969.
- Beginning of computer networking.
- Early Foundations (1965 – 1975) : This period laid the foundation of distributed computing and includes-
-
- Emergence of Distributed Systems (Late 1970s – 1980s/1975 – 1989) : This is considered the real birth period of distributed systems and mainly includes –
- The development of LAN (Local Area Networks)started.
- Introduction of Ethernet (1973, widely used in the 1980s.)
- TCP/IP protocol adoption (1983).
- Client-Server architecture introduced
- Emergence of Distributed Systems (Late 1970s – 1980s/1975 – 1989) : This is considered the real birth period of distributed systems and mainly includes –
-
- Internet-Based Distributed Systems (1990s/1990 – 2000) : In this time period, distributed systems became global and included –
- The World Wide Web was invented in 1991.
- Web servers and browsers were developed
- Distributed databases
- Middleware technologies (CORBA, RMI)were invented.
- Internet-Based Distributed Systems (1990s/1990 – 2000) : In this time period, distributed systems became global and included –
-
- Cluster & Grid Computing Era (2000 – 2010): In this time period, the following techniques are included –
- High-performance distributed computing.
- Scientific simulations.
- Data centers
- Cloud & Modern Distributed Systems (2010 – Present) : In this time period, the following techniques are included –
- Cloud computing (AWS launched in 2006, growth after 2010)
- Microservices architecture
- IoT systems
- Blockchain
- Edge computing
- Cluster & Grid Computing Era (2000 – 2010): In this time period, the following techniques are included –
Introduction
- A distributed system was developed as a solution to overcome the limitations of centralized systems, such as high cost, limited scalability, and a single point of failure.
Definition
- A distributed System is a system in which multiple independent computers communicate and coordinate with each other through a network to achieve a common goal.
- A distributed system is a collection of autonomous computers connected by a network that communicate and coordinate their actions by passing messages.
Characteristics
- A distributed system is a collection of networked computers that work together as a single system or appear to users as a single unified system.
Advantages
- Resource Sharing – This system shares hardware, software, and data.
- Concurrency – This system has multiple processes running simultaneously.
- Scalability – This system can be expanded by adding more systems.
- Fault Tolerance – The system continues even if one node fails.
- Transparency – This system appears as a single system to users.
Disadvantages
- Although distributed systems have many advantages, they also have several disadvantages. These are –
- Complexity
- Distributed systems are complex to design and manage because multiple computers are connected, and hence, debugging is difficult because errors may occur on different machines.
- Network Dependency
- This system depends heavily on network connectivity. If the network fails, communication stops, and performance decreases with a slow network.
- Security Issues
- Since in this system, data is transmitted over networks hence higher risk of Hacking, Unauthorized access, and data breaches.
- Data Consistency Problems
- Maintaining the same data on multiple machines is difficult. Synchronization issues may also occur. Data replication can cause inconsistency.
- Fault Detection is Difficult
- In a distributed system, it is hard to detect which system failed among multiple systems. The failure of one node may affect others. Troubleshooting requires advanced tools.
- High Initial Cost
- Since it uses multiple systems, networking equipment, and skilled administrators, it finally incurs high costs.
- Overhead of Communication
- In this, communication between nodes takes time, message passing increases the delay, and network congestion may occur.
- Software Complexity
- It requires special distributed operating systems or middleware, and also, programming is more complicated than in centralized systems.
- Complexity
Classification of Distributed System
Distributed systems can be classified into various categories – based on architecture and functionality.
(A)Based on the Architecture, a distributed system may be –
(a) Client-Server(CS) Architecture
- This architecture may consist of a 2 – tier or 3 – tier or Distributed Collaborative Enterprise Architecture.
- Example: Banking System
(b) Peer-to-Peer (P2P) Architecture
- P2P architecture has no central server or has a decentralized structure.
- In P2P, each node acts as both client and server.
- It is comparatively less secure than client-server architecture.
- It is less costly than client-server architecture.
- For example: BitTorrent network.
(B) Based on the number of Tiers, a distributed system may be –
-
Multilayer or Tiers of a distributed system provide better scalability, easy maintenance, improved security, separation of concerns, etc.
(a) 2 -Tier Architecture
- This architecture consists of two layers/tiers – Client and Database Server.
- Here, the Client layer consists of the presentation and business logic layer, and the Database Server layer manages the database operations.
-
It has a simple design and easy implementation.
-
It has limited scalability and less security compared to a 3-tier architecture.
- For example, a desktop application connected to the database
(b) 3 -Tier Architecture
- This architecture consists of three layers/tiers –
- Presentation layer (Client): It includes-
- User interface
- Displays data to users
- Example: Web browser, mobile app
- Application layer/Business Logic Layer (Server): This layer is responsible for –
- Processes user requests
- Implements rules and calculations
- Data/Database layer(Database Server) : This layer is responsible for –
- Stores and retrieves data
- Example: MySQL, Oracle
- Presentation layer (Client): It includes-
-
This architecture has better scalability, improved security, and easy maintenance than the 2-tier architecture.
- For example, this architecture normally exists in various typical web applications (Browser → Web Server → Database)
(c) N-Tier Architecture
- N-tier architecture is a client-server type of distributed system design/architecture in which an application is divided or consists into multiple layers(tiers), each performing specific tasks.
- The multiple layers or tiers may be-
- Presentation layer (Client)
- Application layer/Business Logic Layer (Server)
- Data/Database layer(Database Server)
- API layer
- Security layer
- Cache layer
- Each tier performs a specific function and communicates with other tiers.
- Here, “N” means any number of layers (more than two or three).
- For example, this system architecture is normally used in large enterprise systems such as the Online Banking System, in which the browser (Presentation), Banking Server (Business logic), Database server (Data storage), and many more.
(C) Based on the Application Type, a distributed system may be –
(a) Distributed Computing Systems
- It may be –
- Grid computing
- Cloud computing
(b) Distributed Information Systems
- It may be –
- Banking networks
- Airline reservation systems
(c) Distributed Embedded Systems
- It may be –
- IoT systems
- Smart home devices
Distributed Computing Environment (DCE)
- A Distributed Computing Environment (DCE) is a software framework that allows computers in a distributed system to communicate and share resources in a secure and organized manner.
- DCE was developed by the Open Software Foundation (OSF) in the early 1990s.
- It provides tools and services to support distributed applications.
- Objectives of DCE
- It provides transparency in distributed systems.
- It enables secure communication.
- It supports remote procedure calls.
- It provides directory and naming services.
- DCE Architecture
DCE architecture consists of several components:-
-
- Remote Procedure Call (RPC)
- It allows a program to execute a function on another machine.
- It makes remote calls look like local calls.
- For example, the client calling function on the server.
- DCE Services
- Directory Service (Computing DS)
- It stores information about resources.
- It helps locate services in the network.
- Security Service
- It provides authentication and authorization.
- It protects data from unauthorized access.
- Time Service
- It synchronizes the clocks of distributed systems.
- Distributed File Service (DFS)
- It enables file sharing across multiple systems.
- Directory Service (Computing DS)
- Remote Procedure Call (RPC)
The simple DCE Architecture Flow: Client → RPC → DCE Services → Server.
Distributed Collaborative Enterprise Architecture (DCEA)
- DCEA is a complex distributed environment architecture used in large organizations where multiple distributed systems work together and integrate business processes across departments and locations.)
Object Request Broker (ORB)
- ORB is the major component of DCEA.
- An Object Request Broker (ORB) is middleware that allows distributed objects to communicate with each other, regardless of location.
- ORB is part of CORBA (Common Object Request Broker Architecture).
- Working of ORB
- Client sends a request to ORB.
- ORB finds server object.
- ORB forwards the request.
- The server processes and returns the result.
- Features of ORB
- It supports location transparency.
- It is language independence.
- It is platform-independent.
- It helps in object communication.
- Example
- Implemented in the Banking system, where client application requests account details – ORB connects to the remote server object – Server sends response to the client application.
![]()
0 Comments