sesión 4: arquitectura orientada a servicios

40
Especialista Universitario Java Enterprise © 2011-2012 Depto. Ciencia de la Computación e IA Arquitectura de aplicaciones Sesión 4: Arquitectura orientada a servicios

Upload: others

Post on 14-Jul-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sesión 4: Arquitectura orientada a servicios

Especialista Universitario Java Enterprise

© 2011-2012 Depto. Ciencia de la Computación e IA

Arquitectura de aplicaciones

Sesión 4: Arquitectura orientada a servicios

Page 2: 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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

Page 11: 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

SOA: elementos que la componen

SOA

Application frontend Servicio Repositorio

de serviciosBus de

servicios

Contrato Implementación Interfaz

Lógica del negocio Datos

11

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

Capas en aplicaciones orientadas a servicios

20

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

Responsabilidades de gobierno

24

Page 25: 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

Implementación del gobierno

25

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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

Page 29: 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

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

Page 30: 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

Arquitectura JBI

30

Page 31: 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

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

Page 32: 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

Ensamblados de servicios

• La configuración del servicio está desacoplada de su implementación (cuestión clave: interoperabilidad)

32

Page 33: 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

Glassfish ESB

33

Page 34: 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

SHARP:

34

SHARP (Scalability, High Availability, Reliability, and Performance)

LB: Load Balancing

Page 35: 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

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

Page 36: 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

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

Page 37: 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

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

Page 38: 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

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

Page 39: 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

Relación entre BMP y SOA

39

Page 40: Sesión 4: Arquitectura orientada a servicios

Especialista Universitario Java Enterprise

© 2011-2012 Depto. Ciencia de la Computación e IA

¿Preguntas...?