На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Агентно-ориентированная технология проектирования

Статья опубликована в выпуске журнала № 1 за 2006 год.
Аннотация:
Abstract:
Авторы: Семенов С.В. () - , Лещев В.А. () - , Конюхов И.А. (konuhov@cps.tver.ru) - НИИ «Центрпрограммсистем» (заведующий отделом), Тверь, Россия, Кеменов А.Ф. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 20632
Версия для печати
Выпуск в формате PDF (1.26Мб)

Размер шрифта:       Шрифт:

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

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

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

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

И тем не менее можно сказать, что подход к решению распределенных задач с помощью агентов уже сформировался в отдельную ветвь технологий проектирования – AOSE – Agent oriented software engineering. Более того, идея семантической сети, которую выдвинул Тим Бернерс-Ли, председатель консорциума W3С, подразумевает, что все элементы семантической сети будут дополнены метаинформацией – формальным описанием своего содержания – и смогут иметь произвольное число семантических связей с другими элементами. Информационные ресурсы в такой сети смогут обрабатывать не только люди, но и программы, получая семантически значимые результаты. В такой сети становится возможной деятельность программных агентов, которые будут выполнять множество рутинных, но требующих определенного интеллекта задач по обработке информации без помощи человека. Основной трафик будет порождаться агентами, а конечный пользователь будет только давать задания агентам и выполнять общее управление такой деятельностью.

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

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

·     автономность: агенты функционируют без прямого вмешательства кого-либо и обладают определенной способностью контролировать свои действия и внутреннее состояние;

·     способность общения: агенты взаимодействуют с другими агентами, с окружающей их средой (и, возможно, людьми) посредством какого-либо коммуникационного языка;

·     реактивность: агенты обладают способностью воспринимать среду и адекватно реагировать в определенных временных рамках на происходящие изменения;

·     проактивность: агенты не просто реагируют на изменения среды, но и обладают целенаправленным поведением и способностью проявлять инициативу;

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

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

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

Теория агентных систем начала развиваться задолго до появления XML-технологий и успела накопить значительный потенциал, который можно использовать в новых технологиях. Например, в самых простых случаях можно делать обертку (wrapper) для веб-сервиса в виде агента (или наоборот), в более сложных (при проектировании систем) использовать стандарты W3C на хореографию и композицию веб-сервисов (для этого служит язык BPEL). Такие идеи уже развиваются.

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

Становится все более ясно, что агентские системы, семантическая сеть, и веб-сервисы являются дополнительными, а не конкурирующими технологиями [3].

Преимущество веб-служб над предыдущими middleware-технологиями на основе компонентов (например, CORBA и DCOM) в том, что протоколы являются веб-ориентируемыми и легковесными.

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

Jena успешно использовалась в множестве агентских проектов, включая RDF/ XML, как подмножество выводов, санкционированных семантикой XML, например, библиотека агента для поддержки модели RDF/OWL, основанная на Jena – AgentOWL. Она охватывает следующие функциональные возможности: модель знания агента, основанная на OWL; посылка сообщений OWL; получение сообщений OWL; включение полученной информации в модель; XML-RPC получение сообщений; XML-RPC возврат в виде RDF и XML.

Библиотека состоит из таких классов, как онтология, память, сообщение.

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

Разработка агентных систем в Европе приобрела такие масштабы, что встал вопрос о стандартизации, для решения которого еще в 90-х годах были основаны две организации MASIF (Mobile agent sys­tem interoperability facility) и FIPA (Foundation of intellectual physical agents). Их работа вылилась в появление стандартов MASIF и FIPA, дающих рекомендации по созданию систем мобильных агентов и систем интеллектуальных агентов соответственно.

FIPA была образована в 1996 для разработки спецификаций стандартов ПО для гетерогенных и взаимодействующих агентов и систем на основе агентов [5].

В 2005 г. FIPA была официально принята в международную организацию IEEE в качестве ее одиннадцатого комитета по стандартизации.

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

Методологии помогают объединить различные процессы, необходимые для реализации многоагентной системы в единую цепочку. Методологии преодолевают разрыв между концепциями, используемыми объектно-ориентированными и агентно-ориентируемыми разработчиками. На данный момент нет единого представления о том, как нужно разрабатывать агентные системы. Методологий много (Gaia, MaSE, AUML, Fusion, Tropos и др.), каждая претендует на оптимальное решение, по крайней мере, частных вопросов. Различные школы и течения различаются не только на уровне последовательности действий, но и на уровне принятых обозначений.

Методология Gaia, например, строится на упомянутом выше ролевом мышлении, когда проектируемая система представляется как организация, а последняя функционирует, реализуя набор ролей. Методология предусматривает следующую последовательность действий при проектировании мультиагентной системы:

·     определить роли и построить модель ролей;

·     для каждой роли определить протоколы и построить модель взаимодействия;

·     создать модель агентов;

·     создать модель сервисов;

·     создать модель контактов.

В контекте Gaia «агент – это некоторая активная программная сущность, проигрывающая набор ролей».

Агентная платформа – это промежуточный исполнительный уровень, который находится между агентами и операционной системой. В некоторых случаях платформа может опираться не на саму операционную систему, а использовать уже существующую надстройку/платформу. Такой надстройкой может служить, например, Java Virtual Machine или .NET Framework. Ничто не мешает, впрочем, разработать необходимую агентную платформу, которая будет опираться на уже существующую.

Агентная платформа:

-    является средой, в которой живут агенты;

-    предоставляет агентам базовые сервисы, необходимые для их существования;

-    реализует всю низкоуровневую инфраструктуру (не нужно писать весь код заново при создании очередной мультиагентной системы);

-    реализует определенные стандарты для обеспечения взаимодействия с другими платформами. (Например, следующие агентные платформы: JADE, Zeus, Cougaar, FIPA-OS, Grasshopper, Agent­Builder, Aglets, Agent Platform и др.).

JADE, в частности, одна из агентных платформ, наиболее полно поддерживающих спецификацию FIPA-2000. Активность программного агента в JADE описывается набором классов, каждый из которых соответствует элементарному поведению агента. JADE для создания программных агентов предоставляет базовый класс Agent, который реализует функции взаимодействия с агентной платформой (регистрация, конфигурация, удаленное управление и др.), а также основной набор методов для организации поведения программного агента (например, послать/ принять сообщения, использование стандартных протоколов взаимодействия, регистрация в нескольких каталогах и т.д.). Взаимодействие между программными агентами происходит через сообщения, которые кодируются в соответствии со спецификацией «FIPA ACL Message structure specification».

Решение различных задач на основе AOSE показывают перспективность такого подхода во многих отраслях, в том числе для обучающих систем [6,7].

Список литературы

1.   Кибяков П.П. Мир нейронных сетей и агенты – двойники. (http://oasis.peterlink.ru/~dap/nneng/nnlinks/NNAgents-Doubles.html).

2.   Тарасов В.Б. Агенты, многоагентные системы, виртуальные сообщества: стратегическое направление в информатике и искусственном интеллекте. // Новости искусственного интеллекта. – 1998. - №3. - С.5-54.

3.   Ian Dickinson. The Semantic Web and Software Agents: Partners, or Just Neighbours? AgentLink News 15, 2004, pp. 3-6.

4.   Daniel Elenius. Tools for Semantic Web Services. AgentLink News, 18.

5.   Monique Calisti. Latest News from the Standardisation World. //AgentLink News, 18, 2005, pp. 31-32.

6.   Kabassi, K., & Virvou, M. Using Web Services for Personalised Web-based Learning. Educational Technology & Society, 6(3), 2003, рр.61-71.

7.   Келеберда И.Н., Лесная Н.С., Репка В.Б. Использование мультиагентного онтологического подхода к созданию распределенных систем дистанционного обучения. //Educati-onal Technology & Society 7(2), 2004, pp. 190-205.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=470&lang=
Версия для печати
Выпуск в формате PDF (1.26Мб)
Статья опубликована в выпуске журнала № 1 за 2006 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: