Я подумываю перенести части приложения .Net на другие компьютеры. Очевидный способ сделать это - просто использовать WCF с двоичным протоколом tcp, например, как описатель в « Самый простой способ получить быстрый RPC с .NET? ».
Я сделаю обширный количество вызовов и задержка - большая проблема. По сути, на одном компьютере будет запущен симулятор физики, а другие будут взаимодействовать с ним, используя API из нескольких сотен команд.
Я думаю, что лучший способ - создать собственный двоичный протокол, в котором команды API идентифицируются как int16 и порядковый номер, за которым следуют обязательные параметры. Жесткое подключение классов отправки и получения устранит любые ненужные накладные расходы.
Но это ОЧЕНЬ много работы, поскольку мы говорим о нескольких сотнях команд API.
Есть ли какие-нибудь мысли о том, как лучше всего реализовать это?
Изменить: По сути, на одном компьютере будет работать симулятор физики, а другие будут взаимодействовать с ним, используя API из нескольких сотен команд.
Я думаю, что лучший способ - создать собственный двоичный протокол, в котором команды API идентифицируются с помощью int16 и порядковый номер, за которым следуют обязательные параметры. Жесткое подключение классов отправки и получения устранит любые ненужные накладные расходы.
Но это ОЧЕНЬ много работы, поскольку мы говорим о нескольких сотнях команд API.
Есть ли какие-нибудь мысли о том, как лучше всего реализовать это?
Изменить: По сути, на одном компьютере будет запущен симулятор физики, а другие будут взаимодействовать с ним, используя API из нескольких сотен команд.
Я думаю, что лучший способ - создать собственный двоичный протокол, в котором команды API идентифицируются как int16 и порядковый номер, за которым следуют обязательные параметры. Жесткое подключение классов отправки и получения устранит любые ненужные накладные расходы.
Но это ОЧЕНЬ много работы, поскольку мы говорим о нескольких сотнях команд API.
Есть ли какие-нибудь мысли о том, как лучше всего реализовать это?
Изменить: Чтобы уточнить: сериализация AFAIK в .Net не оптимизирована. Есть относительно высокие потери при сериализации и десериализации объектов, например, при внутреннем использовании Reflection. Это то, чего я хочу избежать, и, следовательно, мои мысли о методах прямого сопоставления (аппаратного подключения).
После некоторого поиска я нашел одно приложение, которое смутно припомнил: http: //www.protocol- builder.com/[1220 visible