Что такое хороший коммуникационный слой и для Java и для C#?

Я хотел бы, чтобы мое более новое приложение C# 2.0 говорило с моим более старым приложением Java 1.4 (не может изменить версии, извините). Каковы мои опции?

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

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

Я ищу лучшую производительность, которую я могу возможно получить, но, я работаю с иерархиями объектов и иерархиями наследования, которые я хотел бы сериализировать (protobuf, хороший пример того, как это может быть сделано). Так, к сожалению, просто отправка простой строки по сокетам не действительно выполнима.

1
задан Nick Bolton 1 July 2010 в 13:01
поделиться

2 ответа

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

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

IMHO, ваше узкое место в производительности больше связано с сериализацией / десериализацией, чем с самой коммуникационной шиной.

1
ответ дан 2 September 2019 в 23:22
поделиться

Ага, на самом деле есть версии protobuf для C #!

... и protobuf в любом случае поддерживает Java .

1
ответ дан 2 September 2019 в 23:22
поделиться