分布式规则引擎系统、构造方法和执行规则处理的方法_3

文档序号:8361483阅读:来源:国知局
突的规则送入agenda以解决冲突。在分布式规则引擎系统中,多个规则引擎之间也可能会发生冲突,从而需要构造解决冲突的机制。在根据本公开实施例的分布式规则弓I擎系统中,在单独的规则弓I擎之外,构造用于解决各规则弓I擎之间的冲突的外部agenda(“第二级agenda”的示例)。
[0077]图7是例示根据本公开实施例的分布式规则引擎系统700的结构图。如图7所示,分布式规则引擎系统700可以包括:根据本公开实施例的规则引擎701至70M ;设置在各规则引擎内部的内部alpha网络711至71M,设置在各规则引擎内部的内部agenda721至72M。此外,分布式规则引擎系统700还可以包括:设置在单个引擎外部的外部alpha网络730以及设置在单个引擎外部的外部agenda740。此外,分布式规则引擎系统700还可以包括存储事实的工作记忆存储器。
[0078]下面结合图8描述根据本公开实施例的执行规则处理的方法。图8是例示根据本公开实施例的执行规则处理的方法的流程图。
[0079]在使用分布式规则引擎系统700进行规则处理时,在步骤S801中,经由构造于单个规则引擎之外的外部alpha网络730,将例如来自工作记忆存储器的事实布置到适当的规则引擎。这里,假设事实被布置到规则引擎701。
[0080]然后,在步骤S802,在被布置了事实的规则引擎701中,经由内部alpha网络711将事实布置到适当的alpha节点。
[0081]根据本公开的实施例,外部和/或内部alpha网络可以使用哈希方法来布置事实。图9是例示根据本公开实施例的经由外部和内部alpha网络使用哈希方法来布置事实的示意图。
[0082]图9中使用的条件部分的模式与上面的示例规则列表(规则1-4)使用的例子是一致的。在这个例子中,模式Cl在规则1、规则2以及规则4中出现。规则I和规则2部署于引擎I之上,而规则4部署于规则引擎2之上。因此,与模式Cl匹配的事实(即,属性名称为“on”的事实)既要被传输到规则引擎I之上,也要被传输到规则引擎2之上。这里,外部alpha网络根据事实的属性名称来布置事实。
[0083]此外,在这个例子中,模式C3在规则I和规则2中出现。规则I和规则2都部署于引擎I之上。因此,与模式C3匹配的事实(即,属性名称为“color”、属性值为“red”的事实)只被传输到规则引擎I上。这里,由于不能仅根据属性名称布置事实,因而,外部alpha网络还要根据事实的属性值来布置事实。
[0084]返回图8。在步骤S803中,规则引擎701将事实与其规则集中的各规则的条件进行匹配,从而生成符合相应条件的处理结果。
[0085]在步骤S804中,确定规则引擎701内部的规则处理结果是否发生冲突。在没有发生冲突的情况下,在步骤S806中,将该处理结果输出到规则引擎701之外。
[0086]在发生冲突的情况下,进行到步骤S805。在步骤S805中,将各冲突的处理结果传送到规则引擎701的内部agenda721,以解决各处理结果之间的冲突。然后,在步骤S806中,将冲突解决之后的结果输出到规则引擎701之外。
[0087]在步骤S807中,确定规则引擎701的处理结果与其它规则引擎702至7OM的处理结果之间是否发生冲突。如果没有发生冲突,则在步骤S809将处理结果输出给执行机构。
处理结束。
[0088]如果在各规则引擎之间发生了冲突,则进行到步骤S808。在步骤S808中,将各冲突的处理结果传送到外部agenda740,以解决各规则引擎之间的处理结果之间的冲突。然后,进行到步骤S809,将处理结果输出给执行机构。处理结束。
[0089]根据本公开的实施例,内部和/或外部agenda可以使用归并排序来解决冲突。图10是例示根据本公开实施例的经由内部和外部agenda解决冲突的示意图。
[0090]在图10的例子中,内部和外部agenda都采用归并排序的方式来解决冲突。以外部agenda为例,其根据各规则被激活的时间来对冲突的规则进行排序。例如,按激活时间距当前时间的距离来设定规则的优先级。则,距当前时间最近被激活的规则被设定为最高的优先级。因而,输出与该规则对应的结果,以进行操作。
[0091]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0092]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
[0093]在通过软件和/或固件实现本发明的实施例的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图11所示的通用计算机1100安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。
[0094]图11是示出实现本发明的计算机的示例性结构的框图。在图11中,中央处理单元(CPU) 1101根据只读存储器(ROM) 1102中存储的程序或从存储部分1108加载到随机存取存储器(RAM) 1103的程序执行各种处理。在RAM1103中,也根据需要存储当CPU1101执行各种处理时所需的数据。
[0095]CPU1101、R0M1102和RAM1103经由总线1104彼此连接。输入/输出接口 1105也连接到总线1104。
[0096]下述部件连接到输入/输出接口 1105:输入部分1106,包括键盘、鼠标等;输出部分1107,包括显示器,诸如阴极射线管(CRT)、液晶显示器(IXD)等,以及扬声器等;存储部分1108,包括硬盘等;以及通信部分1109,包括网络接口卡诸如LAN卡、调制解调器等。通信部分1109经由网络诸如因特网执行通信处理。
[0097]根据需要,驱动器1110也连接到输入/输出接口 1105。可拆卸介质1111诸如磁盘、光盘、磁光盘、半导体存储器等根据需要被安装在驱动器1110上,使得从中读出的计算机程序根据需要被安装到存储部分1108中。
[0098]在通过软件实现上述步骤和处理的情况下,从网络诸如因特网或存储介质诸如可拆卸介质1111安装构成软件的程序。
[0099]本领域的技术人员应当理解,这种存储介质不局限于图11所示的其中存储有程序、与方法相分离地分发以向用户提供程序的可拆卸介质1111。可拆卸介质1111的例子包含磁盘、光盘(包含光盘只读存储器(⑶-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD))和半导体存储器。或者,存储介质可以是R0M1102、存储部分1108中包含的硬盘等,其中存有程序,并且与包含它们的方法一起被分发给用户。
[0100]本发明还提出一种存储有机器可读取的指令代码的程序产品。指令代码由机器读取并执行时,可执行上述根据本发明实施例的方法。
[0101]相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等。
[0102]另外,根据本发明的实施例的某些用于组合工具的方法和装置,能够扩大组合的使用范围。
[0103]本领域的普通技术人员应理解,在此所例举的是示例性的,本发明并不局限于此。
[0104]作为一个示例,上述方法的各个步骤以及上述设备的各个组成模块和/或单元可以实施为软件、固件、硬件或其组合,并作为相应设备中的一部分。上述装置中各个组成模块、单元通过软件、固件、硬件或其组合的方式进行配置时可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。
[0105]作为一个示例,在通过软件或固件实现的情况下,可以从存储介质或网络向具有专用硬件结构的计算机(例如图11所示的通用计算机1100)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
[0106]在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
[0107]应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
[0108]此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其它的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
[0109]尽管上面已经通过对本发明的具体实施例的描述对本发明进行了披
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1