Как создавать контейнеры и добавлять в них агентов в JADE?

Я только новичок в JADE. Я хотел бы знать, как создавать контейнеры, отличные от основного, и добавлять в него несколько агентов. Был бы признателен за полный код создания.

Спасибо!


person user3382935    schedule 13.03.2014    source источник


Ответы (2)


Как указано в ответе Тафадзва Чикудо, обычный способ запустить контейнер - запустить jade.Boot из командной строки (или в сценарии оболочки).

Но это также возможно сделать внутри другой программы Java, используя «внутрипроцессный интерфейс JADE» (пакет jade.wrapper, класс jade.core.Runtime).

Например, следующий код создает «периферийный» контейнер (подключается к основному контейнеру на локальном хосте) и запускает в нем один агент.

//Get the JADE runtime interface (singleton)
jade.core.Runtime runtime = jade.core.Runtime.instance();
//Create a Profile, where the launch arguments are stored
Profile profile = new ProfileImpl();
profile.setParameter(Profile.CONTAINER_NAME, "TestContainer");
profile.setParameter(Profile.MAIN_HOST, "localhost");
//create a non-main agent container
ContainerController container = runtime.createAgentContainer(profile);
try {
        AgentController ag = container.createNewAgent("agentnick", 
                                      "my.agent.package.AgentClass", 
                                      new Object[] {});//arguments
        ag.start();
} catch (StaleProxyException e) {
    e.printStackTrace();
}
person Rémi    schedule 16.03.2016

Периферийный контейнер можно запустить следующим образом: java jade.Boot -container -host xxxx -agents z: package.agent; y: package.agent, где xxxx - это IP-адрес основного контейнера, z - это имя, которое вы даете первому агенту, y - это имя, которое вы даете второму агенту, а пакет - это пакет, который содержит агентов в файле jar

person Tafadzwa Chikudo    schedule 20.02.2015