|
In this article:
- What is Distributed Computing
- Advantages of Distributed Computing
What is Distributed Computing
Distributed computing is a programming methodology or paradigm that aims at designing distributed, open, scalable, transparent and fault tolerant systems. It comes into existence as a result of the use of computers to connect to each other to form a network. Under distributed computing, the processing is decentralized as well as parallel at the same time. It makes use of computers that are connected to each other through a network to complete a given task or attain an objective. It makes use of various types of hardware, operating systems and programming languages and can be said to be similar to computer clusters except that in it, resources are more widely spread in terms of geography.
When using distributed computing, it is important that computers are able to interact with each other in a smooth manner and with the least delays possible. Thus, protocols that work on specific configurations alone should not be used. It is also important to ensure that messages are delivered correctly. Typically, a distributed environment has the capability of sending software from one computer to another though this means a huge amount of load on the limited number of resources available.
Advantages of Distributed Computing
There are some direct advantages of using a distributed model for computing.
- Openness
Openness is a typical property of distributed systems. Owing o this property, all sub-systems in a distributed system are ready to interact with other systems at all times. This is achieved with the help of using Web Services protocols that help extend and scale a distributed system. The openness of a distributed is an advantage over other completely closed and ‘limited-to-itself’ computer system. The following characteristics arise as a result of openness of a distributed system:
- Monotonic nature
An open system does not allow withdrawing something that has been published over the system. Thus, what has been published doesn’t come back.
- Pluralism
An open system can have many overlapping and conflicting instances of the same data spread over the subsystems involved. Thus, there is no central unit that can differentiate as some data being original or ‘true’.
- Unbounded non-determinism
Since the subsystems in a distributed environment may or may not be connected at a time (due to the communication links being broken at any time), it is not possible to calculate how much time it will take to perform an operation or task in advance or before the task is actually executed.
- Scalability
Distributed systems are essentially scalable. This means that it is relatively easier to adapt them to new conditions and make way for changes that may be taking place (such as number of users increasing or decreasing etc.). There are three different aspects of scalability
- Load scalability
A distributed system can easily expand or contract the number of resources that it is using based on the load of work that it is receiving.
- Geographic scalability
A distributed system is capable of achieving the same level of economic operation, usefulness and usability irrespective of the geographical location of its users and how far apart the resources are spread.
- Administrative scalability
A distributed system can easily be used and managed even if the same distributed system (and hence, its resources) are used by many users at a time.
It should be noted that distributed systems may show a fall in performance when trying to achieve scalability and there exists a certain limit to how many processors can be added to the system. When this limit is crossed, the performance would fall instead of improving. So also, a poorly planned distributed system is low in terms of reliability owing to the fact that a failed node would affect all the other nodes in the system. This also makes pin-pointing and correcting problems in the system a difficult task to accomplish.
|