Сравнение - централизованные, децентрализованные и распределенные системы

Опубликовано: 18 Августа, 2021

В этой статье мы попытаемся понять и сравнить различные аспекты централизованных, децентрализованных и распределенных систем.

1. ЦЕНТРАЛИЗОВАННЫЕ СИСТЕМЫ:

Мы начинаем с централизованных систем, потому что они наиболее интуитивно понятны и просты для понимания и определения.

Централизованные системы - это системы, использующие архитектуру клиент / сервер, в которой один или несколько клиентских узлов напрямую подключены к центральному серверу. Это наиболее часто используемый тип системы во многих организациях, когда клиент отправляет запрос на сервер компании и получает ответ.


Рисунок - Визуализация централизованной системы

Пример -
Википедия. Рассмотрим массивный сервер, на который мы отправляем наши запросы, и сервер отвечает запрошенной статьей. Предположим, мы вводим поисковый запрос «нездоровая пища» в строке поиска Википедии. Этот поисковый запрос отправляется в виде запроса на серверы Википедии (в основном расположенные в Вирджинии, США), которые затем возвращают статьи в зависимости от релевантности. В этой ситуации мы являемся клиентским узлом, а серверы Википедии - центральным сервером.

Характеристики централизованной системы -

  • Наличие глобальных часов: поскольку вся система состоит из центрального узла (сервер / мастер) и множества клиентских узлов (компьютер / подчиненный), все клиентские узлы синхронизируются с глобальными часами (часы центрального узла ).
  • Один центральный блок: один центральный блок, который обслуживает / координирует все остальные узлы в системе.
  • Зависимый отказ компонентов: отказ центрального узла приводит к отказу всей системы. Это имеет смысл, потому что, когда сервер не работает, нет другого объекта для отправки / получения ответа / запросов.

Масштабирование -
Возможно только вертикальное масштабирование на центральном сервере. Горизонтальное масштабирование будет противоречить единой центральной единице, характерной для этой системы единой центральной единицы.

Компоненты централизованной системы -
Компоненты централизованной системы:

  • Узел (компьютер, мобильный и т. Д.).
  • Сервер.
  • Канал связи (кабели, Wi-Fi и т. Д.).

Архитектура централизованной системы -
Клиент-серверная архитектура. Центральный узел, который обслуживает другие узлы в системе, является серверным узлом, а все остальные узлы являются клиентскими узлами.

Ограничения централизованной системы -

  • Невозможно вертикальное масштабирование после определенного предела - после предела, даже если вы увеличите аппаратные и программные возможности серверного узла, производительность существенно не увеличится, что приведет к соотношению затрат и выгод <1.
  • Узкие места могут возникать при пиках трафика, поскольку сервер может иметь только ограниченное количество открытых портов, которые могут прослушивать соединения от клиентских узлов. Таким образом, когда происходит высокий трафик, например, при распродаже, сервер может существенно пострадать от атаки типа «отказ в обслуживании» или атаки «распределенный отказ в обслуживании».

Преимущества централизованной системы -

  • Легко физически обезопасить. Легко обеспечить безопасность и обслуживание серверных и клиентских узлов в силу их местоположения.
  • Плавный и элегантный личный опыт - у клиента есть специальная система, которую он использует (например, персональный компьютер), и у компании есть аналогичная система, которую можно модифицировать в соответствии с индивидуальными потребностями.
  • Выделенные ресурсы (память, ядра ЦП и т. Д.)
  • Более экономически выгодно для небольших систем до определенного предела - поскольку центральные системы требуют меньше средств для настройки, они имеют преимущество при создании небольших систем.
  • Возможны быстрые обновления - Обновить только один компьютер.
  • Легкое отсоединение узла от системы. Просто удалите соединение клиентского узла с сервером и вуаля! Узел отсоединен.

Недостатки централизованной системы -

  • Сильно зависит от подключения к сети - система может выйти из строя, если узлы потеряют подключение, поскольку есть только один центральный узел.
  • Никакой постепенной деградации системы - резкий отказ всей системы
  • Меньше возможности резервного копирования данных. Если серверный узел выходит из строя и нет резервной копии, вы сразу теряете данные
  • Сложное обслуживание сервера - имеется только один серверный узел, и по причинам доступности неэффективно и непрофессионально отключать сервер для обслуживания. Таким образом, обновления должны выполняться на лету (горячие обновления), что сложно, и система может сломаться.

Приложения централизованной системы -

  • Разработка приложений - очень легко настроить центральный сервер и отправлять клиентские запросы. Современные технологии в наши дни действительно поставляются с тестовыми серверами по умолчанию, которые можно запустить с помощью пары команд. Например, экспресс-сервер, django server.
  • Анализ данных - простой анализ данных, когда все данные собраны в одном месте и доступны для анализа.
  • Персональные вычисления

Сценарии использования -

  • Централизованные базы данных - все данные на одном сервере для использования.
  • Одиночные игры, такие как Need For Speed, GTA Vice City - вся игра в одной системе (обычно персональном компьютере)
  • Разработка приложений путем развертывания тестовых серверов, что упрощает отладку, развертывание и моделирование.
  • Персональные компьютеры

Организации, использующие -
Национальный центр информатики (Индия), IBM

2. ДЕЦЕНТРАЛИЗОВАННЫЕ СИСТЕМЫ:

Это еще один тип систем, которые набирают большую популярность, в первую очередь из-за огромного ажиотажа вокруг биткойнов. Сейчас многие организации пытаются найти применение таким системам.

В децентрализованных системах каждый узел принимает собственное решение. Окончательное поведение системы - это совокупность решений отдельных узлов. Обратите внимание, что нет единого объекта, который получает запрос и отвечает на него.


Рисунок - Визуализация децентрализованной системы

Пример -
Биткойн. Возьмем, к примеру, биткойн, потому что это самый популярный вариант использования децентрализованных систем. Биткойн-сеть не принадлежит ни одному субъекту / организации. Сеть - это сумма всех узлов, которые общаются друг с другом для поддержания количества биткойнов, которое есть у каждого владельца учетной записи.

Характеристики децентрализованной системы -

  • Отсутствие глобальных часов: все узлы независимы друг от друга и, следовательно, имеют разные часы, которые они запускают и которым следуют.
  • Несколько центральных блоков (компьютеры / узлы / серверы): более одного центрального блока, который может прослушивать соединения от других узлов.
  • Зависимый отказ компонентов: отказ одного центрального узла вызывает отказ части системы; не вся система

Масштабирование -
Возможно вертикальное масштабирование. Каждый узел может добавлять себе ресурсы (оборудование, программное обеспечение) для увеличения производительности, что приводит к увеличению производительности всей системы.

Составные части -
Компоненты децентрализованной системы:

  • Узел (компьютер, мобильный и т. Д.)
  • Канал связи (кабели, Wi-Fi и т. Д.)

Архитектура децентрализованной системы -

  • одноранговая архитектура - все узлы являются одноранговыми узлами друг друга. Ни один узел не имеет превосходства над другими узлами
  • Архитектура ведущий-ведомый - один узел может стать ведущим путем голосования и помощи в координации части системы, но это не означает, что узел имеет превосходство над другим узлом, который он координирует.

Ограничения децентрализованной системы -

  • Может привести к проблемам координации на уровне предприятия - когда каждый узел является владельцем собственного поведения, коллективные задачи решить сложно.
  • Не подходит для небольших систем - невыгодно создавать и эксплуатировать небольшие децентрализованные системы из-за низкого соотношения затрат и выгод.
  • Невозможно регулировать узел в системе - нет вышестоящего узла, контролирующего поведение подчиненных узлов

Преимущества децентрализованной системы -

  • Минимальная проблема возникновения узких мест в производительности - вся нагрузка сбалансирована на всех узлах; приводит к минимальным или отсутствующим узким местам
  • Высокая доступность - некоторые узлы (компьютеры, мобильные телефоны, серверы) всегда доступны / онлайн для работы, что обеспечивает высокую доступность.
  • Больше автономии и контроля над ресурсами - поскольку каждый узел контролирует свое поведение, он имеет лучшую автономию, что приводит к большему контролю над ресурсами.

Недостатки децентрализованной системы -

  • Трудно достичь глобальных больших задач - Нет цепочки команд, чтобы приказывать другим выполнять определенные задачи
  • Отсутствие нормативного надзора
  • Трудно узнать, какой узел вышел из строя - каждый узел должен быть опрошен для проверки доступности, и необходимо выполнить разбиение работы, чтобы фактически выяснить, какой узел вышел из строя, путем проверки ожидаемого вывода с тем, что узел сгенерировал.
  • Трудно узнать, какой узел ответил - когда запрос обслуживается децентрализованной системой, запрос фактически обслуживается одним из узлов в системе, но на самом деле сложно определить, какой узел действительно обслужил запрос.

Приложения децентрализованной системы -

  • Частные сети - одноранговые узлы, объединившиеся друг с другом в частную сеть.
  • Криптовалюта - узлы объединились, чтобы стать частью системы, в которой происходит обмен цифровой валюты без каких-либо следов и местоположения того, кто что кому отправил. Однако в биткойнах мы можем видеть публичный адрес и количество переданных биткойнов, но эти публичные адреса изменчивы и, следовательно, их трудно отследить.

Сценарии использования -

  • Блокчейн
  • Децентрализованные базы данных - вся база данных разделена на части и распределена по разным узлам для хранения и использования. Например, записи с именами, начинающимися от «A» до «K» в одном узле, от «L» до «N» во втором узле и от «O» до «Z» в третьем узле.
  • Криптовалюта

Организации, использующие -
Биткойн, сеть Tor

3. РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ:

Это последний тип системы, который мы собираемся обсудить. Пойдем прямо в это!

В децентрализованных системах каждый узел принимает собственное решение. Окончательное поведение системы - это совокупность решений отдельных узлов. Обратите внимание, что нет единого объекта, который получает запрос и отвечает на него.


Рисунок - Визуализация распределенной системы

Пример -
Поисковая система Google. Каждый запрос обрабатывается сотнями компьютеров, которые просматривают Интернет и возвращают соответствующие результаты. Пользователю Google кажется одной системой, но на самом деле это несколько компьютеров, работающих вместе, чтобы выполнить одну единственную задачу (вернуть результаты в поисковый запрос).

Характеристики распределенной системы - :

  • Параллелизм компонентов: узлы применяют протоколы консенсуса для согласования одних и тех же значений / транзакций / команд / журналов.
  • Отсутствие глобальных часов: все узлы поддерживают свои собственные часы.
  • Независимый отказ компонентов: в распределенной системе узлы выходят из строя независимо, не оказывая значительного влияния на всю систему. Если один узел выходит из строя, вся система без отказавшего узла продолжает работать.

Масштабирование -
Возможно горизонтальное и вертикальное масштабирование.

Компоненты распределенной системы -
Компоненты распределенной системы:

  • Узел (компьютер, мобильный и т. Д.)
  • Канал связи (кабели, Wi-Fi и т. Д.)

Архитектура распределенной системы -

  • одноранговый - все узлы являются одноранговыми и работают для достижения общей цели
  • клиент-сервер - некоторые узлы становятся серверными узлами на роль координатора, арбитра и т. д.
  • n-уровневая архитектура - разные части приложения распределены в разных узлах системы, и эти узлы работают вместе, чтобы функционировать как приложение для пользователя / клиента.

Ограничения распределенной системы -

  • Сложно спроектировать и отладить алгоритмы для системы. Эти алгоритмы сложны из-за отсутствия общих часов; поэтому временная упорядоченность команд / журналов невозможна. Узлы могут иметь разные задержки, которые необходимо учитывать при разработке таких алгоритмов. Сложность увеличивается с увеличением количества узлов. Посетите эту ссылку для получения дополнительной информации
  • Отсутствие общих часов вызывает трудности во временном упорядочении событий / транзакций.
  • Узлу сложно получить глобальное представление о системе и, следовательно, принимать обоснованные решения на основе состояния других узлов в системе.

Преимущества распределенной системы -

  • Низкая задержка по сравнению с централизованной системой - распределенные системы имеют низкую задержку из-за большого географического распространения, что приводит к меньшему времени для получения ответа

Недостатки распределенной системы -

  • Трудно достичь консенсуса
  • Традиционный способ регистрации событий по абсолютному времени, когда они происходят, здесь невозможен.

Приложения распределенной системы -

  • Кластерные вычисления - метод, в котором множество компьютеров объединены для работы, чтобы достичь глобальных целей. Компьютерный кластер действует так, как если бы они были одним компьютером.
  • Грид-вычисления - все ресурсы объединяются для совместного использования в такого рода вычислениях, превращая системы в мощный суперкомпьютер; по сути.

Сценарии использования -

  • Системы на основе SOA
  • Многопользовательские онлайн-игры

Организации, использующие -
Apple, Google, Facebook.