Architecture
1. Introduction
BotReady is a Robot control and government platform. It allows users to retain control of the digital workforce both from a mobile device and from a browser. BotReady's architecture is made up of the following components, which are grouped in four layers:
- Client
- Browser
- Mobile App
- BotReady Agent
- Client's Agents
- Presentation Layer
- Web Application
- Public REST API
- Private REST API
- Service Layer
- Business Logic
- Authorization Service
- Notification Agent
- Persistency Layer
- SQL Server Database The following section describes the responsibilities of each of these components and how they interact with each other.
2. Components
The following chart shows the logical distribution of the architecture components mentioned above.
Client
Users interact with BotReady both from the Browser and from the Mobile App. From the Browser, users access a Web Application implemented with Microsoft .NET Framework. The Mobile App, available on Android and iPhone devices, exchanges data with BotReady's backend through a set of services exposed on a Private REST API. The features available in the Mobile App are a subset of the features available from the Browser. The BotReady Agent is the component in charge of executing BotReady's own robots (for example, the Zafiro robot). It is a Windows Service that interacts with BotReady's backend through the services of the Private REST API. The Client's Agents are the Jobs, Robots, Batch Processes, etc., included in the client's digital workforce. These agents report to BotReady the events that took place during the execution of the processes by using the services exposed on the Public REST API. In turn, the BotReady Agent may interact with the Client's Agents. For example, BotReady may trigger the execution of an UiPath or Blue Prism robot.
Presentation Layer
The Web Application, implemented with Microsoft .NET Framework, provides a set of pages that allow users to perform management and monitoring tasks on BotReady. The Private REST API is composed of a set of REST services. This API provides a point of access to the features and business logics used both from the Mobile App and from the BotReady Agent. In the case of the Mobile App, for example, this API allows activating/deactivating a robot, obtaining the robots' execution details, triggering the execution of a robot, among other features. In the case of the BotReady Agent, the API allows obtaining pending executions, updating the status of the executions, etc. The Public REST API provides a subset of services from the Private API. This API provides a single point of access to the Client's Agents so that they may report the detail of their executions to BotReady.
Service Layer
BotReady's Business Logic offers all the features used by the components of the Presentation Layer. This component interacts with the persistency layer to obtain and store all the information generated. The Authorization Service is a Windows service solely intended to authorize the accesses to the services of the Private and Public REST APIs. For this purpose, it uses the OAuth 2.0 authorization protocol. The Notifications Agent is a Windows service solely intended to send notifications to users. Robots can generate notifications in BotReady, and this agent is in charge of processing them.
Persistency Layer
BotReady's Database uses an SQL Server engine to store the data pertaining to:
- Robots, groups of robots, types of robots, execution details, etc.
- Security: Users and permits
- Auditing: Error log and auditing log
3. Security:
Authentication and Authorization
REST API
The services of the Public and Private REST APIs use the OAuth 2.0 authorization protocol to authenticate and authorize the accesses to the different endpoints. The Authorization Service of the service layer is in charge of authenticating and authorizing the different accesses. Both the Mobile Application and the BotReady Agent, as well as the Client's Agents request an authorization token before consuming any services from the APIs. For such purpose, they send a client ID and a password. The Authorization Service validates the information in BotReady's Database and returns the corresponding token for its future use.
User Authentication
The authentication of BotReady's users is performed with the information stored in BotReady's Database. In the case of the Web Application, the user enters their credentials in the browser, and the Business Logic validates them. User authorization is performed by using the session of the Web Application server. In the case of the Mobile Application, the user's credentials are validated when the OAuth 2.0 token is requested.
HTTPS Communication
There are four communication routes that use the HTTP protocol.
- Browser Web Application
- Mobile Application Private REST API
- BotReady Agent Private REST API
- Client's Agents Public REST API In all cases, the connection between the components is encrypted using SSL/TLS.