项目组工作流研究

上传人:人*** 文档编号:512401408 上传时间:2022-08-17 格式:DOCX 页数:12 大小:233.77KB
返回 下载 相关 举报
项目组工作流研究_第1页
第1页 / 共12页
项目组工作流研究_第2页
第2页 / 共12页
项目组工作流研究_第3页
第3页 / 共12页
项目组工作流研究_第4页
第4页 / 共12页
项目组工作流研究_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《项目组工作流研究》由会员分享,可在线阅读,更多相关《项目组工作流研究(12页珍藏版)》请在金锄头文库上搜索。

1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页项目组工作流研究-开源产品OBE研究报告作者:小贝2004-2-201. OBE中的重要概念1.1. 工作流参考模型工作流参考模型是由WFMC提出来的,对工作流管理系统的实现的一个参考模型。以下是该模型的一个结构图:下面分别对各个部件进行解释:1.1.1. Work Flow Enactment Service这个组件就是OBE要实现的,主要功能是读取工作流定义、根据定义决定工作流的走向、为客户程序提供接口以驱动工作流。俗称工作流机或工作流引擎。1.1.2. Process Definition Tool用于以图形

2、化的方式定义工作流。目前比较成熟的开源编辑工具为Jawe(jawe.objectweb.org),OBE虽然也提供了一个工具,但还没完成。Process Definition Tool与Work Flow Enactment Service之间的接口也成为Interface 1,也就是说通过tool生成的文档,Work Flow Enactment Service要可以正确读取。1.1.3. Work Flow Client Application工作流机的客户端程序。该程序可为最终用户提供一个定制的用于驱动工作流的接口。客户端程序通过Interface 2与OBE交互。这是我们需要开发的。1

3、.1.4. Invoked Applications在工作流运作的过程中,可能需要调用工作流机之外的功能,这时可通过定义好的Interface 3来完成。这也是我们需要开发的。1.1.5. Administration and Monitoring Tools用于管理和监视工作流机。在OBE中的实现则是OBEWorklist。1.1.6. 别的Work Flow Enactment ServiceInterface 4用于工作流机之间的协作。1.2. XPDL对工作流的定义是以XPDL文档的方式存在的。XPDL是eXtensible Process Definition Language的缩写

4、,且格式为XML的格式。XPDL中定义了一下几个概念:1.2.1. package(包)为了把一些相关的对象组织在一起,XPDL定义了包这个概念。导入流程定义到OBE也是以包为单位的。一个包可定义多个process,participant以及application。而包之间可以互相引用各自定义的对象。1.2.2. process定义完成一个任务的所需过程,例如销售订单处理。工作流的运行也是以process为单位的。一个process由多个activity组成。1.2.3. activity一个activity代表了某件要做的事情。一个活动必须是原子操作,也就是说每一件必须要完成的事都必须定义为

5、activity。Activity可以自动开始也可手动执行。一个Activity可能会产生一个或多个workitem,这些workitem将由participant来处理。一个Activity可以因于所有workitem的完成而自动结束,也可能需要手动来结束。在OBE的实现中,Activity有completion strategy(表示什么情况下activity的状态变为完成),可以通过配置,由实现了strategy算法的类来进行决定。Completion Strategy算法描述的例子是:某个workitem完成后,activity是否也自动完成。1.2.4. participantpar

6、ticipant代表了组织中的实体,这些实体将与工作流机交互(处理workitem)。这些实体可以是人、机器或者工作流机自己。在OBE中对于不同种类的participant,有相应的处理(第一次阅读该文档的可以掠过以下内容):case ParticipantType.HUMAN_INT: /直接为某个用户名建立一个WorkItem,由该用户登陆系统后手动完成该workitemcase ParticipantType.ORGANIZATIONAL_UNIT_INT,case ParticipantType.SYSTEM_INT: /将为系统用户建立一个workitem,由于是系统用户参与的wor

7、kitem,该workitem将由工作流机自动完成。case ParticipantType.RESOURCE_INT:case ParticipantType.RESOURCE_SET_INT:case ParticipantType.ROLE_INT: /将根据算法解析出多个用户名,然后根据work item分配策略来决定最终的要分配work item的用户名列表。而在建立workitem时,为列表中的每个用户名都分别建立一个同样的workitem。1.2.5. Work ItemWork Item代表将要被participant处理的工作。Participant通过设置work item

8、的状态(如完成)来控制work item,这可以通过Interface 2来完成。工作流机可能会调用Tool或Application来帮助participant完成某个work item,这可以通过Interface 3来完成。在OBE的实现中,以下是产生WorkItem的算法:如果activity没有设置tool,将产生一个workitem;如果activity设置了tool,则为每个类型为Application的tool产生一个workitem。也就是说当tool的类型为procedure时,不产生workitem,而是由OBE直接执行。1.2.6. Tool or Application

9、就是指参考模型中的Invoked Application。OBE使用Connectors来进行XPDL中定义的Application与实际实现的Application进行mapping(映射)。在OBE的实现中,有两种tool。一种是Application,表示由OBE调用但运行在别的JVM上的进程,一种是Procedure,表示由OBE调用但运行在同一JVM上。如前一节所述,Tool的类型对产生workitem有影响。2. OBE的组成部件2.1. OBE Core该部件包含了所有相对于WFMC Interface 1规范中的模型的java类。以下是通过解析xpdl文件来创建对象模型实例的例

10、子:XPDLParser parser = new Dom4JXPDLParser();Package p = parser.parse(new FileInputStream(workflow.xpdl);进一步解释: WFMC Interface 1规范规定对工作流的定义是通过xpdl来完成的,xpdl是以xml的格式来写的,而OBE要对工作流定义进行处理就必须先解析xpdl并转换为可直接进行操作的java类,而其中一个类Package就代表了一个xpdl中的概念-“包”。总之xpdl中所定义的模型在OBE Core都有相应的类与对应。2.2. OBE Engine一旦关于工作流定义的对象

11、树被创建,他们便可在engine中执行了。以下是执行workflow的例子:import java.util.ArrayList;import org.obe.engine.WorkflowEngine;WorkflowEngine wfEngine = new WorkflowEngine();/ add the package from the previous examplewfEngine.addPackage(p);ArrayList parameters = new ArrayList();List returnValues = wfEngine.executeSynch( pac

12、kageID, workflowProcessID, parameters);2.3. ConnectorsXPDL中提供了定义工具的方法,工具就是引擎在运行工作流的过程中可能会调用到的引擎所能实现以外的功能,可以看作是对引擎的扩展。但是为了在XPDL中不具体规定怎么实现这些工具,在XPDL只描述工具的ID和所需的参数。具体的工具的实现和工具ID的对应则是在repository中定义。默认的repository定义在文件BasicToolRepository.xml中。以后会具体描述怎样配置BasicToolRepository.xml文件。2.4. OBE ServerOBE引擎的工作方式有

13、两种:一种是嵌入式,另外一种是以EJB Server的形式运行。嵌入方式运行时,客户的进程中直接生成engine的实例,然后engine在客户进程中运行。而以EJB Server的形式运行时,客户端程序需通过rmi调用来驱动engine。至于什么情况下用哪种方式,可参考以下文档:OBE Server是将OBE Engine封装起来的组件,并以EJB的方式运行。以下是OBE对OBE Server的描述:The OBE Server provides a J2EE implementation which can execute workflow processes in a reliable a

14、nd fault-tolerant fashion.2.5. OBEWorklist这是一个提供字符型界面的java application。通过它可以对engine进行所有WAPI规定的操作。他提供了连接engine的几种不同方式:本地,RMI以及XML_RPC。2.6. OBE Client它提供了用于与engine进行通信的几种不同协议的实现。OBEWorklist就是用到了它。OBE目前支持本地,本地j2ee,RMI以及XML-RPC等协议。3. OBE的编译由于OBE还没有release版,所以必须从cvs上先取下source,编译以后才能用OBE。3.1. 从cvs中取OBE的源码

15、如图所示配置好cvs,然后checkout名为obe的module即可。3.2. 运行prepare.cmd在编译OBE之前,需要先运行prepare.cmd这个批处理文件,因为编译OBE需要定制一些本地的配置,这些配置因各个不同的编译环境而不同,例如JBOSS和Weblogic的安装目录等。所以prepare.cmd需要一个命令行参数,即定制用的属性文件名。可以到obe/custom目录找到定制用的属性文件的例子文件,一般只要修改一下就可用了。3.3. 到obe项目的根目录下运行ant如果定制用的属性文件正确的话,会产生一个ear文件在obe/build目录,将这个文件部署到JBOSS或Weblogic中。4. OBE的使用1(以嵌入方式运行OBE)4.1. 用Jawe写一个简单的流程定义文件4.2. 运行OBEWorklist出现以下菜单:Enter choice:1) Set Client Protocol2) Connect3) Disconnect4) Workflow Processes5) Worklist6) Set Logging LevelE) Print Last ExceptionM) Redisplay menuQ) Quit4.3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号