论文部分内容阅读
摘 要:针对现代制造企业迫切需要对动态业务流程进行管理的需求,提出基于BizTalk工作流服务(Human Workflow Service,HWS)的动态工作流模型. 该模型包括BizTalk HWS的功能结构和BizTalk流程模型. 对该模型进行数学描述,并提出1个动态工作流的调度算法. 最后给出基于Web的原型系统,说明该模型能够在一定程度上解决企业动态业务流程的管理难题.
关键词:BizTalk工作流服务;动态工作流;调度算法
中图分类号:TP301.6 文献标志码:A
Dynamic workflow model based on BizTalk human workflow service
GAO Dapeng1,2,DONG Yude3,HUANG Jianming2
(1. Dept. of Computer Sci. & Tech,Univ. of Sci. & Tech. of China,Heifei 230027,China;
2. Nanjing Army Command College,Nanjing 210045,China;
3. School of Mechanical & Automotive Eng.,Hefei Univ. of Tech.,Hefei 230009,China)
Abstract:With the requirements that the modern manufacturing enterprises need to manage dynamic operational flow urgently,a dynamic workflow model is proposed based on BizTalk HWS (Human Workflow Service). It is comprised of the functional infrastructure of BizTalk HWS and BizTalk-based workflow model. The mathematical descriptions of the model are given and a scheduling algorithm is put forward. A Web-based prototype system is implemented to prove that the model can solve the management problems of dynamic operational flow for enterprises in a certain extent.
Key words:BizTalk human workflow service;dynamic workflow;scheduling algorithm
0 引 言
在竞争日益激烈的市场经济条件下,现代制造企业规模日益扩大及业务量增长迅猛,导致业务流程的处理方式不断变化.一些传统的工作流管理系统只能够静态执行工作流模型来完成业务过程的处理,而对于动态业务流程处理缺乏有效的管理方法.因此,迫切需要具有动态建模和调度的工作流管理系统来适应企业动态变化业务流程的需求,使业务流程处理得以应用简单且性能优化.针对制造企业中业务流程(如新产品开发、原材料采购、公文处理、人事任免等流程)的特点,根据WfMC所提出的工作流定义[1],结合企业业务流程的开发规范,本文给出1个基于Microsoft BizTalk ServerTM的动态工作流(Dynamic Workflow)模型,其具体模块包括流程应用平台、BizTalk工作流服务、流程调度引擎、Action设计器和工作流模型库.然后对BizTalk支持的动态工作流模型加以数学描述,并提出流程调度算法.最后给出基于Web的应用实例.
1 BizTalk工作流服务
BizTalk工作流服务 (Human Workflow Services,HWS) 是 Microsoft BizTalk ServerTM的标准组件,其结构见图1.
工作流服务主要向客户端应用程序提供3个服务:其中工作流组合服务将为每个客户端请求提供1个唯一的ID,并使用此ID跟踪用户在业务流程中执行的操作(Action);工作流约束服务使用来自事实存储器(数据库,Active Directory和操作系统用户组)的信息来确定用户或客户端执行的操作列表;跟踪服务和跟踪流程实例的状态,按照客户端的请求重新构建流程实例.
HWS把工作流定义为具有上下文(语义)关系,发生在用户和过程之间操作(动作)的集合,称为流程模型(见图2).
如图2所示,流程模型由操作(Action)和资源(R)组成,其中操作为业务流程的核心部分及完成流程任务的功能单元,其功能是按照流程逻辑(Logic)和资源完成相应的流程任务(Task).1个流程模型W可由多个不同的Action和R构成,表示为表达式(1),其中i表示Action功能类型,j表示Action数目,k表示R的种类.
2 模型结构
工作流模型是企业业务流程的图形化描述,它定义1个能够由工作流执行服务软件系统执行的过程所需要的信息.这些信息[2]包括过程的开始和完成条件、构成过程的活动以及活动间的规则、用户所需完成的任务、可能被调用的应用、所有与工作流相关的数据定义.现代制造企业内部的业务流程是动态、随机的过程,业务流程执行的过程中存在许多不确定性因素,以往静态的工作流模型已不能胜任复杂多变的业务处理过程.为了适应制造业企业动态和随机的业务流程环境,基于BizTalk的动态工作流模型结构包含以下几个部分(见图3).
(1)流程应用平台.提供1个基于Web模式的图形化用户界面GUI;由于流程的设计与管理较为复杂,基于Web的图形化交互界面有利于用户构建和管理流程应用.
(2)BizTalk ServerTM引擎.提供工作流服务和消息管理,激活生成流程实例、Action实例、生成和发送流程任务以及传递流程实例状态消息(包括资源分配、流程实例运行状态、性能需求和运行时间等);对各种实例进行有效管理,中断工作流、响应任务以及代表特定用户检索跟踪信息,停止、中止或回退Action实例.
(3)流程调度引擎.提供流程调度服务,依据调度规则对流程实例状态消息进行评估以及与工作流模型进行匹配;动态生成Action实例,添加到流程实例,使流程持续运行.
(4)Action设计器.用于设计不同功能的Action,并将其注册到BizTalk ServerTM.
(5)工作流模型库.用于储存用户在流程应用平台上设计的业务流程模型.
2.1 工作流模型的数学描述
提出的动态工作流模型(记作Biz-WF)是个有向图,是对第1节中描述的BizTalk流程模型的改进和扩充.
定义1 Biz-WF是个有向图,其中每个节点表示工作流中具体的Action;节点之间的连线表示活动之间的先后关系,并通过流程状态消息相连接.
定义2 Action是流程中实现一定逻辑功能和任务的最小单元,它的结构可以表示为1个八元组:Action = (ID,G,R,Ma,ST,T,I,Sa),其中:
ID是Action所属流程的唯一标志;
G是Action的唯一标志,调度引擎通过该标志调用Action;
R是Action的相关资源ri(i=1,2,…,n)的集合;
Ma是指Action所接收和传递的流程实例状态消息,是1个二元组Ma = (min,mout);
ST为Acton约束,定义Action的安全策略,对Action的资源权限进行限定;
T是Action所属任务的唯一标志ti(i=1,2,…,n)的集合;
I表示Action的开始和结束时间,是1个二元组,I = (istart,iend);
Sa表示Action的当前状态.S有以下3种状态:激活、中断、终止.
定义3 流程是有时间先后的Action序列,其结构可表示成八元组flow =(ID,H,Gs,Ge,Il,Ih,Mf,Sf),其中:
ID是流程的唯一标志;
H是流程发起者或拥有者;
Gs是流程起始Action标志;
Ge是流程结束Action标志;
Il是流程允许的最长运行时间;
Ih是流程运行所经历的时间;
Mf是流程状态消息mi(i=1,2,…,n)的集合;
Sf是流程当前状态,有以下3种状态:激活、中断、终止.
定义4 任务是Action完成一定流程功能的组成单元.它是1个七元组T= (ID,G,T,O,Mt,St,Is).其中:
ID是唯一标志任务的所属流程ID;
G是唯一标志任务所属Action的ID;
T是唯一标志任务的ID;
O是任务目标oi(i=1,2,…,n)的集合;
Mt是与任务关联的任务消息mi(i=1,2,…,n)的集合;
St是任务状态,有以下10种状态:Accepted(接受),Cancelled(删除),Completed(完成),Declined(拒绝),Deferred(延期),InProgress(进行中),Interrupted(中断),NotStarted(未开始),Tentative(试验),Waiting(等待);
Is是任务发起时间戳.
2.2 流程调度
流程调度引擎的主要功能是初始化在BizTalk服务器注册的Action,生成Action实例并进行调度.通常根据流程模型,向流程实例中添加后续Action实例,Action实例依据流程实例传递的状态消息生成相应的流程任务(见图4).调度策略有两种:静态调度和动态调度.静态调度是指当业务过程没有发生变化,流程的运行符合预定义流程模型,那么调度引擎依据调度规则,直接初始化模型中的下一个Action,向流程实例中添加该Action实例并将状态消息传递给实例;动态调度是指当流程实例运行后,业务流程根据需求发生变化,预定义流程模型依据调度规则流程与实例状态消息不能匹配.静态调度不能使当前流程实例继续执行完成后续流程任务,会导致流程实例失败.此时,调度引擎应进行动态调度,依据调度规则对状态消息进行评估,从注册的Action中找到匹配流程实例状态消息的最能适应业务过程变化的Action.
Action实例动态生成和调度算法的基本思想是依据调度规则对当前流程实例状态消息进行评估与匹配,动态生成Action实例,添加到流程实例.调度算法有以下几个具体步骤.
Step 1 从BizTalk服务器获取当前流程实例状态消息.
Step 2 对流程实例状态消息和预定义流程模型进行匹配.
Step 3 静态调度,依据Step 2的匹配结果:
IF状态消息与流程预定义工作流模型匹配,
直接找出符合预定义工作流模型的Action;
END IF;
GOTO Step 5.
Step 4 动态调度,依据Step 2匹配结果:
IF状态消息与流程预定义工作流模型不匹配,业务过程发生变化,假设总计有N个注册Action,对于当前要调度的任务
FOR j = 1 TO N.
从j中选出1个与流程实例状态消息相匹配的Action,规则如下:
(1)满足流程实例状态消息中的资源分配要求;
(2)满足流程实例状态中的任务要求;
(3)如果前面都满足,则选出性能要求最接近的Action;
END FOR.
Step 5 实例化Action,添加到流程实例,同时把状态消息传递给该实例.
3 应用实例
采用上述动态工作流理论构建在BizTalk ServerTM 2004工作流服务上基于Web的工作流平台,提供流程建模、流程监控、流程调度、任务处理和Action设计等功能.图5所示为流程建模后的流程配置Web界面,通过流程配置生成流程初始状态消息,供用户初始化流程使用.
4 结束语
近年来,基于工作流技术的信息管理系统在企业得到广泛应用,企业的业务流程管理能力有了显著提高.但是,现有的流程管理系统不能较好地适用于动态的、不断变化的业务流程,限制企业整体效率的提高.本文研究的基于BizTalk工作流服务的动态工作流及应用实例,在一定程度上能解决企业动态流程的管理难题,提高企业业务流程处理的效率和能力,对企业在未来更为激烈的市场竞争中立于不败之地具有重要意义.
参考文献:
[1] HOLLINGSWORTH D. The workflow reference model[S]. WfMC-TC-00-1003. Hampshire: Workflow Management Coalition,1995.
[2] 范玉顺. 工作流管理技术基础[M]. 北京: 清华大学出版社,2001.
(编辑 廖粤新)
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
关键词:BizTalk工作流服务;动态工作流;调度算法
中图分类号:TP301.6 文献标志码:A
Dynamic workflow model based on BizTalk human workflow service
GAO Dapeng1,2,DONG Yude3,HUANG Jianming2
(1. Dept. of Computer Sci. & Tech,Univ. of Sci. & Tech. of China,Heifei 230027,China;
2. Nanjing Army Command College,Nanjing 210045,China;
3. School of Mechanical & Automotive Eng.,Hefei Univ. of Tech.,Hefei 230009,China)
Abstract:With the requirements that the modern manufacturing enterprises need to manage dynamic operational flow urgently,a dynamic workflow model is proposed based on BizTalk HWS (Human Workflow Service). It is comprised of the functional infrastructure of BizTalk HWS and BizTalk-based workflow model. The mathematical descriptions of the model are given and a scheduling algorithm is put forward. A Web-based prototype system is implemented to prove that the model can solve the management problems of dynamic operational flow for enterprises in a certain extent.
Key words:BizTalk human workflow service;dynamic workflow;scheduling algorithm
0 引 言
在竞争日益激烈的市场经济条件下,现代制造企业规模日益扩大及业务量增长迅猛,导致业务流程的处理方式不断变化.一些传统的工作流管理系统只能够静态执行工作流模型来完成业务过程的处理,而对于动态业务流程处理缺乏有效的管理方法.因此,迫切需要具有动态建模和调度的工作流管理系统来适应企业动态变化业务流程的需求,使业务流程处理得以应用简单且性能优化.针对制造企业中业务流程(如新产品开发、原材料采购、公文处理、人事任免等流程)的特点,根据WfMC所提出的工作流定义[1],结合企业业务流程的开发规范,本文给出1个基于Microsoft BizTalk ServerTM的动态工作流(Dynamic Workflow)模型,其具体模块包括流程应用平台、BizTalk工作流服务、流程调度引擎、Action设计器和工作流模型库.然后对BizTalk支持的动态工作流模型加以数学描述,并提出流程调度算法.最后给出基于Web的应用实例.
1 BizTalk工作流服务
BizTalk工作流服务 (Human Workflow Services,HWS) 是 Microsoft BizTalk ServerTM的标准组件,其结构见图1.
工作流服务主要向客户端应用程序提供3个服务:其中工作流组合服务将为每个客户端请求提供1个唯一的ID,并使用此ID跟踪用户在业务流程中执行的操作(Action);工作流约束服务使用来自事实存储器(数据库,Active Directory和操作系统用户组)的信息来确定用户或客户端执行的操作列表;跟踪服务和跟踪流程实例的状态,按照客户端的请求重新构建流程实例.
HWS把工作流定义为具有上下文(语义)关系,发生在用户和过程之间操作(动作)的集合,称为流程模型(见图2).
如图2所示,流程模型由操作(Action)和资源(R)组成,其中操作为业务流程的核心部分及完成流程任务的功能单元,其功能是按照流程逻辑(Logic)和资源完成相应的流程任务(Task).1个流程模型W可由多个不同的Action和R构成,表示为表达式(1),其中i表示Action功能类型,j表示Action数目,k表示R的种类.
2 模型结构
工作流模型是企业业务流程的图形化描述,它定义1个能够由工作流执行服务软件系统执行的过程所需要的信息.这些信息[2]包括过程的开始和完成条件、构成过程的活动以及活动间的规则、用户所需完成的任务、可能被调用的应用、所有与工作流相关的数据定义.现代制造企业内部的业务流程是动态、随机的过程,业务流程执行的过程中存在许多不确定性因素,以往静态的工作流模型已不能胜任复杂多变的业务处理过程.为了适应制造业企业动态和随机的业务流程环境,基于BizTalk的动态工作流模型结构包含以下几个部分(见图3).
(1)流程应用平台.提供1个基于Web模式的图形化用户界面GUI;由于流程的设计与管理较为复杂,基于Web的图形化交互界面有利于用户构建和管理流程应用.
(2)BizTalk ServerTM引擎.提供工作流服务和消息管理,激活生成流程实例、Action实例、生成和发送流程任务以及传递流程实例状态消息(包括资源分配、流程实例运行状态、性能需求和运行时间等);对各种实例进行有效管理,中断工作流、响应任务以及代表特定用户检索跟踪信息,停止、中止或回退Action实例.
(3)流程调度引擎.提供流程调度服务,依据调度规则对流程实例状态消息进行评估以及与工作流模型进行匹配;动态生成Action实例,添加到流程实例,使流程持续运行.
(4)Action设计器.用于设计不同功能的Action,并将其注册到BizTalk ServerTM.
(5)工作流模型库.用于储存用户在流程应用平台上设计的业务流程模型.
2.1 工作流模型的数学描述
提出的动态工作流模型(记作Biz-WF)是个有向图,是对第1节中描述的BizTalk流程模型的改进和扩充.
定义1 Biz-WF是个有向图,其中每个节点表示工作流中具体的Action;节点之间的连线表示活动之间的先后关系,并通过流程状态消息相连接.
定义2 Action是流程中实现一定逻辑功能和任务的最小单元,它的结构可以表示为1个八元组:Action = (ID,G,R,Ma,ST,T,I,Sa),其中:
ID是Action所属流程的唯一标志;
G是Action的唯一标志,调度引擎通过该标志调用Action;
R是Action的相关资源ri(i=1,2,…,n)的集合;
Ma是指Action所接收和传递的流程实例状态消息,是1个二元组Ma = (min,mout);
ST为Acton约束,定义Action的安全策略,对Action的资源权限进行限定;
T是Action所属任务的唯一标志ti(i=1,2,…,n)的集合;
I表示Action的开始和结束时间,是1个二元组,I = (istart,iend);
Sa表示Action的当前状态.S有以下3种状态:激活、中断、终止.
定义3 流程是有时间先后的Action序列,其结构可表示成八元组flow =(ID,H,Gs,Ge,Il,Ih,Mf,Sf),其中:
ID是流程的唯一标志;
H是流程发起者或拥有者;
Gs是流程起始Action标志;
Ge是流程结束Action标志;
Il是流程允许的最长运行时间;
Ih是流程运行所经历的时间;
Mf是流程状态消息mi(i=1,2,…,n)的集合;
Sf是流程当前状态,有以下3种状态:激活、中断、终止.
定义4 任务是Action完成一定流程功能的组成单元.它是1个七元组T= (ID,G,T,O,Mt,St,Is).其中:
ID是唯一标志任务的所属流程ID;
G是唯一标志任务所属Action的ID;
T是唯一标志任务的ID;
O是任务目标oi(i=1,2,…,n)的集合;
Mt是与任务关联的任务消息mi(i=1,2,…,n)的集合;
St是任务状态,有以下10种状态:Accepted(接受),Cancelled(删除),Completed(完成),Declined(拒绝),Deferred(延期),InProgress(进行中),Interrupted(中断),NotStarted(未开始),Tentative(试验),Waiting(等待);
Is是任务发起时间戳.
2.2 流程调度
流程调度引擎的主要功能是初始化在BizTalk服务器注册的Action,生成Action实例并进行调度.通常根据流程模型,向流程实例中添加后续Action实例,Action实例依据流程实例传递的状态消息生成相应的流程任务(见图4).调度策略有两种:静态调度和动态调度.静态调度是指当业务过程没有发生变化,流程的运行符合预定义流程模型,那么调度引擎依据调度规则,直接初始化模型中的下一个Action,向流程实例中添加该Action实例并将状态消息传递给实例;动态调度是指当流程实例运行后,业务流程根据需求发生变化,预定义流程模型依据调度规则流程与实例状态消息不能匹配.静态调度不能使当前流程实例继续执行完成后续流程任务,会导致流程实例失败.此时,调度引擎应进行动态调度,依据调度规则对状态消息进行评估,从注册的Action中找到匹配流程实例状态消息的最能适应业务过程变化的Action.
Action实例动态生成和调度算法的基本思想是依据调度规则对当前流程实例状态消息进行评估与匹配,动态生成Action实例,添加到流程实例.调度算法有以下几个具体步骤.
Step 1 从BizTalk服务器获取当前流程实例状态消息.
Step 2 对流程实例状态消息和预定义流程模型进行匹配.
Step 3 静态调度,依据Step 2的匹配结果:
IF状态消息与流程预定义工作流模型匹配,
直接找出符合预定义工作流模型的Action;
END IF;
GOTO Step 5.
Step 4 动态调度,依据Step 2匹配结果:
IF状态消息与流程预定义工作流模型不匹配,业务过程发生变化,假设总计有N个注册Action,对于当前要调度的任务
FOR j = 1 TO N.
从j中选出1个与流程实例状态消息相匹配的Action,规则如下:
(1)满足流程实例状态消息中的资源分配要求;
(2)满足流程实例状态中的任务要求;
(3)如果前面都满足,则选出性能要求最接近的Action;
END FOR.
Step 5 实例化Action,添加到流程实例,同时把状态消息传递给该实例.
3 应用实例
采用上述动态工作流理论构建在BizTalk ServerTM 2004工作流服务上基于Web的工作流平台,提供流程建模、流程监控、流程调度、任务处理和Action设计等功能.图5所示为流程建模后的流程配置Web界面,通过流程配置生成流程初始状态消息,供用户初始化流程使用.
4 结束语
近年来,基于工作流技术的信息管理系统在企业得到广泛应用,企业的业务流程管理能力有了显著提高.但是,现有的流程管理系统不能较好地适用于动态的、不断变化的业务流程,限制企业整体效率的提高.本文研究的基于BizTalk工作流服务的动态工作流及应用实例,在一定程度上能解决企业动态流程的管理难题,提高企业业务流程处理的效率和能力,对企业在未来更为激烈的市场竞争中立于不败之地具有重要意义.
参考文献:
[1] HOLLINGSWORTH D. The workflow reference model[S]. WfMC-TC-00-1003. Hampshire: Workflow Management Coalition,1995.
[2] 范玉顺. 工作流管理技术基础[M]. 北京: 清华大学出版社,2001.
(编辑 廖粤新)
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”