SlideShare une entreprise Scribd logo
1  sur  198
SOA y Web
             Services
             Óliver Centeno Álvarez
             Junio 2011

Junio 2011       SOA y Web Services   1
Objetivos
    Conocer la arquitectura SOA, su función, ventajas y
     diseño
    Mostrar los lenguajes y protocolos implicados en la
     arquitectura SOA
    Mostrar una panorámica de las distintas
     aproximaciones tecnológicas a SOA
    Demostrar la creación y consumo de Web Services
     existentes mediante las tecnologías más extendidas


Junio 2011               SOA y Web Services                2
Requisitos
    Conocimientos previos:
       Experiencia
                  en desarrollo con Java
       Conocimientos de Arquitecturas o Ingeniería de
        Software
    Requisitos técnicos:
       VirtualPC2007
       Al menos 1GB de memoria RAM (recomendado
        2GB)


Junio 2011               SOA y Web Services              3
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   4
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   5
I. Fundamentos
1.      Motivación
2.      Arquitecturas de Software
3.      Necesidad del Contrato
4.      Modelado de Componentes
5.      Retos



Junio 2011             SOA y Web Services   6
1. Motivación
    Intercambio de información
    Procesamiento
       Sinintervención del usuario
       Acelerando tiempos de respuesta
    Normalización
       Entre plataformas
       Entre lenguajes
       Entre sistemas operativos




Junio 2011                   SOA y Web Services   7
1. Motivación
    Buenas prácticas
       Reutilización
       Modularidad     y encapsulamiento
    Nuevos retos
       Portabilidad
       Interoperabilidad
       Computación     distribuida
       Internet




Junio 2011                     SOA y Web Services   8
I. Fundamentos
1.      Motivación
2.      Arquitecturas de Software
3.      Necesidad del Contrato
4.      Modelado de Componentes
5.      Retos



Junio 2011             SOA y Web Services   9
2. Arquitecturas de Software
    Formas de organizar las partes que componen un sistema
     software
       A nivel físico (cliente, servidor, consumidor,…)
       A nivel lógico (capas, módulos, subsistemas,…)
    Permiten separar las partes que componen un sistema
     complejo de manera adecuada
    Aumenta la modularidad y la reutilización
    Aumenta el entendimiento del sistema
    Mejora el mantenimiento
    Mejora la validación y verificación


Junio 2011                        SOA y Web Services          10
2. Arquitecturas de Software
    Evolución histórica




Junio 2011                 SOA y Web Services   11
2. Arquitecturas de Software
    MVC
       Modelo
       Vista
       Controlador


       Utilizado      en aplicaciones
             gráficas y Web




Junio 2011                        SOA y Web Services   12
2. Arquitecturas de Software
    DAO y 3+1 capas
       Separa  el acceso a datos                 Presentación
        (DAO) de los datos (Modelo)                              M
                                                   Negocio       o
       Permite utilizar el modelo en                            d
        todas las capas                                          e
       Permite reemplazar DAO sin                Persistencia   l
                                                                 o
        afectar al resto                             DAO


                                                      BD


Junio 2011                   SOA y Web Services                      13
I. Fundamentos
1.      Motivación
2.      Arquitecturas de Software
3.      Necesidad del Contrato
4.      Modelado de Componentes
5.      Retos



Junio 2011             SOA y Web Services   14
3. Necesidad del Contrato
    Las arquitecturas de software permiten estructurar un
     sistema
    Pero, ¿cómo se ensamblan las partes?
    Principio de desarrollo
       Maximizar la cohesión
       Minimizar el acoplamiento
    En otras palabras
       Que cada parte   sea autosuficiente
       Y que dependa    lo mínimo de las demás partes



Junio 2011                    SOA y Web Services         15
3. Necesidad del Contrato
    Las arquitecturas no garantizan esto
    Necesitamos conceptualizar más cada parte

    Cuestiones:
       El puerto USB sirve para muchas cosas pero…
       ¿Cómo funciona un puerto USB?
       ¿Cómo funciona un dispositivo USB?
       ¿Por qué funciona un dispositivo USB?




Junio 2011                 SOA y Web Services         16
3. Necesidad del Contrato
    Contrato (Especificación):
       Acuerdo entre las partes para cumplir una serie de especificaciones
        enumeradas
       Requisitos…
       ¿Programación?


    Interfaz:
       Conjunto de métodos especificados que debe proporcionar una clase de
        implementación
       Importa el QUÉ y no el CÓMO
       NO ES HERENCIA MÚLTIPLE



Junio 2011                        SOA y Web Services                          17
3. Necesidad del Contrato
    Programación Bajo Contrato
       Definir siempre las interfaces de especificación de cada
        subsistema (interfaz proporcionada)
       Implementar cada módulo utilizando las interfaces
        proporcionadas de los subsistemas asociados (interfaz
        requerida)
       Se apoya en el polimorfismo: utilizar objetos que son a la
        vez de distintos tipos
       Permite construir partes dependientes de otras sin que estas
        estén terminadas


Junio 2011                    SOA y Web Services                   18
3. Necesidad del Contrato
    Ejemplo: Interfaz
             public interface Tabla{
                public void conectar();
                public void desconectar();
                public boolean insertar();
             }

       Importa poder conectar y desconectar
       Importa poder insertar
       No importa qué base de datos
       No importa qué tabla ni qué columnas




Junio 2011                      SOA y Web Services   19
3. Necesidad del Contrato
    Ejemplo: Lógica
             public class GestorBD{
                private Tabla tabla;
                public GestorDB(Tabla t){
                     tabla = t;
                }
                public boolean añadir(){
                     tabla.conectar();
                     boolean resultado = tabla.insertar();
                     tabla.desconectar();
                     return resultado;
                }
             }




Junio 2011                       SOA y Web Services          20
3. Necesidad del Contrato
    Ejemplo: Implementación
             public class TablaOracle implements Tabla{
                public void conectar(){ … }
                public void desconectar() { … }
                public boolean insertar() { … }
             }

             public class Programa{
                public static void main(String[] args){
                    Tabla t = new TablaOracle();
                    GestorDB g = new GestorDB(t);
                    g.añadir();
                }
             }



Junio 2011                       SOA y Web Services       21
I. Fundamentos
1.      Motivación
2.      Arquitecturas de Software
3.      Necesidad del Contrato
4.      Modelado de Componentes
5.      Retos



Junio 2011             SOA y Web Services   22
4. Modelado de Componentes
    Interfaz:
       Colección de operaciones que especifican un servicio proporcionado
         (implementado) o solicitado (utilizado) por una clase o componente.

    Componente:
       Parte lógica y reemplazable del sistema.
       Conforma y proporciona la realización de un conjunto de interfaces.
       Cumple los principios de modularidad y encapsulamiento.
       Son bloques de construcción, “ladrillos”.




Junio 2011                        SOA y Web Services                           23
4. Modelado de Componentes
    Diagrama de Componentes
       Ilustran las piezas del software, controladores embebidos,
        etc. que conformarán un sistema.
       Con un nivel de abstracción más alto que un diagrama de
        clase.
       Eventualmente un componente puede comprender una gran
        porción de un sistema.
       Se descompone el sistema en base a interfaces que
        representan las líneas de separación entre subsistemas.




Junio 2011                   SOA y Web Services                  24
4. Modelado de Componentes
    Representación UML

      Componentes

              Componente



                           componente




      Interfaz requerida                   Interfaz proporcionada


Junio 2011                 SOA y Web Services                       25
4. Modelado de Componentes
    Ejemplo
            Buscador de citas por Internet
            Un Controlador requiere una interfaz Servicio para invocar a
             buscaAfines() y buscaIdeal()
            Esta interfaz la implementa ServicioParejas que, a su vez
             requiere poder trabajar contra una Base de Datos
                                                                                        PersonaDaoOracle
                 Controlador                       ServicioParejas
             s : Servicio                       dao : DAO                              insertar()
             buscar()                           buscarAfines()                         actualizar()
                                                buscarIdeal()                          eliminar()
                                                                                       buscar()
                                                                           DAO         listar()
                                 Servicio                               insertar()
                                                                        actualizar()
                               buscarAfines()
                                                                        eliminar()
                               buscarIdeal()
                                                                        buscar()
                                                                        listar()

Junio 2011                                         SOA y Web Services                                      26
4. Modelado de Componentes
    Principios del desarrollo basado en componentes
            Encapsulación e Interfaces:
                 Si un módulo cambia internamente sin modificar su interfaz, dicho cambio
                  no provocará cambios en otras partes del sistema
            Abstracción:
                 Un usuario del componente no necesita saber como esta implementado el
                  modulo para comprender la funcionalidad ofertada
            Arquitectura del sistema
                 Cómo se organizan los componentes
                 Conectividad entre componentes
                 Centra y prioriza las decisiones del desarrollo




Junio 2011                                 SOA y Web Services                             27
4.Modelado de
               Componentes
             Veamos un Ejemplo



Junio 2011      SOA y Web Services   28
I. Fundamentos
1.      Motivación
2.      Arquitecturas de Software
3.      Necesidad del Contrato
4.      Modelado de Componentes
5.      Retos



Junio 2011             SOA y Web Services   29
5. Retos
    Computación Distribuida
       Poder  realizar un conjunto de operaciones de
        cálculo de manera cooperativa entre varias
        máquinas
       Las máquinas se conectan mediante una red
       El resultado se compone a partir de los resultados
        parciales


Junio 2011                SOA y Web Services                 30
5. Retos
    Interoperabilidad
       Poder  comunicar máquinas distintas y software
        distinto para realizar computación distribuida
       Poder invocar aplicaciones creadas para una
        plataforma desde otra totalmente distinta




Junio 2011                SOA y Web Services             31
5. Retos
    Integración
       De datos, de aplicaciones, de componentes, de
        negocio (EAI)
       Síncrona o asíncrona
       Mediante sockets, RPC, RMI, colas, DCOM, ETL,
        …
       ¿Sistemas heredados?



Junio 2011              SOA y Web Services          32
5. Retos
    Computación en Internet
       Poder  llevar los conceptos de computación
        distribuida a Internet
       Aplicando medidas de seguridad pertinentes
       Atravesando cortafuegos
       Utilizando estándares de facto




Junio 2011               SOA y Web Services          33
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   34
II. Arquitectura SOA
1.       Tecnologías de Integración
2.       Problemas
3.       ¿Qué es SOA?
4.       Servicios, Web Services y SOA
5.       Ejemplos de Aplicación



Junio 2011              SOA y Web Services   35
1. Tecnologías de Integración
    Existen muchas propuestas para integrar aplicaciones
     distribuidas
    Objetivo:
       Comunicar máquinas remotas
       Ejecutar tareas de manera cooperativa
       Integrar sistemas heterogéneos
       Integrar aplicaciones “legadas”
    Distinciones:
       Caso   de Aplicaciones compatibles (homogéneas)
       Caso   de Aplicaciones incompatibles (heterogéneas)


Junio 2011                    SOA y Web Services              36
1. Tecnologías de Integración
    DCOM
       Distributed Component Object Model
       Tecnología de Microsoft para programación con objetos distribuidos
       Problema: Sólo disponible para Windows lo que limita la
        interoperabilidad
    Java RMI
       Remote Method Invocation
       Distribución de objetos “Java-to-Java”
       Problema: No es independiente del lenguaje ya que exige utilizar Java




Junio 2011                       SOA y Web Services                          37
1. Tecnologías de Integración
    CORBA
       Common Object Request Broker Architecture by OMG
       Estándar para comunicar objetos distribuidos independiente del
        lenguaje utilizado
       Problema: hay problemas de interoperabilidad porque no garantiza que
        los participantes implementen la especificación completa
    RMI sobre IIOP
            Java RMI que utilizar IIOP de CORBA para la comunicación
            Utilizado para acceder a EJBs (Enterprise JavaBeans)
            Problema: Depende de CORBA para la comunicación y de Java para
             la implementación




Junio 2011                          SOA y Web Services                        38
II. Arquitectura SOA
1.       Tecnologías de Integración
2.       Problemas
3.       ¿Qué es SOA?
4.       Servicios, Web Services y SOA
5.       Ejemplos de Aplicación



Junio 2011              SOA y Web Services   39
2. Problemas
    Rendimiento y escalabilidad
    Gestión
    Cumplir la falta de acoplamiento
    Transaccionalidad, seguridad, estado
    Conversión de protocolos
    Versionado
    Firewalls y otros elementos de seguridad
    Ancho de banda
    Evaluación de la causa raíz de los problemas
    Coste de desarrollo, integración y pruebas


Junio 2011                   SOA y Web Services     40
II. Arquitectura SOA
1.       Tecnologías de Integración
2.       Problemas
3.       ¿Qué es SOA?
4.       Servicios, Web Services y SOA
5.       Ejemplos de Aplicación



Junio 2011              SOA y Web Services   41
3. ¿Qué es SOA?
 Arquitectura Orientada a Servicios
 N-capas
 Importa el servicio ofrecido

             Cliente
                                             Seguridad
                        Gestión
             Cliente
                                                         Servidor
             Cliente   Validación


Junio 2011              SOA y Web Services                          42
3. ¿Qué es SOA?
    Arquitectura que utiliza servicios como bloques de
     construcción para facilitar la integración y reutilización de
     componentes empresariales a través de un bajo acoplamiento
    ¿Cómo?
       Utilizar servicios para implementar las capas
       Los servicios NO SON LIBRERÍAS pero se parecen
       Tienen funcionalidad pero esperan a ser invocados
       No importa el lenguaje de programación ni el entorno, sólo que
        cumplan con su cometido




Junio 2011                       SOA y Web Services                      43
3. ¿Qué es SOA?
    Ventajas
            Aprovecha los estándares abiertos para representar los servicios
            Permite ver los servicios como bloques de construcción que pueden ser
             reutilizados en el desarrollo de otros aplicaciones
            Permite centrarse en ensamblar bloques en vez de en los detalles de
             implementación
            Se puede utilizar internamente para crear nuevas aplicaciones a partir
             de componentes existentes
            Puede utilizarse externamente al integrarse con las aplicaciones fuera
             de la empresa



Junio 2011                            SOA y Web Services                          44
3. ¿Qué es SOA?
    Terminología utilizada en SOA
            Servicio
                 Funcionalidad publicada
            Orquestación y coreografía
                 Coordinación de servicios para implementar una lógica
                  determinada
                 En la orquestación hay un director, en la coreografía no
            Sin estado
                 Los servicios no dependen unos de otros y se pueden orquestar de
                  distintas maneras
            Proveedor
            Consumidor


Junio 2011                              SOA y Web Services                           45
3. ¿Qué es SOA?
    Exige un cambio de mentalidad
            Los servicios NO SON LIBRERÍAS
            NO SIRVEN PARA TODO
            NO SON RÁPIDOS
            ESTÁN PENSADOS PARA SISTEMAS HOMOGÉNEOS
    Servicios poco acoplados pero altamente interoperables
    Basados en una definición independiente de plataforma
    Alta reusabilidad
    Poco sensible a cambios
    Permite modelos de
       Consumo de terceros
       Colaboración
       Integración de tecnologías



Junio 2011                        SOA y Web Services          46
3. ¿Qué es SOA?
    Ciclo de Vida de SOA
            Modelado
                 Capturar, analizar, simular y optimizar modelos
                 Reducir el riesgo y aumentar la flexibilidad
            Ensamblado
                 De componentes nuevos y antiguos
                 Para ejecutar y gestionar procesos de negocio
       Despliegue
       Gestión
                 Análisis de la información de negocio derivada
                 Para tomar acciones coordinadas y “a tiempo”



Junio 2011                                SOA y Web Services        47
3. ¿Qué es SOA?
    Capas SOA
            Aplicaciones básicas (SD)
                 Sistemas geográficamente dispersos
            Exposición de funcionalidad (WS)
                 Como Web Service para su consumo
            Integración de servicios (ESB)
                 Facilitando el intercambio de datos empresariales
            Composición de procesos (BPM)
                 Modelando un proceso en términos del negocio y sus necesidades
            Entrega
                 Desplegando los servicios para el usuario final



Junio 2011                                SOA y Web Services                       48
II. Arquitectura SOA
1.       Tecnologías de Integración
2.       Problemas
3.       ¿Qué es SOA?
4.       Servicios, Web Services y SOA
5.       Ejemplos de Aplicación



Junio 2011              SOA y Web Services   49
4. Servicios, Web Services y SOA
    Servicio
       Funcionalidad   empaquetada como un componente
        reutilizable en procesos de negocio
       Expuesto mediante una interfaz bien definida
       Que aparece como una función autocontenida
       Que utiliza mensajes para ocultar la implementación
       Por tanto no importa cómo se ha desarrollado
       Que no depende del estado de otros servicios
       Que proporciona información o realiza modificaciones en
        los datos de negocio


Junio 2011                  SOA y Web Services                    50
4. Servicios, Web Services y SOA
    XML Web Service
            Servicio identificado por una URI
            Definido, descrito y descubierto mediante XML
            Que utiliza XML como soporte de sus mensajes
            Cuyos protocolos de mensajes están basados en Internet
            Que no almacena estado
    RESTful WebService
       Servicio identificado por una URI
       Cuyos protocolos de mensajes están basados en Internet
       Que no almacena estado




Junio 2011                            SOA y Web Services              51
4. Servicios, Web Services y SOA
    SOA es una arquitectura basada en servicios
    Se centra en la disposición de los servicios al crear
     aplicaciones
    Los Web Services son un caso particular de servicio
            Pueden utilizarse para crear una SOA
            Pero no tiene estado
            Cada petición debe ser autocontenida
            No podemos valernos de la información del servidor
            No podemos utilizar variables de sesión
            No debemos utilizar cookies



Junio 2011                           SOA y Web Services           52
II. Arquitectura SOA
1.       Tecnologías de Integración
2.       Problemas
3.       ¿Qué es SOA?
4.       Servicios, Web Services y SOA
5.       Ejemplos de Aplicación



Junio 2011              SOA y Web Services   53
5. Ejemplos de Aplicación
    Transporte
            Ofertar precios realistas se hace difícil cuando los envíos viajan a través
             de múltiples operadores
    Banca
            Necesidad de proporcionar servicios bancarios a múltiples clientes
            Necesidad de integrar un gran número de aplicaciones internas
    Gobierno
            Necesita compartir y acceder a datos a través de
             distintas agencias
    Internet
            Necesidad de realizar búsquedas rápidas de distintos contenidos



Junio 2011                              SOA y Web Services                            54
5. Ejemplos de Aplicación
    Interoperabilidad entre sistemas heterogéneos
    Interacciones B2B
    La encapsulación de los sistemas heredados
    Aislamiento de la evolución de los sistemas
    Empresa normalización de los servicios
    Integración de paquetes de terceros
    Coordinación de procesos
    Desarrollo de portales

Junio 2011                SOA y Web Services         55
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   56
III.XML Web Services
1.      Definiciones
2.      El protocolo SOAP
3.      Documentos WSDL
4.      Registros UDDI




Junio 2011            SOA y Web Services   57
1. Definiciones
    ¿Qué es un Servicio Web?
       Según Wikipedia:
      “… es un conjunto de protocolos y estándares que sirven para intercambiar
        datos entre aplicaciones.”

       De otra forma:
      “A través de una interfaz estándar … permite el funcionamiento de una serie
        de sistemas heterogéneos como un conjunto integrado.”

       Simplificando:
      “Cada uno de los componentes de un sistema diseñado para soportar
        interoperabilidad entre máquinas sobre Internet.”



Junio 2011                         SOA y Web Services                             58
1. Definiciones
    ¿Qué es un Servicio Web XML?
       Según   Microsoft:
      “… es una entidad programable que proporciona un elemento
        de funcionalidad determinado, como lógica de aplicación …
        (accesible) mediante estándares de Internet … como XML y
        HTTP.”

       Según   Sun:
      “… es un componente software con las siguientes
       características: 1) Es accesible a través del interfaz SOAP, 2)
       Su interfaz se describe en un documento WSDL.”


Junio 2011                    SOA y Web Services                     59
1. Definiciones

    Simplificando más:
       Interfazaccesible a través de Internet
       Alojada en un Servidor Web
       Que permite invocación remota de procesos
       Autocontenido, Autodescrito, Modular e Independiente de
        Plataforma
       Estándares (XML, SOAP, HTTP)
       Modelo de Proxy




Junio 2011                  SOA y Web Services                    60
1. Definiciones
    Fundamentos:
            Intercambio de información
            Normalización
                 Entre plataformas
                 Entre lenguajes
                 Entre sistemas operativos
    Escenarios:
            Simple
                 Publicación de información
            Integración de Aplicaciones
                 Permite realizar tareas remotas
            Soluciones de Flujo de Trabajo (Workflow)
                 Integrados con BizTalk, Sun ONE, ServiceMix,…




Junio 2011                                    SOA y Web Services   61
1. Definiciones
    Modelo de Proxy:
       Componentes ubicados en servidores diferentes que deben comunicarse
        de manera transparente.
       Un Proxy “se hace pasar por el objeto remoto”
       El objeto cliente usa el Proxy como si no hubiera una red


             Objeto                                       Objeto
             Cliente            referencia remota         Remoto



              Proxy                                  Referencia Remota
                                 RED TCP

Junio 2011                      SOA y Web Services                       62
1. Definiciones

    Infraestructura




Junio 2011             SOA y Web Services   63
1. Definiciones

    Estándares:
              XML
              XSD

              HTTP

              SOAP

              WSDL

              UDDI




Junio 2011            SOA y Web Services   64
III.XML Web Services
1.      Definiciones
2.      El protocolo SOAP
3.      Documentos WSDL
4.      Registros UDDI




Junio 2011            SOA y Web Services   65
2. El protocolo SOAP
    Simple Object Access Protocol
       Invocación  remota basada en XML
       Mensaje estructurado en XML con posibilidad de
        implementar múltiples formatos, seguridad etc.
       Microsoft (1.0), IBM (1.1), Sun
       Contiene llamadas y respuestas de procedimientos
       Trata de sustituir a formatos propietario




Junio 2011                  SOA y Web Services             66
2. El protocolo SOAP
    SOAP Message
            Un mensaje SOAP es un elemento Envelope con una cabecera opcional
             y un cuerpo obligatorio

              <soap:Envelope>
                  <soap:Header> ... </soap:Header>
                  <soap:Body>
                      <metodo>
                        <x xsi:type="xsd:int">5</x>
                        <y xsi:type="xsd:float">5.0</y>
                      </metodo>
                  </soap:Body>
              </soap:Envelope>



Junio 2011                           SOA y Web Services                     67
2. El protocolo SOAP
    SOAP Message
            Mensaje de Respuesta

              <soap:Envelope>
                  <soap:Header> ... </soap:Header>
                  <soap:Body>
                      <metodoResponse>
                         <metodoReturn>
                               El producto es 25.0
                         </metodoReturn>
                      </ metodoResponse>
                  </soap:Body>
              </soap:Envelope>



Junio 2011                            SOA y Web Services   68
2. El protocolo SOAP
    Permite separar meta-información del mensaje
            Información de enrutado
            Información de expiración
            …
    Define
            Un modelo de proceso
            Un mecanismo para manejar errores
            Un mecanismo para representar datos
            Un convenio para RPC
            Un marco para vincular protocolos


Junio 2011                          SOA y Web Services   69
2. El protocolo SOAP
    Ventajas:
       XML   plano --> ubicuidad de componentes
       Comunicación HTTP --> no cortafuegos
       IPSec o SSL proporcionan seguridad
       Escalable a conjuntos de servidores




Junio 2011              SOA y Web Services         70
2. El protocolo SOAP
    Motores SOAP
       Framework           que se utiliza en servidores y clientes para
             facilitar
                 La serialización de objetos a SOAP
                 La deserialización de mensajes SOAP a objetos
                 La validación de la estructura de los mensajes
       SOAPpy
                 Implementado en Python y Axis




Junio 2011                            SOA y Web Services               71
2. El protocolo SOAP
    Motores SOAP




Junio 2011          SOA y Web Services   72
2. El protocolo SOAP
    Mensajes de error
       SOAP       Fault XML <Fault>
              <faultcode>
                    ID del error
              <faultstring>

                    Descripción breve
              <detail>

                    Detalles del error


Junio 2011                      SOA y Web Services   73
III.XML Web Services
1.      Definiciones
2.      El protocolo SOAP
3.      Documentos WSDL
4.      Registros UDDI




Junio 2011            SOA y Web Services   74
3. Documentos WSDL
    Web Services Description Language
       Lenguaje  de descripción del Servicio Web
       Describir interfaces de Servicios Web
       Independiente de la implementación
       Métodos disponibles, parámetros y retorno
       Mapeado a SOAP de manera unívoca




Junio 2011               SOA y Web Services         75
3. Documentos WSDL
    Web Services Description Language
       Define       una o varias operaciones
                Incluyendo los mensajes que reciben
                Y los mensajes que devuelven
       Descritasde forma abstracta
       Concretadas en el endpoint
                Protocolo
                Formato de mensaje
                Dirección de Red



Junio 2011                            SOA y Web Services   76
3. Documentos WSDL
<definitions>           Web Services Description Language
        <types/>            types: Declaraciones de tipos de dato
        <message/>           habitualmente en XSD
              <part/>       message: Definición abstracta de mensajes y sus
        </message>           tipos de dato (part)
        <portType>          portType: Operaciones soportadas por el servicio
              <operation/>   y los mensajes que se les envía y/o recibe
        </portType>
                             (operation)
        <binding/>          binding: Formato de mensaje y protocolo que se
        <service>
                             debe utilizar para invocar las operaciones
              <port/>       service: Colección de endpoints cada uno
        </service>
                             representado por un puerto en una dirección de red
                             y con un nombre de binding
 </definitions>



Junio 2011                       SOA y Web Services                          77
3. Documentos
                WSDL
             Veamos unos documentos
             WSDL

Junio 2011      SOA y Web Services    78
III.XML Web Services
1.      Definiciones
2.      El protocolo SOAP
3.      Documentos WSDL
4.      Registros UDDI




Junio 2011            SOA y Web Services   79
4. Registros UDDI
       Universal Description, Discovery & Integration
       Catálogo de negocios de Internet
       Páginas amarillas
       Páginas blancas
       Páginas verdes
       Accedido por mensajes SOAP para obtener
        documentos WSDL



Junio 2011                  SOA y Web Services           80
4. Registros UDDI
    Universal Description, Discovery & Integration
       Mecanismo   de descubrimiento de Servicios Web
        disponibles
       Publicación de Servicios Web
       Descubrimiento de Servicios




Junio 2011                  SOA y Web Services           81
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   82
IV. Implementando XML Web
    Services
1.     Tecnologías J2EE para WS
2.     Apache AXIS
3.     Creación de WS en Java
4.     Creación de WS en .Net
5.     Publicación de Web Services
6.     Consumo de Web Services


Junio 2011             SOA y Web Services   83
1. Tecnologías J2EE para WS
    El API SAAJ
       SOAP    with Attachments API for Java
       Se emplea para escribir mesajes SOAP
        directamente en lugar de utilizar un generador
       Permite escribir y leer mensajes SOAP
       Algunas implementaciones permiten enviar y
        recibir mensajes SOAP
       Paquete:
                          javax.xml.soap
Junio 2011                SOA y Web Services             84
1. Tecnologías J2EE para WS
    El API SAAJ sin archivos vinculados
       SOAPMessage  <Message>
       SOAPPart        <Part>
       SOAPEnvelope     <Envelope>
       SOAPHeader          <Header>
       SOAPBody            <Body>

       Se   generan con el SOAPMessage

Junio 2011                SOA y Web Services   85
1. Tecnologías J2EE para WS
    El API SAAJ sin archivos vinculados




Junio 2011              SOA y Web Services   86
1. Tecnologías J2EE para WS
    El API SAAJ con archivos vinculados
       AttachmentPart
              Hay que crearlos a mano
              Debe contener una cabecera MIME

              Tipo de contenido

              Opcionalmente tendrá contenido




Junio 2011                    SOA y Web Services   87
1. Tecnologías J2EE para WS
    El API SAAJ con archivos vinculados




Junio 2011            SOA y Web Services   88
1. Tecnologías J2EE para WS
    El API SAAJ. Conexión
      SOAPConnectionFactory factory =
        SOAPConnectionFactory.newInstance();
      SOAPConnection conexion =
         factory.createConnection();
      //Crear un mensaje SOAP de request
      java.net.URL endpoint = new URL("http:
        //...");
      SOAPMessage respuesta = conexion.call
        (request, endpoint);

Junio 2011             SOA y Web Services      89
1. Tecnologías J2EE para WS
    El API SAAJ. Acceder al contenido
             SOAPBody cuerpo = respuesta.getSOAPBody();
             //Lectura del cuerpo
             for(SOAPBodyElement elemento :       cuerpo.
               getChildElements(Name)){
                    String valor = elemento.getValue();
             }
             //Modificación del cuerpo
             SOAPBodyElement docElement = cuerpo.
               addDocument(documento);



Junio 2011                   SOA y Web Services             90
1. Tecnologías J2EE para WS
    El API SAAJ. Attachments
      //Crear y añadir
      AttachmentPart adjuntos =     message.
        createAttachmentPart();
      adjuntos.setContent("texto", "text/plain");
      adjuntos.setContentId("id");
      message.addAttachmentPart(adjuntos);

      //acceder a contenidos
      for(AttachmentPart att : message.getAttachments()){
         String id = att.getContentId();
         String type = att.getContentType();
         Object content = att.getContent();
      }


Junio 2011                      SOA y Web Services          91
1. Tecnologías J2EE para WS
    El API JAX-RPC
       Java API for XML-Based RPC
       Permite construir aplicaciones y Servicios Web con
        funcionalidades RPC basadas en XML
       Cumple la especificación SOAP 1.1
       JAX-RPC 2.0 ha sido renombrado a JAX-WS 2.0


                    https://jax-rpc.dev.java.net/



Junio 2011                   SOA y Web Services              92
1. Tecnologías J2EE para WS
    El API JAX-RPC




Junio 2011            SOA y Web Services   93
1. Tecnologías J2EE para WS
    El API JAX-WS
       Tecnología      Java para construir clientes y Servicios Web
             basados en XML
                 Orientados a mensajes
                 Orientados a RPC
       Oculta la complejidad de SOAP
       Se crea un objeto Proxy que invoca               a los métodos del
        Servicio
       Se requiere la anotación javax.jws.WebService para que la
        clase se comporte como WS
       Se habla de endpoint del WS


Junio 2011                          SOA y Web Services                       94
1. Tecnologías J2EE para WS
    JAX-WS Endpoint
       Un       endpoint requiere:
                javax.jws.WebService/WebServiceProvider
                @WebService
                No admite métodos finales ni estáticos
                javax.jws.WebMethod
                Parámetros compatibles con JAXB
                Clase no abstracta ni final
                Con un constructor público por defecto
                Sin destructor (finalize)


Junio 2011                        SOA y Web Services       95
1. Tecnologías J2EE para WS
    El API JAX-WS




Junio 2011           SOA y Web Services   96
1. Tecnologías J2EE para WS
    JAX-WS Endpoint
      import javax.jws.WebService;

      @WebService()
      public class Hello {
        private String message = new String(“Hola, ");
        public Hello() {}

             @WebMethod()
             public String sayHello(String name) {
                      return message + name + ".";
             }
      }




Junio 2011                        SOA y Web Services     97
1. Tecnologías J2EE para WS
    JAX-WS Client
       Un       cliente requiere:
                javax.xml.ws.WebServiceRef
                @WebServiceRef(wsdlLocation="http://...")
                Un campo estático que referencie el servicio
                   static HelloService service;
                Un proxy al servicio con el que trabajar
                   Hello port = service.getHelloPort();
                Utilizar el proxy para invocar métodos
                   String response = port.sayHello(name);


Junio 2011                           SOA y Web Services         98
1. Tecnologías J2EE para WS
    JAX-WS Client
      import javax.jws.WebServiceRef;

      public class HelloClient {
        @WebServiceRef(wsdlLocation = "http://localhost:
        8080/helloservice/hello?wsdl")
        static HelloService servicio;

             public static void main(String[] args) {
                 Hello puerto = servicio.getHelloPort();
                 String respuesta = puerto.sayHello(args[0]);
                 System.out.println(respuesta);
             }
      }



Junio 2011                            SOA y Web Services        99
1. Tecnologías J2EE para WS
    JAXR (Java API for XML Registries)
       Permite   acceder a registros de negocio basados en UDDI y
        otros (ebXML)
       https://jaxr.dev.java.net/
       Proyecto privado
       Requiere hacerse miembro para consultarlo
       Se incluye en el proyecto GlassFish
                           com.sun.connector.jaxr
                             javax.xml.registry


Junio 2011                   SOA y Web Services                  100
IV. Implementando XML Web
    Services
1.     Tecnologías J2EE para WS
2.     Apache AXIS
3.     Creación de WS en Java
4.     Creación de WS en .Net
5.     Publicación de Web Services
6.     Consumo de Web Services


Junio 2011             SOA y Web Services   101
2. Apache AXIS
    Librerías que permiten ejecutar Servicios Web
    Servlet para desplegar y replegar servicios
    Libreria WSDL.jar general el WSDL de Servicios
       Parámetros   de entrada/salida y métodos a invocar

    http://ws.apache.org/axis/

                       org.apache.axis.client


Junio 2011                    SOA y Web Services             102
2. Apache AXIS
    Cliente y Servidor SOAP open source
    Implementa el API JAX-RPC
    2006 v1.4 Final
    Axis2 implementa JAX-WS
    Se utiliza con el servidor Tomcat
    Posible desplegarlo en otros
       WebLogic
       GlassFish


Junio 2011              SOA y Web Services   103
2. Apache AXIS
    Desplegar un Servicio manualmente
       Copiar   el .class del Servicio en la carpeta
        classes dentro de Axis
       Copiar el .java del Servicio con extensión .jws en
        la raíz del Axis desplegado
                Para que se genere el WSDL




Junio 2011                       SOA y Web Services     104
2. Apache AXIS
    Desplegar un Servicio por línea de comandos
       Fichero       .wsdd describe el Servicio
                XML específico de AXIS
       Desde       el directorio ejecutar
java -cp %AXISCLASSPATH% org.apache.axis.client.
  AdminClient
  -lhttp://localhost:8080/axis/services/AdminService
  deploy.wsdd




Junio 2011                         SOA y Web Services   105
2. Apache AXIS
    WSDL2Java
       Aplicación Java que genera clases a partir de un documento
        WSDL
       Para cada <port> genera una clase Proxy
       Para cada <portType> una interfaz (SEI)
       Para cada <binding> un stub que implementa el SEI
       Para cada <service> una interfaz de servicio y su
        implementación para localizar el proxy

java org.apache.axis.wsdl.WSDL2Java “fichero-WSDL”


Junio 2011                    SOA y Web Services                     106
2. Apache AXIS
    Java2WSDL
       Aplicación Java que genera clases a partir de un
        documento WSDL
       java org.apache.axis.wsdl.Java2WSDL
             -o “fichero-WSDL”
             -l“url del servicio”
             -n <espacio de nombres>
             -p “package” “namespace”
             “fichero-CLASS”


Junio 2011                    SOA y Web Services           107
2. Apache AXIS
    Consumir un Servicio con AXIS
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;

public class TestClient{
   public static void main(String [] args) {
           String endpoint = "http://nagoya.apache.org:5049/axis/services/echo";
           Service service = new Service();
           Call call = (Call) service.createCall();
           call.setTargetEndpointAddress(new java.net.URL(endpoint));
           call.setOperationName(new QName("http://soapinterop.org/",
   "echoString") );
           String ret = (String) call.invoke( new Object[] { "Hello!" } );
           System.out.println("Sent 'Hello!', got '" + ret + "'");
    }
}




Junio 2011                        SOA y Web Services                          108
IV. Implementando XML Web
    Services
1.     Tecnologías J2EE para WS
2.     Apache AXIS
3.     Creación de WS en Java
4.     Creación de WS en .Net
5.     Publicación de Web Services
6.     Consumo de Web Services


Junio 2011             SOA y Web Services   109
3. Creación de WS en Java
    En Eclipse desde un JavaBean




Junio 2011                 SOA y Web Services   110
3. Creación de WS en Java




Junio 2011    SOA y Web Services   111
3. Creación de WS en Java




Junio 2011    SOA y Web Services   112
3. Creación de WS en Java

    Contenido generado:
       Librerías jar
       Servlet en web.xml
       Fichero wsdl
       Ficheros wsdd de AXIS




Junio 2011                 SOA y Web Services   113
3. Creación de WS en Java

    Probando el Web Service
       Botón        derecho en el WSDL
                Web Services > Test with Web Services Explorer
       Permite configurar múltiples endpoints
       Incluye una ventana de estado que muestra los
        mensajes SOAP
       Permite probar el WSDL sin necesidad de nada
        más


Junio 2011                       SOA y Web Services               114
3. Creación de WS en Java




Junio 2011    SOA y Web Services   115
3. Creación de WS en Java
    En JDeveloper desde un JavaBean




Junio 2011                 SOA y Web Services   116
3. Creación de WS en Java




Junio 2011   SOA y Web Services   117
IV. Implementando XML Web
    Services
1.     Tecnologías J2EE para WS
2.     Apache AXIS
3.     Creación de WS en Java
4.     Creación de WS en .Net
5.     Publicación de Web Services
6.     Consumo de Web Services


Junio 2011             SOA y Web Services   118
4. Creación de WS en .Net




Junio 2011   SOA y Web Services   119
4. Creación de WS en .Net
    Tipo especial de clase
            Extensión ASMX (Visual Studio 2005)
            WCF Web Service (Visual Studio 2010)
    Los métodos a publicar se marcan con el atributo WebMethod
    VB

        <WebMethod()> _
            Public Function TraerDatos() As String[]
            End Function
    C#

          [WebMethod]
              public String[] TraerDatos(){
              }

Junio 2011                          SOA y Web Services        120
4. Creación de WS en .Net
    Fichero .asmx indica que es un servicio Web
             <%@ WebService Language = "C#" CodeBehind =
             "~/App_Code/Service.cs" Class = "Service" %>


    Código en /App_Code/Service.cs
              public class Service : System.Web.Services.
                WebService{
                  public Service () {    }

                  [WebMethod]
                  public string HelloWorld() {
                      return "Hola a todos";
                  }
              }


Junio 2011                        SOA y Web Services        121
4. Creación de WS en .Net
    [WebService(Namespace = "http://...")]
       Indica el espacio de nombres del servicio
       Distinto del namespace de C#
       Describe el servicio para el descubridor UDDI
             WebService(Namespace=“...”, Description=“…”)]
    [WebMethod(Description = "…")]
       Delantede la declaración de los métodos
       Parámetros como siempre




Junio 2011                   SOA y Web Services          122
IV. Implementando XML Web
    Services
1.     Tecnologías J2EE para WS
2.     Apache AXIS
3.     Creación de WS en Java
4.     Creación de WS en .Net
5.     Publicación de Web Services
6.     Consumo de Web Services


Junio 2011             SOA y Web Services   123
5. Publicación de Web Services
    En JDeveloper




Junio 2011           SOA y Web Services   124
5. Publicación de Web Services

 Creado desde Visual Studio, sólo es necesario
  publicarlo como un sitio Web
 Usando las herramientas de publicación de
  VS2005
       http
       ftp
       Front   Page Server Extensions
    ¡Copiar y pegar!

Junio 2011                 SOA y Web Services   125
5. Publicación de Web Services

        Manualmente:
      1.     Alojar el servicio en un servidor local (IIS)
                Publicando el servicio en una carpeta
      2.     Activar el servidor Web
                Indicando el directorio local con el servicio
                Añadirlo a IIS (*)
      3.     Añadir una referencia Web al proyecto
      4.     Consumir



Junio 2011                           SOA y Web Services          126
5. Publicación de Web Services




Junio 2011    SOA y Web Services   127
5. Publicación de Web Services




Junio 2011    SOA y Web Services   128
5. Publicación de Web Services




Junio 2011    SOA y Web Services   129
IV. Implementando XML Web
    Services
1.     Tecnologías J2EE para WS
2.     Apache AXIS
3.     Creación de WS en Java
4.     Creación de WS en .Net
5.     Publicación de Web Services
6.     Consumo de Web Services


Junio 2011             SOA y Web Services   130
6. Consumo de Web Services
       En JDeveloper




Junio 2011              SOA y Web Services   131
6. Consumo de Web Services




Junio 2011   SOA y Web Services   132
6. Consumo de Web Services




Junio 2011   SOA y Web Services   133
6. Consumo de Web Services




Junio 2011   SOA y Web Services   134
6. Consumo de Web Services




Junio 2011   SOA y Web Services   135
6. Consumo de Web Services
    En .Net
       Crearun proyecto
       Botón derecho > “Agregar Referencia Web”…
              Buscándolo por UDDI
              Utilizando el vínculo al WSDL

              Llamando al Servicio Web con ?wsdl

              Explorando los Servicios de la Solución

              Explorando los Servicios de la máquina local



Junio 2011                      SOA y Web Services            136
6. Consumo de Web Services




Junio 2011   SOA y Web Services   137
6. Consumo de Web Services




Junio 2011   SOA y Web Services   138
6. Consumo de Web Services
localhost.Externos objeto;




Junio 2011        SOA y Web Services   139
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   140
V. RESTful Web Services
1.       Introducción a los Servicios REST
2.       Comparativa con SOAP
3.       Implementación de Servicios REST




Junio 2011              SOA y Web Services   141
V. RESTful Web Services
1.     Introducción a los Servicios REST
2.     Comparativa con SOAP
3.     Implementación de Servicios REST




Junio 2011             SOA y Web Services   142
1. Introducción a los Servicios REST
    REpresentational State Transfer
    Tesis de Roy T. Fielding (2000)
       Coautorde los estándares HTTP y URI
       Cofundador de Apache
    Se han empezado a utilizar porque
       Los  Servicios XML son complicados
       Requieren mucha infraestructura lógica
       Al final vamos a utilizar HTTP
       Simplificar el modelo


Junio 2011                  SOA y Web Services   143
1. Introducción a los Servicios REST
    Principios de REST
            No tienen estado
            Tienen una interfaz uniforme
                 No hay WSDL pero se usan los verbos HTTP
                 POST, GET, PUT, DELETE,…
            Se basa en la representación de recursos
                 URI + Secuencia de bytes + tipo MIME (txt, xml, json, jpeg,…)
                 http://localhost/clientes
                 http://localhost/clientes/1234
                 http://localhost/pedidos/567/cliente
            Los mensajes están autodescritos
            HATEOS (Hypermedia As The Engine Of application State)



Junio 2011                               SOA y Web Services                       144
1. Introducción a los Servicios REST
    HATEOS
       Cada respuesta del servidor debe contener todas las URI
        que permitan llevar a un siguiente paso
       Todas las posibles transiciones de estado que pueda
        realizar el usuario desde el estado actual se representan
        mediante URI
                Si no lo cumple no es un servicio RESTful
       No  es necesario almacenar el estado en variables de sesión
        ni en cookies
       Se identifican los recursos mediante la URI



Junio 2011                            SOA y Web Services            145
1. Introducción a los Servicios REST
    Otros principios de REST
       No  depender de un único protocolo de comunicación
       Describir dentro del servicio los tipos MIME que
        representan los recursos
       No utilizar nombre fijos para los recursos
       Definir las normas para crear URIs válidas en base a los
        tipos MIME y el estado actual
       Utilizar un punto de entrada fijo pero que todas las
        transiciones las guíe el cliente



Junio 2011                   SOA y Web Services                    146
V. RESTful Web Services
1.     Introducción a los Servicios REST
2.     Comparativa con SOAP
3.     Implementación de Servicios REST




Junio 2011             SOA y Web Services   147
2. Comparativa con SOAP
    SOAP está más extendido
    Tiene múltiples extensiones
            WS-Extensions, WS-I,…
            Pensadas para la integración de aplicaciones empresariales
    Existen multitud de plataformas de generación de código
            JAX-RPC, JAX-WS, AXIS, …
    Existen entornos ESB que utilizan interfaces WSDL para la
     integración de aplicaciones
            Apache ODE, Mule, MQ,…
    El formato document/literal es similar a REST
            Envío de un documento XML encapsulado en SOAP



Junio 2011                            SOA y Web Services                  148
2. Comparativa con SOAP
    La red es una de las aplicaciones más exitosas del planeta
            HTTP es suficientemente general y claro para crear aplicaciones robustas y
             escalables
    Los desarrolladores tienden a la complejidad
            Un problema complejo no implica que la solución también lo sea
    SOAP es muy complejo y REST muy simple
            “WS-Estrella de la muerte” Vs “RESTafaris”
            Razonamiento de Occam
    Alternativas SOA
            Comprar un ESB estándar y adaptarte a él
            Comprar el mejor ESB y aprender a manejarlo
            Hacértelo tú mismo
                 ¿cómo?, SOAP, REST, formato propio




Junio 2011                               SOA y Web Services                               149
2. Comparativa con SOAP
    Tabla comparativa
       Principio SOA          Servicios XML           Servicios REST
       Interpoerabilidad      Excelente               Buena
       Bajo acoplamiento      Excelente               Excelente
       Reutilización          Excelente               Buena
       Fácil descubrimiento   Excelente               Pobre
       Simplicidad            Pobre                   Excelente
       Mantenibilidad         Buena                   Buena
       Extensibilidad         Excelente               Pobre
       Rendimiento            Bueno                   Excelente
       Escalibilidad          Buena                   Pobre

Junio 2011                       SOA y Web Services                    150
V. RESTful Web Services
1.     Introducción a los Servicios REST
2.     Comparativa con SOAP
3.     Implementación de Servicios REST




Junio 2011             SOA y Web Services   151
3. Implementación de Servicios REST
    Los Servicios REST se basan en los verbos de HTTP
            POST, GET, PUT, DELETE
    Y en los tipos MIME de datos enviados
            text/plain, text/xml, image/jpeg,…
    En general se puede decir que REST utiliza actividades CRUD
            Create, Read, Update, Delete
    Cada operación del servicio va a estar disponible dado un
     verbo HTTP y uno o varios tipos de contenido MIME




Junio 2011                            SOA y Web Services         152
3. Implementación de Servicios REST
    Mediante JAX-RS
       Basado  en el JSR 311
       Define anotaciones para mapear servicios RESTful
                @GET, @POST, @PUT,…
       Implementaciones
          RESTeasy de JBoss

          RESTpack de Mule

          Jersey de Sun

          NetBeans 6 incluye una implementación de Jersey IDE con
           ejemplos preconfigurados



Junio 2011                      SOA y Web Services                   153
3. Implementación de Servicios REST
    Mediante Jersey
            Requiere las librerías
                  Jersey-server
                  Jersey-core
                  Asm

            1º Crear un Servlet mapeado a "/*"
               <servlet>
                  <servlet-name>RecursoREST</servlet-name>
                  <servlet-class>
                  com.sun.jersey.spi.container.servlet.ServletContainer
                  </servlet-class>
               </servlet>
               <servlet-mapping>
                  <servlet-name>RecursoREST</servlet-name>
                  <url-pattern>/*</url-pattern>
               </servlet-mapping>




Junio 2011                                SOA y Web Services              154
3. Implementación de Servicios REST
    Mediante Jersey
            2º Crear una clase de implementación anotada a un path

               @Path("/raiz")
               public class Servicio{
               }

            3º Anotar los métodos de recursos
                  Con un verbo HTTP y un tipo de contenido MIME a consumir y/o producir
                  Se puede ampliar el path siempre bajo el raíz
                  Se localiza en /raiz/saludo

               @GET
               @ProduceMime("text/xml")
               @Path("/saludo")
               public String hola(){
               }




Junio 2011                                     SOA y Web Services                          155
3. Implementación de Servicios REST
    Parámetros de entrada
            Parámetros del Path
                 Indicar la parte del path que hace de parámetro entre llaves
                       @Path("/raiz/{var}")
                 Admite expresiones regulares (Ej. Número de 3 dígitos)
                       @Path("/raiz/{var: d{3}}")
                 Anotar el parámetro con
                       @PathParam("var") int x
            Parámetros de la QueryString (?var1=valor&var2=valor&…)
                 Anotar el parámetro con
                       @QueryParam("var") @DefaultValue("7") int y
            Parámetros de formulario
                 Anotar el método con
                       @Consumes("application/x-www-form-urlencoded")
                 Anotar el parámetro con
                       @FormParam("parametro") String z



Junio 2011                                   SOA y Web Services                  156
3. Implementación de Servicios REST
    Parámetros de retorno
            Tipos sencillos (nativos + fechas + String)
                 @Produces(“text/plain”)
            Tipos XML y JSON
                 Devolver el contenido como String pero con el tipo MIME adecuado
            Tipos Response
                 return Response.ok(contenido, tipoMIME).build();
            Tipos Object
                 1º Anotar el objeto con anotaciones JAXB
                    @XmlRootElement(name=“persona”) public class Persona{
                      @XmlElement(name=“id”) int id;
                      @XmlElement(name=“nombre”) String nombre;
                    }
                 2º Devolver el objeto con tipo MIME “application/xml”



Junio 2011                                  SOA y Web Services                       157
3. Implementación de Servicios REST
    Clientes REST con Jersey
            Requiere las librerías
                 Jersey-client
                 Jersey-core
            1º Crear un objeto cliente
              ClientConfig cfg = new DefaultClientConfig();
              Client cliente = Client.create(cfg);
            2º Obtener el recurso Web apuntando a la URL base
              URI url = URI.create(“http://localhost:8080/raiz”);
              WebResource recurso = cliente.resource(url);




Junio 2011                                SOA y Web Services     158
3. Implementación de Servicios REST
    Clientes REST con Jersey
            3º Consumir el recurso
                 Añadir paths opcionales a la URL
                  recurso.path("subrecurso");
                 Indicar el tipo MIME a recoger/enviar
                  recurso.accept(MediaType.TEXT_XML);
                  recurso.accept(MediaType.TEXT_XML);
                 Invocar al verbo HTTP con el tipo de retorno esperado
                  String respuesta = recurso.get(String.class);
                 Los verbos POST y PUT requiere datos a enviar
                  ClientResponse r = recurso.put(ClientResponse.
                  class, datos);



Junio 2011                            SOA y Web Services                  159
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   160
VI. Interoperabilidad

1.      Concepto de Interoperabilidad
2.      XML Schemas
3.      Implementación de la Interoperabilidad




Junio 2011              SOA y Web Services       161
1. Concepto de Interoperabilidad
       La característica fundamental de los Web Services es la
        interoperabilidad
       Pero, ¿Qué es interoperabilidad?
       Condición mediante la cual sistemas heterogéneos pueden
        intercambiar procesos o datos
       Una definición más genérica
            “Propiedad de los sistemas de producción, cuyas interfaces son
             perfectamente conocidas, para trabajar con otros sistemas de
             producción presentes o futuros sin restricciones de acceso o
             implementación”.




Junio 2011                          SOA y Web Services                        162
1. Concepto de Interoperabilidad
       Más sencillo
       Integración a distintos niveles tecnológicos
       Datos, mensajes, componentes, aplicaciones, servicios,
        procesos,…
       Para
                Integrar procesos de negocio incompatibles
                Unificar datos usados en distintos sistemas
                Unificar tecnologías
                Unificar tiempos de ejecución (batch + OLTP)
                …


Junio 2011                         SOA y Web Services            163
1. Concepto de Interoperabilidad

       Interoperabilidad sintáctica
       Posibilidad de intercambiar datos entre dos sistemas
        heterogéneos
       Transformación de datos: XSLT

       Interoperabilidad semántica
       Posibilidad de entender y ser capaz de utilizar los datos
        intercambiados
       Definición de datos: XSD




Junio 2011                   SOA y Web Services                     164
1. Concepto de Interoperabilidad
       La interoperabilidad exige que los tipos de datos
        utilizados como parámetros en los Web Services
        tengan una correspondencia con los tipo XSD
            Porque ya existan (tipos nativos)
            Porque sean composición de éstos (clases sencillas
             mapeadas a complexType)
       No se admiten tipos complejos
            List, Array, Map, DataSet, …
            En el mejor de los casos se mapean a array [ ]



Junio 2011                       SOA y Web Services               165
VI. Interoperabilidad

1.      Concepto de Interoperabilidad
2.      XML Schemas
3.      Implementación de la Interoperabilidad




Junio 2011              SOA y Web Services       166
2. XML Schemas
       En documentos XML a veces es necesario
            Especificar una relación entre los elementos del documento
            Verificar la corrección de los datos
            Verificar la integridad de los datos
            Tener un entendimiento compartido
       Se comprueba:
            Elementos o atributos declarados en el esquema.
            Estructura jerárquica de elementos y atributos.
            Orden de los elementos.
            Valores de atributos y elementos.
            Unicidad de valores.


Junio 2011                          SOA y Web Services                    167
2. XML Schemas
       XML Schema (XSD)
            Fichero de validación XML
            Sintaxis XML
            Nodos y tipos (primitivos y derivados)
            Soporta la extensión del documento
            Se puede utilizar para transformar el documento en una
             jerarquía de objetos
            NO mapea los métodos
            Utiliza espacios de nombres (namespaces)


Junio 2011                      SOA y Web Services                    168
2. XML Schemas
       <xsd:element
                         name=“nombre_nodo”
                         type=“tipo_dato”
                         default=“valor por defecto”
                         fixed=“valor fijo”
                         minOccurs=“cardinalidad mínima”
                         maxOccurs=“cardinalidad máxima”>
       <xsd:attribute
                         name=“nombre_atributo”
                         type=“tipo_dato”
                         use=“optional o mandatory”
                         fixed=“valor fijo” >
       <xsd:complexType
                    mixed=“true o false”>




Junio 2011                                SOA y Web Services   169
2. XML Schemas
       Tipos Primitivos:             Tipos Derivados:
            string                        integer (decimal)
            boolean                       long (integer)
            decimal                       normalizedString (string)
            float                         token (normalizedString)
            double                        Name (token)
            dateTime                      ID (Name)
            date                          IDREF (Name)
            time                          ENTITY (Name)
            …                             …


Junio 2011                  SOA y Web Services                          170
2. XML Schemas
       Mapeo de Objetos                                   Cliente
        <xsd:element name="Cliente">                   +fechaNac:Date
                                                       +direccion:String
           <xsd:complexType>
              <xsd:all>
                 <xsd:element name="fechaNac"
                            type="xsd:date" />
                 <xsd:element name=“direccion"
                            type="xsd:string" />
              </xsd:all>
           </xsd:complexType>
        </xsd:element>



Junio 2011                        SOA y Web Services                       171
2. XML Schemas
                                                                  Base
                                                                  +a:int
       Mapeo de Herencia                                         -b:int
      <xsd:complexType name=“Base”>                               -c:int
           <xsd:all>                                            +getB():int
                      <xsd:element name="a" type="xsd:int" />   +setB(int)
                      <xsd:element name="b" type="xsd:int" />
           </xsd:all>
      </xsd:complexType>
       <xsd:complexType name=“Derivada”>
           <complexContent>
             <extension base=“Base”>                            Derivada
               <xsd:all>
                                                                  +x:int
                      <xsd:element name=“x" type="xsd:int" />
               </xsd:all>                                         -y:int
             </extension>
           </complexcontent>
      </xsd:complexType>

Junio 2011                             SOA y Web Services                     172
2. XML Schemas

             Veamos un ejemplo



Junio 2011       SOA y Web Services   173
VI. Interoperabilidad

1.      Concepto de Interoperabilidad
2.      XML Schemas
3.      Implementación de la Interoperabilidad




Junio 2011              SOA y Web Services       174
3. Implementación de la
   Interoperabilidad
       Estrategias
            Rápida y de bajo coste de integración
                WSI (WebServices Integration)
                Crear un WS para el sistema a integrar
                Se crean los tipos necesarios para ese sistema
                Poco reutilizable
            Sistemática y de inversión a futuro
                SOI (Service Oriented Integration)
                Diseñar la arquitectura SOA antes de nada
                Interfaces y modelo de datos comunes y centralizados



Junio 2011                           SOA y Web Services                 175
3. Implementación de la
   Interoperabilidad
       Bottom-up
            Generar un SEI y el documento WSDL a partir de una clase de
             implementación
            Ventajas: Fácil de implementar y generar
            Desventajas: Podrían utilizarse objetos complejos no serializables
       ●Top-down
            Generar un SEI a partir de un WSDL existente
            Implementar el servicio a partir de esta interfaz
            Ventajas: Se asegura desde la definición que el servicio va a ser
             totalmente interoperable
            Inconvenientes: Más costoso de implementar




Junio 2011                           SOA y Web Services                           176
3. Implementación de la
   Interoperabilidad
       ¿Qué pasa con los estándares?
            HTTP                                   W3C
            XML                                    ISO
            SOAP                                   ECMA
            WSDL                                   OASIS
            …                                      …
       Estandarizar los estándares
            WS-I.org (no confundir con WSI)
            Web Services Interoperability Organization
            Promoción de interoperabilidad desde el SW libre


Junio 2011                      SOA y Web Services              177
3. Implementación de la
   Interoperabilidad
       WS-I
       Integrador de estándares
       Guía, recomienda buenas prácticas y proporciona recursos
        para el desarrollo
       Pero no desarrolla estándares
       Para
                Lograr la interoperabilidad de WS
                Lograr que se adopte el modelo de WS
                Acelerar el despliegue de WS



Junio 2011                         SOA y Web Services         178
3. Implementación de la
   Interoperabilidad
       Perfiles WS-I (Profiles)
            Basic 1.0
                SOAP + WSDL + XSD + UDDI
            Basic 1.1
                Basic 1.0 + Attachments
            SwA (SOAP with Attachments)
                Basado en MIME
                No Microsoft
            MTOM (Message Transmission Optimization
             Mechanism)
                MIME + codificación Base64



Junio 2011                         SOA y Web Services   179
3. Implementación de la
   Interoperabilidad
       Se debe:
            Usar HTTP para SOAP
            Usar HTTP 500 para faltas SOAP
            Usar método POST
            Usar WSDL 1.1
            Usar RPC/literal o document/literal
       No se debe:
            Extender/restringir <soapenc:ArrayType>
            Usar RPC/encoding
            Usar operaciones de tipo notificación
            Usar <wsdl:import> para otra cosa que no sea WSDL


Junio 2011                          SOA y Web Services           180
3. Implementación de la
   Interoperabilidad
       Arrays
            Existe el tipo <soapenc:ArrayType>
            No existen tipos Collection, NO LOS USES
                List, Map, Set, Dictionary, DataSet,…
            Ejemplo:

      <xsd:element name="MiArray" type="tns:TipoArray"/>
          <xsd:complexType name="TipoArray">
               <xsd:sequence>
                   <xsd:element name="item" type="xsd:string"
                        minOccurs="0" maxOccurs="unbounded"/>
               </xsd:sequence>
          </xsd:complexType>
      </xsd:element>




Junio 2011                            SOA y Web Services        181
3. Implementación de la
   Interoperabilidad
       Tips
            Se puede validar un WSDL contra WS-I
            Se puede generar cumpliendo con un perfil WS-I
            Se recomienda el enfoque Top-Down (primero el WSDL)
            Se recomienda usar siempre document/literal
            Se recomienda usar clases tipo JavaBean
            Se recomienda realizar pruebas sistemáticas
            Los mensajes SOAP grandes ralentizan la comunicación
            Los ficheros SOAP complejos también
            Máximo 100KB y 10 niveles de anidación en el SOAP



Junio 2011                        SOA y Web Services                182
Contenidos
      I.     Fundamentos
      II.    Arquitectura SOA
      III.   XML Web Services
      IV.    Implementando XML Web Services
      V.     RESTful Web Services
      VI.    Interoperabilidad
      VII.   Arquitectura ESB


Junio 2011                SOA y Web Services   183
VII. Arquitectura ESB

1.      Origen y Motivación
2.      Integración de Aplicaciones
3.      Modelo ESB




Junio 2011              SOA y Web Services   184
1. Origen y Motivación
Usuarios




                   Imagenes
              unificadas de datos




Sistemas
existentes
                Network        Colaboración     Contenido    Utilitarios   Heredados   Paquetes




 Junio 2011                             SOA y Web Services                                  185
1. Origen y Motivación
Usuarios




                                                                                 Procesos de negocio
                                                                                    traducidos en
                                                                                      tecnología




Sistemas
existentes
              Network   Colaboración     Contenido         Utilitarios           Heredados          Paquetes

                                             *Extraído de “ESB: Enterprise Services Bus ” de Jorge Humberto Arias



 Junio 2011                      SOA y Web Services                                                         186
1. Origen y Motivación
       En una empresa se deben integrar datos, procesos de
        negocio, soluciones,…
       Sin caer en un caos que nos lleve al fracaso
            Tener distintas clases Cliente según sistema o Base de Datos…
       Interesa
            Poder dirigir la integración por procesos de negocio
            Localizando las funcionalidades base del proceso
            Pudiendo acceder de modo síncrono y asíncrono
            Que soporte y conviva con la “historia”
            SOA + EDA



Junio 2011                           SOA y Web Services                      187
1. Origen y Motivación
    EDA
       ArquitecturaDirigida por Eventos
       Propuesta para la integración de sistemas heredados
       Automatizar la generación de mensajes y el envío de los
        mismos por medio de eventos




Junio 2011                   SOA y Web Services                   188
1. Origen y Motivación
       Hay muchas formas de integrar aplicaciones nuevas
       ¿Y las antiguas?
       Sistemas heredados/legados (legacy)
       Sistemas grandes difíciles de tratar pero vitales para el
        negocio
       Sistemas menos competitivos que otros más modernos
        pero con prohibitivo coste de reemplazo
       Antiguos, monolíticos y difíciles de modificar




Junio 2011                    SOA y Web Services                    189
VII. Arquitectura ESB

1.      Origen y Motivación
2.      Integración de Aplicaciones
3.      Modelo ESB




Junio 2011              SOA y Web Services   190
2. Integración de Aplicaciones
       Intrusiva
            Modificar el código
                                                               Interfaz de Usuario
       No intrusiva
            Añadir una capa de abstracción
             que utilice la aplicación de          Servicio
             manera transparente
                                                              Lógica de aplicación




                                                                      Datos



Junio 2011                          SOA y Web Services                               191
2. Integración de Aplicaciones
    Estrategias
            MBS (Message Bus Architecture)
                 Se tiene un bus por el que fluyen mensajes entre las aplicaciones
                 Cada aplicación está conectada al bus mediante un adaptador específico
            Switch de Protocolos
                 Un motor genérico se encarga de utilizar los distintos tipos de protocolo en
                  cada caso
                 SOAP, CORBA, MOM, Remoting,…
            Gateway
                 Un programa “pasarela” comunica las aplicaciones
                 Se encarga de las transformaciones necesarias




Junio 2011                                SOA y Web Services                                192
VII. Arquitectura ESB

1.      Origen y Motivación
2.      Integración de Aplicaciones
3.      Modelo ESB




Junio 2011              SOA y Web Services   193
3. Modelo ESB
    Sistem Atención al                                     Sistema de
          cliente           CORBA                          facturación

                                         JMS
         RMI                                        SOAP
                                                                 Servicios de negocio



                    Enterprise Service Bus (ESB)

                                                                         Conectores
                                                                         técnicos




Junio 2011                     SOA y Web Services                                194
3. Modelo ESB
                                                                             Estándares
                                                                                WSP

                        Infraestructura de servicios no-funcionales                         Prácticas
                           ( Transacciones, seguridad, BPM, etc.)                               para
                                                                                             el diseño
                                                                                           de servicios
                                                                                                 o
                                                                                            adaptación
                                    Bus de Servicios
                        Infraestructura/Framework de webservices



                  Servicio/Adaptador        Servicio/Adaptador        Servicio/Adaptador

       Clientes




  Fuente:
  Burton Group      Plataforma de              Plataforma de            Plataforma de
                      negocio A                  negocio B                Negocio C



Junio 2011                                 SOA y Web Services                                             195
3. Modelo ESB
       Un buen ESB debe
            Soportar multiprotocolo (SOAP, CORBA, MOM, B2B,…)
            Soportar WSP (Web Services Platform)
                Motor SOAP
                Framework para crear WebServices
                Frameworks adicionales (WS-Eventing, WS-Transaction, WS-Security,
                 WS-BPEL,…)
            Implementar adaptadores de integración
                Para sistemas legados, CRMs, ERPs,…
            Permitir orquestar procesos de negocio
            Permitir transacciones y transformaciones



Junio 2011                           SOA y Web Services                          196
3. Modelo ESB
       Algunos ESB
            Libres
                Mule (http://mule.codehaus.org/)
                WSO2 (http://wso2.com/products/enterprise-service-bus/)
                Apache ServiceMix (http://servicemix.apache.org/home.html)
            Comerciales
                Fiorano (http://www.fiorano.com)
                BizTalk (http://www.microsoft.com/biztalk/)
                JBoss (http://www.jboss.org/jbossesb)
                IBM WebSphere (http://www-01.ibm.com/software/integration/wsesb/)
                Oracle (http://www.oracle.com/technologies/soa/service-bus.html)




Junio 2011                           SOA y Web Services                          197
Muchas Gracias

             Óliver Centeno Álvarez

Junio 2011       SOA y Web Services   198

Contenu connexe

Tendances

Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareturlahackers
 
Patrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersPatrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersNacho Bongiovanni
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasAlex Uhu Colli
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenariosUCATEBA
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patronesGustavo De la Cruz Tovar
 
Modelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webModelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webMaritzaD
 
Fases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareFases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareEugenio Del Pozo Dipre
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascadahome
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Shelisse De la Cruz
 

Tendances (20)

Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Metodologia Diseño Web
Metodologia Diseño WebMetodologia Diseño Web
Metodologia Diseño Web
 
MVC
MVCMVC
MVC
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
 
10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
Patrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersPatrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & Filters
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenarios
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patrones
 
Modelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webModelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones web
 
Fases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareFases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de software
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de Software
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
 

En vedette

SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Servicesedmodi
 
Introducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosIntroducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosMarta Silvia Tabares
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOArdiegoc
 
SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)dina_k_d
 
Ejemplo soa
Ejemplo soaEjemplo soa
Ejemplo soabrccq
 
Conceptos y Protocolos de Enrutamiento (Capitulo 3)
Conceptos y Protocolos de Enrutamiento (Capitulo 3)Conceptos y Protocolos de Enrutamiento (Capitulo 3)
Conceptos y Protocolos de Enrutamiento (Capitulo 3)Cristiān Villegās
 
1.1 Introducción a redes - Sistemas 2016
1.1 Introducción a redes  - Sistemas 20161.1 Introducción a redes  - Sistemas 2016
1.1 Introducción a redes - Sistemas 2016David Narváez
 
Conceptos y Protocolos de Enrutamiento (Capitulo 2)
Conceptos y Protocolos de Enrutamiento (Capitulo 2)Conceptos y Protocolos de Enrutamiento (Capitulo 2)
Conceptos y Protocolos de Enrutamiento (Capitulo 2)Cristiān Villegās
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesJaime Contreras
 
4.1 Acceso a la red 2016
4.1 Acceso a la red   20164.1 Acceso a la red   2016
4.1 Acceso a la red 2016David Narváez
 
CCNA EXP MOD_IV_CHAPTER_1_EB
CCNA EXP MOD_IV_CHAPTER_1_EBCCNA EXP MOD_IV_CHAPTER_1_EB
CCNA EXP MOD_IV_CHAPTER_1_EBEdgar Benavente
 
Sistemas Distribuidos Arquitectura XML SOA Middleware Web Services
Sistemas Distribuidos Arquitectura XML SOA Middleware Web ServicesSistemas Distribuidos Arquitectura XML SOA Middleware Web Services
Sistemas Distribuidos Arquitectura XML SOA Middleware Web ServicesJulio Pari
 
ITIL para héroes
ITIL para héroes ITIL para héroes
ITIL para héroes aktivfinger
 
WSO2 API Manager - Accessing SOAP Service
WSO2 API Manager -  Accessing SOAP ServiceWSO2 API Manager -  Accessing SOAP Service
WSO2 API Manager - Accessing SOAP ServiceEmmerson Miranda
 

En vedette (20)

SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Services
 
Arquitectura Orientada a Servicios (SOA)
Arquitectura Orientada  a Servicios (SOA)Arquitectura Orientada  a Servicios (SOA)
Arquitectura Orientada a Servicios (SOA)
 
Introducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosIntroducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a Servicios
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOA
 
SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)SOA (arquitectura orientada a servicios)
SOA (arquitectura orientada a servicios)
 
Ejemplo soa
Ejemplo soaEjemplo soa
Ejemplo soa
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
Conceptos y Protocolos de Enrutamiento (Capitulo 3)
Conceptos y Protocolos de Enrutamiento (Capitulo 3)Conceptos y Protocolos de Enrutamiento (Capitulo 3)
Conceptos y Protocolos de Enrutamiento (Capitulo 3)
 
1.1 Introducción a redes - Sistemas 2016
1.1 Introducción a redes  - Sistemas 20161.1 Introducción a redes  - Sistemas 2016
1.1 Introducción a redes - Sistemas 2016
 
Conceptos y Protocolos de Enrutamiento (Capitulo 2)
Conceptos y Protocolos de Enrutamiento (Capitulo 2)Conceptos y Protocolos de Enrutamiento (Capitulo 2)
Conceptos y Protocolos de Enrutamiento (Capitulo 2)
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de Telecomunicaciones
 
4.1 Acceso a la red 2016
4.1 Acceso a la red   20164.1 Acceso a la red   2016
4.1 Acceso a la red 2016
 
Ccna1, cap 2
Ccna1, cap 2Ccna1, cap 2
Ccna1, cap 2
 
CCNA EXP MOD_IV_CHAPTER_1_EB
CCNA EXP MOD_IV_CHAPTER_1_EBCCNA EXP MOD_IV_CHAPTER_1_EB
CCNA EXP MOD_IV_CHAPTER_1_EB
 
Acceso a la WAN (Capitulo 2)
Acceso a la WAN (Capitulo 2)Acceso a la WAN (Capitulo 2)
Acceso a la WAN (Capitulo 2)
 
Fundamento de Redes - Capitulo 3
Fundamento de Redes - Capitulo 3Fundamento de Redes - Capitulo 3
Fundamento de Redes - Capitulo 3
 
5.1 Ethernet 2016
5.1 Ethernet   20165.1 Ethernet   2016
5.1 Ethernet 2016
 
Sistemas Distribuidos Arquitectura XML SOA Middleware Web Services
Sistemas Distribuidos Arquitectura XML SOA Middleware Web ServicesSistemas Distribuidos Arquitectura XML SOA Middleware Web Services
Sistemas Distribuidos Arquitectura XML SOA Middleware Web Services
 
ITIL para héroes
ITIL para héroes ITIL para héroes
ITIL para héroes
 
WSO2 API Manager - Accessing SOAP Service
WSO2 API Manager -  Accessing SOAP ServiceWSO2 API Manager -  Accessing SOAP Service
WSO2 API Manager - Accessing SOAP Service
 

Similaire à SOA y Web Services: Fundamentos y Arquitectura

Similaire à SOA y Web Services: Fundamentos y Arquitectura (20)

Trabajo
TrabajoTrabajo
Trabajo
 
Bases dedatossql serveryc
Bases dedatossql serverycBases dedatossql serveryc
Bases dedatossql serveryc
 
bases de-datos_sql_server_con_c_
bases de-datos_sql_server_con_c_bases de-datos_sql_server_con_c_
bases de-datos_sql_server_con_c_
 
Arquitectura de integración de servicios
Arquitectura de integración de serviciosArquitectura de integración de servicios
Arquitectura de integración de servicios
 
23444719 monografia-de-web-services
23444719 monografia-de-web-services23444719 monografia-de-web-services
23444719 monografia-de-web-services
 
Bpel y Open Esb
Bpel y Open EsbBpel y Open Esb
Bpel y Open Esb
 
Reutilizacion de componentes en sistemas
Reutilizacion de componentes en sistemas Reutilizacion de componentes en sistemas
Reutilizacion de componentes en sistemas
 
Resumido
ResumidoResumido
Resumido
 
Disenio de aplicaciones en capas
Disenio de aplicaciones en capasDisenio de aplicaciones en capas
Disenio de aplicaciones en capas
 
SOA
SOASOA
SOA
 
Web services
Web servicesWeb services
Web services
 
Manual webservices
Manual webservicesManual webservices
Manual webservices
 
Soa
SoaSoa
Soa
 
Benchmarking
BenchmarkingBenchmarking
Benchmarking
 
Presentacion
PresentacionPresentacion
Presentacion
 
Material de apoyo
Material de apoyoMaterial de apoyo
Material de apoyo
 
Material teorico
Material teoricoMaterial teorico
Material teorico
 
diapositiva Visual basic.net
diapositiva Visual basic.netdiapositiva Visual basic.net
diapositiva Visual basic.net
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
Proveedores nativos
Proveedores nativosProveedores nativos
Proveedores nativos
 

Plus de Oliver Centeno (20)

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
Métrica v3 y RUP
Métrica v3 y RUPMétrica v3 y RUP
Métrica v3 y RUP
 
ATL
ATLATL
ATL
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Web services y java
Web services y javaWeb services y java
Web services y java
 
Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 5
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Java en Tiempo Real
Java en Tiempo RealJava en Tiempo Real
Java en Tiempo Real
 
Sun Java System Web Server 6.1
Sun Java System Web Server 6.1Sun Java System Web Server 6.1
Sun Java System Web Server 6.1
 
My SQL
My SQLMy SQL
My SQL
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
Microsoft Test Manager 2010
Microsoft Test Manager 2010Microsoft Test Manager 2010
Microsoft Test Manager 2010
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
 
Liferay
LiferayLiferay
Liferay
 
Joomla!
Joomla!Joomla!
Joomla!
 
TFS 10
TFS 10TFS 10
TFS 10
 
Azure
AzureAzure
Azure
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
 

Dernier

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 

Dernier (20)

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 

SOA y Web Services: Fundamentos y Arquitectura

  • 1. SOA y Web Services Óliver Centeno Álvarez Junio 2011 Junio 2011 SOA y Web Services 1
  • 2. Objetivos  Conocer la arquitectura SOA, su función, ventajas y diseño  Mostrar los lenguajes y protocolos implicados en la arquitectura SOA  Mostrar una panorámica de las distintas aproximaciones tecnológicas a SOA  Demostrar la creación y consumo de Web Services existentes mediante las tecnologías más extendidas Junio 2011 SOA y Web Services 2
  • 3. Requisitos  Conocimientos previos:  Experiencia en desarrollo con Java  Conocimientos de Arquitecturas o Ingeniería de Software  Requisitos técnicos:  VirtualPC2007  Al menos 1GB de memoria RAM (recomendado 2GB) Junio 2011 SOA y Web Services 3
  • 4. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 4
  • 5. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 5
  • 6. I. Fundamentos 1. Motivación 2. Arquitecturas de Software 3. Necesidad del Contrato 4. Modelado de Componentes 5. Retos Junio 2011 SOA y Web Services 6
  • 7. 1. Motivación  Intercambio de información  Procesamiento  Sinintervención del usuario  Acelerando tiempos de respuesta  Normalización  Entre plataformas  Entre lenguajes  Entre sistemas operativos Junio 2011 SOA y Web Services 7
  • 8. 1. Motivación  Buenas prácticas  Reutilización  Modularidad y encapsulamiento  Nuevos retos  Portabilidad  Interoperabilidad  Computación distribuida  Internet Junio 2011 SOA y Web Services 8
  • 9. I. Fundamentos 1. Motivación 2. Arquitecturas de Software 3. Necesidad del Contrato 4. Modelado de Componentes 5. Retos Junio 2011 SOA y Web Services 9
  • 10. 2. Arquitecturas de Software  Formas de organizar las partes que componen un sistema software  A nivel físico (cliente, servidor, consumidor,…)  A nivel lógico (capas, módulos, subsistemas,…)  Permiten separar las partes que componen un sistema complejo de manera adecuada  Aumenta la modularidad y la reutilización  Aumenta el entendimiento del sistema  Mejora el mantenimiento  Mejora la validación y verificación Junio 2011 SOA y Web Services 10
  • 11. 2. Arquitecturas de Software  Evolución histórica Junio 2011 SOA y Web Services 11
  • 12. 2. Arquitecturas de Software  MVC  Modelo  Vista  Controlador  Utilizado en aplicaciones gráficas y Web Junio 2011 SOA y Web Services 12
  • 13. 2. Arquitecturas de Software  DAO y 3+1 capas  Separa el acceso a datos Presentación (DAO) de los datos (Modelo) M Negocio o  Permite utilizar el modelo en d todas las capas e  Permite reemplazar DAO sin Persistencia l o afectar al resto DAO BD Junio 2011 SOA y Web Services 13
  • 14. I. Fundamentos 1. Motivación 2. Arquitecturas de Software 3. Necesidad del Contrato 4. Modelado de Componentes 5. Retos Junio 2011 SOA y Web Services 14
  • 15. 3. Necesidad del Contrato  Las arquitecturas de software permiten estructurar un sistema  Pero, ¿cómo se ensamblan las partes?  Principio de desarrollo  Maximizar la cohesión  Minimizar el acoplamiento  En otras palabras  Que cada parte sea autosuficiente  Y que dependa lo mínimo de las demás partes Junio 2011 SOA y Web Services 15
  • 16. 3. Necesidad del Contrato  Las arquitecturas no garantizan esto  Necesitamos conceptualizar más cada parte  Cuestiones:  El puerto USB sirve para muchas cosas pero…  ¿Cómo funciona un puerto USB?  ¿Cómo funciona un dispositivo USB?  ¿Por qué funciona un dispositivo USB? Junio 2011 SOA y Web Services 16
  • 17. 3. Necesidad del Contrato  Contrato (Especificación):  Acuerdo entre las partes para cumplir una serie de especificaciones enumeradas  Requisitos…  ¿Programación?  Interfaz:  Conjunto de métodos especificados que debe proporcionar una clase de implementación  Importa el QUÉ y no el CÓMO  NO ES HERENCIA MÚLTIPLE Junio 2011 SOA y Web Services 17
  • 18. 3. Necesidad del Contrato  Programación Bajo Contrato  Definir siempre las interfaces de especificación de cada subsistema (interfaz proporcionada)  Implementar cada módulo utilizando las interfaces proporcionadas de los subsistemas asociados (interfaz requerida)  Se apoya en el polimorfismo: utilizar objetos que son a la vez de distintos tipos  Permite construir partes dependientes de otras sin que estas estén terminadas Junio 2011 SOA y Web Services 18
  • 19. 3. Necesidad del Contrato  Ejemplo: Interfaz public interface Tabla{ public void conectar(); public void desconectar(); public boolean insertar(); }  Importa poder conectar y desconectar  Importa poder insertar  No importa qué base de datos  No importa qué tabla ni qué columnas Junio 2011 SOA y Web Services 19
  • 20. 3. Necesidad del Contrato  Ejemplo: Lógica public class GestorBD{ private Tabla tabla; public GestorDB(Tabla t){ tabla = t; } public boolean añadir(){ tabla.conectar(); boolean resultado = tabla.insertar(); tabla.desconectar(); return resultado; } } Junio 2011 SOA y Web Services 20
  • 21. 3. Necesidad del Contrato  Ejemplo: Implementación public class TablaOracle implements Tabla{ public void conectar(){ … } public void desconectar() { … } public boolean insertar() { … } } public class Programa{ public static void main(String[] args){ Tabla t = new TablaOracle(); GestorDB g = new GestorDB(t); g.añadir(); } } Junio 2011 SOA y Web Services 21
  • 22. I. Fundamentos 1. Motivación 2. Arquitecturas de Software 3. Necesidad del Contrato 4. Modelado de Componentes 5. Retos Junio 2011 SOA y Web Services 22
  • 23. 4. Modelado de Componentes  Interfaz:  Colección de operaciones que especifican un servicio proporcionado (implementado) o solicitado (utilizado) por una clase o componente.  Componente:  Parte lógica y reemplazable del sistema.  Conforma y proporciona la realización de un conjunto de interfaces.  Cumple los principios de modularidad y encapsulamiento.  Son bloques de construcción, “ladrillos”. Junio 2011 SOA y Web Services 23
  • 24. 4. Modelado de Componentes  Diagrama de Componentes  Ilustran las piezas del software, controladores embebidos, etc. que conformarán un sistema.  Con un nivel de abstracción más alto que un diagrama de clase.  Eventualmente un componente puede comprender una gran porción de un sistema.  Se descompone el sistema en base a interfaces que representan las líneas de separación entre subsistemas. Junio 2011 SOA y Web Services 24
  • 25. 4. Modelado de Componentes  Representación UML Componentes Componente componente Interfaz requerida Interfaz proporcionada Junio 2011 SOA y Web Services 25
  • 26. 4. Modelado de Componentes  Ejemplo  Buscador de citas por Internet  Un Controlador requiere una interfaz Servicio para invocar a buscaAfines() y buscaIdeal()  Esta interfaz la implementa ServicioParejas que, a su vez requiere poder trabajar contra una Base de Datos PersonaDaoOracle Controlador ServicioParejas s : Servicio dao : DAO insertar() buscar() buscarAfines() actualizar() buscarIdeal() eliminar() buscar() DAO listar() Servicio insertar() actualizar() buscarAfines() eliminar() buscarIdeal() buscar() listar() Junio 2011 SOA y Web Services 26
  • 27. 4. Modelado de Componentes  Principios del desarrollo basado en componentes  Encapsulación e Interfaces:  Si un módulo cambia internamente sin modificar su interfaz, dicho cambio no provocará cambios en otras partes del sistema  Abstracción:  Un usuario del componente no necesita saber como esta implementado el modulo para comprender la funcionalidad ofertada  Arquitectura del sistema  Cómo se organizan los componentes  Conectividad entre componentes  Centra y prioriza las decisiones del desarrollo Junio 2011 SOA y Web Services 27
  • 28. 4.Modelado de Componentes Veamos un Ejemplo Junio 2011 SOA y Web Services 28
  • 29. I. Fundamentos 1. Motivación 2. Arquitecturas de Software 3. Necesidad del Contrato 4. Modelado de Componentes 5. Retos Junio 2011 SOA y Web Services 29
  • 30. 5. Retos  Computación Distribuida  Poder realizar un conjunto de operaciones de cálculo de manera cooperativa entre varias máquinas  Las máquinas se conectan mediante una red  El resultado se compone a partir de los resultados parciales Junio 2011 SOA y Web Services 30
  • 31. 5. Retos  Interoperabilidad  Poder comunicar máquinas distintas y software distinto para realizar computación distribuida  Poder invocar aplicaciones creadas para una plataforma desde otra totalmente distinta Junio 2011 SOA y Web Services 31
  • 32. 5. Retos  Integración  De datos, de aplicaciones, de componentes, de negocio (EAI)  Síncrona o asíncrona  Mediante sockets, RPC, RMI, colas, DCOM, ETL, …  ¿Sistemas heredados? Junio 2011 SOA y Web Services 32
  • 33. 5. Retos  Computación en Internet  Poder llevar los conceptos de computación distribuida a Internet  Aplicando medidas de seguridad pertinentes  Atravesando cortafuegos  Utilizando estándares de facto Junio 2011 SOA y Web Services 33
  • 34. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 34
  • 35. II. Arquitectura SOA 1. Tecnologías de Integración 2. Problemas 3. ¿Qué es SOA? 4. Servicios, Web Services y SOA 5. Ejemplos de Aplicación Junio 2011 SOA y Web Services 35
  • 36. 1. Tecnologías de Integración  Existen muchas propuestas para integrar aplicaciones distribuidas  Objetivo:  Comunicar máquinas remotas  Ejecutar tareas de manera cooperativa  Integrar sistemas heterogéneos  Integrar aplicaciones “legadas”  Distinciones:  Caso de Aplicaciones compatibles (homogéneas)  Caso de Aplicaciones incompatibles (heterogéneas) Junio 2011 SOA y Web Services 36
  • 37. 1. Tecnologías de Integración  DCOM  Distributed Component Object Model  Tecnología de Microsoft para programación con objetos distribuidos  Problema: Sólo disponible para Windows lo que limita la interoperabilidad  Java RMI  Remote Method Invocation  Distribución de objetos “Java-to-Java”  Problema: No es independiente del lenguaje ya que exige utilizar Java Junio 2011 SOA y Web Services 37
  • 38. 1. Tecnologías de Integración  CORBA  Common Object Request Broker Architecture by OMG  Estándar para comunicar objetos distribuidos independiente del lenguaje utilizado  Problema: hay problemas de interoperabilidad porque no garantiza que los participantes implementen la especificación completa  RMI sobre IIOP  Java RMI que utilizar IIOP de CORBA para la comunicación  Utilizado para acceder a EJBs (Enterprise JavaBeans)  Problema: Depende de CORBA para la comunicación y de Java para la implementación Junio 2011 SOA y Web Services 38
  • 39. II. Arquitectura SOA 1. Tecnologías de Integración 2. Problemas 3. ¿Qué es SOA? 4. Servicios, Web Services y SOA 5. Ejemplos de Aplicación Junio 2011 SOA y Web Services 39
  • 40. 2. Problemas  Rendimiento y escalabilidad  Gestión  Cumplir la falta de acoplamiento  Transaccionalidad, seguridad, estado  Conversión de protocolos  Versionado  Firewalls y otros elementos de seguridad  Ancho de banda  Evaluación de la causa raíz de los problemas  Coste de desarrollo, integración y pruebas Junio 2011 SOA y Web Services 40
  • 41. II. Arquitectura SOA 1. Tecnologías de Integración 2. Problemas 3. ¿Qué es SOA? 4. Servicios, Web Services y SOA 5. Ejemplos de Aplicación Junio 2011 SOA y Web Services 41
  • 42. 3. ¿Qué es SOA?  Arquitectura Orientada a Servicios  N-capas  Importa el servicio ofrecido Cliente Seguridad Gestión Cliente Servidor Cliente Validación Junio 2011 SOA y Web Services 42
  • 43. 3. ¿Qué es SOA?  Arquitectura que utiliza servicios como bloques de construcción para facilitar la integración y reutilización de componentes empresariales a través de un bajo acoplamiento  ¿Cómo?  Utilizar servicios para implementar las capas  Los servicios NO SON LIBRERÍAS pero se parecen  Tienen funcionalidad pero esperan a ser invocados  No importa el lenguaje de programación ni el entorno, sólo que cumplan con su cometido Junio 2011 SOA y Web Services 43
  • 44. 3. ¿Qué es SOA?  Ventajas  Aprovecha los estándares abiertos para representar los servicios  Permite ver los servicios como bloques de construcción que pueden ser reutilizados en el desarrollo de otros aplicaciones  Permite centrarse en ensamblar bloques en vez de en los detalles de implementación  Se puede utilizar internamente para crear nuevas aplicaciones a partir de componentes existentes  Puede utilizarse externamente al integrarse con las aplicaciones fuera de la empresa Junio 2011 SOA y Web Services 44
  • 45. 3. ¿Qué es SOA?  Terminología utilizada en SOA  Servicio  Funcionalidad publicada  Orquestación y coreografía  Coordinación de servicios para implementar una lógica determinada  En la orquestación hay un director, en la coreografía no  Sin estado  Los servicios no dependen unos de otros y se pueden orquestar de distintas maneras  Proveedor  Consumidor Junio 2011 SOA y Web Services 45
  • 46. 3. ¿Qué es SOA?  Exige un cambio de mentalidad  Los servicios NO SON LIBRERÍAS  NO SIRVEN PARA TODO  NO SON RÁPIDOS  ESTÁN PENSADOS PARA SISTEMAS HOMOGÉNEOS  Servicios poco acoplados pero altamente interoperables  Basados en una definición independiente de plataforma  Alta reusabilidad  Poco sensible a cambios  Permite modelos de  Consumo de terceros  Colaboración  Integración de tecnologías Junio 2011 SOA y Web Services 46
  • 47. 3. ¿Qué es SOA?  Ciclo de Vida de SOA  Modelado  Capturar, analizar, simular y optimizar modelos  Reducir el riesgo y aumentar la flexibilidad  Ensamblado  De componentes nuevos y antiguos  Para ejecutar y gestionar procesos de negocio  Despliegue  Gestión  Análisis de la información de negocio derivada  Para tomar acciones coordinadas y “a tiempo” Junio 2011 SOA y Web Services 47
  • 48. 3. ¿Qué es SOA?  Capas SOA  Aplicaciones básicas (SD)  Sistemas geográficamente dispersos  Exposición de funcionalidad (WS)  Como Web Service para su consumo  Integración de servicios (ESB)  Facilitando el intercambio de datos empresariales  Composición de procesos (BPM)  Modelando un proceso en términos del negocio y sus necesidades  Entrega  Desplegando los servicios para el usuario final Junio 2011 SOA y Web Services 48
  • 49. II. Arquitectura SOA 1. Tecnologías de Integración 2. Problemas 3. ¿Qué es SOA? 4. Servicios, Web Services y SOA 5. Ejemplos de Aplicación Junio 2011 SOA y Web Services 49
  • 50. 4. Servicios, Web Services y SOA  Servicio  Funcionalidad empaquetada como un componente reutilizable en procesos de negocio  Expuesto mediante una interfaz bien definida  Que aparece como una función autocontenida  Que utiliza mensajes para ocultar la implementación  Por tanto no importa cómo se ha desarrollado  Que no depende del estado de otros servicios  Que proporciona información o realiza modificaciones en los datos de negocio Junio 2011 SOA y Web Services 50
  • 51. 4. Servicios, Web Services y SOA  XML Web Service  Servicio identificado por una URI  Definido, descrito y descubierto mediante XML  Que utiliza XML como soporte de sus mensajes  Cuyos protocolos de mensajes están basados en Internet  Que no almacena estado  RESTful WebService  Servicio identificado por una URI  Cuyos protocolos de mensajes están basados en Internet  Que no almacena estado Junio 2011 SOA y Web Services 51
  • 52. 4. Servicios, Web Services y SOA  SOA es una arquitectura basada en servicios  Se centra en la disposición de los servicios al crear aplicaciones  Los Web Services son un caso particular de servicio  Pueden utilizarse para crear una SOA  Pero no tiene estado  Cada petición debe ser autocontenida  No podemos valernos de la información del servidor  No podemos utilizar variables de sesión  No debemos utilizar cookies Junio 2011 SOA y Web Services 52
  • 53. II. Arquitectura SOA 1. Tecnologías de Integración 2. Problemas 3. ¿Qué es SOA? 4. Servicios, Web Services y SOA 5. Ejemplos de Aplicación Junio 2011 SOA y Web Services 53
  • 54. 5. Ejemplos de Aplicación  Transporte  Ofertar precios realistas se hace difícil cuando los envíos viajan a través de múltiples operadores  Banca  Necesidad de proporcionar servicios bancarios a múltiples clientes  Necesidad de integrar un gran número de aplicaciones internas  Gobierno  Necesita compartir y acceder a datos a través de distintas agencias  Internet  Necesidad de realizar búsquedas rápidas de distintos contenidos Junio 2011 SOA y Web Services 54
  • 55. 5. Ejemplos de Aplicación  Interoperabilidad entre sistemas heterogéneos  Interacciones B2B  La encapsulación de los sistemas heredados  Aislamiento de la evolución de los sistemas  Empresa normalización de los servicios  Integración de paquetes de terceros  Coordinación de procesos  Desarrollo de portales Junio 2011 SOA y Web Services 55
  • 56. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 56
  • 57. III.XML Web Services 1. Definiciones 2. El protocolo SOAP 3. Documentos WSDL 4. Registros UDDI Junio 2011 SOA y Web Services 57
  • 58. 1. Definiciones  ¿Qué es un Servicio Web?  Según Wikipedia: “… es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.”  De otra forma: “A través de una interfaz estándar … permite el funcionamiento de una serie de sistemas heterogéneos como un conjunto integrado.”  Simplificando: “Cada uno de los componentes de un sistema diseñado para soportar interoperabilidad entre máquinas sobre Internet.” Junio 2011 SOA y Web Services 58
  • 59. 1. Definiciones  ¿Qué es un Servicio Web XML?  Según Microsoft: “… es una entidad programable que proporciona un elemento de funcionalidad determinado, como lógica de aplicación … (accesible) mediante estándares de Internet … como XML y HTTP.”  Según Sun: “… es un componente software con las siguientes características: 1) Es accesible a través del interfaz SOAP, 2) Su interfaz se describe en un documento WSDL.” Junio 2011 SOA y Web Services 59
  • 60. 1. Definiciones  Simplificando más:  Interfazaccesible a través de Internet  Alojada en un Servidor Web  Que permite invocación remota de procesos  Autocontenido, Autodescrito, Modular e Independiente de Plataforma  Estándares (XML, SOAP, HTTP)  Modelo de Proxy Junio 2011 SOA y Web Services 60
  • 61. 1. Definiciones  Fundamentos:  Intercambio de información  Normalización  Entre plataformas  Entre lenguajes  Entre sistemas operativos  Escenarios:  Simple  Publicación de información  Integración de Aplicaciones  Permite realizar tareas remotas  Soluciones de Flujo de Trabajo (Workflow)  Integrados con BizTalk, Sun ONE, ServiceMix,… Junio 2011 SOA y Web Services 61
  • 62. 1. Definiciones  Modelo de Proxy:  Componentes ubicados en servidores diferentes que deben comunicarse de manera transparente.  Un Proxy “se hace pasar por el objeto remoto”  El objeto cliente usa el Proxy como si no hubiera una red Objeto Objeto Cliente referencia remota Remoto Proxy Referencia Remota RED TCP Junio 2011 SOA y Web Services 62
  • 63. 1. Definiciones  Infraestructura Junio 2011 SOA y Web Services 63
  • 64. 1. Definiciones  Estándares:  XML  XSD  HTTP  SOAP  WSDL  UDDI Junio 2011 SOA y Web Services 64
  • 65. III.XML Web Services 1. Definiciones 2. El protocolo SOAP 3. Documentos WSDL 4. Registros UDDI Junio 2011 SOA y Web Services 65
  • 66. 2. El protocolo SOAP  Simple Object Access Protocol  Invocación remota basada en XML  Mensaje estructurado en XML con posibilidad de implementar múltiples formatos, seguridad etc.  Microsoft (1.0), IBM (1.1), Sun  Contiene llamadas y respuestas de procedimientos  Trata de sustituir a formatos propietario Junio 2011 SOA y Web Services 66
  • 67. 2. El protocolo SOAP  SOAP Message  Un mensaje SOAP es un elemento Envelope con una cabecera opcional y un cuerpo obligatorio <soap:Envelope> <soap:Header> ... </soap:Header> <soap:Body> <metodo> <x xsi:type="xsd:int">5</x> <y xsi:type="xsd:float">5.0</y> </metodo> </soap:Body> </soap:Envelope> Junio 2011 SOA y Web Services 67
  • 68. 2. El protocolo SOAP  SOAP Message  Mensaje de Respuesta <soap:Envelope> <soap:Header> ... </soap:Header> <soap:Body> <metodoResponse> <metodoReturn> El producto es 25.0 </metodoReturn> </ metodoResponse> </soap:Body> </soap:Envelope> Junio 2011 SOA y Web Services 68
  • 69. 2. El protocolo SOAP  Permite separar meta-información del mensaje  Información de enrutado  Información de expiración  …  Define  Un modelo de proceso  Un mecanismo para manejar errores  Un mecanismo para representar datos  Un convenio para RPC  Un marco para vincular protocolos Junio 2011 SOA y Web Services 69
  • 70. 2. El protocolo SOAP  Ventajas:  XML plano --> ubicuidad de componentes  Comunicación HTTP --> no cortafuegos  IPSec o SSL proporcionan seguridad  Escalable a conjuntos de servidores Junio 2011 SOA y Web Services 70
  • 71. 2. El protocolo SOAP  Motores SOAP  Framework que se utiliza en servidores y clientes para facilitar  La serialización de objetos a SOAP  La deserialización de mensajes SOAP a objetos  La validación de la estructura de los mensajes  SOAPpy  Implementado en Python y Axis Junio 2011 SOA y Web Services 71
  • 72. 2. El protocolo SOAP  Motores SOAP Junio 2011 SOA y Web Services 72
  • 73. 2. El protocolo SOAP  Mensajes de error  SOAP Fault XML <Fault>  <faultcode> ID del error  <faultstring> Descripción breve  <detail> Detalles del error Junio 2011 SOA y Web Services 73
  • 74. III.XML Web Services 1. Definiciones 2. El protocolo SOAP 3. Documentos WSDL 4. Registros UDDI Junio 2011 SOA y Web Services 74
  • 75. 3. Documentos WSDL  Web Services Description Language  Lenguaje de descripción del Servicio Web  Describir interfaces de Servicios Web  Independiente de la implementación  Métodos disponibles, parámetros y retorno  Mapeado a SOAP de manera unívoca Junio 2011 SOA y Web Services 75
  • 76. 3. Documentos WSDL  Web Services Description Language  Define una o varias operaciones  Incluyendo los mensajes que reciben  Y los mensajes que devuelven  Descritasde forma abstracta  Concretadas en el endpoint  Protocolo  Formato de mensaje  Dirección de Red Junio 2011 SOA y Web Services 76
  • 77. 3. Documentos WSDL <definitions>  Web Services Description Language <types/>  types: Declaraciones de tipos de dato <message/> habitualmente en XSD <part/>  message: Definición abstracta de mensajes y sus </message> tipos de dato (part) <portType>  portType: Operaciones soportadas por el servicio <operation/> y los mensajes que se les envía y/o recibe </portType> (operation) <binding/>  binding: Formato de mensaje y protocolo que se <service> debe utilizar para invocar las operaciones <port/>  service: Colección de endpoints cada uno </service> representado por un puerto en una dirección de red y con un nombre de binding </definitions> Junio 2011 SOA y Web Services 77
  • 78. 3. Documentos WSDL Veamos unos documentos WSDL Junio 2011 SOA y Web Services 78
  • 79. III.XML Web Services 1. Definiciones 2. El protocolo SOAP 3. Documentos WSDL 4. Registros UDDI Junio 2011 SOA y Web Services 79
  • 80. 4. Registros UDDI  Universal Description, Discovery & Integration  Catálogo de negocios de Internet  Páginas amarillas  Páginas blancas  Páginas verdes  Accedido por mensajes SOAP para obtener documentos WSDL Junio 2011 SOA y Web Services 80
  • 81. 4. Registros UDDI  Universal Description, Discovery & Integration  Mecanismo de descubrimiento de Servicios Web disponibles  Publicación de Servicios Web  Descubrimiento de Servicios Junio 2011 SOA y Web Services 81
  • 82. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 82
  • 83. IV. Implementando XML Web Services 1. Tecnologías J2EE para WS 2. Apache AXIS 3. Creación de WS en Java 4. Creación de WS en .Net 5. Publicación de Web Services 6. Consumo de Web Services Junio 2011 SOA y Web Services 83
  • 84. 1. Tecnologías J2EE para WS  El API SAAJ  SOAP with Attachments API for Java  Se emplea para escribir mesajes SOAP directamente en lugar de utilizar un generador  Permite escribir y leer mensajes SOAP  Algunas implementaciones permiten enviar y recibir mensajes SOAP  Paquete: javax.xml.soap Junio 2011 SOA y Web Services 84
  • 85. 1. Tecnologías J2EE para WS  El API SAAJ sin archivos vinculados  SOAPMessage <Message>  SOAPPart <Part>  SOAPEnvelope <Envelope>  SOAPHeader <Header>  SOAPBody <Body>  Se generan con el SOAPMessage Junio 2011 SOA y Web Services 85
  • 86. 1. Tecnologías J2EE para WS  El API SAAJ sin archivos vinculados Junio 2011 SOA y Web Services 86
  • 87. 1. Tecnologías J2EE para WS  El API SAAJ con archivos vinculados  AttachmentPart  Hay que crearlos a mano  Debe contener una cabecera MIME  Tipo de contenido  Opcionalmente tendrá contenido Junio 2011 SOA y Web Services 87
  • 88. 1. Tecnologías J2EE para WS  El API SAAJ con archivos vinculados Junio 2011 SOA y Web Services 88
  • 89. 1. Tecnologías J2EE para WS  El API SAAJ. Conexión SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); SOAPConnection conexion = factory.createConnection(); //Crear un mensaje SOAP de request java.net.URL endpoint = new URL("http: //..."); SOAPMessage respuesta = conexion.call (request, endpoint); Junio 2011 SOA y Web Services 89
  • 90. 1. Tecnologías J2EE para WS  El API SAAJ. Acceder al contenido SOAPBody cuerpo = respuesta.getSOAPBody(); //Lectura del cuerpo for(SOAPBodyElement elemento : cuerpo. getChildElements(Name)){ String valor = elemento.getValue(); } //Modificación del cuerpo SOAPBodyElement docElement = cuerpo. addDocument(documento); Junio 2011 SOA y Web Services 90
  • 91. 1. Tecnologías J2EE para WS  El API SAAJ. Attachments //Crear y añadir AttachmentPart adjuntos = message. createAttachmentPart(); adjuntos.setContent("texto", "text/plain"); adjuntos.setContentId("id"); message.addAttachmentPart(adjuntos); //acceder a contenidos for(AttachmentPart att : message.getAttachments()){ String id = att.getContentId(); String type = att.getContentType(); Object content = att.getContent(); } Junio 2011 SOA y Web Services 91
  • 92. 1. Tecnologías J2EE para WS  El API JAX-RPC  Java API for XML-Based RPC  Permite construir aplicaciones y Servicios Web con funcionalidades RPC basadas en XML  Cumple la especificación SOAP 1.1  JAX-RPC 2.0 ha sido renombrado a JAX-WS 2.0 https://jax-rpc.dev.java.net/ Junio 2011 SOA y Web Services 92
  • 93. 1. Tecnologías J2EE para WS  El API JAX-RPC Junio 2011 SOA y Web Services 93
  • 94. 1. Tecnologías J2EE para WS  El API JAX-WS  Tecnología Java para construir clientes y Servicios Web basados en XML  Orientados a mensajes  Orientados a RPC  Oculta la complejidad de SOAP  Se crea un objeto Proxy que invoca a los métodos del Servicio  Se requiere la anotación javax.jws.WebService para que la clase se comporte como WS  Se habla de endpoint del WS Junio 2011 SOA y Web Services 94
  • 95. 1. Tecnologías J2EE para WS  JAX-WS Endpoint  Un endpoint requiere:  javax.jws.WebService/WebServiceProvider  @WebService  No admite métodos finales ni estáticos  javax.jws.WebMethod  Parámetros compatibles con JAXB  Clase no abstracta ni final  Con un constructor público por defecto  Sin destructor (finalize) Junio 2011 SOA y Web Services 95
  • 96. 1. Tecnologías J2EE para WS  El API JAX-WS Junio 2011 SOA y Web Services 96
  • 97. 1. Tecnologías J2EE para WS  JAX-WS Endpoint import javax.jws.WebService; @WebService() public class Hello { private String message = new String(“Hola, "); public Hello() {} @WebMethod() public String sayHello(String name) { return message + name + "."; } } Junio 2011 SOA y Web Services 97
  • 98. 1. Tecnologías J2EE para WS  JAX-WS Client  Un cliente requiere:  javax.xml.ws.WebServiceRef  @WebServiceRef(wsdlLocation="http://...")  Un campo estático que referencie el servicio static HelloService service;  Un proxy al servicio con el que trabajar Hello port = service.getHelloPort();  Utilizar el proxy para invocar métodos String response = port.sayHello(name); Junio 2011 SOA y Web Services 98
  • 99. 1. Tecnologías J2EE para WS  JAX-WS Client import javax.jws.WebServiceRef; public class HelloClient { @WebServiceRef(wsdlLocation = "http://localhost: 8080/helloservice/hello?wsdl") static HelloService servicio; public static void main(String[] args) { Hello puerto = servicio.getHelloPort(); String respuesta = puerto.sayHello(args[0]); System.out.println(respuesta); } } Junio 2011 SOA y Web Services 99
  • 100. 1. Tecnologías J2EE para WS  JAXR (Java API for XML Registries)  Permite acceder a registros de negocio basados en UDDI y otros (ebXML)  https://jaxr.dev.java.net/  Proyecto privado  Requiere hacerse miembro para consultarlo  Se incluye en el proyecto GlassFish com.sun.connector.jaxr javax.xml.registry Junio 2011 SOA y Web Services 100
  • 101. IV. Implementando XML Web Services 1. Tecnologías J2EE para WS 2. Apache AXIS 3. Creación de WS en Java 4. Creación de WS en .Net 5. Publicación de Web Services 6. Consumo de Web Services Junio 2011 SOA y Web Services 101
  • 102. 2. Apache AXIS  Librerías que permiten ejecutar Servicios Web  Servlet para desplegar y replegar servicios  Libreria WSDL.jar general el WSDL de Servicios  Parámetros de entrada/salida y métodos a invocar  http://ws.apache.org/axis/ org.apache.axis.client Junio 2011 SOA y Web Services 102
  • 103. 2. Apache AXIS  Cliente y Servidor SOAP open source  Implementa el API JAX-RPC  2006 v1.4 Final  Axis2 implementa JAX-WS  Se utiliza con el servidor Tomcat  Posible desplegarlo en otros  WebLogic  GlassFish Junio 2011 SOA y Web Services 103
  • 104. 2. Apache AXIS  Desplegar un Servicio manualmente  Copiar el .class del Servicio en la carpeta classes dentro de Axis  Copiar el .java del Servicio con extensión .jws en la raíz del Axis desplegado  Para que se genere el WSDL Junio 2011 SOA y Web Services 104
  • 105. 2. Apache AXIS  Desplegar un Servicio por línea de comandos  Fichero .wsdd describe el Servicio  XML específico de AXIS  Desde el directorio ejecutar java -cp %AXISCLASSPATH% org.apache.axis.client. AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd Junio 2011 SOA y Web Services 105
  • 106. 2. Apache AXIS  WSDL2Java  Aplicación Java que genera clases a partir de un documento WSDL  Para cada <port> genera una clase Proxy  Para cada <portType> una interfaz (SEI)  Para cada <binding> un stub que implementa el SEI  Para cada <service> una interfaz de servicio y su implementación para localizar el proxy java org.apache.axis.wsdl.WSDL2Java “fichero-WSDL” Junio 2011 SOA y Web Services 106
  • 107. 2. Apache AXIS  Java2WSDL  Aplicación Java que genera clases a partir de un documento WSDL  java org.apache.axis.wsdl.Java2WSDL -o “fichero-WSDL” -l“url del servicio” -n <espacio de nombres> -p “package” “namespace” “fichero-CLASS” Junio 2011 SOA y Web Services 107
  • 108. 2. Apache AXIS  Consumir un Servicio con AXIS import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; public class TestClient{ public static void main(String [] args) { String endpoint = "http://nagoya.apache.org:5049/axis/services/echo"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("http://soapinterop.org/", "echoString") ); String ret = (String) call.invoke( new Object[] { "Hello!" } ); System.out.println("Sent 'Hello!', got '" + ret + "'"); } } Junio 2011 SOA y Web Services 108
  • 109. IV. Implementando XML Web Services 1. Tecnologías J2EE para WS 2. Apache AXIS 3. Creación de WS en Java 4. Creación de WS en .Net 5. Publicación de Web Services 6. Consumo de Web Services Junio 2011 SOA y Web Services 109
  • 110. 3. Creación de WS en Java  En Eclipse desde un JavaBean Junio 2011 SOA y Web Services 110
  • 111. 3. Creación de WS en Java Junio 2011 SOA y Web Services 111
  • 112. 3. Creación de WS en Java Junio 2011 SOA y Web Services 112
  • 113. 3. Creación de WS en Java  Contenido generado:  Librerías jar  Servlet en web.xml  Fichero wsdl  Ficheros wsdd de AXIS Junio 2011 SOA y Web Services 113
  • 114. 3. Creación de WS en Java  Probando el Web Service  Botón derecho en el WSDL  Web Services > Test with Web Services Explorer  Permite configurar múltiples endpoints  Incluye una ventana de estado que muestra los mensajes SOAP  Permite probar el WSDL sin necesidad de nada más Junio 2011 SOA y Web Services 114
  • 115. 3. Creación de WS en Java Junio 2011 SOA y Web Services 115
  • 116. 3. Creación de WS en Java  En JDeveloper desde un JavaBean Junio 2011 SOA y Web Services 116
  • 117. 3. Creación de WS en Java Junio 2011 SOA y Web Services 117
  • 118. IV. Implementando XML Web Services 1. Tecnologías J2EE para WS 2. Apache AXIS 3. Creación de WS en Java 4. Creación de WS en .Net 5. Publicación de Web Services 6. Consumo de Web Services Junio 2011 SOA y Web Services 118
  • 119. 4. Creación de WS en .Net Junio 2011 SOA y Web Services 119
  • 120. 4. Creación de WS en .Net  Tipo especial de clase  Extensión ASMX (Visual Studio 2005)  WCF Web Service (Visual Studio 2010)  Los métodos a publicar se marcan con el atributo WebMethod  VB <WebMethod()> _ Public Function TraerDatos() As String[] End Function  C# [WebMethod] public String[] TraerDatos(){ } Junio 2011 SOA y Web Services 120
  • 121. 4. Creación de WS en .Net  Fichero .asmx indica que es un servicio Web <%@ WebService Language = "C#" CodeBehind = "~/App_Code/Service.cs" Class = "Service" %>  Código en /App_Code/Service.cs public class Service : System.Web.Services. WebService{ public Service () { } [WebMethod] public string HelloWorld() { return "Hola a todos"; } } Junio 2011 SOA y Web Services 121
  • 122. 4. Creación de WS en .Net  [WebService(Namespace = "http://...")]  Indica el espacio de nombres del servicio  Distinto del namespace de C#  Describe el servicio para el descubridor UDDI WebService(Namespace=“...”, Description=“…”)]  [WebMethod(Description = "…")]  Delantede la declaración de los métodos  Parámetros como siempre Junio 2011 SOA y Web Services 122
  • 123. IV. Implementando XML Web Services 1. Tecnologías J2EE para WS 2. Apache AXIS 3. Creación de WS en Java 4. Creación de WS en .Net 5. Publicación de Web Services 6. Consumo de Web Services Junio 2011 SOA y Web Services 123
  • 124. 5. Publicación de Web Services  En JDeveloper Junio 2011 SOA y Web Services 124
  • 125. 5. Publicación de Web Services  Creado desde Visual Studio, sólo es necesario publicarlo como un sitio Web  Usando las herramientas de publicación de VS2005  http  ftp  Front Page Server Extensions  ¡Copiar y pegar! Junio 2011 SOA y Web Services 125
  • 126. 5. Publicación de Web Services  Manualmente: 1. Alojar el servicio en un servidor local (IIS)  Publicando el servicio en una carpeta 2. Activar el servidor Web  Indicando el directorio local con el servicio  Añadirlo a IIS (*) 3. Añadir una referencia Web al proyecto 4. Consumir Junio 2011 SOA y Web Services 126
  • 127. 5. Publicación de Web Services Junio 2011 SOA y Web Services 127
  • 128. 5. Publicación de Web Services Junio 2011 SOA y Web Services 128
  • 129. 5. Publicación de Web Services Junio 2011 SOA y Web Services 129
  • 130. IV. Implementando XML Web Services 1. Tecnologías J2EE para WS 2. Apache AXIS 3. Creación de WS en Java 4. Creación de WS en .Net 5. Publicación de Web Services 6. Consumo de Web Services Junio 2011 SOA y Web Services 130
  • 131. 6. Consumo de Web Services  En JDeveloper Junio 2011 SOA y Web Services 131
  • 132. 6. Consumo de Web Services Junio 2011 SOA y Web Services 132
  • 133. 6. Consumo de Web Services Junio 2011 SOA y Web Services 133
  • 134. 6. Consumo de Web Services Junio 2011 SOA y Web Services 134
  • 135. 6. Consumo de Web Services Junio 2011 SOA y Web Services 135
  • 136. 6. Consumo de Web Services  En .Net  Crearun proyecto  Botón derecho > “Agregar Referencia Web”…  Buscándolo por UDDI  Utilizando el vínculo al WSDL  Llamando al Servicio Web con ?wsdl  Explorando los Servicios de la Solución  Explorando los Servicios de la máquina local Junio 2011 SOA y Web Services 136
  • 137. 6. Consumo de Web Services Junio 2011 SOA y Web Services 137
  • 138. 6. Consumo de Web Services Junio 2011 SOA y Web Services 138
  • 139. 6. Consumo de Web Services localhost.Externos objeto; Junio 2011 SOA y Web Services 139
  • 140. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 140
  • 141. V. RESTful Web Services 1. Introducción a los Servicios REST 2. Comparativa con SOAP 3. Implementación de Servicios REST Junio 2011 SOA y Web Services 141
  • 142. V. RESTful Web Services 1. Introducción a los Servicios REST 2. Comparativa con SOAP 3. Implementación de Servicios REST Junio 2011 SOA y Web Services 142
  • 143. 1. Introducción a los Servicios REST  REpresentational State Transfer  Tesis de Roy T. Fielding (2000)  Coautorde los estándares HTTP y URI  Cofundador de Apache  Se han empezado a utilizar porque  Los Servicios XML son complicados  Requieren mucha infraestructura lógica  Al final vamos a utilizar HTTP  Simplificar el modelo Junio 2011 SOA y Web Services 143
  • 144. 1. Introducción a los Servicios REST  Principios de REST  No tienen estado  Tienen una interfaz uniforme  No hay WSDL pero se usan los verbos HTTP  POST, GET, PUT, DELETE,…  Se basa en la representación de recursos  URI + Secuencia de bytes + tipo MIME (txt, xml, json, jpeg,…)  http://localhost/clientes  http://localhost/clientes/1234  http://localhost/pedidos/567/cliente  Los mensajes están autodescritos  HATEOS (Hypermedia As The Engine Of application State) Junio 2011 SOA y Web Services 144
  • 145. 1. Introducción a los Servicios REST  HATEOS  Cada respuesta del servidor debe contener todas las URI que permitan llevar a un siguiente paso  Todas las posibles transiciones de estado que pueda realizar el usuario desde el estado actual se representan mediante URI  Si no lo cumple no es un servicio RESTful  No es necesario almacenar el estado en variables de sesión ni en cookies  Se identifican los recursos mediante la URI Junio 2011 SOA y Web Services 145
  • 146. 1. Introducción a los Servicios REST  Otros principios de REST  No depender de un único protocolo de comunicación  Describir dentro del servicio los tipos MIME que representan los recursos  No utilizar nombre fijos para los recursos  Definir las normas para crear URIs válidas en base a los tipos MIME y el estado actual  Utilizar un punto de entrada fijo pero que todas las transiciones las guíe el cliente Junio 2011 SOA y Web Services 146
  • 147. V. RESTful Web Services 1. Introducción a los Servicios REST 2. Comparativa con SOAP 3. Implementación de Servicios REST Junio 2011 SOA y Web Services 147
  • 148. 2. Comparativa con SOAP  SOAP está más extendido  Tiene múltiples extensiones  WS-Extensions, WS-I,…  Pensadas para la integración de aplicaciones empresariales  Existen multitud de plataformas de generación de código  JAX-RPC, JAX-WS, AXIS, …  Existen entornos ESB que utilizan interfaces WSDL para la integración de aplicaciones  Apache ODE, Mule, MQ,…  El formato document/literal es similar a REST  Envío de un documento XML encapsulado en SOAP Junio 2011 SOA y Web Services 148
  • 149. 2. Comparativa con SOAP  La red es una de las aplicaciones más exitosas del planeta  HTTP es suficientemente general y claro para crear aplicaciones robustas y escalables  Los desarrolladores tienden a la complejidad  Un problema complejo no implica que la solución también lo sea  SOAP es muy complejo y REST muy simple  “WS-Estrella de la muerte” Vs “RESTafaris”  Razonamiento de Occam  Alternativas SOA  Comprar un ESB estándar y adaptarte a él  Comprar el mejor ESB y aprender a manejarlo  Hacértelo tú mismo  ¿cómo?, SOAP, REST, formato propio Junio 2011 SOA y Web Services 149
  • 150. 2. Comparativa con SOAP  Tabla comparativa Principio SOA Servicios XML Servicios REST Interpoerabilidad Excelente Buena Bajo acoplamiento Excelente Excelente Reutilización Excelente Buena Fácil descubrimiento Excelente Pobre Simplicidad Pobre Excelente Mantenibilidad Buena Buena Extensibilidad Excelente Pobre Rendimiento Bueno Excelente Escalibilidad Buena Pobre Junio 2011 SOA y Web Services 150
  • 151. V. RESTful Web Services 1. Introducción a los Servicios REST 2. Comparativa con SOAP 3. Implementación de Servicios REST Junio 2011 SOA y Web Services 151
  • 152. 3. Implementación de Servicios REST  Los Servicios REST se basan en los verbos de HTTP  POST, GET, PUT, DELETE  Y en los tipos MIME de datos enviados  text/plain, text/xml, image/jpeg,…  En general se puede decir que REST utiliza actividades CRUD  Create, Read, Update, Delete  Cada operación del servicio va a estar disponible dado un verbo HTTP y uno o varios tipos de contenido MIME Junio 2011 SOA y Web Services 152
  • 153. 3. Implementación de Servicios REST  Mediante JAX-RS  Basado en el JSR 311  Define anotaciones para mapear servicios RESTful  @GET, @POST, @PUT,…  Implementaciones  RESTeasy de JBoss  RESTpack de Mule  Jersey de Sun  NetBeans 6 incluye una implementación de Jersey IDE con ejemplos preconfigurados Junio 2011 SOA y Web Services 153
  • 154. 3. Implementación de Servicios REST  Mediante Jersey  Requiere las librerías  Jersey-server  Jersey-core  Asm  1º Crear un Servlet mapeado a "/*" <servlet> <servlet-name>RecursoREST</servlet-name> <servlet-class> com.sun.jersey.spi.container.servlet.ServletContainer </servlet-class> </servlet> <servlet-mapping> <servlet-name>RecursoREST</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> Junio 2011 SOA y Web Services 154
  • 155. 3. Implementación de Servicios REST  Mediante Jersey  2º Crear una clase de implementación anotada a un path @Path("/raiz") public class Servicio{ }  3º Anotar los métodos de recursos  Con un verbo HTTP y un tipo de contenido MIME a consumir y/o producir  Se puede ampliar el path siempre bajo el raíz  Se localiza en /raiz/saludo @GET @ProduceMime("text/xml") @Path("/saludo") public String hola(){ } Junio 2011 SOA y Web Services 155
  • 156. 3. Implementación de Servicios REST  Parámetros de entrada  Parámetros del Path  Indicar la parte del path que hace de parámetro entre llaves  @Path("/raiz/{var}")  Admite expresiones regulares (Ej. Número de 3 dígitos)  @Path("/raiz/{var: d{3}}")  Anotar el parámetro con  @PathParam("var") int x  Parámetros de la QueryString (?var1=valor&var2=valor&…)  Anotar el parámetro con  @QueryParam("var") @DefaultValue("7") int y  Parámetros de formulario  Anotar el método con  @Consumes("application/x-www-form-urlencoded")  Anotar el parámetro con  @FormParam("parametro") String z Junio 2011 SOA y Web Services 156
  • 157. 3. Implementación de Servicios REST  Parámetros de retorno  Tipos sencillos (nativos + fechas + String)  @Produces(“text/plain”)  Tipos XML y JSON  Devolver el contenido como String pero con el tipo MIME adecuado  Tipos Response  return Response.ok(contenido, tipoMIME).build();  Tipos Object  1º Anotar el objeto con anotaciones JAXB @XmlRootElement(name=“persona”) public class Persona{ @XmlElement(name=“id”) int id; @XmlElement(name=“nombre”) String nombre; }  2º Devolver el objeto con tipo MIME “application/xml” Junio 2011 SOA y Web Services 157
  • 158. 3. Implementación de Servicios REST  Clientes REST con Jersey  Requiere las librerías  Jersey-client  Jersey-core  1º Crear un objeto cliente ClientConfig cfg = new DefaultClientConfig(); Client cliente = Client.create(cfg);  2º Obtener el recurso Web apuntando a la URL base URI url = URI.create(“http://localhost:8080/raiz”); WebResource recurso = cliente.resource(url); Junio 2011 SOA y Web Services 158
  • 159. 3. Implementación de Servicios REST  Clientes REST con Jersey  3º Consumir el recurso  Añadir paths opcionales a la URL recurso.path("subrecurso");  Indicar el tipo MIME a recoger/enviar recurso.accept(MediaType.TEXT_XML); recurso.accept(MediaType.TEXT_XML);  Invocar al verbo HTTP con el tipo de retorno esperado String respuesta = recurso.get(String.class);  Los verbos POST y PUT requiere datos a enviar ClientResponse r = recurso.put(ClientResponse. class, datos); Junio 2011 SOA y Web Services 159
  • 160. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 160
  • 161. VI. Interoperabilidad 1. Concepto de Interoperabilidad 2. XML Schemas 3. Implementación de la Interoperabilidad Junio 2011 SOA y Web Services 161
  • 162. 1. Concepto de Interoperabilidad  La característica fundamental de los Web Services es la interoperabilidad  Pero, ¿Qué es interoperabilidad?  Condición mediante la cual sistemas heterogéneos pueden intercambiar procesos o datos  Una definición más genérica  “Propiedad de los sistemas de producción, cuyas interfaces son perfectamente conocidas, para trabajar con otros sistemas de producción presentes o futuros sin restricciones de acceso o implementación”. Junio 2011 SOA y Web Services 162
  • 163. 1. Concepto de Interoperabilidad  Más sencillo  Integración a distintos niveles tecnológicos  Datos, mensajes, componentes, aplicaciones, servicios, procesos,…  Para  Integrar procesos de negocio incompatibles  Unificar datos usados en distintos sistemas  Unificar tecnologías  Unificar tiempos de ejecución (batch + OLTP)  … Junio 2011 SOA y Web Services 163
  • 164. 1. Concepto de Interoperabilidad  Interoperabilidad sintáctica  Posibilidad de intercambiar datos entre dos sistemas heterogéneos  Transformación de datos: XSLT  Interoperabilidad semántica  Posibilidad de entender y ser capaz de utilizar los datos intercambiados  Definición de datos: XSD Junio 2011 SOA y Web Services 164
  • 165. 1. Concepto de Interoperabilidad  La interoperabilidad exige que los tipos de datos utilizados como parámetros en los Web Services tengan una correspondencia con los tipo XSD  Porque ya existan (tipos nativos)  Porque sean composición de éstos (clases sencillas mapeadas a complexType)  No se admiten tipos complejos  List, Array, Map, DataSet, …  En el mejor de los casos se mapean a array [ ] Junio 2011 SOA y Web Services 165
  • 166. VI. Interoperabilidad 1. Concepto de Interoperabilidad 2. XML Schemas 3. Implementación de la Interoperabilidad Junio 2011 SOA y Web Services 166
  • 167. 2. XML Schemas  En documentos XML a veces es necesario  Especificar una relación entre los elementos del documento  Verificar la corrección de los datos  Verificar la integridad de los datos  Tener un entendimiento compartido  Se comprueba:  Elementos o atributos declarados en el esquema.  Estructura jerárquica de elementos y atributos.  Orden de los elementos.  Valores de atributos y elementos.  Unicidad de valores. Junio 2011 SOA y Web Services 167
  • 168. 2. XML Schemas  XML Schema (XSD)  Fichero de validación XML  Sintaxis XML  Nodos y tipos (primitivos y derivados)  Soporta la extensión del documento  Se puede utilizar para transformar el documento en una jerarquía de objetos  NO mapea los métodos  Utiliza espacios de nombres (namespaces) Junio 2011 SOA y Web Services 168
  • 169. 2. XML Schemas  <xsd:element name=“nombre_nodo” type=“tipo_dato” default=“valor por defecto” fixed=“valor fijo” minOccurs=“cardinalidad mínima” maxOccurs=“cardinalidad máxima”>  <xsd:attribute name=“nombre_atributo” type=“tipo_dato” use=“optional o mandatory” fixed=“valor fijo” >  <xsd:complexType mixed=“true o false”> Junio 2011 SOA y Web Services 169
  • 170. 2. XML Schemas  Tipos Primitivos:  Tipos Derivados:  string  integer (decimal)  boolean  long (integer)  decimal  normalizedString (string)  float  token (normalizedString)  double  Name (token)  dateTime  ID (Name)  date  IDREF (Name)  time  ENTITY (Name)  …  … Junio 2011 SOA y Web Services 170
  • 171. 2. XML Schemas  Mapeo de Objetos Cliente <xsd:element name="Cliente"> +fechaNac:Date +direccion:String <xsd:complexType> <xsd:all> <xsd:element name="fechaNac" type="xsd:date" /> <xsd:element name=“direccion" type="xsd:string" /> </xsd:all> </xsd:complexType> </xsd:element> Junio 2011 SOA y Web Services 171
  • 172. 2. XML Schemas Base +a:int  Mapeo de Herencia -b:int <xsd:complexType name=“Base”> -c:int <xsd:all> +getB():int <xsd:element name="a" type="xsd:int" /> +setB(int) <xsd:element name="b" type="xsd:int" /> </xsd:all> </xsd:complexType> <xsd:complexType name=“Derivada”> <complexContent> <extension base=“Base”> Derivada <xsd:all> +x:int <xsd:element name=“x" type="xsd:int" /> </xsd:all> -y:int </extension> </complexcontent> </xsd:complexType> Junio 2011 SOA y Web Services 172
  • 173. 2. XML Schemas Veamos un ejemplo Junio 2011 SOA y Web Services 173
  • 174. VI. Interoperabilidad 1. Concepto de Interoperabilidad 2. XML Schemas 3. Implementación de la Interoperabilidad Junio 2011 SOA y Web Services 174
  • 175. 3. Implementación de la Interoperabilidad  Estrategias  Rápida y de bajo coste de integración  WSI (WebServices Integration)  Crear un WS para el sistema a integrar  Se crean los tipos necesarios para ese sistema  Poco reutilizable  Sistemática y de inversión a futuro  SOI (Service Oriented Integration)  Diseñar la arquitectura SOA antes de nada  Interfaces y modelo de datos comunes y centralizados Junio 2011 SOA y Web Services 175
  • 176. 3. Implementación de la Interoperabilidad  Bottom-up  Generar un SEI y el documento WSDL a partir de una clase de implementación  Ventajas: Fácil de implementar y generar  Desventajas: Podrían utilizarse objetos complejos no serializables  ●Top-down  Generar un SEI a partir de un WSDL existente  Implementar el servicio a partir de esta interfaz  Ventajas: Se asegura desde la definición que el servicio va a ser totalmente interoperable  Inconvenientes: Más costoso de implementar Junio 2011 SOA y Web Services 176
  • 177. 3. Implementación de la Interoperabilidad  ¿Qué pasa con los estándares?  HTTP  W3C  XML  ISO  SOAP  ECMA  WSDL  OASIS  …  …  Estandarizar los estándares  WS-I.org (no confundir con WSI)  Web Services Interoperability Organization  Promoción de interoperabilidad desde el SW libre Junio 2011 SOA y Web Services 177
  • 178. 3. Implementación de la Interoperabilidad  WS-I  Integrador de estándares  Guía, recomienda buenas prácticas y proporciona recursos para el desarrollo  Pero no desarrolla estándares  Para  Lograr la interoperabilidad de WS  Lograr que se adopte el modelo de WS  Acelerar el despliegue de WS Junio 2011 SOA y Web Services 178
  • 179. 3. Implementación de la Interoperabilidad  Perfiles WS-I (Profiles)  Basic 1.0  SOAP + WSDL + XSD + UDDI  Basic 1.1  Basic 1.0 + Attachments  SwA (SOAP with Attachments)  Basado en MIME  No Microsoft  MTOM (Message Transmission Optimization Mechanism)  MIME + codificación Base64 Junio 2011 SOA y Web Services 179
  • 180. 3. Implementación de la Interoperabilidad  Se debe:  Usar HTTP para SOAP  Usar HTTP 500 para faltas SOAP  Usar método POST  Usar WSDL 1.1  Usar RPC/literal o document/literal  No se debe:  Extender/restringir <soapenc:ArrayType>  Usar RPC/encoding  Usar operaciones de tipo notificación  Usar <wsdl:import> para otra cosa que no sea WSDL Junio 2011 SOA y Web Services 180
  • 181. 3. Implementación de la Interoperabilidad  Arrays  Existe el tipo <soapenc:ArrayType>  No existen tipos Collection, NO LOS USES  List, Map, Set, Dictionary, DataSet,…  Ejemplo: <xsd:element name="MiArray" type="tns:TipoArray"/> <xsd:complexType name="TipoArray"> <xsd:sequence> <xsd:element name="item" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> Junio 2011 SOA y Web Services 181
  • 182. 3. Implementación de la Interoperabilidad  Tips  Se puede validar un WSDL contra WS-I  Se puede generar cumpliendo con un perfil WS-I  Se recomienda el enfoque Top-Down (primero el WSDL)  Se recomienda usar siempre document/literal  Se recomienda usar clases tipo JavaBean  Se recomienda realizar pruebas sistemáticas  Los mensajes SOAP grandes ralentizan la comunicación  Los ficheros SOAP complejos también  Máximo 100KB y 10 niveles de anidación en el SOAP Junio 2011 SOA y Web Services 182
  • 183. Contenidos I. Fundamentos II. Arquitectura SOA III. XML Web Services IV. Implementando XML Web Services V. RESTful Web Services VI. Interoperabilidad VII. Arquitectura ESB Junio 2011 SOA y Web Services 183
  • 184. VII. Arquitectura ESB 1. Origen y Motivación 2. Integración de Aplicaciones 3. Modelo ESB Junio 2011 SOA y Web Services 184
  • 185. 1. Origen y Motivación Usuarios Imagenes unificadas de datos Sistemas existentes Network Colaboración Contenido Utilitarios Heredados Paquetes Junio 2011 SOA y Web Services 185
  • 186. 1. Origen y Motivación Usuarios Procesos de negocio traducidos en tecnología Sistemas existentes Network Colaboración Contenido Utilitarios Heredados Paquetes *Extraído de “ESB: Enterprise Services Bus ” de Jorge Humberto Arias Junio 2011 SOA y Web Services 186
  • 187. 1. Origen y Motivación  En una empresa se deben integrar datos, procesos de negocio, soluciones,…  Sin caer en un caos que nos lleve al fracaso  Tener distintas clases Cliente según sistema o Base de Datos…  Interesa  Poder dirigir la integración por procesos de negocio  Localizando las funcionalidades base del proceso  Pudiendo acceder de modo síncrono y asíncrono  Que soporte y conviva con la “historia”  SOA + EDA Junio 2011 SOA y Web Services 187
  • 188. 1. Origen y Motivación  EDA  ArquitecturaDirigida por Eventos  Propuesta para la integración de sistemas heredados  Automatizar la generación de mensajes y el envío de los mismos por medio de eventos Junio 2011 SOA y Web Services 188
  • 189. 1. Origen y Motivación  Hay muchas formas de integrar aplicaciones nuevas  ¿Y las antiguas?  Sistemas heredados/legados (legacy)  Sistemas grandes difíciles de tratar pero vitales para el negocio  Sistemas menos competitivos que otros más modernos pero con prohibitivo coste de reemplazo  Antiguos, monolíticos y difíciles de modificar Junio 2011 SOA y Web Services 189
  • 190. VII. Arquitectura ESB 1. Origen y Motivación 2. Integración de Aplicaciones 3. Modelo ESB Junio 2011 SOA y Web Services 190
  • 191. 2. Integración de Aplicaciones  Intrusiva  Modificar el código Interfaz de Usuario  No intrusiva  Añadir una capa de abstracción que utilice la aplicación de Servicio manera transparente Lógica de aplicación Datos Junio 2011 SOA y Web Services 191
  • 192. 2. Integración de Aplicaciones  Estrategias  MBS (Message Bus Architecture)  Se tiene un bus por el que fluyen mensajes entre las aplicaciones  Cada aplicación está conectada al bus mediante un adaptador específico  Switch de Protocolos  Un motor genérico se encarga de utilizar los distintos tipos de protocolo en cada caso  SOAP, CORBA, MOM, Remoting,…  Gateway  Un programa “pasarela” comunica las aplicaciones  Se encarga de las transformaciones necesarias Junio 2011 SOA y Web Services 192
  • 193. VII. Arquitectura ESB 1. Origen y Motivación 2. Integración de Aplicaciones 3. Modelo ESB Junio 2011 SOA y Web Services 193
  • 194. 3. Modelo ESB Sistem Atención al Sistema de cliente CORBA facturación JMS RMI SOAP Servicios de negocio Enterprise Service Bus (ESB) Conectores técnicos Junio 2011 SOA y Web Services 194
  • 195. 3. Modelo ESB Estándares WSP Infraestructura de servicios no-funcionales Prácticas ( Transacciones, seguridad, BPM, etc.) para el diseño de servicios o adaptación Bus de Servicios Infraestructura/Framework de webservices Servicio/Adaptador Servicio/Adaptador Servicio/Adaptador Clientes Fuente: Burton Group Plataforma de Plataforma de Plataforma de negocio A negocio B Negocio C Junio 2011 SOA y Web Services 195
  • 196. 3. Modelo ESB  Un buen ESB debe  Soportar multiprotocolo (SOAP, CORBA, MOM, B2B,…)  Soportar WSP (Web Services Platform)  Motor SOAP  Framework para crear WebServices  Frameworks adicionales (WS-Eventing, WS-Transaction, WS-Security, WS-BPEL,…)  Implementar adaptadores de integración  Para sistemas legados, CRMs, ERPs,…  Permitir orquestar procesos de negocio  Permitir transacciones y transformaciones Junio 2011 SOA y Web Services 196
  • 197. 3. Modelo ESB  Algunos ESB  Libres  Mule (http://mule.codehaus.org/)  WSO2 (http://wso2.com/products/enterprise-service-bus/)  Apache ServiceMix (http://servicemix.apache.org/home.html)  Comerciales  Fiorano (http://www.fiorano.com)  BizTalk (http://www.microsoft.com/biztalk/)  JBoss (http://www.jboss.org/jbossesb)  IBM WebSphere (http://www-01.ibm.com/software/integration/wsesb/)  Oracle (http://www.oracle.com/technologies/soa/service-bus.html) Junio 2011 SOA y Web Services 197
  • 198. Muchas Gracias Óliver Centeno Álvarez Junio 2011 SOA y Web Services 198

Notes de l'éditeur

  1. SOA define las siguientes capas de software: Aplicaciones básicas - Sistemas desarrollados bajo cualquier arquitectura o tecnología, geográficamente dispersos y bajo cualquier figura de propiedad; De exposición de funcionalidades - Donde las funcionalidades de la capa aplicativas son expuestas en forma de servicios (servicios web); De integración de servicios - Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboración; De composición de procesos - Que define el proceso en términos del negocio y sus necesidades, y que varía en función del negocio; De entrega - donde los servicios son desplegados a los usuarios finales.
  2. The goal of the JAX-RPC project is to develop and evolve the code base for the Reference Implementation of JAX-RPC, the Java APIs for XML based RPC. The JAX-RPC specification is developed through the Java Community Process following the process described at jcp.org . This process involves an Expert Group with a lead that is responsible for delivering the specifications, reference implementations (RI) and Technology Compatibility kits (TCK). The primary goal of an RI is to support the development of the specification and to validate it. Specific RIs can have additional goals; the JAX-RPC RI is a production-quality implementation that is used directly in a number of products by Sun and other vendors. The JAX-RPC expert group has wide industry participation with Sun Microsystems as the EG lead. The initial specification (JAX-RPC 1.0) was JSR-101 and was released in June 2002. A maintenance release followed in October 2003 providing better integration with JAXB 1.0 as well as better support for doc/literal. The next version of the spec was renamed from JAX-RPC 2.0 to JAX-WS 2.0 and is being developed as JSR-224 ; this release will address a number of additional requirements in the area, and will increase the synergy between the JAXB and JAX-WS specifications. You can access the JAX-WS project page here . An implementation of the JAX-RPC 1.1 specification is included in the latest Java Web Services Developer Pack release, JWSDP 2.0 . However, with the release of Java Web Services Developer Pack 2.0 , you should start planning to move to the new, more modern, and easier-to-implement model of Web services provided in the integrated stack, the combination of JAX-WS 2.0 (which supplants JAX-RPC), JAXB 2.0 , and SAAJ 1.3. Even so, JAX-RPC implementations will continue to be available for a suitable length of time to support backward compatibility and orderly transitions from the Web services architecture in previous versions of Java WSDP and Java WSDP 2.0. If you are new to Web Services, it is strongly recommended that you use JAX-WS 2.0 instead of JAX-RPC. JAX-WS 2.0 comes with many new features not supported by JAX-RPC such as a new Dispatch interface which is much more powerful than the DII approach used by JAX-RPC. A big plus for JAX-WS is that it is included in the Mustang (Java SE 6) version of Java. This means that the size of client applications will be dramatically smaller. JAX-WS 2.0 is also part of the Glassfish project.
  3. JSR101, Java APIs for XML-based RPC (JAX-RPC), provides APIs for invoking RPC-based Web Services over SOAP. It defines how interactions should take place and provides the basis for automated tools to produce stubs and skeletons. It also specifies type mapping and marshalling requirements between Java and SOAP/WSDL. JSR067, Java APIs for XML Messaging (JAXM), defines APIs for creating document-centric SOAP messages that can be exchanged either synchronously or asynchronously. Vendors can provide messaging profiles on top of this that offer value-added services, such as ebXML. JSR093, the Java API for XML Registries (JAXR), defines a two-tier API for accessing registry information stored in XML format. This is targeted at Web Service-related registries, such as UDDI registries and ebXML registry/repositories, as well as other generic XML registries.
  4. Tipos de acceso Invocación mediante stub estático Invocación mediante Proxy dinámico Interfaz de invocación dinámica (DII)
  5. Tipos de acceso Invocación mediante stub estático Invocación mediante Proxy dinámico Interfaz de invocación dinámica (DII)
  6. Tipos de acceso Invocación mediante stub estático Invocación mediante Proxy dinámico Interfaz de invocación dinámica (DII)
  7. Tipos de acceso Invocación mediante stub estático Invocación mediante Proxy dinámico Interfaz de invocación dinámica (DII)
  8. Tipos de acceso Invocación mediante stub estático Invocación mediante Proxy dinámico Interfaz de invocación dinámica (DII)