SlideShare una empresa de Scribd logo
1 de 61
Servicios Web


     Programación de Red.
    Ingeniería en Informática
Servicios Web
Objetivos:
 Conocer el concepto de Servicios Web y toda
  la tecnología asociada
 Conocer los protocolos más importantes
  asociados a Servicios Web
 Estudiar SOAP, WSDL y UDDI (WSIL)
 Dar un visión general sobre orquestación de
  Servicios Web
 Conocer algunos aspectos de seguridad en
  Servicios Web                                 2
Servicios Web

 Concepto de Servicio Web.
 SOAP.
 WSDL.
 UDDI (WSIL).
 Orquestación de Servicios Web.
 Seguridad


                                   3
WSDL
 WSDL (Web Services Description Language)
   Permite especificar en XML las operaciones y tipos de
    datos de un servicio web
   Estandarizado por el W3C
   Analogía con CORBA: WSDL/IDL
   WSDL describe:
       Información sobre la interfaz exportada
       Tipos de datos de los mensajes intercambiados
       Información de “binding” (mecanismos de interacción)
        definiendo cómo transportar los mensajes en la comunicación
       Direcciones para localizar los servicios (localización)
    Representa como un contrato entre el proveedor y el
     usuario del servicio (similar interfaz Java)               4
WSDL
¿Qué es WSDL?
 WSDL es el lenguaje estándar (dialecto de XML)
  para la descripción de Servicios Web
 Una definición WSDL es un documento escrito en
  XML que describe un servicio Web a partir de los
  mensajes que acepta y las operaciones que se
  pueden ejecutar sobre ellos
 WSDL es extensible y se pude utilizar para
  describir, prácticamente, cualquier servicio de red,
  incluyendo SOAP sobre HTTP e incluso
  protocolos que no se basan en XML como DCOM
  sobre UDP
                                                    5
SOAP
Objetivos de WSDL
  Definir los mensajes y las operaciones de
   manera abstracta, para luego vincularlos a un
   protocolo de transporte y un formato de
   mensajes concreto ⇒ permite al proveedor de
   los servicios reutilizar estas definiciones e
   implementar los mismos servicios con distintos
   formatos de mensaje y distintos protocolos de
   transporte
  Ser muy general para definir cualquier tipo de
   servicio web. Su uso no se restringe a SOAP
   ⇒ WSDL 1.1 → SOAP sobre HTTP y SMTP         6
WSDL
WSDL ofrece un marco para definir:
  Inteface ⇒ operaciones con sus entradas y salidas
  Access Specification ⇒ SOAP bindings (RPC)
  Endpoint ⇒ Localización del Sevicio
                         Soporta
    Port Type                            Operation
     Formatos y
     Protocolos                         Input y Output
                       Cómo codificar
     Binding                             Message

          Implementa

                           Ofrece
       Port                               Service        7
WSDL
WSDL especifica:
  Un documento WSDL describe tres
  propiedades fundamentales de un servicio web
      Qué hace un servicio ⇒ los mensajes y las
       operaciones que soporta
      Cómo se accede al servicio (mecanismos de
       interacción (binding)) ⇒ qué protocolo hay que usar
       para acceder al servicio y cómo se representan los
       datos de las operaciones
      Dónde está ubicado el servicio web (localización
       del servicio) ⇒ una dirección URL si se usa HTTP,
       una dirección de e-mail si se usa SMTP, etc.      8
WSDL
Esquema WSDL




               9
WSDL
WSDL
  Un documento WSDL describe los servicios
   como colecciones puertos (puntos finales de
   red)
  WSDL separa: la definición abstracta de
   puertos y de mensajes (especificación
   abstracta) de la instalación concreta de red o
   de los enlaces del formato de datos
   (implementación concreta de esas
   especificaciones) ⇒ reutilización de
   definiciones abstractas (mensajes y tipos de
   puertos)                                         10
WSDL
WSDL
 WSDL separa: la definición de la interfaz del
  servicio web (interfaz abstracta) de la definición
  de la implementación (servicio web)
 Conceptos:
      Mensajes ⇒ Descripciones abstractas de los datos
       que se están intercambiando
      Tipos de puertos ⇒ Colecciones abstractas de
       operaciones
      Puerto ⇒ Un puerto se define por la asociación de
       una dirección de red y un enlace reutilizable; una
       colección de puertos define un servicio            11
WSDL
WSDL
 Ventajas del uso de WSDL:
   Tener perfectamente definida la interfaz del servicio
    web ⇒ nombre de la función, parámetros y orden
   Facilitar la estructuración de objetos y su
    construcción (basado en XML)
   Reducir el coste de los cambios en los clientes ⇒
    permitir actualizaciones casi automáticas y reducir
    los tiempos entre codificación y explotación
   Hacer atractivo el uso de servicios web
   Existencia de herramientas que generan
    automáticamente documentos WSDL                    12
WSDL
WSDL
 Desventajas del uso de WSDL:
   No hay manera de ver si el proveedor del
    servicio ha realizado cambios en la interfaz
    de entrada ⇒ enviar mensajes a los clientes
    avisando de dichos cambios
   Define completamente la semántica de los
    servicios web?


                                              13
WSDL
Estructura de un documento WSDL
  Especificación WSDL + (parte abstracta + parte
   concreta)
  Parte abstracta ⇒ tipos
   (estructuras de datos que se
   intercambian), mensajes,
   operaciones y tipos de puertos
  Parte concreta ⇒ protocolo de
   transporte (binding), conjunto
   exacto de puertos que
   implementa, direcciónes en los
   que están accesibles y los
   servicios (agrupaciones lógicas de
                                              14
   puertos)
WSDL
Estructura de un documento WSDL
  Tipos ⇒ Estructuras de datos (tipos de datos
   que usarán los mensajes) que se intercambian
      XML Schema tiene tipos básicos pero pertime definir
       tipos complejos
  Mensajes ⇒ Cada mensaje (descripciones
   abstractas de los datos que se intercambian)
   es un documento tipado con partes. Cada parte
   se caracteriza por un nombre y un tipo
      Por ejemplo, la invocación de un procedimiento con
       dos parámetros, un entero y un real ⇒se puede
       definir como un mensaje con dos partes           15
WSDL
Estructura de un documento WSDL
  Operaciones ⇒ Hay 4 tipos de operaciones
   (especificación de la interfaz abstracta)
       One-way (un sentido) ⇒ El cliente invoca un servicio enviando
        un único mensaje al servidor, pero no recibe respuesta del
        servidor (1 mensaje, asíncrono)
       Notificacion (notificación) ⇒ El servidor envía un único
        mensaje al cliente (1 mensaje, asíncrono)
       Request-response (petición-respuesta) ⇒ El servidor es
        invocado por el cliente y responde (2 mensajes, síncrono).
        Comunicación tipo RPC
       Solicit-response (solicitud-respuesta) ⇒ El servidor invoca
        una petición y espera respuesta del cliente (2 mensajes,
        síncrono)
  Tipos de puerto ⇒ Agrupan operaciones                          16
WSDL
Estructura de un documento WSDL
  Binding (InterfaceBinding) ⇒ Especifica la
   codificación del mensaje y el protocolo de
   transporte (protocol bindings) para todas las
   operaciones y mensajes definidos en un tipo de
   puerto. Por ejemplo
       Una operación en estilo RPC
       El mensaje de una operación tiene que utilizar
        SOAP como protocolo de aplicación, y HTTP como
        protocolo de transporte
       Reglas de codificación utilizadas para serializar
        partes de un mensaje en XML: literal y encoding
        (RPC, utiliza reglas de codificación SOAP)        17
WSDL
Estructura de un documento WSDL
  Binding (InterfaceBinding) ⇒ Mecanismo de
   enlace entre la definición abstracta de un
   servicio web y una implementación específica,
   utilizando: (1) un protocolo de mensajes, un
   modelo de codificación de datos y un protocolo
   de transporte concretos
  Puertos (Ports o EndPoints) ⇒ Combinan la
   información de los Bindings con direcciones de
   red (especificados por una URI) en la que se
   puede acceder a la implementación del tipo
   de puerto
                                               18
WSDL
Estructura de un documento WSDL
  Servicios ⇒ puertos que están implementados
  como un grupo. Permiten que la misma
  funcionalidad sea accesible en diferentes
  estilos de interacción y con diferentes
  protocolos de transporte
      Agrupaciones lógicas de puertos. Un servicio específico WSDL
       podría estar accesible en diferentes direcciones (URLs de
       diferentes máquinas)
      Un servicio WSDL agrupa puertos relacionados, disponibles
       con frecuencia en una misma dirección
      Otra agrupación posible es utilizar diferentes puertos que
       representan diferentes bindings del mismo tipo de puerto 19
WSDL
Estructura de un documento WSDL
  Añadiendo InterfaceBindings, Ports y Services ⇒ la
   definición de la interface se va concretado
  Con la información de binding ⇒ los usuarios conocen
   qué protocolos usar, cómo estructurar los mensajes
   XML, y qué se espera al enviar el mensaje → WSDL
   1.1 define extensiones binding para SOAP, HTTP GET
   y POST, y MIME
  Con la información de port ⇒ el usuario conoce la
   dirección en la que se implementa un tipo de puerto
  Con el service ⇒ el usuario conoce todos los puertos
   que están implementados como un grupo               20
WSDL
Descripciones del WSDL
  El documento WSDL es descriptivo, y su finalidad es la
   de ofrecer toda la información posible al programador
   para poder realizar la codificación del cliente que
   aceptará el servicio o los servicios descritos en él
  Una interfaz tiene la misión de dar a conocer la forma
   que tendrá un objeto visto desde fuera, conociendo sus
   “enganches” con el resto del sistema, pero no tiene que
   dar información de qué o cómo se realizan las
   operaciones por dentro
  Un documento WSDL utiliza los siguientes elementos
   en la definición de servicios web
       types (tipos), message (mensaje), operation (operación) portType
        (tipo de puerto), binding (enlace), port (puerto) y service (servicio)   21
WSDL
Descripciones del WSDL
  types ⇒ Contenedor de definiciones de tipos de datos
   que se intercambien en los mensajes, utilizando algún
   sistema de tipos (XML Schema, XSD)
  message ⇒ Descripción abstracta de los datos que se
   están intercambiando (colecciones de datos)
  operation ⇒ Descripción abstracta de una acción
   admitida por el servicio
  portType ⇒ Representación abstracta del servicio web
   (interfaz real del servicio web), indicando el orden de
   intercambio de mensajes. Conjunto abstracto de
   operaciones admitidas por uno o más puertos             22
WSDL
Descripciones del WSDL
  binding ⇒ Definición concreta de los portType.
   Especificación del protocolo de transporte y del
   formato de datos para un portType
   determinado
  port ⇒ Punto final único que se define como la
   combinación de un enlace y una dirección de
   red. Direcciones implementando el servicio
  service ⇒ colección de puntos finales
   (puertos) relacionados
                                                23
WSDL
Descripciones del WSDL
  Relación entre elementos de un documento WSDL
                             message → colecciones de
                             datos, representaciones
                             abstractas de los datos
                             transmitidos. Cada mensaje
                             conta de varias partes lógicas
                             (part), cada una de las
                             cuales tiene asociado un tipo
                             (type) que debe de estar
                             previamente definido. Cada
                             part indica un parámetro que
                             se transmitirá junto con el
                             mensaje                     24
WSDL
Ejemplo de documento WSDL




                            25
WSDL
Morfología de un documento WSDL




                                  26
WSDL
Morfología de un documento WSDL
  Archivo XML:    <?xml version=“1.0”?>
  Elemento raíz ⇒ <wsdl:definitions …>
  Atributos de definitios:
      name, targetNamespace,
       xmlns=“http://schemas.xmlsoap.org/defnitions”, y
       otros namespaces de: SOAP, XML Schema, etc.
  Partes del documento WSDL: Preámbulo,
   Descripción (de la traducción de método a
   mensaje), Información de mensajes y
   Localización del servicio                        27
WSDL
Morfología de un documento WSDL
                WSDL
      Tipos de datos <wsdl:type/>
                                      Preámbulo
      Mensajes <wsdl:message/>


     Interfaces <wsdl:portType/>      Descripción

   Implementaciones <wsdl:binding/>   Información de
                                      mensajes

    Localizaciones <wsdl:service/>    Localización del
                                      servicio       28
WSDL
Morfología de un documento WSDL
  Preámbulo
    Sirve para introducir el servicio ⇒ indicando los
     tipos de datos utilizados en las distintas
     transacciones, presentación de los mensajes que se
     darán durante las transacciones y la declaración de
     los namespaces que se van a utilizar
    Lenguaje la descripción y especificación de los tipos
     de datos en el documento ⇒ XML Schema
    Vincular la definición de tipos de datos al
     documento: (1) dentro del preámbulo <wsdl:type
     …/>, (2) en archivo aparte <wsdl:import …/>       29
WSDL
Morfología de un documento WSDL
  Preámbulo
   <wsdl:definitions …>
    <wsdl:import namespace”URI” location=“URI”/>
    <wsdl:documentation> … </wsdl:documentation>
    <wsdl:import …/>
    <wsdl:types>
     <wsdl:documentation …/>
     <wsdl:schema …/>
    </wsdl:types>
    <wsdl:message name=“nombreFuncion”>
     <wsdl:documentation …/>
     <wsdl:part name= “…” element=“…” type“…”/>
                                                   30
    </wsdl:message>
WSDL
Morfología de un documento WSDL
  Descripción
    Sirve para describir de forma abstracta el servicio
     web. Traducción de método a mensaje
    Elemento <wsdl:portType> y debe haber uno por
     cada servicio que se quiere concretar
    Dentro de <wsdl:portType> se definirán las
     operaciones (interfaces) y tipos de mensajes que se
     van a utilizar que puede acceder un cliente ⇒
     funciones públicas que soporta (<wsdl:operation>)
    Las funciones se llaman mediante mensajes y se
     contestarán también a través de ellos           31
WSDL
Morfología de un documento WSDL
  Descripción
    Dentro de cada <wsdl:operation> es necesario
     definir los mensajes que se darán durante su
     llamada, y el orden en que se pueden dar (modelo
     de intercambio de mensajes)
    Tipos de mensajes:
          input ⇒ mensajes que emite el cliente como entrada al
           servicio web
          output ⇒ mensajes que son emitidos por el servicio web
           (respuesta a los mensajes input), y contendrán los datos de
           respuesta
           fault ⇒ mensajes de condiciones de error
                                                                   32
       
WSDL
Morfología de un documento WSDL
  Descripción
   <wsdl:portType name=“…”>
    <wsdl:documentation …/>
    <wsdl:operation name=“…”>
     <wsdl:documentation …/>
     <wsdl:input message=“…”> … </wsdl:input>
     <wsdl:output message=“…”> … </wsdl:input>
     <wsdl:fault name=“…” message=“…”>
      <wsdl:documentation …/>
     </wsdl:fault>
    </wsdl:operation>
   </wsdl:portTypes>
   <wsdl:serviceType name=“…”>
    <wsdl:portType name=“…”>
   </wsdl:serviceType>                           33
WSDL
Morfología de un documento WSDL
  Operación unidireccional (one-way) ⇒ Petición → un
   mensaje de entrada del cliente al servidor sin esperar
   respuesta <wsdl:input message=“”>
  Operación petición/respuesta (request-response) ⇒
   Llamada a una función remota (envia petición y
   devuelve mensaje de respuesta) <wsdl:input
   message=“”> <wsdl:output message=“”>
  Operación solicitud/respuesta (solicit-response) ⇒ El
   servidor envia un mensaje y el cliente respode
   <wsdl:output message=“”> <wsdl:input message=“”>
  Operación de notificación (notification) ⇒ El servidor
   envía un mensaje y no recibe ninguna respuesta
   <wsdl:output message=“”>                                 34
WSDL
Morfología de un documento WSDL
 Modelo de intercambio de mensajes (Op.) ⇒ One-way,
 Notificacion, Request-response, Solicit-response




                                                 35
WSDL
Morfología de un documento WSDL
  Información de mensajes
     Sirve para establecer el enlace ente la interfaz
      abstracta y las características concretas de la
      implementación (método de transporte, dirección de
      acceso, ...). <wsdl:binding>
     <wsdl:binding> ⇒ define cómo se transmitirán los
      mensajes y qué protocolo de transporte (SOAP,
      HTTP, SMTP, …) se utilizará. Además se completa
      la información del elemento <wsdl:portType>
      (definción concreta de la interfaz)
     Definición más complicada que <wsdl:portType>  36
WSDL
Morfología de un documento WSDL
  Información de mensajes
     <soap:binding> ⇒ indica que los mensajes van a
      ser de tipo SOAP. Define el protocolo de transporte
      mediante el atributo transport, y el tipo de mensaje
      SOAP que se va a transmitir mediante el atributo
      style (rpc y document (transacciones EDI))
     <soap:body> ⇒ define qué partes del mensaje se
      incluirán en el Body del mensaje SOAP, y cómo
      serán incluidas las partes. El atributo parts
      (opcional) indica qué partes deben incluirse en el
      Body de mensaje SOAP, y si no aparece ⇒ se
      incluirán todas                                   37
WSDL
Morfología de un documento WSDL
  Información de mensajes
     <soap:fault> ⇒ aparece para indicar que que se
      realice una acción distinta en caso de cualquier tipo
      de error y especifica el contenido del mensaje que
      se recibirá en tal caso (especifica los contenidos del
      elemento detail (además de faultcode,
      faultstring y faultactor) dentro del elemento
      Fault en el mensaje SOAP)
     <soap:header> y <soap:headerdefault> ⇒ permiten
      definir cabeceras que serán transmitidas dentro del
      elemento Header del mensaje SOAP, y aparecerá
      antes del elemento <soap:body>                     38
WSDL
Morfología de un documento WSDL
  Información de mensajes
     <soap:operation> ⇒ define el valor del elemento
      soapAction cuando se utiliza el protocolo HTTP. Y
      sirve para conocer el tipo de mensaje que se dará
      mendiante el atributo style
     <wsdl:operation> ⇒ dentro de este elemento se
      detalla la información de las funciones que están
      disponibles en la interfaz, y el nombre de dichas
      funciones debe de coincidir con el que se le dio en
      <wsdl:portType>. Mediante el atributo name se indica
      el nombre de la función que se definirá
     <wsdl:documentation>, <wsdl:input>,
      <wsdl:output> y <wsdl:fault> ⇔ <wsdl:portType>   39
WSDL
Morfología de un documento WSDL
  Información de mensajes
   <wsdl:binding name="Hello_Binding" type="tns:Hello_PortType">
    <soap:binding style="rpc"
       transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
     <soap:operation soapAction="sayHello"/>
     <wsdl:input>
      <soap:body
       encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
       namespace="urn:examples:helloservice"
       use="encoded"/>
     </wsdl:input>
     <wsdl:output>
      <soap:body
       encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
       namespace="urn:examples:helloservice"
       use="encoded"/>
     </wsdl:output>
    </wsdl:operation>                                              40
   </wsdl:binding>
WSDL
Morfología de un documento WSDL
  Localización del servicio
      <wsdl:service> ⇒ sirve para indicarnos dónde está
       el servicio web y dónde hay que enviar las
       peticiones
      <wsdl:port> ⇒ Indica el puerto al que se conectará
       el cliente para realizar las peticiones
      <soap:address> ⇒ se utiliza dentro del elemento
       <wsdl:port> para indicar la URL del acceso al
       servicio SOAP, indicada en el atributo location
      Un servicio web no tiene porque está ligado a una
       única URL. Diferentes URLs para un mismo servicio
       → definir varios <wsdl:port>                     41
WSDL
Morfología de un documento WSDL
  Localización del servicio
   <wsdl:service name="Hello_Service">
    <wsdl:documentation>WSDL File for
      HelloService</wsdl:documentation>
    <wsdl:port binding="tns:Hello_Binding“
      name="Hello_Port">
     <soap:address
      location="http://localhost:8080/soap/servlet/rpcrouter"/>
    </wsdl:port>
   </wsdl:service>



                                                            42
WSDL
Ejemplo de documento WSDL
<?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>
                                                                    43
WSDL
Ejemplo de documento WSDL
   <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>
   <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>
                                                                                    44
WSDL
Ejemplo de documento WSDL




                            45
WSDL
Ejemplo de documento WSDL a partir de Java
  Interfaz en Java
   public Hotel[] buscarHoteles(String ciudad);

   public class Hotel {
     private String nombre;
     private String ciudad;
     private String direccion;
     private String telefono;
     private String url;
     public void setNombre(String nombre)
      { this.nombre = nombre; }
     public String getNombre()
      { return nombre; }
     … … …
   }                                              46
WSDL
Ejemplo de documento WSDL a partir de Java
 <types>
   <schema targetNamespace='http://tempuri.org/type‘
     xmlns='http://www.w3.org/2001/XMLSchema‘
     xmlns:SOAP-    ENC='http://schemas.xmlsoap.org/soap/encoding/‘
     xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/‘
     xmlns:tns='http://tempuri.org/type' elementFormDefault='qualified'>
     <complexType name='hotel'>
       <sequence>
          <element name='nombre' type='xsd:string'/>
          <element name='ciudad' type='xsd:string'/>
          <element name='direccion' type='xsd:string'/>
          <element name='telefono' type='xsd:string'/>
          <element name='url' type='xsd:string'/>
       </sequence>
     </complexType>
     <complexType name ='ArrayOfHotel'>
       <complexContent>
          <restriction base='SOAP-ENC:Array'>
            <attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='tns:hotel[]'/>
          </restriction>
       </complexContent>
     </complexType>
   </schema>                                                                     47
 </types>
WSDL
Ejemplo de documento WSDL a partir de Java
 <message name='obtenerHoteles'>
   <part name='Ciudad' type='xsd:string'/>
 </message>
 <message name='obtenerHotelesResponse'>
   <part name='Result' type='typens:ArrayOfHotel'/>
 </message>
 <portType name='ServicioHotelPortType'>
   <operation name='obtenerHoteles'>
     <input message='wsdlns:obtenerHoteles'/>
     <output message='wsdlns:obtenerHotelesResponse'/>
   </operation>
   <!- Incluir operaciones adicionales que tuviera el portType -->
 </portType>




                                                                     48
WSDL
Ejemplo de documento WSDL a partir de Java
 <binding name='ServicioHotelSoapBinding' type='wsdlns:ServicioHotelPortType'>
   <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
   <operation name='obtenerHoteles'>
     <soap:operation
       soapAction='http://tempuri.org/action/ServicioHotel.obtenerHoteles'/>
       <input>
         <soap:body use='encoded' namespace='http://tempuri.org/message/‘
           encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
       </input>
       <output> <soap:body use='encoded‘ namespace='http://tempuri.org/message/‘
         encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
       </output>
     </operation>
     <!- Aquí se podrían poner más operaciones –->
 </binding>
 <service name='servicioH' >
   <port name='ServicioHotelSoapPort' binding='wsdlns:ServicioHotelSoapBinding'>
     <soap:address location='http://155.54.15.121/servicioH/servicioH2.ASP' />
   </port>
   <!- Aquí podríamos poner ports adicionales -->
 </service>                                                                      49
WSDL
Ejemplo de documento WSDL a partir de Java
 Definición completa del servicio web ⇒ Definición de tipos,
 mensajes, portTypes, binding y service




                                                               50
WSDL
Ejemplo de documento WSDL a partir de Java
 <?xml version='1.0' encoding='UTF-8' ?>
 <definitions name ='servicioH' targetNamespace =
 'http://tempuri.org/wsdl/‘
   xmlns:wsdlns='http://tempuri.org/wsdl/‘
   xmlns:typens='http://tempuri.org/type‘
   xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/‘
   xmlns:xsd='http://www.w3.org/2001/XMLSchema‘
   xmlns='http://schemas.xmlsoap.org/wsdl/'>
   <documentation>
     Este servicio web busca hoteles en una ciudad específica
   </documentation>
   <types> … </types>
   <message> … </message>
   <portType> … </portType>
   <binding> … </binding>
   <service> … </service>
 </definitions>                                                 51
WSDL
Protocolos en WSDL
  Según la especificación, WSDL puede usarse
   con cualquier protocolo de transporte y de
   formato de mensajes. La especificación WSDL
   sólo define bindings para tres protocolos:
   SOAP, HTTP GET/POST y MIME
  El binding SOAP y el binding HTTP definen el
   modo de transporte, el modo de invocación y la
   codificación. Sin embargo, el binding MIME
   sólo define el modo de codificación y ha de
   combinarse con alguno de los anteriores para
   concretar el modo de transporte e invocación
                                              52
WSDL
Protocolos en WSDL. Binding SOAP
  El binding SOAP para WSDL proporciona una manera
   de indicar:
       Que los mensajes van a ser de tipo SOAP
       La cabecera SOAPAction que hay que usar en los
        mensajes si el transporte es HTTP
       El resto de cabeceras que haya que usar en los
        mensajes
       La dirección a la que se deben enviar los mensajes
  Los elementos de un binding no forman parte del
   espacio de nombres de WSDL. El binding SOAP está
   definido en http://schemas.xmlsoap.org/wsdl/soap/53
WSDL
Protocolos en WSDL. Binding SOAP
  Elementos del binding SOAP
      <soap:binding>, <soap:body>, <soap:fault>,
       <soap:header>, <soap:headerdefault>,
       <soap:operation>, <soap:address>
   <binding name="TemperaturaActualBindingSoap"
      type="tns:TemperaturaActualPortType">
      <soap:binding style="document"
      transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="GetTemperaturaActual">
        <soap:operation soapAction="http://example.com/GetTemperaturaActual"/>
        <input>
          <soap:body use="literal"/>
        </input>
        <output>
          <soap:body use="literal">
        </output>
      </operation>                                                             54
   </binding>
WSDL
Protocolos en WSDL. Binding HTTP GET/POST
  El binding define tres maneras diferentes en enlazar un
    mensaje con una dirección HTTP:
        HTTP GET con codificación de la URL
        HTTP GET con sustitución de URL
        HTTP POST
  Estos métodos permiten que un servicio sea usado por
    un navegador HTTP estándar ⇒ lo que haría al servicio
    accesible a una gran variedad de clientes
    (navegadores, PDAs, teléfonos móviles, etc.)
 <binding name="postBinding" type="addPortType">
   <http:binding verb="POST"/>
   <operation name="add">
     <http:operation location="o1"/>
     <input> … </input> … <output> … </output> …
   </operation>
                                                       55
 </binding>
WSDL
Protocolos en WSDL. Binding MIME
  Hay enlaces definidos para los tipos multipart / related
   y text / xml. Los demás tipos MIME también se pueden
   representar usando el elemento mime:content.
   También es posible usar tipos MIME junto con SOAP
   para enlazar partes diferentes del mismo mensaje.
  Los enlaces de datos MIME se pueden usar dentro de
   las secciones input o output del elemento binding
 <binding ...>
   <operation ...>
     <input>
       <--Elementos mime-->
     </input>
     <output>
       <--Elementos mime-->
     </output>
   </operation>                                          56
  </binding>
WSDL
Implicaciones del modelo WSDL
  Los diferentes tipos de interacción ⇒ Suponen que un
   servidor puede invocar servicios (se comporta como un
   cliente)
  La ventaja de la separación de la parte abstracta y
   concreta, es que la primera puede reutilizarse ⇒ Un
   WDSL puede importar otro WDSL <import …>. Por
   ejemplo, un documento WSDl puede importar la parte
   abstracta y concretar los “bindings” y las “direcciones”
  Si los mensajes definido en WSDL se intercambian en
   SOAP, entonces el InterfaceBinding contiene toda la
   información necesaria para construir automáticamente
   los mensajes SOAP
                                                        57
WSDL
Utilización de WSDL (según W3C)
  Lenguaje de descripción de servicio tradicional
   (contrato que implementa un Servicio Web) ⇒ El
   contrato indica cómo interactuar con el servicio, datos a
   enviar y devolver, operaciones involucradas y el
   formato y protocolo
  Entrada para compiladores de stub y otras
   herramientas ⇒ Los servidores de aplicaciones dan
   facilidades para generar stubs de documento WSDL y
   para generar WSDL de clases (p.e. clases java)
  Uso no definido claramente por el W3C en referencia a
   la semántica ⇒ Uso de WSDL para capturar la
   información que permitirá a los diseñadores razonar
   sobre la semántica de los servicios                   58
WSDL
Utilización de WSDL (según W3C)




                                  59
WSDL
Conclusiones sobre WSDL
  WSDL permite describir servicios web de
   manera formal
  WSDL permite definir la interfaz del servicio,
   cómo se enlazará a uno o varios protocolos de
   transporte, y los tipos de datos que utiliza
  WSDL permite definir el método de transporte y
   de invocación, y también especificar la
   dirección de acceso al servicio
  WSDL es muy flexible ⇒ no limita su uso a una
   codificación, ni a un protocolo de transporte, ni
   a un modelo de invocación concretos           60
WSDL
Conclusiones sobre WSDL
  Los enlaces concretos como SOAP, HTTP y
   MIME son simplemente extensiones de WSDL,
   y se pueden definir otros enlaces para
   cualquier protocolo
  Existen herramientas para poder crear un
   proxy de cliente o un esqueleto (skeleton) de
   un servicio de forma automática a partir de un
   documento WSDL ⇒ Lo único necesario para
   acceder a un servicio = definición en WSDL
  WSDL es equivalente a los IDLs ⇒ Servicios
   Web son más complejos de describir          61

Más contenido relacionado

La actualidad más candente

Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2David Motta Baldarrago
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuenciastill01
 
6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clasesRamiro Estigarribia Canese
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetosyolandacando1
 
Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3David Motta Baldarrago
 
SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)dina_k_d
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosWilfredo Mogollón
 
Servicios Web
Servicios  WebServicios  Web
Servicios Webbarkuz
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacionZonickX
 
Unidad 1 requerimientos del software
Unidad 1 requerimientos del softwareUnidad 1 requerimientos del software
Unidad 1 requerimientos del softwareoemavarez
 
Diagrama de secuencia
Diagrama de secuenciaDiagrama de secuencia
Diagrama de secuenciaKelly Cuervo
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de usoJulio Pari
 
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoEsquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoJuan Anaya
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 

La actualidad más candente (20)

Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
Servidor web
Servidor webServidor web
Servidor web
 
6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clases
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
C3 lenguaje de presentación.
C3 lenguaje de presentación.C3 lenguaje de presentación.
C3 lenguaje de presentación.
 
Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3
 
Tema 3 2
Tema 3 2Tema 3 2
Tema 3 2
 
SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)
 
Metodologia De Desarrollo De Software
Metodologia De Desarrollo De SoftwareMetodologia De Desarrollo De Software
Metodologia De Desarrollo De Software
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a Objetos
 
Servicios Web
Servicios  WebServicios  Web
Servicios Web
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
Unidad 1 requerimientos del software
Unidad 1 requerimientos del softwareUnidad 1 requerimientos del software
Unidad 1 requerimientos del software
 
Diagrama de secuencia
Diagrama de secuenciaDiagrama de secuencia
Diagrama de secuencia
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de uso
 
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoEsquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Modelo OSI y TCP/IP
Modelo OSI y TCP/IPModelo OSI y TCP/IP
Modelo OSI y TCP/IP
 

Similar a Tema 3 1 (20)

Wsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitazWsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitaz
 
S3-PD2-2.1. SOAP
S3-PD2-2.1. SOAPS3-PD2-2.1. SOAP
S3-PD2-2.1. SOAP
 
Servicios web service api rest en netbeans
Servicios web service api rest en netbeansServicios web service api rest en netbeans
Servicios web service api rest en netbeans
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
Web services en sistemas distribuidos
Web services en sistemas distribuidosWeb services en sistemas distribuidos
Web services en sistemas distribuidos
 
S3-PD2.pptx
S3-PD2.pptxS3-PD2.pptx
S3-PD2.pptx
 
S3-PD2.pptx
S3-PD2.pptxS3-PD2.pptx
S3-PD2.pptx
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx
 
Act4 uni2
Act4 uni2Act4 uni2
Act4 uni2
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Semana 15 -servicios_web
Semana 15 -servicios_webSemana 15 -servicios_web
Semana 15 -servicios_web
 
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
 
WSDL.pdf
WSDL.pdfWSDL.pdf
WSDL.pdf
 
Servicios web
Servicios webServicios web
Servicios web
 
Semana 04 protocolo y seguridad
Semana 04 protocolo y seguridadSemana 04 protocolo y seguridad
Semana 04 protocolo y seguridad
 
S3-PD2-SOAP
S3-PD2-SOAPS3-PD2-SOAP
S3-PD2-SOAP
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
 

Último

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 

Último (20)

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 

Tema 3 1

  • 1. Servicios Web Programación de Red. Ingeniería en Informática
  • 2. Servicios Web Objetivos:  Conocer el concepto de Servicios Web y toda la tecnología asociada  Conocer los protocolos más importantes asociados a Servicios Web  Estudiar SOAP, WSDL y UDDI (WSIL)  Dar un visión general sobre orquestación de Servicios Web  Conocer algunos aspectos de seguridad en Servicios Web 2
  • 3. Servicios Web  Concepto de Servicio Web.  SOAP.  WSDL.  UDDI (WSIL).  Orquestación de Servicios Web.  Seguridad 3
  • 4. WSDL  WSDL (Web Services Description Language)  Permite especificar en XML las operaciones y tipos de datos de un servicio web  Estandarizado por el W3C  Analogía con CORBA: WSDL/IDL  WSDL describe:  Información sobre la interfaz exportada  Tipos de datos de los mensajes intercambiados  Información de “binding” (mecanismos de interacción) definiendo cómo transportar los mensajes en la comunicación  Direcciones para localizar los servicios (localización)  Representa como un contrato entre el proveedor y el usuario del servicio (similar interfaz Java) 4
  • 5. WSDL ¿Qué es WSDL?  WSDL es el lenguaje estándar (dialecto de XML) para la descripción de Servicios Web  Una definición WSDL es un documento escrito en XML que describe un servicio Web a partir de los mensajes que acepta y las operaciones que se pueden ejecutar sobre ellos  WSDL es extensible y se pude utilizar para describir, prácticamente, cualquier servicio de red, incluyendo SOAP sobre HTTP e incluso protocolos que no se basan en XML como DCOM sobre UDP 5
  • 6. SOAP Objetivos de WSDL  Definir los mensajes y las operaciones de manera abstracta, para luego vincularlos a un protocolo de transporte y un formato de mensajes concreto ⇒ permite al proveedor de los servicios reutilizar estas definiciones e implementar los mismos servicios con distintos formatos de mensaje y distintos protocolos de transporte  Ser muy general para definir cualquier tipo de servicio web. Su uso no se restringe a SOAP ⇒ WSDL 1.1 → SOAP sobre HTTP y SMTP 6
  • 7. WSDL WSDL ofrece un marco para definir:  Inteface ⇒ operaciones con sus entradas y salidas  Access Specification ⇒ SOAP bindings (RPC)  Endpoint ⇒ Localización del Sevicio Soporta Port Type Operation Formatos y Protocolos Input y Output Cómo codificar Binding Message Implementa Ofrece Port Service 7
  • 8. WSDL WSDL especifica:  Un documento WSDL describe tres propiedades fundamentales de un servicio web  Qué hace un servicio ⇒ los mensajes y las operaciones que soporta  Cómo se accede al servicio (mecanismos de interacción (binding)) ⇒ qué protocolo hay que usar para acceder al servicio y cómo se representan los datos de las operaciones  Dónde está ubicado el servicio web (localización del servicio) ⇒ una dirección URL si se usa HTTP, una dirección de e-mail si se usa SMTP, etc. 8
  • 10. WSDL WSDL  Un documento WSDL describe los servicios como colecciones puertos (puntos finales de red)  WSDL separa: la definición abstracta de puertos y de mensajes (especificación abstracta) de la instalación concreta de red o de los enlaces del formato de datos (implementación concreta de esas especificaciones) ⇒ reutilización de definiciones abstractas (mensajes y tipos de puertos) 10
  • 11. WSDL WSDL  WSDL separa: la definición de la interfaz del servicio web (interfaz abstracta) de la definición de la implementación (servicio web)  Conceptos:  Mensajes ⇒ Descripciones abstractas de los datos que se están intercambiando  Tipos de puertos ⇒ Colecciones abstractas de operaciones  Puerto ⇒ Un puerto se define por la asociación de una dirección de red y un enlace reutilizable; una colección de puertos define un servicio 11
  • 12. WSDL WSDL  Ventajas del uso de WSDL:  Tener perfectamente definida la interfaz del servicio web ⇒ nombre de la función, parámetros y orden  Facilitar la estructuración de objetos y su construcción (basado en XML)  Reducir el coste de los cambios en los clientes ⇒ permitir actualizaciones casi automáticas y reducir los tiempos entre codificación y explotación  Hacer atractivo el uso de servicios web  Existencia de herramientas que generan automáticamente documentos WSDL 12
  • 13. WSDL WSDL  Desventajas del uso de WSDL:  No hay manera de ver si el proveedor del servicio ha realizado cambios en la interfaz de entrada ⇒ enviar mensajes a los clientes avisando de dichos cambios  Define completamente la semántica de los servicios web? 13
  • 14. WSDL Estructura de un documento WSDL  Especificación WSDL + (parte abstracta + parte concreta)  Parte abstracta ⇒ tipos (estructuras de datos que se intercambian), mensajes, operaciones y tipos de puertos  Parte concreta ⇒ protocolo de transporte (binding), conjunto exacto de puertos que implementa, direcciónes en los que están accesibles y los servicios (agrupaciones lógicas de 14 puertos)
  • 15. WSDL Estructura de un documento WSDL  Tipos ⇒ Estructuras de datos (tipos de datos que usarán los mensajes) que se intercambian  XML Schema tiene tipos básicos pero pertime definir tipos complejos  Mensajes ⇒ Cada mensaje (descripciones abstractas de los datos que se intercambian) es un documento tipado con partes. Cada parte se caracteriza por un nombre y un tipo  Por ejemplo, la invocación de un procedimiento con dos parámetros, un entero y un real ⇒se puede definir como un mensaje con dos partes 15
  • 16. WSDL Estructura de un documento WSDL  Operaciones ⇒ Hay 4 tipos de operaciones (especificación de la interfaz abstracta)  One-way (un sentido) ⇒ El cliente invoca un servicio enviando un único mensaje al servidor, pero no recibe respuesta del servidor (1 mensaje, asíncrono)  Notificacion (notificación) ⇒ El servidor envía un único mensaje al cliente (1 mensaje, asíncrono)  Request-response (petición-respuesta) ⇒ El servidor es invocado por el cliente y responde (2 mensajes, síncrono). Comunicación tipo RPC  Solicit-response (solicitud-respuesta) ⇒ El servidor invoca una petición y espera respuesta del cliente (2 mensajes, síncrono)  Tipos de puerto ⇒ Agrupan operaciones 16
  • 17. WSDL Estructura de un documento WSDL  Binding (InterfaceBinding) ⇒ Especifica la codificación del mensaje y el protocolo de transporte (protocol bindings) para todas las operaciones y mensajes definidos en un tipo de puerto. Por ejemplo  Una operación en estilo RPC  El mensaje de una operación tiene que utilizar SOAP como protocolo de aplicación, y HTTP como protocolo de transporte  Reglas de codificación utilizadas para serializar partes de un mensaje en XML: literal y encoding (RPC, utiliza reglas de codificación SOAP) 17
  • 18. WSDL Estructura de un documento WSDL  Binding (InterfaceBinding) ⇒ Mecanismo de enlace entre la definición abstracta de un servicio web y una implementación específica, utilizando: (1) un protocolo de mensajes, un modelo de codificación de datos y un protocolo de transporte concretos  Puertos (Ports o EndPoints) ⇒ Combinan la información de los Bindings con direcciones de red (especificados por una URI) en la que se puede acceder a la implementación del tipo de puerto 18
  • 19. WSDL Estructura de un documento WSDL  Servicios ⇒ puertos que están implementados como un grupo. Permiten que la misma funcionalidad sea accesible en diferentes estilos de interacción y con diferentes protocolos de transporte  Agrupaciones lógicas de puertos. Un servicio específico WSDL podría estar accesible en diferentes direcciones (URLs de diferentes máquinas)  Un servicio WSDL agrupa puertos relacionados, disponibles con frecuencia en una misma dirección  Otra agrupación posible es utilizar diferentes puertos que representan diferentes bindings del mismo tipo de puerto 19
  • 20. WSDL Estructura de un documento WSDL  Añadiendo InterfaceBindings, Ports y Services ⇒ la definición de la interface se va concretado  Con la información de binding ⇒ los usuarios conocen qué protocolos usar, cómo estructurar los mensajes XML, y qué se espera al enviar el mensaje → WSDL 1.1 define extensiones binding para SOAP, HTTP GET y POST, y MIME  Con la información de port ⇒ el usuario conoce la dirección en la que se implementa un tipo de puerto  Con el service ⇒ el usuario conoce todos los puertos que están implementados como un grupo 20
  • 21. WSDL Descripciones del WSDL  El documento WSDL es descriptivo, y su finalidad es la de ofrecer toda la información posible al programador para poder realizar la codificación del cliente que aceptará el servicio o los servicios descritos en él  Una interfaz tiene la misión de dar a conocer la forma que tendrá un objeto visto desde fuera, conociendo sus “enganches” con el resto del sistema, pero no tiene que dar información de qué o cómo se realizan las operaciones por dentro  Un documento WSDL utiliza los siguientes elementos en la definición de servicios web  types (tipos), message (mensaje), operation (operación) portType (tipo de puerto), binding (enlace), port (puerto) y service (servicio) 21
  • 22. WSDL Descripciones del WSDL  types ⇒ Contenedor de definiciones de tipos de datos que se intercambien en los mensajes, utilizando algún sistema de tipos (XML Schema, XSD)  message ⇒ Descripción abstracta de los datos que se están intercambiando (colecciones de datos)  operation ⇒ Descripción abstracta de una acción admitida por el servicio  portType ⇒ Representación abstracta del servicio web (interfaz real del servicio web), indicando el orden de intercambio de mensajes. Conjunto abstracto de operaciones admitidas por uno o más puertos 22
  • 23. WSDL Descripciones del WSDL  binding ⇒ Definición concreta de los portType. Especificación del protocolo de transporte y del formato de datos para un portType determinado  port ⇒ Punto final único que se define como la combinación de un enlace y una dirección de red. Direcciones implementando el servicio  service ⇒ colección de puntos finales (puertos) relacionados 23
  • 24. WSDL Descripciones del WSDL  Relación entre elementos de un documento WSDL message → colecciones de datos, representaciones abstractas de los datos transmitidos. Cada mensaje conta de varias partes lógicas (part), cada una de las cuales tiene asociado un tipo (type) que debe de estar previamente definido. Cada part indica un parámetro que se transmitirá junto con el mensaje 24
  • 26. WSDL Morfología de un documento WSDL 26
  • 27. WSDL Morfología de un documento WSDL  Archivo XML: <?xml version=“1.0”?>  Elemento raíz ⇒ <wsdl:definitions …>  Atributos de definitios:  name, targetNamespace, xmlns=“http://schemas.xmlsoap.org/defnitions”, y otros namespaces de: SOAP, XML Schema, etc.  Partes del documento WSDL: Preámbulo, Descripción (de la traducción de método a mensaje), Información de mensajes y Localización del servicio 27
  • 28. WSDL Morfología de un documento WSDL WSDL Tipos de datos <wsdl:type/> Preámbulo Mensajes <wsdl:message/> Interfaces <wsdl:portType/> Descripción Implementaciones <wsdl:binding/> Información de mensajes Localizaciones <wsdl:service/> Localización del servicio 28
  • 29. WSDL Morfología de un documento WSDL  Preámbulo  Sirve para introducir el servicio ⇒ indicando los tipos de datos utilizados en las distintas transacciones, presentación de los mensajes que se darán durante las transacciones y la declaración de los namespaces que se van a utilizar  Lenguaje la descripción y especificación de los tipos de datos en el documento ⇒ XML Schema  Vincular la definición de tipos de datos al documento: (1) dentro del preámbulo <wsdl:type …/>, (2) en archivo aparte <wsdl:import …/> 29
  • 30. WSDL Morfología de un documento WSDL  Preámbulo <wsdl:definitions …> <wsdl:import namespace”URI” location=“URI”/> <wsdl:documentation> … </wsdl:documentation> <wsdl:import …/> <wsdl:types> <wsdl:documentation …/> <wsdl:schema …/> </wsdl:types> <wsdl:message name=“nombreFuncion”> <wsdl:documentation …/> <wsdl:part name= “…” element=“…” type“…”/> 30 </wsdl:message>
  • 31. WSDL Morfología de un documento WSDL  Descripción  Sirve para describir de forma abstracta el servicio web. Traducción de método a mensaje  Elemento <wsdl:portType> y debe haber uno por cada servicio que se quiere concretar  Dentro de <wsdl:portType> se definirán las operaciones (interfaces) y tipos de mensajes que se van a utilizar que puede acceder un cliente ⇒ funciones públicas que soporta (<wsdl:operation>)  Las funciones se llaman mediante mensajes y se contestarán también a través de ellos 31
  • 32. WSDL Morfología de un documento WSDL  Descripción  Dentro de cada <wsdl:operation> es necesario definir los mensajes que se darán durante su llamada, y el orden en que se pueden dar (modelo de intercambio de mensajes)  Tipos de mensajes:  input ⇒ mensajes que emite el cliente como entrada al servicio web  output ⇒ mensajes que son emitidos por el servicio web (respuesta a los mensajes input), y contendrán los datos de respuesta fault ⇒ mensajes de condiciones de error 32 
  • 33. WSDL Morfología de un documento WSDL  Descripción <wsdl:portType name=“…”> <wsdl:documentation …/> <wsdl:operation name=“…”> <wsdl:documentation …/> <wsdl:input message=“…”> … </wsdl:input> <wsdl:output message=“…”> … </wsdl:input> <wsdl:fault name=“…” message=“…”> <wsdl:documentation …/> </wsdl:fault> </wsdl:operation> </wsdl:portTypes> <wsdl:serviceType name=“…”> <wsdl:portType name=“…”> </wsdl:serviceType> 33
  • 34. WSDL Morfología de un documento WSDL  Operación unidireccional (one-way) ⇒ Petición → un mensaje de entrada del cliente al servidor sin esperar respuesta <wsdl:input message=“”>  Operación petición/respuesta (request-response) ⇒ Llamada a una función remota (envia petición y devuelve mensaje de respuesta) <wsdl:input message=“”> <wsdl:output message=“”>  Operación solicitud/respuesta (solicit-response) ⇒ El servidor envia un mensaje y el cliente respode <wsdl:output message=“”> <wsdl:input message=“”>  Operación de notificación (notification) ⇒ El servidor envía un mensaje y no recibe ninguna respuesta <wsdl:output message=“”> 34
  • 35. WSDL Morfología de un documento WSDL Modelo de intercambio de mensajes (Op.) ⇒ One-way, Notificacion, Request-response, Solicit-response 35
  • 36. WSDL Morfología de un documento WSDL  Información de mensajes  Sirve para establecer el enlace ente la interfaz abstracta y las características concretas de la implementación (método de transporte, dirección de acceso, ...). <wsdl:binding>  <wsdl:binding> ⇒ define cómo se transmitirán los mensajes y qué protocolo de transporte (SOAP, HTTP, SMTP, …) se utilizará. Además se completa la información del elemento <wsdl:portType> (definción concreta de la interfaz)  Definición más complicada que <wsdl:portType> 36
  • 37. WSDL Morfología de un documento WSDL  Información de mensajes  <soap:binding> ⇒ indica que los mensajes van a ser de tipo SOAP. Define el protocolo de transporte mediante el atributo transport, y el tipo de mensaje SOAP que se va a transmitir mediante el atributo style (rpc y document (transacciones EDI))  <soap:body> ⇒ define qué partes del mensaje se incluirán en el Body del mensaje SOAP, y cómo serán incluidas las partes. El atributo parts (opcional) indica qué partes deben incluirse en el Body de mensaje SOAP, y si no aparece ⇒ se incluirán todas 37
  • 38. WSDL Morfología de un documento WSDL  Información de mensajes  <soap:fault> ⇒ aparece para indicar que que se realice una acción distinta en caso de cualquier tipo de error y especifica el contenido del mensaje que se recibirá en tal caso (especifica los contenidos del elemento detail (además de faultcode, faultstring y faultactor) dentro del elemento Fault en el mensaje SOAP)  <soap:header> y <soap:headerdefault> ⇒ permiten definir cabeceras que serán transmitidas dentro del elemento Header del mensaje SOAP, y aparecerá antes del elemento <soap:body> 38
  • 39. WSDL Morfología de un documento WSDL  Información de mensajes  <soap:operation> ⇒ define el valor del elemento soapAction cuando se utiliza el protocolo HTTP. Y sirve para conocer el tipo de mensaje que se dará mendiante el atributo style  <wsdl:operation> ⇒ dentro de este elemento se detalla la información de las funciones que están disponibles en la interfaz, y el nombre de dichas funciones debe de coincidir con el que se le dio en <wsdl:portType>. Mediante el atributo name se indica el nombre de la función que se definirá  <wsdl:documentation>, <wsdl:input>, <wsdl:output> y <wsdl:fault> ⇔ <wsdl:portType> 39
  • 40. WSDL Morfología de un documento WSDL  Información de mensajes <wsdl:binding name="Hello_Binding" type="tns:Hello_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHello"> <soap:operation soapAction="sayHello"/> <wsdl:input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </wsdl:input> <wsdl:output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </wsdl:output> </wsdl:operation> 40 </wsdl:binding>
  • 41. WSDL Morfología de un documento WSDL  Localización del servicio  <wsdl:service> ⇒ sirve para indicarnos dónde está el servicio web y dónde hay que enviar las peticiones  <wsdl:port> ⇒ Indica el puerto al que se conectará el cliente para realizar las peticiones  <soap:address> ⇒ se utiliza dentro del elemento <wsdl:port> para indicar la URL del acceso al servicio SOAP, indicada en el atributo location  Un servicio web no tiene porque está ligado a una única URL. Diferentes URLs para un mismo servicio → definir varios <wsdl:port> 41
  • 42. WSDL Morfología de un documento WSDL  Localización del servicio <wsdl:service name="Hello_Service"> <wsdl:documentation>WSDL File for HelloService</wsdl:documentation> <wsdl:port binding="tns:Hello_Binding“ name="Hello_Port"> <soap:address location="http://localhost:8080/soap/servlet/rpcrouter"/> </wsdl:port> </wsdl:service> 42
  • 43. WSDL Ejemplo de documento WSDL <?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> 43
  • 44. WSDL Ejemplo de documento WSDL <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> <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> 44
  • 46. WSDL Ejemplo de documento WSDL a partir de Java  Interfaz en Java public Hotel[] buscarHoteles(String ciudad); public class Hotel { private String nombre; private String ciudad; private String direccion; private String telefono; private String url; public void setNombre(String nombre) { this.nombre = nombre; } public String getNombre() { return nombre; } … … … } 46
  • 47. WSDL Ejemplo de documento WSDL a partir de Java <types> <schema targetNamespace='http://tempuri.org/type‘ xmlns='http://www.w3.org/2001/XMLSchema‘ xmlns:SOAP- ENC='http://schemas.xmlsoap.org/soap/encoding/‘ xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/‘ xmlns:tns='http://tempuri.org/type' elementFormDefault='qualified'> <complexType name='hotel'> <sequence> <element name='nombre' type='xsd:string'/> <element name='ciudad' type='xsd:string'/> <element name='direccion' type='xsd:string'/> <element name='telefono' type='xsd:string'/> <element name='url' type='xsd:string'/> </sequence> </complexType> <complexType name ='ArrayOfHotel'> <complexContent> <restriction base='SOAP-ENC:Array'> <attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='tns:hotel[]'/> </restriction> </complexContent> </complexType> </schema> 47 </types>
  • 48. WSDL Ejemplo de documento WSDL a partir de Java <message name='obtenerHoteles'> <part name='Ciudad' type='xsd:string'/> </message> <message name='obtenerHotelesResponse'> <part name='Result' type='typens:ArrayOfHotel'/> </message> <portType name='ServicioHotelPortType'> <operation name='obtenerHoteles'> <input message='wsdlns:obtenerHoteles'/> <output message='wsdlns:obtenerHotelesResponse'/> </operation> <!- Incluir operaciones adicionales que tuviera el portType --> </portType> 48
  • 49. WSDL Ejemplo de documento WSDL a partir de Java <binding name='ServicioHotelSoapBinding' type='wsdlns:ServicioHotelPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='obtenerHoteles'> <soap:operation soapAction='http://tempuri.org/action/ServicioHotel.obtenerHoteles'/> <input> <soap:body use='encoded' namespace='http://tempuri.org/message/‘ encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded‘ namespace='http://tempuri.org/message/‘ encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> <!- Aquí se podrían poner más operaciones –-> </binding> <service name='servicioH' > <port name='ServicioHotelSoapPort' binding='wsdlns:ServicioHotelSoapBinding'> <soap:address location='http://155.54.15.121/servicioH/servicioH2.ASP' /> </port> <!- Aquí podríamos poner ports adicionales --> </service> 49
  • 50. WSDL Ejemplo de documento WSDL a partir de Java Definición completa del servicio web ⇒ Definición de tipos, mensajes, portTypes, binding y service 50
  • 51. WSDL Ejemplo de documento WSDL a partir de Java <?xml version='1.0' encoding='UTF-8' ?> <definitions name ='servicioH' targetNamespace = 'http://tempuri.org/wsdl/‘ xmlns:wsdlns='http://tempuri.org/wsdl/‘ xmlns:typens='http://tempuri.org/type‘ xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/‘ xmlns:xsd='http://www.w3.org/2001/XMLSchema‘ xmlns='http://schemas.xmlsoap.org/wsdl/'> <documentation> Este servicio web busca hoteles en una ciudad específica </documentation> <types> … </types> <message> … </message> <portType> … </portType> <binding> … </binding> <service> … </service> </definitions> 51
  • 52. WSDL Protocolos en WSDL  Según la especificación, WSDL puede usarse con cualquier protocolo de transporte y de formato de mensajes. La especificación WSDL sólo define bindings para tres protocolos: SOAP, HTTP GET/POST y MIME  El binding SOAP y el binding HTTP definen el modo de transporte, el modo de invocación y la codificación. Sin embargo, el binding MIME sólo define el modo de codificación y ha de combinarse con alguno de los anteriores para concretar el modo de transporte e invocación 52
  • 53. WSDL Protocolos en WSDL. Binding SOAP  El binding SOAP para WSDL proporciona una manera de indicar:  Que los mensajes van a ser de tipo SOAP  La cabecera SOAPAction que hay que usar en los mensajes si el transporte es HTTP  El resto de cabeceras que haya que usar en los mensajes  La dirección a la que se deben enviar los mensajes  Los elementos de un binding no forman parte del espacio de nombres de WSDL. El binding SOAP está definido en http://schemas.xmlsoap.org/wsdl/soap/53
  • 54. WSDL Protocolos en WSDL. Binding SOAP  Elementos del binding SOAP  <soap:binding>, <soap:body>, <soap:fault>, <soap:header>, <soap:headerdefault>, <soap:operation>, <soap:address> <binding name="TemperaturaActualBindingSoap" type="tns:TemperaturaActualPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetTemperaturaActual"> <soap:operation soapAction="http://example.com/GetTemperaturaActual"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"> </output> </operation> 54 </binding>
  • 55. WSDL Protocolos en WSDL. Binding HTTP GET/POST  El binding define tres maneras diferentes en enlazar un mensaje con una dirección HTTP:  HTTP GET con codificación de la URL  HTTP GET con sustitución de URL  HTTP POST  Estos métodos permiten que un servicio sea usado por un navegador HTTP estándar ⇒ lo que haría al servicio accesible a una gran variedad de clientes (navegadores, PDAs, teléfonos móviles, etc.) <binding name="postBinding" type="addPortType"> <http:binding verb="POST"/> <operation name="add"> <http:operation location="o1"/> <input> … </input> … <output> … </output> … </operation> 55 </binding>
  • 56. WSDL Protocolos en WSDL. Binding MIME  Hay enlaces definidos para los tipos multipart / related y text / xml. Los demás tipos MIME también se pueden representar usando el elemento mime:content. También es posible usar tipos MIME junto con SOAP para enlazar partes diferentes del mismo mensaje.  Los enlaces de datos MIME se pueden usar dentro de las secciones input o output del elemento binding <binding ...> <operation ...> <input> <--Elementos mime--> </input> <output> <--Elementos mime--> </output> </operation> 56 </binding>
  • 57. WSDL Implicaciones del modelo WSDL  Los diferentes tipos de interacción ⇒ Suponen que un servidor puede invocar servicios (se comporta como un cliente)  La ventaja de la separación de la parte abstracta y concreta, es que la primera puede reutilizarse ⇒ Un WDSL puede importar otro WDSL <import …>. Por ejemplo, un documento WSDl puede importar la parte abstracta y concretar los “bindings” y las “direcciones”  Si los mensajes definido en WSDL se intercambian en SOAP, entonces el InterfaceBinding contiene toda la información necesaria para construir automáticamente los mensajes SOAP 57
  • 58. WSDL Utilización de WSDL (según W3C)  Lenguaje de descripción de servicio tradicional (contrato que implementa un Servicio Web) ⇒ El contrato indica cómo interactuar con el servicio, datos a enviar y devolver, operaciones involucradas y el formato y protocolo  Entrada para compiladores de stub y otras herramientas ⇒ Los servidores de aplicaciones dan facilidades para generar stubs de documento WSDL y para generar WSDL de clases (p.e. clases java)  Uso no definido claramente por el W3C en referencia a la semántica ⇒ Uso de WSDL para capturar la información que permitirá a los diseñadores razonar sobre la semántica de los servicios 58
  • 59. WSDL Utilización de WSDL (según W3C) 59
  • 60. WSDL Conclusiones sobre WSDL  WSDL permite describir servicios web de manera formal  WSDL permite definir la interfaz del servicio, cómo se enlazará a uno o varios protocolos de transporte, y los tipos de datos que utiliza  WSDL permite definir el método de transporte y de invocación, y también especificar la dirección de acceso al servicio  WSDL es muy flexible ⇒ no limita su uso a una codificación, ni a un protocolo de transporte, ni a un modelo de invocación concretos 60
  • 61. WSDL Conclusiones sobre WSDL  Los enlaces concretos como SOAP, HTTP y MIME son simplemente extensiones de WSDL, y se pueden definir otros enlaces para cualquier protocolo  Existen herramientas para poder crear un proxy de cliente o un esqueleto (skeleton) de un servicio de forma automática a partir de un documento WSDL ⇒ Lo único necesario para acceder a un servicio = definición en WSDL  WSDL es equivalente a los IDLs ⇒ Servicios Web son más complejos de describir 61