Что такое mq ibm

GeekBrains

Сравнение Apache ActiveMQ И IBM Websphere MQ

В данной статье я рассмотрю сравню две популярные системы обмена сообщениями и расскажу а нюансах при переходе с IBM WebSphere MQ 7.5 на свободно распространяемый Apache ActiveMQ 5.9. Также проанализирую риски подобной смены технологий.

Сравнение Apache ActiveMQ и IBM Websphere MQ

Начну с того что Apache ActiveMQ и IBM WebSphere MQ широко используются во многих компаниях мира и отвечают основным требованиям по обмену сообщениями. Система обмена сообщений Apache ActiveMQ распространяется под лицензией Apache 2.0 и является свободно распространяемым программным обеспечением, в отличии от IBM WebSphere MQ, однако у последней есть ряд неоспоримых преимуществ и при переходе с программного обеспечения IBM необходимо тщательно анализировать возможные риски возникновения технических проблем. В 2014 году американская компания Edison Group представила отчет с результатами испытаний Apache ActiveMQ и IBM WebSphere MQ. Давайте посмотрим чем отличаются друг от друга эти системы обмена сообщений.

Надежность и отказоустойчивость

IBM WebSphere MQ и Apache ActiveMQ проходили испытания на отказоустойчивость по двум сценариям: прекращение подачи электроэнергии и обрыв сетевого соединения. Результаты испытаний приведены в таблице:

Сценарий тестирования Apache ActiveMQ IBM WebSphere MQ
Прекращение подачи электроэнергии Около 2% дубликатов сообщений. Потерянные сообщения отсутствуют. Дубликаты и потерянные сообщения отсутствуют.
Обрыв сетевого соединения Около 2% дубликатов сообщений и 100% потерянных сообщений после перезагрузки. После восстановления сети Apache ActiveMQ не смог восстановить исходную конфигурацию master/slave. Дубликаты и потерянные сообщения отсутствуют

Эти испытания выявили главный недостаток Apache ActiveMQ, который нужно обязательно учитывать при переходе — дублирование и потеря сообщений в результате аварии или сетевых ошибок. Обычно в качестве решения данной проблемы используют конфигурацию master/slave, то есть запускают несколько Apache ActiveMQ брокеров на разных серверах для того чтобы в случае отказа одного из брокеров, другой мог его заменить. Один из брокеров берет на себя роль главного или master, а один или несколько slave брокеров ждут когда master откажет, чтобы один из slave брокеров стал новым главным, т.е. master. При этом существует 2 варианта конфигурации master/slave:

shared nothing (без разделения ресурсов) — каждый Apache ActiveMQ брокер имеет свое собственное хранилище сообщений;

shared storage (совместно используемое запоминающее устройство) — каждый Apache ActiveMQ брокер может подключаться к общему хранилищу, но только один брокер может быть активным в каждый момент времени.

Клиенты Apache ActiveMQ на Java и C++ обеспечивают встроенное аварийное переключение трансфера, так что они автоматически переключатся с отказавшего мастера на нового мастера. Как показали испытания, при восстановлении сети после обрыва, старый master должен был стать slave брокером, так как бывший slave брокер стал новым master, однако после восстановления работы системы мы получили 2 master брокера, конфликтующих между собой. Из-за этого необходимо выполнить перезагрузку сервера, предварительно сделав бекап сообщений, так как при перезагрузке серверов все сообщения будут потеряны. Поэтому конфигурация master/slave не гарантирует бесперебойную работу Apache ActiveMQ, а лишь снижает риски.

Для IBM WebSphere MQ используется похожая конфигурация, но в терминологии компании IBM она называется active/standby.

Рисунок 1. Конфигурация master/slave для AvtiveMQ

Рисунок 2. Конфигурация active/standby.

Управление транзакциями

Одним из основных различий между IBM WebSphere MQ и Apache ActiveMQ является поддержка управления транзакциями: IBM WebSphere MQ позволяет управлять транзакциями между базой данных и сервером обмена сообщениями из коробки. Для Apache ActiveMQ необходим внешний сервер приложений с поддержкой XA для управления 2PC транзакциями, так как Apache ActiveMQ не поддерживает XA транзакции.
Также в официальной документации к Apache ActiveMQ дается совет о том что в качестве альтернативы можно использовать регулярные JMS транзакции без XA, а также в коде выявлять дубликаты сообщений, проверяя обрабатывалось ли данное сообщение ранее.

Рисунок 3. Обрабатываем сообщение, если оно не было успешно обработано ранее.

Данный подход позволяет получить более высокую производительность, так как не нужно выполнять много медленных синхронизаций с диском (за транзакцию!) для протокола XA. Единственным недостатком при таком подходе является то, что необходимо использовать специфическую логику в своих приложениях для того, чтобы определить обрабатывалось ли то или иное сообщение ранее или нет. Однако подобная логика довольно часто применяется на практике, так что при переходе на Apache ActiveMQ не придётся делать большое количество доработок.

Производительность

Наилучшие результаты производительности для Apache ActiveMQ и IBM WebSphere MQ были получены при использовании 80 одновременных клиентских потоков. При этом работало четыре экземпляра IBM WebSphere MQ менеджеров, а также четыре экземпляра Apache ActiveMQ брокеров. Каждый экземпляр имел свой собственный твердотельный накопитель, на котором он записывал данные. Было проведено пять 20-минутных тестов с использованием сообщений следующих размеров: 256 байт, 1K, 10K, 100K или 1MB. Результаты тестирования приведены в диаграмме ниже:

Рисунок 4. Тестирование производительности

Как мы видим, IBM WebSphere MQ работает значительно быстрее, поэтому для того, чтобы достичь сопоставимые результаты с Apache ActiveMQ потребуется использовать оборудование, которое будет на 60% мощнее. Но несмотря на то что Apache ActiveMQ уступает в производительности IBM WebSphere MQ, результаты всё равно достойные и на практике такой производительности будет достаточно для большинства промышленных систем, особенно если учитывать что конвейеры очередей в основном используются для асинхронного взаимодействия между компонентами программного обеспечения.

Заключение

Несмотря на свои недостатки Apache ActiveMQ широко используется во всём мире и является одной из самых популярных систем обмена сообщений.

Главные достоинства Apache ActiveMQ:

Apache ActiveMQ является свободно распространяемым программным обеспечением и соответственно эта система не подвержена политическим рискам.

Apache ActiveMQ имеет открытый код

Apache ActiveMQ бесплатна в отличие от IBM WebSphere MQ

Apache ActiveMQ просто разворачивать и настраивать

Apache ActiveMQ отлично интегрирована со многими технологиями и проста в использовании, что делает её удобной в использовании и разработке программного обеспечения

Apache ActiveMQ хорошо документирована

Возможностей Apache ActiveMQ вполне хватает для решения большинства практических задач и во многих случаях Apache ActiveMQ отлично подойдет в качестве замены IBM WebSphere MQ при грамотном подходе.

IBM WebSphere MQ

MQ IBM — семья продуктов сетевого программного обеспечения, которые IBM начала в марте 1992. Это первоначально назвали MQSeries и переименовали в WebSphere MQ в 2002, чтобы присоединиться к набору продуктов WebSphere. В апреле 2014 это было переименовано в IBM В MQ.

IBM MQ, (часто называемый «MQ&#187), является Передающим решением IBM для Предприятия и сообщением IBM Ориентированное предложение Промежуточного программного обеспечения. Это позволяет независимым и потенциально непараллельным заявлениям на распределенной системе надежно общаться друг с другом. MQ доступен на большом количестве платформ (и IBM и не-IBM), включая z/OS (универсальная ЭВМ), OS/400 (Система IBM i или КАК/400), Средство для Обработки транзакций, UNIX (ЭКС-АН-ПРОВАНС, HP-UX, Солярис), HP NonStop, OpenVMS, Linux, OS 2200 и Microsoft Windows.

Ориентированное на сообщение промежуточное программное обеспечение

IBM MQ была самой популярной системой для передачи сообщений через многократные платформы в 2000, включая Windows, Linux, OS/2, универсальную ЭВМ IBM и средний, и Unix.

  • Сообщение: сообщения — коллекции набора из двух предметов или характера (например, ASCII или расширенный двоично-десятичный код) данные, у которых есть некоторое значение к программе участия. Как в других коммуникационных протоколах, хранении, направлении и информации о доставке добавлен к сообщению перед передачей и раздет из сообщения до доставки к применению получения.
  • Очередь: очереди сообщения — объекты, которые хранят сообщения в применении.

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

Программы, объединенные с IBM MQ, используют последовательный интерфейс приложения (API) через все платформы.

Поддержка архитектуры для обслуживания широкого круга запросов

IBM MQ является ключевым компонентом в стратегии архитектуры для обслуживания широкого круга запросов (SOA) IBM, обеспечивая универсальную передающую основу через 80 различных платформ. Растущая важность SOA и рост веб-сервисов и других механизмов возможности соединения — ясно важные события. Из-за свободно двойной природы модели организации очереди сообщения большое количество существующих клиентов MQ чувствует, что они уже принимают принципы SOA. Сервисная поддержка определения MQ упаковывает вещи, MA93 позволяет заявлениям MQ каталогизироваться как программные ресурсы, которые могут быть снова использованы и составлены как веб-сервисы.

MQ также поддерживает Сервисные Автобусные внедрения Предприятия, и составляющие собственность и общедоступные. Например, Мул, транспорт WMQ доступен с версией 1.6 Версии для предприятий Мула или позже и, с 2,2, содержит многих критическая работа и улучшения надежности, а также родная поддержка особенностей WebSphere MQ-specific.

ПЧЕЛА

Есть много способов получить доступ к IBM средства MQ.

Часть ПЧЕЛЫ, непосредственно поддержанной IBM:

  • IBM Message Queue Interface (MQI) для C, КОБОЛ, PL/I, Явы, Rexx, RPG и C ++
  • Java Message Service (JMS)
  • XMS для C/C ++ и.NET
  • .NET
  • Представительная государственная передача
  • МЫЛО

Дополнительная ПЧЕЛА (не официально поддержанный) также доступна через третьих лиц, например:

  • Интерфейс Perl (развитый и способствовал Hildo Biersma), доступный от CPAN. интерфейс PyMQI (первоначально развитый Les Smithson), доступный от

Особенности

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

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

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

Это обеспечивает средство для преобразования данных между различной архитектурой и протоколами, такими как Большой Endian к Небольшому Endian или расширенный двоично-десятичный код к ASCII. Это достигнуто с помощью выходов данных о сообщении. Выходы — собранные заявления, которые бегут на хозяине менеджера очередей и выполнены программным обеспечением IBM MQ в то время, когда преобразование данных необходимо.

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

Это осуществляет API стандарта Java Message Service (JMS), и также имеет его собственный составляющий собственность API, известный как Message Queuing Interface (MQI), который предшествовал JMS несколько существующих лет.

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

Коммуникация

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

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

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

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

«слушателя» есть функция обнаружения связей от поступающих каналов, и управляйте связью отправки в каналы получения. Это — сетевой интерфейс применения к менеджеру очередей. В сети TCP/IP слушатель «послушает» для связей на определенном порту.

Местные очереди представляют местоположение, где данные хранятся, ожидая обработки.

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

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

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

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

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

Высокая доступность

Поскольку передающая инфраструктура становится более важной по отношению к Вашему бизнесу, потребность в конфигурации высокой доступности становится еще более важной. Есть три основанных на программном обеспечении решения, доступные с IBM MQ; Группы Менеджера очередей, Общие Очереди и Менеджеры очередей Мультислучая.

Группы менеджера очередей:

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

GeekBrains

Общие Очереди (z/OS только):

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

Менеджеры очередей мультислучая (доступный в v7.0.1):

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

История

Даты выпуска вариантов

MQM MVS/ESA V1.1 GA (MVS) — 31 декабря 1993

ezBridge Проводят для MQSeries — март, сентябрь, ноябрь, декабрь 1993

MQM/400 V2.3 — февраль/апрель 1994

MQSeries для MVS 1.1.2 — июнь 1994

ezBridge Проводят для MQSeries 3.0 — июль 1994

MQM/400 V3 — 4Q 1 994

MQSeries 2.0 (OS/2, ЭКС-АН-ПРОВАНС) — февраль 1995 (начало конца

MQSeries для MVS 1.1.3 — май 1995

MQSeries 2.2 (HP, SCO) — 4Q 1 995

MQSeries 2.0 Windows NT — 2Q 1 996

MQSeries 2.2 (Солнце OS/Солярис, DC/OSx) — июнь, июль 1996

MQSeries для MVS 1.1.4, — июнь 1996

MQSeries для MVS/ESA 1.2 — август 1997

MQSeries 5.0 — октябрь 1997

MQSeries для КАК/400 V4.2 — февраль 1998

MQSeries 5.1 — апрель (NT), июнь 1999

MQSeries для OS/390 V2.1 — февраль 1999

MQSeries для КАК/400 V5.1 — июль/август 2000

MQSeries для OS/390 V5.2 — ноябрь 2000

(Распределенный) MQSeries 5.2 — декабрь 2000

WebSphere MQ 5.3 (Распределенный, iSeries) — июнь, июль, октябрь, ноябрь 2002

WebSphere MQ 5.3 z/OS — июнь 2002

WebSphere MQ 6.0 (Распределенный, iSeries) — май 2005

WebSphere MQ 6.0 z/OS — июнь 2005

WebSphere MQ 7.0 (Распределенный, iSeries) — май 2008

WebSphere MQ 7.0 z/OS — июнь 2008

WebSphere MQ 7.1 — ноябрь 2011

Июнь 2012 WebSphere MQ 7.5-15

IBM MQ 8.0–23 маев 2014

Второстепенная архитектурная ссылка

Развитый в Шотландии, Телекоммуникационный Метод доступа (TCAM) пришел в 1971 с рождением TSO. Это поддержало асинхронную передачу сообщений, как с MQ. TCAM 3.0 добавил в повторно используемых дисковых очередях сообщения для восстановления скоро после того, как с MQ. Программа PL/I высокого уровня могла использоваться, чтобы получить доступ к ПЕРЕХОДНЫМ наборам данных (динамические очереди сообщения). Чтение сообщения от переходного набора данных привело к тому сообщению, удаляемому из очереди, как с непросматриванием ПРОЧИТАННОГО с MQ. С появлением компьютеров IBM видела возможность применить новую технологию к потребности в переключении сообщения. В начале 1960-х, IBM продала механические устройства, такие как 7 740 и 7 750 систем переключения сообщения.

Системе/360 IBM объявили в апреле 1964, и с ним прибыл коммуникационные методы доступа, такие как BTAM и QTAM (Основные и Стоявшие в очереди Телекоммуникационные Методы доступа). В конце 1960-х, TCAM, Телекоммуникационный Метод доступа, предложил его пользователям более продвинутую форму переключения сообщения или направления сообщения. TCAM был широко принят, особенно в финансовых отраслях промышленности и брокерских отраслях промышленности.

В конце 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 продолжал поддерживаться Версией 2.3 CICS/OS-Standard. Однако поддержка 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 поддержка был прекращен с продукта Вариантов 3 CICS/ESA в 1990.

В 1992 IBM объявила о новом продукте под названием MQSeries. Этот фирменный знак был позже переименован к «WebSphere MQ» (иногда сокращаемый к WMQ) в 2002, чтобы поддержать фамилию WebSphere и продукт. В 2014 это было переименовано «в IBM В MQ». MQ должен был быть расширением функциональности TCAM от систем ТОЛЬКО ДЛЯ IBM до всех других платформ. У MQ есть архитектура, которая позволяет разнородным системам общаться друг с другом (например, IBM, HP, Солнце, Тандем, и т.д.). MQ может использоваться с системами CICS, чтобы послать и получить данные к/от любой другой системе MQ-eligible. MQ может использоваться, чтобы начать работу в системе CICS, или сделка CICS может начать работу в другом CICS или non-CICS системе.

IBM MQ теперь поддерживает 80 различной окружающей среды и стал гарантированным продуктом переключения/направления доставки ведущего сообщения в промышленности.

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

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

Связанный продукт в IBM семейство продуктов MQ, названное Автобусом Интеграции IBM (раньше Брокер сообщения WebSphere), позволяет разнообразный и прочный набор расширений к основанной на очереди архитектуре. Используя Автобус Интеграции IBM, пользователи могут осуществить фронтенд WebServices, вместе с поддержкой файла WSDL, которая может взаимодействовать с любым основанным на очереди применением.

IBM WebSphere MQ

IBM MQ — семейство сетевого ПО, открытое IBM в марте 1992. Ранее известно как MQSeries: IBM переименовало его в WebSphere MQ 2002 для ассоциации с линейкой продуктов WebSphere. В апреле 2014 переименовано в IBM MQ. IBM MQ также называют просто MQ или MQSeries.

IBM MQ — промежуточное ПО для сообщения (Message Oriented Middleware). Оно позволяет независимым и, возможно, работающим не одновременно приложениям в распределённой системе обмениваться данными друг с другом. MQ работает на всех основных платформах: z/OS (мейнфрейм), IBM i (IBM System i, ранее AS/400), Transaction Processing Facility, UNIX (AIX, HP-UX, Solaris), HP NonStop, OpenVMS, Linux и Microsoft Windows.

Содержание

Промежуточное ПО для сообщения

IBM MQ — самое распространённое решение в этой области [1] для сообщения разных платформ, включая Windows, Linux, системы IBM высокого и среднего уровней, и другие системы Unix.

Доставка сообщений через очереди имеет две стороны:

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

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

У такой технологии есть несколько преимуществ:

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

Программные интерфейсы

К средствам IBM MQ можно обращаться различными способами. В число поддерживаемых программных интерфейсов входят:

  • интерфейс IBM Message Queue для C, COBOL, PL/I и Java, RPG;
  • JMS для Java;
  • интерфейс Perl (разработан MQ Engineering Group) (доступен на CPAN[2] );
  • Windows PowerShell[3] ;
  • XMS для C/C++ и .NET[4] ;
  • .NET;
  • SOAP.

Особенности

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

Понятие сообщения в MQ обобщено, например с помощью MQ можно реализовать надёжную доставку больших файлов (то есть заменить FTP).

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

Возможно преобразование данных для других архитектур и протоколов (например, порядок разрядов в байте, или кодировка символов). Такая возможность реализуется посредством специальных «выходов» (exits). Это специальные программы, которые работают на компьютере диспетчера очереди и выполняются IBM MQ при необходимости.

В IBM MQ можно с помощью специальных сообщений запускать на выполнение приложения, что позволяет реализовать архитектуру системы управляемой сообщениями (message-driven architecture).

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

Взаимодействие

Основной компонент IBM MQ — диспетчер очереди (Queue Manager). Он отвечает за хранение файлов, временную привязку, запуск приложений (triggering) и другие действия, не связанные непосредственно с перемещением данных.

Диспетчеры открыты для взаимодействия либо через прямое программное соединение (называемое bindings connection), либо через сетевое, или клиентское соединение (client connection). Очевидно, прямое соединение возможно только для программ, выполняющихся на том же компьютере, что и диспетчер очереди.

Прямое соединение быстрее, но использование сетевого позволяет сделать систему более гибкой (даже если программа выполняется на том же компьютере, при сетевом соединении её легко можно перенести на другой, разгрузив таким образом компьютер на котором выполняется диспетчер).

Для взаимодействия диспетчеров между собой организуются специальные каналы. Так как каналы однонаправленные, для обратных данных нужен второй канал. В сети TCP/IP каждому каналу назначается отдельный порт. В случае ошибок MQ автоматически восстанавливает соединение после решения проблемы.

Локальная очередь — это просто путь в файловой системе к данным, ожидающим обработки.

Удалённая очередь для данного компьютера — это очередь другого диспетчера. В качестве пункта назначения выступают именно удалённые очереди.

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

MQ и Web-службы

IBM MQ может быть основой для построения системы с сервисно-ориентированной архитектурой. Для адаптации старых программ в Web-сервисах MQ есть несколько вспомогательных утилит. Большие разнородные корпорации часто являются простым объединением слабо связанных компонентов. В таких средах одни службы должны быть доступны только в рамках одного компонента, в то время как другие могут использоваться всей сетью. IBM MQ позволяет обеспечить это.

С IBM MQ тесно связан WebSphere Message Broker (полное название WebSphere Business Integration Message Broker, ранее — MQSeries Integrator), позволяющий расширять архитектуру основанную на очередях. Так, с его помощью можно реализовать интерфейс Web-служб с поддержкой файлов описания служб WSDL.

Напишите отзыв о статье "IBM WebSphere MQ"

Ссылки

  1. В среднем сообщают о

Внешние ссылки

  • [www-01.ibm.com/software/ru/websphere/ IBM’s Product Overview]
  • [www-306.ibm.com/software/integration/wmq/ Product page]
  • Introductory Whitepaper
  • [www14.software.ibm.com/webapp/download/product.jsp?s=p&id=TDUN-49EVER&q=trial Trial code]
  • [www.redbooks.ibm.com/abstracts/sg247128.html IBM Redbook: WebSphere MQ V6 Fundamentals]
  • [public.dhe.ibm.com/software/dw/ru/download/mqv6.pdf «WebSphere MQ V6. Фундаментальные основы». Пер. с англ. Сайда Дэвис, Питер Бродхерст (2006 г.)]
  • [www-1.ibm.com/support/docview.wss?rs=493&q1=websphere&uid=swg27001107&loc=en_US&cs=utf-8&lang=en+en WebSphere MQ newsgroups]
  • [pyfourmond.free.fr/MQSeries_5.3.htm MQSeries Installation, Configuring inetd, xinet, Using JMSAdmin (In French)]
  • [www-1.ibm.com/support/docview.wss?uid=swg24006868 MQConnect for Unisys MCP]
  • [www.tinet.org/

Отрывок, характеризующий IBM WebSphere MQ

– Вы на меня не претендуете, Прохор Игнатьич? – сказал полковой командир, объезжая двигавшуюся к месту 3 ю роту и подъезжая к шедшему впереди ее капитану Тимохину. Лицо полкового командира выражало после счастливо отбытого смотра неудержимую радость. – Служба царская… нельзя… другой раз во фронте оборвешь… Сам извинюсь первый, вы меня знаете… Очень благодарил! – И он протянул руку ротному.
– Помилуйте, генерал, да смею ли я! – отвечал капитан, краснея носом, улыбаясь и раскрывая улыбкой недостаток двух передних зубов, выбитых прикладом под Измаилом.
– Да господину Долохову передайте, что я его не забуду, чтоб он был спокоен. Да скажите, пожалуйста, я всё хотел спросить, что он, как себя ведет? И всё…
– По службе очень исправен, ваше превосходительство… но карахтер… – сказал Тимохин.
– А что, что характер? – спросил полковой командир.
– Находит, ваше превосходительство, днями, – говорил капитан, – то и умен, и учен, и добр. А то зверь. В Польше убил было жида, изволите знать…
– Ну да, ну да, – сказал полковой командир, – всё надо пожалеть молодого человека в несчастии. Ведь большие связи… Так вы того…
– Слушаю, ваше превосходительство, – сказал Тимохин, улыбкой давая чувствовать, что он понимает желания начальника.
– Ну да, ну да.
Полковой командир отыскал в рядах Долохова и придержал лошадь.
– До первого дела – эполеты, – сказал он ему.
Долохов оглянулся, ничего не сказал и не изменил выражения своего насмешливо улыбающегося рта.
– Ну, вот и хорошо, – продолжал полковой командир. – Людям по чарке водки от меня, – прибавил он, чтобы солдаты слышали. – Благодарю всех! Слава Богу! – И он, обогнав роту, подъехал к другой.
– Что ж, он, право, хороший человек; с ним служить можно, – сказал Тимохин субалтерн офицеру, шедшему подле него.
– Одно слово, червонный!… (полкового командира прозвали червонным королем) – смеясь, сказал субалтерн офицер.
Счастливое расположение духа начальства после смотра перешло и к солдатам. Рота шла весело. Со всех сторон переговаривались солдатские голоса.
– Как же сказывали, Кутузов кривой, об одном глазу?
– А то нет! Вовсе кривой.
– Не… брат, глазастее тебя. Сапоги и подвертки – всё оглядел…
– Как он, братец ты мой, глянет на ноги мне… ну! думаю…
– А другой то австрияк, с ним был, словно мелом вымазан. Как мука, белый. Я чай, как амуницию чистят!
– Что, Федешоу!… сказывал он, что ли, когда стражения начнутся, ты ближе стоял? Говорили всё, в Брунове сам Бунапарте стоит.
– Бунапарте стоит! ишь врет, дура! Чего не знает! Теперь пруссак бунтует. Австрияк его, значит, усмиряет. Как он замирится, тогда и с Бунапартом война откроется. А то, говорит, в Брунове Бунапарте стоит! То то и видно, что дурак. Ты слушай больше.
– Вишь черти квартирьеры! Пятая рота, гляди, уже в деревню заворачивает, они кашу сварят, а мы еще до места не дойдем.
– Дай сухарика то, чорт.
– А табаку то вчера дал? То то, брат. Ну, на, Бог с тобой.
– Хоть бы привал сделали, а то еще верст пять пропрем не емши.
– То то любо было, как немцы нам коляски подавали. Едешь, знай: важно!
– А здесь, братец, народ вовсе оголтелый пошел. Там всё как будто поляк был, всё русской короны; а нынче, брат, сплошной немец пошел.
– Песенники вперед! – послышался крик капитана.
И перед роту с разных рядов выбежало человек двадцать. Барабанщик запевало обернулся лицом к песенникам, и, махнув рукой, затянул протяжную солдатскую песню, начинавшуюся: «Не заря ли, солнышко занималося…» и кончавшуюся словами: «То то, братцы, будет слава нам с Каменскиим отцом…» Песня эта была сложена в Турции и пелась теперь в Австрии, только с тем изменением, что на место «Каменскиим отцом» вставляли слова: «Кутузовым отцом».
Оторвав по солдатски эти последние слова и махнув руками, как будто он бросал что то на землю, барабанщик, сухой и красивый солдат лет сорока, строго оглянул солдат песенников и зажмурился. Потом, убедившись, что все глаза устремлены на него, он как будто осторожно приподнял обеими руками какую то невидимую, драгоценную вещь над головой, подержал ее так несколько секунд и вдруг отчаянно бросил ее:
Ах, вы, сени мои, сени!
«Сени новые мои…», подхватили двадцать голосов, и ложечник, несмотря на тяжесть амуниции, резво выскочил вперед и пошел задом перед ротой, пошевеливая плечами и угрожая кому то ложками. Солдаты, в такт песни размахивая руками, шли просторным шагом, невольно попадая в ногу. Сзади роты послышались звуки колес, похрускиванье рессор и топот лошадей.
Кутузов со свитой возвращался в город. Главнокомандующий дал знак, чтобы люди продолжали итти вольно, и на его лице и на всех лицах его свиты выразилось удовольствие при звуках песни, при виде пляшущего солдата и весело и бойко идущих солдат роты. Во втором ряду, с правого фланга, с которого коляска обгоняла роты, невольно бросался в глаза голубоглазый солдат, Долохов, который особенно бойко и грациозно шел в такт песни и глядел на лица проезжающих с таким выражением, как будто он жалел всех, кто не шел в это время с ротой. Гусарский корнет из свиты Кутузова, передразнивавший полкового командира, отстал от коляски и подъехал к Долохову.
Гусарский корнет Жерков одно время в Петербурге принадлежал к тому буйному обществу, которым руководил Долохов. За границей Жерков встретил Долохова солдатом, но не счел нужным узнать его. Теперь, после разговора Кутузова с разжалованным, он с радостью старого друга обратился к нему:
– Друг сердечный, ты как? – сказал он при звуках песни, ровняя шаг своей лошади с шагом роты.
– Я как? – отвечал холодно Долохов, – как видишь.
Бойкая песня придавала особенное значение тону развязной веселости, с которой говорил Жерков, и умышленной холодности ответов Долохова.
– Ну, как ладишь с начальством? – спросил Жерков.
– Ничего, хорошие люди. Ты как в штаб затесался?
– Прикомандирован, дежурю.
Они помолчали.
«Выпускала сокола да из правого рукава», говорила песня, невольно возбуждая бодрое, веселое чувство. Разговор их, вероятно, был бы другой, ежели бы они говорили не при звуках песни.
– Что правда, австрийцев побили? – спросил Долохов.
– А чорт их знает, говорят.
– Я рад, – отвечал Долохов коротко и ясно, как того требовала песня.
– Что ж, приходи к нам когда вечерком, фараон заложишь, – сказал Жерков.
– Или у вас денег много завелось?
– Приходи.
– Нельзя. Зарок дал. Не пью и не играю, пока не произведут.
– Да что ж, до первого дела…
– Там видно будет.
Опять они помолчали.
– Ты заходи, коли что нужно, все в штабе помогут… – сказал Жерков.
Долохов усмехнулся.
– Ты лучше не беспокойся. Мне что нужно, я просить не стану, сам возьму.
– Да что ж, я так…
– Ну, и я так.
– Прощай.
– Будь здоров…
… и высоко, и далеко,
На родиму сторону…
Жерков тронул шпорами лошадь, которая раза три, горячась, перебила ногами, не зная, с какой начать, справилась и поскакала, обгоняя роту и догоняя коляску, тоже в такт песни.

Возвратившись со смотра, Кутузов, сопутствуемый австрийским генералом, прошел в свой кабинет и, кликнув адъютанта, приказал подать себе некоторые бумаги, относившиеся до состояния приходивших войск, и письма, полученные от эрцгерцога Фердинанда, начальствовавшего передовою армией. Князь Андрей Болконский с требуемыми бумагами вошел в кабинет главнокомандующего. Перед разложенным на столе планом сидели Кутузов и австрийский член гофкригсрата.
– А… – сказал Кутузов, оглядываясь на Болконского, как будто этим словом приглашая адъютанта подождать, и продолжал по французски начатый разговор.
– Я только говорю одно, генерал, – говорил Кутузов с приятным изяществом выражений и интонации, заставлявшим вслушиваться в каждое неторопливо сказанное слово. Видно было, что Кутузов и сам с удовольствием слушал себя. – Я только одно говорю, генерал, что ежели бы дело зависело от моего личного желания, то воля его величества императора Франца давно была бы исполнена. Я давно уже присоединился бы к эрцгерцогу. И верьте моей чести, что для меня лично передать высшее начальство армией более меня сведущему и искусному генералу, какими так обильна Австрия, и сложить с себя всю эту тяжкую ответственность для меня лично было бы отрадой. Но обстоятельства бывают сильнее нас, генерал.

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *