一种支持组合业务的工作流引擎的制作方法

文档序号:6444745阅读:168来源:国知局
专利名称:一种支持组合业务的工作流引擎的制作方法
一种支持组合业务的工作流引擎
技术领域
本发明涉及计算机应用领域的工作流技术,尤其涉及一种支持组合业务的工作流引擎。
背景技术
随着3G牌照的发放,电信各企业纷纷推出全业务服务,导致了电信企业间竞争的加剧。为了挽留和发展更多的客户,电信企业推出的各种业务也越来越复杂,尤其是套餐的推出和多个业务的捆绑销售,导致了流程中和流程间存在大量的同步控制问题,这也对业务支撑系统中的工作流提出了更高要求。工作流引擎是一个软件系统,是工作流系统中的重要组成部分,主要完成流程实例的路由控制,即流程中涉及到的任务的流转。当前主要采用的机制包括事件驱动、状态驱动,其中,属于状态驱动的Petri网是一种适合于描述异步并发现象的计算机系统模型,因此很多电信企业和工作流厂商采用Petri网做为流程建模语言,以便与解决电信业务中的流程同步问题。但是传统Petri网有一些明显的缺点,如模型变得庞大而难以理解、只能表示单一的流程实例等。为此,专家们提出了染色Petri网,这是对Petri网的一种扩展,通过增加颜色集合以及对库所中的托肯token增加颜色的描述,达到简化模型、以及同时描述多个流程实例的目的。染色Petri网虽然能解决多个流程实例的流程同步问题,但是在基于染色Petri网理论进行工作流引擎的开发过程中,不可避免的出现了工作流引擎与业务环境的紧耦合关系,造成了工作流引擎的通用性降低。原因在于Petri网主要是一种控制模型,关注的是控制流,并不能表达流程控制过程中需要的数据,而由于电信系统中流程的复杂性,流程同步的控制往往与实际系统中的各种业务数据有很紧密的关系,例如,在业务种类不同和客户要求不同的情况下,需要同步的流程个数不同。为此,很多工作流引擎为了适应复杂的控制要求,对Petri网系统进行了改造,在模型中增加了具体业务数据的表示,例如一个订单包含的产品类型、产品个数、产品相关的资源条件等。这样做的好处在于不但能充分利用Petri网的严格形式定义和直观图形表示的优势,还能够实现复杂流程的同步控制。但这种改进方式同时也导致了业务过程与业务逻辑的耦合度增加,导致控制流与数据流的耦合度增强。当工作流产品面对不同使用客户时,都要进行大规模的改造,这在一定程度上也降低了工作流引擎的通用性和灵活性。现有技术中提供了一解决电信组合业务中的多种流程同步问题,见公开号为CN101630388,
公开日为2010.01.20的中国专利“基于多级染色托肯的复杂业务流程同步控制的方法”,该发明的特征在于包括同步分解和同步合并两个阶段,在利用染色Petri网做为建模语言的过程中,不需要增加业务数据的描述,仅需要对染色托肯增加两个属性的描述托肯级别、需要同步的托肯个数,通过不同级别上的颜色和同一级别上需要同步的托肯个数,来解决电信组合业务中的多种流程同步问题。其主要是基于多级染色托肯和对染色托肯增加两个属性的描述来实现的。
发明内容本发明要解决的技术问题,在于提供一种支持组合业务的工作流引擎,该引擎基于Petri网理论,并在此基础上进行了改进,其不但可以实现单个流程的流程实例控制,对电信组合业务中的多种流程同步问题也进行很好的支持。本发明是这样实现的一种支持组合业务的工作流引擎,包括接口层、控制层、实体层、存储层以及用于存储业务的流程实例的数据库;所述工作流引擎部署后,通过所述接口层接收电信业务系统或其他接口系统发送的业务信息,所述其他接口系统包括资源管理系统、服务开通管理系统、计费帐务系统,所述业务信息包括业务的流程实例、流程实例的当前环节完成情况;所述控制层接收到所述接口层传递的业务信息后,根据支持组合业务的流程路由控制方法,来控制业务的流程实例的生成、调度、分解、合并、结束;并确定业务的流程实例是自动流转到下一个环节,还是需要原地等待;同时所述控制层调用所述实体层提供的方法记录流程实例的当前环节的完成情况以及所述流程路由控制方法确定的流转结果,流程结果通过所述接口层返回;所述实体层提供的方法为对工作流引擎内部所描述的管理对象的新增、修改、删除和查询的操作,所述管理对象包括业务的流程实例对象、流程路由对象、流程实例的当前环节对象、流程任务对象;其中,所述流程任务对象描述每个流程实例的环节执行的具体任务;所述存储层通过所述数据库持久性的保存所述业务的流程实例信息。进一步地,所述接口层提供了三种方式的接口,包括API接口、Corta接口、WebService接口,便于工作流引擎与电信业务系统的衔接。进一步地,所述支持组合业务的流程路由控制方法具体包括如下步骤步骤1.首先所述控制层接收到所述接口层传递的业务信息,即业务的流程实例、该流程实例的当前环节完成情况后,判断所述业务的流程实例对应的业务类型如果是组合业务类型,业务的流程实例采用SFI表示,该流程实例的当前环节采用FIS表示,调用所述实体层的方法修改FIS的状态为“完成”,并判断FIS是否属于流程的结束环节,如果是,返回接口层,并结束操作,否,执行步骤2;如果所述业务的流程实例对应的业务类型是独立的子业务类型,则业务的流程实例采用DSFI表示,该流程实例的当前环节采用DFIS表示,执行步骤5;步骤2.根据预定义的路由规则,获取所述业务的流程实例SFI的下一个环节NEXT_FIS,根据组合业务规则,判断NEXT_FIS是否属于业务分解环节,如果不是,转而执行步骤3 ;是,则根据组合业务规则将SFI分解生成η个独立子业务的流程实例,分解生成的η个独立子业务的流程实例采用DSFIi表示,其i是1 < i < η的整数,每个DSFIi对应一个独立的电信子业务;生成的独立子业务的流程实例DSFIi的起始环节根据组合业务规则生成;分解完成后,组合业务流程暂停,执行多个独立子业务的DSFIi的流程控制,把组合业务规则中定义的DSFIi的起始环节设定为DSFIi的当前环节FISl ;对每一个流程实例DSFIi (1彡i彡η),分别执行步骤4 ;步骤3.判断所述NEXT_FIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是SFI和NEXT_FIS ;否则,调用实体层的方法修改下一环节NEXT_FIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤4.判断FISl环节需要执行的任务的类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是DSFIi和FISl ;否则,调用实体层的方法修改FISl的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤5.根据组合业务规则判断DFIS是否属于独立子业务结束环节,如果不是,直接执行步骤6 ;如果是,执行步骤7 ;步骤6.调用实体层的方法修改DFIS的状态为“完成”,根据预定义的路由规则,获取DSFI下一个需要执行的环节NEXT_DFIS,判断NEXT_DFIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是DSFI和NEXT_DFIS;否则,调用实体层的方法修改NEXT_DFIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤7.根据DSFI查找所有关联的被分解生成的独立子业务的流程实例DSFIid ^ i ^n)是否都已经到达当前环节DFIS,如果不是,调用实体层的方法修改当前环节DFIS的状态为“等待”,把执行结果通知给所述接口层,并结束操作;如果是,进行DSFIl到DSFIn的所有流程实例的合并,此时独立子业务流程实例的路由选择已结束,所述合并方法为调用实体层的方法修改DSFIl到DSFIn的所有独立子业务流程实例的当前环节DFIS的状态为“结束”,然后根据组合业务规则找到对应的组合业务合并环节,该合并环节即为组合业务流程实例的当前环节FIS,DSFI对应的组合业务流程实例为SFI,判断FIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是SFI和FIS ;否则,调用实体层的方法修改FIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作。进一步地,所述组合业务规则采用GSR表示=GSR = {GS,SG, A,GSS, SS, SE, GSE},其中GS表示组合业务,SG是一个集合,其表示GS下属的独立子业务,A表示组合业务当前执行的操作,GSS表示组合业务的分解环节,SS表示独立子业务的起始环节,SE表示独立子业务的结束环节,GSE表示组合业务的合并环节。进一步地,预定义的路由规则采用FDR表示FDR= {S,T,F,C,M},其中,T表示业务流程实例中每个步骤需要执行的任务,S表示每个步骤执行前或者执行后的流程实例的状态,F表示S与T之间的关联关系,C表示流程实例的属性,M表示流程实例的初始集合。本发明具有如下优点本发明包括接口层、控制层、实体层、存储层;其提供工作流引擎接口的接口层,用于接收业务信息和返回消息;控制层,控制流程实例的生成、调度、分解、合并、结束等;实体层,提供对流程实例信息的访问,包括提供新增、修改和查询方法;存储层,通过数据库的持久性保存流程实例信息。本发明的控制层的流程控制可针对组合业务进行分解操作,针对已分解的子业务进行业务合并操作。该引擎不但可以实现单个流
6程的流程实例控制,对电信组合业务中的多种流程同步问题也进行很好的支持。且本发明不增加业务数据的描述,仅仅通过流程实例的维度属性就可以对需要同步的流程实例进行控制,最大限度的把控制流与数据流进行分离,使得工作流引擎本身的通用性增强。

图1为本发明工作流引擎的框架图。图2为本发明的支持组合业务的流程路由控制方法的处理流程图。图3为本发明第一实施例的组合业务的分解与合并过程。
具体实施方式请参阅图1所示,本发明的一种支持组合业务的工作流引擎,包括接口层、控制层、实体层、存储层以及用于存储业务的流程实例的数据库;所述工作流引擎部署后,通过所述接口层接收电信业务系统(电信业务系统一般为客户关系管理系统)或其他接口系统发送的业务信息,所述其他接口系统包括资源管理系统、服务开通管理系统、计费帐务系统;所述接口层提供了三种方式的接口,包括API接口、Corba接口、Webkrvice接口,便于工作流引擎与电信业务系统的衔接;所述业务信息包括业务的流程实例、流程实例的当前环节完成情况;所述控制层接收到所述接口层传递的业务信息后,根据支持组合业务的流程路由控制方法,来控制业务的流程实例的生成、调度、分解、合并、结束;并确定业务的流程实例是自动流转到下一个环节,还是需要原地等待;同时所述控制层调用所述实体层提供的方法记录流程实例的当前环节的完成情况以及所述流程路由控制方法确定的流转结果,流程结果通过所述接口层返回;所述实体层提供的方法为对工作流引擎内部所描述的管理对象的新增、修改、删除和查询的操作,所述管理对象包括业务的流程实例对象、流程路由对象、流程实例的当前环节对象、流程任务对象;其中,所述流程任务对象描述每个流程实例的环节执行的具体任务;所述存储层通过所述数据库持久性的保存所述业务的流程实例信息。如图2所示,其中所述支持组合业务的流程路由控制方法具体包括如下步骤步骤1.首先所述控制层接收到所述接口层传递的业务信息,即业务的流程实例、该流程实例的当前环节完成情况后,判断所述业务的流程实例对应的业务类型如果是组合业务类型,业务的流程实例采用SFI表示,该流程实例的当前环节采用FIS表示,调用所述实体层的方法修改FIS的状态为“完成”,并判断FIS是否属于流程的结束环节,如果是,返回接口层,并结束操作,否,执行步骤2;如果所述业务的流程实例对应的业务类型是独立的子业务类型,则业务的流程实例采用DSFI表示,该流程实例的当前环节采用DFIS表示,执行步骤5;步骤2.根据预定义的路由规则,获取所述业务的流程实例SFI的下一个环节NEXT_FIS,根据组合业务规则,判断NEXT_FIS是否属于业务分解环节,如果不是,转而执行步骤3 ;是,则根据组合业务规则将SFI分解生成η个独立子业务的流程实例,分解生成的η个独立子业务的流程实例采用DSFIi表示,其i是1 < i < η的整数,每个DSFIi对应一个独立的电信子业务;生成的独立子业务的流程实例DSFIi的起始环节根据组合业务规则生成;分解完成后,组合业务流程暂停,执行多个独立子业务的DSFIi的流程控制,把组合业务规则中定义的DSFIi的起始环节设定为DSFIi的当前环节FISl ;对每一个流程实例DSFIi (1≤i≤η),分别执行步骤4 ;步骤3.判断所述NEXT_FIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是SFI和NEXT_FIS ;否则,调用实体层的方法修改下一环节NEXT_FIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤4.判断FISl环节需要执行的任务的类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是DSFIi和FISl ;否则,调用实体层的方法修改FISl的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤5.根据组合业务规则判断DFIS是否属于独立子业务结束环节,如果不是,直接执行步骤6 ;如果是,执行步骤7 ;步骤6.调用实体层的方法修改DFIS的状态为“完成”,根据预定义的路由规则,获取DSFI下一个需要执行的环节NEXT_DFIS,判断NEXT_DFIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是DSFI和NEXT_DFIS;否则,调用实体层的方法修改NEXT_DFIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤7.根据DSFI查找所有关联的被分解生成的独立子业务的流程实例DSFIid ≤ i ≤n)是否都已经到达当前环节DFIS (即当前环节DFIS为独立子业务结束环节),如果不是,调用实体层的方法修改当前环节DFIS的状态为“等待”,把执行结果通知给所述接口层,并结束操作;如果是,进行DSFIl到DSFh的所有流程实例的合并,此时独立子业务流程实例的路由选择已结束,所述合并方法为调用实体层的方法修改DSFIl到DSFIn的所有独立子业务流程实例的当前环节DFIS的状态为“结束”,然后根据组合业务规则找到对应的组合业务合并环节,该合并环节即为组合业务流程实例的当前环节FIS,DSFI对应的组合业务流程实例为SFI,判断FIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是SFI和FIS ;否则,调用实体层的方法修改FIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作。这里要说明的是所述组合业务规则采用GSR表示GSR = {GS,SG,A,GSS,SS,SE,GSE},其中GS表示组合业务,SG是一个集合,其表示GS下属的独立子业务,A表示组合业务当前执行的操作,GSS表示组合业务的分解环节,SS表示独立子业务的起始环节,SE表示独立子业务的结束环节,GSE表示组合业务的合并环节。预定义的路由规则采用FDR表示FDR = {S,Τ, F,C,Μ},其中,T表示业务流程实例中每个步骤需要执行的任务,S表示每个步骤执行前或者执行后的流程实例的状态,F表示S与T之间的关联关系,C表示流程实例的属性,M表示流程实例的初始集合。一个完整的路由规则包括多个步骤,流程实例当前被执行的步骤称之为当前环节。如果当前环节需要执行的任务不需要人工参与,则由流程引擎自动触发,即流程路由控制方法由流程引擎来调用;如果该步骤需要人工参与,则需要等待接口层接收信息,然后触发流程路由控制方法的调用。本发明中,不需要人工参与的任务包括自动接口处理、定时等待、组合业务的分解、子业务的合并。所述控制层接收到所述接口层传递的业务信息后,根据支持组合业务的流程路由控制方法来进行流程的流转,该方法基本思想是针对组合业务和独立子业务分别进行处理如果接收的业务的流程实例是组合业务,根据组合业务规则,判断是否需要分解,若需要分解,则在流程流转到分解环节时,进行业务的拆分;业务拆分完成后,组合业务流程实例暂停,被拆分的子业务流程实例开始流转。如果不需要分解,则按照预定义的路由规则依次执行流程中的每个环节。如果接收的业务的流程实例是独立子业务,根据组合业务规则,判断是否需要合并,如果不需要,则按照预定义的路由规则依次执行流程中的每个环节;若需要合并,则在所有被拆分的独立子业务流程流转到合并环节时,进行业务合并;业务合并完成后,独立子业务流程实例结束,组合业务流程实例继续开始流转。为使本发明的技术方案更加清楚明白,请参照图3并举实施例,对组合业务分解、组合业务合并做进一步详细说明。实施例一组合业务规则GSR = {G01,S01,ADD,T2,T3,T5,T6},其中GOl表示一种组合业务,SOl表示GOl分解后的独立子业务,ADD表示组合业务当前执行的操作新装,T2表示组合业务流程实例的分解环节,T3表示独立子业务流程实例的起始环节,T5表示独立子业务流程实例的结束环节,T6表示组合业务流程实例的合并环节。如图3所示,为预定义的路由示意图,方框表示流程中需要执行的不同任务,圆圈表示任务执行前或执行后的状态,圆圈中的点表示业务的流程实例;电信组合业务GOl由多个子业务SOl组成,TO、Tl、T4设为需要人工参与的任务环节,T2、T3、T5、T6设为自动执
行的任务环节;SO、Si、S2........表示流程实例执行完不同任务后的状态;GOl类型的流
程实例用SFI表示;黑点表示组合业务流程实例,白点表示被分解的子业务流程实例。从图中可以看出,前一个环节结束后的状态,也就是下一个环节执行前的状态。执行过程如下1)当接口层接收到SFI和TO两个参数后,意味着组合业务流程实例SFI执行完了当前环节T0,流程路由控制方法首先把TO的状态Sl置为“完成”,接着判断Tl是否属于分解环节,否,再判断Tl任务类型;由于Tl需要人工参与,把Sl置为“就绪”,并返回接口层。2)当接口层接收到SFI和Tl两个参数后,意味着组合业务流程实例SFI执行完了当前环节Tl,流程路由控制方法首先把Tl的状态S2置为“完成”,接着判断T2是否属于分解环节。由于组合业务规则中描述了 T2,因此可根据组合业务规则和实际业务信息将SFI分解生成3个独立子业务的流程实例,分别采用DSFI1、DSFI2、DSFI3表示;分解完成后,组合业务流程暂停,SFI的状态置为S3 = “暂停”;根据组合业务规则,3个独立子业务的起始环节为T3 ;首先针对DSFIl判断T3的类型,属于自动环节,因此可自动执行T3对应的任务,执行完成后,对于DSFIl可以递归调用流程控制方法,参数为DSFIl和T3 ;T3下一个环节是T4,由于T4属于人工环节,因此DSFIl不可能自动执行T4,只能停下来,返回接口层,并等待接口层的触发。DSFIl的流程执行停止后,再依次对DSFI2、DSFI3做类似处理。3)当接口层接收到DSFIl和T4两个参数后,意味着子业务流程实例DSFIl执行完了当前环节T4,T4完成后的状态S14 = “完成”;根据路由,找出T4下一个环节T5 ;T5的类型,属于自动环节,因此可自动执行T5对应的任务,执行完成后,对于DSFIl可以递归调用流程控制方法,参数为DSFIl和T5。4)在递归调用后,根据组合业务规则,T5属于结束环节,此时,判断DSFI2、DSFI3是否都已执行完成T5 ;如果没有,把T5状态S15置为“等待”,返回接口层,等待其他流程实例的到达;如果DSFI2、DSFI3都已经到达,则由DSFIl来触发流程实例的合并。合并方法如下修改DSFIl到DSFI3的所有独立子业务流程实例的T5状态为“结束”,子业务流程结束。然后根据组合业务规则找到对应的组合业务合并环节T6,该合并环节即为组合业务流程实例SFI的当前环节。判断T6类型为自动环节,则执行T6对应的任务,执行完成后,对于SFI可以递归调用流程控制方法,参数为SFI和T6。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1.一种支持组合业务的工作流引擎,其特征在于,包括接口层、控制层、实体层、存储层以及用于存储业务的流程实例的数据库;所述工作流引擎部署后,通过所述接口层接收电信业务系统或其他接口系统发送的业务信息,所述其他接口系统包括资源管理系统、服务开通管理系统、计费帐务系统,所述业务信息包括业务的流程实例、流程实例的当前环节完成情况;所述控制层接收到所述接口层传递的业务信息后,根据支持组合业务的流程路由控制方法,来控制业务的流程实例的生成、调度、分解、合并、结束;并确定业务的流程实例是自动流转到下一个环节,还是需要原地等待;同时所述控制层调用所述实体层提供的方法记录流程实例的当前环节的完成情况以及所述流程路由控制方法确定的流转结果,流程结果通过所述接口层返回;所述实体层提供的方法为对工作流引擎内部所描述的管理对象的新增、修改、删除和查询的操作,所述管理对象包括业务的流程实例对象、流程路由对象、流程实例的当前环节对象、流程任务对象;其中,所述流程任务对象描述每个流程实例的环节执行的具体任务;所述存储层通过所述数据库持久性的保存所述业务的流程实例信息ο
2.根据权利要求1所述的一种支持组合业务的工作流引擎,其特征在于所述接口层提供了三种方式的接口,包括API接口、C0rta接口 JebService接口,便于工作流引擎与电信业务系统的衔接。
3.根据权利要求1所述的一种支持组合业务的工作流引擎,其特征在于所述支持组合业务的流程路由控制方法具体包括如下步骤步骤1.首先所述控制层接收到所述接口层传递的业务信息,即业务的流程实例、该流程实例的当前环节完成情况后,判断所述业务的流程实例对应的业务类型如果是组合业务类型,业务的流程实例采用SFI表示,该流程实例的当前环节采用FIS表示,调用所述实体层的方法修改FIS的状态为“完成”,并判断FIS是否属于流程的结束环节,如果是,返回接口层,并结束操作,否,执行步骤2;如果所述业务的流程实例对应的业务类型是独立的子业务类型,则业务的流程实例采用DSFI表示,该流程实例的当前环节采用DFIS表示,执行步骤5 ;步骤2.根据预定义的路由规则,获取所述业务的流程实例SFI的下一个环节NEXT_FIS,根据组合业务规则,判断NEXT_FIS是否属于业务分解环节,如果不是,转而执行步骤3 ;是,则根据组合业务规则将SFI分解生成η个独立子业务的流程实例,分解生成的η个独立子业务的流程实例采用DSFIi表示,其i是1 < i < η的整数,每个DSFIi对应一个独立的电信子业务;生成的独立子业务的流程实例DSFIi的起始环节根据组合业务规则生成;分解完成后,组合业务流程暂停,执行多个独立子业务的DSFIi的流程控制,把组合业务规则中定义的DSFIi的起始环节设定为DSFIi的当前环节FISl ;对每一个流程实例DSFIi (1彡i彡η),分别执行步骤4 ;步骤3.判断所述NEXT_FIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是SFI和NEXT_FIS;否则,调用实体层的方法修改下一环节NEXT_FIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤4.判断FISl环节需要执行的任务的类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是DSFIi和FISl ;否则,调用实体层的方法修改FISl的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤5.根据组合业务规则判断DFIS是否属于独立子业务结束环节,如果不是,直接执行步骤6;如果是,执行步骤7;步骤6.调用实体层的方法修改DFIS的状态为“完成”,根据预定义的路由规则,获取DSFI下一个需要执行的环节NEXT_DFIS,判断NEXT_DFIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是DSFI和NEXT_DFIS ;否则,调用实体层的方法修改NEXT_DFIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作;步骤7.根据DSFI查找所有关联的被分解生成的独立子业务的流程实例DSFIid ^ i ^n)是否都已经到达当前环节DFIS,如果不是,调用实体层的方法修改当前环节DFIS的状态为“等待”,把执行结果通知给所述接口层,并结束操作;如果是,进行DSFIl到DSFIn的所有流程实例的合并,此时独立子业务流程实例的路由选择已结束,所述合并方法为调用实体层的方法修改DSFIl到DSFIn的所有独立子业务流程实例的当前环节DFIS的状态为“结束”,然后根据组合业务规则找到对应的组合业务合并环节,该合并环节即为组合业务流程实例的当前环节FIS,DSFI对应的组合业务流程实例为SFI,判断FIS对应的任务类型,如果任务类型属于自动环节,则根据流程任务对象中定义的自动环节与自动任务映射关系调用对应的任务服务执行,所述任务服务包括自动接口处理、定时等待;完成后,以递归的方法调用流程路由控制方法,该方法此时获得的所述业务信息分别是SFI和FIS ;否则,调用实体层的方法修改FIS的状态为“就绪”,把执行结果通知给所述接口层,并结束操作。
4.根据权利要求3所述的一种支持组合业务的工作流引擎,其特征在于所述组合业务规则采用GSR表示=GSR = {GS,SG, A,GSS, SS, SE, GSE},其中GS表示组合业务,SG是一个集合,其表示GS下属的独立子业务,A表示组合业务当前执行的操作,GSS表示组合业务的分解环节,SS表示独立子业务的起始环节,SE表示独立子业务的结束环节,GSE表示组合业务的合并环节。
5.根据权利要求3所述的一种支持组合业务的流程路由控制方法,其特征在于预定义的路由规则采用FDR表示FDR = {S,Τ, F,C,Μ},其中,T表示业务流程实例中每个步骤需要执行的任务,S表示每个步骤执行前或者执行后的流程实例的状态,F表示S与T之间的关联关系,C表示流程实例的属性,M表示流程实例的初始集合。
全文摘要
本发明提供一种支持组合业务的工作流引擎,包括接口层、控制层、实体层、存储层;所述工作流引擎部署后,通过接口层接收电信业务系统或其他接口系统发送的业务信息,所述控制层接收到所述接口层传递的业务信息后,根据支持组合业务的流程路由控制方法,确定业务的流程实例是自动流转到下一个环节,还是需要原地等待;同时所述控制层调用所述实体层提供的操作流程引擎内部对象的方法记录流程实例的当前环节的完成情况以及流程路由控制方法确定的流转结果,流程结果通过接口层返回;所述存储层通过数据库持久性保存业务的流程实例。本发明的工作流引擎不但可以实现单个流程的流程实例控制,对电信组合业务中的多种流程同步问题也进行很好的支持。
文档编号G06Q10/06GK102592198SQ201110457990
公开日2012年7月18日 申请日期2011年12月30日 优先权日2011年12月30日
发明者卢捍华, 闵丽娟 申请人:福建富士通信息软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1