可支持多语言的工作流动态演进(2)
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:
或QQ:
处理(尽可能给您提供完整文档),感谢您的支持与谅解。

2.1 前台定义
Micro-workflow有自己的定义语言,即本文所称的前台定义,它的关键抽象是过程(Procedure),一颗由过程组成的层次树便定义了一个工作流程。图1就是定义树的元模型,这里主要有两种类型的过程:
图1 micro-workflow前台定义元模型
(1)简单过程(Simple Procedure)——这些过程表示树(指定义树,非元模型)中的叶子节点,它既可以是一个代表软件服务的过程,也可以是一个代表用户必须完成的工作过程。
(2)复合过程(Composite Procedure)——复合过程用于表示对控制流(序列、条件等)的管理结构,是树中的非叶子节点。
2.2 后台定义
采用基础数据结构中的有向图来进行后台定义,其中节点代表活动步骤,节点之间的连接代表流(数据流或控制流)。控制流建立了节点的执行顺序,数据流定义了从一个活动传递到另一个活动的数据,任何图都有一个开始节点和终止节点。
2.3 前台定义到后台定义的翻译
要完成从前台到后台的翻译,前台定义模型与后台定义模型之间必须有一个完备的映射。前台定义模型提供编译规则从而生成后台定义,micro-workflow中的编译是按照自顶向下的方式完成的,它从前台定义的根部开始,递归进行,每个复合过程编译它的子节点作为其相应后台定义图中的表示。每个简单过程编译成图中的一个节点,而复合过程中的信息则成节点之间的连接,生成的结果图就是工作流引擎可任意处理的后台定义,定义编译算法时要考虑所有存在的规则,如控制流、数据流以及发送给各个节点的消息类型等。图2大体描述了一个前台到后台的映射。
图2 micro-workflow的前台/后台定义
3 工作原型修改
一个灵活的工作流管理系统应该具备WFT的修改功能,即便是已经有实例运行在WFT上,它也可以被修改,下面将解决这个问题。首先介绍WFT版本化的概念并给出图1的扩展,然后介绍修改操作(modification operation)的概念。
3.1 WFT版本化
WFT版本化的主要思想是创建WFT的新版本而不是直接修改原有的WFT。WFT的行为信息保留在它的各个版本中,图3是图1元模型的扩展,提供了WFT版本化支持。
一个WFT由一个或多个版本组成,并且某一版本只唯一隶属于一个WFT,也就说一个版本可以有多个子孙,但只能有一个父亲,每个版本都有一个版本号作为唯一标识。当一个新的WFT加入到工作流模型中时,便建立了此WFT的根版本。如果要施加任何修改操作,则先创建此版本的一个子孙版本,然后在新版本上进行修改操作。一个版本可处于三种状态中:临时状态、发布状态及过时状态。一个版本一旦创建便置于临时状态中,处于临时状态的版本可以进行修改或移除,但不能进行实例化也不能产生子孙版本;一旦修改操作完成则变为发布状态,处于此状态的版本不能修改或移除,但可产生新版本;最后,当发布状态的版本变失效时,它的状态被置为过时。
图3 支持版本化的工作流定义元模型
3.2 修改操作
为了处理工作流模型,必须有一套定义良好的操作。所谓“定义良好”是指达到两个基本条件:完备性和正确性。完备性是指可以创建或移除WFT模型上的所有元素,正确性是指当完成一系列修改操作后可以保持WFT模型及实例的正确性。为了达到这两个条件,必须设置某些操作的先决条件,如果先决条件不满足,那么操作就不能执行。修改操作有两类:
(1)CLASS 1——创建和移除WFT以及控制版本的操作。这一类操作完全独立于前台定义语言。
(2)CLASS 2——修改WFT版本内容的操作,这些操作依赖于前台定义语言。因此当前台定义语言改变时,这些操作必须重新实现。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机可支持多语言的工作流动态演进(2)在线全文阅读。
可支持多语言的工作流动态演进(2).doc
将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
下载失败或者文档不完整,请联系客服人员解决!