A DETAILED COMPARISON OF CENTRALIZED AND DISTRIBUTED SYSTEMS
INTRODUCTION
The comparison between different network systems debate is relevant to both individuals and organizations. It affects almost everyone who uses the web. It’s at the core of the development and evolution of networks, financial systems, companies, apps, web services, and more.
While all these systems can function effectively, some are more stable and secure than others by design. Systems can be very small, interconnecting only a few devices and a handful of users. Or they can be immense and span countries and continents. Either way, they face the same challenges: fault tolerance, maintenance costs, and scalability.
The internet itself is the world’s largest network. So large in fact that it brings together all these different systems into a vast digital ecosystem. But for most organizations and individuals, using all these systems is not feasible. They have to choose. And you may have to choose, too.
COMPARISON – CENTRALIZED AND DISTRIBUTED SYSTEMS
Here, we will try to understand and compare different aspects of centralized and distributed systems.
- CENTRALIZED SYSTEMS
We start with centralized systems because they are the most intuitive and easy to understand and define.
In case of a centralized network, we have a central network owner. The central network owner is a single point of contact for information sharing. The biggest issue with a centralized network is with a single central owner it also becomes a single point of failure. Further, with a single copy stored with the owner, every instance of access to the resource leads to an access issue with time.
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 client sends a request to a company server and receives the response. For instance, consider a massive server of Wikipedia to which we send our requests and the server responds with the article that we requested. Suppose we enter the search term ‘junk food’ in the Wikipedia search bar. This search term is sent as a request to the Wikipedia servers (mostly located in Virginia, U.S.A) which then responds back with the articles based on relevance. In this situation, we are the client node, wikipedia servers are central server.
Characteristics of Centralized System
- Non autonomous components
- usually homogeneous technology
- Multiple users share the same resources at all time
- single point of control
- single point of failure
Scaling
Only vertical scaling on central server is possible. Horizontal scaling will contradict the single central unit characteristic of this system of a single central entity.
Components of Centralized System
- Node (Computer, Mobile, etc.).
- Communication link (Cables, Wi-Fi, etc.).
Architecture of Centralized System
Client-Server architecture. The central node that serves the other nodes in the system is the server node and all the other nodes are the client nodes.
Limitations of Centralized System
- Can’t scale up vertically after a certain limit – After a limit, even if you increase the hardware and software capabilities of the server node, the performance will not increase appreciably leading to a cost/benefit ratio < 1.
- Bottlenecks can appear when the traffic spikes – as the server can only have a finite number of open ports to which can listen to connections from client nodes. So, when high traffic occurs like a shopping sale, the server can essentially suffer a Denial-of-Service attack or Distributed Denial-of-Service attack.
Advantages of Centralized System
- Easy to physically secure. 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 which he uses(for example, a personal computer) and the company has a similar system which can be modified to suit custom needs
- Dedicated resources (memory, CPU cores, etc.)
- More cost efficient for small systems up to a certain limit – As the central systems take less funds to set up, they have an edge when small systems have to 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 and voila! Node detached.
Disadvantages of Centralized System
- Highly dependent on the network connectivity – System can fail if the nodes lose connectivity as there is only one central node.
- No graceful degradation of system – abrupt 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 have to be done on-the-fly (hot updates) which is difficult and the system could break.
Applications of Centralized System
- Application development – Very easy to setup a central server and send client requests. Modern technology these days do come with default test servers which can be launched with a couple commands. For example, express server, django server.
- Data analysis – Easy to do data analysis when all the data is in one place and available for analysis
- Personal computing
Use Cases
- Centralized databases – all the data in one server for use.
- Single player games like Need For Speed, GTA Vice City – entire game in one system(commonly, a Personal Computer)
- Application development by deploying test servers leading to easy debugging, easy deployment, easy simulation
- Personal Computers
Organizations Using Centralized Systems are; National Informatics Center (India), IBM
- DISTRIBUTED SYSTEMS
Distribution systems is the decentralized network taken to the extreme. It avoids the centralization completely. The main idea for the distributed network lies in the concept that everyone gets access, and everyone gets equal access.
It is a set of tightly coupled programs executing on one or more computers which are interconnected through a network and coordinating their actions. These programs know about one another and carry out tasks that none could carry out in isolation. For instance, consider a Google search system. Each request is worked upon by hundreds of computers which crawl the web and return the relevant results. To the user, the Google appears to be one system, but it actually is multiple computers working together to accomplish one single task (return the results to the search query).
Characteristics of Distributed System
- Autonomous components
- Mostly build using heterogeneous technology
- System components may be used exclusively
- Concurrent processes can execute
- Multiple point of failure
Scaling: Horizontal and vertical scaling is possible.
Components of Distributed System
- Components of Distributed System are,
- Node (Computer, Mobile, etc.)
- Communication link (Cables, Wi-Fi, etc.)
Architecture of Distributed System
- Peer-to-peer – all nodes are peer of each other and work towards a common goal
- Client-server – some nodes are become server nodes for the role of coordinator, arbiter, etc.
- N-Tier architecture – different parts of an application are distributed in different nodes of the systems and these nodes work together to function as an application for the user/client
Limitations of Distributed System
- Difficult to design and debug algorithms for the system. These algorithms are difficult because of the absence of a common clock; so no temporal ordering of commands/logs can take place. Nodes can have different latencies which have to be kept in mind while designing such algorithms. The complexity increases with increase in number of nodes. Visit this link for more information
- No common clock causes difficulty in the temporal ordering of events/transactions
- Difficult for a node to get the global view of the system and hence take informed decisions based on the state of other nodes in the system
Advantages of Distributed Systems
- All the nodes in the distributed system are connected to each other. So nodes can easily share data with other nodes.
- More nodes can easily be added to the distributed system i.e. 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.
- Resources like printers can be shared with multiple nodes rather than being restricted to just one.
Disadvantages of Distributed Systems
- It is difficult to provide adequate security in distributed systems because the nodes as well as the connections need to be secured.
- Some messages and data can be lost in the network while moving from one node to another.
- The database connected to the distributed systems is quite complicated and difficult to handle as compared to a single user system.
- Overloading may occur in the network if all the nodes of the distributed system try to send data at once
Applications of Distributed System
Cluster computing – a technique in which many computers are coupled together to work so that they achieve global goals. The computer cluster acts as if they were a single computer
Grid computing – All the resources are pooled together for sharing in this kind of computing turning the systems into a powerful supercomputer; essentially.
Use Cases
- SOA-based systems
- Multiplayer online games
Organizations Using Distributed Systems are: Apple, Google, and Facebook.
References
- Deinhart, Klaus, et al. "Method and system for advanced role-based access control in distributed and centralized computer systems." U.S. Patent No. 5,911,143. 8 Jun. 1999.
- Andreasson, Martin, et al. "Distributed vs. centralized power systems frequency control." 2013 European Control Conference (ECC). IEEE, 2013.
- Strachan, Neil, and Alexander Farrell. "Emissions from distributed vs. centralized generation: The importance of system performance." Energy Policy 34.17 (2006): 2677-2689.
- Clark, Martin V., et al. "Distributed versus centralized antenna arrays in broadband wireless networks." IEEE VTS 53rd Vehicular Technology Conference, Spring 2001. Proceedings (Cat. No. 01CH37202). Vol. 1. IEEE, 2001.
- de Hoog, Julian, et al. "Electric vehicle charging and grid constraints: Comparing distributed and centralized approaches." 2013 IEEE Power & Energy Society General Meeting. IEEE, 2013.