logo资料库

OSWorkflow中文手册.pdf

第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
资料共50页,剩余部分请下载后查看
开始教程
简介
必要文件
运行示例
持久化(Persistence)的选择
载入流程定义文件
其它模块整合
OSCore
PropertySet
Spring framework
理解OSWorkflow
工作流程描述
工作流程思想
无条件结果(Unconditional Result)
条件结果(Conditional Results)
可能发生的三种不同的结果(conditional or unconditional)
单一步骤/状态(step/status)的结果可以这样描述
将一个状态分支(split)成多个状态可以这样描述
合并(join)是最复杂的情况,一个典型的连接看起来如下
通用动作和全局动作(Common and Global Actions)
方法(Functions)
基于Java的方法
BeanShell 类型的方法
BSF 类型的方法(perlscript, vbscript, javascript)
工具方法
验证器(Validations)
注册器(Registers)
条件(Conditions)
SOAP支持
GUI设计器
设计器的安装
快速启动指南
工作区间(Workspace)
调色板(Palette)
使用API
接口的选择
创建一个新的工作流
执行动作
查询
对比隐式和显式Configuration
附录
DTD文档(V2.8)
从2.7版升级
OpenDoc Series’ OSWorkflow 中文手册 V2.8 作者:OSWorkflow Team 翻译:陈刚
Version 2.8 , 参与人员: 译者 陈刚 OSWorkflow 手册 文档说明 联络 cucuchen520(at)yahoo.com.cn (at) 为 email @ 符号 发布记录 版本 2.8 2.8 2.8 2.8 日期 2007.07.20 2007.07.20 2007.08.14 2007.08.19 作者 陈刚 夏昕 曹晓钢 徐明明 说明 翻译 文档格式编排 编辑、校对 审校 OpenDoc 版权说明 本文档版权归原作者所有。 在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。 如需部分或者全文引用,请事先征求作者意见。 如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给 作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。 Open Doc Series 目前包括以下几份文档: ibatis2 开发指南 Spring 开发指南 Hibernate 开发指南 Webwork2 开发指南 持续集成实践之 CruiseControl Using the Rake Build Language 等 以上文档可从http://www.redsaga.com获取最新更新信息 August 21, 2007 So many open source projects. Why not Open your Documents? 2
OSWorkflow 手册 Version 2.8 , 1 开始教程..............................................................................................................................................4 1.1 简介 .........................................................................................................................................4 1.2 必要文件 .................................................................................................................................4 1.3 运行示例 .................................................................................................................................5 1.4 持久化(Persistence)的选择...................................................................................................12 1.5 载入流程定义文件 ...............................................................................................................15 2 其它模块整合....................................................................................................................................16 2.1 2.2 2.3 OSCore ..................................................................................................................................16 PropertySet ............................................................................................................................16 Spring framework ..................................................................................................................17 3 理解OSWorkflow .............................................................................................................................20 3.1 工作流程描述 .......................................................................................................................20 3.2 工作流程思想 .......................................................................................................................20 3.2.1 无条件结果(Unconditional Result)...................................................................................21 3.2.2 条件结果(Conditional Results).........................................................................................21 3.2.3 可能发生的三种不同的结果(conditional or unconditional)............................................21 3.3 通用动作和全局动作(Common and Global Actions) ..........................................................27 3.4 方法(Functions).....................................................................................................................28 3.4.1 基于Java的方法................................................................................................................28 3.4.2 BeanShell 类型的方法.....................................................................................................30 3.4.3 BSF 类型的方法(perlscript, vbscript, javascript) ............................................................31 3.4.4 工具方法...........................................................................................................................31 3.5 验证器(Validations)...............................................................................................................32 3.6 注册器(Registers)..................................................................................................................32 3.7 条件(Conditions) ...................................................................................................................34 3.8 SOAP支持 .............................................................................................................................34 4 GUI设计器 ........................................................................................................................................35 4.1 设计器的安装 .......................................................................................................................35 4.2 快速启动指南 .......................................................................................................................36 4.3 工作区间(Workspace) ...........................................................................................................37 4.4 调色板(Palette)......................................................................................................................37 5 使用API.............................................................................................................................................37 5.1 接口的选择 ...........................................................................................................................38 5.2 创建一个新的工作流 ...........................................................................................................38 5.3 执行动作 ...............................................................................................................................39 5.4 查询 .......................................................................................................................................39 5.5 对比隐式和显式Configuration .............................................................................................40 6 附录....................................................................................................................................................41 August 21, 2007 So many open source projects. Why not Open your Documents? 3
OSWorkflow 手册 Version 2.8 , 6.1 DTD文档(V2.8).....................................................................................................................41 6.2 从 2.7 版升级 ........................................................................................................................49 1 开始教程 1.1 简介 OSWorkflow 与其它大多数工作流非常不同,不论是商用的还是开源的。它的不同之处 就在用它极其灵活(extremely flexible)。然而,这也使得我们很难掌握它。举个例子: OSWorkflow 没有好的可视化工具来开发流程,这就意味着我们要手工书写和定义这些 XML 流程描述文件。这需要应用开发者具备一定的勇气,就类似于有勇气写代码或者配置数据库 一样。有些人希望寻找一个快速的”即插即用(plug-and-play)”工作流解决方案,但最终发现 这样的解决方案没有提供足够的灵活度,从而不能在一个完善的系统中实现所有的需求。 OSWorkflow 提供这样的灵活(OSWorkflow gives you this flexibility) 我们认为 OSWorkflow 是一个”低端”(low level)工作流实现。比如说循环(loops)和条 件(conditions)在其它的工作流里面被抽象成是可视化的图标,在 OSWorkflow 里面却是“代 码”。这并不是要求你来实现真正的代码,而是用脚本语言去定义这些条件。我们不希望那 些不懂技术的用户去修改流程。有些系统提供了 GUI,可以简单地编辑一些流程,但当客户 自己运用 GUI 的时候,这些流程最终往往被修改和破坏了。我们相信最好的方式是能让开 发者知道这些改变。虽然如此,OSWorkflow 最新的版本也提供 GUI 来辅助开发者编辑流程。 OSWorkflow主要基于有限状态机(finite state machine)。每一种状态(state)被描述成为 step ID和status。从一种状态(state)转移到另一种状态没有动作(action)是不可能发生的。在工 作流的生命周期内通常有一个或者多个活动的状态。这些简单的思想表现在OSWorkflow引 擎核心包里面,并且通过用一个简单的XML文件来描述业务工作流程。 1.2 必要文件 在 OSWorkflow 发布版本中几乎包含了所有需要的包: • OSCore 2.0.1及以上版本 • PropertySet 1.2及以上版本 Jakarta commons-logging • • BeanShell (可选) • BSF (可选) • EJB interfaces (不一定需要 EJB 容器) • XML parser (对于 JDK 1.4 来说是不需要的) OSWorkflow 的核心 API 可以在 JDK1.3 及以上环境中运行。然而 GUI 设计器则需要 JDK1.4 及以上版本才能工作。 August 21, 2007 So many open source projects. Why not Open your Documents? 4
OSWorkflow 手册 Version 2.8 , 注意,关于SOAP和工作调度(job scheduling):GLUE是OSWorkflow使用的一种SOAP实 现方式。你也可以在OSWorkflow2.8 版中使用XFire。GLUE可以方便地从WebMethods得 到。如果你想得到SOAP支持或者远程工作调度支持,你必须下载GLUE专业版的包 (GLUE Professional libraries)。XFire 是属于codehaus的一个开源项目。 作为对GLUE的补充,你需要Quartz 来进行任务调度(job scheduling)。如果你不喜欢 GLUE或者Quartz,你也可以通过使用OSWorkflow API来非常容易地提供其他实现,如 果在你的应用服务器内部运行Quartz,或者任何正确配置了OSWorkflow的地方运行 Quartz,你不一定需要Quartz,但是你必须要将JobScheduler的local参数设置成true。 除这些包以外,对于你所选择的不同WorkflowStore,其所依赖的包也不同,要想知道更 多相关信息请阅读文档的 1.4 章节:Persistence的选择。对于有些工具方法可能需要其 它别的包。例如,如果你使用OSUserGroupCondition,必须导入OSUser包。 1.3 运行示例 注意自 2.5 版开始,war 示例部署到大多数 web 容器里都不需要外部配置即可运行。现在的 例子使用的是内存式持久化 (memory persistence),所以不需要配置数据源。下面的介绍则 是为那些需要配置持久化存储(persistent store)的人而准备的。为了逐步弄清楚工作流示例, 推荐你第一次部署例子的时候就按照它本来的样子(memory persistence)进行部署,不要加入 持久化。但 ear 示例就要使用 EJB 持久化,所以需要完整的 EJB 应用服务器。 下面的介绍只对你部署基于持久化例子来说才是有效的。如果你第一次运行示例,强烈推荐 你不要使用持久化,直接部署示例就好了。 OSWorkflow 附带的是个简单的示例,用于帮助你理解它的原理。这个例子可以在任何一种 servlet 容器上运行。如果要配置持久化数据源,本章下面的指南是由 Ed Yu 和 Egor Kobylkin 所提供的对于几种应用服务器的配置方式。如果你使用的容器没有列出,请选择某个类似的 指南,安装工作将是非常相似的。 • Orion JRun • • Tomcat 4.0.x • Tomcat 4.1.x Orion 这里大体描述一下怎样将 osworkflow_example.war 部署到 Orion 1.5.4 或更高版本上面去。 开始持久化 要获得良好的性能,配置一个池化数据源是非常重要的。 对于 Orion 1.5.4 或者更高版本,增加下面的配置到 config/data-sources.xml 这个文件里面。 这个数据源将会是 OSWorkfow 所需要的。