• No results found

Chapter 3 Detection and Prevention of SQL Injection Attacks

3.3 The C ANDID Transformation

La aplicación de Gestor de Workflow que proponemos hará un uso intensivo del módulo de WF de la web corporativa, que básicamente cubre las siguientes funcionalidades:

Definir y mantener workflows.

Definir estados para cada uno de los pasos del flujo.

Control del flujo mediante la gestión de estados para cada uno de los pasos del flujo. Lógica para definir las transiciones entre los pasos del flujo.

Integración con el servidor de correo (módulo de comunicaciones).

Asimismo, detectamos la necesidad de una pequeña extensión en cuanto a las funcionalidades de dicho módulo para cubrir por completo los requerimientos planteados por el portal de servicios profesionales. Básicamente, las funcionalidades que debe cubrir el módulo gestor de workflows del portal de servicios son las siguientes:

Gestor de workflows que permita el modelado y creación de flujos de trabajo a medida. Monitor de workflows en curso que permita al administrador consultar el estado y actuar sobre flujos de trabajo que estén en proceso de ejecución.

Para la herramienta de modelado y creación de workflows a medida se aprovechará la funcionalidad proporcionada por el módulo de workflow de la web corporativa que se describió en el capítulo 5. Ello permitirá generar y almacenar los distintos workflows en forma de ficheros XML que contienen la configuración y los datos propios de cada flujo de trabajo.

Dada la imposibilidad de conocer con exactitud la totalidad de los futuros flujos de trabajo que serán necesarios en el portal de servicios profesionales, se han diseñado tres workflows básicos que corresponderán a tres procesos genéricos de provisión, mantenimiento y baja de un servicio. Estos WF predefinidos hacen las veces de plantillas, es decir, son WF donde lo único que tienen definido de antemano son las tareas y las transiciones entre ellas, pero que tienen todavía por definir el resto de datos propios.

La solución propuesta consistirá en una consola de administración desde la que se podrán crear nuevas plantillas de WF para los procesos que se desee. El fichero XML que se genere para estas plantillas contendrá código con instrucciones (script) que serán interpretadas por un instanciador de workflows en el momento de lanzarse un flujo concreto. Dicho instanciador de workflows será responsable de generar un nuevo fichero XML con los datos concretos del flujo que se está lanzando para el servicio correspondiente y pasárselo al motor de navegación del módulo básico para que gestione la navegación a través de su flujo.

Fig.6.5. Ejemplo de plantilla predefinida

A la hora de crear o modificar un servicio desde la herramienta de gestión de servicios (wizard) el usuario administrador podrá acceder mediante un link a una página web que le mostrará una lista con los WF predefinidos. El administrador seleccionará uno de los WF predefinidos y le

asignará un nombre con el que el WF quedará asociado al servicio en cuestión. El siguiente paso consistirá en informar para el servicio concreto que se está creando el resto de datos propios del WF necesarios para el correcto flujo de información entre los estados. Por lo tanto, estos datos se almacenarán como datos del servicio al que está asociado el WF, con lo que se conserva un mínimo número de WF genéricos. El resultado final es que, cuando se lanza un nuevo proceso de workflow para una solicitud de un servicio determinado, se crea una instancia específica de WF a partir de la suma de la información contenida en el WF predefinido asociado al servicio más los datos relevantes para workflow de dicho servicio.

INSTANCIADOR DE WORKFLOWS

Interpreta la plantilla XML

Combina los datos del servicio con las instrucciones del WF Genera un nuevo fichero de navegación para la instancia de WF MÓDULO DE WORKFLOW Motor de navegación Máquina de estados Ficheros XML de navegación 2 Plantilla XML MÓDULO DE GESTIÓN DE SERVICIOS Repositorio de estados Repositorio de instancias de servicios Ficheros de configuración de servicios 3 4 5 ID de Instancia de WF Datos del servicio USUARIO SOLICITA SERVICIO Instancia de WF 1 INTERACCIONES CON LOS USUARIOS

(NAVEGACIÓN)

6 6

Fig.6.6. Funcionamiento del instanciador de Workflows

Esta solución permite contar con un número mínimo de WF a gestionar (los predefinidos) suficientemente genéricos para dar soporte a los diferentes procesos de solicitud de servicios (altas, bajas, etc.).

Respecto a la otra funcionalidad de este módulo, el monitor de worfklows en curso permitirá al usuario administrador la gestión de las asignaciones de roles a los procesos de workflow, acceder a un proceso de workflow en concreto, ver en qué estado se encuentra y actuar en lugar de la persona asignada. Esta aplicación estará estructurada en dos páginas. La primera

mostrará un listado con todos los servicios y sus procesos asociados (provisión, baja, etc). Para obtener este listado se utilizará la interfaz (API) del módulo de gestión de servicios que proporciona acceso a la funcionalidad de dicho módulo responsable del acceso al repositorio de servicios. Haciendo clic sobre uno de los procesos asociados se accederá a un segundo listado que mostrará todos los workflows (instancias) que están en ejecución para ese proceso. Para cada workflow mostrará la siguiente información:

Usuario que ha lanzado el proceso Fecha de lanzamiento del workflow Estado en el que se encuentra

Fecha en la que se ha producido el último cambio de estado Usuario responsable del estado en el que se encuentra

Para ello este módulo contendrá la lógica que permita recuperar toda esa información del fichero de configuración XML para la instancia del WF correspondiente. Por último, si el administrador hace clic sobre un WF concreto, accederá al detalle de la tarea y podrá validar o aceptar de forma que el proceso evolucione hacia el siguiente estado del flujo.