SMARTFlow-StateEngine

Introducción

El SMARTFlow-StateEngine es un componente de workflow que permite gestionar el estado de un gran numero de entidades de interés para sistemas externos. A estas entidades las denominaremos genéricamente tareas. Este componente esta concebido de la forma más genérica posible, tal que pueda manejar el estado de distintos tipos de tareas y configurar el conjunto de estados por los que pasará cada tarea durante su ciclo de vida.
Además de posibilitar la configuración de los posibles estados de cada tarea, existen otros dos aspectos configurables. Por un lado, los sistemas externos se comunicará con el SMARTFlow-StateEngine mediante eventos externos, que podrán provocarán el cambio de estado en la tarea sobre la que actuen. Por otro, cada uno de los cambios de estado podrá provocar la ejecución de una serie de acciones, que podrán afectar al propio estado de la tarea o bien a otras partes del sistema ajenas al motor de estados. El motor permite configurar tanto la gestión de los eventos que recibe del exterior como las acciones a ejecutar. Esto conduce a que el componente SMARTFlow-StateEngine sea altamente flexible y configurable.
Para modelizar el conjunto de estados por los que podrá transitar una tarea, se ha utilizado el modelo formal de las Redes de Petri. Este tipo de redes surgen como una generalización de la teoría de autómatas gracias a la cual se hace posible la modelización de sistemas dinámicos concurrentes y/o no-deterministas. Esto hace posible contemplar modelos que no hubiesen sido posibles utilizando otros sistemas dinámicos más sencillos, como por ejemplo autómatas finitos deterministas.

El sistema estará compuesto por tres módulos básicos:

  • Módulo de Transformación de Eventos, ETM.
    Realiza la transformación del evento externo y obtiene una lista de identificadores de transiciones válidos dentro de la red de petri que modeliza el flujo de trabajo al que se encuentra sujeta la tarea.
  • Módulo de Gestión de Estados, SMM.
    Obtiene el nuevo estado y la lista de acciones a ejecutar, enviandole el identificador de su red asociada y las transiciones habilitadas obtenidas en la fase anterior. Si bien las redes de petri permiten el no determinismo, dadas las caracteristicas de los sistemas sobre los que se empleará este componente dicha ejecucion se realizará de forma secuencial y determinista.
  • Módulo de Ejecución de Acciones, EAM.
    Se encarga de la ejecución de las distintas acciones asociadas al cambio de estado obtenido del SMM.

Resumen de Características Generales del componente SMARTFlow-StateEngine

  • El sistema puede gestionar de manera dinamica múltiples flujos de trabajo y las distintas entidades de interés asociadas a dichos flujos (tareas)
  • Permite definir el conjunto de estados y las transiciones entre éstos por medio de un leguaje basado en XML.
  • Permite definir el cambio de estado en función de una serie de eventos.
  • Permite especificar un conjunto de acciones a ejecutar dependiendo del estado alcanzado por las tareas.

Resumen de Funcionalidades básicas proporcionadas por el SMARTFlow-StateEngine

  • Modelización de Flujos de Trabajo mediante Redes de Petri
  • Modelización de Acciones y Transformaciones asociadas al los flujos de trabajo
  • Notificación de sucesos ocurridos en el sistema
    • Creación de una tarea.
    • Ejecución de un procesamiento de evento.
    • Suspender una tarea.
    • Reanudar una tarea.
    • Destruir una tarea.
    • Modificar los datos externos de una tarea.
    • Modificar los datos de acción de una tarea.
    • Modificar los datos de excepción de una tarea.

Tecnologías básicas empleadas en el componente SMARTFlow-StateEngine

  • Componente 100% implementado en JAVA
    • Independencia plataforma, menor coste desarrollo, aspectos dinámicos del lenguaje,…
  • Uso de tecnología CORBA
    • Utilización del componente TIDorbJ para ofrecer una interfaz CORBA a los principales objetos.
    • Facilidad en la gestión de threads y peticiones por parte del ORB.
  • XML
    • Definición de los flujos de trabajo y procesos de negocio..
  • SQL / JDBC
    • Persistencia de los datos internos del SMARTFlow-StateEngine.
    • Persistencia de los datos externos asociados a las tareas

Proyectos relacionados

El motor de Workflow TIDStateEngine Liberado

Ya esta disponible en la comunidad Morfeo la versión 1.2.0 del componente TIDStateEngine desarrollado por Telefónica I+D. La evolución del componente TIDStateEngine se instrumentará a través de diversas actividades en el marco de la comunidad Morfeo, gracias a la colaboración de recursos de la Universidad de León y recursos de Telefónica I+D.

TIDStateEngine es un componente de workflow orientado a eventos que permite la definición de múltiples flujos de trabajo mediante la unión de un sistema formal de representación de modelos de estados discretos (redes de Petri) y del lenguaje de programación Java. El componente emplea la plataforma TIDorbJ para su ejecución.

TIDStateEngine se encuentra actualmente en producción en múltiples sistemas críticos para el negocio, permitiendo desarrollar todo tipo de de flujos de trabajo y lógicas de negocio gracias a su flexibilidad y capacidad de adaptación a todo tipo de entornos.

Se proporciona:

Tags: