View
9
Download
0
Category
Preview:
Citation preview
Especialista Universitario Java Enterprise
© 2011-2012 Depto. Ciencia de la Computación e IA
Arquitectura de aplicaciones
Sesión 4: Arquitectura orientada a servicios
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Antes y después de SOA
ANTES DE SOA DESPUÉS DE SOA
2
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Puntos a tratar
• Razones para introducir SOA• El concepto de servicio• Definición de SOA• Características de los servicios de una SOA• Capas en aplicaciones orientadas a servicios• El gobierno SOA• SOA y JBI• SOA y Servicios Web• SOA y BPM
3
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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)
4
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Arquitectura del Software de empresa Los 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
5
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
6
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
7
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
8
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
9
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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 • SOA está dirigida a aplicaciones de negocio• SOA es una arquitectura de componentes black-box• Los componentes SOA son débilmente acoplados• Los componentes SOA son orquestados
10
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
SOA: elementos que la componen
SOA
Application frontend Servicio Repositorio
de serviciosBus de
servicios
Contrato Implementación Interfaz
Lógica del negocio Datos
11
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
Application frontend
Applicationlogic
Application frontend
Application interface!#1
ApplicationInterface#2
Application frontend
Application interface!#1
ApplicationInterface#2
12
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
13
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
14
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Búsqueda y binding de servicios en tiempo
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
15
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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)
16
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Características de un bus de servicios
• Conectividad• Interconexión de participantes en una SOA
• Heterogeneidad de tecnología• Interconexión entre participantes con diferentes lenguajes
de programación, SO, y soportes de ejecución• Heterogeneidad de conceptos de comunicación• Conexiones síncronas y asíncronas
• Servicios técnicos• loggins, auditorías, seguridad, transacciones,...
17
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Características de los servicios SOA (I)
• De grano grueso (coarse-grained)• Centrados en el negocio• Reutilizables
cada operación puede reutilizarse por muchos solicitantes del servicio
18
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
lógicasubyacente
lógicasubyacentedébilmente
acoplados
Características de los servicios SOA (II)• Débilmente acoplados• Pueden enlazarse dinámicamente en tiempo real y
comportarse como una aplicación fuertemente acoplada• Creación de nuevas aplicaciones rápidamente• Reemplazo sin reescritura de la aplicación• Beneficio económico derivado del uso de los servicios por
otras organizaciones
Las dependencias se limitan al contrato del servicio
19
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Capas en aplicaciones orientadas a servicios
20
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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.
21
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Capa de procesos 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
22
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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?
23
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Responsabilidades de gobierno
24
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Implementación del gobierno
25
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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 plugins en la
que los servicios pueden ser plugged en el entorno de ejecución de JBI.
26
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
27
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Elementos clave de un entorno JBI
MÁQUINAS DE SERVICIOS
MÁQUINAS DE ENLAZADO
(SE)
(BC)ENRUTADOR DE
MENSAJES (NMR)
ENTORNO DE EJECUCIÓN
28
Implementan la lógica del negocio y otros servicios
Proporcionan enlaces a nivel de transporte para los servicios desplegados
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Aspecto fundamental de JBI
• Desacoplamiento entre SE y BC• 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
29
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Arquitectura JBI
30
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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.
31
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Ensamblados de servicios
• La configuración del servicio está desacoplada de su implementación (cuestión clave: interoperabilidad)
32
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Glassfish ESB
33
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
SHARP:
34
SHARP (Scalability, High Availability, Reliability, and Performance)
LB: Load Balancing
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
35
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
36
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
37
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
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
38
Especialista Universitario Java Enterprise
Arquitectura de aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA SOA
Relación entre BMP y SOA
39
Especialista Universitario Java Enterprise
© 2011-2012 Depto. Ciencia de la Computación e IA
¿Preguntas...?
Recommended