OSWorkflow 探索

2009-05-13 02:42:27来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


前 言
    本文没有抛出可运行的范例,仅仅是程序片断而已,不过在 OSWorkflow 的 Wiki 上,Quake Wang 已把官方入门教程完整地翻译成中文了,有兴趣的读者可去阅读。关于 OSWorkflow 更加细节性的内容,可参考官方手册,相信你在了解了入门教程后,可轻松阅读官方手册。
   
OSWorkflow 概念
    在商用和开源世界里,OSWorkflow 都不同于这些已有的工作流系统。最大不同在于 OSWorkflow 有着非常优秀的灵活性。在开始接触 OSWorkflow 时可能较难掌握(有人说不适合工作流新手入门),比如,OSWorkflow 不要求图形化工具来开发工作流,而推荐手工编写 xml 格式的工作流程描述符。它能为应用程序开发者提供集成,也能与现有的代码和数据库进行集成。这一切似乎给正在寻找快速“即插即用”工作流解决方案的人制造了麻烦,但研究发现,那些“即插即用”方案也不能在一个成熟的应用程序中提供足够的灵活性来实现所有需求。
   
OSWorkflow 优势
    OSWorkflow 给你绝对的灵活性。OSWorkflow 被认为是一种“低级别”工作流实现。与其他工作流系统能用图标表现“loops(回路)”和“conditions(条件)”相比,OSWorkflow 只是手工“编码(coded)”来实现的。但这并不能说实际的代码是需要完全手工编码的,脚本语言能胜任这种情形。OSWorkflow 不希望一个非技术用户修改工作流程,虽然一些其他工作流系统提供了简单的 GUI 用于工作流编辑,但像这样改变工作流,通常会破坏这些应用。所以,进行工作流调整的最佳人选是开发人员,他们知道该怎么改变。不过,在最新的版本中,OSWorkflow 也提供了 GUI 设计器来协助工作流的编辑。
    OSWorkflow 基于有限状态机概念。每个 state 由 step ID 和 status 联合表现(可简单理解为 step 及其 status 表示有限状态机的 state)。一个 state 到另一 state 的 transition 依赖于 action 的发生,在工作流生命期内有至少一个或多个活动的 state。这些简单概念展现了 OSWorkflow 引擎的核心思想,并允许一个简单 XML 文件解释工作流业务流程。
OSWorkflow 核心概念
   
step(步骤)
    一个 step 是工作流所处的位置。可能从一个 step 流转到另外一个 step(或者有时候还是停留在一样的 step)。举例来说,一个 OA 系统的请假流程,它的 step 名称可能有“本部门审批阶段”,“办公室审批阶段”,“总经理审批阶段”等。

status(状态)
    工作流 status 是一个用来描述工作流程中具体步骤状态的字符串。OSWorkflow 的有 Underway(进行中)、Queued(等候处理中)、Finished(完成)三种 status。

action(动作)
    action 指定了可能发生在 step 内的转变,会导致 step 的变更。在 OA 系统中,“本部门审批阶段”可能有“拒绝”或“批准”两个 action。action 和 step 之间的关系是,step 说明“在哪里”,action 说明“可以去哪里”。 一个 action 典型地由两部分组成:可以执行此动作的 condition(条件),以及执行此动作的 result(结果)。

condition(条件)
    类似于逻辑判断,可包含“AND”和“OR”逻辑。比如一个请假流程中的“本部门审批阶段”,该阶段利用“AND”逻辑,判断流程状态是否为等候处理中,以及审批者是否为本部门主管。
   
result(结果)
    Result 代表指向新的 step 及其 step status,也可能进入 split 或者 join。Result 分为两种, contidional-result (有条件结果),只有条件为真时才使用该结果,和 unconditional-result(无条件结果),当条件不满足或没有条件时使用该结果。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:第21期-Connection Pooling Proxool

下一篇:解决Word文档的检索问题,lucene我的天职是搜索