CJON v1.1 (Compact JSON)

Введение

С каждым витком развития информационных технологий мы все больше зависим от них. Неблагоприятные события и масштабные инциденты в области связи, кибербезопасности и т.п. обнажают нашу зависимость от технологий и беспомощность при её исчезновении. В современной России мы часто сталкиваемся с условиями ограниченной доступности телекоммуникационных технологий в том числе блокировка мобильного Интернета. При этом iot-устройства, датчики и мобильные приложения требуют для их работы возможности передачи данных. Например, отсутствие Интернета делает невозможным заказ Яндекс-такси, передачи данных с метеостанции в поле, снятие показаний устройств умного дома загородом.
Для решения описанной проблемы предлагается использование резервного канала в виде SMS-сообщений, передачи данных посредство DTMF (Dual-Tone Multi-Frequency - технология тонального набора номера, используемая в телефонах и других устройствах для передачи цифровой информации по телефонным линиям). Предлагается использовать голосовые и SMS-каналы сотовой сети (включая 2G) как резервный транспорт для передачи данных на сервер, который имеет стабильное Интернет-соединение. Для упаковки данных в приемлемый компактный вид предлагается следующее решение.
Демонстрационный пример конвертера CJON

1. Назначение

CJON - это легковесный, компактный и человекочитаемый формат, предназначенный для использования в условиях ограниченных каналов связи, таких как SMS, DTMF, и низкоскоростные и устаревшие каналы связи (например, 2G, голос, радиоканал). Его основное назначение - передача структурированных телеметрических или управляющих данных в случаях, когда традиционный JSON слишком объёмен, а бинарные форматы непрактичны или плохо читаемы.

2. Области применения

Дистанционная телеметрия для сельского хозяйства и промышленного оборудования;
- Аварийные сообщения и тревоги;
- Автоматизация в условиях низкоскоростной или оффлайн-связи;

3. Обзор синтаксиса

Строка RAW (текст без base64)

Строка в base64

Число (целое или с плавающей точкой)

Дата/время как Unix timestamp - префикс @ вместо =

Поддержка вложенности

5. Сравнение CJON и JSON

6. Сравнение с существующими подходами

7. Расширенная вложенность (оптимизация через блоки)

Заключение