A distributed system is a system, which consists of multiple autonomous computers, who communicate with each other through the computer network. These computers interact with each other, so that they can achieve a common set goal. Any computer program, which runs in a distributed system is known as “distributed program”, whereas “distributed programming” refers to the process of writing any such programs. Distributed computing can also refer to the use of distributed system to solve computational problems. To make things simpler, a problem is divided into a number of tasks and each of the task is solved by one computer.
What is Distributed Computing
When one refers to the term ‘distributed computing’, either in ‘distributed system’ or in ‘distributed programming’ or ‘distributed algorithm’, it refers to computer networks, where individual computers are physically distributed within certain geographical area. These terms now have a wider meaning and refer to autonomous processes, which run on the same physical computer and communicate with each other by passing messages. It is very difficult to define distributed system, but each of these systems, do have certain properties, which are a part of the systems. They are:
* Although there are a number of autonomous computational entities, each of these have their own local memory.
* The different entities, who are apart of the system, communicate between each other by passing messages.
* The system should be able to tolerate problems or failures in individual computers.
* Often the structure of the system, inclusive of the types of network topologies, number of computers, etc. is not known in advance. There can be different kinds of computers and network links, which can be a part of the system. At the same time, there are chances of the system changing completely or partially, during the execution of a distributed program.
* A disadvantage of the system is, that each node or computer in the system has only limited and incomplete view of the entire system and each computer is able to view only part of the input.
Distributed Computing Environment
Distributed computing environment, acronym-ed as ‘DCE’, is an environment, which was developed in the early 1990’s by a consortium. The framework and toolkit for developing client/server applications is supplied by distributed computing environment. Distributed computing environment is said to be a gigantic step in direction of standardization of architectures, which were initially dependent on the manufacturer. Like was the case with OSI model, DCE also did not gain success, however, the underlying concept prevailed.
Distributed Computing Principles Algorithms and Systems
When we start looking for distributed computing algorithms, there is a major confusion, which arises between ‘concurrent computing’, ‘parallel computing’ and ‘distributed computing’. They overlap and making a clear distinction between them is a difficult task. Same system can have characteristics of parallel as well as distributed system, as the processors in a typical system often run concurrently. Parallel computing is often looked upon as a particular tightly coupled form of distributed computing and distributed computing is looked upon as a loosely coupled form of parallel computing. The basic criteria, which can be used to make the distinction is access to memory. In parallel computing, all processors share the memory, whereas in distributed computing, each processor has its own private memory. The distributed computing projects, which use message-passing models have certain characteristics.
* The designer of the algorithm is the only one, who is allowed to choose the computer program and all the computers run the chosen programs.
* It is necessary, that the system works correctly, irrespective of the structure of the network.
* There is a commonly used model, which is a graph with one finite-state machine per node.
* When one talks of distributed computing algorithms, the computational problems are typically related to graphs.
* More often than not, the graph, which describes the structure of the computer network is the problem instance.
Let’s understand this better, with the help of an example.
Example of Distributed Algorithm
The graph G is a graph of structure of the computer network. There is one computer, which is located on each node of G and there is single communication link for each edge of G. In the beginning, each computer, who is a part of the graph knows only about its immediate neighbors in the graph. In order to discover each other, the computers have to exchange messages with each other. This will also help them to discover more about the structure of graph G. It is mandatory, that each computer produces its own color as output. The main focus of this algorithm is to coordinate the operation of any arbitrary distributed system.
There are various distributed computing software, that have now been developed. Distributed computing is used in various fields ranging from Biology and Medicine, to Earth Sciences, Mathematics (but naturally), Physics and Astronomy, as well as Multi-Applications projects. There are also a number of upcoming projects, in the field of artificial intelligence, as well as non-specialized projects, some of which are also based in the field of plasma technology. (Source)