Я бы хотел, чтобы мое новое приложение на C # 2.0 взаимодействовало с моим более старым приложением Java 1.4 (не могу изменить версию, извините). Какие у меня варианты?
Я думаю, что использование общей памяти дало бы мне лучшую производительность, но, с другой стороны, если бы я использовал сетевой протокол, то архитектура была бы более гибкой. Поэтому я хочу взвесить оба варианта, чтобы узнать, какой из них принесет наибольшую прибыль.
Я использовал реализации XML-RPC, которые очень медленны, но я предполагаю, что это была просто плохая реализация, а не реальный протокол. Будет ли мне лучше использовать протокол более низкого уровня? Я уже использовал протобуф Google в C ++ и Python (поверх простых старых сокетов), но я не уверен, что он доступен для Java и C # - есть ли что-нибудь похожее для языков, которые я использую?
Я ищу наилучшую производительность, какую только могу получить, но я работаю с объектами и иерархиями наследования, которые я хотел бы сериализовать (protobuf - хороший пример того, как это можно сделать). Так что, к сожалению, просто отправить простую строку через сокеты на самом деле неосуществимо.