Date of Award


Document Type


Degree Name

Doctor of Philosophy (PhD)


Computer Science

First Advisor

S. S. Iyengar


A distributed system is a set of cooperating computers (processes) communicating with each other to achieve a common goal. They are broadly classified as centralized and decentralised systems. In a centralized system, a single computer plays the role of central coordinator and controls all the system activities. Whereas in a decentralized system, all the cooperating processes have an equal role to play, therefore solutions to problems involve instructing all the processes and coordinating their actions. Although a centralized system facilitates program development, it has serious drawbacks. If the coordinator fails, the system effectively breaks down. Also, the coordinator can become a performance bottleneck. On the other hand, a decentralized system does not suffer from these shortcomings, but program development is more difficult. In this research, we develop a paradigm for a distributed system that provides the view of a centralized system even though the underlying system is decentralized. Special processes called agents reside on all participating computers. One of the agents acts as a leader and coordinates activities of other agents. Agents communicate through a fault-tolerant agent-to-agent protocol. The paradigm defines a one-shot computation, a construct that enables the expression of programs in a simulated centralized environment, thus making program development easier. Programs, written in terms of one-shot computations that are encapsulated in templates which hide all the lower level details from the programmer. We show that every computation can be expressed as a one-shot computation. The proposed paradigm has a high degree of fault-tolerance. It tolerates up to $n-1$ failures in a system of n processors. A prototype has been implemented using PVM.