Arquitecturas de Integración Ing. Gastón Escobar Ing. Nicolás Passerini Ing. Juan Arias Ing. Santiago Blanco 2006
Agenda Enterprise Architecture Integración de Sistemas Evolución histórica Métodos de integración Mecanismos de integración Conceptos de mensajería Web Services Conceptos Estándares Web Services REST 2
Enterprise Architecture Es la lógica organizadora de los procesos de negocio y la infraestructura IT, reflejando los requerimientos de integración y estandarización que permitan seguir la estrategia empresarial. Es necesario definir Sistemas interactuando Forma de interacción Mecanismos de interacción La estrategia de la empresa es lograda mediante la interacción de todos los sistemas componentes de la EA. 3
Integración de Sistemas 4 Porque? Una arquitectura empresarial esta formada por distintas soluciones SW, que deben interactuar -> Implementación de lo mejor para cada situación Crear aplicaciones no es fácil -> La solución completa la dan todos en conjunto Queremos integrar: Personas Procesos Información Tipos de integración Aplicación a aplicación Aplicaciones con personas Personas entre si Empresas entre si
Definición La integración de sistemas significa el compartir datos y procesos de negocio en forma irrestricta entre distintas aplicaciones interconectadas A lo que podemos agregarle: Gartner Group De forma tal que cada proceso de negocio o porción de datos sea implementado de la mejor manera por la aplicación mas adecuada, y compartido al resto 5
Tener en cuenta Performance Latencia de red, tiempo de interpretación de mensajes Disponibilidad Los puntos de comunicación deben estar disponibles cuando se requieran Seguridad Va en contra de la performance Las interfaces deben ser utilizadas por quienes esten habilitados Robustez Transactionabilidad Entrega asegurada 6
Evolución Histórica Monolíticos EAI BPM + EDA Distribuidos SOA 90 s 2000 2005+ 2008+ 7
Sistemas distribuidos Integración punto a punto Fácil de implementar Se acuerda la forma de integración entre las partes Cada cliente conoce al servidor de la funcionalidad Las conexiones entre las aplicaciones son duras 8
Enterprise Application Integration EAI es el proceso de crear una infraestructura integrada para unir sistemas dispares, a través de una empresa. Nace de la necesidad de integrar sistemas heterogéneos como ERP, CRM, etc. Comprende Aceptación de mensajes Transformación Traducción Ruteo Entrega de mensajes Topologías HUB/Spoke BUS HR CRM EAI Ventas ERP 9
Enterprise Service Bus Es un patrón de arquitectura. Provee una infraestructura que elimina cualquier conexión directa entre los consumidores y los proveedores de los servicios. Infraestructura común para invocaciones, mensajes y eventos. Basado en estándares (JMS, SOAP, etc.) 10
ESB Capacidades mínimas Communications Routing, addressing, request/response, publish/subscribe, Integration Adapters, protocol transformation, Service interaction Service Interface definition, substitution of service implementation, Management Administration Capability 11
SOA Es un enfoque basado en el concepto de Servicios. Las necesidades y funciones de infraestructura requeridas para crear sistemas distribuidos son provistos como servicios que entregan, en forma individual o colectiva, funcionalidad para aplicaciones u otros servicios. SOA consists of best practices, plus the discipline to follow them. Expecting to get architecture by buying software is about as likely as learning to play Mozart by buying a piano. Source: ZapThink 12
Principios SOA Reducción de costo Mejora del servicio Oportunidades de negocio Alineación con el negocio Enfoques arquitectónicos SOA<>ESB SOA<>Productos Abstracción Encapsulamiento Independencia Principios SOA Gobierno Se requiere un soporte de la organización, ya que supone no solo un cambio técnico, sino organizacional 13
SOA - Conceptos SOA!= Web Services SOA no existe en una caja Lo mas importante es el concepto de orientación a servicios Es aplicable en contextos empresariales No se debe pensar un sistema isolado orientado a servicios Utilizar servicios para Comunicación Principios Un sistema es una entidad proveedora de servicios Los servicios deben ser fácilmente ubicables Los servicios deben tener un contrato claro 14
BPM + CEP BPM (Business Process Management) Metodologías, herramientas y prácticas para gestionar procesos de negocio. Los procesos son la interacción entre sistemas y personas, o personas entre si, aplicando reglas de negocio Desarrollarlos, administrarlos y mantenerlos no es trivial Se complementan con los Business Rules Engine EDA (Event Driven Architecture) Se basa en el concepto de eventos como disparadores de acciones Los eventos son cambios de estado con significado de ser atendidos Complemento a SOA Estilos: Simple, Encadenados, Complejos 15
Métodos de integración User Interface Level Application Level Method Level Data Level 16
Métodos de integración User interface level Esta integración se realiza generalmente con la aplicación final que el usuario está operando. Se usa en casos en que el acceso directo a la base de datos no es fácil o no es posible. También se usa cuado la lógica de negocios está embebida en la UI. Por lo general se usa como la última posibilidad. Ejemplos http://www.kapowtech.com http://www.openspan.com 17
Métodos de integración Application Level Estas interfaces dan acceso a servicios provistos por una aplicación particular o un paquete de servicios. Por lo general es considerada la mejor forma de acceder (es transparente para la aplicación y preserva la integridad de datos de la aplicación) JCA: J2EE Connector Architecture 18
Métodos de integración Method Level Este nivel se puede tomar como un subconjunto del anterior. Consiste en la posibilidad de compartir una serie de métodos comunes. Estos métodos pueden ser agrupados en un servidor central o estar distribuidos. Esta orientado a la reutilización de métodos. Este nivel requiere la posibilidad de realizar llamadas remotas a los métodos (como RPC) en las aplicaciones integradas 19
Métodos de integración Data Level Este nivel de integración se realiza entre los repositorios de datos de las aplicaciones a integrar. Push-based: llamadas a otra base de datos mediante links o stored procedures. Pull-based: se maneja con triggers y polling. Con los primeros se capturan eventos, y a partir de ahí se escribe información en tablas que actúan de intefarce. 20
Mecanismos de integración Puntuales / on line http/xml WebServices REST Colas / Mensajería Archivos Base de datos Socket CORBA Masivos / off-line Colas / Mensajería Archivos Base de Datos ETL 21
Conceptos de Mensajería Permite Transmisión segura Mensajería asíncrona Se basa en el intercambio de mensajes Partes Emisor Receptor Canal 22
Síncrono y Asíncrono Sincronismo Comunicación directa Todas las partes involucradas estan presentes en el mismo momento. Ejemplos: http Asincronismo No requieren que todas las partes involucradas esten presentes al mismo momento. Fire and Forget Ejemplos: e-mail, jms Cuándo usar uno y otro? 23
Qué es un WebService? Es una colección de protocolos y estándares utilizados para intercambiar datos entre aplicaciones. Permiten comunicar aplicaciones por medio de los mismos protocolos que soportan Internet Son independientes de la plataforma Son independientes del protocolo Están ampliamente aceptados Basados en estándares Especificaciones WS-* Basado en Interfaces Carga Dinámica Metadatos en ejecución Orientación A Servicios (Hoy) Basado en Mensajes Schema+Contrato Ligados vía Políticas Basado en Clases Polimorfismo Encapsulamiento Componentes (1990s) Orientación a Objetos (1980s) 24
Web Services - Standards WSDL SOAP UDDI WS-Security WSRP WS-Coordination WS-Transactions BPEL4WS WS-Policy 25
REST REpresentational State Transfer Basado en el concepto de recursos Interface Uniforme Todos responden a los mismos métodos (ej. HTTP) Una alternativa a WS-* HTTP <> REST Muchas aplicaciones HTTP no siguen los principios REST 26
REST Principios Todo recurso tiene un ID URI (http://apit.edu.ar/clases/integracion) Unir los recursos relacionados A través de sus Ids Utilizar métodos estándares Basado en la especificacion HTTP (GET, POST, PUT, DELETE) Los recursos pueden tener multiples representaciones Para diferentes necesidades Utilizan comunicación stateless Mayor escalabilidad, independencia client - server 27
Puntos a tener en cuenta Disponibilidad de los datos Momento en que son necesarios los datos Transaccionalidad Modificabilidad Modelo canónico de entidades Seguridad Multiples plataformas Sincronismo / Asincronismo Existencia de contratos estándares por industria SID N7 28
Conclusiones Siempre caemos en la necesidad de integrar aplicaciones Existen diferentes formas de implementar la integración Para seleccionar la mas adecuada, debemos tener en cuenta muchas cuestiones Lo mas importante, es no ir siempre por la mas fácil o acostumbrada, sino tener un criterio que nos permita elegir la mejor alternativa 29
Bibliografía http://www.enterprise-architecture.info http://www.opengroup.org/architecture/togaf/ Enterprise Integration Patterns Designing, Building and Deploying Messaging Solutions; Martin Fowler; Addison Wesley http://www.infoq.com/rest http://www.infoq.com/webservices 30