Основные понятия агента транспорта в Exchange 2013

Сведения о том, как конвейер агента транспорта и архитектура роли сервера в Exchange 2013 влияют на разработку агента транспорта, а также о классах, которые можно использовать для разработки агентов транспорта.

Область применения: Exchange Server 2013 г.

Библиотеку классов, предоставленную в Exchange Server 2013 г., можно использовать для реализации агентов транспорта, которые регистрируют события и выполняют действия с сообщениями по мере их передачи через конвейер транспорта. Агенты транспорта также можно использовать для изменения сообщений и преобразования содержимого.

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

Агенты транспорта в конвейере транспорта

Агенты транспорта являются производными от одного из следующих трех классов:

Транспортный конвейер относится к потоку данных сообщений в пределах организации Exchange 2013. Конвейер состоит из служб, перечисленных в следующей таблице.

Таблица 1. Службы конвейеров транспорта

Служба Описание Поддерживаемые классы
Внешний транспорт
Выполняется на всех серверах клиентского доступа и выступает в качестве прокси-сервера без отслеживания состояния для всего входящего и исходящего трафика SMTP для организации Exchange 2013. Служба внешнего транспорта не проверяет содержимое сообщений и не ставит в очередь сообщения локально. Он взаимодействует со службой транспорта на сервере почтовых ящиков.
SmtpReceiveAgent
Transport
Выполняется на всех серверах почтовых ящиков и похож на роль транспортного сервера-концентратора в Exchange Server 2010. Транспортная служба маршрутизирует сообщения между собой и службами транспорта почтовых ящиков и внешнего транспорта. Эта служба не взаимодействует напрямую с базами данных почтовых ящиков.
SmtpReceiveAgent
RoutingAgent
DeliveryAgent
Транспортная служба почтовых ящиков.
Выполняется на всех серверах почтовых ящиков и состоит из двух отдельных служб: отправка транспорта почтовых ящиков и доставка транспорта почтовых ящиков. Доставка транспорта почтового ящика получает smtp-сообщения от транспортной службы и подключается к базе данных почтовых ящиков с помощью удаленного вызова процедуры Exchange (RPC) для доставки сообщения. Отправка транспорта почтового ящика подключается к базе данных почтовых ящиков с помощью RPC для получения сообщений и отправляет сообщения через SMTP в транспортную службу.
Нет.

События транспорта

Агенты транспорта реализуются, сначала регистрируя событие, а затем выполняя действие при возникновении этого события. Каждый из трех типов агентов может регистрироваться для разного набора событий.

На следующем рисунке показано, где в транспортном конвейере агенты транспорта могут регистрироваться для событий.

Рис. 1. События транспорта

Изображение, показывающее поток сообщений через конвейер транспорта и события, для которых может зарегистрироваться каждый агент, начиная с событий SMTP для агента SmtpReceivedAgent, событий категоризатора для агента RoutingAgent и заканчивая событиями доставки для агента DeliveryAgent.

Когда сообщение входит в транспортный конвейер, агент транспорта, производный от класса SmtpReceiveAgent , может действовать с сообщением во время любого из событий SMTP, зарегистрированных агентом. Агент, производный от класса RoutingAgent , может действовать с любым из четырех событий классификатора, для которого он зарегистрировал. Агент, производный от класса DeliveryAgent , может действовать с сообщением во время любого из событий доставки, для которого он зарегистрирован.

Агенты транспорта и роли сервера

Изменения в архитектуре роли сервера в Exchange 2013 влияют на агенты транспорта и на то, что могут делать агенты транспорта. Exchange 2013 включает следующие роли сервера:

  • Сервер почтовых ящиков — включает протоколы клиентского доступа, транспортную службу, базы данных почтовых ящиков и компоненты единой системы обмена сообщениями. Сервер почтовых ящиков напрямую взаимодействует с доменные службы Active Directory (AD DS), серверами клиентского доступа и почтовыми клиентами, такими как Outlook.

  • Сервер клиентского доступа — обеспечивает проверку подлинности, ограниченное перенаправление, службы прокси-сервера и протоколы клиентского доступа, такие как HTTP, POP, IMAP и SMTP.

  • Пограничный транспортный сервер — маршрутизирует электронную почту в организацию и из нее. Пограничные транспортные серверы обычно располагаются по периметру топологии Exchange.

Такая объединенная структура сокращает количество серверов, которые необходимо развернуть в среде Exchange 2013. Администраторам больше не нужно развертывать серверы транспорта и клиентского доступа на каждом сайте Active Directory, который содержит сервер почтовых ящиков, и им больше не нужно обновлять все роли сервера, чтобы воспользоваться преимуществами новых функций.

Эти изменения в архитектуре роли сервера могут потенциально повлиять на то, где в конвейере агент может реагировать на события. Если вы создали агенты транспорта для версий Exchange, предшествующих Exchange 2013, обязательно просмотрите изменения архитектуры, чтобы определить, нужно ли вносить какие-либо изменения в агенты.

На следующем рисунке показано, как изменения архитектуры в Exchange 2013 приводят к упрощенному консолидированному конвейеру транспорта. На этом рисунке серверы клиентского доступа помечены как CAS. Серверы почтовых ящиков помечены как MBX.

Рис. 2. Архитектура роли сервера Exchange 2013

Изображение, показывающее, как трафик клиента через внешний брандмауэр и пограничный транспортный сервер (слева) проходит через балансировщик нагрузки четвертого слоя в консолидированный массив CAS и набор серверов почтовых ящиков в группе доступа к базе данных (справа).

На следующем рисунке показано взаимодействие между ролями сервера Exchange 2013.

Рис. 3. Взаимодействие с сервером почтового ящика и клиентского доступа

Изображение, показывающее взаимодействие, начиная со стрелок от трафика клиента, проходящих через балансировщик нагрузки четвертого слоя, для которого на сервере клиентского доступа имеется 4 цели: IIS/HTTP-прокси, POP/IMAP, SMTP и UM. Стрелки указывают на соответствующие цели в хранилище почтовых ящиков.

Дополнительные сведения об изменениях в архитектуре роли сервера Exchange 2013 см. в статье Архитектура Exchange 2013 статьи Новые возможности Exchange 2013.

Классы агентов транспорта

Класс, от которого наследуется агент транспорта, определяет события, для которых агент может зарегистрировать. Агент обычно содержит класс агента, фабрику агента, один или несколько обработчиков событий и код, который выполняет действия, которые требуется выполнить агенту.

В следующей таблице перечислены классы, наследуемые для каждого типа агента.

Табл. 2. Классы агентов

Тип агента Базовый класс Factory Базовый класс агента
Получение SMTP
SmtpReceiveAgentFactory
SmtpReceiveAgent
Маршрутизации
RoutingAgentFactory
RoutingAgent
Delivery
DeliveryAgentFactory<Manager>
DeliveryAgent

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

Аргументы, передаваемые событиям, могут содержать экземпляр класса EmailMessage , который можно использовать для изменения свойств и содержимого базового сообщения. Не все сведения о сообщениях доступны в каждом событии. Необходимо определить, какой агент и какое событие лучше всего подходит для задачи, которую вы хотите выполнить.

Следующие пространства имен содержат типы, которые можно использовать для чтения, записи и изменения сообщений в конвейере транспорта:

После создания агента транспорта вы устанавливаете агент и управляете им с помощью командной консоли Exchange. Дополнительные сведения см. в статье Создание транспортных агентов для Exchange 2013.

См. также