翡翠的Java代理通信(Jade Java Agent Communication)

2019-09-27 05:21发布

我工作的玉为我的项目多代理平台。

我有一个包含代理主容器和代理容器。

我想从代理将数据发送到代理容器或主容器..

由于我的经纪人是一个客户端和我的主容器将是一个服务器。

在玉架构我理解的是,代理容器将包含试剂。

那可能吗?

我想知道有API来代理之间发送数据。

提前致谢

Answer 1:

我不知道它是什么,你正在努力实现。 谁是您从JADE代理发送ACLMessage结束reciepient? 是这一切是驻留在目标容器中的代理商?

只是为了澄清,容器本质上是其中的智能可以驻留在一个地址,它本身并不是一个entitiy可以发布和收到的邮件。 在玉框架,代理功能的ACLMessages的“收件箱”,基本上包含收到的邮件列表的BlockingQueue的对象。 代理是能够观察到自己的列表,并把它们作为其生命周期的收益。 容器不拥有这种能力。

ACLMessages可以在特定的药物加入receipients等细节被引导。 即recieving消息可以通过利用侦听特定ACLMessages代理MessageTemplate这里可以特别选择基于匹配标准,例如代理的“收件箱”的邮件:

Messagetemplate mt = MessageTemplate.MatchPerformative(ACLMessage.INFORM);
ACLMessage msg = myAgent.receive(mt);

将允许所述代理从its'inbox采取下一个ACLMessage.INFORM消息”。

进一步的能力,我建议你去通过玉API 。

而且,我相信你正在努力实现这是一个容器内将消息发送给所有代理。 您可以查询AMS代理的代理程序的列表是在平台上,然后由它们进行过滤ContainerID 。 这里是一些代码,让你开始:

AMSAgentDescription[] agents = null;
SearchConstraints sc = new SearchConstraints();
// if multiple searchs are done, isolate them based on the name of searching agent
sc.setSearchId(getAID().getName());
sc.setMaxResults(new Long(-1)); // long value of -1 means get all agents
agents = AMSService.search(this, new AMSAgentDescription(), sc); //Query AMS agent for available agents

此代码将检索平台,与AMS代理注册的所有可用的代理列表。 祝你好运,后期如果您有任何问题:)



文章来源: Jade Java Agent Communication