07/03/2013 Departamento de Lenguajes y Sistemas Informáticos BLOQUE II: Integración de Sistemas Software Introducción a la Integración Software Tema 5 Arquitectura e Integración de Sistemas Software Curso 2012/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía 1 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Introducción “La integración de aplicaciones empresariales se define como el uso de software y principios de arquitectura de sistemas para integrar un conjunto de aplicaciones empresariales.” [Wikipedia] “Enterprise Application Integration (EAI) encompasses technologies that enable business processes and data to speak to one another across applications, integrating many individual systems into a seamless whole.” [David Linthicum, 2000] 2 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Aplicaciones distribuidas vs. Integración A B C D A B C D Aplicaciones distribuidas Los componentes están altamente acoplados y dependen unos de los otros para funcionar correctamente. Una capa no puede funcionar sin las otras. La comunicación suele ser síncrona. Aplicaciones integradas. Las aplicaciones son independientes y pueden ejecutarse de forma aislada. El acoplamiento es bajo. La comunicación suele ser asíncrona. 3 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Integración de datos vs. Integración de aplicaciones Integración de datos: Se trata de combinar información que se encuentra en distintas fuentes de datos para ofrecer una vista única de estos datos. Se realiza de forma declarativa. SELECT * FROM Book WHERE price > 100.00 ORDER BY title; Integración de aplicaciones: Se trata de acceder a las aplicaciones de forma programática para luego obtener sus datos y combinarlos. ... connection1 = connectTo(App1); bookList = connection.get(Books); for(Book book:bookList) { if(book.getPrice() > 100) result.add(book); } sortByTitle(result); return result; 4 07/03/2013 Integración de datos vs. Integración de aplicaciones Integración de datos ETL ETL ETL Integración de datos vs. Integración de aplicaciones Integración de aplicaciones RentCar(…) 5 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Retos de la integración Las redes no son fiables 6 07/03/2013 Retos de la integración Las redes son lentas Retos de la integración Heterogeneidad de plataformas Sistemas operativos diferentes (Windows, UNIX...) Protocolos de comunicación diferentes (ex: TCP vs. UDP) Lenguajes de programación diferentes (Java, C, C++...) Formatos de datos distintos (ex: big endian vs. little endian) 7 07/03/2013 Retos de la integración El cambio es inevitable Si una aplicación cambia, el resto de sistemas pueden verse afectados creando un efecto dominó. Los aplicaciones deben tener un acoplamiento bajo, es decir, deberían reducir las asunciones hechas sobre el funcionamiento del resto de aplicaciones o componentes. Retos de la integración La integración requiere un cambio de mentalidad en las políticas de las empresas 8 07/03/2013 Retos de la integración El correcto funcionamiento de las aplicaciones integradas puede convertirse en un aspecto crucial para el funcionamiento del negocio. Retos de la integración Control limitado sobre las aplicaciones integradas En muchos casos se trata de aplicaciones heredadas que fueron desarrolladas hace mucho tiempo y que no pueden cambiarse por razones técnicas o políticas. 9 07/03/2013 Retos de la integración Difícil mantenimiento Múltiples tecnologías Cambio Naturaleza distribuida Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía 10 07/03/2013 Escenarios de integración Portales de información. Agregan información de múltiples fuentes en un único punto evitando al usuario acceder a varios sistemas. Escenarios de integración Replicación de datos. Replican la información en varias fuentes de datos. Funcionalidad compartida. Funcionalidad común implementada en un componente compartido usado por varias aplicaciones. Ej. Comprobar la validez del DNI. 11 07/03/2013 Escenarios de integración Arquitecturas orientadas a servicios. Funciones de negocio encapsuladas como “servicios” que son invocados usando protocolos estándar. Proceso de negocio distribuido. Implementación de procesos de negocios que requieren la participación de varias aplicaciones. Escenarios de integración Business to Business (B2B). Integración entre dos o más organizaciones. 12 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Transferencia de ficheros ¿Como podemos integrar varias aplicaciones para que trabajen juntas e intercambien información? Podemos hacer que unas aplicaciones creen y almacenen información en ficheros y otras los lean. Las aplicaciones tienen la responsabilidad de transformar los ficheros de un formato a otro si es necesario. La frecuencia de escritura/ lectura dependerá de la naturaleza del negocio. Gregor Hohpe and Bobby Woolf. Enterprise Integration Patterns. Addison-Wesley. ISBN 0321200683 13 07/03/2013 Transferencia de ficheros Ventajas: Las aplicaciones que se integran no necesitan conocer como funcionan las otras aplicaciones. No es necesario el uso de herramientas adicionales. Mecanismo relativamente simple. Inconvenientes: Sobrecarga de trabajo a los desarrolladores: acordar un formato de ficheros y directorios a usar, garantizar que los nombres son únicos, decidir el tratamiento de ficheros antiguos, bloquear ficheros, etc. Las actualizaciones suelen ser frecuentes y pueden surgir problemas de sincronización. Puede llegar a ser ineficiente. Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía 14 07/03/2013 Bases de datos compartidas ¿Como podemos integrar varias aplicaciones para que trabajen juntas e intercambien información? Integrar las aplicaciones almacenando sus datos en una base de datos compartida. El esquema de la base de datos debe ser capaz de satisfacer las necesidades de las distintas aplicaciones. Gregor Hohpe and Bobby Woolf. Enterprise Integration Patterns. Addison-Wesley. ISBN 0321200683 Bases de datos compartidas Ventajas: Las actualizaciones frecuentes permite prevenir y subsanar de forma rápida las posibles inconsistencias. Lenguaje de consulta estándar: SQL. Inconvenientes: Es difícil diseñar un esquema que satisfaga las necesidades de todas las aplicaciones involucradas. La integración de componentes externos es compleja porque no suelen funcionar con un esquema de datos que no sea el suyo. Difícil de mantener. Puede ser un cuello de botella en términos de rendimiento. Alto acoplamiento con la base de datos. 15 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Invocación de procedimientos remotos ¿Como podemos integrar varias aplicaciones para que trabajen juntas e intercambien información? Hacer que las aplicaciones proporcionen una o varias interfaces que permitan a otras aplicaciones interaccionar con ella en tiempo de ejecución. Gregor Hohpe and Bobby Woolf. Enterprise Integration Patterns. Addison-Wesley. ISBN 0321200683 16 07/03/2013 Invocación de procedimientos remotos Las llamadas suelen ser síncronas Process A blocked call return Process B Invocación de procedimientos remotos Ventajas: Opción natural para los programadores. Las aplicaciones puede ofrecer varias interfaces para los mimos datos. Opción preferente para la integración Web. Inconvenientes: Rendimiento y fiabilidad. Alto acoplamiento. 17 07/03/2013 Índice Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería Bibliografía Mensajería ¿Como podemos integrar varias aplicaciones para que trabajen juntas e intercambien información? Usar mensajes para transferir paquetes de datos de forma frecuente, fiable y asíncrona, usando formatos personalizables. Gregor Hohpe and Bobby Woolf. Enterprise Integration Patterns. Addison-Wesley. ISBN 0321200683 18 07/03/2013 Mensajería Sistema de Mensajería Aplicación A Enviar/Recibir mensajes Gestionar comunicación Traducir mensajes Filtrar/Enriquecer mensajes Dividir/Fusionar mensajes Monitorizar comunicación Aplicación B Mensajería 1. Crear. El emisor crea un mensaje y le añade datos. 2. Enviar. El emisor coloca el mensaje en el canal. 3. Entregar. El sistema de mensajería transmite el mensaje desde el ordenador del emisor al del receptor. 4. Recibir. El receptor lee el mensaje del canal. 5. Procesar. El receptor extrae los datos del mensaje. 19 07/03/2013 Mensajería Mensajería Process A message Process B 20 07/03/2013 Mensajería Ventajas: Alta cohesión (mucho trabajo local). Bajo acoplamiento (pocas dependencias). Inconvenientes: Pueden ocurrir problemas de sincronización (ej. si varias aplicaciones no son actualizadas simultáneamente) Aplicaciones difíciles de probar y depurar. Los desarrolladores no están acostumbrados a programar de forma asíncrona. Índice • • • • • • Definición de integración de aplicaciones Aplicaciones distribuidas vs. Integración Integración de datos vs. Integración de aplicaciones Retos de la integración Escenarios comunes de integración Estrategias tradicionales de integración – – – – Transferencia de ficheros Base de datos compartida Invocación a procedimiento remoto Mensajería • Bibliografía 21 07/03/2013 Bibliografía Gregor Hohpe, Bobby Woolf. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. http://www.eaipatterns.com/ Disclaimer and Terms of Use All material displayed on this presentation is for teaching and personal use only. Many of the images that have been used in the presentation are Royalty Free images taken from http://www.everystockphoto.com/. Other images have been sourced directly from the Public domain, from where in most cases it is unclear whether copyright has been explicitly claimed. Our intention is not to infringe any artist’s copyright, whether written or visual. We do not claim ownership of any image that has been freely obtained from the public domain. In the event that we have freely obtained an image or quotation that has been placed in the public domain and in doing so have inadvertently used a copyrighted image without the copyright holder’s express permission we ask that the copyright holder writes to us directly, upon which we will contact the copyright holder to request full written permission to use the quote or images. 22