Redes de Servicios para el soporte de flujos de trabajo

Por: Adán Hirales Carbajal, Evelio Martínez Martínez

Resumen
La calendarización de tareas con dependencias de precedencia o flujos de trabajo (workflow) es considerada en términos de complejidad computacional como NP, a otra escala, la creación de ambientes para su ejecución posee grandes retos. Múltiples problemas en la e-Ciencia y e-Comercio pueden ser modelados a través de flujos de trabajo, los cuales requieren de mecanismos de representación, administración de ejecución y estrategias que garanticen su finalización. El presente artículo describe investigaciones y problemas abiertos en el desarrollo de contextos de ejecución para flujos de trabajo.

Introducción
Cuando un usuario realiza una consulta en una máquina de búsqueda como Google, Yahoo, MSN, etc. una serie de servicios entran acción. Tales servicios pueden proveer transparencia de localización, comunicación, buen desempeño u otras operaciones. El producto final de la consulta es una página digitalizada en la ventana del navegador, defínase la ejecución de la anterior acción (consulta) como una tarea. Ahora consideremos un escenario donde para realizar un trabajo sea necesario solucionar un conjunto de tareas. Asumamos adicionalmente que existen dependencias entre ellas, por ejemplo: el pago de un vuelo aéreo no se efectúa si no re realiza una reservación primero, donde la reservación y el pago son consideradas tareas y la dependencia es impuesta por el orden en que se debe realizar las mismas. Escenarios más elaborados pueden surgir en la solución de trabajos complejos y por ende, requerir de un conjunto de tareas con posibles restricciones, tales como:

Precedencia: la ejecución de tareas es impuesta por dependencias que existen entre ellas.
Tiempo: es posible imponer límites de tiempo al trabajo en general o a nivel tarea. Los tiempos actúan como un factor de tolerancia que indica cuanto tiempo está dispuesto el usuario esperar para que su trabajo se realice.
Costo: un presupuesto puede ser asignado a cada tarea o al trabajo en general. Tal, puede ser utilizado para negociar prestadores de servicios, licenciamiento, acceso a información, entre otros recursos.

En la industria y en medios de investigación un conjunto de tareas con restricciones de precedencia que solucionan un problema es modelado a través de un flujo de trabajo, este concepto es más reciente en medios científicos en comparación con su contraparte industrial. Para dar soporte para su representación y ejecución, múltiples modelos, lenguajes y arquitecturas distribuidas se encuentran en investigación. El objetivo final es proveer un nuevo ambiente de trabajo, donde en vez de contar con un conjunto de aplicaciones (programas) independientes, posiblemente incompatibles y en el peor de los casos fuera del alcance del usuario, debido a su alto costo o profundo nivel de conocimiento necesario para su mantenimiento o utilización. El usuario disponga de un ambiente que muestre de manera lógica un conjunto de tareas, permita establecer diferentes tipos de precedencia y provea mecanismos para la definición de otras restricciones. Retos para en redes de servicios

Para generar ambientes con soporte para ejecución de flujos de trabajo, uno de los problemas iniciales a resolver es su representación. Una de las principales iniciativas en la generación de patrones de flujos de trabajo ha sido liderada por el Workflow Pattern Initiative, proyecto auspiciado por la Universidad Tecnológica de Eindhoven (Holanda) y la Universidad de Tecnología de Queensland (Australia). Quienes han desarrollado más de 100 patrones de control, recursos, datos y manejo de excepciones. Otro producto importante generado por la iniciativa es el lenguaje YAWL (Yet Another Workflow Language) el cual provee un medio para la representación, análisis e intercambio de flujos de trabajo. Otras tecnologías han adoptado las contribuciones propuestas por la iniciativa, ejemplo de ello son: UML (Unified Modeling Language), BPEL (Business Process Execution Language), Websphere MQ, COSA, iPlanet, SAP Workflow, Staffware, FileNet, jBPM, por mencionar algunos.

Como segundo reto, investigadores intentan responder la pregunta ¿cómo ejecutar un flujo de trabajo sobre un conjunto de recursos distribuidos? Existen dos vertientes para tratar este problema, la primera considera que la administración de un flujo de trabajo sea distribuida, dado que cada tarea puede ser asignada y ejecutada en un anfitrión independiente, sin embargo, el sincronizar la ejecución de las tareas es complejo, no se conoce en que tiempo iniciar su ejecución. Otro problema es que no existe una visión global de la colocación de las tareas en la infraestructura distribuida, por lo que una vez finalizado el trabajo de una tarea ¿cómo determina la ubicación física de un sucesor? ¿Cómo detectar si una tarea predecesor o sucesor sigue activa o a generado una excepción? Investigaciones en la primer vertiente son escasas dada su complejidad.

La segunda vertiente propone la administración de flujos de trabajo a través de un control centralizado, el cual tenga una visión general de los servicios ofertados por la Grid, carga de trabajo y los recursos disponibles. Tal información es utilizada por el control centralizado para calendarizar y asignar tareas a los anfitriones que conforman la arquitectura. Podría pensarse que esta solución es más sencilla de realizar, sin embargo, múltiples problemas de calendarización han sido comprobados NP. Por lo que no tienen una solución exacta, solo se puede aproximar alguna solución y no siempre es óptima. Adicionalmente, para conocer el estado de la infraestructura es necesario monitorearla constantemente. Un tercer reto a resolver se origina por la naturaleza dinámica de la Grid. Un calendarizador puede estimar una planificación que cumpla con restricciones asociadas al flujo de trabajo, sin embargo, durante su ejecución no se garantiza que la planificación se respete, debido a retardos inducidos por congestionamiento de la red, retiro de control en presencia de tareas con mayor preferencia o la indisponibilidad de un recurso. Lo que hace necesario monitorear la ejecución de un plan de trabajo y recalendarizar ante la presencia de variaciones que pongan en riesgo su cumplimiento. Otras soluciones previo la ejecución del plan de trabajo buscan reservar recursos, sin embargo no ofrecen solución alguna ante la indisponibilidad de servicios o anfitriones.

Qué son las grids computacionales
El término grid, computacionalmente hablando, es difícil de comprender y definir, vamos a establecer una definición más formal del término introducida por el padre de las grids, Carl Kesselman. Kesselman y Ian Foster en su libro "The Grid: blueprint for a New Computing Infrastructure" de 1998, establece la siguiente definición "Un grid computacional es una infraestructura de hardware y software que provee acceso confiable, constante, omnipresente y barato a sofisticadas capacidades computacionales." En un artículo titulado “The Anatomy of the Grid,” de Steve Tuecke, Ian Foster y Carl Kesselman se definió el mismo concepto enfocándolo a asuntos sociales y de políticas, refiriéndose a que una grid computacional está enfocada con "el compartir recursos coordinados y la solución de problemas en organizaciones virtuales multiinstitucionales y dinámicas". El concepto clave es la habilidad o capacidad para negociar la compartición de recursos entre muchas entidades participantes, tales como proveedores y consumidores, y así utilizar la misma pila de recursos resultantes para algún propósito.

Grid de servicios
Una Grid de servicios es una infraestructura distribuida que oferta servicios de procesamiento, almacenamiento, acceso a dispositivos especializados y/o acceso a información especializada a través de alguna política de disponibilidad (autoría, reconocimiento, agradecimiento, etc). Para su construcción la coalición de flujo de trabajo (WFMC, www.wfmc.org) ha desarrollado el modelo de referencia el cual consiste un componente para la definición de procesos, un gestor de flujos y una máquina de flujos cuya funcionalidad consiste en controlar y monitorear la ejecución de múltiples instancias de flujos de trabajo. Aplicaciones con funcionalidades descritas previamente son referenciadas en literatura como WMS (Workflow Management Systems). Otro modelo WMS con soporte de calidad de servicio ó QoS fue propuesto por Jai Yu y Rajkumar Buyya. Funcionalidades adicionales incluyen: descubrimiento de servicios, reservación adelantada y monitoreo de calidad de servicio. A través de la reservación adelantada se pretende minimizar el incumplimiento de una planeación mediante su recalendarización. El anterior modelo brinda un mayor grado de confiabilidad al considerar mecanismos que prevén fallos e inconsistencias en la provisión de servicios. Sin embargo, no se proveen la heurísticas que soluciones el problema respectivo de cada componente. La Figura 1 ilustra el modelo WMS-QoS.

 


Fig. 1. Arquitectura WFM-QoS. Composición de planificador, componente de reservación, ambiente de ejecución y monitor QoS para la ejecución de flujos de trabajo.

Son numerosos los problemas que se debe solucionar con el objetivo de ofrecer un contexto de ejecución. Algunas consideraciones adicionales se listan a continuación:

Monitoreo. ¿Con que frecuencia consultar el estado de un flujo en ejecución? ¿Cómo discernir entre información útil, redundante e inútil? ¿Es necesario tener conocimiento global o parcial de la ejecución de un flujo de trabajo? ¿Cuál es la magnitud de información que esperamos almacenar y como representarla tal que su procesamiento sea eficiente?

Descubrimiento de servicios. Al crecer el sistema e incorporar nuevos servicios es necesario proveer mecanismos que permitan a sus usuarios finales filtrar los servicios por utilidad o relevancia a su trabajo. Algunas interrogantes a estudiar son: ¿qué mecanismo utilizar para construir un directorio de servicios, centralizados o distribuidos? ¿Qué heurísticas de minería de datos utilizar tal que capture el perfil de usuario y permita identificar los servicios con mayor relación a su trabajo? Incluso, como presentar la información recabada ante el usuario tal que sea entendible y fácil de manipular impone otro reto.

Planeación y calendarización. Probablemente, mayores esfuerzos han sido puestos en buscar una solución fiable al problema de asignación de tareas a servicios o anfitriones. No existe una solución única para el problema de calendarización e incluso múltiples casos específicos han sido comprobados NP. Es de esperarse que investigadores continúen buscando heurísticas o aproximaciones que generen planeaciones óptimas. Algunas heurísticas recientes para la calendarización de tareas independientes son: MET (Minimum Execution Time), MCT (Minimum Completion Time), Min-Min, Min-Max, Suffrage, XSuffrage, por mencionar algunas. Algunas heurísticas para la calendarización de flujos de trabajo son: PCH (Path Clustering Heuristic), Dynamic PCH, QoS Scheduling, etc.

Reproducción de experimentos. En medios de investigación es natural esperar que una experimentación sea reproducible. Para un flujo de trabajo relacionado con un problema de investigación, ¿Cómo aseguramos la reproducción del su ejecución dado que los servicios son elegidos dinámicamente? Es posible obtener los mismos resultados, pero la conducción del experimento puede variar en diferentes corridas.

Conclusiones
En el presente artículo se han identificado retos y problemas para la creación de contextos de ejecución de flujos de trabajo sobre Grids de Servicios. La penetración del concepto de flujos de trabajo es más reciente en medios de investigación, donde se busca: definir y evaluar lenguajes, modelos arquitectónicos e heurísticas de calendarización.

Otras consideraciones importantes conciernen: la definición de criterios no intrusivos para el monitoreo, representación y abstracción de la información instrumentada, la necesidad de mecanismos de filtrado y minería de servicios, confiabilidad durante la ejecución de un flujo de trabajo, creación de heurísticas óptimas para problemas de calendarización específicos y la necesidad de fiabilidad en reproducción de experimentos. Los anteriores son temas activos en distintos medios de investigación en cómputo distribuido y redes.

Los autores, Adan Hirales y Evelio Martínez, son docentes-investigadores de la Facultad de Ciencias de la Universidad Autónoma de Baja California de la Ciudad de Ensenada en México, pueden contactarlos en los correos ahirales(at)uabc.mx y evelio(at)uabc.mx, respectivamente.

Hits: 7413

Licencia

Creative Commons License El contenido de la web está bajo licencia Creative Commons. Eres libre de copiar, distribuir y comunicar públicamente la obra. No puedes utilizar esta obra para fines comerciales. Si alteras, transformas o creas una obra a partir de esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta. Debes reconocer la autoría de la obra en los términos especificados por el propio autor o licenciante mediante un enlace a este Sitio. 

<a href="http://www.eveliux.com/mx/"> Eveliux.com </a>