![](https://www.jinchutou.com/images/s.gif)
普元EOS工作流引擎设计原理
12页1、EOS工作流引擎工作原理作者:Gocom注册用户dogreet (李国生)1. 工作流基础知识略2. EOS工作流引擎工作原理本文是我在工作之余写的一点我对EOS工作流的了解,我的理解不一定全是对的,可能会与引擎的真正的面目有出入。所以只能提供给大家一点参考。2.1. EOS工作流引擎核心调度算法EOS工作流最重要的组成部分是它的核心调度算法,在我们没有深入研究它的工作原理之前我们认为它的工作原理是在工作项,活动和流程实例对象上加了一些标志位来驱动流程的运转。认为其引擎完全是个由数据库来驱动流程的引擎(安徽二期的工作流平台好象就是以 库表来驱动流程的运转),其实它是由事件来驱动流程运转的引擎,数据库只是把引擎运转前后的状态持久化。在我近来在工作之余对其引擎的工作原理进行跟踪才 弄明白在EOS帮助文档上介绍的“事件驱动”的工作流引擎。2.1.1. EOS工作流引擎的事件类型 以上的每个事件都是原子的不可分割的。其中一系列事件的集合通过EOS引擎事件调度机制实现我们平时在工作中经常遇到的如启动流程,结束工作项等等。(在事件类型类中EOS定义了29种事件,但在事件工厂类中EOS定义了26种类
2、型。)1.1.1. EOS工作流事件调度机制EOS事件的调度服务是在工作流引擎初始化时通过服务工厂类加载到内存中 (ServiceFactory.initEventService())。用户可以通过服务工厂类(ServiceFactory)取得JVM的唯一事 件服务实例进行事务调度。所有的事件程序入口都是事件类(EventService),这个类其实是个接口,其有两个实现类,一个是单线程的实现类 SingleThreadEventService(在实现代码中其实不是单线程,而是单例的对象),一个是多线程的实现类 MulThreadThreadSvc,(其实现方式不在这里详细说明,多线程的类后面又跟了一大堆的线程池实现代码),在事件服务类中有一个属性类是 WFEventDisposer,这个类包含了事件的注册,事件的发布,事件的注册是一个静态代码块实现的。注册了上节描述的29种事件,其实就是把相应 的事件代码注册到相应的处理类,事件处理类共用5个 (ProcessScheduler,ActivityExecuter,ExceptionHandler,WorkItemHandler,App
3、licationHandler), 对应事件代码的前5个数字;共有事件的发布有两种,一种是正常发布,一种是无异常的发布(即在具体执行事件时关闭了异常处理)。所谓的事件发布是给事件服 务类传递一个事件对象(WFEvent类),这个事件对象包含了事件类型,线程名,事件ID,流程定义ID,活动定义ID,活动实例ID,和工作项ID等 等。以上简要的描述了事件模型,下面来拿我们平时用的最多的一个构件:结束工作项来详细跟踪它的事件处理。结束工作项可能是最具有代表性的一个流程动作,因为在做这个时间后遍历了整个流程实例的流程:1, 用户通过引擎的API调用WorkItemManager类的finishWorkItem方 法,该方法通过服务工厂取得持久层的数据访问服务,并根据workitemID取得WFWorkItem对象。做相关的判断后通过事件工厂类的 createFinishWorkItemEvent方法创建个事件代码为3004的事件对象(WFEvent)。然后通过服务工厂类取得事件服务类把该 事件对象发布给事件处理服务。从此刻就开始了EOS事件调度服务的运转。2, 事件服务类(拿单线程事件服务类做
4、例子)拿到这个事件类后把该事件通过 WFEventDisposer发布该事件。具体的发布过程很简单,即判断该事件类型是否已注册,如果已经注册则取到改事件代码的注册类。该代码是 3004,则应取WorkItemHandler。然后调用WorkItemHandler的invoke()方法,3, WorkItemHandler类invoke()中写 到:if(event.getType() = 30004) finishWorkItem(event);则找到该方法,该方法开始做了相关的判断后做相关标志位的修改:置当前工作项的状态为12,然后判断当 前活动是否结束。(大概的算法是取得已经结束的工作项和该活动总的工作项,取得活动定义的多工作项是否启动。如果是多工作项则判断完成个数策略:是按百分 比还是按操作员个数等等,做一系列的判断后得到应该结束的工作项,如果小于等于已经结束的工作项则该活动结束,没有启动多工作项则相应的处理要简单点), 如果该活动已完成,则调用事件服务的结束活动实例事件createFinishActivityEvent;如果没有结束则判断工作项启动的策略是 “at_the_sa
《普元EOS工作流引擎设计原理》由会员博****1分享,可在线阅读,更多相关《普元EOS工作流引擎设计原理》请在金锄头文库上搜索。
![智能化会议系统工程方案](https://union.152files.goldhoe.com/2022-7/9/1376ee2c-6568-4ee8-924b-9b70e3a5a235/pic1.jpg)
智能化会议系统工程方案
![的学期班级工作计划范文8篇.docx](https://union.152files.goldhoe.com/2023-7/18/e3c880f8-0cdb-4fac-9515-37f70b504725/pic1.jpg)
的学期班级工作计划范文8篇.docx
![珠海市促进高端服务业发展的若干政策意见20130401.doc](https://union.152files.goldhoe.com/2023-2/22/21cf6719-265f-4a16-bd55-c38ac9444c1d/pic1.jpg)
珠海市促进高端服务业发展的若干政策意见20130401.doc
![设备设施安全管理](https://union.152files.goldhoe.com/2023-1/26/5ad1b701-2f7f-4dd2-84a8-648a8394dc77/pic1.jpg)
设备设施安全管理
![2023年学校食堂后勤管理的工作计划格式范文(2篇).doc](https://union.152files.goldhoe.com/2023-3/19/f422f425-46e3-46c8-a55a-5c7c0a4af224/pic1.jpg)
2023年学校食堂后勤管理的工作计划格式范文(2篇).doc
![农村卫生人员在职培训工作总结](https://union.152files.goldhoe.com/2022-11/16/e6daeead-01c7-4661-8013-b9739b34f3e9/pic1.jpg)
农村卫生人员在职培训工作总结
![奥数因数倍数、数论.doc](https://union.152files.goldhoe.com/2023-3/4/bc962deb-622c-4d98-a461-9682de15ca7f/pic1.jpg)
奥数因数倍数、数论.doc
![C++语言程序设计课后答案(郑莉第版)(共138页)](https://union.152files.goldhoe.com/2023-6/26/31d85fdd-dc2a-48ec-af03-806981a4de6a/pic1.jpg)
C++语言程序设计课后答案(郑莉第版)(共138页)
![带式输送机技术的最新发展@中英文翻译@外文翻译](https://union.152files.goldhoe.com/2022-11/27/9932b203-6eb4-42c1-9e75-037414ddef84/pic1.jpg)
带式输送机技术的最新发展@中英文翻译@外文翻译
![实习生自我鉴定模板合集5篇2](https://union.152files.goldhoe.com/2023-12/7/a82f685b-4b61-4f7e-99bf-161ea900a5f1/pic1.jpg)
实习生自我鉴定模板合集5篇2
![新北师大版二年级语文小学上期期中综合检测卷.doc](https://union.152files.goldhoe.com/2024-1/19/f464c820-eaea-4f3e-81b5-f4c917f009cb/pic1.jpg)
新北师大版二年级语文小学上期期中综合检测卷.doc
![2019四年级下学期班主任工作总结.docx](https://union.152files.goldhoe.com/2024-1/31/d62bb409-d98e-4882-9e41-d1404e492b47/pic1.jpg)
2019四年级下学期班主任工作总结.docx
![员工培训协议范本20131006](https://union.152files.goldhoe.com/2022-10/17/dd46309e-ca6d-4e7d-9196-93edfd2402a0/pic1.jpg)
员工培训协议范本20131006
![教师招聘答辩问题.doc](https://union.152files.goldhoe.com/2022-11/17/a15df455-d7a6-4ec2-afb3-5ceadb723ed9/pic1.jpg)
教师招聘答辩问题.doc
![一年级数学下册大海边两位数减两位数(退位)减法教案青岛版](https://union.152files.goldhoe.com/2023-11/13/ef80009d-7785-4a84-9c1e-7c9d0e832c9b/pic1.jpg)
一年级数学下册大海边两位数减两位数(退位)减法教案青岛版
![什么是血管性头痛.doc](https://union.152files.goldhoe.com/2023-12/14/83ce0172-6850-42c1-867b-a6fc0591c6a3/pic1.jpg)
什么是血管性头痛.doc
![刑事侦查情报学](https://union.152files.goldhoe.com/2023-5/11/70c1ea12-e9fc-4ebe-a2d0-ed351cb1cef0/pic1.jpg)
刑事侦查情报学
![2023年小学英语教师个人教学工作总结4篇.docx](https://union.152files.goldhoe.com/2023-9/10/113e4489-2af0-47e3-b43e-4471f8982eef/pic1.jpg)
2023年小学英语教师个人教学工作总结4篇.docx
![安全生产月活动方案.doc](https://union.152files.goldhoe.com/2023-3/30/9ab8a4e5-9a1e-454b-83a2-e4e467c5c79c/pic1.jpg)
安全生产月活动方案.doc
![《讴歌亲情-学习写得充实》学案3.doc](https://union.152files.goldhoe.com/2023-2/22/26388a01-040e-4945-8793-46d7e5b76b68/pic1.jpg)
《讴歌亲情-学习写得充实》学案3.doc
![房地产竣工验收全过程(l理论实践版)](/Images/s.gif)
2023-03-27 4页
![部编版五年级道德与法治下册教学计划](/Images/s.gif)
2023-03-21 3页
![陕西省普通高中学业水平考试化学试题真题](/Images/s.gif)
2023-08-21 12页
![房地产项目建议](/Images/s.gif)
2023-03-09 28页
![《工业废水处理氧化塘工程施工组织设计》](/Images/s.gif)
2023-02-19 45页
![环氧树脂地坪施工及养护方法](/Images/s.gif)
2023-09-29 6页
![大气三层复式客厅别墅设计图纸及效果图](/Images/s.gif)
2024-02-18 2页
![工程投标与工程利润预算](/Images/s.gif)
2023-09-08 2页
![《工程经济学》期末综合测试](/Images/s.gif)
2022-09-15 8页
![粉喷桩处理软基设计方法及施工质量管理](/Images/s.gif)
2023-04-27 4页