Though everyone seems to be talking about RPA, there are very few sources on how RPA works, the software architecture and technology behind it. Different RPA platforms’ product choices will impact how your organization will build upon the RPA platform it chooses.
Important aspects of RPA architecture include 3 points:
1- Programming language/framework
Programming language of the RPA tool allows developers to build custom modules for it. Customizations to RPA are interesting because
- They are necessary for complex processes
- RPA marketplaces allow developers and companies to monetize their custom-built RPA solutions
Any customizations to RPA tools would need to be made available in the programming language of the RPA tool. Though developers can always use a language of their choice, build an API and write a wrapper for that API in the programming language of the RPA tool, this is a rather time consuming way to create custom code for RPA bots.
You can find below the programming languages used in top RPA tools that disclose this information:
As you can see, while most RPA companies use the .Net framework, Argos Labs, an upcoming RPA company, is built on Python. Python code can be submitted as plugins to Argos Labs’ RPA+. Python can turn out to be an interesting programming language for RPA. Python is both the 3rd most popular programming language on Github and is among the fastest growing languages in terms popularity according to github, the open source code repository.
When you look at top programming languages by contributors as of September 30, 2018 from github, .Net is represented by a single programming language, C# which is the 5th most popular programming language by contributors while Python is 3rd on the list.
It is also note-worthy that Python is still in github’s fastest growing languages by contributors list as of September 30, 2018. This is remarkable as Python is the only language in this list out of the top 5 most popular programming languages by contributors.
2- Capability to interact with other software
Computer vision capabilities
Computer vision is critical for RPA software to function in virtual desktops.
While all RPA tools integrate with the Windows OS, issues arise in case of desktop virtualization. As IT professionals are intimately familiar, in desktop virtualization, end users get served images from a server rather than using the OS on their end user machine. This prevents RPA software from accessing application attributes from the OS. As a result, RPA tools’ computer vision capabilities become important. For example, when one looks at the technical journey of UiPath, it is clear that a significant share of their effort has been focused on getting screen scraping and computer vision to work better.
The best way to test computer vision capabilities of an RPA tool is a PoC on a virtualized desktop.
While RPA bots can use computer vision to interact with UX, in cases where Citrix or other virtualization solutions are not installed, it is less-error prone for bots to interact directly with other software via integrations. For example an RPA bot that will pull records from Salesforce, can do so more faster and with fewer errors via software integration, compared to getting the same records via the UX using computer vision.
Taking list of integrations of each RPA solution provider and comparing against your software stack should give a good estimate idea about whether the RPA solution provider provides the necessary integrations. However, please note that integrations are a secondary topic, especially when working with leading RPA platforms. They are all already integrated to most common solutions anyway.
While these are architectural aspects of RPA, there are other technical aspects of RPA important for deciding which RPA tool to use. Read our RPA guide for technical buyers to learn more.