Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Болдырев Евгений Викторович

Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных
<
Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Болдырев Евгений Викторович. Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных : Дис. ... канд. техн. наук : 05.13.17 Красноярск, 2005 136 с. РГБ ОД, 61:06-5/1233

Содержание к диссертации

Введение

Глава 1. Подходы к построению систем доступа к данным 8

1. Клиент-серверный подход 8

2. Агентный подход 11

2.1. Классы решаемых задач 13

2.2. Преимущества применения 13

2-3. Предпосылки применения 15

Глава 2. Теория агентных систем 18

1. Основные понятия 18

2. Варианты архитектур 24

3. Понятие агента 25

4. Архитектура агента 26

5. Модель жизненного цикла агента 28

Глава 3. Проектирование системы параллельного поиска информации в системе распределенных баз данных с использованием агентного подхода ..30

1. Декомпозиция задачи 31

2. Построение модели 34

3. Выявление факторов, которые могут повлиять на агента 41

4. Выбор агентной платформы 43

5. Адаптация построенной модели 42

6. Разработка функциональности агентов 44

7. Разработка схем взаимодействия и выбор языков общения 44

8. Программная реализация 45

Глава 4. Варианты реализации системы на основе разработанных алгоритмов и архитектур 47

1. Языковые средства разработки 47

2. Технологии реализации распределенных вычислений 48

3. Стандарты агентных систем 53

3.1. FIPA 53

3.2. MASIF 54

4. Инструментальные средства разработки 55

4.1. SMART 56

4.2. D'Agents 57

4.3. Grasshopper 58

4.4. Aglets 58

4.5. JADE 60

5. Сравнительный анализ инструментальных средств разработки 61

Глава 5. Реализации системы с использованием языка Java и агентной платформы JADE 64

1. Обзор платформы JADE 64

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

1.2. Служба каталогов и система управления агентами 66

1.3. Создание агента 67

1.4. Жизненный цикл агента 68

1.5. Начало выполнения агента 70

1.6. Поиск и регистрация агентов 72

1.7. Коммуникационные модели 74

1.8. Язык общения агентов ACL 76

1.9. Организация взаимодействия агентов 79

1.10. Постановка задач на выполнение агенту 82

1.11. Завершение выполнения агента 83

2. Поддержка устройств с ограниченными возможностями (CLDC) 83

3. Реализация системы поиска информации 84

3.1. Средства разработки 84

3.2. Подготовка служебных файлов и папок проекта 85

3.3. Создание агента 86

3.4. Отладка агентов 87

4. Локализация и поддержка русского языка 90

Глава 6. Экспериментальные исследования 92

1. Описание условий эксперимента 92

2. Полученные результаты 94

Заключение 95

Литература

Введение к работе

Актуальность проблемы

Мир меняется, и изменяются приоритеты развития общества. Использование информационных технологий ускоряет этот процесс. Информация рассматривается как товар, её роль, как товара, возрастает, при этом ценность информации зависит от сроков получения и затрат на её обработку. [ 1,2] Рост сложности и объемов информации делает актуальными вопросы поиска новых подходов доступа к ней, так как использование традиционных технологий приводит к увеличению сроков и стоимости разработки программных средств доступа к информации. Имеющиеся системы обеспечивают поиск в источниках информации одного типа, оставляя без внимания другие. Например, такие системы как Яндекс, Рамблер, Google, Yahoo [87] обеспечивают поиск информации в базах ключевых слов, соответствующих определенным HTML-страницам [119], остальная же информация (аудио-, видеоданные и другие данные, отличные от HTML-страниц) находящаяся на серверах в сети Интернет остается без внимания. Это определяет актуальность работ в области разработки более эффективных методов построения систем доступа к распределенной разнородной информации.

В работе рассматривается организация доступа к информации и поиск её в разнородных базах данных. Для этого предлагается использовать технологию программных агентов и мультиагентных систем.

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

Достижение этой цели предполагает решение следующих задач:

обзор и систематизация существующих методов построения рассматриваемых систем;

проведение сравнительного анализа методов построения и определение наиболее оптимального их них;

предложение архитектуры и алгоритмов системы параллельного поиска информации в распределенных системе разнородных баз данных;

реализация прототипа системы поиска и оценка эффективности её работы.

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

программирования.

Научная новизна:

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

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

  3. Разработаны функциональные модели и алгоритмы системы параллельного поиска информации в распределенной системе разнородных баз данных.

Практическая ценность диссертации

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

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

Апробация работы

Основные положения диссертации докладывались на Всероссийской конференции молодых ученых по математическому моделированию и информационным технологиям (Новосибирск, 2004), VIII Всероссийской конференции «Проблемы информатизации региона» (Красноярск, 2003), Межвузовской конференции «Информатика и информационные технологии» (Красноярск, 2003-2004), Всероссийской научно-методической конференции «Повышение качества непрерывного профессионального образования» (Красноярск, 2005) и обсуждались на международной конференции «Parallel Computing (РаСТ-2005)» (Красноярск, 2005).

Сведения о внедрении

Агентная система поиска информации в системе распределенных баз данных внедрена в учебный процесс в Красноярском Государственном Техническом Университете (акт о внедрении от 15.06.2005) и в ООО «Мобилон» (акт о внедрении от 22.07,2005), организации, занимающейся предоставлением услуг 1Р-телефонии.

Публикации

По результатам работы опубликована депонированная статья в ВИНИТИ (рег.№ 236-В2005), статья в журнале «Вычислительные технологии» (Новосибирск, 2005), а также 7 докладов на Всероссийских и межвузовских конференциях.

Структура работы

Диссертационная работа состоит из введения, шести глав, заключения и библиографического списка использованных источников. Она содержит 107 страниц основного текста, 29 рисунков и 4 таблицы, расположенных в тексте диссертации. Список литературы включает 123 наименования.

s Глава 1. Подходы к построению систем доступа к данным

1. Клиент-серверный подход

С появлением персональных компьютеров, локальных сетей, реляционных баз данных и мощных настольных приложений, компьютерная индустрия двинулась в новую реальность открытых систем и архитектуры клиент-сервер. Открытые системы создавались для того, чтобы вырваться из тисков ограниченности и закрытости полностью персонального или mainframe-решения, и получить доступ к внешним источникам информации. [1] В клиент-серверной архитектуре пользователи получили доступ к реляционным базам данных, возможность генерировать свои собственные отчеты и манипулировать выборками при помощи персональных электронных таблиц и инструментов анализа данных на своих мощных персональных компьютерах. На первый взгляд выглядело все идеально, поскольку пользователи получили некие новые возможности, которыми они никогда не обладали ранее.

Клиент-серверный подход действительно предоставляет значительные преимущества. Инструменты для проектирования интерфейса клиента предоставляют большие возможности - проектирование происходит быстрее, а сервер может быть довольно простым, поскольку большая часть сложной обработки возлагается на клиента. Следствием из этого является заметное удешевление системы, особенно ее серверной части, появляется возможность не зависеть от платформы сервера, поскольку все системы управления базами данных от одного поставщика предоставляют единый интерфейс доступа и управления, независимо от платформы сервера. А такие интерфейсы, как ODBC (Open Database Connectivity) от Microsoft или ШАРІ

9 (Independent Database Application Programming Interface) от Borland-Inprise

позволяют добиться и независимости от производителя СУБД. [2]

Но вместе со всеми достоинствами, классический клиент-серверный

подход обладает и очевидными недостатками:

  1. Существуют проблемы с безопасностью данных;

  2. Существуют проблемы с надежностью и управляемостью информационной системы;

  3. Большие расходы ресурсов (временных, трудовых, технических) при модификации и обслуживании информационной системы. Классическая клиент-серверная архитектура работает прекрасно, если

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

10 По мере возрастания сложности клиентского приложения

увеличивается и его размер. По мере возрастания размера приложения

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

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

количество пользователей в системе также имеет тенденцию к росту, мы

неминуемо должны увеличивать и мощность серверной аппаратуры.

Решением проблем масштабируемости в клиент-серверном подходе будет

увеличение частоты процессора, объема оперативной памяти и пропускной

способности сетевого оборудования.. Причем эта рекомендация касается как

клиентской, так и серверной стороны.

Клиент-серверный подход хорошо работает в случае, когда все данные хранятся лишь в одном месте; на одном сервере базы данных. Но именно такой случай представляет собой большую редкость. По некоторым оценкам всего треть данных средней организации можно поместить в реляционную базу данных. Большинство же данных до сих пор находится в нереляционных базах данных, часто самодельных, или же просто хранятся в виде отдельных файлов. Существующие на сегодня инструменты разработки предназначены большей частью для операций с данными, выбираемыми из таблиц реляционных БД, и почти не предлагают средств для интеграции данных из множества других источников в единую систему.

Клиентские приложения становятся все более сложными и все менее управляемыми. Это общая тенденция для клиент-серверного подхода.

Ресурсы

(информационные,

технические)

Ресурсы

{информационные,

технические)

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

2. Агентный подход

В данной работе предлагается использовать новый подход и новую архитектуру (Рисунок 2) при разработке информационных систем -технологию программных агентов [14,84,97].

Пользователь 2

Ресурсы

(информационные,

технические)

Агент 1

Ресурсы

(информационные,

технические)

Пользователь

Рисунок 2 - Пример архитектуры системы на базе агентной технологии

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

Рисунок 3 - Классы решаемых задач

2.1. Классы решаемых задач

Области применения приложений, созданных на базе агентной технологии могут быть очень обширны [2], на рисунке 3 приведена классификация приложений в соответствии с классами решаемых задач.

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

2.2. Преимущества применения агентного подхода

Использование агентов (особенно интеллектуальных) [2] при сборе, поиске и анализе информации имеет ряд преимуществ, основные из которых сводятся к следующему:

Агенты могут обеспечить пользователю доступ к любым Интернет-сервисам и сетевым протоколам;

Агент может получать и решать новые задачи, будучи уже занятым решением других задач, за счет возможности копировать себя и передавать своим копиям новые задачи;

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

Мобильность (если она присутствует) позволяет агентам проводить поиск (обработку) информации непосредственно по месту её размещения, что увеличивает скорость и точность обработки, а также уменьшает загрузку сети;

Агенты могут создавать собственную базу информационных ресурсов,

которая может постоянно обновляться и расширяться с каждым проделанным заданием;

Возможность агентов сотрудничать друг с другом позволяет использовать их опыт в процессе выполнения задачи;

Агенты могут осуществлять мониторинг источников информации, уведомляя пользователя о появлении новых данных;

Агенты могут адаптироваться под предпочтения и желания пользователя;

Агенты могут работать с информацией, учитывая её контекст;

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

Использование агентных технологий:

Упростит процессы размещения (deployment) программного обеспечения в условиях сети, автоматизируя процессы перемещения программного кода, его установки и конфигурирования;

Упростит процессы обновления программного кода, заменяя неактивные в данный момент компоненты новыми версиями, сохраняя при этом ассоциированные с компонентом данные, совершенно прозрачно для работы всей системы в целом;

Упростит удаленный доступ и управление в условиях сети, в том числе с использованием мобильных устройств, таких как сотовые телефоны и PDA;

Значительно уменьшит сетевой трафик и общую избыточность

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

Уменьшит зависимость программных систем от качества и латентности каналов связи за счет возможности асинхронной обработки данных (отправили запрос агенту на обработку -отключились от сети - подключились к сети - получили результаты обработки, отправили запрос — выполняем другую работу — получаем уведомление о завершении обработки - получаем результаты);

Даст возможность балансировать нагрузку между несколькими вычислительными ресурсами и вести параллельную обработку данных за счет возможности асинхронной коммуникации между агентами и возможности перемещения кода агента по сети;

Значительно сократит время и затраты на администрирование;

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

2.3. Предпосылки применения агентного подхода

Рассмотрим следующий пример: клиент хочет стереть с удаленного сервера все файлы, которые были созданы более чем два месяца назад. Если решать эту задачу с помощью классического клиент-серверного подхода, то клиенту придется выполнить (N + \) вызовов (1 - для получения данных о файлах, N - для удаления N файлов). Таким образом, всего по сети будет передано 2(// + 1) сообщений ((W + l) запросов и (N + ї) ответов). Рассмотрим

другой подход к решению этой задачи: клиент (человек, программа) создает процедуру (другую программу), которая анализирует файлы сервера и удаляет файлы, удовлетворяющие заданному в ней критерию. Затем клиент передает эту процедуру для выполнения на удаленном сервере. При таком подходе по сети передается два сообщения (передача процедуры и возврат результатов ее работы). Будем называть такую перемещаемую процедуру (программу) мобильным агентом. Удаленное взаимодействие заменяется локальным, и уменьшается зависимость от работы сети, уменьшается трафик. Второе преимущество этого метода — расширение функциональности сервера. Серверные компоненты клиент-серверного приложения должны быть статически инсталлированы, в то время как серверные компоненты приложения, использующего второй подход, динамически инсталлируются агентами.

Можно рассмотреть пример, в котором клиент хочет взаимодействовать с несколькими серверами. Пусть существует М таких серверов и к каждому из них клиент делает ^обращений. Таким образом,

при использовании первого (клиент-серверного) подхода мы имеем 2((JVj +\)+(N}+\)+... + (Nu + l)) сообщений. Второй подход в этом случае предполагает, что агент перемещается от сервера к серверу и затем возвращает результаты клиенту. При этом возможен случай, когда совокупность серверов, которые должен обойти агент, формируется динамически в процессе его работы. Так, возможно, в процессе работы на Ї-ом сервере агент определяет свои дальнейшие действия, например, решает вернуть результаты клиенту и закончить работу. В случае использования клиент-серверного подхода, анализ получаемых от серверов результатов

17 ложится на клиента. Если агент последовательно "обходит" все сервера, по

сети будет передано (М +1) сообщение.

Конечно, для оценки затрат ресурсов (трафика, времени) нужно

оценивать длину сообщений, передаваемых в случае обычного запроса и

мобильного кода. Очевидно, что для выполнения запросов на одном

удаленном сервере агентный метод может и не дать выигрыша в трафике,

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

сообщений, содержащих запросы и ответы. Если же задействовано несколько

удаленных серверов, каждому из которых к тому же нужно послать большое

число запросов, то использование мобильного агента, содержащего в себе

(инкапсулирующего) эти запросы, кроме отмеченных выше преимуществ,

уменьшает нагрузку на коммуникационные каналы — снижает трафик, вместе

с этим уменьшается и время доставки результатов. Можно утверждать

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

выигрыш дает эта технология.

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

Классы решаемых задач

Использование агентов (особенно интеллектуальных) [2] при сборе, поиске и анализе информации имеет ряд преимуществ, основные из которых сводятся к следующему: Агенты могут обеспечить пользователю доступ к любым Интернет-сервисам и сетевым протоколам; Агент может получать и решать новые задачи, будучи уже занятым решением других задач, за счет возможности копировать себя и передавать своим копиям новые задачи; Агенты могут осуществлять поиск по заданию пользователя автономно, после отключения его от сети, и уведомляя о полученных результатах при следующем его подключении. Мобильность (если она присутствует) позволяет агентам проводить поиск (обработку) информации непосредственно по месту её размещения, что увеличивает скорость и точность обработки, а также уменьшает загрузку сети; Агенты могут создавать собственную базу информационных ресурсов, которая может постоянно обновляться и расширяться с каждым проделанным заданием; Возможность агентов сотрудничать друг с другом позволяет использовать их опыт в процессе выполнения задачи; Агенты могут осуществлять мониторинг источников информации, уведомляя пользователя о появлении новых данных; Агенты могут адаптироваться под предпочтения и желания пользователя; Агенты могут работать с информацией, учитывая её контекст; Агенты могут работать с информацией интеллектуально, например, используя словари, тезаурусы, онтологии и др., а также средства вывода релевантной информации, не представленной явно ни в запросе, ни в найденных документах.

Использование агентных технологий:

Упростит процессы размещения (deployment) программного обеспечения в условиях сети, автоматизируя процессы перемещения программного кода, его установки и конфигурирования;

Упростит процессы обновления программного кода, заменяя неактивные в данный момент компоненты новыми версиями, сохраняя при этом ассоциированные с компонентом данные, совершенно прозрачно для работы всей системы в целом;

Упростит удаленный доступ и управление в условиях сети, в том числе с использованием мобильных устройств, таких как сотовые телефоны и PDA;

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

Уменьшит зависимость программных систем от качества и латентности каналов связи за счет возможности асинхронной обработки данных (отправили запрос агенту на обработку -отключились от сети - подключились к сети - получили результаты обработки, отправили запрос — выполняем другую работу — получаем уведомление о завершении обработки - получаем результаты);

Даст возможность балансировать нагрузку между несколькими вычислительными ресурсами и вести параллельную обработку данных за счет возможности асинхронной коммуникации между агентами и возможности перемещения кода агента по сети;

Значительно сократит время и затраты на администрирование;

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

Модель жизненного цикла агента

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

Множество состояний S = {sl,s2,...,sn}, в которых может пребывать агент и переходы R = \rl,r2,...rn}, между ними составляют жизненный цикл агента L = {S,R}. Предлагается использовать модель жизненного цикла агента, приведенную на рисунке 5.

Жизненный цикл агента включает в себя: Создание (Agent Creation)- исходно состояние, с которого начинается существование агента; Принятие решения (Making Decision) — основное состояние агента, заключающееся в выборе следующего состояния агента на основе сведений о предыдущем состоянии; Ожидание задания (Waiting for task) - состояние пассивного ожидания задания, в котором агент занимает минимальное количество ресурсов системы; Выполнение задания (Task Execution) — активное состояние, направленное на решение поставленной задачи; Возврат результатов (Results Return)- передача результатов обработки агенту-инициатору, запросившему выполнение задания; Делегирование задания (Delegate)- передача всего задания или его части одному или нескольким агентам системы; Ожидание результатов (Waiting for Results) — ожидание результатов обработки делегированных задач; Клонирование (Clone) — создание собственной копии, выполняющейся параллельно оригиналу на исходной или другой агентной платформе; Перемещение (Move) - перемещение собственного тела на другую агентную платформу; Приостановка (Suspend) - сохранение своего кода и состояния в энергонезависимой памяти с последующей остановкой с целью экономии ресурсов вычислительной платформы; Взаимодействие со средой (Environment Interaction) - запросы к датчикам и мониторинг состояния среды; Уничтожение (Terminate) - завершающий этап жизненного цикла агента.

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

Идеи программных агентов привлекательны, так как позволяют людям делегировать им свои полномочия по решению различных задач. Однако разработка агента или агентой системы требует специальных знаний и является достаточно сложной ресурсоемкой задачей, так как программные агенты - это новый класс систем программного обеспечения, который является мощной абстракцией для «визуализации» и структурирования сложного. Но если процедуры, функции, методы и классы — это известные абстракции, которые разработчики используют ежедневно, то программные агенты - это принципиально новая парадигма, неизвестная большинству из них даже сегодня, поэтому вопросы проектирования систем с использованием технологии программных агентов требуют глубокой проработки.

В данной работе процесс проектирования мобильных агентных поисковых систем (в том числе переносимых, платформенно-независимых, и с возможностью работы на мобильных устройствах), предлагается осуществлять согласно методике, которая включает в себя следующие этапы: 1) Декомпозиция основной задачи на множество более простых подзадач; 2) Построение модели системы, с учетом ограничений, накладываемых мобильными устройствами, а также доступных методов и протоколов коммуникации;

Выявление факторов, которые могут повлиять на агента

В процессе работы агента множество факторов могут повлиять на его работу, например: недоступность канала связи/протоколов коммуникации; падение пропускной способности каналов связи, их нестабильность; дефицит вычислительных ресурсов машины, на которой выполняется агент; возможность остановки машины (как аварийной, так и запланированной).

Эти и другие возможные факторы, необходимо также учитывать при проектировании системы поиска: недоступность каналов связи может быть преодолена использованием резервного канала (например, использование WAP вместо GPRS в случае использования в мобильном терминале).

Недоступность протокола коммуникации возможна, если порт, используемый при осуществлении связи, блокирован средствами защиты сети (firewall), либо при использовании трансляции сетевых адресов (NAT), эта ситуация очень распространена, поэтом требует серьезного рассмотрения. Преодолеть эти ограничения можно использованием стандартных портов, таких как 21 (FTP), 25 (SMTP), 80 (HTTP), 110 (РОРЗ) (при условии, что они не заняты соответствующими сетевыми сервисами) и переключатся между ними в случае необходимости. Второй способ состоит в использовании этих сервисов как транспорта, непосредственно осуществляющего доставку сообщений. Например, так можно использовать сервисы SMTP/POP3, осуществляя передачу/прием обычных писем электронной почты, с инкапсулированными в эти письма данным запросов. Третий способ состоит в использовании специальных промежуточных средств трансляции запросов из одного формата в другой, например, из стандартного протокола обмена сообщения в системе, в сообщения электронной почты и наоборот.

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

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

Любая вычислительная платформа может быть остановлена, как в результате аварии (пропадание питание, сбой оборудования), так в плановом порядке (например, для профилактического обслуживания). Агент должен иметь возможность реагировать на такие остановки с минимальными негативными последствиями, которые могу выражаться, например, в потере данных. Для этого агент должен обладать возможностью сохранения своего состояния (Persistency), на время, пока он не будет активен, а также возможностью его возобновления. Некоторые агентные платформы уже реализуют эту возможность.

4. Выбор агентной платформы с учетом поставленных требований и ограничений

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

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

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

Инструментальные средства разработки

Архитектура SMART [18] была разработана с использованием рекомендаций MASIF . Эта архитектура содержит четыре уровня и построена на использовании виртуальной машины Java. На самом нижнем уровне администратор региона устанавливает политики безопасности для набора агентных систем. При этом он использует модуль поиска (MAFFinder) для предоставления сервиса именования. Следующий уровень - это уровень агентной системы, на котором мобильные агенты могут создаваться, перемещаться и уничтожаться. Третий уровень содержит среду выполнения агентов и одно или более мест исполнения, которые могут существовать для различных контекстов исполнения. Последний, верхний уровень - прокси, предоставляет интерфейс для приложений, написанных по технологии SMART.

Система D Agents (известная ранее как Agent Tel) - это система [20], которая изначальна была разработана в целях извлечения и обработки информации из различных источников. Её архитектура содержит пять уровней. Самый нижний обеспечивает транспортный механизм, для чего использует стек протоколов TCP/IP. Второй уровень определяет серверный слой, который должен быть реализован на всех хостах, которые будут принимать мобильных агентов. Сервер - это многопоточное приложение, которое выполняет множество агентов как потоки внутри одного процесса, хотя в тоже время каждый агент может выполняться и как собственный процесс. Следующий, третий уровень, содержит библиотеки на языке C++, которые обеспечивают функциональность агентов. Четвертый уровень обеспечивает среду исполнения для каждого из трех поддерживаемых языков - Java, Tel и Scheme. Каждая из сред исполнения содержит интерпретатор (или виртуальную машину) для поддерживаемого языка, функции-заглушки, позволяющие агенту вызывать функции в библиотеке функций C++, модуль поддержки мобильности и модель безопасности. Сами агенты определены на последнем, пятом уровне. Java Tel Scheme

Grasshopper - это платформа для поддержки разработки и исполнения мобильных агентов. [22] Платформа написана на языке Java и совместима с рекомендациями MASIF и FIPA (после установки модулей расширения).

Архитектура Grasshopper включает в себя два уровня. На первом уровне находится среда распределенных агентов, на втором среда распределенной обработки. Первый уровень определят агентство, которое имеет доступ к основным (компоненты MASIF MAFFinder и MAFAgentSystem, сервисы исполнения, транспортировки, управления, безопасности и т.д.) и расширенным сервисам (доступ к аппаратным и программным ресурсам, графическому интерфейсу и т.д.). Среда распределенной обработки разбита на регионы, агентства и места исполнения. Регионы предоставляют средства именования и управления распределенными компонентами и содержат реестр, в котором можно выполнять по различным критериям. Агентства предоставляют среду исполнения для мобильных агентов, которая обеспечивает жизненный цикл агента, транспортировку агентов, коммуникации и безопасность.

Aglets - это пожалуй наиболее известный проект, посвященный мобильным агентам, который в нем носят называния аглеты (aglets). [21] Архитектура Aglets содержит два уровня и два API, которые определяют интерфейсы доступа к функциям уровней. Верхний - уровень исполнения, содержит ядро и компоненты, обеспечивающие фундаментальные механизмы аглетов: сериализация и десериализация, загрузку и передачу классов, управление ссылками, сбор мусора и т.д., а также обеспечивает безопасность, т.е. защищает хост-компьютеры и агентов (аглетов) от несанкционированных и вредоносных действий. Нижний уровень - уровень коммуникаций, обеспечивает методы создания и передачи агентов, управление и отслеживание агентов путем, независящим от агентнои системы и протоколов. Уровень коммуникаций создан, используя рекомендации стандарта MASIF. В качестве протокола по умолчанию, архитектура Aglets использует протокол ATP (Agent Transfer Protocol), основанный на HTTP. Данный проект полностью реализован на языке Java. [16]

Похожие диссертации на Агентный подход к созданию приложений параллельного поиска информации в распределенной системе разнородных баз данных