Мне нужен эффективный протокол между веб-сервисами, которые более или менее поддерживаются всеми основными языками - PullRequest
3 голосов
/ 14 мая 2010

Я ищу быстрый и эффективный протокол, который можно использовать между различными веб-сервисами для отправки текстовых данных (не двоичных данных). Не имеет значения, является ли протокол двоичным или текстовым.

Некоторые условия:

  • Я должен быть более «эффективным», чем обычный XML, который добавляет много дополнительных данных, а инструменты для чтения / записи слишком тяжелые

  • Он должен «поддерживаться» большинством основных языков, то есть он не может быть доступен только для одного конкретного языка. На данный момент и Java, и PHP должны иметь возможность общаться друг с другом по этому протоколу.

Я уже посмотрел:

  • XML - который я сейчас использую.
  • Hessian 2 - который прекрасно работает в Java, но поддержка PHP устарела
  • JSON - различия между JSON и XML незначительны

Любые предложения приветствуются!

Обновление 1: должна быть возможность использовать этот протокол по HTTP.

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

У меня есть два ответа.

Прежде всего, службы REST «поддерживаются» из любого стека, способного сделать HTTP-запрос. Если вам действительно нужна лучшая эффективность, чем SOAP, лучше всего делать это самостоятельно с помощью REST.

Во-вторых, действительно ли он должен быть «более« эффективным », чем обычный XML»? Вы профилировали это? Вы уверены, что передача данных между вашим сервисом и клиентом станет вашим узким местом? Насколько велика ваша полезная нагрузка с / без XML?

1 голос
/ 14 мая 2010

Буферы протокола может быть именно тем, что вы хотите. Это создание Google, которое, по их словам, является «не зависящим от языка, не зависящим от платформы, расширяемым способом сериализации структурированных данных для использования в протоколах связи, хранения данных и т. Д.»

Их официальные документы показывают реализации на Java, C ++ и Python. Однако протокол прост и реализован на многих языках (например, я использую реализацию на C #).

ИМХО, в этой области есть и другие методологии, но ничто не может сравниться с прото-буферами с точки зрения простоты и производительности в различных языках.

...