Сведения об очередях сообщений и о технологии обмена сообщениями
Обновлен: Ноябрь 2007
Очереди сообщений Microsoft Windows предоставляют разработчикам приложений легкий, быстрый и надежный способ обмена информацией с приложениями путем обмена сообщениями. Для тех, кто не знаком с технологией MessageQueue, на данной странице представлен краткий обзор основных терминов и понятий.
Ключевые понятия технологии обмена сообщениями
message — это единица данных, отправляемых одним компьютером другому компьютеру. Сообщение может быть очень простым, состоящим из одной строки текста, или более сложным, включающим даже встроенные объекты.
Сообщения отправляются в очереди. Очередь сообщений — это контейнер, в котором хранятся сообщения в процессе их пересылки. Менеджер очереди сообщений выполняет роль посредника, передавая сообщения из источника в место назначения. Главное назначение очереди заключается в создании маршрута и гарантии доставки сообщений. Если получатель недоступен во время отправки сообщения, очередь хранит сообщение до тех пор, пока оно не будет доставлено.
Технология обмена сообщениями Microsoft Message Queuing предоставляет функции обмена сообщениями и использования очередей сообщений для любых приложений. Кроме того, данная технология обеспечивает возможность обмена сообщениями между любыми компьютерами, на которых установлена операционная система Microsoft Windows, вне зависимости от того, объединены они в одну локальную сеть или нет и находятся ли на связи в одно и то же время.
Сеть очередей сообщений — это любая группа компьютеров, которые имеют возможность обмениваться сообщениями друг с другом. Разные компьютеры в сети играют разные роли в организации процесса обмена сообщениями. Некоторые компьютеры предоставляют маршрутную информацию для определения пути отправки сообщений, на других хранится ключевая информация обо всей системе, а третьи просто отправляют и принимают сообщения.
Во время установки системы очередей сообщений администратор решает, какие серверы могут обмениваться информацией друг с другом, и устанавливает специальные роли для определенных серверов. Компьютеры, объединенные в сеть очередей сообщений, называются узлами и связаны друг с другом при помощи ссылок на узлы. Каждая ссылка на узел имеет свою стоимость, которая устанавливается администратором и от которой зависит скорость прохождения сообщений по данной ссылке.
Администратор системы очередей сообщений также присваивает одному или нескольким компьютерам сети роль маршрутных серверов. Маршрутный сервер определяет, каким путем будет доставлено сообщение, оценивая стоимость разных ссылок на узлы и устанавливая самый быстрый и эффективный путь для доставки сообщения через несколько узлов.
На следующем рисунке показана типичная конфигурация узлов системы очередей сообщений и схема их взаимодействия:
Маршрутизация сообщений между узлами
Совет. |
---|
В процессе разработки можно не беспокоиться о деталях маршрутизации, поскольку эффективная доставка сообщений может быть настроена в сети очередей сообщений администраторами. |
Типы очередей
Существуют две основные категории очередей: очереди, созданные пользователями сети, и системные очереди. Пользовательские очереди делятся на следующие типы:
Общие очереди тиражируются по всей сети очередей сообщений и потенциально могут быть доступны для всех узлов, подключенных к сети.
Частные очереди не публикуются по всей сети. Они доступны только для локального компьютера, на котором расположены. Частные очереди доступны только для тех приложений, которые знают полный путь или метку очереди.
Административные очереди содержат сообщения, подтверждающие получение отправленных сообщений внутри конкретной сети очередей сообщений. При необходимости следует указать административную очередь для использования компонентами MessageQueue.
Очереди ответов содержат ответные сообщения, которые отправляются приложению-отправителю, когда исходное сообщение получено. При необходимости следует указать очередь ответов для использования компонентами MessageQueue.
Очереди, созданные системой, как правило, относятся к одной из следующих категорий:
Очереди журнала выборочно хранят копии отправляемых сообщений и копии сообщений, удаленных из очереди. На каждом клиенте очередей сообщений есть одна очередь журнала, которая хранит копии сообщений, отправленных с данного компьютера. На сервере для каждой отдельной очереди создается своя очередь журнала. Данный журнал отслеживает сообщения, удаленные из связанной с ним очереди.
Архивная очередь хранит копии сообщений, которые невозможно доставить, или сообщений, срок действия которых истек. Если такое сообщение было транзакционным, оно хранится в архивной очереди особого типа — в транзакционной архивной очереди. Сообщения с истекшим сроком действия хранятся на том компьютере, на котором он истек. Дополнительные сведения о периодах ожидания и сообщениях с истекшим сроком действия см. в разделе Свойства сообщения по умолчанию.
Очереди отчетов содержат сообщения о том, каким маршрутом сообщение было доставлено до места назначения, а также могут содержать тестовые сообщения. На одном компьютере может быть только одна очередь отчетов.
Частные системные очереди — это серии частных очередей, которые содержат административные сообщения и уведомления, которые требуются системе для обработки операций по обмену сообщениями.
В большинстве функций, выполняемых в приложениях, используются общие очереди и содержащиеся в них сообщения. Однако в ежедневной работе, вероятнее всего, будет использоваться несколько разных системных очередей, в зависимости от потребностей приложения в добавлении записей в журнал, создании подтверждений и других специальных методах обработки.
Синхронная и асинхронная связь
Связь между очередями изначально является асинхронной в том смысле, что за отправку сообщений в очередь и их доставку из очереди отвечают отдельные процессы. Операции по приему сообщений также можно выполнять асинхронно. Адресат сообщения может вызвать метод BeginReceive для любой конкретной очереди и немедленно перейти к другим заданиям, не дожидаясь ответа. Совсем по-другому работает синхронная связь.
При использовании синхронной связи отправитель запроса должен дождаться ответа от предполагаемого получателя перед тем, как перейти к другим заданиям. Продолжительность ожидания полностью зависит от того, сколько времени уйдет у получателя на обработку запроса и отправку ответа.
Примечание. |
---|
Не следует путать синхронное и асинхронное извлечение сообщений с отправкой сообщений. Сообщения отправляются всегда асинхронно. |
Дополнительные сведения об асинхронной обработке в очередях сообщений см. в разделе Асинхронная обработка сообщений.
Безопасность обмена сообщениями
Обеспечить защиту содержания отправляемых и получаемых сообщений можно следующими способами:
Можно использовать проверку подлинности для проверки источника сообщений, получаемых приложениями.
Можно использовать шифрование для защиты сообщений от несанкционированного доступа или использования.
Можно использовать права управления доступом для запрета пользователям (с помощью безопасности, основанной на списке управления доступом) и коду (с помощью управления доступом для кода) отправлять сообщения в определенную очередь компьютера или читать сообщения из нее.
Можно использовать аудит для записи имен пользователей, пытавшихся получить доступ к объектам очередей сообщений, типов операций, которые они пытались выполнить, и того, были ли данные попытки успешны или нет.
Дополнительные сведения см. в разделе Безопасность очереди сообщений.
Установка системы очередей сообщений
Для работы с очередями сообщений через код или через Обозреватель серверов на компьютере должна быть установлена система очередей сообщений Message Queuing. Инструкции по установке системы очередей сообщений можно найти в документации по Windows 2000 или Windows NT. Во время установки необходимо указать, создается ли новый ведущий сервер очередей сообщений, который будет функционировать как концентратор новой сети, независимый клиент уже существующей сети или зависимый клиент уже существующей сети. В большинстве случаев речь идет не о создании новой сети, а о подключении к уже существующей сети очередей сообщений, которая используется в компании или рабочей группе.
Источники справочной информации
Остальные страницы данной главы содержат необходимую информацию по использованию компонентов очередей сообщений в приложениях. Если требуется дополнительная информация о технологиях обмена сообщениями за рамками Visual Studio или .NET Framework, множество источников информации есть в библиотеке MSDN и на веб-узле корпорации Майкрософт:
Информация о |
См. данную страницу в документации по Windows 2000 Server |
---|---|
Настройка сети очередей сообщений |
Установка системы очередей сообщений |
Основные понятия системы очередей сообщений |
Понимание системы очередей сообщений |
Настройка производительности системы очередей сообщений |
Администрирование системы очередей сообщений |