面向OA系统的工作流引擎研发_第1页
面向OA系统的工作流引擎研发_第2页
面向OA系统的工作流引擎研发_第3页
面向OA系统的工作流引擎研发_第4页
面向OA系统的工作流引擎研发_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向OA系统的工作流引擎研发由于企业业务流程的频繁变更,导致业务流程的管理和控制出现了两个复杂 化:一是业务流程处理复杂化;二是参与管理人员权限复杂化。然而,传统的办 公自动化(Office automation , OA)系统不能适应灵活多变的业务流程处理方 式、难以进行权限控制,交互性、协作性明显不足。因此,需要建立一个易于动 态修改办公业务流程的,便于权限控制的、支持 协同办公的oa系统。本文解决的核心问题是业务处理流程的可灵活定制性,以及操作权限的绑定性。以工作流引擎为基础,以 XML语言描述的业务处理流程为依据,使流程的 流动、交互、控制、管理成为机动可变的过程,并通过对各种角色的定

2、义以及对 各种角色权限的定义,把权限控制与办公人员联系起来。1工作流引擎设计工作流引擎主要解决复杂业务流程灵活定制和方便更改的问题。引擎的作用相当于一个业务 流程管理器,它以一个软件组件(或者构件)的形式运行在使用它 的业务应用中。在OA系统中使用工作流引攀技术,可以实现业务流程与应用程 序的分离。OA系统通过工作流引擎 集中管理业务流程包含的所有过程,引擎为 业务流程提供执行环境,并驭动业务流程中各个过程的自动运行。 所有的业务流 程都在引擎的管理、监控卜运行。当业务流程变更时用户不必修改应用程序, 只 修改业务流程模型就可以解决流程变更的问题,从而实现了业务流程的灵活定 制。1.1引擎设计

3、思路工作流引擎的设计是从够用、灵活和低成木的设计原则出发,不追求工作流 引擎的功能的完备和复杂,只实现其中必不可少的功能和特征。 基于上述设计原 则,引擎的设计主要从以下几个方面考虑:(1)引擎支持顺序、分支、并发、循环、同步、异步流程的流转 ;在分支上可 以定义条件,实现按条件自动流转,条件转移之间还可设置逻辑关系 ;在并发流 转中,多个活动节点可以同时激活。(2)用户之间相互协作,交换数据,从而提高工作流引擎处理业务流程的灵活 性和适用范围。(3)如果引擎状态异常,可对引擎进行重新启动,如果重新启动几次后仍然异 常,发信号给备份服务器启动引擎,加载原有引擎工作状态,保证关键业务不被 中断。

4、1.2 引擎调度算法本文采用基于优先级的调度算法,优先级分派策略作为一个函数应用于工作 流引擎中。任务的优先级通常是由一个或多个特征参数来确定,特征参数包括: 任务提交时间、任务在最坏情况下无中断执行所需的处理器时间、任务截止日期。运行调度算法函数后所有提交的任务组成一个任务表队列,在实施调度时,优先级最高的任务在队首,优先级最低的任务在队尾。采用优先调度优先级最高的任务的算法,能提供确定性的服务质量保证,使系统能够在负载过重情况下保证优 先等级高的任务优先调度。调度算法的步骤如下:(1)遍历任务表队列;(2)计算任务的优先级;(3)确定任务的优先等级后,对任务表队列重新排序;(4)选择优先级

5、最高白任务进行处理;(5)任务处理完毕,提交;(6)转至步骤(1),循环执行该调度算法。1.3 引擎功能设计工作流引擎作为OA系统的核心部件,其主要功能包含:解释流程定义的业 务模型创建、解释、执行和控制流程实例,管理其运行过程根据流程定义和工作流相关数据为流程实例的运行进行导航根据任务之间的关联和任务的执行条 件,决定并行或串行执行后续任务;确定任务项目,实现用户意图,提供接口, 支持用户交互;与外部资源交互,维护工作流控制数据和工作流相关数据;监控流程实例的运行情况,对异常的流程进行处理。引擎是流程处理的调度中心和资源分配中心。采用 XML语言把实际业务流程描述成计算机可识别的工作流程,X

6、ML文档的内容包含预先定义好的任务,以及任务执行顺序,执行规则,执行角色等信息。控制中心负责接受用户发送的 任务请求,根据任务类型、任务优先级调用相应的处理模块完成与本次任务相关 的操作并将结果返回;流程解释器负责完成流程文件的解析,然后把解析出来的 数据存储到数据库中;任务管理负责与流程参与者交互,通过任务管理对任务表 进行管理、控制、维护:任务指派负责根据任务的类型确定执行此任务的群体;流转控制负责读取流程实例转换的条件,确定流程实例的状态;路由选杆负责辨 别流程实例的状态,选择下一个执行的任务;异常处理负责监控系统内流程实例 的运行情况,通过人工和白动处理相结合的方式,使工作流重新恢复到

7、正常流程或预期状态。1.4 引擎功能实现工作流引擎的功能实现采用面向对象的方法,将引擎具有的功能分成各个方面,进行开发。引擎主要包含: WorkflowContainerManage 类, WorkflowFunctionManage 类,WorkflowOperation 类,WorkflowExceptionHandel 类。把这些类封装成组件,相互配合实现工作流引 擎的功能。类的功能及其主要方法:? WorkflowContainerManage 类:完成控制中心的功能。负责接受外部 接口发送请求,根据请求的类型调用其它类中的方法完成与请求相关的操作,并 返回结果StartWorkflo

8、wService() 启动流程实例,并获得实例信息;LOAdWorkflowService() 加载己经存在的流程实例;StopWorkflowService()终止流程实例;DisposeWorkflowServiceO释放流程实例占用的资源;ExtemalDataExchangeService() 夕卜部数据交互;? WorkflowFunctionManage类:完成任务管理、任务分配、流程控制、路由选择的功能。负责流程实例创建,流程实例状态转换,流程实例相关数据维护, 保存系统所涉及的所有流程实例,管理流程实例。流程实例状态包含: Start、 Suspend、WaIT、Resume、

9、Abort、End。任务状态包含:Run、Lock、Commit、 CAM plete 。CreatWorkflowlns()创建一个流程实例,初始化所有数据;App endWorkflowlns()添加流程实例;RemoveWorkfIowlns()移除流程实例;GetWorkflowlns0 根据流程名称获取流程实例;GetInsStatelnfo()获得流程实例的状态信息;GetAII WorkflowlnsO 得到所有工作流实例的集合StartTask()根据任务的优先级,启动一个任务;CommITTask()提交一个任务;GetTaskPR1()获取一个任务优先级;TaskState

10、()根据状态,初始化任务的所有数据;TaskGetState()根据状态名和当前用户角色获取一个任务状态;GetTasktNextState()根据任务当前状态,获取任务下一个状态;IsMatch()判断当前角色是否与该状态要求的角色匹配;GetUserGrRolelnfo()获取指定状态的用户或角色的信息;NextTaskName()根据当前的任务的状态获取下一个任务名称;? WorkflowOoeration 类:主要完成流程解释器的功能,定义一些与用户 相关的操作。GetWorkflowInfo()读取工作流配置文件,获取流程绑定的页面流信息;GetInsInfo()获取用户指定流程状态

11、信息;GetAlIComplateTask()获取所有已经完成的任务GMRoleRight()获取角色的权限;? WorkflowExceptionHandel 类:主要完成异常处理功能;异常处理方式主 要有挂起、终止等操作。WorkflawlnsStateMonITor()流程实例运行状态监控;WarkflowInsQperationMonITor()流程实例操作监控;WorkflowInsExceptionHandel()流程异常处理;以上是类的功能及其主要方法的简要介绍。其中WorkflowCantainerManage类是引擎的核心,通过使用ExtemalDataExchangeSer

12、vice方法与用户进行交互。WorkflawContainerManage类通过调用 WorkflowFunctionManage类、WorkflowOperation 类与 WorkflowExceptionHandel 类中的方法完成用户提 交的任务请求,并返回执行结果。2基于工作流引擎的OA系统一次业务流程的充成通常需要在一个部门的多名用户之间或多个部门的不 同用户之间协作交互进行,通过设置用户的访问与操作权限,将需要协作交互完基于工作成的任务发送到协作人的工作区,从而实现业务流程的协作交互处理流引擎的OA系统的设计采用二层体系架构,组件化的思想。这二层分别是:客 户层、业务处理层、数据

13、层。系统架构。OA系统通过调用工作流引擎对文档的流动、交互、控制、管理进行动态管 理,并随时跟踪和监督文档处理过程,实现部门之间、人员之间的协作阁。工作 流引擎的作用不仅仅是处理流程,使信息从一个地方流向另一个地方,而且管理 这些规则与流程的运作,工作组成员间依据一组己定义的规则及己制定的共同目 标交换文档或与任务相关的信息。流程定义管理对业务流程进行集中管理,首先设计业务流程的数学模型,然 后用XML语言进行描述,最后生成该业务流程的XML文档。本文采用XML语 言定义了流程描述模式(Schema)。在XML Schema中,通过对元素的定义和元 素关系的定义来实现对整个流程定义文档性质和内

14、容的定义,流程定义每个步骤的描述只有符合XML Schema的要求,才能被工作流引擎解释器解析。该模式 描述了任务状态名称、任务名称、执行任务的角色、任务的下一个状态名称等信 息。用户可以根据实际情况添加、修改、删除、查找描述某业务流程的XML文档,从而可以对业务流程进行灵活的定制, 实现了业务过程逻辑与信息支撑系统 的分离。传统的权限控制是土体与客体直接发生关系,主体能对客体直接访问,但不 能控制主体对客体的间接访问。本文采用基于角色的权限控制,引入中间介质角 色,将角色作为用户与权限联系的中间桥梁, 用户通过被授予一定的兔色而获得 相应权限,从而大大简化权限管理,客服了传统权限控制的不足,

15、是一种高效灵活的权限控制策略。系统将角色的权限与办公人员绑定,用户登录后,依据角色 的不同,系统所提供的功能也不相同。流程处理中角色和工作流状态接点绑定,通过工作流自身的逻辑对权限验证后,根据实际的流程继续往下执行。任务表:等待用户处理的由仟务项组成的队列。系统应用组件:信息的处理、存储和检索;系统管理、使用权限设置等操作。数据统计分析:对文档数据中心进行数据分析、统计汇总等操作。流程监控:从工作流引擎中获得各个流程实例的运行状况资料,监督正在执 行的任务,可以进行相关的查询、统计,如果发生流程异常状况,可以迅速地反 应。组织、角色管理:设定角色的权限,并把角色分配给用户和部门。用户通过任务管

16、理启动工作流引擎,调用 数据库中的流程定义文档,解析流 程定义,推动流程实例的执行。3应用举例以某公司的发文流程为例,说明系统如何实现流程的动态变更。该公司发文流程为:系统管理员使用XML语言对该发文流程进行描述,并通过流程定义管 理生成一个发文流程的XML文档,发文流程必须按照XML Schema进行编写。 如果发文流程变更为:拟稿一部门负责人审核一分管该部门的副总审核一总经理签发一校对一分发一归档,系统管理员只需通过流程定义管理找到发文流程,并 依据XML Schema修改该发文流程定义,不需修改应用程序,只需修改流程的 XML文档就可以实现发文流程的变更,变更后的发文流程。当用户再次执行发 文流程时,工作流引擎就会调用数据库中变更后的发文流程定义推动流程的执 行。4结束语本文运用工作流的理论、方法设计开发了面向 OA系统的工作流引擎,组件 化的体系结构使信息的收集、存储、处理、流转、发布相分离

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论