Distributed Systems

Discuss various definitions of distributed system in this lesson.

Overview

Distributed systems are subject to the idea of spreading specific computational tasks across several autonomous, independently acting computational entities. This is based on the approach that the whole system is carried by equally privileged entities, which are acting together in order to maintain its functionality and thus, reach fault tolerance in the system. There are various definitions of distributed systems. Tanenbaum and Van Steen (2007)Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems: Principles and Paradigms. Upper Saddle River, New Jersey, 2007. Pearson Prentice Hall. provide a loose characterization:

Definition 1: distributed system

A distributed system is a collection of independent computers that appears to its users as a single coherent system.

Coulouris et al. (2013)George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair. Distributed Systems. International computer science series. Boston: Addison-Wesley, 2013. Pearson Education Limited. give a more precise definition based on the communication and coordination of distributed systems:

Definition 2: distributed system

A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages (Tanenbaum and Van Steen (2007)Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems: Principles and Paradigms. Upper Saddle River, New Jersey, 2007. Pearson Prentice Hall. ).

This definition of a distributed system has the following significant consequences:

  • Concurrency: There is a concurrent program execution, thus coordination between executing programs that share resources is required.
  • No common physical clock: Since communication and coordination only occur by exchanging messages, there’s no proper way to realize a common clock for the whole system because the accuracy of synchronizing the clocks of the individual computers is very limited. Consequently, there’s no existing global clock.
  • No shared memory: Since there’s no central authority, the memory must be distributed across the network.
  • Independent failures: Each component of the system can fail independently and with arbitrary behavior. Thus, one must determine the fallout because of possible failures, hence fault tolerance is needed.

By applying both definitions 1 and 2, we can define:

Definition 3: Distributed system

A distributed system is a system in which computation and storage of information are distributed across independent components which communicate and coordinate their actions by passing messages.

These components are single actors in the system. In order to form a coherent system, they have to follow the same rules, such as a common protocol.

Get hands-on with 1200+ tech skills courses.