Программный
мониторинг
мобильных
устройств
Н.В. Курков,
студент 4-го курса, специальность «Информационные системы и технологии»
Введение
Для программного мониторинга мобильных устройств необходима информационная система, собирающая у мобильных устройств (далее - ИМУ, индивидуальное мобильное устройство) данные и представляющая их в удобном для пользователя формате.
В данном случае отслеживается географическое положение ИМУ, следовательно данные, присылаемые ИМУ, должны быть их координатами в текущий момент времени. На основе присылаемых координат, а также времени, когда эти координаты были получены, можно сделать выводы об активности того или иного ИМУ, а также его скорости. Для удобства наблюдения, по получаемым координатам можно строить траекторию движения ИМУ. На основе данных об активности устройств, а также об их скорости, можно сделать вывод о средней скорости всех активных ИМУ.
Кроме того, необходимо знать общую информацию о самом ИМУ, такую как модель ИМУ, информацию о владельце ИМУ, а также операционную систему.
Поскольку эта общая информация не изменяется со временем, то ее можно хранить в информационной системе, что упрощает запросы, посылаемые ИМУ, а также позволяет контролировать посылку запросов именно заявленным ИМУ, введя в общую информацию об ИМУ его регистрационное имя в системе и пароль.
Система-монитор должна выполнять три основные функции, то есть хранение данных ИМУ, прием данных от ИМУ и визуализация данных ИМУ. Самой логичной архитектурой системы-монитора в
81
этом случае представляется трехуровневая архитектура построения приложения. Для простоты доступа и изменения системы, средствами для разработки системы, выбраны web-технологии, то есть HTML+JavaScript (с использованием технологий AJAX) для уровня визуализации, PHP+Apache для уровня обработки данных. Для уровня хранения данных выбрана база MySQL с функциями обращения к базе данных на PHP.
Задача
Система-монитор должна поддерживать регистрацию ИМУ. Регистрационная информация содержит:
- имя устройства в системе;
- пароль для доступа к системе;
- общее описание устройства;
- операционная система устройства;
- модель устройства.
Система-монитор должна в реальном времени принимать от устройств геолокационную информацию. Доступ должен быть защищен паролем.
Система-монитор должна хранить как регистрационные данные ИМУ, так и геолокационную информацию.
На основе получаемой геолокационной информации система должна делать выводы о местоположении, активности и скорости движения ИМУ. На основе этих, а также регистрационных данных система должна отображать общие данные о количестве всех устройств, активных устройств, а также средней скорости устройств.
Визуализация геолокационных данных об устройствах (местоположение, скорость движения) должна быть реализована как текстом, так и в привязке к карте. Также, в привязке к карте система-монитор должна уметь строить траекторию движения каждого ИМУ.
Требования к архитектуре
Трехуровневая архитектура содержит:
- Уровень хранения данных. Содержит непосредственно хранилище данных и функции, отвечающие за передачу данных между хранилищем данных и уровнем обработки данных. Функции, отвечающие за передачу данных не должны заниматься обработкой данных или же визуализировать эти данные.
- Уровень обработки данных. Содержит функции, принимающие запросы от уровня визуализации, функции, обрабатывающие получаемые от уровней визуализации и хранения данных информацию. Уровень обработки данных не должен напрямую обращаться к хранилищу данных или визуализировать данные.
82
- Уровень визуализации данных. Содержит функции, предоставляющие полученную от уровня обработки данных информацию в удобном для пользователя виде, а также функции, посылающие запросы к уровню обработки данных. Уровень визуализации не должен обращаться к хранилищу данных напрямую.
Представление ИМУ на различных архитектурных уровнях
На уровне хранения данных ИМУ представлено как две сущности: постоянные данные (совпадающие с регистрационными) и постоянно обновляемые (геолокационные).
Сущность постоянных данных имеет следующие атрибуты: имя устройства в системе, пароль, общее описание устройства, операционная система, модель ИМУ.
Сущность геолокационных данных имеет атрибуты: имя устройства в системе, время добавления геолокационных данных, координаты устройства.
Учитывая, что информация на уровне хранения данных находится в базе данных MySQL, эти сущности представлены таблицами.
Сущность постоянных данных ИМУ представлена таблицей IMD, содержащей следующие поля:
- имя устройства в системе: name, поле типа varchar, ключевое;
- пароль (mdS-сумма пароля): pass, поле типа varchar;
- общее описание устройства: description, поле типа text;
- операционная система: os, поле типа varchar;
- модель устройства: model, поле типа varchar.
Сущность обновляемых данных ИМУ представлена таблицей coords, содержащей следующие поля:
- имя устройства в системе: name, поле типа varchar, ключевое;
- дата и время добавления записи: dt, поле типа datetime;
- координаты ИМУ: lat и lng, поля типа float.
На уровне визуализации данных, каждое ИМУ представлено в качестве объекта.
Этот объект содержит свойства:
- имя устройства в системе: name;
- модель устройства: model;
- описание устройства: description;
- операционная система устройства: OS;
- координаты устройства: lat и Ьд(в градусах);
- активность устройства: active (тип Date).
И методы:
- вычисление времени работы устройства (на основе свойства active): getUptime; метод не принимает аргументов и возвращает время работы или сообщение о неактивности в виде строки;
83
- вычисление скорости (на основе координат): getSpeed; метод не принимает аргументов и возвращает абсолютную скорость в метрах в секунду как целое число. Для работы этого метода объекту
добавлены дополнительные свойства «прошлые координаты»: last____lat,
last_lng. Для вычисления расстояний используется формула гаверсину-
сов [1];
- визуализация траектории (на основе координат): showPath; метод не принимает аргументов и не возвращает значений. Для работы этого метода добавлены свойства coordsArray (массив, содержащий объекты координат latLng в формате google maps API), path (объект google maps API, содержащий траекторию), а также метод hidePath, скрывающий траекторию и обнуляющий свойство path;
- создание отображения ИМУ на карте: createMarker; метод не принимает аргументов и не возвращает значений. Для работы этого метода добавлено свойство marker, содержащее объект маркера в формате google maps API.
На уровне обработки данных ИМУ не имеет четкого представления, так как этот уровень в данной конкретной системе-мониторе служит лишь «прослойкой» для передачи нужных данных от уровня хранения данных к уровню визуализации и обратно, а также передачи и обработки данных от ИМУ.
В качестве представления ИМУ на этом уровне можно привести список запросов, на которые он отвечает:
1. Регистрация нового ИМУ. От устройства принимаются следующие его постоянные параметры:
- имя устройства в системе, name;
- пароль для доступа к системе, pass;
- общее описание устройства, description;
- модель устройства, model;
- операционная система ИМУ, os.
2. Получение обновляемых данных (географических координат) от ИМУ с проверкой соответствия пары «имя пользователя -пароль». Устройство присылает следующие параметры:
- имя пользователя в системе, name;
- пароль, pass;
- координаты, lat, lng.
К уровню хранения данных также отправляется время занесения записи.
3. Запрос на получение данных для инициализации монитора. Устройство не присылает данные, а ответ состоит из массива, каждая запись в котором содержит:
- имя устройства, name;
- общее описание устройства, description;
84
- модель ИМУ, model;
- операционная система, os;
- последние, присланные данным устройством, координаты в период времени до двадцати секунд с текущего момента: lat, lng.
4. Запрос на получение координат активных устройств. Устройство не присылает данные, а ответ состоит из массива, в котором каждая запись содержит имя устройства в системе (name) и последние присланные данным устройством координаты в период времени до двадцати секунд с текущего момента (lat, lng).
Общий алгоритм работы системы
При запуске монитора, он посылает запрос на инициализацию данных, то есть на получение информации о всех содержащихся в базе ИМУ, а также географического положения тех ИМУ, которые можно считать активными.
Для каждого ИМУ создается объект, описанной в предыдущем разделе структуры. Некоторые свойства могут различаться для активных и неактивных на момент включения монитора устройств.
На основе данных, полученных при инициализации, происходит вычисление вторичных данных для каждого отдельного устройства и метаданных по всем известным устройствам.
После инициализации запускается периодическое обновление изменяемых данных, то есть координат и активности, а также обновления зависящих от них вторичных данных и метаданных. Обновления данных происходят до выключения монитора.
Стоит отметить, что прием сервером координат или регистрационных от ИМУ не зависит от активности, или неактивности уровня визуализации системы и осуществляется в любое время работы сервера.
Итоговые возможности системы
85
Интерфейс системы содержит карту с отображением ИМУ, два информационных поля и селектор ИМУ.
На карте треугольниками отображается текущее положение активных ИМУ, обновляющееся с периодичностью в десять секунд. Цвет треугольника находится в степенной зависимости от скорости движения ИМУ, от белого до красного. Белым цветом обозначается находящееся на месте ИМУ, красным - ИМУ, движущееся со скоростью 180 км/ч.
При нажатии на значок ИМУ на карте, информация о нем отображается в верхнем информационном поле.
Верхнее информационное поле содержит следующую информацию:
• Имя устройства.
• Модель устройства.
• Операционная система.
• Описание устройства.
• Активность.
• Скорость.
• Широта.
• Долгота.
• Время работы.
Нижнее информационное поле содержит следующую информацию:
• Количество активных ИМУ.
• Количество зарегистрированных ИМУ.
• Средняя скорость.
Селектор позволяет выбрать любое ИМУ (в том числе неактивное) для просмотра информации о нем в верхнем информационном поле.
Библиографический список
1. R.W. Sinnott, «Virtues of the Haversine», Sky and Telescope. -Vol. 68. - № 2, 1984. - Р. 159.
86