Jade DFAgentDescription和ServiceDescription

时间:2015-11-23 13:04:52

标签: java agents-jade

我正在为一家医院建立一个多代理系统,该医院有多名患者向医院提供服务。我开始通过构建继承了jade代理属性的患者类来编程这个系统,但是我很难找到DFAgentDescription和ServiceDescription应该完全做什么。

有人可以解释一下吗?

谢谢

1 个答案:

答案 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();
    }
    ...
}