Введение

IBM MQ – это семейство продуктов-посредников, ориентированных на обмен сообщениями, представленное компанией IBM в декабре 1993 года. Изначально продукт назывался MQSeries, а в 2002 году был переименован в WebSphere MQ, чтобы войти в состав линейки продуктов WebSphere. В апреле 2014 года продукт был переименован в IBM MQ. В семейство MQ входят продукты IBM MQ, IBM MQ Advanced, IBM MQ Appliance, IBM MQ для z/OS и IBM MQ на IBM Cloud. IBM MQ также поддерживает развертывание в контейнерах. MQ обеспечивает безопасное взаимодействие независимых и потенциально несинхронных приложений в распределенной системе посредством обмена сообщениями. MQ доступен на широком спектре платформ (как IBM, так и сторонних производителей), включая z/OS (мейнфрейм), IBM i, Transaction Processing Facility, UNIX (AIX, HP UX, Solaris), HP NonStop, OpenVMS, Linux и Microsoft Windows.

Типы сообщений

MQ поддерживает обмен сообщениями типа "точка-точка" и модель "публикация-подписка".

Особенности

Одноразовая доставка: MQ использует доставку сообщений только один раз. Это качество обслуживания обычно предотвращает потерю или дублирование сообщений. Асинхронный обмен сообщениями: MQ предоставляет разработчикам приложений механизм для реализации архитектуры, не зависящей от времени. Сообщения могут отправляться из одного приложения в другое, независимо от того, запущены ли приложения одновременно. Если приложение-получатель не запущено, когда отправитель отправляет сообщение, менеджер очереди сохранит сообщение до тех пор, пока получатель не запросит его. Порядок сообщений сохраняется, по умолчанию – в порядке FIFO поступления в локальную очередь с учетом приоритета сообщения. Преобразование данных: например, из формата Big Endian в Little Endian или из EBCDIC в ASCII. Это достигается с помощью программ-выходов обработки данных сообщений. Программы-выходы – это скомпилированные приложения, работающие на хост-системе менеджера очереди, которые выполняются программным обеспечением IBM MQ при необходимости преобразования данных. Архитектура, управляемая сообщениями: IBM MQ позволяет получению сообщений инициировать запуск других приложений. Набор API: MQ реализует стандартный API Java Message Service (JMS), а также имеет собственный проприетарный API, известный как Message Queuing Interface (MQI), который предшествовал JMS на несколько лет. Начиная с версии 8.0.0.4, MQ также поддерживает API MQ Light. Кластеризация: Несколько экземпляров MQ совместно обрабатывают сообщения, обеспечивая балансировку нагрузки.

Заказ

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

Схема

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

Получение сообщений из очереди

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

Даты выхода версий

Название версии Дата выпуска IBM MQ 9.3 LTS 23 июня 2022 IBM MQ 9.2 LTS 23 июля 2020 IBM MQ 9.1 LTS 23 июля 2018 IBM MQ на IBM Cloud 13 марта 2018 IBM MQ для HPE NonStop 8.0 23 июня 2017 IBM MQ 9.0 LTS 2 июня 2016 IBM MQ 8.0 23 мая 2014 WebSphere MQ 7.5 15 июня 2012 WebSphere MQ 7.1 ноябрь 2011 WebSphere MQ 7.0 z/OS июнь 2008 WebSphere MQ 7.0 (Distributed, iSeries) май 2008 WebSphere MQ 6.0 z/OS июнь 2005 WebSphere MQ 6.0 (Distributed, iSeries) май 2005 WebSphere MQ 5.3 z/OS июнь 2002 WebSphere MQ 5.3 (Distributed, iSeries) июнь, июль, октябрь, ноябрь 2002 MQSeries 5.2 (Distributed) декабрь 2000 MQSeries для OS/390 V5.2 ноябрь 2000 MQSeries для AS/400 V5.1 июль, август 2000 MQSeries для OS/390 V2.1 февраль 1999 MQSeries 5.1 апрель (NT), июнь 1999 MQSeries для AS/400 V4.2 февраль 1998 MQSeries 5.0 октябрь 1997 MQSeries для MVS/ESA 1.2 29 августа 1997 MQSeries для MVS 1.1.4 июнь 1996 MQSeries 2.2 (Sun OS/Solaris, DC/OSx) июнь, июль 1996 MQSeries 2.0 Windows NT 2 квартал 1996 MQSeries 2.2 (HP, SCO) 4 квартал 1995 MQSeries для MVS 1.1.3 май 1995 MQSeries 2.0 (OS/2, AIX) февраль 1995 (начало конца ezBridge) MQM/400 V3 4 квартал 1994 ezBridge Transact для MQSeries 3.0 июль 1994 MQSeries для MVS 1.1.2 июнь 1994 MQM/400 V2.3 февраль/апрель 1994 ezBridge Transact для MQSeries март, сентябрь, ноябрь, декабрь 1993 (различные платформы) MQSeries для MVS V1.1.1 31 декабря 1993

Даты окончания поддержки версий

Следующая таблица относится к программному обеспечению MQ. У MQ Appliance есть другие даты жизненного цикла как для прошивки, так и для аппаратного обеспечения, чем те, что указаны в таблице. Название версии Общая доступность Конец маркетинга Конец поддержки IBM MQ 9.3 23 июня 2022 г. IBM MQ 9.2 23 июля 2020 г. IBM MQ 9.1 23 июля 2018 г. 15 сентября 2023 г. 30 сентября 2023 г. IBM MQ 9.0 02 июня 2016 г. 17 сентября 2021 г. 30 сентября 2021 г. IBM MQ 8.0 13 июня 2014 г. 17 апреля 2020 г. 30 апреля 2020 г. WebSphere MQ 7.5 06 июля 2012 г. 16 декабря 2016 г. 30 апреля 2018 г. WebSphere MQ 7.1 25 ноября 2011 г. 12 июля 2016 г. 30 апреля 2017 г.

Архитектурная справка

С появлением компьютеров IBM увидела возможность применить новые технологии к задаче коммутации сообщений. В начале 1960-х годов IBM вывела на рынок системы IBM 7740 Communication Control System и IBM 7750 Programmed Transmission Control, представлявшие собой программируемые системы коммутации сообщений. В апреле 1964 года была анонсирована IBM System/360, вместе с которой появились методы доступа к средствам связи, такие как BTAM и QTAM (методы доступа к базовым и очередным телекоммуникациям). В 1971 году TCAM (Telecommunications Access Method), метод доступа к телекоммуникациям, предложил пользователям более продвинутую форму коммутации или маршрутизации сообщений. TCAM получил широкое распространение, особенно в финансовой и брокерской сферах. Он поддерживал асинхронную передачу сообщений, как и более поздняя система MQ. В TCAM 3.0 вскоре после этого были добавлены повторно используемые дисковые очереди сообщений для восстановления, аналогично MQ. Для доступа к транзитным (динамическим) очередям сообщений можно было использовать программу PL/I высокого уровня. Чтение сообщения из транзитной очереди приводило к его удалению из очереди, как при чтении без просмотра (non browse READ) в MQ. В конце 1970-х годов появились системы управления транзакциями, каждая из которых стремилась занять лидирующую позицию в отрасли. В IBM CICS и IMS были выбраны в качестве стратегических продуктов для решения задачи управления транзакциями. В обеих системах, CICS и IMS, была реализована своя версия коммутации сообщений: IMS представляла собой систему с фронтендом очередей, а CICS использовала свою подсистему Transient Data в качестве возможной основы для коммутации сообщений. CICS зарекомендовала себя как популярная система управления транзакциями в период с 1968 по 1971 год. Пользователи, уже внедрившие TCAM для обработки сообщений, теперь хотели использовать TCAM совместно с CICS. В декабре 1971 года IBM объявила о поддержке TCAM в CICS как части продукта CICS/OS Standard, поставка которого была запланирована на декабрь 1972 года. Это позволило заинтересованным клиентам использовать сильные стороны TCAM в обработке сообщений, а также подключать терминалы или компьютеры, работающие с TCAM, к онлайн-приложениям CICS. В январе 1973 года TCAM продолжала поддерживаться в CICS/OS Standard Version 2.3. Однако поддержка TCAM была исключена из первоначального релиза CICS/VS, анонсированного в феврале 1973 года и поставленного в июне 1974 года. Естественно, многие пользователи CICS TCAM были недовольны этим направлением развития продукта. Под давлением клиентов CICS TCAM поддержка TCAM была восстановлена в продукте CICS/VS 1.1, начиная с сентября 1974 года. Помимо предыдущей поддержки DCB, с восстановлением поддержки TCAM, CICS начала поддерживать доступ к TCAM через VTAM, также известный как поддержка ACB. Поддержка CICS TCAM ACB была прекращена с выпуском CICS/ESA Version 3 в 1990 году. В 1992 году IBM анонсировала новый продукт под названием MQSeries. Впоследствии, в 2002 году, этот бренд был переименован в WebSphere MQ (иногда сокращаемый до WMQ) для соответствия семейству продуктов WebSphere. В 2014 году продукт был переименован в IBM MQ. MQ задумывался как расширение функциональности TCAM с систем IBM на все остальные платформы. MQ имеет архитектуру, позволяющую гетерогенным системам обмениваться данными (например, IBM, HP, Sun, Tandem и т.д.). MQ может использоваться с системами CICS для отправки и получения данных в/из любой другой системы, поддерживающей MQ. MQ может использоваться для запуска работы в системе CICS, или транзакция CICS может инициировать работу в другой системе CICS или системе, не являющейся CICS. IBM MQ теперь поддерживает 80 различных сред и стал ведущим в отрасли продуктом коммутации/маршрутизации сообщений с гарантированной доставкой.

MQ и веб-сервисы

IBM MQ можно использовать в качестве основы для создания сервисно-ориентированных архитектур. Существует несколько дополнительных опций продукта, помогающих преобразовать устаревшие программы в полноценные веб-сервисы посредством MQ. Крупные, разнородные предприятия часто предстают в виде федерации относительно автономных доменов, основанных на направлениях бизнеса, функциональных областях или областях управления. В таких средах некоторые сервисы могут быть общими или повторно использоваться только в пределах одного домена, а другие – во всем предприятии. IBM MQ обеспечивает связь между различными направлениями бизнеса или обособленными бизнес-доменами. Другой продукт семейства IBM MQ, IBM App Connect Enterprise (ранее IBM Integration Bus / WebSphere Message Broker), предоставляет широкий и надежный набор расширений для архитектур, основанных на очередях сообщений. Используя IBM Integration Bus, пользователи могут реализовать веб-сервис с поддержкой файлов WSDL, способный взаимодействовать с любым приложением, работающим с очередями.