- Middleware For Connected Robotics
Middleware For Connected Robotics
Cloud Bridge for Connected Robotics
Task and Resource Planner for Connected Robotics
Orchestrator for Connected Robotics
Gateway and Identity for Connected Robotics
The gateway for the Connected Robotics Platform has been implemented using the Ocelot Gateway. Ocelot is an open-source application, which is lightweight, fast, scalable, cross-platform, and most importantly it was specifically designed for .NET Core Microservices Architecture. Ocelot is responsible for handling the incoming requests, by routing the traffic to the desired endpoints, retrieving the information from the backend, and relaying it back to the robots/users. The routes are composed of the downstream template which represents the entry point into the system, and the upstream template which represents the path to the endpoints. The Gateway also fulfils the role of an Identity Service, through a REST API implementation. The user credentials are stored in a safe manner using a HASH + SALT model, following current best practices and using cryptographically strong libraries from .NET environment. The passwords are SALT-ed and hashed using the PBKDF2 algorithm with HMACSHA256 hashing. Authentication is achieved by reconstructing the salted hash from the credentials provided at log-in and comparing the result with the salted hash stored in the system at registration. Furthermore, the security of the Middleware Systems is enhanced using the JWT Bearer Token standard and Role Based Access Control (RBAC) model. More precisely when the robots/users are successfully authenticated they will receive a JWT Token. In terms of authorisation, the robots/users will have to pass the generated token along with the request in order to be able to perform operations on the data, through the endpoints that are implemented in the Connected Robotics Platform. Finally, the security of the system is boosted with the implementation of the RBAC model that will provide restricted access to the Connected Robotics Platform based on the role of the user.
Backend for Connected Robotics
The Connected Robotics Platform is using Redis-Cluster as a backend service, which handles the synchronisation, replication, and persistence of the data across the distributed systems. Redis is able to support various data types through the Redis modules library, including the required data types for the Connected Robotics Platform, namely RedisJson and RedisGraph. The Redisjson module will accommodate the data models, while the RedisGraph will be used for semantic planning of the tasks. Moreover, the Redis-Custer deployment topology introduces features like high availability and horizontal scaling which are well suited for the scope of the Connected Robotics Platform. In the Connected Robotics Platform, the Redis Interface API service is connected to a Redis-node, and data is shared between the Redis-nodes in such a way that regardless of the master node that publishes new information to the Redis-cluster, all other nodes in the cluster will have access to the newly published data. To ensure replication consistency, only the master nodes will handle the writing operations. Furthermore, the Redis-Cluster deployment offers flexibility in terms of connecting to either master nodes or replica nodes, and the key difference here is that the replica nodes will provide a faster way for reading data from the system.
ROS twin for Connected Robotics
ROS Slicing Interface