<Insert Picture Here>
Mediación de Servicios con Oracle Service Bus
Enrique Martín
25 de Noviembre 2010
<Insert Picture Here>
Agenda
• Hace un año decíamos ….
• Oracle Service Bus
• Que hemos hecho (y aprendido) en este año
Actores del Sector
Actores del Sector
Actores del Sector
Conexiones punto a punto, cercanas:
Conexiones punto a punto, a distancia:
Varias conexiones:
Muchas más conexiones:
Una base común:
Una base común con múltiples ingredientes:
Una Base para toda la empresa
Simplificando la Interoperabilidad
Reglas de Negocio Transformación de formatosReglas de Negocio Transformación de formatos Correspondencias
MonitorizaciónValidaciones lógicas
Clientes
http://www.youtube.com/watch?v=NNoozewXql4
Mediación de Servicios con OSB
Application
Service Service
System
Loan Gateway 3 (Proxy Service)
ESB
Application
Service Service
System
Loan Gateway 3 (Proxy Service)
Application
Service Service
System
Loan Processing Service
(Business Service)
Application
Service Service
System
ESB
Loan Processing Service
(Business Service)
Mediación de Servicios con OSB
Application
Service Service
System
Loan Gateway 3 (Proxy Service)
Vista de arquitectura Vista de configuración del pipeline
ProxyPipeline
Application
Service Service
System
ESB
Loan Processing Service
(Business Service)
Business Service
Monitorización
Alarmas
Servicio publicado en el bus
Flujo Petición
Cambio:
• Mensaje
•Protocolo
•SeguridadFlujo Respuesta
Mediación de Servicios con OSB
Alarmas
Reportes
Cuadros de Mando
Enriquecimiento del
servicio
•Seguridad
Alarmas
Excepciones
Enrutado/Publicación
Gestión de Servicios
• Cuadros de mando• Métricas de rendimiento y errores
• Estado de servidores (cluster)
• Monitorización• Por instancia o por cluster
• Gestión alertas SLA• Alertas en métricas
• Alertas por enrutado de mensajes
ReportingSLAsMonitoring Dashboard Open Interfaces
Management
• Alertas por enrutado de mensajes
• Reporting• Out of the box
• Personalizados
• Interfases abiertos• Personalización del despliegue
• JMX
• SNMP
Gestión del Ciclo de Vida
• Protege la Integridad Semántica
• Gestiona la dependencia de recursos
• Change Center
• Agregación de Configuraciones• Rollback• Auditoria de Cambios
Permite … Así que se puede …
Maneja la entrega y las operaciones asociadas en
servicios integrados SOA.Gestionar la complejidad de la integración de servicios en un entorno SOA.
• Rollback• Auditoria de Cambios• Soporte Sesiones Simultáneas
• Reporte y Auditoria para la monitorización de la actividad
• Vistas operacionales basada en roles
Creación de Servicios con ESB
ESB
Application
Service Service
System
Vista de arquitectura
Interfaz SOAP
Loan Gateway 3 (Proxy Service)
Application
Service Service
System
Interfaz SOAP 2
Application
Service Service
System
Otros Interfases (mail, FTP. MOM)
Application
Service Service
System
Loan Processing Service
(Business Service)
Distintas fachadas para el mismo servicio de Negocio
Los servicios pueden enriquecerse
Protección de sobrecarga
para los servicios de negocio
Clients
Service Clients
Throttle requests
w/ Policy
Proxy
Service
Legacy Service 1Queue
buffer
size
Bus
Svc
OSB Cluster
size
Regulando las entrada de solicitudes al servicio mediante políticas
Evita la sobrecarga de los servicios de negocio
Patrones Avanzados”Split and Join” para paralelización de tareas
• Un invocación se divide en múltiples
llamadas en paralelo
• Las respuestas se agregan en un
solo mensaje
• La ejecución de acciones en paralelo
mejora el rendimiento
Split ForEach
ProcessOrder
Oracle Service Bus
JoinProcessOrder
15
Order 1 Order 2 Order 3
SPLITResponse
1Response
2Response
3
JOIN
Request
Payload
Response
Payload
OSB y Cache de Datos
Legacy
Service
Service
Provider
Oracle Service Bus
Si el resultado no esta en cache, se invoca al servicio y se carga en cache el resultado
Side Cache Pattern
Process Flow /
Orchestration
Service
Consumer
P
BBackup Node
PrimaryNodeGet / Put (Cachekey)
Service Data
Coherence Data Grid
OSB
Result
Cache
Oracle Service Bus
Check cache
¿Qué es Coherence?
• Un cache distribuido de datos con características de alta escalabilidad y tolerancia a fallos
• Cada dato tiene una copia maestra y una de back-up
• Los datos almacenados son objetos Java
• El acceso es desde clientes Java, .Net o
24
• El acceso es desde clientes Java, .Net o C++
• La escalabilidad se consigue mediante despliegue en múltiples máquinas (escalado vertical), con múltiples instancias en una única máquina (escalado horizontal), o con una combinación de ambas estrategias
Casos de uso en el sector turismo
Retos en la operativa de IT en el sector turismo:
• Negocio inherentemente distribuido, con proveedores remotos de servicios de hoteles, vuelos, etc…
• Requerimientos de alto rendimiento y bajos tiempos de respuesta (‘La competencia está a un click’)
• Necesidad de escalar a un volumen muy alto de usuarios y peticiones concurrentes
• Necesidad de escalar a un volumen muy alto de usuarios y peticiones concurrentes
• Problemática de integraciones complejas y no uniformes con los distintos proveedores de servicios
• Complejidad para monitorizar y administrar las interacciones con proveedores remotos, y los procesos de reserva de usuarios
Casos de usoPatrones de consulta de disponibilidades con OSB
y CoherenceProblema
• El flujo típico de consulta de disponibilidades implica esto pasos:• Acceso a varios sistemas remotos proveedores de hoteles, aviones, cruceros, etc
• Guardar las respuestas parciales en una almacenamiento temporal (a menudo una base de datos)
• Hacer procesos de consolidación y ordenación (normalmente por precio) de los datos globales
• Implementar una paginación sobre estos resultados, y mostrarla al cliente
• Este tipo de consultas genera un alto volumen de escritura en bbdd, ralentiza la ejecución de las aplicaciones, afectando al rendimientoejecución de las aplicaciones, afectando al rendimiento
• La complejidad de las queries implicadas hace difícil implementar filtros y reglas de negocio posteriores sobre los resultados
Solucion
• Utilizar la funcionalidad de split&join (paralelización de ejecución) del OSB con una rama por proveedor
• Utilizar Coherence como almacenamiento temporal de resultados. Hacemos las ordenaciones, filtros y paginaciones sobre Coherence
• La escritura intensiva en memoria es mucho más rápida que en disco
Casos de usoCacheo de información dinámica de disponibilidad
en hoteles y vuelos
Problema
• Las disponibilidades de hoteles y vuelos se resuelven mediante consultas a proveedores remotos
• Alta tasa de cambio en este tipo de información
• Modelos de pago por uso en estos servicios
Solucion
• Cachear subconjuntos relevantes de esta información, evitando el acceso remoto, y refrescando periódicamente. Ejemplos:
• Vuelos a ciertos destinos en la siguiente semana, o en ciertas fechas (puente 1 de mayo, semana santa, …)
• Disponibilidad hotelera en ciertos destinos/fechas clave (ej. Sevilla en feria abril)
• Ahorro en los modelos de pago por uso
• Mejora en el tiempo de respuesta
• Direccionamiento de Ventas
Casos de usoMejora del rendimiento mediante el cacheo de datos
estáticos
Problema
• Las aplicaciones típicas de turismo incluyen un volumen muy alto de información estática, poco volatil y de uso muy frecuente (datos de compañias hoteleras, aviación, cruceros, códigos de area, ciudad, etc, ficheros de configuracion de aplicaciones, literales de aplicaciones web, y muchos más)
• El acceso continuo a esta información estática sobre bases de datos o ficheros afecta negativamente al rendimiento
• El acceso continuo a esta información estática sobre bases de datos o ficheros afecta negativamente al rendimiento
Solucion
• Con la utilización de Coherence como cache distribuido de alta capacidad para estos datos conseguimos:
• Mejorar los tiempos de respuesta (acceso a memoria más rápido que a dispositivos basados en disco)
• Decremento en la carga de bases de datos y otros sistemas de back-end
• Aumento de la capacidad de escalado de los sistemas
Conclusiones
• Oracle tiene soluciones rápidas de implementar que
solucionan problemas de Negocio en el Sector de
Turismo:
• Flexibilidad y Time-to-Market (Integración)
• Calidad de Servicio (Tiempo de respuesta)
• Diferenciación y orientación a Ventas (procesamiento de
información en Caches)
• Oracle tiene experiencia en este tipo de proyectos, y
sabe como ayudar al cliente
• Pruebas de Concepto
• Mentoring
Copyright 2007 30