sábado, 24 de octubre de 2009

Tempo "Una implementacion de BPEL4People"

Hace algun tiempo, estuve revisando la arquitectura del marco Tempo, componente clave de Intalio Community, y quise compartir una notas en español que he realizado, traducciones que pueden servir para mayor comprension.

Tempo es una implementacion del estandar Bpel4People, que gestiona diversos patrones de flujo de trabajo. Una de sus principales caracteristicas es que expone sus APIs mediante Web Services.

Que tecnologias utiliza
  1. Integracion nativa basada en XForms mediante Orbeon Xforms.
  2. Integracion de LDAP para autentificacion de usuario y autorizacion basada en roles.
  3. Persistencia de Tareas via JDBC.
  4. Persistencia de archivos (attachments), via JDBC.
  5. Lista de tareas (interfase de usuario), implementadas mediante Spring MVC y JSP/JSTL.

Caracteristicas mas importantes

  1. Su modelo de objetos de tareas es extensible.
  2. Proprociona tareas para aceptar, completar, cancelar, reasignar, etc.
  3. Cuenta con un marco de Seguridad basado en “role-based access control (RBAC)” y single sign-on (SSO).
  4. Cuenta con un set de procesos BPEL definidos para el workflow (asignacion de tareas, escalacion, etc.)
  5. Cuenta con servicios para el despliegue (Deployment Service) de las tareas, formas, etc.
  6. Soporte de Attachments.
  7. Interfases basadas en Web-service y REST.

Arquitectura

Tempo esta conformado por una arquitectura de tres capas.

Capa de interfase de usuario: Capa que gestiona las interacciones con los usuarios finales.

Capa de flujo de trabajo: Capa que gestiona el ciclo de vida de las tareas. Esta capa es ejecutada por un conjunto de procesos(WS-BPEL) llamados procesos de gestión de tareas, y pueden ser accesados a través de una interfaz de servicios Web.

Capa de persistencia: Esta capa persiste las propiedades de las tareas, y es ejecutado por tareas de gestión de servicios (JPA-JDBC), que son accesados a través de una interfaz de servicios Web.

Componentes Base

Modelo de Objetos de Tareas: Define las propiedades de la tarea en un package común de que se reutiliza en otros componentes.

Marco de Seguridad: es un marco para el control de acceso basado en roles, e l cual implemente la autorización, autenticación, single-sign-on, etc.

Servicio de archivos adjuntos: es una interfaz que se utiliza para almacenar los archivos adjuntos en una base de datos o un sistema de gestion de contenido "Content Management System" CMS.

Servicio de Dispatcher: Componente que actúa como un proxy entre los procesos para la gestión de tareas y el marco de interfaz de usuario.

Servicio de implementación de flujo de trabajo: proporciona una interfaz para implementar los flujo de trabajo en la base de datos.

Componentes (Un poco mas de detalle)

XForms Manager (XFM) : El Administrador de XForms (XFM) ,es el responsable de gestionar el codigo XForms y sus acciones. Este componente es invocado por el marco de la interfaz de usuario cuando el usuario hace clic en la lista de tareas para se gestione un documento XForms. XFM invoca el los servicios de gestión de tareas para recuperar los datos de la tarea específica y obtiene la forma XForms a través del servicio de implementación de flujo de trabajo. XFM agrega herramientas para las acciones de flujo de trabajo: botónes para enviar o terminar una tarea, herramientas para la gestión de archivos adjuntos, entre otros; este mecanismo permite que se añadan acciones nuevas al formulario sin afectar el código de sus definiciones. XFM utiliza Orbeon Presentation Server para ejecutar XForms., también utiliza el idioma Orbeon XPL, y ejecuta acciones del flujo de trabajo invocando el servicio de gestión de tareas y procesos BPEL, los cuales son expuestos como servicios Web. XFM se despliega como un archivo WAR en prácticamente cualquier servidor de aplicaciones J2EE.

Interfaz de usuario Marco (UIFW) : El marco de interfaz de usuario (UIFW) es la aplicación web que ofrece a los usuarios el acceso a la ejecucion de procesos. Proporciona una pantalla de inicio de sesión y lista de tareas. Es el responsable de mostrar la forma adecuada cuando el usuario selecciona una tarea. UIFW se despliega como un archivo WAR en prácticamente cualquier servidor de aplicaciones J2EE.

Los procesos de gestión de Trabajo (PGT): Gestiona el ciclo de vida de las tareas de flujo de trabajo desde el momento se crea una tarea hasta que finaliza. Es responsable de cambiar los estados de tareas de acuerdo a las normas y las interacciones del usuario tal como se define en sus procesos. Este componente, invoca el Servicio de Gestión de tareas para cambiar de estado de tareas de una manera segura. Proporciona servicios a los que los usuarios puedan realizar acciones de flujo de trabajo. También interactúa con los procesos BPEL donde se utilizan las actividades de flujo de trabajo, a través del Servicio Dispatcher. El TMP implementa WS-BPEL 2.0 y se despliega en cualquier WS-BPEL 2.0 compatible, como Apache Ode.

El Servicio de Gestión de Tareas (TMS) : Es el servicio de datos que persiste las tareas en la base de datos proporcionando servicios a las aplicaciones cliente para que puedan acceder y modificar datos de la tarea de una forma segura. TMS es utilizado por el Marco de la interfaz de usuario para recuperar la lista de tareas, el Administrador de XForms para recuperar datos de tareas y los procesos de gestión de tareas para cambiar el estado de la tarea. El componente TMS es implementado en Java como un servicio web mediante Axis2.

El Marco de Seguridad (SFW) : Proporciona un acceso basado en roles de interfaz de control para los sistemas de seguridad, fundamentalmente para la autorización, autenticación y single sign-on. Es utilizado por el Marco de interfaz de usuario para la autenticación de usuarios en el inicio de sesión y por el Servicio de Gestión de Tareas para la autorización de cualquier llamada al TMS.
Servicio de archivos adjuntos de tareas (TAS): es un servicio que persiste archivos adjuntos vinculados a las tareas. La API soporta agregar y eliminar los archivos adjuntos (archivos binarios), junto con alguna descripción y tipo de contenido.

Saludos;

No hay comentarios: