Tema 1: Patrones Arquitectónicos

Anuncio
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
Descargar