HOP framework and HOP Web Services

The developed algorithms located under RAPP Improvement Center (RIC), can be utilized by robots via the HOP Web Services exposed by RIC and furthermore by the RAPP Platform. We consider HOP Web Services an imperative component of the RAPP Improvement Center (RIC) as they define the client-server interface layer.

HOP Web Services run under HOP Web Server as a part of RIC. Communication between remote clients and the HOP Server, and furthermore HOP Web Services, is achieved via HTTP Post requests. HOP Web Server is exposed to the web via a public IPv4 Address. Furthermore the HOP Web Services run on a specific system port and so those are accessible from remote clients via the HOP Web Server running IPv4 Address followed by a port (xxx.xxx.xxx.xxx:8080).

As HOP Web Services act as the interface layer between the Robot Platform and the Cloud Platform (along with the RAPP API), the development of those depends on both Client (User/Developer) and RIC requirements.

The communication workflow, from the client-side platform to RAPP Services can be severed into the following independent interface layers:

  • Client-side Platform -> HOP Server.
  • HOP Server -> HOP Web Services.
  • HOP Web Services -> Rosbridge WebSocket Server.
  • Rosbridge WebSocket Server -> RAPP Services (ROS Services).

The RAPP API, used from the client-side platform, integrates calls to the HOP Server and furthermore to the HOP Web Services. A HOP Web Service delegates service calls to the RAPP Services through the Rosbridge interface layer.

Rosbridge Server provides a WebSocket transport layer to ROS and so it allows web clients to talk ROS using the rosbridge protocol. We use the Rosbridge Websocket Server in order to interfere with AI modules developed under ROS. That WebSocket server is not exposed and it is only accessible locally. The figure below describes the aforementioned.

RAPP-services-interface-independent-layers

User authentication on Hop Web Services is handled by Hop Web Server.