用 EWOKS 构建科学工作流:科研流水线加入服务套件
科研数据很少以分析完成的状态到达。它们以仪器原始输出的形态到来,需要经过还原、校准,并每次都按同样的步骤序列处理,由不同的人、在不同的日子、以可复现的方式完成。为满足这一需求,openEduSuite 现已集成 EWOKS,这是由欧洲同步辐射光源(ESRF)开发的开源科学工作流框架,作为支持统一单点登录的套件服务。
EWOKS 是什么
EWOKS(Extensible Workflow System,可扩展工作流系统)由欧洲同步辐射光源(ESRF)软件组开发,是一个元工作流系统:位于工作流定义与执行引擎之间的抽象层。工作流被表达为任务图,随后可在任何受支持的引擎上执行,目前包括 pypushflow、Orange、Dask 以及 EWOKS 内置引擎。核心特性:
- Python 生态:任务就是普通的 Python 代码,现有分析代码可以被封装复用,而无需重写。
- 引擎可移植:同一份工作流定义可在不同执行引擎上运行,而无需修改工作流本身。
- Web 界面与 REST API:工作流可在浏览器中创建、编辑和监控(ewoksweb),也可通过编程方式驱动。
- 可序列化的定义:工作流以 JSON 或 YAML 存储,并可作为论文中的数据溯源文档。
EWOKS 为大规模实验的数据流水线而生,在那里可复现性没有商量余地。这正是高校科研团队同样需要的特性。
以与其他服务同等的标准接入
这次集成遵循与其他套件服务相同的模式:
- 单点登录:该服务位于标准认证网关之后,面向中央 Keycloak 身份提供方验证用户。科研人员使用既有账号登录;无需本地用户管理。
- 经验证的跳转链路:SSO 路径(网关启动、身份提供方登录、重定向回应用)由自动化浏览器测试覆盖,登录流程出问题时会在用户发现之前暴露。
- 门户入口:EWOKS 以"Scientific Workflows"的名义出现在门户主服务网格中,与邮件、文件及其他日常服务并列可见。
它在整体中的位置
服务套件现已覆盖三层互补的自动化,各司其职:
| 层 | 服务 | 职责 |
|---|---|---|
| 通用自动化 | n8n | 连接 Web 服务、通知、行政粘合 |
| 科学工作流 | EWOKS | 以任务图形式承载可复现的科研数据流水线 |
| 交互式计算 | JupyterHub、Dask | 探索分析、notebook、分布式计算 |
各层互不替代。一个科研团队可以在 notebook 中原型化一个数据还原步骤,将其产品化为 EWOKS 任务,再让 n8n 工作流在流水线完成时向频道发送通知。
下一步
- 基于组的授权:在现有角色模型之上,细化哪些工作流与结果对哪些科研团队可见。
- 示例工作流:面向常见分析模式、可直接改编的小型流水线库。
- 文档:套件集成指南,让其他机构能够部署同样的模式。
行动号召
- 了解 EWOKS:框架文档见 ewoks.readthedocs.io。
- 带上流水线:把团队现有的 Python 分析代码封装为第一个任务图,在套件中试用。
- 参与共建:加入 openEduSuite 社区,共同规划科研数据路线图。
从仪器到洞见:可复现的流水线如今是数字工作场所的一部分。
署名声明: EWOKS 由欧洲同步辐射光源(ESRF)开发,此处作为开源软件使用。本文为独立内容,与 ESRF 无任何隶属或背书关系。其他所有产品名称均为其各自所有者的商标。