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:
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:
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.
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 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.
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.
<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:
https://<ziel_host:port>/bcgreceiver/ReceiverDie URL-Adresse ist in der Regel dieselbe wie das HTTP-Produktionsziel, das in Ziele definiert ist.
https://<ziel_host:port>/bcgreceiver/Receiver?to=<geschäfts-id des teilnehmers>
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
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:
{<operationsnamespace>}:<operationsname>
{<namespace_des_angebenden_xml-elements = erstes_untergeordnetes_element_ von_soap:body>}: <name_des_angebenden_xml-elements = erstes_untergeordnetes_element_von_soap:body>
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.
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.
WebSphere Partner Gateway unterstützt die folgenden Standards: