Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ТРПО_теория / ТРПО / Программирование на JADE для новичков

.htm
Скачиваний:
30
Добавлен:
11.04.2015
Размер:
59.79 Кб
Скачать

 Программирование на JADE для новичков. Переводим на русский. Результат — Человеческие переводы Войти с OpenID

Войти с паролем

Регистрация

English

Русский

Українська

Беларуская

Lietuvių

中文

you! Переводим

Почти готово

Готово

Программирование на JADE для новичков Giovanni Caire, “JADE PROGRAMMING FOR BEGINNERS”, публичный перевод на русский с английского Подробнее об этом переводе. Оригинал. Предложил Ubububu 03.10.2008.

Метки: agents, JADE, Java.

Для перевода предложил Ubububu 03.10.2008. This tutorial shows how to create simple JADE agents and how to make them executing tasks and communicate between each other. JADE is completely written in Java and JADE programmers work in full Java when developing their agents. Therefore the reader is assumed to be familiar with the Java programming language. Другие переводы: на украинский. Перевести на другой язык.

Cтатистика

Участники

Переводим на русский

Результат

Переведено начерно, требуется вычитка. Готовность: 26%.

Руководство JADE

Использование ограничено в соответствии с лицензионным соглашением.

последнее обновление: 9 сентября 2007. JADE 3.6

Автор: Giovanni Caire (TILAB, formerly CSELT)

Copyright (C) 2000 CSELT S.p.A.

Copyright (C) 2001 TILab S.p.A.

Copyright (C) 2002 TILab S.p.A.

Copyright (C) 2003 TILab S.p.A.

Copyright (C) 2004 Telecom Italia S.p.A.

Copyright (C) 2005 Telecom Italia S.p.A.

Copyright (C) 2006 Telecom Italia S.p.A.

Copyright (C) 2007 Telecom Italia S.p.A.

Copyright (C) 2008 Telecom Italia S.p.A.

JADE (Java Agent DEvelopment Framework) - это среда разработки мультиагентных систем соответсвующих спецификациям FIPA. JADE успешно прошёл первый тест на совместимость с FIPA в Сеуле (январь 1999) и второй тест на совместимость в Лондоне (апрель 2001).

Copyright (C) 2000 CSELT S.p.A. (C) 2001 TILab S.p.A. (C) 2002 TILab S.p.A.

Эта библиотека является свободным программным обеспечением; Вы можете её и/или модифицировать в соответствии с условиями GNU Lesser General Public License опубликованой Free Software Foundation, версии 2.1 лицензии.

Эта библиотека распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без возможной гарантии товарности или пригодности для конкретной цели. Смотреть GNU Lesser General Public License для более подробной информации. Вы должны получить копию GNU Lesser General Public License вместе с этой библиотекой; иначе напишите в Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Это руководство состоит из следующего: Глава 1 дает краткий обзор JADE и вводит понятия платформы, контейнера, AMS и DF. Глава 2 представляет собой простой пример, который будет использоваться в этом руководстве для иллюстрации шагов, необходимых для разработки простых агентных приложений с использованием JADE. глава 3 сфокусирована на создании агентов и объясняет базовые свойства агентов и AID классов. Глава 4 объясняет, как сделать, чтобы JADE агенты выполняли задачи, и вводит в класс Behaviour (класс поведения). Глава 5 описывает, как организовать общение между агентами и вводит в ACLMessage и MessageTemplateclasses. В главе 6 показано, как использовать "Желтые страницы" услуг, предоставляемых через агента DF используя DFService класс.

Помимо базовых функций, описанных в этом руководстве, JADE предоставляет ряд расширенных функций, таких как поддержка комплексного взаимодействия протоколов и использование пользовательских онтологий. Описание этих функций можно прочесть в JADE Programmer’s guide и Administrator’s guide, доступных на странице JADE (tilab.com).

1 ОБЗОР JADE

JADE - это платформа разработки мультиагентных систем. Включает в себя:

• Динамическую среду, где JADE агенты могут "жить"; она должна быть активна на принимающем хосте до того, как на нём будут запущены один или более агентов.

• Библиотеку классов, которую программисты должны/могут использовать (прямо или опосредованно) для разработки своих агентов.

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

1.1 Контейнеры и платформы

Каждая запущенная динамическая среда JADE называется контейнером и может содержать несколько агентов. Набор активных контейнеров называется платформой. Единственный специальный контейнер - главный (Main) должен всегда быть активным на платформе: все остальные контейнеры регистрируются и связываются с ним в момент запуска. Отсюда следует, что первым контейнером при старте платформы должен быть главный, а все остальные контейнеры должны быть "нормальными" (т.е. не главными) контейнерами и должны заранее "знать", как найти (то есть иметь данные о хосте и порте) главный контейнер (на котором они будут регистрироваться).

Если другой главный контейнер был запущен где-то в сети, то он представляет собой другую платформу, на которой новые обычные контейнеры могут зарегистрироваться. Рисунок 1 (см. pdf) иллюстрирует эту концепцию на основе примера, показывающего две JADE-платформы, состоящие из трех и одного контейнера соответственно. JADE-агенты определены с уникальным именем и, при условии, что они знают имена других агентов, они могут общаться, независимо от их фактического местонахождения: в общем контейнере (т. е. агенты А2 и А3 на рисунке 1), в разных контейнерах на одной платформе (т. е. А1 и А2), или вообще на разных платформах (т. е. А4 и А5).

Вам не нужно знать, как работает динамическая среда JADE , но нужно запускать её перед началом выполнения своих агентов. Старт JADE как главного или обычного контейнера и выполнение агентов на нём описывается в JADE Administrative Tutorial, доступном на сайте JADE.

1.2 AMS и DF

Помимо возможности приёма регистраций от других контейнеров, главный контейнер отличается от обычного контейнера тем, что содержит два специальных агента (автоматически запускаемых одновременно с контейнером).

AMS (система управления агентами) обеспечивает службу именования (то есть гарантирует, что каждый клиент на платформе обладает уникальным именем) и осуществляет управление на платформе (например, можно создавать и ликвидировать агентов на удалённом контейнере по запросу AMS). В этом руководстве не будет описан процесс взаимодействия с AMS, поскольку это является частью продвинутого JADE-программирования.

DF (Координатор каталога) предоставляет сервис "Жёлтые страницы", с помощью которого агент может искать других агентов, предоставляющих услуги, которые нужны данному агенту для достижения целей. Использование этого сервиса, предоставляемого DF-агентом, описано в главе 6.

2 Пример "Торговля книгами"

Эта глава представляет простой пример, который будет использоваться в этом руководстве для иллюстрации шагов, необходимых для разработки агентного приложения с помощью JADE. Сценарий, рассматривающийся в данном примере, включает в себя агентов-книготорговцев и агентов-покупателей, покупающих книги от имени своих пользователей.

Каждый агент-покупатель получает название книги на покупку ("требуемая книга") в качестве аргумента командной строки и периодически запрашивает предложения(искомой книги) у всех известных ему агентов-продавцов. Когда предложение получено, агент-покупатель принимает его и выдает заказ на покупку. Если несколько агентов предоставляют предложения агенту-покупателю, он принимает лучшее из них (с самой низкой ценой). После покупки нужной книги агент-покупатель завершает свою работу.

Каждый агент-продавец имеет минимальный GUI, с помощью которого пользователь может добавить новые книги (и их цены) в локальный каталог книг для продажи. Агент-продавец непрерывно прослушивает запросы от агентов-покупателей. При получении запроса на книгу агенты-продавцы проверяют свои локальные каталоги и, если запрашиваемая книга находится в их каталоге, отвечают на запрос ценой. В противном случае они отказывают. Когда получен заказ на покупку, они обслуживают его и удаляют проданную книгу из каталога.

Все вопросы, связанные с электронными платежами, вне рамок данного руководства и не принимаются во внимание.

Готовые исходники этого примера имеются среди примеров, приведенных в пакете examples.bookTrading.

3 СОЗДАНИЕ JADE АГЕНТА – КЛАСС АГЕНТА

Создание JADE агента очень просто делается определением класса, наследуемого от класса jade.core.Agent и реализацией метода setup() как показано в коде ниже.

import jade.core.Agent;

public class BookBuyerAgent extends Agent {

protected void setup() {

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

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

}

}

Метод setup() состоит из инициализации агента. Фактически, работа агента, как правило, выполняется в рамках "поведения", это будет описано в 4 главе.

3.1 Идентификаторы агента

Каждый агент имеет определенный "идентификатор агента", представленный экземпляром класса jade.core.AID. Метод getAID() класса Agent позволяет извлекать идентификатор агента. Объект AID включает глобальное уникальное имя, а также целый ряд адресов. Имя в JADE имеет форму: <имя_агента>@<имя_платформы>, так что агент называющийся Peter, находящийся на платформе, называемой P1, будет иметь глобальное уникальное имя Peter@P1. Адреса, включенные в AID - это адреса платформы, где находится агент. Эти адреса используются только в тех случаях, когда агент должен общаться с другим агентом, находящемся на другой платформе. Разработчики должны заботиться о них только в особых случаях, которые выходят за рамки этого руководства.

Зная имя агента, его AID может быть получен так:

String nickname = “Peter”;

AID id = new AID(nickname, AID.ISLOCALNAME);

Константа ISLOCALNAME указывает, что первый параметр представляет собой псевдоним (локально на платформе), а не глобальное уникальное имя этого агента.

3.2 Запуск агентов

Созданый агент может быть откомпилирован так:

javac –classpath <JADE-classes> BookBuyerAgent.java

Для того, чтобы выполнить откомпилированого агента, среда JADE должна быть запущена, и имя для запуска агента должно быть выбрано:

java –classpath <JADE-classes>;. jade.Boot buyer:BookBuyerAgent

Более подробную информацию о компиляции и запуске агентов можно найти в JADE Administrative Tutorial или в JADE Administrator’s Guide, доступном на сайте JADE. Результат ввода команды такой:

C:\jade>java –classpath <JADE-classes> jade.Boot buyer:BookBuyerAgent

5-mag-2008 11.06.45 jade.core.Runtime beginContainer

INFO: ----------------------------------

This is JADE snapshot - revision 5995 of 2007/09/03 09:45:22

downloaded in Open Source, under LGPL restrictions,

at http://jade.tilab.com/

----------------------------------------

5-mag-2008 11.06.51 jade.core.BaseService init

INFO: Service jade.core.management.AgentManagement initialized5-mag-2008 11.06.51 jade.core.BaseService initINFO: Service jade.core.messaging.Messaging initialized

5-mag-2008 11.06.52 jade.core.BaseService init

INFO: Service jade.core.mobility.AgentMobility initialized

5-mag-2008 11.06.52 jade.core.BaseService init

INFO: Service jade.core.event.Notification initialized

5-mag-2008 11.06.52 jade.core.messaging.MessagingService clearCachedSlice

INFO: Clearing cache

5-mag-2008 11.06.53 jade.mtp.http.HTTPServer <init>

INFO: HTTP-MTP Using XML parser com.sun.org.apache.xerces.internal.parsers.SAXParser

5-mag-2008 11.06.54 jade.core.messaging.MessagingService boot

INFO: MTP addresses:

http://NBNT2004130496.telecomitalia.local:7778/acc

5-mag-2008 11.06.54 jade.core.AgentContainerImpl joinPlatform

INFO: --------------------------------------

Agent container Main-Container@NBNT2004130496 is ready.

--------------------------------------------

Привет! Агент-покупатель buyer@NBNT2004130496:1099/JADE готов.

Первая часть вывода на экран - заявление об отсутсвии гарантий JADE, который печатается каждый раз когда среда JADE запускается. Инициализация ядра сервисов (ядро сервисов внутренняя суть JADE и не описана в этом документе) активирована при старте платформы. Наконец, указание на то, что контейнер под названием "Main-Container" готов завершить запуск среды JADE. Когда среда JADE запускает нашего агента, он выводит своё приветствие. Имя агента "buyer", как мы указали в командной строке. Имя платформы "NBNT2004130496: 1099/JADE" назначается автоматически на основе хоста и порта, на котором вы работаете с JADE (см. JADE Administrator's Guide для присвоения имени платформе).

3.3 Завершение работы агента

Даже если наш агент ничего не делает после вывода приветствия, он всё ещё работает. Для того, чтобы прекратить работу, должен быть вызван метод doDelete (). Так же, как метод setup(), который вызывается JADE средой, как только агент запускается, и предназначен для инициализации агента, метод takeDown () вызывается непосредственно перед завершением работы агента и нужен, чтобы включить очистные операции агента.

3.4 Передача аргументов для агента

Агенты могут получать при запуске аргументы, заданные в командной строке. Эти аргументы могут быть получены как массив объектов, с помощью метода getArguments () класса Agent. Как уже говорилось в главе 2, мы хотим, чтобы наш BookBuyerAgent получил название покупаемой книги в качестве аргумента командной строки. Для достижения этой цели мы изменим его следующим образом (1).

import jade.core.Agent;

import jade.core.AID;

public class BookBuyerAgent extends Agent {

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

private String targetBookTitle;

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

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

new AID(“seller2”, AID.ISLOCALNAME)};

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

protected void setup() {

Страницы: ← предыдущая Ctrl следующая → 1 2 3 4 5 6 Загрузить всё в формате txt © Copyright (C) 2008 Telecom Italia S.p.A.

Оригинал (английский): JADE PROGRAMMING FOR BEGINNERS

Перевод: © Ubububu, aivean, Violectra, CYCC, se7en .

Понравился перевод?Добавьте в свои закладки и поделитесь ссылкой с другими. a2a_show_title=1; a2a_hide_embeds=0; a2a_num_services=26; a2a_prioritize=["facebook","twitter","friendfeed","google_buzz","delicious","google_bookmarks","digg","yahoo_bookmarks","slashdot","blogger_post","reddit","wordpress","tumblr","livejournal","myspace","orkut","evernote","stumbleupon","read_it_later","google_reader","instapaper","google_gmail","linkedin","hotmail","printfriendly","yahoo_buzz","windows_live_favorites","typepad_post","yahoo_mail","technorati_favorites","netvibes_share","technet","posterous","mister-wong","bebo","plurk","ping","diigo"]; Похожие переводы Руководство по разработке приложений для Android This tutorial describes how to create Android applications with Eclipse. It is based on Eclipse 3.7 (Indigo), Java 1.6 and ...

Lars Vogel, Android Development Tutorial. Перевод на русский с английского. Для перевода предложил xkluge 1 месяц назад.

Метки: android Java программирование

30% переведено начерно. Объем: 47.0 тыс. знаков Spring в действии. Второе издание (Часть 2.)

Craig Walls, Ryan Breidenbach, “Spring in Action. Second Edition (Part 2. Enterprise Spring)”. Перевод на английский с английского. Для перевода предложил viacheslav.t 2 месяца назад.

Метки: AOP DI framework Java Spring фреймворк

6% переведено начерно. Объем: 622.8 тыс. знаков Соглашения по оформлению кода Java This document reflects the Java language coding standards presented in the Java Language Specification, from Sun Microsystems. Major contributions are ...

Sun Microsystems, Inc, Java Code Conventions. Перевод на русский с английского. Для перевода предложил GlooK 3 месяца назад.

Метки: coding convention Coding Style Java

86% переведено начерно. Осталось немного, поднажмём! Объем: 30.9 тыс. знаков Территория Java - Lady Java Текст к клипу http://www.youtube.com/watch?v=Mk3qkQROb_k&playnext=1&list=PL912F1047716373D0

JavaZone, JavaZone - Lady Java. Перевод на русский с английского. Для перевода предложил ckesc 7 месяцев, 3 недели назад.

Метки: clip Java zone

Переведено начерно, требуется вычитка. Объем: 0.7 тыс. знаков Джош Блок о Java и программировании

Ryan Slobojan, Josh Bloch on Java and Programming. Перевод на русский с английского. Для перевода предложил mazurov 9 месяцев, 2 недели назад.

Метки: Google interview Java

47% переведено начерно. Объем: 17.8 тыс. знаков Смотрите также ещё 12 похожих переводов βετα. Проект делается силами компании JetStyle.

]]> ]]> О проекте

]]>Наше сообщество]]>

Пишите нам письма

]]>]]> Связь с разработчиками var DEBUG=false var MEDIA_URL='/appmedia/' var LANGUAGE_CODE='ru' var AUTHENTICATION='anonymous' <div style="display: inline;"><img src="http://bs.yandex.ru/watch/152867" width="1" height="1" alt="" /></div>

Соседние файлы в папке ТРПО