Show TOC

Dokumentation zur VorgehensweiseService-Interfaces einander zuordnen Dieses Dokument in der Navigationsstruktur finden

 

Wenn Sie eine Point-to-Point-Kommunikation über die Web-Service-Laufzeit mit Hilfe des Outside-In-Ansatzes entwickeln, legen Sie als ersten Schritt Service-Interfaces im Enterprise Services Repository an. Für die P2P-Kommunikation benötigen Sie ein Outbound-Service-Interface für den Aufruf beim Consumer und ein Inbound-Service-Interface für die Implementierung des Service beim Provider. Während des Designs im ES Repository ist bereits bekannt, welches Paar von Service-Interfaces zusammengehört. Sie können die Service-Interfaces im ES Repository einander zuordnen. Die Zuordnung ist keine zwingende Voraussetzung, erleichtert aber die später durchzuführende Konfiguration:

  • Im Backend-System bei der Konfiguration des logischen Ports (Interface-Pattern: zustandslos (XI 3.0 kompatibel)).

  • Im Integration Directory bei der Konfiguration einer Direktverbindung (alle anderen Interface-Pattern).

Weitere Informationen: Point-to-Point-Kommunikation über Web Services, Interface-Pattern.

Voraussetzungen

Sie können einem Service-Interface im Service-Interface-Editor ein anderes Service-Interface zuordnen, wenn eines der beiden Service-Interfaces (Outbound oder Inbound) änderbar ist.

Wann passen Service-Interfaces zueinander?

Im einfachsten Fall sind die Service-Interfaces bis auf ihren Namen und ihre Kategorie (Inbound beziehungsweise Outbound) identisch, nämlich wenn das Outbound-Service-Interface und alle Interface-Objekte, auf die von diesem Service-Interface verwiesen wird, Kopien der entsprechenden Objekte eines Inbound-Service-Interface sind. Wenn aber beispielsweise der Consumer nur eine Operation des Inbound-Service-Interface aufrufen will, ist es nicht notwendig, die anderen Operationen des Inbound-Service-Interface auch beim Outbound-Service-Interface anzulegen.

Einfach ausgedrückt dürfen also die Operationen und die zugehörigen Datenstrukturen des Outbound-Service-Interfaces eine Untermenge der Operationen und zugehörigen Datenstrukturen des zugewiesenen Inbound-Interfaces sein. Der Service-Interface-Editor bietet eine Prüfung für die Service-Interface-Paare an, um die Kompatibilität von Inbound- und Outbound-Service-Interface festzustellen. Diese Kompatibilitätsprüfung geht in mehreren Schritten vor, von den Service-Interfaces über die Operationen bis zu den Datentypen. Um vor einer Zuweisung von Service-Interfaces abschätzen zu können, ob zwei Service-Interfaces zueinander passen, beschreibt der folgende Abschnitt diese Schritte.

Passende Service-Interfaces

Zwei Service-Interfaces passen zueinander, wenn folgende Bedingungen erfüllt sind:

  • Das eine Service-Interface hat die Kategorie Outbound und das andere Service-Interface die Kategorie Inbound. Keines der Service-Interfaces darf abstrakt sein.

  • Die beiden Service-Interfaces haben das gleiche Interface-Pattern.

  • Zu jeder Operation des Outbound-Service-Interface gibt es eine passende Operation beim Inbound-Service-Interface (siehe unten).

Passende Operationen

Eine Operation eines Inbound-Service-Interface passt zu einer Operation eines Outbound-Service-Interface (und umgekehrt), wenn folgende Bedingungen erfüllt sind:

  • Beide Operationen müssen den gleichen Modus haben (asynchron oder synchron).

  • Beide Operationen müssen das gleiche Operation-Pattern haben.

  • Der Message-Typ für den Request, auf den von der jeweiligen Operation verwiesen wird, muss den gleichen Namen und den gleichen XML-Namensraum haben. Die Namen der Operationen dürfen unterschiedlich sein. Gleiches gilt für die Response bei synchroner Kommunikation.

  • Verweist die Operation des Inbound-Service-Interface auf einen Fault-Message-Typ, muss auch die Operation des Outbound-Service-Interface auf einen Fault-Message-Typ mit gleichem Namen und XML-Namensraum verweisen.

  • Die Datentypen der Message-Typen, auf die das Outbound-Service-Interface für die Request-Message (und gegebenfalls für die Response- und die Fault-Message) verweist, müssen zu den entsprechenden Datentypen beim Inbound-Service-Interface kompatibel sein (siehe unten).

Passende Datentypen

Die Prüfung, ob die korrespondierenden Datentypen zueinander kompatibel sind, ist ausreichend bis es zum Vergleich von Facetten eines XSD-Typs kommt. Die Datentypen werden nach der gleichen Methode verglichen wie die anderen Objekte: Die Strukturen sind kompatibel wenn sie die gleichen Felder (Elemente und Attribute) enthalten und wenn diese Felder zueinander kompatible Typen, Häufigkeiten, Details und Default-Werte haben. Es gibt jedoch ein paar Ausnahmen, beispielsweise darf die Zielstruktur Attribute oder Elemente enthalten, die nicht in der Ausgangsstruktur vorkommen, wenn diese nicht erforderlich sind und wenn die Häufigkeit optional oder verboten ist (bei Attributen) beziehungsweise minOccurs=0 (bei Elementen). (Welche Struktur die Ausgangsstruktur und welche die Zielstruktur ist, ist abhängig von der Richtung des Message-Austauschs; vergleiche die Übersicht zum Design von Mappings).

Achtung Achtung

Die Prüfung kann nicht den gesamten Sprachumfang des XSD-Schemas überprüfen. Für Service-Interfaces, deren Operationen auf externe Messages verweisen, meldet die Prüfung daher nicht notwendigerweise einen Fehler, wenn die Datenstrukturen nicht kompatibel sind. Insbesondere gibt es folgende Einschränkungen:

Ende der Warnung.
  • Die verglichenen Datenstrukturen müssen beide korrekt sein. Beispielsweise werden nicht alle korrekten Facetten übersprungen oder in der Kompatibilitätsprüfung berücksichtigt.

  • Einige Sprachelemente des XSD-Schemas, die bei einem Verweis auf eine externe Message in der Datenstruktur enthalten sein können, werden nicht unterstützt. Dazu zählen beispielsweise die Elemente redefine und any sowie die Attribute blockDefault, finalDefault und substitutionGroup.

  • Der Vergleich von Strukturen ist beispielsweise in folgenden Punkten eingeschränkt:

    • Die Details whiteSpace und pattern werden nicht überprüft.

    • Wird für das Feld der Ausgangsstruktur die Facette pattern verwendet, werden alle anderen Details nicht überprüft.

    • Wenn sich die Reihenfolge von den Unterelementen von Ausgangs- und Zielfeld unterscheidet, wird eine Warnung ausgegeben.

Vorgehensweise

Abhängig davon, welches Service-Interface änderbar ist, können Sie folgende Referenzen bei den Service-Interfaces eintragen:

  • Ist das Outbound-Service-Interface änderbar, können Sie dort ein oder mehrere passende Inbound-Service-Interfaces eintragen. Bei jedem Inbound-Service-Interface wird das Outbound-Service-Interface als nicht änderbarer Eintrag angezeigt (auch dann, wenn das Inbound-Service-Interface in Bearbeitung ist).

  • Ist das Inbound-Service-Interface änderbar, können Sie dort ein oder mehrere passende Outbound-Service-Interfaces eintragen. Bei jedem Outbound-Service-Interface wird das Inbound-Service-Interface als nicht änderbarer Eintrag angezeigt (auch dann, wenn das Outbound-Service-Interface in Bearbeitung ist).

Gegenseitige Einträge sind möglich aber nicht erforderlich.

  1. Rufen Sie den Service-Interface-Editor für das änderbare Service-Interface auf.

  2. Wechseln Sie auf die Registerkarte Passende Service-Interfaces.

  3. Fügen Sie pro Service-Interface, auf das sie verweisen wollen, eine Zeile in der Tabelle ein und verweisen Sie auf jedes passende Service-Interface, beispielsweise mit Hilfe der Suchhilfe.

    Hinweis Hinweis

    Auf Grund der großen Datenmenge im ES Repository kann der ES Builder bei der Suche nicht prüfen, ob die Service-Interfaces passend sind. Es werden also auch nicht passende Service-Interfaces in der Suchhilfe angeboten.

    Ende des Hinweises.
  4. Prüfen Sie Ihre Zuweisungen mit Hilfe der Funktion Zuordnung passender Service-Interfaces prüfen (Zuordnung passender Service-Interfaces prüfen).

Ergebnis

  • Die Einträge, die Sie in der Tabelle des Service-Interfaces eingetragen haben, kennzeichnet der Service-Interface-Editor mit einem blauen Pfeil, der nach rechts zeigt (Definiert auf dem aktuellen Objekt (Definiert auf dem aktuellen Objekt)).

  • Die Einträge, die automatisch in der Tabelle des Service-Interfaces hinzugefügt worden sind, auf das Sie verwiesen haben, kennzeichnet der Service-Interface-Editor dort mit einem blauen Pfeil, der nach links zeigt (Definiert auf dem Service-Interface <Name und Namensraum> (Definiert auf dem Service-Interface <Name und Namensraum>)). Diese Einträge können Sie dort nicht bearbeiten oder löschen.