Статья: Метод шаблонов приложений для повышения мобильности распределенных систем сбора и ретрансляции информации с биомедицинских датчиков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

А.В. Петров, О.С. Большаков,

А.С. Лебедев, Н.Е. Голубева,

ООО "НаноАрм"

Аннотации

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

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

We study the problem of developing cross-platform software for distributed systems for collecting, processing and relaying data from biomedical sensors on mobile devices for cloud servers. An approach to the problem of template-based software system, a description of the structure of the proposed solution and the function of each component, specify the method of component interaction pattern.

Key words: mobile application development tools, cross-platform, technology platforms, compilers, translators, cloud technologies, software development methodologies.

Введение

Сегодня мобильные вычислительные устройства (смартфоны) обладают значительной вычислительной мощностью, длительным временем автономной работы (до 4 вычислительных ядер общего назначения и 12 ядер специализированного назначения в процессоре Nvidia Tegra 3 пиковой производительностью до 12 Gflops [1]), широкой коммуникационной периферией, набором встроенных сенсоров. Можно сказать, что современные смартфоны и планшетные компьютеры прочно заняли нишу персональных вычислительных устройств [2] и число их пользователей постоянно растет, а статистические данные по интенсивности и продолжительности их использования одним пользователем сравнимы с обычными персональными компьютерами и ноутбуками.

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

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

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

шаблон приложение биомедицинский датчик

1. Шаблон распределенной системы ретрансляции данных с биомедицинских датчиков

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

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

Таким образом, ЭО ПК реализует технологию автоматизированного проектирования и разработки высокопроизводительных конфигурируемых кроссплатформенных мобильных приложений с возможностями удаленного обмена данными с серверами приложений и серверными СУБД.

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

Отметим, что задача разработки метода построения систем ретрансляции данных является актуальной, в том числе в области построения интегрированных облачных медицинских систем [3, 4, 5], поскольку её решение позволяет повысить актуальность получаемой от пациента информации и сократить сроки реагировании на возникающие в его состоянии ситуации.

2. Структура предлагаемого решения

В состав разработанного ЭО ПК входят следующие модули:

1) модуль бизнес-логики;

2) модуль обмена данными с серверной СУБД и серверами приложений;

3) модули взаимодействия с периферийными устройствами, подключаемых или встроенных в МУ;

4) модуль аутентификации и авторизации пользователя мобильного приложения.

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

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

Структура программного комплекса ЭО ПК представлена на рисунке 1.

В структуре ЭО ПК можно выделить следующие слои:

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

2) слой шаблона приложения, включает в себя расширяемый библиотечный код повторно используемых компонентов, реализующих базовые системные функции по ретрансляции, хранению, защите данных, управлению рабочими процессами, распределению ресурсов, отображению информации;

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

Рисунок 1 - Структура ЭО ПК

В структуре ЭО ПК можно выделить следующие компоненты:

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

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

3) web-компонент, включающий в свою структуру систему управления контентом, ядро приложения, реализующее API для связи с остальными компонентами ЭО ПК, и интерфейс для подключения пользовательских модулей.

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

1) среда разработки и конфигурирования позволяет изменять шаблон мобильного приложения на уровне исходного кода на языке программирования С++ с использованием модулей автоматизированного проектирования и разработки (в частности с использованием модулей кодогенерации по UML-диаграммам и генерации реализации пользовательских протоколов с использованием разработанного метода генерации). Среда основана на платформе с открытым исходным кодом MoSync и обеспечивает кроссплатформенность создаваемых на базе шаблона мобильных приложений (поддерживаются ОС Android, iOS);

2) шаблон мобильного приложения кроссплатформенно реализует базовые сервисы ЭО ПК на языках С++ и Java на библиотечном уровне, позволяющие ретранслировать данные, хранить их на мобильном устройстве в случае отсутствия подключения к серверу, отображать диагностическую и другую информацию на экране мобильного ретранслятора; Шаблон мобильного приложения включает в себя реализованные модуль обмена данными с сервером (реализуются протоколы сетевого уровня модели OSI, протокол прикладного уровня генерируется по пользовательским описанием с использованием разработанного метода), модуль, предоставляющий возможность работы мобильного приложения в offline-режиме, модуль пользовательского интерфейса в "нативном" варианте реализации, модули регистрации и аутентификации; Данный компонент реализует модули обмена данными с серверной СУБД и серверами приложений и аутентификации и авторизации пользователя мобильного приложения, обозначенные выше.

3) модули сбора данных и отображения разрабатываются на языке С++ пользователем ЭО ПК в среде разработки и конфигурирования, назначение модулей определяется решаемой прикладной задачей. Данные модули реализуют модули взаимодействия с периферийными устройствами, подключаемых или встроенных в МУ, обозначенные выше.

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

1) интерфейс администратора серверного компонента позволяет настраивать параметры ядра и пользовательских модулей;

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

3) пользовательские модули серверного компонента, подключаемые к ядру серверного компонента через специфицированный интерфейс и конфигурируемые из административной части серверного компонента, реализуют на языке Java функции обработки ретранслируемых данных, при необходимости их визуализации и конвертации. Данные модули реализуют серверную часть модуля бизнес логики, обозначенного выше.

Назначение модулей web-компонента с адаптивным пользовательским интерфейсом заключается в следующем:

1) система управления контентом позволяет администрировать, конфигурировать и расширять web-приложение, в том числе за счет добавления нового статического и динамического контента;

2) ядро web-приложения, реализует на языке PHP шаблонный механизм генерации html-страниц по методу адаптивного пользовательского интерфейса web-страниц, за счет использования сформированных css и javascript файлов, а также SMARTY-конструкций описанных на языке XML. Ядро web-приложения включает в себя модули регистрации и аутентификации.

3) пользовательские модули, позволяют добавлять на языке программирования PHP новую функциональность в виде новых страниц web-приложения. Данные модули реализуют часть модуля бизнес логики, относящуюся к внешним по отношению к ЭО ПК приложениям и обозначенную выше.

3. Порядок взаимодействия составных компонентов

Взаимодействие компонентов ЭО ПК реализуется по схеме многоуровневого протокола взаимодействия. Все уровни, лежащие ниже прикладного уровня протокола взаимодействия (по модели OSI) реализованы в библиотечных API-функция шаблонов компонентов ЭО ПК [6, 7]. Реализация прикладного уровня протокола основывается на декларативном пользовательском описании, по которому согласно методу генерации реализации протоколов генерируется исходный код, интегрируемый с шаблонами трех основных компонентов ЭО ПК.

4. Анализ применимости разработанного метода

Приведем основные технологические подходы к разработке кроссплатформенных мобильных приложений [8 - 12]:

1) среды исполнения промежуточного представления (виртуальные машины, исполняющие промежуточный байт код и портированные под требуемые платформы);

2) генераторы нативного кода (трансляторы с промежуточного представления на язык, написанные на котором программы компилируются непосредственно под требуемую платформу, например: [2]);

3) веб-сервисы (web-приложения, использующие HTML5, Javascript, Web Socket и прочее);