Si un intermediario se debe comunicar con un servicio Web existente,
generalmente necesita enviar y recibir mensajes SOAP. Para utilizar este planteamiento
debe utilizar el dominio MRM. Necesitará asegurarse de que el modelo de mensaje del intermediario
y la definición WSDL utilizada por el servicio web describen los mismos mensajes.
En general esto se logra importando el WSDL para el servicio web existente
utilizando las herramientas de intermediario. Actualmente sólo está soportado WSDL versión 1.1.
Sólo
se representarán en el modelo de intermediario resultante las definiciones de
parte, mensaje y operación de WSDL. Empezando por el nivel más bajo, una definición de WSDL
describe:
- Un número de mensajes lógicos y las partes que los constituyen, las cuales están definidas en relación con el esquema XML. Las definiciones de las partes se importan directamente en el modelo de mensaje para crear las definiciones de elementos y tipos correspondientes.
Las definiciones se asignan a los archivos de definición de mensajes según el espacio de nombres de destino de la definición de su esquema. Si no hay definido un targetNamespace
en el elemento <xsd:schema>, entonces los elementos y tipos resultantes no tienen un espacio de nombres.
- Un número de operaciones en las que intervienen la interfaz o portType de WSDL. Las operaciones definen la carga de datos de la empresa para los mensajes SOAP durante la ejecución. Se crean mensajes de intermediario para cada carga de datos posible. En el
caso de WSDL de estilo rpc, significa que el modelo de mensaje necesita definiciones
de mensaje correspondientes a las propias operaciones de
WSDL. Los nombres de estas definiciones de mensajes se obtienen del nombre de operación
WSDL y el espacio de nombres lo proporciona el atributo de espacio de nombres en la definición
<soap:body> de WSDL.
- Una versión SOAP y un estilo de codificación. Las definiciones de mensajes
para el sobre SOAP y, si es necesario, el esquema de codificación SOAP,
se importan al conjunto de mensajes.
Actualmente el importador WSDL dar por supuesto el uso
de SOAP versión 1.1. No hay ningún motivo para que WSDL versión 1.1
no pueda definir un servicio Web que utilice SOAP versión 1.2 -
simplemente es que no hay un modo estándar de hacerlo.
Si el servicio web utiliza SOAP
versión 1.2, es posible que necesite eliminar manualmente las definiciones de SOAP versión
1.1 e importar las definiciones de SOAP versión 1.2.
Modelo de mensaje resultante
El modelo resultante permite al usuario analizar los mensajes SOAP de entrada utilizando el analizador MRM XML en el que el tipo de mensaje será Envelope. El modelo de mensaje para el sobre SOAP (Envelope) define el reiniciador SOAP externo con las secciones de cabecera y cuerpo que lo constituyen y un número de puntos de conexión donde pueden aparecer diferentes cargas de datos de la empresa.
Estos puntos de conexión se definen con el mensaje de composición, lo que permite
que los mensajes de intermediario creados por el importador WSDL aparezcan en estos puntos.
Los puntos de conexión son
Envelope.Body, Envelope.Header y Envelope.Body.Fault.detail.
Un mensaje del modelo de mensaje del usuario puede aparecer en cada punto
(en el caso de Envelope.Header, pueden aparecer varios mensajes). En el caso de WSDL de
estilo rpc, el mensaje que se espera
en Envelope.Body es el mensaje generado automáticamente correspondiente a
la operación WSDL. En todos los demás casos, los mensajes esperados son los
definidos por las partes de mensaje WSDL para cada operación.