Arquitectura de Proyectos de IT 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 Conceptos –Estándares Web Services REST 2 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT Integración de Sistemas 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 4 – … Arquitectura de Proyectos de IT Definición “La integración de sistemas significa el compartir datos y procesos de negocio en forma irrestricta entre distintas aplicaciones interconectadas…” Gartner Group A lo que podemos agregarle: “…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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT Evolución Histórica Monolíticos EAI Distribuidos 90´s 7 2000 BPM + EDA SOA 2005+ 2008+ Arquitectura de Proyectos de IT Sistemas distribuidos 8 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” Arquitectura de Proyectos de IT 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 CRM … ERP EAI Topologías – HUB/Spoke – BUS HR 9 Ventas Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT Principios SOA •Reducción de costo •Mejora del servicio •Oportunidades de negocio Enfoques arquitectónicos Alineación con el negocio •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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT Métodos de integración User Interface Level Application Level Method Level Data Level 16 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT Conceptos de Mensajería Permite Transmisión segura Mensajería asíncrona Se basa en el intercambio de mensajes Partes Emisor Receptor Canal 22 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Orientación A Servicios Son independientes del protocolo (Hoy) Están ampliamente aceptados Basados en estándares Basado en Mensajes – Especificaciones WS-* Basado en Clases Polimorfismo Encapsulamiento Basado en Interfaces Carga Dinámica Metadatos en ejecución Schema+Contrato Ligados vía Políticas Componentes (1990s) Orientación a Objetos (1980s) 24 Arquitectura de Proyectos de IT Web Services - Standards 25 WSDL SOAP UDDI WS-Security WSRP WS-Coordination WS-Transactions BPEL4WS WS-Policy Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT 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 Arquitectura de Proyectos de IT