《基于Net的工作流引擎的设计与实现》.docx

上传人:b****0 文档编号:12818153 上传时间:2023-04-22 格式:DOCX 页数:23 大小:32.64KB
下载 相关 举报
《基于Net的工作流引擎的设计与实现》.docx_第1页
第1页 / 共23页
《基于Net的工作流引擎的设计与实现》.docx_第2页
第2页 / 共23页
《基于Net的工作流引擎的设计与实现》.docx_第3页
第3页 / 共23页
《基于Net的工作流引擎的设计与实现》.docx_第4页
第4页 / 共23页
《基于Net的工作流引擎的设计与实现》.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

《基于Net的工作流引擎的设计与实现》.docx

《《基于Net的工作流引擎的设计与实现》.docx》由会员分享,可在线阅读,更多相关《《基于Net的工作流引擎的设计与实现》.docx(23页珍藏版)》请在冰豆网上搜索。

《基于Net的工作流引擎的设计与实现》.docx

《基于Net的工作流引擎的设计与实现》

基于.Net的工作流引擎的设计与实现

摘要

针对当前大多数工作流管理系统在实际应用中可集成能力差这个缺点,决定利用WebService技术来实现一个工作流管理系统。

因为目前.Net平台对WebServic的支持相对比较完善,所以决定实现一个基于.Net的工作流管理系统。

这个工作流管理系统具有松散藕合、低进入屏障、行业支持、高度可集成能力等优势。

工作流引擎是整个工作流管理系统的核心,其通信方式是提高工作流管理系统可集成能力的关键。

在本系统中,分布在Internet的各个节点上的工作流引擎处在对等的地位,它们通过WebService调用相应的接口来实现它们之间的通信。

正是这种通信方式使本工作流管理系统的集成能力、互操作性有了显著的提高。

这个工作流管理系统的客户端是一个Web应用程序,用户通过浏览器登录并调用客户端,然后客户端程序通过调用工作流引擎所提供的相应接口实现与工作流引擎的通信。

以这种基于Web的方式实现本工作流管理系统可以增加系统的可扩展性

从系统结构上讲,工作流引擎主要被分为了工作流逻辑、工作流支持系统和数据管理等3个主要部分。

其中,工作流逻辑这个部分负责处理引擎的逻辑功能,工作流支持系统和数据管理这两个部分则负责工作流实例对象的存储和读取等功能。

这样,这个工作引擎就实现了控制逻辑与数据读写的分离。

 

关键词:

工作流管理系统,分布式平台,工作流引擎,工作流建模工具

引言

1.1课题背景

在计算机刚刚出现的时候,大多数与企业相关的文档均以纸张的形式在部门之间传递,无论是在信息的处理、组织方面,还是在存储及查询检索方面纸张的效率都相当的低。

因此,人们希望出现一种无纸化的、由计算机操纵的工作环境。

后来一些公司将组织中常用的一些业务功能结合在一起,形成了一种部分支持业务流程集成化的软件包,这便是早期的工作流管理系统。

限于当时的计算机发展水平,这些软件包所集成的功能都较简单。

1993年,国际I作流管理联盟(WorkflowManagementCoalition,WfMC)的成立,标志着工作流技术开始进入相对成熟的阶段oWfMC的目标是:

提高客户在工作流技术上的投资价值;减少使用工作流产品的风险;通过为工作流提高知名度而扩展工作流市场。

为了实现不同工作流产品之间的互操作,WfMC制定了关于相关术语、体系结构及应用编程接口等方面的一系列标准。

正是WfMC所做的这些工作促使

工作流管理成为近年来在计算机应用领域中发展最为迅速的几项新技术之一。

目前其已经广泛地应用于办公自动化、文件管理、电子邮件、目录管理、群件应用、BP(BusinessProcessReengineering)及结构系统定义I具等领域,这使得I作流管理系统越来越受到不同应用领域的用户重视。

工作流管理系统在众多CSCW应用软件中变得越来越流行,需求量不断增大,同时工作流管理的思想已广泛应用于企业管理和计算机应用的各个方面[1,2]

随着工作流技术的广泛应用,在工作流管理技术这个领域也出现了许多新的课题。

分布式工作流管理系统就是这些课题之一。

这是由于数据库、计算机网络的广泛应用使现代企业的信息资源表现出异构,分布和松散祸合的特点,企业的分散性决策制定的分散性、Client/Server体系结构和分布式处理技术的日益成熟,都说明集中式信息处理的时代已经过去,实现在大规模的异构分布式执行环境下使工作流中相互关联的任务在系统监控下高效运作成为一种趋势。

材料与方法

1.2国内外研究概况

1.2.1工作流技术的研究现状

在工作流技术的研究中,比较著名的有IBM公司Almaden研究中心的Exotica、佐治亚大学计算机系的Meteor,WIDE&Meteor等研究项目[1-6]。

其中Exotica和Meteor是完全分布式的工作流管理系统,WIDE&Meteor则采用C/S结构。

在国际市场上,以FileNet,Jeform,IBM和Action四家公司的产品比较有影响和代表性。

以下是这四家公司的工作流产品的简要介绍:

I.FileNet公司的产品:

VisualWorkFow是FileNet公司集成文档管理软件的一部分,是建立在基于组件的软件结构上的,采用先进的工作队列处理方法它允许迅速地评价和改进机构工作方式,可随时查看过程中关键的细节,掌握过程的运行情况。

2.JetForm公司的产品:

InTempo是JetForm公司的工作流产品,它基于C/S结构,其客户端互相独立,适合于管理型和设定型的经营过程,如合同管理、顾客问题解决、销售和预算审批等等。

它可自动将任务分配给相应的人员,任务会自动出现在用户的信箱中,简化了任务的接收过程。

3.IBM公司的产品:

IBMMQSeriesWorkFow是该公司最新的工作流产品,它将经营流程从应用逻辑中分离出来,支持25种不同的操作系统,可根据模型定义自动分配任务,提供图形化的过程定义界面。

4.Action公司的产品:

ActionMetro4.0为工程师提供了一套基于Web的工作流管理软件。

它对经营过程中不可预见的问题、要求和机遇也可进行控制,还为用户提供了相应的管理工具。

它更适合于基于知识的工作流,它支持用户与信息之间的交互。

1.2.2当前研究的热点

目前关于WfMS(WorkflowManagementSystem)的研究主要集中在以下9个方面:

1.更为灵活的过程模型:

人们对于WfMS批评最多的莫过于其“僵硬”的过程模型,这使得用户在某些情况下(如发生某种特殊情况)不得不越过WfMS而用其它方法(如手工方式)来完成有关的工作。

2.面向对象的WfmS:

面向对象(00)的思想反映了人类思维的一般特征(从特殊到一般及从一般到特殊)。

进入90年代,基于这一思想而发展起来的各种技术,如OOA,OOD,OOP等在计算机领域得到了广泛的应用。

随着WfMS研究的不断深入,00思想也被引入进来,逐渐形成了面向对象的Wfms(OOWfms)。

3智能化的WfMS:

Ellis曾经指出:

人工智能((AI)所使用的经常是启发式或扩张性的方法。

这种方法使得系统中的信息能够随人机交互过程的进行而动态增长(学习过程)阴,而不是在一开始就将系统中所有的信息都定义好。

4.对同步协作的支持:

WfMS的基本功能是对异步的结构化协作的支持,即将一个用户工作完之后生成的结果数据自动传递给下一个环节的用户进行处理。

而同步协作则是各参与者实时地交流思想,最终得到某个结果的过程。

5.对移动用户的支持:

商业社会的激烈竞争要求企业具有良好的反应能力。

移动办公正是为满足此种要求而出现的一种新的工作方式,它使得员工能够随时随地处理他们的业务。

移动计算设备(如笔记本及手持设备)的普及为这种办公方式的实现提供了良好的硬件条件,而Wfms则为之提供了一种理想的软件环境。

但早期的WfmS系统一般都是基于LAN环境而构造起来的,它一般要求用户一直保持同WfMS的连接。

6.基于Web的WfMS:

Web技术因其界面的一致、简单及与平台的无关性而在其出现之后就得到了迅猛发展。

Internet的发展及企业Intranet的建构为人们提供了一个理想的协同工作环境同时也使得基于Web建立工作流管理系统成为可能。

这方面的研究是最近些年来才开始的。

在目前能够见到的系统中,一般是使用HTML页面通过Web浏览器向用户表示WtMS中的各种信息,如用户的工作项列表待处理的数据、过程的进行状态等。

而在Web服务器端,则通过CORBA(CommoObjectRequestBrokerArchitecture),J2EE(Java2EnterpriseEdition),.Net等技术完成工作流引擎与Web服务器之间的信息传递。

7.分布式WfMS:

为了支持跨企业的异构计算环境下大规模工作流管理,现有的WfMS的能力必须从多个不同的方面加以扩展,以提高系统的可靠性、可伸缩性及容错能力等。

8.事务型WfMS:

这方面的研究主要是试图将一些高级事务模型(如Saga,FlexibleTransaction)等应用到工作流系统的过程实例的执行中,以提高WMIS的可靠性,如保证过程实例中各活动执行的完整性。

9.工作流系统之间的互连:

随着大量各具特色的WfMS产品涌入市场,不同的企业或企业内的不同部门可能会选用不同厂家的产品。

而跨企业及企业间大型工作流应用需求的增加要求能够将这些异质的WfMS互连起来(即在两个或多个WfMS之间传递工作项和执行控制)以协同完成复杂的业务过程。

分布式结构的WfmS本身就有一个如何将各工作流引擎互连起来的问题

WfMC一共定义了八种级别。

在最后选定的互操作模型和级别下,可定义一组操作集来实现之。

1.3课题主要研究工作

本课题的主要研究工作是根据当前对工作流产品的需求,设计与实现一个具有松散祸合、低进入屏障、行业支持、高度可集成能力等特点的工作流管理系统,并把重点放在分布式工作流引擎的设计与实现上。

其主要工作集中在以下几个方面:

1工作流引擎的通信方式及接口的设计。

2工作流引擎体系结构的设计。

3.工作流引擎的关键模块的实现。

4.分布式工作流日志管理的研究与实现。

5.工作流引擎数据库的实现。

本文主要通过工作流引擎的通信方式及接口的设计、工作流引擎体系结构的设计、工作流引擎的关键模块的实现、工作流引擎数据库的实现等四个方面具体讨论分布式工作流引擎的设计与实现。

2工作流管理系统体系结构

2.1工作流管理系统体系结构

为了能够更好地支持企业经营过程建模、分析和实施,适应世界市场的多元化趋势,需要建立工作流管理系统的相关标准,从系统结构、术语使用和接口实施等方面提供标准化与规范化的定义,并以此为基础实现不同工作流产品之间的互操作,以便于与其他应用系统的集成。

这个参考模型的体系结构给出了抽象的工作流管理系统的功能组成部件和接口,它能够满足工作流管理系统和产品所应该具有的主要功能特征,可为实现工作流产品之间的互操作提供公共的基础。

一般说来,工作流产品的提供商也不会将这些部件之间的所有接口完全对外开放,但是为了实现不同工作流产品之间的集成,它们会按照互操作和协作的不同要求在一定层次上开放其接口X27-281。

工作流管理系统主要由以下三类构件组成:

1.软件构件:

完成工作流管理系统不同组成部分功能的实现。

2.系统控制数据:

工作流管理系统中的一个或多个软件构件使用的数据。

3.其他应用与应用数据:

对于工作流管理系统来说,他们不是工作流管理系统的组成部分,而是属于外部系统和数据,它们被工作流系统调用来完成整个和部分工作流管理的功能。

2.2工作流参考模型

图2.2给出了WFMC提出的工作流参考模型。

本节首先介绍工作流参考模型中涉及到的几种数据,在以后的各节对参考模型中的几个部分进行描述。

1.工作流控制数据:

工作流执行服务/工作流引擎通过内部的工作流控制数据来辨别每个过程活动实例的状态。

这些数据由工作流执行服务/工作流引擎进行控制用户、应用程序或其他的工作流引擎/工作流执行服务不能对其直接进行读写操作,它们可以通过向工作流执行服务/工作流引擎发消息请求来获得工作流控制数据的内容。

2工作流相关数据:

工作流管理系统通过工作流相关数据来确定过程实例状态转换的条件,并选择下一个将执行的活动。

3工作流应用数据:

这种数据是指那些由应用程序操作的数据。

它们是针对应用程序的,是企业完成具体的业务功能所需要的数据,工作流管理系统无法也不需要对它们进行访问。

2.3工作流模型与建模工具

工作流模型包含了一个能够由工作流执行服务软件执行过程实例所需要的所有信息。

这些信息包括过程的开始和完成条件、构成过程的活动以及进行活动间导航的规则、用户所需要完成的任务、可能被调用的应用、

过程建模工具以计算机能够处理的形式进行过程的定义。

它可以用基于形式化的过程定义语言、对象一关系模型来进行过程模型定义。

对于比较简单的系统,可以采用一组路径选择命令的方式来描述信息或文档在不同参与者之间的传递过程。

工作流建模工具应输出一个能被工作流引擎解释并执行的过程。

不同的工作流产品的建模工具输出模型的存储格式是不同的,参考模型中接口1的定义不仅是为了实现工作流的定义阶段和运行阶段的分离,使用户可以分别选择建模和工作流执行的软件产品,而且是为了使不同的工作流产品能够实现协作运行,从而为过程定义的执行提供良好的运行服务环境。

在工作流建模上,WFMC开展了两个方面的工作:

1.定义了一个元模型:

所谓元模型一般是指描述模型的模型。

这里的工作流模型的元模型是用来描述工作流模型内在联系的模型。

它用于描述工作流模型内部包含的各个对象、对象之间的关系及对象的属性。

这个元模型有利于建立可以在多个工作流产品之间交换信息的模型。

2.定义了一套可以在工作流管理系统之间、管理系统与建模工具之间交互过程模型定义的

工作流管理联盟定义的过程元模型口该模型包含以下各基本实体:

1.工作流定义(过程模型):

它一般包含诸如工作流模型名称、版本号、过程启动和终止的条件、系统安全、监控和控制信息等一系列基本属性。

这个过程模型反映了企业中一个经营过程的目的,即这个过程要实现的目的和最终达到的目标是什么。

2.活动:

主要属性有活动名称、活动类型、活动的前后条件、调度约束参数(如最长处理时间、排队等待时间)等。

当工作流运行在分布式环境下时,在活动的属性中还应该包括执行该活动的工作流引擎的位置。

活动对应于企业经营过程中的任务,主要反映了完成企业经营过程需要执行哪些功能操作。

3转换条件:

主要负责为过程实例的推进提供导航依据,主要参数包括工作流过程条件(Flowcondition,过程实例向前推进的条件)、执行条件(Executioncondition执行某个活动的条件)和通知条件(Notificationcondition,通知不同用户的条件)转换条件对应于企业经营过程中的业务规则和操作的顺序。

如在订单处理完成之后执行生产计划的制定工作。

4.工作流相关数据:

工作流引擎根据相关数据和转换条件进行推进。

工作流相关数据的属性包括数据名称、数据类型和数据值等。

它是工作流执行任务推进的依据如在银行贷款申请表处理后,根据申请贷款的值(如是否大于10万元)决定下一个执行的活动是什么,比如,大于10万元的申请交业务经理处理,小于10万元的申请交给业务员处理。

5.角色:

角色属性主要包括角色的名称、组织实体、角色的能力等。

角色或组织实体决定了参与某个活动的人员或组织单元。

它主要描述企业经营过程中参与操作的人员和组织单位。

6.需要激活的应用程序:

主要属性包括应用程序的类型、名称、路径及运行参数等。

应用主要描述用于完成企业经营过程所采用的工具或手段,如采用ERP软件或决策支持软件完成某个操作的具体企业业务功能。

2.4工作流执行服务与工作流引擎

工作流执行服务是工作流管理系统的核心。

实际上它是企业经营过程的任务调度器,在某种程度上还是企业资源分配器。

工作流执行服务由一个或多个工作流引擎(Workflowengine)组成(在分布式环境下由多个工作流引擎组成),它提供了过程实例执行的运行环境,主要完成以下功能:

1.实例化及执行过程模型:

解释企业经营过程的过程定义,根据过程执行需要初始条件和执行参数生成过程实例,运行过程实例并管理其运行过程。

这里要指出的是,一个过程模型实际上是企业经营过程的一个模板,它可以被执行多次,也可以有多个有关这个过程模型的实例在同时运行。

2.为过程和活动的执行导航:

根据过程定义和工作流相关数据,为过程实例的运行进行导航,如根据过程的进入和退出条件启动和终止一个过程实例;根据活动之间的关联和活动的执行条件,决定并行或串行执行后续活动;给用户提供需要操作的工作流任务项信息;或者根据所需激活的应用程序信息启动相应的应用程序等等。

3.与外部资源交互完成各项活动:

工作流执行服务通过两种途径完成与外部资源和用户的交互—客户应用接口和直接调用应用接口方式。

4.维护工作流控制数据和工作流相关数据:

工作流在执行过程中要维护不同过程和活动实例的内部状态信息,以及用于协调和恢复的各种检查数据及恢复/重启信息,还包括用户传送的必要的相关数据。

2.5客户端功能

工作流管理系统的客户端功能是指用户操作工作流管理系统分配的任务或者活动的功能。

它由工作流任务管理器和用户操作共同完成。

在实际应用中,经常需要将工作流管理系统集成到用户的其他桌面应用(如办公自动化系统、电子邮件系统)环境中,从而为最终用户提供一个集成化的统一任务管理系统。

2.6本章小结

本章首先介绍了wfmc提出的工作流管理系统的体系结构、工作流参考模型。

然后,详细介绍了工作流参考模型中的几个重要部分—工作流建模工具、工作流引擎和客户端以及这些部分的相关信息。

3基于.Net的工作流引擎的实现技术

3.1.Net框架

3.1.1.Net框架概述

(Framework)是许多基本结构的重要组成部分,如J2EE、CORBA等技术都涉及框架的概念。

设计框架的主要目的就是屏蔽具体的实现过程,人员展现一个透明的使用和开发平台。

框架中通常提供了许多实用工具以及相关服务,开发人员使用这些工具可以很容易的在此平台上进行开发。

3.1.2公共语言运行时

公共语言运行时即公共语言运行平台。

它在组件的开发以及运行过程中,都扮演着非常重要的角色。

在组件运行过程中,运行时负责管理内存分配、启动或取消线程和进程、实施安全性策略、同时满足当前组件对其它组件的需求。

3.1.3统一的编程类库

.Net框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的类库集合。

目前,不同语言的开发人员使用的是各不相同的类库,如C++程序员使用。

3.2WebService技术

3.2.1什么是WebService

WebService是松散祸合的、可复用的软件模块,从功能上看,它封装了离散的功能,在Internet上发布后能够通过标准的Internet协议在程序中访问。

具体来说,可以分为以下几点:

3.2.2WebService的协议结构

实现一个完整的WebService体系需要有一系列的协议规范来支撑WebServic体系呈现一种栈的结构。

3.3本章小结

本章详细介绍了实现基于.Net的工作流引擎的关键技术。

其中包括了对.Net框架的介绍和对WebService技术的介绍。

值得一提的是,利用WebService技术实现的工作流引擎可以较为方便的解决分布式工作流引擎间互连所存在的一些问题,从而实现一个易于集成、低进入屏障的工作流引擎。

4基于.Net的工作流引擎的分析与设计

4.1本工作流管理系统的系统结构

目前我们设计的工作流管理系统包括:

过程定义工具、管理和监控工具、用户和组织机构、普通用户、数据库表、工作流引擎等6个模块。

本工作流管理系统采用三层架构和两层架构相混和的模式来实现:

1.客户层:

管理和监控工具、普通用户模块放在客户层。

普通用户的实现可以视具体应用而定,只要其通过SOAP协议访问工作流引擎的接口即可正常工作;管理和监控模块采用Windows应用程序来实现。

而Windows应用程序则通过SOAP协议来实现对WebService(T-作流引擎)的访问。

2.数据层:

我们可以将其设计为两个数据库:

引擎数据库和组织机构数据库、其具体实现将在下面进行介绍。

3.中间层:

分布式工作流引擎放在中间层。

其是利用WebService技术来实现的。

这样,工作流引擎之Ifal就可以方便的利用WebService技术实现互访。

4.2工作流引擎相关模块的分析与设计

4.2.1过程定义规范

建模工具采用基于图形的建模方法。

此方法包括以下两种基本图符,节点符和流向符。

下面将介绍这两种图符,及其相应的应用规范。

1.节点符

本工作流模型中的节点可分为初始节点、终止节点、选择分支节点、一般节点、子过程节点、并行分支节点、并行汇集节点和选择汇集节点8种,相应的节点符号:

(1)初始节点:

初始节点表示一个工作流过程的开始。

对于一个工作流过程只能有一个初始节点,初始节点没有具体的执行动作。

(2)终止节点:

终止节点表示一个工作流过程的结束,一个工作流过程只能有一个终止节点,它与初始节点相对应,终止节点也没有具体的执行动作。

(3)选择分支节点:

选择分支节点用于表示选择分支路由结构的开始。

该节点也没有具体的执行动作。

(4)选择汇集节点:

选择汇集节点用于表示选择分支路由结构的结束,它没有具体的动作(选择分支节点和选择汇集节点必须成对使用)。

(5)并行分支节点:

并行分支节点用来表示并行路由的开始,也就是说此节点只能在并行路由中使用(其无条件启动其所有后继节点)。

(6)并行汇集节点:

并行汇集节点用来表示并行路由的结束,也就是说此节点只能在并行路由中使用。

它收集来自并行路由各分支的执行结果,并按给定的判别条件决定该节点的执行结果(通过或不通过)。

(7)子过程节点:

其本身就是一个定义好的工作流模型,在子过程节点中还可以定义子过程节点,从而形成了一个层次化的阶梯工作流模型。

(8)一般节点:

一般节点是一个工作流模型中出现得最多的节点,也是最常用的节点。

一般节点表示工作流过程中的一个具体活动,可用一个九元组来表示(节点名称,节点类型,处理实体,触发信息,执行结果,主动作,前置活动,后置活动,返回活动)。

其中,节点名称是该节点的名字,一般是该节点活动的概括性表述,节点编号是该工作流过程中唯一用来表示该节点的标识。

节点名称为字符串类型,如“教授评审’。

节点类型任{原子节点,非原子节点}。

原子节点表示该节点的活动不可再分解非原子节点表示该节点包括另一个工作流过程(即子流)。

处理实体任{人,软件模块,另一工作流过程}。

为人时,又可以有两种方式表示,一种是指明具体的人员,另一种则是指定组织单元和角色,在工作流运行的过程中再动态地确定具体执行的人员;当该节点为软件模块时,为WEBSERVICE的调用。

触发信息任{消息触发,人工触发}。

触发信息为该节点主活动执行前所必须满足的信息条件。

触发信息分为两种类型:

一种是具体的消息:

另一种是时间信息,如必须等到特定时刻的到来才能触发主活动的执行。

人工触发是消息触发的一种特殊形式(人工触发在工作流监控工具中实现。

在工作流正常停止,或故障时,使用工作流管理工具恢复或取消一个工作流实例)。

执行结果∈{通过,不通过}。

执行结果为该节点主活动的执行结果,只有“通过和“不通过”两种。

缺省值为“通过”。

执行结果的数据类型为布尔型“True”表示“通过”,False表示“不通过”。

主活动为该节点所要执行的活动,主活动不可为空。

在实际的定义中,用户不需定义主活动,它是一个标准活动,其返回结果只有“通过”和“不通过”两种。

主活动的内容由处理实体决定:

当处理实体为人时,直接交给人执行该活动;当处理实体为软件模块时,则调用该软件模块;当处理实体为另一工作流过程时,则将控制权交与另一工作流过程。

4.2.2过程定义工具的设计

目前我们所设计的流程定义模块的主要功能有流程定义者登录校验、创建一个新的流程、修改已有的流程、保存当前流程以及流程的合法性检查等。

流程定义工具由流程定义者使用,其所有的动作都是由流程设计人员发起。

登录校验是系统对登录本模块的人员的进行身份验证,只有具有流程设计者角色的人员刁’能进入本模块进行流程设计。

创建流程是流程设计者创建一个新的流程。

流程设计者通过对上述流向符和节点符进行布局及对他们

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1