Seleccionar una plataforma o un software de integración no es tarea fácil. Para ello es imprescindible entender cuáles son sus principales funciones y saber cómo rentabilizarlas. Desde la multinacional InterSystems se han identificado siete funciones que son de vital importancia y que deben ser cubiertas por un software de integración para poder abordar un proyecto con éxito:

1- Conectabilidad.

La capacidad de conexión es la función primaria de toda plataforma de integración puesto que ofrece un canal de comunicación entre la plataforma y cada una de las aplicaciones que se están integrando. Muchas plataformas de integración realizan esta tarea mediante “adaptadores”, que no son otra cosa que líneas de código previamente escritas, capaces de hablar los protocolos nativos de fuentes, conectándolas con la plataforma. Estos adaptadores tienen como principal objetivo acelerar el proceso de integración, y también reducir los costes asociados a la creación código para cada conexión que se realice.
Así, al elegir una plataforma de integración es necesario comprobar el número y el tipo de adaptadores que incluye, y si esa plataforma puede conectar todas las aplicaciones ya existentes. De igual modo, es importante comprobar que disponemos de las herramientas necesarias para crear nosotros mismos los adaptadores necesarios en cada caso, y si son fáciles de crear y utilizar.
Este último aspecto puede llegar a ser vital porque es casi seguro que tendremos que integrar alguna aplicación específica que nos obligue a desarrollar un adaptador a medida.

2- Abstracción

La abstracción es la segunda de las funciones básicas de cualquier plataforma de integración. Se trata del proceso de representar los datos y funcionalidades de las aplicaciones existentes en un formato unificado. Este formato unificado elimina la necesidad de conocer todos los protocolos, datos o modelos de programación que utiliza cada una de las aplicaciones que estamos integrando. Algunos de los mecanismos de abstracción más utilizados son:
– J2EE. Es extremadamente útil cuando se trabaja con aplicaciones y lógica de negocio, pero no lo es tanto cuando se trata de datos.
– XML y servicios Web. Nos permiten trabajar cómodamente con aplicaciones asociadas que ya tengan servicios Web activos. Para aplicaciones que no tengan tal funcionalidad implementada (antiguas o a medida) deberemos hacer implementaciones a medida o de terceros para hacerlas compatibles con los servicios Web.
– “Formas canónicas”. Están basadas en la representación estandarizada de datos o funciones mediante tecnología de Orientación a Objetos. Es posible que necesitemos transformar previamente en la Plataforma de Integración aquellos datos y funciones que queremos abstraer. Este mecanismo es muy flexible y potente si, además, logramos que estas formas canónicas puedan exponerse o proyectarse como clases estándar Java, .NET, Servicios Web, C++, etc.
Es tremendamente importante que la plataforma de integración disponga de una abstracción flexible: que permita representar datos y funcionalidades y de cualquier aplicación a integrar; que la abstracción se consiga sin tener que modificar las aplicaciones integradas; que sea independiente de las tecnologías usadas para el desarrollo de las aplicaciones existentes (.Net, J2EE, Relacional, C++,…) pero que a su vez se pueda proyectar a cualquiera de estas tecnologías en forma nativa.

3- Coordinación

En un sistema integrado, la información circula entre aplicaciones distintas bajo la apariencia de mensajes. La coordinación, tercera de las funciones de una plataforma de integración, es la capacidad para administrar el flujo de mensajes. Muchas plataformas de integración incluyen brokers de mensajería que garantizan el envío, la transformación de los datos y el enrutado inteligente de mensajes.
En este caso, el rendimiento y fiabilidad del motor de mensajería de la plataforma son cruciales, ya que afectará directamente a la escalabilidad y robustez del nuevo sistema. La capacidad del broker de mensajes también es una característica a tener muy en cuenta puesto que de él depende la elección de la ruta más adecuada según el contenido del mensaje, la disponibilidad de las herramientas de transformación, el almacenamiento de los mensajes.

4- Almacenamiento

La integración genera un gran volumen de datos (metadatos, mensajes, información del estado de procesos de larga duración, índices de bases de datos federadas, etc.).
Por tanto, la plataforma de integración necesita un mecanismo para almacenar, recuperar y analizar dichos datos. Desafortunadamente, muchas de estas plataformas sólo disponen de unas capacidades de almacenamiento muy rudimentarias. En estos casos, para conseguir una mayor capacidad de almacenamiento es necesario que la empresa adquiera y posteriormente integre una nueva base de datos externa, con los consiguientes costes adicionales, y con una mayor complejidad en todo el proyecto.
Por tanto es imprescindible conocer de antemano si vamos a disponer de una capacidad de almacenamiento suficiente no sólo para toda la información que se genera al cruzar aplicaciones, datos que utilizará frecuentemente la plataforma sino también para soportar nuevas aplicaciones compuestas (aunque se creen en entornos dispersos) y asegurar el rendimiento de los sistemas: ¿Podremos almacenar todo la información gestionada en la plataforma de integración (incluida la gran cantidad de mensajes que se generan) sin que haya merma en el rendimiento?.

5- Orquestación

Por Orquestación identificamos la capacidad de la plataforma de integración para modelar y automatizar los procesos de negocio. El motor de orquestación es capaz de interpretar estos modelos de procesos y ejecutarlos.
En la actualidad, muchas incluyen herramientas gráficas propias para modelar los procesos de negocio, pero son pocas las que son capaces de generar código XML estándar a partir de los diagramas que definen los procesos y, así, interoperar con herramientas de modelado de terceros.
En la elección de nuestra plataforma de integración deberemos considerar la flexibilidad que proporciona su capacidad de orquestación. Nos referimos a disponer de una herramienta gráfica de modelado; interoperar con productos BPM de terceros; soportar el diseño de procesos directamente con código y que lenguaje de script utiliza; soportar gestión de workflow con interacción humana; disponer de un motor de reglas que puedan ser fácilmente definidas por personal que no sean programadores para cambiar el flujo de ejecución del proceso.

6- Desarrollo

Cuando hablamos de integración, el desarrollo se refiere a la creación de los últimos elementos que hemos de desarrollar en un proyecto de integración: aplicaciones y portales que utilicen elementos integrados y nuevos procesos de negocio.
Estas aplicaciones compuestas utilizan todas las características de una plataforma de integración, y ofrecen a la empresa una nueva lógica de negocio y un interfaz de usuario para todos los servicios abstraídos y los procesos previamente comentados.
Uno de los factores que tenemos que tener en cuenta a la hora de elegir una plataforma de integración es que tenga las mismas características que desearíamos que tuviese un entorno de desarrollo rápido: sencillez de utilización, capacidad para modelar nuevos procesos de negocio, y creación de nuevos componentes utilizando el mismo entorno de desarrollo (por ejemplo, adaptadores, transformaciones, mensajes, monitorización de actividad de negocio, etc.).

7- Gestión

Por lo que hemos presentado, es fácil entender que los sistemas integrados están entre los difíciles de gestionar. Por ello, es vital que la plataforma de integración ofrezca una buena capacidad de gestión, ya sea cuando nos encontremos todavía en la fase de desarrollo de nuestro nuevo sistema integrado, o cuando éste haya entrado en producción.
Además, sería más que recomendable que la plataforma de integración pudiese almacenar cada mensaje que circula por el sistema, ya que gracias al análisis de esta información nos será mucho más sencillo identificar y corregir cualquier problema.
Por todo ello, cuando estemos eligiendo una plataforma de integración, también tendremos que valorar la sencillez y el alcance de sus herramientas de gestión.
Algunas de las preguntas que debemos hacernos son: ¿Almacena esta plataforma suficientes mensajes como para poder realizar un diagnóstico completo ante cualquier fallo? ¿Podemos analizar estos datos en tiempo real? ¿Existe la posibilidad de ampliar estas herramientas de gestión? Y en caso de que lo necesitemos, ¿soportará la plataforma la utilización de herramientas de gestión (por ejemplo, SNMP) de cualquier otra compañía? Y por último, ¿podremos rastrear cualquier mensaje que se haya generado en cualquier proceso de negocio?