用于多代理系统的异常管理方案的制作方法

文档序号:7634372阅读:382来源:国知局
专利名称:用于多代理系统的异常管理方案的制作方法
技术领域
本发明涉及用于多代理系统(MAS)的管理方案。具体地但非专有地,涉及可随着MAS内的代理的数量上升而升级的故障管理方案。

背景技术
在由MAS支持其内部的代理间交互的任何分布式计算机环境中,当一个代理与另一代理交互或试图与另一代理交互时,可能发生各种不同类型的异常。例如,当MAS设置在无线网络环境中时,由于各种原因,移动设备可能突然与网络断开连接,致使服务突然中断。这种断开连接尤其在中断服务涉及时间关键应用的情况下受到阻止。
代理之间的异常交互的一种原因是诸如在设备层级、代理容器层级或代理层级产生故障的状况,或者是与一个或更多个代理的特定服务相关联的状况。代理之间的异常交互还可能出现在这样的情况下,即,关联有一个代理的应用是与其它代理期望和/或能够管理与其的交互的应用版本不同的应用版本。
设备可能出现诸如影响位于该设备上的代理与其它代理交互的能力的设备层级故障的状况。设备层级故障可以中断服务并且造成突然与网络断开连接。例如,设备可能由于信号功率或质量下降或者因连接变松而与网络物理地断开连接,或者设备可能只是不再具有足够的运行功率(例如,电池耗尽)。
代理容器可能出现诸如阻止与该代理容器(其由设置在设备上的合适平台支持)相关联的全部代理恰当地运行的代理容器故障的状况。
单个代理可能出现在该单个代理参与或试图参与与另一代理交互时使与代理容器相关联并且位于设备上的该单个代理发生交互异常的状况。在这种情况下,理想的是,尽可能快速且无缝地利用副本来修复或替换引起异常的代理,以最小化针对用户的中断。
一类已知MAS故障管理方案为各应用代理提供了本领域已知的故障管理代理,作为监控该代理与其它代理的交互的“看守”代理,并且该故障管理代理干预管理在这种交互期间出现的任何故障。然而,由于看守代理与其监护对象(ward)之间的通信开销可能很繁重,所以这种方案中的应用代理与故障管理代理的一对一映射在大MAS系统中是非常不利的。因此,在MAS包括极大量的代理,例如几千个或更多代理的情况下,这种故障管理系统不适合。


发明内容
本发明的一个目的是,提供一种用于MAS的管理方案,该管理方案通过为MAS提供改进的交互异常管理方案来试图消除和/或减轻已知MAS故障管理方案的缺点。
本发明的第一方面涉及用于多代理系统的代理管理系统,其中,未根据另一代理的期望动作的第一代理被该另一代理报告给异常管理代理,所述代理管理系统包括报告生成装置,其向所述多代理系统中的至少一个异常管理代理生成标识第一代理的报告;和原因状况确定装置,其处理由消息提供的信息,以确定第一代理为何表现出触发报告生成的动作的至少一个原因状况。
第一代理可以在该第一代理具有故障时不根据所述另一代理的期望动作。
所述异常管理代理可以被设置成诊断引起代理按触发所述另一代理生成所述报告的方式来动作的故障的类型。
本发明的第二方面涉及包括多个代理的多代理系统,其中,至少一个代理被设置成,在所述多代理系统中的一个或更多个其它代理未根据所述至少一个代理的一个或更多个预定交互期望来与所述至少一个代理交互的情况下,生成把所述一个或更多个其它代理指配至至少一个异常管理代理的报告,所述多代理系统包括消息生成装置,其被设置成使得所述至少一个代理能够生成包括与所述交互异常有关的信息的消息,由此,各消息使得所述一个或更多个其它代理能够被至少一个异常管理代理识别;和消息发送装置,其被设置成使得所述至少一个代理能够通过发送所述报告消息,把所述一个或更多个其它代理指配至至少一个异常管理代理;原因状况确定装置,其被设置成处理由所述消息提供的信息,以确定所述一个或更多个其它代理未根据所述至少一个代理的一个或更多个预定期望与所述至少一个代理交互的至少一个原因状况。
本发明的第三方面涉及用于多代理系统的故障管理系统,其中,未根据另一代理的期望动作的第一代理被该另一代理报告给异常管理代理,所述故障管理系统包括 报告生成装置,其向所述多代理系统中的至少一个异常管理代理生成标识第一代理的报告;和 原因状况确定装置,其处理由消息提供的信息,以确定第一代理为何表现出触发报告生成的动作的至少一个原因状况。
本发明的第四方面涉及用于多代理系统的代理指配方法,在该代理指配方法中,第一代理参与或试图参与与另一代理的交互,来把该另一代理指配至该多代理系统中的至少一个异常管理代理,以确定与该另一代理有关的状况是否已经引起第一代理检测到的在第一代理与该另一代理之间的交互中的交互异常,该指配过程包括第一代理执行以下步骤如果与所述另一代理的交互未根据第一代理的期望进行,则确定已经引起交互异常;第一代理生成报告消息,该报告消息包括与所述交互异常有关并使得所述另一代理能够被异常管理代理识别的信息;以及第一代理通过把所述报告消息发送给至少一个异常管理代理来指配所述另一代理,由此,接收异常管理代理处理由该报告提供的信息,来确定引起交互异常的影响所述另一代理的至少一个状况,该交互异常包括所述另一代理未根据第一代理的期望与第一代理交互。
在所述确定与所述另一代理的交互未根据第一代理的期望进行的步骤之前,第一代理可以试图开始参与与所述另一代理的交互。
在所述确定与所述另一代理的交互未根据第一代理的期望进行的步骤之前,第一代理可以试图响应于所述另一代理而参与与该另一代理的交互。
引起所述交互异常的至少一个状况可以包括与所述另一代理的服务组件有关的故障。另选地,引起交互异常的至少一个状况可以包括与支持所述另一代理的设备有关的故障。另选地,引起所述交互异常的至少一个状况可以包括与关联于所述另一代理的代理容器有关的故障。另选地,引起所述交互异常的至少一个状况可以包括与所述另一代理有关的故障。
第一代理可以向设置成管理与所述另一代理有关的指配的多个异常管理代理中的一个进行报告,所述多个异常管理代理中的所述一个已被利用为所述MAS提供的一个或更多个代理描述目录,根据在该多代理系统内实现的负载平衡规则,与所述被指配代理关联起来。
第一代理可以通过首先与将所述被指配代理与一个或更多个异常管理代理进行关联的一个或更多个代理描述目录进行通信,来确定设置在所述多代理系统内的哪个异常管理代理应当接收所述报告消息。
处理报告信息的所述异常管理代理可以进行实现异常管理方案,该异常管理方案修复影响所述另一代理的所述至少一个状况。
本发明的第五方面涉及多代理系统中的代理,该代理包括 交互参与装置,其试图参与与所述多代理系统中的至少所述另一代理的交互; 交互异常确定装置,其确定已经引起交互异常; 报告消息生成装置,其生成针对所述另一代理的报告消息; 以及指配装置,其将所述另一代理指配至至少一个异常管理代理,以使得其它异常代理能够实现异常管理方案,来修复影响所述另一代理的所述至少一个状况。
本发明的第六方面涉及多代理系统中的异常管理代理,该异常管理代理包括 报告消息接收装置,其接收报告消息,该报告消息包括第一代理针对该第一代理与另一代理的经历而确定的信息,该信息使得所述另一代理能够被标识给所述异常管理代理;信息处理装置,其处理接收到的信息,以确定其它代理的一个或更多个特征;以及状况确定装置,其确定与所述另一代理相关联的并且引起所述交互异常的所述至少一个状况;以及状况修复装置,其修复所述至少一个状况。
本发明的另一方面涉及一种交互异常原因确定方法,该交互异常原因确定方法对在指配代理与被指配代理之间的交互中检测到的交互异常的原因进行确定,该指配代理利用如权利要求1到10中的任一权利要求所述的代理指配方法,把所述被指配代理指配至多代理系统中的至少一个异常管理代理,其中,异常管理代理通过对由所述指配代理提供的信息进行处理来确定与已经发生交互的所述被指配代理相关联的至少一个状况,所述交互异常原因确定方法包括以下步骤处理由所述指配代理提供的信息以识别与所述被指配代理相关联的设备;向与所述被指配代理相关联的设备发送测试消息,以确定与该设备相关联的至少一个状况是否是引起在所述指配代理与所述被指配代理之间的交互中的交互异常的状况;以及在所述异常管理代理未从所述设备接收到对所述测试消息的响应的情况下,或者如果接收到包含被处理时指示所述设备具有引起所述交互异常的状况的信息的测试消息,则确定存在影响所述设备的状况,该状况引起了在所述被指配代理与所述指配代理之间的交互中的所述异常。
所确定的状况可以是与装置相关联的故障。
在所述处理由所述指配代理提供的信息以识别与所述被指配代理相关联的设备的步骤中,还识别了与被指配设备相关联的代理容器。所述交互异常原因确定方法还可以包括以下步骤向所述被指配代理的代理容器发送测试消息;并且,在未从所述代理容器接收到对所述测试消息的响应的情况下,或者如果接收到包含在被处理时指示该代理容器具有引起所述交互异常的状况的信息的测试消息;并且确定存在影响所述代理容器的状况,该状况引起了在所述被指配代理与所述指配代理之间的交互中的交互异常。
所述代理容器的状况可以是与所述代理容器相关联的故障。
所述交互异常原因确定方法还可以包括以下步骤向所述被指配代理发送测试消息,以确定该被指配代理是否具有引起所述交互异常的状况;和如果来自所述被指配代理的响应不满足一个或更多个预定标准,则确定该代理具有引起所述交互异常的状况。
所述异常管理代理可以确定检测到的状况与关联于所述被指配代理的故障有关。所述状况可以与关联于所述被指配代理的故障无关,从而所述异常管理代理确定检测到的状况要求将该被指配代理修改成与所述指配代理交互。在所述异常管理代理确定没有与所述被指配代理相关联的状况的情况下,所述异常管理代理可以执行服务层级测试。在确定引起所述交互异常的一个或更多个状况之后,所述异常管理代理还执行以下步骤生成与所述状况有关的合适反馈信息;和向所述指配代理发送所述反馈信息。
本发明的另一方面涉及多代理系统中的异常管理方法,在该多代理系统中,多个应用代理被设置成能够通过通信网络彼此交互,该多代理系统具有多个异常管理代理,所述多个异常管理代理被设置成,在指配代理确定已经发生由与被指配代理相关联的一个或更多个状况潜在地引起的交互异常时,接收来自该指配代理的有关所述被指配代理的报告,其中,所述异常管理代理被设置成确定与该被指配代理相关联的已经引起所述交互异常的一个或更多个状况,并且其中,所述异常管理代理还被设置成修复所述状况以消除该状况,所述异常管理方法包括以下步骤所述多个异常管理代理中的至少一个从所述指配代理接收包含关于与所述被指配代理的交互的信息的消息,该消息包括标识所述被指配代理的信息和与所述交互异常有关的其它信息;根据由所述指配代理提供的信息,来识别与所述被指配代理相关联的可能已经引起所述交互异常的一个或更多个可能状况;执行多个测试,来确定与所述被指配代理相关联的并且从引起所述异常发生的所述被指配代理的所述可能的一个或更多个状况中选择的至少一个状况;以及修复与所述被指配代理相关联的状况。
与所述被指配代理相关联的至少一个状况可以是与下列中的一个相关联的状况与所述被指配代理相关联的设备;与所述被指配代理相关联的代理容器;所述被指配代理;所述被指配代理提供的服务。至少一个状况可以包括故障。
所述指配代理可以通过参照位置目录和服务目录,来选择把所述被指配代理指配至的异常管理代理,所述位置目录和服务目录包括将所述被指配代理与异常管理代理相关联的对所述被指配代理的一个或更多个特征的描述。所述指配代理可以向所述异常管理代理提供信息,该信息包括下列信息标识所述被指配代理;指配的时间;所述指配代理已经确定的与所述异常有关的与所述被指配代理相关联的一个或更多个检测到的状况;以及报告代理的身份。
所述被指配代理可以包括一个或更多个任务组件,并且其中,所述异常管理代理能够与中介代理通信,以提供对所述一个或更多个任务组件中的每一个的描述,其中,引起在所述被指配代理与所述指配代理之间的交互中的异常的状况被确定为与所述被指配代理提供的服务相关联,并且为修复该状况,所述异常管理代理从所述中介代理获得对用于所述被指配代理的服务任务组件的新描述。如果确定被指配代理存在已经引起所述异常的状况,所述异常管理代理可以转向具有所述状况的所述被指配代理的代理容器,并且可以执行下列步骤生成所述被指配代理的副本代理;将所述被指配代理的内部状态复制到所述副本代理;通过用针对所述副本代理的登记条目替换被指配代理登记条目来更新所述登记装置,以使得所述副本代理能够与所述指配代理交互。
所述被指配代理可以设有至少一个服务任务组件,并且其中,所述至少一个服务任务组件被确定为引起所述交互异常的状况的原因,并且所述异常管理方法还可以包括以下步骤所述异常管理代理向所述被指配代理发送对引起所述交互异常的所述至少一个服务任务组件进行标识的请求消息;所述被指配代理处理接收到的消息;所述被指配代理向所述多代理系统中的中介器代理发送消息;所述中介器代理向所述被指配代理提供针对引起所述交互异常的各服务任务组件的替换服务任务组件;以及所述被指配代理用所述中介器代理提供的服务任务组件替换引起所述交互异常的各服务任务组件。
当与所述被指配代理相关联的所述至少一个状况是与所述被指配代理提供的代理容器相关联的状况时,所述异常管理方法还可以包括以下步骤所述异常管理代理向与所述被指配代理相关联的设备的守护代理发送通知消息;在接收到该消息时,所述守护代理生成所述被指配代理的所述代理容器的副本容器;所述守护代理生成针对所述代理容器中的各代理的一个或更多个副本代理;所述守护代理将所述代理容器中的所述一个或更多个代理的内部状态复制到所述副本容器中的一个或更多个副本代理中;以及所述守护代理利用各所述副本代理的代理描述来更新位置目录和服务目录。所述多代理系统可以是根据FIPA标准实现的,并且所述位置目录包括白页设施,而所述服务目录包括黄页设施。
所述异常管理方法还可以包括以下步骤在反馈级处,所述异常管理代理在实现异常管理处理之后向所述指配代理发送指示所述被指配代理的状态的反馈报告。
本发明的另一方面涉及包括多个异常管理代理的多代理系统,其中,各异常管理代理与一个或更多个代理容器相关联,各代理容器与至少一个代理相关联,所述多代理系统还包括代理位置登记和代理服务登记,该代理位置登记和代理服务登记共同提供对所述多代理系统中的代理的位置和服务的描述,其中,所述多个异常管理代理中的每一个都与所述多代理系统中的一个或更多个代理相关联,其中,所述代理位置登记和代理服务登记被共同设置成,在另一代理被怀疑具有在被指配代理与指配代理之间的交互中引起交互异常的状况时,使得该指配代理能够识别报告所针对的异常管理代理。
所述代理位置登记和代理服务登记中的每一个都可以由所述多代理系统中的与支持所述指配代理的容器不同的容器支持。
在一异常管理代理接收到异常报告时,该异常管理代理可以被重新分配给与所述被指配代理相关联的设备。
所述多代理系统中的各代理可以包括被设置成经由一个或更多个可执行软件组件与其它应用代理交互的应用代理。
一守护代理可以驻留在与所述多代理系统中的应用代理相关联的各客户端设备上,其中,各守护代理被设置成监控其客户端设备的应用代理的功能性。
一个或更多个可执行软件组件中介器代理可以保持用于所述多代理系统的应用代理的可执行软件组件的库,以使得该应用代理能够对来自应用代理的查询消息进行响应。
在一异常管理代理修复引起所述交互异常的与所述被指配代理相关联的状况之后,该异常管理代理可以联系所述多代理系统中的代理管理系统代理和目录设施代理,以利用与所述被指配代理有关的信息来更新所述多代理系统中的一个或更多个登记。
被提供以更新所述多代理系统中的所述一个或更多个登记中的至少一个的所述信息可以包括与替换所述被指配代理的副本代理有关的信息。
驻留在所述多代理系统中的客户端设备上的应用代理、代理容器以及守护代理可以各实现一测试接口,该测试接口对来自所述多代理系统的异常管理代理的测试消息进行响应。
本发明的另一方面涉及一种设置在根据本发明的任一合适系统方面的多代理系统中的客户端域中的设备上的应用,该应用提供适于将所述多代理系统中的其它代理指配至异常管理代理的一个或更多个应用代理。
本发明的另一方面涉及设置成提供支持本发明的应用方面的平台的装置。
本发明的另一方面涉及一种设置成在本发明的多代理系统方面中的任一合适的方面中实现的负载平衡方案,其中,该负载平衡方案把与多个代理相关联的异常管理代理的数量保持在预定范围内,所述方法包括以下步骤确定在所述多代理系统中的各代理组中的应用代理的数量;确定负责所述多代理系统中的各代理组的异常管理代理的数量;针对所述多代理系统中的各代理组,确定为该代理组中的各应用代理提供异常管理服务的异常管理代理的数量与该代理组中的应用代理的数量之间的比值;以及针对与所述比值高于所述预定范围的所述代理组相关联的一个或更多个异常管理代理,修改位置目录条目和/或服务目录条目,以将所述异常管理代理与所述比值低于所述预定范围的代理组重新关联起来。
相对于在试图彼此交互或参与彼此交互的两个或更多个代理之间的期望(和/或要求)通信的任何偏离都被视为异常。异常的原因包括从参与或试图参与交互的多个代理中的一个角度看到的使代理之间的交互或尝试交互表现出异常的任何状况。可以引起异常的状况的示例包括与设备和/或代理容器和/或代理和/或试图彼此交互的一个或更多个代理的服务相关联的故障。由此,引起异常的状况是与设备/代理容器/代理/服务相关联的状况,该状况导致两个或更多个代理之间的交互与参与或试图参与交互的多个代理中的至少一个的期望相反地进行。
异常管理方案提供与异常管理代理相关联的多个应用代理,各异常管理代理根据针对MAS的至少一个负载平衡标准被指定给一组应用代理。
在此使用术语应用代理来指在MAS中具有与特定应用相关联的能力的全部代理。
至此,根据所附独立权利要求和从属权利要求附加描述了本发明的方面和本发明的优选特征。
本领域技术人员应当理解,可以按本领域技术人员已知的任何明显方式对上面和从属权利要求所述的优选特征进行合适的修改,以与本发明的如独立权利要求所述的其它优选特征和/或其它方面相结合。



下面,参照仅作为示例的附图,对本发明的实施例进行描述,在附图中 图1示出了其中实现了根据本发明实施例的异常管理方案的MAS的示意图; 附图中的图2示意性地示出了其中应用代理寻找异常管理代理的过程; 图3示意性地示出了其中管理代理执行针对异常管理代理的负载平衡的过程; 图4示出了其中可以实现根据本发明一个实施例的异常诊断和异常管理方法的MAS的实施例; 图5示出了用于图4中所示MAS的根据本发明一个实施例的异常管理方法的步骤; 图6示出了可以对其实现根据本发明另一实施例的异常管理方法的MAS的另一实施例; 图7示出了用于图6中所示的MAS的包括本发明另一实施例的异常管理方法的步骤; 图8示出了可以对其实现根据本发明的异常管理方法的MAS的另一 实施例; 图9示出了用于图8中所示的MAS的本发明另一实施例中的异常管理方法的步骤; 图10示出了可以对其实现根据本发明的异常管理方法的MAS的另一实施例;以及 图11示出了用于图10中所示的MAS的本发明另一实施例中的异常管理方法的步骤。

具体实施例方式 接下来对本发明的优选实施例进行详细描述,其包括对发明人当前设想的本发明最佳模式的描述。即使未明确说明,本领域技术人员也应当清楚,本发明的某些特征可以由它们的已知等同物替换,并且合适情况下,本发明的范围将包括这种针对所描述的特征的明显等同物。
图1示意性地示出了其中实现了根据本发明实施例的异常管理方案的MAS 1。
MAS 1包括在MAS内提供各种服务并且执行各种任务的大量代理。然而,为清楚起见,在图1中仅示出了几个代理。MAS 1可以实现在单个平台内,然而,在本发明的最佳模式中,MAS 1分布到许多远程设备并由它们支持。该分布式MAS计算环境可以包括在一个或更多个客户端域内的许多合适的设备,例如,移动电话、便携式计算机、个人数字助理(PDA)型设备。由此,合适的设备是能够连接至用于与一个或更多个其它设备通信的网络的任何设备。典型地,在客户端域内的设备将由需要利用一个或更多个应用经由通信网络与一个或更多个其它用户交互的用户操作,或者由需要与分布式计算环境内的一个或更多个服务器支持的一个或更多个其它应用中的每一个交互的用户操作。
再次参照附图中的图1,在本发明的该实施例中,MAS 1支持几种远程定位设备,其中的一个或更多个由分布式系统内的一个或更多个用户操作。图1中的上半部分表示MAS系统内的服务器支持平台的域,而图中的下半部分表示MAS系统的客户端域。
MAS的客户端域内设置的各设备都支持一个或更多个代理组,所述代理组与受MAS内的服务器平台支持的代理容器相关联。由此,MAS由利用在各服务器和客户端域中的恰当的网络连接的各种平台来支持。
图1示出了由服务器域中的平台(未示出)支持的代理容器2。各代理容器包括至少一个、但优选为多个代理。几个服务器代理与代理容器2相关联,图1中示出了其中两个服务器代理9a、9b。图1中的服务器域中还示出了异常管理代理3a、3b。代理容器2经由恰当的网络连接(例如,无线通信链路)与客户端域内的代理组相关联,图1中的下半部分示出了客户端域中的两个代理组(代理组5a、5b)。各代理组包括至少一个、但优选为多个代理。代理组5a、5b中的每个都由客户端域中的合适平台支持,在本发明的一些实施例中它们可以共享客户端域中的合适平台。例如,设备上安装的应用提供了用户接口,而在图1中未示出。在图1中的客户端域内示出了一个其它代理组5c。代理组5c包括应用代理6,并且在客户端域中由相对于支持其它代理组5a、5b的设备而远程地设置的另一设备(未示出)支持。
通过一个或更多个管理代理来确定把MAS中的异常管理代理3a、3b分配给代理和代理组。图1中的服务器域示出的管理代理4负责将异常管理代理3a、3b映射至服务器域内的代理组2。管理代理利用合适的负载平衡规则规范使得异常管理代理3a、3b都能够与属于代理容器2的应用代理7、8相关联。用于MAS的负载平衡规则确保针对应用代理的异常管理代理的数量保持在可接受的范围内,下面,将更详细地描述负载平衡规则规范的示例。
当各代理组5a、5b、5c都优选地在服务器域具有至少两个异常管理代理时,如果发生需要多个异常管理代理中的另一代理(例如,异常管理代理3b)迁移或“移动”至客户平台而引起的异常,则至少一个异常管理代理3a能够保持与代理组5a、5b相关联。
在图1中的服务器域中还示出平台18,该平台18用于利用合适的代理位置和服务登记来存储有关MAS中的代理的描述信息。全部代理(MAS 1中的服务器代理、客户代理以及异常管理代理)都被共同登记并且与代理管理系统(AMS)中的代理和在平台18上设置的目录设施(DF)相关联,该目录设施使得MAS能够遵守MAS标准FIPA(Foundationfor intelligent Physical Agents,参见http//www.fipa.org)。由此,主容器2内的全部代理都与AMS代理10和DF代理11相关联。
AMS代理10映射代理名称与它们的物理地址,而DF代理11将代理名称映射至它们的服务。在本发明的FIPA遵守实施例中,通过保持位置目录12(按FIPA标准规范术语称为“白页服务”)的AMS代理10实现映射,位置目录12包括在应用代理的名称与它们的物理地址之间的映射。如图1所示,DF代理11保持服务目录13(按FIPA术语称为“黄页服务”),服务目录13包括代理名称与它们的服务之间的映射。各应用代理6、7、8都还被分配一组号,该组号用于标识它们所属的并且被登记的组。
各异常管理代理(如图1所示的异常管理代理3a、3b)都通过向DF代理11发送合适的通信20来通告其服务描述(例如,通过利用DFAgentDescription),以便将异常管理代理提供的服务登记在服务登记13中(例如,将DFAgentDescription登记到FIPA黄页服务中)。在针对本发明具体实施例的伪代码中提供了异常管理代理的DFAgentDescription的示例,其包括FIPA标准术语,列举如下 <DFAgentDescription>   <Name>   <Agent-Identifier name=sentinel-1@foo.com,   address=”iiop//foo.com/acc”/>   </Name>   <Protocol name=”FIPA-Request”/>   <Ontology name=”AgentFaultMangement”/>   <Language name=”FIPA-SLO”/>   <Language name=”KIF”/>   <ServiceDescription>     <Name>FaultMangement</Name>   <Type>AgentAdministration</Type>   <Ontology>”AgentFaultMangement”</Ontology>   <Property name=”group-id”,value=”1:2”/>   </ServiceDescription>  </DFAgentDescription> 根据FIPA,DFAgentDescription被设想包括代理名称(由<Name>标签表示)、一个或更多个本体(ontology)(由<Ontology>标签表示)、一个或更多个协议(由<Protocol>标签表示)、代理可以理解的一种或更多种语言(由<Language>标签表示),以及最后设想代理提供的一个或更多个服务描述(由<ServiceDescription>标签表示)。
由此,上述伪代码提供了对其异常故障管理服务已被指定名称“FaultMangement”的名为“sentinel-1@foo.com”的异常管理代理的描述。服务类型是“AgentAdministration”,而服务的细节在“AgentFaultMangement”本体中限定。而且,服务具有被命名为“group-id”的属性,该属性被用于指示负责上述DFAgentDescription中的被命名为“FaultMangement”的异常管理服务的异常管理代理的组标识符。
本领域技术人员应当懂得,描述的异常管理方案延伸至全部代理设置在服务器域内下的代理交互,和全部代理设置在客户端域内下的代理交互,以及一个或更多个代理位于客户端域中而一个或更多个代理位于服务器域内下的代理交互。
下面,针对客户端域中与应用相关联的两个代理尝试参与交互的情况,对图1示出的本发明的实施例进行描述。下面,按照代理组5c中的应用代理6试图参与与代理组5b相关联的应用代理7、8的交互时的情形,对根据本发明该实施例的异常管理方案的示例进行描述。出于说明针对MAS l的异常管理过程的目的,假定代理之间的交互展示了由影响代理组5b中的应用代理7的状况引起的异常。交互中的异常的原因可以由影响应用代理7的一个或更多个状况引起,例如,可以从与应用7位于其上的设备相关联的状况(如故障)导致异常,和/或从与应用7所属的代理组5c相关联的状况(如故障)导致异常,和/或从与应用代理7自身相关联的状况(如故障)导致异常,以及/或从与关联于应用代理的服务相关联的状况导致异常。
启动与另一代理交互的代理通常会首先检测交互中的任何异常,并且把该另一代理指配至异常管理代理。然而,在本发明的另选实施例中,可以针对在交互中具有响应任务的代理来确定在该交互中已经发生的异常,并且针对响应代理,把启动代理指配至异常管理代理。
在下面描述的本发明的实施例中,术语指配代理6被同义地用于启动与图1中示出的应用代理7、8交互的应用代理6,而术语被指配代理7被同义地用于由指配代理6向异常管理代理3b报告的应用代理7。由此,在图1中,指配代理6向已经与被指配代理7相关联的异常管理代理3b发送对该被指配代理7进行标识的报告21。下面,参照图2,更详细地讨论指配代理6通过其能够确定要把报告发送给合适的异常管理代理的方法。
一旦指配代理确定了合适的异常管理代理3b,就可以通过异常管理代理3b诊断在交互中引起异常的状况,并且一旦诊断了该状况,就可以通过异常管理代理3b修复该状况。由此,在图1中,异常管理代理3b接着发送一个或更多个消息22来确定是否存在与设备和/或与被指配代理7的代理容器和/或与被指配代理7自身、和/或与被指配代理的服务相关联的状况。根据是否接收到针对各测试消息22的任何响应23,异常管理代理3b可能需要查询和/或更新目录设施24,以修复引起交互异常的状况,并且向指配代理6提供反馈消息25。
利用任何合适的基于状态日志的方法(作为一个示例,参见Ogunleye,L.”The state detection of a multi-agent system,”Working Paper,Departmentof Computer Science,University of Saskatchewan,Canada)可以完成异常管理代理对服务器代理的异常的检测和恢复。例如,这使得各服务器代理9b能够被设计成在本地设备中周期性地把其内部状态记入日志26。随后,异常管理代理3a迁移至设置有服务器代理9b的设备,并且异常管理代理3a可以检查日志26以确定服务器代理9b是否正确地操作。异常管理代理3a可以迁移27至另一服务器代理,以执行针对异常检测的相同作业。
附图中的图2示意性地示出了其中图1中的指配代理6寻找把其它代理7指配至的异常管理代理3b的更详细的过程。在图1中,当指配代理6确定在交互中发生了异常或者该异常已经妨碍了与被指配代理7的交互时,该指配代理6启动指配过程。在本发明提供的异常管理方案中,异常妨碍交互或引起交互按不满足指配代理的期望的方式进行(如与其它代理、或其设备、代理容器、或服务相关联的故障)。
在图2中,首先,指配代理6根据其与被指配代理7的交互或尝试与被指配代理7的交互,确定被指配代理7可能具有妨碍交互满足指配代理6的期望的状况(步骤30)。接着,指配代理6生成查询消息(步骤32),该查询消息被发送至DF代理11(步骤34)。该查询消息包括如上所述的服务描述,除了属性“group-id”的值包括已指定给指配代理6的组标识符。
当接收到查询消息时,DF代理11搜索其DF登记(步骤34)。如果该搜索找到与查询消息中包括的服务描述相匹配的任何DFAgentDescription,则DF代理11以响应消息向指配代理6发送回该DFAgentDescription。如果指配代理6没有接收到来自DF代理11的响应消息,则其等待(步骤36)预定时段(例如,该预定时段可以由系统管理员确定),并且随后向DF代理11重发查询消息(步骤38)。
一旦指配代理6从DF代理11接收到响应消息,其就从该响应消息中获取DFAgentDescription(步骤40),并且寻找负责指配代理6所属的组的异常管理代理3b的AID(步骤42)。AID包括代理标识符和异常管理代理设于其上的设备的地址。
如上所述,DFAgentDescription还包括服务描述,该服务描述包括异常管理代理3b负责的代理组2的组号。这使得针对各代理组能够灵活调遣异常管理代理。例如,当异常管理代理负责的当前组中的应用代理的数量相对小于新组中的应用代理的数量时,该异常管理代理能够通过改变其具有不同组号的服务描述来改变其责任组。
在本发明的一个实施例中,针对代理组的异常管理代理的分配是使用利用了调遣规则的管理代理4(参见图1)实现的。
图3示意性地示出了其中管理代理执行针对异常管理代理的负载平衡的过程。
下面,参照图3,管理代理4当在主容器2中启动时开始其工作(步骤44)。首先,其联系DF代理11,以获得应用代理和异常管理代理登记的全部DFAgentDescription的列表(步骤46)。基于该列表,管理代理4计算各组的当前负载指标(步骤46)。负载指标表示在各组中有多少异常管理代理在为多少应用代理提供异常管理服务。比较各组的负载指标值与负载平衡规则中的希望值(例如,其存储在可以由系统管理员动态地修改的XML文件中)。
下面,采用伪代码示出了负载平衡规则的示例规范 <LoadBalancingRule><NOSA>   <MinSA>1</MinSA>   <MaxSA>1</MaxSA><!-- SIPO <DP n="17"> --><dp n="d17"/>   <MinGroup>1</<MinGroup>   <MaxGroup>5</<MaxGroup>  </NOSA>  <NOSA>   <MinSA>2</MinSA>   <MaxSA>3</MaxSA>   <MinGroup>6</<MinGroup>   <MaxGroup>10</<MaxGroup>  </NOSA>  <NOSA>   <MinSA>2</MinSA>   <MaxSA>4</MaxSA>   <MinGroup>11</<MinGroup>   <MaxGroup>15</<MaxGroup>  </NOSA>  <RecruitCriteria>LongestIdlingAgent</RecruitCriteria>    </LoadBalancingRule> 如上所示,负载平衡规则的一个实施例由<NOSA>标签和<RecruitCriteria>标签组成。<NOSA>标签包括针对各组大小的异常管理代理的数量。例如,如在上面的负载平衡规则的实施例中所示,针对其大小在1与5之间的组的异常管理代理的希望数量可以指定为1。<NOSA>标签(表示异常管理代理的数量)包括<MinSA>标签(表示异常管理代理的最小数量)、<MaxSA>标签(表示异常管理代理的最大数量)、<MinGroup>标签(表示最小的组大小),以及<MaxGroup>标签(表示最大的组大小)。<RecruitCriteria>标签被用于指定确定应当重新分配给其它不平衡组的异常管理代理的标准。在该示例中,该标准被指定为“LongestIdlingAgent”,其意指在为过剩的组(具有太多的异常管理代理)提供服务的多个异常管理代理中已经空闲达最长时段的异常管理代理应当被移向另一过载组(具有太少的异常管理代理)。
再次参照图3,如果在全部组中的当前负载平衡良好,则管理代理4等待预定时段(步骤50),接着重新开始检查过程(步骤52)。如果存在具有不平衡负载指标的任何组,则管理代理4基于补充标准将过剩的异常管理代理重新分配给过载的组(步骤54)。最后,管理代理4修改重新分配的异常管理代理的服务描述,并且更新DF代理11的登记(步骤56)。
在MAS内,各种类型的代理间交互包括内部应用交互,如客户端代理-服务器代理交互或者多个客户端代理间交互;和应用代理(客户端或服务器)与异常管理代理之间的交互。下面,将对在各不同类型的交互内的异常标识进行描述。
再次参照图1,考虑这样一种情况,即,用户代理组5c内的应用代理6开启与用户代理组5b内的应用代理7的交互。例如,应用代理6可能已从DF代理11获得两个其它代理7、8的地址,以便在特定操作期间,如在Habin Lee,Patrik Mihailescu,and John Shepherdson,A Multi-AgentSystem to Support Team-based Job Mangement in a TelecommunicationsService Environment,TI Lab Journal Exp,3(3),96-105,2003(其内容通过引用全部并入于此)中描述的作业交易期间,与代理7、8协调。
应用代理6充任启动器代理,并且经由网络向用户组5b内的其它代理7和其它代理8发送CFP(要求建议)消息。这样在三个代理6、7、8之间产生交互实例17。
其它代理7没有以遵照一个或更多个标准(其应当遵照针对启动代理的响应)的响应来响应所述CFP消息。例如,在代理6与7之间的交互期间,应用代理6可能在预定时段内未接收到响应(即,响应超时)。这从应用代理6的角度来看表示交互中的异常,并且将开始代理指配过程,以向异常管理代理3b报告其它代理7。应用代理6接着利用上面参照图2所述的方法,来确定应当把有关被指配的应用代理7的报告发送给其的异常管理代理的身份。
一旦已经标识了合适的异常管理代理,指配代理6就发送报告(例如,向标识的异常管理代理发送)。该报告提供足够的信息用于诊断要最终确定的交互异常的原因(例如,应当包括针对异常管理代理的足够信息,以发起关于异常的原因的调查)。因此,被指配代理7在该报告中与其它信息(举例来说,确定在交互中已经发生或者妨碍在两个代理之间发生交互的异常的类型)一起被标识。下面,采用伪代码的方式对根据本发明一个实施例的在报告中包括的信息的示例进行描述 <FaultReport>   <Reporter>butler@foo.com</Reporter>   <AID>gilbert@foo.com</AID>   <Time>12/11/2003 12:10:00</Time>   <Fault>   <Type>NoResponse</Type>   <Service>   <Name>MiniJobTrade</Name>   <Type>TeamworkCoordination</Type>   <Role>JobTaker</Role>   <TargetTask>PrepareBid</TargetTask>   </Service>   </Fault>  </FaultReport> 上面采用伪代码的形式示出的报告包括报告的起源的指示符,例如,通过利用表示生成异常报告的报告代理的<Reporter>标签来指示。该信息被用于向报告者返回诊断结果。该报告例如利用包括报告代理ID(用于标识与针对异常管理被指配的异常相关联的代理(即,用于标识被怀疑有故障的代理))的<AID>标签来标识被指配代理7。<Time>标签表示生成报告的时间,而<Fault>标签提供关于交互异常的更多信息,使得更容易导出与已经发生异常交互的被指配代理相关联的怀疑异常状况。
<Fault>标签提供涉及异常类型的信息和相对应的服务信息。<Type>标签包括关于被指配代理的表观的信息。可以限定多个<Fault>类型标签,各标签表示特定交互异常。可能的故障类型的示例包括NoResponse(未响应),VoidResponse(无效效应),Orphan(孤立),以及Failure(失败)。
“未响应”表示被指配代理没有在期望的超时持续时间内响应。“无效响应”表示被指配代理向指配代理发送回没有意义的响应。“孤立”故障类型表示代理在暂时断开之后不能重新连接至其主平台。该孤立故障类型由异常管理代理处理,以把孤立代理的AID重新登记在AMS代理10的位置目录12中。“失败”故障类型表示指配应用代理已经从被指配代理超过允许预定次数地连续接收到失败消息。
如上所述,各应用代理被分配有表示应用代理所属的组的组号。例如,图1中示出的应用代理6属于代理组号5c,并且例如可以被分配组号“#5c”。异常管理代理向把服务登记到其服务登记中的DF代理11通告其服务描述。该服务描述提供对异常管理代理负责的代理组的指示,例如,异常管理代理3b负责代理组5c。
通过登记各异常管理代理的服务的描述,可以针对代理组采用灵活的方式调遣异常管理代理,以针对MAS内的各异常管理代理保持应用代理的平衡负载。例如,这使得在异常管理代理负责的当前组中的应用代理的数量相对小于新组中的应用代理的数量时,该异常管理代理能够通过以不同组号改变其服务描述来改变其责任组。
异常诊断 异常可能由许多状况(例如,故障)引起,可以根据状况的起源域来对它们进行分类。例如,在本发明一个实施例中,引起异常的状况可以归到以下四种类别中的一个或更多个设备故障、代理容器故障、代理故障,以及服务层级故障。
设备故障包括由代理所位于的设备的失效引起的任何故障。代理容器故障包括在代理容器所在的设备正确地工作时由该代理容器的误动作引起的任何故障。代理故障包括在代理位于的代理容器和设备正确地工作时由误动作的代理引起的任何故障。最后,服务层级故障包括在服务组件分布在其中的代理、代理容器以及设备都正确地工作时由代理的该误动作的服务组件引起的任何系统失效。
一旦异常报告到达,异常管理代理就执行一个或更多个预定测试,以诊断报告的异常的原因,例如,可以执行基本测试,以把报告的异常归类为设备异常、容器异常、代理层级故障异常或其它形式异常中的一种。如果异常管理代理不能通过该基本测试把报告的异常归类为三种异常类型中的一种,则异常管理代理可以执行服务测试,以确定报告的异常是否由引起与服务相关联的异常(例如服务的失败)的状况引起的。在本发明的一些实施例中可以改变测试的顺序,例如,可以在调查异常是否源自与设备、代理容器或代理相关联的状况之前执行服务测试。
设备、容器以及代理层级异常确定 在图4示出的本发明实施例中,示出了用户操作的设备58,举例来说,如PDA的移动设备。设备58支持具有位于设备58上的代理容器66的应用。在图4示出的实施例中,被指配代理7运行在代理容器66中,并且如果没有发生异常,则被指配代理7将支持要由代理容器66提供的一个或更多个服务。
如果在交互中没有发生异常,则设备58的用户能够经由合适的接口例如GUI(图形用户接口)程序60而与代理7交互。设备58还设置有被设置成接收输入分组的合适代理,例如,独立于代理容器66而位于设备58上的守护代理70。
在图4中还示出了支持位置目录设施和服务目录设施的平台18,该平台18设置有AMS代理10、DF代理11以及相应的服务目录设施13和位置目录设施12。
考虑异常管理代理3b已经接收到来自指配代理6(图5中未示出)的报告的情况。下面,参照附图中的图4和5,对异常管理代理3b执行的根据本发明的异常诊断方法进行描述,其中,异常管理代理3b在MAS的架构内执行一系列测试。
根据图5中示出的本发明的一个实施例,从指配代理接收关于被指配代理的报告的异常管理代理从AMS中获取代理描述(参见图5)(步骤80)。获取的代理描述包括足够的信息,以使得异常管理代理能够确定该被指配代理设置于其内的设备的IP地址,和被设置成接收输入分组的设备内的代理(例如守护代理70)的端口号。一旦异常管理代理已经识别出经由其与关联于该被指配代理的设备通信的合适守护代理,异常管理代理就执行一系列测试(步骤82)。该一系列测试可以被视为形成层级测试,其按不同层级(首先按设备层级、接着按代理容器层级、接着按代理层级)并且还按服务层级探查该被指配代理。
利用上述的代理描述信息,异常管理代理通过向位于设想该被指配代理运行的目的设备上的守护代理70发送测试消息74来执行设备测试(步骤84)。如果守护代理70没有响应该测试消息,则异常管理代理标记报告的故障为设备层级故障(步骤86)。否则,异常管理代理标记设备在正确地工作,并且执行其中异常管理代理向代理容器66发送测试消息72的容器测试(步骤88)。如果代理容器66没有正确地响应,则异常管理代理标记报告的故障为容器层级故障(步骤90)。否则异常管理代理标记代理容器66在正确地工作,并且执行其中异常管理代理向被指配代理7发送测试消息(76)的代理测试(步骤92)。如果被指配代理7没有正确地响应该测试消息,则异常管理代理3b标记报告的故障为代理层级故障(步骤94)。否则,异常管理代理3b标记被指配代理7在正确地工作,并且执行服务层级测试(步骤96)。
下面,参照附图中的图6和7,对根据本发明实施例的服务层级测试96进行描述。在图6中,与前面的图中的要素相同的要素保持它们的编号方案。
在图6和7中,异常管理代理3b联系DF代理11,以获得被指配的服务组件代理(例如,C-COM代理)和服务组件中介器代理104(例如,C-COM中介器代理)的代理描述(步骤110)。术语C-COM代理指具有自述属性并具有一个或更多个软件组件的任何代理。例如,可执行软件组件设置任务,特别是实现代理与其它代理的交互的任务(例如,在此也称为C-COM软件组件)。C-COM软件组件是使得两个或更多个代理能够彼此交互以处理服务的服务组件。这样,术语C-COM在该实施例中被用作针对可以利用本领域技术人员已知的其它合适服务组件方案实现的等同服务组件的代表。在Habin Lee,Patrik Mihailescu,and JohnShepherdson,“mPower-a component-based development framework formulti-agents systems to support business processes”,BT technology Journal,21(4),92-103,2003,and in the inventors’co-pending PCT patent application,entitled“Flexible Multi-Agent system Architecture”中,更详细地描述了服务组件C-COM代理和C-COM中介器代理,在此提交了上述文献的副本,并通过引用将其内容并入于此。
如图6所示,服务组件(C-COM)中介器代理104把用于MAS应用中的全部服务组件(C-COM)保持在服务组件(C-COM)库106中。服务用户代理安装(C-COM)的启动器组件以请求服务,而服务提供方代理安装(该C-COM的)响应组件以提供该服务。
图7示出了执行服务层级测试的方法中的步骤,其中,一旦已经请求了服务层级测试(步骤96),异常管理代理就联系DF代理11,以获取C-COM代理和C-COM中介器代理的代理描述(步骤112、114)。接着,异常管理代理从中介器代理中获取服务组件(C-COM)启动器和C-COM自身的组件描述(步骤116)。到DF代理11的请求消息的构成是基于异常报告的信息(具体地,目的服务部分)的。异常管理代理3b从异常报告中获取目的服务的名称(步骤110),并且向C-COM中介器代理104发送针对目的服务的启动器组件的请求消息(步骤112)。利用对该请求消息的响应消息,C-COM中介器代理104针对该请求的服务返回C-COM的启动器组件100和组件描述(步骤114)。
所述组件描述包括涉及针对该服务的合适测试数据的信息。例如,该组件描述可以包括涉及其中启动器组件发送‘X’作为输入而响应组件将利用‘Y’响应的情况的测试数据。基于所述组件描述,异常管理代理3b准备测试消息(步骤116)。接着,异常管理代理通过执行接收到的启动器组件100向被指配代理发送该测试消息(步骤116)。被指配代理以响应消息来响应(步骤118)。异常管理代理3b比较来自被指配代理7的该响应消息与期望的结果消息(步骤120)。如果该响应消息与期望的结果消息相匹配,则异常管理代理3b标记报告的异常为暂时异常(例如,暂时故障)(步骤124)。否则,异常管理代理3b标记报告的异常为服务层级异常(步骤122)。
一旦已经经由异常诊断过程识别了异常类型,异常管理代理1就开始异常管理过程,以修复引起异常的状况。各异常类型需要不同的异常管理过程。例如,如果报告的异常源于与被指配代理的设备相关联的状况,如设备层级故障,则异常管理代理向原指配代理返回指示异常类型的反馈报告。这使得指配代理能够终止与该被指配代理的交互。另选地,或者另外,如果报告的异常源于与被指配代理的服务相关联的状况,举例来说,如服务层级故障,则异常管理代理向该被指配代理发送通知消息,以使得该被指配代理能够重新安装具有引起异常的状况的一个或更多个服务组件。例如,被指配代理可能需要通过联系C-COM中介器代理104来重新安装其响应组件102。
下面,参照图8,示意性地示出了当与代理相关联的状况(举例来说,如代理层级故障)引起异常时的异常管理过程。在前面的图中提到的要素在图8中保持它们的编号方案。
在图8中,设备58设置有用户接口60,例如,GUI,其具有与代理容器66的合适接口代理连接128。还示出了地址在代理容器66的域内的被指配代理7,和地址也在代理容器66的域内的异常管理代理3b。异常管理代理3b能够与支持目录设施的平台18通信,该平台18提供对(与本发明的FIPA实施例中的白页服务提供的位置目录12相关联的)AMS代理10和(与本发明的FIPA实施例中的黄页服务提供的服务目录设施13相关联的)目录设施DF代理11的支持。AMS代理10和DF代理11把异常管理代理3b与主代理容器2关联起来。
图9示出了解决与代理关联状况相关联的异常(举例来说,如代理层级故障)的方法中的步骤。下面,还参照图10中示出的特征对该方法进行描述。
在图10中,用户操作的设备58设置有用户接口60。与代理容器66相关联的被指配代理7还由设备58支持。守护代理70也位于用户的设备上,并且被设置成与诸如异常管理代理3b的外部实体通信。如此前所述,异常管理代理3b被设置成与位于相对于用户操作的设备58远程地设置的主平台18上的AMS 10和DF 11通信。主平台18支持AMS 10和关联位置目录设施12和具有关联服务目录设施13的目录设施装置11。
当怀疑代理层级异常时,通过异常管理代理进行内部请求(步骤130),以便执行解决该代理层级故障的方法。接着,异常管理代理3b把其域改变至其中设置有被指配代理7的代理容器66内(步骤132)。在代理容器66中,异常管理代理3b生成被指配代理7的副本代理142(参见图10)(步骤134),接着,把被指配代理7的内部状态传递至副本代理142(步骤136)。
下面,参照附图中的图10,一旦成功生成副本代理142,异常管理代理3b就更新GUI代理连接登记144。首先,异常管理代理3b消除在设备上的GUI 144与被指配代理7之间的映射,并且把GUI 144与新的副本代理142相连接(图9中的步骤138)。这样,副本代理142可以经由GUI 144与人类用户交互。其次,异常管理代理3b联系主平台18,以更新(举例来说,由FIPA系统中的白页提供的)位置目录12和(举例来说,由FIPA系统中的黄页提供的)服务目录13。这消除了针对被指配代理7的登记项目,而添加了针对新的副本代理144的一个或更多个新的登记项目(步骤140)。
代理容器层级异常 图11示出了根据本发明一个实施例处理代理容器层级异常的方法中的步骤,其中,被检测的异常由与代理容器相关联的状况如代理容器层级故障引起。
如果在该层级的交互中出现了异常,则异常管理代理3b将生成用于管理故障的内部请求(步骤150)。一旦已经识别到异常可能由与被指配代理的代理容器相关联的状况引起,异常管理代理3b就向设备58的守护代理发送消息(步骤152)。接着,守护代理70执行异常管理代理预定恢复过程,以修复代理容器的引起在被指配代理与指配代理之间的交互中出现的异常的状况。
在该过程中,守护代理在设备58中生成副本代理容器146(步骤154)。在新的代理容器146中,守护代理70生成副本代理142(步骤156)。接着,守护代理70把被指配代理7的内部状态传递至新的副本代理142(步骤158)。此后,守护代理70消除GUI 60与被指配代理7之间的连接,并且在GUI 60与新的副本代理142之间生成新的链接(步骤160)。最后,如果成功地执行了该过程,则守护代理7向异常管理代理3b发送回消息。当接收到该消息时,异常管理代理3b更新位置目录12(例如白页12)和服务目录13(例如黄页13)(步骤162)。
一旦完成了(即,针对各种类型的服务、代理以及代理容器层级异常(例如,故障)完成了)异常处理过程,异常管理代理3b就生成针对原指配代理6的反馈报告。该原指配代理6可以根据本发明的一些实施例被设置成在接收到反馈报告之后与恢复的/副本代理142重新开始或重新交互。另选地,异常管理代理3b可以不发送反馈报告(在图1中由箭头25示意性地示出),除非修复过程超过预定时间间隔,在该情况下,指配代理142可以被设置成在预定时间间隔之后自动再尝试与代理(其刚被替换或恢复)交互,除非它从异常管理代理接收到通知。
本领域技术人员应当理解,用于用户可以操作的分布式计算环境的合适设备可以包括无线设备,其中,术语无线设备指能够无线操作的任何设备,例如,能够进行话音和/或数据通信并且具有内部处理能力(包括诸如桌上型计算机/个人数字助理等提供的数据处理能力)的移动或便携式设备,和由其它手段接入到通信网络的设备。
在本发明的一些实施例中,支持针对实时交互的故障管理的根据本发明的MAS具有动态地管理交互异常(包括故障)的能力。在本发明一个实施例中,MAS的用户包括移动工人,例如,移动雇员工人。在这种实施例中,MAS支持的应用的示例可以包括几个用户可以试图在任一时刻与其交互的作业分配应用等。这种应用还可能要求实时更新。在这种具体动态异常管理中,特别地,如果可以在对向用户提供的服务无可察觉的影响的情况下执行异常管理,则是特别理想的。受益于动态异常管理的其它实时应用包括电子商务应用、在线投机和拍卖等等。
本发明提供的异常管理解决方法是可扩展的并且适合于具有极大量代理(几千和更多)的MAS,由此对于大量移动工人或大量学生群体等特别有用。典型地,这些用户彼此相距很远,并且可能希望在用户操作的设备连接至因特网时,彼此进行实时交互或者与MAS支持的共享应用进行交互。用户能够经由其交互的连接方式可以是“始终接通”型的(例如,宽带电话或电缆连接),或者是包括任何合适的固定线路的拨号连接和/或无线连接方式或任何其它合适的连接类型。
为清楚公开起见,图1中示意性地示出的实施例中仅示出了有限数量的代理。本领域技术人员应当容易地明白,上述概念可以沿伸至这样的MAS架构,即,在该MAS架构中,设置有几千个代理,其中可以设置几百个管理代理,并且其中各代理组根据分配至各代理组的代理的数量而分配有足够数量个异常管理代理。
本领域技术人员应当理解,在此描述的针对MAS的异常管理方案不需要仅针对“故障”实现,而是可以针对影响多个代理之间的交互偏离所述多个代理中的一个的期望的其它因素实现,还可以用于触发向异常管理代理发送异常报告。例如,如果两个代理运行同一软件的不同版本,则它们能够针对不登记为故障的指定交互充分地交互,但是一个或全部两个代理在交互中可能检测到的异常可能使得根据高版本运行的代理能够报告另一代理需要升级到同一版本。
在此把下面重复的摘要文本并入本文字说明中 提供一种用于MAS的异常管理方法,其中,多个应用代理被设置成能够通过通信网络彼此交互。该MAS具有多个异常管理代理,所述多个异常管理代理被设置成在指配代理已经确定发生了由与被指配代理相关联的一个或更多个状况潜在地引起的交互异常时,从该指配代理接收有关该被指配代理的报告。该异常管理代理被设置成确定引起交互异常的与被指配代理相关联的一个或更多个状况。该异常管理代理还被设置成修复所述状况。该异常管理方法包括以下步骤所述多个异常管理代理中的至少一个从指配代理接收包括有关与被指配代理的交互的信息的消息。该消息包括标识被指配代理的信息和有关交互异常的其它信息。根据指配代理提供的信息来确定可能引起交互异常的与被指配代理相关联的一个或更多个可能的状况。接着,执行多个测试,以确定与被指配代理相关联的至少一个状况。最后,修复与被指配代理相关联的状况。接着,可以向指配代理提供反馈信息,以使得交互能够恢复或继续。
权利要求
1、一种用于多代理系统的代理指配方法,在该多代理系统中,参与或试图参与与另一代理的交互的第一代理,把该另一代理指配至该多代理系统中的至少一个异常管理代理,以确定与该另一代理有关的状况是否已经引起第一代理检测到的在第一代理与该另一代理之间的交互中的交互异常,该指配过程包括第一代理执行以下步骤
如果与所述另一代理的交互未根据第一代理的期望进行,则确定已经引起交互异常;
第一代理生成报告消息,该报告消息包括与所述交互异常有关并使得所述另一代理能够被异常管理代理识别的信息;以及
第一代理通过把所述报告消息发送给至少一个异常管理代理来指配所述另一代理,由此,接收异常管理代理处理由该报告提供的信息,来确定引起交互异常的影响所述另一代理的至少一个状况,该交互异常包括所述另一代理未根据第一代理的期望与第一代理交互。
2、根据权利要求1所述的代理指配方法,其中,在所述确定与所述另一代理的交互未根据第一代理的期望进行的步骤之前,第一代理试图开始参与与所述另一代理的交互。
3、根据权利要求1所述的代理指配方法,其中,在所述确定与所述另一代理的交互未根据第一代理的期望进行的步骤之前,第一代理试图响应于所述另一代理而参与与该另一代理的交互。
4、根据任一前述权利要求所述的代理指配方法,其中,引起所述交互异常的至少一个状况包括与所述另一代理的服务组件有关的故障。
5、根据权利要求4所述的代理指配方法,其中,引起交互异常的至少一个状况包括与支持所述另一代理的设备有关的故障。
6、根据权利要求4或5所述的代理指配方法,其中,引起所述交互异常的至少一个状况包括与关联于所述另一代理的代理容器有关的故障。
7、根据权利要求4到6中的任一权利要求所述的代理指配方法,其中,引起所述交互异常的至少一个状况包括与所述另一代理有关的故障。
8、根据任一前述权利要求所述的代理指配方法,其中,第一代理向设置成管理与所述另一代理有关的指配的多个异常管理代理中的一个进行报告,所述多个异常管理代理中的所述一个已被利用为所述多代理系统提供的一个或更多个代理描述目录,根据在该多代理系统内实现的负载平衡规则,与所述被指配代理关联起来。
9、根据任一前述权利要求所述的代理指配方法,其中,第一代理通过首先与将所述被指配代理与一个或更多个异常管理代理进行关联的一个或更多个代理描述目录进行通信,来确定设置在所述多代理系统内的哪个异常管理代理应当接收所述报告消息。
10、根据任一前述权利要求所述的代理指配方法,其中,处理报告信息的所述异常管理代理进行实现异常管理方案,该异常管理方案修复影响所述另一代理的所述至少一个状况。
11、一种多代理系统中的代理,该代理适于作为权利要求1到10中的任一权利要求中的代理指配方法中的第一代理而进行参与,该代理包括
交互参与装置,其试图参与与所述多代理系统中的至少所述另一代理的交互;
交互异常确定装置,其确定已经引起交互异常;
报告消息生成装置,其生成针对所述另一代理的报告消息;以及
指配装置,其将所述另一代理指配至至少一个异常管理代理,以使得其它异常代理能够实现异常管理方案,来修复影响所述另一代理的所述至少一个状况。
12、一种多代理系统中的异常管理代理,该异常管理代理适于参与如权利要求1到10中的任一权利要求所述的代理指配方法,该异常管理代理包括
报告消息接收装置,其接收报告消息,该报告消息包括第一代理针对该第一代理与另一代理的经历而确定的信息,该信息使得所述另一代理能够被标识给所述异常管理代理;
信息处理装置,其处理接收到的信息,以确定其它代理的一个或更多个特征;以及
状况确定装置,其确定与所述另一代理相关联的并且引起所述交互异常的所述至少一个状况;以及
状况修复装置,其修复所述至少一个状况。
13、一种交互异常原因确定方法,该交互异常原因确定方法对在指配代理与被指配代理之间的交互中检测到的交互异常的原因进行确定,该指配代理利用如权利要求1到10中的任一权利要求所述的代理指配方法,把所述被指配代理指配至多代理系统中的至少一个异常管理代理,其中,异常管理代理通过对由所述指配代理提供的信息进行处理来确定与已经发生交互的所述被指配代理相关联的至少一个状况,所述交互异常原因确定方法包括以下步骤
处理由所述指配代理提供的信息以识别与所述被指配代理相关联的设备;
向与所述被指配代理相关联的设备发送测试消息,以确定与该设备相关联的至少一个状况是否是引起在所述指配代理与所述被指配代理之间的交互中的交互异常的状况;以及
在所述异常管理代理未从所述设备接收到对所述测试消息的响应的情况下,或者如果接收到包含被处理时指示所述设备具有引起所述交互异常的状况的信息的测试消息;
则确定存在影响所述设备的状况,该状况引起了在所述被指配代理与所述指配代理之间的交互中的所述异常。
14、根据权利要求13所述的交互异常原因确定方法,其中,所确定的状况是与所述设备相关联的故障。
15、根据权利要求13或14所述的交互异常原因确定方法,其中,在所述处理由所述指配代理提供的信息以识别与所述被指配代理相关联的设备的步骤中,还识别了与被指配设备相关联的代理容器,并且其中,所述交互异常原因确定方法还包括以下步骤
向所述被指配代理的代理容器发送测试消息;并且,在未从所述代理容器接收到对所述测试消息的响应的情况下,或者如果接收到包含在被处理时指示该代理容器具有引起所述交互异常的状况的信息的测试消息;并且
确定存在影响所述代理容器的状况,该状况引起了在所述被指配代理与所述指配代理之间的交互中的交互异常。
16、根据权利要求15所述的交互异常原因确定方法,其中,所述代理容器的所述状况是与所述代理容器相关联的故障。
17、根据权利要求13到16中的任一权利要求所述的交互异常原因确定方法,该交互异常原因确定方法还包括以下步骤
向所述被指配代理发送测试消息,以确定该被指配代理是否具有引起所述交互异常的状况;和
如果来自所述被指配代理的响应不满足一个或更多个预定标准,
则确定该代理具有引起所述交互异常的状况。
18、根据权利要求17所述的交互异常原因确定方法,其中,所述异常管理代理确定检测到的状况与关联于所述被指配代理的故障有关。
19、根据权利要求18所述的交互异常原因确定方法,其中,所述状况与关联于所述被指配代理的故障无关,从而所述异常管理代理确定检测到的状况要求将该被指配代理修改成与所述指配代理交互。
20、根据权利要求13到19中的任一权利要求所述的交互异常原因确定方法,其中,在所述异常管理代理确定没有与所述被指配代理相关联的状况的情况下,所述异常管理代理执行服务层级测试。
21、根据权利要求13到20中的任一权利要求所述的交互异常原因确定方法,其中,在确定引起所述交互异常的一个或更多个状况之后,所述异常管理代理还执行以下步骤
生成与所述状况有关的合适反馈信息;和
向所述指配代理发送所述反馈信息。
22、一种多代理系统中的异常管理方法,在该多代理系统中,多个应用代理被设置成能够通过通信网络彼此交互,该多代理系统具有多个异常管理代理,所述多个异常管理代理被设置成,在指配代理确定已经发生由与被指配代理相关联的一个或更多个状况潜在地引起的交互异常时,接收来自该指配代理的有关所述被指配代理的报告,其中,所述异常管理代理被设置成确定与该被指配代理相关联的已经引起所述交互异常的一个或更多个状况,并且其中,所述异常管理代理还被设置成修复所述状况以消除该状况,所述异常管理方法包括以下步骤
所述多个异常管理代理中的至少一个从所述指配代理接收包含关于与所述被指配代理的交互的信息的消息,该消息包括标识所述被指配代理的信息和与所述交互异常有关的其它信息;
根据由所述指配代理提供的信息,来识别与所述被指配代理相关联的可能已经引起所述交互异常的一个或更多个可能状况;
执行多个测试,来确定与所述被指配代理相关联的并且从引起所述异常发生的所述被指配代理的所述可能的一个或更多个状况中选择的至少一个状况;以及
修复与所述被指配代理相关联的状况。
23、根据权利要求22所述的异常管理方法,其中,与所述被指配代理相关联的所述至少一个状况是与下列中的一个相关联的状况
与所述被指配代理相关联的设备;
与所述被指配代理相关联的代理容器;
所述被指配代理;
所述被指配代理提供的服务。
24、根据权利要求22或23所述的异常管理方法,其中,所述至少一个状况包括故障。
25、根据权利要求22到24中的任一权利要求所述的异常管理方法,其中,所述指配代理通过参照位置目录和服务目录,来选择把所述被指配代理指配至的异常管理代理,所述位置目录和服务目录包括将所述被指配代理与异常管理代理相关联的对所述被指配代理的一个或更多个特征的描述。
26、根据权利要求22到25中的任一权利要求所述的异常管理方法,其中,所述指配代理向所述异常管理代理提供信息,该信息包括下列信息
标识所述被指配代理;
指配的时间;
所述指配代理已经确定的与所述异常有关的与所述被指配代理相关联的一个或更多个检测到的状况;以及
报告代理的身份。
27、根据权利要求22到26中的任一权利要求所述的异常管理方法,其中,所述被指配代理包括一个或更多个任务组件,并且其中,所述异常管理代理能够与中介代理通信,以提供对所述一个或更多个任务组件中的每一个的描述,其中,引起在所述被指配代理与所述指配代理之间的交互中的异常的状况被确定为与所述被指配代理提供的服务相关联,并且为修复该状况,所述异常管理代理从所述中介代理获得对用于所述被指配代理的服务任务组件的新描述。
28、根据权利要求22到27中的任一权利要求所述的异常管理方法,其中,当确定被指配代理存在已经引起所述异常的状况时,所述异常管理代理转向具有所述状况的所述被指配代理的代理容器,并且执行下列步骤
生成所述被指配代理的副本代理;
将所述被指配代理的内部状态复制到所述副本代理;
通过用针对所述副本代理的登记条目替换被指配代理登记条目来更新所述登记装置,以使得所述副本代理能够与所述指配代理交互。
29、根据权利要求22到28中的任一权利要求所述的异常管理方法,其中,所述被指配代理设有至少一个服务任务组件,并且其中,所述至少一个服务任务组件被确定为引起所述交互异常的状况的原因,所述异常管理方法还包括以下步骤
所述异常管理代理向所述被指配代理发送对引起所述交互异常的所述至少一个服务任务组件进行标识的请求消息;
所述被指配代理处理接收到的消息;
所述被指配代理向所述多代理系统中的中介器代理发送消息;
所述中介器代理向所述被指配代理提供针对引起所述交互异常的各服务任务组件的替换服务任务组件;
所述被指配代理用所述中介器代理提供的服务任务组件替换引起所述交互异常的各服务任务组件。
30、根据权利要求22到28中的任一权利要求所述的异常管理方法,其中,当与所述被指配代理相关联的所述至少一个状况是与所述被指配代理提供的代理容器相关联的状况时,所述异常管理方法还包括以下步骤
所述异常管理代理向与所述被指配代理相关联的设备的守护代理发送通知消息;
在接收到该消息时,所述守护代理生成所述被指配代理的所述代理容器的副本容器;
所述守护代理生成针对所述代理容器中的各代理的一个或更多个副本代理;
所述守护代理将所述代理容器中的所述一个或更多个代理的内部状态复制到所述副本容器中的一个或更多个副本代理中;以及
所述守护代理利用各所述副本代理的代理描述来更新位置目录和服务目录。
31、根据权利要求30所述的异常管理方法,其中,所述多代理系统是根据FIPA标准实现的,并且所述位置目录包括白页设施,而所述服务目录包括黄页设施。
32、根据权利要求22到30中的任一权利要求所述的异常管理方法,该异常管理方法还包括以下步骤
在反馈级处,所述异常管理代理在实现异常管理处理之后向所述指配代理发送指示所述被指配代理的状态的反馈报告。
33、一种多代理系统,该多代理系统包括多个异常管理代理,其中,各异常管理代理与一个或更多个代理容器相关联,各代理容器与至少一个代理相关联,所述多代理系统还包括
代理位置登记和代理服务登记,该代理位置登记和代理服务登记共同提供对所述多代理系统中的代理的位置和服务的描述,其中,所述多个异常管理代理中的每一个都与所述多代理系统中的一个或更多个代理相关联,其中,所述代理位置登记和代理服务登记被共同设置成,在另一代理被怀疑具有在被指配代理与指配代理之间的交互中引起交互异常的状况时,使得该指配代理能够识别报告所针对的异常管理代理。
34、根据权利要求33所述的多代理系统,其中,所述代理位置登记和代理服务登记中的每一个都由所述多代理系统中的与支持所述指配代理的容器不同的容器支持。
35、根据权利要求33或34中的任一权利要求所述的多代理系统,其中,在一异常管理代理接收到异常报告时,该异常管理代理被重新分配给与所述被指配代理相关联的设备。
36、根据权利要求33到35中的任一权利要求所述的多代理系统,其中,所述多代理系统中的各代理包括被设置成经由一个或更多个可执行软件组件与其它应用代理交互的应用代理。
37、根据权利要求33到36中的任一权利要求所述的多代理系统,其中,一守护代理驻留在与所述多代理系统中的应用代理相关联的各客户端设备上,其中,各守护代理被设置成监控其客户端设备的应用代理的功能性。
38、根据权利要求33到37中的任一权利要求所述的多代理系统,其中,一个或更多个可执行软件组件中介器代理保持用于所述多代理系统的应用代理的可执行软件组件的库,以使得该应用代理能够对来自应用代理的查询消息进行响应。
39、根据权利要求33到38中的任一权利要求所述的多代理系统,其中,在一异常管理代理修复引起所述交互异常的与所述被指配代理相关联的状况之后,该异常管理代理联系所述多代理系统中的代理管理系统代理和目录设施代理,以利用与所述被指配代理有关的信息来更新所述多代理系统中的一个或更多个登记。
40、根据权利要求39所述的多代理系统,其中,被提供以更新所述多代理系统中的所述一个或更多个登记中的至少一个的所述信息包括与替换所述被指配代理的副本代理有关的信息。
41、根据权利要求33到40中的任一权利要求所述的多代理系统,其中,驻留在所述多代理系统中的客户端设备上的应用代理、代理容器以及守护代理各实现一测试接口,该测试接口对来自所述多代理系统的异常管理代理的测试消息进行响应。
42、一种设置在根据权利要求33到41中的任一权利要求所述的多代理系统中的客户端域中的设备上的应用,该应用提供适于将所述多代理系统中的其它代理指配至异常管理代理的一个或更多个应用代理。
43、设置成提供支持权利要求42中的应用的平台的设备。
44、一种负载平衡方案,该负载平衡方案被设置成实现在根据权利要求33到41中的任一权利要求所述的多代理系统中,其中,该负载平衡方案把与多个代理相关联的异常管理代理的数量保持在预定范围内,所述方法包括以下步骤
确定在所述多代理系统中的各代理组中的应用代理的数量;
确定负责所述多代理系统中的各代理组的异常管理代理的数量;
针对所述多代理系统中的各代理组,确定为该代理组中的各应用代理提供异常管理服务的异常管理代理的数量与该代理组中的应用代理的数量之间的比值;以及
针对与所述比值高于所述预定范围的所述代理组相关联的一个或更多个异常管理代理,修改位置目录条目和/或服务目录条目,以将所述异常管理代理与所述比值低于所述预定范围的代理组重新关联起来。
45、一种用于多代理系统的代理管理系统,其中,未根据另一代理的期望动作的第一代理被该另一代理报告给异常管理代理,所述代理管理系统包括
报告生成装置,其向所述多代理系统中的至少一个异常管理代理生成标识第一代理的报告;和
处理装置,其处理由消息提供的信息,以确定第一代理为何表现出触发报告生成的动作的至少一个原因状况。
46、根据权利要求45所述的代理管理系统,其中,第一代理在该第一代理具有故障时不根据所述另一代理的期望动作。
47、根据权利要求46所述的代理管理系统,其中,所述异常管理代理被设置成诊断引起代理按触发所述另一代理生成所述报告的方式来动作的故障的类型。
48、一种多代理系统,该多代理系统包括多个代理,其中,至少一个代理被设置成,在所述多代理系统中的一个或更多个其它代理未根据所述至少一个代理的一个或更多个预定交互期望来与所述至少一个代理交互的情况下,生成把所述一个或更多个其它代理指配至至少一个异常管理代理的报告,所述多代理系统包括
消息生成装置,其被设置成使得所述至少一个代理能够生成包括与所述交互异常有关的信息的消息,由此,各消息使得所述一个或更多个其它代理能够被至少一个异常管理代理识别;和
消息发送装置,其被设置成使得所述至少一个代理能够通过发送所述报告消息,把所述一个或更多个其它代理指配至至少一个异常管理代理;
处理装置,其被设置成处理由所述消息提供的信息,以确定所述一个或更多个其它代理未根据所述至少一个代理的一个或更多个预定期望与所述至少一个代理交互的至少一个原因状况。
49、一种用于多代理系统的故障管理系统,其中,未根据另一代理的期望动作的第一代理被该另一代理报告给异常管理代理,所述故障管理系统包括
报告生成装置,其向所述多代理系统中的至少一个异常管理代理生成标识第一代理的报告;和
处理装置,其处理由消息提供的信息,以确定第一代理为何表现出触发报告生成的动作的至少一个原因状况。
全文摘要
本发明提供了一种用于多代理系统的异常管理方法,其中,多个应用代理被设置成能够通过通信网络彼此交互。该多代理系统具有多个异常管理代理,所述多个异常管理代理被设置成在指配代理已经确定发生了由与被指配代理相关联的一个或更多个状况潜在地引起的交互异常时,从该指配代理接收有关该被指配代理的报告。该异常管理代理被设置成确定引起交互异常的与被指配代理相关联的一个或更多个状况。该异常管理代理还被设置成修复所述状况。该异常管理方法包括以下步骤所述多个异常管理代理中的至少一个从指配代理接收包括有关与被指配代理的交互的信息的消息。该消息包括标识被指配代理的信息和有关交互异常的其它信息。根据指配代理提供的信息来确定可能引起交互异常的与被指配代理相关联的一个或更多个可能的状况。接着,执行多个测试,以确定与被指配代理相关联的至少一个状况。最后,修复与被指配代理相关联的状况。接着,可以向指配代理提供反馈信息,以使得交互能够恢复或继续。
文档编号H04L12/24GK1934538SQ200580009369
公开日2007年3月21日 申请日期2005年3月11日 优先权日2004年3月22日
发明者李河宾, 帕特里克·米哈伊列斯库, 约翰·威廉·谢泼德森 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1