Proxy-Generierung
Die Proxy-Generierung setzt sprachenunabhängige Interface-Beschreibungen in WSDL in aufrufbare Interfaces, sogenannte Proxies, um. Abhängig von der Zielsprache gibt es zwei Werkzeuge:
· Die ABAP-Proxy-Generierung ist Teil des SAP Web AS 6.40. Mit ihrer Hilfe können Sie sowohl Proxies für die Kommunikation über die Web Service Infrastructure als auch für die Kommunikation über die Exchange Infrastructure generieren. ABAP-Proxies, die ausgehend von Message-Interfaces im Integration Repository (IR) generiert worden sind, können in beiden Infrastrukturen genutzt werden. So können Sie, wenn keine Dienste des Integration Server benötigt werden, für eine Proxy-Proxy-Kommunikation in ABAP eine Point-to-Point-Verbindung über die Web Service Infrastructure aufbauen.
· Die Java-Proxy-Generierung des Integration Builders (Design) erzeugt Proxies ausgehend von Message-Interfaces im Integration Repository. Die Generierung packt die Proxy-Objekte in einer Jar-Datei, die Sie lokal abspeichern können. Die generierten Klassen setzen Sie in J2EE-Anwendungen auf der SAP J2EE Engine ein.

Proxy-Objekte werden also im Entwicklungssystem über die Proxy-Generierung angelegt. Sie werden mit Hilfe der dort zur Verfügung stehenden Werkzeuge transportiert und ausgeliefert. Für Objekte im Integration Repository gibt es eigene Werkzeuge (siehe auch: Software-Logistik für XI-Objekte).
Die ABAP-Proxy-Generierung holt sich die WSDL-Beschreibung zu Message-Interfaces über HTTP aus dem Integration Repository (WSDL = Web Service Description Language). In WSDL sind die Daten, die über Messages übertragen werden, mit Hilfe von XSD (XML Schema Definition Language) beschrieben.
Der Integration Builder macht Einschränkungen bezüglich des verwendeten Sprachumfangs von WSDL (für Message-Interfaces) und XSD (für Datentypen), während der Sprachumfang von WSDL für die Web Service Infrastructure unbeschränkt ist.
Die Proxy-Generierung gibt es bereits in Anwendungssystemen, die auf SAP Web AS 6.20 aufbauen und das XI 2.0 Add-On eingespielt haben. Nach einem Upgrade von solchen Anwendungssystemen auf SAP Web AS 6.40 müssen Sie bei Nutzung von XI 3.0 die zu XI 2.0 generierten Proxies (Java und ABAP) in diesen Systemen nachgenerieren. Die Migration des XI 2.0 Integration Repository auf das XI 3.0 Integration Repository erfordert keine Nachgenerierung der Proxies.
Beachten Sie außerdem:
Besonderheiten bei einem Anwendungssystem-Upgrade auf SAP Web AS 6.40
Zielsprache |
Migrationshinweise |
ABAP |
Da das Programmiermodell für ABAP-Proxies geändert wurde, müssen Sie Programmkode, in denen Sie bisher ABAP-Proxies einsetzen, mit dem Upgrade von Anwendungssystemen auf SAP Web AS 6.40 anpassen. Weitere Informationen finden Sie in Anwendungssystemen ab SAP Web AS 6.40: Rufen Sie den Object Navigator auf (Transaktion SE80) und rufen Sie die Proxy-Generierung auf, um sich ein Proxy anzeigen zu lassen (Enterprise Services → Web-Service-Bibliothek → Server/Client-Proxies). In der Transaktion wählen Sie Springen → Online Doku anzeigen. |
Java |
Der Paketname com.sap.aii.proxy.framework (und damit alle Unterpakete) hat sich aus organisatorischen Gründen geändert. Er heißt ab XI 3.0 SP1 com.sap.aii.proxy.xiruntime. Sie müssen daher Java-Proxies nachgenerieren, die vor XI 3.0 SP1 generiert worden sind. Weitere Änderungen im Programmkode sind nur dann nötig, wenn Sie für ungültig erklärte Methoden des MessageSpecifier-Interface verwendet haben. Diese Methoden werden in dieser Dokumentation nicht mehr erwähnt. |
Die ABAP-Proxy-Generierung in Anwendungssysteme mit dem XI 2.0 Add-On (SP4) kann ABAP-Proxies für Message-Interfaces des XI 3.0 Integration Repository generieren. Allerdings dürfen Sie die Message-Interfaces, Message-Typen und Datentypen nur in dem Umfang nutzen, wie es zu XI 2.0 möglich war:
· Die Message-Interfaces verweisen nur auf Message-Typen und nicht auf die zu XI 3.0 neu hinzugekommenen Interface-Objekte beziehungsweise RFC- und IDoc-Messages.
· Der XML-Namensraum bei (Fault-)Message-Typen darf nicht vom Repository-Namensraum abweichen (siehe: Namensräume).
· Sie verwenden nur Datentypen, die keine zu XI 3.0 hinzugekommenen Funktionen oder Attribute des XSD-Editors nutzen (wie zum Beispiel die Verwendung von Default-Werten oder Datentyp-Vorlagen).
· Es werden keine Datentyp-Erweiterungen verwendet.
Nachdem Sie Proxies generiert haben, können Sie über die im Entwicklungssystem angelegten Proxy-Objekte den Message-Austausch implementieren.
Siehe: Proxy-Laufzeit.
Die Proxy-Generierung generiert Klassen und Strukturen für die im WSDL beschriebenen Interfaces und Datentypen. Im Integration Builder ist der Sprachumfang zusätzlich auf eine für die Systemintegration sinnvolle Untermenge von WSDL eingeschränkt. Wie Message-Interfaces aus dem Integration Repository umgesetzt werden, ist unter ABAP-Proxy-Objekte beziehungsweise Java-Proxy-Objekte beschrieben.
· Der Message-Austausch von Web Services ist generell synchron.
· ABAP-Proxies, die Sie nicht ausgehend von Message-Interfaces generiert haben, können nur über die Web Service Infrastructure Messages austauschen.
· Sie können keine ABAP-Server-Proxies ausgehend von einer WSDL-Beschreibung generieren, die nicht aus dem Integration Repository stammt.

Eine WSDL-Beschreibung von einem UDDI-Server (oder einer Internet-Seite) dient in der Regel dazu, einen Service im Internet aufrufbar zu machen und das Interface dieses Service zu beschreiben. Zum Aufruf dieses Service über die Web Service Infrastructure benötigen Sie ein Client-Proxy und kein Server-Proxy.
Die folgende Grafik beschreibt die Generierung und die Nutzung von Proxies in der Exchange Infrastructure. Ausgangspunkt ist ein Outbound-Message-Interface und eine zugehöriges Inbound-Message-Interface im Integration Repository. Um diese Schnittstellen zur Laufzeit einzusetzen, generiert die Anwendung zugehörige Proxies für das jeweilige Entwicklungssystem. (Siehe auch: Kommunikation über die Proxy-Laufzeit).

Sie können ausgehend von Message-Interfaces natürlich auch Server-Proxies für Java und Client-Proxies für ABAP generieren.

Aus Sicht der Exchange Infrastructure stellt die Generierung von Proxies den Übergang von der Design-Zeit zur Laufzeit dar. Im Bild ist skizziert, wie eine Message von einer Java-Anwendung über ein Client-Proxy an den Integration Server verschickt wird. Dort wird sie entsprechend der Einstellungen im Integration Directory verarbeitet und an eine Laufzeitkomponente beim Empfänger weitergeleitet, wo die Message über das zum Client-Proxy komplementäre Server-Proxy an eine ABAP-Anwendung weitergeleitet wird.
Das Bild zeigt nur eine Richtung der Kommunikation wie es zum Beispiel bei asynchroner Kommunikation der Fall ist. Die Intefaces im Integration Repository haben entsprechende Attribute, die Ihre Verwendung (synchron oder asynchron) kennzeichnen.