compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎。compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是
专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成 java 代码编译执行,简洁高效
。当前是阿里业务中台交易等多个核心系统的流程引擎。compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。
compileflow 特性
compileflow 使用
1)compileflow demo 使用示例
compileflow 官方 demo 项目中有一个 ktv 唱歌的例子,如果价格大于等于300的话打九折,否则不打折(
demo源码地址
:
https://github.com/compileflow/compileflow-demo
)。示例如下:
maven 依赖
<dependency>
<groupId>com.alibaba.compileflow</groupId>
<artifactId>compileflow</artifactId>
<version>1.2.0</version>
</dependency>
compileflow-designer 使用
compileflow-designer 是 compileflow 开放的流程设计插件,可直接在上面编辑流程文件,同时可实时动态生成java代码并预览,比较清楚看到流程内容。
//执行流程的入参
Map<String, Object> context = new HashMap<>();
List<String> pList = new ArrayList<>();
pList.add("wuxiang");
pList.add("yusu");
pList.add("xugong");
pList.add("fandu");
context.put("pList", pList);
try {
ProcessEngine processEngine = ProcessEngineFactory.getProcessEngine();
Map<String, Object> result = processEngine.start(code, context);
System.out.println(result.get("price"));
} catch (Exception e) {
e.printStackTrace();
2)流程引擎对比
相对于其他流程引擎,compileflow 具有以下优点:
compileflow 标签
compileflow 原生只支持淘宝 BPM 规范,为兼容 BPMN 2.0 规范,做了一定适配,但仅支持部分 BPMN 2.0 元素,如需其他元素支持,可在原来基础上扩展。
compileflow 整体架构
compileflow 运行阶段如下:
compileflow 定义了一套协议可以解析 xml 文件,并生成 java 类,再编译成 class 文件,加载内存后反射生成对象缓存起来,等引擎需要执行指定的 xml 流程时就会调用该对象。
流程引擎系列文章
compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎。compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是**专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成 java 代码编译执行,简洁高效**。当前是阿里业务中台交易等多个核心系统的流程引擎。compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。
:open_book: 英文文档|
它是什么?
com
pil
e
flow
-idea-designer是一个Idea插件。 它使您可以轻松完成编译
流程
引擎
过程的编码设计和属性编辑。
Com
pil
e
flow
引擎
开源地址: :
下载最新的插件安装包,下载地址:: 如果您是idea的2020版及更高版本,请下载此文件:
XML源文件预览:支持编辑和预览XML源文件
流程
友好的可视化:支持XML源文件进行Swing图预览,并将图片导出到本地
过程友好且可编辑:支持直接在Swing图画布中拖放节点,设计过程以及编辑节点属性,全局属性等。
大量显示Java源代码:该过程最终将被编译成Java代码以执行,并且设计者支持XML到Java代码的预览效果
XML语法错误提示:如果打开的XML源文件中存在语法错误,则会在Java源代码预览区域中提示该错误。
可扩展性:可以轻松扩展以
定义了起点、终点以及起点到终点需要执行的活动、执行路径、执行策略。
2
流程
实例 (
Flow
Instance)
一个
流程
可能会被多次执行,比如同一个场景的审批流是一个
流程
,每次有人提交审批这个
流程
都会被执行一次。
流程
每执行一次,对应一个
流程
实例。
3
流程
元素 (
Flow
Element)
*考虑兼容性问题,
流程
元素设计参考了BPMN规范。
构成
流程
中的各种元素通称为
流程
元素 (
Flow
Element),包括节点 (
Flow
Node)和顺序流 (Sequence
Flow
)。
3.1 节点 (
Flow
Node)
3.1.1 事件节点 (EventNode)
开始节点 (StartEvent):标
com
pil
e
flow
是什么
com
pil
e
flow
是一个非常轻量、高性能、可集成、可扩展的
流程
引擎
。
com
pil
e
flow
Process
引擎
是淘宝工作流 TBBPM
引擎
之一,是专注于纯
内存
执行,无状态的
流程
引擎
,通过将
流程
文件转换生成 java 代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的
流程
引擎
。
com
pil
e
flow
能让开发人员通过
流程
编辑器设计自己的业务
流程
,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。
高性能:通过将
流程
文件转换生
工作流框架
flow
able6与activiti7的比较选择
flow
able与activiti的历史渊源主流
flow
able6与activiti7的比较
flow
able6与activiti7 GitHub社区活跃度比较总结
flow
able与activiti的历史渊源
Activiti和
Flow
able都是来自于一个叫JBPM的开源工作流。在早期Jboss(现已被ReHat收购)发行JBPM4的时候,因为合作伙伴关系闹的不开心。于是其中一个核心人员离职。加入了Alfresco(Activiti所在的公司)。并
com
pil
e
flow
是一个非常轻量、高性能、可集成、可扩展的
流程
引擎
。
com
pil
e
flow
Process
引擎
是淘宝工作流TBBPM
引擎
之一,是专注于纯
内存
执行,无状态的
流程
引擎
,通过将
流程
文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的
流程
引擎
。
com
pil
e
flow
能让开发人员通过
流程
编辑器设计自己的业务
流程
,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。
com
pil
e
flow
-idea-designer是一款Idea插件。能够让你轻松完成