2. EAI: opciones para la integración
◦ Existen cuatro opciones principales para realizar la
integración de aplicaciones:
Transferencia de ficheros
Base de datos compartida
Invocación remota a procedimientos (RPC)
Mensajes
3. Transferencia de ficheros
◦ Ventajas:
Los ficheros representan un mecanismo de almacenamiento universal
disponible en cualquier sistema operativo y lenguaje.
Garantiza un mínimo acoplamiento entre las aplicaciones ya que cada
una implementa el mecanismo de generación de ficheros a su forma
independientemente de cómo lo realice el resto.
No requiere de paquetes externos de integración.
4. Transferencia de ficheros
◦ Problemas:
Requiere de una correcta gestión de los ficheros producidos y
consumidos para asegurar que no se pierde ninguno de los generados y
que todos son leídos por la aplicación destinataria.
Se debe asegurar en ambos extremos la consistencia de los datos y su
representación. Un cambio en una de las partes puede producir errores
en el receptor.
5. Base de Datos compartida
◦ Ventajas:
Asegura la consistencia de los datos y su representación al utilizarse la
misma base de datos para la integración.
Se facilita la difusión de este mecanismo al contar la mayoría de las
bases de datos con un lenguaje común y estándar como SQL.
6. Base de Datos compartida
◦ Problemas:
Es necesario un acuerdo entre las distintas partes para lograr un
esquema de datos unificado que funciones como intermediario.
El diseño de un esquema unificado puede perjudicar el rendimiento de
aplicaciones críticas cuando tengan que interactuar con él.
Ocurrencia de cuellos de botella o deadlocks provocados por la
concurrencia en el acceso al esquema común.
7. Invocación Remota de Procedimientos (RPC)
◦ Las aplicaciones se comunican mediante a llamadas
a funciones y procedimientos.
◦ Variantes:
CORBA
COM
.NET
Java RMI
Servicios Web (SOAP, REST)
8. Invocación Remota de Procedimientos (RPC)
◦ Ventajas:
Asegura la consistencia de los datos y su representación al utilizarse la
misma base de datos para la integración.
Se facilita la difusión de este mecanismo al contar la mayoría de las
bases de datos con un lenguaje común y estándar como SQL.
9. Invocación Remota de Procedimientos (RPC)
◦ Ventajas:
Se adapta fácilmente al estilo de comunicación interna de las
aplicaciones de llamadas a funciones y procedimientos ya que es similar
a éste.
El encapsulamiento de datos en las llamadas permite evitar los
problemas de compatibilidad de formatos.
10. Invocación Remota de Procedimientos (RPC)
◦ Problemas:
Tiende a acrecentar el acoplamiento entre las aplicaciones.
Se suele cometer el error de diseñar la comunicación entre aplicaciones
a través de RPC como si se tratara de módulos de una misma aplicación
ignorando los aspectos que este modelo de comunicación introduce.
11. Mensajes
◦ Ventajas:
El carácter asíncrono de la comunicación hace que no se requiera que
ambas aplicaciones estén activas al mismo tiempo para poder realizarse
los intercambios.
Hace evidente al desarrollador que se trata de un entorno de
aplicaciones separadas acentuando la necesidad de maximizar la
cohesión y minimizar la cantidad de operaciones que se deben realizar
fuera de la aplicación.
12. Mensajes
◦ Ventajas:
Favorece el desacoplamiento y la transformación de los mensajes
durante su tránsito sin necesidad de la participación del emisor o el
receptor.
Permite la difusión de mensajes de un emisor a más de un receptor.
13. Bibliografía:
◦ Enterprise Integration Patterns - Designing, Building And
Deploying Messaging Solutions. Gregor Hohpe, Bobby
Woolf. Addison Wesley
◦ Service-Oriented Architecture. Analysis and Design for
Services and Microservices. Second Edition. Thomas Erl.
Prentice Hall
◦ Service-Oriented Architecture. Enterprise Adoption
Roadmap. White Paper