IBM MQ
IBM MQ — это семейство промежуточного программного обеспечения, ориентированных на обработку сообщений продуктов , которое IBM выпустила в декабре 1993 года. Первоначально оно называлось MQSeries , а в 2002 году было переименовано в WebSphere MQ , чтобы присоединиться к набору продуктов WebSphere . В апреле 2014 года он был переименован в IBM MQ . В семейство MQ входят продукты IBM MQ, IBM MQ Advanced, IBM MQ Appliance, IBM MQ for z/OS и IBM MQ on 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 являются:
- Сообщение : Сообщения представляют собой наборы двоичных или символьных (например, ASCII или EBCDIC ) данных, которые имеют некоторое значение для участвующей программы. Как и в других протоколах связи , информация о хранении, маршрутизации и доставке добавляется к сообщению перед передачей и удаляется из сообщения перед доставкой принимающему приложению.
- Очередь : Очереди сообщений — это объекты, которые хранят сообщения в приложении.
- Диспетчер очередей : системная служба, предоставляющая логический контейнер для очереди сообщений. Он отвечает за передачу данных другим администраторам очередей по каналам сообщений. Хотя это и не является строго обязательным для промежуточного программного обеспечения, ориентированного на сообщения, оно является обязательным условием IBM MQ. Диспетчеры очередей управляют хранением, проблемами синхронизации, триггерами и всеми другими функциями, не связанными напрямую с фактическим перемещением данных.
Программы, интегрированные с IBM MQ, используют единый интерфейс прикладных программ (API) на всех платформах.
Типы сообщений
[ редактировать ]MQ поддерживает обмен сообщениями «точка-точка» и «публикация-подписка» .
API
[ редактировать ]API, напрямую поддерживаемые IBM, включают:
- Интерфейс очереди сообщений IBM (MQI) для C , COBOL , PL/I , Java , Rexx , [1] РПГ и C++
- Служба сообщений Java (JMS)
- XMS для C/C++ и .NET [2]
- .СЕТЬ
- Представительская государственная передача
- МЫЛО
Дополнительные API (официально не поддерживаемые) также доступны через третьих лиц, в том числе:
- Интерфейс Perl (разработан и предоставлен Хильдо Бирсмой), доступен на сайте CPAN . [3]
- Python (язык программирования) Интерфейс PyMQI (первоначально разработанный Лесом Смитсоном), доступен на PyPI. [4]
- Windows PowerShell [5]
Функции
[ редактировать ]Одноразовая доставка : MQ использует только один раз доставку. Такое качество обслуживания обычно предотвращает потерю или дублирование сообщений.
Асинхронный обмен сообщениями : MQ предоставляет разработчикам приложений механизм для достижения независимой от времени архитектуры. Сообщения можно отправлять из одного приложения в другое независимо от того, работают ли эти приложения одновременно. Если приложение-получатель сообщений не работает, когда отправитель отправляет ему сообщение, администратор очередей будет удерживать сообщение до тех пор, пока получатель не запросит его. Порядок всех сообщений сохраняется, по умолчанию это FIFO порядок поступления в локальную очередь в пределах приоритета сообщения.
Преобразование данных : например, Big Endian в Little Endian или EBCDIC в ASCII . Это достигается за счет использования выходов данных сообщений. Выходы — это скомпилированные приложения, которые запускаются на хосте администратора очередей и выполняются программным обеспечением IBM MQ в тот момент, когда требуется преобразование данных.
Структура архитектуры, управляемой сообщениями : IBM MQ позволяет получать сообщения, чтобы «запустить» запуск других приложений.
Диапазон API : он реализует стандартный API службы сообщений Java (JMS), а также имеет собственный собственный API, известный как интерфейс очереди сообщений (MQI), который существовал за несколько лет до JMS. Начиная с версии 8.0.0.4, MQ также поддерживает API MQ Light.
Кластеризация : несколько реализаций MQ совместно обрабатывают сообщения, обеспечивая балансировку нагрузки.
Коммуникация
[ редактировать ]Менеджеры очередей взаимодействуют с внешним миром посредством:
- Привязки : прямое программное подключение. Обычно быстрее, но ограничивается программами, работающими на том же физическом хосте, что и администратор очередей.
- Сетевое или «клиентское» соединение : приложения, использующие клиентское соединение, могут подключаться к администратору очередей на любом другом хосте в сети. Физическое расположение администратора очередей не имеет значения, если он доступен по сети.
Связь между администраторами очередей
[ редактировать ]Это зависит от канала . Каждый администратор очередей использует один или несколько каналов для отправки и получения данных другим администраторам очередей. Канал является однонаправленным; для возврата данных требуется второй канал. В сети на основе TCP/IP канал отправляет или получает данные через определенный порт.
Типы каналов:
- Канал отправки : имеет определенный пункт назначения и связан с определенной очередью передачи (механизм, с помощью которого сообщения ставятся в очередь в ожидании передачи по каналу).
- Канал приема : получает данные от любого другого администратора очередей с одноименным каналом отправки.
Когда принимающий канал получает сообщение, оно проверяется, чтобы определить, для какого администратора очередей и очереди оно предназначено. В случае сбоя связи MQ может автоматически восстановить соединение после устранения проблемы.
Прослушиватель — это сетевой интерфейс приложения с администратором очередей. Прослушиватель обнаруживает подключения от входящих каналов и управляет подключением отправляющих каналов к принимающим каналам. В сети TCP/IP прослушиватель будет «прослушивать» соединения на определенном порту.
Передача данных в очередь другого администратора очередей
[ редактировать ]Типы очередей:
- Локальная очередь : представляет собой место, где хранятся данные, ожидающие обработки.
- Удаленная очередь : представляет очередь в другом администраторе очередей. Они определяют очередь назначения, которая является одним из элементов механизма маршрутизации сообщений.
- Очередь кластера : представляет собой очередь, доступную через любой администратор очередей в своем кластере.
Сообщение помещается в удаленную очередь. Сообщения попадают в очередь передачи временного хранилища, связанную с каналом. При помещении сообщения в удаленную очередь оно передается по удаленному каналу. Если передача прошла успешно, сообщение удаляется из очереди передачи. При получении сообщения принимающий администратор очередей проверяет сообщение, чтобы определить, предназначено ли оно для себя или должно быть отправлено другому администратору очередей. Если принимающий администратор очередей, то будет проверена необходимая очередь, и если она существует, то сообщение будет помещено в эту очередь. В противном случае сообщение помещается в очередь недоставленных писем . MQ имеет функции для управления эффективной передачей данных по различным средам связи. Например, сообщения могут группироваться вместе до тех пор, пока очередь не достигнет определенной глубины.
Заказ
[ редактировать ]Хотя очередь представляет собой FIFO, она упорядочивается на основе поступления в локальную очередь, а не фиксации сообщения от отправителя. Сообщениям можно приоритезировать, и по умолчанию приоритет очереди определяется в порядке их поступления. Очереди будут только в порядке добавления, если сообщение добавлено локально. Группировку сообщений можно использовать для обеспечения того, чтобы набор сообщений располагался в определенном порядке, кроме того, если последовательность имеет решающее значение, приложение несет ответственность за размещение данных о последовательности в сообщении или реализацию механизма установления связи через очередь возврата. В действительности порядок будет поддерживаться в простых конфигурациях.
Журнал
[ редактировать ]Другим элементом администратора очередей является журнал . Когда сообщение помещается в очередь или вносится изменение конфигурации, данные также регистрируются. В случае сбоя журнал используется для воссоздания поврежденных объектов и повторного создания сообщений. При возникновении сбоя воссоздаются только постоянные сообщения — «непостоянные» сообщения теряются. Непостоянные сообщения могут отправляться по каналу, установленному в быстрый режим, в котором доставка не гарантируется в случае сбоя канала.
MQ поддерживает как циклическое, так и линейное ведение журнала.
Получение сообщений из очередей
[ редактировать ]Информацию можно получить из очередей либо путем опроса очереди для проверки наличия доступных данных через подходящие интервалы, либо, альтернативно, MQ может инициировать событие, позволяющее клиентскому приложению реагировать на доставку сообщения.
Доступность
[ редактировать ]IBM MQ предлагает различные решения для обеспечения доступности:
Диспетчер очередей реплицированных данных (RDQM/Easy HA — MQ Advanced только для распределенных версий): Синхронная репликация между тремя серверами, имеющими общий плавающий IP-адрес.
Кластеры диспетчера очередей: Группы из двух или более администраторов очередей на одном или нескольких компьютерах определяются в кластере, обеспечивая автоматическое соединение, и позволяют совместно использовать очереди для балансировки нагрузки и резервирования.
Группы совместного использования очередей (только z/OS): В среде общей очереди приложение может подключаться к любому из администраторов очередей в группе совместного использования очередей. Поскольку все администраторы очередей в группе совместного использования очередей имеют доступ к одному и тому же набору общих очередей, приложение не зависит от доступности конкретного администратора очередей. Это обеспечивает большую доступность, если администратор очередей останавливается, поскольку все остальные администраторы очередей в группе совместного использования очередей могут продолжать обработку очереди.
Многоэкземплярные диспетчеры очередей (доступны начиная с версии 7.0.1): Экземпляры одного и того же администратора очередей настраиваются на двух или более компьютерах, а их очереди и метаданные располагаются в общем хранилище. При запуске нескольких экземпляров один экземпляр становится активным, а остальные становятся резервными. В случае сбоя активного экземпляра автоматически берет на себя управление резервный экземпляр, работающий на другом компьютере.
История
[ редактировать ]Даты выхода версий
[ редактировать ]Название версии | Дата выпуска |
---|---|
IBM MQ 9.4 ЛТС | 18 июня 2024 г. |
IBM MQ 9.3 ЛТС | 23 июня 2022 г. |
IBM MQ 9.2 ЛТС | 23 июля 2020 г. [6] |
IBM MQ 9.1 ЛТС | 23 июля 2018 г. [7] |
IBM MQ в IBM Cloud | 13 марта 2018 г. [8] |
IBM MQ для HPE Nonstop 8.0 | 23 июня 2017 г. |
IBM MQ 9.0 ЛТС | 2 июня 2016 г. [9] |
IBM MQ 8.0 | 23 мая 2014 г. |
Вебсфера MQ 7.5 | 15 июня 2012 г. |
Вебсфера MQ 7.1 | ноябрь 2011 г. |
WebSphere MQ 7.0 z/OS | июнь 2008 г. |
WebSphere MQ 7.0 (распределенное, iSeries) | май 2008 г. |
WebSphere MQ 6.0 z/OS | июнь 2005 г. |
WebSphere MQ 6.0 (распределенное, iSeries) | май 2005 г. |
WebSphere MQ 5.3 z/OS | июнь 2002 г. |
WebSphere MQ 5.3 (распределенное, iSeries) | Июнь, июль, октябрь, ноябрь 2002 г. |
MQSeries 5.2 (Распространяемая) | декабрь 2000 г. |
MQSeries для OS/390 V5.2 | ноябрь 2000 г. |
MQSeries для AS/400 V5.1 | июль-август 2000 г. |
MQSeries для OS/390 V2.1 | февраль 1999 г. |
MQSeries 5.1 | Апрель (Северная Каролина), июнь 1999 г. |
MQSeries для AS/400 версии 4.2 | февраль 1998 г. |
MQSeries 5.0 | Октябрь 1997 г. |
MQSeries для MVS/ESA 1.2 | 29 августа 1997 г. [10] |
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 отличаются от указанных в таблице. [11]
Название версии | Общая доступность | Конец маркетинга | Конец поддержки |
---|---|---|---|
IBM MQ 9.4 | 18 июня 2024 г. | - | - |
IBM MQ 9.3 | 23 июня 2022 г. | - | - |
IBM MQ 9.2 | 23 июля 2020 г. | - | 30 сентября 2025 г. |
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 г. |
Вебсфера MQ 7.5 | 06 июля 2012 г. | 16 декабря 2016 г. | 30 апреля 2018 г. |
Вебсфера MQ 7.1 | 25 ноября 2011 г. | 12 июля 2016 г. | 30 апреля 2017 г. |
Фоновая архитектурная справка
[ редактировать ]С появлением компьютеров IBM увидела возможность применить новую технологию для коммутации сообщений.
В начале 1960-х годов IBM продавала систему управления связью IBM 7740 и систему программного управления передачей IBM 7750, которые представляли собой программируемые системы коммутации сообщений.
IBM System/360 была анонсирована в апреле 1964 года, и вместе с ней появились такие методы доступа к связи, как BTAM и QTAM (базовые методы и методы доступа к телекоммуникациям с очередью). В 1971 году TCAM, метод доступа к телекоммуникациям , предложил своим пользователям более совершенную форму коммутации сообщений или маршрутизации сообщений. TCAM получил широкое распространение, особенно в финансовой и брокерской отраслях. Он поддерживал асинхронный обмен сообщениями, как и более поздний MQ. Вскоре после этого в TCAM 3.0 были добавлены многократно используемые очереди сообщений на диске для восстановления, как и в случае с MQ. Программа PL/I высокого уровня может использоваться для доступа к ПЕРЕХОДНЫМ наборам данных (динамическим очередям сообщений). Чтение сообщения из временного набора данных привело к удалению этого сообщения из очереди, как и при ЧТЕНИИ без просмотра с помощью MQ.
В конце 1970-х годов появились системы управления транзакциями, каждая из которых пыталась занять лидирующие позиции в отрасли. В IBM CICS и IMS были выбраны в качестве стратегических продуктов для удовлетворения потребностей в управлении транзакциями. И в CICS, и в IMS у каждого была своя версия коммутации сообщений: IMS представляла собой интерфейсную систему с очередями, а CICS имела функцию временных данных в качестве возможной основы для коммутации сообщений. [ нужна ссылка ]
CICS зарекомендовала себя как популярная система управления транзакциями в период с 1968 по 1971 год. Те пользователи, которые использовали TCAM из-за его возможностей обработки сообщений, теперь хотели совместного использования TCAM с CICS. В декабре 1971 года IBM объявила о поддержке CICS TCAM как части продукта CICS/OS-Standard, который должен быть поставлен в декабре 1972 года. Для заинтересованных клиентов это позволило им использовать TCAM для его сильных сторон по обработке сообщений, а также иметь терминалы, подключенные к TCAM. или компьютеры взаимодействуют с онлайн-приложениями CICS. [ нужна ссылка ]
В январе 1973 года TCAM продолжал поддерживаться стандартом CICS/OS версии 2.3. Однако поддержка TCAM была исключена из первоначальной версии CICS/VS, анонсированной в феврале 1973 года и выпущенной в июне 1974 года. Излишне говорить, что многие клиенты CICS-TCAM были недовольны этим направлением продукта.
Под значительным давлением со стороны клиентов CICS-TCAM поддержка CICS TCAM была восстановлена в продукте CICS/VS 1.1 по состоянию на сентябрь 1974 года. В дополнение к предыдущей поддержке DCB, с этим восстановлением поддержки TCAM, CICS начала поддерживать доступ к TCAM. через VTAM, также известную как поддержка ACB. Поддержка CICS TCAM ACB была прекращена в продукте CICS/ESA версии 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 различных сред и стал ведущим продуктом коммутации/маршрутизации с гарантированной доставкой сообщений в отрасли. [12]
MQ и веб-сервисы
[ редактировать ]IBM MQ можно использовать в качестве основы для создания сервис-ориентированных архитектур . Существует несколько дополнительных опций продукта, помогающих преобразовать устаревшие программы в функционирующие веб-сервисы с помощью MQ. Более крупные, разнородные предприятия часто представляют собой федерацию несколько автономных доменов, основанных на направлениях бизнеса, функциональных областях или областях управления. В таких средах некоторые службы могут совместно использоваться или повторно использоваться только в пределах одного домена, тогда как другие могут совместно использоваться или повторно использоваться в рамках всего предприятия. IBM MQ предоставляет средства, с помощью которых существует связь между направлениями бизнеса или иными отдельными бизнес-доменами.
Родственный продукт семейства продуктов IBM MQ, называемый IBM App Connect Enterprise (ранее IBM Integration Bus/WebSphere Message Broker), обеспечивает разнообразный и надежный набор расширений для архитектур на основе очередей. Используя IBM Integration Bus, пользователи могут реализовать интерфейс WebServices с поддержкой файлов WSDL , который может взаимодействовать с любым приложением, работающим с очередями.
См. также
[ редактировать ]- Расширенный протокол очереди сообщений
- Брокер сообщений IBM WebSphere
- Служба сообщений Java
- Очередь сообщений
- Очередь сообщений как услуга
- MQTT
Ссылки
[ редактировать ]- ^ «MA95: интерфейс REXX для WebSphere MQ» . Проверено 9 октября 2014 г.
- ^ «Представляем XMS — API службы сообщений IBM» . Проверено 6 декабря 2007 г.
- ^ MQSeries — расширение Perl для поддержки MQSeries — search.cpan.org
- ^ «Документация PyMQI» . Архивировано из оригинала 17 января 2013 г. Проверено 3 сентября 2010 г.
- ^ «MO74: WebSphere MQ — библиотека Windows Powershell» . Проверено 6 декабря 2007 г.
- ^ «Анонс IBM MQ 9.2» . Международные бизнес-машины (IBM). 21 июля 2020 г. Проверено 22 октября 2020 г.
- ^ «Анонс IBM MQ 9.1» . Международные бизнес-машины (IBM). 3 июля 2018 года . Проверено 6 августа 2018 г.
- ^ «Анонс IBM о IBM MQ в IBM Cloud» . Машины международного бизнеса (IBM) . Проверено 6 августа 2018 г.
- ^ «Анонс IBM MQ 9.0» . Международные бизнес-машины (IBM). 19 апреля 2016 года . Проверено 17 июня 2016 г.
- ^ «MQSeries для MVS/ESA версии 1.2» . Международные бизнес-машины (IBM). 8 июля 1997 года . Проверено 10 декабря 2018 г.
- ^ «Жизненный цикл поддержки программного обеспечения IBM» .
- ^ «IBM WebSphere MQ V7.1 улучшен за счет более низкой стоимости владения, сокращения времени окупаемости и более настраиваемой безопасности» . Объявление о программном обеспечении IBM в США 211-395 . ИБМ. 4 октября 2011 г.