Взаимодействие программного агента на уровне сессии с интеллектуальными пространствами
Автор: Ломов Александр андреевиЧ.
Журнал: Ученые записки Петрозаводского государственного университета @uchzap-petrsu
Рубрика: Физико-математические науки
Статья в выпуске: 8 (137), 2013 года.
Бесплатный доступ
Рассматривается задача доступа программных агентов к интеллектуальным пространствам на платформе 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.