En

JazzTeam Software Development Company

Agile Java Development

Разработка компонент облачной IoT платформы по учету энергоресурсов и управлению приборами учета энергоресурсов

IoT (Internet of things) - довольно широкое понятие. В самом общем смысле, это сеть, объединяющая различные устройства, бытового или промышленного назначения. Такая сеть может быть использована в сфере ЖКХ (жилищно-коммунального хозяйства), например, для управления приборами учета энергоресурсов, получения показаний, обработки данных показаний, что может привести к снижению операционных издержек энергетических компаний и повышению эффективности их деятельности.

В рамках проекта команда JazzTeam плотно сотрудничала с R&D службой компании заказчика, являющейся крупным оператором на российском рынке услуг по передаче данных в сфере IoT. Данная компания владеет и управляет облачной M2M - телекоммуникационной платформой (межмашинное взаимодействие) и сетью базовых станций. Базовые станции размещены во всех регионах России. Каждая базовая станция принимает пакеты от множества приборов учета через присоединенные к ним радиомодули и передает данные в M2M платформу. Связь между устройствами и базовыми станциями осуществляется через беспроводные соединения, использующие широкополосную модуляцию LoRa. Метод модуляции LoRa применяется в беспроводных сетях LPWAN (от англ. Low Power Wide Area Network), использующих для передачи данных открытый энергоэффективный сетевой протокол LoRaWAN (от англ. Long Range Wide Area Networks).

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

В результате сотрудничества были разработаны следующие компоненты:

  1. “SNMP-агент”, позволяющий подключаться к облачной телекоммуникационной платформе по протоколу SNMP. Реализована поддержка получения и установки динамических показателей устройств IoT по их идентификатору, полученных по gRPC. Все команды агента были описаны в MIB-файле. Было добавлено логирование в различные источники, в том числе syslog. Разработанный агент был успешно внедрен в систему развертывания заказчика в качестве Docker-контейнера.
  2. “Конвертер протоколов”, предназначенный для стандартизированного обмена данными о показаниях приборов учета (вода и электроэнергия) с внешними приложениями. Конвертер приводит сообщения из стандарта, используемого внешними системами, к внутреннему стандарту и наоборот. При отправке всех сообщений используется протокол M-BUS. С помощью Kaitai, на основе спецификаций, были созданы парсеры для обоих стандартов. В процессе реализации парсеров в форке Kaitai были обнаружены критические баги, которые были исправлены. Для всей функциональности конвертера были созданы Unit-тесты.
  3. Прототип “Модуля повторного запроса отсутствующих показаний приборов учета”. Модуль получает запросы показаний от внешних систем. Проверяет наличие данных показаний в базе данных и, если данные показания отсутствуют в системе, формирует запрос на съем показаний с приборов учета. При формировании запросов модуль определял, делать либо запросы единичных показаний, либо запрос показаний на период. Это предназначено для минимизации запросов к базовым станциям.

Технологии:

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.

Скриншоты:

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

Результат проекта:

Достижения команды на проекте:

Отзывы клиентов:

Шириков Вячеслав, Технический директор ООО «Лартех Телеком», Санкт-Петербург, Россия

Компания “Лартех Телеком” выражает свою благодарность компании JazzTeam за сотрудничество и рекомендует их инженеров как высококвалифицированных специалистов.

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

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

Все работы выполнены в полном соответствии с требованиями и в указанные сроки.

Желаем компании JazzTeam успехов в профессиональной деятельности.