Робот как сервис

Робот как сервис — это концепция облачных вычислений, направленная на интеграцию роботов и встраиваемых устройств в интернет и облачные сервисы[1][2]. В рамках сервис-ориентированной архитектуры (SOA) RaaS-единица предоставляет сервисы для выполнения функций, каталог сервисов для поиска и публикации, а также клиентов для прямого доступа. Современные реализации RaaS поддерживают коммуникацию по протоколам SOAP (Simple Object Access Protocol) и RESTful (Representational State Transfer) между RaaS и другими компонентами облачных вычислений. Для поддержки внедрения RaaS существуют аппаратные решения и стандарты; так, Devices Profile for Web Services (DPWS) определяет особенности реализации для обеспечения безопасного обмена веб-сервисами, обнаружения, описания и планирования на устройствах с ограниченными ресурсами.

Описание

RaaS рассматривается как компонент таких концепций, как Интернет вещей (IoT), Интернет интеллектуальных вещей (IoIT), которые охватывают интеллектуальные устройства с существенными вычислительными возможностями[3], кибер-физические системы (CPS) — комбинации вычислительных и коммуникационных элементов с физическими объектами, способными к взаимодействию с физическим миром[4], и автономные децентрализованные системы (ADS), где компоненты слабо связаны, обмениваются данными посредством контент-ориентированных протоколов[5][6].

Часто под термином Robot as a Service (RaaS) понимается также финансовая модель приобретения и использования промышленных или сервисных роботов. В такой схеме покупатель платит за использование физического устройства по подписке; владелец устройства остаётся у производителя, а сам робот учитывается у него как актив. RaaS становится всё более популярным среди поставщиков робототехники: такая модель позволяет клиентам относить расходы на эксплуатацию к операционным, а не к капитальным затратам. Договор обслуживания RaaS налагает на производителя обязательства по обновлению, поддержанию устройства в рабочем состоянии и проведению профилактического обслуживания; производитель может заменить устройство на аналогичное в любой момент, а также осуществлять удалённый мониторинг, диагностику и восстановление системы через интернет. Название «RaaS» происходит от популярной модели Software as a Service (SaaS), применяемой в программном обеспечении для предприятий.

История

Первое описание архитектуры и реализации сервис-ориентированной обработки данных для встраиваемых систем и роботов было представлено в феврале 2006 года на 49-м заседании рабочей группы IFIP 10.4[7]. В той модели робот выступал в роли сервис-клиента, взаимодействующего с каталогом сервисов и потребляющего веб-сервисы. На базе этого подхода была реализована полноценная SOA-единица, которая включает сервисы для функций, каталог сервисов для публикации и поиска, а также приложения для прямого доступа клиентов[1]. Такая структура предоставляет роботу необходимые инструменты для существования как самостоятельной облачной единицы среди облачных сервисов. В развитии концепции RaaS создана визуальная среда программирования для IoT и робототехники (VIPLE).

Архитектура RaaS

RaaS реализует принципы SOA и является облачной вычислительной единицей. RaaS-единица может работать как поставщик сервисов, брокер и клиент:

  1. RaaS-единица в облаке как поставщик сервисов: содержит библиотеку предустановленных сервисов. Разработчики или клиенты могут добавлять и удалять новые сервисы. Сервисы могут использоваться на этом или других роботах.
  2. Облачная среда RaaS содержит набор запущенных приложений: разработчик или клиент может создавать новые приложения на основе сервисов внутри и вне конкретной единицы.
  3. Единица RaaS как брокер сервисов: клиент может просматривать доступные сервисы и приложения через каталог, выстроенный по иерархии классов для удобства поиска.

Перечисленные компоненты отражают структуру RaaS и типовые приложения. RaaS-единицы проектируются для работы в облачной среде. Сервисы взаимодействуют с драйверами и другими компонентами ОС, связанными с аппаратной частью. RaaS-единицы могут связываться между собой напрямую по Wi-Fi или через ad hoc сети при наличии соответствующей инфраструктуры. Взаимодействие с другими облачными сервисами реализуется через стандартные интерфейсы, например, WSDL (с помощью DPWS) или RESTful-over-HTTP.

Существуют реализованные прототипы RaaS, сочетающие веб-интерфейсы и физические устройства[8][9][10][11].

Надёжность, устойчивость и безопасность — ключевые моменты в архитектуре RaaS. Группы RaaS-единиц могут поддерживать друг друга для обеспечения избыточности и взаимного резервирования, а также для защиты от атак на уровне инструкций (инъекция кода, ROP-атаки). Поскольку RaaS-единицы функционируют независимо, они зачастую генерируют различные последовательности команд, а коллаборация между ними позволяет обнаруживать аномалии. Главная сложность развития RaaS — разнообразие пользовательских сетей, приложений и сред. В облаках протоколы стандартизированы и ограничены (WSDL, SOAP, HTTP, RESTful), среди которых HTTP, SOAP и WSDL — ведущие в рамках RaaS; основной акцент приходится на робототехнические приложения.

Применение

RaaS применяется там, где используются SOA, облачные вычисления, IoT, CPS и ADS. В образовательной информатике RaaS применяется для переиспользования сервисов с целью быстрой разработки новых приложений и облегчения процесса обучения программированию роботов[12][13].

В промышленности модель RaaS приобретает всё большую популярность благодаря удобству, гибкости и снижению затрат. Такой подход позволяет малым и средним компаниям развивать бизнес без крупных инвестиций: чаще всего оплата производится ежемесячно, но встречаются и годовые контракты[14].

Примечания