Web-Services

Ein Teilnehmer kann einen Web-Service anfordern, der von Community Manager bereitgestellt wird. In ähnlicher Weise kann Community Manager einen Web-Service anfordern, der von einem Teilnehmer bereitgestellt wird. Der Teilnehmer oder Community Manager rufen den WebSphere Partner Gateway-Server auf, um den Web-Service zu erhalten. WebSphere Partner Gateway agiert als Proxy-Server, der die Web-Serviceanforderung an den Web-Service-Provider übergibt und die Antwort synchron vom Provider an den Requester zurückgibt.

Dieser Abschnitt enthält die folgenden Informationen für das Konfigurieren eines Web-Services zur Verwendung durch einen Teilnehmer oder Community Manager:

Die Teilnehmer für einen Web-Service angeben

Wenn ein Web-Service von Community Manager zur Verwendung durch Teilnehmer bereitgestellt wird, erfordert WebSphere Partner Gateway, dass ein Teilnehmer sich selbst angibt. Wenn die Web-Serviceanforderung übergeben wird, legen Sie die Identität auf eine der folgenden zwei Arten fest:

  1. Verwenden Sie die HTTP-Basisauthentifizierung mit einer Benutzer-ID im Format <geschäfts-id_des_teilnehmers>/<konsolbenutzername> (Beispiel: 123456789/joesmith) und ein Kennwort, das dem Kennwort des Konsolbenutzernamens entspricht.
  2. Stellen Sie ein SSL-Clientzertifikat bereit, das zuvor in WebSphere Partner Gateway für den Teilnehmer geladen wurde.

Wenn der Web-Service von einem Teilnehmer für die Verwendung durch Community Manager zur Verfügung gestellt wird, sollte die öffentliche URL-Adresse, mit der Community Manager den Web-Service aufruft, die Abfragezeichenfolge ?to=<geschäfts-ID_des_teilnehmers> enthalten. Beispiel:

http://<IP-adresse>/bcgreceiver/Receiver?to=123456789

Dadurch erfährt WebSphere Partner Gateway, dass der Provider des Web-Services der Teilnehmer mit der Geschäfts-ID 123456789 ist.

Dokumentenflussdefinitionen erstellen

Um die Dokumentenflussdefinition zu konfigurieren, laden Sie entweder die WSDL-Dateien (Web Service Definition Language) hoch, die den Web-Service definieren, oder Sie geben die entsprechenden Dokumentenflussdefinitionen manuell über Community Console ein.

Die WSDL-Dateien für einen Web-Service hochladen

Die Definition für einen Web-Service sollte in einer primären WSDL-Datei mit der Erweiterung .wsdl enthalten sein, welche zusätzliche WSDL-Dateien über das Element import importieren könnte.Wenn importierte Dateien vorhanden sind, können diese mit der Primärdatei unter Verwendung einer der folgenden Methoden hochgeladen werden:

Angenommen, die Primär-WSDL-Datei helloworldRPC.wsdl enthält z. B. das folgende Importelement:

<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location=
 "bindingRPC.wsdl"/>

Und angenommen, die importierte WSDL-Datei bindingRPC.wsdl enthält das folgende Importelement:

<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location=
 "port/porttypeRPC.wsdl"/>

Die Datei sollte das Folgende enthalten:

Name                   Path
 
 helloworldRPC.wsdl
 
 bindingRPC.wsdl
 
 porttypeRPC.wsdl            port\

Wenn eine WSDL-Dateidefinition eines Web-Services hochgeladen wird, wird die ursprüngliche WSDL als Validierungszuordnung gespeichert. (Web-Servicenachrichten werden tatsächlich von WebSphere Partner Gateway nicht validiert. Sie werden direkt mit dem ursprünglichen Serviceendpunkt-URL weitergeleitet.) Dies wird als private WSDL bezeichnet.

Daneben wird eine öffentliche WSDL gespeichert, bei der der private URL durch den Ziel-URL ersetzt wird, der auf der Seite Pakete hoch-/herunterlade angegeben ist. Die öffentliche WSDL wird den Benutzern des Web-Services zur Verfügung gestellt, die den Web-Service am URL des Ziels (dem öffentlichen URL) aufrufen werden. WebSphere Partner Gateway wird dann die Web-Serviceanforderung an ein Gateway weiterleiten, das der private URL des ursprünglichen Web-Service-Providers ist. WebSphere Partner Gateway agiert als Proxy-Server, der die Web-Serviceanforderung an einen privaten Provider-URL weiterleitet, welcher für den Web-Servicebenutzer verdeckt ist.

Sowohl die private als auch die öffentliche WSDL (einschließlich aller importierten Dateien) können von Community Console hochgeladen werden, nachdem die WSDL hochgeladen wurde.

WSDL-Dateien mit Community Console hochladen

WebSphere Partner Gateway stellt eine Möglichkeit zum Importieren von WSDL-Dateien bereit. Wenn ein Web-Service in einer einzelnen WSDL-Datei definiert ist, können Sie die WSDL-Datei direkt hochladen. Wenn der Web-Service mit mehreren WSDL-Dateien definiert ist, dies ist der Fall, wenn Sie WSDL-Dateien innerhalb einer Primär-WSDL-Datei importiert haben, würden diese in einem komprimierten Archiv hochgeladen.

Wichtig: Die WSDL-Dateien in dem komprimierten Archiv müssen in einem Verzeichnis sein, das im WSDL-Importelement angegeben ist. Angenommen, Sie verfügen z. B. über das folgende Importelement:
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" 
 location="path1/bindingRPC.wsdl"/>
Die Verzeichnisstruktur im komprimierten Archiv würde wie folgt lauten: path1/bindingRPC.wsdl.

Sehen Sie sich jetzt dieses Beispiel an:

<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl"
  location="bindingRPC.wsdl"/>.

Die Datei bindingRPC.wsdl würde sich im komprimierten Archiv auf der Stammverzeichnisebene befinden.

Gehen Sie wie folgt vor, um eine einzelne WSDL-Datei oder ein einzelnes gezipptes Archiv hochzuladen:

  1. Klicken Sie auf Hubadmin > Hubkonfiguration > Dokumentenflussdefinition.
  2. Klicken Sie auf Pakete hoch-/herunterladen.
  3. Klicken Sie für WSDL-Paket auf Ja.
  4. Führen Sie für Öffentliche Web-Service-URL-Adresse einen der folgenden Schritte aus:
  5. Klicken Sie auf Durchsuchen, und wählen Sie die WSDL-Datei oder das komprimierte Archiv aus.
  6. Wählen Sie für In Datenbank festschreiben die Option Nein aus, wenn Sie die Datei in Testmodus hochladen wollen. Wenn Sie Nein auswählen, wird die Datei nicht auf dem System installiert. Verwenden Sie die vom System generierten Nachrichten, die im Fenster Nachrichten angezeigt werden, um Fehler bei der Hochladeoperation zu beheben. Wählen Sie Ja aus, um die Datei in die Systemdatenbank hochzuladen.
  7. Wählen Sie für Daten überschreiben die Option Ja aus, um eine Datei zu ersetzen, die sich gerade in der Datenbank befindet. Wählen Sie Nein aus, um die Datei der Datenbank hinzuzufügen.
  8. Klicken Sie auf Hochladen. Die WSDL-Datei wird auf dem System installiert.
Pakete mit Schemadateien validieren

Eine Gruppe von XML-Schemata, die die XML-Dateien beschreiben, welche über die Konsole hochgeladen werden können, wird auf dem WebSphere Partner Gateway-Installationsdatenträger bereitgestellt. Hochgeladene Dateien werden mit diesen Schemata validiert. Die Schemadateien sind eine hilfreiche Referenz zur Bestimmung von Fehlerursachen, wenn eine Datei aufgrund eines XML-Fehlers nicht hochgeladen werden kann. Zu diesen Dateien gehören wsdl.xsd, wsdlhttp.xsd und wsdlsoap.xsd, die das Schema enthalten, das die gültigen WSDL-Dateien (WSDL - Web Service Definition Language) beschreibt.

Die Dateien befinden sich in: B2BIntegrate\packagingSchemas

Die Dokumentenflussdefinition manuell erstellen

Um die entsprechenden Dokumentenflussdefinitionen manuell einzugeben, befolgen Sie die Prozeduren in diesem Abschnitt. Sie müssen auch die Einträge Dokumentenfluss, Aktivität und Aktion einzeln unter Protokoll: Web Service erstellen. Beachten Sie dabei besonders die Anforderungen für die Aktion und ihre Beziehung zu den empfangenen SOAP-Nachrichten.

In Bezug auf die Hierarchie von Paket/Protokoll/Dokumentenfluss/Aktivität/Aktion der Dokumentenflussdefinitionen wird ein unterstützter Web-Service wie folgt dargestellt:

Die Aktionen sind die kritischen Definitionen, da WebSphere Partner Gateway den Namespace und den Namen einer Aktion verwendet, um eine eingehende Web-Serviceanforderungs-SOAP-Nachricht zu erkennen und diese auf einer definierten Teilnehmerverbindung basierend entsprechend weiterzuleiten. Der Namespace und Name des ersten untergeordneten XML-Elements vom Element soap:body der empfangenen SOAP-Nachricht muss mit einem Namespace und Namen einer bekannten Aktion in den Dokumentenflussdefinitionen von WebSphere Partner Gateway übereinstimmen.

Angenommen, eine Web-Serviceanforderungs-SOAP-Nachricht für eine SOAP-Bindung document-literal) sieht z. B. wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?> 
 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsd=
 "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/
 2001/XMLSchema-instance">
  <soapenv:Body>
   <nameAndAddressElt xmlns="http://www.helloworld.com/xsd/helloDocLitSchema">
    <titleElt xmlns="">Mr</titleElt>
    <nameElt xmlns="">Joe Smith</nameElt>
    <addressElt xmlns="">
     <numberElt>123</numberElt>
     <streetElt>Elm St</streetElt>
     <cityElt>Peoria</cityElt>
    </addressElt>
   </nameAndAddressElt>
  </soapenv:Body>
 </soapenv:Envelope>

WebSphere Partner Gateway würde nach einer definierten Web-Serviceaktion mit diesem Code suchen:

{http://www.helloworld.com/xsd/helloDocLitSchema}:nameAndAddressElt

Beispiel einer SOAP-Anforderungsnachricht im RPC-Bindungsstil:

<?xml version="1.0" encoding="UTF-8"?> 
 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsd=
 "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/
 2001/XMLSchema-instance">
  <soapenv:Body>
   <ns1:helloWorldRPC soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/
 encoding/ xmlns:ns1="http://www.helloworld.com/helloRPC">
    <name xsi:type="xsd:string">Joe Smith</name>
   </ns1:helloWorldRPC>
  </soapenv:Body>
 </soapenv:Envelope>

WebSphere Partner Gateway würde nach einer definierten Web-Serviceaktion mit diesem Code suchen:

{http://www.helloworld.com/helloRPC}:helloWorldRPC

Bei einer RPC-Bindung sollte der Namespace und Name des ersten untergeordneten Elements vom soap:body einer SOAP-Anforderungsnachricht der Namespace und Name der gültigen Web-Serviceoperation sein.

Bei einer Bindung document-literal sollte der Namespace und Name des ersten untergeordneten Elements vom soap:body einer SOAP-Anforderungsnachricht der Namespace und Name des XML-Attributs element im Element part der Eingabedefinition message für den Web-Service sein.

Interaktionen erstellen

Zum Erstellen einer Interaktion für einen Web-Service verwenden Sie dieselbe Web-Service-Dokumentenflussaktion für sowohl die Quelle als auch das Ziel.

Verwenden Sie die folgende Prozedur, um Interaktionen zu erstellen.

  1. Klicken Sie auf Hubadmin > Hubkonfiguration > Dokumentenflussdefinition.
  2. Klicken Sie auf Interaktionen verwalten.
  3. Klicken Sie auf Interaktion erstellen.
  4. Erweitern Sie unter Quelle den Eintrag Paket: None > Protokoll: Web Service > Dokumentenfluss: < dokumentenfluss> > Aktion: <aktion>. Wiederholen Sie diesen Schritt in der Spalte Ziel.
  5. Wählen Sie Pass-Through in der Liste Aktion unten auf der Seite aus. (Pass-Through ist die einzige gültige Option, die von WebSphere Partner Gateway für einen Web-Service unterstützt wird.)

Einschränkungen und Begrenzungen der Web-Serviceunterstützung

WebSphere Partner Gateway unterstützt die folgenden Standards:

Anmerkung:

Copyright IBM Corp. 2003, 2005