Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apuntes Unidad IV
Apuntes Unidad IV
WSDL
WSDL son las siglas en inglés de "Lenguaje de Descripción de Servicios Web"
(o "Web Services Description Language"), un lenguaje que está basado en
XML y que permite la descripción de los servicios web desplegados. WSDL se
utiliza también para la localización y ubicación de estos servicios en Internet.
Un documento WSDL define un servicio web utilizando a tal fin elementos XML,
como:
<definitions>
<types>
los tipos de datos...
</types>
<message>
las definiciones del mensaje...
</message>
<portType>
las definiciones de operación ...
</portType>
<binding>
las definiciones de protocolo...
</binding>
</definitions>
<portType> es el elemento XML de WSDL que define el servicio web, así como
las operaciones posibles mediante dicho servicio y los mensajes vinculados.
<portType> cumple una función análoga a la de una función de biblioteca en
programación clásica o a la de una clase en programación orientada a objetos.
Los mensajes WSDL
El elemento message define los datos que participan en una operación. Cada
mensaje puede tener una o varias partes, y cada parte puede considerarse
como si fuera los parámetros que se pasan en la llamada a una función en
programación clásica o un método en programación orientada a objetos.
<binding> define el formato del mensaje y el protocolo para cada uno de los
puerto.
<message name="obtTerminoDePet">
<part name="param" type="xs:string"/>
</message>
<message name="obtTerminoDeResp">
<part name="valor" type="xs:string"/>
</message>
<portType name="terminosDeDiccionario">
<operation name="obtTermino">
<input message="obtTerminoDePet"/>
<output message="optTerminoDeResp"/>
</operation>
</portType>
Tipos de operación
<message name="valorNuevo">
<part name="termino" type="xs:string"/>
<part name="valor" type="xs:string"/>
</message>
<portType name="terminosDeDiccionario">
<operation name="terminoNuevo">
<input name="terminoNuevo" message="valorNuevo"/>
</operation>
</portType>
<message name="obtTerminoDePet">
<part name="param" type="xs:string"/>
</message>
<message name="obtTerminoDeResp">
<part name="valor" type="xs:string"/>
</message>
<portType name="terminosDeDiccionario">
<operation name="obtTermino">
<input message="obtTerminoDePet"/>
<output message="optTerminoDeResp"/>
</operation>
</portType>
Enlaces
<message name="obtTerminoDePet">
<part name="param" type="xs:string"/>
</message>
<message name="obtTerminoDeResp">
<part name="valor" type="xs:string"/>
</message>
<portType name="terminosDeDiccionario">
<operation name="obtTermino">
<input message="obtTerminoDePet"/>
<output message="optTerminoDeResp"/>
</operation>
</portType>
<binding type="terminosDeDiccionario" name="tD">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation soapAction="http://uoc.edu/obtTermino"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
El elemento <binding> cuenta con 2 atributos: "name" y "type". Con "name" (se
puede utilizar cualquier nombre, sin que coincida necesariamente con el
utilizado en la definición de port) se define el nombre del vínculo, y el atributo
"type" apunta al puerto del vínculo, que es, en este caso,
terminosDeDiccionario. El elemento soap:binding cuenta con 2 atributos: "style"
y "transport". "style" puede ser "rpc" o "document". En el ejemplo se ha utilizado
"document". "transport" define qué protocolo SOAP se debe utilizar; en el
ejemplo, HTTP.
Arquitectura de UDDI
API de UDDI
Un registro de UDDI es, asimismo, un servicio web. Exponer una API basada
en SOAP para tener acceso y manipular entradas de directorio. En lugar de
mantener datos a través de un registrador un desarrollador puede
programar directamente con la API.
<envelope xmlns=http://schemas.xmlsoap.org/soap/envelope/>
<body>
<name>MyTestBusiness</name>
</find_business>
</body>
</envelope>
Un mensaje de UDDI debe cumplir ciertos requisitos mínimos para ser
validos. Algunos de los elementos requeridos se muestran en negrita en el
ejemplo anterior. Son los siguientes:
Examinemos el último punto con más detalle. Al igual que cualquier otro
sistema, UDDI seguirá evolucionando. A medida que se realizan mejoras la
API tendrá que modificarse para exponer la nueva funcionalidad. En el
momento de escribir el libro la versión 2 de la API ha finalizado el proceso
de revisión, los miembros de uddi.org la han ratificado y se está
comenzando a implementar. Para evitar problemas a los clientes existentes
la organización UDDI diseño un sistema de versiones para mantener cierto
grado de compatibilidad hacia atrás.
Los métodos find_ se utilizan para búsquedas generales y los métodos get_
para obtener información detallada acerca de un registro en particular. En la
tabla 9.2 se describen los métodos de publicación de información.