本发明涉及计算机应用技术领域,更为具体而言,涉及一种基于agent技术的流程控制方法、系统、装置及存储介质。
背景技术:
在web应用中,流程控制主要由sever服务器定义并控制。主流做法为:sever服务器定义流程节点和节点顺序,并存入数据库。sever服务器根据前端的请求,返回web应用下一个流程节点,从而实现对web端流程的管控。当流程变更或增减流程节点时,往往需要新建流程,或对现有流程进行复杂改造。
目前,常用的流程控制方法为如下:
服务端设置流程控制模块,通过流程控制模块来管控客户端流程。具体方法是:流程控制模块中配置流程控制节点,并根据流程控制节点生成流程控制图。客户端根据生成的流程控制图依次执行每个流程节点,从而达到流程控制的目的。但是,上述技术方案中流程节点灵活化配置能力不足。当客户端需要增加、删除、调整流程节点位置时,往往需要重新生成流程控制图,过程复杂。当客户端数量过于庞大时,过多的流程控制图将难以维护。
服务端设置流程控制树,如二叉树,并利用二叉树控制客户端流程。具体方法是,客户端通过遍历二叉树中根节点,逐一进行节点跳转,当有新节点插入时,依据规则插入树中,更新流程。该方法可以做到对客户端流程进行更改但不对模型进行修改。但是,上述技术方案中是通过遍历根节点,并以根节点为基础新增流程控制节点的,流程节点灵活化配置能力依然不足。当客户端新建流程包含根节点的改变时,该改变将变得难以实施。
服务端通过建立业务流程执行链,对客户端进行流程控制。具体方法是,服务端维护业务流程执行链,当有新流程节点插入时,就向执行链中插入执行单元,使得代码复用性得到了提高。但是,上述技术方案虽然实现了新流程节点的灵活插入删除,然而一旦流程控制链发生变化,基于该流程链的流程将全部改变。该技术方案无法应对管控多个流程,依然无法满足现有业务对流程控制灵活化配置的需求。
技术实现要素:
为了解决现有技术中存在的上述问题,本发明提供了一种基于agent技术的流程控制方法、系统、装置及存储介质,以实现流程节点的灵活化配置,具有更强的适配性。
agent技术是一种处于一定环境下包装的计算机系统,为实现设计目的,能在该环境下灵活的,自主的活动。agent技术具有自治性、社会性、反映性、能动性等特性,并且还具有一些人类才具有的特性,例如知识、信念、义务、意图等。
根据本发明的一方面,本发明的实施方式提供了一种基于agent技术的流程控制方法,其包括:获得客户端对流程的请求;根据agent流程管控图谱对所述客户端请求的流程进行控制,其中,所述agent流程管控图谱由agent的关系图谱linkmap构成,所述agent流程管控图谱中的agent包括:表示流程起点的开始agent,其可以指向任意agent;表示流程节点的普通agent,其可以指向除开始agent外的任何agent;表示流程终点的结束agent,其不能指向任何agent。
在本发明的一些实施方式中,根据agent流程管控图谱对客户端请求的流程进行控制包括:从开始agent遍历agent流程管控图谱中的agent;判断所述开始agent的linkmap中是否存在所述客户端请求的流程;如果判断为是,则根据所述开始agent的linkmap进行流程控制;如果判断为否,则根据所述客户端请求的流程更新所述agent流程管控图谱。
在本发明的一些实施方式中,根据所述客户端请求的流程更新所述agent流程管控图谱包括:步骤a,遍历当前agent指向的agent列表pointlist;步骤b,判断所述pointlist中是否存在目标agent,所述目标agent为当前agent按照所述客户端请求的流程应当指向的agent;步骤c,若判断为否,为当前agent添加对所述目标agent的指向,并将所述目标agent加入当前agent指向的agent列表pointlist中,跳转至所述目标agent;步骤d,若存在,则直接跳转至所述目标agent。
在本发明的一些实施方式中,所述流程控制方法还包括:判断所述目标agent是否为结束agent;如果判断为否,则将所述目标agent作为当前agent并返回至步骤a;如果判断为是,则按照更新后的agent流程管控图谱对客户端请求的流程进行控制。
在本发明的一些实施方式中,还包括:根据客户端请求的流程中流程节点的删除、位置调整动态更新所述agent流程管控图谱。
根据本发明的另一方面,本发明的实施方式提供了一种基于agent技术的流程控制系统,其包括:
agent集群,用于根据agent的关系图谱linkmap生成agent流程管控图谱,其中,所述agent包括:表示流程起点的开始agent,其可以指向任意agent;表示流程节点的普通agent,其可以指向除开始agent外的任何agent;表示流程终点的结束agent,其不能指向任何agent;
agent流程控制模块,用于根据所述agent流程管控图谱对客户端请求的流程进行控制;
agent集群管控引擎模块,用于接收所述agent流程控制模块的命令,更新所述agent流程管控图谱;
业务执行模块,用于在agent流程控制模块的控制下根据所述agent流程管控图谱执行对应的业务模块。
在本发明的一些实施方式中,根据所述agent流程管控图谱对所述客户端请求的流程进行控制包括:从开始agent遍历agent流程管控图谱中的agent;判断所述开始agent的linkmap中是否存在所述客户端请求的流程;如果判断为是,则根据所述开始agent的linkmap进行流程控制;如果判断为否,则根据所述客户端请求的流程通知所述agent集群管控引擎模块更新所述agent流程管控图谱。
在本发明的一些实施方式中,所述agent集群管控引擎模块更新所述agent流程管控图谱包括:步骤a,遍历当前agent指向的agent列表pointlist;步骤b,判断所述pointlist中是否存在目标agent,所述目标agent为当前agent按照所述客户端请求的流程应当指向的agent;步骤c,若判断为否,为当前agent添加对所述目标agent的指向,并将所述目标agent加入当前agent指向的agent列表pointlist中,跳转至所述目标agent;步骤d,若存在,则直接跳转至所述目标agent。
在本发明的一些实施方式中,所述agent集群管控引擎模块还用于:判断所述目标agent是否为结束agent;如果判断为否,则将所述目标agent作为当前agent并返回至步骤a;如果判断为是,则调用agent流程控制模块按照更新后的agent流程管控图谱对客户端请求的流程进行控制。
在本发明的一些实施方式中,所述agent集群管控引擎模块还用于:根据客户端请求的流程中流程节点的删除、位置调整动态更新所述agent流程管控图谱。
根据本发明的又一方面,本发明的实施方式提供了一种基于agent技术的流程控制装置,其包括存储器和处理器,所述存储器用于存储一条或多条计算机指令;所述处理器用于调用并执行所述一条或多条计算机指令从而实现前述任一项的流程控制方法。
根据本发明的再一方面,本发明的实施方式还提供了一种计算机存储介质,存储有一条或多条计算机程序,所述一条或多条计算机程序在执行时实现前述任一项的流程控制方法。
根据本发明的各个实施方式,采用agent技术,通过定义不同agent,利用了agent的自组网特点,根据已有流程建立agent关系图谱,该关系图谱会根据流程节点的增加、删除、位置调整等动态变化,从而实现对流程节点的管控,进而改变流程控制逻辑,使新增业务流程的研发工作量大大减少。同时,本发明的技术方案具有更高的灵活性及更强的适配性,可以实现多个业务流程的同时管控,且对业务流程的管控实现了自动化更新。
附图说明
为了便于理解本发明,以下通过具体实施方式并结合附图对本发明进行具体说明。
图1是根据本发明实施方式的一种基于agent技术的流程控制方法的流程示意图;
图2是图1中根据agent流程管控图谱对客户端请求的流程进行控制的流程示意图;
图3是图2中根据客户端请求的流程更新agent流程管控图谱的流程示意图;
图4是根据本发明实施方式的另一种基于agent技术的流程控制方法的流程示意图;
图5a是根据本发明实施方式的一种基于agent技术的流程控制方法的agent流程管控图谱的示意图;
图5b是根据本发明实施方式的另一种基于agent技术的流程控制方法的agent流程管控图谱的示意图;
图6是根据本发明实施方式的一种基于agent技术的流程控制系统的框图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
图1是根据本发明实施方式的一种基于agent技术的流程控制方法的流程示意图,在本发明的实施方式中,参照图1,该方法可以包括以下处理或步骤:
100:获得客户端对流程的请求;
110:根据agent流程管控图谱对客户端请求的流程进行控制。
在本发明的实施方式中,如图5a、5b所示,agent流程管控图谱由agent的关系图谱linkmap构成,agent流程管控图谱中的agent包括:
start-agent,简写为sagent,即表示流程起点的开始agent,其可以指向任意agent,但是其它agent不能指向它;
normal-agent,简写为nagent,即表示流程节点的普通agent,其可以指向除开始agent外的任何agent;
end-agent,简写eagent,即表示流程终点的结束agent,其可以被任意agent指向,但不能指向其它agent。
可选的,在本实施方式中,agent的属性可规定如下:
agent={type,pointlist,linkmap,updatecount};
其中:
type:agent类型,分为:sagent,nagent,eagent;
pointlist:该agent指向的agent的列表;
linkmap:该agent对应的业务流程节点和其相关的关系组成的map关系图谱;
updatecount:用于统计该agent在某段时间内的使用情况。
可选的,为了实现处理110,本发明的实施方式提供了以下执行流程:
图2是图1中处理110的流程示意图,参照图2,该处理110包括:
112:从开始agent遍历agent流程管控图谱中的agent;
113:判断开始agent的linkmap中是否存在客户端请求的流程;
114:如果判断为是,则根据开始agent的linkmap进行流程控制,例如,业务执行模块可以根据linkmap表示的指向关系,执行相应的业务模块并进行相应的跳转;
115:如果判断为否,则根据客户端请求的流程更新agent流程管控图谱。
可选的,图3给出了图2中处理115的流程示意图,参照图3,在本发明的实施方式中,处理115可以包括:
116:遍历当前agent指向的agent列表pointlist;
117:判断pointlist中是否存在目标agent,目标agent为当前agent按照客户端请求的流程应当指向的agent;
118:若判断为否,为当前agent添加对目标agent的指向,若判断为是,则直接执行处理120。
119:将目标agent加入当前agent指向的agent列表pointlist中;
120:跳转至目标agent;
可选的,参照图4,在本发明的实施方式中,所述流程控制方法还包括:
121:判断目标agent是否为结束agent;
122:如果判断为是,则按照更新后的agent流程管控图谱对客户端请求的流程进行控制;
123:如果判断为否,则将所述目标agent作为当前agent并返回至处理116。
此外,在本发明的一些实施方式中,还可以根据客户端请求的流程中流程节点的删除、位置调整动态更新所述agent流程管控图谱,以实现对业务流程的管控的自动化更新。
下面将结合具体例子对本实施方式所提供的基于agent技术的流程控制方法进行描述。
参照图5a,其示出了本发明实施方式的一种基于agent技术的流程控制方法的agent流程管控图谱的示意图。该图中,圆圈表示各个agent,箭头表示其指向,由此示出当前服务器中所存在的业务管控流程。例如,图5a中虚线箭头的部分“sa02-na02-na03-na05-ea01”表示其中一条业务管控流程。
当客户端请求新流程时,例如,新的流程为{na06,na07}。参照图5b,首先,从开始agentsa01和sa02遍历整个agent流程管控图谱,发现图谱中不存在agentna06和na07。基于此,随机选择一个开始agent作为当前agent遍历其pointlist,本实施方式中选取sa01作为当前agent。根据图谱可以看出,sa01的pointlist中只有na01,并没有新的流程中的第一个流程节点na06,因此,为na01添加对na06的指向,并将na06加入na01的pointlist中,跳转至na06。由于新的流程中na06还有后续流程节点na07,所以na06并非结束agent,因此,将na06作为新的当前agent,其后续流程节点na07作为新的目标agent重复上述流程。当na07也插入agent流程管控图谱后,由于其没有后续流程节点,因此,判断其后续指向为结束agent,为na07添加对ea01的指向,并将ea01加入na07的pointlist中完成对客户端请求的新的流程的流程控制。
基于此,本发明的实施方式通过定义不同agent,利用了agent的自组网特点,根据已有流程建立agent关系图谱,该关系图谱会根据流程节点的增加、删除、位置调整等动态变化,从而实现对流程节点的管控,进而改变流程控制逻辑,使其不用对模型进行修改,大大减少了新增业务流程的研发工作量。
同时,在本发明的实施方式中,可以使用上述方法通过并行的方式同时处理多条客户端请求的流程,且不用对模型进行修改。真正做到一个流程控制模型适配多种流程。基于此,本发明提出一种具有更高的灵活性及更强的适配性,可以实现多个业务流程的同时管控,且对业务流程的管控实现了自动化更新的流程控制方法。
图6是根据本发明实施方式的一种基于agent技术的流程控制系统的框图,参照图6,所述流程控制系统可以安装或装载于服务器上,或者说,一种服务器包括所述流程控制系统,该流程控制系统1包括:
agent集群11,用于根据agent的关系图谱linkmap生成agent流程管控图谱。其中,agent包括:表示流程起点的开始agent,其可以指向任意agent;表示流程节点的普通agent,其可以指向除开始agent外的任何agent;表示流程终点的结束agent,其不能指向任何agent;
agent流程控制模块12,用于根据agent流程管控图谱对客户端请求的流程进行控制;
agent集群管控引擎模块13,用于接收agent流程控制模块12的命令,更新所述agent流程管控图谱;
业务执行模块14,用于在agent流程控制模块12的控制下根据agent流程管控图谱执行对应的业务模块。
在本发明的一些实施方式中,agent流程控制模块12根据agent流程管控图谱对客户端请求的流程进行控制可以包括:从开始agent遍历agent流程管控图谱中的agent;判断所述开始agent的linkmap中是否存在客户端请求的流程;如果判断为是,则根据开始agent的linkmap进行流程控制;如果判断为否,则根据所述客户端请求的流程通知agent集群管控引擎模块13更新agent流程管控图谱。
在本发明的实施方式中,agent集群管控引擎模块13更新agent流程管控图谱可以包括:步骤a,遍历当前agent指向的agent列表pointlist;步骤b,判断pointlist中是否存在目标agent,该目标agent为当前agent按照客户端请求的流程应当指向的agent;步骤c,若判断为否,为当前agent添加对目标agent的指向,并将目标agent加入当前agent指向的agent列表pointlist中,跳转至目标agent;步骤d,若存在,则直接跳转至目标agent。
在可选的实施方式中,agent集群管控引擎模块13还用于:判断目标agent是否为结束agent;如果判断为否,则将目标agent作为当前agent并返回至步骤a;如果判断为是,则调用agent流程控制模块12按照更新后的agent流程管控图谱对客户端请求的流程进行控制。
在可选的实施方式中,agent集群管控引擎模块13还用于:根据客户端请求的流程中流程节点的删除、位置调整动态更新agent流程管控图谱。
可选的,本发明实施方式提供了一种基于agent技术的流程控制装置,例如可以是服务器,该流程控制装置包括存储器,用于存储一条或多条计算机指令;处理器,用于调用并执行所述一条或多条计算机指令从而实现本发明前述实施方式或实现方式所提供的基于agent技术的流程控制方法。可选地,在本发明实施方式的一种实现方式中,所述用于基于agent技术的流程控制装置还可以包括用于进行数据通信的输入输出接口。例如,所述流程控制装置可以是计算机、智能终端、服务器等。
本发明实施方式还提供了一种计算机存储介质,存储有一条或多条计算机指令,用于在执行时实现本发明前述实施方式或实现方式提供的基于agent技术的流程控制方法。例如,所述存储介质可以包括硬盘、软盘、光盘等。
虽然本文举例描述了一些实施方式,但是,在不脱离本发明实质的前提下,可以对这些实施方式进行各种变形,所有这些变形仍属于本发明的构思,并且落入本发明权利要求所限定的保护范围。
本文所公开的具体实施方式仅用于举例说明本发明,对于本领域技术人员而言,显然可以根据本文的教导进行各种修改,可以采用各种等同的方式实施本发明,因此,本发明上述公开的特定的实施方式仅仅是示例性的,其保护范围不受在此公开的结构或设计的细节所限,除非在权利要求中另有说明。因此,上述公开的特定的示例性的实施方式可进行各种替换、组合或修改,其所有的变形都落入本文公开的范围内。在缺少本文没有具体公开的任何元件或缺少本文公开的任选的部件的情况下,本文示例性公开的基于agent技术的流程控制方法、系统、装置及存储介质仍可适当地实施。上述公开的所有的数值和范围也可进行一定变化。每当公开了具有下限和上限的数值范围,落入此范围内的任何数值及任何被包含的范围都被具体地公开了。具体而言,本文公开的数值的任一范围均可理解为列举了包含在较宽数值范围内的任一数值和范围。同样,除非申请人明确且清楚地另有定义,权利要求中的术语具有它们的清楚、通常的含义。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
此外,权利要求书中的部件的数量包括一个或至少一个,除非另有说明。如果本发明中的用词或术语与其它文献中的用法或含义存在不一致,则应当以与本发明所定义的为准。