




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于.Net的工作流引擎的设计与实现摘 要针对当前大多数工作流管理系统在实际应用中可集成能力差这个缺点,决定利用Web Service技术来实现一个工作流管理系统。因为目前.Net平台对WebServic的支持相对比较完善,所以决定实现一个基于.Net的工作流管理系统。这个工作流管理系统具有松散藕合、低进入屏障、行业支持、高度可集成能力等优势。 工作流引擎是整个工作流管理系统的核心,其通信方式是提高工作流管理系统可集成能力的关键。在本系统中,分布在Internet的各个节点上的工作流引擎处在对等的地位,它们通过Web Service调用相应的接口来实现它们之间的通信。正是这种通信方式使本工作
2、流管理系统的集成能力、互操作性有了显著的提高。这个工作流管理系统的客户端是一个Web应用程序,用户通过浏览器登录并调用客户端,然后客户端程序通过调用工作流引擎所提供的相应接口实现与工作流引擎的通信。以这种基于Web的方式实现本工作流管理系统可以增加系统的可扩展性 从系统结构上讲,工作流引擎主要被分为了工作流逻辑、工作流支持系统和数据管理等 3个主要部分。其中,工作流逻辑这个部分负责处理引擎的逻辑功能,工作流支持系统和数据管理这两个部分则负责工作流实例对象的存储和读取等功能。这样,这个工作引擎就实现了控制逻辑与数据读写的分离。关键词:工作流管理系统,分布式平台,工作流引擎,工作流建模工具引 言1
3、.1 课题背景在计算机刚刚出现的时候,大多数与企业相关的文档均以纸的形式在部门之间传递,无论是在信息的处理、组织方面,还是在存储与查询检索方面纸的效率都相当的低。因此,人们希望出现一种无纸化的、由计算机操纵的工作环境。后来一些公司将组织中常用的一些业务功能结合在一起,形成了一种部分支持业务流程集成化的软件包,这便是早期的工作流管理系统。限于当时的计算机发展水平,这些软件包所集成的功能都较简单。 1993年,国际I作流管理联盟 (Workflow Management Coalition, WfMC)的成立,标志着工作流技术开始进入相对成熟的阶段o WfMC的目标是:提高客户在工作流技术上的投资
4、价值;减少使用工作流产品的风险;通过为工作流提高知名度而扩展工作流市场。为了实现不同工作流产品之间的互操作,WfMC制定了关于相关术语、体系结构与应用编程接口等方面的一系列标准。正是WfMC所做的这些工作促使工作流管理成为近年来在计算机应用领域中发展最为迅速的几项新技术之一。目前其已经广泛地应用于办公自动化、文件管理、电子、目录管理、群件应用、BP (Business Process Reengineering)与结构系统定义I具等领域,这使得I作流管理系统越来越受到不同应用领域的用户重视。工作流管理系统在众多CSCW应用软件中变得越来越流行,需求量不断增大,同时工作流管理的思想已广泛应用于企
5、业管理和计算机应用的各个方面1,2 随着工作流技术的广泛应用,在工作流管理技术这个领域也出现了许多新的课题。分布式工作流管理系统就是这些课题之一。这是由于数据库、计算机网络的广泛应用使现代企业的信息资源表现出异构,分布和松散祸合的特点,企业的分散性决策制定的分散性、Client/Server体系结构和分布式处理技术的日益成熟,都说明集中式信息处理的时代已经过去,实现在大规模的异构分布式执行环境下使工作流中相互关联的任务在系统监控下高效运作成为一种趋势。材料与方法1.2 国外研究概况1.2.1工作流技术的研究现状 在工作流技术的研究中,比较著名的有IBM公司Almaden研究中心的Exotica
6、、佐治亚大学计算机系的Meteor, WIDE& Meteor等研究项目1-6。其中Exotica和Meteor是完全分布式的工作流管理系统,WIDE& Meteor则采用C/S结构。 在国际市场上,以FileNet, Jeform, IBM和Action四家公司的产品比较有影响和代表性。以下是这四家公司的工作流产品的简要介绍: I.FileNet公司的产品:Visual WorkFow是FileNet公司集成文档管理软件的一部分,是建立在基于组件的软件结构上的,采用先进的工作队列处理方法它允许迅速地评价和改进机构工作方式,可随时查看过程中关键的细节,掌握过程的运行情况。 2.
7、JetForm公司的产品:InTempo是JetForm公司的工作流产品,它基于C/S结构,其客户端互相独立,适合于管理型和设定型的经营过程,如合同管理、顾客问题解决、销售和预算审批等等。它可自动将任务分配给相应的人员,任务会自动出现在用户的信箱中,简化了任务的接收过程。 3.IBM公司的产品:IBM MQSeries WorkFow是该公司最新的工作流产品,它将经营流程从应用逻辑中分离出来,支持25种不同的操作系统,可根据模型定义自动分配任务,提供图形化的过程定义界面。4.Action公司的产品:Action Metro 4.0为工程师提供了一套基于Web的工作流管理软件。它对经营过程中不可
8、预见的问题、要求和机遇也可进行控制,还为用户提供了相应的管理工具。它更适合于基于知识的工作流,它支持用户与信息之间的交互。1.2.2 当前研究的热点目前关于WfMS (Workflow Management System)的研究主要集中在以下9个方面:1.更为灵活的过程模型:人们对于WfMS批评最多的莫过于其“僵硬”的过程模型,这使得用户在某些情况下(如发生某种特殊情况)不得不越过WfMS而用其它方法(如手工方式)来完成有关的工作。 2.面向对象的WfmS: 面向对象(00)的思想反映了人类思维的一般特征(从特殊到一般与从一般到特殊)。进入90年代,基于这一思想而发展起来的各种技术,如OOA,
9、 OOD, OOP等在计算机领域得到了广泛的应用。随着W fMS研究的不断深入,00思想也被引入进来,逐渐形成了面向对象的Wfms(OOWfms)。 3智能化的WfMS: Ellis曾经指出:人工智能(AI)所使用的经常是启发式或扩性的方法。这种方法使得系统中的信息能够随人机交互过程的进行而动态增长(学习过程)阴,而不是在一开始就将系统中所有的信息都定义好。4.对同步协作的支持: WfMS的基本功能是对异步的结构化协作的支持,即将一个用户工作完之后生成的结果数据自动传递给下一个环节的用户进行处理。而同步协作则是各参与者实时地交流思想,最终得到某个结果的过程。5.对移动用户的支持: 商业社会的激
10、烈竞争要求企业具有良好的反应能力。移动办公正是为满足此种要求而出现的一种新的工作方式,它使得员工能够随时随地处理他们的业务。移动计算设备(如笔记本与手持设备)的普与为这种办公方式的实现提供了良好的硬件条件,而Wfms则为之提供了一种理想的软件环境。但早期的WfmS系统一般都是基于LAN环境而构造起来的,它一般要求用户一直保持同WfMS的连接。 6.基于Web的WfMS: Web技术因其界面的一致、简单与与平台的无关性而在其出现之后就得到了迅猛发展。Internet的发展与企业Intranet的建构为人们提供了一个理想的协同工作环境同时也使得基于Web建立工作流管理系统成为可能。 这方面的研究是
11、最近些年来才开始的。在目前能够见到的系统中,一般是使用HTML页面通过Web浏览器向用户表示WtMS中的各种信息,如用户的工作项列表待处理的数据、过程的进行状态等。而在Web服务器端,则通过CORBA (CommoObject Request Broker Architecture),J2EE (Java 2 Enterprise Edition),.Net等技术完成工作流引擎与Web服务器之间的信息传递。 7.分布式WfMS: 为了支持跨企业的异构计算环境下大规模工作流管理,现有的WfMS的能力必须从多个不同的方面加以扩展,以提高系统的可靠性、可伸缩性与容错能力等。 8.事务型WfMS: 这
12、方面的研究主要是试图将一些高级事务模型(如Saga, Flexible Transaction)等应用到工作流系统的过程实例的执行中,以提高WMIS的可靠性,如保证过程实例中各活动执行的完整性。9.工作流系统之间的互连:随着大量各具特色的 WfMS产品涌入市场,不同的企业或企业的不同部门可能会选用不同厂家的产品。而跨企业与企业间大型工作流应用需求的增加要求能够将这些异质的WfMS互连起来(即在两个或多个WfMS之间传递工作项和执行控制)以协同完成复杂的业务过程。分布式结构的WfmS本身就有一个如何将各工作流引擎互连起来的问题WfMC一共定义了八种级别。在最后选定的互操作模型和级别下,可定义一组
13、操作集来实现之。1.3 课题主要研究工作本课题的主要研究工作是根据当前对工作流产品的需求,设计与实现一个具有松散祸合、低进入屏障、行业支持、高度可集成能力等特点的工作流管理系统,并把重点放在分布式工作流引擎的设计与实现上。其主要工作集中在以下几个方面:1 工作流引擎的通信方式与接口的设计。2 工作流引擎体系结构的设计。3.工作流引擎的关键模块的实现。4.分布式工作流日志管理的研究与实现。5.工作流引擎数据库的实现。本文主要通过工作流引擎的通信方式与接口的设计、工作流引擎体系结构的设计、工作流引擎的关键模块的实现、工作流引擎数据库的实现等四个方面具体讨论分布式工作流引擎的设计与实现。2 工作流管
14、理系统体系结构2.1 工作流管理系统体系结构 为了能够更好地支持企业经营过程建模、分析和实施,适应世界市场的多元化趋势,需要建立工作流管理系统的相关标准,从系统结构、术语使用和接口实施等方面提供标准化与规化的定义,并以此为基础实现不同工作流产品之间的互操作,以便于与其他应用系统的集成。这个参考模型的体系结构给出了抽象的工作流管理系统的功能组成部件和接口,它能够满足工作流管理系统和产品所应该具有的主要功能特征,可为实现工作流产品之间的互操作提供公共的基础。一般说来,工作流产品的提供商也不会将这些部件之间的所有接口完全对外开放,但是为了实现不同工作流产品之间的集成,它们会按照互操作和协作的不同要求
15、在一定层次上开放其接口X27-281。工作流管理系统主要由以下三类构件组成:1.软件构件:完成工作流管理系统不同组成部分功能的实现。 2.系统控制数据:工作流管理系统中的一个或多个软件构件使用的数据。 3.其他应用与应用数据:对于工作流管理系统来说,他们不是工作流管理系统的组成部分,而是属于外部系统和数据,它们被工作流系统调用来完成整个和部分工作流管理的功能。2.2 工作流参考模型图2.2给出了WFMC提出的工作流参考模型。本节首先介绍工作流参考模型中涉与到的几种数据,在以后的各节对参考模型中的几个部分进行描述。1.工作流控制数据:工作流执行服务/工作流引擎通过部的工作流控制数据来辨别每个过程
16、活动实例的状态。这些数据由工作流执行服务/工作流引擎进行控制用户、应用程序或其他的工作流引擎/工作流执行服务不能对其直接进行读写操作,它们可以通过向工作流执行服务/工作流引擎发消息请求来获得工作流控制数据的容。2工作流相关数据:工作流管理系统通过工作流相关数据来确定过程实例状态转换的条件,并选择下一个将执行的活动。3工作流应用数据:这种数据是指那些由应用程序操作的数据。它们是针对应用程序的,是企业完成具体的业务功能所需要的数据,工作流管理系统无法也不需要对它们进行访问。2.3 工作流模型与建模工具工作流模型包含了一个能够由工作流执行服务软件执行过程实例所需要的所有信息。这些信息包括过程的开始和
17、完成条件、构成过程的活动以与进行活动间导航的规则、用户所需要完成的任务、可能被调用的应用、 过程建模工具以计算机能够处理的形式进行过程的定义。它可以用基于形式化的过程定义语言、对象一关系模型来进行过程模型定义。对于比较简单的系统,可以采用一组路径选择命令的方式来描述信息或文档在不同参与者之间的传递过程。 工作流建模工具应输出一个能被工作流引擎解释并执行的过程。不同的工作流产品的建模工具输出模型的存储格式是不同的,参考模型中接口1的定义不仅是为了实现工作流的定义阶段和运行阶段的分离,使用户可以分别选择建模和工作流执行的软件产品,而且是为了使不同的工作流产品能够实现协作运行,从而为过程定义的执行提
18、供良好的运行服务环境。在工作流建模上,WFMC开展了两个方面的工作: 1.定义了一个元模型:所谓元模型一般是指描述模型的模型。这里的工作流模型的元模型是用来描述工作流模型在联系的模型。它用于描述工作流模型部包含的各个对象、对象之间的关系与对象的属性。这个元模型有利于建立可以在多个工作流产品之间交换信息的模型。2.定义了一套可以在工作流管理系统之间、管理系统与建模工具之间交互过程模型定义的 工作流管理联盟定义的过程元模型口该模型包含以下各基本实体:1.工作流定义 (过程模型):它一般包含诸如工作流模型名称、版本号、过程启动和终止的条件、系统安全、监控和控制信息等一系列基本属性。这个过程模型反映了
19、企业中一个经营过程的目的,即这个过程要实现的目的和最终达到的目标是什么。 2.活动:主要属性有活动名称、活动类型、活动的前后条件、调度约束参数 (如最长处理时间、排队等待时间)等。当工作流运行在分布式环境下时,在活动的属性中还应该包括执行该活动的工作流引擎的位置。活动对应于企业经营过程中的任务,主要反映了完成企业经营过程需要执行哪些功能操作。 3转换条件:主要负责为过程实例的推进提供导航依据,主要参数包括工作流过程条件(Flow condition,过程实例向前推进的条件)、执行条件(Execution condition执行某个活动的条件)和通知条件 (Notification condit
20、ion,通知不同用户的条件)转换条件对应于企业经营过程中的业务规则和操作的顺序。如在订单处理完成之后执行生产计划的制定工作。 4.工作流相关数据:工作流引擎根据相关数据和转换条件进行推进。工作流相关数据的属性包括数据名称、数据类型和数据值等。它是工作流执行任务推进的依据如在银行贷款申请表处理后,根据申请贷款的值 (如是否大于10万元)决定下一个执行的活动是什么,比如,大于10万元的申请交业务经理处理,小于10万元的申请交给业务员处理。 5.角色:角色属性主要包括角色的名称、组织实体、角色的能力等。角色或组织实体决定了参与某个活动的人员或组织单元。它主要描述企业经营过程中参与操作的人员和组织单位
21、。 6.需要激活的应用程序:主要属性包括应用程序的类型、名称、路径与运行参数等。应用主要描述用于完成企业经营过程所采用的工具或手段,如采用ERP软件或决策支持软件完成某个操作的具体企业业务功能。2.4 工作流执行服务与工作流引擎工作流执行服务是工作流管理系统的核心。实际上它是企业经营过程的任务调度器,在某种程度上还是企业资源分配器。工作流执行服务由一个或多个工作流引擎(Workflow engine)组成 (在分布式环境下由多个工作流引擎组成),它提供了过程实例执行的运行环境,主要完成以下功能: 1.实例化与执行过程模型:解释企业经营过程的过程定义,根据过程执行需要初始条件和执行参数生成过程实
22、例,运行过程实例并管理其运行过程。这里要指出的是,一个过程模型实际上是企业经营过程的一个模板,它可以被执行多次,也可以有多个有关这个过程模型的实例在同时运行。 2.为过程和活动的执行导航:根据过程定义和工作流相关数据,为过程实例的运行进行导航,如根据过程的进入和退出条件启动和终止一个过程实例;根据活动之间的关联和活动的执行条件,决定并行或串行执行后续活动;给用户提供需要操作的工作流任务项信息;或者根据所需激活的应用程序信息启动相应的应用程序等等。 3.与外部资源交互完成各项活动:工作流执行服务通过两种途径完成与外部资源和用户的交互 客户应用接口和直接调用应用接口方式。 4.维护工作流控制数据和
23、工作流相关数据:工作流在执行过程中要维护不同过程和活动实例的部状态信息,以与用于协调和恢复的各种检查数据与恢复/重启信息,还包括用户传送的必要的相关数据。2.5 客户端功能工作流管理系统的客户端功能是指用户操作工作流管理系统分配的任务或者活动的功能。它由工作流任务管理器和用户操作共同完成。在实际应用中,经常需要将工作流管理系统集成到用户的其他桌面应用 (如办公自动化系统、电子系统)环境中,从而为最终用户提供一个集成化的统一任务管理系统。2.6 本章小结本章首先介绍了wfmc提出的工作流管理系统的体系结构、工作流参考模型。然后,详细介绍了工作流参考模型中的几个重要部分 工作流建模工具、工作流引擎
24、和客户端以与这些部分的相关信息。3 基于.Net的工作流引擎的实现技术3.1 .Net框架3.1.1.Net框架概述(Framework)是许多基本结构的重要组成部分,如J2EE、CORBA等技术都涉与框架的概念。设计框架的主要目的就是屏蔽具体的实现过程,人员展现一个透明的使用和开发平台。框架常提供了许多实用工具以与相关服务,开发人员使用这些工具可以很容易的在此平台上进行开发。3.1.2 公共语言运行时公共语言运行时即公共语言运行平台。它在组件的开发以与运行过程中,都扮演着非常重要的角色。在组件运行过程中,运行时负责管理存分配、启动或取消线程和进程、实施安全性策略、同时满足当前组件对其它组件的
25、需求。3.1.3 统一的编程类库. Net框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的类库集合。目前,不同语言的开发人员使用的是各不一样的类库,如C+程序员使用。3.2 Web Service技术3.2.1 什么是Web ServiceWeb Service是松散祸合的、可复用的软件模块,从功能上看,它封装了离散的功能,在Internet上发布后能够通过标准的Internet协议在程序中访问。具体来说,可以分为以下几点:3.2.2 Web Service的协议结构实现一个完整的 Web Service体系需要有一系列的协议规来支撑Web Servic体系呈现一种栈的结构。3.
26、3 本章小结本章详细介绍了实现基于.Net的工作流引擎的关键技术。其中包括了对.Net框架的介绍和对Web Service技术的介绍。值得一提的是,利用Web Service技术实现的工作流引擎可以较为方便的解决分布式工作流引擎间互连所存在的一些问题,从而实现一个易于集成、低进入屏障的工作流引擎。4 基于.Net的工作流引擎的分析与设计4.1 本工作流管理系统的系统结构目前我们设计的工作流管理系统包括:过程定义工具、管理和监控工具、用户和组织机构、普通用户、数据库表、工作流引擎等6个模块。本工作流管理系统采用三层架构和两层架构相混和的模式来实现:1.客户层:管理和监控工具、普通用户模块放在客户
27、层。普通用户的实现可以视具体应用而定,只要其通过SOAP协议访问工作流引擎的接口即可正常工作;管理和监控模块采用Windows应用程序来实现。而Windows应用程序则通过SOAP协议来实现对Web Service (T-作流引擎)的访问。 2.数据层:我们可以将其设计为两个数据库:引擎数据库和组织机构数据库、其具体实现将在下面进行介绍。 3.中间层:分布式工作流引擎放在中间层。其是利用Web Service技术来实现的。这样,工作流引擎之Ifal就可以方便的利用Web Service技术实现互访。 4.2 工作流引擎相关模块的分析与设计4.2.1 过程定义规 建模工具采用基于图形的建模方法。
28、此方法包括以下两种基本图符,节点符和流向符。下面将介绍这两种图符,与其相应的应用规。1.节点符 本工作流模型中的节点可分为初始节点、终止节点、选择分支节点、一般节点、子过程节点、并行分支节点、并行汇集节点和选择汇集节点 8种,相应的节点符号:(1)初始节点:初始节点表示一个工作流过程的开始。对于一个工作流过程只能有一个初始节点,初始节点没有具体的执行动作。 (2)终止节点:终止节点表示一个工作流过程的结束,一个工作流过程只能有一个终止节点,它与初始节点相对应,终止节点也没有具体的执行动作。 (3)选择分支节点:选择分支节点用于表示选择分支路由结构的开始。该节点也没有具体的执行动作。 (4)选择
29、汇集节点:选择汇集节点用于表示选择分支路由结构的结束,它没有具体的动作(选择分支节点和选择汇集节点必须成对使用)。 (5)并行分支节点:并行分支节点用来表示并行路由的开始,也就是说此节点只能在并行路由中使用 (其无条件启动其所有后继节点)。 (6)并行汇集节点:并行汇集节点用来表示并行路由的结束,也就是说此节点只能在并行路由中使用。它收集来自并行路由各分支的执行结果,并按给定的判别条件决定该节点的执行结果 (通过或不通过)。 (7)子过程节点:其本身就是一个定义好的工作流模型,在子过程节点中还可以定义子过程节点,从而形成了一个层次化的阶梯工作流模型。 (8)一般节点:一般节点是一个工作流模型中
30、出现得最多的节点,也是最常用的节点。一般节点表示工作流过程中的一个具体活动,可用一个九元组来表示 (节点名称,节点类型,处理实体,触发信息,执行结果,主动作,前置活动,后置活动,返回活动)。 其中,节点名称是该节点的名字,一般是该节点活动的概括性表述,节点编号是该工作流过程中唯一用来表示该节点的标识。节点名称为字符串类型,如 “教授评审。 节点类型任原子节点,非原子节点。原子节点表示该节点的活动不可再分解非原子节点表示该节点包括另一个工作流过程 (即子流)。 处理实体任人,软件模块,另一工作流过程。为人时,又可以有两种方式表示,一种是指明具体的人员,另一种则是指定组织单元和角色,在工作流运行的
31、过程中再动态地确定具体执行的人员;当该节点为软件模块时,为WEBSERVICE的调用。 触发信息任消息触发,人工触发。触发信息为该节点主活动执行前所必须满足的信息条件。触发信息分为两种类型:一种是具体的消息:另一种是时间信息,如必须等到特定时刻的到来才能触发主活动的执行。人工触发是消息触发的一种特殊形式 (人工触发在工作流监控工具中实现。在工作流正常停止,或故障时,使用工作流管理工具恢复或取消一个工作流实例)。 执行结果通过,不通过。执行结果为该节点主活动的执行结果,只有“通过和“不通过”两种。缺省值为“通过”。执行结果的数据类型为布尔型“True”表示“通过”,False表示“不通过”。 主
32、活动为该节点所要执行的活动,主活动不可为空。在实际的定义中,用户不需定义主活动,它是一个标准活动,其返回结果只有 “通过”和 “不通过”两种。主活动的容由处理实体决定:当处理实体为人时,直接交给人执行该活动;当处理实体为软件模块时,则调用该软件模块;当处理实体为另一工作流过程时,则将控制权交与另一工作流过程。4.2.2 过程定义工具的设计 目前我们所设计的流程定义模块的主要功能有流程定义者登录校验、创建一个新的流程、修改已有的流程、保存当前流程以与流程的合法性检查等。流程定义工具由流程定义者使用,其所有的动作都是由流程设计人员发起。登录校验是系统对登录本模块的人员的进行身份验证,只有具有流程设
33、计者角色的人员刁能进入本模块进行流程设计。创建流程是流程设计者创建一个新的流程。流程设计者通过对上述流向符和节点符进行布局与对他们的属性进行设置来创建一个新的业务流程。修改流程与创建流程基本一样,只是修改是针对预先定义好的流程,而创建是针对一个新的流程。删除流程则是将己有的流程删除。 保存流程则是将对流程的创建、修改或删除的结果进行保存。4.2.3 管理和监控工具的设计管理和监控工具实现对整个工作流管理系统的管理,其主要的功能有流程模板的管理、实例的管理和监控、用户角色管理、归档数据管理、日志管理与自动资源的管理等。流程模板管理是对流程定义工具定义的流程模板进行管理。其中包括流程模板的实例化许
34、可和禁止以与删除模板等。 实例的管理和监控主要是对二种实例的管理和监控:流程实例、行为实例和工作项。其中主要包括流程和行为实例的挂起、恢复、终止、任务的重指派以与修改实例属性等。 用户角色管理是管理员为用户设置角色,如普通用户、流程设计者等。归档数据管理主要是对运行完成的流程的数据进行归档后的查询与其查询权限的管理。而自动资源的管理则是对一些自动资源的增加、删除和修改处理。日志管理是管理和监控的重要一环,引擎每次处理都会写日志到持久化存储器运行时的日志信息是非常重要而且庞大的,实现对日志的妥善处理将对系统的效率产生很大的影响。日志管理主要包括设置日志文件大小、查看日志、备份日志以与清空日志等。
35、4.2.4 用户和组织机构的设计用户和组织机构模块描述的是一个单位或部门的组织关系。其可以是一个被工作流管理系统引用而独立于系统之外的模块。流程定义工具在定义流程时需要对用户和组织机构图进行引用,因而用户和组织机构模块须提供一些被引用的功能,这些功能主要有获取所有组织机构引用;按标识获取组织机构的描述;创建、修改和删除组织机构以与用户;增加、修改和删除用户角色等。4.2.5 普通用户的设计 普通用户模块相对工作流管理系统中的其它模块来说,是相对独立的一个模块一般来说,它是在工作流管理系统具体应用时完成其全部功能。一般来说这个模块的主要功能有普通用户登录、任务处理、启动流程、普通用户监控以与对归
36、档数据的查询等。 用户登录是最基本的功能,只有用户在输入登录名和密码并通过系统验证后才能进行下一步的处理,普通用户也可以对自己的登录密码进行修改。 任务处理是普通用户最主要的功能,用户登录系统的目的是为了进行任务处理用户的任务处理主要包括对任务列表进行查询、排序、过滤、刷新以与任务的执行等。普通用户可对自己处理过的流程进行监控,查看流程的执行情况,如果流程已完成并归档则可对相应的归档数据进行查询处理。4.2.6 数据库表的设计根据前面的体系结构所介绍的,本工作流系统可分为两个数据库;引擎数据库和组织机构图数据库。引擎数据库将在下一章中介绍。组织机构图数据库由组织机构模块通过ADO. Net进行
37、访问,主要包括组织机构用户表、组织机构元素表、用户角色映射表、角色表和岗位表、用户岗位映射表与用户权限关系表等。组织机构元素表:存储组织元素信息,其中主要包括元素标识、实体标识 (与类型配合使用,如类型为角色则为角色标识)、实体类型 (必须是已定义类型,如人员、岗位、子单元等)以与所属组织机构标识等字段。用户表:保存相关用户信息,其中主要包括的字段有用户标识、名称、是否远程流程与口令等字段 (注意,这里的用户可以是一个远程的工作流)。组织用户角色映射表:存储映射信息,包括用户标识和角色标识。角色表:存储角色信息,其中包括角色表示和描述字段。组织岗位表:存储岗位信息,包括岗位标识、名称和描述字段
38、。用户岗位映射表;存储用户和岗位的映射信息;包括岗位标识和用户标识字段。用户 权限关系表:包括权限和用户标识字段。4.3 工作流引擎的分析与设计4.3.1 工作流引擎的通信接口与通信方式的设计l.工作流引擎与客户端之间的互访根据本工作流管理系统的体系结构可知,本工作流引擎就是一个 XML Webservices程序,因此普通用户模块可以通过SOAP来调用工作流引擎提供给客户端访问的接口,从而实现了与本工作流引擎的通信。在这种模式下,客户端应用程序可以分布在Internet的任意一个节点上,而且可以是运行在任何操作系统上,用任何语言编写的、使用任何组件模型来实现的客户端应用程序。本工作流引擎和普
39、通用户的通信模式如图4.5所示。下面将具体描述本工作流引擎提供给客户端访问的接口。本工作流引擎针对客户端的接口是面向一般的用户和系统管理员两类用户来开发的。系统为一般的用户设计的接口如下:(1)身份验证使用的接口:保证系统安全并获得用户ID以便提取该用户的任务表。(2)提取任务使用的接口:针对每个用户从任务表库中提取属于它的任务并按任务名称、容、时间显示。(3)操作每项任务使用的接口:提供“开始执行”、“挂起”、“继续”、“完成”等执行任务的命令。(4)实例化并启动一个过程实例的接口:从模型库中选择已定义的工作流模型,根据模型生成过程实例,设定初始的过程参数,并命令工作流引擎开始推进过程的执行
40、口本系统为系统管理员设计的接口如下:(1)身份验证使用的接口:保证系统安全并获得用户m.(2)对系统工作流引擎配置情况进行监视使用的接口:收集并显示系统中正在运行的工作流引擎的信息,包括名称、EP地址、工作状态和负荷情况等。(3)监控过程实例,强制改变过程或活动的某些属性的接口:以图形方式显示系统中各个过程当前的状态 (进展情况),提供修改属性的命令按钮,使管理员可以根据需要重新设置过程的某些参数或某些步骤的属性,包括活动的执行者、活动的执行时间等。利用上述两类接口,就可以为不同用户开发所需要的客户端应用程序(包括前面所设计的普通用户模块和管理与监控工具),从而实现一个完整的工作流管理系统。2
41、.工作流引擎之间的互访工作流引擎之间的通信采用了如下模式:分布在各个节点上的工作流引擎处在完全平等的地位。每个工作流引擎负责本节点上的所有用户与应用的相关工作流任务管理。同时,这些分布的工作流引擎之间通过相互调用以XML Web服务的形式提供给工作流引擎调用的接口来实现它们之间通信。采用这种通信模式,各个分布式工作流引擎可以分布到Intemet的任意节点上来协作完成一个流程的导航。同时,在集成其它异构平台上的分布式工作流系统时,异构的工作流管理系统只需要提供相应的互操作接口,并能发送和接收对应的XML。4.3.2 工作流引擎的系统结构的设计工作流引擎被划分为了两个功能子系统:Executor和
42、 Monitor. Executor实现了绝大多数的复杂工作流程的流转功能,该部分不仅要完成流转这一基本功能,还牵涉到工作流实体对象的持久化,工作流事务等方面。Monitor主要判断是否有超时的过程实例或者节点实例存在,但Monitor不对发现的超时对象进行处理,而是采用消息通信的方式,通过引擎消息队列通知Executor来处理这些超时的对象。如图4.7所示,Executor部分的软件体系结构如下:1.工作流逻辑:是本工作流引擎的逻辑实现部分。处理接口发来的引擎消息,完成对应的过程创建与删除、节点的创建与删除以与工作项的创建与删除等一系列操作,实现工作流程的流转控制和管理功能。管理过程定义、节
43、点定义、过程实例化等,并对节点实例、工作项和相关数据等工作流实体对象的状态变化与各个对象之间的关系进行管理。2.工作流支持系统:是工作流逻辑对象的运行与支持平台。处理工作流实体对象的持久化,管理工作流逻辑对象的创建、更新和存储:管理工作流持久化服务对象的创建与分配。给工作流逻辑运行提供一个持久化支持系统,并对运行在其上的工作流逻辑屏蔽了对象持久化的实现细节。3数据管理:管理工作流逻辑对象数据的存储,为工作流支持系统提供一个统一的接口,屏蔽下层的数据存储的实现细节,支持多种关系数据库和文件格式的存储。4.辅助管理:处理工作流引擎中的辅助功能,包括时钟、应用程序代理、群件代理等。Monitor部分
44、由一个扫描进程组成,它不停的扫描正在运行的过程实例,判断是否有过程实例或者节点实例的存在时间超过了定义的生命周期。Monitor进程与Executor进程在服务器上并发运行。本工作流引擎的逻辑功能主要集中在Executor部分,正是这个部分保证了整个工作流引擎的顺利执行。所以Executor这个模块是整个工作流引擎的核心。4.4 本章小结本章首先介绍了基于.Net的工作流管理系统中与工作流引擎相关的各个部分的分析与设计。这些组成部分包括了过程定义工具的设计、管理和监控工具的设计、用户和组织机构的设计、普通用户的设计、数据库表的设计。本章通过对这些部分的介绍,为详细的介绍工作流引擎的分析与设计做
45、了铺垫。接着,本章通过工作流引擎的通信方式与通信接口的设计和工作流引擎的系统结构的设计等两个方面给出了本工作流引擎的设计思想。5 基于.Net的工作流引擎的实现5.1 工作流引擎的实现 由4.3.2节可知,本工作流引擎被分为了名为Monito:和Executor的两个模块。由于Monito:的实现较为简单,在此不再进行描述。下面,我们将给出Executo:模块的实现。 从工作流引擎的运行流程上,我们将 Executor模块分为了工作流实例的触发、申请任务执行、用户执行任务、任务提交处理、任务调度处理、任务就绪处理、工作流结束处理等7个主要模块。这7个部分相互关联、调用组合成了一个总的Execu
46、tor模块。下面将详细描述这7个模块的实现。 1.工作流实例的触发 在用户(包括远程的工作流)调用相应接口发出将要实例化某个模板的命令之后,工作流引擎将根据此用户的权限,返回给用户一个工作流模板的集合。然后,用户选择其中的某个模板,工作流引擎就将其实例化。 2.申请任务执行 申请任务执行就是某个普通用户从任务表中提取出其所能执行的任务并执行的过程。 3用户执行任务 在用户执行任务时,本模块处于等待状态。当用户发出挂起、激活和任务提交等命令时,本模块才进行相应处理。4.任务提交处理 当工作流引擎接收到任务提交的命令之后,就开始了任务提交处理流程。 5.任务调度处理 当实例表中节点达到 “完成”态
47、后,就进行任务调度处理。 6任务就绪处理 任务就绪处理就是启动一个本地或远程节点,使用户可以完成相应的任务。 7.工作流结束处理当流程运行到结束节点后就结束这个流程的运行,将相关的信息作为日志记录到历史记录表中。如果这个流程是一个子流程,还需要将其结束的信息通知其父节点。5.3 本章小结本章主要给出了工作流引擎中的 7个关键模块的实现。结论与讨论工作流引擎的设计与实现主要容包括: 1.分析了.Net技术、Web Service技术,并详细讨论了这两个技术在提高系统可集成性这个点上所能起到的作用,最后决定在.Net平台下进行本工作流引擎的升发 2.分析了基于,Net的工作流管理系统的系统结构,简
48、要给出了过程定义工具、管理和监控工具、用户和组织机构、普通用户、数据库表等五个部分的设计。3.分析了基于.Net的工作流引擎。4.给出了基于.Net的工作流引擎与客户端之间的通信方式与接口的设计。5给出了基于.Net的工作流引擎之间的通信方式与接口的设计,利用这种设计就可以实现同种工作流引擎之间的通信并能方便的与异构的工作流管理系统集成。6给出了工作流引擎的系统结构的设计。7.给出了基于 Net的工作流引擎的7个关键模块的实现,通过这7个模块,就可以实现对整个工作流管理系统的导航口8.给出了基于.Net的工作流引擎所需的数据库的实现。9.给出了本工作流管理系统的一个应用实例,并且具体的分析了这
49、个应用实例中的一个具有代表性的工作流流程。虽然本文所给出的基于 Net的工作流引擎在实际应用中运行状态良好,但是这个工作流引擎无论是在理论上还是在应用上,都还存在一些问题,需要进一步的研究:1.作为一种松散的动态集成的工作流管理系统,事务处理和任务监控成为一个棘手的难题。高性能分布合理的工作流引擎的设计和实现是解决这些问题的关键。本文还没有涉与这方面的问题。2.安全性问题是网络通讯中的一个永恒话题,工作流管理系统也不例外。WebService作为一种部署在Internet上的对象.安全问题尤其重要。现在关于Web Service与其相关技术 (SOAP. UDDI等)的安全性研究正在如火如茶的
50、进行。基于WebService的工作流的安全性依赖于这些底层技术的发展和成熟。 3.工作流执行对象之间的交互是通过SOAP进行的。这涉与到SOAI本身的性能可靠性问题。现在有很多关于提高SOAP的可靠性和性能的研究。4.工作流管理系统根据相关的商业约定自动完成企业间的商业活动可以大大提高工作流管理系统的可集成性。商业约定是企业间动态交互的基础和根本,现在虽然有了一些标准,但还不够成熟,需要进一步的研究。 5,我们所实现的工作流引擎还需要进一步的标准化,尽量的与WFMC所提出的作流参考模型接轨。这样就可以进一步的提高本工作流管理系统的可集成性和可扩展性。 6.需要进一步的优化系统中任务执行的顺序和资源分配的方法。这是因为在分式环境下,在资源有限和任务完成时间约束的情况下,如何优化系统中任务执行的顺序和资源分配的方法,对于工作流管理系统在大规模应用中的运行效率有着非常重要的影响。 由于时间仓促和笔者水平有限,论文中存在错误在所难免,敬请各位老师和同学指正。致 首先,衷心感尊敬的导师庆祥教授,在制作论文的这段时间中,我一直得到了老师的谆谆教诲、亲切关怀和充分信任。老师指引我走上了计算机应用的研究之路,并在许多关键的地方指明了工作的方向。同时,老师严谨的治学态度,广博的学识,亲切随和的为人也给我留下了深刻的印象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人造板使用与保养教程创新创业项目商业计划书
- 公园夜景灯光秀企业制定与实施新质生产力项目商业计划书
- 人工智能电影剧本创作行业深度调研及发展项目商业计划书
- 传统工艺数字化保护与传承企业制定与实施新质生产力项目商业计划书
- 《餐饮服务与管理综合实训(第3版)》课件餐饮促销的策划方案
- 2025年湖州市广播电视台(融媒体中心)人员招聘笔试备考题库及答案详解1套
- 2021年温州市焊工职业技能竞赛技术文件
- 危险源辨识评价表
- 三年级上册数学(人教版)预习复习课件第一单元-第2课时 时间的计算
- 三年级上册数学(人教版)预习复习课件-第六单元:第5课时 连续进位乘法
- 《中医夏季养生》课件
- 《骨盆骨折的急救护》课件
- 2024汽车行业数字化用户运营解决方案
- 起重机械培训(初训)课件
- 【MOOC】推 荐系统-北京大学 中国大学慕课MOOC答案
- 《家庭系统排列讲座》课件
- 货物类投标方案(技术标)
- 2024中级注册安全工程师职业资格考试(道路运输安全)
- 七年级课外名著阅读知识竞赛试题及答案
- 赣美版八年级美术下册《第5课 产品包装设计》教学设计
- 中国血脂管理指南理论知识考核试题及答案
评论
0/150
提交评论