Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Выбор формата сообщений: XML, JSON, Protocol Buffers для протокола

#xml #c #json


Поставлена задача разработать протокол уведомления двух устройств. Оба устройства
подключены друг к другу по сети (Ethernet). На одном устройстве Linux, на другом Real-time
OS. Нужно создать протокол, по которому устройства будут уведомлять друг друга о событиях.
Реализация запланирована на C поверх TCP/IP.
На данный момент выбор такой:

свой собственный формат,
XML или JSON,
Protocol buffers.

Вопрос в том, что 

проще в использовании,
легче в поддержке, развитии,
проще в реализации?
    


Ответы

Ответ 1



Моя субъективная оценка: Protocol Buffers: Поддерживается Google для внутренних сервисов Куча готовых реализаций Переносимый кроссплатформенный формат Бинарный формат (следствие - небольшой размер сообщений) XML: Жутко избыточный Парсится небыстро JSON: Занимает меньше, чем XML Сам по себе проще - проще и быстрее парсится Мой выбор в порядке приоритета: Protocol Buffers JSON XML В любом случае, не писал бы реализацию ни одного из форматов с нуля.

Ответ 2



Вдобавок ко все недостаткам/плюсам отмеченным @eigenein я бы еще 1 плюсик в сторону JSON поставил бы то что формат текстовый, что существенно упрощает отладку. Protocol Buffers формат бинарный и в случае чего отлаживаться будет сложно. Ну а XML - увы не катит ни под каким соусом: избыточный, медленный, громоздкий и все такое. Мой персональный выбор за JSON. P.S. Собственный не пишите!

Ответ 3



В качестве варианта рассмотрите также Thrift

Ответ 4



В таком простейшем случае (всего два устройства) никакой разницы нет. Но использовать XML я бы всё равно не стал. Он уже староват. Ему пора на пенсию. Хуже него только придумывание своего собственного формата.

Комментариев нет:

Отправить комментарий