Шаблон агента-медиатора для программного обеспечения сенсорных сетей

Программные продукты и системы /Software & Systems

№ 3 (111), 2015

УДК 007 Дата подачи статьи: 22.04.15

DOI: 10.15827/0236-235X.111.166-170

ШАБЛОН АГЕНТА-МЕДИАТОРА ДЛЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СЕНСОРНЫХ СЕТЕЙ

А.В. Иващенко, д.т.н., доцент, профессор, anton.ivashenko@gmail.com (Самарский государственный аэрокосмический университет им. академика С.П. Королева (национальный исследовательский университет),

Московское ш., 34, г. Самара, 443086, Россия);

А.А. Минаев, ведущий инженер, thebestmauda@gmail.com;

М.Ю. Сподобаев, к.т.н.., доцент, директор филиала, mspd@soniir.ru

Статья посвящена реализации концепции Интернета вещей (Internet of things, IoT) при решении задач распределенной диагностики в технической сфере и медицине. Для обмена информацией в сенсорной сети как открытой, распределенной и самоорганизующейся системе предлагается разработать ПО устройств диагностики, основанное на мультиагентной технологии. В качестве решения предлагается шаблон агента-медиатора, реализующего посреднические функции в беспроводной сенсорной сети (сеть под управлением такого ПО предлагается называть медиаторной). Устройства сбора информации под управлением агента-медиатора не только реализуют свое непосредственное назначение, но и участвуют в передаче информации между сторонними устройствами, адаптируя интервалы дискретизации событий сбора данных и обмена сообщениями. Таким образом обеспечивается балансировка загрузки сенсорной сети в части перераспределения нагрузки на датчики в соответствии с темпом возникающих событий. В статье рассматриваются функциональность и архитектура агента-медиатора, описывается шаблон (паттерн) с помощью диаграммы классов UML, а также приводятся особенности его реализации на практике для сенсорной сети с использованием свободной ОС реального времени для встраиваемых систем FreeRTOS. Описанное решение было апробировано на практике в рамках одной из задач медицинского мониторинга при реализации устройств контроля процессов внутривенной инфузии. Преимущества предлагаемого решения в адаптивности за счет перераспределения соединений узлов сети связи в зависимости от текущей нагрузки, интероперабельности, так как сеть связи конфигурируется и развивается по принципам самоорганизации и новые узлы могут самостоятельно входить в сеть, и устойчивости к сбоям.

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

Концепция Интернета вещей (Internet of things, IoT), охватывающая широкий спектр задач построения беспроводных сетей, организации межмашинного взаимодействия и реализации про-граммно-конфигурируемых сетей [1, 2], вызывает достаточно большой интерес. Возможности беспроводной связи позволяют строить распределенные архитектуры систем сбора и обработки данных, мониторинга и диагностики, открытые для подключения новых устройств и адаптивно подстраивающиеся под изменения внешних условий. Одной из областей возможного применения таких решений является техническая и медицинская диагностика, цель которой - мониторинг и оценка состояния машины или человеческого организма с помощью распределенной и самоорганизующейся сети датчиков - беспроводной сенсорной сети.

В качестве примера можно рассмотреть задачу интенсивной медицинской диагностики с использованием распределенной сети датчиков, отслеживающих динамику изменения состояния пациента в условиях протекающей болезни. В работах [3, 4] описывается решение, основанное на реализации сети связи датчиков с координатором на основе протоколов беспроводной передачи данных ZigBee и Bluetooth. Координатор диагностической сети организует прием потоков диагностической

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

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

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

166

Программные продукты и системы /Software & Systems

№ 3 (111), 2015

той диагностической системе и необходимость функционирования в режиме реального времени с учетом высокой изменчивости внешней среды, задачу построения диагностической сенсорной сети следует отнести к проблематике обработки больших данных (Big Data) [5].

Решение указанной проблемы сопряжено с реализацией новых парадигм программирования, поддерживающих возможность распределенного взаимодействия автономных активных устройств в процессе решения конкретной оперативной задачи. Одной из таких парадигм, наиболее подходящей в данном контексте, является мультиагентная технология [6, 7], суть которой состоит в реализации взаимодействия в сенсорной сети с помощью автономных программных агентов. Приведем оригинальную реализацию мультиагентной архитектуры для сенсорной сети распределенной диагностики, которая позволяет решить задачу балансировки загрузки в условиях обработки больших данных.

Мультиагентные технологии в последнее время получили достаточно большое распространение. Реализация мультиагентной системы может существенно различаться в зависимости от конкретной решаемой задачи. При этом одним из неизменных свойств программного агента является его посредническая деятельность: агенты постоянно взаимодействуют с пользователями или другими программами. В этой связи понятие посредника или медиатора достаточно широко используется в теории мультиагентных систем. Под медиатором в данном случае понимают специфический тип агента, предназначение которого состоит в координации гетерогенных интеллектуальных агентов [8], представлении объектов предметной области [9] (здесь понятия «медиатор» и «агент» близки) и реализации протоколов и механизмов передачи сообщений между агентами с целью обеспечения их взаимодействия [10, 11].

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

Функции каждого агента-медиатора:

- сбор данных и накопление их в промежуточном хранилище небольшого объема;

- предварительная обработка данных в реальном времени и выявление потенциально опасных ситуаций;

- корректировка интервалов дискретизации (адаптивная дискретизация) - уменьшение в случае необходимости повышения точности измерений и увеличение по возможности для снижения нагрузки на сеть;

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

- запрос к другим агентам датчиков для проведения дополнительных измерений и осуществления комплексного анализа ситуации;

- выполнение функций посредника (медиатора) при передаче данных между сторонними агентами и центром;

- балансировка нагрузки по сбору данных и выполнению посреднических функций.

Архитектура агента-медиатора представлена на рисунке 1. Она позволяет наделить систему сбора и обработки данных функционалом, который определяет возможность начального диагностического анализа. Модуль датчика представляет собой законченное устройство, имеющее беспроводной интерфейс, преобразователь физической величины в оцифрованные данные и систему управления. Для минимизации количества первичных данных, которые необходимо обработать, система управления модулем датчика управляет частотой дискретизации производимых измерений. Частота дискретизации измеряемых параметров является важным фактором, влияющим на эффективность работы не только отдельного модуля датчика, но и всей системы в целом.

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

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

167

Программные продукты и системы /Software & Systems

№ 3 (111), 2015

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

В том случае, когда мультиагентная система имеет программную реализацию агентов и инфраструктуры их взаимодействия в рамках многозадачной ОС, динамическое распределение вычислительных ресурсов целесообразно осуществлять при помощи потоков. Тогда процесс переключения контекстов выполнения задач агента реализуется на уровне диспетчера потоков, а балансировка - при помощи инструментов распределения приоритетов конкретной ОС. Переносимость данного решения в определенной мере обеспечивается за счет реализации системы в рамках набора стандартов POSIX или использования кроссплатформенных инструментов разработки ПО (Qt, Java). Описанный подход также целесообразно

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

Однако зачастую агенты системы реализуются в виде множества автономных модулей с достаточно ограниченной вычислительной способностью. Такие модули, как правило, реализуются на базе микроконтроллеров, не имеющих в своем составе блока управления памятью (MMU, memory management unit), отвечающего за трансляцию виртуальных адресов и, как следствие, не поддерживающих наиболее популярные многозадачные ОС. В таком случае исполняемые задачи агента можно реализовать в рамках одного контекста выполнения, в который также включена логика распределения аппаратных ресурсов. Однако такой подход имеет ряд недостатков. Во-первых, переключение между задачами возможно только после полного завершения одной итерации задачи (так как отсутствует возможность сохранения/восста-новления контекста выполнения), что в итоге ухудшает характеристики балансировки. Во-вторых, ухудшается переносимость такой системы на другие платформы.

Поэтому предлагаемым решением является использование свободной ОС реального времени для встраиваемых систем FreeRTOS. Данная ОС реализует переключение контекстов потоков в рамках глобального адресного пространства с учетом выставленных приоритетов. Часть кода системы, отвечающего непосредственно за переключение

168

Программные продукты и системы /Software & Systems

№ 3 (111), 2015

Рис. 2. Шаблон агента-медиатора Fig. 2. A mediator agent pattern

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

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

Предлагаемое решение имеет следующие преимущества: адаптивность за счет перераспределения соединений узлов сети связи в зависимости от

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

Литература

1. Росляков А.В., Ваняшин С.В., Гребешков А.Ю., Самсонов М.Ю. Интернет вещей. Самара: Изд-во ПГУТИ-АСГАРД, 2014. 340 с.

2. Кучерявый А.Е. Интернет вещей // Электросвязь. 2013. № 1. С. 21-24.

3. Bessis N., Dobre C. Big Data and Internet of Things: A roadmap for smart environments (Studies in computational intelligence). Springer, 2014, 450 p.

4. Aminian M., Naji HR. A hospital healthcare monitoring system using wireless sensor networks. J Health Med Inform, 2013, vol. 4, no. 121.

5. Sahandi R., Noroozi S., Roushanbakhti G., Heaslip V. and Liu Y. Wireless technology in the evolution of patient monitoring on general hospital wards. Journ. of Medical Engineering and Technology, 2010, vol. 34, no. 1, pp. 51-63.

6. Городецкий В.И. Самоорганизация и многоагентные системы. I. Модели многоагентной самоорганизации // Изв. РАН: Теория и системы управления. 2012. .№ 2. С. 92-120.

7. Иващенко А.В., Карсаев О.В., Скобелев П.О., Царев А.В., Юсупов Р.М. Мультиагентные технологии для разработки сетецентрических систем управления // Изв. ЮФУ: Технические науки. 2011. .№ 3 (116). С. 11-23.

8. Maturana F.P., Norrie D.H. A generic mediator for multiagent coordination in a distributed manufacturing system. Systems, Man and Cybernetics, IEEE International Conference, 1995, vol. 1, pp. 952-957.

169

Программные продукты и системы /Software & Systems

№ 3 (111), 2015

9. Lin H. Architectural design of multi-agent systems: technologies and techniques. Idea Group Inc (IGI) Global, 2007, 421 p.

10. Pinninck A.P., Sierra C., Schorlemmer W.M. A multiagent network for peer norm enforcement / Autonomous Agents and Multi-Agent Systems, 2010, vol. 21, no. 3, pp. 397-424.

11. Decentralized mediator in an Open Multi-Agent System.

Rapport de stage. 2006. Ecole Polytechnique de l’Universit'e de Nantes. URL: http://www.les.inf.puc-rio.br/wiki/images/e/e8/Fi-nalRapport.pdf (дата обращения: 20.04.2015).

12. Ivaschenko A., Minaev A. Multi-agent solution for adaptive data analysis in sensor networks at the intelligent hospital ward. Lecture Notes in Computer Science LNCS 8610, Springer Intern. Publ. Switzerland, 2014, pp. 453-463.

DOI: 10.15827/0236-235X.111.166-170 Received 22.04.15

A MEDIATOR PATTERN FOR SENSOR NETWORKS SOFTWARE Ivaschenko A. V., Dr.Sc. (Engineering), Associate Professor, Professor, anton.ivashenko@gmail.com

(Samara State Aerospace University,

Moskovskoe Highway 34, Samara, 443086, Russian Federation);

Minaev A.A., Leading Engineer, thebestmauda@gmail.com;

Spodobaev M.Yu., Ph.D. (Engineering), Associate Professor, mspd@soniir.ru (Radio Research and Development Institute (NIIR),

Sovetskoy Armii St. 217, Samara, 443011, Russian Federation)

Abstract. The paper addresses the challenges of implementation of Internet of Things concept when solving the problems of distributed diagnostics in a technical sphere and medicine. To implement data exchange in a sensor network as in an open, distributed and self-organized system it is proposed to develop multi-agent software for diagnostic devices. A mediator agent pattern is proposed as a solution, that implements intermediary functionality in wireless sensor network (the network powered by such a software is called a Mediator network). The devices for data processing under the mediator agent control implement not only their direct purpose, but also take part in data transfer between other devices and adapt time sampling intervals. Load balancing is provided this way by load distribution between the sensors according to events velocity. The paper describes the functionality and architecture of a mediator agent, its pattern in the form of UML classes diagram, and implementation features for a sensor network under control of FreeRTOS free real time operating system. The described solution was tested in practice for one of the medical monitoring problems to implement the intravenous infusion monitor. The benefits of the solution include adaptability of nodes connections according to the current load, interoperability due to reconfiguration, self organization, and the possibility of new nodes to be included themselves and failure tolerance.

Keywords: the Internet of Things, sensor network, distributed diagnostics, multi-agent technology, mediator network.

References

1. Roslyakov A.V., Vanyashin S.V., Grebeshkov A.Yu., Samsonov M.Yu. Internet veshchey [The Internet of Things]. Samara, As Gard Publ., 2014, 340 p.

2. Kucheryavy A.E. The Internet of Things. Elektrosvyaz [Electrosvyaz Magazine]. 2013, no. 1, pp. 21-24 (in Russ.).

3. Bessis N., Dobre C. Big Data and Internet of Things: A roadmap for smart environments (Studies in computational intelligence). Springer Publ., 2014, 450 p.

4. Aminian M., Naji HR. A hospital healthcare monitoring system using wireless sensor networks. Journ. Health Med Inform. 2013, vol. 4, no. 121.

5. Sahandi R., Noroozi S., Roushanbakhti G., Heaslip V., Liu Y. Wireless technology in the evolution of patient monitoring on general hospital wards. Journ. of Medical Engineering and Technology. 2010, vol. 34 (1), pp. 51-63.

6. Gorodetsky V.I. Self-Organization and Multiagent Systems: I. Models of Multiagent Self-Organization. Izvestia RAN. Teoriya i systemy upravleniya [Journ. of Computer and Systems Sciences International]. 2012, vol. 51, iss. 2, pp. 92-120 (in Russ.).

7. Ivaschenko A.V., Karsaev O.V., Skobelev P.O., Tsarev A.V., Yusupov R.M. Multiagent technology for development of network-centric control systems. Izvestiya Yuzhnogo federalnogo universiteta. Tekhnicheskie nauki [Izvestiya SFedU. Engineering Sciences]. 2011, no. 3 (116), pp. 11-23 (in Russ.).

8. Maturana F.P., Norrie D.H. A generic mediator for multi-agent coordination in a distributed manufacturing system. IEEE Int. Conf. on Systems, Man and Cybernetics. 1995, vol. 1, pp. 952-957.

9. Lin H. Architectural Design of Multi-Agent Systems: Technologies and Techniques. Idea Group Inc (IGI) Global Publ., 2007, 421 p.

10. Pinninck A.P., Sierra C., Schorlemmer W.M. A multiagent network for peer norm enforcement. Autonomous Agents and Multi-Agent Systems. 2010, no. 21 (3), pp. 397-424

11. Decentralized mediator in an Open Multi-Agent System. Rapport de stage. 2006, Ecole Polytechnique de l’Universit'e de Nantes. Available at: http://www.les.inf.puc-rio.br/wiki/images/e/e8/ FinalRapport.pdf (accessed April 20, 2015).

12. Ivaschenko A., Minaev A. Multi-agent solution for adaptive data analysis in sensor networks at the intelligent hospital ward. Lecture Notes in Computer Science LNCS 8610. Springer Int. Publ., Switzerland, 2014, pp. 453-463.

170