Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse


Скачать 0.66 Mb.
Название Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse
страница 9/12
Тип Лабораторная работа
rykovodstvo.ru > Руководство эксплуатация > Лабораторная работа
1   ...   4   5   6   7   8   9   10   11   12

Получение сообщений в блокирующем режиме


Помимо метода receive() класс Agent также предоставляет метод blockingReceive(), который, как можно предположить по его имени, является блокирующим вызовом — он не возвращает управление до тех пор, пока не появится сообщение в очереди сообщений агента. Также существует перегруженная версия этого метода, которая получает в качестве аргумента MessageTemplate (она не возвращает управления до тех пор, пока нет сообщения, удовлетворяющего шаблону).

Важно подчеркнуть, что метод blockingReceive() фактически блокирует поток агента. Поэтому, если вызывается blockingReceive() «из поведения», это прекратит выполнение других поведений до тех пор, пока вызов blockingReceive() не вернёт управление. Принимая во внимание эти соображения, можно отметить, что хорошим тоном программирования процесса получения сообщений будет: использование blockingReceive() в методах setup() и takeDown(); использование receive() в сочетании с Behaviour.block() (как показано в 3.5) внутри поведения.
  1. Сервис «Желтых страниц» - Класс DFService


В приведенном коде примера было сделано допущение, что существует некое фиксированное множество агентов-продавцов (seller1 и seller2), и каждый покупатель заранее знает о них (см. поле AID[] sellerAgents класса BookBuyerAgent в коде, представленном в главе 2.4). В этой главе описано как избавиться от этого допущения и использовать сервис «жёлтых страниц», предоставленный платформой JADE для того, чтобы позволить агентам-покупателям динамически узнавать об агентах-продавцах, доступных в данный момент.
  1. Агент DF


Сервис «Жёлтых страниц» позволяет агентам опубликовать данные об одном или более сервисах, которые они предоставляют, так, что другие агенты могут находить и успешно использовать эти сервисы (см. рис. 4).



Рис. 4. Сервис Желтых страниц
Сервис «жёлтых страниц» в JADE (согласно спецификации FIPA) предоставлен агентом, названным DF (Directory Facilitator, Менеджер Директорий). Каждая соответствующая FIPA платформа поддерживает по умолчанию агент DF (его локальное имя — «df»). Другие DF-агенты могут быть запущены, и несколько DF-агентов (включая те, что находятся в платформе по умолчанию) можно объединить для обеспечения единого распределённого каталога «жёлтых страниц».
  1. Взаимодействие с DF


Поскольку DF является агентом, имеется возможность взаимодействовать с ним обычным образом, обмениваясь ACL-сообщениями, используя соответствующий язык содержания (язык SLo) и соответствующую онтологию (онтологию FIPA-agent-management), согласно спецификациям FIPA. Для упрощения этих взаимоотношений JADE предоставляет класс jade.domain.DFService, с помощью которого можно опубликовывать и искать сервисы через вызовы методов.
  1. Сервисы для публикаций


Агент, желающий опубликовать (сделать доступными публично) один или более сервисов должен предоставить DF описание, включающее, AID этого агента, список возможных языков и онтологий, которые должны знать другие агенты для взаимодействия с ним и список сервисов для публикации. Для каждого опубликовываемого сервиса предоставляется описание, включающее тип сервиса, его имя, языки и онтологии, необходимые для его использования и ещё некоторое количество свойств, специфичных для данного сервиса. Классы DFAgentDescription, ServiceDescription и Property, включённые в пакет jade.domain.FIPAAgentManagement, соответственно представляют собой три упомянутые абстракции.

Чтобы опубликовать сервис агент должен создать подходящее описание (представленное экземпляром класса DFAgentDescription) и вызвать статический метод register() класса DFService. Обычно (но не обязательно) регистрация сервиса проходит в методе setup(), как показано ниже в случае с агентом-продавцом книг (этот код добавляем в метод setup() класса BookSellerAgent).

protected void setup() {

...........
//Создаём и показываем GUI

myGui = new BookSellerGui(this);

myGui.showGui();



// 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();

}
...........
}


Замечание. В этом простом примере не были описаны ни языки, ни онтологии, ни свойства, специфичные для данного сервиса. Когда агент завершается хорошим тоном будет отменить регистрацию опубликованных сервисов (изменяем метод takeDown() в фйле BookSellerAgent).

//Вставляем чистящие операции агента

protected void takeDown() {

//Отмена регистрации сервиса из «жёлтых страниц»

try {

DFService.deregister(this);

}

catch (FIPAException fe) {

fe.printStackTrace();

}

// Закрываем GUI

myGui.dispose();

// Вывод на экран сообщения о завершении

System.out.println("Seller-agent "+getAID().getName()+" terminating.");

}

}
  1. Поиск сервисов


Агент, желающий искать некоторые сервисы, должен предоставить DF описание необходимого шаблона. Результат поиска — список всех описаний, которые удовлетворяют указанному шаблону. Описание соответствует шаблону, если все поля, указанные в шаблоне, присутствуют в описании, причём с теми же значениями.

Использование статического метод search() класса DFService может быть проиллюстрировано примером, когда агент-покупатель книг динамически находит всех агентов, которые предоставляют сервис «book-selling» (продажа книг).

public class BookBuyerAgent extends Agent {

private static final long serialVersionUID = 8257866411543354399L;

// Название покупаемой книги

private String targetBookTitle;

// Лист известных агентов-продавцов

private AID[] sellerAgents = { new AID("seller1", AID.ISLOCALNAME),

new AID("seller2", AID.ISLOCALNAME)};

// Тут инициализация агента

protected void setup() {

// Выводим приветствие

System.out.println("Привет! Агент-покупатель"+getAID().getName()+"готов.");



//Получение названия покупаемой книги как аргумент при старте

Object[] args = getArguments();

if (args != null && args.length > 0) {

targetBookTitle = (String) args[0];

System.out.println("Target book is "+targetBookTitle);



// Добавляем TickerBehaviour где планируется запрос агенту продавцу каждую минуту

addBehaviour(new TickerBehaviour(this, 60000) {

protected void onTick() {

System.out.println("Trying to buy " +targetBookTitle);

// Обновление списка агентов агентов-продавцов

DFAgentDescription template = new DFAgentDescription();

ServiceDescription sd = new ServiceDescription();

sd.setType("book-selling");

template.addServices(sd);

try {

DFAgentDescription[] result = DFService.search(myAgent, template);

sellerAgents = new AID[result.length];

for (int i = 0; i < result.length; ++i) {

sellerAgents[i] = result[i].getName();

System.out.println(sellerAgents[i].getName());

}

}

catch (FIPAException fe) {

fe.printStackTrace();

}

// Выполнение запроса

myAgent.addBehaviour(new RequestPerformer());

}

} );

}

else {

// Завершение выполнения агента немедлено

System.out.println("Нет заданой книги");

doDelete();

}

}

Замечание. Обновление списка известных агентов-продавцов производится каждый раз перед попыткой купить указанную книгу, поскольку агенты-продавцы в системе могут динамически появляться и исчезать. Класс DFService также предоставляет поддержку подписки на уведомления от DF о появление агента, предоставляющего указанный сервис (более детально — методы searchUntilFound() и createSubscriptionMessage()), но это выходит за рамки данного руководства.

1   ...   4   5   6   7   8   9   10   11   12

Похожие:

Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа 1 4 лабораторная работа 2 13 лабораторная работа...
Интернете разнообразную информацию – описательную, графическую, картографическую и пр. При разработке сайтов необходимо уметь работать...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №9 59 Лабораторная работа №10 72 Лабораторная...
Рабочая тетрадь для выполнения лабораторных работ по мдк. 03. 01. «Техническое обслуживание и ремонт компьютерных систем и комплексов»...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №2 Разработка цифровой системы фильтрации сигнала. Цель работы
Цель работы: разработка собственной системы обработки сигнала, реализующей ких-фильтрацию, на базе типового аппаратного и программного...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Методические указания для студентов по выполнению лабораторных работ...
Лабораторная работа 4, 5 Исследование регистров, счетчиков и дешифраторов Лабораторная работа 6, 7 Исследование генератора псевдослучайной...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Конспект лекций по дисциплине системы обработки экономической информации...
Понятие информационная потребность тесно связано с понятием цели и функции управления. Можно сказать, что потребность в информации...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Курс лекций Преподаватель Бондаренко А. А. Рыбинск 2001
Типовая информационная технология сбора, передачи, обработки и выдачи информации в централизованных системах обработки данных 17
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №10. Изучение принципа действия и функциональной...
Лабораторная работа № Изучение принципов построения системы автоматической подстройки частоты (апч) радиолокационной станции
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №1 «Создание общих ресурсов и управление ими»
Лабораторная работа №6-7 «Изучение типов серверов, их настройка и конфигурирование»
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №
Лабораторная работа №1. Изучение основных возможностей программного продукта Яндекс. Сервер. Установка окружения, установка и настройка...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №7 «Подготовка и проведение тестирования»
Изучить методы подготовки и проведения тестирования и получить навыки создания и выполнения тестов в среде ms visual Studio для приложений...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №4 Тема: Программирование обработки на станке
Цель: Изучить наладку станка на обработку детали (согласно заданному варианту). Изучить управляющие программы для обработки призматических...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Элективный курс «Разработка приложений для баз данных в среде объектно-ориентированного...
Гбоу «Губернаторский многопрофильный лицей-интернат для одаренных детей Оренбуржья»
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Самостоятельная работа студентов (срс)
В курсе рассматриваются различные подходы и технологии автоматизированного решения задач кадрового учета, изучаются некоторые распространенные...
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №1
Целью работы является изучение технологии построения модели процесса в нотации bpmn 0 с использованием
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Разработка формализованного описания процессов сбора, обработки и...
Данная работа посвящена разработке формализованного описания Банковских процессов средствами uml
Курс: «Технологии обработки информации». Лабораторная работа № Разработка jade агентов, в интегрированной среде eclipse icon Лабораторная работа №27 Лабораторная работа №28 Контрольные работы...
Пм «Сборка монтаж (демонтаж) элементов судовых конструкций, корпусов, устройств и систем металлических судов»

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск