Я разрабатываю клиент-серверное приложение, для которого я оцениваю несколько вариантов для коммуникационного уровня.
В рамках этой коммуникационной инфраструктуры я рассматриваю использование буфера протокола Google (PB) для представлениятранспортные данные вместо того, чтобы заново изобретать мою собственную двоичную структуру.
Теперь перейдя к фактическому транспорту, мне интересно, следует ли использовать обычные сокеты для отправки / получения этих двоичных сообщений или использовать какую-либо промежуточную программу.Использование промежуточного программного обеспечения имеет определенные очевидные преимущества перед сокетами.Некоторые из них, которые меня волнуют, включают в себя: коммуникационные модели - публикация / подписка, запрос / ответ и отработка отказа.
С другой стороны, использование сокетов имеет преимущество в меньших накладных расходах по сравнению с подходом промежуточного программного обеспечения и обеспечивает лучшую производительностьпроизводительность.
Можно также подумать об использовании библиотек RPC, доступных с буферами протокола (сторонние надстройки на вики-буфере протокола google) для связи между клиентом и сервером.Несмотря на то, что он абстрагируется от сокета низкого уровня, он все еще не поддерживает функции промежуточного программного обеспечения.
На данный момент моим клиентом является графический интерфейс Adobe Flex и два серверных процесса (один java и другой C ++).В будущем на стороне клиента и сервера могут потенциально появиться другие сервисы, разработанные на других языках, например .NET
Что эксперты думают об этом выборе и из опыта, что хорошо работает без ущерба для производительности.Есть ли другие альтернативы, с которыми разработчики идут?
Спасибо Dece