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

Бесплатный доступ

Рассматривается задача доступа программных агентов к интеллектуальным пространствам на платформе Smart-M3. Предлагается модель параллельных сеансов для работы с несколькими ИП. Модель определяет сессию, объединяющую несколько сеансов, операции управления и хранилище данных, оперирующее онтологическими сущностями (класс, свойство, индивид). Предлагаемая модель реализована в инструментарии SmartSlog и позволяет упростить разработку агентов при взаимодействии с несколькими ИП.

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

Короткий адрес: https://sciup.org/14750553

IDR: 14750553

Текст научной статьи Взаимодействие программного агента на уровне сессии с интеллектуальными пространствами

На программной платформе Smart-M3 реализуются многоагентные распределенные системы, в которых агенты взаимодействуют в общем интеллектуальном пространстве (ИП, от англ. smart space) [7], [9]. Агент – программа, работающая на вычислительном устройстве. Семантический информационный брокер (SIB, от англ. semantic information broker) реализует интерфейс доступа агентов к ИП.

Информация в ИП представлена моделью RDF (от англ. resource description framework) в виде троек: субъект, предикат, объект. Это позволяет проводить машинную обработку и вывод новых понятий [5]. Таким образом, ИП рассматривается как база знаний [4], формируемая агентами и управляемая брокерами. Агент взаимодействует с брокером по протоколу SSAP (от англ. smart space access protocol) на основе сеансов клиент-сервер [8]. Для отслеживания изменений на стороне ИП в рамках сеанса организуются подписки [2].

В статье предлагается частный случай модели взаимодействия в распределенной системе [3] для поддержки параллельных сеансов агента с ИП. Модель определяет сессию, операции управления и хранилище данных. Используется онтолого-ориентированный подход к разработке агента [11] на основе языка веб-онтологий OWL. Подробнее о разработке агентов в [12], об использовании онтологий для разработки программного обеспечения и агентов в [10], [11].

Модель используется в авторском инструментарии для разработки Smart-M3 агентов SmartSlog [1] и позволяет уменьшить объем программного кода агента, использующего параллельные сеансы, и способствует разработке агента с более высоким уровнем переносимости.

УРОВЕНЬ СЕАНСОВ

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

Будем представлять сеанс p как ( Qp , Tp ), где Qp – это множество подписок агента в сеансе, Tpp – набор всех троек, используемых (отправляе-м p ых и получаемых) в операциях сеанса. Множество всех сеансов и подписок заданного агента обозначим как P и Q .

Агент работает с локальными копиями данных, поэтому при использовании параллельных сеансов необходимо объединять данные, так как в распределенных системах связанные между собой данные могут получаться из различных источников. Пусть D = Yp PTp – локальное хранилище на стороне агента.

Рассмотрим пример использования параллельных сеансов на основе «умного дома», где ИП1 работает внутри дома, а ИП2 работает в доме и снаружи (рис. 1). В ИП1 есть информация о звонках и электронных письмах, в ИП2 – о звонках. В доме агент использует два параллельных сеанса, снаружи – один. При выходе из дома сеанс p 1 с подписками завершается. При возвращении в дом сеанс p 1 и подписки должны быть восстановлены. Нужно провести синхронизацию локального хранилища D с данными сеанса Tp 1, например, добавить данные о письмах и звонках в хранилище D , учитывая дублирование.

Рис. 1. Работа параллельных сеансов

Таким образом, для поддержки параллельных сеансов нужно: 1) реализовать работу сеансов и подписок, 2) организовать хранение данных с возможностью объединения и синхронизации. Для решения этих задач предлагается объединить сеансы в сессии и реализовать хранилище данных, разделенное между сеансами сессии, с возможностью синхронизации на основе подписок.

УРОВЕНЬ СЕССИЙ

Предлагаемой моделью параллельных сеансов описываются сессия, основанная на модели многоэлементной сессии [6], операции управления и хранилище данных. Данные представлены сущностями языка онтологий OWL: классами, свойствами и индивидами (экземплярами классов). Это позволяет работать с объектами (например, человек, машина) и скрыть низкоуровневые детали, упрощая разработку агента [11]. Данный подход позволяет использовать модель в инструментарии SmartSlog.

Сеансы объединяются в сессии s , реализуемой на прикладном уровне сетевой модели OSI [3] и определяемой как ( Ps , Qs , Ds ), где Ps – сеансы, Qs – подписки, Ds – хранилище данных. С точки зрения онтологического представления хранилище Ds определим как Oc Ov Oi , где O c , O v , O i - множества классов, свойств и индивидов. Все объекты онтологии O представим как Oc Ov Oi .

Если сеанс p Ps , то в контексте сессии представим его как p = ( Qp , Op ), где Qp Qs , Op Ds . Сеанс или подписка могут находиться в активном состоянии или в состоянии ожидания. Пусть множество сеансов Ps и подписок Qs – это дизъюнкции Pa Pw и Qa Qw , где Pa , Qas и Pw , Qw – множества сеансов и подписок в активном состоянии и в состоянии ожидания. Для сеанса p Pa установлено сетевое соединение с брокером для операций по протоколу SSAP. Для подписки q Qa ожидаются уведомления от брокера. Для сеанса p Pw и подписки q Qw сетевое взаимодействие отсутствует.

В модели управление объектами выполняется на основе операций, каждое имеет вид (табл. 1):

U = { REG , DEL , ACTIVE , WAIT }, где REG – регистрация, DEL – удаление, ACTIVE – активация, WAIT – ожидание. Регистрация – это локальная операция, устанавливающая связь между объектами (сеансами, подписками, сущностями онтологий) и сессией. Операция DEL удаляет связь объекта с сессией. Операции ACTIVE и WAIT используются для управления состоянием всей сессии, отдельных сеансов и подписок.

УПРАВЛЕНИЕ ОБЪЕКТАМИ ДАННЫХ В РАМКАХ СЕССИИ

Все объекты сессии имеют уникальные идентификаторы, при помощи которых осуществляется регистрация. Для сессии и подписок идентификаторы генерируются при создании. Идентификаторы сеансов задаются разработчиком. Для классов и свойств используются URI (от англ. Uniform Resource Identifier, унифицированный идентификатор ресурса) [5] из онтологии. Для индивидов URI задается разработчиком либо создается на основе URI родительского класса.

На рис. 2 представлена диаграмма состояния объектов в сессии. Жизненный цикл объекта начинается при регистрации его в сессии и заканчивается при удалении. Объекты онтологий после регистрации помещаются в хранилище. Для управления состоянием сеансов и подписок применимы операции ACTIVE и WAIT . Использование нескольких сеансов с различными наборами подписок позволяет организовать группы подписок и активировать часть подписок при определенных условиях, останавливая другие, и наоборот.

Состояние сессии определяет состояние всех сеансов и подписок (см. таблицу). Выделим три способа использования нескольких сессий: 1) активация-ожидание, 2) активация-завершение, 3) смешанный. При способе 1 неиспользуемые сессии переводятся в состояние ожидания. При способе 2 сессия завершается после работы с ней. Способ 3 комбинирует два предыдущих. Например, агент использует часть сессий с постоянным набором сеансов и часть создает для разовых взаимодействий с ИП.

Рис. 2. Состояние объектов сессии

Операции управления объектами

Регистрация и удаление объекта из сессии; объекты онтологии помещаются или удаляются из хранилища

REG ( 5 , x ) =

( P5 и { x }, Qs, Ds ), если x e Pu x 4 P5

( Ps , Qs и { x }, Ds), если x e Qu x 4 Qs

( P5 , Qs , Ds и { x }), если x e Ou x 4 Ds

DEL ( s , x ) = •

( Ps \ { x } , Qs , Ds ), если x e Ps ( Ps, Qs \{ x }, Ds), если x e Q 1 Ps , Qs , Ds \ { x }) , если x e Ds

Активация сессии, сеанса или подписки. Активация сессии приводит к активации всех сеансов в сессии. Активация сеанса приводит к активации подписок связанных с сеансом

ACTIVE ( 5 ) ^ ACTIVE ( 5 , p ), для V p е P5

ACTIVE{s,x) = -

\Ps = {Pw\{x}c{Pac{x}},Qs,Ds)^

ACTIVE(s, q) для Vqe Qx, если xe Ps (Ps,Qs={QnA{x}c{Qac{x}},Ds),

_ еслихе Q

Перевод в состояние ожидание сессии, сеанса или подписки. Переход сессии переводит в состояние ожидания все сеансы и подписки. Переход сеанса переводит все подписки в состояние ожидания

WAIT ( 5 ) ^ WAIT ( 5 , p ), для V p е Pa

WAIT(s,x) = -

' (Ps = {Pa\{x}c{P„c{x}},Qs,Ds^

WAIT(s,q) для ^q g Qx, если x g Ps

(Ps, Qs = {6«\ M}u {S„ u to L ecnu XG Q,

РАЗРАБОТКА АГЕНТА НА УРОВНЕ СЕССИИ

На основе модели параллельных сеансов предложена следующая схема разработки агента (рис. 3).

Рис. 3. Схема разработки агента

Шаг 1. Создание сессии s , сеансов, классов и подготовка сессии к работе операцией REG ( s , x ). Если в сессии нет сеансов, то невозможно взаимодействовать с ИП. При отсутствии классов и свойств нельзя создавать индивидов и устанавливать связи.

Шаг 2. Использование а) операций для управления состоянием ( ACTIVE ( s , x ), WAIT ( s , x )), работы с локальными данными, б) операций для взаимодействия с ИП. Операции для работы с локальными данными и взаимодействия зависят от реализации в инструментарии.

Шаг 3. Завершение сессии: перевод сессии в состояние ожидания и удаление всех зарегистрированных объектов и сущностей онтологии (операции WAIT ( s ) и DEL ( s , x )).

На примере «умного дома» (см. рис. 1) рассмотрим использования сессии (см. пример ниже). В строках 1 и 2 создаются сессия, сеансы и классы. В строке 3 объекты регистрируются в сессии. В строках 4–6 создаются и регистриру- ются подписки. Строки 7–11 описывают логику управления состоянием сеансов в зависимости от местонахождения. Если территория «умного дома» покинута, то сессия останавливается, и из нее удаляются все объекты (строки 12–13).

Пример построения агента

  • 1.    Создать сессию, сеансы: s , p 1, p 2

  • 2.    Создать класс телефона и электронного письма: t , e

  • 3.    Зарегистрировать объекты: REG ( s , p ), REG ( s , p ), REG ( 5 , t ), REG ( 5 , e )

  • 4.    Создать подписки для звонков и писем сеанса p 1: at , ae

  • 5.    Создать подписку для звонков сеанса p 2: bt

  • 6.    Зарегистрировать подписки: REG ( s , a ); REG ( s , a );

  • 7.    Пока В_Умном_Доме () = «Да»

  • 8.    Если (В_Доме () = «Да» И p. е P ) { ACTIVE ( 5 , p ,); }

  • 9.    Если (В_Доме () = «Да» И p 2 е P" ) { ACTIVE ( 5 , p 2 ); }

  • 10.    Если (Снаружи () = «Да» И p 1 е P ) {WAIT ( 5 , p 1 ); }

  • 11.    Конец

  • 12.    Остановить сессию WAIT ( 5 )

  • 13.    Завершить 5 // DEL ( 5 , x )

REG ( s , bt )                                 t            e

ЗАКЛЮЧЕНИЕ

Предложенная модель позволяет агенту использовать несколько сеансов в одной сессии, управлять объектами в сессии и предоставляет локальное хранилище, разделенное между сеансами сессии. Хранилище синхронизируется при помощи подписок. Подписки можно разбивать на группы и управлять их состоянием. В результате агент имеет возможность: а) работать с параллельными сеансами, б) управлять состоянием сеансов и подписок, в) объединять данные различных ИП, г) синхронизировать локальное хранилище. Модель используется в инструментарии SmartSlog, что позволяет работать с объединенной и поддерживаемой в актуальном состоянии информацией об объектах предметной области разных ИП.

* Работа выполнена при поддержке Программы стратегического развития ПетрГУ в рамках реализации комплекса мероприятий по развитию научно-исследовательской деятельности на 2012–2016 гг.

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

  • Корзун Д. Ж., Ломов А. А., Ванаг П. И. Автоматизированная модельно-ориентированная разработка программных агентов для интеллектуальных пространств на платформе Smart-M3//Теоретический и прикладной научно-технический журнал «Программная инженерия». 2012. № 5. С. 6-14.
  • Ломов А. А., Корзун Д. Ж. Операция подписки для приложений в интеллектуальных пространствах платформы Smart-M3//Труды СПИИРАН. 2012. № 4. С. 439-458.
  • Таненбаум Э., Стеен ван М. Распределенные системы. Принципы и парадигмы. М.; СПб.: Питер, 2003.
  • Akerkar R., Sajja P. Knowledge-Based Systems//Jones & Bartlett Publishers. 2010. P. 354.
  • Allemang D., Hendler J. Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL//Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. 2008.
  • Deni’elou P.-M., Yoshida N. Multiparty Session Types Meet Communicating Automata//Proceedings of the 21st European conference on Programming Languages and Systems. 2012. P. 194-213.
  • Honkola J., Laine H., Brown R., Tyrkko O. Smart-M3 Information Sharing Platform//Proc. IEEE Symp. Computers and Communications (ISCC’10). 2010. P. 1041-1046.
  • Kiljander J., Morandi F., Soininen J.-P Knowledge Sharing Protocol for Smart Spaces//International Journal of Advanced Computer Science and Applications (IJACSA). 2012. Vol. 3. № 9.
  • Korzun D. G., Balandin S. I., Luukkala V., Liuha P., Gurtov A. V. Overview of Smart-M3 Principles for Application Development//Proc. Congress on Information Systems and Technologies (IS&IT’11), Conf. Artificial Intelligence and Systems (AIS’11). 2011. P. 64-71.
  • Obitko M., Marik V. Adding OWL Semantics to Ontologies Used in Multi-agent Systems for Manufacturing//Lecture Notes in Computer Science. 2003. Vol. 2744. P. 189-200.
  • Pan J. Z., Staab S., ABmann U., Ebert J., Zhao Y. Ontology-Driven Software Development//Berlin: Springer, 2013.
  • Wooldridge M. An Introduction to MultiAgent Systems//Wiley. 2009. P. 484.
Еще
Статья научная