- Websphere MQ
-
IBM WebSphere MQ -- семейство сетевого ПО открытое MQSeries: IBM переименовало его в 2002 для ассоциации с линейкой продуктов промежуточное ПО для сообщения (Message Oriented Middleware). Оно позволяет независимым и, возможно, работающим не одновременно, приложениям в распределённой системе обмениваться данными друг с другом. MQ работает на всех основных платформах: z/OS (мейнфрейм), OS/400 (IBM System i or AS/400), Transaction Processing Facility, HP-UX, Solaris), HP NonStop, Linux и Microsoft Windows.
Содержание
Промежуточное ПО для сообщения
WebSphere MQ - самое распространённое решение в этой области[1] для сообщения разных пдатформ, включая Windows, Linux, системы IBM высокго и среднего уровня, и другие системы Unix. WebSphere MQ также называют просто MQ или MQSeries.
Доставка сообщений через очереди имеет две стороны:
- Сообщения - это наборы двоичных или текстовых файлов, несущих определённый смысл для компонентов системы. Как и в случае с другими протоколами, служебная информация о хранении, маршрутизации и доставке, добавляется к сообщениям при их создании, и удаляется из них перед пердачей их непосредственно приложению-получателю.
- Очереди сообщений - это объекты хранящие сообщения в приложении.
Диспетчер очереди, хотя и не обязателен в таком ПО, всегда используется в Websphere MQ и является системной службой обеспечивающей логический контейнер для очереди сообщений. Он отвечает за передачу данных другим диспетчерам чеез специальные каналы сообщений.
У такой технологии есть несколько преимуществ:
- Доставка сообщений не "завязана" на протоколы пакетной передачи данных, такие как TCP/IP. Это позволяет обеспечивать асинхронность доставки и не требует тесной связи приложений.
- Сообщения доставляются гарантированно и только единожды, независимо от возможных ошибок в сети.
Программные интерфейсы
К средствам WebSphere MQ можно обращаться различными способами. В число поддерживаемых программных интерфейсов входят:
- интерфейс IBM Message Queue для C, COBOL, PL/I и
- JMS для Java
- интерфейс Morgan Stanley) (доступен на [2]).
- Windows PowerShell[3]
- XMS для C/C++ и .NET[4]
- .NET
- SOAP
Также реализованы многие другие интерфейсы, однако они не поддерживаются IBM.
Особенности
WebSphere MQ обеспечивает гарантированную доставку сообщений между системами на разных платформах. Ударение делается на надёжность передачи, сообщения никогда не должны быть потеряны при правильной конфигурации MQ.
Понятие сообщения в MQ обобщено, например с помощью 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 MQ Message Broker, позволяющий расширять архитектуру основанную на очередях. Так, с его помощью можно реализовать интерфейс Web-служб с поддержкой файлов описания служб WSDL.
Ссылки
- ↑ В среднем сообщают о ~40% доле рынка http://www.capitalware.biz/forecast_AI_market.html
- ↑ MQSeries - Perl extension for MQSeries support - search.cpan.org
- ↑ MO74: WebSphere MQ - Windows Powershell Library. Проверено 6 декабря 2007.
- ↑ Introducing XMS -- The IBM Message Service API. Проверено 6 декабря 2007.
Внешние ссылки
Wikimedia Foundation. 2010.