Construction of the system software configuration management platform using intelligent agents

УДК 004.896:004:41

И.Ю. Зинаков ПОСТРОЕНИЕ СИСТЕМЫ УПРАВЛЕНИЯ КОНФИГУРАЦИЕЙ ПРОГРАММНОГО КОМПЛЕКСА С ПРИМЕНЕНИЕМ ИНТЕЛЛЕКТУАЛЬНЫХ АГЕНТОВ

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

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

I.Yu. Zinakov

CONSTRUCTION OF THE SYSTEM SOFTWARE CONFIGURATION MANAGEMENT PLATFORM USING INTELLIGENT AGENTS

The process of configuration management as part of software engineering.

Analysis of the different implementations of configuration management systems indicates the need for a peer to peer distributed architecture. This architecture can be implemented using multi-agent systems using intelligent agents. Examined the basic mechanisms of multi-agent systems and proposed models of interaction and different types of agents.

Software engineering, intelligent agents, multi-agent systems, the analysis of complex systems, systems analysis

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

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

Управление конфигурацией, согласно стандарту ISO 12207, является процессом применения административных и технических процедур на всем жизненном цикле программных средств для обозначения, определения и установления состояния базовой версии программных продуктов в системе; управления изменениями и выпуском объектов;

описания и информирования о состояниях объектов и заявок на внесение изменений в них; обеспечения полноты, совместимости и правильности объектов; управления хранением, обращением и поставкой объектов [7].

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

Многие существующие системы управления конфигурацией программного комплекса построены на основе распределённой [2] клиент-серверной архитектуры [3]. Выбор архитектуры обычно предопредёлён техническими требованиями, однако главной особенностью и недостатком этой схемы является наличие сложного централизованного сервера, от которого во многом зависит работоспособность всего программного комплекса и клиентских модулей. Для того чтобы исключить зависимость системы от одного центрального узла, необходимо применять резерверирование, либо декомпозицию и частичное распределение серверных функций по нескольким серверным узлам, что неизбежно приведёт к увеличению стоимости системы.

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

Современные подходы к процессу эксплуатации программного комплекса требуют внедрения [1] систем управления конфигурацией программного обеспечения (англ. software configuration management или SCM). Система управления конфигурацией в общем случае включает: планирование и управление, идентификацию, контроль, инвентаризацию,

верификацию и аудит (рис. 1).

Рис. 1. Система управления конфигурацией. Верхний уровень

Согласно рис. 1, с точки зрения системного анализа, современные системы

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

централизованных серверов С, специалистов-администраторов £ и конечных пользователей и, в результате:

SCM1 = {М,Е,СДи}.

При применении одноранговой архитектуры на клиентские модули М распределяются серверные функции С. В результате получаем множество автономных программных модулей А, определяемые как А = С и М, при этом А = {Ас, £п,Мр, Ь}, где Ас - множество

исполнительных алгоритмов, £п - сенсорных алгоритмов, Мр - алгоритмов и протоколов связи с агентной платформой и Ь - алгоритмов логики агентов. Для одноранговой агентной системы получаем:

£СМ2 ={А, Е, £ ,и, Р},

где Р - множество алгоритмов агентной платформы.

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

Согласно существующим требованиям к открытым архитектурам мульти-агентных систем, описанных в БГРА-спецификациях [4], платформа состоит из контейнеров агентов, распределенных по сети. Агенты расположены в контейнерах, которые, являясь процессами, обеспечивают выполнение модуля платформы Р и всех служб, необходимых для размещения и работы агентов. Существует специальный контейнер, называемый Главный Контейнер, который представляет собой загрузочную точку платформы и является первичным запускаемым контейнером. Другие контейнеры должны присоединяться к основному контейнеру, регистрируясь в нём. В ЦМЬ диаграмме на рис. 2 схематично представлены отношения между главными архитектурными элементами платформы.

Платформа

1..*

- регистрируются в 1..*

1

Рис. 2. иМЬ-диаграмма

В момент загрузки Главный Контейнер [5] выполняет следующие специальные функции:

• управление таблицей контейнеров (СТ), которая регистрирует описания объектов и транспортные адреса всех контейнерных узлов, входящих в состав платформы;

• управление Глобальной Таблицей Описания Агентов (ОАБТ), которая является реестром всех агентов, представляющих платформу, в том числе их нынешнего состояния и местоположения;

• размещение AMS (агент управления системой) и DF (агент каталога-посредника), двух

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

службы и стандартной службы объявлений платформы.

Основными элементами этого идентификатора агента является имя агента и его адрес.

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

Для поддержки взаимодействия между разными платформами в разрабатываемой системе управления конфигурацией программных комплексов реализуются все стандартные протоколы обмена сообщениями, определяемыми в FIPA [6], где каждый сервис MTP включает определение транспортного протокола и стандарт кодирования сообщений в пакете. Для внутреннего сообщения между агентами одной платформы используется Внутренний Сервис Передачи Сообщений (IMTP), который в общем случае не совместим с протоколами MTP FIPA и учитывает только специфику агентов конкретной платформы.

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

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

Интеллектуальные агенты имеют важные характеристики: рефлексивность, как свойство системы, позволяющее анализировать результаты собственной деятельности отдельно от изменения окружающего мира; самообучаемость; управление целями поведения; планирование целей. Перечисленные выше характеристики и требования к агентной системе соответствуют логической архитектуре интеллектуальных агентов. Интеллектуальные агенты, построенные на основе BDI-модели [8], включают представления как информацию о закономерностях и состоянии внешней среды; множество всех целей и подцелей агента и множество целей, достигаемых в заданный момент.

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

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

• поддержка стабильности локального программного комплекса;

• минимизация использования процессорного времени, загрузки каналов связи;

• уменьшение простоев в работе, связанных с конфигурированием программ.

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

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

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

ЛИТЕРАТУРА

1. Bersoff E.H. Elements of Software Configuration Management. IEEE Computer Society Press, Los Alamitos, CA, 1997. P. 32.

2. George Reese. Database Programming with JDBC and Java, Second Edition. Sun Microsystem. 2009. P. 145.

3. Васкевич Д. Стратегии клиент/сервер. Киев: Диалектика, 1997. 410 с.

4. FIPA Abstract Architecture Specification, http://www.fipa.org/ Geneva, Switzerland, 2005. P. 35.

5. FIPA Agent Management Specification, http://www.fipa.org/ Geneva, Switzerland, 2004. P. 52.

6. FIPA Agent Message Transport Service Specification, http://www.fipa.org/ Geneva, Switzerland, 2001. P. 62.

7. Липаев В.В. Программная инженерия. Методологические основы. М.: Тэис, 2006.

608 c.

8. Burmeister B., Sundermeyer K. Cooperative problem-solving guided by intensions and perception, edited by E. Werner and Y. Demazean, Decentralized A.I. 3. - Amsterdam, The Netherlands, North Holland, 1992. P. 81.

Зинаков Иван Юрьевич -

аспирант кафедры «Системы искусственного интеллекта» Саратовского государственного технического университета

Zinakov Ivan Yur'evich -

Post-graduate Student, Department of

“Systems of an artificial intellect”, Saratov State Technical University

Статья поступила в редакцию 21.01.2011, принята к опубликованию 20.06.2011