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