OBE用户指南(中文版)

OBE(Open Business Engine)是一个开源Java工作流引擎,支持WfMC工作流规范。该用户指南介绍了如何在J2EE环境中安装和使用OBE,包括OBE内核、工作流引擎、OBE服务器、WAPI接口以及OBE客户端工具。用户需要熟悉J2EE容器,如JBoss,并使用XPDL文档定义工作流程。OBEWorklist工具用于与服务器交互,启动和管理工作流进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OBE用户指南(中文版)

宏云翻译,Cygnet开源工作流组

2005-3-29

1 简介

OBEOpen Business Engine的简称,它是一个支持WfMC工作流规范的开源Java工作流引擎,包括接口1XPDL),接口2/3WAPI)以及接口5(审查)。接口4在开发中,将包含在最终的版本中。

OBE提供一个在可控、集成的环境中执行各种活动的环境。OBE支持工作流的同步和异步执行。最初的OBE实现基于J2EE,设计在J2EE容器中,如JBoss或者Weblogic中。OBE使用了EJB Session BeanEJB Entity Bean和消息驱动Bean,是一个强大的工作流引擎。

2 开始

要开始使用OBE,首先你需要在J2EE容器中安装一个obeserver.ear文件。如果你不熟悉J2EE容器,那么我们建议你访问jboss.org并下载JBoss server。要在JBoss 3.0.4中安装OBE,拷贝obeserver.ear文件和obe-jbossmq-destinations-service.xml文件到server/default/deploy目录。

    你也要使用obe/lib目录下面castor.jar的补丁版本替换位于server/default/lib目录下面的当前castor.jar文件。拷贝castor- 0.9.4.3-patched-xml.jar文件到server/default/lib目录,并且删除当前的castor.jar文件。接下来,执行bin目录下的run脚本文件启动Jboss

如果你是第一次运行OBE,你需要安装你的数据库表。如果你正在使用Jboss附带的Hypersonic数据库,那么你或者拷贝hsqldb-ddl.sql中的文本,把它附加到server/default/db/hypersonic/default.script中,或者你执行dbsetup命令。请注意default.script文件的确切位置决定于你正在使用的Jboss的版本。上述路径只在Jboss 3.0.4 N.B.中是正确的。在最新Jboss版本中,这表现为classloader问题,这一版本不允许进行上述配置。

一旦OBE安装到一个J2EE服务器中,你需要使用OBEWorklist工具与服务器进程进行通讯。可以使用命令java -jar obeworklist.jar来启动OBE命令行Worklist工具。一旦命令行工具运行起来,你需要把协议转变为rmi,并且输入主机名、用户名和密码。如果你在同一台机器上使用JBoss,主机名可以为localhost,用户名和密码为sa.

提示:如果你想列出进程定义或者进程实例,并希望及时收到工作流错误信息,那么你要确认已经按照上述步骤配置你的应用服务器。你的数据库没有由default.script文件创建的表,这种可能性是存在的。

一旦连接上服务器,你需要输入XPDL格式的工作流定义。OBE发布版本中包括几个工作流定义的例子,你可以从它们开始做起,这些例子可以在examples目录中找到。

在输入一个或者多个工作流定义之后,你需要创建一个或者多个工作流进程实例,并利用命令行工具来启动这些进程。接下来你可以使用命令行工具来查看每一个进程,活动和工作项。

2.1 XPDL

OBE工作流的定义使用XPDL文档。XPDL代表eXtensible Process Definition Language,它的实现是一个XML文档。XPDLWfMC接口1规范中定义。现在你需要使用一个文本编辑器或者一些其他的第三方工具来创建XPDL文档。一个图形设计器正在开发,但是现在还不能使用。

OBE工作流中的最顶层的元素是一个软件包。在这个包中,你可以定义一个或者多个工作流进程,以及在这些工作流进程中使用的参与者和应用程序。工作流进程包括活动与转换。关于XPDL文档结构的更多信息在下面关于OBE内核的讨论中给出,OBE内核是OBE的一部分,它提供XPDL解析器和类层级工具。

2.2 OBE内核

OBE内核实现了WfMC的接口1规范。OBE内核承担解析XPDL文档和创建一个描述工作流定义的一个Java对象模型的工作。OBE内核也能够序列化对象模型成一个XPDL文档,以便可以输出供其他工作流引擎使用。

把工作流进程定义为XPDL文档,既可以通过使用一个文本编辑器来编辑XPDL文档来完成,又可以通过一个能够把工作流设计成图形的图形化工具来完成。XPDL文档是XML文档,它与WfMC设计的标准(Shcema)是一致的。

OBE内核提供以下一些功能:

l        一个描述工作流进程定义的Java对象,基于WfMC XPDL

l        读写XPDL文档的解析器和序列化器的接口

l        OBE使用的工具集

2.2.1

包是一个工作流定义中最顶层的元素。包定义应用程序、参与者和数据域,它们是定义中任何工作流进程的参考项。

包定义包含一个带有包自身描述信息的包头。例如,它可以包括包中使用的XPDL的版本信息,包的创建时间,创建包使用的商业工具,工作流的描述等等。

包也包含应用、参与者和数据类型的定义。

2.2.2 应用

作为“包元素”子元素的应用元素描述了用来执行一个应用或者一个程序的接口。应用接口被定义为一套正规的参数,它定义了传递给应用的参数的名称和类型。这些类型最终被映射到活动定义(稍后描述)中的实际的参数数据。

应用定义实际上与实现无关,而被分配一个在运行时映射到实现的ID。映射通过包含映射到连接器的ID的持久库而进行。OBE还提供了几个在下面OBE引擎文档里描述的连接器。

2.2.3 参与者

参与者就是能够与工作流引擎(可以处理工作项目的实体)进行交互的组织实体,它包括人、机器以及工作流引擎本身。

2.2.4 类型声明和数据域

类型声明定义一套可以在工作流相关数据中使用的类型。数据域用来创建工作流相关数据中的数据实例。

2.2.5 工作流进程

每一个包包含一个或者多个工作流进程。每一个进程又包括与包头相似的进程的有关信息。这一信息包括进程描述,创建时间,优先级和其他信息。

每一个工作流进程也定义只是应用到工作流进程的应用和参与者信息。每一个工作流也定义了各种活动和转换。

2.2.6 活动

一个活动表示一些将要作的事情。活动应该是原子化的。活动可以自动开始或者人工执行。活动经常产生一个或者多个可由指定参与者处理的工作项。

活动定义定义输入和输出转换,俗称连接和分离,的事务约束。有两种约束类型:ANDOR。输入转换集上的一个AND约束指的是所有的转换必须是“true”,下一个活动才能开始。输入转换集上的OR约束指的是只有一个转换是“true”,下一个活动就能执行。输出转换集上的一个AND约束指的是分离点上的每一个路径都会执行。输出转换集上的OR约束指的是只有一个路径可以执行。

2.2.7 转换

转换指的是从一个活动到另外一个活动的连接。当一个活动完成了它的输出转换被执行。活动有一个或者多个输入和输出转换。转换可以使用转换约束进行限制。

OBE内核可用来作为你自己工作流引擎的基础,你需要做的是提供一个完整的WfMC接口1的实现。我们建议你使用OBE引擎作为大部分的工作基础,并做好准备在企业中应用。

2.3 OBE Engine

OBE引擎为执行的工作流定义提供一个运行时环境。OBE引擎使用OBE内核来解析和序列化XPDL文档。引擎被设计成一个通用的实现,这里持久性是完全独立的。

所有与引擎的交互通过工作流API来进行,下面进行讨论。

当一个活动开始时,它就被放到一个活动栈中。如果没有循环定义或者循环条件是“false”,输出的变换就被执行。

OBE提供XPDL的扩展来支持循环。OBE当前支持FULL_BLOCKED, LOOP_BLOCKED, and NON_BLOCKED。旧版的XPDL定义了显式的循环结构,但是在新版中已经没有了。我们,作为OBE的开发者,认为循环是工作流的一个主要功能,它只有在XPDL中显式地定义,才能够正确地实现。WfMC正在讨论这一点。

2.3.1 连接器

XPDL提供了一个定义抽象项目的工具。你提供了工具IDXPDL中的可接受的参数,但是应用或者模块是在一个库中定义的。缺省的库在文件BasicToolRepository.xml中定义,在OBE引擎模块中能够找到它。

BasicToolRepository.xml文件包含称作“repository”的一个根元素,这个元素包含0个或者多个repository-entry元素。每一个repository-entry有一个keymeta-dataKey元素是库中一个独一无二的key,它用来识别XPDL中的工具。Meta-data元素包含执行的应用和程序信息。Meta-data包括几个子元素,这些元素随着meta-data的类型而变化。不同的meta-data类型在org.obe.client.api.repository中定义,它可以在OBEClientAPI模块中找到。

以下是meta-data的一个例子:

<meta-data exec-time="0"

        xsi:type="java:org.obe.client.api.repository.DebugApplicationMetaData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        <id>zas:browser</id>

        <impl-class>org.obe.runtime.application.DebugApplicationConnector</impl-class>

        <display-name>Browser</display-name>

        <impl-ctor-sig>java.lang.String</impl-ctor-sig>

        <impl-ctor-sig>*I</impl-ctor-sig>

        <description>Simulates the invocation of a web browser.</description>

</meta-data>

 

 

ID元素必须与repository-entry中的key元素相匹配。Impl-class元素指的是用来在运行时激活工具的连接器或者程序。impl-ctor-sig元素定义实现类的结构器参数类型。你能够使用经过充分认证的Java类名称,如Java.lang.string,Java数组标识符,如java.lang.String; 或者初始Java类型 *I *B *L *S *F *D等。Description元素提供一个人工可读的描述,它将来会被Tools使用。

2.3.2 OBE服务器

OBE服务器提供一个J2EE实现,它可以以一种可靠的和容错的方式执行工作流进程。当一个工作流进程通过WAPI执行时,一个WorkflowRunnerOBE引擎的一部分)就会在J2EE服务器中以session bean或者message driven bean的形式被创建和执行。所有的工作流相关数据放在一个entity EJB中。工作流进程会执行直到它到达一个静止点。静止点指的是工作流被人工开始或者停止的点。在静止点,工作流引擎的当前状态被保持。引擎状态包括工作流相关数据以及进程、活动、转换和工作项目的状态。如果引擎失效,状态会回滚到上一个静止点。

2.3.3 WAPI

工作流API是一个与其它工作流引擎进行通讯的接口。OBE的开发者已经决定把WAPI接口定义作为一个与OBE相独立的包,称作org.wfmc.wapi。目标是把这个接口作为一个Java WAPI接口进行提交,以便被WfMC作为一个标准采纳。WAPI基于WfMC的接口2/3规范。自从最初的API基于C-style接口,现在已经有一些变化,不过所有在规范中定义的功能都会提供。

WAPI提供与服务器进行连接的方法。一旦连接上,客户就能够输入、更新和输出XPDL进程定义。WAPI也提供API来创建、启动、查询和改变进程实例、活动实例和工作项目的状态。API也提供查询属性,包括工作流数据的方法。最后,WAPI提供执行应用的手段。

OBE提供了一个完整的WAPI接口实现,可以通过一系列的传输协议来使用它。

2.3.4 OBE Client API

OBE Client API提供一个WAPI接口的具体实现和为repository提供meta-data的类的实现。

2.3.5 OBE Client

OBE Client提供几个传输协议的实现,它们可用来与OBE引擎进行通讯。OBE当前支持本地、本地J2eeRMIXML-PRC协议。本地通讯指引擎实例必须运行在同一台机器上。本地J2ee是指引擎通过Session bean进行通讯。RMI协议适用RMI与远程的EJBs进行通讯。XML-PRC协议通过XML-PRC进行通讯。

2.3.6 OBEWorklist

OBE工作表是一个命令行工具,它提供通过WAPI接口与一个工作流服务器进行通讯的手段。工作表工具可执行WAPI提供的大多数函数。

3 开发

标准OBE版本不包含从头建立OBE需要的文件和结构。如果你对从头建立OBE感兴趣,你需要检查OBE公共CVS之外的所有代码。OBE使用CVS分解为多个子项目。基本的项目就简单地称为OBE。这一项目包括obecoreobeengine obeserver, obeclient, obetest wfmc子项目。唯一还没有被讨论的子项目是obtestObtest项目包含一套测试用例,它通过WAPI测试系统的不同部分,

OBE CVS中的另外一个顶层项目是OBE设计器(在CVS中是obedesigner. OBE设计器是用java写的一个桌面应用程序,它提供一个图形化的界面来开发XPDL文档。OBE设计器仍然处于开发的早期阶段,因此,不建议任何人都使用它,而正在从事这一项目的开发人员或者对参与这一项目有兴趣的人员可以使用它。

OBE Admin也是一个顶层的项目,它最终会提供一个能够实现命令行工具管理功能的GUI工具

4 附加的资源

OBE 问档类型定义:

·   XPDL DTD

更多关于工作流的信息可以在 The Workflow Management Coalition找到。

5 致谢

这一产品包含the Apache Software Foundation (http://www.apache.org/)开发的部分软件。

6 开发者

以下是对OBE有贡献的两个主要开发者:

Anthony Eden

Anthony EdenOBE的创始人. Anthony已经从事开源软件开发很多年。Anthony的其他项目有JPublish, 一个Web应用程序和发布框架, FormProc, 一个表格处理库, EdenCRM, 一个桌面CRM系统。

Adrian Price

Adrian在软件行业中有25年的经验,主要是在工作流/BPM领域。他开发了世界上第一个纯Java工作流引擎 (加拿大工作流自动公司). 他之后成为BEA Systems' "WebLogic Integration" BPM Engine的首席架构师. 他目前是Zaplet(http://www.zaplet.com)的技术总监,在从事他们的Zaplet 3.0协同业务过程管理(CBPM)产品的开发。

如果你愿意为OBE贡献力量,请加入OBE开发者邮件列表 http://lists.sourceforge.net/lists/listinfo/obe-developer

7 法律声明

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值