Distributed System vs Centralized System 🤔

Madusanka Nipunajith
The Modern Scientist
7 min readOct 6, 2022

What is Distributed System? & what is a Centralized system?

In this article, I have explained both systems, their pros and cons, and a comparative summary. Furthermore, I am planning to separate this article into two parts (this is the first part) and I have given a real-world example of the distributed system in the second part.

1. Distributed system

Distributed System

A distributed system also known as distributed computing, is a system with multiple components located on different machines (sometimes called hosts) that communicate and coordinate actions in order to appear as a single coherent system to the end-user. Multiple nodes are contained in a distributed system that is physically separate but linked together using the network. Hence, we can say that a distribution is a subset of network computing. In a distributed system, all the nodes in this system communicate with each other and handle processes in tandem. Each of these nodes contains a small part of the distributed operating system software.

During the late 1980s, distributed system architecture was replaced rather than centralized, multiprocessor parallel systems due to the availability of powerful desktop computers and faster network connections to powerful desktop computers.

Mainly we can categorize a distributed system into some parts according to their architecture. They are,

  • Client-server
  • Peer to peer
  • 3-tier
  • etc.

Client-Server Systems

Client-Server

In client-server systems, the client requests a resource, and the server provides that resource. A server will serve multiple clients at the same time while a client is in contact with only one server. That is a very interesting part of the client-server system. Both the client and server usually communicate via a computer network (internet connection etc.) and so they are a part of distributed systems. Furthermore, Input at the client is committed back to the server when it represents a permanent change.

Peer-to-Peer Systems

Peer to Peer

The peer-to-peer systems contain nodes that are equal participants in data sharing. All the tasks are equally divided between all the nodes. The nodes interact with each other as required to share resources. This is also done with the help of a network. Peers can serve both as clients and as servers. Examples of this architecture include BitTorrent and the bitcoin network.

3-Tier

3-Tier

In software engineering, multitier architecture or multilayer architecture is a client-server architecture in which presentation, application processing, and data management functions are physically separated. Here we are using 3 layers. They are the presentation layer, business layer (application layer), and data layer. There is a middleware between the presentation layer and the application layer which establishes the connection between layers. The connection can be either vertically or horizontally.

A host in a distributed system 💡

A computer that hosts some part of a distributed system is referred to as a host. A host is a computer that executes the components which form part of a distributed system. So there are components (functional), NOS (network operating system), Hardware parts, and middleware stored in a host. When it comes to middleware, it does a huge role in the system. Let us discuss some roles of middleware in a host.

Roles of middleware

  • provide access to components for requesting services from other components.
  • establish the connection between components.
  • act as a middle layer between components and the operating system.

Let us discuss some requirements of a distributed system and explain them in advance

  • Resource sharing
  • Openness
  • Concurrency
  • Scalability
  • Fault Tolerance
  • Transparency

2. Centralized system

Centralized System

Centralized systems are systems that use client/server architecture where one or more client nodes are directly connected to a central server. This is the most commonly used type of system in many organizations where the client sends a request to a company server and receives the response. Computer systems started as centralized systems and after that, they evolved toward distributed systems. when it comes to centralized systems, the processing/computations are done on a single machine.

The concept of a centralized system has a major hub or hubs which peers communicate with. This system allows peers to be freed from certain efforts, giving them to the central body. Maintaining easily accessed and accurately updated lists of information on all clients is one way in which a central body shine.

If an organization needs an easy-to-manage system that allows it to exert a great deal of control over workloads and user access, a centralized network makes the most sense. General-purpose computer system: one to a few CPUs and several device controllers that are connected through a common bus that provides access to shared memory. A personal computer is a good example of a centralized system.

Compare centralized and distributed systems

By looking at advantages and disadvantages, we can compare both systems easily. we cannot say this is good and this is bad. Because it might change due to the context of the scenario. First, Let’s discuss the advantages of both systems and then move on to the disadvantages.

Advantages of the distributed systems

  • All the nodes in the distributed system are connected with each other. Therefore, nodes in the system are able to easily share data with other nodes.
  • More nodes can easily be added to the distributed system (it can be scaled as required.)
  • Failure of one node does not lead to the failure of the entire distributed system. Other nodes can still communicate with each other even though some nodes have been failures.
  • Resources like printers are able to be shared with multiple nodes rather than being restricted to just one.
  • Distributed systems are extremely efficient because workloads can be broken up and sent to multiple machines.

Advantages of the centralized systems

  • Easy to secure physically. It is easy to secure and service the server and client nodes by virtue of their location.
  • Smooth and elegant personal experience — A client has a dedicated system that he uses (personal computers) and the organization has a similar system that can be modified to suit customer needs.
  • Dedicated resources (memory, CPU cores, etc.)
  • More cost-efficient for small systems up to a certain limit — As the central systems take fewer funds to set up, they have an edge when small systems must be built.
  • Quick updates are possible — Only one machine to update.
  • Easy detachment of a node from the system. Just remove the connection of the client node from the server.

Disadvantages of the distributed systems

  • A distributed system must decide which jobs need to run when they should run and where they should run. Schedulers ultimately have limitations, leading to underutilized hardware and unpredictable runtimes. (Scheduling challenges)
  • If your system is distributed more widely, the more latency you can experience with communications. This often leads to teams making tradeoffs between availability, consistency, and latency. (Latency challenges)
  • Gathering, processing, presenting, and monitoring hardware usage metrics for large clusters is a significant challenge. (Observability challenges)
  • It is difficult to provide adequate security in distributed systems because the nodes, as well as the connections, need to be secured. (Security challenges)
  • The database connected to the distributed systems is quite complicated to handle as compared to a single-user system. (DB connection challenges)

Disadvantages of the centralized systems

  • Centralized systems are highly dependent on network connectivity — A system can fail if the nodes lose connectivity as there is only one central node.
  • No graceful degradation of the system — abrupt(unconscious) failure of the entire system.
  • Less possibility of data backup. If the server node fails and there is no backup, you lose the data straight away.
  • Difficult server maintenance — There is only one server node and due to availability reasons, it is inefficient and unprofessional to take the server down for maintenance. So, updates must be done on the fly(hot updates) which is difficult and the system could break.

Comparative summary

Comparative Summary

A large distributed computing system

Since this article is too much lengthy, I decided to create a separate article under this topic. Because the content under this topic (A large distributed computing system) describes an example concerning the distributed system but this article is only focusing on the difference between centralized and distributed systems. Furthermore, if you are interested to read the rest of the content, you can read it by using the below post link.

--

--

Madusanka Nipunajith
The Modern Scientist

Undergraduate at UCSC, Former SAP Team Leader, Former Math Instructor, Former SE (Intern) at WSO2