用户您好!请先登录!

RPA (Robotic Process Automation) Open Source Investigation

RPA (Robotic Process Automation) Open Source Investigation

1. What’s RPA?

A complete solution to automate processes end-to-end – with exception management, complex decision-making by humans, and delegation of repetitive task sequences to a digital workforce of software robots. [Bonita and UiPath]

一个完整的解决方案,实现了端到端的流程自动化—异常管理,由人类进行复杂的决策,并将重复性的任务工作授权给由软件机器人组成的数字化劳动力。

  • Non-disruptive

    1. to get the job done without changing existing systems.
    2. do not use API’s or heavy IT requirements that would affect the security, quality, or data integrity applications.
    3. use robots access applications exactly as a human does – via the user interface with an established access control mechanism (e.g., Logon ID and password) – requiring no underlying systems programming.
  • Business user friendly

    1. ease-of-use and low requirement for technical support means adoption can originate inside business operations.

1.1 Definition

RPA automates repetitive rules-based tasks – typically performed by people – via the user interface, to manipulate data and applications just as a human would.

  • Automate high-volume, repeatable tasks within existing processes.

  • Uses robots that mimic the way a person interacts with applications.

  • Automate single user tasks involving multiple applications.

  • Free up employees to focus on more creative and customer-oriented innovation.

  • Support robotic automation triggered by humans, or by other robots.

  • Integrate with back-end and legacy systems via user interfaces.

RPA通过用户界面自动执行基于规则的重复性任务–通常是由人执行的–就像人一样操作数据和应用程序。

  • 在现有流程中自动完成大批量、可重复的任务。
  • 使用机器人,模仿人与应用程序的交互方式。
  • 自动处理涉及多个应用程序的单用户任务。
  • 将员工解放出来,让他们专注于更有创造力和面向客户的创新。
  • 支持由人类或其他机器人触发的机器人自动化。
  • 通过用户界面与后端和传统系统集成。

1.2. RPA的技术架构及原理

典型的RPA平台至少会包含设计(开发)、运行、控制等三个组成部分。

  • 开发设计工具(设计器)

开发设计工具主要用于建立软件机器人的配置或设计机器人。通过开发工具,开发者可以为机器人执行一系列的指令和决策逻辑进行编程。大多数开发工具为了进行商业发展,通常需要开发人员具备相应的编程知识储备,如循环、变量赋值等。开发设计工具里还包括:

    • 记录仪:也称之为“录屏”,用以配置软件机器人。就像Excel中的宏功能,记录仪可以记录用户界面(UI)里发生的每一次鼠标动作和键盘输入。
    • 插件/扩展:为了让配置的运行软件机器人变得简单,大多数平台都提供许多插件和扩展应用。
    • 可视化流程图:一些RPA厂商为方便开发者更好地操作RPA开发平台,会推出流程图可视化操作。
  • 运行工具(执行器)

当开发工作完成后,用户可使用该工具,来运行已有软件机器人,也可以查阅运行结果。

  • 控制工具(控制器)

主要用于软件机器人的部署与管理。包括开始/停止机器人的运行,为机器人制作日程表,维护和发布代码,重新部署机器人的不同任务,管理许可证和凭证等。当需要在多台PC上运行软件机器人的时候,也可以用控制器对这些机器人进行集中控制,比如统一分发流程,统一设定启动条件等。

1.3. RPA机器人的工作流程

  • 流程开发及配置:开发人员制定详细的指令并将他们发布到机器上,具体包括应用配置、数据输入、验证客户端文件、创建测试数据、数据加载以及生成报告。
  • 业务用户能够通过控制中心给机器人分配任务并监视它们的活动,将流程操作实现为独立的自动化任务,交由软件机器人执行。
  • 机器人位于虚拟化或物理环境中,不需要与系统开放任何接口,仅需通过用户界面与各种各样的应用系统(包括ERP、SAP、CRM、OA等)交互,完全模拟人类操作,自动执行日常的劳动密集且重复的任务。
  • 业务用户审查并解决任何异常或进行升级。

 1.4. Thinking

Typically, the automation of a company’s internal transaction/business portfolio is done using software programs, where the difficulty is that multiple different application components need to communicate with each other, relying on the ability of each application to provide data sharing or access to public APIs or new applications, not to mention the large number of industry commercial products and solutions (databases, ERP, CRM, various platform software, etc.) in the company’s business, which also hinders the advancement of automation. Even if these difficulties are overcome and the program is developed to meet the business requirements, it is difficult to confirm, fix, and synchronize the associated program because of the version upgrade or revision. For historical systems that are already in use, the time risk and labor cost of a unified retrofit and architecture adjustment is not as high as a surgical retrofit, in contrast to these, RPA does not need to modify the process and automate the process like a human to a PC machine.

通常,公司内部事务/业务的自动化组合一般使用软件程序完成自动化处理,这里的困难在于多个不同应用程序组件之间需要完成通信,这依赖每个应用程序提供给公开的API或者新应用提供数据共享或者互相访问的能力,更何况公司业务中会存在大量的业界商用产品与方案(数据库,ERP,CRM,各类平台软件等),这也阻碍着自动化的推进。即使克服这些困难,开发出了符合业务要求的程序,但是因为关联程序的版本升级或者修正,相关的确认和修正、同步成为难点。对于已成使用事实的历史系统而言,进行统一的改造与架构调整所带来的时间风险与人力成本不如外科手术式的改造,相对而言,对应于这些,RPA不需要修改程序,仿照人对PC机器的操作,实现自动化的过程。

For RPA, the main response scenario is a relatively fixed business, and we can automate the business according to the defined business stream. For example, back-office transactions of personnel, finance, general affairs, wind control department, etc., management operations, sales management, and the input of applications such as expense processing, etc. It has 3 main features: lower labor costs, higher productivity and lower error rate.

对于RPA而言,其主要的应对场景是相对固定的业务,我们可以依照定义的业务流实现业务的自动化处理。例如人事,财务,总务,风控部门等等的后台部门的事务,管理业务,销售管理和经费处理等等应用程序的输入等业务。其主要有3个特点:相比人工费用更低,生产效率高,错误率低。

2. Commercial RPA Software

2019 Gartner 机器人流程自动化软件魔力象限:

1d8446353198478ba38c66df35d14e79

2.1. Foreign Products (Global)

  • UiPath
  • BluePrism
  • Automation Anywhere

2.2.  Domestic Products (Local)

  • IS (艺赛旗) 
  • UiBot (奥森科技)
  • Cyclone RPA (上海弘玑)

3. Open Source RPAs

这里,我们以在GitHub上开源的RPA为基础,根据其星级及活跃程度做相应的排序如下 (2020/05/19):

Name
URL
Star
Language
Website
License

Graphics or

Command Line

OS
Study Curve

Activity of Past Year

Comment
Name
URL
Star
Language
Website
License

Graphics or

Command Line

OS
Study Curve

Activity of Past Year

Comment
Robot Framework https://github.com/robotframework/robotframework 4.6K Python http://robotframework.org Apache 2.0 Graphics Windows

macOS

Linux

文档健全

推荐调研
TagUI https://github.com/kelaberetiv/TagUI 3.5K Python/JS/PHP https://tagui.readthedocs.io/ Apache 2.0 Command Line Windows

macOS

Linux

文档丰富,易于使用

推荐调研
Automagica https://github.com/automagica/automagica 2.6K Python https://automagica.com GNU Open-Source AGPLv3

or Commerical Licensing

Graphics Windows

macOS

Linux

如果有更多时间推荐调研,
RPA-Python https://github.com/tebelorg/RPA-Python 990 Python N/A. Apache 2.0 Graphics Windows

macOS

Linux

作者更新频繁,活跃中
Orchestra https://github.com/b12io/orchestra 585 Python https://orchestra.b12.io/ Apache 2.0 Graphics Windows

macOS

Linux

最近的代码提交在2年前,社区不活跃,不推荐使用。
Roro RPA https://github.com/arviedelgado/roro 409 C#, wpf and .net core 3.0 http://roroscript.com BSD 2-Clause Graphics Windows

不推荐
Kantu https://github.com/A9T9/Kantu 352 Java Script https://ui.vision/rpa GNU Open-Source AGPLv3

or Commerical Licensing

Graphics Windows

mocOS

Linux

不推荐
RPAStudio https://github.com/rpa-ai/RPAStudio 270 C#

.net framework

N/A.  GPL3.0 Graphic Windows

国人开源
Taskt https://github.com/saucepleez/taskt 241 C# http://www.taskt.net/ Apache 2.0 Graphic Windows

可关注或者深入调研
OpenRPA https://github.com/open-rpa/openrpa 229 C# https://openrpa.openrpa.dk/ MPL-2.0 Graphic Windows

可关注或者深入调研

3.1. Robotframework (http://robotframework.org)

Robot Framework是一个通用的开源自动化框架,用于验收测试、验收测试驱动开发(ATDD)和机器人过程自动化(RPA)。它具有简单的纯文本语法,并且可以使用Python或Java的库轻松地进行扩展。

Robot Framework是独立于操作系统和应用程序的。其核心框架使用Python实现,支持Python 2和Python 3,也可在Jython(JVM)、IronPython(.NET)和PyPython上运行。该框架周围有一个丰富的生态系统,由各种通用的库和工具组成,这些库和工具都是作为独立项目开发的。该框架最初是由诺基亚网络公司开发的,并于2008年开源。

3.2. TagUI (https://tagui.readthedocs.io/)

TagUI由AI Singapore维护,是一个用于RPA的命令行界面,可以在任何主要的操作系统上运行。(这是开源RPA工具的一个常见特性,也是它与一些商业工具的区别之一。)
TagUI使用术语和相关的“流程”概念来表示运行一个基于计算机的自动化流程,该流程可以按需完成,也可以按固定的时间表完成。
(通过这种方式,TagUI中的流可能被称为脚本或机器人。)TagUI强调其语言的简单或自然。贡献者Ken Soh在2017年发布的一篇介绍TagUI的媒体文章中写道:“这使得UI自动化的快速原型化、部署和维护变得容易,无论你是否是开发人员。TagUI有丰富的在线文档。

3.3. Automagica (https://automagica.com)

这可能是开源模式和免费增值模式之间的分界线:Automagica确实是开源的,对于非商业用途是免费的,但是商业用途需要商业许可证。这使得它成为希望学习、试验和原型的个人的一个潜在的好选择,但是商业用例将需要迁移到它的商业Automagica门户网站。

Automagica也有相对全面的介绍文档。它的自动化能力实现是基于Python,独立开发了一个云端应用平台,可以实现网页端的编码。它基于Python和Tensorflow等开源技术,因此可以轻松接入人工智能领域的最新和重大发展,将其用于日常办公。

Automagica 使用场景

  • 桌面交互自动化
  • Office 自动化,例如打开 Excel 并进行数据填充
  • Web 自动化,例如打开网址并进行网页操作
  • 商业应用自动化,支持 SAP、Oracle Apps、Siebel、PeopleSoft 与 Salesforce 等
  • 自动打开邮件应用并收发邮件
  • 远程控制等等

3.4. PRA-Python

Python package for RPA (robotic process automation). This tool was previously known as TagUI for Python.

RPA for Python’s simple and powerful API makes robotic process automation fun! You can use it to quickly automate repetitive time-consuming tasks, whether the tasks involve websites, desktop applications, or the command line.

3.5. Orchestra (https://orchestra.b12.io/)

Orchestra是一个机器人过程自动化系统,用于组织专家和机器的项目团队。项目可以包括从为客户项目工作的设计团队,到新闻编辑室的记者、摄影师和编辑为一个新闻报道而聚集在一起。在Orchestra工作流程中,您可以指派资深专家对其他专家进行审核,以提供反馈,并对工作进行迭代完善。

Orchestra 还为项目带来了机器和自动化功能:

  • 爬虫可以在专家梳理之前从网络上收集内容,或者分类器可以过滤掉不良数据,从而减少分析人员在噪音中的时间。
  • 新的工作流程可以通过一些简单的Python胶水和HTML接口添加新的工作流程。

3.6. Roro RPA (http://roroscript.com)

其官网不可达,在过去的一年活跃度不够,不建议调研与使用。

3.7. Kantu (https://ui.vision/rpa)

The UI Vision RPA software is the tool for visual process automation, codeless UI test automation, web scraping and screen scraping. Automate tasks on Windows, Mac and Linux.

The UI Vision RPA core is open-source with enterprise security. The free and open-source browser extension can be extended with local apps for desktop UI automation.

Functionality:

  • (1) Visual Web Automation and UI Testing
  • (2) Visual Desktop Automation for Windows, Mac and Linux
  • (3) Selenium IDE++ for hybrid web automation

The UI.Vision RPA software is a open-source alternative to iMacros and Selenium IDE, and supports all important Selenium IDE commands. When you invest the time to learn UI.Vision RPA, you learn Selenium IDE at the same time.

In addition, UI.Vision RPA includes new web automation commands that are not found in the classic Selenium IDE, such as the ability to write and read CSV files (data-driven testing), visual checks, file download automation, PDF testing and the ability to take full page and desktop screenshots.

Suggestion: Key scenarios are more suited to the integration of automated testing frameworks

3.8. RPAStudio (国人开源的RPA框架)

RPAStudio是国内第一家RPA开源项目。

功能

  • UI自动化:windows窗口、swing窗口、IE浏览器UI自动化;
  • 浏览器自动化: IE、chrome、Firefox浏览器;
  • 应用程序集成: Word、Excel、CSV、Mail、数据库(SQL server、MySql、Oracle)、FTP、Python(Python 3)

【备注:】最新代码在码云: https://gitee.com/rpa_ai/RPAStudio

3.9. Taskt (http://www.taskt.net/)

Taskt (formerly sharpRPA) is a free and open-source robotic process automation (RPA) solution powered by the .NET Framework that allows you to automate tedious and repetitive tasks with simple and customization commands.

Taskt强调易用性和无代码或低代码。Taskt是一个免费的开源工具,它承诺了同样的功能:无需编写代码就可以自动执行任务。它的功能之一是屏幕记录器,记录用户基于计算机的操作,然后将这些步骤转换成可重复的脚本(也称为RPA bot)。它还包括一个“看到什么就得到什么”的“bot设计器”,其中包含一个用于无代码RPA开发的标准命令菜单。

3.10. OpenRPA (https://openrpa.openrpa.dk/)

Open Source Enterprise Grade RPA

Key Functionality:

  • Supports running “stand alone” with state, projects and workflows saved locally ( ideal if used on machines without internet )
  • Easy manipulation of workflows using Microsoft Workflow Foundation, implemented the right way, saving state either locally or in OpenFlow.
  • Supports remote management, and remote handling of state, projects and workflows, using OpenFlow. OpenFlow can initiate workflows on robots and robots can initiate workflows in OpenFlow Robots have easy access to save any data and files centrally, all protected with access control lists, and support for EAS 265 bit encryption

4. Evaluation and Thinking

https://research.aimultiple.com/open-source-rpa/

image2020-5-21_17-49-15

Updated: TaskT 和TagUI的学习曲线比较陡,且对屏幕焦点,元素的获取不够灵活,实际对我司有参考意义的为RPA Stutio 和OpenRPA,这两个开源软件均以微软自动化框架为基础(UIPath也一样),更适合我司实际场景。

4.1. KISS Principle (keep it simple, silly)

From open source point of view and MVP, the opensource we choice to use should meet KISS (keep it simple, silly) principle.

针对公司实际的业务场景,我们可以抽象出简单的针对开源软件的评估用例来验证是否满足公司的RPA使用要求:

  1. Automate a process that takes data from an Excel spreadsheet and adds it to an application.
  2. Take information from our corporate website (a few fields) and input the information into an Excel spreadsheet that is attached to an email.
  3. Perform the RPA effort off out internet network to ensure there are no cyber-security issues with the data being automated.
  4. Ensure IT, especially cyber and the technical architecture group, are involved from very beginning to ensure the open source meets all regulatory and cyber-security requirements.

4.2. C# based Open-source Implementation (待补充)

  • TagUI – AI Singapore

4.3. Python based Open-source Implementation (待补充)

  • TaskT

4.4. Conclusion and Suggestion (待补充)

5. Architectural Evolution in Automation

5.1. “Isolated Island” issues and Resolving

image2020-5-20_17-34-0

解决方案

(Solution)

业界成熟悉产品

(Industry-proven)

三方定制产品

(3rd Customized)

跨站点(产品线)产品

(Multi-site Product)

内部产品

(Internal )

业务方

(User)

技术

(IT)

供应商

(Vendor)

备注:优点

(Advantages.)

备注:缺点

(Disadvantages.)

1. RPA 实施相对容易 实施相对容易 实施相对容易,产品变更导致增加RPA维护成本 实施相对容易,产品变更导致增加RPA维护成本 能够快速响应业务方应用及其变更 非技术驱动 单次实施成本,后续可自行维护(需一定能力支撑)
2. Interactions between Services 除非产品本身开放接口,否则很难集成交互 除非产品本身开放接口,否则很难集成交互 设计多站点,多产品线的协调,属于中长期行为 相对容易实现,需要早期架构的统一考虑和后期快速迭代(架构支持) 满足业务方的需求依赖于早期业务的理解和后期业务的变更与技术的交付速度 技术架构驱动,依赖于交付速度 对于成熟产品有相对好的SDK/API,对对容易实现,对于三方定制产品,会涉及成本与交付
3. Interactions between DBs(Storage) 几乎不可集成 很难集成及交互 相对难于集成,且对微服务体系有侵入 需要综合考虑微服务的粒度 业务方不敏感, 更多应用于OLTP、大数据场景而非用户业务自动化等场景 几乎不会参与

5.2. Architecture Evolution in Automated Interaction Scenario  (基于业务驱动的可快速持续交付的自动化架构演进)

Keywords: business-driven, rapid response, sustainable delivery, stable infrastructure

Some assumption:

  • There is no such thing as a stable business structure, the market is fluid and the business needs to constantly adapt to the market. (没有什么是稳定的业务架构,市场是多变的,业务需要不断调整以适应市场)
  • No architecture is a perfect infrastructure, and an IT framework that meets the needs of today’s company business is the best. (没有什么架构是完美的基础架构,能满足当下公司业务发展的IT框架就是最好的。)
  • The fastest response to business needs is the best technology solution. (对业务需求最快速的响应才是最好的技术解决之道)
  • Businesses need MVP and MCP(Minimal Cost Product). (业务需要最快、最省成本的交付产品)
  • The infrastructure should be stable; it should meet business requirements that can be implemented quickly; the system should have some secondary development capabilities.(基础架构应该是稳定的,应该满足业务需求的可快速实现;系统应该有一定的二次开发能力。)

image2020-5-21_9-16-18

解释说明:

  1. 对于业界成熟的主流产品,操作系统,Office,ERP,CRM,DB,其它应用产品等,建议以RPA为主,如果对方开放OpenAPI/SDK方式,才考虑后端服务调用对接;因为稳定,相应RPA开发和维护成本较低。
  2. 对于公司内部多站点,跨部门甚至部门内部产品优先考虑后端服务打通,这样的方式最稳定可靠;但对于业务及市场需要迅速响应的需求,优先考虑RPA对接实现,待稳定后逐步下沉到后端系统对接中。
  3. 对于后端系统的对接和打通,需从基础架构上保证实现的可快速迭代能力。

6. RPA 不是银弹

RPA技术尽管颇具吸引力,目前的RPA产品仍存在明显的技术局限性,阻碍RPA项目发挥完全价值。 这些挑战包括:

  • 非数字流程输入的转换
  • 识别非结构化文档格式中目标数据字段的能力
  • 相对轻松地适应不断变化的规则或业务逻辑的能力
  • 从自动化流程的事务性数据中生成洞察的能力
  • 根据上下文解释和理解机器活动上游指令集的能力

RPA技术要跟AI技术结合,利用认知和智能识别技术来应对这些挑战,才能较好应用于数字化转型。另一方面,仅从业务层去考虑利用RPA技术来实现数字化,容易忽略底层支撑系统的技术改造,并不利于整个IT环境的改造与企业的彻底数字化转型。

2018年11月ThoughtWorks发布的第19期技术雷达,RPA第一次上榜,但是被置于“暂缓”环,正是这个原因。

rpa_radar

技术雷达给出的建议:

RPA这种仅关注自动化业务流程而不解决底层软件系统或功能的方法的问题在于,引入额外的耦合会使底层系统更改起来更加麻烦。这也会让未来任何解决遗留IT环境的尝试都变得更加困难。 很少有系统能够忽视变化,因此RPA的进展需要与适当的遗留系统现代化战略相结合。

同时,也有德勤、安永等咨询专家表示,就许多企业客户的流程管理与系统的基础能力现状来看,仍存在着大量的基础建设工作有待开展。不用着急实现RPA,首要的还是把自身的流程管理和系统构建好。

因此,RPA本身并不是理想的数字化工具,但它是种迅速满足业务形态的尝试。具体在公司的使用中,还是应该参考业务本身的发展和公司IT架构的特点,谨慎而行。

行走的code
行走的code

要发表评论,您必须先登录