CN101739294B - 一种基于规则的分布式推理方法及系统 - Google Patents
一种基于规则的分布式推理方法及系统 Download PDFInfo
- Publication number
- CN101739294B CN101739294B CN200910244005.8A CN200910244005A CN101739294B CN 101739294 B CN101739294 B CN 101739294B CN 200910244005 A CN200910244005 A CN 200910244005A CN 101739294 B CN101739294 B CN 101739294B
- Authority
- CN
- China
- Prior art keywords
- reasoning
- inference
- terminal
- server
- inference step
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于规则的分布式推理方法及系统。该方法包括下列步骤:A.服务器接收推理任务,访问服务器上的知识库,判断所述推理任务中的推理步所需要的知识是否存储在所述知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤B;B.发生推理步迁移。服务器中断运行涉及所述推理步的推理,并记忆中断的所述推理步的信息,将所述推理步的推理任务下传给具有所述推理步所需要的知识的终端;C.终端接收并执行服务器下传的所述推理步的推理任务,并将下传的所述推理步的推理任务的推理结果上传给所述服务器。本发明能够充分利用终端的计算能力和资源,同时保护了在终端上存储的推理知识不被服务器获知。
Description
技术领域
本发明涉及普适计算的分布式环境中的推理算法领域,特别是涉及一种基于规则的分布式推理方法及系统。
背景技术
普适计算(Ubiquitous Computing或Pervasive Computing)最早起源于1988年Xerox PARC实验室计划。在该计划中Mark Weiser首先提出了普适计算的概念。他认为,像其它重要的技术一样,随着计算机应用的不断扩大,计算机将深入人们的生活,充满生活的各个角落,并以人们任意希望的形式存在。也就是说,就像木料是家具的材料一样,计算机将作为一种基本材料随时根据需要被用在其他日常生活、学习和工作的用品之中。在这样的环境下,人们每天都用、每时每刻都用,但计算机本身却作为基本原料集成在人们并非认为是计算机本身的物品中,因此可以说,计算机“消失”了。更重要的是,这些隐藏在生活中的大量的到处可用的“计算机”,可以通过一种由各种无线、有线网络无缝互联而成的统一的网络连在一起,相互通信;这些计算机被用在各种人们随身携带甚至随身穿戴的物品中,结果是,以这些隐藏的计算机元素为依托,穿戴或携带“计算机”的人、计算机、以及网络上的任何资源都形成了一个无缝的统一的网络环境。在这样的环境中,人们可以随时随地互联、移动中互联,随时随地去获取自己想要的信息。
所谓分布式环境是指包含多个控制器和设备的工作环境,在这种工作环境下系统能发现正确的控制器或设备,执行特定节点上规定的操作。在普适计算的分布式环境中,随着终端技术的发展,一、使得终端具有一定的计算能力和存储能力;二、在终端上获取的知识,比如用户信息,不想被环境中的其他节点获取;三、基于规则的推理任务,能够被划分成几个完整、独立的部分,分布进行;基于以上三点,在服务器-终端的环境中运行推理,使得把部分推理任务分配给终端运行具有合理性。
目前的很多分布式推理还没有实现分布式推理,只是满足了资源分布式,推理还是集中化。它们的环境虽然是一个分布式的,环境中有多个推理节点,每个节点上部署相同的推理单元。但当推理任务到达后,环境中的一个推理节点接收推理任务,在运行中,如果某个推理步不在该推理节点的知识库中,它就会向其他节点发布知识请求,能够提供知识的节点返回给该推理节点请求结果,使得该推理节点上的推理任务继续运行。随之产生的是在推理过程中知识的频繁传递和知识的隐私保护问题。
发明内容
本发明的目的在于提供一种基于规则的分布式推理方法及系统。能够充分利用终端的计算能力和资源,同时保护了在终端上存储的推理知识不被服务器获知。
为实现本发明的目的而提供的一种基于规则的分布式推理方法,包括下列步骤:
步骤100.服务器接收推理任务,访问服务器上的知识库,判断所述推理任务中的推理步所需要的知识是否存储在所述知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤200;
步骤200.发生推理步迁移。服务器中断运行涉及所述推理步的推理,并记忆中断的所述推理步的信息,将所述推理步的推理任务下传给具有所述推理步所需要的知识的终端;
步骤300.终端接收并执行服务器下传的所述推理步的推理任务,并将下传的所述推理步的推理任务的推理结果上传给所述服务器。
所述步骤100,包括下列步骤:
步骤110.所述推理任务通过服务器的输入/输出单元进入到服务器推理单元的推理机中;
步骤120.推理机将所述推理任务划分成多个逻辑上独立的推理步,并对所述推理步进行遍历,调出推理结构并查询服务器的知识库,运行推理任务;
步骤130.判断所述推理步所需要的知识是否存储在所述服务器的知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤200;
所述步骤200,包括下列步骤:
步骤210.服务器中断运行涉及所述推理步的推理,服务器的推理机记录所述推理步的id和推理步名称以及推理知识位置;
步骤220.服务器的推理机把记录的信息传送给推理下传单元,推理下传单元根据终端位置,把所述推理步的推理任务发送给相应终端。
所述步骤300,包括下列步骤:
步骤310.终端接收服务器下传的所述推理步的推理任务,并判断所述推理步在终端上是否对应一个推理结构,若是,则执行步骤320;否则执行步骤330;
步骤320.在所述终端上执行所述推理步对应的推理结构,判断终端负载是否超过阈值,若是,则向服务器上传推理步的部分推理结果,以及所述推理步剩余的推理结构和知识;否则,将所述推理步的推理结果上传给服务器;服务器继续运行涉及所述推理步的推理;
步骤330.在所述终端上执行所述推理步的推理任务,并将所述推理步的执行结果上传给服务器,服务器继续运行涉及所述推理步的推理。
所述步骤310,包括下列步骤:
步骤311.终端的接收/上传模块接收服务器下传的所述推理步,把所述推理步的信息提交给终端上的推理机;
步骤312.所述终端上的推理机调出所述推理步对应的推理结构并查询终端上的知识库。
所述步骤320,包括下列步骤:
步骤321.终端推理单元的诊断单元中的监控资源读取系统的资源配置表,获取终端cpu和内存的占用值;
步骤322.访问所述推理步对应的推理结构中的当前推理步信息,获取当前推理步cpu和内存的占用值;
步骤323.将所述终端的cpu和内存占用值加上当前推理步需要的cpu和内存的占用值,判断当前终端cpu和内存的占用值是否超过阈值,若是,则执行步骤324;否则,执行步骤325;
步骤324.终端不执行所述当前推理步,由终端上的终止推理运行通知终端的推理机不再进行所述推理步对应的推理结构中当前推理步下一个推理步,并通过终端的接收/上传模块向服务器上传所述推理步对应的推理结构中已执行的推理步的推理结果和所述推理步剩余的推理结构和知识;
步骤325.终端执行当前推理步,判断服务器下传的所述推理步对应的推理结构是否执行完毕,若是,则将服务器下传的所述推理步的推理结果上传给服务器,服务器继续运行涉及所述当前推理步的推理;否则,所述终端移至所述推理步对应的推理结构中当前推理步的下一个推理步,返回步骤321。
为实现本发明的目的还提供一种基于规则的分布式推理系统,所述系统包括分别部署有不同推理单元的服务器和终端,其中:
部署在服务器上的推理单元,用于接收推理任务并执行其中所需知识存储在服务器上的推理任务,中断所需知识存储在终端上的推理任务,将所需知识存储在终端上的推理任务分配给对应终端,等待对应终端返回推理结果后继续执行所述推理任务;
部署在终端上的推理单元,用于接收并执行服务器分配的推理任务,并将所述分配的推理任务的推理结果上传给所述服务器。
所述部署在服务器上的推理单元,包括:
输入/输出单元,用于接收/发送推理任务;
推理下传单元,用于根据由服务器上的所述推理机下传的推理步的信息,把下传的推理步的推理任务发送给相应终端;
推理机,用于对接收到的推理任务中的推理步进行遍历,获得推理结构并查询服务器上的知识库,运行所述推理任务中所需知识存储在服务器的知识库中的推理步;记录所述推理任务中所需知识未存储在服务器的知识库中的推理步的信息,将所述信息传送给所述推理下传单元;
知识库,用于存储部分或全部推理步所需要的知识;
推理接收单元,用于接收由终端上传的推理结果。
所述部署在终端上的推理单元,包括:
接收/上传模块,用于接收所述下传的推理步的推理任务并将下传的推理步的推理任务的信息提交给终端上的推理机;上传所述下传的推理步的推理任务的推理结果;
推理机,用于根据所述下传的推理步的推理任务的信息调出对应的推理结构并查询终端上的数据库,将所述下传的推理步的推理任务的推理结果传输给终端上的接收/上传模块;
知识库,用于存储部分或全部推理步所需要的知识;
诊断单元,用于判断当前终端的cpu和内存的占用值是否超过阈值,若超过,则通知终端的推理机停止执行所述下传的推理步的推理任务;若未超过,则继续执行所述下传的推理步的推理任务。
所述诊断单元,包括:监控资源模块和终止推理进行模块,其中:
所述监控资源模块,用于监控终端的资源占用量;
所述终止推理运行模块,用于当所述监控资源模块监控到终端上的资源已经很少时,通知终端上的推理机终止所述下传的推理步的推理任务。
所述推理结果,包括以下两种情况:
一是所述下传的推理步的推理任务全部执行后得到的结果;
二是所述下传的推理步的推理任务没能全部执行完的情况下,部分推理结果及剩余推理任务的结构和知识。
本发明的有益效果是:
(1)本发明中的推理节点主次之分。本发明的分布式推理单元部署在普适环境中的服务器和终端两种节点上,从推理能力和承担的负载上来说,两种推理节点存在主次之分;
(2)本发明中的推理算法是基于规则的。一个用规则表示的推理任务,能够被划分成几个逻辑上独立完整的部分,为分布式推理提供了条件;
(3)本发明真正实现了分布式环境中的分布式推理。本发明中推理任务到达后,服务器分配部分推理任务到不同的终端分布运行。当终端不能满足推理条件时,剩余推理任务迁移回服务器继续运行;
(4)本发明中服务器和终端之间的任务迁移是有条件的,服务器到终端的任务迁移是因为推理知识存储在终端上;终端到服务器的任务迁移是因为终端不满足运行剩余推理所需的负载资源。
附图说明
图1是本发明一种基于规则的分布式推理方法的流程图;
图2是本发明中服务器执行推理任务的方法流程图;
图3是本发明中服务器至终端的任务迁移的示意图;
图4是本发明中推理任务的结构图;
图5是本发明中推理步进行迁移的防法的流程图;
图6是本发明中终端执行推理任务的方法的流程图;
图7是本发明中终端至服务器的任务迁移的示意图;
图8是本发明中判断终端负载是否超过阈值的方法的流程图;
图9是本发明的一种基于规则的分布式推理系统的架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种基于规则的分布式推理方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的一种基于规则的分布式推理方法及系统,是将分布式环境设定为服务器和多个终端,服务器把部分推理任务分配给多个终端上分别运行,当在服务器上运行的推理任务中某个推理步的知识存储在终端上时,服务器把这个推理步的任务下传给终端在终端上执行该推理步,当终端推理完毕后,上传推理步的取值;若推理时,终端负载超过阈值,上传剩余的推理任务。这样能够充分利用终端的计算能力和资源,同时保护了在终端上存储的推理知识不被服务器获知。
下面结合上述目标详细介绍本发明的一种基于规则的分布式推理方法,图1是本发明一种基于规则的分布式推理方法的流程图,如图1所示,所述方法,包括下列步骤:
步骤100.服务器接收推理任务,访问服务器上的知识库,判断所述推理步所需要的知识是否存储在所述知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤200;
图2是本发明中服务器执行推理任务的方法流程图,如图2所示,所述步骤100,包括下列步骤:
步骤110.推理任务通过服务器的输入/输出单元进入到服务器推理单元的推理机中;
较佳地,作为一种可实施方式,本发明中所述推理任务的输入形式由任务id和任务名称组成,如表1所示,服务器接收到的任务描述形式是(0,A)。
表1推理任务描述形式
任务id | 任务名称 |
步骤120.推理机将所述推理任务划分成多个逻辑上独立的推理步,对推理任务中的推理步进行遍历,调出推理结构并查询服务器的知识库,运行推理任务;
图3是本发明中服务器至终端的任务迁移的示意图,如图3所示,推理任务被接收后,推理机根据任务id调出推理结构。较佳地,在本发明中假设所有的推理任务在服务器端都有对应的推理结构。推理结构类似于一棵树,每棵树上的节点代表一个推理步,该推理步中存放着运行这一步推理需要的信息,包括推理步的信息、推理知识的信息。如表2所示,一个推理结构中,每个推理步的id号是唯一的,所以本发明用id号来标识推理结构中的每个推理步。推理结构中,每多个(两个或多个)推理步的汇集之处表示一条基于一阶谓词逻辑的推理规则。
表2服务器推理步信息形式
推理步id | 子推理步id | 父推理步id | 推理知识位置 |
推理步id:本推理步的id号;
子推理步id:本推理步的子推理步的id号(可能多个),用于重建推理结构;
父推理步id:本推理步的父推理步的id号,用于自下而上的推理过程。
推理知识位置:本推理步所需知识的存储位置,包括终端和服务器。
图4是本发明中推理任务的结构图,图4推理任务A中每个推理步的存储信息如表3所示:
表3服务器任务推理步存储信息
下面描述的是推理步D、E、F、G一种取值组合情况下的推理规则,推理步A、B、C、D、E、F、G的知识取值情况在图4的括号中列出。
(1)If((D=d1)and(E=e2))then B=b1
(2)If((F=f1)or(G=g2))then C=c1
(3)If((B=b1)and(C=c1))then A=a1
步骤130.判断所述推理步所需要的知识是否存储在所述服务器的知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤200;
步骤200.发生推理步迁移。服务器中断运行涉及所述推理步的推理,并记忆中断的所述推理步,将所述推理步的推理任务下传给具有所述推理步所需要的知识的终端;
图5是本发明中推理步进行迁移的防法的流程图,如图5所示,所述步骤200,包括下列步骤:
步骤210.服务器中断运行涉及所述推理步的推理,服务器的推理机记录所述推理步的id和推理步名称以及推理知识位置;
所述服务器中断运行涉及所述推理步的推理,并标记该推理步入队列,表明该推理步的任务被分配给终端,如表6所示,由服务器到终端的任务迁移的任务描述形式为:
表6服务器到终端的任务迁移的任务描述形式
推理步id(任务id) | 推理步名称(任务名称) | 推理知识位置 |
步骤220.服务器的推理机把记录的信息传送给推理下传单元,推理下传单元根据终端位置,把所述推理步的推理任务发送给相应终端;
推理步id(任务id):对于服务器,它是整个推理过程中的一个推理步,但是对于终端来说,它可能对应的是一个推理任务(推理结构),因此当终端接收到这个推理任务时,它根据任务id和任务名称查找对应的推理结构,根据推理知识位置的信息,来验证它收到的推理任务对应的信息是否在本机上运行。
作为一种可实施方式,如图4所示,在服务器上的任务运行到推理步E时,发生任务迁移。任务描述形式为:(推理步:4,推理步名称:E,推理知识位置:终端1)
步骤300.终端接收并执行服务器下传的所述推理步的推理任务,并将下传的所述推理步的推理任务的推理结果上传给所述服务器。
图6是本发明中终端执行推理任务的方法的流程图,图7是本发明中终端至服务器的任务迁移的示意图,如图6和图7所示,所述步骤300,包括下列步骤:
步骤310,终端接收服务器下传的所述推理步的推理任务,并判断所述推理步在终端上是否对应一个推理结构,若是,则执行步骤320;否则执行步骤330;
本发明中,服务器下传的推理步的推理任务在终端上分为两种情况:a、推理步在终端上同样对应一个单一的推理步,推理机只需访问终端上的知识库就能获取这个推理步的取值。b、如图4所示的,服务器下传的推理步E在终端1上对应的是一个推理结构,那么终端上的推理机需要运行推理步E对应的推理结构,才能取得推理步E的取值。
相应地,服务器接收单元接收终端上传的两类资源,一是,当下传的推理步的推理任务在终端上顺利完成时,接收推理结果。二是,当下传的推理步的推理任务因资源受限在终端上被终止时,服务器接收剩余推理推理任务的推理结构和知识。
作为一种可实施方式,如图4所示,终端1上推理步E的推理任务的推理规则是:
(1)If((E3=e31)or(E4=e42))then E1=e11
(2)If((E5=e52)and(E6=e62))then E2=e21
(3)If((E1=e11)and(E2=e21))then E=e2
终端上的推理机将按照这个推理顺序对推理步E进行推理。
所述步骤310,包括下列步骤:
步骤311.终端的接收/上传模块接收服务器下传的所述推理步,把所述推理步的信息提交给终端上的推理机;
步骤312.所述终端上的推理机调出所述推理步对应的推理结构并查询终端上的知识库。
作为一种可实施方式,本发明中终端的推理结构中每个推理步的信息形式有所变化,除了包含服务器上推理步的信息形式以外,还要加上运行该推理步占用的终端的负载。如表4所示:
表4终端推理步信息形式
推理步id | 子推理步id | 父推理步id | 推理知识位置 | 占用负载值 |
以终端接收的推理步E的推理任务中一个推理步E3为例,说明推理步在终端上的存储信息,如表5所示:
表5终端任务推理步存储信息
步骤320.在所述终端上执行所述推理步对应的推理结构,判断终端负载是否超过阈值,若是,则向服务器上传所述推理步剩余的推理结构和知识;否则,将所述推理步的推理结果上传给服务器;服务器继续运行涉及所述推理步的推理;
虽然终端具有一定的存储能力和计算能力,但是毕竟有限。为了保证终端能够正常运行,顺利完成其他任务,本发明在终端上设定一个负载阈值(cpu阈值和memory阈值)。随着终端上推理结构的运行,终端负载的(cpu和memory)占用率会不断增加。推理单元中的监控模块随时监控终端的资源占用情况,当它们超过本发明设定的阈值时,监控模块就会终止终端上的推理任务。
虽然服务器把不能在本节点上运行的推理步分配给了终端,中断了涉及到这个推理步的所有推理,但是没有涉及到这个推理步的推理,服务器会继续运行,因此真正实现了服务器和终端的分布式推理。
图8是本发明中判断终端负载是否超过阈值的方法的流程图,如图8所示,所述步骤320,包括下列步骤:
步骤321.终端推理单元的诊断单元中的监控资源读取系统的资源配置表,获取终端cpu和memoey的占用值;
步骤322.访问所述推理步对应的推理结构中的当前推理步信息,获取当前推理步cpu和memory的占用值;
步骤323.将所述终端的cpu和memoey占用值加上当前推理步需要的cpu和memory的占用值,判断当前终端cpu和memory的占用值是否超过阈值,若是,则执行步骤324;否则,执行步骤325;
步骤324.终端不执行所述当前推理步,由终端上的终止推理运行通知终端的推理机不再进行所述推理步对应的推理结构中当前推理步下面的推理步,并通过终端的接收/上传模块向服务器上传所述推理步对应的推理结构中已执行的推理步的推理结果和所述推理步剩余的推理结构和知识;
终端向服务器上传推理结果,即由终端到服务器的任务迁移。终端到服务器的任务迁移主要包括两个部分:(1)结构迁移(2)知识迁移。
较佳地,本发明中以下面的形式表示终端上推理步的剩余推理结构,如下所示:
<CONTENT>
<numOfNode>3</numOfNode>
<Node Node=“”childNode=“”parentNode=“”/>
<Node Node=“”childNode=“”parentNode=“”/>
<Node Node=“”childNode=“”parentNode=“”/>
</CONTENT>
numOfNode表示此次上传的推理结构中推理步个数。为了便于在服务器端重新构建推理结构和进行推理,本发明定义每个推理步由它的推理步(Node)和它的子推理步集合(childNode)以及它的父推理步(parentNode)描述。
除了要上传剩余的推理结构,还要上传剩余推理需要的推理知识,也就是完成剩余推理结构的每个推理步的取值。本发明设计以下形式表示推理知识,如下所示:
<CONTENT>
<numOfKnowledge>3</numOfKnowledge>
<Knowledge key=“”value=“”/>
<Knowledge key=“”value=“”/>
<Knowledge key=“”value=“”/>
</CONTENT>
numOfKnowledge和numOfNode一样,表示此次上传推理结构中推理步个数,这里表示的是知识的个数。本发明采用键值对的形式表示每一条知识。Key表示这一条知识的推理步id,value表示这个节点值。
知识迁移和结构迁移过程如图7所示,推理机把终端上剩余推理的推理结构和推理知识传送给接收/上传模块,由它组织成消息传送到服务器的输入/输出模块,服务器的推理机根据所传的消息重新构建推理结构,然后访问推理知识,完成剩余推理。
步骤325.终端执行当前推理步,判断服务器下传的所述推理步对应的推理结构是否执行完毕,若是,则将服务器下传的所述推理步的推理结果上传给服务器,服务器继续运行涉及所述当前推理步的推理;否则,所述终端移至所述推理步对应的推理结构中当前推理步的下一个推理步(将其作为当前推理步),返回步骤321;
作为一种可实施方式,本发明给出了在终端上进行任务E的推理过程,根据终端上推理任务E的推理规则,运行(1)条规则时,cpu和memory的负载值分别加上0.02和0.01,如果运行完(1)规则后,cpu和memory中任何一个超出我们设定的阈值,剩余的E的推理任务要上传给服务器继续运行。如图4中所示。
步骤330.在所述终端上执行所述推理步的任务,并将所述推理步的执行结果上传给服务器,服务器继续运行涉及所述推理步的推理。
推理步在终端上同样对应一个单一的推理步,推理机只需访问知识库就能获取这个推理步的取值。
较佳地,本发明采用XML来封装消息,但并不限于XML进行消息的封装。
XML目前正在迅速成为网络数据交换的标准。XML文档是纯文本,独立于平台和应用,这对于以后扩展数据形式有着非常重要的意义;基于XML的通信消息能够被接收端快速、方便的解析。这也正是本发明采用XML封装消息的重要意义。
作为一种可实施方式,下面部分列出本发明定义的基于XML的消息格式:
<Message id=“ServerToClient_Reason”>
<COM Sender=“服务器”receiver=“终端”from=“p1”to=“p2”>
<ACT>Reason</ACT>
</COM>
<MSG>
<LANG>XML</LANG>
</MSG>
<CONTENT>“This is message”</CONTENT>
</Message>
基于XML的通信消息有三个组成部分:(1)通信参数,如发送者,接收者。(2)消息信息。(3)实际的消息内容。如上所示,基于XML的通信消息中,Messageid=“ServerToClient_Reason”表示消息id。在整个推理过程中,本发明定义了很多消息id。表7中列出部分消息id,同时说明了它们表示的含义。
表7消息id
Message id | 含义 |
ServerToClient_Reason | 服务器下传到终端的推理任务 |
ClientToServer_Reason | 终端上传到服务器的推理任务 |
ServerToServer_KB_Query | 服务器端查询知识库 |
ClientToClient_KB_Query | 终端查询知识库 |
ServerToServer_KB_Reply | 服务器端知识回复 |
ClientToClient_KB_Reply | 终端知识库回复 |
ClientToClient_Kill_Reason | 终端终止推理 |
整个消息体包含<COM>,<MSG>和<CONTENT>三部分。<COM>用来指定通信的参数,比如,“sender”代表发送者“服务器”;“receiver”代表接收者“终端”;“from”表示源主机p1;“to”表示目标主机p2。<ACT>表示动作。<MSG>描述了消息的信息,比如,<LANG>指定消息内容的语言。最后,<CONTENT>指定实际传递的消息。
下面以图4所示的终端到服务器的任务迁移消息为例加以说明,终端描述任务并且使用XML封装后的消息如下所示。
<Message id=“ClientToServer_Reason”>
<COM Sender=“终端1”receiver=“服务器”from=“10.27.0.101”to=“10.27.0.201”>
<ACT>Reason Upload</ACT>
</COM>
<MSG>
<LANG>XML</LANG>
</MSG>
<CONTENT>
<STRUCTURE>
<numOfNode>5</numOfNode>
<Node Node=“E”childNode=“E1,E2”parentNode=“无”/>
<Node Node=“E1”childNode=“无”parentNode=“E”/>
<Node Node=“E2”childNode=“E5,E6”parentNode=“E”/>
<Node Node=“E5”childNode=“无”parentNode=“E2”/>
<Node Node=“E6”childNode=“无”parentNode=“E2”/>
</STRUCTURE>
<KNOWLEDGE>
<numOfKnowledge>5</numOfKnowledge>
<Knowledge key=“E”value=“待推”/>
<Knowledge key=“E1”value=“e11”/>
<Knowledge key=“E2”value=“待推”/>
<Knowledge key=“E5”value=“e52”/>
<Knowledge key=“E6”value=“e62”/>
</KNOWLEDGE>
</CONTENT>
</Message>
相应于本发明的一种基于规则的分布式推理方法,还提供一种基于规则的分布式推理系统,图9是本发明的一种基于规则的分布式推理系统的架构图,如图9所示,所述系统包括分别部署有不同推理单元的服务器和终端,其中:
部署在服务器上的推理单元1,用于接收推理任务并执行其中所需知识存储在服务器上的推理任务,中断所需知识存储在终端上的推理任务,将所需知识存储在终端上的推理任务分配给对应终端,等待终端返回推理结果后继续执行所述推理任务;
部署在终端上的推理单元2,用于接收并执行服务器分配的推理任务,并将所述分配的推理任务的推理结果上传给所述服务器。
所述部署在服务器上的推理单元1,包括:
输入/输出单元11,用于接收/发送推理任务;
推理下传单元15,用于根据由所述推理机12下传的推理步的信息,把下传的推理步的推理任务发送给相应终端;
推理机12,用于对接收到的推理任务中的推理步进行遍历,获得推理结构并查询服务器上的知识库,运行所述推理任务中所需知识存储在服务器的知识库中的推理步;记录所述推理任务中所需知识未存储在服务器的知识库中的推理步的信息,将所述信息传送给所述推理下传单元;
知识库13,用于存储部分或全部推理步所需要的知识;
推理接收单元14,用于接收由终端上传的推理结果。
所述部署在终端上的推理单元2,包括:
接收/上传模块21,用于接收所述下传的推理步的推理任务并将下传的推理步的信息提交给推理机22;上传所述下传的推理步的推理任务的推理结果;
推理机22,用于根据所述下传的推理步的推理任务的信息调出对应的推理结构并查询终端上的数据库,将所述下传的推理步的推理任务的推理结果传输给所述接收/上传模块21;
知识库23,用于存储部分或全部推理步所需要的知识;
诊断单元24,用于判断当前终端的cpu和memory的占用值是否超过阈值,若超过,则通知终端的推理机停止执行所述下传的推理步的推理任务;若未超过,则继续执行所述下传的推理步的推理任务。
所述诊断单元24,包括:监控资源模块241和终止推理进行模块242,其中:
所述监控资源模块241,用于监控终端的资源占用量;
所述终止推理运行模块242,用于当所述监控资源模块241监控到终端上的资源已经很少时,通知终端上的推理机22终止推理(是一个通信过程)。
所述推理结果包括两种情况:
一是所述下传的推理步的推理任务全部执行后得到的结果;
二是所述下传的推理步的推理任务没能全部执行完的情况下,部分推理结果及剩余推理任务的结构和知识。
本发明的有益效果在于:
(1)本发明中的推理节点主次之分。本发明的分布式推理单元部署在普适环境中的服务器和终端两种节点上,从推理能力和承担的负载上来说,两种推理节点存在主次之分;
(2)本发明中的推理算法是基于规则的。一个用规则表示的推理任务,能够被划分成几个逻辑上独立完整的部分,为分布式推理提供了条件;
(3)本发明真正实现了分布式环境中的分布式推理。本发明中推理任务到达后,服务器分配部分推理任务到不同的终端分布运行。当终端不能满足推理条件时,剩余推理任务迁移回服务器继续运行;
(4)本发明中服务器和终端之间的任务迁移是有条件的,服务器到终端的任务迁移是因为推理知识存储在终端上;终端到服务器的任务迁移是因为终端不满足运行剩余推理所需的负载资源。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
Claims (10)
1.一种基于规则的分布式推理方法,其特征在于,包括下列步骤:
步骤100.服务器接收推理任务,访问服务器上的知识库,判断所述推理任务中的推理步所需要的知识是否存储在所述知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤200;
步骤200.发生推理步迁移,服务器中断运行涉及所述推理步的推理,并记忆中断的所述推理步的信息,将所述推理步的推理任务下传给具有所述推理步所需要的知识的终端;
步骤300.终端接收并执行服务器下传的所述推理步的推理任务,并将下传的所述推理步的推理任务的推理结果上传给所述服务器。
2.根据权利要求1所述的基于规则的分布式推理方法,其特征在于,所述步骤100,包括下列步骤:
步骤110.所述推理任务通过服务器的输入/输出单元进入到服务器推理单元的推理机中;
步骤120.推理机将所述推理任务划分成多个逻辑上独立的推理步,并对所述推理步进行遍历,调出推理结构并查询服务器的知识库,运行推理任务;其中,所述推理任务有对应的推理结构,所述推理结构为一棵树,每棵树上的节点代表一个推理步,所述推理步中存放着运行所述推理步需要的信息,所述推理步需要的信息包括推理步的信息、推理知识的信息;
步骤130.判断所述推理步所需要的知识是否存储在所述服务器的知识库中,若是,则在服务器上获取所述推理步的取值并执行所述推理步;否则,执行步骤200。
3.根据权利要求1所述的基于规则的分布式推理方法,其特征在于,所述步骤200,包括下列步骤:
步骤210.服务器中断运行涉及所述推理步的推理,服务器的推理机记录所述推理步的id和推理步名称以及推理知识位置;
步骤220.服务器的推理机把记录的信息传送给推理下传单元,推理下传单元根据终端位置,把所述推理步的推理任务发送给相应终端。
4.根据权利要求1所述的基于规则的分布式推理方法,其特征在于,所述步骤300,包括下列步骤:
步骤310.终端接收服务器下传的所述推理步的推理任务,并判断所述推理步在终端上是否对应一个推理结构,若是,则执行步骤320;否则执行步骤330;其中,所述推理任务有对应的推理结构,所述推理结构为一棵树,每棵树上的节点代表一个推理步,所述推理步中存放着运行所述推理步需要的信息,所述推理步需要的信息包括推理步的信息、推理知识的信息;
步骤320.在所述终端上执行所述推理步对应的推理结构,判断终端负载是否超过阈值,若是,则向服务器上传推理步的部分推理结果,以及所述推理步剩余的推理结构和知识;否则,将所述推理步的推理结果上传给服务器;服务器继续运行涉及所述推理步的推理;
步骤330.在所述终端上执行所述推理步的推理任务,并将所述推理步的执行结果上传给服务器,服务器继续运行涉及所述推理步的推理。
5.根据权利要求4所述的基于规则的分布式推理方法,其特征在于,在所述步骤320的所述终端上执行所述推理步对应的推理结构之前还包括下列步骤:
步骤311.终端的接收/上传模块接收服务器下传的所述推理步,把所述推理步的信息提交给终端上的推理机;
步骤312.所述终端上的推理机调出所述推理步对应的推理结构并查询终端上的知识库。
6.根据权利要求4所述的基于规则的分布式推理方法,其特征在于,所述步骤320,包括下列步骤:
步骤321.终端推理单元的诊断单元中的监控资源模块读取终端的资源配置表,获取终端cpu和内存的占用值;
步骤322.访问所述推理步对应的推理结构中的推理步信息,获取运行所述推理步需要的cpu和内存的占用值;
步骤323.判断所述终端的cpu和内存占用值与运行所述推理步需要的cpu和内存的占用值之和是否超过阈值,若是,则执行步骤324;否则,执行步骤325;
步骤324.终端不执行所述推理步,由终端上的终止推理运行模块通知终端的推理机不再进行所述推理步对应的推理结构中当前推理步下一个推理步,并通过终端的接收/上传模块向服务器上传所述推理步对应的推理结构中已执行的推理步的推理结果和所述推理步剩余的推理结构和知识;
步骤325.终端执行所述推理步,判断服务器下传的所述推理步对应的推理结构是否执行完毕,若是,则将服务器下传的所述推理步的推理结果上传给服务器,服务器继续运行涉及所述推理步所属的推理任务;否则,所述终端移至所述推理步对应的推理结构中当前推理步的下一个推理步,返回步骤321。
7.一种基于规则的分布式推理系统,其特征在于,所述系统包括分别部署有不同推理单元的服务器和终端,其中:
部署在服务器上的推理单元,用于接收推理任务并执行其中所需知识存储在服务器上的推理任务,中断所需知识存储在终端上的推理任务,将所需知识存储在终端上的推理任务分配给对应终端,等待对应终端返回推理结果后继续执行所述推理任务;
部署在终端上的推理单元,用于接收并执行服务器分配的推理任务,并将所述分配的推理任务的推理结果上传给所述服务器。
8.根据权利要求7所述的基于规则的分布式推理系统,其特征在于,所述部署在服务器上的推理单元,包括:
输入/输出单元,用于接收/发送推理任务;
推理下传单元,用于根据由服务器上的推理机下传的推理步的信息,把下传的推理步的推理任务发送给相应终端;
推理机,用于对接收到的推理任务中的推理步进行遍历,获得推理结构并查询服务器上的知识库,运行所述推理任务中所需知识存储在服务器的知识库中的推理步;记录所述推理任务中所需知识未存储在服务器的知识库中的推理步的信息,将所述信息传送给所述推理下传单元;其中,所述推理任务有对应的推理结构,所述推理结构为一棵树,每棵树上的节点代表一个推理步,所述推理步中存放着运行所述推理步需要的信息,所述推理步需要的信息包括推理步的信息、推理知识的信息;
知识库,用于存储部分或全部推理步所需要的知识;
推理接收单元,用于接收由终端上传的推理结果。
9.根据权利要求8所述的基于规则的分布式推理系统,其特征在于,所述部署在终端上的推理单元,包括:
接收/上传模块,用于接收所述下传的推理步的推理任务并将下传的推理步的推理任务的信息提交给终端上的推理机;上传所述下传的推理步的推理任务的推理结果;
推理机,用于根据所述下传的推理步的推理任务的信息调出对应的推理结构并查询终端上的数据库,将所述下传的推理步的推理任务的推理结果传输给终端上的接收/上传模块;
知识库,用于存储部分或全部推理步所需要的知识;
诊断单元,用于判断所述终端的cpu和内存占用值与运行所述下传的推理步需要的cpu和内存的占用值之和是否超过阈值,若超过,则通知终端的推理机停止执行所述下传的推理步的推理任务;若未超过,则继续执行所述下传的推理步的推理任务。
10.根据权利要求8-9任一项所述的基于规则的分布式推理系统,其特征在于,所述推理结果,包括以下两种情况:
一是所述下传的推理步的推理任务全部执行后得到的结果;
二是所述下传的推理步的推理任务没能全部执行完的情况下,部分推理结果及剩余推理任务的结构和知识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910244005.8A CN101739294B (zh) | 2009-12-24 | 2009-12-24 | 一种基于规则的分布式推理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910244005.8A CN101739294B (zh) | 2009-12-24 | 2009-12-24 | 一种基于规则的分布式推理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101739294A CN101739294A (zh) | 2010-06-16 |
CN101739294B true CN101739294B (zh) | 2014-08-06 |
Family
ID=42462813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910244005.8A Active CN101739294B (zh) | 2009-12-24 | 2009-12-24 | 一种基于规则的分布式推理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101739294B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981913B (zh) * | 2012-12-04 | 2015-04-08 | 公安部第三研究所 | 支持大规模分布式增量计算的推理控制方法及推理控制系统 |
CN108199900B (zh) * | 2018-01-23 | 2019-11-05 | 重庆大学 | 用于智能环境的分布式推理节点优化分配方法 |
CN112269834B (zh) * | 2020-11-05 | 2022-11-01 | 武汉烽火众智软件技术有限公司 | 一种公安大数据分布式管控系统及方法 |
CN113656257B (zh) * | 2021-08-30 | 2023-08-11 | 中国平安财产保险股份有限公司 | 调度任务的监控方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1809012A (zh) * | 2006-02-14 | 2006-07-26 | 北京邮电大学 | 支持环境自适应应用重构的无线传感器网络系统及方法 |
-
2009
- 2009-12-24 CN CN200910244005.8A patent/CN101739294B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1809012A (zh) * | 2006-02-14 | 2006-07-26 | 北京邮电大学 | 支持环境自适应应用重构的无线传感器网络系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101739294A (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Peiravi et al. | An optimal energy‐efficient clustering method in wireless sensor networks using multi‐objective genetic algorithm | |
Huang et al. | Skyline queries against mobile lightweight devices in MANETs | |
EP1517486B1 (en) | Metaspace: communication middleware for partially connected mobile ad hoc networks | |
CN101739294B (zh) | 一种基于规则的分布式推理方法及系统 | |
CN103069891A (zh) | 用于自组织网络中的功率节省的装置和方法 | |
US20110105024A1 (en) | Transport independent service discovery | |
CN102843426A (zh) | 基于智能父节点的Web缓存资源共享系统和方法 | |
CN102067563A (zh) | 用于对等覆盖网络中的设备最优参与的方法和装置 | |
CN103401897A (zh) | 一种分布式服务注册中心构建方法 | |
CN103780682A (zh) | 一种面向Ad Hoc网络的信息共享系统 | |
Mohanasundaram et al. | Clustering based optimal data storage strategy using hybrid swarm intelligence in WSN | |
Shih et al. | A reduce identical event transmission algorithm for wireless sensor networks | |
Bok et al. | A resource discovery with data dissemination over unstructured mobile P2P networks | |
Wang et al. | An improved routing algorithm based on social link awareness in delay tolerant networks | |
Shi et al. | Tinymq: A content-based publish/subscribe middleware for wireless sensor networks | |
Karmaker et al. | An energy‐efficient and balanced clustering approach for improving throughput of wireless sensor networks | |
CN102377826B (zh) | 一种对等网络中冷门资源索引的优化放置方法 | |
Zhi et al. | An improved ant colony routing algorithm for WSNs | |
CN103731510B (zh) | 一种基于IPv6的无线传感器网络应用层数据交互方法 | |
Wu et al. | Routing algorithm based on ant colony optimization for mobile social network | |
EP2317726A1 (en) | Transport independent service discovery | |
CN110380971A (zh) | 一种基于缓冲机制的网络数据通信方法 | |
Iabbassen et al. | Mobile line based data dissemination protocol for wireless sensor networks | |
Sivaramakrishnan et al. | Emseep--Effective Modelling of Scalable Energy Efficient Protocol In Wireless Sensor Network | |
Al-Hussain et al. | Towards energy savings in cluster-based routing for wireless sensor networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |