Freigeben über


Verwenden des Order-Handlerobjekts für die Kommunikation mit Back-End-Systemen

Es gibt zahlreiche Verfahren, mit denen die Lösung für die Geschäftsprozessverwaltung dem Back-End-Legacybestellsystem kommunizieren kann, dem Kabelbereitstellungssystem, das die endgültigen Bestellungen empfängt. Die Lösung verwendet die .NET-Remotingfunktionen in Microsoft .NET Framework, um mit dem Bereitstellungssystem zu kommunizieren.

Die Lösung verwendet eine häufig verwendete Technik, um mithilfe einer Schnittstelle das Zugriffsobjekt für das Back-End-System zu definieren. Da die Schnittstelle in einer separaten Assembly enthalten ist, kann die Clientassembly auf das Remoteobjekt zugreifen, ohne auf die kompilierte Assembly zugreifen zu müssen.

Die IOrderHandler-Schnittstelle definiert die Methoden für die Kommunikation mit dem Back-End-Ordersystem. Die Schnittstelle enthält Methoden zum Analysieren, Aktivieren, Stornieren und Abschließen von Bestellungen. Außerdem stellt sie eine Methode zum Identifizieren des Diensttyps bereit – eine Methode, die beim Stornieren einer Bestellung benötigt wird.

Die Orchestrierungen CableOrder1, CableOrder2 und Satelliten verwenden das OrderHandlerWrapper-Objekt , das IOrderHandler implementiert. Das OrderHandlerWrapper-Objekt wiederum ruft eine Remote-instance eines OrderHandler-Objekts auf, das von der ausführbaren CableProvisioningSystemServer-Datei bereitgestellt wird. Durch die Verwendung des Wrapperobjekts wird die Geschäftsanforderung erfüllt, .NET-Remotefunktionen für die Kommunikation mit dem Back-End-Bestellsystem zu verwenden, während gleichzeitig die Verwendung von Wiederholungsversuchfeatures der die Ausnahmen behandelnden Komponenten aktiviert wird.

Da jedes Objekt, auf das in einer Orchestrierung verwiesen wird, serialisiert werden muss, kann der OrderHandlerWrapper auch serialisiert werden. Die Verwendung von OrderHandlerWrapper isoliert den Serialisierungscode von den Orchestrierungen.

Wenn Sie sich den Code ansehen, stellen Sie fest, dass das OrderHandlerWrapper-Objekt die ISerializable-Schnittstelle explizit implementiert. Das Objekt muss seine eigene Serialisierung verarbeiten, weil es einen nicht standardmäßigen Konstruktor verwendet.

Die Verwendung von .NET-Remotefunktionen für die Kommunikation mit dem Back-End-System ist effizienter als die Verwendung von Messaging. Einerseits werden die Orchestrierungen enger an das Back-End-System gebunden als in einer reinen Messaginglösung möglich ist. Die Verwendung von .NET-Remotefunktionen verhindert andererseits, dass die Lösung die integrierten in BizTalk Server-Features für Wiederholungsversuche von Anforderungen nutzt.

Weitere Informationen

Implementierungshighlights der Lösung für die Geschäftsprozessverwaltung
Prozess-Manager-Logik