What is Distributed Computing

The field of computer science that includes the study of distributed systems is known as distributed computing. And its main goal is to create a network of distributed computers and make them a single component or computer. The distributed computer system is the software whose components are distributed over multiple computers. Those computers can be geographically near or far; a local area network connects nearby computers, and a wide area network connects distant computers.

There can be multiple computers in the distributed system, including personal computers, workstations, mainframes, microcomputers, etc. These distributed computers interact with each other to achieve a common goal. Internet is a common example of a distributed system.

Working of Distributed Computing

The distributed system connects many hardware and software to perform different tasks. Many computers can work on the same process. All the computers interacting with one another share the resources under some protocols. Distributed systems manage these computers so that only legal computers can access the resource, and there cannot be any unauthorized access to any single resource.

It manages the number of computers in the system so they can work faster and detects and handles errors present at or arising from any component of the system. The system resolves the errors so that the network does not remain fault-tolerant and fails.

Advantages of Distributed Computing

Some of the main advantages of distributed computing are as follow:

  1. Stability or Scalability: Distributed systems are stable systems or networks, and all the computers are independent of others. We can easily add or remove any number of machines or computers to expand and shrink the network.
  2. More Efficient: The components are independent and capable of performing and solving problems that save a user’s time and make the system more efficient.
  3. Cost-Effective: The distributed system is more cost-effective than mainframe computers. It consists of multiple computers, and their implementation is much more costly, but in the long run, its managing cost is much less than the mainframes computers.
  4. Redundancy: Several computers in the distributed system can perform the same tasks and provide the same services. So, if there are any faults with one computer or if one of them is not available, we can use other computers to do the same task. One more advantage of these independent computers is that any computer is malfunctioning; it does not affect the other computers in the network and can continue functioning.
  5. Low Waiting Time: A user can use nearby computers to perform the task, and the distributed system will take all the traffic and give a fast response accordingly. This reduces the latency or results in low latency.

Drawbacks of Distributed Computing

There are some drawbacks of distributed systems. And some of them are described below:

  1. Costly: A distributed system consists of distributed computers; this makes its implementation cost significantly higher. Also, the maintenance cost in building such infrastructures for the distributed system is high and continuous sharing of information and data between these computers increases the expenses.
  2. Security Issues: This system has multiple computers and workstations. It is quite difficult for a user to take care of data on multiple computers. The user's data is stored at different workstations, so it becomes necessary for a user to ensure that their data is securely stored in each computer. In contrast, it is quite easy to maintain the data in the centralized computing system.
  3. More Complex System: It is very difficult to maintain, implement, and troubleshoot all the components to make the distributed system complex. All hardware and software included in the distributed system must be well managed and handled while communicating, sharing, and security.
  4. Overhanging: When all the workstations try to operate simultaneously, increase the computing time. There is no doubt that we will get the desired result, but it will increase the system’s response time.
  5. Errors in the system and network: The distributed system suffers from many network and system errors. Any network error leads to a connection failure, and the information or data can be lost or delivered to the wrong computer. Detecting and handling such errors is difficult in this system, as the data is distributed across different channels and nodes. Also, troubleshooting the network is quite difficult because of the same reason.

Types of Distributed Systems

Based on the architecture of the distributed system, we can classify them into the following categories:

  1. Client-server system: The client directly interacts with the server in a client-server system. The client can directly fetch data from or send the task to the server, and the servers directly send the response to the client or perform the task. The client can use the available resource and modify them accordingly.

For example, approximately all social media platforms and companies like Meesho, Amazon, and Flipkart use client-server-based systems. They store the user’s data on the server, and the user can access their data and modify them whenever they want.

  1. Three-tier system: There is one more middle tier between the client and the server known as the agent tier or middle tier, and the data is stored in the middle tier instead of at the server. This is mostly used in web applications, and user can access their data through web applications.

The cloud storage system is an example of a three-tier system and is capable of storing your files and documents. You can access your files from anywhere using the cloud storing system. Also, it releases you from storing and managing your data on your local machines.

  1. Multi-tier or N-tier system: The system is separated into multiple or n number of tiers. There are three main layers of each application, one is the presentation layer, the second is the application layer, and the third is the data layer where all the data is stored. Application and Data layers require more security than the presentation layer. Each layer can interact with multiple presentation layers and backend layers in this model. Most companies prefer n-tier computing systems as they want their business idea to interact with multiple layers.

For example, we get an option to share the same post on different social media platforms is because the companies collaborate and create a network of an n-tier computing system. The post gets automatically shared on different presentation layers.

  1. Peer-to-Peer system: In the peer-to-peer model, each node can act as the client or server based on the request processing on their local memory. They share the data among themselves through dedicated channels or wireless under certain protocols. They all interact to give a better result and share the computation power.

Napster, Skype, Bitcoin, Kazaa, and Dat are common examples of peer-to-peer networks.