Я думаю, что REST будет иметь больше смысла, чем традиционный RPC. Даже модель времени выполнения Micorosft Robotics Studio использует REST.
Робот может состоять из различных ресурсов, которые идентифицируются посредством URI, включая один для каждого датчика и привода или их составных абстракций.
REST делает акцент на гарантировании побочных эффектов определенных методов, а также облегчает кэширование, которые могут быть полезны для чего-то вроде управления и мониторинга удаленного робота. И только потому, что вы можете использовать REST, не обязательно должен быть протоколом HTTP.
Однако безопасный метод IDEMPOTENT, такой как GET, хорош для отслеживания состояния робота и опроса данных его датчика. Вы можете использовать что-то вроде заголовка Last-Modified для получения кэшированных данных датчика, которые меняются не часто (например, уровень влажности или уровень освещенности).
Для больших расстояний вы можете использовать релейные прокси для кеширования.
Для команд, которые перемещают робота, будет использоваться что-то вроде POST, где каждое такое сообщение изменит робота (например, повернуть направо). Может быть возвращен код состояния, указывающий, была ли команда немедленно выполнена или поставлена в очередь для обработки.
Абсолютное состояние любых ресурсов можно установить, используя что-то вроде PUT, когда несколько сообщений не изменят ничего, кроме одного сообщения (например, указание на северный полюс или приглушенный передний свет с яркостью 10%). Это обеспечивает надежный обмен сообщениями в случае вероятности потери сообщений в пути.
Новый ресурс также может быть создан с помощью POST-подобной операции, например, с помощью процедуры сбора данных и набора параметров. Запрос POST может отправить обратно CREATED результат с URI для нового ресурса, который можно использовать для УДАЛЕНИЯ, когда он больше не нужен.
Группа роботов может также разговаривать друг с другом, используя один и тот же протокол на основе REST, и может пользоваться теми же преимуществами.
Конечно, для чего-то простого, например, для одного человека, управляющего одним изолированным локальным роботом, API REST может быть излишним. Но для многопользовательских и / или ненадежных каналов связи и / или сетевых масштабируемых сетей REST - это то, что нужно учитывать.