Java - OPENWFE

Java - OPENWFE


该项目09年已经停止开发。

分类: 工作流 96人阅读 评论(0) 收藏 举报
OpenWFE项目分析
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 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
3  OpenWFE的使用
1)         运行位于 bin目录下的“ owfe-suite.bat”文件,开启 OpenWFE的各项服务(使用 Tomcat运行的方法参考“ README.windows.txt”文件)
2)         登录,对各自的流程进行操作
具体的操作方法可参照 OpenWFE说明书,以下为试用时的几点注意事项:
1)         默认的用户包括“ alice”、“ bob”、“ charly”、“ admin”等用户,分别属于不同的参与者,注意参与者与用户不是同一个概念,参与者是拥有某种权限的一类用户,相当于用户组
2)         OpenWFE操作主要体现在如何对工作流进行操作、控制与管理,其本身从运行效果和实际意义上来讲距离实际应用还有一段距离
3)         掌握 OpenWFE的使用需要对其结构有一定的了解。相当多的修改需要通过直接修改其各种 xml配置文件来进行,具体内容见“ doc”目录下的使用手册
4 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”。调用流程项目清单服务和其他的连接器的实现原理与这两种基本相同。
41 Engine(工作流引擎)
在各个模块中起到核心作用的仍是 Engine(工作流引擎),其为其他几个模块提供最基本也是最重要的 Participant Map(参与者映射)和 Socket ListenerSocke监听)服务。其中 Participant Map负责将工作流的工作项目传送给相应的参与者,而 Socket Listener负责接受参与者处理完毕后的工作项目。且能够对外提供调用接口,及通过类似一下的 url调用来进行工作流引擎的控制:“ http://host:port/ServiceName/StoreName?session= session ID&action= action String”以下对此调用的各个部分做简要介绍:
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架构的工作流管理系统提供的必要的接口。
42连接器“ 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的定义
5 开发 OpenWFE引擎为核心工作流管理系统的注意事项
OpenWFE作为一个开放式项目,其开放的形式和不以商业利润为目的的特点决定了 OpenWFE本身不能作为一款商业软件投入应用,但其良好的架构、强大的功能和扩展能力等决定了其核心的引擎服务,可以作为开发一款能够实际应用的工作流管理系统的最好选择之一。
既然能够使用连接器直接调用 OpenWFE的引擎和项目清单服务,我们就可以用 OpenWFE来作为核心通过连接器进行与外部通讯,来建立自己的工作流管理系统。此时应该注意以下几点:
1)         OpenWFE通过连接器向外界提供的只有“ Engin”和“ Worklist”两种服务,其余需要用到的服务自行设计和添加。
2)         OpenWFE只是符合 WFMC的规范,具体的实现有其自身的特点,如对流程文件的定义等有其自身的定义,开发者需要对其有一定的掌握
3)         OpenWFE是一个发展中的项目,围绕其进行的开发也需考虑到其未来的发展,以便增强工作流管理系统自身未来的扩展能力
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值