Table of Contents
In this article, you’ll learn about What is a Distributed System, Difference between Centralized and Distributed Systems, Distributed Tracing and Benefits, Drawbacks, and Risks of Distributed Systems.
What is a Distributed System?
A distributed system is a collection of autonomous computers, interconnected by a network, that cooperate to achieve a common goal. These computers, often referred to as nodes, communicate and coordinate their activities to provide a unified service or application. While they may appear as a single, cohesive entity to the user, they are actually composed of multiple independent components that work together seamlessly.
Difference between Centralized and Distributed Systems
Feature | Centralized System | Distributed System |
---|---|---|
Control | Single, central computer | Multiple, independent nodes |
Failure Tolerance | Vulnerable to single-point failures | Resilient to failures, as multiple nodes can take over |
Scalability | Limited, as the central computer becomes a bottleneck | Easily scalable by adding more nodes |
Complexity | Simpler to manage | More complex due to network communication and coordination |
Cost | Lower initial cost | Higher initial cost due to multiple computers and networking infrastructure |
Examples | Mainframe computers, traditional client-server architectures | Cloud computing, web applications, blockchain networks |
Characteristics of Distributed System
- Resource Sharing: It should allow using any Hardware, Software, or Data anywhere in the System.
- Openness: It deals with Extensions and enhancements in the system (i.e., How openly the software is developed and shared with others)
- Concurrency: It is inherently present in Distributed Systems, that deals with the same activity or functionality that can be performed by different users who are at remote locations. Every local system has its independent Operating Systems and Resources.
- Scalability: It increases the scale of the system as a number of processors communicate with more users by accommodating to improve the responsiveness of the system.
- Fault tolerance: It is concerned about the reliability of the system if there occurs a failure in the Hardware or Software, the system continues to function correctly without degrading the performance the system.
- Transparency: It hides the complexity of the Distributed Systems to the Users and Application programs as there should be privacy in every system.
- Heterogeneity: Networks, computer hardware, operating systems, programming languages, and even developer implementations may be different and varied among the dispersed components of a system.
Advantages of Distributed System
- Applications in Distributed Systems are Inherently Distributed Applications.
- Information in Distributed Systems is shared among geographically distributed users.
- Resource Sharing (Autonomous systems can share resources from remote locations).
- It has a better price-performance ratio, as well as flexibility.
- It has shorter response time and higher throughput.
- It has higher reliability and availability against component failure.
- It has extensibility so that systems can be extended in more remote locations and also incremental growth.
Disadvantages of Distributed System
- Relevant Software for Distributed systems does not exist currently.
- The reason security has a problem due to easy access of data is that the resources are shared on multiple systems.
- Saturation in Networking will lead to an obstacle in data transfer; if the network has a lag, then a user will have a problem accessing data.
- Compared with a single-user system, the database associated with distributed systems is more complicated and more difficult to manage.
- If each node of a distributed system attempts to send data in parallel, then the network would be severely congested.
Use cases of Distributed System
- Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.
- Information Society: Search Engines, Wikipedia, Social Networking, Cloud Computing.
- Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
- Entertainment: Online Gaming, Music, youtube.
- Healthcare: Online patient records, Health Informatics.
- Education: E-learning.
- Transport and logistics: GPS, Google Maps.
- Environment Management: Sensor technologies.
Challenges of Distributed Systems
Although distributed systems come with many benefits, it also comes with associated problems that have to be tackled. Such problems include:
- Network latency: The communication network in a distributed system may implicate latency, thereby affecting the performance of the system.
- Distributed coordination: In a distributed system, coordination among the nodes is inherently harder because of its inherent distributed nature.
- Security: The threat of security in the distributed system is higher than that of centralised systems due to the distributed nature of the system. Data consistency: Maintaining data consistency across multiple nodes in a distributed system can be challenging.
Architectures of Distributed Systems
There are various architectures for distributed systems, each with its own strengths and weaknesses:
- Client-server: This is a classic architecture where clients send requests to a central server, which processes the requests and returns results.
- Peer-to-peer (P2P): In a P2P network, nodes communicate directly with each other, without the need for a central server.
- Service-oriented architecture (SOA): SOA involves breaking down applications into reusable services that communicate through well-defined interfaces.
- Microservices architecture: As mentioned earlier, microservices are a specific architectural style within distributed systems that emphasizes modularity and scalability.
- Event-driven architecture: This architecture relies on events to trigger actions and communicate between components.
The choice of architecture depends on factors such as the application’s requirements, scalability needs, and performance constraints. In many modern systems, a combination of these architectures is used to leverage the benefits of each.