IBM WebSphere MQ

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Websphere logo.png

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

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

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

Программные интерфейсы[править | править вики-текст]

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

Также реализованы многие другие интерфейсы, однако они не поддерживаются IBM[источник не указан 1906 дней].

Особенности[править | править вики-текст]

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 позволяет обеспечить это.

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

Ссылки[править | править вики-текст]

Внешние ссылки[править | править вики-текст]