Otras Arquitecturas y
metodologías SOA
Pablo García Sánchez
[email protected]
Departamento de Arquitectura y Tecnología de Computadores
Curso Web 2.0 Arquitectura Orientada a Servicios en Java
Escuela de Posgrado
Febrero/Marzo de 2010
¿Qué vamos a aprender?
Otras SOA en Java:
OSGI
ebXML
Metodologías
RosettaNet
BCM
UMM
Proyectos de la vida real
Introducción
SOA no es sólo Web Services, SOAP y BPEL!
Es cualquier sistema software que permita
descubrir e invocar servicios (remotos o
locales)
Pueden basarse en una especificación pública
o no
Web 2-0: Arquitectura Orientada a Servicios en Java
3
OSGi
OSGi (Open Service Gateway Initiative) define
una arquitectura SOA dentro de una máquina
virtual de Java para integración de sistemas
heterogéneos. Además, proporciona
características muy deseables:
Abstracción de paquetes
Gestión del ciclo de vida
Empaquetamiento
Versionado
Web 2-0: Arquitectura Orientada a Servicios en Java
4
OSGi (II)
Bundle: Jar con el fichero MANIFEST
adaptado
Servicio: conecta bundles de manera dinámica
Componente: Clase dentro de un bundle junto
con una descripción en XML interpretada en
tiempo de ejecución->Servicios Declarativos
Web 2-0: Arquitectura Orientada a Servicios en Java
5
OSGi (III)
Web 2-0: Arquitectura Orientada a Servicios en Java
6
OSGi (III)
Ejemplo de MANIFEST.MF
Web 2-0: Arquitectura Orientada a Servicios en Java
7
OSGi (IV)
Ejemplo de
Descriptor
de Servicio
Web 2-0: Arquitectura Orientada a Servicios en Java
8
R-OSGi
Problema de OSGi: imposibilidad de invocar servicios
remotos
–Uso de conectores basados en UPnP y Jini: INVASIVOS
R-OSGi es un midleware para distribuir de forma
transparente servicios en red
Crea proxies que actúan como bundles normales que se
encargan de comunicar con otros bundles distribuidos
Web 2-0: Arquitectura Orientada a Servicios en Java
9
ebXML
Es una arquitectura completa para crear un
mercado electrónico global donde las empresas
puedan:
Encontrarse unas a otras
Realizar negocios mediante el intercambio de
mensajes de negocio basados en XML
Web 2-0: Arquitectura Orientada a Servicios en Java
10
ebXML (II)
SOAP, WSDL, UDDI por sí solos no son
adecuados
WSDL no puede hacer frente a colaboración de
negocio
SOAP (en su forma básica) no proporciona
mensajería segura y confiable
UDDI no proporciona capacidad de repositorio para
objetos de negocio
Web 2-0: Arquitectura Orientada a Servicios en Java
11
WS Vs. B2B
Web Services
Interacción simple
Orientados al consumidor
Procesos “ligeros”
Sin colaboración de
negocio
B2B
Interacción compleja
Orientados al negocio
Procesos “pesados”
Con colaboración de
negocio
Sin perfil de socio
No seguro, no confiable
No soporta no-repudiación
No soporta repositorio
Soporta perfil de socio
Seguro, confiable
Soporta no-repudiación
Registro y Repositorio
Web 2-0: Arquitectura Orientada a Servicios en Java
12
Modulos de la Arquitectura de
ebXML
Business Process Specification
Partner Profile and Agreements (ISO 15000-
1:2004)
Registro y Repositorio (ISO 15000-3:2004 e
ISO 15000-2:2004)
Messaging Service (ISO 15000-4:2004)
Core Components (ISO 15000-5:2005)
¡Pueden ser usados por separado!
Web 2-0: Arquitectura Orientada a Servicios en Java
13
Descripción general de un
sistema ebXML
Web 2-0: Arquitectura Orientada a Servicios en Java
14
Aproximación basada en
Servicios Vs basada en contrato
Web 2-0: Arquitectura Orientada a Servicios en Java
15
Modelado Top-down vs. Bottom-
up
ebXML
Utilizar metodologías para ebXML (como UMM)
implica desarrollo Top-Down (el analista empieza
desde arriba)
Pero se pueden utilizar servicios ya existentes
WS
El desarrollo de WS sigue una filosofía Bottom-Up
(se empieza con servicios pequeños y se agrupan)
Web 2-0: Arquitectura Orientada a Servicios en Java
16
Conclusiones
ebXML y WS tienen sus ventajas e
inconvenientes
ebXML es una solución todo en uno basada en
estándares y lista para B2B, pero con poco soporte
en la industria TI
WS se basa en especificaciones desarrolladas
independientemente, con algunas lagunas, pero
ampliamente aceptada
Web 2-0: Arquitectura Orientada a Servicios en Java
17
Metodologías para SOA
RosettaNet
UMM
SOMA
Web 2-0: Arquitectura Orientada a Servicios en Java
18
RosettaNet
RosettaNet Implementation Framework, RNIF
Framework que define parte de la interacción:
Estructura de mensajes de negocio genérica
Pasos requeridos para transmitir el mensaje entre
socios comerciales
Empaquetamiento y desempaquetamiento
Protocolos de transmisión
Manejo de errores
Validación de ciertas partes del contenido
Web 2-0: Arquitectura Orientada a Servicios en Java
19
RosettaNet (II)
Partner Interface Processes (PIPs):
Son documentos XML que especifican
interacciones entre dos participantes para
alcanzar una meta de negocio, como procesar
una orden de compra o preguntar un precio
Web 2-0: Arquitectura Orientada a Servicios en Java
20
RosettaNet (y III)
Productos software que utilizan RosettaNet:
Oracle Integration B2B: La implementación de
RosettaNet forma parte de este producto, Sin embargo
delega la mayor parte de su funcionalidad en otros
productos de Oracle (p.e. Oracle BPEL Process Manager
u Oracle Business Activity Monitoring).
WebSphere Partner Gateway (IBM)
RosettaNet Accelerator: Microsoft propone un paquete
enfocado a RosettaNet dentro de su servidor BizTalk
WebMethods (Trading Networks)
Web 2-0: Arquitectura Orientada a Servicios en Java
21
Business Centric Methodology
Desarrollada por OASIS
Dividida en tres partes
Capas BCM: Es un modelo de capas que soporta las Plantillas
BCM y otros modelos opcionales para cualificar los aspectos de
la solución en el que cada capa representa una segmentación
definida del problema.
Pirámide de información BCM: Es una representación
semántica de toda la información existente en el proyecto, cuya
clasificación y detalles son desarrollados por los analistas de
negocio.
BCM Operacional: Se asegura de que la tecnología del software
de implementación trate directamente con esos mecanismos
semánticos a través de una arquitectura consistente orientada al
contexto.
Web 2-0: Arquitectura Orientada a Servicios en Java
22
BCM (y II)
33
22
11
Web 2-0: Arquitectura Orientada a Servicios en Java
23
UMM
Desarrollada por la UN/CEFACT
Perspectiva Top-Down
Web 2-0: Arquitectura Orientada a Servicios en Java
24
UMM (II)
Vista de dominio de negocio
Recolectar conocimiento de las partes interesadas
Vista de requisitos de negocio
Describir procesos, entidades, transacciones,
colaboraciones y realizaciones
Vista de transacciones de negocio
Definir la coreografía global de intercambios de
información
Vista de servicios de negocio
Especificar los servicios compuestos, agentes e
intercambio de mensajes expresada en conceptos
Web 2-0: Arquitectura Orientada a Servicios en Java
técnicos de los desarrolladores software
25
UMM (III)
Web 2-0: Arquitectura Orientada a Servicios en Java
26
UMM (IV)
Ejemplo de sub-vista de la vista de requisitos
Web 2-0: Arquitectura Orientada a Servicios en Java
27
SOMA de IBM
Web 2-0: Arquitectura Orientada a Servicios en Java
28
Proyectos de la Vida Real
eIntegr@
GAD
AmIVital
OSGiLiath
Web 2-0: Arquitectura Orientada a Servicios en Java
29
eIntegr@
Colaboración entre la UGR y la empresa
Intecna Soluciones
Single-Sign-On: Liferay, Alfresco
LDAP
CAS
Operaciones:
getTicket(user, password)
validateTicket(ticket)
Web 2-0: Arquitectura Orientada a Servicios en Java
30
eIntegr@ (II)
Alfresco (yeja con los pajaros!)
• ¿Qué es?
• ¿En qué se basa?
– Alfresco
– Operaciones
• ¿Cómo podemos utilizarlo?
• ¿Qué servicios hay que crear?
– Gestión de usuarios
– Gestión de documentos
– Gestión de grupos
– Gestión de categorías
Web 2-0: Arquitectura Orientada a Servicios en Java
31
eIntegr@ (III)
Web 2-0: Arquitectura Orientada a Servicios en Java
32
eIntegr@ (IV)
Interfaz
en Liferay
Web 2-0: Arquitectura Orientada a Servicios en Java
33
GAD
Gestor de activos digitales diseñado para la Junta
de Andalucía por la Fundación I+D del Software
Libre, que permite almacenar,categorizar, agrupar
y publicar vídeo de fuentes heterogéneas
Basado en Python+Django
También usa Alfresco
Toda operación para trabajar con su modelo de
datos sería un servicio web publico (interfaces=1)
BPEL para publicación de usuarios identificados.
Web 2-0: Arquitectura Orientada a Servicios en Java
34
AmIVital
Entorno de desarrollo para la salud y el
bienestar
Colaboran un montón de empresas y OPIs
(Ericsson, Siemens, Telefónica, UGR, UMA...)
Crear una plataforma de desarrollo de servicios
para salud y teleasistencia
Servicios funcionales
Servicios tecnológicos
Web 2-0: Arquitectura Orientada a Servicios en Java
35
AmIVital (II)
Pasarela residencial móvil (UGR-TID-ÍTACA)
Utiliza OSGi y servicios declarativos
Utiliza Axis para desplegar Web Services
Llama a servicios web de otras empresas:
Calendario Virtual
Envío de Monitorización
Alarmas
Gestión de contenidos
Web 2-0: Arquitectura Orientada a Servicios en Java
36
OSGiLiath
Acrónimo un poco friki de “OSGi Laboratory for
Implementation and Testing of Heuristics”
Framework de desarrollo de heurísticas no
centrado en ningún paradigma concreto y
basado en plug-ins
Usa:
Interfaz sencilla
Programación orientada a componentes
Activación dinámica de componentes
Servicios declarativos
Web 2-0: Arquitectura Orientada a Servicios en Java
37
OSGiLiath (II)
Interfaz:
Interfaces para:
Algoritmo
Algoritmo distribuido
Solución
Problema
Datos de
Comentarios de: Otras Arquitecturas y metodologías SOA (0)
No hay comentarios