Лучшая практика в разработке протокола связи клиент / сервер - PullRequest
2 голосов
/ 01 июня 2011

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

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

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

Пример:

  • Бит 0 - система включена
  • Бит 1 - Выполнение измерений
  • Бит 2 - Стабилизация температуры ... искоро.

Это решение будет производить очень мало трафика.Хотя это кажется мне очень негибким, а также очень сложным для отладки.

Другое, что я думаю, что это можно сделать, - перенести каждое состояние, которому предшествует название состояния:

Пример: #SystemOnline#1#MeasurementInProgress#0#TemperatureInProgress#0#.....

Это решение увеличит трафик.Но это выглядит намного более гибким, потому что порядок, в котором передается каждое государство, не имеет значения.Также должно быть намного легче отладить.

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

1 Ответ

0 голосов
/ 01 июня 2011

Как только вы отправили сетевой запрос в удаленную систему, ожидали ответа, получили и расшифровали ответ, вряд ли имеет значение, является ли ответ 32-битным или 32K.И сколько раз в секунду вы будете генерировать этот трафик?Если меньше 1, это имеет значение еще меньше.Поэтому используйте все, что проще всего реализовать и наиболее естественно для клиента, будь то строка или XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...