Службы очереди сообщений
Службы очереди сообщений (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 можно интегрировать приложение MSYIQ с формами Exchange и клиентами MAPI. Транспорт MSMQ RPC можно применять для создания надежных приложений, использующих вызовы RPC.