我正在为一家医院建立一个多代理系统,该医院有多名患者向医院提供服务。我开始通过构建继承了jade代理属性的患者类来编程这个系统,但是我很难找到DFAgentDescription和ServiceDescription应该完全做什么。
有人可以解释一下吗?
谢谢
答案 0 :(得分:0)
来自JADE教程:
对于每个已发布的服务,都会提供说明,包括 服务类型,服务名称,所需的语言和本体 利用该服务和许多特定于服务的属性。 DFAgentDescription,ServiceDescription和Property类, 包含在jade.domain.FIPAAgentManagement包中,代表 三个提到的抽象。为了发布代理服务 必须创建一个正确的描述(作为一个实例 DFAgentDescription类)并调用register()的静态方法 DFService类。通常,但不一定是服务注册 (发布)在setup()方法中完成,如下所示 卖方代理人。
如果我想尽可能简单地描述它,那么提供服务的每个代理都应该在黄页中注册其服务(在JADE中称为Directory Facilitator或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();
}
...
}