Imixs-Workflow 工作流引擎
基于 BPMN 2.0 的开源工作流引擎,用于构建以人为中心的业务流程应用。
- Star 数
- ★ 418
- 最近更新
- 4 天前
- License
- NOASSERTION
- 主语言
- Java
- FA 评分
- 44/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 企业 Java 团队需要把审批、请假、报销等以人为中心的流程从纸质或表格迁移到可编程引擎时,可用 Imixs-Workflow 建模并部署到现有 Jakarta EE 应用服务器。
- 不适合
- 无法部署 Jakarta EE 应用服务器的团队
- 希望用托管云服务一键运行、不自己运维的用户
- 需要非 Java/Jakarta EE 技术栈内嵌工作流引擎的团队
这个 Agent 能做什么,适合哪些场景?
Imixs-Workflow 是一个开源工作流引擎,用于在灵活稳健的框架上构建以人为中心的流程应用,业务逻辑通过 BPMN 2.0 建模,由引擎执行。它基于 Jakarta EE 和 Eclipse MicroProfile 标准,可运行在 Wildfly、Payara、Open Liberty、Apache TomEE 等现代应用服务器上,并已完整支持 Jakarta EE 9(Jakarta EE 8 用户仍可使用 5.2 版本)。项目由多个组件构成:核心的 imixs-workflow-engine、提供 RESTful 接口的 imixs-workflow-jax-rs、基于 Lucene 的索引模块 imixs-workflow-index-lucene,以及建模工具 Imixs-BPMN、管理工具 Imixs-Admin、开箱即用的 Imixs Process Manager 与面向 Kubernetes/Docker-Swarm 的 Imixs-Microservice。你可以把它作为依赖库嵌入自有 Java 项目,也可以作为独立微服务部署,通过 RESTful API 管理人工任务与流程流转;构建方式为 Maven,产物发布在 Maven Central。它适合需要自托管、可编程、标准化的流程引擎的团队,而不是追求托管 SaaS 或非 Java 技术栈的场景。
引擎读取用 Imixs-BPMN(Eclipse 建模工具,基于 BPMN 2.0 标准)设计的流程模型并执行其中的任务流转:接收流程实例(workitem)与事件,按模型推进状态,并触发相应的业务逻辑。它以 Maven 工件形式提供,例如 org.imixs.workflow:imixs-workflow-engine、org.imixs.workflow:imixs-workflow-jax-rs、org.imixs.workflow:imixs-workflow-index-lucene,可通过依赖引入到自有项目;其中 jax-rs 模块暴露 RESTful API,使引擎可以作为独立微服务管理人工任务。索引模块基于 Lucene 提供流程数据的检索能力。配套的 Imixs-Admin 提供基于 Web 的远程管理,Imixs Process Manager 提供带通用用户界面的完整 BPM 套件与 Docker 镜像,Imixs-Microservice 提供面向 Kubernetes 或 Docker-Swarm 的完整服务栈。构建命令为 mvn install,产物发布在 Maven Central。
- 企业 Java 团队需要把审批、请假、报销等以人为中心的流程从纸质或表格迁移到可编程引擎时,可用 Imixs-Workflow 建模并部署到现有 Jakarta EE 应用服务器。
- 架构师希望在微服务架构中把工作流能力拆成独立服务,可通过 imixs-workflow-jax-rs 的 RESTful API 将引擎部署为专用微服务。
- 流程设计人员使用 Imixs-BPMN 在 Eclipse 中按 BPMN 2.0 标准绘制流程模型,交由引擎直接执行,无需另行开发流转代码。
- 运维人员使用 Imixs-Admin 远程管理运行中的工作流实例,或通过 Imixs Process Manager 的 Docker 镜像在本地或容器平台上快速启动开发、测试环境。
- 在 Kubernetes 或 Docker-Swarm 上部署的团队,可基于 Imixs-Microservice 项目搭建完整服务栈并对外提供流程服务。
- 需要在流程数据上进行检索的开发者,可引入 imixs-workflow-index-lucene 模块,用 Lucene 索引支撑查询需求。
如何安装或部署这个 Agent?
从源码构建需要 JDK 8+、Maven 3.0.3+ 以及一个 Jakarta EE 应用服务器。在仓库目录下执行:
mvn install在自己的 Maven 项目中引入引擎、REST 接口与 Lucene 索引模块:
<dependencies>
<dependency>
<groupId>org.imixs.workflow</groupId>
<artifactId>imixs-workflow-engine</artifactId>
<version>${org.imixs.workflow.version}</version>
</dependency>
<dependency>
<groupId>org.imixs.workflow</groupId>
<artifactId>imixs-workflow-jax-rs</artifactId>
<version>${org.imixs.workflow.version}</version>
</dependency>
<dependency>
<groupId>org.imixs.workflow</groupId>
<artifactId>imixs-workflow-index-lucene</artifactId>
<version>${org.imixs.workflow.version}</version>
</dependency>
</dependencies>若想快速获得可运行环境,可下载 Imixs Process Manager 的 docker-compose 文件并启动:
docker-compose upREST 服务的具体端点、鉴权方式与初始管理员凭据在 README 中未给出,需要查阅项目主页或对应模块文档。
如何使用这个 Agent?
按照 Imixs-BPMN 的 BPMN 2.0 模型定义流程后,将引擎以 Maven 依赖或独立微服务的形式部署,调用流程实例以推进任务。构建与依赖声明示例:
<dependency>
<groupId>org.imixs.workflow</groupId>
<artifactId>imixs-workflow-engine</artifactId>
<version>${org.imixs.workflow.version}</version>
</dependency>本地或容器环境可先启动 Process Manager 获得带通用界面的环境:
docker-compose up随后通过 Imixs-Admin 远程管理实例,或经 imixs-workflow-jax-rs 提供的 RESTful API 集成到微服务架构。README 未列出具体 REST 路径与请求体格式,实际集成需参考各模块文档与示例。
这个 Agent 有哪些优点和局限?
- 以 BPMN 2.0 作为流程建模标准,模型可由 Imixs-BPMN 直接设计并由引擎执行,业务逻辑与代码解耦。
- 基于 Jakarta EE 与 Eclipse MicroProfile 标准,可部署在 Wildfly、Payara、Open Liberty、Apache TomEE 等多种应用服务器上,不绑定单一厂商运行时。
- 模块化程度高:引擎、REST 接口(imixs-workflow-jax-rs)、Lucene 索引分别作为独立 Maven 工件发布在 Maven Central。
- 提供从建模、管理到微服务部署的完整配套:Imixs-BPMN、Imixs-Admin、Imixs Process Manager 与 Imixs-Microservice。
- 采用 EPL 2.0(或 GPL-2.0-or-later)许可,可自由使用、修改与分发。
- 构建与运行依赖 JDK、Maven 以及 Jakarta EE 应用服务器,环境准备比单文件工具复杂。
- Jakarta EE 9 与 Jakarta EE 8 之间存在版本分叉(EE 8 需使用 5.2 版本),升级时需评估兼容性。
- README 未给出 REST 端点的具体路径、鉴权方式和初始凭据,首次集成需要额外查阅模块文档。
- 核心栈为 Java/Jakarta EE,非 Java 技术栈的项目难以直接嵌入使用。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Imixs-Workflow 工作流引擎 当前 | 44 · 缺口较多 | 代码库 / SDK免费 | ★ 418 | 4 天前 | Java | — |
| Budibase | 52 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 28k | 今天 | TypeScript | — |
| Bubble Lab | 58 · 缺口较多 | 网页应用免费版 + 付费版 | ★ 1.1k | 5 个月前 | TypeScript | — |
| ClickClickClick | 23 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 714 | 6 个月前 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
least_privilege:仅 maven-publish.yml 显式声明 contents: read 与 packages: write,权限范围合理,但 codeql.yml 未声明 permissions,且仓库整体未提供权限模型说明,故仅给 1。user_confirmation:README 与工作流均未描述任何需要用户确认的破坏性操作或交互确认机制,给 0。data_flow_transparency:README 说明 RESTful API 与微服务集成,但未描述数据流向、日志或遥测,仅 1。sensitive_data_handling:未见任何关于凭据、个人数据或敏感字段处理的说明,给 0。dependency_security:存在 CodeQL 工作流与 SECURITY.md 中 Dependabot 更新流程,属于可验证的依赖安全实践,但未提供 SBOM 或锁定版本证据,给 2。external_effects:README 提到 Docker 部署与微服务,但未说明外部副作用边界,仅 1。rollback:未见任何回滚、恢复或迁移回退说明,给 0。source_attribution:README 与 LICENSE 标明 EPL-2.0 及项目主页,但发布者身份未经验证,归属信息有限,给 1。
self_consistency:README 中 Jakarta EE 9 支持、版本 5.2 仍受支持、构建命令与 SECURITY.md 的支持版本表基本一致,给 2。dependency_availability:README 给出 Maven Central 坐标与 JDK8+/Maven 3.0.3+ 前置条件,依赖来源明确,给 2。failure_messages:README、SECURITY.md 与工作流均未描述错误信息、诊断或故障提示机制,给 0。
audience_and_scenarios:README 明确面向 BPMN 2.0 人类工作流应用开发者,并列出 Wildfly、Payara、Open Liberty、TomEE 等场景,给 2。capability_boundaries:仅说明是工作流引擎与 REST API,未列出明确的能力边界或非目标,给 1。trigger_precision:工作流触发条件(push、pull_request、schedule、release)清晰,但 Agent 层面的触发语义未定义,给 1。environment_fit:README 给出 JDK、Maven、Jakarta EE 应用服务器与 Docker 环境要求,适配说明较完整,给 2。
information_architecture:README 按构建、BPMN、REST API、Admin、Process Manager、Microservice、License 分节,结构清晰,给 2。install_notes:提供 Maven 依赖片段、mvn install 命令与前置条件,安装说明充分,给 2。naming_stability:模块命名(imixs-workflow-engine、imixs-workflow-jax-rs、imixs-workflow-index-lucene)一致且稳定,给 2。examples_and_faq:仅有依赖示例与 docker-compose 提示,缺少 FAQ 与完整使用示例,给 1。known_limitations:SECURITY.md 列出不支持版本,但 README 未系统说明已知限制,给 1。license:LICENSE.md 完整给出 EPL-2.0 与 GPL-2.0-or-later 双许可全文及 SPDX 标识,给 3。versioning_changelog:README 提到 5.2 版本与 Jakarta EE 8/9 差异,但无 CHANGELOG 文件或版本历史,给 1。maintenance_responsibility:README 指向 issue tracker 与 discussions,SECURITY.md 给出漏洞报告路径,但未明确维护者角色与响应承诺,且发布者未经验证,给 1。
output_usability:作为工作流引擎,README 提供 Maven 坐标、构建命令与部署路径,输出可直接用于集成,给 2。marginal_value:提供 BPMN 2.0 引擎、REST API 与微服务集成,对目标场景有明确增量价值,给 2。cost_benefit:依赖 Jakarta EE 应用服务器,部署成本中等,但功能覆盖与开源许可使收益合理,给 2。
claim_traceability:README 声明 Jakarta EE 9 支持、版本 5.2 支持等,但未提供对应测试或发布证据链接,给 1。cross_source_corroboration:README、LICENSE.md、SECURITY.md 与工作流之间在许可、版本支持上部分互证,但缺少代码或测试佐证,给 1。fact_inference_separation:文档多为事实陈述,但未区分已验证事实与推断,给 1。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者身份未经验证,不应据此推断可靠性或安全性。
- 未发现任何用户确认、回滚或恢复机制,部署前需自行评估破坏性操作风险。
- 缺少敏感数据处理与数据流透明度的说明,涉及个人或业务数据时需额外审查。
- 依赖安全仅依赖 CodeQL 与 Dependabot,未提供 SBOM 或版本锁定证据。
- README 中的 Jakarta EE 9 支持与版本支持声明缺少可追溯的测试或发布证据。