| Redes de Servicios para el soporte de flujos de trabajo |
|
|
| Escrito por Adan Hirales, Evelio Martínez | |||||||||
| Lunes 05 de Mayo de 2008 01:18 | |||||||||
|
Por: Adán Hirales Carbajal, Evelio Martínez Martínez Resumen 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. 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 Grid de servicios 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 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.
¡Sólo los usuarios registrados pueden escribir comentarios!
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
|
|||||||||
| LAST_UPDATED2 |




.png)


