Обеспечьте высочайшую надежность обмена данными
IBM MQ предлагает проверенные средства корпоративного класса для управления сообщениями, позволяющие надежно перемещать информацию между приложениями
Многие из самых успешных компаний на планете полагаются на MQ
Достоинства MQ
В каждый момент времени между приложениями, системами и службами перемещаются огромные объемы данных. Если приложение не будет готово их принять или служба будет работать с перебоями, сообщения и транзакции могут быть потеряны или продублированы, что потребует от бизнеса дополнительных расходов на устранение возникших ошибок.
IBM совершенствует MQ более 25 лет. Если сообщение не удается доставить немедленно, MQ поместит его в очередь, где оно будет дожидаться доставки. В ситуациях, когда конкурирующие продукты могут доставить сообщения дважды или вовсе не доставить их, MQ перемещает данные, включая данные файлов, ровно один раз. С MQ вы никогда не потеряете ни одного сообщения.
Сотрудничество
Выступая в качестве центра обмена сообщениями для приложений на разных платформах, MQ соединит практически все что угодно, поможет сократить затраты времени и средств на интеграцию, а также обеспечит надежную доставку сообщений.
Защита
Решение MQ спроектировано с прицелом на безопасность и оснащено встроенными средствами обеспечения высокой доступности и аварийного восстановления. Оно обеспечивает защиту данных во время хранения, при передаче и во время нахождения в памяти с помощью хорошо отлаженной системы проверки подлинности и надежного шифрования данных.
Упрощение
Поскольку MQ берет на себя вопросы подключения к получателям и доставки сообщений, разработчики могут сосредоточиться на решении более важных задач. Данное решение отличается простотой масштабирования в случае изменения объемов транзакций.
IBM WebSphere MQ
IBM WebSphere MQ — семейство сетевого ПО открытое IBM в марте 1992. Ранее известно как MQSeries: IBM переименовало его в 2002 для ассоциации с линейкой продуктов WebSphere. WebSphere MQ — промежуточное ПО для сообщения (Message Oriented Middleware). Оно позволяет независимым и, возможно, работающим не одновременно, приложениям в распределённой системе обмениваться данными друг с другом. MQ работает на всех основных платформах: z/OS (мейнфрейм), OS/400 (IBM System i or AS/400), Transaction Processing Facility, UNIX (AIX, HP-UX, Solaris), HP NonStop, OpenVMS, Linux и Microsoft Windows.
Содержание
Промежуточное ПО для сообщения
WebSphere MQ — самое распространённое решение в этой области [1] для сообщения разных платформ, включая Windows, Linux, системы IBM высокого и среднего уровней, и другие системы Unix. WebSphere MQ также называют просто MQ или MQSeries.
Доставка сообщений через очереди имеет две стороны:
Диспетчер очереди, хотя и не обязателен в таком ПО, всегда используется в Websphere MQ и является системной службой, обеспечивающей логический контейнер для очереди сообщений. Он отвечает за передачу данных другим диспетчерам через специальные каналы сообщений.
У такой технологии есть несколько преимуществ:
Программные интерфейсы
К средствам WebSphere MQ можно обращаться различными способами. В число поддерживаемых программных интерфейсов входят:
Особенности
WebSphere MQ обеспечивает гарантированную доставку сообщений между системами на разных платформах. Акцент делается на надёжность передачи, сообщения никогда не должны быть потеряны при правильной конфигурации MQ.
Понятие сообщения в MQ обобщено, например с помощью MQ можно реализовать надёжную доставку больших файлов (то есть заменить FTP).
MQ позволяет иметь архитектуру не зависящую от времени (то есть без необходимости явной синхронизации). Сообщения могут посылаться одним приложением другому, независимо от того, работает последнее или нет в данный момент. Если оно не работает, сообщение попадёт в очередь и будет доставлено по назначению когда приложение-получатель станет доступно. Порядок сообщений сохраняется (причём можно настроить систему таким образом, чтобы сообщения доставлялись в обратном порядке, то есть сначала те сообщения, которые были посланы последними), также имеется система приоритетов сообщений.
Возможно преобразование данных для других архитектур и протоколов (например, порядок разрядов в байте, или кодировка символов). Такая возможность реализуется посредством специальных «выходов» (exits). Это специальные программы, которые работают на компьютере диспетчера очереди и выполняются WebSphere MQ при необходимости.
В WebSphere MQ можно с помощью специальных сообщений запускать на выполнение приложения, что позволяет реализовать архитектуру системы управляемой сообщениями (message-driven architecture).
В отличие от электронной почты, MQ сама отвечает за определение назначения сообщений, поэтому обработку отправленных сообщений можно перенести в отдельное приложение на другом компьютере. MQ имеет продуманную архитектуру маршрутизации, которая в частности позволяет доставлять сообщения по альтернативному пути через сеть диспетчеров MQ. MQ может быть реализован в виде кластера, в котором обработка сообщений выполняется несколькими экземплярами для увеличения производительности.
Взаимодействие
Основной компонент WebSphere MQ — диспетчер очереди (Queue Manager). Он отвечает за хранение файлов, временную привязку, запуск приложений (triggering) и другие действия, не связанные непосредственно с перемещением данных.
Диспетчеры открыты для взаимодействия либо через прямое программное соединение (называемое bindings connection), либо через сетевое, или клиентское соединение (client connection). Очевидно, прямое соединение возможно только для программ, выполняющихся на том же компьютере, что и диспетчер очереди.
Прямое соединение быстрее, но использование сетевого позволяет сделать систему более гибкой (даже если программа выполняется на том же компьютере, при сетевом соединении её легко можно перенести на другой, разгрузив таким образом компьютер на котором выполняется диспетчер).
Для взаимодействия диспетчеров между собой организуются специальные каналы. Так как каналы однонаправленные, для обратных данных нужен второй канал. В сети TCP/IP каждому каналу назначается отдельный порт. В случае ошибок MQ автоматически восстанавливает соединение после решения проблемы.
Локальная очередь — это просто путь в файловой системе к данным, ожидающим обработки.
Удалённая очередь для данного компьютера — это очередь другого диспетчера. В качестве пункта назначения выступают именно удалённые очереди.
Для передачи данных на другой диспетчер, сообщение помещается сначала во временную очередь на передачу данных связанную с каналом, и затем передается в удалённую очередь. Если сообщение было передано без ошибок, оно удаляется из очереди на передачу. При получении сообщения из канала определяется какому диспетчеру оно направлено и в какую очередь и, если это не диспетчер принявший сообщение, оно направляется далее. Если данный диспетчер является конечным, сообщение будет размещено в указанной очереди (если она существует, иначе — в очередь невостребованных сообщений). Для повышения эффективности сообщения могут намеренно оставляться в очереди до тех пор пока её размер не станет оптимальным для передачи в данных условиях.
MQ и Web-службы
WebSphere MQ может быть основой для построения системы с сервисно-ориентированной архитектурой. Для адаптации старых программ в Web-сервисах MQ есть несколько вспомогательных утилит. Большие разнородные корпорации часто являются простым объединением слабо связанных компонентов. В таких средах одни службы должны быть доступны только в рамках одного компонента, в то время как другие могут использоваться всей сетью. WebSphere MQ позволяет обеспечить это.
Система интеграции приложений IBM WebSphere MQ
Основные принципы работы WebSphere MQ
Основные определения и концепции
Введем ряд базовых понятий, которые будут использоваться далее.
Содержательная часть сообщения представляет собой данные, которые посылают/принимают непосредственно приложения. Для обеспечения надежности в процессе передачи сообщения содержательная часть делится на сегменты, которые при необходимости могут передаваться как логически независимые единицы.
Как происходит передача сообщений между приложениями
Передача информации между различными очередями сообщений происходит с использованием специальных каналов передачи сообщений. Каналы являются односторонними, для полноценного обмена информацией должны быть определены два канала передачи информации.
Сообщения передаются по каналам с использованием специализированного протокола передачи МСP (Message Channel Protocol). Непосредственно взаимодействие с каналом осуществляется с помощью программного продукта MCA (Message Channel Agent), реализующего все низкоуровневые функции взаимодействия. В процессе передачи менеджер очереди сообщений помещает сообщение в канал исходящих сообщений, осуществляется процесс передачи, после чего сообщение записывается во входящую очередь приложения-адресата. В ходе передачи сообщения менеджер очереди по информации, находящейся в служебной части сообщения, определяет направление передачи, и, используя специальные протоколы и таблицы маршрутизации, пересылает сообщение в соответствующую очередь. Схематически процесс передачи сообщений показан на рис. 6.19.
Таким образом, система менеджеров сообщений WebSphere MQ является полностью самодостаточной и не требует от приложений знать что-либо о ее внутренней организации.
Проектировщиков систем на базе MQ привлекают еще два важных свойства: гарантированность доставки информации и многоплатформенность.
Гарантированность доставки
Гарантированность доставки информации обеспечивается использованием протокола MCP и средствами восстановления серверов.
Websphere MQ
Содержание
Промежуточное ПО для сообщения
Доставка сообщений через очереди имеет две стороны:
Диспетчер очереди, хотя и не обязателен в таком ПО, всегда используется в Websphere MQ и является системной службой обеспечивающей логический контейнер для очереди сообщений. Он отвечает за передачу данных другим диспетчерам чеез специальные каналы сообщений.
У такой технологии есть несколько преимуществ:
Программные интерфейсы
К средствам WebSphere MQ можно обращаться различными способами. В число поддерживаемых программных интерфейсов входят:
Также реализованы многие другие интерфейсы, однако они не поддерживаются IBM.
Особенности
WebSphere MQ обеспечивает гарантированную доставку сообщений между системами на разных платформах. Ударение делается на надёжность передачи, сообщения никогда не должны быть потеряны при правильной конфигурации MQ.
Понятие сообщения в MQ обобщено, например с помощью MQ можно реализовать надёжную доставку больших файлов (т.е. заменить
Возможно преобразование данных для других архитектур и протоколов (например, порядок разрядов в байте, или кодировка символов). Это реализуется посредством специальных «выходов» (exits). Это специальные программы работающие на компьютере диспетчера очереди. и выполняются WebSphere MQ при необходимости.
В WebSphere MQ можно с помощью специальных сообщений запускать на выполнение приложения, что позволяет реализовать архитектуру системы управляемой сообщениями (message-driven architecture).
В отличие от электронной почты, MQ сама отвечает за определение назначения сообщений, поэтому обработку отправленных сообщений можно перенести в отдельное приложение на другом компьютере. MQ имеет продуманную архитектуру маршрутизации, которая в частности позволяет доставлять сообщения по альтернативному пути через сеть диспетчеров MQ. MQ может быть реализован в виде кластера, в котором обработка сообщений выполняется несколькими экземплярами для увеличения производительности.
Взаимодействие
Диспетчеры открыты для взаимодействия либо через прямое программное соединение (называемое bindings connection), либо через сетевое, или клиентское соединени (client connection). Очевидно, прямое соединение возможно только для программ выполняющихся на одном компьютере, что и диспетчер очереди.
Прямое соединение быстрее, но использование сетевого позволяет сделать систему более гибкой (даже если программа выполняется на том же компьютере, при сетевом соединении её легко можно перенести на другой, разгрузив таким образом компьютер на котором выполняется диспетчер).
Для взаимодействия диспетчеров между собой организуются специальные каналы. Т.к. каналы однонаправленные, для обратных данных нужен второй канал. В сети TCP/IP каждому каналу назначается отдельный порт. В случае ошибок MQ автоматически восстанавливает соедиение после решения проблемы.
MQ и Web-службы
WebSphere MQ может быть основой для построения системы с сервисно-ориентированной архитектурой. Для адаптации старых программ в Web-сервисы MQ есть несколько вспомогательных утилит. Большие разнородные корпорации часто яляются простым обхединением слабо связанных компонентов. В таких средах одни службы должны быть доступны только в рамках одного компонента, в то время как другие могут использоваться всей сетью. WebSphere MQ позволяет обеспечить это.
С WebSphere MQ тесно связан WebSphere MQ Message Broker, позволяющий расширять архитектуру основанную на очередях. Так, с его помощью можно реализовать интерфейс Web-служб с поддержкой файлов описания служб WSDL.
Создание приложений для доступа к инфраструктуре WebSphere MQ
Лекция посвящена следующим вопросам:
4.1. Кроссплатформенная поддержка
Образующие инфраструктуру WebSphere MQ менеджеры очередей и приложения, стремящиеся получить доступ к инфраструктуре, могут располагаться на целом спектре различных типов аппаратуры и операционных систем. Комбинация той или иной разновидности оборудования и конкретной операционной системы обозначается как платформа.
Менеджер очередей не обязательно должен находиться на том же сервере, что и подключенные приложения. Если менеджер размещен на другом сервере, для подключения приложения к менеджеру очередей WebSphere MQ необходима клиентская составляющая продукта. Силами IBM и компаний со статусом IBM Business Partner клиентские продукты WebSphere MQ могут поддерживаться на большем числе платформ, чем менеджеры очередей сообщений.
4.2. Интерфейсы прикладного программирования (API)
4.2.1. Интерфейс очередей сообщений (MQI)
Основным API-интерфейсом WebSphere MQ является интерфейс очередей сообщений ( MQI – message queue interface).
MQI – это процедурный API, а будучи таковым, он подходит для приложений, созданных на процедурных языках программирования. Процедурным API называется интерфейс, в котором контекст и данные, необходимые любой функции, передаются ей в момент вызова. Приложение должно контролировать весь контекст и обеспечивать наличие мест хранения всех элементов данных самостоятельно.
Непосредственное использование MQI возможно из приложений, реализованных на следующих языках программирования:
Другие описанные в этом разделе API основаны на гибкости MQI и предоставляют ряд интерфейсов, позволяющих пользоваться преимуществами современных методов и языков программирования.
4.2.2. API-интерфейсы на базе объектной модели WebSphere MQ
В объектно-ориентированных языках программирования действия, состояния, данные могут быть связаны с логическими объектами, над которыми эти действия совершаются. Выбор такого подхода при создании приложения позволяет структуре самого приложения быть логически ближе к его функциональному назначению.
WebSphere MQ предоставляет следующий набор объектно-ориентированных API-интерфейсов.
4.2.3. Стандартизованные API-интерфейсы для WebSphere MQ
Как было сказано в «разделе 3.2.7» «Стандартизованные API-интерфейсы», стандартизованные API для обращения к WebSphere MQ могут придать дополнительную гибкость приложениям, в которых они используются.
4.2.4. Индивидуальные адаптеры
Если WebSphere MQ не имеет интерфейса для конкретного языка программирования или программного компонента инфраструктуры, который необходим приложению, для него может быть создан индивидуальный адаптер (custom adapter).
Примером подобного адаптера является реализованная в пакете SupportPac MA89 поддержка языка Perl для MQSeries 






