SlideShare uma empresa Scribd logo
1 de 51
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 coreografía en
  Servicios Web                                 2
Servicios Web

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


                                   3
UDDI
 UDDI (Universal Description Discovey and Integration)
    Primera propuesta en Septiembre de 2000 (IBM, Ariba y
     Microsoft), desde la versión 3 (julio 2002) bajo el paraguas
     OASIS
    Objetivos:
        Especificar un framework (entorno de trabajo) para describir,
         publicar y descubrir servicios Web
        Todo gira alrededor de la noción de bussines registry (un
         servicio de nombres y directorio) ⇒ La idea era registrar
         cada servicio desarrollado en todo el mundo
        UDDI define estructuras de datos y APIs para publicar
         descripciones de servicios y buscar servicios
        Al ser a su vez un servicio Web ⇒ las APIs de UDDI están
         también especificadas en WSDL con SOAP                    4
UDDI
¿Qué es UDDI?
  UDDI es un conjunto de especificaciones que definen
   una forma de publicar y descubrir información sobre
   empresas y servicios, y por tanto, sobre servicios Web
  UDDI consta de cuatro documentos de especificación
   relacionados y un esquema XML que define una API
   SOAP para el registro y descubrimiento de los
   servicios
  En el contexto de servicios Web ⇒ UDDI define una
   nueva capa (nivel) que permite a usuarios utilizar un
   método común para averiguar los servicios ofrecidos
   por los demás y hacer accesibles los suyos propios 5
UDDI
Pila de protocolos de servicios Web (UDDI)




 Con UDDI se alcanza una cota más en el proceso hacia la
 consecución de un sistema basado en servicios Web
 totalmente universal y automático                         6
UDDI
¿Qué permite UDDI?
  A los desarrolladores ⇒ encontrar información
   para escribir los clientes de los servicios Web
  Dynamic binding ⇒ permitir a los clientes
   preguntar al registro y obtener las referencias a los
   servicios de interés
 Es decir, UDDI permite publicar información sobre los servicios Web,
 ayudándose de documentos WSDL de estos ⇒ hacer llegar al
 usuario la información de la empresa y de sus servicios de manera
 sencilla y rápida
 Además, UDDI permite ser consultado para la creación de clientes
 de forma automática, para mantener referencias de los documentos
 WSDL                                                              7
UDDI
Especificación UDDI 2.0:
  Especificación de la API del programador ⇒ define
   la interfaz de acceso SOAP a un registro UDDI y el
   funcionamiento del registro
  Especificación de las estructuras de datos ⇒ define
   las estructuras de datos XML utilizadas en los
   mensajes SOAP definidos en la especificación de la
   API
  Especificación de la replicación ⇒ describe el
   proceso de replicación y la interfaz requerida por los
   registros para conseguir la replicación entre
   operadores UDDI
  Especificación de los operadores ⇒ describe el
   comportamiento y los parámetros operacionales
   requeridos para todos los operadores UDDI              8
UDDI
Especificación UDDI 2.0:
  Las especificaciones UDDI y el esquema se
   usan para construir servicios de
   descubrimiento en Internet
  Estos servicios (de descubrimiento) presentan
   una interfaz consistente para publicación y
   permiten el descubrimiento programático de
   servicios
  Estos servicios de descubrimiento serían
   realmente los registros UDDI
                                               9
UDDI
Relación entre especificaciones, esquema y
registros UDDI




                                             10
UDDI
Registro UDDI global (universal)
  Mantenido por IBM y Microsoft
  UDDI Business Registry ⇒ nube UDDI
  Las compañías que alojan el registro UDDI global se llaman
   operadores UDDI
  Estos operadores son gratis, y cualquier empresa puede
   publicar información sobre los servicios que ofrece
  Nube UDDI ⇒ un conjunto de registros que replican su
   información en todos y que, para el que accede a ellos,
   funcionan cómo uno solo ⇔ registrado una vez,
   publicado en todos sitios
  Registro UDDI global ⇒ proporciona una forma estándar
   de publicar y consultar servicios y puede utilizarse como
   base para proporcionar servicios de búsqueda más
   complejos                                                 11
UDDI
  Funcionamiento de UDDI




Conjunto de registros UDDI, cada uno mantenido por un operador (nube
UDDI), proveedores registrando sus servicios y clientes buscando
servicios concretos                                                12
UDDI
Funcionamiento UDDI
  Instituciones de estándares (ISO, IEEE, ANSI, etc.) ⇒ publican en
   el registro UDDI → descripciones de varios tipos de servicios
  Las empresas (proveedores de servicios) ⇒ publican en el
   registro UDDI descripciones de los servicios que proporcionan →
   Estos servicios deben implementar una interfaz propia o conocida
  El registro UDDI ⇒ asigna identificadores únicos a cada servicio y
   empresa registrada
  Mercados online, motores de búsqueda, y aplicaciones
   empresariales ⇒ consultan el registro UDDI para descubrir
   servicios
  La empresas ⇒ usarán la información obtenida para invocar
   métodos en servicios remotos e integrarlos sobre Internet       13
UDDI
Datos almacenados en el Registro UDDI
  UDDI clasifica los registros en base a para que se utiliza la
    información
        Páginas blancas ⇒ Nombre de la empresa, información
         de contacto, listados de organizaciones y servicios. Los
         cliente UDDI pueden encontrar servicios Web dados por
         una empresa
        Páginas amarillas ⇒ Información de industria,
         clasificación de compañías y servicios Web de acuerdo
         a una taxonomía (NAICS, UNSPSC, etc.)
        Páginas verdes ⇒ Información técnica sobre los
         servicios que la compañía proporciona y
         especificaciones. Describe cómo puede ser invocado un
         servicio Web, punteros a descripciones de servicios
         (descripciones externas al registro UDDI)              14
UDDI
Tipos de información (ED) en el Registro UDDI
  BusinessEntity ⇒ Describe la organización que
   ofrece el servicio → Nombre, dirección y otra
   información de contacto
  BusinessService ⇒ Grupo de servicios Web
   relacionados ofrecido por una BusinessEntity
   (empresa), pero ofrecida en diferentes direcciones,
   versiones, y tecnologías. Al igual que las
   BusinessEntity, pueden incluir información de
   clasificación → corresponde con una clase de servicio
  BusinessTemplate ⇒ Información técnica para utilizar
   el servicio → Dirección del servicio, Referencias
   documentos (tModels) describiendo el interfaz u otras
   propiedades, cómo dar valor a los parámetros y
   valores por defecto                                 15
UDDI
Tipos de información en el Registro UDDI
  tModels (Technical model) o Registros de tipo
   de servicio ⇒ contienen la información que un
   programador necesitaría saber para poder
   usar un servicio Web particular
  tModels ⇒ Contenedor genérico para
   cualquier especificación. Por ejemplo, puede
   representar un interfaz de servicio en WSDL,
   un protocolo de interacción, o la semántica de
   una operación
                                                16
UDDI
Estructura almacenada en el registro UDDI




                                            17
UDDI
Modelo de información UDDI
  El modelo de información UDDI está definido
   en un esquema XML ⇒ Define cinco tipos
   principales de información que una empresa
   necesitaría saber para usar un servicio Web
      Información de la entidad de negocio (empresa)
      Información del servicio
      Información de enlace
      Punteros de especificación e información
       técnica
      Aserciones del proveedor
                                                   18
UDDI
Modelo de información UDDI
  Información de la empresa ⇒ businessEntity,
  y corresponde a las páginas blancas y
  amarillas sobre la empresa. Atributos:
      BusinessKey ⇒ una clave única que identifica
       a la entidad de negocio
      operador ⇒ nombre del operador del registro
       UDDI donde está publicada esta entrada
      authorizedName ⇒ el nombre de la persona
       que publico esta entrada
                                                 19
UDDI
Modelo de información UDDI
  Elementos (businessEntity):
      discoveryURLs ⇒ URLs que apuntan a
       mecanismos de descubrimiento alternativos
       para el servicio
      name ⇒ Nombre de la organización
      description ⇒ una descripción breve de la
       entidad de negocio
      contacts ⇒ información de contacto para la
       organización
      businessServices ⇒ lista de los servicios que
       esta empresa provee y sus características   20
UDDI
Modelo de información UDDI
  Elementos (businessEntity ⇒ información de
  páginas amarillas):
      indentifierBag ⇒ una lista de pares nombre-
       valor que actúan como identificadores
       alternativos para la empresa. Esto permite a los
       clientes buscar una empresa usando nombres
       identificativos diferentes
      categoryBag ⇒ una lista de pares nombre-
       valor que etiquetan a la empresa con
       información específica de clasificación       21
UDDI
Modelo de información UDDI
  Estructura de businessEntity
 <element name=”businessEntity”>
  <complexType>
   <sequence>
     <element ref=”discovery URLs” minOccurs=”0”/>
     <element ref=”name” maxOccurs = “unbounded”/>
     <element ref=”description” minOccurs=”0” maxOccurs=”unbounded”/>
     <element ref=”contacts” minOccurs=”0”/>
     <element ref=”businessServices” minOccurs=”0”/>
     <element ref=”identifierBag” minOccurs=”0” />
     <element ref=”categoryBag” minOccurs=”0”/>
   </sequence>
   <attribute ref=”businessKey” use=”required”/>
   <attribute ref=”operator”/>
   <attribute ref=”authorizedName”/>
  </complexType>
 </element>                                                             22
UDDI
Modelo de información UDDI
  Información sobre servicios ⇒ businessService,
   contiene información descriptiva sobre una familia de
   servicios proporcionados por una entidad de negocio
   (páginas verdes de la empresa). Familia de servicios
   ⇒ conjunto de servicios cuya función es la misma pero
   con una interfaz diferente. Atributos:
     serviceKey ⇒ una clave única que identifica este
      servicio. Esta clave es asignada por el operador
      cuando se registra el servicio
     businessKey ⇒ la clave de la entidad de negocio
      que ofrece este servicio                          23
UDDI
Modelo de información UDDI
  Elementos (businessService):
      name ⇒ El nombre de esta familia de servicios
       (nombre del servicio de alto nivel)
      description ⇒ Una descripción textual de la
       familia de servicios
      bindingTemplates ⇒ las plantillas de enlace
       que dan la descripción técnica de la familia de
       servicios
      categoryBag ⇒ una lista de pares nombre-
       valor que etiquetan el servicio con información
       taxonómica específica                        24
UDDI
Modelo de información UDDI
  Estructura de businessService
 <element name=”businessService”>
  <complexType>
   <sequence>
     <element ref=”name” maxOccurs=”unbounded”/>
     <element ref=”description” minOccurs=”0” maxOccurs=”unbounded”/>
     <element ref=”bindingTemplates”/>
     <element ref=”categoryBag minOccurs=”0”/>
   </sequence>
   <attribute ref=”serviceKey” use=”required”/>
   <attribute ref=”businessKey”/>
  </complexType>
 </element>
                                                                        25
UDDI
Modelo de información UDDI
  Información de enlace ⇒ bindingTemplate,
   información técnica sobre un servicio (servicio
   de bajo nivel), que ayuda a los clientes a
   conectarse e invocar el servicio Web
   Atributos:
       bindingKey ⇒ una clave única que identifica
        esta plantilla de enlace → identificador único
        asignado por el operador del registro
       serviceKey ⇒ la clave del elemento
        businessService que contiene esta plantilla de
        enlace                                       26
UDDI
Modelo de información UDDI
  Elementos (bindingTemplate):
      description ⇒ descripción textual de la plantilla de
       enlace
      accessPoint ⇒ el punto de acceso para la información
       → contiene el punto de entrada para el servicio. Valores
       válidos para el punto de acceso pueden ser una URL,
       dirección de email o incluso un número de teléfono. El
       punto de acceso tiene un atributo urlType, y posibles
       valores = http, https, ftp, fax, phone y mailto
      hostingRedirector ⇒ apunta a otra plantilla de enlace, y
       se usa cuando el punto de acceso no está especificado
      tModelInstanceDetails ⇒ una lista de estructuras
       tModel. tModel ⇔ huella digital para el servicio       27
UDDI
Modelo de información UDDI
  Estructura de bindingTemplate
 <element name=”bindingTemplate”>
  <complexType>
   <sequence>
     <element ref=”description” minOccurs=”0” maxOccurs=”unbounded”/>
     <choice>
      <element ref=”accessPoint” minOccurs=”0”/>
      <element ref=”hostingRedirector” minOccurs=”0”/>
     </choice>
     <element ref=”tModelInstanceDetails”/>
   </sequence>
   <attribute ref=”bindingKey” use=”required”/>
   <attribute ref=”serviceKey”/>
  </complexType>
 </element>                                                           28
UDDI
Relación entre las estructuras de datos UDDI




                                               29
WSIL
WSIL (Web Service Inspection Language)
  WSIL (Lenguaje de Inspección de WS):
      Otra forma de localizar servicios Web
      No es competidor de UDDI, sino que IBM y Microsoft lo
       propusieron para completarlo, ya que en algunas
       ocasiones es más útil WSIL y en otras lo será UDDI
      WSIL funciona de forma descentralizada, al contrario que
       UDDI que está centralizado ⇒ No existe un registro
       universal en el que buscar, sino que cada nodo puede
       tener su(s) propio(s) documento(s) WSIL con las
       especificaciones necesarias para la búsqueda de WS
      WSIL se apoya de manera importante en el documento
       WSDL ⇔ documento de especificación similar            30
WSIL
WSIL (Web Service Inspection Language)
  WSIL (Lenguaje de Inspección de WS):
      WSIL deja de lado la información de la empresa (UDDI),
       permitiendo realizar un documento de especificación que
       será algo semejante a una tarjeta de presentación con
       los servicios disponibles por parte de dicho documento
      Con un documento WSIL se puede referenciar servicios
       UDDI o WSDL (o otros servicios WSIL)
      Documento WSIL es un documento XML que actúa como
       un puntero intermediario a la descripción del servicio ⇒
       lista de punteros hacia documentos WSDL que son los
       encargados de describir el servicio
      WSIL es sencillo y extensible a otras descripciones, ya
       que se utiliza XML como soporte base                    31
WSIL
WSIL (Web Service Inspection Language)
  WSIL (Lenguaje de Inspección de WS):
      Cuando sabes con que host (servidor) deseas trabajar,
       por ejemplo, www.progress.com
      Por convenio buscar el documento WSIL inspection.wsil,
       por ejemplo, http://www.progress.com/inspection.wsil
      El documento WSIL soporta enlazado con otros
       documentos WSIL
                                               Empresa
                                WSIL

                                              Unidad de
                            WSIL   WSIL       producción


                         WSIL   WSIL   WSIL   Department   32

                                                  o
WSIL
WSIL (Web Service Inspection Language)
                                          Web Server
 Obtener inspection.wisl
 de www.progress.com
                                                                                           Application
                                                                                             Server




                                                                      Business Interface
                                                     SOAP Processor
                                          Listener
                           GET WISL




                                           HTTP
       Web
      Service                                                                               Business
      Client          Response(WISL)                                                         Logic




   WSIL
                                                     WSDL
                                       WSIL           WSDL
                                                       WSDL
                                                        WSDL                                       33
WSIL
WSIL (Web Service Inspection Language)
                                         Web Server
  Obtener el soporte técnico
      WSDL denominado
     techsupport.wsdl de
      www.progress.com                                                                    Application
                                                                                            Server




                                                                     Business Interface
                                                    SOAP Processor
                                         Listener
                           GET WSDL




                                          HTTP
      Web
     Service                                                                               Business
     Client             Response(WSDL)                                                      Logic




  WSIL         WSDL
                                                    WSDL
                                      WSIL           WSDL
                                                      WSDL
                                                       WSDL                                       34
WSIL
WSIL (Web Service Inspection Language)
  Estructura del documento WSIL
 <wsil:inspection>
   <wsil:abstract xml:lang=""? ... /> *
   <wsil:service> *
     <wsil:abstract xml:lang=""? ... /> *
     <wsil:name xml:lang=""? ... /> *
     <wsil:description referencedNamespace="uri" location="uri"?> *
       <wsil:abstract xml:lang=""? ... /> *
       <-- extensibility element --> ?
     </wsil:description>
   </wsil:service>
   <wsil:link referencedNamespace="uri" location="uri"?/> *
     <wsil:abstract xml:lang=""? ... /> *
     <-- extensibility element --> ?
   </wsil:link>
 </wsil:inspection>
                                                                      35
WSIL
WSIL (Web Service Inspection Language)
  Elementos:
      inspection ⇒ etiqueta que sirve de raíz en un documento
       WSIL y representa el elemento que contendrá a todos los
       demás
      abstract ⇒ pequeño texto dirigido a los humanos que utilicen
       el documento, indicando aclaraciones, modos de uso o
       cualquier cosa que considere necesaria el diseñador del
       documento. Puede haber 0 o más elementos de este tipo
      service ⇒ es el elemento donde se define realmente la
       entrada al localizador del servicio
      name ⇒ se refiere al nombre que se dará al servicio. Se puede
       indicar el nombre en varios idiomas. Puede haber 0 o más
       elementos de este tipo, y no asegura que sea único         36
WSIL
WSIL (Web Service Inspection Language)
  Elementos:
      description ⇒ indica el punto de entrada a la descripción del
       servicio, y es junto con link la parte más importante del
       documento WSIL. Es necesario el atributo
       referencedNamespace que indica el namespace del
       documento refrenciado. Atributo localization, que es optativo y
       que permite ofrecer un enlace hacia la despcripción. El enlace
       debe ser una URL válida, y el documento debe ser accesible
       mediante el mecanismo de acceso primario de la URL
       espedificada. Si es una URL de un ftp ⇒ debe poder
       accederse mediante un GET, si es una URL de tipo HTTP ⇒
       se podrá acceder mediante un HTTP GET. Además, si es
       necesario paso de parámetros ⇒ se utilizan elementos de
                                                                    37
       extensión, donde se advierte de los detalles pertinente
WSIL
WSIL (Web Service Inspection Language)
  Elementos:
      link ⇒ permite enlazar el documento WSIL con otros
       documentos del mismo tipo o cualquier otro método de
       localización de servicios Web, por ejemplo registro UDDI.
       Atributo referencedNamespace define el namespace de la
       fuente de datos agregada, y si es otro archivo WSIL su valor
       será http://schemas.xmlsoap.org/ws/2001/10/inspection/. El
       atributo optativo location permite definir un mecanismo por el
       cual se pueden obtener la fuente de los datos que se quieren
       enlazar mediante el mecanismo primario de su URL. Si no
       existe este atributo o no se puede acceder mediante el
       mecanismo primario, se debe de añadir un elemento de
       extensión en el que se indica la información necesaria para la
                                                                    38
       obtención de los datos que han sido enlazados
WSIL
WSIL (Web Service Inspection Language)
  Ejemplo de servicio con un documento WSDL, que
    será accedido mediante HTTP GET
 <?xml version="1.0"?>
  <inspection xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/">
  <service>
    <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/"
       location="http://example.com/stockquote.wsdl" />
  </service>
 </inspection>


    Este documento es un sencillo ejemplo de documento WS-Inspection que
    proporciona información de la cuota disponible (stock quote). El
    documento tiene un enlace a un documento WSDL accesible a través de
    HTTP, el cual describe su interfaz                               39
WSIL
WSIL (Web Service Inspection Language)
  Otro ejemplo sencillo
 <?xml version="1.0"?>
 <inspection
   xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/"
   xmlns:wsilwsdl=http://schemas.xmlsoap.org/ws/2001/10/inspection/wsdl">
   <service>
     <name xml:lang="en-US">TechSupport</name>
     <description
          referencedNamespace=
             "http://schemas.xmlsoap.org/wsdl/"
          location=
         "http://www.progress.com/TechSupport.wsdl">
     </description>
   </service>
 </inspection>
                                                                            40
WSIL
WSIL (Web Service Inspection Language)
  Ejemplo de enlace (link) con otro documento WSIL,
   que podrá ser accedido mediante HTTP GET
 <?xml version="1.0"?>
  <inspection
    xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/">
    <link referencedNamespace =
      "http://schemas.xmlsoap.org/ws/2001/10/inspection"
      location="http://acme.com/compras/inspection.wsil"/>
 </inspection>



                                                                 41
WSIL
WSIL (Web Service Inspection Language)
  Publicación del documento:
      WSIL es un método descentralizado de localización de
       servicios ⇒ problema de la búsqueda del documento WSIL.
       Para solucionarlo, la especificación WS-Inspection ofrece dos
       posibilidades, describiendo su búsqueda y su localización.
       Estas dos soluciones son mediante:
         Nombre fijo

         Documento enlazado

      Nombre fijo ⇒ al realizar la búsqueda del archivo con el
       documento WSIL nos podemos encontrar con dos problemas:
       nombre del archivo y localización. Solución ⇒ los documentos
       de publicación WSIL, deben llamarse inspection.wsil y deben
       colocarse en los puntos de entrada más comunes              42
WSIL
WSIL (Web Service Inspection Language)
  Publicación del documento:
      Documento enlazado ⇒ El lenguaje de marcas HTML tiene
       una etiqueta llamada META que permite al autor dar
       información acerca del documento, y no sobre el formato del
       documento como la mayoría de las etiquetas de este lenguaje.
       Toda la información que se proporcione mediante estas marcas
       no se visualiza, pero su se podrá ver si se decide mostrar el
       código fuente de la página. Además estas marcas sirven de
       referencia a los crawlers de los motores de búsqueda en Web
       como Google
      En este caso, la marca META se utiliza como enlace a los
       puntos donde se encuentren los distintos documentos WSIL.
       Problema ⇒ esta etiqueta no está diseñada para esta finalidad,
                                                                     43
       aunque su uso puede ser útil en este caso
WSIL
WSIL (Web Service Inspection Language)
  Ejemplo
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML>
  <HEAD>
   <META name="serviceInspection" content="localservices.wsil">
   <META name="serviceInspection" content="http://www.example.com/calculators.wsil">
   <META name="serviceInspection" content="ftp://www.anotherexample.com/translators.wsil">
   …
  </HEAD>
  <BODY>
   ...
  </BODY>
 </HTML>
     Como se puede apreciar, ya no hace falta que el nombre del archivo
     WSIL sea inspection.wsil, sino que se puede poner el que se quiera,
     aunque no deja de ser una buena costumbre utilizar siempre como
     nombre el estándar de la especificación                                             44
WSIL
WSIL (Web Service Inspection Language)
  Ejemplo de documento WSIL que contiene un acceso
   a los servicios encargados del tema de localización de
   comercios, y el otro es la versión 2 del mismo
   (documentos localizador.wsdl y localizadorV2.wsdl,
   respectivamente)
 <?xml version="1.0"?>
  <inspection
    xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/“
    xmlns:wsiluddi="http://schemas.xmlsoap.org/ws/2001/10/inspectio
    n/uddi/”
    xmlns:wsilwsdl="http://schemas.xmlsoap.org/ws/2001/10/inspectio
    n/wsdl/”>
                                                                45
    <abstract>Productos Acme</abstract>
WSIL
WSIL (Web Service Inspection Language)
  <service>
   <name>Localizador</name>
    <abstract>Localizador de las tiendos con productos acme</abstract>
    <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/"
         location="http://acme.com/servicios/localizador.wsdl"/>
    <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/"
         location="http://acme.com/servicios/localizadorV2.wsdl"/>
    </description>
  </service>

  Por otra parte, se tiene un documento WSDL localizado en el servidor
  FTP, que contiene servicios de conversión entre monedas. Para acceder
  a él se genera una nueva entrada <service>
                                                                    46
WSIL
WSIL (Web Service Inspection Language)
  <service>
   <abstract>Servicios de cambio de monedas</abstract>
    <description
       referencedNamespace="http://schemas.xmlsoap.org/wsdl/"
       location=“ftp://ftp.acme.com/util/conversor.wsdl"/>
  </service>

  <link
  referencedNamespace="http://schemas.xmlsoap.org/ws/2001/10/in
  spection/“
  location="http://acme.com/suministros/inspection.wsil"/>
   <abstract>Acme suministros</abstract>
  </link>                                                  47
WSIL
WSIL (Web Service Inspection Language)
  Ejemplo:
      Si además se tiene información sobre el servicio de suministros
       ya introducida en un registro UDDI, también se puede hacer
       uso de ella. Para esto se introduce un nuevo elemento <link>.
       En este caso se necesitan unos elementos de extensión para
       poder recuperar la especificación
      Se añade un elementos <serviceKey> que permitirá acceder al
       servicio en concreto, como valor de este elemento tiene que
       darse el UDDI del servicio. Además, se ha introducido una URL
       en el elemento <discoveryURL>. Mediante este elemento, que
       es opcional, es posible expresar una URL por la que se
       obtendrá la estructura <businessEntity> mediante una petición
       HTTP GET
                                                                  48
WSIL
WSIL (Web Service Inspection Language)
  <link referencedNamespace=“urn:uddi-org:api“
   <abstract>Acme suministros</abstract>
   <wsiluddi:serviceDescription
         location="http://reguddi.org/uddi/inquiryapi">
   <wsiluddi:serviceKey>4AA4227F0-2C66-1A1B-9A37-
   BA120FF33F72</wsiluddi:serviceKey>
   <wsiluddi:discoveryURL
   useType=“businessEntity”>http://reguddi.org(uddi?3A542AD0-2C66-
   1A1B-9A37-BA120FF33F72</wsiluddi:discoveryURL>
   </wsiluddi:serviceDescription>
  </link>
  Si en el elemento que accede al registro UDDI se quisiera recuperar todos los
  servicios en lugar de uno en concreto, es posible hacerlo recuperando todos de uno
  en uno o bien recuperar el elemento <businessEntity> con todos sus servicios, para
                                                                                49
  ello habría que cambiar la etiqueta <serviceKey> por <businessKey>
WSIL
WSIL (Web Service Inspection Language)
  <link referencedNamespace=“urn:uddi-org:api“
   <abstract>Acme suministros</abstract>
   <wsiluddi:businessDescription
        location="http://reguddi.org/uddi/inquiryapi">
   <wsiluddi:businessKey>3A542AD0-2C66-1A1B-9A37-
  BA120FF33F72</wsiluddi:businessKey>
   <wsiluddi:discoveryURL
  useType=“businessEntity”>http://reguddi.org(uddi?3A542AD
  0-2C66-1A1B-9A37-
  BA120FF33F72</wsiluddi:discoveryURL>
   </wsiluddi:businessDescription>
                                                        50
  </link>
Conclusiones UDDI y WSIL
Conclusiones UDDI y WSIL
  UDDI ⇒ Un conjunto de especificaciones que definen
   una forma de publicar y descubrir información sobre
   empresas y servicios, y por tanto, sobre servicios Web
  UDDI ⇒ Permite publicar información sobre los
   servicios Web, ayudándose de documentos WSDL de
   estos → Hacer llegar al usuario la información de la
   empresa y de sus servicios de manera sencilla y rápida
  WSIL ⇒ Lenguaje de inspección de WS → Funciona
   de forma descentralizada, al contrario que UDDI
   (centralizado) → No existe un registro universal en el
   que buscar, sino que cada nodo puede tener su(s)
   propio(s) documento(s) WSIL con las especificaciones
   necesarias para la búsqueda de WS → Se apoya de
   manera importante en el documento WSDL                51

Mais conteúdo relacionado

Mais procurados

Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datos
José Mendoza
 
Presentacion xml
Presentacion xmlPresentacion xml
Presentacion xml
itsl
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Sergio Sanchez
 
Clase 2 Modelo De Datos
Clase 2   Modelo De DatosClase 2   Modelo De Datos
Clase 2 Modelo De Datos
oswchavez
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q L
Olaya Molina
 
Diseño de software en arquitectura cliente servidor
Diseño de software en arquitectura cliente   servidorDiseño de software en arquitectura cliente   servidor
Diseño de software en arquitectura cliente servidor
Cintia Cadena
 

Mais procurados (20)

Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
Normalización de bases de datos
Normalización de bases de datosNormalización de bases de datos
Normalización de bases de datos
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datos
 
Estructura del sistema de bases de datos
Estructura del sistema de bases de datosEstructura del sistema de bases de datos
Estructura del sistema de bases de datos
 
Escuela de ingeniería de sistemas
Escuela de ingeniería de sistemasEscuela de ingeniería de sistemas
Escuela de ingeniería de sistemas
 
Presentacion xml
Presentacion xmlPresentacion xml
Presentacion xml
 
ESTRATEGIA DE SERVICIO- 2DA FASE ITIL
ESTRATEGIA DE SERVICIO- 2DA FASE ITILESTRATEGIA DE SERVICIO- 2DA FASE ITIL
ESTRATEGIA DE SERVICIO- 2DA FASE ITIL
 
Tablas html
Tablas htmlTablas html
Tablas html
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Clase 2 Modelo De Datos
Clase 2   Modelo De DatosClase 2   Modelo De Datos
Clase 2 Modelo De Datos
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q L
 
Diseño de software en arquitectura cliente servidor
Diseño de software en arquitectura cliente   servidorDiseño de software en arquitectura cliente   servidor
Diseño de software en arquitectura cliente servidor
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegue
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
PHP
PHPPHP
PHP
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en Capas
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 

Semelhante a Tema 3 2

Presentación servicios web
Presentación servicios webPresentación servicios web
Presentación servicios web
Miguel Angel X T
 
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
vcuscoistt
 
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores WebC:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
losmassueltos
 

Semelhante a Tema 3 2 (20)

Presentación servicios web
Presentación servicios webPresentación servicios web
Presentación servicios web
 
Componentes de los servicos web
Componentes de los servicos webComponentes de los servicos web
Componentes de los servicos web
 
Servicios Web
Servicios  WebServicios  Web
Servicios Web
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
12-Unidad 3: Webservices-3.3. Inicio de Proyecto (Introducción, Contenidos In...
12-Unidad 3: Webservices-3.3. Inicio de Proyecto (Introducción, Contenidos In...12-Unidad 3: Webservices-3.3. Inicio de Proyecto (Introducción, Contenidos In...
12-Unidad 3: Webservices-3.3. Inicio de Proyecto (Introducción, Contenidos In...
 
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
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
S3-PD2.pptx
S3-PD2.pptxS3-PD2.pptx
S3-PD2.pptx
 
S3-PD2.pptx
S3-PD2.pptxS3-PD2.pptx
S3-PD2.pptx
 
6-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Conceptos Básicos
6-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Conceptos Básicos6-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Conceptos Básicos
6-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Conceptos Básicos
 
S3-PD2-2.1. SOAP
S3-PD2-2.1. SOAPS3-PD2-2.1. SOAP
S3-PD2-2.1. SOAP
 
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores WebC:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
C:\Documents And Settings\Pc 09\Mis Documentos\Servidores Web
 
Web services SOAP con JAX-WS
Web services SOAP con JAX-WSWeb services SOAP con JAX-WS
Web services SOAP con JAX-WS
 
Web services
Web services Web services
Web services
 
CROSSNET - Introduccion SOA
CROSSNET - Introduccion SOACROSSNET - Introduccion SOA
CROSSNET - Introduccion SOA
 
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
 
Tema 3 1
Tema 3 1Tema 3 1
Tema 3 1
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
Arquitectura Orientada a Servicios (SOA)
Arquitectura Orientada  a Servicios (SOA)Arquitectura Orientada  a Servicios (SOA)
Arquitectura Orientada a Servicios (SOA)
 

Mais de avalver2 (6)

Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Tema 3 3
Tema 3 3Tema 3 3
Tema 3 3
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Tema 2
Tema 2Tema 2
Tema 2
 
Tema 1
Tema 1Tema 1
Tema 1
 
02 instrucciones
02   instrucciones02   instrucciones
02 instrucciones
 

Último

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
pvtablets2023
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 

Tema 3 2

  • 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 coreografía en Servicios Web 2
  • 3. Servicios Web  Concepto de Servicio Web.  SOAP.  WSDL.  UDDI (WSIL).  Orquestación de Servicios Web.  Seguridad 3
  • 4. UDDI  UDDI (Universal Description Discovey and Integration)  Primera propuesta en Septiembre de 2000 (IBM, Ariba y Microsoft), desde la versión 3 (julio 2002) bajo el paraguas OASIS  Objetivos:  Especificar un framework (entorno de trabajo) para describir, publicar y descubrir servicios Web  Todo gira alrededor de la noción de bussines registry (un servicio de nombres y directorio) ⇒ La idea era registrar cada servicio desarrollado en todo el mundo  UDDI define estructuras de datos y APIs para publicar descripciones de servicios y buscar servicios  Al ser a su vez un servicio Web ⇒ las APIs de UDDI están también especificadas en WSDL con SOAP 4
  • 5. UDDI ¿Qué es UDDI?  UDDI es un conjunto de especificaciones que definen una forma de publicar y descubrir información sobre empresas y servicios, y por tanto, sobre servicios Web  UDDI consta de cuatro documentos de especificación relacionados y un esquema XML que define una API SOAP para el registro y descubrimiento de los servicios  En el contexto de servicios Web ⇒ UDDI define una nueva capa (nivel) que permite a usuarios utilizar un método común para averiguar los servicios ofrecidos por los demás y hacer accesibles los suyos propios 5
  • 6. UDDI Pila de protocolos de servicios Web (UDDI) Con UDDI se alcanza una cota más en el proceso hacia la consecución de un sistema basado en servicios Web totalmente universal y automático 6
  • 7. UDDI ¿Qué permite UDDI?  A los desarrolladores ⇒ encontrar información para escribir los clientes de los servicios Web  Dynamic binding ⇒ permitir a los clientes preguntar al registro y obtener las referencias a los servicios de interés Es decir, UDDI permite publicar información sobre los servicios Web, ayudándose de documentos WSDL de estos ⇒ hacer llegar al usuario la información de la empresa y de sus servicios de manera sencilla y rápida Además, UDDI permite ser consultado para la creación de clientes de forma automática, para mantener referencias de los documentos WSDL 7
  • 8. UDDI Especificación UDDI 2.0:  Especificación de la API del programador ⇒ define la interfaz de acceso SOAP a un registro UDDI y el funcionamiento del registro  Especificación de las estructuras de datos ⇒ define las estructuras de datos XML utilizadas en los mensajes SOAP definidos en la especificación de la API  Especificación de la replicación ⇒ describe el proceso de replicación y la interfaz requerida por los registros para conseguir la replicación entre operadores UDDI  Especificación de los operadores ⇒ describe el comportamiento y los parámetros operacionales requeridos para todos los operadores UDDI 8
  • 9. UDDI Especificación UDDI 2.0:  Las especificaciones UDDI y el esquema se usan para construir servicios de descubrimiento en Internet  Estos servicios (de descubrimiento) presentan una interfaz consistente para publicación y permiten el descubrimiento programático de servicios  Estos servicios de descubrimiento serían realmente los registros UDDI 9
  • 10. UDDI Relación entre especificaciones, esquema y registros UDDI 10
  • 11. UDDI Registro UDDI global (universal)  Mantenido por IBM y Microsoft  UDDI Business Registry ⇒ nube UDDI  Las compañías que alojan el registro UDDI global se llaman operadores UDDI  Estos operadores son gratis, y cualquier empresa puede publicar información sobre los servicios que ofrece  Nube UDDI ⇒ un conjunto de registros que replican su información en todos y que, para el que accede a ellos, funcionan cómo uno solo ⇔ registrado una vez, publicado en todos sitios  Registro UDDI global ⇒ proporciona una forma estándar de publicar y consultar servicios y puede utilizarse como base para proporcionar servicios de búsqueda más complejos 11
  • 12. UDDI Funcionamiento de UDDI Conjunto de registros UDDI, cada uno mantenido por un operador (nube UDDI), proveedores registrando sus servicios y clientes buscando servicios concretos 12
  • 13. UDDI Funcionamiento UDDI  Instituciones de estándares (ISO, IEEE, ANSI, etc.) ⇒ publican en el registro UDDI → descripciones de varios tipos de servicios  Las empresas (proveedores de servicios) ⇒ publican en el registro UDDI descripciones de los servicios que proporcionan → Estos servicios deben implementar una interfaz propia o conocida  El registro UDDI ⇒ asigna identificadores únicos a cada servicio y empresa registrada  Mercados online, motores de búsqueda, y aplicaciones empresariales ⇒ consultan el registro UDDI para descubrir servicios  La empresas ⇒ usarán la información obtenida para invocar métodos en servicios remotos e integrarlos sobre Internet 13
  • 14. UDDI Datos almacenados en el Registro UDDI  UDDI clasifica los registros en base a para que se utiliza la información  Páginas blancas ⇒ Nombre de la empresa, información de contacto, listados de organizaciones y servicios. Los cliente UDDI pueden encontrar servicios Web dados por una empresa  Páginas amarillas ⇒ Información de industria, clasificación de compañías y servicios Web de acuerdo a una taxonomía (NAICS, UNSPSC, etc.)  Páginas verdes ⇒ Información técnica sobre los servicios que la compañía proporciona y especificaciones. Describe cómo puede ser invocado un servicio Web, punteros a descripciones de servicios (descripciones externas al registro UDDI) 14
  • 15. UDDI Tipos de información (ED) en el Registro UDDI  BusinessEntity ⇒ Describe la organización que ofrece el servicio → Nombre, dirección y otra información de contacto  BusinessService ⇒ Grupo de servicios Web relacionados ofrecido por una BusinessEntity (empresa), pero ofrecida en diferentes direcciones, versiones, y tecnologías. Al igual que las BusinessEntity, pueden incluir información de clasificación → corresponde con una clase de servicio  BusinessTemplate ⇒ Información técnica para utilizar el servicio → Dirección del servicio, Referencias documentos (tModels) describiendo el interfaz u otras propiedades, cómo dar valor a los parámetros y valores por defecto 15
  • 16. UDDI Tipos de información en el Registro UDDI  tModels (Technical model) o Registros de tipo de servicio ⇒ contienen la información que un programador necesitaría saber para poder usar un servicio Web particular  tModels ⇒ Contenedor genérico para cualquier especificación. Por ejemplo, puede representar un interfaz de servicio en WSDL, un protocolo de interacción, o la semántica de una operación 16
  • 17. UDDI Estructura almacenada en el registro UDDI 17
  • 18. UDDI Modelo de información UDDI  El modelo de información UDDI está definido en un esquema XML ⇒ Define cinco tipos principales de información que una empresa necesitaría saber para usar un servicio Web  Información de la entidad de negocio (empresa)  Información del servicio  Información de enlace  Punteros de especificación e información técnica  Aserciones del proveedor 18
  • 19. UDDI Modelo de información UDDI  Información de la empresa ⇒ businessEntity, y corresponde a las páginas blancas y amarillas sobre la empresa. Atributos:  BusinessKey ⇒ una clave única que identifica a la entidad de negocio  operador ⇒ nombre del operador del registro UDDI donde está publicada esta entrada  authorizedName ⇒ el nombre de la persona que publico esta entrada 19
  • 20. UDDI Modelo de información UDDI  Elementos (businessEntity):  discoveryURLs ⇒ URLs que apuntan a mecanismos de descubrimiento alternativos para el servicio  name ⇒ Nombre de la organización  description ⇒ una descripción breve de la entidad de negocio  contacts ⇒ información de contacto para la organización  businessServices ⇒ lista de los servicios que esta empresa provee y sus características 20
  • 21. UDDI Modelo de información UDDI  Elementos (businessEntity ⇒ información de páginas amarillas):  indentifierBag ⇒ una lista de pares nombre- valor que actúan como identificadores alternativos para la empresa. Esto permite a los clientes buscar una empresa usando nombres identificativos diferentes  categoryBag ⇒ una lista de pares nombre- valor que etiquetan a la empresa con información específica de clasificación 21
  • 22. UDDI Modelo de información UDDI  Estructura de businessEntity <element name=”businessEntity”> <complexType> <sequence> <element ref=”discovery URLs” minOccurs=”0”/> <element ref=”name” maxOccurs = “unbounded”/> <element ref=”description” minOccurs=”0” maxOccurs=”unbounded”/> <element ref=”contacts” minOccurs=”0”/> <element ref=”businessServices” minOccurs=”0”/> <element ref=”identifierBag” minOccurs=”0” /> <element ref=”categoryBag” minOccurs=”0”/> </sequence> <attribute ref=”businessKey” use=”required”/> <attribute ref=”operator”/> <attribute ref=”authorizedName”/> </complexType> </element> 22
  • 23. UDDI Modelo de información UDDI  Información sobre servicios ⇒ businessService, contiene información descriptiva sobre una familia de servicios proporcionados por una entidad de negocio (páginas verdes de la empresa). Familia de servicios ⇒ conjunto de servicios cuya función es la misma pero con una interfaz diferente. Atributos:  serviceKey ⇒ una clave única que identifica este servicio. Esta clave es asignada por el operador cuando se registra el servicio  businessKey ⇒ la clave de la entidad de negocio que ofrece este servicio 23
  • 24. UDDI Modelo de información UDDI  Elementos (businessService):  name ⇒ El nombre de esta familia de servicios (nombre del servicio de alto nivel)  description ⇒ Una descripción textual de la familia de servicios  bindingTemplates ⇒ las plantillas de enlace que dan la descripción técnica de la familia de servicios  categoryBag ⇒ una lista de pares nombre- valor que etiquetan el servicio con información taxonómica específica 24
  • 25. UDDI Modelo de información UDDI  Estructura de businessService <element name=”businessService”> <complexType> <sequence> <element ref=”name” maxOccurs=”unbounded”/> <element ref=”description” minOccurs=”0” maxOccurs=”unbounded”/> <element ref=”bindingTemplates”/> <element ref=”categoryBag minOccurs=”0”/> </sequence> <attribute ref=”serviceKey” use=”required”/> <attribute ref=”businessKey”/> </complexType> </element> 25
  • 26. UDDI Modelo de información UDDI  Información de enlace ⇒ bindingTemplate, información técnica sobre un servicio (servicio de bajo nivel), que ayuda a los clientes a conectarse e invocar el servicio Web Atributos:  bindingKey ⇒ una clave única que identifica esta plantilla de enlace → identificador único asignado por el operador del registro  serviceKey ⇒ la clave del elemento businessService que contiene esta plantilla de enlace 26
  • 27. UDDI Modelo de información UDDI  Elementos (bindingTemplate):  description ⇒ descripción textual de la plantilla de enlace  accessPoint ⇒ el punto de acceso para la información → contiene el punto de entrada para el servicio. Valores válidos para el punto de acceso pueden ser una URL, dirección de email o incluso un número de teléfono. El punto de acceso tiene un atributo urlType, y posibles valores = http, https, ftp, fax, phone y mailto  hostingRedirector ⇒ apunta a otra plantilla de enlace, y se usa cuando el punto de acceso no está especificado  tModelInstanceDetails ⇒ una lista de estructuras tModel. tModel ⇔ huella digital para el servicio 27
  • 28. UDDI Modelo de información UDDI  Estructura de bindingTemplate <element name=”bindingTemplate”> <complexType> <sequence> <element ref=”description” minOccurs=”0” maxOccurs=”unbounded”/> <choice> <element ref=”accessPoint” minOccurs=”0”/> <element ref=”hostingRedirector” minOccurs=”0”/> </choice> <element ref=”tModelInstanceDetails”/> </sequence> <attribute ref=”bindingKey” use=”required”/> <attribute ref=”serviceKey”/> </complexType> </element> 28
  • 29. UDDI Relación entre las estructuras de datos UDDI 29
  • 30. WSIL WSIL (Web Service Inspection Language)  WSIL (Lenguaje de Inspección de WS):  Otra forma de localizar servicios Web  No es competidor de UDDI, sino que IBM y Microsoft lo propusieron para completarlo, ya que en algunas ocasiones es más útil WSIL y en otras lo será UDDI  WSIL funciona de forma descentralizada, al contrario que UDDI que está centralizado ⇒ No existe un registro universal en el que buscar, sino que cada nodo puede tener su(s) propio(s) documento(s) WSIL con las especificaciones necesarias para la búsqueda de WS  WSIL se apoya de manera importante en el documento WSDL ⇔ documento de especificación similar 30
  • 31. WSIL WSIL (Web Service Inspection Language)  WSIL (Lenguaje de Inspección de WS):  WSIL deja de lado la información de la empresa (UDDI), permitiendo realizar un documento de especificación que será algo semejante a una tarjeta de presentación con los servicios disponibles por parte de dicho documento  Con un documento WSIL se puede referenciar servicios UDDI o WSDL (o otros servicios WSIL)  Documento WSIL es un documento XML que actúa como un puntero intermediario a la descripción del servicio ⇒ lista de punteros hacia documentos WSDL que son los encargados de describir el servicio  WSIL es sencillo y extensible a otras descripciones, ya que se utiliza XML como soporte base 31
  • 32. WSIL WSIL (Web Service Inspection Language)  WSIL (Lenguaje de Inspección de WS):  Cuando sabes con que host (servidor) deseas trabajar, por ejemplo, www.progress.com  Por convenio buscar el documento WSIL inspection.wsil, por ejemplo, http://www.progress.com/inspection.wsil  El documento WSIL soporta enlazado con otros documentos WSIL Empresa WSIL Unidad de WSIL WSIL producción WSIL WSIL WSIL Department 32 o
  • 33. WSIL WSIL (Web Service Inspection Language) Web Server Obtener inspection.wisl de www.progress.com Application Server Business Interface SOAP Processor Listener GET WISL HTTP Web Service Business Client Response(WISL) Logic WSIL WSDL WSIL WSDL WSDL WSDL 33
  • 34. WSIL WSIL (Web Service Inspection Language) Web Server Obtener el soporte técnico WSDL denominado techsupport.wsdl de www.progress.com Application Server Business Interface SOAP Processor Listener GET WSDL HTTP Web Service Business Client Response(WSDL) Logic WSIL WSDL WSDL WSIL WSDL WSDL WSDL 34
  • 35. WSIL WSIL (Web Service Inspection Language)  Estructura del documento WSIL <wsil:inspection> <wsil:abstract xml:lang=""? ... /> * <wsil:service> * <wsil:abstract xml:lang=""? ... /> * <wsil:name xml:lang=""? ... /> * <wsil:description referencedNamespace="uri" location="uri"?> * <wsil:abstract xml:lang=""? ... /> * <-- extensibility element --> ? </wsil:description> </wsil:service> <wsil:link referencedNamespace="uri" location="uri"?/> * <wsil:abstract xml:lang=""? ... /> * <-- extensibility element --> ? </wsil:link> </wsil:inspection> 35
  • 36. WSIL WSIL (Web Service Inspection Language)  Elementos:  inspection ⇒ etiqueta que sirve de raíz en un documento WSIL y representa el elemento que contendrá a todos los demás  abstract ⇒ pequeño texto dirigido a los humanos que utilicen el documento, indicando aclaraciones, modos de uso o cualquier cosa que considere necesaria el diseñador del documento. Puede haber 0 o más elementos de este tipo  service ⇒ es el elemento donde se define realmente la entrada al localizador del servicio  name ⇒ se refiere al nombre que se dará al servicio. Se puede indicar el nombre en varios idiomas. Puede haber 0 o más elementos de este tipo, y no asegura que sea único 36
  • 37. WSIL WSIL (Web Service Inspection Language)  Elementos:  description ⇒ indica el punto de entrada a la descripción del servicio, y es junto con link la parte más importante del documento WSIL. Es necesario el atributo referencedNamespace que indica el namespace del documento refrenciado. Atributo localization, que es optativo y que permite ofrecer un enlace hacia la despcripción. El enlace debe ser una URL válida, y el documento debe ser accesible mediante el mecanismo de acceso primario de la URL espedificada. Si es una URL de un ftp ⇒ debe poder accederse mediante un GET, si es una URL de tipo HTTP ⇒ se podrá acceder mediante un HTTP GET. Además, si es necesario paso de parámetros ⇒ se utilizan elementos de 37 extensión, donde se advierte de los detalles pertinente
  • 38. WSIL WSIL (Web Service Inspection Language)  Elementos:  link ⇒ permite enlazar el documento WSIL con otros documentos del mismo tipo o cualquier otro método de localización de servicios Web, por ejemplo registro UDDI. Atributo referencedNamespace define el namespace de la fuente de datos agregada, y si es otro archivo WSIL su valor será http://schemas.xmlsoap.org/ws/2001/10/inspection/. El atributo optativo location permite definir un mecanismo por el cual se pueden obtener la fuente de los datos que se quieren enlazar mediante el mecanismo primario de su URL. Si no existe este atributo o no se puede acceder mediante el mecanismo primario, se debe de añadir un elemento de extensión en el que se indica la información necesaria para la 38 obtención de los datos que han sido enlazados
  • 39. WSIL WSIL (Web Service Inspection Language)  Ejemplo de servicio con un documento WSDL, que será accedido mediante HTTP GET <?xml version="1.0"?> <inspection xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/"> <service> <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/" location="http://example.com/stockquote.wsdl" /> </service> </inspection> Este documento es un sencillo ejemplo de documento WS-Inspection que proporciona información de la cuota disponible (stock quote). El documento tiene un enlace a un documento WSDL accesible a través de HTTP, el cual describe su interfaz 39
  • 40. WSIL WSIL (Web Service Inspection Language)  Otro ejemplo sencillo <?xml version="1.0"?> <inspection xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/" xmlns:wsilwsdl=http://schemas.xmlsoap.org/ws/2001/10/inspection/wsdl"> <service> <name xml:lang="en-US">TechSupport</name> <description referencedNamespace= "http://schemas.xmlsoap.org/wsdl/" location= "http://www.progress.com/TechSupport.wsdl"> </description> </service> </inspection> 40
  • 41. WSIL WSIL (Web Service Inspection Language)  Ejemplo de enlace (link) con otro documento WSIL, que podrá ser accedido mediante HTTP GET <?xml version="1.0"?> <inspection xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/"> <link referencedNamespace = "http://schemas.xmlsoap.org/ws/2001/10/inspection" location="http://acme.com/compras/inspection.wsil"/> </inspection> 41
  • 42. WSIL WSIL (Web Service Inspection Language)  Publicación del documento:  WSIL es un método descentralizado de localización de servicios ⇒ problema de la búsqueda del documento WSIL. Para solucionarlo, la especificación WS-Inspection ofrece dos posibilidades, describiendo su búsqueda y su localización. Estas dos soluciones son mediante:  Nombre fijo  Documento enlazado  Nombre fijo ⇒ al realizar la búsqueda del archivo con el documento WSIL nos podemos encontrar con dos problemas: nombre del archivo y localización. Solución ⇒ los documentos de publicación WSIL, deben llamarse inspection.wsil y deben colocarse en los puntos de entrada más comunes 42
  • 43. WSIL WSIL (Web Service Inspection Language)  Publicación del documento:  Documento enlazado ⇒ El lenguaje de marcas HTML tiene una etiqueta llamada META que permite al autor dar información acerca del documento, y no sobre el formato del documento como la mayoría de las etiquetas de este lenguaje. Toda la información que se proporcione mediante estas marcas no se visualiza, pero su se podrá ver si se decide mostrar el código fuente de la página. Además estas marcas sirven de referencia a los crawlers de los motores de búsqueda en Web como Google  En este caso, la marca META se utiliza como enlace a los puntos donde se encuentren los distintos documentos WSIL. Problema ⇒ esta etiqueta no está diseñada para esta finalidad, 43 aunque su uso puede ser útil en este caso
  • 44. WSIL WSIL (Web Service Inspection Language)  Ejemplo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META name="serviceInspection" content="localservices.wsil"> <META name="serviceInspection" content="http://www.example.com/calculators.wsil"> <META name="serviceInspection" content="ftp://www.anotherexample.com/translators.wsil"> … </HEAD> <BODY> ... </BODY> </HTML> Como se puede apreciar, ya no hace falta que el nombre del archivo WSIL sea inspection.wsil, sino que se puede poner el que se quiera, aunque no deja de ser una buena costumbre utilizar siempre como nombre el estándar de la especificación 44
  • 45. WSIL WSIL (Web Service Inspection Language)  Ejemplo de documento WSIL que contiene un acceso a los servicios encargados del tema de localización de comercios, y el otro es la versión 2 del mismo (documentos localizador.wsdl y localizadorV2.wsdl, respectivamente) <?xml version="1.0"?> <inspection xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/“ xmlns:wsiluddi="http://schemas.xmlsoap.org/ws/2001/10/inspectio n/uddi/” xmlns:wsilwsdl="http://schemas.xmlsoap.org/ws/2001/10/inspectio n/wsdl/”> 45 <abstract>Productos Acme</abstract>
  • 46. WSIL WSIL (Web Service Inspection Language) <service> <name>Localizador</name> <abstract>Localizador de las tiendos con productos acme</abstract> <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/" location="http://acme.com/servicios/localizador.wsdl"/> <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/" location="http://acme.com/servicios/localizadorV2.wsdl"/> </description> </service> Por otra parte, se tiene un documento WSDL localizado en el servidor FTP, que contiene servicios de conversión entre monedas. Para acceder a él se genera una nueva entrada <service> 46
  • 47. WSIL WSIL (Web Service Inspection Language) <service> <abstract>Servicios de cambio de monedas</abstract> <description referencedNamespace="http://schemas.xmlsoap.org/wsdl/" location=“ftp://ftp.acme.com/util/conversor.wsdl"/> </service> <link referencedNamespace="http://schemas.xmlsoap.org/ws/2001/10/in spection/“ location="http://acme.com/suministros/inspection.wsil"/> <abstract>Acme suministros</abstract> </link> 47
  • 48. WSIL WSIL (Web Service Inspection Language)  Ejemplo:  Si además se tiene información sobre el servicio de suministros ya introducida en un registro UDDI, también se puede hacer uso de ella. Para esto se introduce un nuevo elemento <link>. En este caso se necesitan unos elementos de extensión para poder recuperar la especificación  Se añade un elementos <serviceKey> que permitirá acceder al servicio en concreto, como valor de este elemento tiene que darse el UDDI del servicio. Además, se ha introducido una URL en el elemento <discoveryURL>. Mediante este elemento, que es opcional, es posible expresar una URL por la que se obtendrá la estructura <businessEntity> mediante una petición HTTP GET 48
  • 49. WSIL WSIL (Web Service Inspection Language) <link referencedNamespace=“urn:uddi-org:api“ <abstract>Acme suministros</abstract> <wsiluddi:serviceDescription location="http://reguddi.org/uddi/inquiryapi"> <wsiluddi:serviceKey>4AA4227F0-2C66-1A1B-9A37- BA120FF33F72</wsiluddi:serviceKey> <wsiluddi:discoveryURL useType=“businessEntity”>http://reguddi.org(uddi?3A542AD0-2C66- 1A1B-9A37-BA120FF33F72</wsiluddi:discoveryURL> </wsiluddi:serviceDescription> </link> Si en el elemento que accede al registro UDDI se quisiera recuperar todos los servicios en lugar de uno en concreto, es posible hacerlo recuperando todos de uno en uno o bien recuperar el elemento <businessEntity> con todos sus servicios, para 49 ello habría que cambiar la etiqueta <serviceKey> por <businessKey>
  • 50. WSIL WSIL (Web Service Inspection Language) <link referencedNamespace=“urn:uddi-org:api“ <abstract>Acme suministros</abstract> <wsiluddi:businessDescription location="http://reguddi.org/uddi/inquiryapi"> <wsiluddi:businessKey>3A542AD0-2C66-1A1B-9A37- BA120FF33F72</wsiluddi:businessKey> <wsiluddi:discoveryURL useType=“businessEntity”>http://reguddi.org(uddi?3A542AD 0-2C66-1A1B-9A37- BA120FF33F72</wsiluddi:discoveryURL> </wsiluddi:businessDescription> 50 </link>
  • 51. Conclusiones UDDI y WSIL Conclusiones UDDI y WSIL  UDDI ⇒ Un conjunto de especificaciones que definen una forma de publicar y descubrir información sobre empresas y servicios, y por tanto, sobre servicios Web  UDDI ⇒ Permite publicar información sobre los servicios Web, ayudándose de documentos WSDL de estos → Hacer llegar al usuario la información de la empresa y de sus servicios de manera sencilla y rápida  WSIL ⇒ Lenguaje de inspección de WS → Funciona de forma descentralizada, al contrario que UDDI (centralizado) → No existe un registro universal en el que buscar, sino que cada nodo puede tener su(s) propio(s) documento(s) WSIL con las especificaciones necesarias para la búsqueda de WS → Se apoya de manera importante en el documento WSDL 51