WSIF y WSDL
Existe una estrecha relación entre la infraestructura de invocación de servicios Web (WSIF) basada en metadatos y la semántica de WSDL (Web Services Description Language) en desarrollo.
En WSDL, un servicio se define en tres secciones diferentes:
- El portType. Esta sección define la interfaz abstracta que ofrece el servicio. Un portType define un conjunto de operaciones. Cada operación puede ser de entrada y salida (solicitud/respuesta), sólo de entrada, sólo de salida y de salida y entrada (solicitud/respuesta). Cada operación define los mensajes de entrada y de salida. Un mensaje se define como un conjunto de partes, cada una de las cuales tiene un tipo de esquema definido.
- El enlace. Esta sección define cómo se correlaciona el portType abstracto y un formato y protocolo de servicio real. Por ejemplo, el enlace SOAP define el estilo de codificación, la cabecera SOAPAction, el espacio de nombres del cuerpo (el URI de destino), etc.
- El puerto. Esta sección define la ubicación (punto final) del servicio disponible. Por ejemplo, la dirección web HTTP en la que está disponible un servicio SOAP.
Actualmente en WSDL, cada puerto tiene un único enlace y cada enlace tiene un único tipo de puerto. Pero, lo que es más importante, cada servicio (portType) puede tener varios puertos, cada uno de los cuales representa una ubicación alternativa y un enlace para acceder a dicho servicio.
La infraestructura de invocación de servicios web (WSIF) sigue la sintaxis de WSDL en todo lo posible:
- La API de invocación dinámica de WSIF expone directamente los equivalentes de tiempo de ejecución del modelo de WSDL. Por ejemplo, al invocar una operación es necesario ejecutar una operación con un mensaje de entrada.
- WSDL tiene puntos de extensión que permiten añadir nuevos puertos y enlaces. Esto habilita WSDL para describir nuevos sistemas. El concepto equivalente en WSIF es un proveedor, que enlaza el servicio WSIF a la implementación subyacente del servicio. Esto permite a WSIF conocer una clase de extensiones y, por lo tanto, soportar un nuevo tipo de implementación de servicio.
Como infraestructura de invocación basada en metadatos, WSIF se ajusta al diseño de los metadatos. A medida que se amplía WSDL, WSIF se actualiza del mismo modo.
El sistema de tipos primario de WSIF es el esquema XML. WSIF soporta la invocación utilizando proxies dinámicos, que a su vez soportan sistemas de tipo Java™, pero cuando se utiliza la interfaz WSIFMessage para invocar un servicio Web a través de la API WSIF, se deben llenar los objetos WSIFMessage con datos basándose en los tipos de esquema XML definidos en el documento WSDL. Debe definir los tipos de objeto mediante una correlación fija y ajustada a cánones a partir de los tipos de esquemas en el entorno de ejecución.