Взаимодействие приложений Flashcards
Интеграция приложений
Взаимодействие независимых друг от друга приложений называют интеграцией. Главная задача интеграции — наладить обмен информацией между приложениями. Для решения этой задачи существует несколько стилей взаимодействия.
Стиль взаимодействия
Это общепринятый способ организации элементов архитектуры системы, направленный на решение определённой проблемы.
Какие бывают режимы взаимодействия приложений
Синхронный и асинхронный
Стиль взаимодействия приложений - Передача файлов (File Transfer)
Приложение создаёт файлы с данными, которые необходимы другим приложениям, и использует файлы, созданные другими приложениями.
Стиль взаимодействия приложений - Общая база данных (Shared Database)
Данные, необходимые разным приложениям, хранятся в одной базе данных.
Стиль взаимодействия приложения - Удалённый вызов процедур (Remote Procedure Invocation — RPI или Remote Procedure Call — RPC).
Каждое приложение описывает для других приложений процедуры, которые можно вызвать удалённо (например, с другого компьютера), чтобы обменяться данными или дать указания.
Процедура в стилях взаимодействия приложений
Это часть программного кода, которая выполняет некоторую функцию. Под вызовом процедуры понимают выполнение функции.
Стиль взаимодействия приложения - Обмен сообщениями (Messaging)
Приложения связаны общей системой обмена сообщениями, с помощью которой обмениваются данными и дают друг другу указания.
Message-oriented middleware — MOM
промежуточное ПО, которое обеспечивает обмен сообщениями между приложениями. Его также называют системой обмена сообщениями.
Зачем нужно message-oriented middleware — MOM во взаимодействии приложений
MOM решают проблему ненадёжности сети. Сбой в сети — это одна из самых распространённых причин утраты сообщения во время его доставки. MOM гарантирует доставку сообщения с компьютера отправителя на компьютер получателя вне зависимости от сбоев в сети. Чтобы сообщение было гарантировано доставлено, МОМ отправляет его снова и снова, пока оно не будет принято получателем.
Основные архитектурные элементы системы обмена сообщениями?
Сообщение (message).
Канал (channel).
Что такое сообщение в системе обмена сообщениями?
Это неделимая единица данных, которая может быть передана через канал. Может состоять из записей файлов, объектов, строк таблицы БД и проч.
Из чего состоит сообщение в системе обмена сообщениями?
Заголовок:
Содержит информацию, необходимую для доставки - адрес компьютера отправителя и адрес компьютера получателя.
Тело:
Содержит данные, важные приложению-получателю. Для процесса обмена сообщениями эта информация не важна.
Что такое канал в системе обмена сообщениями?
Каналы — это виртуальная труба, соединяющая отправителя и получателя, через которую доставляются сообщения.
Приложение-отправитель помещает сообщение не просто в систему обмена сообщениями, а в один из её каналов. Приложение-получатель извлекает сообщение не просто из системы обмена сообщениями, а из конкретного канала. Каналы делают однонаправленными - в одну сторону или отправка, или получение
Из каких этапов состоит процесс доставки сообщения через канал в системе обмена сообщениями?
Создание
Отправка
Доставка
Получение
Обработка
Типы каналов в процессе доставки сообщения через канал в системе обмена сообщениями?
Точка-точка (point-to-point).
Издание-подписка (publish-subscribe — Pub/Sub).
Тип канала точка-точка (point-to-point)
Канал «точка-точка» работает по принципу «первым пришёл, первым ушёл» (first in, first out — FIFO). Сообщения становятся в очередь на доставку: сообщение первым пришло в канал и первым должно из него выйти. Первое сообщение в очереди будет доставлено первым, второе — вторым и так далее.
Канал «точка-точка» используют в тех случаях, когда на одно сообщение нужно отреагировать только единожды. Например, при пополнении банковского счёта или оформлении заказа.
Если одно сообщение должно быть доставлено не одному, а всем приложениям-получателям, то следует использовать канал «издание-подписка».
Тип канала издание-подписка (publish-subscribe — Pub/Sub)
Обеспечивает доставку копий сообщения отправителя множеству получателей. Отправителя называют издателем (publisher), а получателей — подписчиками (subscribers). «Издание-подписка» представляет собой несколько каналов: один входящий канал, куда издатель помещает сообщение, и множество исходящих каналов, откуда подписчики извлекают копии сообщения. Каждому подписчику предоставляется отдельный исходящий канал — это обеспечивает доставку сообщения только один раз каждому из них.
Архитектурный шаблон гарантированная доставка
Обеспечивает передачу сообщений, находящихся в системе обмена сообщениями на момент её отказа, после восстановления её работоспособности.
Отправитель может быть уверен, что сообщение будет доставлено получателю даже в случае отказа системы обмена сообщениями.
Гарантированная доставка обеспечивается хранением сообщений в постоянном хранилище данных — на жёстком диске компьютера.
Архитектурный шаблон постоянный подписчик
Шаблон системы обмена сообщениями, который гарантирует, что получатель не пропустит ни одного сообщения, даже если он какое-то время был неактивен.
Процесс взаимодействия с использованием шаблона «постоянного подписчика» может выглядеть так:
Постоянный подписчик устанавливает соединение с каналом (становится активным).
Издатель помещает сообщения в канал.
Постоянный подписчик извлекает из канала сообщения издателя.
Постоянный подписчик закрывает соединение (становится неактивным).
Издатель помещает сообщения в канал.
Система обмена сообщениями сохраняет сообщения для постоянного подписчика.
Постоянный подписчик вновь становится активным.
Постоянный подписчик извлекает из канала сохранённые системой сообщения.
Какие есть технологии разработки систем обмена сообщениями?
Самые популярные протоколы для обмена сообщениями это:
Веб-сокет (WebSocket)
Веб-сокет заменяет протокол HTTP. Он используется для реализации мессенджеров.
Передача последовательности сообщений с телеметрическими данными (Message Queuing Telemetry Transport — MQTT)
Используется для реализации систем Интернета вещей (Internet of Things — IoT). Примером системы Интернета вещей является умный дом.
Расширенный протокол управления очередью сообщений (Advanced Message Queuing Protocol — AMQP)
Может использовать защищённые SSL-соединения. Используется для внутренних систем предприятия, так как обеспечивает быструю и надёжную передачу сообщений.