#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 я бы всё равно не стал. Он уже староват. Ему пора на пенсию. Хуже него только придумывание своего собственного формата.
Комментариев нет:
Отправить комментарий