Estilos de Integración
La integración de la
empresa es la tarea de hacer que las aplicaciones independientes trabajen
juntos para producir un conjunto unificado de funcionalidad. Algunas
aplicaciones pueden ser desarrolladas in-house y otras se pueden adquirir a
proveedores externos. Las aplicaciones probablemente se ejecutan en varios
equipos, que pueden representar múltiples plataformas, y pueden estar dispersos
geográficamente. Algunas de las aplicaciones se pueden ejecutar fuera de la
empresa por los socios de negocios y clientes. Algunas aplicaciones pueden
necesitar ser integradas a pesar de que no fueron diseñadas para la integración
y no se puede cambiar. Estos temas y otros como ellos son los que hacen difícil
la integración de aplicaciones.
Criterios de integración
de aplicaciones
El primer criterio es la integración de aplicaciones en sí. Si usted puede desarrollar una única aplicación independiente que no tiene que colaborar con otras aplicaciones, puede evitar el problema de la integración de todo por completo. Siendo realistas, sin embargo, incluso una empresa simple tiene múltiples aplicaciones, las aplicaciones que necesitan trabajar juntos para proporcionar una experiencia unificada para los empleados de la empresa, socios y clientes.
Otros criterios principales de decisión son:
Emparejamiento de aplicaciones.- Las aplicaciones integradas deben minimizar las dependencias entre sí de modo que cada uno pueda evolucionar sin causar problemas a los demás. La interfaz para integrar aplicaciones debe ser lo suficientemente específico para implementar la funcionalidad útil y lo suficientemente general para permitir que la aplicación pueda cambiar cuando sea necesario.
Sencillez de Integración.- Cuando se integran las aplicaciones los desarrolladores deben tratar de minimizar cambiar la aplicación y reducir al mínimo la cantidad de código necesaria para la integración.
Tecnología de integración.- Diferentes técnicas de integración requieren cantidades variables de software especializado y hardware. Estas herramientas especiales pueden ser costosos, pueden conducir a los proveedores de tecnología, y aumentar la carga de los desarrolladores a entender cómo usar las herramientas para integrar aplicaciones.
Formato de datos.- Aplicaciones integradas deben ponerse de acuerdo sobre el formato de los datos que intercambian o debe tener un traductor intermedio para unificar las aplicaciones que insisten en formatos de datos diferentes. Un tema relacionado es la evolución del formato de datos y capacidad de ampliación, como el formato puede cambiar con el tiempo y la forma en que afectará a las aplicaciones.
No percepción de tiempo en los datos.- La integración debe minimizar la longitud de tiempo entre una aplicación que decide compartir algunos datos y otras aplicaciones que usan esos datos. Los datos deben ser cambiados con frecuencia en trozos pequeños, en lugar de un gran conjunto de elementos relacionados. Las solicitudes deben ser informadas tan pronto como los datos compartidos estén listos para el consumo. La latencia en el intercambio de datos debe tenerse en cuenta en el diseño de la integración, el intercambio al tomar más tiempo puede ocasionar que los datos compartidos queden obsoletos y la integración se haga más compleja.
Datos o funcionalidades.- Las aplicaciones integradas no puede compartir simplemente datos, es posible que deseen compartir la funcionalidad de tal manera que cada aplicación puede invocar la funcionalidad de los demás. La invocación de la funcionalidad remota puede ser difícil de lograr, y aunque pueda parecer lo mismo que invocar la funcionalidad local, que funciona de manera muy diferente, con consecuencias significativas para la integración de lo bien que funciona.
Asincronía - El tratamiento informático es típicamente síncrono, de manera que un procedimiento espera mientras que su subprocedimiento se ejecuta. Es un hecho que el subprocedimiento está disponible cuando el procedimiento lo quiere invocar. Sin embargo, el procedimiento puede no querer esperar a que el subprocedimiento se ejecute, ya que puede que desee invocar el subprocedimiento de forma asíncrona, a partir del subprocedimiento pero luego dejar que se ejecute en segundo plano. Esto es especialmente cierto en las aplicaciones integradas, donde la aplicación a distancia no se estén ejecutando o la red no esté disponible, la aplicación de origen podría simplemente hacer disponibles los datos compartidos o iniciar una solicitud para una llamada subprocedimiento, pero luego pasan a otro trabajo, confiando en que la aplicación remota actuará en algún momento posterior.
El primer criterio es la integración de aplicaciones en sí. Si usted puede desarrollar una única aplicación independiente que no tiene que colaborar con otras aplicaciones, puede evitar el problema de la integración de todo por completo. Siendo realistas, sin embargo, incluso una empresa simple tiene múltiples aplicaciones, las aplicaciones que necesitan trabajar juntos para proporcionar una experiencia unificada para los empleados de la empresa, socios y clientes.
Otros criterios principales de decisión son:
Emparejamiento de aplicaciones.- Las aplicaciones integradas deben minimizar las dependencias entre sí de modo que cada uno pueda evolucionar sin causar problemas a los demás. La interfaz para integrar aplicaciones debe ser lo suficientemente específico para implementar la funcionalidad útil y lo suficientemente general para permitir que la aplicación pueda cambiar cuando sea necesario.
Sencillez de Integración.- Cuando se integran las aplicaciones los desarrolladores deben tratar de minimizar cambiar la aplicación y reducir al mínimo la cantidad de código necesaria para la integración.
Tecnología de integración.- Diferentes técnicas de integración requieren cantidades variables de software especializado y hardware. Estas herramientas especiales pueden ser costosos, pueden conducir a los proveedores de tecnología, y aumentar la carga de los desarrolladores a entender cómo usar las herramientas para integrar aplicaciones.
Formato de datos.- Aplicaciones integradas deben ponerse de acuerdo sobre el formato de los datos que intercambian o debe tener un traductor intermedio para unificar las aplicaciones que insisten en formatos de datos diferentes. Un tema relacionado es la evolución del formato de datos y capacidad de ampliación, como el formato puede cambiar con el tiempo y la forma en que afectará a las aplicaciones.
No percepción de tiempo en los datos.- La integración debe minimizar la longitud de tiempo entre una aplicación que decide compartir algunos datos y otras aplicaciones que usan esos datos. Los datos deben ser cambiados con frecuencia en trozos pequeños, en lugar de un gran conjunto de elementos relacionados. Las solicitudes deben ser informadas tan pronto como los datos compartidos estén listos para el consumo. La latencia en el intercambio de datos debe tenerse en cuenta en el diseño de la integración, el intercambio al tomar más tiempo puede ocasionar que los datos compartidos queden obsoletos y la integración se haga más compleja.
Datos o funcionalidades.- Las aplicaciones integradas no puede compartir simplemente datos, es posible que deseen compartir la funcionalidad de tal manera que cada aplicación puede invocar la funcionalidad de los demás. La invocación de la funcionalidad remota puede ser difícil de lograr, y aunque pueda parecer lo mismo que invocar la funcionalidad local, que funciona de manera muy diferente, con consecuencias significativas para la integración de lo bien que funciona.
Asincronía - El tratamiento informático es típicamente síncrono, de manera que un procedimiento espera mientras que su subprocedimiento se ejecuta. Es un hecho que el subprocedimiento está disponible cuando el procedimiento lo quiere invocar. Sin embargo, el procedimiento puede no querer esperar a que el subprocedimiento se ejecute, ya que puede que desee invocar el subprocedimiento de forma asíncrona, a partir del subprocedimiento pero luego dejar que se ejecute en segundo plano. Esto es especialmente cierto en las aplicaciones integradas, donde la aplicación a distancia no se estén ejecutando o la red no esté disponible, la aplicación de origen podría simplemente hacer disponibles los datos compartidos o iniciar una solicitud para una llamada subprocedimiento, pero luego pasan a otro trabajo, confiando en que la aplicación remota actuará en algún momento posterior.
Opciones de Integración
de Aplicaciones
Hay más de un enfoque para la integración de aplicaciones. Cada método tiene en cuenta algunos de los criterios de integración mejor que otros. Los diferentes enfoques se pueden resumir en cuatro estilos principales de integración:
Transferencia de archivos.- Hace que cada solicitud produzca archivos de datos compartidos para el consumo de otros y consumen los archivos que otros han producido.
Base de datos compartida.- Las aplicaciones almacenan los datos que desean compartir en una base de datos común.
Invocación de procedimiento remota.- Cada aplicación expone algunos de sus procedimientos de modo que pueden invocarse remotamente y hay aplicaciones para invocar a aquellos y ejecutar comportamiento y los datos de cambio.
Mensajería - Hace que cada aplicación se conecte a un sistema de mensajería común y el intercambio de datos y el comportamiento de invocación se realiza mediante mensajes.
Hay más de un enfoque para la integración de aplicaciones. Cada método tiene en cuenta algunos de los criterios de integración mejor que otros. Los diferentes enfoques se pueden resumir en cuatro estilos principales de integración:
Transferencia de archivos.- Hace que cada solicitud produzca archivos de datos compartidos para el consumo de otros y consumen los archivos que otros han producido.
Base de datos compartida.- Las aplicaciones almacenan los datos que desean compartir en una base de datos común.
Invocación de procedimiento remota.- Cada aplicación expone algunos de sus procedimientos de modo que pueden invocarse remotamente y hay aplicaciones para invocar a aquellos y ejecutar comportamiento y los datos de cambio.
Mensajería - Hace que cada aplicación se conecte a un sistema de mensajería común y el intercambio de datos y el comportamiento de invocación se realiza mediante mensajes.
Un Estilo de integración
Mensajería
(Messaging)
Se puede utilizar la mensajería para transferir paquetes de datos con frecuencia, inmediatamente, confiable y asincrónica, utilizando formatos personalizables.
Mensajería asíncrona es fundamentalmente una reacción pragmática a los problemas de los sistemas distribuidos. Envío de un mensaje no requiere que ambos sistemas estén arriba y listo al mismo tiempo. Además, pensando en la comunicación de una manera asincrónica obliga a los desarrolladores a reconocer que el trabajo con una aplicación remota es más lento, lo que fomenta el diseño de componentes con alta cohesión (un montón de trabajo a nivel local) y de baja adherencia (trabajo selectivo remoto).
Ventaja y Desventaja
Es a menudo el mejor
estilo para resolver muchas oportunidades de integración. También es la menos
entendida de los estilos de integración y una tecnología madura con patrones
que explican cómo hacer un buen uso de ella. La mensajería es la base para
muchos productos de integración de aplicaciones por lo que se explica su uso,
así también va un largo camino en la enseñanza de cómo utilizar estos
productos.
Un Patrón de integración
- Splitter
Se utiliza para procesar un mensaje que contiene elementos múltiples,
cada uno de los cuales pueden ser procesados de una manera diferente.
Este patrón utiliza un divisor que consume un mensaje que contiene una lista de elementos que se repiten, cada una de las cuales pueden ser procesados individualmente. El divisor publica un mensaje de uno para cada elemento individual (o un subconjunto de elementos) a partir del mensaje original.
Usa un divisor para romper el
mensaje compuesto en una serie de mensajes individuales, cada uno de ellos
contienen datos relacionados con un elemento.
El patrón que actúa de manera contraria al splitter es el “aggregator”,
el cual combina los resultados individuales pero relacionados entre sí para que
puedan ser procesados en su conjunto.
El agregador es un filtro
especial que recibe un flujo de mensajes e identifica los mensajes que están
correlacionados. Una vez que un conjunto completo de mensajes ha sido recibido,
el agregador recoge información de cada mensaje correlacionada y publica un
único mensaje, agregada al canal de salida para su posterior procesamiento.
Referencias:



No hay comentarios:
Publicar un comentario