Introducción a la Integración Software

Documentos relacionados
Patrones de Integración

Consumo de Servicios RESTful (II)

Modelado de Arquitectura Software

BLOQUE II: Integración de Sistemas Software. Integración Web. Arquitectura e Integración de Sistemas Software Curso 2012/2013.

Arquitectura Web. Arquitectura e Integración de Sistemas Software Curso 2012/2013. Índice

Pruebas de Integración

Introducción a las Aplicaciones Web

Consumo de Servicios RESTful (III)

2. APROXIMACIÓN A SOA: EL ESB

Introducción a la Arquitectura del Software

APLICACIONES DE INTERNET: SOAP

Software para supervisión y control de operaciones

Protocolos, Servicios e Interfaces

Protocolos, Servicios e Interfaces

ESB. Norberto Fernández Departamento de Ingeniería Telemática Tecnologías de Distribución de Contenidos - UC3M 1

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

IMPLEMENTACIÓN DE INTEGRACIÓN DE SISTEMAS HEREDADOS UTILIZANDO WEB SERVICES

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico

Sistemas Distribuidos. Soporte de Sistemas Operativos

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

Oracle Fusion Middleware 11g: Creación de Aplicaciones con ADF I

Sistemas Distribuidos

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Eduardo Olguín Moris. Datos Personales. Formación Académica. Conocimientos

Xenon Guía de inicio rápido. Escáner lector. NG2D-ES-QS Rev B 5/11

Resumen de Data Warehousing Consideraciones para una solución de almacén de datos Laboratorio: Explorar una solución de almacenamiento de datos

Tema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.

Programa Formativo. Código: Curso: Programación con JAVA 8 SE Standard Edition Modalidad: ONLINE Duración: 120h.

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Especificación de requisitos de software

Conceptos generales de sistemas distribuidos

Diplomado C#.NET con Visual Studio

ARQUITECTURAS. Carlos Reveco D. IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI.

NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO

20483 Programación en C#

Biblia Católica (Spanish Edition) By DHH - Dios Habla Hoy

Hoja de respuestas. Examen tipo A

Bases de datos. 1. Introducción

Evolución del software y su situación actual

Los números. 0 cero 1 uno / un 2 dos 3 tres 4 cuatro. 6 seis 7 siete 8 ocho 9 nueve 10 diez 5 cinco

Tecnología para la. Web (MVC)

Programación Concurrente y Paralela. Unidad 1 Introducción

Sistemas Operativos Distribuidos. Sistemas Operativos Una visión aplicada

Guía del Curso Analista Programador Java: Business Apps Expert

El Modelo de Integración basado en Servicios

PATRONES DE DISEÑO FRAMEWORKS

Granit 1280i. Guía de inicio rápido. Lector Láser Industrial de Amplio Rango LS-QS Rev A 1/14

Objetivos. Conocer los avances en programación y diseño web a través de las aportaciones de lenguajes como HTML, PHP y DHTML

Tarjeta de Red PCI Express Ethernet Gigabit con 4 Puertos RJ45

Java EE 6: Desarrollo de componentes de negocio con JMS y EJBs

Programación Web Tema 1: Arquitectura C / S

Instrumentación n / Ing. Quirino Jimenez D.

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Curso Implementing a Data Warehouse with Microsoft SQL Server 2014 (20463)

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Tecnología de software para sistemas de tiempo real

Vuquest 3310g. Guía de inicio rápido. Escáner lector ES-QS Rev C 1/13

Tema 1: Patrones Arquitectónicos

TEMA II OFIMÁTICA EMPRESARIAL

1 Software de una computadora 2 Sistemas operativos 3 Manejo avanzado y programación en ms-dos 4 Lenguajes de programación

Profesor: José Luis Montoya Restrepo

INSTITUTO TECNOLÓGICO SUPERIOR JUAN DE VELASCO

UNIVERSIDAD NACIONAL DEL CALLAO

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA

COMPUTACIÓN EN NUBE. Nuevas tecnologías para antiguas ideas.


octubre de 2007 Arquitectura de Software

TEMA 54 La arquitectura JEE

Integración de Datos y ETL con Oracle Warehouse Builder: Parte 1

Protocolos Arquitectura TCP/IP

Programación Distribuida y Tiempo Real

6. Enumere tres ventajas de los ULT frente a los KLT.

Fundamentos de las aplicaciones web

How to Integrate the 12 Principles of Permaculture to Design a Truly Sustainable Project

Tema 2. Gestión por Procesos. Soporte de Tecnología

Pandora FMS NG Hoja de producto

BASE DE DATOS DISTRIBUIDOS

Transcripción:

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

Í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

Í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 C D B 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. A C D B Aplicaciones integradas. Las aplicaciones son independientes y pueden ejecutarse de forma aislada. El acoplamiento es bajo. La comunicación suele ser asíncrona. 3

Í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

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

Í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

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

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

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

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

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

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

Í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

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

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

Í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

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

Í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

Mensajería Aplicación A Sistema de Mensajerí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

Mensajería Mensajería Process A message Process B 20

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

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