Тот факт, что серверы общаются между собой, означает, что это распределенная система, состоящая из множества разных серверов, отправляющих и получающих сообщения между собой.
Это называется кластером.
Клиенты, взаимодействующие с серверами, также создают распределенную систему.
Клиенты, общающиеся друг с другом, создают peer-to-peer распределенную систему.
Все это означает, что облака являются особым классом распределенных систем.
Теперь давайте попытаемся определить термин распределенная система.
Давай примем, что распределенная система представляет собой совокупность объектов, каждый из которых является автономным, программируемым, асинхронным, но и подверженным сбоям, и эти объекты обмениваются информацией через ненадежную среду связи.
Здесь объекты – это по существу процессы.
Таким образом, каждый объект является процессом, который работает на каком-либо устройстве.
И каждый объект является автономным и программируемым, так как это процесс.
Асинхронный также очень важно, это означает, что каждый процесс или каждый объект работает в соответствии со своим собственным циклом или часами, так как каждое устройство имеет свое системное время, и эти часы не синхронизируются друг с другом.
И эти объекты подвержены сбоям, и их коммуникация не надежна.
Асинхронность отличает распределенные системы от параллельных систем.
Параллельные системы включают в себя многопроцессорные системы и суперкомпьютеры.
Но, по сути, при этом очень большое количество процессоров используют одну и ту же материнскую плату.
Они взаимодействуют друг с другом по тесно связанной сети, и все они имеют синхронизированные циклы или часы.
И этим параллельная система отличается от распределенной системы.
Таким образом, процесс, это автономная работающая программа, которая может иметь несколько потоков.
Процесс выполняет множество задач, которые могут быть распределены по потокам, и которые могут выполняться на одном или нескольких процессорах.
В распределенных системах, эти процессы работают на разных устройствах, системные времена которых не синхронизированы.
В параллельных системах каждый поток процесса выполняется на своем процессоре или ядре процессора, и задачи таким образом выполняются параллельно.
При этом процессоры имеют синхронизированное системное время.