Компьютер, который распределяет общие ресурсы между многими пользователями, называется

Обновлено: 21.11.2024

Распределенные системы

Ресурсы: аппаратное обеспечение — диски и принтеры, программное обеспечение — файлы, окна и объекты данных. Совместное использование оборудования для: удобства, снижения затрат. Совместное использование данных для: согласованности — компиляторы и библиотеки, обмен информацией — совместная работа с базами данных — групповое ПО.

Менеджер ресурсов

Программный модуль, управляющий набором ресурсов

Каждый ресурс требует собственной политики и методов управления

Модель клиент-сервер — серверные процессы действуют как менеджеры ресурсов для набора ресурсов и набора клиентов

Модель на основе объектов — ресурсы — это объекты, которые можно перемещать. Диспетчер объектов можно перемещать. Запрос на задание по объекту отправляется текущему руководителю. Менеджер должен быть совмещен с объектом. Примеры: АРГУС, Амеба, Мах, миграционные улучшения - Арджуна, Облака, Изумруд

Открытость

Как его можно расширить.

Открытый или закрытый в отношении аппаратного или программного обеспечения
Открытый — опубликованные спецификации и интерфейсы — стандартизация интерфейсов
UNIX была относительно открытой операционной системой
Доступный язык C Системные вызовы задокументированы Новое оборудование драйверы было легко добавить. Приложения были независимыми от аппаратного обеспечения. IPC позволяла расширять службы и ресурсы

Открытая распределенная система

Предоставление унифицированных межпроцессных взаимодействий и опубликованных интерфейсов для доступа

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

Параллелизм

Параллельное выполнение в распределенных системах

<р>1. Многие пользователи используют одни и те же ресурсы, взаимодействие приложений
2. Многие серверы отвечают на запросы клиентов

Масштабируемость

Как система справляется с ростом

Небольшая система — два компьютера и файловый сервер в одной сети
Большая система — современный Интернет

Масштабируемость
– программное обеспечение не должно изменяться для поддержки роста
– область исследований – для больших высокопроизводительных сетей

Избегайте централизации для обеспечения масштабируемости.
Тщательно выбирайте схему именования или нумерации.
Решайте проблемы синхронизации с помощью кэширования и репликации данных.

Отказоустойчивость

Компьютеры выходят из строя, поэтому нам необходимо: Аппаратное резервирование Программное восстановление Повышение доступности сервисов
Сеть обычно не избыточна
Программное восстановление через группу процессов

Прозрачность

<УЛ>
  • доступ
  • местоположение
  • параллелизм
  • репликация
  • сбой
  • миграция
  • производительность
  • масштабирование
  • Ключевые характеристики распределенных систем

    <ПР>
  • Совместное использование ресурсов
  • Открытость
  • Параллелизм
  • Масштабируемость
  • Отказоустойчивость
  • Прозрачность
  • Ключевые цели дизайна

    <УЛ>
  • Высокая производительность
  • Надежность
  • Масштабируемость
  • Последовательность
  • Безопасность
  • Основные проблемы дизайна

    <УЛ>
  • название
  • связь
  • структура программного обеспечения
  • распределение рабочей нагрузки
  • поддержание согласованности
  • Именование

    <УЛ>
  • идентификатор связи
  • служба имен
  • контекстное разрешение имени
  • сопоставление имен
  • чистые имена против имен со значением
  • Общение

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

    Взаимодействие между клиентом и сервером

    Групповая многоадресная рассылка

    Структура программного обеспечения

    Распределение рабочей нагрузки

    Модель «рабочая станция-сервер»

    Модель пула процессоров

    Мультипроцессор с общей памятью

    Поддержание согласованности

    Согласованность обновлений — изменения должны быть атомарными

    Консистентность репликации — данные должны быть согласованными

    Консистентность кеша (когерентность кеша)
     — клиент накапливает частичные ресурсы для локального использования
     – полезность зависит от принципа локальности

    Постоянство сбоев — восстановление через откат

    Согласованность часов — использование меток времени и логических часов

    Согласованность пользовательского интерфейса — действия по сравнению с задержкой обработки, задержками Как минимум: распределенная система должна как минимум обеспечивать функции одного компьютера Улучшение: — Совместное использование ресурсов — аппаратное обеспечение — Использование распределенных ресурсов для параллельной обработки и отказоустойчивости Совместная работа среды

    Пути миграции с одного компьютера на распределенную систему
    1.адаптировать существующую операционную систему
    2. перейти на новую систему, предназначенную для распределенных систем
    3. эмуляция старой системы на новой системе (наиболее практично)

    Реконфигурируемость

    Краткосрочные изменения Сбойный процесс или компонент Смещение вычислительной нагрузки Кэширование и миграция процессов (снижение нагрузки на сеть) Среднесрочная и долгосрочная эволюция Новые машины Новые сервисы Измененные роли машин Измененные ресурсы на существующих машинах

    Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.

    Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .

    План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

    Стандарт безопасности данных платежных приложений (PA-DSS) – это набор требований, призванных помочь поставщикам программного обеспечения в разработке безопасных .

    Взаимная аутентификация, также называемая двусторонней аутентификацией, представляет собой процесс или технологию, в которой оба объекта обмениваются данными .

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

    Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

    Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

    Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

    Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.

    Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.

    Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

    Коэффициент усиления записи (WAF) – это числовое значение, представляющее объем данных, передаваемых контроллером твердотельного накопителя (SSD) .

    API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.

    Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.

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

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

    Некоторые из первых серверов были мейнфреймами или миникомпьютерами. Миникомпьютеры были намного меньше мэйнфреймов, отсюда и название. Однако по мере развития технологий они стали намного крупнее настольных компьютеров, что сделало термин «микрокомпьютер» несколько абсурдным.

    Изначально такие серверы были подключены к клиентам, известным как терминалы, которые не выполняли никаких реальных вычислений. Эти терминалы, называемые «тупыми терминалами», существовали просто для того, чтобы принимать ввод с клавиатуры или устройства чтения карт и возвращать результаты любых вычислений на экран дисплея или принтер. Фактические вычисления выполнялись на сервере.

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

    По мере развития технологий менялось и определение сервера. В наши дни сервер может быть не чем иным, как программным обеспечением, работающим на одном или нескольких физических вычислительных устройствах. Такие серверы часто называют виртуальными серверами. Первоначально виртуальные серверы использовались для увеличения количества серверных функций, которые мог выполнять один аппаратный сервер. Сегодня виртуальные серверы часто управляются третьей стороной на оборудовании через Интернет, что называется облачными вычислениями.

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

    Как работает сервер

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

    Например, операционная система Microsoft Windows Server предоставляет функции прослушивания клиентских запросов и ответа на них. Дополнительно установленные роли или службы увеличивают количество типов клиентских запросов, на которые может отвечать сервер. В другом примере веб-сервер Apache отвечает на запросы интернет-браузера через дополнительное приложение Apache, установленное поверх операционной системы.

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

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

    Типы серверов

    Существует множество типов серверов, выполняющих разные функции. Многие сети содержат один или несколько распространенных типов серверов:

    Файловые серверы

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

    Серверы печати

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

    Серверы приложений

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

    DNS-серверы

    Серверы системы доменных имен (DNS) — это серверы приложений, которые обеспечивают разрешение имен для клиентских компьютеров путем преобразования имен, понятных людям, в машиночитаемые IP-адреса. Система DNS представляет собой широко распространенную базу данных имен и других DNS-серверов, каждый из которых может использоваться для запроса неизвестного имени компьютера. Когда клиенту нужен адрес системы, он отправляет DNS-запрос с именем нужного ресурса на DNS-сервер. DNS-сервер отвечает необходимым IP-адресом из своей таблицы имен.

    Почтовые серверы

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

    Веб-серверы

    Одним из самых распространенных типов серверов на современном рынке является веб-сервер. Веб-сервер — это особый тип сервера приложений, на котором размещаются программы и данные, запрашиваемые пользователями через Интернет или интрасеть. Веб-серверы отвечают на запросы от браузеров, запущенных на клиентских компьютерах, для веб-страниц или других веб-служб. Общие веб-серверы включают веб-серверы Apache, серверы Microsoft Internet Information Services (IIS) и серверы Nginx.

    Серверы баз данных

    Объем данных, используемых компаниями, пользователями и другими службами, ошеломляет. Большая часть этих данных хранится в базах данных. Базы данных должны быть доступны нескольким клиентам в любой момент времени, и для этого может потребоваться огромное количество дискового пространства.Обе эти потребности хорошо подходят для размещения таких баз данных на серверах. Серверы баз данных запускают приложения баз данных и отвечают на многочисленные запросы клиентов. Общие приложения сервера баз данных включают Oracle, Microsoft SQL Server, DB2 и Informix.

    Виртуальные серверы

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

    Прокси-серверы

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

    Серверы мониторинга и управления

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

    Структуры серверов

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

    Мейнфрейм или миникомпьютер (AS/400)

    Можно сказать, что первоначальные серверы, мэйнфреймы, а позже и миникомпьютеры решали почти все вычислительные задачи, кроме взаимодействия с пользователем через экран и клавиатуру, которые предоставлялись клиентской системе.

    Сервер компьютерного оборудования

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

    Блейд-серверы

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

    Объединение серверов

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

    Виртуальные серверы

    Для виртуальных серверов по-прежнему требуется аппаратное обеспечение, но на этом оборудовании теперь работает другой процесс, известный как гипервизор. В некоторых случаях, таких как Microsoft Hyper-V, полная операционная система продолжает работать на самом оборудовании. В других случаях так называемые «голые» гипервизоры могут быть установлены непосредственно на серверное оборудование.В обоих случаях само оборудование часто распределено по массиву блейд-серверов, сетевых хранилищ и блоков питания, что приводит к среде, в которой невозможно сказать, где заканчивается один отдельный сервер и начинается другой.

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

    Обзор

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

    Существует два основных способа функционирования распределенных систем:

    1. Каждая машина работает для достижения общей цели, и конечный пользователь рассматривает результаты как единое целое.
    2. У каждого компьютера есть свой конечный пользователь, а распределенная система упрощает совместное использование ресурсов или коммуникационных услуг.

    Хотя распределенные системы иногда могут быть малопонятны, они обычно имеют три основные характеристики: все компоненты работают одновременно, глобальные часы отсутствуют, и все компоненты выходят из строя независимо друг от друга.

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

    Есть три причины, по которым команды обычно решают внедрить распределенные системы:

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

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

    Еще три проблемы, с которыми вы можете столкнуться:

    • Планирование. Распределенная система должна решить, какие задания необходимо выполнить, когда и где они должны выполняться. Планировщики в конечном счете имеют ограничения, что приводит к недостаточному использованию оборудования и непредсказуемому времени выполнения.
    • Задержка. Чем шире распределена ваша система, тем больше задержка может возникнуть при обмене данными. Это часто приводит к тому, что командам приходится искать компромисс между доступностью, согласованностью и задержкой.
    • Наблюдаемость. Сбор, обработка, представление и мониторинг показателей использования оборудования для больших кластеров представляет собой серьезную проблему.

    Как работает распределенная система

    Аппаратные и программные архитектуры используются для обслуживания распределенной системы. Все должно быть взаимосвязано — ЦП через сеть и процессы через систему связи.

    Типы распределенных систем

    Распределенные системы обычно относятся к одной из четырех различных моделей базовой архитектуры:

    1. Клиент-сервер. Клиенты обращаются к серверу за данными, затем форматируют их и отображают для конечного пользователя. Конечный пользователь также может внести изменения на стороне клиента и зафиксировать их обратно на сервере, чтобы сделать их постоянными.
    2. Трехуровневый. Информация о клиенте хранится на среднем уровне, а не на самом клиенте, что упрощает развертывание приложений. Эта модель архитектуры наиболее распространена для веб-приложений.
    3. n-уровень – обычно используется, когда приложению или серверу необходимо перенаправлять запросы в дополнительные корпоративные службы в сети.
    4. Peer-to-peer: дополнительные компьютеры не используются для предоставления услуг или управления ресурсами. Обязанности равномерно распределены между компьютерами в системе, известными как одноранговые узлы, которые могут выступать в качестве клиента или сервера.

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

    Распределенные системы имеют бесконечное множество вариантов использования, некоторые из них – электронные банковские системы, массовые многопользовательские онлайн-игры и сенсорные сети.

    StackPath использует особенно крупную распределенную систему для поддержки своей сетевой службы доставки контента. Каждая из наших точек присутствия (PoP) имеет узлы, которые образуют всемирную распределенную систему. А чтобы обеспечить первоклассную доставку контента, StackPath хранит самый последний и часто запрашиваемый контент в периферийных местоположениях, ближайших к месту его использования.

    Распределенные системы на границе

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

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

    Распределенные системы — полное руководство

    Что такое распределенная система и как она работает?

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

    Поэтому распределенная система будет казаться конечному пользователю одним интерфейсом или компьютером. Мы надеемся, что вместе система сможет максимизировать ресурсы и информацию, предотвратив сбои, поскольку сбой одной системы не повлияет на доступность службы.

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

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

    Примеры распределенных систем

    Сети

    Самый ранний пример распределенной системы относится к 1970-м годам, когда был изобретен Ethernet и созданы локальные вычислительные сети. Впервые компьютеры смогут отправлять сообщения другим системам с локальным IP-адресом. Развивались одноранговые сети, а электронная почта, а затем Интернет в том виде, в каком мы его знаем, продолжают оставаться крупнейшим и постоянно растущим примером распределенных систем. Когда Интернет изменился с IPv4 на IPv6, распределенные системы превратились из «ЛВС» в «Интернет».

    Телекоммуникационные сети

    Телефонные и сотовые сети также являются примерами распределенных сетей. Телефонные сети существуют уже более века и зародились как ранний пример одноранговой сети. Сотовые сети — это распределенные сети с базовыми станциями, физически распределенными в областях, называемых ячейками. По мере того как телефонные сети эволюционировали в VOIP (голос поверх IP), их сложность как распределенной сети продолжает расти.

    Распределенные системы реального времени

    Во многих отраслях используются системы реального времени, которые распространяются локально и по всему миру. Авиакомпании используют системы управления полетами, Uber и Lyft — диспетчерские системы, производственные предприятия — автоматизированные системы управления, логистические компании и компании электронной коммерции — системы отслеживания в реальном времени.

    Параллельная обработка

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

    Распределенный искусственный интеллект

    Распределенный искусственный интеллект — это способ использования больших вычислительных мощностей и параллельной обработки для изучения и обработки очень больших наборов данных с помощью нескольких агентов.

    Распределенные системы баз данных

    Распределенная база данных – это база данных, расположенная на нескольких серверах и/или в физических местах. Данные могут быть реплицированы или дублированы между системами.

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

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

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

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

    Распределенные системы должны иметь сеть, которая соединяет все компоненты (машины, оборудование или программное обеспечение) вместе, чтобы они могли передавать сообщения для связи друг с другом.

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

    Чтобы понять это, давайте рассмотрим типы распределенных архитектур, плюсы и минусы.

    Типы архитектур распределенных систем:

    Распределенные приложения и процессы обычно используют один из четырех типов архитектуры, указанных ниже:

    Клиент-сервер:

    Раньше архитектура распределенных систем состояла из сервера как общего ресурса, такого как принтер, база данных или веб-сервер. У него было несколько клиентов (например, пользователей за компьютерами), которые решают, когда использовать общий ресурс, как использовать и отображать его, изменять данные и отправлять их обратно на сервер. Репозитории кода, такие как git, являются хорошим примером того, как интеллектуальные функции возлагаются на разработчиков, вносящих изменения в код.

    Сегодня архитектура распределенных систем вместе с веб-приложениями превратилась в:

    Читайте также: