Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к зачету Гадасина за 16 часов.docx
Скачиваний:
11
Добавлен:
21.01.2024
Размер:
8.53 Mб
Скачать

43. Интеграция приложений с помощью удаленного вызова процедур и методов

Общие цели интеграции приложений можно сформулировать следующим образом:

1. уменьшить стоимость эксплуатации совокупности приложений предприятия;

2. увеличить скорость выполнения типичных задач или гарантировать сроки их выполнения

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

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

Стандарты на удаленный вызов процедур возникли два десятка лет назад, позволяя программному коду, который выполняется на одном компьютере, вызывать на другом. Стандарты появлялись, развивались и угасали: RPC, CORBA, DCOM, RMI… последним в этом ряду стал протокол SOAP, основа современных Web-сервисов. Если приложению А что-то нужно от приложения Б, то А одним из перечисленных способов вызывает функцию приложения Б.

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

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

44. Интеграция приложений с помощью механизма основанного на обмене сообщений

Обмен сообщениями основан на асинхронном обмене сообщениями посредством шины данных.

Асинхронный обмен сообщениями.

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

Недостаток данного подхода — высокая цена. Система гарантированной доставки на основе очередей сообщений обычно сама по себе недешева; исключением является Microsoft Message Queue (MSMQ), компонент серверных операционных систем семейства Windows. Правда, есть и свободно распространяемые бесплатные (например, ActiveMQ), которые, тем не менее, нужно развернуть, обучить специалистов, поддерживать, написать адаптеры между системой доставки и приложениями и т.д.

Преимущества обмена сообщениями

● Удаленное взаимодействие: системы делегируют ответственность за сериализацию и передачу данных

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

● Асинхронное взаимодействие: «отправил и забыл» (send-and-forget), подтверждение только о помещении сообщения в канал

● Рассогласование во времени: скорость размещения вызовов отправителем не ограничена скоростью их обработки получателем

● Регулирование нагрузки: получать контролирует скорость обработки сообщений из очереди

● Надежное взаимодействие: передача с промежуточным хранением (store-and-forward), посылка осуществляется до тех пор, пока сообщение не будет получено

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

● Посредничество: приложению необходимо поддерживать связь только с системой обмена сообщениями

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

Недостатки асинхронного обмена сообщениями

Сложная модель программирования, Порядок доставки сообщений, Необходимость реализации синхронной модели, Производительность, Ограниченная поддержка программными платформами, Зависимость от компании-разработчика