Distributed computing is often used interchangeably with parallel computing even though they mean slightly different things. A distributed system is a collection of independent systems or computers that appears to the user as a single coherent system. Distributed computing studies architecture, algorithms, and models used for managing distributed systems.
The above definition is general enough to include various types of distributed computing systems which are especially focused on unified usage along with aggregation of distributed resources. The fundamental aspect of distributed computing is communication. As distributed systems are composed of more than one computers, it is important to provide some sort of information and data exchange between the nodes.
Distributed System Definition Explained
A distributed system is one in which the components which are located at networked computers communicate and coordinate their actions through message passing. This model of message passing encompasses several communication models. The components located at different geographical location communicate with each other to achieve a common goal.
The significant characteristics of distributed systems are concurrency of components, independent failure of components and lack of a global clock. In the case of distributed computing, a program is first divided into multiple small tasks and each of which is solved by multiple computers.
The message passing is important as the computers connected in the distributed systems need to communicate and there are many alternatives for message passing mechanisms such as HTTP, RPC connectors, and message queues.
The word distributed is similar in terms such as distributed systems, distributed programming, and distributed algorithm which is generally referred to the network of computers where the individual computers are connected to the distributed network which is physically located in the distributed area.
Properties of Distributed Systems
- Distributed systems are tolerant failure
- The architecture and structure of the system including the type of topology (bus, star, ring, mesh), network latency and a number of computers connected in the networks is not known initially.
- The system can change the number of connected nodes and network links anytime according to the requirement.
- The computers connected does not have a full view of the system. Only information which is necessary for an individual node is known to itself.
In most of the cases, parallel computing is considered similar to distributed computing but there is a slight difference between parallel computing and distributed computing. In the case of parallel computing, the processors have access to shared memory whereas in the case of distributed computing, they have access to distributed memory or their own private memory.
Advantages of Distributed Computing
Here are some of the main advantages of distributed computing.
- Lower cost of processing data
- Multiple control center reduces the risk of system breakdown
- The program is not affected if any one of the nodes fails. Only performance is slightly reduced.
- Computers can access the distributed resources through different geographical locations.
- Money is saved as companies can switch to multiple minicomputers instead of mainframe computers.
- The overall system is not affected as there are multiple minicomputers to solve the same problem.
Disadvantages of Distributed Systems
The history of cloud computing has shown us how computer technology is evolved through mainframe computing, grid computing, cluster computing to distributed computing. Here are some of the disadvantages of distributed computing which will help you understand the distributed environment more precisely.
- Security of data due to sharing of resources
- As you know that the computers connect through message passing, there are chances that the messages can be lost in the network system.
- If any distributed system requires more bandwidth than normal, the whole system wires need to be replaced which will be costly.
- Overloading can also become a problem.
- The performance of the whole system will be affected if all the users are accessing the same database at the same time.
In grid computing, computers connect to solve a complex problem and servers or personal computers are connected to run independent tasks and are loosely connected through a low-speed network.
Distributed Computing Architectures
For distributed computing, various hardware and software architectures are used as at low level it is important to connect multiple CPU with some sort of networking. The network can be loosely connected or tightly connected network. At the high level of connection, it is important to connect processes running on CPU with any sort of communication systems.
The basic architectures which fall under distributed computing are:
- Client-Server architecture
- n-tier architecture
- Three-tier architecture
- Peer to Peer architecture
As the name suggests, client-server architecture has multiple clients connects to the server for data access. In the client-server architecture, the request is forwarded to the server and server respond after accessing the request.
Three tier architecture moves the client intelligence to the middle tier which other clients can use it. Most of the web applications today are using three-tier architecture.
Peer-to-peer architecture, there is no special kind of machines which can be served as servers. Peers can serve both as the client as well as the server according to the requirement.
N-tier architectures usually refer to web applications which forward their requests to other enterprise services.
Distributed Computing Examples
Some of the examples of distributed computing are:
- telecommunication networks
- computer networks such as the internet
- some routing algorithms works on distributed computing
- World Wide Web
- Aircraft control system
- Industrial control systems
- distributed rendering in computer graphics
- Multiplayer online games are example of distributed computing