Я только новичок в JADE. Я хотел бы знать, как создавать контейнеры, отличные от основного, и добавлять в него несколько агентов. Был бы признателен за полный код создания.
Спасибо!
Я только новичок в JADE. Я хотел бы знать, как создавать контейнеры, отличные от основного, и добавлять в него несколько агентов. Был бы признателен за полный код создания.
Спасибо!
Как указано в ответе Тафадзва Чикудо, обычный способ запустить контейнер - запустить 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();
}
Периферийный контейнер можно запустить следующим образом: java jade.Boot -container -host xxxx -agents z: package.agent; y: package.agent, где xxxx - это IP-адрес основного контейнера, z - это имя, которое вы даете первому агенту, y - это имя, которое вы даете второму агенту, а пакет - это пакет, который содержит агентов в файле jar