wsdl

12
WSDL (Web Services Description Language) Es un formato XML que se utiliza para describir servicios Web (algunas personas lo leen como wisdel). La versión 1.0 fue la primera recomendación por parte del W3C y la versión 1.1 no alcanzó nunca tal estatus. La versión 2.0 se convirtió en la recomendación actual por parte de dicha entidad. WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo

Upload: reyes-benavides

Post on 06-Mar-2016

212 views

Category:

Documents


0 download

DESCRIPTION

Estamdar para descripcion de servicios WEB

TRANSCRIPT

WSDL (Web Services Description Language)

Es un formato XML que se utiliza paradescribir servicios Web (algunas personas loleen como wisdel). La versión 1.0 fue la primerarecomendación por parte del W3C y la versión1.1 no alcanzó nunca tal estatus. La versión 2.0se convirtió en la recomendación actual porparte de dicha entidad.

WSDL describe la interfaz pública a los serviciosWeb. Está basado en XML y describe la formade comunicación, es decir, los requisitos delprotocolo y los formatos de los mensajesnecesarios para interactuar con los servicioslistados en su catálogo

El WDSL nos permite tener una descripción de un servicio web. Especifica lainterfaz abstracta a través de la cual un cliente puede acceder al servicio y losdetalles de cómo se debe utilizar.

Un documento WSDL no es más que un documento XML que describe ciertascaracterísticas propias de un servicio web, así como su localización y aquellosparámetros y métodos que soporta.

Así, WSDL se usa a menudo en combinación con SOAP y XML Schema. Un programacliente que se conecta a un servicio web puede leer el WSDL para determinar quéfunciones están disponibles en el servidor.

Estructura del WSDL

La estructura del WSDL tiene los siguientes elementos:

Tipos de Datos

<types> : Esta sección define los tipos de datos usados en los mensajes. Se utilizan los tipos definidos en la especificación de esquemas XML.

<types><schema targetNamespace="http://example.com/stockquote.xsd"> quote---cotizar

<element name="TradePriceRequest"> --Petición de precio<complexType>

<all><element name="tickerSymbol" type="string"/> --simbolo del producto,recurso

</all></complexType>

</element><element name="TradePrice"> --valor bursatil

<complexType><all>

<element name="price" type="float"/> ---precio</all>

</complexType></element> </schema> </types>

En este ejemplo se implementa unservicio que muestra a partir delnombre de un valor bursátil su valoractual en el mercado.

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.

Mensajes

<message name="GetLastTradePriceInput"> --Método que recibe los parámetros definidos anteriormente.

<part name="body" element="xsd1:TradePriceRequest"/></message>

<message name="GetLastTradePriceOutput"><part name="body" element="xsd1:TradePrice"/>

</message>

Tipos de Puerto

<portType> es el elemento XML de WSDL que define el servicio web, así como lasoperaciones posibles mediante dicho servicio y los mensajes vinculados.<portType> cumple una función análoga a la de una función de biblioteca enprogramación clásica o a la de una clase en programación orientada a objetos.

<portType name="StockQuotePortType"> ---Librería con los precios <operation name="GetLastTradePrice">

< input message="tns:GetLastTradePriceInput"/><outputmessage="tns:GetLastTradePriceOutput"/></operation>

</portType>

Bindings

<binding> define el formato del mensaje y el protocolo para cada uno de los puertos.

<binding name="StockQuoteSoapBinding« type="tns:StockQuotePortType"><soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/><operation name="GetLastTradePrice">

<soap:operation soapAction="http://example.com/GetLastTradePrice"/><input>

<soap:body use="literal"/></input>

<output><soap:body use="literal"/>

</output></operation>

</binding>

Servicios

<service name="StockQuoteService"> --Nombre del servicio<documentation>My first service</documentation> --Nombre de la aplicación

<port name="StockQuotePort" --Nombre del puertobinding="tns:StockQuoteSoapBinding"> --Tipo de enlace

<soap:address location= --Ubicación"http://example.com/stockquote"/>

</port> --Etiqueta de cierre puerto</service> --Etiqueta de cierre servicio

<service> : Conjunto de puertos y dirección de los mismos. Esta parte final hace referencia a lo aportado por las secciones anteriores.

Como ya se ha especificado, la parte pública de la aplicaciónde una empresa es un XML, ese tipo de dato se denominaWSDL (Web Service Description Language), no es más que:

Un formato XML para describir los servicios como una seriede puntos de acceso operativos, conteniendo cada uno suinformación orientada hacia el documento oprocedimiento.

Las operaciones y mensajes están descritosabstractamente, atados a un protocolo de red concreto yformato de mensaje para definir su punto de acceso.

Estos puntos de acceso están combinados en puntos deacceso abstractos(servicios). Un WSDL es extensible parapermitir la descripción de servicios y sus mensajes en elformato de mensaje que tenga o protocolo usado paracomunicarse.

WSDL

definitions = elemento raíz del documento WSDL. Se usa para declarar los espacios denombres.

types = se usa para describir tipos de datos para los mensajes intercambiados.

message = descripción de los datos que van a ser transmitidos. Son una colección de“data values” de un tipo particular (utilizando XML Schema como mecanismo detipación).

portType = Colección de “operations” o “signatures” de los métodos que definen elintercambio ordenado de los mensajes.

bindings = especifica los protocolos usa cada “port” y el “encoding”.

port = “Port type” + “Binding”. Es un descripción de una acción soportada por elservicio. Cada operación se corresponde a un mensaje de input o de output

service = Conjunto de “ports” relacionados que implementan el servicio.

Componentes de un servicio

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="HelloService"

targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"

xmlns="http://schemas.xmlsoap.org/wsdl/"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<message name="SayHelloRequest">

<part name="firstName" type="xsd:string"/>

</message>

<message name="SayHelloResponse">

<part name="greeting" type="xsd:string"/>

</message>

<portType name="Hello_PortType">

<operation name="sayHello">

<input message="tns:SayHelloRequest"/>

<output message="tns:SayHelloResponse"/>

</operation>

</portType>

Véase a continuación un WSDL ejemplo:

<binding name="Hello_Binding" type="tns:Hello_PortType">

<soap:binding style="rpc"

transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="sayHello">

<soap:operation soapAction="sayHello"/>

<input>

<soap:body

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

namespace="urn:examples:helloservice"

use="encoded"/>

</input>

<output>

<soap:body

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

namespace="urn:examples:helloservice"

use="encoded"/>

</output>

</operation>

</binding>

Continuación…

<service name="Hello_Service">

<documentation>WSDL File for HelloService</documentation>

<port binding="tns:Hello_Binding" name="Hello_Port">

<soap:address

location="http://localhost:8080/soap/servlet/rpcrouter"/>

</port>

</service>

</definitions>

Continuación…