针对机器人流程自动化(RPA)机器人的会话间自动化的制作方法

文档序号:31949632发布日期:2022-10-26 07:31阅读:142来源:国知局
针对机器人流程自动化(RPA)机器人的会话间自动化的制作方法
针对机器人流程自动化(rpa)机器人的会话间自动化
1.相关申请的交叉引用
2.本技术要求于2020年5月13日提交的第15/930,906号美国非临时专利申请的权益,该申请是2020年2月18日提交的美国非临时专利申请第16/793,064号的部分延续(cip)并要求其利益。这些较早提交的申请的技术方案通过引用以其整体并入本文。
技术领域
3.本发明总体上涉及机器人流程自动化(rpa),并且更具体地涉及针对rpa机器人的会话间自动化。


背景技术:

4.有人值守的自动化rpa机器人典型地与用户在相同的会话中运行在由用户操作的计算系统上。例如,有人值守的rpa机器人可在用户的命令下与用户一起工作以完成某些任务。然而,在有人值守的自动化场景中,rpa机器人可能“接管”用户的计算系统。用户可能希望在机器人与计算系统交互时执行其他活动,但是用户被阻止这样做。换言之,机器人通过用户界面(ui)以与用户相同的方式(例如,模拟鼠标点击和键盘输入)控制应用。
5.存在创建操作系统或运行在其上的应用的完全或部分副本的各种技术。仿真器已经存在了数十年并且可为开发者提供测试并调试应用的能力。例如,仿真器可为开发者提供测试并调试使用不支持直接运行开发工具的操作系统的移动应用的能力。和两者均提供了可从开发机器运行以测试并调试或应用的仿真器,因为开发者工具不能本机运行在那些移动操作系统上。
6.模拟器允许开发者在他或她的本地机器上托管窗口,该窗口允许难以或不可能在开发机器上执行的应用的开发者测试和调试行为。例如,模拟器允许开发者点击按钮以旋转模拟器,其告诉运行在模拟器内部的应用设备已经出于测试并调试对这些事件做出响应的应用行为的目的而被旋转。另一常见示例是多触摸。许多开发者机器不支持触摸,因此模拟器使开发者测试并调试应用如何对多个触摸点做出响应。和仿真器还提供模拟能力。另外,提供用于它们的通用windows平台(uwp)应用的模拟器。
7.虚拟机在机器上托管第二操作系统并且能够通过窗口被打开和监测。这运行完全不同的操作系统并与托管机器共享硬件。“游客”机器必须安装有它自己的应用的副本并且不与用户机器共享公共资源或文件。
8.容器在概念上是虚拟机的混合形式。需要被执行的所有应用被封装成直接执行在主机操作系统上的不可变封装。封装不是另一操作系统的完整副本,但是其默认不共享或能够访问托管机器上的应用或资源中的任何。因此,从用户体验角度,容器感觉类似于虚拟机,但是在技术上,容器不执行在完全分离的操作系统上。
9.然而,常规仿真器、模拟器、虚拟机(vm)和提供操作系统(os) 层虚拟化(例如,
容器)的混合vm不解决在有人值守的自动化机器人作为用户在相同的计算系统上操作的情况下出现的问题。因此,用户基本上变成针对他或她自己的计算系统的旁观者,观看机器人工作而不能与机器上的要求用户交互的其他应用交互。因此,一种改进的方法可为有益的。


技术实现要素:

10.本发明的某些实施例可提供本领域中尚未通过当前rpa技术完全标识、认识到或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及针对rpa机器人的会话间自动化。
11.在一个实施例中,计算机实现的方法包括在用户会话中启动用户会话过程,并且在第一客户端会话中启动第一客户端会话rpa机器人。计算机实现的方法还包括由第一客户端会话rpa机器人在第一客户端会话中执行第一客户端会话rpa机器人的工作流,并且由第一客户端会话rpa机器人使第一客户端会话机器人的工作流的执行的结果可用于用户会话过程。计算机实现的方法还包括由用户会话过程使用第一客户端会话rpa机器人的工作流的执行的结果与用户会话中的应用交互。
12.在另一个实施例中,一种计算机实现的方法包括由客户端会话 rpa机器人在客户端会话中执行客户端会话rpb机器人的工作流,并且由客户端会话rpa机器人使客户端会话rpa机器人的工作流的执行的结果可用于用户会话rpa机器人。计算机实现的方法还包括由用户会话rpa机器人使用客户端会话rpa机器人的工作流的执行的结果与计算系统上的应用交互。
13.在又一实施例中,一种计算机实现的方法包括由客户端会话rpa 机器人在客户端会话中执行客户端会话rpb机器人的工作流,并且由客户端会话rpa机器人使客户端会话rpa机器人的工作流的执行的结果可用于用户会话rpa机器人。计算机实现的方法还包括由用户会话rpa机器人使用客户端会话rpa机器人的工作流的执行的结果与计算系统上的应用交互。用户会话rpa机器人和客户端会话rpa 机器人共同完成包括客户端会话rpb机器人的工作流的更大的工作流的执行。
附图说明
14.为了本发明的某些实施例的优点将被容易理解,以上简单描述的本发明的更具体的描述将通过参考在附图中图示的特定实施例来呈现。尽管应当理解这些附图仅仅描绘本发明的典型实施例并且因此不被认为是对其范围的限制,但是本发明利用在对附图的使用中的附加的特异性和细节来描述并解释,在附图中:
15.图1是图示根据本发明的实施例的机器人流程自动化(rpa)系统的架构图。
16.图2是图示根据本发明的实施例的部署的rpa系统的架构图。
17.图3是图示根据本发明的实施例的设计器、活动以及驱动程序之间的关系的架构图。
18.图4是图示根据本发明的实施例的rpa系统的架构图。
19.图5是图示根据本发明的实施例的被配置为促进针对rpa机器人的会话间自动化的计算系统的架构图。
20.图6图示了根据本发明的实施例的由用户在用户会话中以及由 rpa机器人在机器人会话中访问的用户计算系统的一些应用和文件系统。
21.图7a-j是图示根据本发明的实施例的使用在客户端会话中运行的rpa机器人和在用户会话中运行的用户会话机器人或另一应用或过程来完成用户会话中的表单的示例的屏幕截图。
22.图8是图示根据本发明的实施例的会话间自动化的过程的流程图。
23.图9是图示根据本发明的实施例的会话间自动化过程的流程图,其中一个机器人在用户会话中运行,而另一个机器人在客户端会话中运行。
24.图10图示了根据本发明的实施例的场景,在该场景中工作流的一部分由用户会话机器人完成而工作流的其他部分由客户端会话机器人完成。
25.图11是图示根据本发明的实施例的用户会话机器人u1与一对客户端会话机器人c1和c2之间的多机器人集合工作流的执行的流程图。
26.除非另行指示,相似的附图标记表示贯穿附图一致的对应特征。
具体实施方式
27.一些实施例涉及针对有人值守的rpa的会话间自动化。例如,表单(例如,网页、电子数据表、具有可填充字段的另一应用等)可显示在用户会话(本文中也称为主会话或父会话)中。在用户会话中运行的机器人或另一应用或过程可与表单交互,但是一个或多个子会话(本文中也称为客户端会话、机器人会话或辅助会话)中的一个或更多个有人值守的rpa机器人可执行操作并获取数据,用户会话机器人然后将使用这些数据来填充用户会话中的表单。客户端会话中的有人值守的rpa机器人可通过过程间通信(ipc)协议,通过将数据存储在持久性数据仓库中来共享数据,持久性数据仓库包括但不限于电子数据表、面向对象的数据库、纯文本文件、另一数据仓库或文件等。在父会话中运行的用户会话机器人或另一应用或过程然后可读取该信息并相应地做出响应(例如通过使用该信息填写表单)。以这种方式,当(多个)客户端会话rpa机器人正在执行它们的工作流时,有人值守的(多个)自动化机器人的操作可不阻止用户使用其他应用或实例,但是当用户会话机器人将由用户会话rpa机器人提供的输入填充到应用中时,该输入在用户会话中对用户可见。
28.在一些实施例中,该过程可如下操作。用户可点击按钮或以其他方式使rpa机器人在用户会话(例如,当用户启动他或她的计算系统时启动的父会话或主会话)的子会话中启动。在某些实施例中,例如,机器人会话可能已经在运行,或者可由用户从机器人托盘单独启动。在一些实施例中,机器人托盘可为在系统托盘窗口中显示可用作业的展示架构(wpf)应用。用户可使机器人在子会话中执行其工作流,然后机器人可在主会话中与一个或多个应用交互。在一些实施例中,机器人功能可通过用户在主会话中点击调用机器人的按钮来发起。在某些实施例中,用户会话机器人可以发起客户端会话机器人。
29.在一些实施例中,如果工作流在其上操作的至少一个应用尚未被启动,则客户端会话机器人可停止操作并提供消息。在某些实施例中,如果(多个)应用未被打开,则用户会话机器人或其他用户会话应用或过程可以启动它们。如果操作系统允许这样的操作,则客户端会话机器人可在父会话中启动应用。当客户端会话机器人使数据可用于用户会话机器人时,随着用户会话机器人将数据填入,数据可在主会话中变得可见。
30.在一些实施例中,用户可使机器人在客户端会话中执行工作流,该工作流转到网站、收集一些信息、并且使该信息可用于用户会话机器人或另一应用或过程,以访问例如在主会话中可见的电子数据表并在其中进行输入。在某些实施例中,应用(诸如)在主会话中被打开。然后,用户或用户会话机器人在客户端会话中运行自动化,该自动化从主会话接收客户端id、转到网站(例如,)、并且收集与客户端与网站交互有关的信息。然而,在不偏离本发明的范围的情况下,有人值守的rpa机器人可与任何合适的(多个)应用交互和/或可从任何合适的源(例如,数据库、另一应用等)获得数据。
31.在一些实施例中,在主会话中运行的用户会话机器人的rpa工作流能够使客户端会话机器人在客户端会话中运行辅助工作流。在一些实施例中,对象可经由ipc在工作流之间来回传递,例如,数据可由用户会话机器人可访问的客户端会话机器人存储,等等。这对于工作流的部分需要相对较长的时间才能完成的情况可能是有益的。在阻止用户与他或她的计算系统交互的情况下,如果用户会话机器人执行所有工作流活动,则用户可能不进行生产(not productive)。然而,通过从不同会话操作机器人,一些实施例允许在机器人执行其任务时用户访问其他应用/实例。
32.一些实施例的应用包括但不限于仿真器、模拟器、虚拟机和提供 os级虚拟化的混合虚拟机(例如容器)。一些实施例创建并托管一个或多个机器人会话作为窗口,该窗口包括由相应的有人值守的自动化机器人控制的应用的ui。在某些实施例中,机器人会话窗口可仅包括客户端会话机器人正在与之交互的(多个)应用。如本文所用,“窗口”可适用于以下内容而不偏离本发明的范围:表示在主 ui内显示的ui的窗口、计算系统的第二显示器的第二屏幕、虚拟桌面、绘制在该环境内部启动的所有应用(被称为“子代”)的ui并且(在主机会话的上下文中)运行所有应用的隔离环境(也即,窗口,被称为“主机”),等等。
33.运行多个会话允许(多个)机器人在其(多个)会话中操作,同时用户和用户会话机器人与第一会话(例如,父会话)交互。因此,用户可与用户会话和客户端会话机器人当前未使用的应用交互(例如,用户可使用,而用户会话机器人正在将数据从移动到网络浏览器),或者用户和用户会话机器人和/或客户端会话机器人可能够与相同应用交互(如果该应用能够实现该功能的话)(例如,用户会话机器人或客户端会话机器人与web浏览器中的一个实例交互,而用户与另一实例交互)。
34.在一些实施例中,用户和(多个)机器人两者均与相同的应用安装和文件系统交互。在一些实施例中,经由(多个)机器人和用户在应用中进行的改变将如同单个用户做出改变一样而被做出,而不是使用户和机器人各自对应用和文件系统的单独的版本起作用。换言之,这样的实施例中的应用是用户的本地等。而且,本地文件系统可在无需附加配置的情况下被利用。这不同于容器,例如,其要求附加的配置步骤以向在容器中运行的应用提供对主机操作系统文件系统的访问。
35.在一些实施例中,针对任何数目的机器人的任何期望数目的会话可被创建并使用而不偏离本发明的范围。例如,用户和用户会话机器人或另一应用或过程可在第一会话中操作,第一客户端会话机器人可在第二会话中操作、第二客户端会话机器人可在第三会话中操作,等等。在某些实施例中,多个机器人可在单个会话中操作,有可能轮流与一个或多
个公共应用交互。
36.用于创建会话的功能可经由终端服务子会话来实现。例如,其可在无需用户注销的情况下将会话创建回到用户自己的机器中。新创建的会话可显示为子窗口,并且可以含有并启动存在于用户会话中的应用。换言之,用户与机器人之间的分离发生在ui层。例如,如果文件被删除,则这跨运行在计算系统上的所有会话发生。
37.在一些实施例中,可使用混合虚拟机,例如。混合虚拟机允许在容器内远程ui被用于运行应用和机器人。这样的实施例可隔离其中含有的机器人并在每个许可的基础上授予许可。机器人必须为容器外部的任何东西“打孔”。由此,容器本质上是它自己的沙盒,具有如何“逃逸”(例如,打开端口、安装文件夹等)的可配置许可。在某些实施例中,可使用全虚拟机。
38.某些实施例可用于机器人流程自动化(rpa)。图1是图示根据本发明的实施例的rpa系统100的架构图。rpa系统100包括允许开发者设计并实现工作流的设计器110。设计器110可提供用于应用集成以及使第三方应用、管理信息技术(it)任务以及业务it流程自动化的解决方案。设计器110可促进对自动化项目的开发,其是业务过程的图形表示。简言之,设计器110促进对工作流和机器人的开发和部署。
39.自动化项目通过向开发者给出对执行顺序的控制和在工作流中开发的一组自定义步骤(在本文被定义为“活动”)之间的关系来实现对基于规则的过程的自动化。设计器110的实施例的一个业务示例是uipathstudio
tm
。每个活动可包括动作,诸如点击按钮、读取文件、写入到登录面板、等等。在一些实施例中,工作流可被嵌套或嵌入。
40.一些类型的工作流可包括但不限于序列、流程图、fsm和/或全局异常处理机(handler)。序列可特别适合于线性过程,从而使能从一个活动到另一个的流而不使工作流杂乱无章。流程图可特别地适合于更复杂的业务逻辑,从而通过多分支逻辑运算符以更多样化的方式使能决策的整合和活动的连接。fsm可特别适合于大型工作流。fsm可在它们的执行中使用有限数量的状态,其通过条件(即,转变)或活动触发。全局异常处理机可特别适合于在遇到运行错误时确定工作流行为以及用于调试过程。
41.一旦工作流在设计器110中被开发,业务过程的运行由指挥器120精心安排,其精心安排执行在设计器110中所开发的工作流的一个或多个机器人130。指挥器120的实施例的一个业务示例是uipathorchestrator
tm
。指挥器120促进对在环境中对资源的创建、监测和部署的管理。指挥器120可充当与第三方解决方案和应用的整合点或聚集点之一
42.指挥器120可管理一群机器人130,从集中点连接并执行机器人130。可被管理的机器人130的类型包括但不限于有人值守的机器人132、无人值守的机器人134、开发机器人(类似于无人值守的机器人134,但是用于开发和测试目的)、以及非生产机器人(类似于有人值守的机器人132,但是用于开发和测试目的)。有人值守的机器人132可由用户事件触发或者被调度为自动发生,并且在相同计算系统上与人类并行地操作。有人值守的机器人132可由指挥器120用于集中化过程部署和日志记录介质。有人值守的机器人132可帮助人类用户完成各种任务,并且可由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器120开始和/或它们不能在锁屏下运行。在某些实施例中,有人值守的机器人132可仅仅从机器人托盘或从命令提示开始。在一些实施例中,有人值守的机器人132应当在人类监督下运行。
43.无人值守的机器人134无人值守地运行在虚拟环境中或物理机器上并且能够使许多流程自动化。无人值守的机器人134可负责远程执行、监测、调度、以及提供针对工作队列的支持。在一些实施例中,针对所有机器人类型的调试可从设计器110运行。有人值守的机器人和无人值守的机器人两者可自动化各种系统和应用,包括但不限于大型机、web应用、vm、企业应用(例如,由等生产的那些)以及计算系统应用(例如,桌面和膝上型应用、移动设备应用、可穿戴计算机应用等)。
44.指挥器120可具有各种能力,包括但不限于预置、部署、版本管理、配置、排队、监测、日志记录、和/或提供相互连接性。预置可包括创建并维护机器人130与指挥器120之间的连接(例如,web应用)。部署可包括确保正确递送封装版本到所分配的机器人130以用于执行。在一些实施例中,版本管理可包括管理一些过程或配置的唯一实例。配置可包括对机器人环境和过程配置的维护和递送。排队可包括提供对队列和队列项的管理。监测可包括跟踪机器人标识数据并维护用户权限。日志记录可包括将日志存储并索引到数据库(例如,sql 数据库)和/或另一存储机制(例如,,其提供存储并快速查询大数据集的能力)。指挥器120可通过充当针对第三方解决方案和/或应用的集中通信点来提供相互连接性。
45.机器人130是运行在设计器110中所建立的工作流的执行代理。 (多个)机器人130的一些实施例的一个业务示例是uipath机器人
tm
。在一些实施例中,机器人130默认安装微软服务控制管理器(scm)管理的服务。因此,这样的机器人130可在本地系统账户下打开交互式会话并且具有服务的权利。
46.在一些实施例中,机器人130可按用户模式被安装。对于这样的机器人130,这意味着它们与在其下给定机器人130已经被安装的用户具有相同的权利。该特征也可可用于高密度(hd)机器人,其确保以其最大可能对每个机器的完全利用。在一些实施例中,任何类型的机器人130可被配置在hd环境中。
47.在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定自动化任务。在一些实施例中,机器人组件包括但不限于scm 管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。 scm管理的机器人服务管理并监测会话并充当指挥器120 与执行主机(即,机器人130被执行在其上的计算系统)之间的代理方。这些服务利用针对机器人130的证书受信任并管理该证书。控制台应用由本地系统下的scm启动。
48.在一些实施例中,用户模式机器人服务管理并监测会话并充当指挥器120与执行主机之间的代理方(proxy)。用户模式机器人服务利用针对机器人130的证书受信任并管理该证书。如果 scm管理的机器人服务未被安装,应用可被自动启动。
49.执行者可在会话下运行给定作业(即,它们可执行工作流)。执行器可意识到每个监测器的每英寸点数(dpi)设置。代理可为显示系统托盘窗口中的可用作业的展示架构(wpf)。代理可为服务的客户端。代理可请求开始或停止作业并改变设置。命令行是服务的客户端。命令行是可请求开始作业并等待它们的输出的控制台应用。
50.使机器人130的组件如以上所解释的拆分帮助开发者、支持用户和计算系统更容
易地运行,标识并跟踪每个组件正在执行什么。特殊行为可针对每个组件以这种方式被配置,诸如建立针对执行器和服务的不同防火墙规则。在一些实施例中,执行器可总是知道每个监测器的dpi设置。因此,工作流可在任何dpi被执行,不管它们被创建在其上的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可独立于浏览器缩放水平。对于不知道dpi或有意标记为不知道 dpi的应用,在一些实施例中,dpi可被禁用。
51.图2是图示根据本发明的实施例的所部署的rpa系统200的架构图。在一些实施例中,rpa系统200可为图1的rpa系统100或可为其部分。应当指出,客户端侧、服务器侧、或两者可包括任何期望数目的计算系统而不偏离本发明的范围。在客户端侧,机器人应用 210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可没有正在运行在计算系统210上。执行器212正在运行过程。若干业务项目可同时运行,如图2所示。在该实施例中,代理 214(例如,服务)是针对所有执行器212的单个接触点。在该实施例中,所有消息被日志记录到指挥器230中,其经由数据库服务器240、索引器服务器250或两者进一步处理它们。如以上参考图1所论述的,执行器212可为机器人组件。
52.在一些实施例中,机器人表示机器名与用户名之间的关联。机器人可同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如,服务器2012)上,多个机器人可正在同时运行,各自在单独的会话中使用唯一的用户名。这被称为上述hd机器人。
53.代理214还负责发送机器人的状态(例如,周期性地发送指示机器人仍然正在起作用的“心跳”消息)并下载要被执行的封装的所需版本。在一些实施例中,代理214与指挥器230之间的通信总是由代理214发起。在通知的情形中,代理214可打开稍后由指挥器230用来将命令发送给机器人(例如,开始、停止等)的websocket通道。
54.在服务器侧上,包括:表示层(web应用232、开放数据协议 (odata)表示状态转移(rest)应用编程接口(api)端点234、以及通知和监测236)、服务层(api实现/业务逻辑238)、以及持久层(数据库服务器240和索引器服务器250)。指挥器230包括web 应用232、odata rest api端点234、通知和监测236以及api实现 /业务逻辑238。在一些实施例中,通过调用各种api来执行用户(例如,经由浏览器220)在指挥器230的界面中执行的大多数动作。这样的动作可包括但不限于:开始机器人上的作业、在队列中添加/移除数据、调度作业以无人值守地运行等等,而不偏离本发明的范围。web 应用232是服务器平台的视觉层。在该实施例中,web应用232使用超文本标记语言(html)和javascript(js)。然而,任何期望的标记语言、脚本语言或任何其他格式可被使用而不偏离本发明的范围。在该实施例中,用户经由浏览器220与来自web应用232的网页进行交互以便执行各种动作来控制指挥器230。例如,用户可创建机器人组、将封装分配给机器人、分析针对每个机器人和/或每个过程的日志,开始和停止机器人,等等。
55.除了web应用232,指挥器230还包括公开odata rest api端点234的服务层。然而,其他端点可被包括而不偏离本发明的范围。 rest api由web应用232和代理214耗用。在该实施例中,代理214 是客户端计算机上的一个或多个机器人的监督者。
56.在该实施例中,rest api覆盖配置、日志记录、监测、和排队功能。在一些实施例中,配置端点可用于定义并配置应用用户、权限、机器人、资产、发布和环境。例如,日志记录
rest端点可用于日志记录不同的信息,例如,诸如错误、由机器人发送的显式消息、以及其他特定于环境的信息。部署rest端点可由机器人用于查询如果在指挥器230中使用开始作业命令应当被执行的封装版本。队列rest 端点可负责队列和队列项管理,诸如将数据添加到队列,获得来自队列的事务,设置事务的状态,等等。
57.监测rest端点可监测web应用232和代理214。通知和监测api236可为用于注册代理214、将配置设置递送到代理214、并且用于发送/接收来自服务器和代理214的通知的rest端点。在一些实施例中,通知和监测api 236还可使用websocket通信。
58.在该实施例中,持久层包括一对服务器,数据库服务器240(例如,sql服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人、机器人组、相关联的过程、用户、角色(role)、调度等的配置。在一些实施例中,该信息通过web应用232来管理。数据库服务器240可管理队列和队列项。在一些实施例中,数据库服务器240可存储由机器人日志记录的消息(除了或代替索引器服务器 250)。
59.索引器服务器250,其在一些实施例中是可选的,存储并索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可通过配置设置被禁用。在一些实施例中,索引器服务器250使用,其是开源项目全文本搜索引擎。由机器人日志记录的消息(例如,使用如日志消息或写入行的活动)可通过(多个)日志记录的rest端点被发送到索引器服务器250,其中它们被索引以用于未来利用。
60.图3是图示根据本发明的实施例的设计器310、活动320、330以及驱动程序340之间的关系300的架构图。按照上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可包括用户定义的活动320和ui自动化活动330。一些实施例能够标识图像中的非文本视觉组件,其在本文被称为计算机视觉(cv)。一些涉及这样的组件的cv活动可包括但不限于点击、打字、获得文本、悬停、元件存在、刷新范围、突出显示等。点击在一些实施例中使用例如cv、光学字符识别(ocr)、模糊文本匹配、以及多锚来标识元素并且点击它。打字可使用上述来标识元素并在元素中打字。获得文本可使用ocr来标识特定文本的位置并且扫描它。悬停可标识元素并悬停在它上方。元素存在可使用以上描述的技术来检查元素是否存在于屏幕上。在一些实施例中,可存在数百或甚至数千可被实现于设计器310 中的活动。然而,任何数目和/或类型的活动可为可用的而不偏离本发明的范围。
61.ui自动化活动330是以较低层代码编写并且促进通过ui层与应用的交互的特殊的较低水平的活动(例如cv活动)的子集。在某些实施例中,ui自动化活动300可模拟”例如通过窗口消息等的用户输入。ui自动化活动330经由允许机器人与期望软件交互的驱动器 340促进这些交互。例如,驱动程序340可包括os驱动程序342、浏览器驱动程序344、vm驱动程序346、企业应用驱动程序348等。
62.驱动程序340可在低层次上与os交互,查找钩子、监测密钥等。它们可促进与等的集成。例如,“点击”活动在这些不同应用中经由驱动器340执行相同作用。
63.图4是图示根据本发明的实施例的rpa系统400的架构图。在一些实施例中,rpa系统400可为或包括图1和/或图2的rpa系统 100和/或200。rpa系统400包括运行机器人的多个客户端计算系统 410。计算系统410能够经由运行在其上的web应用与指挥器计算系统
420通信。指挥器计算系统420继而能够与数据服务器430和可选的索引器服务器400通信。
64.关于图1和图3,应当指出,尽管web应用被使用在这些实施例中,但是任何合适的客户端和/或服务器软件可被使用而不偏离本发明的范围。例如,指挥器可运行与客户端计算系统上的非基于web的客户端软件应用通信的服务器侧应用。
65.图5是图示根据本发明的实施例的被配置为支持针对rpa机器人的会话间自动化的计算系统500的架构图。在一些实施例中,计算系统500可为本文描绘和/或描述的计算系统中的一个或多个。计算系统500包括总线505或用于通信信息的其他通信机制、以及耦合到总线505的用于处理信息的(多个)处理器510。(多个)处理器510 可为任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元 (gpu)、其多个实例、和/或其任何组合。(多个)处理器510还可具有多个处理核心,并且核心中的至少一些可被配置为执行特定功能。多并行处理可被使用在一些实施例中。在某些实施例中,(多个) 处理器510中的至少一个可为包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可不要求冯诺依曼计算架构的典型组件。
66.计算系统500还包括用于存储要由(多个)处理器510执行的信息和指令的存储器515。存储器515可包含以下中的任何组合:随机存取存储器(ram)、只读存储器(rom)、闪速存储器、高速缓存、诸如磁盘或光盘的静态存储装置、或任何其他类型的非瞬态计算机可读介质或其任何组合。非瞬态计算机可读介质可为可由(多个) 处理器510访问的任何可用介质,并且可包括易失性介质、非易失性介质、或两者。介质还可为可移除的、不可移除的或两者。
67.另外,计算系统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)、第五代(5g)、新无线电(nr)、其任何组合和/或任何其他当前存在或未来实现的通信标准和/或协议而不偏离本发明的范围。在一些实施例中,通信设备520 可包括一个或多个天线,其是单一的、阵列的、相控的、交换的、波束形成的、波束操纵的、其组合和或任何其他天线配置而不偏离本发明的范围。
68.(多个)处理器510还经由总线505被耦合到用于将信息显示给用户的显示器525,诸如等离子显示器、液晶显示器(lcd)、发光二极管(led)显示器、场发射显示器(fed)、有机发光二极管(oled) 显示器、柔性oled显示器、柔性基板显示器、投影显示器、4k显示器、高清显示器、视网膜显示器、面内交换(ips)显示器、或任何其他合适的显示器。显示器525可被配置为使用电阻性、电容性、表面声波(saw)电容性、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3d)触摸显示器、多输入触摸显示器、多触摸显示器等。任何合适的显示设备和触觉i/o可被使用而不偏离本发明的范围。
69.键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)还被耦合到总线505以
使得用户能够与计算系统500接口连接。然而,在某些实施例中,物理键盘和鼠标可不存在,并且用户可仅仅通过显示器525和/或触摸板(未示出)与设备交互。任何类型和组合的输入设备可被用作设计选择的问题。在某些实施例中,没有物理输入设备和/或显示器存在。例如,用户可经由与之通信的另一计算系统远程地与计算系统500交互,或者计算系统500可自主操作。
70.存储器515存储提供当由(多个)处理器510执行时提供功能的软件模块。模块包括针对计算系统500的操作系统540。模块还包括会话间自动化模块545,其被配置为执行本文描述的过程中的全部或部分或其衍生物。计算系统500可包括包含附加功能的一个或多个附加功能模块550。
71.本领域技术人员将认识到,“系统”可被体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、蜂窝电话、平板计算设备、量子计算系统或任何其他适当的计算设备、或设备的组合而不偏离本发明的范围。将上述功能呈现为由“系统”执行不旨在以任何方式限制本发明的范围而是旨在提供本发明的许多实施例的一个示例。实际上,本文中公开的方法、系统和装置可按与包括云计算系统的计算技术一致的本地和分布式形式执行。
72.应当注意,本说明书中描述的系统特征中的一些已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可被实现为硬件电路,包含定制超大规模集成(vlsi)电路或门阵列、现货半导体 (诸如逻辑芯片、晶体管或其他分立组件)。模块还可被实现在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等等的可编程硬件设备中。
73.模块还可至少部分以用于由各种类型的处理器执行的软件来实现。可执行代码的所标识的单元可例如包括可例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,所标识的模块的可执行件不需要物理上定位在一起而是可包括存储在不同位置中的不同指令,其当在逻辑上一起联接时,包含该模块并实现该模块的所陈述的目的。另外,模块可被存储在计算机可读介质上,计算机可读介质可例如为硬盘驱动器、闪速设备、ram、磁带、和/或用于存储数据的任何其他这样的非瞬态计算机可读介质而不偏离本发明的范围。
74.实际上,可执行代码的模块可为单个指令、或许多指令,并且可甚至被分布在若干不同代码段上、在不同程序中、和跨若干存储器设备分布。类似地,操作数据可在本文中在模块内被标识和图示并且可按任何适当的形式体现并组织在任何适当类型的数据结构内。操作数据可被收集为单个数据集或可被分布在不同位置上,包括在不同存储设备上,并且可至少部分地仅仅作为电子信号存在于系统或网络上。
75.按照上文,在有人值守的自动化中,机器人与用户在相同计算系统上并行工作。由于rpa中的机器人常常以类似方式与计算系统交互(例如,生成鼠标点击和按键事件,经由api(例如,使用窗口消息)模拟这些事件等),一些实施例创建一个或多个机器人会话来托管并运行其中的有人值守的自动化。不像现有rpa系统,用户可受益于在(多个)机器人正在(多个)机器人会话中运行有人值守的自动化时与他们的计算系统交互的能力。在一些实施例中,用户可仍然监测机器人正在做什么并且通过用于(多个)机器人会话的(多个) 托管自动化窗口与机器人交互。这将rpa机器人从仅仅比人类用户更快且更可靠地做任务有效
地演变到成为可与用户并行执行工作的真正数字助理,从而提供甚至更大的生产力提升。在一些实施例中,用户和(多个)机器人会话可正在运行在由用户的计算系统控制的远程机器上。
76.在某些实施例中,rpa机器人可正在运行在用户的计算系统上并且通过远程运行时(例如,经由uipath远程运行时
tm
)驱动远程计算系统。uipath远程运行时
tm
是促进远程应用(诸如citrix虚拟应用和 desktops
tm
)或桌面与专用扩展(例如,用于的扩展或用于远程桌面的扩展)之间的通信的组件。 uipath远程运行时
tm
收集与远程应用的靶向ui元素有关的信息并将该信息发送到对应的扩展使得选择器被直接生成在ui explorer
tm
中。在某些实施例中,机器人可使用微软的appv技术,该技术将客户端应用“虚拟地递送”到机器。
77.如之前所陈述的,在一些实施例中,用户和机器人两者均正在与相同的应用实例和文件系统交互。图6图示了根据本发明的实施例的由用户在用户会话610中以及rpa机器人在机器人会话620中访问的用户计算系统600的一些应用和文件系统660。如可在图6中看出的,web浏览器应用630、电子数据表应用640、以及电子邮件应用 650可由用户会话610和有人值守的自动化机器人会话620两者访问。用户会话610和有人值守的自动化机器人会话620可同时与网络浏览器应用630和电子邮件应用650交互。
78.然而,当机器人正在与电子数据表应用640的相同文件交互时,用户不能与该应用交互(例如,用户可仅仅能够打开“只读”视图或者用户可被完全阻止打开文件)。然而,如果自动化正在使用 office 365api来使用在用户的上托管的电子数据表,并且用户正在通过web界面访问电子数据表,则可不存在这样的限制。例如,google完全是网络递送的,并且支持并发访问。用户可接收指示电子数据表应用640被锁定、正由另一“用户”(即,机器人)访问等的消息。用户会话610和有人值守的自动化机器人过程620 两者也可与文件系统660交互。因此,经由机器人和用户经由它们各自的会话在应用中进行的改变将被做出,如同单个用户做出改变一样,而不是使用户和机器人各自对应用和文件系统的单独的版本起作用。
79.图7a-j是图示根据本发明的实施例的使用在客户端会话中运行的rpa机器人和在用户会话中运行的用户会话机器人或另一应用或过程来完成用户会话中的表单的示例的屏幕截图。在图7a中,图示了用户会话窗口700,其中用户能够与ui中的应用交互,并且当前没有机器人正在执行。机器人托盘图标710在用户会话窗口700的右下部分可见。
80.在图7b中,用户启动web浏览器并访问发票创建网页720。在图7c中,用户拉起机器人托盘712(例如,通过点击机器人托盘图标710)并选择用户会话机器人选项714,以在用户会话中在他或她的计算系统上执行。在选择用户会话机器人选项714之后,出现用户会话机器人窗口730。参见图7d。在该实施例中,用户会话机器人仅显示状态消息。然而,用户会话机器人可具有任何期望的工作流功能,而不偏离本发明的范围。在一些实施例中,用户会话机器人自动启动客户端会话机器人,或者选择选项以运行用户会话机器人自动启动在它们各自的会话中的两个机器人。
81.在一些实施例中,不为用户会话机器人显示窗口,用户会话机器人可在后台运行。在某些实施例中,另一应用或过程执行用户会话机器人的功能。该功能可包括但不限于与
一个或多个客户端会话机器人通信、检索由(多个)客户端会话机器人提供的数据、与在用户会话中运行的应用交互以输入检索到的信息等。在一些实施例中,不是使用用户会话机器人、另一应用或另一过程,而是由应该被输入由客户端会话机器人检索到的信息的应用本身来进行输入。在一些实施例中,这可在不模拟鼠标点击、按键等的情况下完成。
82.在图7e中,用户拉起机器人托盘712并选择客户端会话机器人选项716,以在客户端会话中在他或她的计算系统上执行。在选择客户端会话机器人选项716之后,用于机器人会话的客户端会话窗口 740作为子窗口出现在屏幕上,如图7f所示。然而,在一些实施例中,不显示客户端会话窗口740,并且客户端会话机器人在客户端会话中运行,而对用户不可见。在该实施例中,用于客户端会话机器人的客户端会话机器人窗口742在客户端会话窗口740内自动启动,并且包括按钮744以获取用于用户会话中的网页720的表单数据。
83.在一些实施例中,不显示机器人会话窗口,并且客户端会话机器人可在对用户不可见的情况下自动启动、操作和关闭。在某些实施例中,客户端会话机器人可在完成其工作流之后关闭其会话。在一些实施例中,不是从机器人托盘启动,而是可以发起客户端会话,并且客户端会话机器人可在不使用机器人托盘712的情况下启动和操作(例如,由于用户点击主会话的应用中的按钮)。
84.转到图7g,在用户点击按钮744之后,客户端会话机器人开始获取用于网页720的表单数据。由客户端会话机器人获取的数据可经由ipc提供给用户会话机器人、存储在电子数据表中、面向对象的数据库、纯文本文件等中,或者以其他方式被传达给用户会话机器人或被可用于用户会话机器人。在客户端会话机器人完成其工作流之后,在客户端会话机器人窗口742中显示消息。参见图7h。用户会话机器人然后开始使用由客户端会话机器人获取的表单数据来填充网页 720的字段。当网页720未被另一个窗口覆盖或被最小化时,由用户会话机器人输入的文本对用户可见。在用户会话机器人完成表单的同时,用户可与其他应用交互并继续保持生产力。
85.转到图7i,如从背景中可看出,用户会话机器人已经完成了网页 720中的表单字段。用户然后可关闭客户端会话窗口740和用户会话机器人窗口730,用户会话机器人或客户端会话机器人可自动关闭客户端会话,或者客户端会话窗口740可保持打开。然后,用户可提交完成的表单。参见图7j。
86.图8是图示根据本发明的实施例的用于会话间自动化的过程800 的流程图。该过程开始于在810处启动用户会话窗口。例如,它可以是与在用户计算系统上运行的操作系统相关联的主窗口。然后,在820 处,在用户会话中发起用户会话过程(例如,rpa机器人、应用、另一过程等)。在830处,启动客户端会话,并且在840处,在客户端会话中发起客户端会话机器人。在一些实施例中,例如,客户端会话可响应于客户端会话机器人被发起而被启动或以其他方式被启动。客户端会话机器人然后在850处执行其工作流。在一些实施例中,由客户端会话机器人检索到的数据和/或采取的动作可被提供给用户会话过程或可用于用户会话过程。然后,用户会话过程在860访问由客户端会话机器人产生的数据,并且在870处基于该数据与适当的(多个) 应用(例如,网页、电子数据表、erp应用、销售应用等)交互。在一些实施例中,与之交互的(多个)应用可为用户会话过程本身。在客户端会话机器人完成其执行之后,在一些实施例中,可在880处自动结束客户端会话。
87.在一些实施例中,客户端会话可经由操作系统的子会话api来创建。由操作系统提
供的终止服务子会话或另一子会话可在一些实施例中用于创建第二会话而不偏离本发明的范围。机器人托盘应用(例如,机器人代理桌面)或被配置为启动(多个)机器人的另一应用可然后利用合适的参数使用操作系统中的创建过程来在该子会话中启动机器人过程。机器人托盘应用或其他合适的应用可然后使用合适的协议(例如,在命名的管线上建立的协议)与客户端机器人过程通信。
88.在一些实施例中,在两个会话之间与客户端机器人通信可使用 ipc协议来完成。这些协议可促进经由网络、管线、组件对象模型 (com)、远程过程调用(rpc)、套接字等的通信。在支持的情况下,合适的会话创建机制和ipc协议可也用于其他操作系统。当用户点击机器人托盘上的按钮或者使得另一个应用发起这样的功能(例如,通过点击按钮)时,机器人托盘应用或其他合适的应用可使用ipc 协议将该命令发送到客户端会话机器人过程。客户端会话机器人可也经由ipc协议将状态通知发送回到机器人托盘应用或其他合适的过程(例如,指示机器人正在启动、运行、暂停等)。
89.图9是图示根据本发明的实施例的会话间自动化的过程900的流程图,其中一个机器人在用户会话中运行,而另一个机器人在客户端会话中运行。该过程开始于在910处开始执行用户会话机器人工作流。当用户会话机器人在920处到达其工作流中要求客户端机器人执行的活动时,在930处,用户会话机器人使客户端会话机器人执行其工作流并等待其完成。
90.在940处,客户端会话机器人完成其工作流并通知用户会话机器人。在950处,用户会话机器人然后使用客户端会话机器人执行的结果来完成用户会话机器人工作流的其余部分。在一些实施例中,用户会话机器人和客户端会话机器人共同完成单个逻辑工作流。
91.在某些实施例中,可使用多个客户端会话机器人,并且可能至少一些客户端会话机器人在不同的客户端会话中被使用。这可使得用户会话机器人能够将工作流活动的部分传递给客户端会话机器人以完成。图10图示了根据本发明的实施例的场景1000,其中工作流的一部分由用户会话机器人完成,而工作流的其他部分由客户端会话机器人完成。用户会话1010包括用户会话机器人1012和应用1014。第一客户端会话1020包括客户端会话机器人1022,第二客户端会话1030 包括两个客户端会话机器人1032、1034,并且第三客户端会话1040 包括客户端会话机器人1042。例如,用户会话机器人1012可经由ipc 与客户端会话机器人1022、1032、1034、1042通信并控制其操作。应当注意,在一些实施例中,在(多个)客户端会话机器人完成它们各自的工作流的同时,用户会话机器人继续执行其工作流。
92.图11是图示根据本发明的实施例的用户会话机器人u1与一对客户端会话机器人c1和c2之间的多机器人集合工作流的执行的流程图1100。c1和c2可处于相同的客户端会话或不同的客户端会话中。u1开始执行其工作流,并且到达要求c1完成工作流的活动。u1使 c1执行其工作流,并且该调用活动等待。在此期间,在一些实施例中,u1可执行其他任务。
93.c1完成其工作流之后,u1继续执行,直到其到达要求c2完成工作流的活动。u1使c2执行其工作流,并且该调用活动等待。在一些实施例中,u1再次可在等待c2的同时执行其他任务。
94.c2完成其工作流之后,u1继续执行,直到其到达再次要求c1 完成工作流的活动。这可为与先前执行的活动相同的工作流活动,也可为不同的工作流或活动集。u1使c1执行其工作流,并且该调用活动等待。在一些实施例中,u1再次可在等待c1的同时执行其他任
务。在c1完成其工作流之后,u1继续执行,直到u1的工作流完成。
95.根据本发明的实施例,图8、9和11中执行的过程步骤可由计算机程序执行,计算机程序编码用于(多个)处理器执行图8、9和11 中描述的(多个)过程的至少部分的指令。计算机程序可被体现于非瞬态计算机可读介质上。计算机可读介质可为但不限于硬盘驱动器、闪速设备、ram、磁带、和/或任何其他这样的介质或用于存储数据的介质的组合。计算机程序可包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)实现图8、9 和11中描述的过程步骤中的全部或部分的编码指令,其也可被存储于计算机可读介质上。
96.计算机程序可按硬件、软件或混合实现来实现。计算机程序可由与彼此操作性通信、并且被设计为传递信息或指令以显示的模块组成。计算机程序可被配置为在通用计算机、asic或任何其他合适的设备上进行操作。
97.将容易理解如在本文的附图中大体描述的和说明的本发明的各种实施例的组件可按各种各样的不同配置来布置和设计。因此,如附图中表示的本发明的实施例的详细描述不旨在限制所要求保护的本发明的范围而是仅仅表示本发明的选定实施例。
98.贯穿本说明书描述的本发明的特征、结构或特性可按任何适当的方式被组合在一个或多个实施例中。例如,贯穿本说明书对“某些实施例”、“一些实施例”或“类似语言的引用意味着结合实施例描述的特定特征、结构或特性被包含在本发明的至少一个实施例中。因此,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言在整个说明书中的出现不必全部指代同一组实施例,并且所描述的特征、结构或特性可按任何适当的方式被组合在一个或多个实施例中。
99.应当指出,贯穿本说明书对特征、优点或类似语言的引用不暗示可利用本发明实现的特征和优点中的全部应当在本发明的任何单个实施例中或者是在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包含在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点以及类似语言的论述可但不必指代相同实施例。
100.另外,本发明的上述特征、优点和特性可按任何适当的方式被组合在一个或多个实施例中。相关领域技术人员将意识到能够在没有具体实施例的指定特征或优点中的一个或多个情况下实践本发明。在其他实例中,在可不存在于本发明的所有实施例中的某些实施例中意识到附加的特征和优点。
101.本领域普通技术人员将容易理解,可利用以不同顺序的步骤和/ 或利用以不同于所公开的那些的配置的硬件元件来实践如以上论述的本发明。因此,尽管已经基于优选实施例描述了本发明,但是对本领域技术人员将显而易见的是,某些修改、变型和备选结构将是显而易见的,同时保持在本发明的精神和范围内。为了确定本发明的范围,因此,应当对随附权利要求进行参考。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1