敏捷工作流模式研究及应用

2010-09-19 08:41郑云翔郑天翔
电子设计工程 2010年8期
关键词:状态机引擎构件

郑云翔,郑天翔

(1.华南师范大学教育 信息技术学院,广东 广州 510631;2.暨南大学 深圳旅游学院,广东 深圳 518053)

工作流是由计算机支持或自动处理的全部或者部分业务过程,其中,文档、信息或任务根据一系列程序规则在不同的参与者之间传递与执行[1]。工作流模型是对业务过程的抽象表示,其最大的优点是将业务逻辑和过程逻辑分离开来,因此可以在不修改具体功能实现的情况下,通过修改过程模型来改变系统功能,完成对生产经营部分过程或全部过程的集成管理,有效地把人、信息和应用工具合理地组织在一起。在工作流参考模型中,工作流引擎是工作流管理系统的核心,它为工作流实例提供运行时的执行环境。从技术角度来说,对工作流引擎的设计是工作流建模技术的关键。当前,对工作流建模的研究取得了很多研究成果,因此出现了不少工作流产品,这些产品主要以通信、文档或过程为中心[2]。随着企业对工作流技术的需求日益增加,未来产品的规模和功能趋向于大型化、复杂化发展,在不同程度上集成了各种外部开发工具。但是,具有工作流特征的应用形态千变万化,很难在工作流系统中对不同的应用(包括应用数据)进行统一地表示,利用这种所谓灵活的工作流系统开发出来的应用系统在实际运作过程中反而表现不灵活[3]。另外,应用系统的可靠性、可扩展性、实用性等方面也不能完全满足企业实际应用的需求。本文在工作流管理联盟所提出的工作流规范上进行了剪裁,提出了一个基于有限状态机和元层次软件结构的工作流模型,由于其敏捷[4]、快速、有效、灵活、简单和适应变化的特性,称之为敏捷工作流模型(AWM)。AWM表示了一个特定环境所采取的解决方案,因此它可以抽象成为一种敏捷工作流模式(AWP)。

工作流模式(Workflow Pattern)是近年来许多组织、机构、学者研究的热点,其中一些主要的研究成果如下:工作流模式是在一个指定的非任意的上下文中不断重现的具体形式的抽象[5]。从该文所讨论的内容可知,他们的模式应称为工作流业务过程流程模式更为合适。文献[6]对工作流模式又有不同的定义,Meszaros等学者将工作流模式分为三个主要部分:需求、结构和实现。本文称这种模式为工作流综合模式。Lee等学者提出一种分布式工作流模式的具体细节[7]。显然,单个模式不能完成一个完整的软件体系结构的详细构造——它仅仅用于设计应用程序的某个方面。为了达到软件体系结构的需求,需要一套丰富的涵盖各个设计面的模式,并且在适当的时候结合运用各个层次的不同模式来满足设计开发的需求。本文所讨论的敏捷工作流模式正是一个模式系统,对应的是文献[6]中的结构和实现部分的软件系统方面,是快速构造柔性工作流系统的基线。

1 敏捷工作流模式

1.1 体系结构模式

采用自适应的软件结构——元层次体系结构模式,该体系结构为动态改变软件系统的结构和行为提供了一种对用户透明的机制。在这种模式中,应用程序可分成两部分:一个元层次提供所选系统属性的相关信息并使软件含自描述信息;一个基本层次包括应用程序逻辑。它的实现建立在元层次之上,改变保存在元层次上的信息会影响其后的基本层次的行为。因而该模式为系统的柔性和功能演变提供了一种实现的途径。

工作流的元层次软件体系结构(BL,ML,MOP),其中:BL由构件所组成,称为基本层次集,该层次模拟并实现了应用程序逻辑,其包含的构件表示了系统提供的服务以及下面的数据模型。ML由一组元对象所组成,称为元层次集,它提供了一个软件的自表示并且给出软件的自身结构和行为的知识。元对象的知识来源于以下3点:1)系统运行期间提供的;2)根据用户定义的模型;3)运行期间基本层次检索到的。其中描述系统静态信息的元对象集称为结构元对象集,描述系统整体策略的元对象集称为行为元对象集。MOP是元对象协议,作为元层次的外部接口,并使系统的实现以一种已定义的方式来获得,其为描述对元层次的变更提供一个接口,执行已描述的变更。MOP被设计成一组独立的构件,这些构件称为元层次体系结构的解析器(MI)。于是得出敏捷工作流的体系结构,如图1所示。

1.2 模型描述模式

文献[8]提出一种基于知识的工作流系统模型,并使用框架来作为模型的描述形式。这种方法将工作流视为一组基于知识表示模式的业务规则集,通过激活相应的规则来实现工作流的控制。文献[9]提出一种基于“事件化状态迁移图”(SNE)的工作流模型,并以数据项集合来描述工作流模型的知识,体现了以数据流动为核心的工作流思想。本文采用有限状态机理论描述工作流模型,并参照文献[3]把工作流引擎的结构分成3个部分,分别是组织机构模型、信息模型和过程控制模型,其中前两者合称工作流引擎的数据模型。

1.2.1 数据模型

图2给出了敏捷工作流引擎数据模型结构图,其中信息模型由状态机的主要元素刻画,具体地说:1)FSM是描述有限状态机的类;2)State是描述有限状态机状态的类;3)Transition是描述有限状态机转换的类;4)Action描述有限状态机的动作;5)Parameter是描述有限状态机动作的参数的类;6)Guard是描述有限状态机状态转换的监护条件;7)Event是描述触发转换的事件的类。组织机构模型由以下元素刻画:1)Department、Team是描述组织机构模型中的部门和团队信息的类;2)User是描述人员(用户)个体信息的类;3)Role是描述角色的类,可以进行权限控制,这扩展了工作流系统进行任务指派、权限分配的能力。

1.2.2 过程控制模型

过程控制模型将信息模型和组织机构模型有机地结合起来,负责完成工作流实例的流转、控制和协调。它基于有限状态机理论,是对完整状态机模型的剪裁,并参考了工作流管理联盟给出的通用框架(参考模型)。在状态机的向前推进过程中,引擎接收从外部接口发送过来的请求,负责相关规则依赖的检查,根据状态图进行状态推导,维护各种控制数据,处理任务的指派和调度,并根据需要调用各种应用程序接口与用户、事件处理模块等交互。在实际应用中,可以动态地创建多个工作流引擎(工作流机),并发地执行不同的工作流实例。模型需要提供相关机制(如特殊的协议、信息转换格式、WAPI网关等)来同步工作流引擎的操作、过程交换和活动控制信息,在引擎之间传递相关数据等。因此,过程控制模型是描述模式的核心部分,可以看作通用模型中的工作流执行服务器[10]。

使用有限状态机作为模型的描述模式,其好处是显然的:1)有限状态机的执行过程是业务流程的抽象,它用一种形式化方法较精确的描述了软件系统的业务逻辑,即可工程化部分,把数据和程序、说明性逻辑和过程性逻辑分离;2)状态机用于对系统的动态方面建模,以状态机为工作流的核心部件,使得具体业务逻辑可以以组件的形式被调度,其调度策略可以显式的进行配置,其效果是,业务逻辑具有“plug and play”(即插即用)的特征。因此这种描述形式可以实现业务流程的可配置,从而提高工作流模型描述能力和柔性;3)状态推导引擎既可作为动作引擎中间件,也可作为用户界面智能导航、流程控制中间件。

1.3 模型表示模式

本文提出的敏捷工作流引擎使用有限状态机进行描述,对有限状态机的表示模式的研究,大致经历了以下几个阶段[11]:1)用邻接矩阵来描述,并以此完成了一个电话呼叫中心的项目。虽然邻接矩阵用高级语言编写比较方便,但这种方法描述的状态机不直观、难以阅读,而且扩展性差;2)用逻辑更新语言来描述,但这种方法的描述能力和推导能力有限;3)用可扩展标记语言XML来描述,即本文提出的表示模式。这种表示模式最大的好处就是统一了描述语言,同时具有可扩展性。使得各种不同的软件之间可以方便进行数据读取和数据交换,大大提高了各种软件之间的无缝集成。

1.4 模型解析模式

元层次和基本层次之间主要考虑了两方面的映像,结构映像和行为映像。这两种映像都通过元解析器 (Meta Interpreter)实现由结构元对象和行为元对象到基对象的映射。由图3可见,为了操纵系统的信息(结构信息和行为信息),系统的元实体仅需要与元解析器进行交互,同时,元实体通过元解析器获取基本层次的结构、状态和行为。

在系统运行时,元解析器作为事件的调配者(Event Dispatcher),根据系统的结构信息和行为信息触发构件连接器的交互事件,构件连接器响应交换事件并递归的触发构件对应的构件端口事件从而使构件相互协作完成系统的业务逻辑。同时,为了实现这种透明的元层次到基本层次的映像,元解析器根据元对象所提供的系统抽象信息进行解析,利用元程序设计方法动态地在构件中织入代码的同时生成相应的构件连接器,实现构件之间交互和协作。

结构元对象通过元解析器具体化系统的结构,而不直接与系统的组件和连接器发生交互。同时结构元实体通过元解析器随时了解系统结构信息的变化。此时,元解析器完成3个工作:1)创建新的类型和实体;2)根据现有类型创造实体;3)析构实体。分别定义如下:Define{Component|Connector},Instantiate {Component|Connector},Destroy {Component|Connector|Attachment}。

系统的行为元对象同时与元解析器进行交互,其目的是在观察系统行为的同时对系统的行为进行必要的修改。具体化系统行为必须完成2个方面:1)获得有限状态机的知识;2)通过元解析器获取系统状态。元对象具有规则的知识并可以通过元解析器的getstate原语(或类似的机制)实现。例如:当规则触发,但其后置条件没满足 (某构件没满足某种条件),通过元对象协议可以获得这种信息反馈给行为元实体。而行为元对象选择适当的策略。由于系统的行为由有限状态机模型所指导,因此修改系统的行为意味修改系统的有限状态机模型。同时有限状态机的转换描述为规则触发后的状态迁移,修改系统的行为意味要修改这些描述信息。定义了以下的操作原语:1)Config:根据有限状态机配置策略;2)ConfigFSMStates:实例化和初始化具体的状态集合;3)ConfigFSMTransitions:实例化和初始化具体的转换集合;4)ConfigFSMState:实例化和初始化具体的某个状态;5)ConfigTransition:实例化和初始化具体的某个转换。

2 应用实例

本文所讨论的敏捷工作流模式在广东省长途电信资源管理系统(二期)的软件开发实践中得到了应用。这是一个资源调度子系统,作为广东省长途资源管理系统的一个组成部分,其基本流程主要包括3个:电路调度流程,资源确认流程和割接调度流程。通过引入状态机建模,克服了原有系统(一期)工作流程固定不可配置的缺点,并且与集团公司原有的调度系统无缝连接,形成完整的闭环流程。

应用效果:1)大大提高系统的柔性和适应性:企业实际业务流程并非固定不变,可能需要增加、删除或调整某项任务。传统的工程方法是“非预见性的”,很难适应这种变化。本文提出的敏捷工作流模型基于有限状态机理论和自适应的软件结构,因此能允许改变自身来适应变化,具有较强的适应性和灵活性;2)软件结构的分层更合理,软件对象的分解更彻底:基于元层次的体系结构,系统的表示层和业务逻辑层、业务逻辑和过程逻辑分离,通过状态推导引擎联系。这种体系结构有效地分离了业务对象状态的描述性知识和状态动作的过程性知识;3)大大增强系统模型的表达能力:工作流模型基于模式理论,采用了XML的知识表示方法,并通过建立元层次的体系结构,使得模型对企业的业务流程定义、用户视图定制、机构人员管理等能够进行更好的描述。

3 总结和展望

敏捷工作流模式的研究和应用取得了预期的效果,应用实例表明,有了敏捷工作流模式的支持,该项目整个开发过程有机的分为用户界面设计、业务逻辑设计和系统配置等几部分,提高了软件开发的效率,使软件体系结构更为清晰,模块之间的耦合度低且具有模块连续性,达到敏捷开发的目的。基于此工作流模式可以快速构造出具有工作流特征的大型信息系统。

还需要进一步研究和完善这一模型,其中包括:加强状态机模型的推理能力,引入断言机制和推理规则库;工作流的运行是一个反复迭代、不断寻优的过程,引入协调、反馈机制有利于增强工作流的适应能力。

[1]Workflow Management Coalition.Workflow management coalition:Terminology&Glossary[R].WFMC TC00-1011.Winchester:Workflow Management Coalition,1999.

[2]范玉顺,吴澄.工作流管理技术研究与产品现状及发展趋势 [J].计算机集成制造系统,2000,6(1):1-7.

FAN Yu-shun,WU Cheng.Current state and development trends of workflow management research and products[J].Computer Integrated Manufacturing Systems,2000,6(1);1-7.

[3]何清法,李国杰,焦丽梅,等.基于关系结构的轻量级工作流引擎[J].计算机研究与发展,2001,38(2):129-137.

HE Qing-fa,LI Guo-jie,JIAO Li-mei,et al.Relation based lightweight workflow engine[J].Journal of Computer Research and Development,2001,38(2):129-137.

[4]Constantine L L.Process agility and software usability:Toward lightweight usage-centered design[R].Sydney:University of Technology,2001.

[5]AALST W M P V D,HOFSTEDE A H M T,KIEPUSZEWSKI B,et al.Workflow patterns [J].Distributed and Parallel Databases,2003,14(1):5-51.

[6]Meszaros G,Brown K.A Pattern Language for Workflow Systems[R].USA:Washington University,1997.

[7]Lee S I,Han D,Lee D.A pattern for managing distributed workflows[R].USA:Washington University,2000.

[8]舒斌,殷国富,戈鹏,等.面向敏捷企业的工作流系统建模方法 [J].计算机集成制造系统,2002,8(2):105-110.

SHU Bin,YIN Guo-fu,GE Peng,et al.Method of workflow system modeling for agile enterprise[J].Computer Integrated Manufacturing Systems,2002,8(2):105-110.

[9]邓达强,胡健,吕昱.一种新的工作流模型及其在产品开发过程中的应用[J].系统仿真学报,2001,13(4):426-429.

DENG Da-qiang,HU Jian,LU Yu.A new model of workflow and its application in the process of product development[J].Acta Simulata Systematica Sinica,2001,13(4):426-429.

[10]Workflow Management Coalition.Workflow reference model[S].WFMC TC00-1003.Winchester:Workflow Management Coalition,1994.

[11]黄倚霄.基于状态推导引擎的柔性工作流管理系统模型、模式的研究和应用[D].广州:中山大学,2003.

猜你喜欢
状态机引擎构件
基于有限状态机的交会对接飞行任务规划方法
蓝谷: “涉蓝”新引擎
建筑构件
建筑构件
建筑构件
建筑构件
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
双口RAM读写正确性自动测试的有限状态机控制器设计方法
基于反熔丝FPGA的有限状态机加固设计