Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Подробнее о платформе JADE СМ. В приложении к лр№2.

Рис.1.5. Запуск платформы JADE.

 

Каждый агент платформы JADE должен расширять базовый класс jade.core.Agent. В

простейшем случае агент может быть реализован следующим образом:

Коды агентов:

Пакет А (Агент А): /* * To change this template, choose Tools | Templates and open the template in the editor.*/ package A; import jade.core.Agent; import jade.core.AID; import jade.domain.AMSService; import jade.domain.FIPAAgentManagement.*; import jade.core.behaviours.*; import jade.lang.acl.*; /** * * @author TRSteep */ public class AMain extends Agent { public void setup() { System.out.println("Привет! агент "+getAID().getName()+" готов."); addBehaviour(new CyclicBehaviour(this) // Поведение агента исполняемое в цикле { public void action() { ACLMessage msg = receive(); if (msg!= null) { System.out.println(" – " + myAgent.getLocalName()+ " received: "+ msg.getContent()); } //Вывод на экран локального имени агента и полученного сообщения block(); //Блокируем поведение, пока в очереди сообщений агента не появится хотя бы одно сообщение } }); AMSAgentDescription [] agents = null; try {       SearchConstraints c = new SearchConstraints();        c.setMaxResults(new Long(-1));        agents = AMSService.search(this, new AMSAgentDescription(), c); } catch (Exception e) { System.out.println("Problem searching AMS: " + e); e.printStackTrace(); } for(int i=0; i<4; i++) { AID agentID = agents[i].getName(); ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.addReceiver(agentID); // id агента которому отправляем сообщение msg.setLanguage("English"); //Язык msg.setContent("Ping"); //Содержимое сообщения send(msg); //отправляем сообщение } }} Пакет В (Агент В): /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package B; import jade.core.Agent; import jade.core.behaviours.*; import jade.lang.acl.*; /** * * @author TRSteep */ public class BClass extends Agent { protected void setup() { System.out.println("Привет! агент "+getAID().getName()+" готов."); addBehaviour(new CyclicBehaviour(this) { public void action() { ACLMessage msg = receive(); if (msg!= null) { System.out.println(" – " + myAgent.getLocalName() + " received: " + msg.getContent()); //Вывод на экран локального имени агента и полученного сообщения ACLMessage reply = msg.createReply(); reply.setPerformative(ACLMessage.INFORM); reply.setContent("Pong"); //Содержимое сообщения send(reply); //отправляем сообщения } block(); } }); }}

Рис 1.6. Диаграмма взаимодействия межу агентами.

PingAgent - очень простой агент, дожидающийся сообщений. Если сообщение REQUEST с контентом PING получено, сообщение INFORM с подтверждением PONG посылается назад. Если же получено любое другое сообщение, назад отправляется сообщение NOT_UNDERSTOOD.



<== предыдущая лекция | следующая лекция ==>
И разработки индивидуального проекта по курсам | Архитектура агентной платформы JADE
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 191 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

2484 - | 2178 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.