一种基于XML的多AGENT消息通讯方法.pdf

上传人:111****112 文档编号:6335276 上传时间:2019-06-02 格式:PDF 页数:6 大小:285.33KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410592718.4

申请日:

2014.10.29

公开号:

CN105554045A

公开日:

2016.05.04

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 29/08申请公布日:20160504|||公开

IPC分类号:

H04L29/08; G06F17/30

主分类号:

H04L29/08

申请人:

镇江华扬信息科技有限公司

发明人:

不公告发明人

地址:

212009 江苏省镇江市新区智慧大道(经十二路)689号1518室

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

一种基于XML的多Agent消息通讯方法以消息传输的方式实现多Agent系统的通讯消息的XML格式封装和解析机制,以及基于消息优先级的消息传送同步控制算法,实现了消息的可靠有效传输。

权利要求书

1.一种基于XML的多Agent消息通讯方法其特征是(1)静态信息表:存储Agent自身的静态信息,如Agent标识、本身的性能、IP地址等;(2)动态信息表:主要存储通讯状态下的其它Agent信息。2.根据权利要求1将信息表、消息缓存池、通讯服务管理器和其他各部分分别定义成Java类的形式;把发送的消息封装成XML格式文档,然后进行传输。3.根据权利要求2通过使用FIPA-ACL消息,每个Agent可以向其他Agent发送请求或请求服务。4.根据权利要求3把这种消息结构封装成XML格式。5.根据权利要求4对这种XML进行解析;主要是在javax.xml.parsers.DocumentBuilderFactory类中,调用newInstance()方法,生成一个DocumentBuilderFactory对象;DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance()。6.根据权利要求5应用factory调用newDocumentBuilder()方法生成DocumentBuilder对象;javax.xml.parsers.DocumentBuilderbuild=factory.newDocument-Builder()。7.根据权利要求6中的build对象调用publicDocumentparse(Filef)方法解析f指定的XML文档,并通过Element类型对象来分析具有子孙关系节点的数据;Org.w3c.dom.Documentdom=build.parse(newFile(move.xml));Elementroot=dom.getDocumentElement()。8.根据权利要求7解析出来的数据调用getElementByTagName(String)方法,识别各个标记节点内容;另外,对于含有属性的节点要做特殊的处理,让该节点对象调用NamedNodeMapgetAttributes()方法来解析属性内容;NodeListnodelist=root.getElementByTagName(“acl-message”);NamedNodeMapnnm=nodelist.item(i).getAttributes()。

说明书

一种基于XML的多Agent消息通讯方法

技术领域

一种基于XML的多Agent消息通讯方法主要涉及计算机通讯方面领域。

背景技术

基于多Agent分布式系统是以网络技术为基础,将分布在不同地理位置上的Agent集成在一个时间和空间相一致的环境中,通过它们之间的通讯与互操作,实现知识与信息共享,从而完成复杂任务的求解。多Agent分布式系统广泛应用在如电子商务、机器人控制、生产计划与调度等不同领域中。目前,关于多Agent分布式系统的研究,主要集中在支持协作的通讯方式上,并提出了许多协作通讯模型。如基于黑/白板结构和基于消息的通讯模型。在基于黑板结构的多Agent通讯模型中,黑板提供公共工作区,Agent可以交换信息、数据和知识。但当Agent结点数目增多时,黑板中的数据量会呈指数增长,导致系统的通讯效率降低。在基于消息的通讯模型中,Agent间通过使用统一的消息传送协议,克服了黑板系统的缺陷,提高了系统的通讯能力。但是,在消息的通讯模型中,如何进行Agent间消息的传送和同步,保证通讯的可靠性与有效性,即在通信的情况下保证消息以最小的通讯时间可靠提交;如何保证消息不受协议响应结构的限制,提高系统通讯的灵活性仍然是研究的一个难点。

主要以消息传输的方式实现多Agent分布式系统的通讯,通过采用消息的XML格式封装和解析实现消息的传送。封装后的消息由于可以绑定更多的信息,支持对其的扩展,因此克服了协议响应结构对消息的限制,提高了消息传送的灵活性。同时为了保持Agent之间消息传送的时空一致性,在消息传输过程中采用了基于消息优先级的传输同步控制算法,保证了消息可靠有效传输。最后给出了系统仿真的实现框架,并在Win2000系统上应用Java语言得以实现验证。

发明内容

通过国家专利检索没有发现关于此系统方面的申请资料。

在多Agent分布式系统中,为了实现Agent之间的通讯,要求每一个Agent知道其它Agent的名称、通信地址、通讯端口、协作能力等等。因此,在每个仿真Agent中设计一个通讯Agent模块。该模块负责所有与通讯有关的动作,同时该模块也是Agent间进行通讯的一个接口。每个通讯模块包含信息表、消息缓存池和一个通讯服务管理器三部分。信息表用来记录Agent中的一些基本特性。信息表主要包括以下两部分:(1)静态信息表:存储Agent自身的静态信息,如Agent标识、本身的性能、IP地址等;(2)动态信息表:主要存储通讯状态下的其它Agent信息。在每个Agent启动与其他Agent通讯时,会将各种通讯状态信息登记到动态信息表中,并在退出时删除这些信息,以保持动态信息表的实时更新;消息缓存池:Agent用来存储发送和接收到的消息;通讯服务管理器:主要负责消息的XML格式封装和解析、消息同步传输控制。避免由于同步问题造成的因果错误。

将信息表、消息缓存池、通讯服务管理器和其他各部分分别定义成Java类的形式;把发送的消息封装成XML格式文档,然后进行传输。在底层采用TCP/IP通讯协议和socket通讯技术实现多仿真Agent结点的通讯。具体的操作方法是:

1.基于XML的消息封装和解析:1)在消息传输中,消息的语义内容是Agent通讯的核心部分。主要应用FIPA-ACL消息结构[5]。通过使用FIPA-ACL消息,每个Agent可以向其他Agent发送请求或请求服务。FIPAACL消息结构是一种基于原语的消息结构,由外到内分为3个层次:envelope、content、message。envelope:描述消息传输的各种附加信息,如发送者、接受者等;content:描述消息传输的具体内容;message:描述消息传输的各种参数,如消息使用的编码格式,传输的协议等。

每次消息只有在固有的原语范围内进行消息请求与服务(如接受(accept)、请求(request)等),扩展性较差。因此,为了克服协议响应结构对消息传送的限制。本文将这种消息结构封装成XML格式。XML格式的优点在于可以自定义诸多XML标记元素,并且XML元素可以绑定更多的信息,支持对其扩展。同时,传送时易于实现数据的压缩传输,提高了传输效率,即节约网络流量,减少通讯时间。如在message.dtd中扩展了优先级的属性。

基于XML的消息结构(message.dtd)如下:

<!ELEMENTacl-message(msg-type,msg-param)

<!ELEMENTmsg-type(agree|request|refuse|accept-proposal|cancel)>

<!ELEMENTagree(#PCDATA)>

……

<!ELEMENTmsg-param(#PCDATA)>

<!ATTLISTmsg-paramsenderCDATA#REQUIRED

receiverCDATA#REQUIRED

contentCDATA#REQUIRED

in-reply-toCDATA#REQUIRED

languageCDATA#REQUIRED

priorityCDATA#REQUIRED

>

例如:AgentA请求(request)AgentB去推动一个箱子。

传递消息结构(move.xml)如下:

<?xmlversion="1.0"?>

<!DOCTYPEacl-messageSYSTEM"message.dtd">

<acl-message>

<msg-type>request</msg-type>

<msg-paramsender="A"

receive="B"

content="action(agent-identifier:nameB)(deliverbox(loc12)"

language="fipa-sl"

protocol="fipa-request"

reply-with="order567"

priority="5">

</msg-param>

</acl-message>。

2)XML文档的解析

接收端为了识别具体的请求消息内容,需要对XML文档进行解析。解析的目的就是要从XML文档中读取用户所需要的数据。应用DOM解析器[6]实现对XML文档的解析。文档解析后,首先判断属于哪种类型的消息,然后根据消息激活相应的

动作。解析步骤如下:

(1)在javax.xml.parsers.DocumentBuilderFactory类中,调用newInstance()方法,生成一个DocumentBuilderFactory对象。

DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();

(2)应用factory调用newDocumentBuilder()方法生成DocumentBuilder

对象。

javax.xml.parsers.DocumentBuilderbuild=factory.newDocument-

Builder();

(3)build对象调用publicDocumentparse(Filef)方法解析f指定的XML文档,并通过Element类型对象来分析具有子孙关系节点的数据。

Org.w3c.dom.Documentdom=build.parse(newFile(move.xml));

Elementroot=dom.getDocumentElement();

(4)最后,解析出来的数据调用getElementByTagName(String)方法,识别各个标记节点内容。另外,对于含有属性的节点要做特殊的处理,让该节点对象调用NamedNodeMapgetAttributes()方法来解析属性内容。

NodeListnodelist=root.getElementByTagName(“acl-message”);

NamedNodeMapnnm=nodelist.item(i).getAttributes();//第i个结

点属性。

2.通讯服务管理器:1)仿真Agent间实现相互通讯就要处理Agent通讯过程中的各种事务。在每个通讯模块中设置一个通讯服务管理器。通讯服务管理器作为消息通讯的枢纽,在系统中起着核心作用。通讯服务管理主要包括XML文档转换与解析、Agent系统管理、Agent域名管理和消息传输过程管理。XML文档转换与解析:完成消息的XML格式封装和XML文件的解析;Agent域名管理:解析和查询其他Agent的名称、通讯地址和通讯端口等信息;Agent系统管理:负责仿真Agent内部其他模块间的协同操作;消息传输过程管理:主要完成通讯中服务监听与线程管理和消息发送与接收的传输控制,如消息传输同步控制;为其它Agent分配线程等。

通过定义如下的类与方法来实现通讯服务管理器的功能。服务监听与线程管理是由run方法进行处理。方法doComm-Manage用于完成消息传输的同步控制管理。消息的XML格式封装和解析分别由CreateXml类中的doConverXml方法和parseXml方法实现。

通讯服务管理类定义为:

ClassCommServerimplementsRunnable,IEventHandler

{CreateXmlcrxml=newCreateXml();

publicvoidsetup(){//启动服务监听}

pulicvoiddoCommManage(Stringmessage){}

publicvoidrun(){//服务监听与线程管理}

publicvoidsent()

{ZipOutputStreamout=newZipOutputStream(socket.getOutputStream());

out.putNextEntry(newZipEntry(“message1.xml”));

out.write();//将数据压缩后写入输出流;

}

publicStringreceive(){}

publicvoidaction(){

synchronized(this){}

//消息处理过程}

}。

2).鉴于多Agent仿真环境分布式的特点,为保证仿真Agent结点间通讯在时间和空间上的一致,本文给出了基于消息优先级的传输控制算法。首先让封装好的消息XML文件根据优先级高低进入传输任务就绪队列。优先级是根据传输任务紧急程度来确定的。

系统总是允许优先级最高的任务开始执行。当一个优先级更高的任务到达时,允许将当前传输任务暂时挂起,而令高优先级任务立即投入运行。采用这种方式能满足最紧急的消息优先传输。若所有的进程都具有相同的优先级初值,则最先进入先执行。在具体实现时对高优先级任务采用同步代码块策略来控制,从而保证消息传送在时间和空间上的一致。在传送时,为了保证通讯的有效性,以最小的通讯时间来决定何时采用本地通讯,何时采用远程通讯。

一种基于XML的多AGENT消息通讯方法.pdf_第1页
第1页 / 共6页
一种基于XML的多AGENT消息通讯方法.pdf_第2页
第2页 / 共6页
一种基于XML的多AGENT消息通讯方法.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《一种基于XML的多AGENT消息通讯方法.pdf》由会员分享,可在线阅读,更多相关《一种基于XML的多AGENT消息通讯方法.pdf(6页珍藏版)》请在专利查询网上搜索。

一种基于XML的多Agent消息通讯方法以消息传输的方式实现多Agent系统的通讯消息的XML格式封装和解析机制,以及基于消息优先级的消息传送同步控制算法,实现了消息的可靠有效传输。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1