毕业论文——审批工作流引擎的设计与实现_第1页
毕业论文——审批工作流引擎的设计与实现_第2页
毕业论文——审批工作流引擎的设计与实现_第3页
毕业论文——审批工作流引擎的设计与实现_第4页
毕业论文——审批工作流引擎的设计与实现_第5页
免费预览已结束,剩余54页可下载查看

下载本文档

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

文档简介

题(中、英文)目 审批工作流引擎的设计与实现 作者姓名 指导教师姓名、职务 学科门类 提交论文日期 学科、专业 代号分类号学号密级 摘 要近几年来工作流技术在很多行业中得到了普遍应用。它将实际的业务逻辑抽象建模,形成计算机可以识别和应用的数据模型,用计算机的智能自动化处理取代或者部分取代人工处理,大大提高了工作效率。工作流引擎是整个工作流技术的核心,工作流引擎通过流程定义,流程规则解析等来实现流程工作的自动化。本文以青岛市政府网上审批项目为背景,研究了电子政务审批业务的实际需求,结合工作流理论和技术,设计并实现了一套针对政府网上审批的工作流引擎。从而实现了网上审批取代传统的人工审批的方式。本文分析了政府审批工作流引擎的体系结构,详细设计了工作流程在运行态的组成元素和工作流引擎中关键对象及模型,介绍了流程定制工具和流程状态控制的设计,给出了政府审批工作流引擎的总体实现。最后通过一个具体的审批实例,验证了政府审批工作流引擎的可靠性和有效性。关键词:工作流 工作流引擎 流程定制 电子政务AbstractIn recent years, workflow technology has been used widely in many industries. It will abstract the actual business logic to develop a data model which can be identified and applied by computer. it replaces or partly replaces the way of manual handling by the why of intelligent automation handling of the computer,so enhance working efficiency greatly.Workflow engine is the core of the workflow technology, workflow engine through the process definition, process analysis, and other rules to achieve the work flow automation.This paper is in the background of Qingdao Municipal Government for approval project on-line, researching the actual requirement of the e-government approval business, combinating the theory and the technology of workflow,designing and implementing a set of workflow engine for the goverment approval work on line. so the method of approval on-line is able to replace the method of traditional manual approval. This paper analyzes the archietecture of the governments approval workflow engine, designs the elements of the workflow running in the state and key objects and models of the workflow engine in particular, introduces the custom tools of the workflow and the state controlling designs of the workflow,achieves to give the final and entire government approval workflow engine. At last, It verifys the reliablity and validity of government approval workflow engine through a specific example.Key words : work flow,workflow engine, workflow customization, e-government I目录目录第一章 绪论11.1 论文的研究背景和目的11.2 相关国内外研究现状11.3 论文的研究内容21.4 论文的结构安排3第二章 工作流技术概述52.1 工作流的定义52.2 工作流管理系统简介52.3 工作流参考模型62.4 工作流引擎介绍82.5 工作流引擎设计的相关技术82.5.1 XML概述82.5.2 ActiveDirectory92.6 本章小结10第三章 政府审批工作流引擎的体系结构113.1 青岛市政府网上审批项目概述113.2 青岛市政府网上审批的架构113.3 政府审批工作流引擎的系统结构153.4 本章小结16第四章 工作流引擎的详细设计174.1流程运行形态元素的设计174.1.1步骤174.1.2步骤的转移214.1.3规则234.1.4 用户254.1.5 任务表单254.2流程引擎中关键对象与对象模型的设计264.2.1流程定义对象274.2.2流程方案对象284.2.3流程实例对象294.2.4流程运行控制类294.3本章小结31第五章 流程引擎的实现和应用335.1流程引擎的总体实现335.1.1流程定制工具设计345.1.2流程状态控制375.2流程引擎在审批系统中的应用395.3本章小结43第六章 结束语45致 谢47参考文献493第一章 绪论第一章 绪论1.1 论文的研究背景和目的本课题来源于浪潮软件青岛市政府网上审批项目。该项目规模相对庞大,主要包括申请外网子系统,审批内网子系统,审批监察子系统。申请外网面向社会公众,主要提供网上申请相关事项,查询审批动态,在线咨询,质量反馈等功能。审批内网面向政府办公人员,主要提供组织角色管理,审批事项发布管理,待办事项审批等功能。审批监察系统面向的是政府的监察机构,主要对审批过程中的数据进行监控。本人在浪潮软件公司工作一年多的时间里,主要从事申请网的项目研发,审批网业务审批研发。其中申请网的项目研发主要是对外网申请人的数据进行管理,使外网用户申请的信息能够进入审批网系统。审批网研发主要是对外网用户提交过来的数据进行审批处理,每个环节相应的审批操作都是通过对工作流实例中状态控制进行相应的业务扩展。外网事项申请人可以通过工作流引擎调度提供的信息跟踪申请事项的审批状态。在以往的审批系统中,针对每一个审批事项进行单独的程序设计,任务分配规则方式,任务流转方式都是固化的。软件自由度差,扩展性极差,并且增加了软件的开发成本。为了解决这个问题,需要借助工作流技术。它可以实现应用逻辑和过程逻辑的分离。可以通过给不同的审批事项抽象建模成相应的工作流模型,不需要修改应用层程序。工作流技术在政府审批系统中的应用取代了传统的事项单独开发方式,只需要在项目开始阶段对审批流程进行详细定义,之后工作流引擎会根据流程定义自动执行相应动作。这样大大缩短了开发周期,从而也大大提高了政府的审批工作效率。但是政府审批工作的复杂性给网上审批系统带来了巨大的挑战。审批流程的多样性、不稳定性,人员的协调管理上的人性化需求都给流程引擎开发带来了巨大困难。设计出一套适合政府审批的工作流引擎使政府审批工作能够切实提高效率便成为了本文的目的。1.2 相关国内外研究现状当前在国内的企业信息系统中,尤其是在国内电信,金融/银行,政府等行业,无论是在企业内部还是外部信息系统,均需要非常灵活的工作流引擎的支撑。国内外软件开发商纷纷推出了自己的工作流产品。例如浪潮软件、用友,金蝶Microsoft、IBM等。这些软件都很好的引用了工作流管理联盟提出的工作流规范。其中很多产品已经应用到了某些企业的信息化系统当中。但是在政府审批工作流这个领域的成熟工作流产品不是很多,有些审批工作流产品相对滞后。关于工作流技术的研究主要分为两个部分:关于工作流理论的研究和工作流管理系统的设计。工作流技术理论研究的主要方向有2:(1) 建模理论和方法:研究如何更好地用计算机模型描述现实世界中的业务流程。(2) 模型验证与仿真方法:研究如何判断建立的工作流模型是否与实际的业务相符合,以及如何评价模型性能的优劣问题。这对于企业经营流程重组问题的研究更有意义。(3) 过程模型和其他模型的集成方法:在描述一个企业和一个应用领域的问题时,仅有过程模型是不够的,还需要有功能模型、信息模型、资源模型以及组织模型的配合。这些不同的模型描述了一个应用领域的不同侧面,他们的集成可以完成一个企业或一个应用领域的全面描述。但是如何集成这些模型还没有好的解决方法。一些工作流建模工具加强了对资源和组织的描述能力,但还没有一个方法来实现模型的和功能、信息、资金流的集成。这方面的研究工作对于促进集成化的企业建模和信息系统的实施有着重要的意义。工作流管理系统产品在国内外市场上也比较常见,以IBM和FileNet两家公司的产品比较有代表性3。(1) IBM公司的产品:IBM MQSeries Workflow是该公司最有代表性的工作流产品,它将经营流程从应用逻辑中分离出来,支持25种不同的操作系统,可根据模型定义自动分配任务,提供图形化的过程定义界面。(2) FileNet公司的产品:Visual Workflow是FileNet公司集成文档管理软件的一部分,是建立在基于组件的软件结构上的,采用先进的工作队列处理方法。它允许迅速的评价和改进机构工作方式,可随时查看过程中关键的细节,掌握过程的运行情况。国内的工作流产品相对来说在某些领域内(比如在物流管理,电子商务,电子政务)还不是很成熟。政府网上审批工作流产品也不是很成熟,浪潮软件开发的政府审批工作流产品提供了完整的网上审批的解决方案,从软硬件上解决了网上审批的一系列集成问题。1.3 论文的研究内容由于政府审批办公的特殊性,各个部门之间事项需要联合审批,本部门下的事务流转多样化,级别间的控制、委托等都要求流程流转的灵活性和自由性相对较大。这使得政府审批系统底层的工作流引擎驱动在扩展性,灵活性有更高的要求。此次课题研究重点在于如何在原有的工作流引擎基础上推陈出新,在性能上,可扩展性有较大的升级。传统的工作流引擎往往业务背景不强,只具有普遍性,在政府审批具体的复杂的业务背景下在处理一些审批业务时显得捉襟见肘,暴露出很多缺点。比如在人员、组织、角色管理上不具备政府机构特色,在流转过程中规则简单。本文研究设计的工作流引擎是将复杂的业务流程转化为流程定义的数据模型,由引擎系统提取流程信息进行解析运转,使繁杂的审批业务移植到系统中,系统根据不同的审批业务配置不同的资源,在流程模型上对这些资源进行个性化配置,使系统所面向的资源差异对其形成数据约束和个性化进行定义,针对政务审批业务模型,解决了业务流程在系统中的可视化构建及工作流元素的动态解析,使得审批业务可以针对部门进行独立构建,并可在联合审批等场景下对部门之间业务进行无缝的对接,实现统一调度、信息共享的审批机制,消除审批事项相关部门的业务壁垒。工作流引擎驱动的是数据库表状态的改变。因此在设计工作流引擎时可以采用表状态驱动。但是这种解决方案驱动表状态不容易扩展和维护,如果后期表结构或者业务流转发生较大的结构性变化将导致引擎的改变。这种引擎的灵活性局限性较差。还有一种方式是通过事件驱动业务实例的流转来间接实现表状态相应改变。事件驱动容易扩展并且不因业务逻辑的变化而发生变化。这种面向对象依靠事件驱动的设计方案在审批系统下更具有普遍性。本文主要研究内容包括以下几个方面:(1) 研究工作流引擎的工作原理和引擎开发的相关技术。(2) 提出政府审批工作流引擎的体系结构,并对工作流引擎中组成元素和关键对象进行详细设计。(3) 提出政府审批工作流引擎的总体实现。主要设计实现流程定制工具和流程状态的控制。(4) 通过一个实际的审批项目的完整的审批过程,来验证政府审批工作流引擎的可行性。1.4 论文的结构安排本论文共分为六个章节,内容如下:第一章 绪论。本章主要介绍论文的研究背景和目的,相关国内外工作流的研究现状,论文的主要研究内容。第二章 工作流技术概述。本章主要介绍工作流的定义,工作流管理系统,工作流的参考模型,工作流引擎及流程引擎设计的相关技术。主要介绍了流程引擎相关技术中最重要的XML 技术和ActiveDirectory技术。第三章 政府审批工作流引擎的体系结构。本章主要以青岛市政府审批项目为背景,介绍了政府审批工作流引擎的体系结构。第四章 工作流引擎的详细设计。本章主要对工作流引擎在运行形态组成元素和关键对象进行了详细设计。第五章 流程引擎的实现和应用。本章对流程引擎进行总体设计和实现。主要对流程定义工具和流程状态控制进行了分析和设计。最后给出了流程引擎在审批系统中的一个完整的应用。验证了本文研究设计的政府审批工作流引擎的可靠性和有效性。第六章 结束语。本章总体对整个研究和设计工作进行了概括和总结,指出进一步工作的要点。9第二章 工作流技术概述第二章 工作流技术概述2.1 工作流的定义工作流管理联盟(Workflow Management Coalition,简称WfMC )给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程。根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行6。从WfMC给出的工作流定义中我们可以看出,工作流的基本特征和应用背景。伴随无纸化办公的推行,网络办公显得尤其普遍和必要。在一些电子政务审批,物流管理,一些办公oa里的请销假等业务中,需要我们的办公软件能够实现任务在多个人员之间的流转,或者一个审批事项能够在多个部门间实现联合办理。这些业务背景都有一个共同的特征,他们需要一套流转规则,任务处理规则来实现任务的自动处理。工作流在本质上是一套自动流转的规则制定与应用。它应该反映经营过程的如下几个问题11:经营过程是什么(有哪些活动、任务组成,也就是结构上的定义)、怎么做(活动间的执行条件、规则以及所交互的信息,也就是控制流与信息流的定义)、由谁来做(人或计算机程序,也就是组织角色的定义)、做的怎样(通过工作流管理系统对执行过程进行监控)。因此,工作流是一种反映业务流程的计算机化的模型,它是为了在先进计算机环境支持下实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务系统。2.2 工作流管理系统简介工作流管理系统是整个工作流应用的管理系统,主要功能有:开始的工作流程定制,工作流在运行状态的各种任务流转的控制,工作流程在流转过程中的监控。按照WfMC的定义:工作流管理系统(Workflow Management System WfMS)是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。工作流管理系统的图形模型,如图2.1所示:图2.1 工作流管理系统功能示意图图2.1中可以看到工作流管理系统的总体架构分为三部分:工作流的建立阶段,工作流的运行阶段,人机交互部分。(1) 工作流的建立阶段:工作流运用建模工具根据具体流转业务建立相应的应用模型。将实际的业务逻辑转换为软件里可直接识别使用的逻辑模型。为工作流实例提供基本任务流转规则方式。形成相应的文件(比如XML定义文件)或者持久化到数据库进行逻辑信息和数据信息的保存。(2) 工作流实例的运行阶段:工作流实例化后会根据步骤信息,角色信息,任务分配信息,任务流转信息形成相应的逻辑实体。这一阶段也是工作流技术中最关键最复杂的环节。由工作流引擎来具体调度,生成,分配各种任务信息和相应任务的控制信息。(3) 人机交互:工作流实例在步骤间的传递和工作里实例某环节下业务实例的信息的监控都需要人机交互。人机交互控制的是软件的表现层,但是没有人机交互,工作流引擎里面的任务流转,和其他的控制事件便无法触发。2.3 工作流参考模型通用工作流的参考模型如图2.2所示:图2.2 工作流管理系统参考模型工作流参考模型主要分为五部分:工作流定制工具,管理和监视工作流引擎的工具,工作流客户应用,供工作流引擎调用的应用,工作流引擎。其中工作流引擎是整个工作流模型的核心部分。(1) 工作流定制工具。工作流定制工具来实现工作流模型的创建和工作流各种控制信息,用户角色信息,数据表单的控制信息的定制。工作流定制工具的设计针对工作流实例环节的定制,某环节的配置信息两个主要要求来设计。工作流管理联盟定义了一套用XML描述工作流元模型的标记语言XPDL。因此工作流定制的实例模型都是以XML来组织存储的。(2) 管理和监视工作流引擎的工具。管理监视工具主要是对工作流实例在运行形态中的流转信息的管理和监控。通过对工作流引擎的管理和监视来实现对工作流实例,即业务实体的控制和监视。比如对业务的开启,结束等环节。(3) 工作流客户应用。工作流客户应用主要是指任务列表的操作。对本环节的任务列表里的工作项进行相应的操作。(4) 供工作流引擎调用的应用程序。工作流引擎调度的一些服务需要一些外接程序或服务接口来实现。比如对数据表单的处理的服务等。(5) 工作流引擎。工作流引擎是整个工作流应用的最重要部分。工作流引擎来实现业务的流转,任务流转的规则和方式,任务分配方式,角色权限控制。2.4 工作流引擎介绍工作流引擎是工作流管理系统的核心部分。是业务处理过程的任务调度器,在某种程度上还是资源的分配器。它为工作流实例提供运行环境,包括流程的定义与解析、资源的分配、流转逻辑的控制等,其主要作用如下:1) 工作流引擎是流程的状态转换机。工作流引擎的任务就是按照定义的规则控制实例的状态转换。2) 工作流引擎是流程的路由控制器。一个流程对应着一条实际转换的业务,流程的转换路线受当前实例数据的控制。流程定义时就制定了流程的转换规则。一般情况下,这些规则是根据流程实例的数据制定的公式。引擎的作用是对这些公式规则进行解析,找出流程下一步的流向,进行实例逻辑处理,使流程向下转换。工作流引擎一般应该提供以下功能:(1) 对过程定义进行解释。(2) 控制流程实例的创建、激活、挂起、终止等。(3) 控制过程活动间的转换。(4) 支持用户操作的界面。(5) 维护工作流控制数据和工作流相关数据,在应用和用户间传递工作流相关数据。(6) 提供用于激活外部应用程序和访问工作流相关数据的接口。(7) 提供控制、管理和监督的功能。2.5 工作流引擎设计的相关技术2.5.1 XML概述(1)XML技术特点XML(eXtensible Markup Language)即可扩展标记语言,跟HTML语言在结构上相类似,都属于标记语言。1998年W3C(全球信息网联盟)发布了XML 1.0规范。XML的前身是SGML(The Standard Generalized Markup Language)。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据和存储数据。可以将具体的业务背景定制成相应规范的XML文件。XML不仅可以用来像数据库一样来存储数据,也可以在网络传输中作为传输通信协议的制定者和数据的携带者。XML虽然不能像专业的数据库,比如SqlServer,Oracle,DB2那样有强大的数据管理功能,可以实现数据的排序,数据的各种约束,数据间的逻辑关系。但是XML是跨操作系统,开发平台的数据存储格式。任何的应用程序都可以加载XML,都可是实现对XML的结构和数据的操作。尤其在跨应用程序之间和跨网络之间使用XML来传输数据和保存数据有极大的优势,是其他专业数据库不能比拟的。(2)DTD与 Schema DTD与Schema是XML文档格式的定义语言。DTD是XML关于标记符的一套语法规则。它是XML1.0版规格的一部分,是XML数据和格式有效的验证机制。DTD用来保证XML文档中元素数据类型和标签的正确使用。Schema的功能跟DTD相类似,也是用来描述和规范XML文档的一种语言。但是Schema比DTD在规范XML方面更加方便。因为Schema支持命名空间,内置了一些常用的数据类型,并且支持用户自定义数据类型,可以更方便的实现对XML文档的有效验证。(3)DOM模型XML文档的处理方法主要有两种方式:DOM和SAX。DOM是Document Object Model文档对象模型的缩写。DOM模型是将XML文档以及文档内部标记当作对象来处理。如果我们用DOM模型来处理XML文档首先需要将XML文档加载到内存中,XML文档在内存中用树状结构来存储。因此DOM模型中对XML文档处理相对简单,只是运用面向对象的思想来进行数据和格式的处理。DOM模型的优点是查询修改XML数据简单方便。缺点是因为DOM模型需要将XML文档加载进内存以树状结构存储,所以占用内存资源较大。对于大型的XML文档处理不是很合适。(4)SAXSAX(Simple API for XML)是一个用于处理XML事件驱动的模型,虽然它不是W3C标准,但它却是一个得到了广泛认可的API。SAX解析器不像DOM那样建立一个完整的文档树,而是在读取文档时激活一系列事件,这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问。与DOM相比,SAX解析器能提供更好的性能优势,它提供对XML文档内容的有效低级访问。SAX模型最大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析器可以解析大于系统内存的文档。2.5.2 ActiveDirectoryActiveDirectory(活动目录)是面向Windows Server服务器的目录服务。活动目录使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。ActiveDirectory 相当于整个网络环境中的主交换机。它可以帮助用户和应用程序针对那些已处于网络连接状态的相关资源实施目标定位与访问调用,并在彼此之间实现网络互联。ActiveDirectory还可以通过给用户授权的方式来实现在具备安全保障的前提下针对相关资源执行访问调用。活动目录是从一个数据存储开始的。它采用的是Exchange Server的数据存储,称为:Extensible Storage Service(ESS)。其特点是不需要事先定义数据库的参数,可以做到动态地增长,性能非常优良。这个数据存储之上已建立索引的,可以方便快速地搜索和定位。活动目录的分区是域(Domain),一个域可以存储上百万的对象。域之间还有层次关系,可以建立域树和域森林,无限地扩展。 在数据存储之上,微软建立了一个对象模型,以构成活动目录。这一对象模型对LDAP(Lightweight Directory Access Protocol)有纯粹的支持,还可以管理和修改Schema。Schema包括了在活动目录中的计算机、用户和打印机等所有对象的定义,其本身也是活动目录的内容之一,在整个域森林中是唯一的。通过修改Schema的工具,用户或开发人员可以自己定义特殊的类和属性,来创建所需要的对象和对象属性。2.6 本章小结本章主要介绍了什么是工作流,根据WfMC提出的工作流的定义来指导后面的整个工作流设计的要点和功能目的要求。提出了什么是工作流管理系统,工作流管理系统的主要组成部分,以及工作流管理系统的三个主要组成各自的作用和设计要求。介绍了工作流的参考模型,从工作流的参考模型中五个组成部分相互之间的关系中可以看出工作流引擎在整个工作流技术中的重要作用,接着介绍了工作流引擎的作用和功能以及在工作流引擎设计中用到的相关技术。为后面的具体设计提供了理论指导。17第三章 政府审批工作流引擎的体系结构第三章 政府审批工作流引擎的体系结构政府审批工作流引擎跟普通的工作流引擎在体系结构上有些区别。政府审批业务的特殊性决定了政府审批工作流引擎的体系结构上的特殊性。政府审批系统首先是一个政府便民系统,要求在业务的管理上突出监控、公开、反馈等特性。其次面向的人群是社会公众和政府审批工作人员,要求流程引擎在信息集成和信息统一调度处理上效率更高,准确率更高。本章以青岛市政府网上审批项目为背景,通过介绍青岛市政府审批项目中工作流引擎的架构引出普通政府审批工作流引擎的体系结构。3.1 青岛市政府网上审批项目概述目前,中小电子政务领域的软件应用存在着诸多问题,例如:大型管理软件投入大、国外软件不适合本地需求、子系统间不能有机融合、存在“信息孤岛”、旧系统数据不能重复利用等。市区级政府要求快速搭建自己的信息化工作平台,并且该平台能将各种信息有机地统一起来,实现信息融合,从而实现办公业务系统自动化、信息处理系统电子化、辅助决策系统智能化、业务管理信息化和网上交互系统一体化等一系列信息化办公职能。电子政务系统的要求是:政务系统的应用,必须为市领导的科学决策、政府日常办公、业务管理、公众信息服务提供各类科学、高效、安全的现代化手段。正是在这个大的背景下,青岛市政府开通了网上审批服务中心。青岛市政府网上审批服务中心()是市政府为贯彻实施行政许可法,更好地亲民、便民、利民,构建服务型政府所建设的网上服务平台,主要功能是面向市民、面向企事业单位提供网上24小时行政审批申报服务,实现审批服务业务网上受理,提升行政管理部门工作效率和公共服务水平。 系统平台现已完成30多个部门近100项行政许可审批事项的在线申报审批服务,并完成65个部门349项行政许可事项(依据青岛市政府政府令2004175号)的网上查询及咨询服务,为企事业和市民提供了政府面向公众统一的服务入口。系统提供了网上查询、申报受理、申报过程跟踪查询、网上咨询、网上监督等功能,为用户提供了快速申报,行政审批部门及时受理并反馈的便利、快捷服务。平台现已形成了较为完善的市级审批服务应用系统。3.2 青岛市政府网上审批的架构青岛市政府网上审批系统主要包括申请外网,审批内网和审批监察三个子系统。申请外网主要面向社会公众,主要提供网上申请相关事项,查询审批动态,在线咨询,质量反馈等功能。审批内网面向政府办公人员,主要提供组织角色管理,审批事项发布管理,待办事项审批等功能。审批监察系统面向的是政府的监察机构,主要对审批过程中的数据进行监控。青岛市政府网上审批系统的总体架构如图3.1。图3.1 青岛市政府审批系统架构图整个审批系统主要分为三层:应用层、组件层、底层数据硬件环境支撑层。硬件支撑平台及中心网络是为审批系统提供硬件支持。整个审批系统出于安全考虑将申请外网和审批内网在物理上进行隔离。其中申请外网的应用网络是整个互联网,审批内网是整个青岛市单独组建的网络在物理上切断了跟互联网的联络。内外网之间通过物理隔离网闸实现数据交换。平台服务器建议使用Windows Server 2003,因为Windows Server 2003内置支持ActiveDirectory。整个系统支持常见的大型数据库(Oracle,DB2,SQL Server等)。组件层主要包含了审批系统中主要的功能模块:工作流(Work Flow)、动态表单、即时消息、AD统一认证、短消息提醒、安全及日志、数据交换。工作流是整个审批系统中的核心模块,负责流程定义与解析,任务流转,资源调度等功能。动态表单是整个审批任务的数据容器,表单携带着申请人的申请信息和审批人的审批意见。即时消息负责在事项超时或者审批违规时需要及时提醒办公人员或申请人相关信息。AD统一认证是在审批网中负责对人员角色信息的存储与管理,既实现了活动存储又确保了人员登陆安全,也是本系统设计的一个亮点。短消息提醒是指审批系统利用移动短信接口将一些重要审批信息发送给申请人。安全及日志负责整个审批系统的审批人员动作行为或者系统异常信息的存储管理。数据交换实现分布的数据库之间的数据交换,主要是外网数据库,内网数据库,监察数据库之间的数据交换,数据冗余处理等。应用层主要包括外网服务平台,内网服务平台,系统管理平台,业务管理平台,统计分析平台,监督服务平台,数据交换平台。其中外网服务平台和内网审批网是整个审批系统的主要组成部分。这两个子系统的结构组成如图3.2。图3.2 青岛市政府申请网和审批网结构图从内外网的结构图中可以发现,外网只是提供一个进行申请事项,申请事项信息查询的一个服务平台。投诉举报,政务信息,网上公示的数据主要来自审批内网的发布数据,属于传统的CMS管理系统的信息发布展现。而申请信息查询主要来自对工作流实例状态的查询,依赖工作流引擎的任务调度和工作流实例状态信息监控。内网的主要功能分为两种:信息发布和事项审批。信息发布主要是为外网数据展现创建提供数据源。事项审批主要是对工作流实例的状态控制和审批数据的填充。审批监察同样是对工作流实例的审批动态的监控。工作流引擎是整个系统的核心部分。工作流引擎驱动工作流实例的流转,对人员和表单等资源进行调度,完成了外网申请事项的逐级审批。3.3 政府审批工作流引擎的系统结构根据青岛市政府网上审批系统的结构组成,可以从中看出流程引擎在整个系统中的关键作用。工作流引擎的结构主要包括流程解析器、流程管理器、活动管理器、任务管理器。工作流引擎的组成与工作流管理系统中其他部分之间的关系如图3.3。图3.3审批工作流引擎的结构图(1) 流程解析器流程解析器负责解析流程定义。将工作流流程定制器定制的流程模型进行正确的解析,使得每个事项都能够按照开始定制的流程方案流转下去。(2) 流程管理器流程管理器负责管理流程的实例化、启动、挂起、激活、回退、结束等动作以及维护流程相关数据等,为用户提供查看流程实例状态和操作流程实例的方法。(3) 活动管理器活动管理器主要负责流程实例的启动、挂起、激活、结束等动作及活动的执行和相关数据的管理。(4) 任务管理器任务管理器的主要职责是分配任务项。为每一个环节生成待办任务列表供办公人员进行网上审批。工作人员处理完毕的待办事项会改变审批状态变成已办事项。其中流程解析的数据来自流程定义的XML数据文件。通过对XML文件的解析得到每一个事项的基本流程模型。审批网办公人员的审批事项就是来自工作流引擎解析过来的待办工作流实例。办公人员从自己的待办事项列表中可以审批相应的事项,完成提交或者驳回等操作。3.4 本章小结本章主要通过介绍青岛市政府审批项目、工作流技术在整个审批项目中的应用和整个审批工作流引擎的体系结构,引出普通政府审批工作流引擎的体系结构。青岛市政府审批项目主要包括三个部分:申请外网、审批内网、监察系统。三个子系统主要是针对审批事项的申请,审批和监察。审批事项在多个办公人员之间的流转的特征使我们在开发这个项目时,主要采用了工作流技术。通过工作流引擎来实现事项的流转、状态控制和流转的监控。本系统的架构主要分为三层。其中组件层是整个系统的关键核心部分。在组件层各个部分之间其中工作流和动态表单是最重要的部分。工作流技术的运用使得我们不必为某个具体的审批事项单独进行程序开发,节省了开发成本的同时也增强了系统的可扩展性。动态表单是审批事项的数据容器。它携带着申请人的申请信息和各个环节审批人的审批数据。33第四章 工作流引擎的详细设计第四章 工作流引擎的详细设计工作流引擎是整个工作流技术的核心部分,工作流引擎负责流程信息解析,资源分配,流程实例的创建、激活、挂起、回退、终止等。本章首先对工作流程中在运行形态中的组成元素进行设计,主要根据XPDL中的元素及元素转移关系这套基础库进行扩展,使得真正适合政府审批工作流的特殊业务背景。其次对工作流程引擎中一些关键对象以及对象的模型进行详细的设计。因为整个工作流引擎本质上是由几个重要的业务逻辑中的抽象对象组合而成的。4.1流程运行形态元素的设计每个工作流程在运行态的实例称为一个Activity Model(活动模型),一个活动模型描述了流程的全部步骤(Step),以及步骤之间的转移关系(Transaction)。步骤之间的转移需要相应的任务分配规则和任务流转规则。每个步骤都有相应的资源,比如人员组织,数据表单数据信息和控制信息。本节内容分别对这几个主要元素进行详细设计。4.1.1步骤Activity Model是工作流程在运行态的实例对象。它是实际审批事项的一个抽象模型。审批事项流经的办理环节相当于Activity Model里的步骤(Step),审批事项里的环节之间的转换相当于ActivityModel里的转移关系(Transaction)。Activity Model由多个步骤和转换组成,转换描述的两个步骤之间存在的连接关系。如图4.1所示:图4.1 工作流模型与步骤、步骤间转移的关系图ActivityModel中的步骤(Step)共分为六种:(1)启动步骤。启动步骤表示流程的开始,没有实际的动作,不关联其他的任何属性,资源与规则。(2) 结束步骤。结束步骤表示流程的完成,跟启动步骤在数据特性上类似。没有实际的动作,也不关联其他的任何属性,资源和规则。(3) 单人交互步骤。单人交互步骤表示一个具体的人员在流程运行态需要执行的一个任务(Step在运行态转换为与具体的工作人员相关联的一个具体的待办任务Task),单人步骤需要关联的资源有办公管理人员,和一个携带数据信息和数据控制信息的任务表单(Task Form)和一个任务分配规则(Assign Rule),与步骤相关联的连接可能有任务的流转规则(RoutinRule),有关这一部分的详细说明在后面详细描述。图4.2 单人交互步骤示意图图4.2中单人交互步骤执行过程可以分为步骤启动阶段,任务启动阶段,步骤完成阶段。当前步骤的前驱步骤完毕后开启此步骤。根据这一步骤前面的连接器类型由流程引擎解析任务流转规则和任务分配规则生成相应的待办事项列表。工作人员可以在待办列表里进行此事项当前环节的办理,办理完后,将待办列表里删除当前办理完毕的事项,生成已办事项,办公人员可以在已办事项列表里查看到办理完毕的事项。(4) 多人交互步骤。由多个人共同执行的步骤,这个步骤会在运行态被分解成为1个或者多个具体的任务,所有的任务共用一个Task Form(如果出现需要使用多个TaskForm的情况再分解成为多个单人步骤或者多人步骤),步骤与Task Form存在一对一的关系;多人步骤可能关联的资源有具体的工作人员,单位,角色。同样也需要有分配规则和启动规则。图4.3 多人交互步骤运行示意图多人交互步骤图中只是在步骤完成阶段与单人交互步骤不同,它需要根据规则等待其他的人员办理完然后开启后继步骤。(5) 自动化步骤。该步骤执行一个自动化的动作,可以是调用一个.net的组件,也可以是一个调用一个Web Service。还有可能增加一个等待(Waiting Rule)规则,比如等待到某一个时刻,或者等待多长的时间,然后执行此步骤下的动作。图4.4 自动化步骤运行示意图自动化步骤中由程序自适应选择处理来代替了人工办理。对事项的办理是通过事件驱动来实现表单数据的驱动。最终实现事项状态的改变和事项的流转。表单数据处理可以手动触发事件,比如通过,驳回,挂起等操作可以实现表单数据的相应改变,即审批事项的状态改变。自动环节程序可以调用.net组件或者调用相应WebService来实现对表单XML数据的处理。(6) 调用子流程步骤。调用子流程步骤不需要与人员交互,启动另外一个流程,两个流程之间暂不进行参数交换;调用分为同布与异步两种,异步调用的运行态效果与自动化步骤基本相同,同步过程则会增加一条等待规则,等待另外一个流程结束的事件。图4.5 调用子流程步骤示意图当一个事项流转到某个环节,又要开始一个新的子流程时需要用到此步骤类型。步骤启动阶段跟前面的步骤类似。当此步骤开始执行动作时,便开始调用子流程。事项会在子流程中继续流转。4.1.2步骤的转移步骤之间的转移才真正的实现了事项在不同环节,不同办公人员之间的流转。步骤之间的转移是一条有相曲线,这条转移的曲线的开始节点是前驱步骤,结束节点是后继节点。前驱步骤转移到后即步骤需要一定的规则支撑。转移主要分为两类。第一类是顺序连接关系,第二类是连接器。连接器又分为分支连接器和汇聚连接器。顺序连接一般不关联任何属性,只表示步骤的连接关系。连接器分为两类:分支连接器和汇聚连接器。1. 分支连接器。分支连接器表示一个步骤与多个后继步骤有连接关系。分支连接器又分为与分支、或分支两种。(1) 与分支实质上就是并行关系,当前步骤地各后继步骤同时启动。此处只产生一条与连接流转规则。图4.6 与分支连接器示意图(2) 或分支连接器表示当前步骤的后续步骤之间存在着选择关系,只会执行其中的某些步骤,选择依赖于“或分支”上定义的流转规则,这一点在规则部分详细说明。图4.7 或分支连接器示意图2. 汇聚连接器。汇聚连接器与分支连接器相对应,有分支连接器必须有汇聚连接器。汇聚连接器是用在比如一个事项在某一个环节需要同时有两个部门或者人员来办理,办理完毕后需要在某一个环节再汇聚到一个单独的环节来办理。汇聚连接器又分成3种。(1) 与汇聚。与汇聚和与连接相对应,只有连接器的所有前驱步骤都已经完成的前提下才可以启动后继的步骤。图4.8 与汇聚连接器示意图(2) 或汇聚。或汇聚与或分支对应,它的前驱条件决定于与它对应的或分支产生的任务是否已经全部完成。(3) 投票汇聚。投票汇聚可以和任何的分支连接器对应,但是前提是它所对应的分支连接器必须能够产生多于1个的后继任务,它所对应的所有前驱任务之间存在着投票的关系,依靠投票的结果来决定后继的步骤的路径,因此投票汇聚比较复杂,它的一部分同时要承担“或分支”的职能。同样也存在不需要根据投票结果的进行分支的情况。可能只是把投票的结果顺序传递下去。4.1.3规则步骤之间的转移通常需要规则来约定。在上面两节里在步骤启动阶段都需要根据相应的任务流转规则然后再根据任务分配规则来生成相应的待办列表。此环节制定的工作人员从待办列表里面审批事项,然后处理完毕再流转到下一环节。流转到下一环节同样根据下一环节的任务流转规则和任务分配规则继续生成待办列表。直至一个完整的申请事项审批完毕。规则是审批事项(即工作流实例)正确流转的保证。规则的参与元素主要有表单数据和人员组织角色。其中表单数据是规则制定时最主要的变量。表单的定义和表单字段的定义由表单管理模块提供。规则主要分为两类:任务分配规则和任务流转规则。1). 任务分配规则。流程引擎中任务分配规则是整个审批事项任务的调度规则。流程实例运行到某一步骤时,需要根据流程定义时制定的分配规则生成相应的待办任务列表。此步骤关联的审批工作人员可以对待办列表里的事项进行相应的审批。然后生成已办事项,流程实例在这一环节的审批任务便执行完毕。任务分配规则分为以下几种:(1) 与规则。与规则表示当前环节所有的候选办理人都必须参与。(2) 阈值规则。在候选办理人中必须有多少人或者多少百分比以上的参与才可以通过。具体的数值在流程方案定义的时候会有管理人员进行相应的设置。(3) 手工分配规则。由流程的发起者或者前驱步骤地办理人指定后继步骤地办理人。这是由政府审批业务背景的特殊性所决定的。比如在审阅环节完毕还有一个证件打印的环节。审阅环节的工作人员通常是本部门的管理人员,他可以根据本部门的人员具体情况进行指定下一环节的办理人。(4) 抢占规则。所有候选办理人同时得到待办事宜,谁先作处理以后其余人的待办事宜被撤回。(5) 优先级规则。可以按照用户对象的优先级属性,如果是单人交互步骤则分配给优先级最高的人,如果是多人交互步骤则分配与阈值规则相关联。比如现场勘验环节,勘验人员可以根据人员的组织隶属关系或者人员的等级关系来决定这一环节的办理意见。(6) 任务量规则。如果是单人步骤,则分配给任务量最小的一个人,如果是多人交互步骤则与阈值规则共同作用,按任务量的前多少人或者百分之多少定义。(7) 轮转规则。所有候选办理人按照指定的顺序进行办理。制定顺序同样由管理人员在方案定义时进行设置。2).任务流转规则任务流转规则是根据具体的业务逻辑将其在环节的流转抽象成一定的规则。使得流程实例在审批流转中能够按事先预定义好的规则进行流转。这种抽象基于审批事务复杂的流转要求。任务流转规则是在流程方案对象跟流程对象绑定时进行设置的。主要分为以下几类:(1) 预警规则。 设定业务办理的预警时间,系统对流程实例中的未完成的活动任务进行提示办理。审批人员可以通过预警时间提示完成相应的审批任务。(2) 废弃规则。设定业务办理的废弃时间,系统对流程实例中的未完成的活动任务进行标记删除。(3) 转到环节。设定业务办理转到下一环节的时间,审批系统对流程实例中的未完成的活动任务进行标记删除。(4) 子流程。设定业务办理启动子流程的时间,系统对流程实例中的未完成的活动任务进行标记删除。(5)步骤就绪规则。步骤就绪规则是指当然步骤所有的前驱步骤都已经完毕,当前环节准备执行前的规则。根据前驱步骤间的逻辑关系又可以分为与汇聚规则和或汇聚规则。与汇聚规则是指是一同步活动,不针对具体业务环节,流经此处的任务将进行与汇聚同步。此活动将进行活动的前驱步骤完成检查,只有所有的前驱步骤完成规则均被满足,才可流向后继活动。或汇聚规则是指,是一同步活动,不针对具体业务环节,流经此处的任务将进行或汇聚同步。它同样将进行活动的前

温馨提示

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

评论

0/150

提交评论