1
2 Arquitectura Orientada a Servicios M.C. Juan Carlos Olivares Rojas Morelia, Michoacán, México, Octubre 2008
3 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.
4 Agenda Introducción SOA: una nueva piedra angular en el desarrollo de software Caso Práctico Conclusiones
5 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
6 ServicioServicioServicio ServicioServicioServicio Bus Solución SOA
7 Arquitectura del Sistema Desde el Punto de Vista del Usuario
8 Arquitectura de una Casa Desde el Punto de Vista del Constructor Planta Alta Planta Baja
9 Arquitectura de Hardware
10 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
11 Arquitectura de un Sistema
12 Arquitectura de Datos Almacén de Datos en Copo de Nieve
13 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
14 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
15 Arquitecturas Empresariales Hoy
16 Integración Años más Tarde Enterprise Service Bus Agilidad SOA Servicios Web Middleware ESB
17 Servicios
18 Servicio: Nivel de abstracción
19 Ejemplo de Servicios en SOA Contabilidad Proveedor Servicios Compartidos Divisiones Cliente Proceso de Negocio de una Aplicación
20 ¿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
21 Arquitectura de Servicios Web Proveedor del Servicio Consumidor el Servicio Directorio de Servicios Publicación del Servicio Descubrimiento del Servicio Invocación y respuesta 1 3 2 UDDI 4 SOAP Definición del Servicio WSDL
22 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
23 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?
24 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
25 ESB Cliente Administración de servicios RuteoTransacciónOrquestaciónSeguridadAuditoriaOtros Servicios de Negocio Middleware de Servicios
26 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
27 Agenda Introducción SOA: una nueva piedra fundamental en el desarrollo de software Caso Práctico Conclusiones
28 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
29 La Pila de Protocolos WS-* De acuerdo al W3C
30 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
31 JAVA Integration Server J2EE + JBI
32 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
33 Agenda Introducción SOA: una nueva piedra fundamental en el desarrollo de software Caso Práctico Conclusiones
34 Caso de Uso Fallecimiento de una Persona
35 Identificar Servicios Alta fallecimiento Cerrar Vínculos Fin de Trámites Fin de Relaciones Laborales
36 Orquestación del Proceso de Negocio Diagrama de Flujo de Trabajo
37 © Bull 36
38 Parte Práctica Consumir/Construir Servicios Distintas Plataformas –Java –.NET –Office Composición de Servicios Web utilizando NetBeans –Hola Mundo
39 Agenda Introducción SOA: una nueva piedra fundamental en el desarrollo de software Caso Práctico Conclusiones
40 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.
41 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.
42 ¿Preguntas? E-mail: [email protected] MSN: [email protected] Web: http://antares.itmorelia.edu.mx/~jcolivar/ Ubicación: Coordenadas (19.72388, -101.1848) Edificio J