Übersicht über das Routing

Beim Entwerfen von dienstorientierten Architekturprojektmappen ist es häufig hilfreich, einen Vermittlerdienst zu erstellen, der für das Weiterleiten von eingehenden Nachrichten basierend auf einem Satz von anpassbaren Regeln zuständig ist. Ein Vermittlerdienst bietet mehrere Vorteile, z. B.:

  • Inhaltsbasiertes Routing

    • Dienstaggregation

    • Dienstversionsverwaltung

    • Prioritätsrouting

  • Protokollüberbrückung

  • Fehlerbehandlung

Es ist möglich, einen Vermittlerdienst zu erstellen, der eine oder mehrere dieser Zielsetzungen erfüllt. Häufig ist eine Implementierung dieser Art jedoch an ein bestimmtes Szenario oder eine Projektmappe gebunden und kann nicht ohne Weiteres auf neue Anwendungen angewendet werden.

Der Routingdienst stellt einen generischen, dynamisch konfigurierbaren und austauschbaren SOAP-Vermittler bereit, der mit den WCF-Dienst- und -Kanalmodellen zusammenarbeitet und es Ihnen ermöglicht, das inhaltsbasierte Routing von SOAP-basierten Nachrichten auszuführen.

Ee517423.note(de-de,VS.100).gifHinweis:
Der Routingdienst unterstützt das Weiterleiten von WCF-REST-Diensten momentan nicht. Erwägen Sie zum Weiterleiten von REST-Aufrufen die Verwendung von System.Web.Routing oder Routing von Anwendungsanforderungen (https://go.microsoft.com/fwlink/?LinkId=164589, möglicherweise in englischer Sprache).

Inhaltsbasiertes Routing

Das inhaltsbasierte Routing ist die Fähigkeit, eine Nachricht basierend auf einem oder mehreren Werten weiterzuleiten, die in der Nachricht enthalten sind. Der Routingdienst überprüft jede Nachricht und leitet diese basierend auf den Nachrichteninhalten und der von Ihnen erstellten Routinglogik an den Zielendpunkt weiter. Das inhaltsbasierte Routing stellt die Basis für die Dienstaggregation, die Dienstversionsverwaltung und das Prioritätsrouting dar.

Mit dem Routingdienst können Sie die Logik konfigurieren, die verwendet wird, um das inhaltsbasierte Routing auszuführen, und Sie können die Routinglogik zur Laufzeit dynamisch aktualisieren.

Dienstaggregation

Mit dem inhaltsbasierten Routing können Sie einen Endpunkt verfügbar machen, der Nachrichten von externen Clientanwendungen empfängt und jede Nachricht dann anhand eines Werts in der Nachricht an den entsprechenden internen Endpunkt weiterleitet. Dies ist nützlich, um für eine Reihe unterschiedlicher Back-End-Anwendungen einen bestimmten Endpunkt bereitzustellen. Außerdem können Sie so einen Anwendungsendpunkt für Kunden bereitstellen und die Anwendung in verschiedene Dienste unterteilen.

Dienstversionsverwaltung

Wenn Sie zu einer neuen Version der Projektmappe migrieren, müssen Sie die alte Version ggf. parallel weiterlaufen lassen, um bestehende Kunden weiter bedienen zu können. Häufig bedeutet dies für Clients, die über eine Verbindung zur neuen Version verfügen, dass diese für die Kommunkation mit der Projektmappe eine andere Adresse verwenden müssen. Mit dem Routingdienst können Sie einen Dienstendpunkt verfügbar machen, der für beide Versionen der Projektmappe verwendet wird, indem Nachrichten basierend auf jeweils in der Nachricht enthaltenen Informationen an die entsprechende Projektmappe weitergeleitet werden.

Prioritätsrouting

Wenn Sie einen Dienst für mehrere Clients bereitstellen, verfügen Sie ggf. über eine Vereinbarung zum Servicelevel (SLA) mit einigen Partnern, bei der alle Daten dieser Partner separat von den Daten anderer Clients verarbeitet werden müssen. Mit einem Filter, der in der Nachricht nach kundenspezifischen Informationen sucht, können Sie Nachrichten von bestimmten Partnern auf einfache Weise an einen Endpunkt weiterleiten, der erstellt wurde, um die SLA-Anforderungen zu erfüllen.

Protokollüberbrückung

Eine der Herausforderungen besteht bei Vermittlerszenarios darin, dass die internen Endpunkte ggf. über andere Anforderungen an den Transport oder die SOAP-Version als der Endpunkt verfügen, an dem Nachrichten empfangen werden. Um dieses Szenario zu unterstützen, kann der Routingdienst Protokolle überbrücken, einschließlich der Verarbeitung der SOAP-Nachricht an die MessageVersion, die für die Zielendpunkte erforderlich ist. Auf diese Weise kann ein Protokoll für die interne Kommunikation verwendet werden, während ein anderes für die externe Kommunikation verwendet werden kann.

Fehlerbehandlung

Eine andere Herausforderung besteht für Vermittler darin, welche Maßnahmen ergriffen werden sollen, wenn bei der Übertragung zum Ziel ein Fehler auftritt. Mit dem Routingdienst können Sie zusätzliche Endpunkte definieren, die zum Senden der Nachricht im Falle eines Kommunikationsfehlers verwendet werden, sofern das Senden an das primäre Ziel erfolgt. So können Sie mehrere redundante Kopien eines Diensts als Sicherungen bereitstellen, die bei einem Netzwerkfehler oder anderen Kommunikationsfehlern verwendet werden können.