CN116909763A - 部署机器人流程自动化的系统、装置和方法 - Google Patents
部署机器人流程自动化的系统、装置和方法 Download PDFInfo
- Publication number
- CN116909763A CN116909763A CN202310428823.3A CN202310428823A CN116909763A CN 116909763 A CN116909763 A CN 116909763A CN 202310428823 A CN202310428823 A CN 202310428823A CN 116909763 A CN116909763 A CN 116909763A
- Authority
- CN
- China
- Prior art keywords
- level command
- operating system
- automation
- driver
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000000694 effects Effects 0.000 claims description 56
- 230000006870 function Effects 0.000 claims description 32
- 230000009471 action Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 21
- 238000013461 design Methods 0.000 abstract description 13
- 238000004801 process automation Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 description 68
- 238000010801 machine learning Methods 0.000 description 68
- 230000008569 process Effects 0.000 description 44
- 238000007726 management method Methods 0.000 description 20
- 238000012360 testing method Methods 0.000 description 19
- 239000003795 chemical substances by application Substances 0.000 description 18
- 230000018109 developmental process Effects 0.000 description 18
- 238000012544 monitoring process Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000005065 mining Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 9
- 230000010354 integration Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 230000008520 organization Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012015 optical character recognition Methods 0.000 description 4
- 101000857680 Xenopus laevis Runt-related transcription factor 1 Proteins 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000010897 surface acoustic wave method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000001787 Wald–Wolfowitz test Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011165 process development Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Abstract
本公开的实施例涉及部署机器人流程自动化的系统、装置和方法。公开了用于机器人流程自动化(RPA)的多平台自动化的开发和部署。硬件级命令、驱动程序级命令和/或应用编程接口(API)调用在设计时在自动化和/或RPA工作流内被自动且无缝地替换。RPA自动化的开发可以发生在第一操作系统上,并且RPA自动化的自动重新配置和部署可以发生在不同的第二操作系统中。可以接收、摄取或检索包括第一操作系统本地的第一组硬件级命令、驱动程序级命令和/或API调用的自动化,并且可以自动重新配置该自动化以包括操作系统本地的第二组硬件级命令、驱动程序级命令和/或API调用。因此,可以提供跨一系列操作系统的功能相似或功能相同的自动化的无缝且一致的开发。
Description
技术领域
本发明大体上涉及自动化,并且更具体涉及用于开发和部署用于机器人流程自动化(RPA)的多平台自动化的系统、装置和方法。
背景技术
机器人流程自动化(RPA)机器人的成功设计、测试和部署可能需要由RPA机器人执行的各种自动化的编码,脚本和/或设计,这些自动化中的一些自动化可以包括模拟与计算系统的用户交互的硬件级命令(例如,鼠标移动、鼠标点击、按键等),驱动程序级命令(例如,操作系统(OS)驱动程序462,浏览器驱动程序464,VM驱动程序466,企业应用驱动程序468等),和/或由RPA机器人对由运行在计算系统上的OS或应用提供的API的应用编程接口(API)调用。
然而,当在不同操作系统之间开发、测试和部署自动化时,出现了显著的技术挑战,所述不同操作系统可以在其相应的本机操作系统环境中采用不同的硬件级命令,驱动程序级命令和/或API调用集。此外,一些操作系统可能缺乏其它操作系统的本机环境所固有的能力或功能。因此,跨不同的操作系统环境部署自动化的现有方法需要手动开发用于每个操作系统的替换自动化或者手动标识、替换和/或修补自动化中的功能。典型的方法导致过多的开发时间、自动化的低效部署、以及开发者和自动化用户的不均匀的用户体验。
因此,改进的和/或备选的方法可能是有益的。
发明内容
本发明的某些实施例可以提供对现有技术中尚未被当前RPA开发和部署技术完全标识、理解或解决的问题和需要的解决方案。例如,本发明的一些实施例涉及用于开发和部署RPA的多平台自动化的系统、装置和方法。
在一个实施例中,非暂态计算机可读介质存储用于RPA设计器应用的计算机程序。计算机程序被配置为使至少一个处理器:为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、API调用或其任何组合的操作系统级选项,以用于RPA工作流的活动。计算机程序还被配置为使至少一个处理器:配置与RPA工作流相关联的自动化,以确定RPA机器人在运行时在其上正在执行自动化的操作系统,并在执行与活动相关联的一个或多个动作时利用针对所确定的操作系统的操作系统级选项。
在另一实施例中,一种计算系统包括存储计算机程序指令的存储器和被配置为执行计算机程序指令的至少一个处理器。计算机程序指令被配置为使至少一个处理器:为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、API调用或其任何组合的操作系统级选项,以用于RPA工作流的活动。计算机程序指令还被配置为使至少一个处理器:配置与RPA工作流相关联的自动化,以确定RPA机器人在运行时在其上正在执行自动化的操作系统,并在执行与活动相关联的一个或多个动作时利用针对所确定的操作系统的操作系统级选项。
在又一实施例中,一种计算机实现的方法包括:由服务器为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、API调用或其任何组合的操作系统级选项,以用于RPA工作流的活动。计算机实现的方法还包括:配置与RPA工作流相关联的自动化,以确定RPA机器人在运行时在其上正在执行自动化的操作系统,并在执行与活动相关联的一个或多个动作时利用针对所确定的操作系统的操作系统级选项。
在又一实施例中,一种方法包括:确定RPA机器人正在其上运行的多个操作系统中的操作系统,以及在执行与RPA工作流相关联的自动化期间,执行与RPA机器人的RPA工作流的活动相关联的一个或多个动作。一个或多个动作包括所确定的操作系统本地的硬件级命令、驱动程序级命令、API调用或其任何组合。在另一实施例中,一个或多个动作被无缝地执行,而不管RPA机器人正在多个操作系统中的哪一个上运行,并且所确定的操作系统本地的硬件级命令、驱动程序级命令、API调用或其任何组合对于多个操作系统中的至少两个操作系统在功能上不同,以完成与RPA工作流的活动相关联的相同的一个或多个动作。
附图说明
为了容易理解本发明的某些实施例的优点,将通过参考在附图中示出的具体实施例来呈现以上简要描述的本发明的更具体的描述。应当理解,这些附图仅描述了本发明的典型实施例,因此不应认为是对其范围的限制,本发明将通过使用附图以附加的特征和细节进行描述和解释,其中:
图1是示出根据本发明实施例的超自动化系统的架构图。
图2是示出根据本发明实施例的RPA系统的架构图。
图3是示出根据本发明实施例的部署的RPA系统的架构图。
图4是示出根据本发明实施例的设计器、活动和驱动程序之间的关系的架构图。
图5是示出根据本发明实施例的被配置为开发和/或部署用于RPA的多平台自动化的计算系统的架构图。
图6是示出根据本发明实施例的用于自动配置与RPA工作流相关联的自动化会话以在不同操作系统上执行的过程的流程图。
图7是示出根据本发明另一实施例的用于自动配置与RPA工作流相关联的自动化会话以在不同操作系统上执行的过程的流程图。
图8是示出根据本发明另一实施例的用于自动配置与RPA工作流相关联的自动化会话以在不同操作系统上执行的过程的流程图。
图9是示出根据本发明另一实施例的用于自动配置与RPA工作流相关联的自动化会话以在不同操作系统上执行的过程的流程图。
除非另有说明,在所有附图中相似的附图标记始终表示相应特征。
具体实施方式
一些实施例涉及用于开发和部署RPA的多平台自动化的系统、装置和方法。在一些实施例中,硬件级命令、驱动程序级命令和/或API调用在设计时在自动化和/或在RPA工作流内被自动并且无缝地替换。通常,一些实施例启用并且执行第一操作系统内的RPA自动化的开发以及第二、不同操作系统中的RPA自动化的自动重新配置和部署。一些实施例可以接收、摄取或取回包括第一操作系统本地(native)的第一组硬件级命令、驱动程序级命令和/或API调用的自动化,并且自动重新配置自动化以包括操作系统本地的第二组硬件级命令、驱动程序级命令和/或API调用。因此,本文所描述的至少一些实施例可以提供跨一系列操作系统的功能类似或功能相同的自动化的无缝并且一致的开发。
图1是示出根据本发明实施例的超自动化系统100的架构图。如本文中所使用的“超自动化”是指将流程自动化的组件、集成工具和放大自动化工作的能力的技术集合在一起的自动化系统。例如,在一些实施例中,RPA可以在超自动化系统的核心处使用,并且在某些实施例中,自动化能力可以用人工智能(AI)/机器学习(ML)、流程挖掘、分析和/或其它高级工具来扩展。随着超自动化系统学习过程,训练AI/ML模型并且采用分析,例如,越来越多的知识工作可以被自动化,并且组织中的计算系统(例如,个人所使用的那些和自主运行的那些两者)可以全部参与超自动化流程。一些实施例的超自动化系统允许用户和组织有效地发现、理解和缩放自动化。
超自动化系统100包括用户计算系统,例如台式计算机102、平板104和智能电话106。然而,在可以使用任何期望的用户计算系统,包括但不限于智能手表、膝上型计算机、服务器、物联网(互联网)设备等而不脱离本发明的范围。此外,虽然在图1中示出了三个用户计算系统,可以使用任何合适数目的用户计算系统而不脱离本发明的范围。例如,在一些实施例中,可以使用几十、几百、几千或几百万个用户计算系统。用户计算系统可以由用户主动使用,或者自动运行而没有很多或任何用户输入。
每个用户计算系统102、104、106具有在其上运行的相应的(多个)自动化流程110、112、114。(多个)自动化流程110、112、114可以包括但不限于RPA机器人、操作系统的部分、用于相应计算系统的可下载(多个)应用、任何其它合适的软件和/或硬件、或这些的任何组合、而不偏离本发明的范围。在一些实施例中,(多个)流程110、112、114中的一个或多个流程可以是监听器。监听器可以是RPA机器人,操作系统的部分、用于相应计算系统的可下载应用、或任何其它软件和/或硬件,而不偏离本发明的范围。实际上,在一些实施例中,(多个)监听器的逻辑部分地或完全地经由物理硬件来实现。
监听器监测并记录与用户与相应计算系统的交互和/或无人值守计算系统的操作有关的数据,并且经由网络(例如,局域网(LAN)、移动通信网络、卫星通信网络、互联网、其任何组合等)将数据发送到核心超自动化系统120。数据可以包括但不限于:点击了哪些按钮、移动了鼠标、在字段中输入了文本、一个窗口被最小化而另一窗口被打开、与窗口相关联的应用等。在某些实施例中,来自监听器的数据可以作为心跳消息的部分被周期性地发送。在一些实施例中,一旦已经收集了预定量的数据,在经过了预定时间段之后,或两者,就可以将数据发送到核心超自动化系统120。一个或多个服务器(例如服务器130)在数据库(诸如,数据库140)中接收并且存储来自监听器的数据。
自动化流程可以执行在设计时间期间在工作流中开发的逻辑。在RPA的情况下,工作流可以包括在序列或一些其它逻辑流中执行的一组步骤,在此定义为“活动”。每个活动可以包括诸如点击按钮、读取文件、写入日志面板等动作。在一些实施例中,工作流可以被嵌套或嵌入。
在一些实施例中,针对RPA的长期运行工作流是支持服务编排、人工干预和无人值守环境中的长期运行事务的主项目。参见例如美国专利第10,860,905号。当某些流程需要人工输入以处理异常、批准或确认时,在进行到活动中的下一步骤之前,进行人工干预。在这种情况下,流程执行被挂起、释放RPA机器人直到人类任务完成。
长期运行工作流可以经由持久化活动来支持工作流分段,并且可以与调用流程和非用户交互活动相结合,协调人类任务与RPA机器人任务。在一些实施例中,多个或许多计算系统可以参与执行长期运行工作流的逻辑。长期运行工作流可以在会话中运行以便于快速执行。在一些实施例中,长期运行工作流可以协调可以包含执行应用编程接口(API)调用并且在长期运行工作流会话中运行的活动的后台流程。在一些实施例中,这些活动可以由调用流程活动来调用。在用户会话中运行的具有用户交互活动的流程可以通过从指挥活动(conductor activity)(稍后将更详细地描述指挥器)开始工作来调用。在一些实施例中,用户可以通过需要在指挥器中完成表单的任务进行交互。可以包括使RPA机器人等待表单任务完成然后恢复长期运行工作流的活动。
自动化流程110、112、114中的一个或多个自动化流程与核心超自动化系统120通信。在一些实施例中,核心超自动化系统120可以在诸如服务器130的一个或多个服务器上运行指挥应用。虽然出于说明的目的示出了一个服务器130,但是可以采用彼此邻近或处于分布式架构中的多个或许多服务器而不脱离本发明的范围。例如,可以提供一个或多个服务器用于指挥器功能,AI/ML模型服务、认证、管理和/或任何其他合适的功能,而不偏离本发明的范围。在一些实施例中,核心超自动化系统120可以并入公共云架构、私有云架构、混合云架构等,或者可以是公共云架构、私有云架构、混合云架构等的部分。在某些实施例中,核心超自动化系统120可以在诸如服务器130的一个或多个计算系统上托管多个基于软件的服务器。在一些实施例中,诸如服务器130的核心超自动化系统120的一个或多个服务器可以经由一个或多个虚拟机(VM)来实现。
在一些实施例中,(多个)自动化流程110、112、114中的一个或多个自动化流程可以调用部署在核心超自动化系统120上或可由其访问的一个或多个AI/ML模型132。AI/ML模型132可以被训练用于任何合适的目的而不偏离本发明的范围,如将在下面更详细地讨论的。在一些实施例中,两个或更多个AI/ML模型132可以被链接(例如,串联,并联或其组合),使得它们共同提供(多个)协作输出。AI/ML模型132可以执行或辅助计算机视觉(CV)、光学字符识别(OCR)、文档处理和/或理解、语义学习和/或分析、分析预测、过程发现、任务挖掘、测试、自动RPA工作流生成、序列提取、聚类检测、音频到文本转换,其任何组合等。然而,可以使用任何期望数量和/或(多个)类型的AI/ML模型而不脱离本发明的范围。例如,使用多个AI/ML模型可以允许系统开发在给定计算系统上发生的事情的全局图像。例如,一个AI/ML模型可以执行OCR、另一模型可以检测按钮、另一模型可以比较序列,等等。模式可以由AI/ML模型单独地确定,或者由多个AI/ML模型共同地确定。在某些实施例中,一个或多个AI/ML模型被本地部署在计算系统102、104、106中的至少一个计算系统上。
在一些实施例中,可以使用多个AI/ML模型132。每个AI/ML模型132是在数据上运行的算法(或模型),并且AI/ML模型本身可以是例如在训练数据上训练的经训练的人造“神经元”的深度学习神经网络(DLNN)。在一些实施例中,AI/ML模型132可以具有执行诸如统计建模(例如,隐马尔可夫模型(HMM))可夫模型(HMM)),并且利用深度学习技术(例如,存储器(LSTM)深度学习、先前隐藏状态的编码等)来执行期望的功能。
在一些实施例中,超自动化系统100可以提供四个主要的功能组:(1)发现;(2)建立自动化;(3)管理;以及(4)参与。在一些实施例中,自动化(例如,在用户计算系统、服务器等上运行)可以由软件机器人(例如,RPA机器人)运行。例如,可以使用有人值守的机器人、无人值守的机器人和/或测试机器人。有人值守机器人与用户一起工作以辅助他们完成任务(例如,通过Uipath AssistantTM)。无人值守的机器人独立于用户工作,并且可能在后台运行,可能没有用户知识。测试机器人是针对应用或RPA工作流运行测试用例的无人值守机器人。在一些实施例中,测试机器人可以在多个计算系统上并行运行。
发现功能可以发现并且提供用于业务流程自动化的不同机会的自动推荐。这种功能可以由诸如服务器130的一个或多个服务器来实现。在一些实施例中,发现功能可以包括提供自动化集线器、流程挖掘、任务挖掘和/或任务捕获。自动化集线器(例如,UiPathAutomation HubTM)可以提供用于管理具有可见性和控制的自动化展示的机制。例如,自动化概念可以经由提交表格从雇员众包。可以提供用于自动化这些想法的可行性和投资回报(ROI)计算,可以收集用于未来自动化的文档,并且可以提供协作以从自动化发现中获得更快的构建。
流程挖掘(例如,经由Uipath Automation CloudTM和/或Uipath AI CenterTM)指的是收集和分析来自应用(例如,企业资源规划(ERP)应用,客户关系管理(CRM)应用,电子邮件应用,呼叫中心应用等)的数据以标识组织中存在哪些端到端过程以及如何有效地使它们自动化,以及指示自动化的影响将是什么的过程。该数据可以由例如监听器从用户计算系统102、104、106收集,并且由诸如服务器130等服务器处理。在一些实施例中,为此目的可以采用一个或多个AI/ML模型132。该信息可以被输出到自动化集线器以加速实现并且避免人工信息传送。流程挖掘的目标可以是通过使组织内的流程自动化来增加商业价值。流程挖掘目标的一些示例包括但不限于增加利润、提高客户满意度、规章和/或合同遵守、提高雇员效率等。
任务挖掘标识并且聚集工作流(例如,雇员工作流),然后应用AI来展示日常任务中的模式和变化,为便于自动化和潜在节省(例如,时间和/或成本节省)对这些任务评分。可以采用一个或多个AI/ML模型132来揭示数据中的循环任务模式。然后可以标识对于自动化成熟的重复任务。在一些实施例中,该信息最初可以由监听器提供,并且在诸如服务器130的核心超自动化系统120的服务器上进行分析。来自任务挖掘的发现(例如,可扩展应用标记语言(XAML)处理数据)可以被导出以处理文档或导出到诸如Uipath StudioTM的设计器应用以更快速地创建和部署自动化。
在一些实施例中,任务挖掘可以包括利用用户动作(例如,鼠标点击位置、键盘输入、应用窗口和用户与之交互的图形元素,交互的时间戳等)来进行屏幕截图,收集统计数据(例如,执行时间、动作数目、文本条目等)、编辑和注释屏幕截图、指定要记录的动作类型等。
当用户工作时,任务自动捕获受管流程的文档,或为未受管流程提供框架。这样的文档编制可以包括以流程定义文档(PDD)、骨架工作流、捕获流程的每个部分的动作,记录用户动作和自动生成包括关于每个步骤的细节的综合工作流图,微软文档,XAML文件等的形式自动化的期望任务。在一些实施例中,可以将准备好构建的工作流直接导出到设计器应用,例如UiPath StudioTM。任务捕获可以简化用于解释过程的主题专家和提供生产级自动化的卓越中心(CoE)成员的需求收集过程。
可以通过设计器应用(例如,UiPath StudioTM、UiPath StudioxTM或UiPath WebTM)来实现构建自动化。例如,RPA开发设施150的RPA开发者可以使用计算系统152的RPA设计器应用154来构建和测试各种应用和环境的自动化,诸如web、移动、和虚拟化桌面。如下面更详细描述的,可以为各种应用、技术和平台提供API集成。预定义的活动,拖放建模和工作流记录器可以用最小的编码使自动化更容易。文档理解功能可以经由调用一个或多个AI/ML模型132的、用于数据提取和解释的拖放AI技巧来提供。这种自动化实际上可以处理任何文档类型和格式,包括表格、复选框、签名和手写。当数据被验证或异常被处理时,该信息可以用于重新训练相应AI/ML模型,随时间提高它们的精度。
例如,集成服务可以允许开发者无缝地组合用户界面(UI)自动化和API自动化。可以建立需要API或遍历API和非API应用和系统的自动化。可以提供用于预建RPA和AI模板和解决方案的储存库(例如,UiPath Object Repository TM)或市场(例如,UiPathMarketplaceTM)以允许开发者更快地自动化各种流程。因此,当构建自动化时,超自动化系统100可以提供用户界面、开发环境、API集成、预构建和/或定制的AI/ML模型、开发模板、集成开发环境(IDE)和高级AI能力。在一些实施例中,超自动化系统100启用开发、部署、管理、配置、监测、调试和维护RPA机器人,这可以为超自动化系统100提供自动化。
在一些实施例中,诸如(多个)设计器应用和/或外部规则引擎的超自动化系统100的组件提供对管理和实施用于控制由超自动化系统100提供的各种功能的管理策略的支持。治理是组织将策略置于适当位置以防止用户开发能够采取可能损害组织的动作,例如违反欧盟一般数据保护规则(GDPR)、美国健康保险可移植性和责任法案(HIPAA)、第三方应用服务条款等的行为的自动化(例如RPA机器人)的能力。由于开发者可以在执行其自动化的同时创建违反隐私法律、服务条款等的自动化,因此一些实施例在机器人和/或机器人设计应用级实现访问控制和管理限制。在一些实施例中,这可以通过防止开发者对可能引入安全风险或以违反政策、法规、隐私法律和/或隐私政策的方式工作的未经批准的软件库采取依赖性来向自动化流程开发流水线提供附加水平的安全性和合规性。参见,例如,美国非临时专利申请No.16/924,499(公开为美国专利申请公开No.2022/0011732),在此将其全文引入作为参考。
管理功能可以提供跨组织的自动化的管理、部署和优化。在一些实施例中,管理功能可以包括编排、测试管理、AI功能和/或洞察。超自动化系统100的管理功能还可以充当与用于自动化应用和/或RPA机器人的第三方解决方案和应用的集成点。超自动化系统100的管理能力可包括但不限于促进RPA机器人的供应、部署、配置、排队、监测、记录和互连等。
诸如UiPath Orchestrator TM(其在一些实施例中可以作为UiPathAutomationCloudTM的部分来提供,或者在驻地上、在VM中、在私有或公共云中、在LinuxTM VM中,或者作为经由UiPathAutomation Suite TM的云本地单个容器套件来提供)的指挥应用提供编排能力以部署,监测、优化、缩放和确保RPA机器人部署的安全性。测试套件(例如,UiPath TestSuiteTM)可以提供测试管理以监测所部署的自动化的质量。测试套件可以便于测试规划和执行,满足要求和缺陷可追溯性。测试套件可以包括综合测试报告。
分析软件(例如,UiPath Insights TM)可以跟踪,测量和管理部署的自动化的性能。分析软件可以将自动化操作与组织的特定关键性能指标(KPI)和战略结果对准。分析软件可以以仪表板格式呈现结果以供人类用户更好地理解。
例如,数据服务(例如,UiPath Data Service TM)可以被存储在数据库140中,并且利用拖放存储接口将数据带入单个可伸缩的安全位置。一些实施例可以向自动化提供低码或无码数据建模和存储,同时确保数据的无缝访问,企业级安全性和可扩展性。AI功能可以由AI中心(例如,UiPath AI CenterTM)提供,其有助于将AI/ML模型并入到自动化中。预构建的AI/ML模型,模型模板和各种部署选项可以使这样的功能甚至对于不是数据科学家的那些人也是可访问的。部署的自动化(例如,RPA机器人)可以从AI中心调用AI/ML模型,诸如AI/ML模型132。AI/ML模型的性能可以被监测,并且被训练和使用诸如由数据审查中心160提供的人工验证的数据来改进。人类审阅者可以通过计算系统154上的审阅应用152向核心超自动化系统120提供标记数据。例如,人类审阅者可以确认AI/ML模型132的预测是准确的或以其它方式提供校正。该动态输入然后可以被保存为用于再训练AI/ML模型132的训练数据,并且可以被存储在诸如数据库140的数据库中。然后,AI中心可以调度并且执行训练作业,以使用训练数据来训练AI/ML模型的新版本。正样本和负样本都可以被存储并且用于AI/ML模型132的再训练。
参与功能将人和自动化作为一个团队参与所需过程的无缝协作。可以构建低码应用(例如,经由UiPath Apps TM)以连接浏览器选项卡和遗留软件,即使在一些实施例中缺少API。例如,可以使用web浏览器通过拖放控制的丰富库来快速创建应用。应用可以连接到单个自动化或多个自动化。
动作中心(例如,UiPath Action Center TM)提供将过程从自动化切换到人类的直接并且有效的机制,反之亦然。人可以提供批准或升级,做出例外等。自动化然后可以执行给定工作流的自动功能。
可以提供本地助理作为用于用户启动自动化的启动垫(例如,UiPath AssistantTM)。该功能可以在例如由操作系统提供的托盘中提供,并且可以允许用户与他们的计算系统上的RPA机器人和RPA机器人供电的应用交互。界面可以列出被批准用于给定用户的自动化并且允许用户运行它们。这些可以包括来自自动化市场、自动化集线器中的内部自动化存储等的准备好的自动化。当自动化运行时,它们可以作为本地实例与计算系统上的其它进程并行地运行,使得用户可在自动化执行其动作时使用计算系统。在某些实施例中,助手与任务捕获功能集成,使得用户可以从助理启动垫记录他们即将自动化的过程。
聊天机器人(例如,UiPath ChatbotsTM)、社交消息应用、和/或语音命令可以使用户能够运行自动化。这可以简化对用户需要的信息、工具和资源的访问,以便与客户交互或执行其它活动。人们之间的对话可以容易地自动化,如同其它过程一样。以这种方式启动的触发器RPA机器人可以潜在地使用明语命令来执行诸如检查订单状态,在CRM中张贴数据等操作。
在一些实施例中,可以由超自动化系统100提供任何规模的自动化程序的端到端测量和管理。根据上文,可以采用分析来理解自动化的性能(例如,经由UiPathInsightsTM)。使用可用商业度量和操作洞察的任何组合的数据建模和分析可以用于各种自动化流程。定制设计和预构建的仪表板允许在期望的度量、待发现的新的分析见解、待跟踪的性能指标、待发现的用于自动化的ROI、待在用户计算系统上执行的遥测监测,待检测的错误和异常、以及待调试的自动化之间可视化数据。可以提供自动化管理控制台(例如,UiPath Automation OpsTM)以在整个自动化生命周期中管理自动化。组织可以管理自动化是如何构建的,用户可以对它们做什么,以及用户可以访问哪些自动化。
在一些实施例中,超自动化系统100提供迭代平台。可以发现流程,可以建立、测试和部署自动化,可以测量性能,可以容易地向用户提供自动化的使用,可以获得反馈,可以训练和重新训练AI/ML模型,并且可以重复该过程。这便于更稳健和有效的自动化套件。
图2是示出根据本发明实施例的RPA系统200的架构图。在一些实施例中,RPA系统200是图1的超自动化系统100的部分。RPA系统200包括允许开发者设计和实现工作流的设计器210。设计器210可以提供用于应用集成以及自动化第三方应用,管理信息技术(IT)任务和商业IT过程的解决方案。设计器210可以促进自动化项目的开发,自动化项目是商业过程的图形表示。简单地说,设计器210便于工作流和机器人的开发和部署。在一些实施例中,设计器210可以是在用户桌面上运行的应用,在VM中远程运行的应用,web应用等。
自动化项目通过给予开发者对执行次序的控制和在工作流中开发的定制步骤集之间的关系来实现基于规则的过程的自动化,所述工作流在本文中被定义为根据上文的“活动”。设计器210的实施例的一个商业实例是UiPath StudioTM。每个活动可包括诸如点击按钮、读取文件、写入日志面板等动作。在一些实施例中,工作流可被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可以特别适合于线性流程,使得能够在不混乱工作流的情况下从一个活动流向另一活动。流程图可以特别适用于更复杂的商业逻辑,使得能够通过多个分支逻辑运营方以更多样的方式集成决策和连接活动。FSM尤其适用于大型工作流。FSM可以在其执行中使用有限数目的状态,其由条件(即,转变)或活动触发。全局异常处理程序尤其适合于在遇到执行错误时确定工作流行为和调试过程。
一旦在设计器210中开发了工作流,就由指挥器220协调业务流程的执行,指挥器220协调执行在设计器210中开发的工作流的一个或多个机器人230。指挥器220的实施例的一个商业实例是UiPath OrchestratorTM。指挥器220有助于管理环境中的资源的创建,监测和部署。指挥器220可以充当与第三方解决方案和应用的集成点。如上所述,在一些实施例中,指挥器220可以是图1的核心超自动化系统120的部分。
指挥器220可以管理机器人230的群,从集中点连接和执行机器人230。可以被管理的机器人230的类型包括但不限于有人值守机器人232、无人值守机器人234、开发机器人(类似于无人值守机器人234,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人232,但用于开发和测试目的)。有人值守机器人232由用户事件触发,并且在同一计算系统上与人一起操作。有人值守机器人232可以与指挥器220一起用于集中过程部署和记录介质。有人值守机器人232可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,流程不能从这种类型的机器人上的指挥器220开始和/或它们不能在锁定的屏幕下运行。在某些实施例中,有人值守机器人232只能从机器人托盘或从命令提示启动。在一些实施例中,有人值守机器人232应当在人的监督下运行。
无人值守机器人234在虚拟环境中无人值守地运行并且可以使许多流程自动化。无人值守机器人234可以负责远程执行,监测,调度和提供对工作队列的支持。在一些实施例中,可以在设计器210中运行所有机器人类型的调试。有人值守和无人值守机器人都可以使各种系统和应用自动化,包括但不限于大型机,web应用,VM,企业应用(例如,由等产生的那些)和计算应用(例如,桌面和膝上型应用、移动设备应用、可穿戴计算机应用等)。
指挥器220可以具有各种能力,包括但不限于供应、部署、配置、排队、监测、记录和/或提供互连性。供应可以包括创建和机器人230和指挥器220(例如web应用)之间的连接。部署可以包括确保将包版本正确递送到所分配的机器人230以供执行。配置可以包括机器人环境和过程配置的维护和交付。排队可以包括提供对队列和队列项的管理。监测可以包括跟踪机器人标识数据并且维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,结构化查询语言(SQL)数据库或“不仅仅”SQL(NoSQL)数据库)和/或另一存储机制(例如,其提供存储和快速查询大数据集的能力)。指挥器220可以通过充当第三方解决方案和/或应用的集中式通信点来提供互连性。
机器人230是实现设计器210中构建的工作流的执行代理。(多个)机器人230的一些实施例的一个商业实例是UiPath RobotsTM。在一些实施例中,机器人230默认安装微软服务控制管理器(SCM)管理的服务。结果,这种机器人230可以在本地账户下打开交互式/>会话,并且具有/>服务的权限。
在一些实施例中,机器人230可以以用户模式安装。对于这种机器人230,这意味着它们具有与安装了给定机器人230的用户相同的权限。该特征还可用于高密度(HD)机器人,其确保每个机器在其最大潜力下的完全利用。在一些实施例中,可以在HD环境中配置任何类型的机器人230。
在一些实施例中,机器人230被分成多个部件,各自专用于特定的自动化任务。在一些实施例中,机器人部件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测会话,并且用作指挥器220和执行主机(即,其上执行机器人230的计算系统)之间的代理。这些服务受信任并且管理针对机器人230的凭证。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理和监测会话,并且作为指挥器220和执行主机之间的代理。用户模式机器人服务可信任并且管理机器人230的凭证。如果没有安装SCM管理的机器人服务,则可以自动启动/>应用。
执行器可以在会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每监测器每英寸点数(DPI)设置。代理可以是在托盘窗口中显示可用作业的演示基础(WPF)应用。代理可以是服务的客户端。代理可以请求开始或停止工作并且改变设置。命令行是服务的客户机。命令行是可请求启动作业并且等待其输出的控制台应用。
如上所述使机器人230的组件分开有助于开发者,支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行什么。可以用这种方式为每个组件配置特殊行为,例如为执行器和服务建立不同的防火墙规则。在一些实施例中,执行器可以总是知道每个监测器的DPI设置。结果,可以在任何DPI处执行工作流,而不管在其上创建工作流的计算系统的配置如何。在一些实施例中,来自设计器210的项目也可以独立于浏览器缩放级别。对于不知道DPI或有意标记为不知道的应用,在一些实施例中可以禁用DPI。
本实施例中的RPA系统200是超自动化系统的部分。开发者可以使用设计器210来构建和测试利用部署在核心超自动化系统240(例如,作为其AI中心的部分)中的AI/ML模型的RPA机器人。这样的RPA机器人可以发送用于执行(多个)AI/ML模型的输入并且经由核心超自动化系统240从其接收输出。
如上所述,一个或多个机器人230可以是监听器。这些监听器可以向核心超自动化系统240提供关于用户在使用其计算系统时正在做什么的信息。然后,该信息可以由核心超自动化系统用于流程挖掘、任务挖掘、任务捕获等。
可以在用户计算系统上提供助理/聊天机器人250以允许用户启动RPA本地机器人。例如,助手可以位于系统托盘中。聊天机器人可以具有用户界面,从而用户可以看到聊天机器人中的文本。备选地,聊天机器人可能缺少用户界面并且在后台运行,使用计算系统的麦克风收听用户语音。
在一些实施例中,数据标记可以由机器人正在其上执行的计算系统的用户或机器人向其提供信息的另一计算系统来执行。例如,如果机器人调用对VM用户的图像执行CV的AI/ML模型,但AI/ML模型没有正确地标识屏幕上的按钮,则用户可能在误标识或未标识的组件周围绘制矩形,并且可能提供具有正确标识的文本。该信息可以提供给核心超自动化系统240,然后在以后用于训练AI/ML模型的新版本。
图3是示出根据本发明实施例的部署的RPA系统300的架构图。在一些实施例中,RPA系统300可以是图2的RPA系统200和/或图1的超自动化系统100的部分。所部署的RPA系统300可以是基于云的系统、室内系统、基于桌面的系统,其提供用于不同计算过程的自动化的企业级,用户级或设备级自动化解决方案等。
应当注意,客户端侧,服务器侧或两者可以包括任何期望数目的计算系统,而不脱离本发明的范围。在客户端,机器人应用310包括执行器312,代理314和设计器316。然而,在一些实施例中,设计器316可以不在与执行器312和代理314相同的计算系统上运行。执行器312正在运行进程。如图3所示,几个商业项目可以同时运行。在该实施例中,代理314(例如,服务)是所有执行器312的单个接触点。本实施例中的所有消息都被记录到指挥器340中,指挥器340进一步通过数据库服务器350、AI/ML服务器360、索引器服务器370或其任意组合来处理它们。如上关于图2所述,执行器312可以是机器人组件。
在一些实施例中,机器人表示机器名和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互会话的计算(包括但不限于/>服务器2012)上,多个机器人可以同时运行,每个机器人使用唯一的用户名在单独的会话中运行。这在上面被称为HD机器人。
代理314还负责发送机器人的状态(例如,周期性地发送指示机器人仍在工作的“心跳”消息)并且下载要执行的包的所需版本。在一些实施例中,代理314与指挥器340之间的通信总是由代理314发起。在通知场景中,代理314可以打开websocket通道,稍后由指挥器340使用该websocket通道来向机器人发送命令(例如,开始,停止等)。
监听器330监测并且记录与用户与被维护的计算系统的交互和/或监听器330所驻留的未被维护的计算系统的操作有关的数据。监听器330可以是RPA机器人、操作系统的部分、用于相应计算系统的可下载应用,或任何其它软件和/或硬件,而不偏离本发明的范围。实际上,在一些实施例中,监听器的逻辑部分地或完全地经由物理硬件来实现。
在服务器侧,包括表示层(web应用342,开放数据协议(OData)代表状态传输(REST)应用编程接口(API)端点344,以及通知和监测346),服务层(API实现/业务逻辑348),以及持久性层(数据库服务器350,AI/ML服务器360,以及索引器服务器370)。指挥器340包括web应用342,OData REST API端点344,通知和监测346,以及API实现/业务逻辑348。在一些实施例中,用户在指挥器340的接口中(例如,经由浏览器320)执行的大多数动作是通过调用各种API来执行的。在不脱离本发明的范围的情况下,这样的动作可以包括但不限于在机器人上启动作业,在队列中添加/移除数据,调度作业以无人看管地运行等。Web应用342是服务器平台的可视层。在该实施例中,web应用342使用超文本标记语言(HTML)和JavaScript(JS)。然而,可以使用任何期望的标记语言,脚本语言或任何期望的标记语言、脚本语言或任何其它格式。在该实施例中,用户经由浏览器320与来自web应用342的网页交互,以便执行控制指挥器340的各种动作。例如,用户可以创建机器人组、将包分配给机器人、分析每个机器人和/或每个过程的日志、启动和停止机器人等。
除了web应用342之外,指挥器340还包括暴露OData REST API端点344的服务层。然而,可以包括其他端点而不偏离本发明的范围。REST API由web应用342和代理314两者使用。代理314在该实施例中是客户端计算机上的一个或多个机器人的管理程序。
本实施例中的REST API包括配置、日志记录、监测和排队功能。在一些实施例中,配置端点可用于定义和配置应用用户、许可、机器人、资产、发布和环境。日志记录REST端点可用于记录不同的信息,例如错误、由机器人发送的显式消息,以及其它环境特定信息。部署REST端点可以由机器人用来查询如果在指挥器340中使用开始作业命令则应当执行的封装版本。对REST端点进行排队可负责队列和队列项管理,诸如将数据添加到队列、从队列获得事务、设置事务的状态等。
监测REST端点可以监测web应用342和代理314。通知和监测API 346可以是REST端点,其用于注册代理314、向代理314递送配置设置、以及用于从服务器和代理314发送/接收通知。在一些实施例中,通知和监测API 346还可以使用WebSocket通信。
在一些实施例中,可以通过适当的API访问路径的配置来访问服务层中的API,例如,基于指挥器340和整个超自动化系统是具有室内部署类型还是基于云的部署类型。用于指挥器340的API可以提供用于查询关于在指挥器340中注册的各种实体的状态的定制方法。在一些实施例中,每个逻辑资源可以是OData实体。在这样的实体中,诸如机器人、进程、队列等的组件可以具有属性、关系和操作。在一些实施例中,指挥器340的API可以由web应用342和/或代理314以两种方式来消费:通过从指挥器340获得API访问信息、或通过注册外部应用来使用OAuth流。
在该实施例中,持久性层包括三个服务器——数据库服务器350(例如SQL服务器)、AI/ML服务器360(例如提供AI/ML模型服务的服务器,诸如AI中心功能)和索引器服务器370。在该实施例中,数据库服务器350存储机器人、机器人组、相关联的流程、用户、角色、时间表等的配置。在一些实施例中,通过web应用342来管理该信息。数据库服务器350可以管理队列和队列项。在一些实施例中,数据库服务器350可以存储由机器人记录的消息(除了索引器服务器370之外或代替索引器服务器370)。例如,数据库服务器350还可以存储从安装在客户端侧的监听器330接收的进程挖掘、任务挖掘和/或任务捕获相关数据。虽然在监听器330和数据库350之间没有示出箭头,但是应当理解,在一些实施例中,监听器330能够与数据库350通信,反之亦然。该数据可以以PDD、图像、XAML件等形式存储。监听器330可被配置为截取监听器330所驻留的相应计算系统上的用户动作、流程、任务和性能度量。例如,监听器330可以在其各自的计算系统上记录用户动作(例如,点击、键入字符、位置、应用、活动元素、时间等),然后将这些转换成适当的格式以提供给数据库服务器350并将其存储在数据库服务器350中。
AI/ML服务器360便于将AI/ML模型结合到自动化中。预构建的AI/ML模型、模型模板和各种部署选项可以使这样的功能甚至对于不是数据科学家的那些人也是可访问的。所部署的自动化(例如,RPA机器人)可以从AI/ML服务器360调用AI/ML模型。AI/ML模型的性能可以被监测,并使用人工验证的数据被训练和改进。AI/ML服务器360可以调度和执行训练作业以训练AI/ML模型的新版本。
AI/ML服务器360可以存储与AI/ML模型和ML程序包有关的数据,用于在开发时配置用户的各种ML技能。如这里所使用的,ML技能是用于流程的预先建立和训练的ML模型,其例如可以由自动化使用。AI/ML服务器360还可以存储与用于各种AI/ML能力的文档理解技术和框架、算法和软件包有关的数据,AI/ML能力包括但不限于意图分析、自然语言处理(NLP)、语音分析、不同类型的AI/ML模型等。
在一些实施例中可选的索引器服务器370存储并索引由机器人记录的信息。在某些实施例中,可以通过配置设置来禁用索引器服务器370。在一些实施例中,索引器服务器370使用其是开源项目全文搜索引擎。由机器人记录的消息(例如,使用如日志消息或写入线的活动)可通过记录(多个)REST端点发送到索引器服务器370,在索引器服务器370处对它们进行索引以供将来使用。
图4是示出根据本发明实施例的设计器410,活动420、430、440、450、驱动程序460、API 470和AI/ML模型480之间的关系400的结构图。如上所述,开发者使用设计器410来开发由机器人执行的工作流。在一些实施例中,可以向开发者显示各种类型的活动。设计器410对于用户的计算系统可以是本地的或远程的(例如,经由VM或与远程web服务器交互的本地web浏览器来访问)。工作流可以包括用户定义的活动420、API驱动的活动430、AI/ML活动440和/或UI自动化活动450。用户定义的活动420和API驱动的活动440经由它们的API与应用交互。在一些实施例中,用户定义的活动420和/或AI/ML活动440可以调用一个或多个AI/ML模型480,这些AI/ML模型480可以位于机器人正在其上操作的计算系统的本地和/或远程。
一些实施例能够识别图像中的非文本视觉成分,在此称为CV。CV可以至少部分地由(多个)AI/ML模型480执行。与这些组件有关的一些CV活动可以包括但不限于使用OCR从分段标签数据中提取文本、模糊文本匹配、使用ML剪切分段标签数据、将标签数据中提取的文本与基准真值数据进行比较等。在一些实施例中,可以在用户定义的活动420中实现数百甚至数千个活动。然而,在不脱离本发明的范围的情况下,可以使用任何数量和/或类型的活动。
UI自动化活动450是以低级代码编写并便于与屏幕交互的特殊低级活动的子集。UI自动化活动450通过允许机器人与所需软件交互的驱动程序460来促进这些交互。例如,驱动程序460可包括操作系统(OS)驱动程序462、浏览器驱动程序464、VM驱动程序466、企业应用驱动程序468等。在一些实施例中,UI自动化活动450可使用AI/ML模型480中的一个或多个来执行与计算系统的交互。在某些实施例中,AI/ML模型480可以增加驱动程序460或完全替换它们。实际上,在某些实施例中,不包括驱动程序460。
驱动程序460可以经由OS驱动程序462在查找挂钩、监测密钥等的低级与OS交互。驱动程序460可促进与 等的集成。例如,“点击”活动通过驱动程序460在这些不同的应用中执行相同的角色。
图5是示出根据本发明实施例的被配置为开发和/或部署用于RPA的多平台自动化的计算系统的架构图。在一些实施例中,计算系统500可以是在此描绘和/或描述的一个或多个计算系统。在某些实施例中,计算系统500可以是诸如图1和图2所示的超自动化系统的一部分。计算系统500包括总线505或用于传送信息的其它通信机制,以及耦合到总线505用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯诺依曼计算架构的典型组件。
计算系统500还包括用于存储将由(多个)处理器510执行的信息和指令的存储器515。存储器515可由随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、高速缓冲存储器,例如磁盘或光盘的静态存储装置或任何其它类型的非暂态计算机可读介质或其组合的任何组合组成。非暂态计算机可读介质可以是可由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移动的、不可移动的或两者。
另外,计算系统500包括诸如收发器的通信设备520,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、LTE高级(LTE-A)、802.11x、wi-fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭节点B(hnb)、蓝牙、射频标识(RFID)、红外数据关联(Irda)、近场通信(NFC)、第五代、新无线电(NR)、任何其组合、和/或任何其它当前存在的或将来实现的通信标准和/或协议,而不脱离本发明的范围。在一些实施例中,通信设备520可以包括一个或多个天线,这些天线是单个的、阵列的、相控的、切换的、波束成形的、波束控制的、它们的组合、和/或任何其他天线配置,而不偏离本发明的范围。
(多个)处理器510还经由总线505耦合到显示器525,例如等离子体显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性衬底显示器、投影显示器、4K显示器、高清晰度显示器、视网膜显示器、平面内切换(IPS)显示器或用于向用户显示信息的任何其它合适的显示器。显示器525可以被配置为使用电阻、电容、表面声波(SAW)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多点触摸显示器等。可以使用任何合适的显示设备和触觉I/O而不脱离本发明的范围。
键盘530和诸如计算机鼠标、触摸板等光标控制设备535还耦合到总线505,以使用户能够与计算系统500接口。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。输入设备的任何类型和组合可以用作设计选择的问题。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统远程地与计算系统500交互,或者计算系统500可以自主地操作。
存储器515存储在由(多个)处理器510执行时提供功能的软件模块。这些模块包括用于计算系统500的操作系统540(例如,第一操作系统)。这些模块还包括多平台自动化模块545,该模块被配置为执行在此描述的所有或部分流程或其衍生流程。计算系统500可包括一个或多个包括附加功能的附加功能模块550。
本领域的技术人员将理解,“计算系统”可被实现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任何其它合适的计算设备或设备的组合,而不脱离本发明的范围。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式实现,包括云计算系统。计算系统可以是局域网(LAN)、移动通信网络、卫星通信网络、因特网、公共云或专用云、混合云、服务器场、其任何组合等的一部分或可由其访问。可以使用任何本地化或分布式架构而不偏离本发明的范围。
应当注意,在本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以实现为包括定制的超大规模集成(VLSI)电路或门阵列的硬件电路,诸如逻辑芯片、晶体管或其它分立元件的现成半导体。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
模块还可以至少部分地以由各种类型的处理器执行的软件来实现。可执行代码的标识单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、流程或函数。然而,所标识的模块的可执行程序不必物理地位于一起,而是可以包括存储在不同位置中的完全不同的指令,完全不同的指令在逻辑地结合在一起时包括模块并实现模块的目的。此外,可以将模块存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这种非暂态计算机可读介质,而不脱离本发明的范围。
实际上,可执行代码模块可以是单条指令或多条指令,并且甚至可以分布在几个不同的代码段上、不同的程序之间、以及跨越几个存储设备。类似地,操作数据可以在本文中在模块内被标识和示出,并且可以以任何合适的形式被具体化并被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为电信号存在于系统或网络上。
再次参考图1,每个用户计算系统102、104、106具有在其上运行的相应的自动化流程110、112、114,并且可以在这些计算系统之间部署多个操作系统(例如,AndroidTM、Google ChromTM等)。这些计算系统中的一个或多个可能能够运行多个不同的和/或唯一的操作系统本身。此外,每个计算系统110、112、114还可以包括不同的和/或唯一的一组硬件配置(例如,键盘、监测器、触摸屏、(多个)相机等),每个定义或要求一组硬件命令。另外,计算系统110、112、114中的一个或多个的(多个)操作系统和/或(多个)应用可包括用于利用由(多个)操作系统和/或(多个)应用提供的功能的一组API。类似地,在RPA设计流程期间,RPA开发设施150的RPA开发者可利用其中可具有多个操作系统的计算系统152,诸如上述那些。
如图6所示,计算系统500可以执行600的框,用于自动配置自动化流程110、112、114(例如,自动化)以将根据第一操作系统(例如,)设计的自动化无缝地配置或重新配置为被设计为在第二操作系统(例如,/>)内执行或与第二操作系统(例如,)协同执行的重新配置的自动化的方法。例如,在方法600的框610中,计算系统或服务器500可为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、应用编程接口(API)调用(统称为“OS专用指令”)、或其任何组合的操作系统级选项,以用于RPA工作流的活动。在一些实施例中,操作系统级选项可包括在两个或更多个不同操作系统之间映射和/或可映射的重新格式化的、等效的、替代的、转换的和/或建议的OS专用指令。例如,在一些实施例中,服务器可以访问包括或包含一组操作系统级选项的本地数据库、远程数据库、网络服务器或git储存库,操作系统级选项提供将至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合功能等效和/或无缝地集成到自动化中。
作为示例,RPA开发者可在设计和测试自动化中使用操作系统,该操作系统旨在用于在诸如/>或/>OS等第二不同操作系统上运行的用户计算系统102、104、106上。因此,当开发者经由计算系统500设计自动化时,计算系统500可直接或间接地通过自动化本身来配置自动化以确定第二操作系统(例如,此示例中的非/>操作系统),将必要的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合替换到自动化中,且配置和/或使自动化在执行与活动相关联的一个或多个动作时利用所确定的(第二)操作系统。
通常,在一些实施例中,计算系统500配置要在操作系统会话、虚拟机(VM)、容器或其任何组合中执行的自动化,而不管RPA机器人在操作系统会话、VM或容器中的哪一者执行自动化。此外,在一些实施例中,计算系统500可以将自动化配置成由RPA机器人在运行时远程地执行,例如,在利用来自计算系统500和/或设计器计算系统152的第二、唯一或不同操作系统的用户计算系统102、104、106中的一者上。
如图7所示,在一些实施例中,计算系统500可执行方法600的框630,通过将针对多个操作系统中的第一操作系统的至少一个硬件级命令、驱动程序级命令、API调用、或其组合自动转换为针对多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。在某些实施例中,计算系统500可执行方法600的框640,通过在UI对象存储库中查找与针对第一操作系统的至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
如上所述,计算系统500可以托管或访问数据库或服务器中的UI对象库,其包括与各种操作系统的相应硬件级命令、驱动程序级命令和/或API调用相匹配的查找表、矩阵或数据集中的一个或多个,这些操作系统包括但不限于至少上述操作系统。在实施例的其他变型中,UI对象库可以包括跨针对多个操作系统的至少一个硬件级命令、驱动程序级命令、API调用、或其组合映射功能集合的功能库。有利地,通过对各种操作系统的硬件级命令、驱动程序级命令和/或API调用的功能方面进行分类、匹配和/或映射,方法600可以向自动化的设计器和用户提供无缝且统一的用户体验。也就是说,当计算系统500基于功能(而不是例如语法)映射和/或匹配不同的硬件级命令、驱动程序级命令和/或API调用时,开发者和用户都被提供有跨各种操作系统平台的无缝且统一的开发者体验和用户体验,而不必手动地将非本地硬件级命令、驱动程序级命令和/或API调用转换、映射和调试到新的操作系统中以用于由自动化执行。
如图8所示,在各实施例的另一变型中,计算系统500可通过确定与针对第一操作系统的至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合之间的功能相似性来执行方法600的框650。例如,功能库可以包括各种硬件级命令、驱动程序级命令和/或API调用,它们由终端功能和预期的开发者体验和/或用户体验来进行分类。因此,各种操作系统中的硬件级命令、驱动程序级命令和/或API调用中的每一者可根据功能来组织和/或制表(tabulate),使得计算系统500可检测或确定各种操作系统中的任一者的重叠、匹配、并发或替换硬件级命令、驱动程序级命令和/或API调用。
如图8所示,在各实施例的另一变型中,计算系统500然后可通过基于其相应的功能相似性为第二操作系统选择与针对第一操作系统的至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合来执行该方法的框660。在实施例的一些变型中,功能相似性可包括由在用户计算系统102、104、106和/或开发者计算机系统152上操作的自动化执行的动作、事件和/或结果之间的相似性或同一性(identity)。
如图9所示,计算系统500可通过在自动化中利用针对多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合自动替换针对多个操作系统中的第一操作系统的至少一个硬件级命令、驱动程序级命令、API调用、或其组合来执行方法600的框670。在执行框670中,例如,计算系统500可以:(1)对开发自动化的硬件级命令、驱动程序级命令和/或API调用的底层集合进行扫描;(2)将标识出的硬件级命令、驱动程序级命令和/或API调用与UI对象库和/或功能库中功能相同或功能相似的硬件级命令、驱动程序级命令和/或API调用进行比较;(3)移除第一操作系统本地的任何硬件级命令、驱动程序级命令和/或API调用;和/或(4)将第二(运行时)操作系统本地的功能上等效的硬件级命令、驱动程序级命令和/或API调用插入到自动化中。
在成功替换后,计算系统500随后可通过在本文所述(多个)类型的(多个)用户计算系统102、104、106上呈现、部署和/或提供对自动化的访问来执行方法600的框680。此外,计算系统500可以在其各种实施例中执行方法600,以使单个自动化在多个用户计算系统102、104、106上并行地运行,并且将自动化和替换存储在各种硬件级命令、驱动程序级命令和/或API调用中,以用于在企业组织内和跨企业组织的多组用户计算系统102、104、106上的稍后访问、替换和部署,多组用户计算系统102、104、106在所使用的操作系统的类型中通常具有大的变化。
如上所述,方法600的各实施例可用于在(多个)开发者计算机系统152和用户计算系统102、104、106两者处提供无缝设计器和/或用户体验。即,从自动化的开发者和用户两者的观点来看,计算系统500可以执行方法600的块,以自动地转换、替换和引起自动化在不是开发者和/或计算系统500本身本地的操作系统上的执行。例如,计算系统500、开发者计算系统152和相应用户计算系统102、104、106中的每一个可以包括可用操作系统的任何组合或子组合,至少包括上面针对桌面计算、移动计算和基于服务器/云的计算系统所提到的那些示例。
例如,从用户计算系统102、104、106的角度来看,计算系统500可以确定RPA机器人正在其上运行的多个操作系统中的操作系统,并且在执行与RPA工作流相关联的自动化期间执行与RPA机器人的RPA工作流的活动相关联的一个或多个动作。一个或多个动作可以包括所确定的操作系统本地的硬件级命令、驱动程序级命令、API调用或其任何组合。在一些实施例中,该一个或多个动作被无缝地执行,而不管RPA机器人正在多个操作系统中的哪一个上运行。
此外,从用户计算系统102、104、106的角度来看,所确定的操作系统本地的硬件级命令、驱动程序级命令、API调用或其任何组合对于多个操作系统中的至少两个在功能上可以不同,以实现与RPA工作流的活动相关联的相同的一个或多个动作。如上所述,在一些实施例中,计算系统500可存储和/或访问在功能上类似或功能上等效的硬件级命令、驱动程序级命令和/或API调用,跨可部署在本文所述的各种类型的计算系统中的任何计算系统上的一系列操作系统。
根据本发明的实施例,图6-图9中执行的处理步骤可以由计算机程序来执行,该计算机程序对用于(多个)处理器的指令进行编码以执行图6-图9中描述的(多个)处理的至少一部分。该计算机程序可以包含在非瞬态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其它这种介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图6-图9中描述的处理步骤的全部或部分的编码指令,其也可以存储在计算机可读介质上。
计算机程序可以用硬件、软件或混合实现来实现。计算机程序可以由彼此可操作地通信的模块组成,这些模块被设计成将信息或指令传递到显示器。计算机程序可以被配置为在通用计算机,ASIC或任何其他合适的设备上操作。
容易理解的是,本发明的各个实施例的部件,如在这里的附图中一般地描述和示出的,可以以各种各样的不同配置来布置和设计。因此,附图中所示的本发明实施例的详细描述并不旨在限制所要求保护的本发明的范围,而仅仅是本发明的所选实施例的代表。
贯穿本说明书描述的本发明的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。例如,在整个说明书中对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现不一定都指相同组的实施例,并且所描述的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。
应当注意,在整个说明书中对特征、优点或类似语言的引用并不意味着可以用本发明实现的所有特征和优点应当是或处于本发明的任何单个实施例中。相反,提及特征和优点的语言应理解为意指结合实施例描述的特定特征、优点或特性包括在本发明的至少一个实施例中。因此,在整个说明书中对特征和优点以及类似语言的讨论可以但不一定涉及相同的实施例。
此外,本发明的所述特征、优点和特性可以以任何合适的方式组合在一个或多个实施例中。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实践本发明。在其它情况下,在某些实施例中可认识到可能不存在于本发明的所有实施例中的额外特征和优点。
本领域的普通技术人员将容易理解,如上所述的本发明可以用不同顺序的步骤和/或用与所公开的配置不同的配置中的硬件元件来实现。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域技术人员显而易见的是,在保持在本发明的精神和范围内的同时,某些修改、变化和替代构造将是显而易见的。因此,为了确定本发明的界限和范围,应参考所附权利要求。
Claims (24)
1.一种非暂态计算机可读介质,存储用于机器人流程自动化RPA设计器应用的计算机程序,所述计算机程序被配置为使至少一个处理器:
为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、应用编程接口API调用、或其任何组合的操作系统级选项,以用于RPA工作流的活动;以及
将与所述RPA工作流相关联的自动化配置为:
确定操作系统,RPA机器人在运行时在所述操作系统上正在执行所述自动化,以及
在执行与所述活动相关联的一个或多个动作时,利用针对所确定的所述操作系统的所述操作系统级选项。
2.根据权利要求1所述的非暂态计算机可读介质,其中所述自动化被配置为在操作系统会话、虚拟机VM、或容器中的任意一者中被执行,而不管所述RPA机器人在所述操作系统会话、所述VM、或所述容器中的哪一者中执行所述自动化。
3.根据权利要求1所述的非暂态计算机可读介质,其中所述自动化被配置为由所述RPA机器人在运行时远程执行。
4.根据权利要求1所述的非暂态计算机可读介质,其中所述计算机程序被还被配置为使所述至少一个处理器:
将针对所述多个操作系统中的第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合自动转换为针对所述多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
5.根据权利要求4所述的非暂态计算机可读介质,其中所述自动转换包括:在储存库中查找与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对所述第二操作系统的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
6.根据权利要求5所述的非暂态计算机可读介质,其中所述储存库包括跨针对所述多个操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合映射功能集合的功能库。
7.根据权利要求6的非暂态计算机可读介质,其中所述自动转换包括:
确定与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对所述第二操作系统的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合之间的功能相似性;以及
基于所述功能相似性,为所述第二操作系统选择与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
8.根据权利要求1的非暂态计算机可读介质,其中所述计算机程序被还被配置为使所述至少一个处理器:
在所述自动化中利用针对所述多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合来自动替换针对所述多个操作系统中的第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合。
9.一种计算系统,包括:
存储器,存储计算机程序指令;以及
至少一个处理器,被配置为执行所述计算机程序指令,其中所述计算机程序指令被配置为使所述至少一个处理器:
为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、应用编程接口API调用、或其任何组合的操作系统级选项,以用于RPA工作流的活动;以及
将与所述RPA工作流相关联的自动化配置为:
确定操作系统,RPA机器人在运行时在所述操作系统上正在执行所述自动化,以及
在执行与所述活动相关联的一个或多个动作时,利用针对所确定的所述操作系统的所述操作系统级选项。
10.根据权利要求9所述的计算系统,其中所述自动化被配置为在操作系统会话、虚拟机VM、或容器中的任意一者中被执行,而不管所述RPA机器人在所述操作系统会话、所述VM、或所述容器中的哪一者中执行所述自动化。
11.根据权利要求9所述的计算系统,其中所述自动化被配置为由所述RPA机器人在运行时远程执行。
12.根据权利要求9的计算系统,其中所述计算机程序被还被配置为使所述至少一个处理器:
将针对所述多个操作系统中的第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合自动转换为针对所述多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
13.根据权利要求12所述的计算系统,其中所述自动转换包括:在储存库中查找与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对所述第二操作系统的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
14.根据权利要求13所述的计算系统,其中所述储存库包括跨针对所述多个操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合映射功能集合的功能库。
15.根据权利要求14所述的计算系统,其中所述自动转换包括:
确定与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对所述第二操作系统的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合之间的功能相似性;以及
基于所述功能相似性,为所述第二操作系统选择与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
16.根据权利要求9的计算系统,其中所述计算机程序被还被配置为使所述至少一个处理器:
在所述自动化中利用针对所述多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合来自动替换针对所述多个操作系统中的第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合。
17.一种计算机实现的方法,包括:
由计算系统,为多个操作系统指定针对至少一个硬件级命令、驱动程序级命令、应用编程接口API调用、或其任何组合的操作系统级选项,以用于RPA工作流的活动;以及
由所述计算系统,将与所述RPA工作流相关联的自动化配置为:
确定操作系统,RPA机器人在运行时在所述操作系统上正在执行所述自动化,以及
在执行与所述活动相关联的一个或多个动作时,利用针对所确定的所述操作系统的所述操作系统级选项。
18.根据权利要求17所述的计算机实现的方法,其中所述自动化被配置为在操作系统会话、虚拟机VM、或容器中的任意一者中被执行,而不管所述RPA机器人在所述操作系统会话、所述VM、或所述容器中的哪一者中执行所述自动化。
19.根据权利要求17所述的计算机实现的方法,其中所述自动化被配置为由所述RPA机器人在运行时远程执行。
20.根据权利要求17所述的计算机实现的方法,还包括:
由所述计算系统,将针对所述多个操作系统中的第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合自动转换为针对所述多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
21.根据权利要求20所述的计算机实现的方法,其中所述自动转换包括:
在储存库中查找与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对所述第二操作系统的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
22.根据权利要求21所述的计算机实现的方法,其中所述UI对象库包括跨针对所述多个操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合映射功能集合的功能库。
23.根据权利要求22所述的计算机实现的方法,其中所述自动转换包括:
确定与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的针对所述第二操作系统的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合之间的功能相似性;以及
基于所述功能相似性,为所述第二操作系统选择与针对所述第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合相对应的所述至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合。
24.根据权利要求17所述的计算机实现的方法,还包括:
由所述计算系统,在所述自动化中利用针对所述多个操作系统中的第二操作系统的至少一个相应硬件级命令、驱动程序级命令、API调用、或其组合来自动替换针对所述多个操作系统中的第一操作系统的所述至少一个硬件级命令、驱动程序级命令、API调用、或其组合;以及
在另一计算系统上部署所述自动化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/725,270 US20230339102A1 (en) | 2022-04-20 | 2022-04-20 | System, apparatus, and method for deploying robotic process automations across multiple operating systems |
US17/725,270 | 2022-04-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909763A true CN116909763A (zh) | 2023-10-20 |
Family
ID=86282244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310428823.3A Pending CN116909763A (zh) | 2022-04-20 | 2023-04-20 | 部署机器人流程自动化的系统、装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230339102A1 (zh) |
EP (1) | EP4266172A1 (zh) |
JP (1) | JP2023159886A (zh) |
CN (1) | CN116909763A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113095B2 (en) * | 2019-04-30 | 2021-09-07 | Automation Anywhere, Inc. | Robotic process automation system with separate platform, bot and command class loaders |
US10860905B1 (en) | 2019-10-16 | 2020-12-08 | UiPath, Inc. | Long running workflows for document processing using robotic process automation |
US11733668B2 (en) | 2020-07-09 | 2023-08-22 | UiPath, Inc. | Robot access control and governance for robotic process automation |
-
2022
- 2022-04-20 US US17/725,270 patent/US20230339102A1/en active Pending
-
2023
- 2023-04-20 CN CN202310428823.3A patent/CN116909763A/zh active Pending
- 2023-04-20 JP JP2023069018A patent/JP2023159886A/ja active Pending
- 2023-04-20 EP EP23168943.1A patent/EP4266172A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230339102A1 (en) | 2023-10-26 |
EP4266172A1 (en) | 2023-10-25 |
JP2023159886A (ja) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11648686B2 (en) | Artificial intelligence-based process identification, extraction, and automation for robotic process automation | |
KR102453990B1 (ko) | 인공 지능(ai)을 사용한 미디어 대 워크플로우 생성 | |
JP2022552465A (ja) | ロボティック・プロセス・オートメーションのためのヒューマンインザループ・ロボット・トレーニング | |
US11919165B2 (en) | Process evolution for robotic process automation and workflow micro-optimization | |
JP2023516846A (ja) | ロボティックプロセスオートメーション(rpa)のテスト自動化ワークフローを解析するシステムおよびコンピュータ実装方法 | |
KR102412237B1 (ko) | 로봇 프로세스 자동화를 위한 테스트 자동화 | |
CN112771514A (zh) | 用于机器人流程自动化的文档处理框架 | |
US11836626B2 (en) | Artificial intelligence layer-based process extraction for robotic process automation | |
CN116324831A (zh) | 经由人工智能/机器学习的机器人过程自动化异常检测和自我修复 | |
CN114585480A (zh) | 用于机器人流程自动化的自动分析、优先化和机器人生成 | |
EP3809347A1 (en) | Media-to-workflow generation using artificial intelligence (ai) | |
CN116529032A (zh) | 用于机器人流程自动化(rpa)的支持机器人的任务自动化 | |
CN116391174A (zh) | 使用计算机视觉来训练人工智能/机器学习模型以识别应用、屏幕和用户界面元素 | |
US11593709B2 (en) | Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows | |
US20230236851A1 (en) | Multi-session automation windows for robotic process automation using same credentials | |
US20230339102A1 (en) | System, apparatus, and method for deploying robotic process automations across multiple operating systems | |
CN114127696A (zh) | 用于机器人过程自动化的测试自动化 | |
CN113168169A (zh) | 用于机器人过程自动化的测试自动化 | |
US20230236855A1 (en) | Automation windows for robotic process automation using multiple desktops | |
US20240142917A1 (en) | Semantic automation builder for robotic process automation | |
JP2024065102A (ja) | ロボットプロセス自動化のためのセマンティック自動化ビルダー |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |