基于OA系统的工作流引擎设计与实现Word文档下载推荐.docx
《基于OA系统的工作流引擎设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于OA系统的工作流引擎设计与实现Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。
二OO八年六月
摘要
工作流管理系统是一个软件系统,它用于工作流的定义和管理,并按照在计算机中制定好的工作逻辑推进工作流实例的执行,实现自动传递文档、信息或者任务。
工作流引擎在工作流管理系统中处于核心地位,是系统的任务调度器和资源分配器。
它可以创建新的流程、基于过程模型生成工作项、支持活动的执行、分配资源以及记录工作流的相关信息。
目前,工作流技术在办公自动化(OfficeAutomation,OA)系统中的应用月来越广泛,对OA系统中的工作流引擎进行探索具有重要的应用价值。
本文结合一般的办公室办公自动化的需求,从软件生存周期的角度,使用面向对象的设计方法,给出了一个结构清晰、配置简单的工作流引擎设计方案。
重点介绍来了引擎的设计与实现。
该引擎借鉴了已有的工作流引擎的设计,在保证实用性的基础上,在权限和流程管理方面进行了针对性的取舍。
最后给出了重要功能的部分代码,并进行了详细的描述。
经过测试应用,该引擎可以支持灵活的流程定制,配置部署简单,达到了预定目标。
关键词:
JSP,Spring,Hibernate,Ajax,JavaScript
ABSTRACT
WorkflowManagementSystemisasoftwaresystem.Itismainlyusedforthedefinitionandmanagementofworkflow.Itmakestheworkflowinstanceexecutesfluentlywithsomescheduledrulestoachievethegoalthatpassdocuments,informationortasksautomanticlly.Workflowengineisthekernelofaworkflowmanagementsystem.Itisadistributoroftasksandresources,whichcancreatenewprocesses,createworkitemsbasedonprocessmodels,supportexecutionsofactivities,andallocateresourcesandrecordinformationoftheworkflow.Nowadays,astherearemoreandmoreworkflowapplicationsinofficeautomation,itisveryimportanttodoresearchinworkflowfields.Fromtheperspectiveofthesoftwarelifecycle,thispaperproposesawell-structed,easy-to-deployworkflowenginesolutionwiththegeneraldemandsforofficeautomation,whichwasdesignedinanObject-orientedway.Thedesignmentandimplementationwillbefocusedon.Thisenginehasreferencedotherenginesandhasdonesomechoicesonthebasisofnormalfunction.Atlast,animplementationisshowedwithdetaileddescriptionofsomeimportantpart.
Aftertesting,thisengineiseasy-to-useandmeetstherequirements.
Keywords:
JSP,Spring,Hibernate,Ajax,JavaScript
1引言
1.1课题的背景与目标
工作流的概念起源于生产和办公自动化领域,是针对日常工作中具有固定流程的业务活动提出的一个概念。
工作流管理联盟(WFMC)给出的工作流定义是:
工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。
该技术的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高工作效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。
工作流管理系统的核心部分是工作流引擎,引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等等工作。
目前,工作流技术还处于发展曲线的初级阶段,然而,关于这方面的研究十分活跃,形成了许多规范标准。
例如主要的有:
工作流管理联盟(WorkflowManagementCoalition,WfMC)在体系结构[6]、工作流相关术语[7]及应用程序接口[8]、管理控制接口[9]、过程语言描述[10]等方面提出的一系列规范。
还有Microsoft,BEA,IBM,SAP等公司联合提交发布的BPEL规范等等。
在实际应用中开源产品占据了重要的地位,如JBoss项目中的jBPM、由OpenSymphony组织开发的OSWorkflow、Enhydra组织开发的Shark。
在国内,上海交通大学的基于Petri网点分布是工作流管理的研究,浙江大学的基于工作流过程定义语言(WPDL)的工作流建模平台,都取得了良好的研究成果。
但是工作流管理技术很多方面还不成熟,在使用过程中往往会遇到的一个重要问题是系统过于庞大复杂:
一些工作流软件产品,特别是国外成熟的产品,经过多年的发展,功能强大,配置和接口多样灵活。
对于国内大部分初次使用工作流技术的中小型项目来说,这些工作流软件的功能特性大大超过了需要,客户需要承受漫长的学习周期、复杂的安装配置等带来的风险。
鉴于上述的原因,本课题的目标在于提出一个配置简单、使用方便、功能实用的工作流引擎的设计方案,并完成编码。
该工作流引擎——OAworkflow是借鉴了已有的工作流引擎,对某些复杂功能进行简化后,重新设计的。
与传统工作流管理系统相比,本工作流管理系统具有以下优点:
1)支持灵活的流程定制
该系统能够针对办公自动化系统中的典型流程案例对流程进行灵活定制,支持的流程路由包括:
顺序路由、汇聚路由和分支路由。
用户可以根据具体的业务流程,使用客户端建模工具定制合适的模型。
2)功能详细实用
例如该系统支持流程分支跳转的时候,允许用户手动指定流程的直接后续步骤;
当审批不合格时,文档回退的功能等。
3)文件权限设置精确
该系统的每个业务流程绑定一个公文,处于流程中的各个活动对公文的读写权限看精确到字段。
4)支持可视化建模
5)结构清晰,配置简单
1.2课题研究内容及文本组织
本课题的重点研究内容有:
1)模型定义。
本文分析了办公自动化项目的功能需求,然后针对项目对流程控制的灵活需求,采用了一种结构清晰、功能完整的过程定义格式,使引擎在支持流程分支跳转的时候,还允许用户手动指定流程的直接后续步骤,在借鉴了现有工作流引擎设计思想的基础上,给出了一个工作流引擎的设计方案。
2)工作流引擎的实现。
本文分别从流程实例化、流程实例管理、流程导航和维护相关数据等模块详细描述了实现方案,其中关于系统的关键功能部分给出了具体API语义分析。
3)技术架构。
本项目采用了Spring+Hibernate这种流行的Web应用程序设计框架组合。
从而使得该引擎具有架构清晰开放的特点,系统有着清晰的分层结构。
本文由以下六章和参考文献组成:
第一章引言,介绍了本课题的背景和意义。
第二章相关技术及原理,介绍了Spring开发框架、Hibernate数据库持久层技术、Ajax技术、JavaScript、JSTL
第三章需求分析,给出了用例阐述及用例图
第四章系统设计,包括数据库设计、时序图等
第五章实现,重点从流程实例化、流程实例管理、流程导航和维护相关数据等模块描述了实现方案及一些关键API的分析
第六章总结
2相关技术及原理
2.1工作流技术
工作流的概念起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的一个概念。
目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高工作效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。
.1.1工作流引擎核心功能
工作流引擎降低了工作流系统应用模块与业务流程之间的祸合度,当业务流程发生变化时,只需修改流程定义,具体的应用程序保持不变,工作流引擎对于用户来说是透明的。
目前,工作流引擎的应用可以分为三种方式:
Ø
作为一个完整的系统提供给最终用户,能单独运行,如IBM的LotusDomino/Notes系统。
仅仅作为企业应用集成(EnterpriseApplicationIntegrationEAI)平台。
EAI将进程、软件、标准和硬件联合起来,在两个或更多的企业系统之间实现无缝集成,使它们就像一个整体一样,如B2B形式的电子商务。
嵌入到企业应用中,只提供工作流引擎服务,开源领域的OSWorkflow引擎即属于这种情况。
从图2.1.1中可以看出,用户可以通过系统提供的客户端(如建模工具、任务列表等)与工作流引擎进行交互。
从应用上来说,一个工作流引擎必须具有的核心功能包括:
(1)流程实例化及执行过程模型:
解释企业经营过程的流程定义,根据过程执行需要的初始条件和执行参数生成过程实例,运行过程实例并管理其运行过程。
一个过程模型实际是企业经营过程的一个模板,它可以被执行多次,也可以有多个有关这个过程模型的实例在同时运行。
(2)为过程和活动的执行进行导航:
包括启动和终止实例,根据活动定义中的条件决定后续活动的执行顺序。
(3)与外部资源交互完成业务活动:
分为用户应用接口和直接调用应用接口两种情况。
用户应用接口是指首先通过任务列表管理器向用户提供任务列表,供用户选择相应的任务(必要的时候可以调用相应的工具来完成),任务完成后由用户修改任务项的状态。
直接调用应用接口是指由工作流引擎直接调用相应的应用程序,应用将执行情况反馈给工作流引擎,如一份流转过程中的学校公文经过校领导会签以后,系统进行归档并自动发往各相关职能部门。
(4)维护工作流相关数据:
工作流在执行过程中要维护不同过程和活动实例的内部状态信息,以及用于协调和恢复的各种检查数据和恢复/重起信息,向用户传递必要的相关信息。
图2.1.1工作流引擎应用层次图
.1.2两种现有工作流引擎
目前,OpenSymphony组织开发的OSWorkflow,和Moss项目中集成的jBPM是应用比较广泛的工作流产品,本节将对这三种引擎的设计方案和实现机制进行分析介绍。
1.jBPM
jBPM结合了工作流应用开发的便利性和企业应用集成能力,其业务流程是通过本身提供的流程定义语言jPDL(jBPMProcessDefinitionLanguage)进行配置,但由于没有提供规范接口,从而不易于