A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal. In other words, a distribution system consists of a collection of autonomous computers, connected through a network and distributed middleware, which enables computers to coordinate their activities and to share the resources of the system, so that users perceive the system as a single integrated computing facility.

There are three basic components of a distributed system. These are concurrency of components, lack of a global clock, and independent failure of components. Distributed system is a group of networked computers, pursuing the same goal. Any distributed system can be used as parallel or distributed as the case may be; where the processors in each case of a typically distributed system run concurrently in parallel. In distributed computing system, each processor has its own private memory and information is exchanged by passing messages between the processor.


There are a certain major characteristics of distributed system as:

  • RESOURCE SHARING: It is the ability of the system to use any hardware, software or data anywhere in the system. The resource manager controls access, provides naming scheme and controls concurrency among the system tools. The resource sharing model depicts the correct resources provided and how they are used for interaction among each other
  • OPENNESS: It is concerned with extension and improvement of distributed system and how new components are integrated to existing ones.
  • CONCURRENCY: Components in distributed system are executed in concurrent processes. Moreover, the integrity of the system is violated if concurrent updates are not coordinated.
  • SCALABILITY: It is the adaption of distributed system to accommodate more users and respond faster. This is usually done by adding faster processors. In a distributed system, components are not required to be changed when scale of the system increased.
  • FAULT TOLERANCE: Fault tolerance in distributed system is achieved by recovery and redundancy processes and is quite competitive.
  • TRANSPARENCY: Distributed system should be perceived by users and application programmers as a whole rather than a collection of cooperative components. This is transparency of a distributed system.


  • SHARING DATA: User at one site has a provision to access data residing at other sites.
  • AUTONOMY: System is autonomous as due to sharing data by means of data distribution, each site is able to retain a degree of control over data that is stored locally called as local autonomy.
  • AVAILABILITY: If one site fails in distributed system, the remaining sites may be able to continue operating.


  • SOFTWARE DEVELOPMENT COST: It is more difficult to implement a distributed database system because of its high cost of installation.
  • GREATER POTENTIAL TO BUGS: Since sites operate in parallel, correctness of algorithms are hard to maintain and recovery from failures is tough.
  • INCREASED PROCESSING OVERHEAD: The exchange of information and additional computation requires a better intersite coordination and overhead.