Задача

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

Технологии

Back-end:

  • Основной язык программирования: Python
  • Основная шина данных: RabbitMQ
  • Основной веб-сервер: Nginx
  • Фреймворки: SqlAlchemy, Flask
  • Форматы сообщений: MessagePack, Json
  • Основная База данных: Postgres 14 (Patroni cluster)
  • Вспомогательная база данных: Redis, etcd
  • Оркестрация: Kubernates
  • Система артефактов: Sentry, Prometheus, Loki, Graphana

Frontend:

  • Основной язык программирования: JavaScript
  • Фрэймворк: VueJS 2.5

архитектура решения

Слой получения и хранения данных

  • DataGateway Service — входной слой получения и парсинга сырых данных
  • Input Networks — отвечает за получение данных извне (посредством API или опросом сторонних сервисов)
  • Output Networks — отвечает за переброс полученных данных и интеграцию с внешней системой (Агрегатор Данных, сторонние системы)
  • System View — отвечает за менеджмент и инструменты проверки состояния и отладки пакетов и приборов
  • DataAggregator Service — агрегация данных потребления, интерполяция и предоставление доступа к данным
  • Device Control Service — сбор данных о приборе, владельцах и сервисных компаниях, его прошивках, производителях и поддерживаемых протоколах
  • Device REST API — управление счетчиками
  • Values REST API — предоставление данных для нужд личного кабинета
  • Public REST API — предоставление доступа к данным счетчиков
  • Base Station REST API — менеджмент доступа базовых станций
  • Input System — получение и сохранение данных от DataGateway Service
  • System View — управление внутренним состоянием системы Data Aggregator Service
  • Command API — предоставление доступа внешним системам к данным приборов, отправка управляющих команд прибору (запрос данных, изменение настроек)
  • DataLogger – регистратор данных, который записывает данные во внутреннюю память, на внешнее хранилище или передаёт в облачный сервис
  • Internal REST API — предоставление доступа к данным в БД логгера
  • Visualization View — визуализация статистики, логов, карт и прочего для поддержки личного кабинета (ЛК)
  • System View — управление системными данными сервиса (токены, доступы)

Слой менеджмента и визуализации данных

  • DataGateway Service — входной слой получения и парсинга сырых данных
  • Input Networks — отвечает за получение данных извне (посредством API или опросом сторонних сервисов)
  • Output Networks — отвечает за переброс полученных данных и интеграцию с внешней системой (Агрегатор Данных, сторонние системы)
  • System View — отвечает за менеджмент и инструменты проверки состояния и отладки пакетов и приборов
  • DataAggregator Service — агрегация данных потребления, интерполяция и предостав-ление доступа к данным
  • Device Control Service — сбор данных о приборе, владельцах и сервисных компаниях, его прошивках, производителях и поддерживаемых протоколах
  • Device REST API — управление счетчиками
  • Values REST API — предоставление данных для нужд личного кабинета
  • Public REST API — предоставление доступа к данным счетчиков
  • Base Station REST API — менеджмент доступа базовых станций
  • Input System — получение и сохранение данных от DataGateway Service
  • System View — управление внутренним состоянием системы Data Aggregator Service
  • Command API — предоставление доступа внешним системам к данным приборов, отправка управляющих команд прибору (запрос данных, изменение настроек)
  • DataLogger – регистратор данных, который записывает данные во внутреннюю память, на внешнее хранилище или передаёт в облачный сервис
  • Internal REST API — предоставление доступа к данным в БД логгера
  • Visualization View — визуализация статистики, логов, карт и прочего для поддержки личного кабинета (ЛК)
  • System View — управление системными данными сервиса (токены, доступы)

Инфраструктурная часть

  • Kubernates system — супервизор, синхронизатор и менеджер сервисов и систем на серверах
  • Postgres Cluster — Master-Slave репликационная система базы данных для устойчивого доступа к данным

Результат

Разработана универсальная IoT-платформа согласно поставленной задаче. Сервис − Личный кабинет обеспечивает:

  • Сбор данных (показания, события, состояние, профили) от всех приборов через любые каналы связи (БС, УСПД, GSM, Nbiot и пр.) и сервисов посредников или дополнительного ПО к базовым станциям (LORA, SIGFOX, WAVIOT и др.);
  • Хранение данных для последующего получения этой информации посредством API;
  • Предоставление прямого доступа (запрос, установка настроек, управление) к приборам учета через любой канал связи;
  • Визуализация данных для анализа, отчетов для управляющих компаний и служб поддержки;
  • Менеджмент приборов в процессе эксплуатации, предоставление и ограничение доступа к показаниям и данным приборов и базовым станциям.
Наши партнеры

Долгосрочные отношения с партнерами подтверждают нашу высокую квалификацию и соответствие международным требованиям деловой этики

Связаться с нами

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

Составить ТЗ онлайн

*обязательные поля для заполнения

Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, Вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.

Принять