写一个简单的工作流,基于petri网

简介: 写一个简单的工作流一直停留在我的“计划”中,最近趁改造绩效系统的机会,决定自己写一个基于petri网原理的工作流来改写绩效考核流程部分。基于petri网的工作流的基本算法,就是当每一个firing发生后,应当遍历整个流程重新改变transition的enable,那么当资源驱动某个transition其实就是将它的输入place中的token转移到输出place。

写一个简单的工作流一直停留在我的“计划”中,最近趁改造绩效系统的机会,决定自己写一个基于petri网原理的工作流来改写绩效考核流程部分。基于petri网的工作流的基本算法,就是当每一个firing发生后,应当遍历整个流程重新改变transition的enable,那么当资源驱动某个transition其实就是将它的输入place中的token转移到输出place。大概的接口类似:

WorkFlowManager wm = new BasicWorkflowManager(this.workFlowDAO);
Token token1 = wm.startWorkFlow(0); //为流程0新启动一个案例
wm.doAction(token1,resource,args);  //传入资源和参数以驱动firing

今天完成了顺序路由和并行路由的实现,选择和循环也准备加入。暂时只实现了内存存储案例数据和流程数据,显然,应当实现一个数据库版本,慢慢来吧。

文章转自庄周梦蝶  ,原文发布时间 2007-10-10

目录
相关文章
|
1月前
工作流介绍
工作流介绍
|
11月前
工作流
工作流
153 0
|
12月前
snakerflow工作流实践分享
snakerflow工作流实践分享
200 0
|
Serverless
函数工作流
函数工作流自制脑图
88 0
函数工作流
powerjob配置工作流
powerjob工作流内配置依赖关系及判断节点
795 0
powerjob配置工作流
|
存储 弹性计算 监控
浅析数据工作流Prefect
简述 Prefect 是一种新的工作流管理系统,专为现代基础设施而设计,由开源的 Prefect Core 工作流引擎提供支持。 用户只需将任务组织成流程,Prefect 负责其余的工作,可让您非常容易使用数据工作流并添加重试、日志记录、动态映射、缓存、失败通知等语义。
|
开发工具 git
GitFlow工作流
GitFlow工作流
|
数据库
DataWorks2.0的“业务流程”与1.0的“工作流”的对比
DatwWorks终于升级2.0了,心情万分激动之余,又有一丝担忧。因为,没法再创建新的旧版工作流了。。。新版抛弃了“工作流”这个概念,引入了“业务流程”和“解决方案”两个新的概念。于是,作为团队Leader,我花了很大的精力去钻研这两个概念到底该如何应用在我的实际业务中。
2354 0
|
运维 Shell 调度