标题 | 照明管理业务工作流引擎设计与实现 |
范文 | 郗文枫![]() ![]() ![]() 摘 要:针对数字化照明及中国化管理模式需求,开发设计了工作流引擎,探讨了面向照明管理业务工作流引擎的建模规则及内核工作机制。 关键词:工作流引擎;XML;内核机制 DOIDOI:10.11907/rjdk.1431051 中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2015)007-0134-03 0 引言 根据工作流参考模型(WFMC)定义,工作流(Workflow)是指全部或者部分由计算机支持或自动处理的业务过程[1]。面向照明管理业务的工作流,其主要目标是利用计算机来代替纸质文档。用户的组织结构和业务流程会经常发生变化,按照以往的开发模式,维护成本会相当高。 面向照明管理业务的工作流引擎(以下简称工作流引擎),是为流程实例提供运行环境并解释执行流程实例的软件部件[2],它对组织结构和业务流程作了充分的扩展,为系统应用提供了更加灵活的逻辑控制,使系统开发及维护事半功倍。 根据当前数字化照明及中国化管理模式的需求设计的工作流引擎有以下特点:①流程中的任务可以回退;②流程中的任务可以取回;③流程中可以指定一个用户作为下个步骤的执行人;④强大的扩展接口。 1 工作流建模规则 业务系统中,工作流引擎处于应用支撑平台层,与数据资源层进行交互,并为应用层提供服务,同时提供接口,方便平台拓展。 工作流引擎按照用户自定义规则运作,将照明管理业务转换为上述自定义规则时,必须经过工作流建模。工作流参考模型的引入为工作流技术提供了一个规范的术语表,为讨论工作流系统体系结构提供了基础[3]。一套好的模型,必须拥有配置灵活度高、扩展性强及结构清晰的特点。因此,建模规则就显得尤为重要。 本工作流模型建模规则,借鉴了JBPM 1.0结构,以此为基础,扩充了中国化管理模式的相关功能。从功能划分,工作流建模规则可分为流程规则、表单规则和权限规则。 1.1 流程规则 工作流要实现文档、信息或者任务按照业务流程自动传递,需将业务流程进行抽象,即流程图。将流程图转换为计算机能够识别的规则信息,就是流程规则。开发人员或者用户,可以根据此流程规则的定义进行流程建模。 一个基本流程图由开始节点、结束节点、过程节点和判断节点组成,用于描述流程传递。传递过程,就是在一个节点传递中的触发事件或执行方法。流程规则据此定义。 1.1.1 开始节点 开始节点定义一个流程的开始,在一个完整的流程中,有且只能有一个开始节点,且这个开始节点只有一个出口。开始节点元素为start-state,它的name属性为此节点的名称,有且只能有一个子元素transition,它的to属性为此节点的出口,可以指向其它流程节点。 1.1.2 结束节点 流程结束定义:在一个完整的流程中,有且只能有一个结束节点,可以有多个入口,没有出口。 1.1.3 过程节点 可以有多个入口,但是出口有且只能有一个。activity-state元素的name属性为此节点的名称,子元素transition的to属性为此节点的出口,可以指向其它流程节点。 1.1.4 判断节点 可以有多个入口和出口,根据条件来判断出口。decision-state元素的name属性为此节点的名称。子元素parameter的name属性是判断参数。子元素transition的when属性是判断条件,结合判断参数可以确定最终执行的传递过程。子元素transition的to属性为此节点的出口,可以指向其它流程节点。 1.2 传递过程 在transition内可以添加若干子元素,用于传递过程中触发事件。下面的XML片段描述了传递过程会触发的3个事件,分别对d1、d2、d3三个数据表执行更新、子表关联、写日志操作。 按照以上定义,可以把一个照明管理业务转换为工作流引擎能够识别的规则信息,按此规则运作。 1.3 表单规则 文档、信息或任务(统称为表单)的格式需要计算机正确识别,因此需要一套表单规则,把表单转化为计算机能够识别的信息。其中,form具备的属性如表1所示。 1.4 权限规则 用户根据自身的角色、分工和条件进行访问和操作,需要各节点对权限进行控制,将权限管理转化为计算机识别的权限逻辑。 用户权限采用基于角色的访问控制(Role-Based Access Control)[4](见图2)。权限不直接与角色进行关联,而是通过角色这个桥梁进行衔接。获取某个用户权限时,首先要确定该用户的角色,根据角色确定相应的权限。当某个用户职责发生变化时,更改对应的角色,即重置该用户的权限。 一个过程节点中,在基于RBAC权限控制前提下,可以指定用户进行判断。当两套判断标准全部符合时,此用户才有权限对此节点进行控制。 2 工作流引擎设计 2.1 结构设计 当用户发起数据请求或者提交表单时,引擎与数据库和文件服务器进行数据交互,按照XML配置文档进行流程管理、表单管理和权限管理。在一系列数据处理之后,返回最终结果——序列化数据,从而实现文档、信息或者任务在多个用户(或角色)之间自动传递。系统架构如图3所示。 当客户端(或浏览器)接收到工作流引擎发来的表单序列化数据时,对表单生成器进行反序列化,包括表单的排版、初始值、事件联动、按钮功能交互等,即可重新生成表单。 2.2 工作流引擎过程调度机制 采用flow-state状态标志位来表示工作流现在所处的状态,当工作流推进时作相应的变化,如图4所示。 工作流引擎创建一个流程时,首先加载配置文件,并构造一个新的实例,flow-state 默认处于开始节点上。 触发流程向下运行的操作为doTransition。在流程定义中,节点的出口是由transition定义的,所以它是连接节点之间的桥梁,flow.doTransition操作将按照流程定义把flow-state推进到下个节点。 当flow所处的节点为decision-state时,流程实例会立即向下推进,直到下个节点为activity-state。 图4 工作流引擎执行机制 2.3 工作流引擎执行机制 执行机制借鉴了jBpm的Event事件思想[5]。当flow-state离开一个节点后,或者在进入一个节点前,会触发transition内包含的所有事件,用事务来保证这些事件执行的准确性。 2.4 核心算法 当用户获取某条记录的表单时,执行算法GetForm,流程如图5所示; 当用户提交某条记录表单时,执行算法DoTransition,流程如图6所示; 当用户尝试取回某条记录表单时,执行算法DoFetch。 图6 DoTransition算法流程 3 结语 借助面向照明管理业务工作流引擎,可以较快地完成照明管理项目开发。工作流引擎灵活高效并且扩展性强,在保证开发效率的同时,提高了系统的易维护性及弹性。 参考文献: [1] WFMC-TC00-1003 Issue 1.1.Workflow management coalition:the workflow reference model[S].1995. [2] WFMC-TC-1011 Issue 3.0.Workflow management coalition:workflow management coalition terminology and glossary[S].1999. [3] DAVID HOLLINGSWORTH.The workflow reference model:10 years[J].Workflow HandBook,2004(1):295-312. [4] FERRAIOLO D F,KUHN D R. Role based access control[C].15th National Computer Security Conference ,1992:554-563. [5] 胡长城. 揭秘Jbpm流程引擎内核设计思想及架构[EB/OL]. http://blog.csdn.net/james999/. (责任编辑:杜能钢) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。