Arquitectura Orientada a Servicios M.C. Juan Carlos Olivares Rojas Morelia, Michoacán, México, Octubre 2008
Disclaimer El autor es responsable de toda la información contenida en esta presentación, la cual no refleja el punto de vista de toda la Línea de Investigación de Ingeniería de Software. Parte del material de esta presentación se ha obtenido de diversas fuentes cada una de las cuales tiene propiedad intelectual, por lo que en esta presentación se tiene solamente algunos derechos reservados.
Agenda Introducción SOA: una nueva piedra angular en el desarrollo de software Caso Práctico Conclusiones
Software Hoy en Día Mito: los programadores de ahora ya no programan como los de antes. Herramientas más fáciles y productivas El software es cada día más complejo
ServicioServicioServicio ServicioServicioServicio Bus Solución SOA
Arquitectura del Sistema Desde el Punto de Vista del Usuario
Arquitectura de una Casa Desde el Punto de Vista del Constructor Planta Alta Planta Baja
Arquitectura de Hardware
Arquitectura Windows NT 5.0 Interfaces de Hardware(buses, Dispositivos de E/S, interrupcciones, intervalos de temporizadores, DMA, control de memoria cache, etc.) Sistema de Despachador de Sistemas Admon- de TareasExplorer SvcHost.ExeWinMgt.ExeSpoolSv.Exe Servicio de Control de Gestión LSASS Manejador de Objetos Windows USER, GDI Caché del Sistema de Archivos Manejador E/S Subistema de Entornos Aplicaciones de los Usuarios Subsistema de DLLs Procesos del SistemaServiciosAplicaciones Hilos de Sistemas User Mode Kernel Mode NTDLL.DLL Manejador del Sistema de Archivos y Dispositivos WinLogon Manejador de Sesiones Services.Exe POSIX Windows DLLs Administrador De Plug and Play Administrador De Energía Monitor de Referencias De Seguridad Memoria Virtual Procesos e Hilos Llamada a Procesos Locales Manejador de Gráficos Kernel Hardware Abstraction Layer (HAL) (interfaces invocables en el modo kernel) Administrador De Configuración (Registro) OS/2 Windows
Arquitectura de un Sistema
Arquitectura de Datos Almacén de Datos en Copo de Nieve
Arquitectura de Software Servicios (SOA) Arquitecturas Monolíticas Antes 1950’s hasta 1960’s 1970’s mediados 1980’s Mediados1990’s Comienzo 2000’s Hoy Finales 1990’s Subrutinas /Llamadas a Procedimient os Remotos Invocación de Objetos Remotos Procesamient o de Mensajes Web 1980’s mediados 1990’s Línea del Tiempo del Desarrollo de Arquitecturas Mayor Flexibilidad
Motivación “Casas de Perros” Proyectos Escolares SIN ARQUITECTURA Poco $ Casas Proyecto de PyMES ARQUITECTURAS SIMPLES Rentable $ Edificios Grandes Corporativos ARQUITECTURAS COMPLEJAS Mucho $$$$ Desarrollo de Software en la Academia
Arquitecturas Empresariales Hoy
Integración Años más Tarde Enterprise Service Bus Agilidad SOA Servicios Web Middleware ESB
Servicios
Servicio: Nivel de abstracción
Ejemplo de Servicios en SOA Contabilidad Proveedor Servicios Compartidos Divisiones Cliente Proceso de Negocio de una Aplicación
¿Qué es SOA? “Conjunto de componentes que pueden ser invocados, cuyas descripciones de interfaces se pueden publicar y descubrir” “SOA es un estilo de arquitectura que promueve descomponer la lógica funcional de una aplicación en unidades autónomas denominadas servicios” De acuerdo al W3C
Arquitectura de Servicios Web Proveedor del Servicio Consumidor el Servicio Directorio de Servicios Publicación del Servicio Descubrimiento del Servicio Invocación y respuesta UDDI 4 SOAP Definición del Servicio WSDL
Características de SOA Sin SOACon SOA Orientado a FunciónOrientado a Procesos Construido para DurarConstruido para Cambiar Ciclo de Desarrollos Largos Ciclos de Desarrollo Incrementales Aplicaciones AisladasAplicaciones Orquestadas Fuerte AcoplamientoBajo Acoplamiento Orientada a ObjetosOrientado a Mensajes
CLIENTES GRUPO EJECUTIVO Proceso: Gestión solicitud crédito BPM Dashboard, KPI (Key Performance Indicator) BAM Crear cliente Realizar Análisis crediticio Validar Riesgo Crear Crédito Desembolsar crédito SERVICIOS Riesgo Crédito CRM Core Bancario EMPLEADOS EIS PORTAL ¿Qué es SOA?
Servicios Reutilizables Crédito Inversiones CRM Servicio Historial Servicio de Acceso Checa Crédito Detección de Fraudes DWH Servicio Clientes Servicio Datos Internet Historial Adeudos Cheques Fondo Retiro Fuentes de Información Cálculo de Intereses Checa Inversiones Bancos Finanzas Acceso Multiplataforma Componetes de Negocio Reutilizables
ESB Cliente Administración de servicios RuteoTransacciónOrquestaciónSeguridadAuditoriaOtros Servicios de Negocio Middleware de Servicios
Composición de Aplicaciones Servicio A (Verificación de Crédito) Portlet A Servicio D (Colocar una Orden) Servicio B (Balance de Cuenta) Servicio C (Verificación de Inventario) Portlet B Portlet C Portlet D
Agenda Introducción SOA: una nueva piedra fundamental en el desarrollo de software Caso Práctico Conclusiones
Arquitectura SOA de Oracle AppsBulk ELT Adapters Partners B2B RFID SES DB Multi Protocol Routing XSLT Transform Enterprise Service Bus Native BPEL Business Rules Human Workflow BPEL Process Manager ROUTING & ORCHESTRATION Messaging UDDI Policies Security Web Services Manager Registry Events Analytics Business Monitoring System Monitoring EM BAM BI App Dev Framework & Web Center JDeveloper Analyst Tools BPA Suite AIA Foundation Pack J2EE Application Server ODI Process Integration Packs Enterprise Business Service & Object Library SOA Governance SOA Reference Architecture SOA Programming Model
La Pila de Protocolos WS-* De acuerdo al W3C
Motores Ligadores Admin. Rules EDI xForm JMS BPEL WS-I JBI: Java Business Integration (JSR-208) ReglasBPEL Service Evolución de Java para Soportar SOA
JAVA Integration Server J2EE + JBI
Manages diverse data and content in a unified manner Integrated environment for design and creation of solution assets Manage and secure services, applications & resources Facilitates better decision-making with real-time business information Enables collaboration between people, processes & information Orchestrate and automate business processes Connect with trading partners Build on a robust, scaleable, and secure services environment Facilitates interactions with existing information and application assets Optimizes throughput, availability and performance Arquitectura SOA de IBM Business Innovation & Optimization Services Development Services Interaction ServicesProcess ServicesInformation Services Partner ServicesBusiness App ServicesAccess Services Enterprise Service Bus: Facilitates communication between services IT Service Management Infrastructure Services
Agenda Introducción SOA: una nueva piedra fundamental en el desarrollo de software Caso Práctico Conclusiones
Caso de Uso Fallecimiento de una Persona
Identificar Servicios Alta fallecimiento Cerrar Vínculos Fin de Trámites Fin de Relaciones Laborales
Orquestación del Proceso de Negocio Diagrama de Flujo de Trabajo
© Bull 36
Parte Práctica Consumir/Construir Servicios Distintas Plataformas –Java –.NET –Office Composición de Servicios Web utilizando NetBeans –Hola Mundo
Agenda Introducción SOA: una nueva piedra fundamental en el desarrollo de software Caso Práctico Conclusiones
SOA no es una moda, es un estilo arquitectónico que tiene muchos años de madurez. El desarrollo de software es un proceso socio- tecnológico, por lo que para tener éxito implantando una Arquitectura Orientada a Servicios no sólo requiere de tecnologías sino de personas. Se debe pensar en grande pero actuar en pequeño.
Conclusiones Existen actualmente problemas de interoperabilidad debido a las diferentes implementaciones de la arquitectura. No hay un estándar “de jure” para SOA. Puede ser que en el futuro surjan nuevas arquitecturas más poderosas. Se debe tener cuidado en crear arquitecturas de tipo espagueti.
¿Preguntas? MSN: Web: Ubicación: Coordenadas ( , ) Edificio J