Las soluciones de integración representan el concepto principal de i2factory, ya que las soluciones son los elementos que te van a permitir implementar los procesos que resolverán tus necesidades de integración. Al igual que las credenciales, cada solución está asociada a un entorno creado con anterioridad.

Visión global y ejemplo

Una solución de integración en i2factory se puede considerar como un proceso de negocio en el que los actores, en lugar de ser personas, roles o departamentos de una empresa u organización, son aplicaciones software y sistemas informáticos.

En el ejemplo de abajo, el proceso que implementa la solución de integración consiste en detectar cada vez que un nuevo proyecto es creado en el CRM comercial Insightly y sincroniza la información relevante de negocio al planificador de tareas online Trello y el sistema de gestión de proyectos Redmine.


IRT.png

En resumen, los componentes principales de una solución de integración en i2factory son:

  • Puertos de comunicación: cada puerto es una instancia de un conector concreto hacia una aplicación externa. Sirve para comunicarnos con ellas a través de mensajes entrantes o salientes y pueden ser de 4 tipos distintos: de entrada, de salida, de solicitud y de respuesta. En el ejemplo de arriba vemos 3 puertos:
    • Un puerto de entrada del ERP Insightly
    • Un puerto de salida del planificador online Trello
    • Un puerto de salida del PMS Redmine
  • Tareas de integración: son las cajas de colores con diferentes símbolos conectadas entre sí en el centro del proceso. Procesan los mensajes de información que intercambian las aplicaciones externas a través de los puertos de comunicación. Hay 3 tipos principales de tareas: las enrutadoras, las modificadoras y las transformadoras. En el ejemplo de arriba tenemos, de izquierda a derecha:
    • Una tarea Filter (enrutadora)
    • Una tarea Correlation ID Setter (modificadora)
    • Una tarea Replicator (enrutadora)
    • Dos tareas Translator antes de cada puerto de salida (transformadora)

Tanto los puertos como las tareas están enlazados por los slots de comunicación, que son las líneas punteadas que los unen. No puede haber ningún elemento de una solución de integración sin conectar con otro

Además, cada uno de estos elementos debe ser completamente configurado y parametrizado antes de poder usar la solución de integración. Una vez que una solución de integración está completamente definida y configurada podemos ponerla en marcha y la solución comenzará a intercambiar mensajes de datos y comandos entre aplicaciones.



Componentes de una solución

Proceso de integracion

Conjunto de tareas y puertos interconectados.

En toda solución de integración debe haber como mínimo:


  • un puerto de entrada y otro de salida
  • un puerto de tipo respuesta.

No hay límite máximo para el número tareas y puertos por solución (excepto el puerto de respuesta, que sólo puede haber uno por solución), pero conforme mayor tamaño tenga una solución, mayor serán los requerimientos hardware necesarios para su ejecución y puede afectar al rendimiento. 

 Una solución de integración puede estar formada por varios procesos, aunque nuestra recomendación es que en cada solución sólo se implemente un único proceso.


Aplicaciones externas

Son los sistemas a integrar y pueden ser aplicaciones, procesos, servicios o repositorio de datos que alimentan, se nutren o comparten información en la solución de integración. Una solución de integración puede considerarse también una aplicación externa.

Las aplicaciones externas están representadas a través de los conectores que nos permiten comunicarnos con ellas. Podemos utilizar un conector de una aplicación concreta en un solución de integración a través de los puertos de comunicación.

 Puedes ver el listado completo de aplicaciones externa para las que dispones de conector de integración en la sección Conectores de aplicaciones.


Puertos de comunicación

Enlaces entre las aplicaciones externas y la solución de integración. Cada puerto en una solución es una instancia concreta del conector a dicha aplicación.

Convierten la información suministrada por las aplicaciones externas en mensajes o los mensajes en información enviada a las aplicaciones. Se distinguen cuatro tipos de puertos: entrada, salida, de solicitud y de respuesta, dependiendo de si se desea leer, escribir, solicitar o responder información a una aplicación.

En el siguiente ejemplo, un puerto de entrada de Dropbox ejecuta el comando "Obtener todos los archivos y carpetas" e introduce en la solución la información de cada archivo o carpeta en un mensaje distinto. En la imagen puede verse cómo cada mensaje entrante contiene información relativa al archivo como su nombre, tamaño, fecha de modificación, etc. Este mensaje pasará luego por las diferentes tareas de la solución de integración.

image2016-6-22 9:31:52.png

 Puedes saber más acerca de los distintos tipos de puertos de i2factory en el artículo sobre Conectores.

 

Mensajes

Los mensajes son el medio en el que fluye la información dentro de la solución de integración siendo introducidos en ella por los puertos de entrada y de respuesta, y se pueden utilizar para comunicarnos con las aplicaciones externas a través de los puertos de salida y solicitud.

Un mensaje es un contenedor que trasporta información sobre las que trabajan las tareas de integración y los puertos de comunicación. Representa una abstracción de una parte de información que es intercambiada y transformada a través de la solución. Cada vez que un mensaje llega a una tarea llega o puerto provoca una ejecución del mismo.

i2factory tiene un modelo de mensaje normalizado compuesto de los siguientes elementos: cabecera con metadatos y cuerpo con el contenido:

mensajes.png

Cabecera, está formada por:

  • ID: Identificador de mensaje
  • Fecha de creación: Fecha de creación del mensaje.
  • Propiedades adicionales: Estructura que contiene información necesaria para el correcto funcionamiento de i2factory. Se consideran datos de infraestructura.
  • Adjuntos: Estructura donde se almacenan elementos auxiliares que por su naturaleza no se distribuyen directamente como cuerpo del mensaje pero sí como información anexa. Consta de un mapa de pares clave-valor que contiene esta información extra

Cuerpo del mensaje: Atributo que almacena la información de negocio que circula por una solución de i2factory. Esta es la parte principal del mensaje y con la que trabajamos normalmente. 

En el editor gráfico i2factory Studio sólo se muestra el cuerpo del mensaje porque es con lo que habitualmente se trabaja en las tareas de integración. Sin embargo, determinadas tareas permiten trabajar también con la cabecera, como las tareas Header Promoter, Header Demoter, Correlation Id Setter y Return Address Setter.


 Puedes saber más acerca del sistema de mensajería de i2factory en el artículo sobre Conectores.


Tareas de integración

Las tareas de integración son las unidades funcionales más básicas de un proceso de integración, y es dónde se modifican, enrutan y transforman los mensajes de información que pasan a través del proceso. Son representadas mediante gráficamente con rectángulos con círculos a cada lado que representan los slots de entrada y salida. 

En el ejemplo de abajo se muestra el esquema de la tarea enrutadora Replicator, que toma un mensaje por su entrada y genera n copias idénticas del mismo por cada una de sus salidas:

https://confluence.i2factory.com/download/attachments/2884527/replicator_logic.png?api=v2


 Puedes saber más acerca del sistema de mensajería de i2factory en el artículo sobre Tareas de Integración.


Slot 

Canal de comunicación para conectar elementos dentro de un proceso de integración, es decir:


  • tareas entre sí 
  • tareas con puertos. 


Funciona como una cola donde se van acumulando los mensajes hasta que la tarea o puerto al que está conectada los va consumiendo.

slots_detail.png

Se representa con una fecha con una línea de puntos. En la ilustración de arriba se representa el detalle de un puerto de entrada conectado mediante un slot a la entrada de una tarea Filter. El siguiente slot conecta el puerto de salida de la tarea con la siguiente tarea.


Sección Soluciones 

En esta sección aparece el listado de soluciones de integración de tu organización.


eIZj5D3p_j6tAzDKTwynNWdzr5QUlsMnfg.png


A través de esta pantalla podrás gestionar las operaciones básicas de cada solución (arrancar, parar, reiniciar, etc), así como entrar en la vista de detalle de cada una de ellas o incluso acceder al Editor Gráfico para crear una nueva o modificar una existente.


Acciones

Si queremos realizar acciones sobre una solución hay que seleccionarla en la lista. Para ello, debes hacer clic sobre la fila que contiene la solución deseada. Una vez seleccionado la solución, se habilitarán las opciones correspondientes en la barra de comandos inferior:

 En este caso se puedes:

  • Crear una nueva solución pulsando en Nuevo. Te permitirá escoger si quieres usar el editor gráfico i2factory Studio o si crear la solución a través de Plantillas Predefinidas.
  • Editar una solución existente en el editor de soluciones i2factory Studio o a través del asistente de Plantillas.
  • Mover una solución a otro entorno. Automáticamente las credenciales asignadas a cada puerto serán desactivadas y tendrás que volver a asignarlas. Por ejemplo, puede ser útil si has terminado de probar tu solución en el entorno de pruebas y quieres moverla al entorno de producción. No puedes mover soluciones en ejecución. 
  • Copiar la solución en el mismo entorno en que se encuentra o en cualquier otro. Al igual que Mover, las credenciales serán desasignadas.
  • Versionar: puedes sacar diferentes versiones de la misma solución para poder restaurarla en el futuro a una versión preliminar en la vista de detalle de la solución. Para ello tendrás que indicar:
    • Un identificador descriptivo para la versión de la solución. Por ejemplo: V1.1_2016_11_24
    • Notas y comentarios aclaratorios sobre el estado de la solución, indicando por ejemplo las modificaciones y cambios a la versión anterior
  • Eliminar del todo la solución (ten cuidado que una vez borrada no la puedes recuperar, ¡piénsalo bien!)
  • Acceder a la Vista de Detalle donde la plataforma te ofrece más información de la solución. Por ejemplo, puedes ver el diseño gráfico del proceso, las estadísticas del paso de mensaje, el estado de cada puerto, los eventos que ocurren y los propios mensajes que pasan por la solución. También puedes acceder al listado de versiones y gestionarlas. 
  • Arrancar la solución para que empiece a funcionar. Los puertos de entrada ejecutarán sus comandos y comenzará el trasvase de información.
  • Parar la solución cuando necesites que deje de sincronizar información, por ejemplo cuando haya un sistema externo caído.
  • En caso de que ocurra algún problema, o requieras que se aplique un nuevo cambio de diseño o configuración, puedes probar a Reiniciar tu solución, quizás esto provoque que comience a funcionar correctamente o se aplique el cambio.
  • Limpiar borra toda la información almacenada de la solución, como trazas, logs, mensajes y bases de datos internas (Inner Persistence). Esta acción también podría afectar aa otras soluciones relacionadas con ella. Utiliza esta acción con cuidado y siempre en entornos de prueba o desarrollo. No utilices esta acción en entornos de producción a no ser que estés seguro de lo que haces. Sólo puedes limpiar soluciones detenidas.
  • Refrescar la pantalla para ver la información actualizada.
  • Lanzar la Ayuda inline.


Estados de una solución


 

Cada solución creada en i2factory puede pasar por varios estados. Tienes que diferenciar entre el estado del diseño y el estado de la ejecución, indicados en columnas diferentes:

  • Estado de Diseño: indica el estado del diseño gráfico de la solución y la configuración de los parámetros en tiempo de desarrollo:
    • No válido: el modelo de la solución no está terminado al 100%, falta algún elemento por conectar o algún parámetro obligatorio sin introducir. También puede ocurrir que algunas de las expresiones XPATH o XSLT necesarias en alguna tarea sea sintácticamente inválida. Si el estado es no válido, no podrás depurar ni ejecutar la solución.
    • Válido:  indica que la construcción de la solución está 100% y es sintácticamente válida o no. Podrás saberlo cuando en el Editor Gráfico no aparezca ningún símbolo de  admiración en la solución y se habilite el botón de Depurar. Si la solución es válida, ya puedes probarla con el depurador incluido en el Editor Gráfico y arrancarla en el Panel de Control.
    • Modificado:  esta etiqueta aparece cuando se edita una solución que está ya arrancada y se genera una versión distinta a la que esta en ejecución. Para que los cambios producidos en el modelo de la solución o en su configuración tengan efecto, debes reiniciar la solución. 
    • Bloqueado por: si otro compañero está trabajando sobre una solución aparecerá como bloqueada. Esto te impedirá acceder al Editor Gráfico mientras la solución siga abierta por otro usuario de la organización. 
prkILpwenG-6E_W1rOBSTcYzExUzQFNzMw.png  Ojo! Válido no es lo mismo que correcto. Que una solución está marcada cómo válida no significa que funcione correctamente o que haga lo que pensabas que tenía que hacer a la primera (para eso está el depurador gráfico).
  • Estado de Despliegue: indica el estado de proceso de la solución en tiempo de ejecución:
    • En ejecución: la solución ha sido ejecutada y está en marcha. Comenzará a generar mensajes y eventos que podrán visualizarse desde la vista de detalle. Puedes ver la fecha y hora del arranque si mantienes el cursor encima.
    • Parado: la solución se ha detenido, por lo que no se generarán nuevos mensajes ni eventos.

Como siempre, podrás conocer más información sobre el estado de una solución dejando el puntero del ratón encima de ella.