In the present world, distributed computing is an essential part of our life. Anyone who performs a Google search is already using distributed computing.
Distributed Computing is a field of Computer science that studies distributed systems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers, which communicate with each other via message passing. A computer program that runs within a distributed system is called a distributed program.
A distributed system is a set of hardware/software components that are shared among multiple computers, which communicate and coordinate their actions through message passing or events to complete common tasks. Distributed hardware cannot use a shared memory due to being physically separated, so the participating computers exchange messages and data over a network can be through intranet or internet. Messages are transferred using internet protocols such as TCP/IP and UDP. Even though the components are spread out across multiple computers, they are run as one system.
Types of distributed computing
This field is commonly divided into three sub-fields:
- cloud computing
- grid computing
- cluster computing
Cloud computing uses distributed computing to provide users with highly scalable cost-effective infrastructures. Whereas grid computing is based on the idea of a supercomputer with enormous computing power. However, computing tasks are performed in many instances rather than just one.
Cluster computing cannot be differentiated from cloud and grid computing. It is a more general approach and refers to all how individual computers and their computing power can be combined in clusters.
The four different basic architecture models of distributed systems are
- Client-server—Clients contact the server for data, then format it and display it to the end-user. The end-user can also make a change from the client-side and commit it back to the server to make it permanent.
- Three-tier—Information about the client is stored in a middle-tier rather than on the client to simplify application deployment. This architecture model is most common for web applications.
- n-tier—Generally used when an application or server needs to forward requests to additional enterprise services on the network.
- Peer-to-peer—There are no additional machines used to provide services or manage resources. Responsibilities are uniformly distributed among machines in the system. They are known as peers, which can serve as either client or server.
Some of the advantages of distributed computing are that instead of using mainframes many microprocessor computers can be combined to build a high-performance. Large clusters can even outperform individual supercomputers. They are flexible and highly efficient. Another advantage is they are highly scalable.
Distributed systems are using in email and conferencing systems, airline and hotel reservation systems as well as libraries and navigation systems. Social networks, mobile systems, online banking, and online gaming (e.g. multiplayer systems) also use efficient distributed systems.
Comment your thoughts below on distributed computing.