
Asynchrone Services können so konzipiert und implementiert werden, dass eine direkte WS-RM-basierte Point-to-Point-Kommunikation zwischen Anwendungen aus der Perspektive der Service-Implementierung heraus möglich ist. Diese Kommunikation kann realisiert werden, ohne Service-Aufrufe zur Laufzeit über einen XI Integration Server leiten zu müssen.
Die Implementierung von asynchronen Services, die das Point-to-Point-Konzept unterstützen, muss in zwei Bereiche eingeteilt werden:
Ein anwendungsspezifischer Teil, der jedoch unabhängig von der Web-Service-Laufzeit ist.
Ein Teil, der Implementierungen abdeckt, die spezifisch für die Web-Service-Laufzeit sind.
Die Implementierungen, die für die Web-Service-Laufzeit spezifisch sind, befinden sich weiterhin in der Proxy-Klasse, während die Implementierungen, die von der Web-Service-Laufzeit unabhängig sind (wie Daten-Mappings und Anwendungsaufrufe), in eine eigene Klassenimplementierung gekapselt werden müssen.
Legen Sie pro Service-Operation eine Service-Implementierungsklasse mit einem Singleton Pattern an.
Sie sollten folgende Schritte ausführen:
Definieren Sie die Instanziierung als privat.
Definieren Sie eine Typreferenz auf die Implementierungsklasse mit dem privaten statischen Attribut go_singleton.
Implementieren Sie die statische öffentliche CREATE-Methode (Factory-Operation), welche die Singleton-Instanz zurückgibt.
Implementieren Sie die öffentliche Instanzmethode EXECUTE, die den Proxy-Eingabeparameter als Importing-Parameter und den Standard-Fault-Message-Typ als Ausnahmeparameter enthält.
In dieser Methode sollten Sie folgende Schritte ausführen:
Rufen Sie Validierungen, Mappings und Anwendungsaufrufe auf.
Es wird empfohlen, die einzelnen Schritte der Service-Verarbeitung wie Validierungen und Mappings so in öffentlichen Operationen zu kapseln, dass sie wiederverwendet werden können, z.B. in Massen-Service-Implementierungen, die auf einer Einzelinstanz-Service-Implementierung aufsetzen.
Implementieren Sie die Proxy-Klasse wie folgt:
Implementieren Sie die Methode EXECUTE_ASYNCHRONOUS.
Implementieren Sie folgende Funktionen, die auf XI bzw. der aktiven Web-Service-Laufzeit aufsetzen:
Aktivierung des erweiterten XML-Handlings im Konstruktor.
Deaktivierung des erweiterten XML-Handlings in der Methode EXECUTE_ASYNCHRONOUS.
Zugriffe auf XI- oder Web-Service-Protokolle sind erforderlich.