RuoYi-Vue-Plus工作流RuoYi-Vue-Plus工作流
首页
产品介绍
行业案例
工作流选型
RuoyiFlow官网
首页
产品介绍
行业案例
工作流选型
RuoyiFlow官网
  • 工作流引擎选型指南

    • 工作流选型指南
    • 信创工作流解决方案
    • Flowable vs Camunda

信创工作流解决方案

概述

信创(信息技术应用创新)是国家推动信息技术自主可控的重要战略,要求核心软硬件实现国产化替代。工作流引擎作为企业核心业务系统的重要组成部分,在信创环境下的选型和部署需要特别关注国产化适配、自主可控和生态兼容性。

本文从 Activiti、Flowable、Camunda 三款主流工作流引擎出发,分析其在信创环境下的技术支持能力,并提供场景化选型建议。

一、信创环境要求

1.1 信创认证体系

认证类型说明关键指标
CPU 架构国产 CPU 兼容性鲲鹏/龙芯/飞腾/海光
操作系统国产 OS 兼容性麒麟/统信UOS/欧拉
数据库国产数据库适配达梦/人大金仓/GaussDB
中间件国产中间件支持东方通/金蝶/普元
自主可控代码自主度开源许可证/二次开发

1.2 信创项目典型场景

场景类型特点典型客户
政府项目预算有限、安全要求高、流程规范各级政府部门
国企项目大型组织、复杂流程、稳定要求央企/地方国企
金融行业高并发、高可靠、监管严格银行/证券/保险
能源制造流程复杂、离线场景、工业集成电力/石油/制造
教育医疗预算敏感、用户量大学校/医院

二、三款工作流引擎信创支持能力

2.1 Activiti 信创支持

支持情况

维度支持能力说明
国产 CPU⭐⭐依赖 JVM 实现,需适配
国产 OS⭐⭐⭐纯 Java 应用,兼容性好
国产数据库⭐⭐需自行适配数据库脚本
国产中间件⭐⭐⭐标准 Servlet 容器
社区支持⭐社区活跃度低
信创认证⭐无官方认证

优势

  • 生态成熟,历史案例多
  • 轻量级,资源占用少
  • 学习曲线平缓

劣势

  • 核心团队出走,更新缓慢
  • 对新特性支持不足
  • 信创适配需自行完成

2.2 Flowable 信创支持

支持情况

维度支持能力说明
国产 CPU⭐⭐⭐⭐基于 JVM,广泛适配
国产 OS⭐⭐⭐⭐⭐纯 Java 应用,完全兼容
国产数据库⭐⭐⭐⭐内置 Liquibase,适配灵活
国产中间件⭐⭐⭐⭐⭐标准 Servlet 3.0+
社区支持⭐⭐⭐⭐中文社区活跃
信创认证⭐⭐⭐多家厂商通过认证

优势

  • Activiti 原班人马,技术延续性好
  • 版本迭代快,功能持续更新
  • 国内信创适配案例丰富
  • 中文资料和社区支持完善

劣势

  • 部分高级功能需商业版
  • 企业级支持不如 Camunda

2.3 Camunda 信创支持

支持情况

维度支持能力说明
国产 CPU⭐⭐⭐⭐基于 JVM,支持良好
国产 OS⭐⭐⭐⭐⭐纯 Java 应用,完全兼容
国产数据库⭐⭐⭐⭐企业版官方支持
国产中间件⭐⭐⭐⭐⭐标准 Servlet 3.0+
社区支持⭐⭐⭐⭐全球社区活跃
信创认证⭐⭐⭐⭐企业版可通过认证

优势

  • 功能最完整,企业级特性强
  • 性能和稳定性优异
  • Zeebe 云原生引擎支持高并发
  • 企业版提供信创认证服务

劣势

  • 商业版成本高
  • 学习曲线陡峭
  • 中文社区相对较小

三、信创环境技术解决方案

3.1 CPU 架构适配方案

三款工作流引擎均为纯 Java 应用,信创 CPU 适配本质是 JVM 适配问题。

适配策略

CPU 架构推荐方案JVM 选择
鲲鹏 (ARM64)直接部署OpenJDK aarch64 / 毕昇 JDK
龙芯 (LoongArch)测试适配龙芯 JDK / LoongArch OpenJDK
飞腾 (MIPS64)兼容模式适配版 JDK
海光 (x86_64)直接部署标准 OpenJDK

部署配置

# 针对鲲鹏架构的 Dockerfile 示例
FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker/openjdk:11-jdk-aarch64

WORKDIR /app
COPY flowable.war /app

# JVM 参数针对 ARM 架构优化
ENV JAVA_OPTS="-server -XX:+UseG1GC -XX:MaxRAMPercentage=75.0"

EXPOSE 8080
CMD ["java", "$JAVA_OPTS", "-jar", "/app/flowable.war"]

3.2 操作系统适配方案

支持的国产操作系统

操作系统内核版本推荐版本备注
麒麟 OS4.19+V10 SP3市场占有率最高
统信 UOS4.19+20 专业版桌面端表现好
欧拉 OpenEuler4.19+22.03 LTS服务器端推荐
中科方德4.14+7.0通用场景
中标麒麟4.19+V7兼容性良好

系统配置要点

# /etc/sysctl.conf 内核参数优化
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
vm.swappiness = 10

# 文件描述符限制
* soft nofile 65536
* hard nofile 65536

3.3 数据库适配方案

3.3.1 达梦数据库适配

Flowable 适配:

<!-- pom.xml 添加达梦驱动 -->
<dependency>
    <groupId>com.dameng</groupId>
    <artifactId>DmJdbcDriver18</artifactId>
    <version>8.1.2.192</version>
</dependency>

<!-- application.yml 配置 -->
spring:
  datasource:
    url: jdbc:dm://192.168.1.100:5236/FLOWABLE?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    driver-class-name: dm.jdbc.driver.DmDriver
    username: FLOWABLE
    password: FLOWABLE123

flowable:
  database-schema-update: true
  database-type: dm

创建 Liquibase 变更集:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

    <changeSet id="dm-engine-create" author="xinchuang">
        <createTable tableName="ACT_GE_PROPERTY">
            <column name="NAME_" type="VARCHAR(64)"/>
            <column name="VALUE_" type="VARCHAR(300)"/>
            <column name="REV_" type="INTEGER"/>
        </createTable>
        <addPrimaryKey tableName="ACT_GE_PROPERTY" columnNames="NAME_"/>
    </changeSet>
</databaseChangeLog>

3.3.2 人大金仓适配

spring:
  datasource:
    url: jdbc:kingbase8://192.168.1.101:54321/FLOWABLE
    driver-class-name: com.kingbase8.Driver
    username: SYSTEM
    password: KINGBASE123

flowable:
  database-type: postgres  # 金仓基于 PostgreSQL 协议
  database-schema-update: true

3.3.3 华为 GaussDB 适配

spring:
  datasource:
    url: jdbc:opengauss://192.168.1.102:8000/FLOWABLE?targetServerType=master
    driver-class-name: org.opengauss.Driver
    username: gaussdb
    password: GaussDB@123

flowable:
  database-type: postgres
  database-schema-update: true

3.3.4 数据库兼容性对比

功能/数据库达梦 DM人大金仓GaussDBOceanBaseTiDB
事务支持✅✅✅✅✅
CLOB/BLOB✅✅✅✅✅
序列支持⚠️✅✅✅✅
索引优化⚠️✅✅✅✅
分布式事务⚠️✅✅✅✅
Flowable 适配难度中低低低低
Camunda 适配难度中低低低低

说明:⚠️ 表示部分支持或需额外配置

3.4 中间件适配方案

3.4.1 东方通 TongWeb

<!-- web.xml 配置 -->
<context-param>
    <param-name>tongweb.config.mode</param-name>
    <param-value>production</param-value>
</context-param>

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/FlowableDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

3.4.2 金蝶 Apusic

# apusic-application.xml
<resource-ref>
    <res-ref-name>jdbc/FlowableDS</res-ref-name>
    <jndi-name>jdbc/FlowableDS</jndi-name>
    <res-type>javax.sql.DataSource</res-type>
</resource-ref>

3.5 信创环境完整部署架构

┌─────────────────────────────────────────────────────────────┐
│                        信创云平台                              │
│                    (欧拉 Cloud / 麒麟云)                      │
└─────────────────────────────────────────────────────────────┘
                              │
         ┌────────────────────┼────────────────────┐
         │                    │                    │
    ┌────▼────┐         ┌────▼────┐         ┌────▼────┐
    │  负载均衡  │         │  负载均衡  │         │  负载均衡  │
    │  东方通   │         │  金蝶   │         │  宝兰德   │
    └────┬────┘         └────┬────┘         └────┬────┘
         │                    │                    │
         └────────────────────┼────────────────────┘
                              │
         ┌────────────────────┼────────────────────┐
         │                    │                    │
    ┌────▼────┐         ┌────▼────┐         ┌────▼────┐
    │ 应用节点1 │         │ 应用节点2 │         │ 应用节点3 │
    │ (鲲鹏)   │         │ (飞腾)   │         │ (海光)   │
    │ Flowable│         │ Flowable│         │ Flowable│
    │/Camunda │         │/Camunda │         │/Camunda │
    └────┬────┘         └────┬────┘         └────┬────┘
         │                    │                    │
         └────────────────────┼────────────────────┘
                              │
         ┌────────────────────┼────────────────────┐
         │                    │                    │
    ┌────▼────┐         ┌────▼────┐         ┌────▼────┐
    │  达梦DM  │         │ 人大金仓 │         │ GaussDB │
    │  主库   │         │  主库   │         │  主库   │
    └────┬────┘         └────┬────┘         └────┬────┘
         │                    │                    │
    ┌────▼────┐         ┌────▼────┐         ┌────▼────┐
    │  达梦DM  │         │ 人大金仓 │         │ GaussDB │
    │  备库   │         │  备库   │         │  备库   │
    └─────────┘         └─────────┘         └─────────┘

四、场景化选型建议

4.1 政府/事业单位项目

场景特征:

  • 预算有限,审批流程严格
  • 流程相对规范,复杂度中等
  • 对自主可控要求高
  • 运维团队技术水平有限

推荐方案:Flowable 开源版

选型理由说明
成本控制开源免费,符合预算要求
流程规范BPMN 2.0 支持完整,满足审批需求
自主可控代码完全开源,支持深度定制
运维友好部署简单,故障排查容易
社区支持中文社区活跃,问题解决快

技术栈建议:

CPU: 鲲鹏 ARM64
OS: 欧拉 OpenEuler 22.03 LTS
DB: 达梦 DM8
中间件: 东方通 TongWeb 7.0
工作流: Flowable 7.0.x

4.2 大型国企项目

场景特征:

  • 组织架构复杂,流程嵌套深
  • 高并发场景,性能要求高
  • 有一定的商业支持预算
  • 安全合规要求严格

推荐方案:Camunda Enterprise

选型理由说明
功能完整企业级功能齐全,满足复杂需求
性能优异Zeebe 引擎支持高并发
信创认证企业版可提供信创认证
专业支持官方技术支持服务
合规性满足行业监管要求

技术栈建议:

CPU: 海光 x86_64
OS: 麒麟 OS V10 SP3
DB: 人大金仓 V8R6
中间件: 金蝶 Apusic 10.0
工作流: Camunda 8.x Enterprise
编排: Camunda Zeebe

4.3 金融行业项目

场景特征:

  • 高并发、高可用、强一致性
  • 复杂业务规则和风控流程
  • 监管合规要求极高
  • 预算充足

推荐方案:Camunda Enterprise + Zeebe

选型理由说明
高并发Zeebe 云原生架构支持百万级流程实例
强一致性事务处理严谨,符合金融要求
决策引擎DMN 支持复杂风控规则
审计追踪完整的历史记录和审计日志
监管支持满足银保监会等监管要求

技术栈建议:

CPU: 鲲鹏 920 64核
OS: 欧拉 OpenEuler 22.03 LTS
DB: GaussDB 8.0
中间件: 东方通 TongWeb 8.0
工作流: Camunda 8.x Enterprise + Zeebe
监控: Camunda Optimize
运维: Camunda Operate

4.4 能源/制造业项目

场景特征:

  • 流程复杂但变化缓慢
  • 与工业系统集成需求强
  • 离线环境部署
  • 成本敏感

推荐方案:Flowable + 自研适配

选型理由说明
灵活集成REST API 便于工业系统集成
离线部署支持完全离线环境
成本可控开源版功能满足需求
适配灵活可根据行业特点定制

技术栈建议:

CPU: 飞腾 FT-2000+
OS: 中标麒麟 V7
DB: 达梦 DM8
中间件: 普元 Primeton 7.0
工作流: Flowable 7.0.x
集成: Spring Cloud + 自研适配层

4.5 教育/医疗项目

场景特征:

  • 用户量大但并发适中
  • 流程相对简单标准化
  • 预算非常有限
  • 快速上线需求

推荐方案:Flowable 开源版

选型理由说明
快速开发学习曲线平缓,上手快
部署简单一键部署,运维成本低
功能够用满足常规审批需求
社区资源中文教程和案例多

技术栈建议:

CPU: 鲲鹏 ARM64
OS: 统信 UOS 20
DB: OceanBase 4.x
中间件: 宝兰德 BES 9.5
工作流: Flowable 7.0.x

五、信创适配最佳实践

5.1 数据库适配要点

/**
 * 信创数据库配置类
 */
@Configuration
public class XinchuangDatabaseConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        HikariDataSource dataSource = new HikariDataSource();

        // 信创数据库连接优化
        dataSource.setMaximumPoolSize(20);
        dataSource.setMinimumIdle(5);
        dataSource.setConnectionTimeout(30000);
        dataSource.setIdleTimeout(600000);
        dataSource.setMaxLifetime(1800000);

        // 达梦数据库特殊配置
        if (isDamengDatabase()) {
            dataSource.addDataSourceProperty("useUnicode", "true");
            dataSource.addDataSourceProperty("characterEncoding", "utf-8");
            dataSource.addDataSourceProperty("zeroDateTimeBehavior", "convertToNull");
        }

        return dataSource;
    }

    private boolean isDamengDatabase() {
        String url = environment.getProperty("spring.datasource.url");
        return url != null && url.contains("jdbc:dm://");
    }
}

5.2 流程引擎配置优化

# 信创环境下的 Flowable 配置优化
flowable:
  # 数据库配置
  database-schema-update: true
  database-type: ${DATABASE_TYPE:mysql}

  # 异步执行器配置(针对国产 CPU 优化)
  async-executor-activate: true
  async-executor-default-async-job-acquire-wait-time-in-millis: 5000
  async-executor-default-queue-wait-time-in-millis: 500
  async-executor-default-max-jobs-per-acquisition: 3

  # 历史数据配置(国产数据库存储优化)
  history-level: ACTIVITY
  enable-history-cleaning: true
  history-cleaner-batch-size: 100

  # 事件注册表配置
  enable-event-registry: true

  # 邮件服务器配置(适配国产邮件系统)
  mail-server-host: ${MAIL_HOST:smtp.internal.com}
  mail-server-port: ${MAIL_PORT:25}
  mail-server-use-ssl: false
  mail-server-use-tls: false

# 针对国产 OS 的 JVM 参数
management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics,prometheus

5.3 监控与运维配置

/**
 * 信创环境健康检查
 */
@Component
public class XinchuangHealthIndicator implements HealthIndicator {

    @Autowired
    private RuntimeService runtimeService;

    @Autowired
    private TaskService taskService;

    @Override
    public Health health() {
        Health.Builder builder = Health.up();

        // 流程实例监控
        long activeInstances = runtimeService.createProcessInstanceQuery().active().count();
        builder.withDetail("activeInstances", activeInstances);

        // 待办任务监控
        long pendingTasks = taskService.createTaskQuery().active().count();
        builder.withDetail("pendingTasks", pendingTasks);

        // 信创环境信息
        builder.withDetail("osName", System.getProperty("os.name"));
        builder.withDetail("osArch", System.getProperty("os.arch"));
        builder.withDetail("javaVersion", System.getProperty("java.version"));

        return builder.build();
    }
}

六、迁移与切换方案

6.1 从 Activiti 迁移到 Flowable

迁移优势:

  • API 高度兼容,代码改动小
  • 数据库脚本可复用
  • 迁移成本低

迁移步骤:

  1. 依赖替换
<!-- 移除 Activiti -->
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter</artifactId>
</dependency>

<!-- 添加 Flowable -->
<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>7.0.1</version>
</dependency>
  1. 包名替换
org.activiti.* → org.flowable.*
  1. 配置调整
flowable:
  database-schema-update: true
  async-executor-activate: true
  1. 测试验证
  • 流程部署测试
  • 流程执行测试
  • 任务处理测试
  • 历史数据查询测试

6.2 从 Flowable 迁移到 Camunda

迁移注意事项:

  • API 不完全兼容,需代码重构
  • 部分扩展属性不同
  • 建议新项目直接选择

6.3 信创环境迁移检查清单

检查项说明验证方法
CPU 兼容性JVM 是否支持java -version
OS 兼容性依赖库是否可用ldd 命令检查
数据库连接驱动是否加载连接池测试
字符集支持中文是否正常插入中文数据
时区配置时间是否准确日期字段对比
文件权限读写是否正常文件操作测试
端口占用端口是否可用netstat 检查
内存配置JVM 参数是否合理监控内存使用

七、总结与建议

7.1 综合对比

维度ActivitiFlowableCamunda
信创适配难度高中中
国产化程度低高中
社区支持低高(中文)中
企业级支持低中高
性能表现中良好优秀
学习成本低中高
部署复杂度低中高
信创认证无有案例企业版支持
自主可控中高中

7.2 最终建议

场景推荐方案核心理由
政府/事业单位Flowable 开源版成本可控、自主可控、中文支持
大型国企Camunda Enterprise企业级功能、信创认证、专业支持
金融行业Camunda Enterprise + Zeebe高性能、强一致性、监管合规
能源制造Flowable + 自研适配灵活集成、离线部署、成本合理
教育医疗Flowable 开源版快速上线、运维简单、功能够用
从 Activiti 升级FlowableAPI 兼容、迁移成本低
高性能云原生Camunda + Zeebe云原生架构、微服务友好

7.3 选型决策建议

对于信创环境下的工作流引擎选型,建议遵循以下原则:

  1. 优先考虑 Flowable:作为信创环境下的首选方案,在成本、功能、支持之间取得平衡
  2. 特殊场景选择 Camunda:对于对性能和稳定性有极高要求的大型企业项目
  3. 谨慎使用 Activiti:仅用于已有遗留系统的维护,新项目不推荐
  4. 重视信创适配:选择有成功案例和社区支持的方案,降低适配风险
  5. 预留迁移通道:保持架构灵活性,为未来可能的迁移留出空间

技术支持:如需更详细的信创适配方案,请联系信创技术团队或参考各工作流引擎官方文档。

Contributors: xierongli
Prev
工作流选型指南
Next
Flowable vs Camunda