RPA Manager
Overview
RPA Manager is an enhanced version of the Selenograph. RPA Manager distributes WorkFusion RPA commands among available RPA Hubs (Orchestrators/Load Balancers) depending on their capacity and configuration.
The router has the ability to configure a set of hubs for different users.
The basic idea of using the RPA Manager:
- Define user names and their passwords in a plain text file.
- For each defined user, create a list of available RPA Hubs in XML format.
- Define the user in WorkFusion tomcat configuration (context.xml). It means that by default all WF robotic configs will be routed only to the Hubs assigned to this particular user.
- (Optional) To execute a WF robotic config on another set of RPA Hubs, you can override the default user in the <selenium-flow> plugin of WF machine configuration.
Use Case:
This routing can be used to separate execution of business processes that are running on the same WF instance but are intended for different regions, departments, etc. For example:
- Process-1 is doing RPA for India.
- Process-2 is doing RPA for China.
RPA configs of the Process-1 will have Robot-India a username attribute in the robotics-flow plugin. This Robot-India can only access a defined set of RPA Hubs physically located in India.
RPA configs of the Process-2 will have Robot-China a username attribute in the robotics-flow plugin. This Robot-China can only access a defined set of RPA Hubs physically located in China.
It is also possible to use the same RPA Hub for multiple users, if the use case has no restrictions regarding this point.
Architecture
Configuration
User Configuration
User is an alias for a set of available RPA Hubs .
List of users is defined in the <RPA_MANAGER_FOLDER>/grid-router/users.properties file. Each line contains username, ":", password, role. Currently, there is only one role "user".
The users.properties file looks as follows:
Robot-India:password1, user
Robot-China:password2, user
Quota Configuration
For each user, you can define quotas, which is a list of available (permitted) RPA Hubs.
For each user created in the users.properties file, you need to create a separate XML file in the <RPA_MANAGER_FOLDER>/grid-router/quota/ directory with the following name pattern: <USERNAME>.xml.
For the examples above, there are two files:
<RPA_MANAGER_FOLDER>/grid-router/quota/Robot-India.xml<RPA_MANAGER_FOLDER>/grid-router/quota/Robot-China.xml
Robot-India.xml:
<qa:browsers xmlns:qa="urn:config.gridrouter.qatools.ru">
<browser name="chrome" defaultVersion="42.0">
<version number="42.0">
<region name="India">
<host name="<URL_HUB1>" port="<PORT_HUB1>" count="5"/>
<host name="<URL_HUB2>" port="<PORT_HUB2>" count="5"/>
</region>
</version>
</browser>
<browser name="internet explorer" defaultVersion="11">
<version number="11">
<region name="India">
<host name="<URL_HUB1>" port="<PORT_HUB1>" count="5"/>
<host name="<URL_HUB2>" port="<PORT_HUB2>" count="5"/>
</region>
</version>
</browser>
<browser name="firefox" defaultVersion="42">
<version number="42">
<region name="India">
<host name="<URL_HUB1>" port="<PORT_HUB1>" count="5"/>
<host name="<URL_HUB2>" port="<PORT_HUB2>" count="5"/>
</region>
</version>
</browser>
</qa:browsers>
In this file, you need to define the URL and PORT for each RPA Hub available to this user.
The count attribute stands for the maximum number of RPA sessions for a particular Hub.
To apply changes in quota files or when you added new quota, you should restart your RPA Manager.
Application properties
The following properties in the application.properties file enable changing the count of retries and pausing between the retries.
find.node.retry.count: retry count for node search (default value: 10).find.node.wait.timeout: wait (in milliseconds) between retries to find a node (default value: 10,000).
How to use in WorkFusion
There are two ways to provide a user name that will be used by RPA Grid Router:
Define user and password in WF tomcat configuration (
<TOMCAT_FOLDER>/conf/context.xml):<Resource name="bean/SeleniumLocationFactory" auth="Container" type="com.freedomoss.crowdcontrol.webharvest.selenium.SeleniumServerLocation" factory="org.apache.naming.factory.BeanFactory" protocol="http" host="user:password@127.0.0.1" port="5555" file="/wd/hub"/>Depending on the installation type, the file can also be:
<installation folder>/webapps/apache-tomcat-<version>/conf/Catalina/localhost/workfusion.xml.Define a user and a password in the robotics-flow tag in the Bot configuration:
<robotics-flow username="user1" password="password1"> <robot> ... </robot> </robotics-flow>