Forma especializada de gestión del flujo de trabajo en un entorno científico.
Un sistema de flujo de trabajo científico es una forma especializada de sistema de gestión de flujo de trabajo diseñado específicamente para componer y ejecutar una serie de pasos computacionales o de manipulación de datos, o flujo de trabajo , en una aplicación científica. [1]
Aplicaciones
Los científicos distribuidos pueden colaborar en la realización de experimentos científicos a gran escala y aplicaciones de descubrimiento de conocimientos utilizando sistemas distribuidos de recursos informáticos, conjuntos de datos y dispositivos. Los sistemas de flujo de trabajo científicos desempeñan un papel importante a la hora de hacer posible esta visión.
Los sistemas de flujo de trabajo científicos más especializados proporcionan una interfaz de programación visual que permite a los usuarios construir fácilmente sus aplicaciones como un gráfico visual conectando nodos entre sí, y también se han desarrollado herramientas para construir dichas aplicaciones de manera independiente de la plataforma. [2] Cada borde dirigido en el gráfico de un flujo de trabajo normalmente representa una conexión desde la salida de una aplicación hasta la entrada de la siguiente. Una secuencia de tales aristas puede denominarse tubería .
Un sistema de gestión de flujo de trabajo bioinformático es un sistema de flujo de trabajo científico especializado centrado en la bioinformática .
Flujos de trabajo científicos
Los flujos de trabajo científicos computarizados más simples son scripts que solicitan datos, programas y otras entradas y producen resultados que pueden incluir visualizaciones y resultados analíticos. Estos pueden implementarse en programas como R o MATLAB , utilizando un lenguaje de secuencias de comandos como Python con una interfaz de línea de comandos o, más recientemente, utilizando aplicaciones web de código abierto como Jupyter Notebook .
Hay muchos motivos para diferenciar los flujos de trabajo científicos de los flujos de trabajo de procesos comerciales tradicionales. Éstas incluyen:
- proporcionando un entorno fácil de usar para que los propios científicos de aplicaciones individuales creen sus propios flujos de trabajo.
- proporcionando herramientas interactivas para los científicos que les permiten ejecutar sus flujos de trabajo y ver sus resultados en tiempo real.
- simplificando el proceso de compartir y reutilizar flujos de trabajo entre los científicos.
- permitiendo a los científicos rastrear la procedencia de los resultados de la ejecución del flujo de trabajo y los pasos de creación del flujo de trabajo.
Al centrarse en los científicos, el enfoque del diseño de un sistema de flujo de trabajo científico se aleja de las actividades de programación del flujo de trabajo , generalmente consideradas por los entornos de computación grid para optimizar la ejecución de cálculos complejos en recursos predefinidos, a una visión específica del dominio de qué tipos de datos, herramientas y los recursos distribuidos deben ponerse a disposición de los científicos y cómo se pueden hacer fácilmente accesibles y con requisitos específicos de calidad de servicio [3]
Los flujos de trabajo científicos ahora son reconocidos [ ¿por quién? ] como elemento crucial de la ciberinfraestructura , facilitando la e-Ciencia. Los flujos de trabajo científicos, que normalmente se encuentran encima de una capa de middleware , son un medio mediante el cual los científicos pueden modelar, diseñar, ejecutar, depurar, reconfigurar y volver a ejecutar sus procesos de análisis y visualización . Parte del método científico establecido es crear un registro de los orígenes de un resultado, cómo se obtuvo, métodos experimentales utilizados, calibraciones y parámetros de la máquina, etc. Es lo mismo en la e-Ciencia, excepto que los datos de procedencia son un registro de las actividades de flujo de trabajo invocadas, los servicios y bases de datos a los que se accede, los conjuntos de datos utilizados, etc. Esta información es útil para que un científico interprete los resultados de su flujo de trabajo y para que otros científicos establezcan confianza en el resultado experimental. [4]
Compartir flujos de trabajo
Se han desarrollado comunidades de redes sociales como myExperiment para facilitar el intercambio y el desarrollo colaborativo de flujos de trabajo científicos. Galaxy proporciona mecanismos de colaboración para editar y publicar definiciones de flujo de trabajo y resultados de flujo de trabajo directamente en la instalación de Galaxy.
Análisis
Una suposición clave que subyace a todos los sistemas de flujo de trabajo científicos es que los propios científicos podrán utilizar un sistema de flujo de trabajo para desarrollar sus aplicaciones basándose en diagramas de flujo visuales, diagramas lógicos o, como último recurso, escribir código para describir la lógica del flujo de trabajo. Los potentes sistemas de flujo de trabajo facilitan que quienes no son programadores esbocen primero los pasos del flujo de trabajo utilizando herramientas simples de diagramas de flujo y luego conecten varias herramientas de adquisición de datos, análisis e informes. Para obtener la máxima productividad, los detalles del código de programación subyacente normalmente deben ocultarse.
Se pueden utilizar técnicas de análisis de flujo de trabajo para analizar las propiedades de dichos flujos de trabajo y verificar ciertas propiedades antes de ejecutarlos. En el artículo "El diseño e implementación de una herramienta de análisis de flujo de trabajo " de Curcin et al. [5]
Los autores señalan que introducir el análisis y la verificación de programas en el mundo del flujo de trabajo requiere una comprensión detallada de la semántica de ejecución del lenguaje del flujo de trabajo, incluidas las propiedades de ejecución de los nodos y arcos en el gráfico del flujo de trabajo, la comprensión de las equivalencias funcionales entre los patrones del flujo de trabajo y muchas otras cuestiones. Hacer este tipo de análisis es difícil, y abordar estas cuestiones requiere aprovechar los métodos formales utilizados en la investigación en ciencias de la computación (por ejemplo, redes de Petri ) y desarrollar herramientas a nivel de usuario para razonar sobre las propiedades tanto de los flujos de trabajo como de los sistemas de flujo de trabajo. La falta de este tipo de herramientas en el pasado impidió que las soluciones automatizadas de gestión del flujo de trabajo maduraran y pasaran de ser juguetes académicos agradables a herramientas de nivel de producción utilizadas fuera del estrecho círculo de los primeros usuarios y entusiastas del flujo de trabajo.
Sistemas notables
Los sistemas de flujo de trabajo científicos notables incluyen: [6]
- Anduril , bioinformática y análisis de imágenes.
- Apache Airavata , un sistema de gestión de flujo de trabajo de propósito general [7]
- Apache Airflow , un sistema de gestión de flujo de trabajo de propósito general
- Apache Taverna , muy utilizada en bioinformática, astronomía, biodiversidad.
- BioBIKE , una plataforma bioinformática basada en la nube
- Bioclipse , un banco de trabajo gráfico, con un entorno de scripting que permite realizar acciones complejas como una especie de flujo de trabajo.
- Collective Knowledge , un flujo de trabajo general basado en Python y un marco de crowdsourcing experimental con API JSON y administrador de paquetes multiplataforma
- Common Workflow Language , un lenguaje de flujo de trabajo basado en YAML desarrollado por la comunidad , compatible con múltiples implementaciones de motores.
- Cuneiforme , un lenguaje de flujo de trabajo funcional .
- Discovery Net , uno de los primeros ejemplos de un sistema de flujo de trabajo científico
- Galaxy , inicialmente orientado a la genómica
- GenePattern , un potente sistema de flujo de trabajo científico que brinda acceso a cientos de herramientas de análisis genómico. [8]
- Kepler , un sistema de gestión del flujo de trabajo científico
- KNIME , una plataforma de análisis de datos de código abierto
- Nextflow , un sistema de flujo de trabajo de análisis de datos bioinformáticos
- OnlineHPC , diseñador de flujos de trabajo científicos en línea y kit de herramientas informáticas de alto rendimiento
- Orange , visualización y análisis de datos de código abierto
- Pegasus , un sistema de gestión de flujo de trabajo científico de código abierto [9]
- Pipeline Pilot , programación gráfica con muchas herramientas para abordar flujos de trabajo de Cheminformatics [10]
- Lenguaje de secuencias de comandos paralelo Swift , un lenguaje de secuencias de comandos con muchas de las capacidades de los sistemas de flujo de trabajo científicos integradas.
- VisTrails , un sistema de flujo de trabajo científico desarrollado en Python
Se han identificado más de 280 sistemas de flujo de trabajo de análisis de datos computacionales, [11] aunque la distinción entre flujos de trabajo de análisis de datos y flujos de trabajo científicos es fluida, ya que no todos los sistemas de flujo de trabajo de análisis se utilizan con fines científicos.
Ver también
Referencias
- ^ Sol, LiewChee; P, AtkinsonMalcolm; Galea Michelle; Fong, Ang Tan; MartínPaul; Van, HemertJano I. (12 de diciembre de 2016). "Flujos de trabajo científicos". Encuestas de Computación ACM . 49 (4): 1–39. doi :10.1145/3012429. hdl : 20.500.11820/774ef69e-a499-4bd2-a609-09f050e682ae . S2CID 9408644.
- ^ D. Johnson; et al. (Diciembre de 2009). "Un creador de flujo de trabajo Grid independiente de middleware para aplicaciones científicas" (PDF) . 2009 Quinta Conferencia Internacional IEEE sobre Talleres de Ciencia Electrónica . págs. 86–91. doi :10.1109/ESCIW.2009.5407993. ISBN 978-1-4244-5946-9. S2CID 3339794.
- ^ Kyriazis, Dimóstenes; Tserpes, Konstantinos; Menychtas, Andreas; Litke, Antonis; Varvarigou, Theodora (2008). "Un innovador mecanismo de mapeo de flujo de trabajo para Grids en el marco de la Calidad de Servicio". Sistemas informáticos de generación futura . 24 (6): 498–511. doi : 10.1016/j.future.2007.07.009.
- ^ Captura automática y almacenamiento eficiente de la procedencia de experimentos de e-Ciencia. Computación de concurrencia: práctica. Experto. 2008; 20:419–429
- ^ Curcin, V.; Ghanem, M.; Guo, Y. (2010). "El diseño e implementación de una herramienta de análisis de flujo de trabajo". Transacciones filosóficas de la Royal Society A: Ciencias matemáticas, físicas y de ingeniería . 368 (1926): 4193–4208. Código Bib : 2010RSPTA.368.4193C. doi : 10.1098/rsta.2010.0157 . PMID 20679131.
- ^ Ladrador, Adán; Van Hemert, Jano (2008), "Scientific Workflow: A Survey and Research Directions", Procesamiento paralelo y matemáticas aplicadas, Séptima Conferencia Internacional, PPAM 2007, Artículos seleccionados revisados , Apuntes de conferencias en informática, vol. 4967, Gdansk, Polonia: Springer Berlin / Heidelberg, págs. 746–753, CiteSeerX 10.1.1.105.4605 , doi :10.1007/978-3-540-68111-3_78, ISBN 978-3-540-68105-2
- ^ Marru, Suresh; Gardler, Ross; Slominski, Aleksander; Duma, comió; Perera, Srinath; Weerawarana, Sanjiva; Gunathilake, Lahiru; Herath, Chathura; Tangchaisin, Patanachai; Perforar, Marlon; Mattmann, Chris; Singh, Raminder; Gunarathne, Thilina; Chinthaka, Eran (18 de noviembre de 2011). Actas del taller de ACM de 2011 sobre entornos informáticos de puerta de enlace - GCE '11 . pag. 21. doi : 10.1145/2110486.2110490. ISBN 9781450311236. S2CID 18341808.
- ^ Reich, Michael; Liefeld, Ted; Gould, Josué; Lerner, Jim; Tamayo, Pablo; Mesirov, Jill P (2006). "Patrón genético 2.0". Genética de la Naturaleza . 38 (5): 500–501. doi :10.1038/ng0506-500. PMID 16642009. S2CID 5503897.
- ^ Deelman, Ewa ; Vahi, Karan; Juve, Gedeón; Rynge, esteras; Callaghan, Scott; Maechling, Philip J.; Mayani, Rajiv; Chen, Weiwei; Ferreira da Silva, Rafael; Livny, Mirón; Wenger, Kent (mayo de 2015). "Pegasus, un sistema de gestión de flujo de trabajo para la automatización científica". Sistemas informáticos de generación futura . 46 : 17–35. doi : 10.1016/j.future.2014.10.008 .
- ^ "BIOVIA Pipeline Pilot | Aplicación de creación de flujo de trabajo científico para análisis de datos". Accelrys.com . Consultado el 4 de diciembre de 2016 .
- ^ "Sistemas de flujo de trabajo existentes". Wiki de lenguaje de flujo de trabajo común . Archivado desde el original el 17 de octubre de 2019.
enlaces externos
- Yu, Jia; Buyya, Rajkumar (2005). "Una taxonomía de sistemas de flujo de trabajo científicos para computación grid". Registro ACM SIGMOD . 34 (3): 44. CiteSeerX 10.1.1.63.3176 . doi :10.1145/1084805.1084814. S2CID 538714.
- Sistemas de flujo de trabajo científico: ¿puede haber un modelo único para todos? artículo en CIBEC'08 que compara las características de múltiples sistemas de flujo de trabajo científico.
- Lista de herramientas de software relacionadas con flujos de trabajo científicos en el sitio web de DataONE