我希望为一家医院建立一个多代理系统,让多个病人向医院提供服务。我开始对这个系统进行编程,构建继承了jade代理属性的started类,但我很难找到DFAgentDescription和ServiceDescription到底应该做什么。
谁能解释一下吗?
谢谢
发布于 2015-12-26 06:30:58
玉石教程:
对于每个已发布的服务,都提供了描述,包括服务类型、服务名称、利用该服务所需的语言和本体以及一些特定于服务的属性。DFAgentDescription、ServiceDescription和属性类(包括在jade.domain.FIPAAgentManagement包中)表示三个提到的抽象。为了发布服务,代理必须创建适当的描述(作为DFAgentDescription类的实例),并调用DFService类的寄存器()静态方法。通常(但不一定),服务注册(发布)是在setup()方法中完成的,在Book代理的情况下如下所示。
如果我想尽可能简单地描述它,每个提供服务的代理都应该在黄页中注册它的服务( JADE中称为目录促进者或DF,每个平台至少有一个DF),因此在同一个平台上的其他代理可以搜索它。
为了在DF中注册,您需要创建一个ServiceDescription,这通常是在代理的setup方法中完成的:
protected void setup() {
...
// Register the book-selling service in the yellow pages
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName(getAID());
ServiceDescription sd = new ServiceDescription();
sd.setType("book-selling");
sd.setName("JADE-book-trading");
dfd.addServices(sd);
try {
DFService.register(this, dfd);
}
catch (FIPAException fe) {
fe.printStackTrace();
}
...
}https://stackoverflow.com/questions/33871830
复制相似问题