Escenarios de Integración de Aplicaciones con Sonic ESB Kannan Thiruvengadam Arquitecto de Aplicaciones
Meta Comprender los diversos Casos de Usuario Patrones Comunes de Desarrollo Todos los escenarios pueden resolverse utilizando un enfoque común que promueva el re-uso Basado en la Composición del Modelo de Refernecia SOA Demostrar la solución sin código propietario
Agenda De Batch a Tiempo-Real o CPP Información Remota Acceso/Distribución Respuesta a eventos en tiempo real Conclusión Session ID: Session Title 3
Procesamiento Continuo de Pipeline por Industria Caso de usuario Seguros Procesamiento de siniestros Servicios Financieros Front-Mid-Office Straight thru processing – STP (T+1, T+0) Telcos Servicios de Soporte Operativo (OSS) Manufactura ERP, Supply Chain/ Procurement Management Retail Supply chain, Personalizado/Almacen Transporte GestiónInventory de cadena de Suministro/ Gestión de Producción Gobierno Inscripciones, Licencias, Justicia, Recursos Humanos
Batch a Tiempo-Real Retos Falta de coincidencias de Interacción Canales existentes usando Batch, backend tiempo real Ciclos Batch de 24 horas causan problemas de competencias Provocado por negocios convertidos a 24*7 Un error simple causa que todo el batch sea rechazado, sin tiempo de procesamiento La misma información enviada varias veces a diferentes sistemas de back-end Tal vez un ambiente sobre distribuido
Escenario: Batch Diario de Información de Cuentas Ciclo de 24 horas Misma Alimentación a todas las bases “Tight coupling” en las bases de datos para transporte Phone New Account Application Internet Location-1 Location-2
De Batch a Tiempo Real Implementación Lógica Location 1 Location 2
Rompiendo el Problema para Desarrolladores Rompa la solución en problemas/proyecos independientes Alcance de proyectos para tareas y visibilidad Dos tipos de proyectos: Conexión – esconde la implementación en el Back End Mediación – provee la entidad lógica en el ESB
Operación y Cuenta
Ruteando hacia la Conexión Adecuada Stack: Entity.Accounts.AddAccount If /Message [Part =1]/ AccountType = ‘InternetAccount’ step AddInternetAccount If /Message [Part =1]/AccountType = ‘PhoneAccount’ step AddPhoneAccount If /Message [Part =1]/AccountType = ‘TVAccount’ step AddTVAccount If /Message [Part =1]/AccountType = ‘WirelessCellAccount’ step ‘AddWirelessCellAccount
Ruteando hacia la Conexión Adecuada Stack: Entity.Accounts.AddAccount
Proyecto Muestra de Conexión
Proyecto Muestra de Conexión Stack: Connect.DB.InternetAccount.AddAccount Entity.Accounts.AddAccount Select count(*) from INTERNET_ACCOUNTS where AccountNumber = /Request/AccountNumber
Proyecto Muestra de Conexión Stack: Connect.DB.InternetAccount.AddAccount Entity.Accounts.AddAccount If /Message [Part =2]/Count = 0 Then Step ‘account does not exists’ If /Message [Part =2]/Count >0 Then Step ‘account exists’
Proyecto Muestra de Conexión Stack: Connect.DB.InternetAccount.AddAccount Entity.Accounts.AddAccount INSERT INTO INTERNET_ACCOUNTS VALUES ( “/Message [Part = 1]/Account/AccountNum)
Proyecto Muestra de Conexión Stack: Connect.DB.InternetAccount.AddAccount Entity.Accounts.AddAccount
Proyecto Muestra de Conexión Stack: Connect.DB.InternetAccount.AddAccount Entity.Accounts.AddAccount Remove Message Part Apply XSLT to get Result format
Proyecto Muestra de Conexión Stack: Connect.DB.InternetAccount.AddAccount Entity.Accounts.AddAccount
Proyecto Muestra de Conexión Stack: Entity.Accounts.AddAccount
Conexiones y Proyecto de Conexión Implementar cada método individual como un proceso del ESB e.g. AddAccount DeleteAccount Esconde la Plataforma de Soporte de otros Servicios del ESB Entonces puede cambiar plataforma de implementación, pero el ESB es el mismo
Implementación Servicios de Conexión localizados cerca del sistema conectado Servicios de Entidad localizados en 1..* número de localidades basados en acceso.
Conclusión de Batch a Tiempo Real Proyectos objetivo basados en el conocimiento y capacidad de los desarrolladores Artefactos se hacen específicos para el contexto del uso y no del problema global Esto permite el re-uso
Agenda De Batch a Tiempo-Real o CPP Información Remota Acceso/Distribución Respuesta a eventos en tiempo real Conclusión Session ID: Session Title 23
Acceso a Información Remota por Industria Caso de Usuario Seguros Procesamiento de siniestros Servicios Financieros Front-Mid-Office Straight thru processing – STP (T+1, T+0) Telcos Servicios de Soporte Operativo (OSS) Manufactura ERP, Supply Chain/ Procurement Management Retail Supply chain, Personalizado/Almacen Transporte GestiónInventory de cadena de Suministro/ Gestión de Producción Gobierno Inscripciones, Licencias, Justicia, Recursos Humanos
Acceso a Información Remota por Industria Caso de Usuario Seguros Procesamiento de siniestros Servicios Financieros Front-Mid-Office Straight thru processing – STP (T+1, T+0) Telcos Servicios de Soporte Operativo (OSS) Manufactura ERP, Supply Chain/ Procurement Management Retail Supply chain, Personalizado/Almacen Transporte GestiónInventory de cadena de Suministro/ Gestión de Producción Gobierno Inscripciones, Licencias, Justicia, Recursos Humanos
Información Remota Acceso/Distribución Utilizar artefactos de Batch a tiempo real Patrones de ruteo utilizados Ruteador basado en contenido Lista de Receptores Técnicas de Agregado Enriquecimiento y Validación de datos
Información Remota Acceso/Distribución Retos Proveyendo a los sistemas externos y usuarios un acceso único para leer/escribir en múltiples back ends Los back ends pueden cambiar durante el proyecto y a través del tiempo. Ofrece soporte a equipos múltiples El equipo de dessarrollo del Portal/UI requiere interfaces hoy para generar Look and Feel El equipo del back end puede modificar las aplicaciones al mismo tiempo
Escenario : De Portal a Usuario Final Provee una misma vista de todos los dados (Read) Actualización al backend en tiempo real (Write) ESB Internet Phone
Solución RIA/RDD Componentes De Batch a Tiempo Real Nuevos Componentes
Proyecto de Portal y Flujo de Alto Nivel Stack: Actor.CustomerPortal.AllRequests If /Message [Part =1]/ RequestType = ‘getAccounts’ step getAccounts If /Message [Part =1]/RequestType = ‘getAccountActivity’ step getAccountActivity If /Message [Part =1]/RequsetType = ‘addAccount’ step addAccount If false() step ‘NO MATCH’
Proyecto de Portal y Flujo de Alto Nivel Stack: Actor.CustomerPortal.AllRequests Invoke SubProcess Portal.getAccounts
Actor.CustomerPortal.AllRequests Solicitud Individual Stack: Portal.GetAccounts Actor.CustomerPortal.AllRequests Apply XSLT “ConvertRequestToCanonical”
Actor.CustomerPortal.AllRequests Solicitud Individual Stack: Portal.GetAccounts Actor.CustomerPortal.AllRequests Invoke Sub-Process Entity.Accounts.getAccounts
Entity.Accounts.GetAccounts Stack: Entity.Accounts.GetAccounts Portal.GetAccounts Actor.CustomerPortal.AllRequests
Actor.CustomerPortal.AllRequests Solicitud Individual Stack: Portal.GetAccounts Actor.CustomerPortal.AllRequests Apply XSLT “ConvertCanonicalToResponse”
Actor.CustomerPortal.AllRequests Solicitud Individual Stack: Portal.GetAccounts Actor.CustomerPortal.AllRequests
Proyecto de Portal y Flujo de Alto Nivel Stack: Actor.CustomerPortal.AllRequests
Agenda De Batch a Tiempo-Real o CPP Información Remota Acceso/Distribución Respuesta a eventos en tiempo real Conclusión Session ID: Session Title 38
Eventos por Industria Industria Caso de usuario Seguros Procesamiento de siniestros Servicios Financieros Front-Mid-Office Straight thru processing – STP (T+1, T+0) Telcos Servicios de Soporte Operativo (OSS) Manufactura ERP, Supply Chain/ Procurement Management Retail Supply chain, Personalizado/Almacen Transporte GestiónInventory de cadena de Suministro/ Gestión de Producción Gobierno Inscripciones, Licencias, Justicia, Recursos Humanos
Respuesta a Eventos en Tiempo Real Integración Basada en Eventos El Proceso es imlícito y no explícito Implementaciones Federadas Menor Costo de Integración Implementaciones Dinámicas Aplicaciones/Conectores de Servicios in/out ESB
Solución que consta de tres elementos Backbone del Evento La habilidad de mover eventos a varias aplicaciones Event Consumer Proxy para aplicaciones reales que consumen los eventos Note que esto estaría sobre Apama®/BPEL etc. Event Producer Como los eventos son enviados al Backbone de los Eventos
Backbone del Evento Proceso simple del ESB permite al VET simple estar en canal Descopla tópicos del publisher y consumidor El canal no está conciente de los consumidores Los consumidores pueden modificarse para no afectar el canal
Event Consumer Proxy para las aplicaciones de consumo Consume y direcciona los eventos según se requiera Puede agregar transformación para mover el formato canónico al objetivo El punto de entrada a los procesos ESB es MultiTopic Permite múltiples tipos de eventos consumidos SIN CAMBIO en la lógica El Proxy puede ser recargado en beneficio de la aplicación Entonces la aplicación no tiene que modificarse
Consumidor del Evento
Muestra de Evento del Consumidor BAM Dashboard Real time analysis of the events and correlation Complex Event Processing Engine Apama – correlating events in real-time to define further actions.
Ruteador de Evento (on-ramp) Ruteador On Ramp al Event Backbone e.g. Eventos creados por Triggers o DX SI LIDD Source Application
Agenda De Batch a Tiempo-Real o CPP Información Remota Acceso/Distribución Respuesta a eventos en tiempo real Conclusión Session ID: Session Title 47
Resumen Un conjunto de implementaciones para múltiples tipos de proyectos Basadao en la composición del Modelo de Referencia SOA Re-uso de Artefactos para reducir el tiempo de implementar
Conclusión Los artefactos construidos para una solución pueden re-usarse a lo largo de distintos tipos de solución Se requiere poco o nada de código ESB soporta tanto paradigmas SOA y EDA
? Preguntas
Gracias