Мультиагентные платформы и их применение в сетевых задачах

Автор: Пользователь скрыл имя, 29 Мая 2013 в 07:01, дипломная работа

Описание работы

Целью настоящей дипломной работы была реализация агентного подхода к вышеуказанной проблеме дистанционного управления сетевым трафиком.
Задачами настоящей работы были:
• Исследование предметной области
o Обзор и анализ технологий агентного программирования
o Рассмотрение и анализ существующих методов достижения поставленной цели
• Выбор мультиагентной платформы
o Выработка критериев выбора мультиагентной платформы
o Анализ и оценка наиболее известных мультиагентных платформ по выработанным критериям
o Осуществление выбора платформы, в наибольшей степени удовлетворяющей целям настоящей работы
• Разработка прототипов
o Разработка интеллектуального агента
o Разработка мобильного агента
• Применение в коммерческой задаче

Содержание

1. Введение______________________________________ 3
2. Исследование предметной области________________ 5
2.1. Агенты. Основные понятия___________________ 5
2.2. Интеллектуальные агенты____________________ 7
2.3. Понятие мультагентной системы_______________8
2.4. Технологии создания мультиагентной системы__10
2.5. Обзор существующих методов________________11
3. Разработка мультиагентной системы______________12 3.1. Выбор мультиагентной платформы____________12 3.2. Особенности платформы JASDK_____________ 14
3.3. API-интерфейсы аглетов_____________________16
3.4. Реализация мобильности аглетов______________18
4. Реализация прототипов_________________________21
4.1. Простейший агент__________________________21
5. Область применения___________________________23
6. Заключение__________________________________25
7. Список литературы____________________________26
Приложение 1__________________________________27
Приложение 2__________________________________28

Работа содержит 1 файл

Мультиагентные платформы и их применение в сетевых задачах.doc

— 236.50 Кб (Скачать)

 

При исследовании сложных  систем с использованием технологии МАС реализуются следующие фундаментальные  идеи:

 

1. Агенты. В сложных  системах существуют автономные  агенты, которые взаимодействуют друг с другом при выполнении своих определенных задач.

2. Агенты изменяют  свое поведение на основе полученной информации и реагируют на свою среду.

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

4. Системы с возникающими  структурами часто существуют  на грани порядка и хаоса. Для них характерно промежуточное состояние между упорядоченным состоянием и хаосом.

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

 

 

Агенты могут работать как неинтерактивные особи или как коллектив. В первом случае система очень проста: агенты делают то, о чем их просят. Для получения результата большего, чем сумма работ, выполняемых индивидуально отдельными агентами, необходимо их взаимодействие.

 

При взаимодействии агентов создаются логически связанные структуры. В данном случае реализуются следующие свойства [5]:

1. В возникающих структурах  агенты организуются в целое,  которое больше, чем просто сумма составляющих.

2. Простые правила  могут генерировать логически  связанное новое явление.

3. При проектировании  систем на базе агентов для слабопрогнозируемых ситуаций наиболее применим подход снизу вверх, а не традиционный подход сверху вниз. Такой подход объясняется тем, что большинство систем возникают из популяции более простых систем.

4. Устойчивые возникающие  структуры могут стать компонентами  более сложных возникающих структур и приводят к иерархии возникающих структур и их масштабируемости.

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

6. Явление возникновения  – это, как правило, устойчивые  связи с меняющимися компонентами.

7. Множество агентов  могут быть гомогенными или гетерогенными. Большинство систем создается на основе гетерогенности, используя действие различных видов агентов.

 

В настоящее время  многоагентные системы рассматриваются  уже не только

как принципиально новая  информационная технология, сформированная на базе слияния информационных и телекоммуникационных технологий, но и как новая парадигма программирования, в какой-то мере альтернативная объектно-ориентированному программированию.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    1. Технологии создания МАС.

 

Для построения MAC необходим  инструментарий, состоящий из двух компонентов:

 

• средств разработки;

• окружения периода исполнения.

 

Первый компонент ориентирован на поддержку процессов анализа  предметной области, создаваемой MAC и проектирование агентов с заданным поведением. Второй – обеспечивает эффективную среду для выполнения агентно-ориентированных программ.

Разработка мультиагентных систем идет по двум основным направлениям: системы на основе распределенного искусственного интеллекта и системы на основе сценариев [6].

 

Мультиагентные системы на основе распределенного искусственного интеллекта строятся на базе систем, основанных на правилах, и рассуждениях на основе прецедентов. В них каждый агент рассматривается как система (нераспределенная), основанная на знаниях с добавлением компонентов, обеспечивающих безопасность, мобильность, качество обслуживания, взаимодействие с другими агентами, сетевыми ресурсами и пользователями. Данные MAC характеризуются скоординированным интеллектуальным поведением в сообществе интеллектуальных агентов. MAC на основе распределенного искусственного интеллекта рассматриваются как наиболее многообещающие MAC.

Исследования в этом направлении в настоящее время  идут по пути интенсивных теоретических исследований и прикладных разработок [4].

 

Мультиагентные системы на основе сценариев ориентированы на использование в больших компьютерных сетях с большим разнообразием представляемого сервиса. Агенты данного класса систем разрабатываются с помощью языков сценариев, таких как Tсl, Java Language и др. Эти языки ориентированы на реализацию асинхронного процесса и удаленное исполнение приложений, инициируемых электронной почтой. Разрабатываемые здесь технологии должны поддерживать мобильность агента. Нужно отметить, что MAC на основе сценариев рассматриваются как основной подход для реализации мобильной телекоммуникации через компьютерные сети общего пользования с помощью переносных компьютеров [7].

 

По сути дела мультиагентные системы можно рассматривать как совокупность взаимосвязанных программных модулей (агентов), являющихся фрагментами знаний, доступных другим агентам. Это, можно сказать, некие «программные роботы», удовлетворяющие различным информационным и вычислительным потребностям конечных пользователей. Они координируют свои знания, цели, умения и планы при решении проблем. Таким образом, можно рассматривать MAC как некие программно-исполнительные устройства.

 

Данная работа призвана исследовать основные существующие средства разработки (мультиагентные платформы), а также продемонстрировать прототип создания МАС.

 

 

 

 

 

 

2.5. Обзор существующих методов решения поставленной задачи. Преимущества агентного подхода.

 

 

 

 

Конечно, задача дистанционного управления, в частности, мониторинга, появилась  не вчера. Поэтому существует ряд  программных продуктов, разработанных  в разных странах, которые достаточно эффективно решают данную проблему. Одним из таких продуктов является ClickOnce от Microsoft [8].

 

Однако практически все эти  системы обладают двумя существенными  недостатками.

 

Во-первых, большинство из них ориентировано  исключительно под операционную систему Windows. Что, конечно же, является серьезным недостатком, так как в последнее время в операционных системах ценится также и их доступность, чему в гораздо большей мере удовлетворяют системы класса UNIX.

 

Во-вторых, все это уже готовые программные продукты. Под словом «готовые» я подразумеваю тот факт, что система не эволюционирует со временем, то есть не реагирует на изменения. Таким образом, каждое изменение среды должно повлечь за собой изменение программного кода.

 

Агентный подход решает обе эти  проблемы. Что касается операционной системы – так как я реализовывал агентов на языке Java, за счет переносимости Java-кода мне абсолютно все равно, какая операционная система будет использоваться.

 

Что касается эволюции – как можно  видеть выше, интеллектуальные агенты как раз предполагают изменение своего поведения в зависимости от изменений во внешней среде. О том, как реализуется данная эволюция, мы поговорим чуть ниже.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Разработка мультиагентной системы

 

    1. Выбор мультиагентной платформы 

 

 

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

 

Мультиагентных платформ существует немало. Поэтому прежде чем выбрать  одну из них я выработал небольшую  систему критериев оценки мультиагентной платформы, куда я включил все самые важные моменты не только для моей текущей задачи, но и для разработки агента как такового. Все эти критерии, а также платформы, которые я рассматривал, и то, насколько платформы отвечают заданным критериям – в таблице 1.

 

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

 

 

Таблица 1. Сравнение мультиагентных платформ.

Название

Язык

Мобильность

Открытость

Поддержка разных ОС

Интерфейс

Помощь

Tryllian

Java

+

-

+

+

-

AgentBuilder

Java

+

+

+

-

+

Mobydget

C++

-

+

-

+

+

JASDK

Java

+

+

+

+

+

Toshiba Bee

Python

+

+

+

-

-


 

 

 

Поясним понятия, упомянутые в таблице:

Язык  – язык программирования, используемый данной платформой,

Мобильность – способность данной мультиагентной платформы поддерживать мобильность  создаваемых агентов (некоторые  платформы ориентированы исключительно  на интеллектуальных агентов, без мобильности),

Открытость  – находится ли платформа в  свободном доступе,

Поддержка разных ОС – зависит ли платформа  от конкретной операционной системы,

Интерфейс – насколько удобен пользовательский интерфейс данной платформы,

Помощь  – есть ли четко прописанное руководство пользователя, помогающее обращаться с данной платформой. Я намеренно вынес этот пункт отдельно, хотя формально его можно было бы приписать к пользовательскому интерфейсу. Однако в некоторых платформах процесс разработки достаточно удобен, пока используешь исключительно простые функции, а когда нужно разобраться в более сложных методах – начинаются проблемы, так как нет подробного пояснительного документа.

Итак, из таблицы видно, что всем вышеуказанным  критериям удовлетворяет мультиагентная платформа JASDK (Java Aglets Software Development Kit). Эта мультиагентная платформа ориентирована на создание так называемых аглетов, то есть мобильных агентов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2. Особенности  платформы JASDK

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

 

Авторы технологии аглетов преследовали следующие цели:

 

  1. Создать простую, всеобъемлющую и расширяемую архитектуру для разработки мобильных агентов (аглетов), не прибегая к изменениям виртуальной машины Java и базовых методов, а опираясь только на возможности Web- и Java-технологий.
  2. Разработать гибкие механизмы совместной работы агентов, которые позволят им легко взаимодействовать друг с другом.
  3. Построить надежные и простые механизмы безопасности, которые обеспечат доверие к передвижным агентам со стороны конечных пользователей.

 

В результате получилась архитектура  аглетов, которая состоит из двух наборов интерфейсов и двух слоев  реализации:

 

-- набор интерфейсов аглета (aglet API);

-- -- -- слой реализации методов   аглета;

-- передача агента по сети  и интерфейс связи между аглетами;

-- -- -- транспортный слой.

 

Слой реализации аглета - это Java-коды программ, вызываемых аглетом через aglet API. Он содержит основные методы для создания, перемещения аглетов и управления ими, а также определяет поведение аглета (класс Aglet) и его связь с виртуальной машиной Java (класс AgletContext). Кроме того, в нем имеются механизмы взаимодействия аглетов друг с другом.

 

Транспортный слой обеспечивает передачу агента по сети в виде последовательности байтов, которая включает в себя определение классов (тоже в последовательном виде). Этот слой также имеет свой набор интерфейсов, называемый методами передачи агента и интерфейсом связи (Agent Transfer and Communication Interface, ATCI). Именно он позволяет   аглетам   обращаться к транспортному слою для перемещения по сети независимо от используемых протоколов. Реализация интерфейсов ATCI обеспечивает передачу и получение аглета, а также позволяет устанавливать связь между различными аглетами. Для передачи аглетов используется протокол передачи агента (Agent Transfer Protocol, ATP), который является протоколом прикладного уровня. Модель ATP основывается на протоколе HTTP и может быть использована для передачи агента независимо от его содержания и состояния, а также от операционных систем отправителя и получателя. Чтобы дать возможность аглетам связываться друг с другом, в ATP предусмотрен механизм передачи удаленных сообщений.

Информация о работе Мультиагентные платформы и их применение в сетевых задачах