用于机器人流程自动化的自动化窗口的制作方法

文档序号:31949642发布日期:2022-10-26 07:32阅读:182来源:国知局
用于机器人流程自动化的自动化窗口的制作方法
用于机器人流程自动化的自动化窗口
1.相关申请的交叉引用
2.本技术要求于2020年8月10日提交的美国非临时专利申请第16/989,003号的权益,该申请是于2020年2月18日提交的美国非临时专利申请第16/793,064号的延续并要求其权益。该在先申请的技术方案通过引用以其整体并入本文。
技术领域
3.本发明总体上涉及机器人流程自动化(rpa),并且更具体地涉及用于有人值守或无人值守的机器人的rpa的自动化窗口。


背景技术:

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


技术实现要素:

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