Distributed Systems - An overview
What are Distributed Systems?
Distributed Systems / Distributed Computing utilize multiples ‘nodes’ (other computers) at various locations, to work on a single common program. The processes in a Distributed System are able to communicate with each other. To the end user all of this appears as one single computer.
For example, this web page being rendered on this device, for the user to read is due to Distributed Systems. This web page is originally present on the cloud. Upon request, the contents are loaded in the browser.
Why do we need Distributed Systems?
To understand why the need for Distributed Systems rose, we need to first understand what Centralized Systems are. As the name suggests, Centralized Systems are where all the computation takes place on a single central ‘node’. Processes have to connect to this ‘node’ or the central server to access data. A Centralized System works fine till the number of users accessing the central node are limited to a certain extent. Once the number of users start to grow, Centralized Systems begin to show their limitations. The response time increases for each user, bottleneck situations begin to occur, etc.
Even if we try to avoid bottleneck situations in Centralized Systems, by increasing the computational power of our central node (vertical scaling), at some point we will need a second node (horizontal scaling).
Centralized Systems also possess another flaw. The central node controls everything, and hence also becomes a point of failure. If the central node goes down, the entire network is rendered useless. The only way to avoid this issue is to store data and perform computation on other nodes too. This ensures data is available to any process that might need it.
Distributed Systems ensure better scalability, as we can horizontally scale as much as we need to. They also ensure better availability as failure of one single point does not result in the data being inaccessible to everyone. The copy of the data is stored on multiple nodes. Distributed Systems are better suited higher workload.
What are the types of Distributed Systems?
Client-Server Architecture
In this architecture, the clients request for services or data, and the server(s) provide it. The most common example of this architecture is people accessing websites. They enter the URL of the website. This URL locates the website on the internet. The DNS server responds with the IP address of the web server where this site is present. The browser sends an HTTPS request to the server. The server then sends files required to render the website on the browser.
Source : https://en.wikipedia.org/wiki/Client–server_model
Peer-to-Peer Architecture
In P2P architecture, the nodes share resources with each other without needing a central admin node. Each node is a client as well as a server. File sharing and content distribution platforms are some real world examples where this architecture is employed.
Source : https://en.wikipedia.org/wiki/Peer-to-peer
Three-Tier Architecture
Three-Tier Architecture involves structuring software into the User Interface, Application Tier, and Data Tier. The User Interface collects data from the user, displays necessary information. The Application Tier is responsible for processing of the information collected by the User Interface. The Data Tier is responsible for the storage and management of the data that the Application Tier sends or asks for. Many banking platforms use this Three-Tier Architecture.
Source : https://vfunction.com/blog/3-tier-application/
Microservices Architecture
This architecture allows a large complex program to be broken down into multiple segments, where each segment has a specific task to perform, and the segments can communicate with each other. Each of these segments can be deployed and scaled independently. An example of this type of architecture would be Netflix. They utilize the AWS microservices architecture.
Source : https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices
Issues caused by Distributed Systems:
- Consistency: Since the data availability is high, it is harder to keep it consistent across so many nodes. It may happen that data is updated at one particular node but not on others.
- Partitioning: The data needs to be stored at multiple locations, so it has to be partitioned and then sent. Partitioning and later combining it correctly needs complex algorithms.
- Security: Since data is so readily available at every node, security of the data becomes even more important.
Real world examples of Distributed Systems:
- Banks utilize Distributed Systems to provide financial services like transactions and real time data monitoring.
- Telecommunication industry relies on Distributed Systems, to store and process the vast amount of data.
- Scientific projects that demand high processing power like simulation of space, or protein molecules, also employ Distributed Systems.
Acknowledgements
We would like to express our gratitude to Prof. (Dr.) Sonali Antad, at Vishwakarma Institute of Technology, for their insights and mentorship throughout the study of Distributed Systems.
This blog was written by Aanya Jain, Abhijeet Bharate, Apoorv Patil, and Arpit Verma, sophomores at Vishwakarma Institute of Technology, under the guidance of our mentor, Prof. (Dr.) Sonali Antad.
References
- Kev Zettler, "What is a Distributed System?", Atlassian, [What is a distributed system? | Atlassian].
- Phill Powell, Ian Smalley, "What is Distributed Computing", IBM, 12/07/2024, [What is distributed computing? | IBM].
- Michael Chiaramonte, "What is a 3-tier application architecture? Definition and Examples", vFunction, 13/05/2024, [Understanding the architecture of a 3-tier application].
- Microsoft, "Microserives architecture design", [Microservices architecture design - Azure Architecture Center | Microsoft Learn].





insightful
ReplyDeleteGreat overview of distributed systems
ReplyDeleteExcellent overview, clear and concise. I always find distributed system impressive due to its horizontal scalability.
ReplyDeleteGreat research done on distributed systems, especially its types!
ReplyDeletehelpful!
ReplyDeleteExcellent work great overview.
ReplyDeletevery well written!!
ReplyDeleteGreat work!!!
ReplyDeleteGreat work 👍
ReplyDeletethis is really insightful! very well-explained!
ReplyDeleteVery informative!
ReplyDeleteinsightful
ReplyDeleteInsightful 💡
ReplyDeletethis is really insightful!!
ReplyDeleteGreat information on Distributed Systems !
ReplyDeleteGreat blog! I found the explanation of distributed systems very insightful!
ReplyDeleteGreat work, very insightful!
ReplyDeleteActually very niceee
ReplyDeleteGreat work👍 well written and explained thoroughly. Keep up the good work.
ReplyDeleteA good thorough explanation of distributed systems. Good work and keep it up.
ReplyDeleteExcellent Work !
ReplyDeleteVery informative, explanation is very good.
ReplyDeleteVery Insightful !!
ReplyDeleteYou guys done great research on Distributed Systems. It's very insightful!!
ReplyDeleteVery insightful and well-explained! The breakdown of distributed systems was really easy to grasp.
ReplyDeleteWell Exaplained
ReplyDelete