ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ
УДК 681.3
В. И. Городецкий, О. В. Карсаев, В. В. Самойлов, В. Г. Конюший ЯЗЫК ОПИСАНИЯ МНОГОАГЕНТНЫХ СИСТЕМ
Приводится описание основ языка ASML, являющегося специфическим расширением „стандартного" языка описания программного обеспечения UML и используемого в инструментальной среде MASDK 4.0 для проектирования много-агентных систем. Этап анализа и архитектурного проектирования систем выполняется с помощью графических диаграмм, предназначенных для описания метамоделей систем, протоколов взаимодействия, схем ролей и сценариев поведения ролей. Этап детального проектирования выполняется с помощью диаграмм, предназначенных для описания онтологий предметной области и сценариев поведения классов агентов.
Ключевые слова: язык моделирования, многоагентные системы.
Введение. Тенденции развития технологий разработки программного обеспечения определяются, с одной стороны, возможностями вычислительных средств, а с другой — потребностями индустриального сообщества. Интенсивное развитие Интернет- и Web-техноло-гий постепенно приводит к качественному пересмотру концепции современного бизнеса и, как следствие, к усложнению задач, возлагаемых на программное обеспечение. В частности, одной из основных тенденций в настоящее время является интенсивное использование информационно-телекоммуникационной среды для разработки распределенных программных систем с открытой архитектурой. Такие системы состоят из множества сущностей (программных компонентов), каждая из которых решает свои локальные задачи и при необходимости взаимодействует с другими сущностями системы. Причем взаимодействия между сущностями системы становятся ключевым фактором, определяющим поведение и возможности всей системы в целом. Основное преимущество такой архитектуры — удобство моделирования с ее помощью реальных систем, что позволяет повысить скорость разработки программного обеспечения и расширить границы его практического применения.
Одним из наиболее перспективных подходов к разработке такого рода программных систем является многоагентный подход, при котором система моделируется множеством взаимодействующих интеллектуальных агентов. Возможности широкого применения много-агентного подхода в настоящее время ограничены относительно низким уровнем инструментальной поддержки процесса разработки многоагентных систем (МАС). Этим объясняется актуальность задачи создания инструментальной среды, поддерживающей полный цикл разработки МАС. При этом наиболее рациональным подходом к созданию такой среды является развитие базовых концепций объектно-ориентированного программирования и, в частности, создание специфических языков для описания моделей МАС на основе языка UML [1].
Наряду с развитием инструментальных сред проводятся исследования в области методологий разработки прикладных МАС. К числу наиболее широко известных и активно
развивающихся методологий относятся Gaia, MaSE, Tropos [1], среди которых Gaia [2] занимает особое место. Отличительная особенность этой методологии заключается в том, что в ней, по аналогии с организацией „живых систем", основное внимание уделяется разработке и описанию организационных структур МАС.
Упомянутые два фактора, предполагающие использование методологии Gaia и специфического расширения языка UML для описания прикладных МАС, лежат в основе разработки инструментальной среды MASDK (Multi-Agent System Development Kit), развиваемой в СПИИРАН. При этом язык и методология имеют тесную взаимосвязь, обусловленную использованием в языке понятий и конструкций, определяемых в методологии Gaia.
Настоящая статья содержит изложение основ разработанного языка ASML (Agent-Based System Modelling Language), используемого для описания прикладных многоагентных систем четвертой версии среды MASDK. Описание предыдущей, третьей версии среды опубликовано в работе [3].
Визуальное проектирование МАС. Язык ASML по аналогии с языком UML имеет графическую нотацию, которая используется для визуального проектирования прикладных МАС. При этом разработка в среде MASDK 4.0 сводится к описанию моделей МАС с помощью диаграмм шести типов (см. рисунок). На этапе анализа и архитектурного проектирования используются диаграммы четырех типов, предназначенные для описания метамоделей МАС, протоколов взаимодействия, схем ролей агентов и сценариев поведения ролей агентов. Этап детального проектирования поддерживается диаграммами двух типов, предназначенных для описания онтологий предметных областей и сценариев поведения классов агентов.
Диаграммы и технология визуального проектирования
Проектирование МАС в среде MASDK 4.0 выполняется в соответствии с принципом „сверху вниз". Это означает, что с помощью диаграмм первого типа описание метамодели МАС выполняется на системном уровне. Диаграммы последующих типов используются для детального описания элементов модели, введенных на первом или предыдущих уровнях.
Диаграммы метамоделей МАС. Для описания метамоделей МАС в языке ASML определены следующие классы понятий — роли и классы агентов, активные сущности, цели (задачи), протоколы взаимодействия и сервисы. При этом основополагающими элементами
метамоделей МАС служат понятия роли агентов и активные сущности. Описание ролей агентов является основой для идентификации классов агентов — эта задача относится к заключительной фазе описания диаграмм метамоделей МАС.
Содержательное описание ролей агентов выполняется с помощью классов понятий ме-тасценарии поведения и правила проактивного поведения. Метасценарии поведения каждой роли, как правило, соответствуют задачам, которые выполняются данной ролью. Таким образом, в процессе идентификации метасценариев поведения, по сути, выявляется функциональность ролей. При этом агенты — как автономные сущности — могут инициировать выполнение своих метасценариев поведения самостоятельно, без каких-либо воздействий со стороны других агентов или пользователей системы. Для описания такого поведения ролей агентов используются классы понятий правила проактивного поведения. В текущей версии языка рассматриваются два типа правил такого рода: временные и событийные. Правила первого типа „срабатывают" в зависимости от времени, правила второго типа — при наступлении соответствующих событий.
Класс понятий активные сущности используется для описания элементов системы, которые не являются агентами, а образуют их внешнюю среду: это могут быть, в частности, пользовательские приложения, различного рода сенсоры или активаторы.
Описываемые в метамодели МАС цели (задачи) могут относиться как к системе в целом, так и к отдельным ролям агентов.
Для описания метамоделей МАС используются следующие типы отношений: решение задачи (достижение цели) инициируется активной сущностью / правилом проактивного поведения (роли); метасценарий поведения (роли) / активная сущность инициирует протокол взаимодействия; протокол взаимодействия / правило проактивного поведения инициирует метасценарий поведения (роли); протокол взаимодействия инициирует метасценарий поведения (роли) /активную сущность.
С помощью отношений данных типов описывается схема взаимодействия ролей, которая предопределяется выбранной организационной структурой МАС.
Основным классом понятий, который позволяет описывать поведение МАС, подобное поведению „живых систем", является сервис. Для этого класса понятий в языке ASML определены два взаимосвязанных типа отношений: роль предоставляет / потребляет сервис, класс агента играет роль. Описание сервисов и данных типов отношений обеспечивает организацию взаимодействия агентов в открытых системах. В частности, поиск агентов, предоставляющих необходимый сервис, лежит в основе того, как они формируют команды, необходимые для достижения целей системы.
Одним из результатов описания метамоделей МАС является идентификация элементов модели, которые должны быть детально описаны с помощью диаграмм других типов. Этими элементами являются протоколы взаимодействия и метасценарии поведения (ролей).
Диаграммы протоколов взаимодействия. Описание каждого протокола, идентифицированного при описании метамодели, выполняется с помощью отдельной диаграммы данного типа. Эти диаграммы являются расширением диаграмм последовательностей языка UML. При этом в языке ASML используются такие понятия, как инициатор протокола, респондент протокола, коммуникационный акт, комбинированный фрагмент „Альтернативы". Последнее понятие применяется для описания фрагмента протокола, когда его участник в зависимости от текущей ситуации должен сделать выбор выполняемого коммуникационного акта из числа возможных, а также (в ряде случаев) выбрать, в адрес кого из участников протокола взаимодействия должен быть направлен тот или иной коммуникационный акт. Детальное описание самих коммуникационных актов выполняется с помощью языка ACL (Agent Communication Language) [4], принятого в качестве „стандарта" для описания взаимодействий между агентами.
Диаграммы схем и сценариев поведения ролей. Диаграммы этих двух типов используются для детального описания метасценариев поведения ролей. Диаграммы схем ролей предназначаются для декомпозиции метасценариев поведения на несколько отдельных сценариев поведения и описания порядка их выполнения с помощью следующих типов отношений: сценарий инициируется правилом проактивного поведения / протоколом взаимодействия; сценарий инициирует протокол взаимодействия; сценарий использует сценарий.
Поведение агентов допускает параллельное выполнение двух и более метасценариев поведения. В связи с этим может возникнуть необходимость в координации выполнения разных сценариев поведения. Для этого в языке ЛБМЬ используются класс понятий событие и связанные с ним следующие типы отношений: сценарий генерирует событие; сценарий ожидает событие; правило проактивного поведения использует событие. Первый тип отношений используется для идентификации сценария поведения, исполнение которого вызывает появление соответствующего события. Второй тип отношений используется для описания обработки прерываний выполнения сценариев, а именно: возникновение события является сигналом для продолжения сценария. Последний тип отношений описывает одно из условий срабатывания правил проактивного поведения — условие возникновения соответствующего события.
Диаграммы второго типа используются для детального описания сценариев поведения, идентифицированных при описании схем ролей. Это описание сводится к описанию узлов сценариев и их логических схем — переходов между узлами. В языке ЛБМЬ определены классы понятий и отношений для описания следующих типов узлов сценариев: действие, генерация / ожидание события; отправка / ожидание сообщений; обработка сообщения; сложное действие; узлы принятия решений и др. Каждый из перечисленных типов узлов несет соответствующую функциональную нагрузку. В частности, в узлах принятия решений описываются возможные варианты выполнения сценариев поведения, в узлах типа сложное действие уточняется, когда выполняется вызов вложенных сценариев поведения, и т.д.
Диаграммы онтологий. Спецификация языка ЛБМЬ также включает соответствующие классы понятий и типы связей между ними, необходимые для описания онтологий предметной области. Основными классами понятий являются понятие предметной области и атрибуты понятий. Описание атрибутов предполагает задание допустимых областей их значений. Описание онтологий позволяет устанавливать между понятиями следующие типы отношений: наследование (обобщение), ассоциация и использование.
Диаграммы сценариев поведения классов агентов. Диаграммы этого типа используются для детального описания поведения классов агентов. При этом базовая модель описания определяется: 1) множеством установленных при описании метамодели отношений типа класс агента играет роль; 2) описанием схем и сценариев ролей, связанных с классом агентов отношениями данного типа. Описание сценариев поведения класса агентов предполагает развитие сценариев поведения ролей, выполняемых данным классом агентов. Такое развитие сценариев не нарушает логических схем поведения, заданных для ролей. При этом рассматриваются две задачи.
Первая задача заключается в модификации описания сценариев поведения с учетом аспектов их реализации на уровне программного кода. Эта задача носит опциональный характер, т. е. необходимость в модификации сценариев поведения в ряде случаев может полностью отсутствовать, а если такая модификация и требуется, то она сводится к незначительным изменениям в описании сценариев поведения ролей.
Вторая задача состоит в детальной спецификации поведения класса агентов. Это предполагает описание модельных переменных и параметров, типы которых определяются в терминах понятий предметной области, описываемых в онтологиях. Для описания поведения на уровне классов агентов вводятся только модельные переменные, а на уровне сценариев — как модельные переменные, так и параметры. На основании этого формально определяются сиг-
натуры вызова сценариев поведения класса агентов. При этом сценарии могут вызываться как с уровня класса агентов, так и из других сценариев. В первом случае сценарии инициируются либо при срабатывании соответствующих правил проактивного поведения, либо в моменты начала участия агентов в протоколах взаимодействия в качестве респондентов.
Описание модельных параметров также выполняется и для детальной спецификации узлов сценариев поведения. Это позволяет формально специфицировать действия агентов, которые описываются в соответствующих узлах сценариев. Например, спецификация узлов принятия решений позволяет с помощью параметров формально описать условия возможных переходов.
Генерация программного кода. На основе созданного в процессе редактирования диаграмм описания модели МАС автоматически генерируется исходный программный код. При этом генерируются три библиотеки классов. Первая библиотека описывает поведение классов агентов на уровне сценариев поведения и их логических схем, вторая — структуру хранилища данных классов агентов и методы доступа к нему, третья — действия агентов, которые должны выполняться в каждом из узлов сценариев поведения. Первая и вторая библиотеки генерируются полностью, что исключает необходимость какого-либо их редактирования программистом. Третья библиотека содержит сгенерированное описание интерфейсов классов. При этом каждому сценарию поведения в этой библиотеке соответствует свой класс, а каждому узлу сценария — свой метод с описанием его параметров. Таким образом, для окончательного завершения разработки прикладной МАС на программном уровне необходимо реализовать методы третьей библиотеки.
Заключение. В настоящей статье описаны только основы языка ASML, используемого в инструментальной среде MASDK 4.0. Детальное описание языка, а также всей инструментальной среды в целом можно найти на Интернет-странице лаборатории интеллектуальных систем СПИИРАН [5].
Исследования, описанные в настоящей статье, осуществляются при поддержке Федерального агентства по науке и инновациям РФ (государственный контракт 02.514.11.4045).
список литературы
1. Bergenti F., Gleizes M. P., Zambonelli F. Methodologies and Software Engineering for Agent Systems. Boston — Dordrecht — London: Kluwer Academic Publishers, 2004.
2. Zambonelli F., Jennings N. R., Wooldridge M. Developing multiagent systems: The Gaia Methodology // Transact. on Software Engineering and Methodology. 2003. Vol. 2, N 3. P. 317—370.
3. Gorodetsky V., Karsaev O., Konushy V. et al. Multi-agent system development kit // Software Agent-Based Applications, Platforms and Development Kits / Eds.: R. Unland, M. Klusch, M. Calisti. Birkhauser Book, 2005. P. 95—120.
4. Agent Communication Language Specification [Электронный ресурс]: <http://www.fipa.org/repository/aclspecs.html>.
5. Лаборатория интеллектуальных систем [Электронный ресурс]: <http://space.iias.spb.su/ai/index.jsp>.
Сведения об авторах
Владимир Иванович Городецкий — СПИИРАН, лаборатория интеллектуальных систем;
E-mail: [email protected]
Олег Владиславович Карсаев — СПИИРАН, лаборатория интеллектуальных систем;
E-mail: [email protected]
Владимир Владимирович Самойлов — СПИИРАН, лаборатория интеллектуальных систем;
E-mail: [email protected] Виктор Григорьевич Конюший — СПИИРАН, лаборатория интеллектуальных систем;
E-mail: [email protected]
Поступила в редакцию 06.05.08 г.