Robot as a service
Robot as a service (or RaaS) is a cloud computing unit that facilitates the seamless integration of robot and embedded devices into Web and cloud computing environment. In terms of service-oriented architecture (SOA), a RaaS unit includes services for performing functionality, a service directory for discovery and publishing, and service clients for user's direct access.[1][2] The current RaaS implementation facilitates SOAP and RESTful communications between RaaS units and the other cloud computing units. Hardware support and standards are available to support RaaS implementation. Devices Profile for Web Services (DPWS) defines implementation constraints to enable secure Web Service messaging, discovery, description, and eventing on resource-constrained devices between Web services and devices.
RaaS can be considered a unit of Internet of Things (IoT), Internet of Intelligent Things (IoIT) that deal with intelligent devices that have adequate computing capacity,[3] Cyber-physical system (CPS) that is a combination of a large computational and communication core and physical elements that can interact with the physical world,[4] and Autonomous decentralized system (ADS) whose components are designed to operate in a loosely coupled manner and data are shared through a content-oriented protocol.[5][6]
History
The initial design and implementation of applying service-oriented computing in embedded systems and robots was presented in the 49th IFIP 10.4 Workgroups meeting in February 2006.[7] In the initial design, a robot is the service client that looks up the service registry and consumes Web services on remote sites. Evolved from service-oriented robot, Robot as a Service is an all-in-one SOA unit, that is, the unit includes services for performing functionality, service directory for discovery and publishing, and applications for client’s direct access.[8] This all-in-one design gives the robot unit tools and capacity to be a self-contained cloud unit in the cloud computing environment.
RaaS architecture
RaaS follows SOA and is a cloud computing unit. A RaaS unit acts as a service provider, a service broker, and as a service client:
- A RaaS cloud unit is a service provider: Each unit hosts a repository of preloaded services. A developer or a client can deploy new services into or remove service from a robot. The services can be used by this robot and can also be shared with other robots.
- A RaaS cloud contains a set of applications deployed: A developer or client can compose a new application (functionality) based on the services available in the unit and outside the unit.
- A RaaS unit is a service broker: a client can look up the services and applications available in the unit’s directory. A client can search and discover the applications and services deployed on the robot by browsing the directory. The services and applications can be organized in a hierarchy of classes to facilitate the discovery.
The main components of a RaaS unit and typical applications and services deployed. RaaS units are designed for the cloud computing environment. The services in RaaS will communicate with the drivers and other operating system components, which further communicate with the devices and other hardware components. The RaaS units can directly communicate with each other through Wi-Fi, if the wireless infrastructure is available or through ad hoc wireless network otherwise. The communication between RaaS and other services in the cloud are through standard service interface WSDL enabled by DPWS or RESTful service overall HTTP.
A few prototypes of RaaS have been implemented, which include both Web interface and physical devices.[9][10][11][12]
Dependability, including reliability and security are critical in RaaS design. Collaborating RaaS units can be scheduled for redundant execution, backing up each other’s operations. The redundant design can also address the instruction-level attack such as code injection and Return Oriented Programming (ROP) attacks. As the redundant RaaS units are independent of each other, instruction-level gadget programming is likely to generate different sequences in different devices. These differences in behaviors can be detected by the collaboration among the RaaS units. The major challenge in designing RaaS is to deal with the diversity of the networks, applications, and the environments or end users. In cloud computing, the network and communication protocols are limited to a few standards such WSDL, SOAP, HTTP, and RESTful architecture. In RaaS, HTTP, SOAP, and WSDL standards and robotics applications are the main design considerations.
Applications
RaaS can be used in where SOA, cloud computing, IoT, CPS, and ADS are used. One the application in computer science education. RaaS uses existing services to compose different applications at workflow level, which significantly reduce the learning curve of robotics programming.[13][14]
References
- ↑ Yinong Chen, Zhihui Du, and Marcos Garcia-Acosta, M., "Robot as a Service in Cloud Computing", In Proceedings of the Fifth IEEE International Symposium on Service Oriented System Engineering (SOSE), Nanjing, June, 2010, pp. 151–158.
- ↑ Yinong Chen, H. Hu, "Internet of Intelligent Things and Robot as a Service", Simulation Modelling Practice and Theory, Volume 34, May 2013, Pages 159–171.
- ↑ Pranav Mehta, CTO, Intel Intelligent Systems Group: “Internet of Things and the Infrastructure”, Intel Embedded Research and Education Summit, February 2012, http://embedded.communities.intel.com/servlet/JiveServlet/downloadBody/7156-102-1-2402/Internet-of-Things-and-the-Infrastructure.pdf.
- ↑ Ragunathan (Raj) Rajkumar, Insup Lee, Lui Sha, and John Stankovic, “Cyber Physical Systems: The Next Computing Revolution”, 47th Design Automation Conference (DAC 2010), CPS Demystified Session, Anaheim, CA, June 17, 2010.
- ↑ Kinji Mori, Concept-Oriented Research and Development in Information Technology, Wiley Series in Systems Engineering and Management, 2014.
- ↑ M.B. Remy, M.B. Blake, Distributed Service-Oriented Robotics, IEEE Internet Computing, Volume:15 , Issue: 2, pp. 70–74, 2011.
- ↑ Yinong Chen, "Service-Oriented Computing in Recomposable Embedded Systems", Joint IARP/IEEE-RAS/EURON/IFIP 10.4 Workshop on Dependability in Robotics and Autonomous Systems, Tucson, AZ, February 15–19, 2006, http://webhost.laas.fr/TSF/IFIPWG/Workshops&Meetings/49/workshop/04%20chen.pdf
- ↑ Yinong Chen, Zhihui Du, and Marcos Garcia-Acosta, M., "Robot as a Service in Cloud Computing", In Proceedings of the Fifth IEEE International Symposium on Service Oriented System Engineering (SOSE), Nanjing, June, 2010, pp. 151–158.
- ↑ Yinong Chen, "Service-Oriented Computing in Recomposable Embedded Systems", Joint IARP/IEEE-RAS/EURON/IFIP 10.4 Workshop on Dependability in Robotics and Autonomous Systems, Tucson, AZ, February 15–19, 2006, http://webhost.laas.fr/TSF/IFIPWG/Workshops&Meetings/49/workshop/04%20chen.pdf
- ↑ Intel Autobot Web Service, 2012, http://venus.eas.asu.edu/WSRepository/RaaS/main/
- ↑ RaaS online programming environment, 2013, http://venus.eas.asu.edu/WSRepository/eRobotic/
- ↑ Zhihui Du, Weiqiang Yang, Yinong Chen, Xin Sun, Xiaoying Wang, and Chen Xu, "Design of a Robot Cloud Center", in 10th International Symposium on Autonomous Decentralized Systems (ISADS), Tokyo, March 2011, pp. 269–275.
- ↑ Yinong Chen, Zhizheng Zhou, "Service-Oriented Computing and Software Integration in Computing Curriculum", IPDPS Workshops 2014, pp. 1091–1098.
- ↑ Yinong Chen, Zhizheng Zhou, "Robot as a Service in Computing Curriculum”, 12th International Symposium on Autonomous Decentralized Systems (ISADS), Taichung, March 2015.