Взаимодействие программного агента на уровне сессии с интеллектуальными пространствами
Автор: Ломов Александр андреевиЧ.
Журнал: Ученые записки Петрозаводского государственного университета @uchzap-petrsu
Рубрика: Физико-математические науки
Статья в выпуске: 8 (137), 2013 года.
Бесплатный доступ
Рассматривается задача доступа программных агентов к интеллектуальным пространствам на платформе Smart-M3. Предлагается модель параллельных сеансов для работы с несколькими ИП. Модель определяет сессию, объединяющую несколько сеансов, операции управления и хранилище данных, оперирующее онтологическими сущностями (класс, свойство, индивид). Предлагаемая модель реализована в инструментарии SmartSlog и позволяет упростить разработку агентов при взаимодействии с несколькими ИП.
Интеллектуальные пространства, сессия, многоагентные системы
Короткий адрес: https://sciup.org/14750553
IDR: 14750553 | УДК: 004.4
Agent’ s session based interaction with smart space
A problem of the agents’ access to smart spaces (SS) on Smart-M3 platform is considered. A model of parallel sessions’ support for simultaneous interaction with several SS is offered. The model includes: a session, management operations, and data storage. The session component is based on the multiparty session model uniting a number of sessions. It allows the agent to work with several SS. The suggested storage gives the opportunity to the agent to operate with ontological elements (class, property, individual). The offered model is realized in the SmartSlog tools and allows simplifying agents’ development for interactions with several SS.
Текст научной статьи Взаимодействие программного агента на уровне сессии с интеллектуальными пространствами
На программной платформе 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.