论文部分内容阅读
摘要:简述了有限状态机的基本概念和传统理论,提出了利用有限状态机进行工作流引擎设计的基本思想,并结合实际应用给出了一种实现方法。
关键词:工作流引擎;有限状态机;对象
工作流技术正越来越广泛地应用在各种领域,而工作流引擎又是工作流模型设计中的核心。采用工作流支持其经营过程的企业,工作流引擎可以看作其经营过程的任务调度器和资源分配器,是企业的业务操作系统,因此工作流引擎的性能和可靠性是企业经营过程的运行效率和安全性保障。本文将有限状态机(Finite-State Machine,FSM)的理念应用于工作流引擎设计中,并结合Oracle,Java,Hibernate阐述了该工作流引擎的设计和实现方案。
一、相关概念
1.有限状态机,又叫有限状态自动机,是表示有限状态(state)及在这些状态间的转移(transition)和动作(action)等行为的数学模型。定义:有限状态自动机是五元组(■,S,S0,δ,F),这里的:■是输入字母表(符号的非空有限集合)。表示该系统能接收的所有事件的集合。S是状态的非空有限集合。S0是初始状态,它是S的元素。在非确定有限状态自动机中,S0是初始状态的集合。δ是状态转移函数:δ:S×■→S。F是最终状态的集合,S的(可能为空)子集。
2.有限状态自动机可以表示为一个有向图。有限状态机是在自动机理论和計算理论中研究的一类自动机。其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件(event)。有限状态机的另一个特点离散性,它在任何时刻,都处于一个特定状态。当在某一状态下有事发生时,根据当前状态和输入事件的不同,选择如何处理该事件及是否需要转换到下一个状态。
二、有限状态机在工作流引擎中的应用
1.在工作流引擎设计中,有两个重要对象:工作流过程和活动。它们都继承于WfExecu是teOject对象,需要在各自的实现类中实现start(),suspend(),terminate(),abort(),resume(),complete()。一个过程包括若干活动,过程和活动的状态是相互影响的。图1为工作流引擎结构。
2.对工作流引擎来说,状态是有限的,分别是NotStart(就绪态),Running(运行态),Suspended(挂起态),Abort(终断态),Complete(完成态),Terminate(终止态)。各个状态之间在一定条件下能进行转换(如图2)。
①过程初始化时,执行initProcess(),把数据从模型库-->运行库,完毕后设置过程实例的状态为notStart,此时该过程下的起始活动实例状态也设置为notStart。②过程实例状态变迁为Running,起始活动状态设置为Running,在找到后续实例后,设置本状态为Completed,后续活动状态为Running。③过程实例在notStart态,活动实例只能在null态和notStart态。④过程实例在Running态,所属活动实例已经完成的,为completed态;有等待系统分配资源的notStart,有已运行过,但被剥夺了资源的suspended。⑤如果有活动实例变成了terminated或abort,归属过程也会被设置相应态。⑥当结束活动实例设置为Completed,过程实例设置为Completed,表明该过程顺利完成。⑦活动处于Suspended态的,过程仍然可以为Running。
利用有限状态机模型,可以把复杂的问题简单化,还原事物的本质,极大地提高程序的可读性及未来的可维护性。
参考文献:
[1]李红臣,史美林,陈信祥.工作流系统中的业务流程描述及分析[J].计算机研究与发展,2001,38(7).
[2]范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.
[3]The Workflow reference model.Workflow Management Coalition[S].WfMC-TC-1003,1994.
基金项目:湖南省教育厅基金项目(09C645)
关键词:工作流引擎;有限状态机;对象
工作流技术正越来越广泛地应用在各种领域,而工作流引擎又是工作流模型设计中的核心。采用工作流支持其经营过程的企业,工作流引擎可以看作其经营过程的任务调度器和资源分配器,是企业的业务操作系统,因此工作流引擎的性能和可靠性是企业经营过程的运行效率和安全性保障。本文将有限状态机(Finite-State Machine,FSM)的理念应用于工作流引擎设计中,并结合Oracle,Java,Hibernate阐述了该工作流引擎的设计和实现方案。
一、相关概念
1.有限状态机,又叫有限状态自动机,是表示有限状态(state)及在这些状态间的转移(transition)和动作(action)等行为的数学模型。定义:有限状态自动机是五元组(■,S,S0,δ,F),这里的:■是输入字母表(符号的非空有限集合)。表示该系统能接收的所有事件的集合。S是状态的非空有限集合。S0是初始状态,它是S的元素。在非确定有限状态自动机中,S0是初始状态的集合。δ是状态转移函数:δ:S×■→S。F是最终状态的集合,S的(可能为空)子集。
2.有限状态自动机可以表示为一个有向图。有限状态机是在自动机理论和計算理论中研究的一类自动机。其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件(event)。有限状态机的另一个特点离散性,它在任何时刻,都处于一个特定状态。当在某一状态下有事发生时,根据当前状态和输入事件的不同,选择如何处理该事件及是否需要转换到下一个状态。
二、有限状态机在工作流引擎中的应用
1.在工作流引擎设计中,有两个重要对象:工作流过程和活动。它们都继承于WfExecu是teOject对象,需要在各自的实现类中实现start(),suspend(),terminate(),abort(),resume(),complete()。一个过程包括若干活动,过程和活动的状态是相互影响的。图1为工作流引擎结构。
2.对工作流引擎来说,状态是有限的,分别是NotStart(就绪态),Running(运行态),Suspended(挂起态),Abort(终断态),Complete(完成态),Terminate(终止态)。各个状态之间在一定条件下能进行转换(如图2)。
①过程初始化时,执行initProcess(),把数据从模型库-->运行库,完毕后设置过程实例的状态为notStart,此时该过程下的起始活动实例状态也设置为notStart。②过程实例状态变迁为Running,起始活动状态设置为Running,在找到后续实例后,设置本状态为Completed,后续活动状态为Running。③过程实例在notStart态,活动实例只能在null态和notStart态。④过程实例在Running态,所属活动实例已经完成的,为completed态;有等待系统分配资源的notStart,有已运行过,但被剥夺了资源的suspended。⑤如果有活动实例变成了terminated或abort,归属过程也会被设置相应态。⑥当结束活动实例设置为Completed,过程实例设置为Completed,表明该过程顺利完成。⑦活动处于Suspended态的,过程仍然可以为Running。
利用有限状态机模型,可以把复杂的问题简单化,还原事物的本质,极大地提高程序的可读性及未来的可维护性。
参考文献:
[1]李红臣,史美林,陈信祥.工作流系统中的业务流程描述及分析[J].计算机研究与发展,2001,38(7).
[2]范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.
[3]The Workflow reference model.Workflow Management Coalition[S].WfMC-TC-1003,1994.
基金项目:湖南省教育厅基金项目(09C645)