бинарные протоколы общего назначения - PullRequest
6 голосов
/ 09 декабря 2008

Я пытаюсь найти подходящее промежуточное программное обеспечение протокола для моего следующего распределенного приложения. Я нашел несколько спецификаций за последние несколько дней, и мне было интересно, пропустил ли я важную? Это должен быть двоичный протокол, поддерживающий RPC и опционально имеющий реализации с открытым исходным кодом на разных языках. Вот список протоколов, которые я нашел:

  • CORBA
  • ICE
  • AMQP
  • Бережливость

И это список аннулированных протоколов:

  • Протоколы на основе XML, потому что они основаны на тексте (XML-RCP, SOAP, вручную и т.д.)
  • Буферы протокола (закрытый источник)
  • COM (только для Windows)

Ответы [ 9 ]

13 голосов
/ 09 декабря 2008

Проект Protocol Buffers определенно не является закрытым исходным кодом.

Какой язык / платформа вас интересует?

  • Для Java, C ++ и Python есть код Google .
  • Для C # существует как минимум три проекта (включая мой или Марка )
  • Информацию о других языках / платформах см. На соответствующей вики-странице

Обратите внимание, что хотя в буферах протоколов поддерживается заглушка RPC, Google не выпустил свой фактический уровень RPC, поэтому вам придется предоставить свой собственный. Учитывая, что в основном вы передадите сообщение запроса и вернете ответное сообщение, это не , что трудно наложить его на существующие протоколы (например, HTTP POST).

8 голосов
/ 09 декабря 2008

Я не думаю, Буферы протокола с закрытым исходным кодом. Страница подразумевает по-другому, и есть исходные загрузки.

3 голосов
/ 30 декабря 2008

Я бы посоветовал вам пересмотреть буфер протокола Google. Существует множество реализаций с открытым исходным кодом для всех основных платформ, включая C ++ / Java / Python, опубликованную самим Google.

Как уже упоминал Джон Скит (Jon Skeet), спецификация PB не определяет модель RPC, но очень просто определить собственный RPC с использованием PB.

Кроме того, вы можете взглянуть на ASN.1. Существует множество приложений, использующих ASN.1.

3 голосов
/ 09 декабря 2008

Вполне возможно, не лучший кандидат, но для полноты картины я хотел бы добавить, что есть двоичная кодировка для XML .

2 голосов
/ 10 января 2009

Джо Армстронг UBF , кажется, не завоевал популярность, но он удовлетворяет ваши требования со вкусом.

2 голосов
/ 09 декабря 2008

Вы можете посмотреть на ASN.1 .

Он используется для кодирования и передачи двоичных данных во многих других протоколах (например, SNMP, LDAP), хотя ASN.1 сам по себе не определяет транспортный протокол.

0 голосов
/ 03 мая 2012
0 голосов
/ 03 апреля 2009

Существует патч от ZeroC до Ice для собственной поддержки буферов протокола Google.

http://www.zeroc.com/labs/protobuf/

0 голосов
/ 10 января 2009

Я бы порекомендовал попробовать RabbitMQ AMQP и использовать протоколы буферов, XML или какой-либо другой формат данных, например JSON, по вкусу. В дополнение к тому, что он относительно прост и легок для начала, он позволяет смешивать и сопоставлять RPC и асинхронные стили pubsub, а также имеет хорошее распространение на языки, протоколы и платформы. Но это может не подходить для вашей проблемы - все зависит от того, что вы пытаетесь сделать! Ура, Алексис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...