工作流介绍

1.   工作流及工作流管理系统
1.   1 工作流及工作流管理系统简介
工作流Workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
工作流管理系统(Workflow Management SystemWFMS)是定义、创建、执行工作流的系统,是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现的。
12 工作流管理系统主要作用
工作流管理系统在最高层上,WFMS应能提供以下三个方面的功能支持:
1)         建造功能:对工作流过程及其组成活动定义和建模
2)         运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度
3)         运行交互功能:指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。
13 工作流管理系统的优点
由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WFMS的出现是必然的。它可以带来以下收益:
1)         改进和优化业务流程,提高业务工作效率;
2)         实现更好的业务过程控制,提高顾客服务质量;
3)         提高业务流程的柔性等。
14 工作流管理系统的系统结构与功能
1)         过程定义工具:过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。
2)         过程定义:过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。
3)         工作流执行子系统(WES)和工作流引擎:工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎。工作流引擎是WFMS的核心软件组元。它的功能包括:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调用应用程序;提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。
4)         工作流控制数据:指被WES和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。
5)         工作流相关数据:指与业务过程流相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。
6)         工作表和工作表处理程序:工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。
7)         应用程序和应用数据:应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其他部件来说是不可见的。
15 工作流管理系统的现状
近年来,工作流技术得到长足的发展。1993年成立了工作流管理联盟(Workflow Management CoalitionWFMC。此后,该组织颁布了一系列工作流产品标准,包括工作流参考模型、工作流术语表、工作流管理系统各部分间接口规格、工作流产品的互操作性标准等。这些举措加速了工作流技术的商品化。
151 工作流商业产品和控件
现在,许多公司都基于这些标准推出了自己的工作流产品。工作流产品主要分为两大类:
一类是基础的工作流系统,提供引擎、设计器、相关接口等。应用系统的开发商可以基于此类系统开发具有工作流管理功能的应用软件。典型产品如ActionTechnologiesInc.ActionWorkflowIBMFlowMark等。另一类是应用了工作流技术,包括内置较完整的工作流功能,但面向应用的应用级软件系统,这种系统是直接面向最终用户的流程化应用。同时,系统中还往往针对应用需要,集成了其他功能。典型产品如神州数码工作流软件EasyFlow,就是以工作流技术为核心的全面的企业办公自动化(OA)产品。
同时,当前也有许多成熟的工作流控件产品,如Aspose.WorkflowSkelta Workflow.NET 2004等,这些控件封装了关于工作流设计、运行和管理的一系列功能,程序设计人员可以利用这些控件很容易的设计出符合各种要求的工作流管理系统:
1)         Aspose.Workflow:一个无图形用户界面的.Net控件,该控件提供了一个功能强大的工作流引擎以及一整套符合业界标准的工作流对象。为了更好的管理工作流信息,内核是依循WFMC标准来构建的并且在构建过程中使用了XPDL的定义。用纯C#语言编写的,在web-form win-form方面的应用越来越多并取得了很好的效果。价格为1个企业版授权3990 1OEM授权11970
2)         Skelta Workflow.NET 2004:是一个可嵌入的.NET工作流引擎,基于最前沿的Microsoft .NET技术,XML, web的可扩展的商业规则引擎。也是完全基于Web的工作流引擎,其中采用了最高层的架构体系,同时也是专门为独立软件开发商而量身定做的开发软件。完全用C#编写并由SOAP封装。您可以更快速得开发应用程序以及建立与数据库的连接,比如MS SQL, Oracle, MySQL, Active Directory 或者 LDAP。此外,它还整合有InfoPath, SharePoint Portal Server Windows SharePoint Services等,其具有工作流设计控件,价格是一个用户授权17000,一个CPU授权(专业服务器,支持50个并发)60000,一个CPU授权(高级服务器,支持50个并发)85000
152 工作流开源项目
随着工作流技术的进一步发展和相关标准的进一步完善,工作流管理系统的研究也越来越为更多的企业和研究团队所重视,国际上和国内出现了许多研究工作流管理系统的开源项目,这些开源项目的普遍特点是:
1)        不以商业运营为目的
2)        出于节约成本和扩大通用性等目的,普遍采用JAVA开发
3)        普遍符合WFMC的各种标准,部分项目还针对工作流管理系统的主流产品提供了相应的接口。
目前国际上主要的工作流开源项目及其特点:
1)        jBpm(http://www.jbpm.org/):程序界面友好、功能完善、灵活性高、扩展行强,就其开发团队的实力、产品功能性和通用性等而言是目前最优秀的开放式工作流项目之一。但由于其主要面向JAVA的开发,故未提供针对C#等其他开发语言的接口或连接器
2)        Werkflow(http://werkflow.codehaus.org/):灵活性高,扩展性好,但目前尚处于进一步研究和开发阶段,暂未发布最新版本,有进一步跟踪价值
3)        OSWorkflow(http://www.opensymphony.com/osworkflow/):就针对工作流的处理来说灵活性很高,但由于为了提供其灵活性而没有提供图形化的流程设计模块,故使其相对于初级用户过于专业,关于流程等内容的设计不易掌握,限制了其实际的应用价值
4)        WfMOpen(http://wfmopen.sourceforge.net/):完全基于J2EE,是WFMC推荐的工作流管理系统之一,其本身虽不提供图形化的流程设计界面,但因其对WFMC各种标准的完全支持使其通用性很高,可使用图形化流程设计器JPEd-1.0.0产生的流程文件,另外此项目也没有针对C#等其他开发环境的接口
5)        OpenWFE(http://web.openwfe.org/display/openwfe/Home):项目使用JAVA开发,但具有针对C#、perl等开发环境的连接器,可以很容易的与各种开发环境结合。同时,其具有基于WEB和单机的图形化流程设计器,界面友好,应用简单,最重要的是,其提供了对WFMC标准中所有模式的支持
和其他的软件产品一样,用户使用成熟的工作流管理系统和群件产品,也可以参考WFMC标准以及各种开源项目自行开发适合业务的工作流系统,特别是基于Intranet的工作流应用。与Intranet技术相结合,工作流系统更具开放性,有更多的工具可供选用,且Browser/Server风格的界面简单易用,这也是当前工作流产品的发展方向。
2.   OpenWFE项目分析
2.1 OpenWFE项目简介
OpenWFEJohn Mettraux所领导的项目组开发的一套符合WFMC标准的工作流管理系统组件。项目使用JAVA语言编写,具有功能完善、通用型好、扩展能力强等特点。其除了能够为各种开发环境提供一个符合要求的工作流引擎之外,也能够直接作为一个完整有效的工作流管理系统进行使用。其主要功能模块包括:
1)         Engine(工作流引擎):负责描述和运行已经定义好的流程。一个定义的流程可以运行多个实例。此模块既负责将流程项目分派给相应的用户,同时也要监视和接受从用户处返回的流程项目,并按照流程将该项目进行下一步的处理。
2)         Worklist(流程项目清单):流程项目的集合,用来为每一个用户存储其流程项目,通常是没一类用户一个集合。存储的方式可以采用文件存储或存储到关系数据库中,并同时为用户提供运行各个流程项目的接口。
3)         ApreAutomatic Participants Runtime Environment,自动参与者运行环境):用来存放代理(自动参与者)。这些代理接收Apre的流程项目,根据其信息进行相应的修改后将其返回给Apre,再由Apre将其返回给工作流引擎。
4)         WebClient(客户端):通过Web访问流程项目清单,通过与其交互来进行流程的操作和控制。
通过以上几个模块的协同工作,OpenWFE可以为多个用户提供可靠的工作流的运行与控制。同时作为一个完整的项目,OpenWFE还包括Droflo(基于Web的图形化流程定义模块)、OpenWFE-ide(基于单机的图形化流程定义插件)、OpenWFE-webflowWeb工作流模块API)、ConnectorsOpenWFE与各种开发语言环境的连接器)等多个模块,这些模块使OpenWFE既能够进行流程的定义,也能够进行流程的运行与控制,成为一个完整的工作流管理系统。
2.2 OpenWFE的安装
OpenWFE的安装需要按照以下步骤来进行:
1)         安装1.4版本以上的JDK
2)         将下载的OpenWFE解压缩,注意其目录名不应含空格
3)         根据JDKOpenWFE的路径来设置JAVA_HOMEOPENWFE_HOME两个系统环境变量
4)         打开%OPENWFE_HOME%/bin/owfe-suite.bat文件来运行OpenWFE服务
5)         在浏览器中打开http://localhost:7080/webclient页面使用OpenWFE
23  OpenWFE的使用
1)         运行位于bin目录下的“owfe-suite.bat”文件,开启OpenWFE的各项服务(使用Tomcat运行的方法参考“README.windows.txt”文件)
2)         登录,对各自的流程进行操作
具体的操作方法可参照OpenWFE说明书,以下为试用时的几点注意事项:
1)         默认的用户包括“alice”、“bob”、“charly”、“admin”等用户,分别属于不同的参与者,注意参与者与用户不是同一个概念,参与者是拥有某种权限的一类用户,相当于用户组
2)         OpenWFE操作主要体现在如何对工作流进行操作、控制与管理,其本身从运行效果和实际意义上来讲距离实际应用还有一段距离
3)         掌握OpenWFE的使用需要对其结构有一定的了解。相当多的修改需要通过直接修改其各种xml配置文件来进行,具体内容见“doc”目录下的使用手册
24 OpenWFE的实现方式
OpenWFE项目使用JAVAJSP编写,项目为B/S结构。在运行OpenWFE服务程序后,能够直接通过浏览器进行工作流的定义,运行和管理等工作。同时,通过其为其它开发语言环境提供的连接器,也可以使用其他语言开发调用OpenWFE服务的管理系统。
OpenWFE工作流管理系统通过内部几个主要功能模块的共同协作来进行工作流的管理。同时,为了向其他开发语言环境提供进一步开发的接口,OpenWFE还同时针对各种语言提供了其与OpenWFE的工作流引擎服务“Engine”和流程项目清单服务“Worklist”的连接器,包括与针对.NET的连接器“OpenWFE-dotnet”、针对perl的连接器“OpenWFE-perl”和针对python的连接器“OpenWFE-python”等。以下如何在连接器中调用工作流引擎服务的功能和接口进行详细的分析,并简要介绍OpenWFE针对C#语言的连接器“OpenWFE-dotnet”。调用流程项目清单服务和其他的连接器的实现原理与这两种基本相同。
241 Engine(工作流引擎)
在各个模块中起到核心作用的仍是Engine(工作流引擎),其为其他几个模块提供最基本也是最重要的Participant Map(参与者映射)和Socket ListenerSocke监听)服务。其中Participant Map负责将工作流的工作项目传送给相应的参与者,而Socket Listener负责接受参与者处理完毕后的工作项目。且能够对外提供调用接口,及通过类似一下的url调用来进行工作流引擎的控制:“http://host:port/ServiceName/StoreName?session=session ID&action=actionString”以下对此调用的各个部分做简要介绍:
1)         HostEngine引擎服务所运行计算机的主机名或IP地址,如若引擎服务运行在本地计算机的话此处可使用localhost127.0.0.1
2)         Port:调用引擎服务的端口,不同服务使用的端口不一致,如OpenWFE默认参与者使用的端口是“5080,管理者使用的端口是“6080,同时此端口可通过修改OpenWFE源代码进行更换
3)         ServiceName:调用引擎服务的模块的名称,如“worklist”、“engine”等
4)         StoreName:用户所处参与者的名称,如“Store.alpha”等
5)         Session:调用模块与引擎服务之间对话的标识号。
6)         Action:调用引擎服务所要进行的操作,接受的参数包括“launchFlow”、“saveWorkitem”、“delegate”、“getWorkitem”、“getStoreNames”等
对引擎服务的调用及可以直接通过Web形式,也可以在应用程序中直接调用,这就为开发以OpenWFE引擎为核心的B/SC/S架构的工作流管理系统提供的必要的接口。
242连接器“OpenWFE-dotnet
此连接器为一个在.NET环境下调用OpenWFE引擎服务的演示程序,其演示了与引擎建立一个对话后通过调用运行并操作工作流的例子。此程序可以作为开发以OpenWFE引擎为核心的C/S程序的参考,也可以直接作为开发此类程序时与引擎的连接器。程序中各个类的功能大体如下:
1)         Test.cs:连接器的演示程序,可参照其中的调用方式直接使用连接器调用引擎服务
2)         RestSession.csRestSession类,连接器中与引擎建立对话的基类,能够产生url来调用相应的引擎服务
3)         WorkSession.csWorkSession类,继承RestSession,并通过字符串常量进行控制产生符合标准的url调用,用来调用“worklist”模块,是连接器中调用引擎服务进行工作项目操作真正用到的类
4)         ControlSession.csControlSession类,继承RestSession,并通过字符串常量进行控制产生符合标准的url调用,用来调用“engine”模块,是连接器中调用引擎服务进行工作流控制真正用到的类
5)         Attributes.csAttributes类和其他继承Attributes类的工作项属性,是工作项中各种属性的定义,关于属性的定义符合OpenWFE的设定,在操作时则采用哈希表技术,加快查找速度
6)         Workitem.csWorkitem类和其他继承Workitem类的工作项,是各种工作项的定义
7)         Codec.cs:工作项和工作项属性与工作流定义(给定的xml文件)之间进行格式转换和信息交换的工具类
8)         Utils.cs:原linux开发环境与.NET开发环境类型转换的工具
9)         Socket.cs:负责网络信息的侦听和传输,按照要求将工作项转换为数据流后传输给给定的用户,并负责接受该用户返回的处理过的工作项目
10)      OpenWfeException.csOpenWFE运行环境下产生的Exception的定义
25 开发OpenWFE引擎为核心工作流管理系统的注意事项
OpenWFE作为一个开放式项目,其开放的形式和不以商业利润为目的的特点决定了OpenWFE本身不能作为一款商业软件投入应用,但其良好的架构、强大的功能和扩展能力等决定了其核心的引擎服务,可以作为开发一款能够实际应用的工作流管理系统的最好选择之一。
既然能够使用连接器直接调用OpenWFE的引擎和项目清单服务,我们就可以用OpenWFE来作为核心通过连接器进行与外部通讯,来建立自己的工作流管理系统。此时应该注意以下几点:
1)         OpenWFE通过连接器向外界提供的只有“Engin”和“Worklist”两种服务,其余需要用到的服务自行设计和添加。
2)         OpenWFE只是符合WFMC的规范,具体的实现有其自身的特点,如对流程文件的定义等有其自身的定义,开发者需要对其有一定的掌握
3)         OpenWFE是一个发展中的项目,围绕其进行的开发也需考虑到其未来的发展,以便增强工作流管理系统自身未来的扩展能力
3.   小结
本文简要介绍了工作流和工作流管理系统当前研究和发展的现状,包括当前主流的商业工作流管理系统软件和控件产品,以及当前为研究工作流而建立的著名的开源项目。分析了各个项目的特点,并重点重点介绍了OpenWFE项目的特点、系统结构和应用领域。通过对OpenWFE各个方面进行系统的分析,为学习掌握工作流相关知识和利用OpenWFE进行工作流管理系统的开发提供了有益的参考。
参考文献
1 Workflow Management Coalition-The Workflow Reference Model,  David Hollingsworth, http://www.wfmc.org
2 Workflow Management Coalition-Terminology & Glossary, David Hollingsworth, http://www.wfmc.org
3 Workflow Management Coalition-Interface 1: Process Definition Interchange Process Model, Work Group 1, , http://www.wfmc.org
4 Workflow Management CoalitionInterface 1: Process Definition Interchange Q&A and Examples, Work Group 1, , http://www.wfmc.org
5 Workflow Management Coalition Workflow Standard - Interoperability Wf-XML Binding, http://www.wfmc.org
6 Workflow and Internet:Catalysts for Radical Change-A WfMC White Paper, , http://www.wfmc.org
7 The OpenWFE Manual,John Mettraux,  http://www.openwfe.org/docbook/build/index.html
9 工作流授权控制模型,胡长城,http://www.javafox.org
10工作流模型分析,胡长城,http://www.javafox.org
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值