Un participante puede solicitar un servicio web facilitado por el gestor de comunidad. Del mismo modo, el gestor de comunidad puede solicitar un servicio web facilitado por un participante. El participante o el gestor de comunidad invoca el servidor WebSphere Partner Gateway para obtener el servicio web. WebSphere Partner Gateway actúa como proxy, transmitiendo la petición de servicio web al proveedor de servicios web y devolviendo la respuesta de manera síncrona del proveedor al solicitante.
Este apartado contiene la información siguiente para configurar un servicio web para ser utilizado por parte de un participante o de un gestor de comunidad:
Cuando un gestor de comunidad proporciona un servicio web para que sea utilizado por parte de los participantes, WebSphere Partner Gateway requiere que cada participante se identifique. Cuando envíe la petición de servicio web, defina la identidad de uno de los dos modos siguientes:
Cuando un participante facilita el servicio Web para que lo utilice el gestor de comunidad, el URL público utilizado por el gestor de comunidad para invocar el servicio Web debe incluir la serie de consulta ?to=<ID de empresa del participante>. Un ejemplo es:
http://<dirección_IP>/bcgreceiver/Receiver?to=123456789
Ello indica a WebSphere Partner Gateway que el proveedor del servicio web es el participante con el ID de empresa 123456789.
Para configurar la definición de flujo de documentos, suba los archivos WSDL (Web Service Definition Language) que definen el servicio Web o especifique manualmente las definiciones de flujo de documentos mediante la consola de comunidad.
La definición de un servicio web debería incluirse en un archivo WSDL primario, con la extensión .wsdl, que podría importar archivos WSDL adicionales mediante el elemento import. Si existen archivos importados, estos pueden subirse con el archivo primario utilizando uno de los dos métodos siguientes:
Por ejemplo, suponga que el archivo WSDL primario helloworldRPC.wsdl contiene el siguiente elemento de importación:
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location= "bindingRPC.wsdl"/>
Además, suponga que el archivo WSDL importado, bindingRPC.wsdl, contiene el siguiente elemento de importación:
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location= "port/porttypeRPC.wsdl"/>
El archivo debe contener lo siguiente:
Nombre Vía de acceso helloworldRPC.wsdl bindingRPC.wsdl porttypeRPC.wsdl port\
Cuando se sube la definición de un archivo WSDL de un servicio web, el WSDl original se guarda como correlación de validación. (Los mensajes de servicio web no están realmente validados por WebSphere Partner Gateway. Se transmiten directamente, con el URL de punto final del servicio original). Esto se conoce como WSDL privado.
Además, un WSDL público se guarda con el URL privado sustituido por el URL de destino especificado en la página Subir/descargar paquetes. El WSDL público se facilitará a los usuarios del servicio web, que invocarán el servicio web en el URL del destino (el URL público). WebSphere Partner Gateway direccionará entonces la petición de servicio web a una pasarela que es el URL privado del proveedor de servicios web original. WebSphere Partner Gateway actúa como proxy, enviando la petición de servicio web al URL de un proveedor privado, que se oculta del usuario del servicio web.
Los WSDL privado y público (incluidos todos los archivos importados) pueden descargarse de la consola de comunidad tras subir el WSDL.
WebSphere Partner Gateway proporciona un método para importar archivos WSDL. Si un servicio web se define en un archivo WSDL individual, puede subir el archivo WSDL directamente. Si el servicio Web se define utilizando múltiples archivos WSDL (tal como sucede cuando se han importado archivos WSDL, en un archivo WSDL primario), estos se subirían en un archivo comprimido.
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location="path1/bindingRPC.wsdl"/>La estructura de directorios dentro del archivo comprimido sería: path1/bindingRPC.wsdl.
Considere este ejemplo:
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location="bindingRPC.wsdl"/>.
El archivo bindingRPC.wsdl estaría en el nivel de directorio raíz dentro del archivo comprimido.
Para subir un archivo WSDL o un archivo comprimido individual, siga el procedimiento siguiente.
https://<host_destino:puerto>/bcgreceiver/ReceiverEl URL suele ser el mismo que el destino HTTP de producción definido en Destinos.
https://<host_destino:puerto>/bcgreceiver/Receiver?to= <ID_empresa_participante>
Un conjunto de esquemas XML que describen los archivos XML que pueden subirse a través de la consola que se proporciona en el soporte de instalación de WebSphere Partner Gateway. Los archivos que se suben se validan frente a estos esquemas. Los archivos de esquema son una referencia útil para averiguar la causa de un error cuando un archivo no puede cargarse debido a un XML no adecuado. Los archivos son: wsdl.xsd, wsdlhttp.xsd y wsdlsoap.xsd, que contienen el esquema que describe los archivos WSDL (Web Service Definition Language) válidos.
Los archivos se encuentran en: B2BIntegrate\packagingSchemas
Para especificar manualmente las definiciones de flujo de documentos equivalentes, siga los procedimientos que se describen en este apartado. También debe crear individualmente las entradas de flujo de documentos, actividad y acción bajo Protocolo: Servicio Web, prestando especial atención a los requisitos de la acción y su relación con los mensajes SOAP recibidos.
En relación con la jerarquía Paquete/Protocolo/Flujo de documentos/Actividad/Acción de las definiciones de flujo de documentos, un servicio web admitido se presenta como:
{<nombre_espacio_operación>}:<nombre_operación>
{<espacio_de_nombres_del_elemento_xml_identificador = primer_hijo_de_soap:body>}: <nombre_del_elemento_xml_identificador = primer_hijo_de_soap:body>
Las definiciones clave son las acciones, pues WebSphere Partner Gateway utilizará el espacio de nombres y el nombre de una acción para reconocer un mensaje SOAP de petición de servicio web entrante y direccionarlo apropiadamente basándose en una conexión de participante definida. El espacio de nombres y el nombre del primer elemento XML hijo del elemento soap:body del mensaje SOAP recibido deben coincidir con el espacio de nombres y el nombre de una acción conocida en las definiciones de flujo de documentos de WebSphere Partner Gateway.
Por ejemplo, suponga que un mensaje SOAP de petición de servicio Web para un enlace SOAP documento-literal es:
<?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 buscaría una acción de servicio web definida con este código:
{http://www.helloworld.com/xsd/helloDocLitSchema}:nameAndAddressElt
Para un mensaje de petición SOAP de estilo de enlace RPC, por ejemplo:
<?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 buscaría una acción de servicio web definida con este código:
{http://www.helloworld.com/helloRPC}:helloWorldRPC
Para un enlace RPC, el espacio de nombres y el nombre del primer elemento hijo de soap:body de un mensaje de petición SOAP debería ser el espacio de nombres y el nombre de la operación de servicio web aplicable.
Para un enlace documento-literal, el espacio de nombres y el nombre del primer elemento hijo de soap:body de un mensaje de petición SOAP debería ser el espacio de nombres y el nombre del atributo XML element en el elemento part de la definición de message para el servicio Web.
Para crear una interacción para un servicio Web, utilice la misma acción de flujo de documentos de servicios Web para el Origen y el Destino.
Para crear interacciones, siga este procedimiento.
WebSphere Partner Gateway soporta los estándares siguientes: