Сервер

Хранение данных и удаленная работа с устройствами

База данных

Сервер CPS Platform использует NoSQL базу данных Apache Cassandra, специально созданную для сохранения больших объемов данных (в том числе временных рядов).

— Cassandra — распределённая, реплицируемая, с возможностью секционирования wide column-база данных
— место в CAP теореме: AP
— язык запросов: CQL
— модель консистентности: согласованность в конечном счёте (Causal consistency)
— формат хранения данных: LSM-Tree (Log Structured Merge Tree)
— производительность: 50 тысяч запросов в секунду на узел сервера, линейная масштабируемость
— поддержка Light Weight Transactions (Compare And Swap)
— поддержка батчей (несколько запросов применяются атомарно)
— сложные структуры в колонках: counter, map, set, user defined types
— secondary indexes (strong consistent)
— materialized views (eventually consistent)

Михаил Павлов

Мы выбрали Apache Cassandra, поскольку эта база данных реализует компромисс между возможностями по масштабированию сервера CPS, его производительностью по приему и обработке потоков данных, а также надежностью и отказоустойчивостью.

Михаил ПавловРуководитель разработки

API и протоколы

Набор функций взаимодействия (API) с сервером CPS является открытым и хорошо документированным.

Мы придерживались принципа Keep it simple, API CPS Platform реализовано в стиле REST и построено как базис — доступны основные низкоуровневые функции, на базе которых можно реализовать любой предметно-ориентированный сервис.

Основные группы функций API

Основные протоколы

Расширяемость

Список протоколов не ограничен и может быть расширен под ваши устройства.

CPS Platform поддерживает 2 способа добавления новых протоколов — подключение нового модуля на сервере и взаимодействие с аппаратным\программным протокольным шлюзом, размещенным на стороне устройства.

При этом CPS Platform предлагает концепцию шлюзов из коробки, когда работа с вашими устройствами через шлюз будет прозрачной — так, как будто бы подключение осуществлено напрямую.

Программный шлюз

Различные устройства имеют собственные (зачастую проприетарные) протоколы обмена данными и управления. Сервер CPS имеет модульную структуру, и за счет этого вы можете добавить поддержку требуемого протокола. Мы называем это программным шлюзом протоколов, поскольку фактически будет добавлен программный модуль на сервер, который преобразует команды протокола устройства в команды CPS сервера.

Аппаратный шлюз

Ваши устройства уже имеют собственные аппаратные интерфейсы для связи с внешними системами?

Это отлично!

Сервер CPS Platform поддерживает подключение устройств через аппаратные шлюзы (некоторые из которых предоставляются нашей компанией, некоторые существуют на рынке в свободной продаже и должны быть лишь настроены на работу с CPS Platform).

Шлюз на базе смартфона

Любой современный смартфон может стать IoT-шлюзом с приложением CPS-Connect!

В массовом сегменте можно применить технологию «Smartphone as a gateway», которая позволяет использовать пользовательские мобильные устройства как шлюзы для подключения ваших устройств к серверу CPS Platform. В этом случае пользователь должен установить мобильное приложение CPS-Connect на свой смартфон и загрузить профиль подключения вашего устройства. Затем ваше устройство будет подключаться к смартфону посредством Bluetooth и соединяться с CPS Platform.

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

Сервер CPS поддерживает различные возможности масштабирования под ваши задачи:
* масштабирование под требуемые объемы хранения данных
* масштабирование под требуемую нагрузку на сервер (интенсивность обращений от устройств)
* масштабирование под требуемые объемы обрабатываемых данных (число фильтров, триггеров, отчетов)

Нагрузка на сеть

Нагрузка на сеть

Нагрузка на сеть

Ознакомьтесь с полным отчётом о производительности и нагрузочном тестировании сервера CPS
Линейная масштабируемость поддерживается всеми частями системы:

Kotlin

Cassandra

Kafka/Zookeeper

Acapella

Nginx

 Рассчитать количество серверов под требования к сервису

Развертывание и требования к аппаратной части сервера

В комплекте с сервером идут удобные инструменты его развертывания (инсталляции) на сервере. Это залог качественной работы ваших устройств и сервисов во время эксплуатации.

Минимальные требования к аппаратному обеспечению сервера, на котором может быть развернут сервер CPS:

 Выбор сервера, подходящего под ваш проект

Вместе с сервером CPS вы получаете автоматизированный способ развертывания его на ваших серверах и их обновления. Подойдет как выделенный сервер (private server), так и VDS. На схеме ниже представлена схема развертывания, которая автоматизирует работу ваших коллег из DevOps.

Безопасность

SSL-шифрование и дополнительные модули шифрования. Проверенные сценарии безопасности на всех этапах цепочки обмена информацией с устройством. Возможность подключения модулей шифрования данных и blockchain.
Сегодня Интернет вещей неразрывно связан с необходимостью анализа угроз и рисков, которые возникают при подключении ваших устройств к Интернету. CPS минимизирует риски, связанные с передачей, хранением и обработкой данных.
Мы серьезно относимся к вопросам безопасности и намеренно ограничили некоторые из функций взаимодействия с сервером, чтобы снизить риски в разрабатываемых вами системах и устройствах.