Операционные системы и программное обеспечение на платформе zSeries

Система интеграции приложений IBM WebSphere MQ

Разбить на страницы
Показывать лекцию целиком

Данный раздел посвящен обзору возможностей одного из самых мощных и известных программных продуктов компании IBM - IBM WebSphere MQ (в прошлом MQSeries). Как и многие программные системы от крупных производителей ПО, WebSphere MQ представляет базовые возможности, которые могут использоваться системными архитекторами и разработчиками в информационных системах. Материал раздела включает не только обзор возможностей непосредственно программного продукта, но и сведения о том, каким образом он может применяться при решении прикладных задач.

Раздел состоит из следующих подразделов. В разделе 6.4.2. дается определение понятия < Message Oriented Middleware > (MOM), которое относится к классу технологий, реализуемых в IBM WebSphere MQ. В разделе 6.4.3 приведены основные принципы работы WebSphere MQ, даны описания реализации с помощью WebSphere MQ различных моделей взаимодействия приложений. В разделе 6.4.4 описаны другие продукты семейства WebSphere MQ - Integrator Broker, Workflow, Adapter, Everyplace. Раздел 6.4.5 посвящен типовым архитектурам, применяемым при использовании WebSphere MQ. Раздел 6.4.6 обобщает основные преимущества WebSphere MQ и содержит рекомендации по его использованию.

Message Oriented Middleware (MOM) - средство для интеграции приложений

Для большинства современных предприятий интеграция программных приложений становится насущной необходимостью. Существуют две стратегии интеграции [6.5]:

  • интеграция <снизу>, на основе низкоуровневых средств, таких, как интеграционные серверы, брокеры объектных запросов (ORB) и т.д.;
  • интеграция <сверху>, на основе портальных решений, средств аналитической обработки информации и т.д.
  • Основная задача программных средств интеграции приложений - обеспечить возможность взаимодействия приложений вне зависимости от аппаратных платформ и операционных сред.

    Технологии MOM (Message Oriented Middleware) реализуют интеграцию <снизу>. При использовании MOM взаимодействие приложений осуществляется путем обмена сообщениями. WebSphere MQ - один из первых продуктов класса MOM, что вместе с репутацией IBM, как ведущего разработчика программных средств, обуславливает популярность этого продукта среди системных архитекторов и разработчиков информационных систем.

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

    Большое количество поддерживаемых операционных систем, мощные средства администрирования, удобный API привели к тому, что WebSphere MQ занимает ведущие позиции на рынке MOM. Потребности рынка заставили разработчиков ввести в состав WebSphere MQ новые продукты - Integrator, Workflow, Adapter. Обзор всего семейства WebSphere MQ, а также описание преимуществ и типовых случаев использования приведены ниже (см. также главу 6.2).

    Основные принципы работы WebSphere MQ

    Основные определения и концепции

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

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

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

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

    Управление очередями сообщений (создание, удаление, помещение/извлечение сообщений) осуществляется менеджерами очередей сообщений (иногда применяется название <сервер очередей сообщений>). Фактически менеджер очередей сообщений является системным программным средством, которое предоставляет пользовательским приложениям возможность осуществлять взаимодействие с очередями сообщений и непосредственно сообщениями. Вследствие этого, для обеспечения работоспособности системы на базе MQ, должен быть определен как минимум один менеджер очередей сообщений. При этом один менеджер очередей сообщений может управлять несколькими очередями. Схема, отображающая связь между сообщениями, очередями сообщений, менеджерами очередей и приложениями, показана на рис. 6.18. Менеджер очередей сообщений должен иметь уникальное имя для идентификации в процессе передачи сообщений.

    (рис 6.18) Приложения, очереди и сообщения

    Как происходит передача сообщений между приложениями

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

    Сообщения передаются по каналам с использованием специализированного протокола передачи МСP (Message Channel Protocol). Непосредственно взаимодействие с каналом осуществляется с помощью программного продукта MCA (Message Channel Agent), реализующего все низкоуровневые функции взаимодействия. В процессе передачи менеджер очереди сообщений помещает сообщение в канал исходящих сообщений, осуществляется процесс передачи, после чего сообщение записывается во входящую очередь приложения-адресата. В ходе передачи сообщения менеджер очереди по информации, находящейся в служебной части сообщения, определяет направление передачи, и, используя специальные протоколы и таблицы маршрутизации, пересылает сообщение в соответствующую очередь. Схематически процесс передачи сообщений показан на рис. 6.19.

    (рис 6.19) Передача информации между приложениями

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

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

    Безусловно, описанный выше процесс передачи в реальности выглядит несколько сложнее. В частности, выделяются так называемые локальные очереди (local queues) и очереди передачи (transmission queues). Локальные очереди предназначены для приложений, которые относятся к локальному менеджеру очередей сообщений. При передаче информации приложениям, которые относятся к удаленному менеджеру очередей сообщений, сообщение помещается в очередь передачи (см. рис. 6.19).

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

  • Если имя менеджера-приемника информации совпадает с локальным, то сообщение помещается в соответствующую очередь сообщений на локальном менеджере.
  • Если имя менеджера-приемника информации не совпадает с локальным, то с помощью таблиц маршрутизации локальный менеджер очередей, используя протокол MCP, осуществляет пересылку информации удаленному менеджеру очередей.
  • Удаленный менеджер очередей помещает сообщение в очередь приложения-приемника.
  • Использование таблиц маршрутизации позволяет приложениям не заниматься процессами пересылки информации, это обязанность менеджеров очередей. Вместо реальных имен менеджеров очередей и имен очередей в таблице маршрутизации для адресации сообщений могут использоваться альтернативные логические имена. Правильная доставка сообщений при этом обеспечивается средствами, называемыми <определение удаленных очередей> и <псевдонимы>. Использование этих средств позволяет разработчикам приложений не уделять внимания структуре сети менеджеров очередей сообщений, оставляя эти задачи для решения системным администраторам.

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

    Проектировщиков систем на базе MQ привлекают еще два важных свойства: гарантированность доставки информации и многоплатформенность.

    Гарантированность доставки

    Гарантированность доставки информации обеспечивается использованием протокола MCP и средствами восстановления серверов.

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

    Таким образом, применение специализированного протокола и сегментация сообщений совместно с возможностью хранения информации в очереди на время неработоспособности сети делает MQ, как представителя MOM, незаменимым средством при проектировании информационных систем высокой надежности. Кроме того, MQ предоставляет специальные средства для работы при отказе серверного оборудования. При отказе одного из серверов, на котором развернут менеджер очередей MQ, система может воспользоваться обходным путем доставки информации через другие менеджеры очередей. Заметим, что реализация данной настройки не является слишком сложной для программистов и может быть скрыта от разработчиков внешних приложений. Кроме того, при восстановлении сервера все сообщения, находящиеся в очередях и определенные как <устойчивые> (см. выше), не теряются и продолжают свой путь до приложения-приемника.

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

    При существенных проблемах, возникающих в сети (например, блокировка канала передачи информации в течение длительного времени, отказ сервера и пр.), т.е. в случае критической ситуации, связанной с невозможностью доставки информации, WebSphere MQ помещает сообщение в специальную очередь - Dead Letters Queue (DLQ). Заметим, что сообщение при этом не удаляется (если оно было определено как устойчивое), а лишь перемещается в другое место для временного хранения. Отслеживая с помощью специальных средств содержимое очереди сообщений DLQ, приложение или оператор системы имеет возможность предпринять те или иные действия для исправления ситуации. В очередь DLQ также попадают и сообщения с истекшим сроком действия.

    Многоплатформенность

    Другим отличительным свойством системы 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, разработчик получает возможность реализовать необходимую функциональность при обработке сообщений.

    Другие продукты семейства WebSphere MQ

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

    Рассмотренные ниже продукты предназначены для расширения возможностей IBM WebSphere MQ.

    MQ Integrator Broker

    При создании комплексной информационной системы, объединяющей подсистемы различного назначения, разработанные в разное время разными коллективами разработчиков, возникает проблема <вавилонской башни>: объединяемые подсистемы используют при взаимодействии друг с другом разные языки, форматы сообщений, их семантическое наполнение и пр. При этом зачастую различия незначительны (например, набор полей в сообщении один и тот же, но их порядок различен), но требуют изменения всего приложения либо разработки специального преобразователя сообщения для каждого приложения.

    Решить эту проблему помогает специализированный продукт семейства WebSphere MQ - MQ Integrator Broker. Фактически, MQ Integrator представляет собой программу-брокер, осуществляющую сбор и преобразование информации, приходящей от различных приложений. При этом возможно как преобразование всех типов сообщений к единому типу, так и локальное преобразование каких-либо типов сообщений.

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

    Помимо стандартных функций преобразования сообщений, MQ Integrator Broker позволяет добавлять к сообщениям информацию из баз данных предприятия (<обогащение информации>), автоматически сохранять часть информации из сообщений и пр.

    Как и любое приложение-брокер, MQ Integrator Broker реализует механизмы подписки приложений на те или иные типы сообщений, механизмы рассылки сообщений по темам. Реализация подобной функциональности в рамках серверной части существенно сокращает объем разработки бизнес-приложений.

    Кроме того, MQ Integrator Broker позволяет осуществлять визуальное моделирование и отладку правил преобразования, а также поддерживает набор адаптеров, которые могут использоваться для интеграции приложений (см. ниже). Недавно разработанные функции интеграции со SCADA-системами позволяют задействовать MQ Integrator для решения задач управления производством и технологическими процессами.

    Как и любое соединение типа <звезда>, MQ Integrator Broker приводит к существенному сокращению количества соединений между приложениями. Кроме того, применение <распределенного> MQ Integrator Broker в совокупности с базовой функциональностью WebSphere MQ позволяет реализовать сложную распределенную архитектуру передачи и преобразования информации практически без дополнительного программирования, с использованием лишь базовой функциональности WebSphere MQ.

    MQ Workflow

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

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

    Наиболее часто MQ Workflow применяется для автоматизации бизнес-процессов, в которые вовлечены как сотрудники предприятия, так и информационные системы.

    Как правило, процесс работы MQ Workflow можно разбить на три стадии. На первой стадии с помощью компонента Buildtime происходит определение процесса, включающее:

  • графическое моделирование бизнес-процесса;
  • определение персонала (люди, организации, роли);
  • регистрация программ, используемых для реализации отдельных бизнес-процедур;
  • определение структур данных;
  • определение топологии этапа исполнения.
  • Результатом процесса определения является готовая к работе модель (описание) бизнес-процесса. Данная модель может быть записана в репозитарий компонента Buildtime для дальнейшего использования или модификации. Кроме того, Buildtime поддерживает специальный формат описания бизнес-процессов MQ Workflow Flow Definition Language - FDL, что позволяет применять описанный процесс в рамках других систем, а также импортировать готовое описание бизнес-процесса для его дальнейшего выполнения.

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

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

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

    Готовая модель передается в специализированный компонент MQ Workflow Runtime, где на основе модели формируется копия бизнес-процесса - реальный набор операций, которые будут выполнены приложениями и людьми в ходе данного бизнес-процесса. Управление бизнес-процессом включает:

  • навигацию по всему потоку операций;
  • извещение администратора о задержках или автоматическое выполнение других действий, определенных ранее;
  • назначение индивидуальных задач соответствующим сотрудникам, участвующим в бизнес-процессе;
  • автоматический запуск приложений, если это предусмотрено описанием бизнес-процесса;
  • анализ проведенных операций.
  • Реализация данных функций возможна благодаря наличию в MQ Workflow широкого набора API для интеграции со сторонними приложениями, а также набора GUI для обеспечения комфортной работы пользователей с системой управления бизнес-процессами.

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

    Современные бизнес-процессы включают в себя как ориентированные на человека рабочие операции, так и автоматизированные приложения. Модель потока операций должна объединять операции, выполняемые людьми (<ручные операции>) с автоматически выполняемыми операциями.

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

    Клиентским интерфейсом для выполнения операций является продукт Client, входящий в стандартную поставку MQ Workflow. Именно в нем и содержится рабочий список назначенных пользователю задач. Кроме стандартного клиента MQ Workflow позволяет применять в качестве клиентского приложения Lotus Notes, Web-браузер и пр. В последнем случае предполагается использование специализированного API.

    MQ Adapter

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

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

    MQ Everyplace

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

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

    Примеры использования MQ

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

    Система доставки информации

    Одна из типовых задач - обеспечение доставки информации в условиях ненадежных каналов связи. WebSphere MQ предоставляет необходимую функциональность для решения такой задачи.

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

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

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

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

    (рис 6.20) Применение MQ для передачи информации

    Система интеграции приложений

    Другим типовым примером использования MQ является интеграция приложений в неоднородной среде. Пример, показанный на рис. 6.21, является типичным для многих информационных систем. В информационной системе предприятия присутствуют приложения, разработанные для различных программно-аппаратных платформ. Наличие такой ситуации может быть обусловлено как объективными (специфика приложений, приводящая к выбору различных программно-аппаратных платформ), так и субъективными причинами (нескоординированность разработчиков, закупка систем у различных поставщиков и пр.).

    (рис 6.21) Применение MQ для интеграции разнородных приложений

    Без использования MQ для интеграции систем в единое целое в этом примере разработчикам пришлось бы реализовать 15 интеграционных соединений, каждое из которых является достаточно ресурсоемким. Использование WebSphere MQ, в частности, единого интерфейса MQI и MQ Adapters, позволяет решить эту задачу без особых усилий и с минимальными изменениями приложений.

    Основные свойства систем на базе WebSphere MQ

    К основным свойствам информационным систем, спроектированных с использованием WebSphere MQ, относятся:

  • Гетерогенность. Гетерогенность достигается за счет возможности функционирования как серверных, так и клиентских модулей на различных программно-аппаратных платформах. Кроме того, гетерогенность обеспечивается за счет поддержки различных сетевых протоколов. Все это делает MQ незаменимым средством при построении интеграционных систем в случае необходимости объединения разнородных приложений и информационных подсистем.
  • Гарантированность доставки информации обеспечивается в MQ как за счет использования специализированных протоколов, так и за счет механизмов восстановления в случае сбоев в программно-аппаратном комплексе и механизмов обхода поврежденных участков. Данное свойство позволяет использовать MQ при решении критических для бизнеса задач передачи важной информации - осуществлении финансовых транзакций, передачи информации о движении транспортных средств и пр. Возможность интеграции со SCADA-системами позволяет применять MQ для решения задач управления производством и технологическими процессами.
  • Масштабируемость. Организация системы MQ как набора независимых серверов MQ (менеджеров очередей и связанных с ними очередей) позволяет легко осуществить добавление серверов без изменения существующих и модификации бизнес-приложений. Такое свойство особенно актуально для больших систем, где внедрение происходит поэтапно, а также при объединении информационных систем.
  • Возможность реализации различных моделей взаимодействия. Несмотря на то, что для MQ, как представителя класса MOM, основным способом взаимодействия является асинхронный, широкий набор средств позволяет осуществить реализацию и других способов взаимодействия - от асинхронного до публикации/подписки. Большая часть таких взаимодействий реализуется путем настройки MQ, для реализации других требуется незначительное программирование. Использование же базового асинхронного способа взаимодействия позволяет создавать бизнес-приложения, не подверженные блокировке на время ожидания ответа от приложения.
  • Данные свойства, а также рассмотренные выше примеры архитектур, обуславливают широкое распространение MQ в различных предметных областях. По оценкам экспертов, распространенность WebSphere MQ в компаниях Top-100 составляет около 75%. Как правило, WebSphere MQ используется для решения следующих задач:

  • В финансовой сфере - гарантированное осуществление транзакций, в том числе при наличии удаленных офисов.
  • Нефтегазовая промышленность - передача информации в гарантированном режиме с удаленных объектов (скважин и заводов).
  • Промышленные предприятия - передача и обобщение информации, связанной с управлением производством.
  • Все отрасли промышленности - применение WebSphere MQ при слиянии предприятий для решения задачи объединения информационных систем.
  • Распределенные предприятия, в том числе транснациональные корпорации, - связь с удаленными офисами в случае, когда они находятся в других часовых поясах. В данной ситуации WebSphere MQ применяется для связи с приложениями, неактивными в данный момент времени.
  • Страницы:

    Данный раздел посвящен обзору возможностей одного из самых мощных и известных программных продуктов компании IBM - IBM WebSphere MQ (в прошлом MQSeries). Как и многие программные системы от крупных производителей ПО, WebSphere MQ представляет базовые возможности, которые могут использоваться системными архитекторами и разработчиками в информационных системах. Материал раздела включает не только обзор возможностей непосредственно программного продукта, но и сведения о том, каким образом он может применяться при решении прикладных задач.

    Раздел состоит из следующих подразделов. В разделе 6.4.2. дается определение понятия < Message Oriented Middleware > (MOM), которое относится к классу технологий, реализуемых в IBM WebSphere MQ. В разделе 6.4.3 приведены основные принципы работы WebSphere MQ, даны описания реализации с помощью WebSphere MQ различных моделей взаимодействия приложений. В разделе 6.4.4 описаны другие продукты семейства WebSphere MQ - Integrator Broker, Workflow, Adapter, Everyplace. Раздел 6.4.5 посвящен типовым архитектурам, применяемым при использовании WebSphere MQ. Раздел 6.4.6 обобщает основные преимущества WebSphere MQ и содержит рекомендации по его использованию.

    Message Oriented Middleware (MOM) - средство для интеграции приложений

    Для большинства современных предприятий интеграция программных приложений становится насущной необходимостью. Существуют две стратегии интеграции [6.5]:

  • интеграция <снизу>, на основе низкоуровневых средств, таких, как интеграционные серверы, брокеры объектных запросов (ORB) и т.д.;
  • интеграция <сверху>, на основе портальных решений, средств аналитической обработки информации и т.д.
  • Основная задача программных средств интеграции приложений - обеспечить возможность взаимодействия приложений вне зависимости от аппаратных платформ и операционных сред.

    Технологии MOM (Message Oriented Middleware) реализуют интеграцию <снизу>. При использовании MOM взаимодействие приложений осуществляется путем обмена сообщениями. WebSphere MQ - один из первых продуктов класса MOM, что вместе с репутацией IBM, как ведущего разработчика программных средств, обуславливает популярность этого продукта среди системных архитекторов и разработчиков информационных систем.

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

    Большое количество поддерживаемых операционных систем, мощные средства администрирования, удобный API привели к тому, что WebSphere MQ занимает ведущие позиции на рынке MOM. Потребности рынка заставили разработчиков ввести в состав WebSphere MQ новые продукты - Integrator, Workflow, Adapter. Обзор всего семейства WebSphere MQ, а также описание преимуществ и типовых случаев использования приведены ниже (см. также главу 6.2).

    Основные принципы работы WebSphere MQ

    Основные определения и концепции

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

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

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

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

    Управление очередями сообщений (создание, удаление, помещение/извлечение сообщений) осуществляется менеджерами очередей сообщений (иногда применяется название <сервер очередей сообщений>). Фактически менеджер очередей сообщений является системным программным средством, которое предоставляет пользовательским приложениям возможность осуществлять взаимодействие с очередями сообщений и непосредственно сообщениями. Вследствие этого, для обеспечения работоспособности системы на базе MQ, должен быть определен как минимум один менеджер очередей сообщений. При этом один менеджер очередей сообщений может управлять несколькими очередями. Схема, отображающая связь между сообщениями, очередями сообщений, менеджерами очередей и приложениями, показана на рис. 6.18. Менеджер очередей сообщений должен иметь уникальное имя для идентификации в процессе передачи сообщений.

    (рис 6.18) Приложения, очереди и сообщения

    Как происходит передача сообщений между приложениями

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

    Сообщения передаются по каналам с использованием специализированного протокола передачи МСP (Message Channel Protocol). Непосредственно взаимодействие с каналом осуществляется с помощью программного продукта MCA (Message Channel Agent), реализующего все низкоуровневые функции взаимодействия. В процессе передачи менеджер очереди сообщений помещает сообщение в канал исходящих сообщений, осуществляется процесс передачи, после чего сообщение записывается во входящую очередь приложения-адресата. В ходе передачи сообщения менеджер очереди по информации, находящейся в служебной части сообщения, определяет направление передачи, и, используя специальные протоколы и таблицы маршрутизации, пересылает сообщение в соответствующую очередь. Схематически процесс передачи сообщений показан на рис. 6.19.

    (рис 6.19) Передача информации между приложениями

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

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

    Безусловно, описанный выше процесс передачи в реальности выглядит несколько сложнее. В частности, выделяются так называемые локальные очереди (local queues) и очереди передачи (transmission queues). Локальные очереди предназначены для приложений, которые относятся к локальному менеджеру очередей сообщений. При передаче информации приложениям, которые относятся к удаленному менеджеру очередей сообщений, сообщение помещается в очередь передачи (см. рис. 6.19).

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

  • Если имя менеджера-приемника информации совпадает с локальным, то сообщение помещается в соответствующую очередь сообщений на локальном менеджере.
  • Если имя менеджера-приемника информации не совпадает с локальным, то с помощью таблиц маршрутизации локальный менеджер очередей, используя протокол MCP, осуществляет пересылку информации удаленному менеджеру очередей.
  • Удаленный менеджер очередей помещает сообщение в очередь приложения-приемника.
  • Использование таблиц маршрутизации позволяет приложениям не заниматься процессами пересылки информации, это обязанность менеджеров очередей. Вместо реальных имен менеджеров очередей и имен очередей в таблице маршрутизации для адресации сообщений могут использоваться альтернативные логические имена. Правильная доставка сообщений при этом обеспечивается средствами, называемыми <определение удаленных очередей> и <псевдонимы>. Использование этих средств позволяет разработчикам приложений не уделять внимания структуре сети менеджеров очередей сообщений, оставляя эти задачи для решения системным администраторам.

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

    Проектировщиков систем на базе MQ привлекают еще два важных свойства: гарантированность доставки информации и многоплатформенность.

    Гарантированность доставки

    Гарантированность доставки информации обеспечивается использованием протокола MCP и средствами восстановления серверов.

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

    Таким образом, применение специализированного протокола и сегментация сообщений совместно с возможностью хранения информации в очереди на время неработоспособности сети делает MQ, как представителя MOM, незаменимым средством при проектировании информационных систем высокой надежности. Кроме того, MQ предоставляет специальные средства для работы при отказе серверного оборудования. При отказе одного из серверов, на котором развернут менеджер очередей MQ, система может воспользоваться обходным путем доставки информации через другие менеджеры очередей. Заметим, что реализация данной настройки не является слишком сложной для программистов и может быть скрыта от разработчиков внешних приложений. Кроме того, при восстановлении сервера все сообщения, находящиеся в очередях и определенные как <устойчивые> (см. выше), не теряются и продолжают свой путь до приложения-приемника.

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

    При существенных проблемах, возникающих в сети (например, блокировка канала передачи информации в течение длительного времени, отказ сервера и пр.), т.е. в случае критической ситуации, связанной с невозможностью доставки информации, WebSphere MQ помещает сообщение в специальную очередь - Dead Letters Queue (DLQ). Заметим, что сообщение при этом не удаляется (если оно было определено как устойчивое), а лишь перемещается в другое место для временного хранения. Отслеживая с помощью специальных средств содержимое очереди сообщений DLQ, приложение или оператор системы имеет возможность предпринять те или иные действия для исправления ситуации. В очередь DLQ также попадают и сообщения с истекшим сроком действия.

    Многоплатформенность

    Другим отличительным свойством системы 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, разработчик получает возможность реализовать необходимую функциональность при обработке сообщений.

    Другие продукты семейства WebSphere MQ

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

    Рассмотренные ниже продукты предназначены для расширения возможностей IBM WebSphere MQ.

    MQ Integrator Broker

    При создании комплексной информационной системы, объединяющей подсистемы различного назначения, разработанные в разное время разными коллективами разработчиков, возникает проблема <вавилонской башни>: объединяемые подсистемы используют при взаимодействии друг с другом разные языки, форматы сообщений, их семантическое наполнение и пр. При этом зачастую различия незначительны (например, набор полей в сообщении один и тот же, но их порядок различен), но требуют изменения всего приложения либо разработки специального преобразователя сообщения для каждого приложения.

    Решить эту проблему помогает специализированный продукт семейства WebSphere MQ - MQ Integrator Broker. Фактически, MQ Integrator представляет собой программу-брокер, осуществляющую сбор и преобразование информации, приходящей от различных приложений. При этом возможно как преобразование всех типов сообщений к единому типу, так и локальное преобразование каких-либо типов сообщений.

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

    Помимо стандартных функций преобразования сообщений, MQ Integrator Broker позволяет добавлять к сообщениям информацию из баз данных предприятия (<обогащение информации>), автоматически сохранять часть информации из сообщений и пр.

    Как и любое приложение-брокер, MQ Integrator Broker реализует механизмы подписки приложений на те или иные типы сообщений, механизмы рассылки сообщений по темам. Реализация подобной функциональности в рамках серверной части существенно сокращает объем разработки бизнес-приложений.

    Кроме того, MQ Integrator Broker позволяет осуществлять визуальное моделирование и отладку правил преобразования, а также поддерживает набор адаптеров, которые могут использоваться для интеграции приложений (см. ниже). Недавно разработанные функции интеграции со SCADA-системами позволяют задействовать MQ Integrator для решения задач управления производством и технологическими процессами.

    Как и любое соединение типа <звезда>, MQ Integrator Broker приводит к существенному сокращению количества соединений между приложениями. Кроме того, применение <распределенного> MQ Integrator Broker в совокупности с базовой функциональностью WebSphere MQ позволяет реализовать сложную распределенную архитектуру передачи и преобразования информации практически без дополнительного программирования, с использованием лишь базовой функциональности WebSphere MQ.

    MQ Workflow

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

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

    Наиболее часто MQ Workflow применяется для автоматизации бизнес-процессов, в которые вовлечены как сотрудники предприятия, так и информационные системы.

    Как правило, процесс работы MQ Workflow можно разбить на три стадии. На первой стадии с помощью компонента Buildtime происходит определение процесса, включающее:

  • графическое моделирование бизнес-процесса;
  • определение персонала (люди, организации, роли);
  • регистрация программ, используемых для реализации отдельных бизнес-процедур;
  • определение структур данных;
  • определение топологии этапа исполнения.
  • Результатом процесса определения является готовая к работе модель (описание) бизнес-процесса. Данная модель может быть записана в репозитарий компонента Buildtime для дальнейшего использования или модификации. Кроме того, Buildtime поддерживает специальный формат описания бизнес-процессов MQ Workflow Flow Definition Language - FDL, что позволяет применять описанный процесс в рамках других систем, а также импортировать готовое описание бизнес-процесса для его дальнейшего выполнения.

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

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

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

    Готовая модель передается в специализированный компонент MQ Workflow Runtime, где на основе модели формируется копия бизнес-процесса - реальный набор операций, которые будут выполнены приложениями и людьми в ходе данного бизнес-процесса. Управление бизнес-процессом включает:

  • навигацию по всему потоку операций;
  • извещение администратора о задержках или автоматическое выполнение других действий, определенных ранее;
  • назначение индивидуальных задач соответствующим сотрудникам, участвующим в бизнес-процессе;
  • автоматический запуск приложений, если это предусмотрено описанием бизнес-процесса;
  • анализ проведенных операций.
  • Реализация данных функций возможна благодаря наличию в MQ Workflow широкого набора API для интеграции со сторонними приложениями, а также набора GUI для обеспечения комфортной работы пользователей с системой управления бизнес-процессами.

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

    Современные бизнес-процессы включают в себя как ориентированные на человека рабочие операции, так и автоматизированные приложения. Модель потока операций должна объединять операции, выполняемые людьми (<ручные операции>) с автоматически выполняемыми операциями.

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

    Клиентским интерфейсом для выполнения операций является продукт Client, входящий в стандартную поставку MQ Workflow. Именно в нем и содержится рабочий список назначенных пользователю задач. Кроме стандартного клиента MQ Workflow позволяет применять в качестве клиентского приложения Lotus Notes, Web-браузер и пр. В последнем случае предполагается использование специализированного API.

    MQ Adapter

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

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

    MQ Everyplace

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

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

    Примеры использования MQ

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

    Система доставки информации

    Одна из типовых задач - обеспечение доставки информации в условиях ненадежных каналов связи. WebSphere MQ предоставляет необходимую функциональность для решения такой задачи.

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

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

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

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

    (рис 6.20) Применение MQ для передачи информации

    Система интеграции приложений

    Другим типовым примером использования MQ является интеграция приложений в неоднородной среде. Пример, показанный на рис. 6.21, является типичным для многих информационных систем. В информационной системе предприятия присутствуют приложения, разработанные для различных программно-аппаратных платформ. Наличие такой ситуации может быть обусловлено как объективными (специфика приложений, приводящая к выбору различных программно-аппаратных платформ), так и субъективными причинами (нескоординированность разработчиков, закупка систем у различных поставщиков и пр.).

    (рис 6.21) Применение MQ для интеграции разнородных приложений

    Без использования MQ для интеграции систем в единое целое в этом примере разработчикам пришлось бы реализовать 15 интеграционных соединений, каждое из которых является достаточно ресурсоемким. Использование WebSphere MQ, в частности, единого интерфейса MQI и MQ Adapters, позволяет решить эту задачу без особых усилий и с минимальными изменениями приложений.

    Основные свойства систем на базе WebSphere MQ

    К основным свойствам информационным систем, спроектированных с использованием WebSphere MQ, относятся:

  • Гетерогенность. Гетерогенность достигается за счет возможности функционирования как серверных, так и клиентских модулей на различных программно-аппаратных платформах. Кроме того, гетерогенность обеспечивается за счет поддержки различных сетевых протоколов. Все это делает MQ незаменимым средством при построении интеграционных систем в случае необходимости объединения разнородных приложений и информационных подсистем.
  • Гарантированность доставки информации обеспечивается в MQ как за счет использования специализированных протоколов, так и за счет механизмов восстановления в случае сбоев в программно-аппаратном комплексе и механизмов обхода поврежденных участков. Данное свойство позволяет использовать MQ при решении критических для бизнеса задач передачи важной информации - осуществлении финансовых транзакций, передачи информации о движении транспортных средств и пр. Возможность интеграции со SCADA-системами позволяет применять MQ для решения задач управления производством и технологическими процессами.
  • Масштабируемость. Организация системы MQ как набора независимых серверов MQ (менеджеров очередей и связанных с ними очередей) позволяет легко осуществить добавление серверов без изменения существующих и модификации бизнес-приложений. Такое свойство особенно актуально для больших систем, где внедрение происходит поэтапно, а также при объединении информационных систем.
  • Возможность реализации различных моделей взаимодействия. Несмотря на то, что для MQ, как представителя класса MOM, основным способом взаимодействия является асинхронный, широкий набор средств позволяет осуществить реализацию и других способов взаимодействия - от асинхронного до публикации/подписки. Большая часть таких взаимодействий реализуется путем настройки MQ, для реализации других требуется незначительное программирование. Использование же базового асинхронного способа взаимодействия позволяет создавать бизнес-приложения, не подверженные блокировке на время ожидания ответа от приложения.
  • Данные свойства, а также рассмотренные выше примеры архитектур, обуславливают широкое распространение MQ в различных предметных областях. По оценкам экспертов, распространенность WebSphere MQ в компаниях Top-100 составляет около 75%. Как правило, WebSphere MQ используется для решения следующих задач:

  • В финансовой сфере - гарантированное осуществление транзакций, в том числе при наличии удаленных офисов.
  • Нефтегазовая промышленность - передача информации в гарантированном режиме с удаленных объектов (скважин и заводов).
  • Промышленные предприятия - передача и обобщение информации, связанной с управлением производством.
  • Все отрасли промышленности - применение WebSphere MQ при слиянии предприятий для решения задачи объединения информационных систем.
  • Распределенные предприятия, в том числе транснациональные корпорации, - связь с удаленными офисами в случае, когда они находятся в других часовых поясах. В данной ситуации WebSphere MQ применяется для связи с приложениями, неактивными в данный момент времени.
  • Вернуться к учебному плану