Un participant peut demander un Service Web fourni par le Gestionnaire de communauté. Un Gestionnaire de Communauté peut également demander un Service Web fourni par un participant. Le participant ou le Gestionnaire de communauté appelle le serveur WebSphere Partner Gateway pour obtenir le Service Web. WebSphere Partner Gateway agit comme un proxy en transférant la demande de Service Web au fournisseur d'accès du Service Web et en renvoyant la réponse de manière synchrone, du fournisseur au demandeur.
La présente section comprend les informations suivantes pour configurer un Service Web qui sera utilisé par un participant ou Gestionnaire de communauté.
Lorsqu'un Service Web est fourni par le Gestionnaire de communauté pour être utilisé par des participants, WebSphere Partner Gateway impose que le participant s'identifie. Lorsque vous postez la demande de Service Web, définissez l'identité de l'une des façons suivantes :
Lorsque le Service Web est fourni par un participant pour être utilisé par le Gestionnaire de communauté, l'URL public utilisé par le Gestionnaire de communauté pour appeler le Service Web ne doit pas contenir la chaîne de requête ?to=<ID métier du participant> . Exemple :
http://<adresse_IP>/bcgreceiver/Receiver?to=123456789
Ceci indique à WebSphere Partner Gateway que le fournisseur du Service Web est le participant dont l'ID métier est 123456789.
Pour effectuer la définition de flot de documents, téléchargez les fichiers WSDL (Web Service Definition Language) qui définissent le Service Web, ou entrez manuellement les définitions équivalents de flots de documents par la Console de communauté.
La définition relative à un Service Web doit être comprise dans un fichier principal WSDL avec l'extension .wsdl, qui peut importer des fichiers WSDL supplémentaires via l'élément import. Les éventuels fichiers importés peuvent être téléchargés avec le fichier principal selon l'une des méthodes suivantes :
Par exemple, si le fichier WSDL principal helloworldRPC.wsdl contient l'élément import suivant :
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location= "bindingRPC.wsdl"/>
Et que le fichier WSDL bindingRPC.wsdl importé contient l'élément import suivant :
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location= "port/porttypeRPC.wsdl"/>
Le fichier doit contenir les informations suivantes :
Nom Chemin helloworldRPC.wsdl bindingRPC.wsdl porttypeRPC.wsdl port\
Lorsqu'un fichier de définition WSDL d'un Service Web est téléchargé, le fichier WSDL d'origine est enregistré sous forme de mappe de validation. (Les messages de Service Web ne sont pas réellement validés par WebSphere Partner Gateway. Ils sont transmis directement, avec l'URL du point d'extrémité du service d'origine.) C'est ce qu'on appelle le WSDL privé.
De plus, un WSDl public est enregistré avec l'URL privé remplacé par l'URL cible indiqué par l'utilisateur dans la page Page Téléchargement des regroupements. Le WSDL public sera fourni aux utilisateurs du Service Web, qui appelleront le Service Web à l'URL de la cible (l'URL public). WebSphere Partner Gateway achemine ensuite la demande de Service Web à une passerelle qui est l'URL privé du fournisseur de Service Web d'origine. WebSphere Partner Gateway agit comme un proxy en transférant la demande de Service Web à un URL de fournisseur privé, inconnu de l'utilisateur de Service Web.
Les WSDL privé et public (y compris les fichiers importés) peuvent être téléchargés à partir de la Console de communauté après le téléchargement du WSDL.
WebSphere Partner Gateway propose une méthode d' importation des fichiers WSDL. Si un Service Web est défini dans un fichier WSDL simple, vous pouvez télécharger directement ce fichier WSDL. Si le Service Web est défini à l'aide de plusieurs fichiers WSDL (ceci se produit lorsque vous avez importé des fichiers WSDL dans un fichier WSDL principal), ils seront téléchargés dans une archive compressée.
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location="path1/bindingRPC.wsdl"/>L'arborescence des répertoires de l'archive compressée zip sera : path1/bindingRPC.wsdl .
Pour l'exemple suivant :
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location="bindingRPC.wsdl"/>.
Le fichier bindingRPC.wsdl sera au niveau racine de l'archive.
Pour télécharger un fichier WSDL simple ou une archive compressée, procédez comme suit.
https://<hôte_cible:port>/bcgreceiver/ReceiverL'URL correspond généralement à la cible HTTP de production définie dans les cibles.
https://<hôte_cible:port>/bcgreceiver/Receiver?to=<ID_métier_du_participant>
Plusieurs schémas XML décrivant les fichiers XML qui peuvent être téléchargés via la console sont fournis sur le support d'installation WebSphere Partner Gateway. Les fichiers téléchargés sont validés pour ces schémas. Les fichiers schéma constituent une référence très utile pour la détermination des causes d'erreur lorsqu'un fichier ne peut pas être téléchargé en raison d'un XML non conforme. Les fichiers sont les suivants : wsdl.xsd , wsdlhttp.xsd et wsdlsoap.xsd, qui contiennent le schéma décrivant les fichiers WSDL (Web Service Definition Language)
Les fichiers se trouvent dans : B2BIntegrate\packagingSchemas
Pour entrer manuellement les définitions équivalentes de flot de documents, suivez les procédures indiquées dans cette section. Vous devez également créer individuellement le flot de documents, l'activité et les entrées d'action sous Protocole : Services Web, en tenant bien compte des conditions requises par l'action et de ses relations avec les messages SOAP reçus.
En ce qui concerne les définitions de flot de documents en terme de regroupement, protocole, flot de documents, activité et hiérarchie des actions, un Service Web pris en charge se présente comme suit :
{<espace_de_nom_opération>}:<nom_opération>
{<espacedenom_élément_xml_identifiant = premier_enfant_de_soap:body>}: <nom_élément_xml_identifiant = premier_enfant_de_soap:body>
Les définitions critiques sont les actions car WebSphere Partner Gateway va utiliser un espace-nom d'action et un nom pour reconnaître un message SOAP de demande de Service Web entrant, et l'acheminer de manière appropriée en fonction d'une connexion donnée de participant. L'espace-nom et le nom du premier enfant de l'élément XML soap:body du message SOAP reçu doivent correspondre à un espace de nom et à un nom d'action dans les définitions de flot de documents WebSphere Partner Gateway.
Par exemple, si un message SOAP de demande de Service Web se présente sous la forme suivante (pour une session de liaison SOAP de littéral-document) :
<?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>
Alors, WebSphere Partner Gateway cherchera une action de Service Web définie avec le code suivant :
{http://www.helloworld.com/xsd/helloDocLitSchema}:nameAndAddressElt
Par exemple, pour un message de demande SOAP de type session de liaison RPC :
<?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>
Alors, WebSphere Partner Gateway cherchera une action de Service Web définie avec le code suivant :
{http://www.helloworld.com/helloRPC}:helloWorldRPC
Pour une session de liaison RPC, l'espace-nom et le nom du premier élément enfant de soap:body d'un message de demande de SOAP doivent être l'espace-nom et le nom de l'opération du Service Web applicable.
Pour une session de liaison de littéral-document, l'espace-nom et le nom du premier élément enfant de soap:body d'un message de demande SOAP devraient correspondre à l'espace-nom de l'attribut element XML dans l'élément part de la définition de message entrant pour le Service Web.
Pour créer une interaction pour un Service Web, utilisez la même action de flot de documents de Service Web pour la source et la cible.
Pour créer des interactions, procédez comme suit :
WebSphere Partner Gateway prend en charge les standards suivants :