Un sistema de flujo de trabajo científico es una forma especializada de un 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ífico juegan un papel importante para permitir esta visión.
Los sistemas de flujo de trabajo científico 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, y también se han desarrollado herramientas para construir tales aplicaciones de una manera independiente de la plataforma. [2] Cada borde dirigido en el gráfico de un flujo de trabajo típicamente representa una conexión desde la salida de una aplicación a la entrada de la siguiente. Una secuencia de tales bordes 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 bioinformática .
Flujos de trabajo científicos
Los flujos de trabajo científicos computarizados más simples son scripts que llaman a datos, programas y otras entradas y producen salidas que pueden incluir visualizaciones y resultados analíticos. Estos pueden implementarse en programas como R o MATLAB , usando un lenguaje de scripting como Python o Perl con una interfaz de línea de comandos , o más recientemente usando aplicaciones web de código abierto como Jupyter Notebook .
Existen 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 científicos de aplicaciones individuales creen sus propios flujos de trabajo.
- proporcionando herramientas interactivas para los científicos que les permitan ejecutar sus flujos de trabajo y ver sus resultados en tiempo real.
- simplificar 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 en cuadrícula para optimizar la ejecución de cálculos complejos en recursos predefinidos, a una vista específica del dominio de qué tipos de datos, herramientas y los recursos distribuidos deberían estar disponibles para 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 un elemento crucial de la ciberinfraestructura , facilitando la e-ciencia. Por lo general se sienta encima de un middleware capa, flujos de trabajo científico son un medio por el cual los científicos pueden modelar, diseñar, ejecutar, depurar, reconfigurar y volver a ejecutar sus análisis y visualización de tuberías . 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 e-Science, 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]
Compartiendo flujos de trabajo
Las comunidades de redes sociales como myExperiment se han desarrollado para facilitar el intercambio y el desarrollo colaborativo de los 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ífico es que los propios científicos podrán utilizar un sistema de flujo de trabajo para desarrollar sus aplicaciones basadas en diagramas de flujo visuales, diagramas lógicos o, como último recurso, escribiendo código para describir la lógica del flujo de trabajo. Los potentes sistemas de flujo de trabajo facilitan a los no programadores el bosquejar primero los pasos del flujo de trabajo utilizando herramientas simples de diagrama de flujo y luego conectar varias herramientas de adquisición de datos, análisis e informes. Para una productividad máxima, los detalles del código de programación subyacente normalmente deben estar ocultos.
Las técnicas de análisis de flujo de trabajo se pueden utilizar para analizar las propiedades de dichos flujos de trabajo para verificar ciertas propiedades antes de ejecutarlas. Un ejemplo de un marco de análisis formal teórico para la verificación y elaboración de perfiles de los aspectos de flujo de control de los flujos de trabajo científicos y sus aspectos de flujo de datos para el sistema Discovery Net se describe en el documento, "El diseño e implementación de una herramienta de análisis de flujo de trabajo" por Curcin y col. [5]
Los autores señalan que la introducción del 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 tal análisis es difícil y abordar estos problemas requiere construir sobre métodos formales utilizados en la investigación en ciencias de la computación (por ejemplo, redes de Petri ) y construir sobre estos métodos formales para 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 tales herramientas en el pasado impidió que las soluciones automatizadas de gestión del flujo de trabajo maduraran desde juguetes académicos agradables hasta herramientas de nivel de producción utilizadas fuera del círculo estrecho de los primeros usuarios y entusiastas del flujo de trabajo.
Sistemas notables
Los sistemas de flujo de trabajo científico notables incluyen: [6]
- Anduril , bioinformática y análisis de imágenes
- Apache Airavata , un sistema de gestión de flujo de trabajo de uso general [7]
- Apache Airflow , un sistema de gestión de flujo de trabajo de uso general
- Apache Taverna , ampliamente utilizado 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 le 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 de experimentos 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 dirigido a la genómica
- GenePattern , un poderoso 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 de flujo de trabajo científico
- KNIME , una plataforma de 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]
- OnlineHPC , diseñador de flujo de trabajo científico en línea y kit de herramientas informáticas de alto rendimiento
- Visualización y análisis de datos de código abierto, naranja
- Pipeline Pilot , programación gráfica con muchas herramientas para abordar los flujos de trabajo de Cheminformatics [10]
- Lenguaje de secuencias de comandos en paralelo rápido , un lenguaje de secuencias de comandos con muchas de las capacidades de los sistemas de flujo de trabajo científico incorporadas.
- 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
- Sistemas de gestión del flujo de trabajo de bioinformática
- e-ciencia
- Computación en cuadrícula
- Motor de flujo de trabajo
Referencias
- ^ Sol, LiewChee; P, AtkinsonMalcolm; GaleaMichelle; Fong, AngTan; MartinPaul; Van, HemertJano I. (12 de diciembre de 2016). "Flujos de trabajo científicos" . Encuestas de computación ACM . doi : 10.1145 / 3012429 .
- ^ D. Johnson; et al. (Diciembre de 2009). Un generador de flujo de trabajo Grid independiente de middleware para aplicaciones científicas (PDF) . 2009 5ª Conferencia Internacional IEEE sobre Talleres de E-Ciencia . págs. 86–91. doi : 10.1109 / ESCIW.2009.5407993 . ISBN 978-1-4244-5946-9.
- ^ Kyriazis, Dimosthenis; Tserpes, Konstantinos; Menychtas, Andreas; Litke, Antonis; Varvarigou, Theodora (2008). "Un mecanismo de mapeo de flujo de trabajo innovador para Grids en el marco de la Calidad de Servicio". Sistemas informáticos de futura generación . 24 (6): 498–511. doi : 10.1016 / j.future.2007.07.009 .
- ^ Captura automática y almacenamiento eficiente de la procedencia del experimento de e-Science. Computación de concurrencia .: Pract. Exper. 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 la ingeniería . 368 (1926): 4193–4208. Código bibliográfico : 2010RSPTA.368.4193C . doi : 10.1098 / rsta.2010.0157 . PMID 20679131 .
- ^ Barker, Adam; Van Hemert, Jano (2008), Scientific Workflow: A Survey and Research Directions , Lecture Notes in Computer Science, 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 Parámetro desconocido
|book-title=
ignorado ( ayuda ) - ^ Marru, Suresh; Gardler, Ross; Slominski, Aleksander; Douma, Ate; Perera, Srinath; Weerawarana, Sanjiva; Gunathilake, Lahiru; Herath, Chathura; Tangchaisin, Patanachai; Pierce, Marlon; Mattmann, Chris; Singh, Raminder; Gunarathne, Thilina; Chinthaka, Eran (18 de noviembre de 2011). Actas del taller de ACM de 2011 sobre entornos de computación Gateway - GCE '11 . pag. 21. doi : 10.1145 / 2110486.2110490 . ISBN 9781450311236.
- ^ Reich, Michael; Liefeld, Ted; Gould, Joshua; Lerner, Jim; Tamayo, Pablo; Mesirov, Jill P (2006). "GenePattern 2.0". Genética de la naturaleza . 38 (5): 500–501. doi : 10.1038 / ng0506-500 . PMID 16642009 .
- ^ Deelman, Ewa; Vahi, Karan; Juve, Gideon; Rynge, Mats; Callaghan, Scott; Maechling, Philip J .; Mayani, Rajiv; Chen, Weiwei; Ferreira da Silva, Rafael; Livny, Miron; Wenger, Kent (mayo de 2015). "Pegasus, un sistema de gestión de flujo de trabajo para la automatización de la ciencia" . Sistemas informáticos de futura generación . 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 Common Workflow Language . Archivado desde el original el 17 de octubre de 2019.
enlaces externos
- Yu, Jia; Buyya, Rajkumar (2005). "Una taxonomía de los sistemas de flujo de trabajo científico para la computación en red". Registro ACM SIGMOD . 34 (3): 44. CiteSeerX 10.1.1.63.3176 . doi : 10.1145 / 1084805.1084814 .
- Sistemas de flujo de trabajo científico: ¿se puede aplicar una talla para todos? documento en CIBEC'08 comparando las características de múltiples sistemas de flujo de trabajo científico.
- Lista de herramientas de software relacionadas con los flujos de trabajo científicos en el sitio web de DataONE