Разработка компонента облачной IoT платформы по учету энергоресурсов и управлению приборами учета энергоресурсов
Описание проекта
IoT (Internet of things) — довольно широкое понятие. В самом общем смысле, это сеть, объединяющая различные устройства, бытового или промышленного назначения. Такая сеть может быть использована в сфере ЖКХ (жилищно-коммунального хозяйства), например, для управления приборами учета энергоресурсов, получения показаний, обработки данных показаний, что может привести к снижению операционных издержек энергетических компаний и повышению эффективности их деятельности.
В рамках проекта команда ДжазТим плотно сотрудничала с R&D службой компании заказчика, являющейся крупным оператором на российском рынке услуг по передаче данных в сфере IoT. Данная компания владеет и управляет облачной M2M — телекоммуникационной платформой (межмашинное взаимодействие) и сетью базовых станций. Базовые станции размещены во всех регионах России. Каждая базовая станция принимает пакеты от множества приборов учета через присоединенные к ним радиомодули и передает данные в M2M платформу. Связь между устройствами и базовыми станциями осуществляется через беспроводные соединения, использующие широкополосную модуляцию LoRa. Метод модуляции LoRa применяется в беспроводных сетях LPWAN (от англ. Low Power Wide Area Network), использующих для передачи данных открытый энергоэффективный сетевой протокол LoRaWAN (от англ. Long Range Wide Area Networks).
Компания активно развивает географию присутствия, постоянно расширяет покрытие сети за счет активного сотрудничества с производителями оборудования, интеграторами, сервисными организациями.
В результате сотрудничества были разработаны следующие компоненты:
- “SNMP-агент”, позволяющий подключаться к облачной телекоммуникационной платформе по протоколу SNMP. Реализована поддержка получения и установки динамических показателей устройств IoT по их идентификатору, полученных по gRPC. Все команды агента были описаны в MIB-файле. Было добавлено логирование в различные источники, в том числе syslog. Разработанный агент был успешно внедрен в систему развертывания заказчика в качестве Docker-контейнера.
- “Конвертер протоколов”, предназначенный для стандартизированного обмена данными о показаниях приборов учета (вода и электроэнергия) с внешними приложениями. Конвертер приводит сообщения из стандарта, используемого внешними системами, к внутреннему стандарту и наоборот. При отправке всех сообщений используется протокол M-BUS. С помощью Kaitai, на основе спецификаций, были созданы парсеры для обоих стандартов. В процессе реализации парсеров в форке Kaitai были обнаружены критические баги, которые были исправлены. Для всей функциональности конвертера были созданы Unit-тесты.
- Прототип “Модуля повторного запроса отсутствующих показаний приборов учета”. Модуль получает запросы показаний от внешних систем. Проверяет наличие данных показаний в базе данных и, если данные показания отсутствуют в системе, формирует запрос на съем показаний с приборов учета. При формировании запросов модуль определял, делать либо запросы единичных показаний, либо запрос показаний на период. Это предназначено для минимизации запросов к базовым станциям.
Технологии
Programming languages: Java 8, SNMP4J, Scala, Kaitai.
Infrastructure: Maven, Docker, Fabric8, TeamCity, Git, IntelliJ IDEA, Jira.
Test libraries: Junit 4.
Other libraries: Lombok.
Protocols: gRPC, SNMP.
Скриншоты
Особенности проекта
- Сжатые сроки проекта.
- Часто меняющиеся требования к минимально жизнеспособному продукту (minimum viable product, MVP).
- Для реализации SNMP-агента командой принято решение использовать готовую библиотеку SNMP4j, полноценная документация к которой отсутствует.
- Реализация парсеров для бинарных файлов и протоколов.
- Ограничение на размер передаваемых пакетов данных.
Результат проекта
- Командой обнаружены и исправлены критические баги в форке Kaitai, что привело к сокращению издержек на стороне заказчика без ущерба качеству и срокам проекта.
- Несмотря на часто меняющиеся требования, все компоненты были реализованы успешно и в срок.
Достижения команды на проекте
- Команда ДжазТим тесно и активно взаимодействовала с заказчиком на всех этапах разработки. Вовремя эскалировала заказчику возможные риски. Благодаря этому удалось вовремя обнаружить негативные последствия внедрения NoSQL базы данных. Внедрение данной базы привело бы к полному отсутствию целостности данных в системе.
- Заказчик остался доволен результатом.
Отзывы клиентов
Шириков Вячеслав, Технический директор ООО «Лартех Телеком», Санкт-Петербург, Россия
Компания “Лартех Телеком” выражает свою благодарность компании ДжазТим за сотрудничество и рекомендует их инженеров как высококвалифицированных специалистов.
Хотели бы отметить тот факт, что с первых дней команда заняла активную позицию и нацелилась на результат. Погружение команды в новую предметную область не вызвало никаких сложностей и данный процесс прошел оперативно.
Практики Agile методологий (ежедневные Scrum-митинги, еженедельные спринты, демонстрация результатов) были внедрены с самого начала. Это позволило держать коммуникацию на высоком уровне, держать фокус на конечном результате, своевременно реагировать на вызовы и изменения внешних обстоятельств, огибать подводные камни, корректировать планы и процессы.
Все работы выполнены в полном соответствии с требованиями и в указанные сроки.
Желаем компании ДжазТим успехов в профессиональной деятельности.
Свяжитесь с нами, чтобы обсудить Ваш IT-проект