Россия |
Система интеграции приложений IBM WebSphere MQ
Многоплатформенность
Другим отличительным свойством системы MQ является возможность работы в условиях различных программно-аппаратных платформ и протоколов. В частности, серверное программное обеспечение MQ (менеджеры очередей сообщений) могут работать на следующих платформах:
- IBM AIX;
- IBM OS/400;
- HP-UX;
- Linux on Intel;
- Linux on IBM eServer zSeries;
- Sun Solaris Operating Environment;
- Microsoft Windows NT, Windows 2000, Windows XP;
- OS/390 и пр.
При этом поддерживаемые клиентские платформы (т.е. платформы, которые поддерживает интерфейс MQI) включают в себя:
- Apple Macintosh Operating System;
- Data General DG/UX;
- DOS;
- IBM 4690 Оperating System;
- Windows NT, Windows 2000, Windows XP;
- z/VM и VM/VSE и пр.
С учетом такого многообразия поддерживаемых платформ MQ является незаменимым средством при организации взаимодействия между прикладными системами, решающими различные задачи и, возможно, разработанными в разное время.
Гетерогенность MQ не ограничивается только поддержкой различных программно-аппаратных платформ. Она также включает поддержку различных сетевых протоколов. Используемый в MQ протокол MCP может осуществлять взаимодействие с транспортными протоколами TCP/IP, IPX/SPX, NetBios, LU6.2. Таким образом, MQ предоставляет проектировщикам информационных систем практически полную свободу при решении задачи интеграции различных приложений.
Администрирование WebSphere MQ
Администрирование WebSphere MQ производится с использованием стандартных средств управления с консоли; для ряда операционных систем, в частности, для Windows, разработаны графические средства администрирования. Кроме того, на рынке присутствует целый ряд продуктов независимых производителей, предназначенных для управления WebSphere MQ.
И стандартные средства администрирования WebSphere MQ, и продукты других производителей позволяют осуществлять администрирование и мониторинг, отображая состояние серверов, очередей и пр. Вместе с тем, при использовании WebSphere MQ как средства для интеграции промышленных приложений, система управления должна предоставлять информацию, связанную с конкретной предметной областью, что требует от разработчиков создания собственных систем управления и мониторинга с использованием API WebSphere MQ для управления очередями и анализа содержимого сообщений.
Реализация различных моделей взаимодействия приложений с использованием MQ
Использование MQ позволяет реализовать различные типы коммуникаций. Некоторые из них описаны ниже.
Асинхронное взаимодействие приложений. Такой способ коммуникации приложений является стандартным при использовании MQ. Приложение осуществляет отправку информации и, не дожидаясь получения подтверждения, продолжает выполнять те или иные действия. Основным преимуществом асинхронного взаимодействия является независимость приложений друг от друга. Типичными примерами асинхронного взаимодействия являются выдача заявок на обработку информации, внесение не требующей подтверждения информации в базу данных и пр.
Синхронное взаимодействие приложений. Несмотря на то, что MQ является представителем технологии MOM, которая реализует асинхронное взаимодействие, возможно и применение синхронных механизмов взаимодействия. Для этого после отправки сообщения приложению-адресату приложение-источник переходит в режим ожидания сообщения специального типа - <сообщения в ответ>, которое формируется в том случае, если передача исходного сообщения была успешно выполнена. Получив <сообщение в ответ>, приложение-источник продолжает свою работу. Сам процесс отслеживания факта появления сообщений в очереди приложения реализуется с помощью механизмов триггеров, срабатывающих при появлении сообщения в очереди.
Взаимодействие с запуском программ. При реализации данного типа взаимодействия факт получения сообщения для приложения-приемника является признаком начала периода активности. По окончании обработки полученного сообщения приложение снова переходит в режим off-line. Необходимо отметить, что данная функциональность доступна не на всех программно-аппаратных платформах.
Параллельная обработка информации. Данный тип взаимодействия подразумевает распределение процесса обработки информации между различными приложениями приложением-инициатором. Процесс начинается с рассылки сообщений приложениям-обработчикам; выполнив свои задачи, они пересылают результаты обработки в адрес приложения-инициатора. Применение механизмов очередей сообщений позволяет оптимальным образом использовать ресурсы приложений- обработчиков.
Кроме описанных выше, возможна реализация и других способов взаимодействия приложения с использованием MQ. Выбор способа взаимодействия осуществляется проектировщиком системы.
Программирование WebSphere MQ
Интерфейс очередей сообщений MQI (Message Queuing Interface) в WebSphere MQ для различных программно-аппаратных платформ - от DOS до OS/390 - один и тот же. Его основным свойством является идентичность команд и параметров для различных систем и возможность применения при различных языках программирования. Ниже приведен пример использования одной из команд MQI в различных форматах: формате управления системой с использованием консоли управления, в формате языка С и языка COBOL:
MQPUT1 (Hconn, ObjDesc, MsgDescr, PutMsgOpts, BufferLength, Buffer, CompCode, Reason) MQPUT1 (Hconn, &ObjDesc, &MsgDescr, &PutMsgOpts, BufferLength, Buffer, &CompCode, &Reason) CALL "MQPUT1" USING HCONN, OBJECT-DESCRIPTOR, MESSAGE-DESCRIPTOR, PMOPTIONS, DATA-LENGTH, REPLY, COMPLETION-CODE, REASON
Данная команда осуществляет помещение объекта в указанную очередь с использованием определенного набора опций. Результат выполнения команды и/или причины неудачи возвращаются функцией как выходные параметры. Для работы с очередью предварительно должно быть установлено соединение с менеджером очередей - дальнейшее взаимодействие осуществляется с использованием возвращенного на этой стадии параметра Hconn.
Как видно из примера, процесс помещения информации в очередь достаточно прост и реализован единообразно для различных программно-аппаратных платформ.
К базовым функциям MQI относятся:
- MQCONN - устанавливает соединение с системой;
- MQOPEN - открывает объект для дальнейшей работы с ним;
- MQPUT - помещение информации в очередь;
- MQGET - извлечение информации из очереди;
- MQCLOSE - завершение работы с объектом;
- MQDISC - окончание соединения с системой;
- MQCMIT и MQBACK - для работы с транзакциями и пр.
Используя MQI, приложение может осуществлять все необходимые действия с системой очередей - от открытия соединения до просмотра сообщений в очереди.
Кроме того, разработчик имеет возможность поместить свой код для реагирования на те или иные события в так называемые exits. В системе WebSphere MQ присутствует несколько типов exit ( channel, client, conversion и пр.) - в зависимости от действий, производимых с сообщением/очередью. Создавая собственный exit, разработчик получает возможность реализовать необходимую функциональность при обработке сообщений.