CN115243838A - 针对机器人流程自动化(rpa)机器人的会话间自动化 - Google Patents

针对机器人流程自动化(rpa)机器人的会话间自动化 Download PDF

Info

Publication number
CN115243838A
CN115243838A CN202080098225.9A CN202080098225A CN115243838A CN 115243838 A CN115243838 A CN 115243838A CN 202080098225 A CN202080098225 A CN 202080098225A CN 115243838 A CN115243838 A CN 115243838A
Authority
CN
China
Prior art keywords
session
robot
client session
rpa
user
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
Application number
CN202080098225.9A
Other languages
English (en)
Inventor
A·哈尔
A·邰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yupas Co
Original Assignee
Yupas Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US16/793,064 external-priority patent/US10654166B1/en
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN115243838A publication Critical patent/CN115243838A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了针对机器人流程自动化(RPA)的会话间自动化。在用户会话中运行的机器人或另一应用或过程可与应用交互,但是在一个或多个子会话中的一个或多个有人值守的RPA机器人执行操作并获取数据,用户会话机器人然后将使用这些数据与用户会话中的应用交互。客户端会话中的有人值守的RPA机器人可通过过程间通信(IPC)协议,通过将数据存储在诸如电子数据表、面向对象的数据库、纯文本文件、另一数据仓库或文件等持久性数据仓库中来共享数据。在父会话中运行的用户会话机器人或另一应用或过程然后可读取该信息并相应地做出响应。

Description

针对机器人流程自动化(RPA)机器人的会话间自动化
相关申请的交叉引用
本申请要求于2020年5月13日提交的第15/930,906号美国非临时专利申请的权益,该申请是2020年2月18日提交的美国非临时专利申请第16/793,064号的部分延续(CIP)并要求其利益。这些较早提交的申请的技术方案通过引用以其整体并入本文。
技术领域
本发明总体上涉及机器人流程自动化(RPA),并且更具体地涉及针对RPA机器人的会话间自动化。
背景技术
有人值守的自动化RPA机器人典型地与用户在相同的会话中运行在由用户操作的计算系统上。例如,有人值守的RPA机器人可在用户的命令下与用户一起工作以完成某些任务。然而,在有人值守的自动化场景中,RPA机器人可能“接管”用户的计算系统。用户可能希望在机器人与计算系统交互时执行其他活动,但是用户被阻止这样做。换言之,机器人通过用户界面(UI)以与用户相同的方式(例如,模拟鼠标点击和键盘输入)控制应用。
存在创建操作系统或运行在其上的应用的完全或部分副本的各种技术。仿真器已经存在了数十年并且可为开发者提供测试并调试应用的能力。例如,仿真器可为开发者提供测试并调试使用不支持直接运行开发工具的操作系统的移动应用的能力。
Figure BDA0003836266550000011
Figure BDA0003836266550000012
两者均提供了可从开发机器运行以测试并调试
Figure BDA0003836266550000013
Figure BDA0003836266550000014
应用的仿真器,因为开发者工具不能本机运行在那些移动操作系统上。
模拟器允许开发者在他或她的本地机器上托管窗口,该窗口允许难以或不可能在开发机器上执行的应用的开发者测试和调试行为。例如,模拟器允许开发者点击按钮以旋转模拟器,其告诉运行在模拟器内部的应用设备已经出于测试并调试对这些事件做出响应的应用行为的目的而被旋转。另一常见示例是多触摸。许多开发者机器不支持触摸,因此模拟器使开发者测试并调试应用如何对多个触摸点做出响应。
Figure BDA0003836266550000021
Figure BDA0003836266550000022
仿真器还提供模拟能力。另外,
Figure BDA0003836266550000023
提供用于它们的通用Windows平台(UWP)应用的模拟器。
虚拟机在机器上托管第二操作系统并且能够通过窗口被打开和监测。这运行完全不同的操作系统并与托管机器共享硬件。“游客”机器必须安装有它自己的应用的副本并且不与用户机器共享公共资源或文件。
Figure BDA0003836266550000024
容器在概念上是虚拟机的混合形式。需要被执行的所有应用被封装成直接执行在主机操作系统上的不可变封装。封装不是另一操作系统的完整副本,但是其默认不共享或能够访问托管机器上的应用或资源中的任何。因此,从用户体验角度,
Figure BDA0003836266550000025
容器感觉类似于虚拟机,但是在技术上,容器不执行在完全分离的操作系统上。
然而,常规仿真器、模拟器、虚拟机(VM)和提供操作系统(OS) 层虚拟化(例如,
Figure BDA0003836266550000026
容器)的混合VM不解决在有人值守的自动化机器人作为用户在相同的计算系统上操作的情况下出现的问题。因此,用户基本上变成针对他或她自己的计算系统的旁观者,观看机器人工作而不能与机器上的要求用户交互的其他应用交互。因此,一种改进的方法可为有益的。
发明内容
本发明的某些实施例可提供本领域中尚未通过当前RPA技术完全标识、认识到或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及针对RPA机器人的会话间自动化。
在一个实施例中,计算机实现的方法包括在用户会话中启动用户会话过程,并且在第一客户端会话中启动第一客户端会话RPA机器人。计算机实现的方法还包括由第一客户端会话RPA机器人在第一客户端会话中执行第一客户端会话RPA机器人的工作流,并且由第一客户端会话RPA机器人使第一客户端会话机器人的工作流的执行的结果可用于用户会话过程。计算机实现的方法还包括由用户会话过程使用第一客户端会话RPA机器人的工作流的执行的结果与用户会话中的应用交互。
在另一个实施例中,一种计算机实现的方法包括由客户端会话 RPA机器人在客户端会话中执行客户端会话RPB机器人的工作流,并且由客户端会话RPA机器人使客户端会话RPA机器人的工作流的执行的结果可用于用户会话RPA机器人。计算机实现的方法还包括由用户会话RPA机器人使用客户端会话RPA机器人的工作流的执行的结果与计算系统上的应用交互。
在又一实施例中,一种计算机实现的方法包括由客户端会话RPA 机器人在客户端会话中执行客户端会话RPB机器人的工作流,并且由客户端会话RPA机器人使客户端会话RPA机器人的工作流的执行的结果可用于用户会话RPA机器人。计算机实现的方法还包括由用户会话RPA机器人使用客户端会话RPA机器人的工作流的执行的结果与计算系统上的应用交互。用户会话RPA机器人和客户端会话RPA 机器人共同完成包括客户端会话RPB机器人的工作流的更大的工作流的执行。
附图说明
为了本发明的某些实施例的优点将被容易理解,以上简单描述的本发明的更具体的描述将通过参考在附图中图示的特定实施例来呈现。尽管应当理解这些附图仅仅描绘本发明的典型实施例并且因此不被认为是对其范围的限制,但是本发明利用在对附图的使用中的附加的特异性和细节来描述并解释,在附图中:
图1是图示根据本发明的实施例的机器人流程自动化(RPA)系统的架构图。
图2是图示根据本发明的实施例的部署的RPA系统的架构图。
图3是图示根据本发明的实施例的设计器、活动以及驱动程序之间的关系的架构图。
图4是图示根据本发明的实施例的RPA系统的架构图。
图5是图示根据本发明的实施例的被配置为促进针对RPA机器人的会话间自动化的计算系统的架构图。
图6图示了根据本发明的实施例的由用户在用户会话中以及由 RPA机器人在机器人会话中访问的用户计算系统的一些应用和文件系统。
图7A-J是图示根据本发明的实施例的使用在客户端会话中运行的RPA机器人和在用户会话中运行的用户会话机器人或另一应用或过程来完成用户会话中的表单的示例的屏幕截图。
图8是图示根据本发明的实施例的会话间自动化的过程的流程图。
图9是图示根据本发明的实施例的会话间自动化过程的流程图,其中一个机器人在用户会话中运行,而另一个机器人在客户端会话中运行。
图10图示了根据本发明的实施例的场景,在该场景中工作流的一部分由用户会话机器人完成而工作流的其他部分由客户端会话机器人完成。
图11是图示根据本发明的实施例的用户会话机器人U1与一对客户端会话机器人C1和C2之间的多机器人集合工作流的执行的流程图。
除非另行指示,相似的附图标记表示贯穿附图一致的对应特征。
具体实施方式
一些实施例涉及针对有人值守的RPA的会话间自动化。例如,表单(例如,网页、电子数据表、具有可填充字段的另一应用等)可显示在用户会话(本文中也称为主会话或父会话)中。在用户会话中运行的机器人或另一应用或过程可与表单交互,但是一个或多个子会话(本文中也称为客户端会话、机器人会话或辅助会话)中的一个或更多个有人值守的RPA机器人可执行操作并获取数据,用户会话机器人然后将使用这些数据来填充用户会话中的表单。客户端会话中的有人值守的RPA机器人可通过过程间通信(IPC)协议,通过将数据存储在持久性数据仓库中来共享数据,持久性数据仓库包括但不限于电子数据表、面向对象的数据库、纯文本文件、另一数据仓库或文件等。在父会话中运行的用户会话机器人或另一应用或过程然后可读取该信息并相应地做出响应(例如通过使用该信息填写表单)。以这种方式,当(多个)客户端会话RPA机器人正在执行它们的工作流时,有人值守的(多个)自动化机器人的操作可不阻止用户使用其他应用或实例,但是当用户会话机器人将由用户会话RPA机器人提供的输入填充到应用中时,该输入在用户会话中对用户可见。
在一些实施例中,该过程可如下操作。用户可点击按钮或以其他方式使RPA机器人在用户会话(例如,当用户启动他或她的计算系统时启动的父会话或主会话)的子会话中启动。在某些实施例中,例如,机器人会话可能已经在运行,或者可由用户从机器人托盘单独启动。在一些实施例中,机器人托盘可为在系统托盘窗口中显示可用作业的
Figure BDA0003836266550000051
展示架构(WPF)应用。用户可使机器人在子会话中执行其工作流,然后机器人可在主会话中与一个或多个应用交互。在一些实施例中,机器人功能可通过用户在主会话中点击调用机器人的按钮来发起。在某些实施例中,用户会话机器人可以发起客户端会话机器人。
在一些实施例中,如果工作流在其上操作的至少一个应用尚未被启动,则客户端会话机器人可停止操作并提供消息。在某些实施例中,如果(多个)应用未被打开,则用户会话机器人或其他用户会话应用或过程可以启动它们。如果操作系统允许这样的操作,则客户端会话机器人可在父会话中启动应用。当客户端会话机器人使数据可用于用户会话机器人时,随着用户会话机器人将数据填入,数据可在主会话中变得可见。
在一些实施例中,用户可使机器人在客户端会话中执行工作流,该工作流转到网站、收集一些信息、并且使该信息可用于用户会话机器人或另一应用或过程,以访问例如在主会话中可见的电子数据表并在其中进行输入。在某些实施例中,应用(诸如
Figure BDA0003836266550000061
)在主会话中被打开。然后,用户或用户会话机器人在客户端会话中运行自动化,该自动化从主会话接收客户端ID、转到网站(例如,
Figure BDA0003836266550000062
)、并且收集与客户端与网站交互有关的信息。然而,在不偏离本发明的范围的情况下,有人值守的RPA机器人可与任何合适的(多个)应用交互和/或可从任何合适的源(例如,数据库、另一应用等)获得数据。
在一些实施例中,在主会话中运行的用户会话机器人的RPA工作流能够使客户端会话机器人在客户端会话中运行辅助工作流。在一些实施例中,对象可经由IPC在工作流之间来回传递,例如,数据可由用户会话机器人可访问的客户端会话机器人存储,等等。这对于工作流的部分需要相对较长的时间才能完成的情况可能是有益的。在阻止用户与他或她的计算系统交互的情况下,如果用户会话机器人执行所有工作流活动,则用户可能不进行生产(not productive)。然而,通过从不同会话操作机器人,一些实施例允许在机器人执行其任务时用户访问其他应用/实例。
一些实施例的应用包括但不限于仿真器、模拟器、虚拟机和提供 OS级虚拟化的混合虚拟机(例如
Figure BDA0003836266550000063
容器)。一些实施例创建并托管一个或多个机器人会话作为窗口,该窗口包括由相应的有人值守的自动化机器人控制的应用的UI。在某些实施例中,机器人会话窗口可仅包括客户端会话机器人正在与之交互的(多个)应用。如本文所用,“窗口”可适用于以下内容而不偏离本发明的范围:表示在主 UI内显示的UI的窗口、计算系统的第二显示器的第二屏幕、虚拟桌面、绘制在该环境内部启动的所有应用(被称为“子代”)的UI并且(在主机会话的上下文中)运行所有应用的隔离环境(也即,窗口,被称为“主机”),等等。
运行多个会话允许(多个)机器人在其(多个)会话中操作,同时用户和用户会话机器人与第一会话(例如,父会话)交互。因此,用户可与用户会话和客户端会话机器人当前未使用的应用交互(例如,用户可使用
Figure BDA0003836266550000071
,而用户会话机器人正在将数据从
Figure BDA0003836266550000072
移动到网络浏览器),或者用户和用户会话机器人和/或客户端会话机器人可能够与相同应用交互(如果该应用能够实现该功能的话)(例如,用户会话机器人或客户端会话机器人与Web浏览器中的一个实例交互,而用户与另一实例交互)。
在一些实施例中,用户和(多个)机器人两者均与相同的应用安装和文件系统交互。在一些实施例中,经由(多个)机器人和用户在应用中进行的改变将如同单个用户做出改变一样而被做出,而不是使用户和机器人各自对应用和文件系统的单独的版本起作用。换言之,这样的实施例中的应用是用户的本地
Figure BDA0003836266550000073
等。而且,本地文件系统可在无需附加配置的情况下被利用。这不同于
Figure BDA0003836266550000075
容器,例如,其要求附加的配置步骤以向在容器中运行的应用提供对主机操作系统文件系统的访问。
在一些实施例中,针对任何数目的机器人的任何期望数目的会话可被创建并使用而不偏离本发明的范围。例如,用户和用户会话机器人或另一应用或过程可在第一会话中操作,第一客户端会话机器人可在第二会话中操作、第二客户端会话机器人可在第三会话中操作,等等。在某些实施例中,多个机器人可在单个会话中操作,有可能轮流与一个或多个公共应用交互。
用于创建会话的功能可经由
Figure BDA0003836266550000076
终端服务子会话来实现。例如,其可在无需用户注销的情况下将会话创建回到用户自己的机器中。新创建的会话可显示为子窗口,并且可以含有并启动存在于用户会话中的应用。换言之,用户与机器人之间的分离发生在UI层。例如,如果文件被删除,则这跨运行在计算系统上的所有会话发生。
在一些实施例中,可使用混合虚拟机,例如
Figure BDA0003836266550000077
。混合虚拟机允许在容器内远程UI被用于运行应用和机器人。这样的实施例可隔离其中含有的机器人并在每个许可的基础上授予许可。机器人必须为容器外部的任何东西“打孔”。由此,容器本质上是它自己的沙盒,具有如何“逃逸”(例如,打开端口、安装文件夹等)的可配置许可。在某些实施例中,可使用全虚拟机。
某些实施例可用于机器人流程自动化(RPA)。图1是图示根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计并实现工作流的设计器110。设计器110可提供用于应用集成以及使第三方应用、管理信息技术(IT)任务以及业务IT流程自动化的解决方案。设计器110可促进对自动化项目的开发,其是业务过程的图形表示。简言之,设计器110促进对工作流和机器人的开发和部署。
自动化项目通过向开发者给出对执行顺序的控制和在工作流中开发的一组自定义步骤(在本文被定义为“活动”)之间的关系来实现对基于规则的过程的自动化。设计器110的实施例的一个业务示例是UiPath StudioTM。每个活动可包括动作,诸如点击按钮、读取文件、写入到登录面板、等等。在一些实施例中,工作流可被嵌套或嵌入。
一些类型的工作流可包括但不限于序列、流程图、FSM和/或全局异常处理机(handler)。序列可特别适合于线性过程,从而使能从一个活动到另一个的流而不使工作流杂乱无章。流程图可特别地适合于更复杂的业务逻辑,从而通过多分支逻辑运算符以更多样化的方式使能决策的整合和活动的连接。FSM可特别适合于大型工作流。FSM 可在它们的执行中使用有限数量的状态,其通过条件(即,转变)或活动触发。全局异常处理机可特别适合于在遇到运行错误时确定工作流行为以及用于调试过程。
一旦工作流在设计器110中被开发,业务过程的运行由指挥器 120精心安排,其精心安排执行在设计器110中所开发的工作流的一个或多个机器人130。指挥器120的实施例的一个业务示例是UiPath OrchestratorTM。指挥器120促进对在环境中对资源的创建、监测和部署的管理。指挥器120可充当与第三方解决方案和应用的整合点或聚集点之一
指挥器120可管理一群机器人130,从集中点连接并执行机器人 130。可被管理的机器人130的类型包括但不限于有人值守的机器人 132、无人值守的机器人134、开发机器人(类似于无人值守的机器人 134,但是用于开发和测试目的)、以及非生产机器人(类似于有人值守的机器人132,但是用于开发和测试目的)。有人值守的机器人 132可由用户事件触发或者被调度为自动发生,并且在相同计算系统上与人类并行地操作。有人值守的机器人132可由指挥器120用于集中化过程部署和日志记录介质。有人值守的机器人132可帮助人类用户完成各种任务,并且可由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器120开始和/或它们不能在锁屏下运行。在某些实施例中,有人值守的机器人132可仅仅从机器人托盘或从命令提示开始。在一些实施例中,有人值守的机器人132应当在人类监督下运行。
无人值守的机器人134无人值守地运行在虚拟环境中或物理机器上并且能够使许多流程自动化。无人值守的机器人134可负责远程执行、监测、调度、以及提供针对工作队列的支持。在一些实施例中,针对所有机器人类型的调试可从设计器110运行。有人值守的机器人和无人值守的机器人两者可自动化各种系统和应用,包括但不限于大型机、web应用、VM、企业应用(例如,由
Figure BDA0003836266550000091
等生产的那些)以及计算系统应用(例如,桌面和膝上型应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可具有各种能力,包括但不限于预置、部署、版本管理、配置、排队、监测、日志记录、和/或提供相互连接性。预置可包括创建并维护机器人130与指挥器120之间的连接(例如,web应用)。部署可包括确保正确递送封装版本到所分配的机器人130以用于执行。在一些实施例中,版本管理可包括管理一些过程或配置的唯一实例。配置可包括对机器人环境和过程配置的维护和递送。排队可包括提供对队列和队列项的管理。监测可包括跟踪机器人标识数据并维护用户权限。日志记录可包括将日志存储并索引到数据库(例如,SQL 数据库)和/或另一存储机制(例如,
Figure BDA0003836266550000101
,其提供存储并快速查询大数据集的能力)。指挥器120可通过充当针对第三方解决方案和/或应用的集中通信点来提供相互连接性。
机器人130是运行在设计器110中所建立的工作流的执行代理。 (多个)机器人130的一些实施例的一个业务示例是UiPath机器人TM。在一些实施例中,机器人130默认安装微软
Figure BDA0003836266550000102
服务控制管理器(SCM)管理的服务。因此,这样的机器人130可在本地系统账户下打开交互式
Figure BDA0003836266550000103
会话并且具有
Figure BDA0003836266550000104
服务的权利。
在一些实施例中,机器人130可按用户模式被安装。对于这样的机器人130,这意味着它们与在其下给定机器人130已经被安装的用户具有相同的权利。该特征也可可用于高密度(HD)机器人,其确保以其最大可能对每个机器的完全利用。在一些实施例中,任何类型的机器人130可被配置在HD环境中。
在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定自动化任务。在一些实施例中,机器人组件包括但不限于SCM 管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。 SCM管理的机器人服务管理并监测
Figure BDA0003836266550000105
会话并充当指挥器120 与执行主机(即,机器人130被执行在其上的计算系统)之间的代理方。这些服务利用针对机器人130的证书受信任并管理该证书。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理并监测
Figure BDA0003836266550000106
会话并充当指挥器120与执行主机之间的代理方(proxy)。用户模式机器人服务利用针对机器人130的证书受信任并管理该证书。如果 SCM管理的机器人服务未被安装,
Figure BDA0003836266550000108
应用可被自动启动。
执行者可在
Figure BDA0003836266550000107
会话下运行给定作业(即,它们可执行工作流)。执行器可意识到每个监测器的每英寸点数(DPI)设置。代理可为显示系统托盘窗口中的可用作业的
Figure BDA0003836266550000109
展示架构(WPF)。代理可为服务的客户端。代理可请求开始或停止作业并改变设置。命令行是服务的客户端。命令行是可请求开始作业并等待它们的输出的控制台应用。
使机器人130的组件如以上所解释的拆分帮助开发者、支持用户和计算系统更容易地运行,标识并跟踪每个组件正在执行什么。特殊行为可针对每个组件以这种方式被配置,诸如建立针对执行器和服务的不同防火墙规则。在一些实施例中,执行器可总是知道每个监测器的DPI设置。因此,工作流可在任何DPI被执行,不管它们被创建在其上的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可独立于浏览器缩放水平。对于不知道DPI或有意标记为不知道 DPI的应用,在一些实施例中,DPI可被禁用。
图2是图示根据本发明的实施例的所部署的RPA系统200的架构图。在一些实施例中,RPA系统200可为图1的RPA系统100或可为其部分。应当指出,客户端侧、服务器侧、或两者可包括任何期望数目的计算系统而不偏离本发明的范围。在客户端侧,机器人应用 210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可没有正在运行在计算系统210上。执行器212正在运行过程。若干业务项目可同时运行,如图2所示。在该实施例中,代理 214(例如,
Figure BDA0003836266550000111
服务)是针对所有执行器212的单个接触点。在该实施例中,所有消息被日志记录到指挥器230中,其经由数据库服务器240、索引器服务器250或两者进一步处理它们。如以上参考图1所论述的,执行器212可为机器人组件。
在一些实施例中,机器人表示机器名与用户名之间的关联。机器人可同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如,
Figure BDA0003836266550000112
服务器2012)上,多个机器人可正在同时运行,各自在单独的
Figure BDA0003836266550000113
会话中使用唯一的用户名。这被称为上述HD机器人。
代理214还负责发送机器人的状态(例如,周期性地发送指示机器人仍然正在起作用的“心跳”消息)并下载要被执行的封装的所需版本。在一些实施例中,代理214与指挥器230之间的通信总是由代理214发起。在通知的情形中,代理214可打开稍后由指挥器230用来将命令发送给机器人(例如,开始、停止等)的WebSocket通道。
在服务器侧上,包括:表示层(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。例如,用户可创建机器人组、将封装分配给机器人、分析针对每个机器人和/或每个过程的日志,开始和停止机器人,等等。
除了web应用232,指挥器230还包括公开OData REST API端点234的服务层。然而,其他端点可被包括而不偏离本发明的范围。 REST API由web应用232和代理214耗用。在该实施例中,代理214 是客户端计算机上的一个或多个机器人的监督者。
在该实施例中,REST API覆盖配置、日志记录、监测、和排队功能。在一些实施例中,配置端点可用于定义并配置应用用户、权限、机器人、资产、发布和环境。例如,日志记录REST端点可用于日志记录不同的信息,例如,诸如错误、由机器人发送的显式消息、以及其他特定于环境的信息。部署REST端点可由机器人用于查询如果在指挥器230中使用开始作业命令应当被执行的封装版本。队列REST 端点可负责队列和队列项管理,诸如将数据添加到队列,获得来自队列的事务,设置事务的状态,等等。
监测REST端点可监测web应用232和代理214。通知和监测API 236可为用于注册代理214、将配置设置递送到代理214、并且用于发送/接收来自服务器和代理214的通知的REST端点。在一些实施例中,通知和监测API 236还可使用WebSocket通信。
在该实施例中,持久层包括一对服务器,数据库服务器240(例如,SQL服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人、机器人组、相关联的过程、用户、角色(role)、调度等的配置。在一些实施例中,该信息通过web应用232来管理。数据库服务器240可管理队列和队列项。在一些实施例中,数据库服务器240可存储由机器人日志记录的消息(除了或代替索引器服务器 250)。
索引器服务器250,其在一些实施例中是可选的,存储并索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可通过配置设置被禁用。在一些实施例中,索引器服务器250使用
Figure BDA0003836266550000131
,其是开源项目全文本搜索引擎。由机器人日志记录的消息(例如,使用如日志消息或写入行的活动)可通过(多个)日志记录的REST端点被发送到索引器服务器250,其中它们被索引以用于未来利用。
图3是图示根据本发明的实施例的设计器310、活动320、330以及驱动程序340之间的关系300的架构图。按照上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可包括用户定义的活动320和UI自动化活动330。一些实施例能够标识图像中的非文本视觉组件,其在本文被称为计算机视觉(CV)。一些涉及这样的组件的CV活动可包括但不限于点击、打字、获得文本、悬停、元件存在、刷新范围、突出显示等。点击在一些实施例中使用例如CV、光学字符识别(OCR)、模糊文本匹配、以及多锚来标识元素并且点击它。打字可使用上述来标识元素并在元素中打字。获得文本可使用OCR来标识特定文本的位置并且扫描它。悬停可标识元素并悬停在它上方。元素存在可使用以上描述的技术来检查元素是否存在于屏幕上。在一些实施例中,可存在数百或甚至数千可被实现于设计器310 中的活动。然而,任何数目和/或类型的活动可为可用的而不偏离本发明的范围。
UI自动化活动330是以较低层代码编写并且促进通过UI层与应用的交互的特殊的较低水平的活动(例如CV活动)的子集。在某些实施例中,UI自动化活动300可模拟”例如通过窗口消息等的用户输入。UI自动化活动330经由允许机器人与期望软件交互的驱动器340促进这些交互。例如,驱动程序340可包括OS驱动程序342、浏览器驱动程序344、VM驱动程序346、企业应用驱动程序348等。
驱动程序340可在低层次上与OS交互,查找钩子、监测密钥等。它们可促进与
Figure BDA0003836266550000141
等的集成。例如,“点击”活动在这些不同应用中经由驱动器340执行相同作用。
图4是图示根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可为或包括图1和/或图2的RPA系统 100和/或200。RPA系统400包括运行机器人的多个客户端计算系统 410。计算系统410能够经由运行在其上的web应用与指挥器计算系统420通信。指挥器计算系统420继而能够与数据服务器430和可选的索引器服务器400通信。
关于图1和图3,应当指出,尽管web应用被使用在这些实施例中,但是任何合适的客户端和/或服务器软件可被使用而不偏离本发明的范围。例如,指挥器可运行与客户端计算系统上的非基于web的客户端软件应用通信的服务器侧应用。
图5是图示根据本发明的实施例的被配置为支持针对RPA机器人的会话间自动化的计算系统500的架构图。在一些实施例中,计算系统500可为本文描绘和/或描述的计算系统中的一个或多个。计算系统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)、第五代(5G)、新无线电(NR)、其任何组合和/或任何其他当前存在或未来实现的通信标准和/或协议而不偏离本发明的范围。在一些实施例中,通信设备520 可包括一个或多个天线,其是单一的、阵列的、相控的、交换的、波束形成的、波束操纵的、其组合和或任何其他天线配置而不偏离本发明的范围。
(多个)处理器510还经由总线505被耦合到用于将信息显示给用户的显示器525,诸如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED) 显示器、柔性OLED显示器、柔性基板显示器、投影显示器、4K显示器、高清显示器、视网膜
Figure BDA0003836266550000161
显示器、面内交换(IPS)显示器、或任何其他合适的显示器。显示器525可被配置为使用电阻性、电容性、表面声波(SAW)电容性、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多触摸显示器等。任何合适的显示设备和触觉I/O可被使用而不偏离本发明的范围。
键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)还被耦合到总线505以使得用户能够与计算系统500接口连接。然而,在某些实施例中,物理键盘和鼠标可不存在,并且用户可仅仅通过显示器525和/或触摸板(未示出)与设备交互。任何类型和组合的输入设备可被用作设计选择的问题。在某些实施例中,没有物理输入设备和/或显示器存在。例如,用户可经由与之通信的另一计算系统远程地与计算系统500交互,或者计算系统500可自主操作。
存储器515存储提供当由(多个)处理器510执行时提供功能的软件模块。模块包括针对计算系统500的操作系统540。模块还包括会话间自动化模块545,其被配置为执行本文描述的过程中的全部或部分或其衍生物。计算系统500可包括包含附加功能的一个或多个附加功能模块550。
本领域技术人员将认识到,“系统”可被体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任何其他适当的计算设备、或设备的组合而不偏离本发明的范围。将上述功能呈现为由“系统”执行不旨在以任何方式限制本发明的范围而是旨在提供本发明的许多实施例的一个示例。实际上,本文中公开的方法、系统和装置可按与包括云计算系统的计算技术一致的本地和分布式形式执行。
应当注意,本说明书中描述的系统特征中的一些已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可被实现为硬件电路,包含定制超大规模集成(VLSI)电路或门阵列、现货半导体 (诸如逻辑芯片、晶体管或其他分立组件)。模块还可被实现在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等等的可编程硬件设备中。
模块还可至少部分以用于由各种类型的处理器执行的软件来实现。可执行代码的所标识的单元可例如包括可例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,所标识的模块的可执行件不需要物理上定位在一起而是可包括存储在不同位置中的不同指令,其当在逻辑上一起联接时,包含该模块并实现该模块的所陈述的目的。另外,模块可被存储在计算机可读介质上,计算机可读介质可例如为硬盘驱动器、闪速设备、RAM、磁带、和/或用于存储数据的任何其他这样的非瞬态计算机可读介质而不偏离本发明的范围。
实际上,可执行代码的模块可为单个指令、或许多指令,并且可甚至被分布在若干不同代码段上、在不同程序中、和跨若干存储器设备分布。类似地,操作数据可在本文中在模块内被标识和图示并且可按任何适当的形式体现并组织在任何适当类型的数据结构内。操作数据可被收集为单个数据集或可被分布在不同位置上,包括在不同存储设备上,并且可至少部分地仅仅作为电子信号存在于系统或网络上。
按照上文,在有人值守的自动化中,机器人与用户在相同计算系统上并行工作。由于RPA中的机器人常常以类似方式与计算系统交互(例如,生成鼠标点击和按键事件,经由API(例如,使用窗口消息)模拟这些事件等),一些实施例创建一个或多个机器人会话来托管并运行其中的有人值守的自动化。不像现有RPA系统,用户可受益于在(多个)机器人正在(多个)机器人会话中运行有人值守的自动化时与他们的计算系统交互的能力。在一些实施例中,用户可仍然监测机器人正在做什么并且通过用于(多个)机器人会话的(多个) 托管自动化窗口与机器人交互。这将RPA机器人从仅仅比人类用户更快且更可靠地做任务有效地演变到成为可与用户并行执行工作的真正数字助理,从而提供甚至更大的生产力提升。在一些实施例中,用户和(多个)机器人会话可正在运行在由用户的计算系统控制的远程机器上。
在某些实施例中,RPA机器人可正在运行在用户的计算系统上并且通过远程运行时(例如,经由UiPath远程运行时TM)驱动远程计算系统。UiPath远程运行时TM是促进远程应用(诸如Citrix虚拟应用和 DesktopsTM)或桌面与专用
Figure BDA0003836266550000181
扩展(例如,用于
Figure BDA0003836266550000182
Figure BDA0003836266550000183
扩展或用于
Figure BDA0003836266550000184
远程桌面的
Figure BDA0003836266550000185
扩展)之间的通信的组件。UiPath远程运行时TM收集与远程应用的靶向UI元素有关的信息并将该信息发送到对应的扩展使得选择器被直接生成在UI ExplorerTM中。在某些实施例中,机器人可使用微软的AppV技术,该技术将客户端应用“虚拟地递送”到机器。
如之前所陈述的,在一些实施例中,用户和机器人两者均正在与相同的应用实例和文件系统交互。图6图示了根据本发明的实施例的由用户在用户会话610中以及RPA机器人在机器人会话620中访问的用户计算系统600的一些应用和文件系统660。如可在图6中看出的,web浏览器应用630、电子数据表应用640、以及电子邮件应用 650可由用户会话610和有人值守的自动化机器人会话620两者访问。用户会话610和有人值守的自动化机器人会话620可同时与网络浏览器应用630和电子邮件应用650交互。
然而,当机器人正在与
Figure BDA0003836266550000186
电子数据表应用640的相同文件交互时,用户不能与该应用交互(例如,用户可仅仅能够打开“只读”视图或者用户可被完全阻止打开文件)。然而,如果自动化正在使用 Office 365API来使用在用户的
Figure BDA0003836266550000187
上托管的电子数据表,并且用户正在通过web界面访问电子数据表,则可不存在这样的限制。例如,Google
Figure BDA0003836266550000191
完全是网络递送的,并且支持并发访问。用户可接收指示电子数据表应用640被锁定、正由另一“用户”(即,机器人)访问等的消息。用户会话610和有人值守的自动化机器人过程620 两者也可与文件系统660交互。因此,经由机器人和用户经由它们各自的会话在应用中进行的改变将被做出,如同单个用户做出改变一样,而不是使用户和机器人各自对应用和文件系统的单独的版本起作用。
图7A-J是图示根据本发明的实施例的使用在客户端会话中运行的RPA机器人和在用户会话中运行的用户会话机器人或另一应用或过程来完成用户会话中的表单的示例的屏幕截图。在图7A中,图示了用户会话窗口700,其中用户能够与UI中的应用交互,并且当前没有机器人正在执行。机器人托盘图标710在用户会话窗口700的右下部分可见。
在图7B中,用户启动web浏览器并访问发票创建网页720。在图7C中,用户拉起机器人托盘712(例如,通过点击机器人托盘图标710)并选择用户会话机器人选项714,以在用户会话中在他或她的计算系统上执行。在选择用户会话机器人选项714之后,出现用户会话机器人窗口730。参见图7D。在该实施例中,用户会话机器人仅显示状态消息。然而,用户会话机器人可具有任何期望的工作流功能,而不偏离本发明的范围。在一些实施例中,用户会话机器人自动启动客户端会话机器人,或者选择选项以运行用户会话机器人自动启动在它们各自的会话中的两个机器人。
在一些实施例中,不为用户会话机器人显示窗口,用户会话机器人可在后台运行。在某些实施例中,另一应用或过程执行用户会话机器人的功能。该功能可包括但不限于与一个或多个客户端会话机器人通信、检索由(多个)客户端会话机器人提供的数据、与在用户会话中运行的应用交互以输入检索到的信息等。在一些实施例中,不是使用用户会话机器人、另一应用或另一过程,而是由应该被输入由客户端会话机器人检索到的信息的应用本身来进行输入。在一些实施例中,这可在不模拟鼠标点击、按键等的情况下完成。
在图7E中,用户拉起机器人托盘712并选择客户端会话机器人选项716,以在客户端会话中在他或她的计算系统上执行。在选择客户端会话机器人选项716之后,用于机器人会话的客户端会话窗口 740作为子窗口出现在屏幕上,如图7F所示。然而,在一些实施例中,不显示客户端会话窗口740,并且客户端会话机器人在客户端会话中运行,而对用户不可见。在该实施例中,用于客户端会话机器人的客户端会话机器人窗口742在客户端会话窗口740内自动启动,并且包括按钮744以获取用于用户会话中的网页720的表单数据。
在一些实施例中,不显示机器人会话窗口,并且客户端会话机器人可在对用户不可见的情况下自动启动、操作和关闭。在某些实施例中,客户端会话机器人可在完成其工作流之后关闭其会话。在一些实施例中,不是从机器人托盘启动,而是可以发起客户端会话,并且客户端会话机器人可在不使用机器人托盘712的情况下启动和操作(例如,由于用户点击主会话的应用中的按钮)。
转到图7G,在用户点击按钮744之后,客户端会话机器人开始获取用于网页720的表单数据。由客户端会话机器人获取的数据可经由IPC提供给用户会话机器人、存储在电子数据表中、面向对象的数据库、纯文本文件等中,或者以其他方式被传达给用户会话机器人或被可用于用户会话机器人。在客户端会话机器人完成其工作流之后,在客户端会话机器人窗口742中显示消息。参见图7H。用户会话机器人然后开始使用由客户端会话机器人获取的表单数据来填充网页 720的字段。当网页720未被另一个窗口覆盖或被最小化时,由用户会话机器人输入的文本对用户可见。在用户会话机器人完成表单的同时,用户可与其他应用交互并继续保持生产力。
转到图7I,如从背景中可看出,用户会话机器人已经完成了网页 720中的表单字段。用户然后可关闭客户端会话窗口740和用户会话机器人窗口730,用户会话机器人或客户端会话机器人可自动关闭客户端会话,或者客户端会话窗口740可保持打开。然后,用户可提交完成的表单。参见图7J。
图8是图示根据本发明的实施例的用于会话间自动化的过程800 的流程图。该过程开始于在810处启动用户会话窗口。例如,它可以是与在用户计算系统上运行的操作系统相关联的主窗口。然后,在820 处,在用户会话中发起用户会话过程(例如,RPA机器人、应用、另一过程等)。在830处,启动客户端会话,并且在840处,在客户端会话中发起客户端会话机器人。在一些实施例中,例如,客户端会话可响应于客户端会话机器人被发起而被启动或以其他方式被启动。客户端会话机器人然后在850处执行其工作流。在一些实施例中,由客户端会话机器人检索到的数据和/或采取的动作可被提供给用户会话过程或可用于用户会话过程。然后,用户会话过程在860访问由客户端会话机器人产生的数据,并且在870处基于该数据与适当的(多个) 应用(例如,网页、电子数据表、ERP应用、销售应用等)交互。在一些实施例中,与之交互的(多个)应用可为用户会话过程本身。在客户端会话机器人完成其执行之后,在一些实施例中,可在880处自动结束客户端会话。
在一些实施例中,客户端会话可经由操作系统的子会话API来创建。由操作系统提供的
Figure BDA0003836266550000211
终止服务子会话或另一子会话可在一些实施例中用于创建第二会话而不偏离本发明的范围。机器人托盘应用(例如,
Figure BDA0003836266550000212
机器人代理桌面)或被配置为启动(多个)机器人的另一应用可然后利用合适的参数使用操作系统中的创建过程来在该子会话中启动机器人过程。机器人托盘应用或其他合适的应用可然后使用合适的协议(例如,在命名的管线上建立的协议)与客户端机器人过程通信。
在一些实施例中,在两个会话之间与客户端机器人通信可使用 IPC协议来完成。这些协议可促进经由网络、管线、组件对象模型 (COM)、远程过程调用(RPC)、套接字等的通信。在支持的情况下,合适的会话创建机制和IPC协议可也用于其他操作系统。当用户点击机器人托盘上的按钮或者使得另一个应用发起这样的功能(例如,通过点击按钮)时,机器人托盘应用或其他合适的应用可使用IPC 协议将该命令发送到客户端会话机器人过程。客户端会话机器人可也经由IPC协议将状态通知发送回到机器人托盘应用或其他合适的过程(例如,指示机器人正在启动、运行、暂停等)。
图9是图示根据本发明的实施例的会话间自动化的过程900的流程图,其中一个机器人在用户会话中运行,而另一个机器人在客户端会话中运行。该过程开始于在910处开始执行用户会话机器人工作流。当用户会话机器人在920处到达其工作流中要求客户端机器人执行的活动时,在930处,用户会话机器人使客户端会话机器人执行其工作流并等待其完成。
在940处,客户端会话机器人完成其工作流并通知用户会话机器人。在950处,用户会话机器人然后使用客户端会话机器人执行的结果来完成用户会话机器人工作流的其余部分。在一些实施例中,用户会话机器人和客户端会话机器人共同完成单个逻辑工作流。
在某些实施例中,可使用多个客户端会话机器人,并且可能至少一些客户端会话机器人在不同的客户端会话中被使用。这可使得用户会话机器人能够将工作流活动的部分传递给客户端会话机器人以完成。图10图示了根据本发明的实施例的场景1000,其中工作流的一部分由用户会话机器人完成,而工作流的其他部分由客户端会话机器人完成。用户会话1010包括用户会话机器人1012和应用1014。第一客户端会话1020包括客户端会话机器人1022,第二客户端会话1030 包括两个客户端会话机器人1032、1034,并且第三客户端会话1040 包括客户端会话机器人1042。例如,用户会话机器人1012可经由IPC 与客户端会话机器人1022、1032、1034、1042通信并控制其操作。应当注意,在一些实施例中,在(多个)客户端会话机器人完成它们各自的工作流的同时,用户会话机器人继续执行其工作流。
图11是图示根据本发明的实施例的用户会话机器人U1与一对客户端会话机器人C1和C2之间的多机器人集合工作流的执行的流程图1100。C1和C2可处于相同的客户端会话或不同的客户端会话中。U1开始执行其工作流,并且到达要求C1完成工作流的活动。U1使C1执行其工作流,并且该调用活动等待。在此期间,在一些实施例中,U1可执行其他任务。
C1完成其工作流之后,U1继续执行,直到其到达要求C2完成工作流的活动。U1使C2执行其工作流,并且该调用活动等待。在一些实施例中,U1再次可在等待C2的同时执行其他任务。
C2完成其工作流之后,U1继续执行,直到其到达再次要求C1 完成工作流的活动。这可为与先前执行的活动相同的工作流活动,也可为不同的工作流或活动集。U1使C1执行其工作流,并且该调用活动等待。在一些实施例中,U1再次可在等待C1的同时执行其他任务。在C1完成其工作流之后,U1继续执行,直到U1的工作流完成。
根据本发明的实施例,图8、9和11中执行的过程步骤可由计算机程序执行,计算机程序编码用于(多个)处理器执行图8、9和11 中描述的(多个)过程的至少部分的指令。计算机程序可被体现于非瞬态计算机可读介质上。计算机可读介质可为但不限于硬盘驱动器、闪速设备、RAM、磁带、和/或任何其他这样的介质或用于存储数据的介质的组合。计算机程序可包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)实现图8、9 和11中描述的过程步骤中的全部或部分的编码指令,其也可被存储于计算机可读介质上。
计算机程序可按硬件、软件或混合实现来实现。计算机程序可由与彼此操作性通信、并且被设计为传递信息或指令以显示的模块组成。计算机程序可被配置为在通用计算机、ASIC或任何其他合适的设备上进行操作。
将容易理解如在本文的附图中大体描述的和说明的本发明的各种实施例的组件可按各种各样的不同配置来布置和设计。因此,如附图中表示的本发明的实施例的详细描述不旨在限制所要求保护的本发明的范围而是仅仅表示本发明的选定实施例。
贯穿本说明书描述的本发明的特征、结构或特性可按任何适当的方式被组合在一个或多个实施例中。例如,贯穿本说明书对“某些实施例”、“一些实施例”或“类似语言的引用意味着结合实施例描述的特定特征、结构或特性被包含在本发明的至少一个实施例中。因此,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言在整个说明书中的出现不必全部指代同一组实施例,并且所描述的特征、结构或特性可按任何适当的方式被组合在一个或多个实施例中。
应当指出,贯穿本说明书对特征、优点或类似语言的引用不暗示可利用本发明实现的特征和优点中的全部应当在本发明的任何单个实施例中或者是在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包含在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点以及类似语言的论述可但不必指代相同实施例。
另外,本发明的上述特征、优点和特性可按任何适当的方式被组合在一个或多个实施例中。相关领域技术人员将意识到能够在没有具体实施例的指定特征或优点中的一个或多个情况下实践本发明。在其他实例中,在可不存在于本发明的所有实施例中的某些实施例中意识到附加的特征和优点。
本领域普通技术人员将容易理解,可利用以不同顺序的步骤和/ 或利用以不同于所公开的那些的配置的硬件元件来实践如以上论述的本发明。因此,尽管已经基于优选实施例描述了本发明,但是对本领域技术人员将显而易见的是,某些修改、变型和备选结构将是显而易见的,同时保持在本发明的精神和范围内。为了确定本发明的范围,因此,应当对随附权利要求进行参考。

Claims (20)

1.一种计算机实现的方法,包括:
在用户会话中启动用户会话过程;
在第一客户端会话中启动第一客户端会话机器人流程自动化(RPA)机器人;
由所述第一客户端会话RPA机器人在所述第一客户端会话中执行所述第一客户端会话RPA机器人的工作流;
由所述第一客户端会话RPA机器人使所述第一客户端会话RPA机器人的所述工作流的所述执行的结果能够用于所述用户会话过程;以及
由所述用户会话过程使用所述第一客户端会话RPA机器人的所述工作流的所述执行的所述结果与所述用户会话中的应用交互。
2.根据权利要求1所述的计算机实现的方法,其中
在所述用户会话中与所述应用的所述交互包括将信息输入表单中,并且
所述RPA工作流的所述执行的所述结果包括由所述用户会话过程使用以将所述信息输入所述表单中的数据。
3.根据权利要求1所述的计算机实现的方法,其中所述用户会话过程包括RPA机器人。
4.根据权利要求1所述的计算机实现的方法,其中所述第一客户端会话RPA机器人在与所述第一客户端会话相关联的窗口中是可见的。
5.根据权利要求1所述的计算机实现的方法,其中所述第一客户端会话RPA机器人是不可见的。
6.根据权利要求1所述的计算机实现的方法,其中所述用户会话过程等待所述第一客户端会话RPA机器人完成所述第一客户端会话RPA机器人的所述工作流的所述执行。
7.根据权利要求1所述的计算机实现的方法,其中所述用户会话过程在等待所述第一客户端会话RPA机器人完成所述第一客户端会话RPA机器人的所述工作流的所述执行的同时执行其他任务。
8.根据权利要求1所述的计算机实现的方法,还包括:
在所述第一客户端会话或第二客户端会话中启动第二客户端会话RPA机器人;
由所述第二客户端会话RPA机器人在所述第一客户端会话或所述第二客户端会话中执行所述第二客户端会话RPA机器人的工作流;
由所述第二客户端会话RPA机器人使所述第二客户端会话RPA机器人的所述工作流的所述执行的结果能够用于所述用户会话过程。
9.根据权利要求1所述的计算机实现的方法,其中所述第一客户端会话和所述第一客户端会话RPA机器人由所述用户会话过程启动。
10.根据权利要求1所述的计算机实现的方法,还包括:
在所述第一客户端会话RPA机器人完成所述第一客户端会话RPA机器人的所述工作流的执行之后,自动关闭所述第一客户端会话RPA机器人和所述第一客户端会话。
11.根据权利要求1所述的计算机实现的方法,其中所述用户会话过程包括RPA机器人,并且所述用户会话RPA机器人和所述第一客户端会话RPA机器人共同完成包括所述第一客户端会话RPA机器人的所述工作流的更大的工作流的执行。
12.一种计算机实现的方法,包括:
由客户端会话机器人流程自动化(RPA)机器人在客户端会话中执行所述客户端会话RPA机器人的工作流;
由所述客户端会话RPA机器人使所述客户端会话RPA机器人的所述工作流的所述执行的结果能够用于用户会话RPA机器人;以及
由所述用户会话RPA机器人使用所述客户端会话RPA机器人的所述工作流的所述执行的所述结果与计算系统上的应用交互。
13.根据权利要求12所述的计算机实现的方法,其中
与所述计算系统上的所述应用的所述交互包括将信息输入表单中,并且
所述RPA工作流的所述执行的所述结果包括由所述用户会话RPA机器人使用以将所述信息输入所述表单中的数据。
14.根据权利要求12所述的计算机实现的方法,其中所述用户会话RPA机器人等待所述客户端会话RPA机器人完成所述客户端会话RPA机器人的所述工作流的所述执行。
15.根据权利要求12所述的计算机实现的方法,其中所述用户会话RPA机器人在等待所述客户端会话RPA机器人完成所述客户端会话RPA机器人的所述工作流的所述执行的同时执行其他任务。
16.根据权利要求12所述的计算机实现的方法,还包括:
由所述用户会话RPA机器人经由过程间通信(IPC)命令所述客户端会话RPA机器人执行所述客户端会话RPA机器人的所述工作流;以及
由所述用户会话RPA机器人接收所述客户端会话RPA机器人的所述工作流的所述执行的所述结果。
17.根据权利要求12所述的计算机实现的方法,其中所述用户会话RPA机器人和所述客户端会话RPA机器人共同完成包括所述客户端会话RPA机器人的所述工作流的更大的工作流的执行。
18.一种计算机实现的方法,包括:
由客户端会话机器人流程自动化(RPA)机器人在客户端会话中执行所述客户端会话RPA机器人的工作流;
由所述客户端会话RPA机器人使所述客户端会话RPA机器人的所述工作流的所述执行的结果能够用于用户会话RPA机器人;以及
由所述用户会话RPA机器人使用所述客户端会话RPA机器人的所述工作流的所述执行的所述结果与计算系统上的应用交互,其中
所述用户会话RPA机器人和所述客户端会话RPA机器人共同完成包括所述客户端会话RPB机器人的所述工作流的更大的工作流的执行。
19.根据权利要求18所述的计算机实现的方法,还包括:
由所述用户会话RPA机器人经由过程间通信(IPC)命令所述客户端会话RPA机器人执行所述客户端会话RPA机器人的所述工作流;以及
由所述用户会话RPA机器人接收所述客户端会话RPA机器人的所述工作流的所述执行的所述结果。
20.根据权利要求18所述的计算机实现的方法,其中
在所述用户会话中与所述应用的所述交互包括将信息输入表单中,并且
所述RPA工作流的所述执行的所述结果包括由所述用户会话RPA机器人使用以将所述信息输入所述表单中的数据。
CN202080098225.9A 2020-02-18 2020-12-09 针对机器人流程自动化(rpa)机器人的会话间自动化 Pending CN115243838A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/793,064 US10654166B1 (en) 2020-02-18 2020-02-18 Automation windows for robotic process automation
US16/793,064 2020-02-18
US15/930,906 2020-05-13
US15/930,906 US11233861B2 (en) 2020-02-18 2020-05-13 Inter-session automation for robotic process automation (RPA) robots
PCT/US2020/063964 WO2021167680A1 (en) 2020-02-18 2020-12-09 Inter-session automation for robotic process automation (rpa) robots

Publications (1)

Publication Number Publication Date
CN115243838A true CN115243838A (zh) 2022-10-25

Family

ID=77273002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080098225.9A Pending CN115243838A (zh) 2020-02-18 2020-12-09 针对机器人流程自动化(rpa)机器人的会话间自动化

Country Status (5)

Country Link
US (2) US11233861B2 (zh)
EP (1) EP4106955A4 (zh)
JP (1) JP2023514683A (zh)
CN (1) CN115243838A (zh)
WO (1) WO2021167680A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860905B1 (en) * 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation
US11334465B2 (en) 2019-10-16 2022-05-17 UiPath, Inc. Long running workflows for robotic process automation
US11233861B2 (en) 2020-02-18 2022-01-25 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots
US10654166B1 (en) * 2020-02-18 2020-05-19 UiPath, Inc. Automation windows for robotic process automation
US11392477B2 (en) 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
US20220066794A1 (en) * 2020-08-28 2022-03-03 UiPath, Inc. Robotic process automation data connector
CN113742007A (zh) * 2021-08-25 2021-12-03 上海艺赛旗软件股份有限公司 一种rpa流程运行方法、系统及存储介质
US11782736B2 (en) * 2021-11-05 2023-10-10 Jpmorgan Chase Bank, N.A. System and method for implementing an attended automation module
US12101373B2 (en) 2022-03-31 2024-09-24 UiPath Inc. Systems and methods for using a browser to design robotic process automation (RPA) robots
CN117076036B (zh) * 2023-10-16 2024-02-13 杭州实在智能科技有限公司 用于远程计算机上的rpa流程无人值守方法及系统

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5627128A (en) 1979-08-10 1981-03-16 Canon Inc Copying apparatus
US7080385B1 (en) 1997-08-18 2006-07-18 Tibco Software Inc. Certified message delivery and queuing in multipoint publish/subscribe communications
US7013465B1 (en) 1999-08-17 2006-03-14 Emc Corporation System, device and method for interprocessor communication in a computer system
SE0004466D0 (sv) * 2000-12-04 2000-12-04 Abb Ab Mobile Robot
JP2002192486A (ja) * 2000-12-25 2002-07-10 Seiko Epson Corp ロボット制御方法及び該方法を適用したロボットコントローラ
US7437715B2 (en) 2002-04-09 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for generating a set of robot commands based on user entry events in a user interface
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US7478402B2 (en) 2004-02-12 2009-01-13 Microsoft Corporation Configurable message pipelines
US7346607B2 (en) 2004-05-17 2008-03-18 International Business Machines Corporation System, method, and software to automate and assist web research tasks
JP4671628B2 (ja) 2004-06-16 2011-04-20 ソニー株式会社 ロボット装置の制御システム及び制御方法
US20060184293A1 (en) 2005-02-18 2006-08-17 Stephanos Konandreas Autonomous surface cleaning robot for wet cleaning
US8265793B2 (en) 2007-03-20 2012-09-11 Irobot Corporation Mobile robot for telecommunication
US8997115B2 (en) 2007-08-31 2015-03-31 International Business Machines Corporation Method for data delivery in a network
US8402431B2 (en) 2008-04-09 2013-03-19 Renesas Electronics America Inc. System and method for communicating with a microcontroller
US8756608B2 (en) 2009-07-01 2014-06-17 International Business Machines Corporation Method and system for performance isolation in virtualized environments
US8448139B2 (en) 2009-10-05 2013-05-21 International Business Machines Corporation Automatic correction of application based on runtime behavior
WO2011103425A1 (en) * 2010-02-18 2011-08-25 Sa Ignite, Inc. Systems and methods for monitoring and enhancing software applications
US9799004B2 (en) 2010-07-30 2017-10-24 Avaya Inc. System and method for multi-model, context-aware visualization, notification, aggregation and formation
US9552056B1 (en) * 2011-08-27 2017-01-24 Fellow Robots, Inc. Gesture enabled telepresence robot and system
EP2642395B1 (de) 2012-03-21 2018-12-19 ServiceTrace e.K. Verfahren und Vorrichtung zum Ausführen von Workflow-Skripten
WO2016014137A2 (en) 2014-05-06 2016-01-28 Neurala, Inc. Apparatuses, methods, and systems for defining hardware-agnostic brains for autonomous robots
US10185590B2 (en) 2014-06-16 2019-01-22 Amazon Technologies, Inc. Mobile and remote runtime integration
US10585548B2 (en) 2015-03-03 2020-03-10 Soroco Private Limited Software robots for programmatically controlling computer programs to perform tasks
US9808933B2 (en) * 2015-04-03 2017-11-07 GM Global Technology Operations LLC Robotic system with reconfigurable end-effector assembly
EP3112965A1 (en) 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
EP3133539A1 (en) 2015-08-19 2017-02-22 Tata Consultancy Services Limited Method ans system for process automation in computing
WO2017144078A1 (en) 2016-02-23 2017-08-31 Abb Schweiz Ag Robot controller system and method therefor
EP3214510B1 (en) 2016-03-03 2021-06-30 Magazino GmbH Controlling process of robots having a behavior tree architecture
WO2017176917A1 (en) 2016-04-06 2017-10-12 Soroco Private Limited Techniques for implementing persistently interactive software robots
US10831802B2 (en) 2016-04-11 2020-11-10 Facebook, Inc. Techniques to respond to user requests using natural-language machine learning based on example conversations
US10469599B2 (en) 2016-08-04 2019-11-05 Koji Yoden Automatic setting up of application program in portable computing device
US10339027B2 (en) * 2016-09-06 2019-07-02 Accenture Global Solutions Limited Automation identification diagnostic tool
KR102628789B1 (ko) 2016-09-09 2024-01-25 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
WO2018078457A1 (en) 2016-10-28 2018-05-03 Calgary Scientific Inc. Multi-window architecture and data communication for a remote access application session
WO2018129271A1 (en) * 2017-01-05 2018-07-12 Soroco Private Limited Systems and methods for executing software robot computer programs on virtual machines
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US10324457B2 (en) 2017-05-11 2019-06-18 Global Eprocure Robotic process automation for supply chain management operations
US10682761B2 (en) 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US20190004932A1 (en) 2017-06-30 2019-01-03 Infinera Corporation Unit test and automation framework (utaf) system and method
US11138539B2 (en) * 2017-08-25 2021-10-05 Target Brands, Inc. Robtic business process automation system utilizing reusable task-based microbots
US20190122200A1 (en) 2017-10-24 2019-04-25 Bank Of America Corporation Robotic beacon device and system for remote triggering of events
US10437984B2 (en) 2017-10-26 2019-10-08 Bank Of America Corporation Authentication protocol elevation triggering system
US10503627B2 (en) 2017-10-30 2019-12-10 Bank Of America Corporation Robotic process automation enabled file dissection for error diagnosis and correction
US10686684B2 (en) 2017-11-02 2020-06-16 Bank Of America Corporation Individual application flow isotope tagging within a network infrastructure
US10839798B2 (en) * 2017-11-03 2020-11-17 Salesforce.Com, Inc. Intent interpreter for a visual bot builder
WO2019087194A1 (en) 2017-11-05 2019-05-09 Walkme Ltd. Chat-based application interface for automation
US11171989B1 (en) 2017-11-21 2021-11-09 Medallia, Inc. Secure messaging integration with messaging applications
US12085901B2 (en) 2017-11-21 2024-09-10 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US10810322B2 (en) 2017-12-05 2020-10-20 Microsoft Technology Licensing, Llc Sharing user information with and between bots
JP2019159556A (ja) 2018-03-09 2019-09-19 株式会社日本総合研究所 Rpa保守支援装置及びrpa保守支援プログラム
JP7054051B2 (ja) 2018-03-26 2022-04-13 日本電気株式会社 ソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラム
US20190303779A1 (en) 2018-04-03 2019-10-03 Walmart Apollo, Llc Digital worker management system
US10572316B2 (en) 2018-05-14 2020-02-25 International Business Machines Corporation Adaptable pages, widgets and features based on real time application performance
JP2020003905A (ja) 2018-06-26 2020-01-09 株式会社日本総合研究所 Rpa装置、rpaシステム、及びプログラム
WO2020006076A1 (en) * 2018-06-27 2020-01-02 Q2 Software, Inc. Method and system for automating web processes utilizing an abstractable underlying platform layer
US11325263B2 (en) 2018-06-29 2022-05-10 Teradyne, Inc. System and method for real-time robotic control
CN109118347B (zh) 2018-07-20 2022-12-27 苏宁易购集团股份有限公司 一种自动化协作方法及系统
JP6811214B2 (ja) 2018-07-26 2021-01-13 株式会社アクシオ 遠隔操作システム及びプログラム
CN109636504B (zh) 2018-11-07 2021-11-05 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储介质
US10710239B2 (en) 2018-11-08 2020-07-14 Bank Of America Corporation Intelligent control code update for robotic process automation
US11076022B2 (en) 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks
US11429433B2 (en) 2019-01-16 2022-08-30 Epiance Software Pvt. Ltd. Process discovery and automatic robotic scripts generation for distributed computing resources
US11034027B2 (en) 2019-02-01 2021-06-15 Locus Robotics Corp. Robot assisted personnel routing
JP6532626B1 (ja) 2019-04-02 2019-06-19 BizteX株式会社 社内ネットワーク上の社内サーバに対する操作を伴う業務プロセスを自動化するための装置、方法及びそのためのプログラム
CN110035088B (zh) * 2019-04-26 2021-08-24 厦门商集网络科技有限责任公司 基于rpa远程控制操作系统自动登录的方法及设备
US11243803B2 (en) * 2019-04-30 2022-02-08 Automation Anywhere, Inc. Platform agnostic robotic process automation
US11614731B2 (en) * 2019-04-30 2023-03-28 Automation Anywhere, Inc. Zero footprint robotic process automation system
US11113095B2 (en) * 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
US11042390B2 (en) * 2019-05-07 2021-06-22 International Business Machines Corporation Replaying operations on widgets in a graphical user interface
CN110286998B (zh) 2019-05-23 2022-08-02 南京苏宁软件技术有限公司 虚拟机图形用户界面生效、执行过程记录方法和装置
US11481420B2 (en) 2019-08-08 2022-10-25 Nice Ltd. Systems and methods for analyzing computer input to provide next action
CN110648054B (zh) 2019-09-04 2022-05-17 中国建设银行股份有限公司 机器人流程自动化的任务并行处理方法及装置
US11433536B2 (en) 2019-09-19 2022-09-06 UiPath, Inc. Process understanding for robotic process automation (RPA) using sequence extraction
US11366644B1 (en) * 2019-10-09 2022-06-21 Uipco, Llc Systems and methods for analyzing robotic process automation code
US11249729B2 (en) 2019-10-14 2022-02-15 UiPath Inc. Providing image and text data for automatic target selection in robotic process automation
US10860905B1 (en) 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation
US11593608B2 (en) * 2019-10-28 2023-02-28 Paypal, Inc. Systems and methods for predicting and providing automated online chat assistance
US12017362B2 (en) 2019-10-31 2024-06-25 Automation Anywhere, Inc. Productivity plugin for integration with robotic process automation
US11110601B2 (en) 2019-11-20 2021-09-07 UiPath, Inc. Scheduling robots for robotic process automation
US10911546B1 (en) * 2019-12-30 2021-02-02 Automation Anywhere, Inc. Robotic process automation with automated user login for multiple terminal server hosted user sessions
US11233861B2 (en) 2020-02-18 2022-01-25 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots
US10654166B1 (en) 2020-02-18 2020-05-19 UiPath, Inc. Automation windows for robotic process automation
US11157339B1 (en) 2020-07-09 2021-10-26 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
US11392477B2 (en) 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
US11733668B2 (en) 2020-07-09 2023-08-22 UiPath, Inc. Robot access control and governance for robotic process automation
US11343305B2 (en) 2020-09-01 2022-05-24 UiPath Inc. Systems and methods of automating a file download activity
US11200073B1 (en) * 2020-11-20 2021-12-14 UiPath, Inc. Automatic anchor determination and target graphical element identification in user interface automation
US11794348B2 (en) * 2021-07-28 2023-10-24 Sap Se Process assembly line with robotic process automation

Also Published As

Publication number Publication date
US20220150316A1 (en) 2022-05-12
EP4106955A4 (en) 2024-04-24
JP2023514683A (ja) 2023-04-07
US20210258389A1 (en) 2021-08-19
EP4106955A1 (en) 2022-12-28
WO2021167680A1 (en) 2021-08-26
US11818223B2 (en) 2023-11-14
US11233861B2 (en) 2022-01-25

Similar Documents

Publication Publication Date Title
CN113334371B (zh) 用于机器人流程自动化的自动化窗口
US11818223B2 (en) Inter-session automation for robotic process automation (RPA) robots
JP2023524917A (ja) ロボティックプロセスオートメーションのためのアプリケーション統合
JP7364588B2 (ja) 第2のセッションで実行されるロボティックプロセスオートメーションロボットを介して第1のセッションで実行されるプロセスの自動化
KR102476043B1 (ko) 제1 세션에서 실행되고 있는 프로세스의 제2 세션에서 실행되고 있는 로봇 프로세스 자동화 로봇을 통한 자동화

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination