-
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA
Especialista Universitario Java Enterprise
Integración de aplicaciones con SOA
Sesión 2: Arquitecturas orientadas a servicios
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -2
Puntos a tratar• Razones para introducir SOA• El concepto de servicio• Definición de SOA• Capas en aplicaciones orientadas a servicios• El gobierno SOA• SOA y JBI• SOA y Servicios Web• SOA y BPM
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -3
Razones para introducir SOA• El software de empresa está condicionado por
requerimientos cambiantes que pueden entrar en conflicto
SOFTWARE DE EMPRESA
Organización interna
Procesos de la empresa Negocios
externos
Dependencias entre
departamentos
"El software de empresa es un animal diferente" (Dirk Krafzig)
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -4
Arquitectura del Software de empresaLos arquitectos software utilizan la refactorización para luchar con el aumento continuo de la complejidad del sistema
SITUACIÓN DE LAS
APLICACIONES DE EMPRESA
ORDEN
−Mayor agilidad−Mayor eficiencia
DESORDEN
−Agilidad reducida−Eficiencia reducida
Cambios y nuevas fucionalidades
Refactorización
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -5
Carácterísticas deseables del sw de empresa• Simplicidad
• Flexibilidad y mantenibilidad
• Reusabilidad
• Desacoplamiento entre funcionalidad y tecnología
• Objetivo: conseguir una empresa ÁGIL
SOA posee estas características
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -6
SOA y sus beneficios• Los procesos y servicios pueden ser rápidamente
creados, configurados y reorganizados sin necesidad de personal técnico
SOA Agilidad
Reutilización
Proceso de desarrollo
más eficiente Ahorro de costes
Aproximación evolutiva
Mitigación de riesgos
Independencia de la tecnología
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -7
El concepto de "servicio"• Módulo de aplicación autocontenido que es
remotamente accesible
Solicita un trabajo
Entrega el resultado
Realiza el trabajo
Consumidor del servicio
Proveedor del servicio
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -8
Características de un servicio• Oculta detalles técnicos como la búsqueda y
localización del servicio• Proporcionan funcionalidad de negocio• No se diseñan para un cliente específico• Una SOA proporciona acceso "uniforme" a
todos los servicios• Diferencias significativas con objetos:
• Interfaz orientada a datos (en vez de a comportamiento)
• Desacoplamiento de datos y comportamiento• Un servicio provoca un cambio de estado
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -9
SOA: Definición• Una arquitectura orientada a servicios (SOA)
es una arquitectura software basada en los conceptos clave de frontend de aplicaciones, servicio, repositorio de servicios, y bus de servicios
• El concepto de una SOA se centra en la definición de una infraestructura de negocio
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -10
SOA: elementos que la componen
SOA
Application frontend Servicio
Repositorio de servicios
Bus de servicios
Contrato Implementación Interfaz
Lógica del negocio
Datos
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -11
Frontend
• Inician y controlan todas las actividades de los sistemas corporativos
• Los frontends de aplicaciones son similares a las capas de nivel más alto en las arquitecturas multi-capa tradicionales
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -12
Servicios
Servicio
Interfaz A- Operación 1- Operación 2- Operación 3- ...
Interfaz B- Operación 1- Operación 2- ...
Contrato del servicio
Implementación
Lógica del negocio
Datos
Los servicios son el "CORAZÓN" de una arquitectura SOA
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -13
Los servicios deben ser...• Débilmente acoplados• De grano grueso (coarse-grained)• Centrados en el negocio• Reutilizables
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -14
Repositorio de servicios• Proporciona facilidades para encontrar
servicios y adquirir toda la información para utilizar dichos servicios.
• Búsqueda y enlazado (binding) de servicios:• En tiempo de desarrollo• En tiempo de ejecución
• Niveles de búsqueda y enlazado dinámico:• Por nombre• Por propiedades• Basada en reflection
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -15
Búsqueda y binding de servicios en tiempo de desarrollo
Repositorio de servicios
Contrato de de servicio Servicio
Cliente (frontend de aplicación o
servicio
Stub del servicio
Busca en Crea
Desarrollador
Invoca
Enlazado con
UsaBasado en
Describe
Satisface
Contiene
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -16
Bus de servicios
• Proporciona un entorno de ejecución para desplegar los servicios y permitir que se pueda definir la interacción entre dichos servicios (p.ej. orquestación)
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -17
Características de un bus de servicios• Conectividad• Heterogeneidad de tecnología• Heterogeneidad de conceptos de comunicación• Servicios técnicos
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -18
Capas en aplicaciones orientadas a servicios
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -19
Capa de servicios• El mayor reto cuando construimos una
aplicación orientada a servicios es crear una interfaz con el nivel adecuado de abstracción
• Tenemos dos posibilidades a la hora de construir un servicio: • aproximación top-down• aproximación bottom-up.
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -20
Capa de lógica de negocio• El principal beneficio que proporciona SOA es
la estandarización del modelado de procesos de negocio (orquestación de servicios)• BPEL: Estándar de OASIS• BPEL es un lenguaje de programación, pero su
representación es XML
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -21
El gobierno SOA (SOA governance)• Governance: acción o forma de gobernar • Marco de toma de decisiones y responsabilidades
que fomenta un comportamiento deseable en las IT
• Un equipo de gobierno de IT debe tratar tres cuestiones: • ¿Qué decisiones debemos tomar para asegurar una
gestión y uso efectivos de la IT? • ¿Quién debe tomar dichas decisiones? • ¿Cómo se van a tomar dichas decisiones y cómo
pueden monitorizarse?
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -22
Responsabilidades de gobierno
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -23
Implementación del gobierno
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -24
JBI• JBI (Java Business Integration) es un estándar
basado en Java que aborda las cuestiones principales sobre EAI y B2B, y que está basado en los paradigmas y principios que defiende SOA.
• Actualmente JSR 208 (JSR: Java Specification Request)
• JBI define una arquitectura basada en plug-insen la que los servicios pueden ser plugged en el entorno de ejecución de JBI.
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -25
JSR 208: Ventajas• Es en sí misma una arquitectura orientada a
servicios• Las máquinas de servicios podrían
implementarse en cualquier lenguaje siempre y cuando soporten la definición SPI
• Pueden añadirse nuevas máquinas en el contenedor definiendo los mensajes que utilizarán para interactuar con el resto del sistema.
• Interfaces abiertas
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -26
Elementos clave de un entorno JBI
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -27
Modelo de componentes JBI• Componentes de la máquina de servicios (SE:
Service Engine)• responsables de la implementación de la lógica del
negocio y otros servicios
• Componentes de enlazado (BC: Binding components)• se utilizan principalmente para proporcionar enlaces
a nivel de transporte para los servicios desplegados
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -28
Modelo de mensajes JBI• JBI utiliza un modelo de mensajes que
desacopla los consumidores de servicios de los proveedores de servicios.
• El modelo de mensajes se define utilizando WSDL
• Se requiere que los servicios tengan interfaces, formadas por un conjunto de operaciones. Cada operación está formada por uno o más mensajes. Un interfaz puede tener uno o más bindings a nivel de transporte.
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -29
Elementos clave JBI• Una forma flexible y abierta de ensamblar las
máquinas de ejecución y las comunicaciones que consiguen una solución de integración SOA
• “Service Assembly” - Permite definir en un único documento todos los artefactos y servicios que forman una aplicación SOA
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -30
SOA y JBI• SOA
• Aproximación por capas• Elementos integrados y Compartidos: Servicios,
Procesos,...• Basado en estándares: BPEL, JBI, WSDL,...
• JBI (and JBI-based ESB)• Estandariza los componentes de integración
"pluggables"• Estandariza a administración de los servicios
compuestos• Estandariza el intercambio de mensajes• Proporciona un meta-contenedor SOA con bajo
acoplamiento
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -31
SOA y Servicios Web (I)• SOA y Servicios Web NO son sinónimos• SOA es un principio de diseño, mientras que
los servicios Web son una tecnología de implementación
• Una de las principales ventajas de implementar una SOA con servicios Web es que los servicios Web están muy extendidos y constituyen una plataforma sencilla y sobre todo neutral
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -32
SOA y Servicios Web (II)• La combinación de servicios Web y SOA
proporciona una integración rápida• Las aplicaciones pueden intercambiar datos
más fácilmente utilizando un servicio Web definido en la capa de lógica de negocio
• El desarrollo de puntos de entrada orientados a servicios en la capa de lógica de negocio permiten a una máquina de gestión de procesos de negocio llevar a cabo un flujo automático de ejecución a través de los múltiples servicios
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -33
BPM• BMP: Business Process Management• La BMP se encarga de identificar, modelar,
desarrollar, desplegar y gestionar sus procesos de negocio
• Ventajas de las BMP:• Reducen diferencias entre requerimientos del
negocio y de las IT• Incrementan la productividad de los empleados• Incrementan la flexibilidad y agilidad de la empresa• Reduce los costes de desarrollo
-
Especialista Universitario Java Enterprise
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA -34
Relación entre BMP y SOA
-
Integración © 2006-2007 Depto. Ciencia de la Computación e IA SOA
Especialista Universitario Java Enterprise
¿Preguntas...?