Conceitos de agente de transporte no Exchange 2013

Encontre informações sobre como o pipeline do agente de transporte e a arquitetura de função do servidor no Exchange 2013 afetam o desenvolvimento do agente de transporte e as classes que você pode usar para desenvolver agentes de transporte.

Aplica-se a: Exchange Server 2013

Você pode usar a biblioteca de classes fornecida no Exchange Server 2013 para implementar agentes de transporte que se registram para eventos e tomam ações em mensagens à medida que passam pelo pipeline de transporte. Você também pode usar agentes de transporte para modificar mensagens e converter conteúdo.

Este artigo fornece informações sobre agentes de transporte e a arquitetura do pipeline de transporte. É importante entender a arquitetura do pipeline de transporte para que você possa modificar o comportamento de transporte para atender às necessidades da sua organização. Este artigo também fornece informações sobre alterações na arquitetura do Exchange 2013 que afetam os agentes de transporte e as classes que você pode usar para desenvolver agentes de transporte.

Agentes de transporte no pipeline de transporte

Os agentes de transporte são derivados de uma das três classes a seguir:

O pipeline de transporte refere-se ao fluxo de dados de mensagem dentro dos limites de uma organização do Exchange 2013. O pipeline consiste nos serviços listados na tabela a seguir.

Tabela 1. Serviços de pipeline de transporte

Serviço Descrição Classes com suporte
Transporte front-end
É executado em todos os servidores de Acesso ao Cliente e atua como um proxy sem estado para todo o tráfego SMTP externo de entrada e saída para a organização do Exchange 2013. O serviço de Transporte front-end não inspeciona o conteúdo da mensagem nem faz fila de mensagens localmente. Ele se comunica com o serviço de transporte em um servidor de caixa de correio.
SmtpReceiveAgent
Transport
É executado em todos os servidores da caixa de correio e é semelhante à função de servidor de Transporte do Hub no Exchange Server 2010. O serviço de transporte roteia mensagens entre si e os serviços de Transporte de Caixa de Correio e Transporte front-end. Esse serviço não se comunica diretamente com bancos de dados de caixa de correio.
SmtpReceiveAgent
RoteamentoAgent
DeliveryAgent
Transporte de caixa de correio
É executado em todos os servidores da caixa de correio e consiste em dois serviços separados: Envio de Transporte de Caixa de Correio e Entrega de Transporte de Caixa de Correio. A Entrega de Transporte de Caixa de Correio recebe mensagens SMTP do serviço de Transporte e se conecta ao banco de dados da caixa de correio usando uma RPC (chamada de procedimento remoto) do Exchange para entregar a mensagem. O Envio de Transporte da caixa de correio se conecta ao banco de dados da caixa de correio usando o RPC para recuperar mensagens e envia as mensagens via SMTP para o serviço de transporte.
Nenhuma.

Eventos de transporte

Você implementa agentes de transporte primeiro registrando-se para um evento e, em seguida, tomando uma ação quando esse evento é acionado. Cada um dos três tipos de agente pode se registrar para um conjunto diferente de eventos.

A figura a seguir mostra onde, no pipeline de transporte, agentes de transporte podem se registrar para eventos.

Figura 1. Eventos de transporte

An image shows message flow through the transport pipeline and events for which each agent can register beginning with Smtp events for the SmtpReceivedAgent, then Categorizor events for the RoutingAgent, and finally deliver events for the DeliveryAgent.

Quando uma mensagem entra no pipeline de transporte, um agente de transporte derivado da classe SmtpReceiveAgent pode agir na mensagem durante qualquer um dos eventos SMTP que o agente registrou. Um agente derivado da classe RoutingAgent pode atuar em qualquer um dos quatro eventos categorizadores que ele registrou. Um agente derivado da classe DeliveryAgent pode atuar em uma mensagem durante qualquer um dos eventos de entrega para os quais ele se registrou.

Agentes de transporte e funções de servidor

As alterações na arquitetura de função do servidor no Exchange 2013 afetam os agentes de transporte e o que os agentes de transporte podem fazer. O Exchange 2013 inclui as seguintes funções de servidor:

  • Servidor de caixa de correio – inclui protocolos de Acesso ao Cliente, serviço de transporte, bancos de dados de caixa de correio e componentes de Mensagens Unificadas. O servidor da caixa de correio se comunica diretamente com Active Directory Domain Services (AD DS), servidores de Acesso ao Cliente e clientes de email, como o Outlook.

  • Servidor de acesso ao cliente – fornece autenticação, redirecionamento limitado, serviços proxy e protocolos de acesso ao cliente, como HTTP, POP, IMAP e SMTP.

  • Servidor de transporte de borda – roteia o email para dentro e para fora de uma organização. Os servidores de transporte de borda normalmente ficam no perímetro de uma topologia do Exchange.

Essa estrutura consolidada reduz o número de servidores que precisam ser implantados em um ambiente do Exchange 2013. Os administradores não precisam mais implantar servidores de Transporte do Hub e acesso ao cliente em todos os sites do Active Directory que incluem um servidor da Caixa de Correio e não precisam mais atualizar todas as funções do servidor para aproveitar a nova funcionalidade.

Essas alterações na arquitetura de função do servidor podem afetar potencialmente onde no pipeline seu agente pode responder a eventos. Se você criou agentes de transporte para versões do Exchange anteriores ao Exchange 2013, examine as alterações arquitetônicas para determinar se você precisa fazer alterações em seus agentes.

A figura a seguir mostra como as alterações arquitetônicas no Exchange 2013 resultam em um pipeline de transporte consolidado e simplificado. Nessa figura, os servidores de Acesso ao Cliente são rotulados como CAS. E os servidores de caixa de correio são rotulados como MBX.

Figura 2. Arquitetura de função de servidor do Exchange 2013

An image shows client traffic through an external firewall and Edge Transport on the left that passes traffic through a layer 4 load balance to a consolidated CAS array and set of mailbox servers in a database accessibility group on the right.

A figura a seguir mostra as interações entre as funções de servidor do Exchange 2013.

Figura 3. Interações de servidor de acesso ao cliente e caixa de correio

An image shows interactions starting with arrows from client traffic passing through a layer 4 load balance that has 4 targets in the CAS: IIS/HTTP Proxy, POP/IMAP, SMTP, and UM. The arrows pass to their complimentary targets in the mailbox store.

Para obter mais informações sobre as alterações na arquitetura de função de servidor do Exchange 2013, confira Arquitetura do Exchange 2013 no What's New no Exchange 2013.

Classes de agente de transporte

A classe da qual seu agente de transporte deriva determina os eventos para os quais seu agente pode se registrar. Normalmente, seu agente contém uma classe de agente, uma fábrica de agentes, um ou mais manipuladores de eventos e o código que executa as ações que você deseja que seu agente tome.

A tabela a seguir lista as classes das quais derivar para cada tipo de agente.

Tabela 2. Classes de agente

Tipo de agente Classe base factory Classe base do agente
Receber SMTP
SmtpReceiveAgentFactory
SmtpReceiveAgent
Roteamento
RoteamentoAgentFactory
RoteamentoAgent
Entrega
Gerenciador do DeliveryAgentFactory<>
DeliveryAgent

Essas classes base de fábrica e agente fornecem propriedades e métodos que você pode usar para acessar eventos de transporte e mensagens. Implemente classes em seu agente que herdam dessas classes. Na classe derivada do agent factory, substitua o método CreateAgent para que ele retorne uma nova instância da classe de agente.

Os argumentos passados para os eventos podem conter uma instância da classe EmailMessage , que você pode usar para alterar as propriedades e o conteúdo da mensagem subjacente. Nem todas as informações de mensagem estão disponíveis em cada evento. Você deve determinar qual agente e qual evento é melhor para a tarefa que deseja realizar.

Os namespaces a seguir contêm tipos que você pode usar para ler, gravar e modificar mensagens no pipeline de transporte:

Depois de escrever seu agente de transporte, instale e gerencie seu agente usando o Shell de Gerenciamento do Exchange. Para obter mais informações, confira Criando agentes de transporte para o Exchange 2013.

Confira também