Службы очереди сообщений


Службы очереди сообщений (Microsoft Message Queuing Services, MSMQ) — сервис, входящий в стандартную поставку Windows Server 2003.
С помощью MSMQ приложения, работающие в разное время, могут связываться через разнородные сети и системы, способные временно работать автономно. Приложения посылают сообщения MSMQ и используют очереди MSMQ — это позволяет быть уверенным, что сообщение рано или поздно достигнет адресата. MSMQ обеспечивает гарантированную доставку сообщений, интеллектуальную маршрутизацию, защиту и передачу сообщений, основанную на приоритетах.
При помощи MSMQ конечные пользователи могут связываться через автономные сети и системы, вне зависимости от текущего состояния поддерживающих связь приложений и систем. При помощи MSMQ разработчики могут сосредоточиться на программировании бизнес-логики, а не решать проблемы работы с сетями, поскольку MSMQ обеспечивает гарантированную доставку. Администраторы систем при помощи MSMQ могут эффективно управлять большими, сложными сетями очередей сообщений.
Программные продукты с такими возможностями часто называют программным обеспечением поддержки очередей сообщений, программным обеспечением с промежуточным накоплением или средствами среднего уровня, ориентированными на сообщения (MOM, Message-Oriented Middleware).
Особенности и возможности службы MSMQ перечислены ниже.

  •  Интеграция со службами Windows Server 2003. Поддерживается служба Active Directory, в которой хранятся отдельные объекты MSMQ. Клиенты MSMQ могут напрямую обращаться к каталогу для получения необходимой информации (используя протокол LDAP).
  •  Доставка сообщений по HTTP. В рамках MSMQ 3.0 реализован новый протокол (основанный на XML-сообщениях), позволяющий осуществлять доставку сообщений при помощи протокола HTTP.
  •  Триггеры. Триггеры представляют собой механизм, посредством которого факт прибытия сообщения в некоторую очередь может быть ассоциирован с некоторой ответной реакцией. Эта реакция может зависеть от содержимого сообщения.
  •  Отправка сообщения множеству получателей. Одно сообщение может быть адресовано нескольким получателям. Перечень получателей сообщения может быть определен в рамках объекта каталога, ассоциированного со списком рассылки (distribution list). Доставка сообщений нескольким получателям реализуется при этом на низком уровне. В частности могут быть задействованы механизмы группового вещания.
  •  Поддержка рабочих групп. Механизм MSMQ может быть развернут в рамках рабочей группы (т. е. без образования домена).
  •  Гарантированная доставка. Сообщения помещаются в хранящуюся на диске очередь, что обеспечивает гарантированную доставку сообщений.
  •  Поддержка приоритетов трафика. Приоритеты сообщений позволяют срочному или важному трафику вытеснять менее важный, что гарантирует адекватное время ответа критическим приложениям за счет менее важных приложений.
  •  Транзакции. Имеется возможность использования транзакций MSMQ, т. е. можно объединить несколько действий MSMQ в транзакцию и обеспечить гарантированную доставку сообщений, а также то, что они будут доставлены не более одного раза или что доставленные сообщения будут успешно извлечены из очереди адресатом.
  •  Динамические очереди. Администраторы могут изменять свойства очередей без воздействия на приложения передачи сообщений.
  •  Маршрутизация. MSMQ поддерживает интеллектуальную маршрутизацию, которая основана на физической топологии сети, группировке сеансов и на обеспечении транспортной связности. Группировка сеансов облегчает эффективное использование медленных линий.
  •  Широкая интеграция систем. Приложения MSMQ могут выполняться на целом ряде аппаратных платформ, выпускаемых сторонними производителями.
  •  Безопасность. MSMQ поддерживает механизмы безопасности: управление доступом, аудит, шифрование и аутентификацию. Управление доступом реализовано с применением системы безопасности Windows Server 2003 и цифровых подписей. Аудит реализован при помощи службы регистрации событий Windows Server 2003. Шифрование и аутентификация (использование цифровых подписей) обеспечиваются при помощи механизмов открытых и закрытых ключей.

Прикладной интерфейс MSMQ позволяет разрабатывать приложения MSMQ на языке С или C++. MSMQ также включает элементы управления СОМ, которые можно применять для создания приложений MSMQ в Microsoft Visual Java (VJ), Visual Basic (VB) или любых других приложений-контейнеров СОМ (например, Microsoft Access или Borland/Inprise Delphi). При помощи Microsoft ASP и Microsoft IIS можно интегрировать MSMQ-приложение с веб-страницами и формами, содержащими элементы управления СОМ. При помощи MAPI Transport Provider и Exchange Connector можно интегрировать приложение MSY1Q с формами Exchange и клиентами MAPI. Транспорт MSMQ RPC можно применять для создания надежных приложений, использующих вызовы RPC.