Rational Developer para System z, Versión 7.6

Interfaces WSDL

El documento de interfaz WSDL define el formato de mensajes de las operaciones y los mensajes definidos para un tipo de puerto en particular.

WSDL (Web Services Description Language) es una especificación estándar para describir servicios de red basados en XML. Proporciona una manera sencilla para que los proveedores de servicio describan el formato básico de las peticiones a sus sistemas independientemente de la implementación en tiempo de ejecución subyacente. Una especificación WSDL contiene las siguientes partes:

El editor de operación permite crear y modificar tipos de puertos, mensajes y tipos. Estos artefactos forman parte del documento de la interfaz de servicio Web.

El documento de WSDL especifica una definición de interfaz de servicios Web, que incluye los elementos mostrados en la tabla siguiente:
Componente: Contiene:
Tipo de puerto Firma de operación
Mensajes Definiciones de parámetros
Tipos Definiciones de tipo complejo
Enlaces Protocolo de transporte y formato de precarga

Cuando se implementa el servicio Web, contendrá los siguientes componentes que derivan del documento de WSDL:

portType

La descripción de las operaciones y sus mensajes asociados. PortTypes (tipos de puertos) definen las operaciones abstractas.

Figura 1. portType

<portType name="EightBall">
   <operation name="getAnswer">
      <input message="ebs:IngetAnswerRequest"/>
      <output message="ebs:OutgetAnswerResponse"/>
   <operation/>
<portType>

mensaje

La descripción de los parámetros (entrada y salida) y de los valores de retorno.

Figura 2. Mensaje

<message name="IngetAnswerRequest">
   <part name="meth1_inType" type="ebs:questionType"/>
</message>
<message name="OutgetAnswerResponse">
   <part name="meth1_outType" type="ebs:answerType"/>
</message>

tipo

El esquema que describe tipos XML complejos XML utilizados en los mensajes.

Figura 3. Tipo

<types>
   <xsd:schema targetNamespace="...">
      <xsd:complexType name="questionType">
         <xsd:element name="question" type="string"/>
      </xsd:complexType>
      <xsd:complexType name="answerType">
      ...

binding

Los enlaces (bindings) describe el protocolo utilizando como servicio, así como los formatos de datos de los mensajes definidos para un portType determinado.

Figura 4. Enlace

<binding name="EightBallBinding" type="ebs:EightBall">
   <soap:binding style="rpc" transport="schemas.xmlsoap.org/soap/http">
   <operation name="ebs:getAnswer">
   <soap:operation soapAction="urn:EightBall"/>
      <input>
         <soap:body namespace="urn:EightBall" ... />
      ...

Service

contiene el nombre de servicio Web y una lista de los puertos.

Ports

Contiene la ubicación del servicio Web y del enlace utilizado para acceder al servicio.

Figura 5. Puerto

<service name="EightBall">
   <port binding="ebs:EightBallBinding" name="EightBallPort">
      <soap:address location="localhost:8080/axis/EightBall"/>
   </port>
</service>

Ejemplo de interfaz de servicio WSDL

La interfaz de servicio abstracta proporciona definiciones de operaciones (funciones) y los mensajes utilizados.

El siguiente ejemplo de archivo WSDL muestra la relación entre los mensajes, la operación y portType que componen una definición de interfaz de servicio.

Figura 6. Interfaz de servicio WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="StockQuote"
   targetNamespace="http://example.com.wsdl/stockquote/"
   xmlns="http://schemas.xmlsoap.org/wsdl/"
   xmlns:tns="http://example.com.wsdl/stockquote/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <message name="getQuoteRequest">
      <part name="ticker" type="xsd:string"/>
   </message
   <message name="getQuoteResponse">
      <part name="result" type="xsd:float"/>
   </message
   <portType name="StockQuote">
      <operation name="getQuote" parameterOrder="ticker">
         <input message="tns:getQuoteRequest" name="getQuoteRequest"/>
         <output message="tns:getQuoteResponse" name="getQuoteResponse"/>
      </operation
   </portType
</definitions>


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)