Описание проекта

Интерфейс администратора для управления умными замками

Интерфейс администратора для управления умными замками
Системы Умный дом набирают популярность. Перед нами поставили задачу по разработке приложения администратора для обслуживания умных замков.

Бизнес-логика

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

Разрабатываемая система состоит из следующих компонентов:

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

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

Работа администратора построена по принципу таск-трекера: у него есть список задач, которые он последовательно закрывает. Задача — это набор действий, которые нужно произвести над замком: например, собрать какую-то информацию с девайса, считать журнал событий или залить новую версию прошивки.

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

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

С этим вопросом к нам и обратился заказчик. Нам предстояло добавить в существующее iOS приложение механизм “быстрых задач” — задач, доступ на которые администратора запрашивает прямо во время работы над замком. Этот доступ ему предоставляется в срочном порядке, но вся информация о действиях администратора остается в системе.

Решение

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

Если у административного приложения есть соответствующий протокол, администратор может выполнять “быстрые” операции без дополнительного запроса к серверу. Это важно, потому что не всегда у администратора есть доступ к сети во время работы с замком.

Однако, если приложение администратора еще не получало протокола на определенное действие, нужно инициировать запрос на доступ на операцию у сервера. Сервер вышлет протокол, и пользователь сможет выполнить “быструю” задачу.

Результаты

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

Такое количество документации было необходимо для того, чтобы хранить и систематизировать знания о протоколах и правах доступа: порядок генерации протоколов, их содержание, специальные условия, способы обработки всех возможных видов запросов, порядок использования протоколов и иерархия прав доступа были подробно описаны. У нас ушло около полутора месяцев на то, чтобы разобраться в деталях.

На данный момент работа над “быстрыми” задачами успешно завершена.

Хотите обсудить проект?

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