Компания IBM
Опубликован: 14.12.2004 | Доступ: свободный | Студентов: 1531 / 139 | Оценка: 4.36 / 3.98 | Длительность: 16:32:00
ISBN: 978-5-9556-0031-4
Специальности: Системный архитектор
Лекция 2:

Системы очередей сообщений

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

Основные компоненты и особенности работы системы очередей сообщений

Основными элементами системы очередей сообщений являются:

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

Введем следующие определения.

Сообщения (Message) представляют собой структуру данных, состоящую из заголовка сообщения (MQMessageDescriptor) и прикладных данных (рис.1.3). Заголовок содержит контрольную и адресную информацию о сообщении и его характеристиках. С помощью этой информации менеджер очередей решает, каким образом обрабатывать и куда надо передавать сообщение .

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

Структура сообщения

Рис. 1.3. Структура сообщения

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

Очередь сообщений (Queue) - основное место хранения и обработки сообщений. Физическое управление очередями полностью скрыто от прикладных программ. Приложения имеют доступ к очередям через программный интерфейс MQI (Message Queue Interface). Для передачи критически важной информации используются "постоянные" (persistence) сообщения, которые журналируются и восстанавливаются после рестарта менеджера сообщений. Для повышения производительности системы очередей сообщений поддерживает также и "непостоянные" сообщения, которые содержатся в оперативной памяти, не журналируются и могут быть потеряны в результате системного или аппаратного сбоя.

Менеджер очередей (Queue Manager) является главным серверным компонентом и отвечает за управление очередями сообщений и прием вызовов от прикладных программ. Внутренняя реализация менеджеров очередей для каждой операционной системы своя. Однако с функциональной точки зрения менеджеры очередей поддерживают единый программный интерфейс, единую систему адресации и обмена данных через каналы, и единую систему администрирования.

Прикладной программный интерфейс

Прикладные программы взаимодействуют с WebSphereMQ через программный интерфейс MQI (Message Queue Interface). MQI имеет единую структуру на всех платформах и основан на простой системе из десятка команд:

  • команда подключения к менеджеру очередей MQCONN
  • команда открытия очереди MQOPEN
  • команда помещения сообщения в очередь MQPUT
  • команда выборки сообщений из очереди MQGET
  • вспомогательные команды запроса и установки атрибутов очередей MQINQ и MQSET
  • команды успешного завершения транзакции MQCMIT
  • команда отката транзакции назад MQBACK
  • команда закрытия очереди MQCLOSE
  • команда отсоединения приложения от менеджера очередей MQDISC.

При создании приложений, обеспечивается поддержка интерфейса MQI для языков программирования: C/С++, Java, SmallTalk, Cobol, PL/1, Lotus LSX, Basic. Надо отметить, что разработка приложений для систем очередей сообщений имеет свои особенности, приведенные в последующих лекциях.

Распределенная передача сообщений: Как сообщение попадает в очередь, если очередь находится на другой системе?

Пользовательские приложения не обязаны знать внутреннюю структуру системы очередей сообщений, где физически размещены очереди, какие коммуникации существуют между менеджерами очередей. Приложение, обращаясь к менеджеру очередей, всегда получает доступ только к локальным очередям сообщений. Когда приложение посылает сообщение в очередь, расположенную на удаленной системе, то сообщение записывается в специальную транспортную очередь (transmission queue), что обеспечивает надежное сохранение сообщения, а уже затем сообщение переправляется по каналу передачи сообщений другому менеджеру на удаленную систему.

На рис.1.4 показаны основные элементы, участвующие в передаче сообщения - от приложения к менеджеру очередей A и затем в удаленную очередь на менеджере очередей B.

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >