буферы протокола и фактические варианты транспорта - сокеты или промежуточное ПО - PullRequest
2 голосов
/ 31 октября 2010

Я разрабатываю клиент-серверное приложение, для которого я оцениваю несколько вариантов для коммуникационного уровня.

В рамках этой коммуникационной инфраструктуры я рассматриваю использование буфера протокола Google (PB) для представлениятранспортные данные вместо того, чтобы заново изобретать мою собственную двоичную структуру.

Теперь перейдя к фактическому транспорту, мне интересно, следует ли использовать обычные сокеты для отправки / получения этих двоичных сообщений или использовать какую-либо промежуточную программу.Использование промежуточного программного обеспечения имеет определенные очевидные преимущества перед сокетами.Некоторые из них, которые меня волнуют, включают в себя: коммуникационные модели - публикация / подписка, запрос / ответ и отработка отказа.

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

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

На данный момент моим клиентом является графический интерфейс Adobe Flex и два серверных процесса (один java и другой C ++).В будущем на стороне клиента и сервера могут потенциально появиться другие сервисы, разработанные на других языках, например .NET

Что эксперты думают об этом выборе и из опыта, что хорошо работает без ущерба для производительности.Есть ли другие альтернативы, с которыми разработчики идут?

Спасибо Dece

Ответы [ 2 ]

4 голосов
/ 31 октября 2010

Если это не учебное упражнение, вы обязательно должны использовать некоторое промежуточное программное обеспечение. Есть много вариантов: AMQP, ZeroMQ, XMPP, Comet / Bayeux.

Для вашего сценария вы, вероятно, хотите что-то веб-ориентированное, поэтому XMPP через HTTP может быть хорошим вариантом. Однако я неравнодушен к Комете (хотя я обнаружил, что Байе слишком сложен для моих нужд).

0 голосов
/ 31 октября 2010

Какая платформа?

Если Windows, то у меня есть бесплатная, простая, высокопроизводительная, подключаемая серверная платформа на основе завершения ввода-вывода, называемая WASP, которая доступна с здесь .

Просто напишите DLL или две и подключите их, и все готово к работе с сетью.

В настоящее время у меня нет примера плагина на основе буферов протокола, но он в моем списке вещейделать ...

...