Transport-Agent-Konzepte in Exchange 2013
Hier finden Sie Informationen dazu, wie sich die Pipeline- und Serverrollenarchitektur des Transport-Agents in Exchange 2013 auf die Entwicklung des Transport-Agents auswirken und welche Klassen Sie zum Entwickeln von Transport-Agents verwenden können.
Gilt für: Exchange Server 2013
Sie können die in Exchange Server 2013 bereitgestellte Klassenbibliothek verwenden, um Transport-Agents zu implementieren, die sich für Ereignisse registrieren und Aktionen für Nachrichten ausführen, während sie die Transportpipeline durchlaufen. Sie können auch Transport-Agents verwenden, um Nachrichten zu ändern und Inhalte zu konvertieren.
Dieser Artikel enthält Informationen zu Transport-Agents und der Transportpipelinearchitektur. Es ist wichtig, die Architektur der Transportpipeline zu verstehen, damit Sie das Transportverhalten an die Anforderungen Ihrer Organisation anpassen können. Dieser Artikel enthält auch Informationen zu Änderungen in der Exchange 2013-Architektur, die sich auf Transport-Agents und die Klassen auswirken, die Sie zum Entwickeln von Transport-Agents verwenden können.
Transport-Agents in der Transportpipeline
Transport-Agents werden von einer der folgenden drei Klassen abgeleitet:
Die Transportpipeline bezieht sich auf den Nachrichtendatenfluss innerhalb der Grenzen einer Exchange 2013-Organisation. Die Pipeline besteht aus den in der folgenden Tabelle aufgeführten Diensten.
Tabelle 1. Transportpipelinedienste
Dienst | Beschreibung | Unterstützte Klassen |
---|---|---|
Front-End-Transport |
Wird auf allen Clientzugriffsservern ausgeführt und fungiert als zustandsloser Proxy für den gesamten ein- und ausgehenden externen SMTP-Datenverkehr für die Exchange 2013-Organisation. Der Front-End-Transportdienst überprüft nachrichteninhalte nicht oder stellt keine Nachrichten lokal in die Warteschlange. Sie kommuniziert mit dem Transportdienst auf einem Postfachserver. |
SmtpReceiveAgent |
Transport |
Wird auf allen Postfachservern ausgeführt und ähnelt der Hub-Transport-Serverrolle in Exchange Server 2010. Der Transportdienst leitet Nachrichten zwischen sich selbst und den Diensten Postfachtransport und Front-End-Transport weiter. Dieser Dienst kommuniziert nicht direkt mit Postfachdatenbanken. |
SmtpReceiveAgent RoutingAgent DeliveryAgent |
Postfachtransportdienst |
Wird auf allen Postfachservern ausgeführt und besteht aus zwei separaten Diensten: Postfachtransportübermittlung und Postfachtransportübermittlung. Mailbox Transport Delivery empfängt SMTP-Nachrichten vom Transportdienst und stellt eine Verbindung mit der Postfachdatenbank her, indem ein Exchange-Rpc (Remote Procedure Call) verwendet wird, um die Nachricht zu übermitteln. Die Postfachtransportübermittlung stellt mithilfe von RPC zum Abrufen von Nachrichten eine Verbindung mit der Postfachdatenbank her und sendet die Nachrichten über SMTP an den Transportdienst. |
Keine. |
Transportereignisse
Sie implementieren Transport-Agents, indem Sie sich zuerst für ein Ereignis registrieren und dann eine Aktion ausführen, wenn dieses Ereignis ausgelöst wird. Jeder der drei Agent-Typen kann für einen anderen Satz von Ereignissen registriert werden.
Die folgende Abbildung zeigt, wo sich Transport-Agents in der Transportpipeline für Ereignisse registrieren können.
Abbildung 1: Transportereignisse
Wenn eine Nachricht in die Transportpipeline gelangt, kann ein Transport-Agent, der von der SmtpReceiveAgent-Klasse abgeleitet wird, während eines der SMTP-Ereignisse, für die der Agent registriert ist, auf die Nachricht reagieren. Ein von der RoutingAgent-Klasse abgeleiteter Agent kann auf jedes der vier Kategorisierungsereignisse reagieren, für die er sich registriert hat. Ein von der DeliveryAgent-Klasse abgeleiteter Agent kann während der Übermittlungsereignisse, für die er sich registriert hat, auf eine Nachricht reagieren.
Transport-Agents und Serverrollen
Änderungen an der Serverrollenarchitektur in Exchange 2013 wirken sich auf Transport-Agents und die Möglichkeiten Ihrer Transport-Agents aus. Exchange 2013 umfasst die folgenden Serverrollen:
Postfachserver : Umfasst Clientzugriffsprotokolle, den Transportdienst, Postfachdatenbanken und Unified Messaging-Komponenten. Der Postfachserver kommuniziert direkt mit Active Directory Domain Services (AD DS), Clientzugriffsservern und E-Mail-Clients wie Outlook.
Clientzugriffsserver – Bietet Authentifizierung, eingeschränkte Umleitung, Proxydienste und Clientzugriffsprotokolle wie HTTP, POP, IMAP und SMTP.
Edge-Transport-Server: Leitet E-Mails in und aus einer Organisation weiter. Edge-Transport-Server befinden sich in der Regel am Umkreis einer Exchange-Topologie.
Diese konsolidierte Struktur reduziert die Anzahl der Server, die in einer Exchange 2013-Umgebung bereitgestellt werden müssen. Administratoren müssen nicht mehr Hub-Transport- und Clientzugriffsserver an jedem Active Directory-Standort bereitstellen, der einen Postfachserver enthält, und sie müssen nicht mehr alle Serverrollen aktualisieren, um die neuen Funktionen nutzen zu können.
Diese Änderungen an der Serverrollenarchitektur können sich möglicherweise darauf auswirken, wo ihr Agent in der Pipeline auf Ereignisse reagieren kann. Wenn Sie Transport-Agents für Frühere Exchange-Versionen als Exchange 2013 erstellt haben, überprüfen Sie unbedingt die Architekturänderungen, um festzustellen, ob Sie Änderungen an Ihren Agents vornehmen müssen.
Die folgende Abbildung zeigt, wie die Architekturänderungen in Exchange 2013 zu einer optimierten, konsolidierten Transportpipeline führen. In dieser Abbildung werden Clientzugriffsserver als CAS bezeichnet. Postfachserver haben die Bezeichnung MBX.
Abbildung 2: Exchange 2013-Serverrollenarchitektur
Die folgende Abbildung zeigt die Interaktionen zwischen den Exchange 2013-Serverrollen.
Abbildung 3: Postfach- und Clientzugriffsserverinteraktionen
Weitere Informationen zu Änderungen in der Exchange 2013-Serverrollenarchitektur finden Sie unter Exchange 2013-Architektur in Neuigkeiten in Exchange 2013.
Transport-Agent-Klassen
Die Klasse, von der Ihr Transport-Agent abgeleitet wird, bestimmt die Ereignisse, für die sich Ihr Agent registrieren kann. Ihr Agent enthält in der Regel eine Agent-Klasse, eine Agent-Factory, einen oder mehrere Ereignishandler und den Code, der die Aktionen ausführt, die Ihr Agent ausführen soll.
In der folgenden Tabelle sind die Klassen aufgeführt, von denen für jeden Agenttyp abgeleitet werden soll.
Tabelle 2. Agentklassen
Agent-Typ | Factory-Basisklasse | Agent-Basisklasse |
---|---|---|
SMTP-Empfang |
SmtpReceiveAgentFactory |
SmtpReceiveAgent |
Routing |
RoutingAgentFactory |
RoutingAgent |
Übermittlung |
DeliveryAgentFactory<Manager> |
DeliveryAgent |
Diese Factory- und Agent-Basisklassen stellen Eigenschaften und Methoden bereit, mit denen Sie auf Transportereignisse und -nachrichten zugreifen können. Implementieren Sie Klassen in Ihrem Agent, die von diesen Klassen erben. Überschreiben Sie in der von der Agentfactory abgeleiteten Klasse die CreateAgent-Methode , sodass sie eine neue Instanz Ihrer Agent-Klasse zurückgibt.
An die Ereignisse übergebene Argumente können eine Instanz der EmailMessage-Klasse enthalten, mit der Sie die Eigenschaften und Inhalte der zugrunde liegenden Nachricht ändern können. Nicht alle Nachrichteninformationen sind in jedem Ereignis verfügbar. Sie müssen bestimmen, welcher Agent und welches Ereignis für die Aufgabe, die Sie ausführen möchten, am besten geeignet ist.
Die folgenden Namespaces enthalten Typen, die Sie zum Lesen, Schreiben und Ändern von Nachrichten in der Transportpipeline verwenden können:
Nachdem Sie Den Transport-Agent geschrieben haben, installieren und verwalten Sie den Agent mithilfe der Exchange-Verwaltungsshell. Weitere Informationen finden Sie unter Erstellen von Transport-Agents für Exchange 2013.
Siehe auch
- Transport-Agents in Exchange
- Transport-Agent-Referenz für Exchange 2013
- Lesen und Ändern von Nachrichten in der Exchange 2013-Transportpipeline
- Neuerungen in Exchange 2013
- Exchange 2013-Serverrollenarchitektur
- Postfach- und Clientzugriffsserver
- nachrichtenfluss von Exchange Server 2013
- Exchange Server 2013:E-Mail-Routing
- Exchange Server-PowerShell (Exchange-Verwaltungsshell)