CN113168168B - 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化 - Google Patents
经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化 Download PDFInfo
- Publication number
- CN113168168B CN113168168B CN202080002309.8A CN202080002309A CN113168168B CN 113168168 B CN113168168 B CN 113168168B CN 202080002309 A CN202080002309 A CN 202080002309A CN 113168168 B CN113168168 B CN 113168168B
- Authority
- CN
- China
- Prior art keywords
- session
- rpa
- robot
- ipc
- facilitator
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 230000008569 process Effects 0.000 title abstract description 75
- 238000004891 communication Methods 0.000 claims description 37
- 230000003993 interaction Effects 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013515 script Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 abstract description 9
- 238000012986 modification Methods 0.000 abstract description 9
- 238000004801 process automation Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 46
- 239000003795 chemical substances by application Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000013068 supply chain management Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000945 filler Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010897 surface acoustic wave method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101000857680 Xenopus laevis Runt-related transcription factor 1 Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012384 transportation and delivery 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/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
- 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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/048—Monitoring; Safety
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
-
- 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
- G06F2009/45566—Nested virtual machines
-
- 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
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了经由在第二会话中运行的(一个或多个)机器人流程自动化(RPA)机器人使在第一会话中运行的过程自动化。在一些方面中,表单被显示在用户会话中,但针对第一会话中的应用获取数据和/或与数据交互的一个或多个有人值守的RPA机器人在一个或多个其他会话中运行。以这种方式,当(一个或多个)RPA机器人正在运行时,(一个或多个)RPA机器人的操作可以不阻止用户使用其他应用或实例,但由(一个或多个)RPA机器人进行或促进的数据修改可以在第一会话窗口中对用户可见。
Description
相关申请的交叉引用
本申请要求于2020年7月9日提交的美国非临时专利申请第16/924,910号的权益。该早前提交的申请的主题以其整体内容通过引用并入于此。
技术领域
本申请大体上涉及机器人流程自动化(RPA),且更具体地涉及经由在第二会话中运行的(一个或多个)RPA机器人使在第一会话中运行的过程自动化。
背景技术
例如,有人值守的自动化RPA机器人通常在与用户所在的相同的会话中在由该用户操作的计算系统上运行。例如,在用户的命令下,RPA机器人可以与用户一起工作完成某些任务。然而,在有人值守的自动化场景中,RPA机器人可以“接管”用户的计算系统。在机器人与计算系统交互时,用户可能希望执行其他活动,但用户被阻止执行其他活动。换句话说,机器人以与用户相同的方式通过用户接口(UI)控制应用(例如模拟鼠标点击和键盘输入)。
存在创建操作系统或在其上运行的应用的完整或部分副本的各种技术。仿真器已经提出了数十年,且可以为开发者提供用于测试和调试应用的能力。例如,仿真器可以为开发者提供用于测试和调试移动应用的能力,该移动应用使用不支持直接运行开发工具的操作系统。和/>都提供了可从开发机器运行以测试和调试/>或应用的仿真器,这是由于开发者工具无法在那些移动操作系统上本机运行。
模拟器允许开发者在其本地机器上托管窗口,该本地机器让开发者测试和调试难以或无法对开发机器执行的应用的行为。例如,为了测试和调试对这些事件做出响应的应用行为,模拟器允许开发者点击按钮以使模拟器旋转,该按钮向在模拟器内部运行的应用告知设备已旋转。另一常见示例是多触摸。许多开发者机器不支持触摸,因此模拟器可以让开发者测试和调试应用如何对多个触摸点做出响应。和/>仿真器还提供模拟能力。此外,/>为其通用Windows平台(UWP)应用提供模拟器。
虚拟机在机器上托管第二操作系统,并且可以通过窗口被打开并且被监测。这运行完全不同的操作系统并且与主机共享硬件。“访客”机器必须安装其自身的应用副本,并且不能与用户机器共享公共资源或文件。
容器在概念上为虚拟机的混合形式。需要执行的所有应用都被封装于不可变包中,该不可变包在主机操作系统上直接被执行。包不是另一操作系统的完整副本,但该包不默认共享或无法访问主机上的任何应用或资源。因此,从用户体验的角度看,容器感觉上类似于虚拟机,但从技术上讲,这些容器并未在完全独立的操作系统上执行。
然而,提供操作系统(OS)级别虚拟化的常规仿真器、模拟器、虚拟机(VM)和混合VM(例如容器)不能解决在与用户相同的计算系统上操作的有人值守的自动化机器人出现的问题。因此,用户实质上变成了其自身的计算系统的旁观者,其监视机器人工作但无法与机器上的需要用户交互的其他应用交互。因此,一种改进的方法可以是有益的。
发明内容
本发明的某些实施例可以提供对本领域中尚未经当前RPA技术完全标识、理解或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及经由在第二会话中运行的(一个或多个)RPA机器人使在第一会话中运行的过程自动化。
在实施例中,一种计算机程序被实施在非暂态计算机可读介质上。该计算机程序被配置为使至少一个处理器:在第一会话中执行过程间通信(IPC)促进器和RPA驱动;以及在第二会话中执行RPA机器人。该计算机程序还被配置为使至少一个处理器:由IPC促进器经由IPC从RPA机器人接收一个或多个消息;以及由IPC促进器基于从RPA机器人接收到的一个或多个消息,来控制RPA驱动与在第一会话中运行的应用或应用对象进行交互。
在另一实施例中,一种计算机实现的方法包括:由在第二会话中运行的RPA机器人经由IPC向在第一会话中运行的IPC促进器发送一个或多个消息;以及由IPC促进器经由IPC从RPA机器人接收一个或多个消息。该计算机实现的方法还包括:由IPC促进器基于从RPA机器人接收到的一个或多个消息,来控制在第一会话中运行的RPA驱动与也在第一会话中运行的应用或应用对象进行交互。
在又一实施例中,一种计算机实现的方法包括:由在第一会话中运行的IPC促进器经由IPC从在第二会话中运行的RPA机器人接收一个或多个消息。该计算机实现的方法还包括:由IPC促进器基于从RPA机器人接收到的一个或多个消息,来控制在第一会话中运行的RPA驱动与也在第一会话中运行的应用或应用对象进行交互。
附图说明
为了容易地理解本发明的某些实施例的优点,将通过参考在附图中图示的特定实施例来呈现上文简要描述的本发明的更具体的描述。虽然应理解,这些图仅描绘了本发明的典型实施例,并且因此不应该被认为是对本发明的范围的限制,但是本发明将通过附图的使用以附加的特异性和细节来描述和阐释,在附图中:
图1是图示了根据本发明的实施例的机器人流程自动化(RPA)系统的架构图。
图2是图示了根据本发明的实施例的部署的RPA系统的架构图。
图3是图示了根据本发明的实施例的设计器、活动与驱动之间的关系的架构图。
图4是图示了根据本发明的实施例的RPA系统的架构图。
图5是图示了根据本发明的实施例的被配置为促进用于RPA机器人的会话间自动化的计算系统的架构图。
图6A-G图示了根据本发明的实施例的使用在机器人会话中运行的RPA机器人、IPC促进器以及RPA驱动在用户会话中完成表单的示例。
图7A-G图示了根据本发明的实施例的使用在机器人会话中运行的RPA机器人经由直接变量修改在用户会话中完成表单的示例。
图8是图示了根据本发明的实施例的经由在机器人会话中运行的RPA机器人、IPC促进器以及RPA驱动使在用户会话中运行的过程自动化的过程的流程图。
图9是图示了根据本发明的实施例的经由直接变量修改经由在机器人会话中运行的RPA机器人使在用户会话中运行的过程自动化的过程的流程图。
图10图示了根据本发明的实施例的与主会话应用交互的多个客户端会话RPA机器人的示例。
图11是图示了根据本发明的实施例的用于在客户端会话中运行有人值守的自动化RPA机器人的过程的流程图。
图12是图示了根据本发明的实施例的在主会话机器人M1、客户端会话应用A1与一对客户端会话机器人C1和C2之间的多机器人集体工作流的执行的流程图。
图13是图示了根据本发明的实施例的并行地执行主会话RPA机器人和客户端会话RPA机器人的流程图。
图14是图示了根据本发明的实施例的基于针对主会话应用的触发来执行客户端会话RPA机器人的流程图。
图15是图示了根据本发明的实施例的用于执行会话间自动化的过程的流程图。
除非另有指示,否则类似的附图标记在整个附图中始终指示对应特征。
具体实施方式
一些实施例涉及经由在第二会话中运行的(一个或多个)RPA机器人使在第一会话中运行的过程自动化。例如,表单(例如Web页面、电子邮件应用(例如)、电子表格应用(例如/>)、客户关系管理(CRM)系统应用(例如/>)、企业资源管理(ERM)系统、供应链管理系统、定制计算机应用、移动应用、具有可填充字段的另一应用等)可以被显示于第一会话中。在一些实施例中,第一会话可以是用户会话(在本文中也被称作主会话或父会话)。在第一会话中获取应用的数据和/或与应用的数据交互的一个或多个RPA机器人可以在一个或多个其他会话(在本文中也被称作机器人会话、第二会话或辅助会话)中运行。在某些实施例中,机器人会话可以是第一会话的子会话。
在一些实施例中,在客户端会话中运行的RPA机器人经由过程间通信(IPC)向在主会话中运行的RPA驱动发送消息。基于来自RPA机器人的(一个或多个)IPC通信,RPA驱动可以实现与计算系统进行各种操作系统(OS)和/或应用编程接口(API)级别交互。例如,驱动可以在不脱离本发明的范围的情况下移动鼠标、点击按钮、与菜单交互、在字段中录入文本、打开或关闭窗口、移动窗口和/或调整窗口大小或执行任何其他合适的交互。
为了实现该功能性,驱动可以包括IPC促进器或受IPC促进器控制或由IPC促进器调用。在一些实施例中,IPC促进器可以是单独的应用或过程,或可以是驱动的子过程。IPC促进器可以在客户端会话中监听来自RPA机器人的IPC消息(例如监听触发)、向RPA机器人发送通信和从RPA机器人接收通信、监测RPA机器人执行状态、其组合等。IPC促进器还可以基于来自RPA机器人的(一个或多个)IPC通信来使驱动在父会话中实现期望的功能性。在某些实施例中,IPC促进器可以配置有针对给定RPA机器人的脚本。在一些实施例中,IPC促进器可以被定制设计用于要在父会话中执行的功能性。
在一些实施例中,客户端会话中的RPA机器人可以直接修改存储在计算系统上的存储器中的变量。在父会话中运行的访问这些变量的应用然后可以在显示刷新或应用以其他方式重新加载其UI时更新所显示的值。例如,可以由在客户端会话中运行的RPA机器人直接修改电子表格的变量,这也会改变在父会话中显示的值。
在一些实施例中,当RPA机器人正在运行时,(一个或多个)RPA机器人的操作可以不阻止用户使用其他应用或实例,但当应用显示在第一用户会话窗口中刷新时,由(一个或多个)RPA机器人进行的数据修改可以对用户可见。然而,在某些实施例中,(一个或多个)RPA机器人可以与不具有用户接口的应用交互。
在一些实施例中,过程可以操作如下。用户可以点击按钮或以其他方式使RPA机器人在用户会话(例如在用户开启其计算系统时启动的父会话或主会话)的子会话中启动。在某些实施例中,例如,机器人会话可能已经在运行中或可以由用户从机器人托盘单独启动。用户可以使机器人在子会话中执行其工作流,然后机器人可以通过与在父会话中运行的IPC促进器进行通信来与主会话中的一个或多个应用交互。IPC促进器然后可以使RPA驱动在父会话中实施期望的功能性。
在一些实施例中,如果尚未启动工作流所属的至少一个应用,那么在机器人会话中运行的RPA机器人可以暂停操作并且提供消息,并且IPC促进器可以启动该应用,以便机器人可以继续操作。一旦机器人开始执行其工作流,当经由IPC促进器和RPA驱动进行此类改变时,应用中的所显示的数据的改变可以在主会话窗口中可见。例如,数据可以在驱动基于由RPA机器人在客户端会话中提供的数据(例如经由将数据保存到平面文件或数据库中的IPC等)来填充数据时显现。
作为非限制性示例,在一些实施例中,可以在中创建快捷方式,该快捷方式使RPA机器人在客户端会话中启动,或在客户端会话中与已运行的RPA机器人交互。当用户点击快捷方式时,RPA机器人如在其RPA工作流中所设计的一般开始执行RPA过程。基于其执行的结果(例如从数据库中获取信息、调用人工智能(AI)/机器学习(ML)模型并且获得结果、从多个遗留系统中获得信息等),RPA机器人然后与IPC促进器交互,该IPC促进器然后在父会话中与运行的/>应用实例交互。例如,这可以导致,在RPA驱动执行交互时,正在运行的/>应用实例中的一些所显示的信息发生改变并且对用户可见。
在某些实施例中,在客户端会话中运行的RPA机器人可以使父会话中的应用经由IPC促进器打开。IPC促进器然后可以经由RPA驱动访问与应用相关联的数据并且进行添加、改变和/或删除。以这种方式,即使RPA机器人并未在父会话中运行,RPA机器人仍然能够以看起来类似于在父会话本身中运行的RPA机器人的方式在父会话应用中引起交互,但在功能上有所不同。
在一些实施例中,用户可以使机器人在客户端会话中执行访问网站并收集一些信息的工作流。例如,RPA机器人然后可以将该信息提供给IPC促进器,该IPA促进器然后使RPA驱动在电子表格中录入所收集的信息,该电子表格在主会话中可见。在某些实施例中,应用(诸如)在主会话中打开。用户然后在读取当前客户端ID的客户端会话中运行自动化,进入网站(例如/>),并且收集与同网站的客户端交互相关的信息。然而,在不脱离本发明的范围的情况下,有人值守的RPA机器人可以经由RPA促进器与任何合适的(一个或多个)应用交互和/或可以从任何合适的源(例如数据库、另一应用等)获得数据。
一些实施例的应用包括但不限于提供OS级虚拟化的仿真器、模拟器、VM和混合VM(例如容器)。一些实施例将一个或多个机器人会话创建并且托管为窗口形式,该窗口包括由有人值守的自动化过程控制的应用的UI。在某些实施例中,仅示出了(一个或多个)机器人与之交互的应用的接口。在一些实施例中,根本没有示出客户端会话窗口。如本文中所使用的,在不脱离本发明的范围的情况下,“窗口”可以应用于代表在主UI内所示出的UI的窗口、计算系统的第二显示器的第二屏幕、虚拟桌面、隔离环境(即,窗口(被称为“主机”)等,其绘制在环境内部启动的所有应用的UI(被称为“子”)并且在主机会话的上下文中运行它们。在用户与第一会话(例如父会话)交互时,运行多个会话允许(一个或多个)机器人在其(一个或多个)会话中操作。因此,在机器人与其数据交互时,用户可能能够与各种应用交互。
在一些实施例中,在不脱离本发明的范围的情况下,可以创建和使用用于任何数量的机器人的任何期望数量的会话。例如,用户可以在第一会话中操作,第一机器人可以在第二会话中操作,第二机器人可以在第三会话中操作等。在某些实施例中,多个机器人可以在单个会话中操作,潜在地轮流经由RPA促进器与一个或多个公共应用交互。
例如,可以经由终端服务子会话实施用于创建会话的功能性,该终端服务子会话可以在无需用户注销的情况下将会话创建回用户自身的机器中。新创建的会话显现为子窗口,且包含并启动存在于用户会话中的应用。换句话说,用户与机器人之间的分离发生在UI级别。例如,如果文件被删除,那么这会在计算系统上运行的所有会话中发生。
某些实施例可以被部署用于机器人流程自动化(RPA)。图1是图示了根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以支持自动化项目的开发,该自动化项目是业务过程的图形表示。简而言之,设计器110支持工作流和机器人的开发和部署。
自动化项目通过向开发者提供对在工作流中开发的一组定制步骤(在本文中被定义为“活动”)之间的执行顺序和关系的控制来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可能特别适合于线性过程,从而能够在不使工作流混乱的情况下从一个活动流向另一活动。流程图可能特别适合于更复杂的业务逻辑,从而实现通过多个分支逻辑运算符以更为不同的方式进行的决策的集成以及活动的连接。FSM可能特别适合于较大工作流。FSM可以在其执行中使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理程序可能特别适合于在遇到执行错误时确定工作流行为且特别适合于调试过程。
一旦工作流在设计器110中被开发,业务过程的执行就由指挥器(conductor)120编排,该指挥器编排执行设计器110中所开发的工作流的一个或多个机器人130。指挥器120的实施例的一个商业示例是UiPathOrchestratorTM。指挥器120支持对环境中的资源的创建、监测以及部署的管理。利用第三方解决方案和应用,指挥器120可以充当集成点、或充当聚合点中的一者。
指挥器120可以管理一队机器人130,从而从集中点连接并执行机器人130。可以管理的机器人130的类型包括但不限于:有人值守的机器人132、无人值守的机器人134、开发机器人(类似于无人值守的机器人134,但用于开发和测试目的)以及非生产型机器人(类似于有人值守的机器人132,但用于开发和测试目的)。有人值守的机器人132可由用户事件触发或被安排为自动发生,并且与人类一起在相同计算系统上操作。有人值守的机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人值守的机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,无法从这种类型的机器人上的指挥器120开启过程和/或这些过程无法在锁定屏幕下运行。在某些实施例中,有人值守的机器人132只可以从机器人托盘或根据命令提示而被开启。在一些实施例中,有人值守的机器人132应该在人类监督下运行。
无人值守的机器人134在虚拟环境中以无人值守的方式运行并且可以使许多过程自动化。无人值守的机器人134可以负责远程执行、监测、调度并且为工作队列提供支持。在一些实施例中,可以从设计器110运行针对所有机器人类型的调试。有人值守的机器人和无人值守的机器人两者都可以使各种系统和应用自动化,该系统和应用包括但不限于大型主机、Web应用、VM、企业应用(例如由 等生产的那些企业应用)以及计算系统应用(例如台式机和笔记本应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可以具有各种能力,包括但不限于供应、部署、版本化、配置、排队、监测、日志记录和/或提供互连性。供应可以包括在机器人130与指挥器120(例如Web应用)之间创建和维护连接。开发可以包括确保将包(package)版本正确递送至所指派的机器人130以供执行。在一些实施例中,版本化可以包括某一过程或配置的唯一实例的管理。配置可以包括维护和递送机器人环境和过程配置。排队可以包括提供对队列和队列项的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和编入索引至数据库(例如SQL数据库)和/或另一存储机制(例如其提供用于存储和快速查询较大数据集的能力)。指挥器120可以通过充当第三方解决方案和/或应用的通信的集中点来提供互连性。
机器人130是运行内置于设计器110中的工作流的执行代理。(一个或多个)机器人130的一些实施例的一个商业示例是UiPathRobotsTM。在一些实施例中,机器人130默认安装Microsoft服务控制管理器(SCM)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式/>会话,并且具有/>服务的权限。
在一些实施例中,机器人130可以在用户模式下被安装。针对此类机器人130,这意味着其具有与已经安装了给定机器人130的用户相同的权限。此特征也可以供高密度(HD)机器人使用,该高密度机器人确保了每台机器以其最大潜力的充分利用。在一些实施例中,任何类型的机器人130可以在HD环境中被配置。
在一些实施例中,机器人130被分成分别专用于特定自动化任务的若干组件。在一些实施例中,机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。SCM管理的机器人服务管理和监测会话,并且充当指挥器120与执行主机(即,机器人130在其上被执行的计算系统)之间的委托。这些服务受机器人130信任并且管理机器人130的凭证。控制台应用在本地系统下由SCM启动。
在一些实施例中,用户模式机器人服务管理和监测会话,并且充当指挥器120与执行主机之间的委托。用户模式机器人服务可以受机器人130信任并且管理机器人130的凭证。在未安装SCM管理的机器人服务的情况下,/>应用可以被自动启动。
执行器可以在会话下运行给定作业(即,执行器可以执行工作流。执行器可以知道每个监测器的每英寸点数(DPI)设置。代理可以是/>PresentationFoundation(WPF)应用,其在系统托盘窗口中显示可用的作业。代理可以是服务的客户端。代理可以请求开启或停止作业以及改变设置。命令行是服务的客户端。命令行是可以请求开启作业并等待其输出的控制台应用。
如上文所阐释一般使机器人130的组件分开帮助开发者、支持用户以及计算系统更容易地运行、标识和追踪每个组件正在执行的内容。特殊行为可以以这种方式按组件来配置,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以始终知道每个监测器的DPI设置。结果,不论创建工作流的计算系统的配置如何,工作流都可以在任何DPI处被执行。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,针对DPI不知道的或有意地标记为不知道的应用,DPI可以被禁用。
图2是图示了根据本发明的实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或可以是该RPA系统的一部分。应注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者都可以包括任何期望数量的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行过程。如图2中所示,若干业务项目可以同时运行。在该实施例中,代理214(例如服务)是所有执行器212的单个联系点。该实施例中的所有消息被日志记录到指挥器230中,该指挥器经由数据库服务器240、索引器服务器250或两者进一步处理这些消息。如上文相对于图1所讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称与用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如服务器2012)上,多个机器人可以同时运行,每个机器人在使用唯一用户名的单独/>会话中。上文将此称为HD机器人。
代理214还负责发送机器人的状态(例如周期性地发送指示机器人仍在运作的“心跳”消息)并且下载要被执行的包的所需版本。在一些实施例中,代理214与指挥器230之间的通信始终由代理214发起。在通知场景中,代理214可以打开WebSocket信道,稍后由指挥器230使用该WebSocket信道来向机器人发送命令(例如开启、停止等)。
在服务器侧,包括了呈现层(Web应用232、开放数据协议(OData)代表性状态转移(REST)应用编程接口(API)端点234以及通知和监测236)、服务层(API实现/业务逻辑238)以及持久层(数据库服务器240和索引器服务器250)。指挥器230包括Web应用232、ODataREST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在指挥器230的接口中(例如经由浏览器220)执行的大多数动作是通过调用各种API来执行的。在不脱离本发明的范围的情况下,此类动作可以包括但不限于在机器人上开启作业、在队列中添加/移除数据、调度作业以便以无人值守的方式运行等。Web应用232是服务器平台的视觉层。在该实施例中,Web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,可以在不脱离本发明的范围的情况下使用任何期望标记语言、脚本语言或任何其他格式。在该实施例中,用户经由浏览器220与来自Web应用232的Web页面交互,以便执行各种动作来控制指挥器230。例如,用户可以创建机器人群组、向机器人指派包、分析每个机器人和/或每个过程的日志、开启和停止机器人等。
除了Web应用232之外,指挥器230还包括暴露OData RESTAPI端点234的服务层。然而,在不脱离本发明的范围的情况下可以包括其他端点。RESTAPI由Web应用232和代理214两者消耗。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督器。
在该实施例中,RESTAPI覆盖配置、日志记录、监测以及排队功能性。在一些实施例中,配置端点可以用于定义和配置应用用户、权限、机器人、资产、发布以及环境。日志记录REST端点可以用于日志记录不同信息,诸如(例如)错误、由机器人发送的显式消息以及其他环境特定信息。如果在指挥器230中使用了开启作业命令,那么可以由机器人使用部署REST端点来查询应该被执行的包版本。排队REST端点可以负责队列和队列项管理,诸如将数据添加至队列、从队列中获得事务、设置事务的状态等。
监测REST端点可以监测Web应用232和代理214。通知和监测API236可以是用于注册代理214、向代理214递送配置设置并且用于从服务器和代理214发送/接收通知的REST端点。在一些实施例中,通知和监测API236还可以使用WebSocket通信。
在该实施例中,持久层包括一对服务器——数据库服务器240(例如SQL服务器)和索引器服务器250。在该实施例中,数据库服务器240存储机器人、机器人群组、相关联的过程、用户、角色、调度等的配置。在一些实施例中,该信息通过Web应用232来管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人(除了索引器服务器250之外或代替索引器服务器250)日志记录的消息。
在一些实施例中可选的索引器服务器250存储由机器人日志记录的信息并且将该信息编入索引。在某些实施例中,索引器服务器250可以通过配置设置来禁用。在一些实施例中,索引器服务器250使用其为开源项目全文搜索引擎。由机器人日志记录的消息(例如使用比如日志消息或写入行的活动)可以通过(一个或多个)日志记录REST端点被发送到索引器服务器250,在索引器服务器250中这些消息被编入索引以供将来使用。
图3是图示了根据本发明的实施例的设计器310、活动320、330与驱动340之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。一些实施例能够标识图像中的非文本视觉分量,在本文中称作计算机视觉(CV)。与此类分量相关的一些CV活动可以包括但不限于点击、键入、取得文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击使用例如CV、光学字符识别(OCR)、模糊文本匹配以及多锚(multi-anchor)来标识元素,并且点击该元素。键入可以使用上述内容来标识元素和该元素中的类型。取得文本可以标识特定文本的位置并且使用OCR来扫描该位置。悬停可以标识元素并且悬停于元素上方。元素存在可以使用上文所描述的技术来检查在屏幕上是否存在元素。在一些实施例中,可以存在可以在设计器310中被实现的数百个甚至数千个活动。然而,在不脱离本发明的范围的情况下,任何数量和/或类型的活动都可以是可用的。
UI自动化活动330是利用较低级代码编写的特殊的较低级活动(例如CV活动)的子集并且有助于与屏幕的交互。UI自动化活动330经由允许机器人与期望软件交互的驱动340来支持这些交互。例如,驱动340可以包括OS驱动342、浏览器驱动344、VM驱动346、企业应用驱动348等。
驱动340可以与OS进行低级交互,进而寻找挂钩、监测键等。驱动可以有助于与等的集成。例如,“点击”活动经由驱动340在这些不同应用中扮演相同角色。
图4是图示了根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或包括图1和/或图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的Web应用与指挥器计算系统420进行通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440进行通信。
相对于图1和图3,应注意,虽然在这些实施例中使用了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显示器、高清显示器、显示器、面内切换(IPS)显示器或用于向用户显示信息的任何其他合适的显示器。显示器525可以被配置为使用电阻性、电容性、表面声波(SAW)电容性、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多触摸显示器等。可以在不脱离本发明的范围的情况下使用任何合适的显示设备和触觉I/O。
键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)进一步被耦合到总线505以使得用户能够与计算系统500接口连接。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。输入设备的任何类型和组合可以被用作设计选择的问题。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与之通信的另一计算系统与计算系统500远程地交互,或计算系统500可以自主地操作。
存储器515存储在被(一个或多个)处理器510执行时提供功能性的软件模块。模块包括计算系统500的操作系统540。模块还包括被配置为执行本文中所描述的过程或其衍生物的全部或部分的会话间自动化模块545。计算系统500可以包括一个或多个附加功能性模块550,该功能性模块包括附加功能性。
本领域的技术人员应了解,在不脱离本发明的范围的情况下,“系统”可以被实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合。将上文所描述的功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文中所公开的方法、系统和装置可以按照与包括云计算系统的计算技术一致的本地化和分布式形式来实现。
应注意,本说明书中所描述的一些系统特征已经作为模块而被呈现,以便更具体地强调其实现独立性。例如,模块可以被实现为包括定制的超大规模集成(VLSI)电路或门阵列、现成半导体(诸如逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以被实现在可编程硬件设备中,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地被实现在软件中以便由各种类型的处理器执行。例如,可执行代码的所标识的单元可以包括计算机指令的一个或多个物理区域块或逻辑区域块,这些计算机指令可以例如被组织成对象、过程或功能。虽然如此,但所标识的模块的可执行文件不需要在物理上位于一处,而是可以包括存储在不同位置中的全异的指令,这些指令在以逻辑方式被结合在一起时包括该模块并且实现了该模块的既定目的。此外,模块可以被存储在计算机可读介质上,在不脱离本发明的范围的情况下,该计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类非暂态计算机可读介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、分布在不同程序之间以及跨多个存储器设备。类似地,操作数据在本文中可以被标识和图示为在模块内,并且该操作数据可以被实施为任何合适的形式并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或可以分布于包括在不同存储设备上的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
通常,在有人值守的自动化中,当在相同会话中运行的RPA机器人完成其任务时,人类用户等待。然而,一些实施例创建一个或多个机器人会话,以在其中托管并运行RPA机器人。与现有RPA系统不同,当(一个或多个)机器人正在(一个或多个)机器人会话中运行自动化时,用户可以从与他们的计算系统交互的能力中受益。在一些实施例中,用户仍然监测机器人正在做什么并且通过用于(一个或多个)机器人会话的(一个或多个)主机自动化窗口来与机器人交互。在一些实施例中,用户和(一个或多个)机器人会话可能正在远程机器上运行,该远程机器由用户的计算系统控制。
然而,在一些实施例中,RPA机器人不会经由IPC促进器与用户正在使用的应用交互。RPA机器人而是可以经由RPA促进器和RPA驱动与应用或其他过程交互,该应用或其他过程对用户不可见或以其他方式未被用户使用。这样的机器人通常不会直接增加与应用的用户交互并且可以被视为是无人值守的机器人。
在某些实施例中,RPA机器人可以正在用户的计算系统上运行并且通过远程运行时间(remote runtime)(例如经由UiPath RemoteRuntimeTM)驱动远程计算系统。UiPathRemote RuntimeTM是促进远程应用或桌面(诸如Citrix虚拟App和DesktopsTM)与专用扩展(例如针对/>的/>扩展或针对/>远程桌面的扩展)之间的通信的组件。UiPathRemote RuntimeTM收集与远程应用的目标UI元素相关的信息并且将该信息发送给对应的扩展,以使得在UI ExplorerTM中本机生成选择器。
图6A-G图示了根据本发明的实施例的使用在机器人会话中运行的RPA机器人、IPC促进器以及RPA驱动在用户会话中完成表单的示例。在图6A中,示出了用户会话窗口600,其中用户能够与UI中的应用交互并且当前没有任何机器人正在执行。机器人托盘图标610在用户会话窗口600的右下部分可见。RPA驱动640包括IPC促进器642作为该实施例中的子过程。然而,在某些实施例中,在不脱离本发明的范围的情况下,IPC促进器642可以是与RPA驱动640进行通信的单独应用或过程。在此类实施例中,IPC促进器642可以经由IPC、经由API调用等与RPA驱动640进行通信。实际上,在某些实施例中,可以不使用IPC。
在图6B中,用户启动Web浏览器并且游览发票创建Web页面620。在图6C中,用户上拉机器人托盘612(例如通过点击机器人托盘图标610),并且选择客户端会话机器人选项614,以在其计算系统上执行。如在图6D中所示,在选择了要执行的机器人之后,用于机器人会话的机器人会话窗口630显示为屏幕上的子窗口。RPA将在机器人会话中操作。在该实施例中,用于客户端会话机器人的窗口632在机器人会话窗口630内自动启动,并且包括按钮634,用于运行表单填充器工作流,以在用户会话中针对Web页面620获取数据。
在一些实施例中,可以不显示机器人会话窗口,并且机器人可以在不对用户可见的情况下自动启动、操作和关闭。在某些实施例中,机器人可以在完成其工作流之后关闭其会话。在一些实施例中,并非从机器人托盘启动,而是可以发起机器人会话,并且机器人可以在不使用机器人托盘612的情况下启动和操作(例如由于用户在主会话的应用中点击了按钮)。
转向图6E,在用户点击了按钮634之后,机器人开始获取用于在Web页面620中填写表单字段的数据。在机器人获取了数据的一部分时,向IPC促进器642发送该数据,然后该IPC促进器642使RPA驱动640将该数据录入Web浏览器620中。例如,RPA驱动640可以将鼠标移动到给定字段上,并且使文本从数据录入到该字段中。在图6E中,RPA驱动640已经完成了发票编号字段,并且现在已经将鼠标移动至发票数量字段,点击该发票数量字段,并且录入数字1。在图6E中,插入符号出现在数字1之后。在某些实施例中,RPA促进器642可以在使RPA驱动640填写Web页面620的字段之前从机器人632接收完整的数据集。
根据上文,使用IPC协议来完成在机器人会话中运行的机器人与在用户会话中运行的IPC促进器642之间的通信。IPC协议可以经由网络、管道、组件对象模型(COM)、远程进程调用(RPC)、套接字等促进通信。合适的会话创建机制和IPC协议也可以用于其他支持的操作系统。机器人也可以经由IPC协议将状态通知(例如指示了机器人正在启动、运行、暂停等)、所获取的数据、错误消息、命令或其他通信发送回IPC促进器642。
当Web页面620未被另一窗口覆盖或最小化时,来自由机器人所获取的数据的相关联文本在其由RPA驱动640录入时对用户可见。在一些实施例中,当RPA驱动640针对表单完成数据交互时,用户可以与其他应用交互并且继续产生作用或甚至与Web页面620本身交互,尽管如果RPA驱动640修改针对同一字段的数据则用户的录入可能会被重写,该同一字段是用户录入了信息的同一字段。
转向图6F,在机器人完成了其工作流之后,在窗口632中显示消息。如在后台中可看到,机器人已经完成了针对表单字段的数据获取,并且表单字段的新录入在由RPA驱动640录入之后在Web页面620中可见。用户然后可以关闭机器人会话窗口630,机器人可以自动关闭机器人会话窗口630(以及潜在地机器人会话本身),或机器人会话窗口630可以保持打开状态。用户然后可以提交完成的表单。参见图6G。
图7A-G图示了根据本发明的实施例的使用在机器人会话中运行的RPA机器人经由直接变量修改在用户会话中完成表单的示例。在图7A中,示出了用户会话窗口700,其中用户能够与UI中的应用交互并且当前没有任何机器人正在执行。机器人托盘图标710在用户会话窗口700的右下部分可见。
在图7B中,用户启动Web浏览器并且游览发票创建Web页面720。在图7C中,用户上拉机器人托盘712(例如通过点击机器人托盘图标710),并且选择客户端会话机器人选项714,以在其计算系统上执行。如在图7D中所示,在选择了要执行的机器人之后,用于机器人会话的机器人会话窗口730显现为屏幕上的子窗口。RPA将在机器人会话中操作。在该实施例中,用于客户端会话机器人的窗口732在机器人会话窗口730内自动启动,并且包括用于在用户会话中运行Web页面720的表单填充器工作流的按钮734。
在一些实施例中,可以不显示机器人会话窗口,并且机器人可以在不对用户可见的情况下自动启动、操作和关闭。在某些实施例中,机器人可以在完成其工作流之后关闭其会话。在一些实施例中,并非从机器人托盘启动,而是可以发起机器人会话,并且机器人可以在不使用机器人托盘712的情况下启动和操作(例如由于用户在主会话的应用中点击了按钮)。
转向图7E,在用户点击了按钮734之后,机器人通过访问针对Web页面720的表单字段的变量并且与其交互来开始填写Web页面720中的表单字段。例如,在不脱离本发明的范围的情况下,机器人可以改变针对存储在RAM、永久性本地存储装置、数据库或任何其他存储类型和/或位置中的字段的存储值(memory value)。在某些实施例中,可以将变量存储为存储器的一部分,该变量被针对与Web表单720相关联的Web应用而被分配,并且由与Web表单720相关联的该Web应用使用。
当Web页面720被刷新时,由机器人改变的相应存储值使Web页面720的相应字段被更新。当Web页面720未被另一窗口覆盖或最小化时,经由数据修改由机器人改变的相关联文本对用户可见。与图6A-G中的示例不同,其中RPA驱动640操纵鼠标并经由API级别和/或本机机制录入文本,数据在没有这种交互的情况下出现在Web页面720的表单字段中。在一些实施例中,当机器人完成针对表单的数据交互时,用户可以与其他应用交互并且继续产生作用或甚至与Web页面720本身交互,尽管如果机器人修改针对同一字段的数据则用户的录入可能会被重写,该同一字段是用户录入了信息的同一字段。
转向图7F,在机器人完成了其工作流之后,在窗口732中显示消息。如在后台可看到,机器人已经完成了针对与表单字段相关联的相应存储变量(memory variable)的数据修改,并且针对表单字段的新录入在网络720刷新之后在网络720中可见。用户然后可以关闭机器人会话窗口730,机器人可以自动关闭机器人会话窗口730(以及潜在地机器人会话本身),或机器人会话窗口730可以保持打开状态。用户然后可以提交完成的表单。参见图7G。
在一些实施例中,机器人会话可以是子会话,并且子会话可以经由操作系统的子会话API被创建。在一些实施例中,可以在不脱离本发明的范围的情况下使用终端服务子会话或由操作系统提供的另一子会话API来创建第二会话。被配置为启动(一个或多个)机器人的机器人托盘应用(例如/>机器人代理桌面)或另一应用然后可以在操作系统中使用具有适当参数的创建过程API,以在该子会话中开始机器人流程。然后,机器人托盘应用或其他合适的应用可以使用合适的协议(例如构建于命名管道上的协议)与机器人流程通信。
图8是图示了根据本发明的实施例的经由在机器人会话中运行的RPA机器人、IPC促进器以及RPA驱动使在用户会话中运行的过程自动化的过程800的流程图。在810处,该过程开始于启动用户会话窗口。例如,这可以是与在用户计算系统上运行的操作系统相关联的主窗口。然后在820处,启动机器人会话窗口作为用户会话窗口的子窗口。在一些实施例中,例如,可以响应于机器人被发起或以其他方式启动来启动机器人会话窗口。然后在830处,在机器人会话中发起机器人。
机器人在840处被执行并且经由IPC与IPC促进器通信。IPC促进器可以经由IPC从机器人接收状态通知、所获取的数据、错误消息、命令或其他通信。IPC促进器还可以向机器人发送消息(诸如命令、状态更新、来自IPC促进器或RPA驱动的错误消息等)。
在850处,使用从机器人获取的数据,RPA促进器控制或以其他方式使RPA驱动使用来自机器人的所获取的数据和/或其他通信来执行应用交互。例如,可以使RPA驱动移动鼠标、点击字段、录入文本、点击按钮、导航菜单、打开或关闭以及应用或窗口等。在860处,在一些实施例中,在机器人完成其执行之后,可以结束机器人会话并且可以自动关闭机器人会话窗口。
图9是图示了根据本发明的实施例的经由直接变量修改经由在机器人会话中运行的RPA机器人使在用户会话中运行的过程自动化的过程900的流程图。在910处,该过程开始于启动用户会话窗口。例如,这可以是与在用户计算系统上运行的操作系统相关联的主窗口。然后在920处,启动机器人会话窗口作为用户会话窗口的子窗口。在一些实施例中,例如,可以响应于机器人被发起或以其他方式启动来启动机器人会话窗口。然后在930处,机器人在机器人会话中被发起,并且在940处,机器人与关联于(一个或多个)应用(例如Web页面、电子表格、ERP应用、销售应用等)的数据交互,该(一个或多个)应用在来自机器人会话的用户会话中运行。例如,机器人可以在计算系统存储器中创建、改变或删除所存储的信息,以使改变发生在公共存储数据中,该公共存储数据在用户会话中由(一个或多个)应用访问和使用。在950处,在一些实施例中,在机器人完成其执行之后,可以结束机器人会话并且可以自动关闭机器人会话窗口。
在一些实施例中,可以在客户端会话中隔离多个运行的自动化过程(例如UI自动化过程)。例如,这可以允许经由IPC从主会话中按需调用这些过程。以这种方式,可以按需从主会话应用、主会话RPA机器人、另一客户端会话RPA机器人等中调用多个RPA机器人流程。在客户端会话中运行的RPA机器人也可能能够从主会话中收集数据。在某些实施例中,在客户端会话中运行的RPA机器人可以在其执行其自动化或自动化的一部分之前等待来自主会话的某个触发。
图10是图示了根据本发明的实施例的与主会话应用交互的多个客户端会话RPA机器人的示例的架构图1000。在图10中,主会话1010和客户端会话1020正在运行。客户端会话1020包括客户端会话RPA机器人11030和客户端会话RPA机器人21032。
客户端会话RPA机器人1030、1032与单独的IPC促进器应用1040或嵌入式RPA促进器过程或作为驱动1050的一部分的子例程1052进行通信。在一些实施例中,例如,驱动1050可以是图3的驱动340。IPC促进器1040或1052使驱动1050以由客户端会话RPA机器人1030或1032的相应工作流逻辑所限定的方式与主会话应用和/或相关联的应用对象1060(例如针对Microsoft应用的组件对象模型(COM)对象)交互。例如,可以使驱动1050在主会话应用1060中移动鼠标、填写表单数据、点击一个或多个按钮、与菜单交互、其组合等。在某些实施例中,RPA促进器应用1040可以与主会话应用和/或相关联的应用对象1060直接通信。
在某些实施例中,在客户端会话中运行的RPA机器人可以是有人值守的自动化机器人。例如,在客户端会话中运行的RPA机器人可以在主会话中要求来自用户的输入。这可以经由IPC与主会话机器人、驱动等一起完成。
图11是图示了根据本发明的实施例的用于在客户端会话中运行有人值守的自动化RPA机器人的过程的流程图1100。在该实施例中,在1120处,用户利用主会话应用1110,该主会话应用使客户端会话RPA机器人流程经由IPC开始。在一些实施例中,主会话应用1110可以是允许主会话中的用户与客户端会话中的有人值守的RPA机器人交互的RPA助理应用。例如,RPA助理应用的仪表板可以示出机器人所支持的当前RPA过程,并且用户可以选择要执行的过程。在某些实施例中,在客户端会话RPA机器人正在运行的同时,RPA助理应用可以显示客户端会话工作流的步骤和/或执行状态。
在客户端会话RPA机器人在1120处开始之后,在1130处,客户端会话RPA机器人运行其逻辑的第一部分。在1130处执行了逻辑的第一部分之后,在1140处,客户端会话RPA机器人要求用户输入。这可以经由在主会话中运行的应用中的消息、来自在主会话中运行的RPA机器人的消息等而发生,该在主会话中运行的应用中的消息经由与主会话应用交互的IPC促进器和驱动显现。然后,用户提供所请求的输入,该输入经由IPC被发送到客户端会话RPA机器人,并且在1150处使用该输入来执行逻辑的第二部分。在客户端会话RPA机器人流程在1160处结束之后,主会话应用1110可以接收RPA机器人流程已经结束的通知。
在某些实施例中,自动化的部分可以在主会话中运行,而自动化的其他部分可以在客户端会话中运行。例如,主会话应用或RPA机器人可以在主会话中执行某些操作,然后在主会话应用或机器人到达其执行中的某个点、接收触发、逻辑条件被满足等时使在客户端会话中运行的RPA机器人执行自动化的另一部分。客户端会话RPA机器人可以按顺序或与主会话应用或机器人并行地执行其自动化的部分。客户端会话RPA机器人然后可以向主会话应用或机器人提供指示、所请求的数据、执行结果等。
图12是图示了根据本发明的实施例的在主会话机器人M1、客户端会话应用A1与一对客户端会话机器人C1和C2之间的多机器人集体工作流的执行的流程图1200。A1、C1和/或C2可以在同一客户端会话中或不同客户端会话中。M1开始执行其工作流并且到达调用C1完成工作流的活动。在一些实施例中,这可以由“调用工作流”活动来执行,该“调用工作流”活动具有被设置为在客户端会话中执行RPA过程的标志。M1使C1经由IPC执行其工作流,并且调用活动等待。在此期间,在一些实施例中,M1可以执行其他任务。
在C1完成其工作流之后,C1经由IPC通知M1,并且M1恢复执行,直到其到达调用A1以开始执行或以完成任务的活动为止,这是客户端会话中的过程。M1使A1经由IPC执行和/或执行任务,且调用活动(例如“调用过程”活动)等待。在一些实施例中,调用过程活动可以具有被设置为在客户端会话中执行A1的标志。在一些实施例中,再一次,M1可以在等待A1的同时执行其他任务。
在A1完成其过程或任务之后,A1经由IPC通知M1,并且M1恢复执行,直到其到达调用C2以完成工作流的活动为止。M1使C2经由IPC执行其工作流,并且调用活动等待。在一些实施例中,再一次,M1可以在等待C2的同时执行其他任务。
在C2完成其工作流之后,经由IPC通知M1,并且M1恢复执行,直到其到达再次调用C1以完成工作流的活动为止。这可以是先前执行的同一工作流活动,或可以是不同的工作流或一组活动。M1使C1经由IPC执行其工作流,并且调用活动等待。在一些实施例中,再一次,M1可以在等待C1的同时执行其他任务。在C1完成其工作流之后,经由IPC通知M1恢复执行,直到完成M1的工作流为止。在某些实施例中,C1可以在最初被调用之后保持运行,并且当再次被M1调用时仍然正在运行。
根据上文,在一些实施例中,M1可以包括一个或多个“调用工作流”活动和/或“调用过程”活动,该“调用工作流”活动和/或“调用过程”活动可以调用(一个或多个)RPA机器人(例如C1和/或C2)和/或客户端会话中的其他过程(例如A1)。这样的活动可以开始相应的(一个或多个)RPA机器人和/或(一个或多个)过程、与已经在运行的(一个或多个)RPA机器人和/或(一个或多个)过程通信等。可以在RPA开发者针对M1开发工作流时创建这些活动。在某些实施例中,(一个或多个)RPA机器人可以经由RPA促进器或其他合适的功能性将RPA机器人和/或过程从客户端会话调用到主会话中。
在执行期间,M1可以经由IPC与A1、C1和C2通信,反之亦然。例如,M1可以向A1、C1和C2发送评论和请求,并且M1可以从A1、C1和C2接收状态消息、结果和错误消息等。以这种方式,M1可以充当控制客户端会话中的客户端会话RPA机器人和/或其他过程(例如应用)的主RPA机器人。在某些实施例中,M1、A1、C1和/或C2可以并行地操作。
在一些实施例中,M1可以执行所有与在主会话中运行的应用的交互,这可以消除对IPC促进器的需要。因此,C1和C2可以执行各种数据获取和处理任务,且M1可以执行UI交互任务。在某些实施例中,可以并行地执行M1、C1和/或C2的至少一些工作流活动。在图13的流程图1300中示出了一个此示例,其中基于M1的逻辑来执行C1,并且执行并行地发生。可以在C1的节段(section)期间在M1与C1之间发送通信。然而,在某些实施例中,C1可以独立完成其执行,并且可以在M1结束之后完成其工作流的执行。
在一些实施例中,所有RPA机器人活动在客户端会话中运行。可以由机器人执行器从主会话中调用RPA机器人,例如,诸如机器人托盘、IPC促进器、另一应用等。RPA机器人的执行结果和其他通信可以经由IPC被提供给机器人执行器或其他应用。
在某些实施例中,标准化通信格式可以用于客户端会话与主会话之间的IPC通信。例如,主会话和客户端会话过程可以交换XAML数据。这有助于确保通信是相应的过程可以识别的格式。
在一些实施例中,出于同步目的,可以在同一会话中运行的RPA过程之间使用IPC。例如,多个RPA过程可以在后台中与主会话中的前台过程并行地运行。IPC可以提供同步机制,以在后台过程与前台或主过程之间交换信息。
在某些实施例中,将在主RPA工作流过程中加载驱动(例如图3的驱动340)。子RPA过程与主RPA工作流过程之间的通信可以经由IPC发生。这允许主RPA工作流过程利用驱动基于IPC信息来为客户端会话机器人实施操作。
在一些实施例中,客户端会话RPA机器人可以与在主会话中打开的应用一起工作。例如,客户端会话RPA机器人可以与在主会话中打开的电子表格一起工作。例如,这可以经由IPC在客户端会话RPA机器人与RPA促进器之间发生。RPA促进器可以基于由客户端会话RPA机器人提供的信息(例如将数据录入电子表格中、修改表格值等)来使驱动实施与/>电子表格的(一个或多个)交互。在某些实施例中,活动可以被包括在RPA工作流中,该RPA工作流自动捕获两个会话之间的应用数据(例如/>活动、Web浏览器活动等)。以这种方式,客户端会话RPA机器人实质上可以与在主会话中运行的应用一起工作,就如同他们在RPA机器人自身的会话中运行一样。实际上,在一些实施例中,RPA开发者可能不知道其正在开发的工作流或其一部分将在客户端会话中被执行。
在某些实施例中,例如,当使用设计器应用来设计RPA机器人时,RPA开发者可以在“调用工作流”活动或“调用过程”活动上设置客户端会话标志。调用工作流活动调用RPA工作流。调用过程活动执行可用于本地机器的过程。设置此标志可以使RPA工作流或过程在客户端会话而非主会话中被调用。
在一些实施例中,客户端会话RPA机器人的执行可以是基于来自主会话应用和/或RPA机器人的触发。图14是图示了根据本发明的实施例的基于针对主会话应用的触发来执行客户端会话RPA机器人的流程图1400。主会话应用A1(在某些实施例中其可以是RPA机器人)开始执行并且等待触发。在接收到触发之后,A1经由IPC开始执行客户端会话RPA机器人C1。可以在C1的节段期间在A1与C1之间发送通信。然后,A1等待另一触发,且C1执行其工作流。
图15是图示了根据本发明的实施例的用于执行会话间自动化的过程的流程图1500。在1510处,该过程开始于在计算系统的主会话中执行RPA机器人。在1520处,由主会话RPA机器人经由IPC在客户端会话中调用或启动RPA机器人或应用。在1530处,经由IPC在客户端会话RPA机器人或应用与主会话RPA机器人之间传达消息。在一些实施例中,在1540处,主会话RPA机器人暂停其执行,直到客户端会话RPA机器人或应用的执行结束为止。
在1550处,由主会话RPA机器人经由IPC接收到客户端会话RPA机器人或应用的执行的(一个或多个)结果。然后,主会话RPA机器人在1560处使用(一个或多个)结果,以完成主会话RPA机器人的工作流的至少一部分、与在主会话中运行的应用或应用对象交互、或两者。在一些实施例中,在1570处,针对下一个客户端会话RPA机器人或客户端会话应用重复该过程,并且该过程返回到步骤1520。
在一些实施例中,在主会话RPA机器人的工作流中两次或更多次地调用或启动客户端会话RPA机器人、客户端会话应用或两者。在某些实施例中,经由主会话RPA机器人的工作流的调用过程活动来调用或启动客户端会话应用,经由主会话RPA机器人的工作流的调用工作流活动来调用或启动客户端会话RPA机器人,或两者。在一些实施例中,调用过程活动包括指示客户端会话应用在客户端会话中运行的标志,调用工作流活动包括指示客户端会话RPA机器人在客户端会话中运行的标志,或两者。在某些实施例中,客户端会话应用、客户端会话RPA机器人或两者在提供结果之后继续运行。在一些实施例中,主会话RPA机器人与客户端会话RPA机器人和/或客户端会话应用之间的IPC通信是标准化通信格式。
根据本发明的实施例,图8-15中执行的过程步骤可以由计算机程序执行,对指令编码,以供(一个或多个)处理器执行图8-15中所描述的(一个或多个)过程的至少一部分。计算机程序可以被实施在非暂态计算机可读介质上。计算机可读介质可以是但不限于:硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类介质或介质的组合。计算机程序可以包括编码指令,编码指令用于控制计算系统的(一个或多个)处理器(例如图5的计算系统500的(一个或多个)处理器510)以实现图8-15中所描述的过程步骤的全部或一部分,还可以将编码指令存储在计算机可读介质上。
计算机程序可以被实现在硬件、软件或混合实现中。计算机程序可以由彼此可操作地通信并且被设计成传递信息或指令以进行显示的模块组成。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。
将容易地理解,如本文中的诸图中大体上描述和图示的,本发明的各种实施例的组件可以以多种不同配置来布置和设计。因此,如附图中所表示,对本发明的实施例的详细描述并不旨在限制所要求保护的本发明的范围,而是仅仅表示本发明的所选择的实施例。
贯穿本说明书描述的本发明的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,贯穿本说明书,对“某些实施例”、“一些实施例”或类似语言的参考是指结合实施例所描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现并不一定全都是指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
应注意,贯穿本说明书,对特征、优点或类似语言的参考并不意味着可以用本发明实现的所有特征和优点都应该在或都在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为是指结合实施例所描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,对特征和优点以及类似语言的讨论可以但并不一定是指相同实施例。
此外,本发明的所描述的特征、结构和特性可以在一个或多个实施例中以任何合适的方式组合。相关领域的技术人员应认识到,可以在不具有特定实施例的特定特征或优点中的一者或多者的情况下实践本发明。在其他情况下,可以不存在于本发明的所有实施例中的附加特征和优点在某些实施例中可能被识别。
本领域的普通技术人员应容易地理解,可以利用不同顺序的步骤和/或利用与所公开的配置不同的配置的硬件元件来实践如上文所描述的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但对于本领域的技术人员而言将明显的是,某些修改、变型和备选构造将是明显的,同时仍在本发明的精神和范围内。因此,为了确定本发明的界限和边界,应当参考所附权利要求书。
Claims (19)
1.一种非暂态计算机可读介质,存储有计算机程序,所述计算机程序被配置为使至少一个处理器:
在第一会话中执行过程间通信IPC促进器和机器人流程自动化RPA驱动;
在第二会话中执行RPA机器人,所述IPC促进器促进所述RPA驱动与所述RPA机器人之间的通信;
由所述IPC促进器经由IPC从所述RPA机器人接收一个或多个消息;以及
由所述IPC促进器基于从所述RPA机器人接收到的所述一个或多个消息,来控制所述RPA驱动与在所述第一会话中运行的应用或应用对象进行交互。
2.根据权利要求1所述的非暂态计算机可读介质,其中所述第二会话是所述第一会话的子会话。
3.根据权利要求1所述的非暂态计算机可读介质,其中所述IPC促进器是所述RPA驱动的子过程。
4.根据权利要求1所述的非暂态计算机可读介质,其中所述IPC促进器被配置为:监听来自所述RPA机器人的所述一个或多个消息,并且监测所述RPA机器人的所述执行。
5.根据权利要求1所述的非暂态计算机可读介质,其中所述IPC促进器被配置有脚本,所述脚本用于与所述RPA机器人交互并且用于控制所述RPA驱动。
6.根据权利要求1所述的非暂态计算机可读介质,其中所述计算机程序进一步被配置为使所述至少一个处理器:
由所述RPA机器人直接修改被存储在计算系统上的存储器中的变量,其中
所述变量与在所述第一会话中运行的所述应用或所述应用对象相关联。
7.根据权利要求6所述的非暂态计算机可读介质,其中被存储在所述存储器中的所述变量针对在所述第一会话中运行的所述应用或所述应用对象而被分配,并且由在所述第一会话中运行的所述应用或所述应用对象使用。
8.根据权利要求1所述的非暂态计算机可读介质,其中所述计算机程序进一步被配置为使所述至少一个处理器:
在所述应用当前未运行时,经由所述IPC促进器来暂停所述RPA机器人的操作;
由控制所述RPA驱动的所述IPC促进器启动所述应用;以及
在所述应用被启动之后,经由所述IPC促进器来恢复所述RPA机器人的操作。
9.根据权利要求1所述的非暂态计算机可读介质,其中所述RPA机器人被配置为向所述IPC促进器发送所述一个或多个消息,所述一个或多个消息包括:状态通知、所获取的数据、错误消息、命令、或其组合。
10.根据权利要求1所述的非暂态计算机可读介质,其中所述IPC促进器被配置为向所述RPA机器人发送一个或多个消息,所述一个或多个消息包括:命令、状态更新、来自所述IPC促进器或RPA驱动的错误消息、或其组合。
11.一种计算机实现的方法,包括:
由在第二会话中运行的机器人流程自动化RPA机器人,经由IPC向在第一会话中运行的过程间通信IPC促进器来发送一个或多个消息;
由所述IPC促进器经由IPC来从所述RPA机器人接收一个或多个消息;以及
由所述IPC促进器基于从所述RPA机器人接收到的所述一个或多个消息,来控制在所述第一会话中运行的RPA驱动与也在所述第一会话中运行的应用或应用对象进行交互,所述IPC促进器促进所述RPA驱动与所述RPA机器人之间的通信。
12.根据权利要求11所述的计算机实现的方法,其中所述第二会话是所述第一会话的子会话。
13.根据权利要求11所述的计算机实现的方法,其中所述IPC促进器是所述RPA驱动的子过程。
14.根据权利要求11所述的计算机实现的方法,其中所述IPC促进器被配置有脚本,所述脚本用于与所述RPA机器人交互并且用于控制所述RPA驱动。
15.根据权利要求11所述的计算机实现的方法,还包括:
由所述RPA机器人直接修改被存储在计算系统上的存储器中的变量,其中
所述变量与在所述第一会话中运行的所述应用或所述应用对象相关联。
16.根据权利要求15所述的计算机实现的方法,其中被存储在所述存储器中的所述变量针对在所述第一会话中运行的所述应用或所述应用对象而被分配,并且由在所述第一会话中运行的所述应用或所述应用对象使用。
17.根据权利要求11所述的计算机实现的方法,还包括:
在所述应用当前未运行时,经由所述IPC促进器来暂停所述RPA机器人的操作;
由控制所述RPA驱动的所述IPC促进器启动所述应用;以及
在所述应用被启动之后,经由所述IPC促进器来恢复所述RPA机器人的操作。
18.根据权利要求11所述的计算机实现的方法,其中从所述RPA机器人到所述IPC促进器的所述一个或多个消息包括:状态通知、所获取的数据、错误消息、命令、或其组合。
19.根据权利要求11所述的计算机实现的方法,其中从所述IPC促进器到所述RPA机器人的所述一个或多个消息包括:命令、状态更新、来自所述IPC促进器或RPA驱动的错误消息、或其组合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/924,910 | 2020-07-09 | ||
US16/924,910 US11157339B1 (en) | 2020-07-09 | 2020-07-09 | Automation of a process running in a first session via a robotic process automation robot running in a second session |
PCT/US2020/051938 WO2022010512A1 (en) | 2020-07-09 | 2020-09-22 | Automation of a process running in a first session via a robotic process automation robot running in a second session |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113168168A CN113168168A (zh) | 2021-07-23 |
CN113168168B true CN113168168B (zh) | 2023-08-01 |
Family
ID=72709058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080002309.8A Active CN113168168B (zh) | 2020-07-09 | 2020-09-22 | 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3937015A1 (zh) |
JP (1) | JP7364588B2 (zh) |
KR (1) | KR102446568B1 (zh) |
CN (1) | CN113168168B (zh) |
TW (1) | TWI770622B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742007A (zh) * | 2021-08-25 | 2021-12-03 | 上海艺赛旗软件股份有限公司 | 一种rpa流程运行方法、系统及存储介质 |
CN113742102A (zh) * | 2021-08-30 | 2021-12-03 | 上海艺赛旗软件股份有限公司 | 一种无感知rpa流程运行方法、系统及存储介质 |
CN114817078B (zh) * | 2022-06-29 | 2022-11-29 | 荣耀终端有限公司 | 一种自动化测试的方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013465B1 (en) * | 1999-08-17 | 2006-03-14 | Emc Corporation | System, device and method for interprocessor communication in a computer system |
US9552056B1 (en) * | 2011-08-27 | 2017-01-24 | Fellow Robots, Inc. | Gesture enabled telepresence robot and system |
CN109636504A (zh) * | 2018-11-07 | 2019-04-16 | 北京慧流科技有限公司 | 信息处理方法及装置、电子设备及存储介质 |
JP2019169044A (ja) * | 2018-03-26 | 2019-10-03 | 日本電気株式会社 | ソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラム |
US10654166B1 (en) * | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
JP2020092400A (ja) * | 2019-04-02 | 2020-06-11 | BizteX株式会社 | 社内ネットワーク上の社内サーバに対する操作を伴う業務プロセスを自動化するための装置、方法及びそのためのプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017176917A1 (en) * | 2016-04-06 | 2017-10-12 | Soroco Private Limited | Techniques for implementing persistently interactive software robots |
US10339027B2 (en) * | 2016-09-06 | 2019-07-02 | Accenture Global Solutions Limited | Automation identification diagnostic tool |
US10324457B2 (en) * | 2017-05-11 | 2019-06-18 | Global Eprocure | Robotic process automation for supply chain management operations |
US12085901B2 (en) | 2017-11-21 | 2024-09-10 | Accenture Global Solutions Limited | Bot management framework for robotic process automation systems |
US10572316B2 (en) * | 2018-05-14 | 2020-02-25 | International Business Machines Corporation | Adaptable pages, widgets and features based on real time application performance |
WO2020006076A1 (en) * | 2018-06-27 | 2020-01-02 | Q2 Software, Inc. | Method and system for automating web processes utilizing an abstractable underlying platform layer |
US11076022B2 (en) * | 2018-12-31 | 2021-07-27 | Lyft, Inc. | Systems and methods for implementing robotics frameworks |
-
2020
- 2020-09-22 KR KR1020207028190A patent/KR102446568B1/ko active IP Right Grant
- 2020-09-22 CN CN202080002309.8A patent/CN113168168B/zh active Active
- 2020-09-22 JP JP2020553457A patent/JP7364588B2/ja active Active
- 2020-09-29 TW TW109133853A patent/TWI770622B/zh active
- 2020-09-30 EP EP20199191.6A patent/EP3937015A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013465B1 (en) * | 1999-08-17 | 2006-03-14 | Emc Corporation | System, device and method for interprocessor communication in a computer system |
US9552056B1 (en) * | 2011-08-27 | 2017-01-24 | Fellow Robots, Inc. | Gesture enabled telepresence robot and system |
JP2019169044A (ja) * | 2018-03-26 | 2019-10-03 | 日本電気株式会社 | ソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラム |
CN109636504A (zh) * | 2018-11-07 | 2019-04-16 | 北京慧流科技有限公司 | 信息处理方法及装置、电子设备及存储介质 |
JP2020092400A (ja) * | 2019-04-02 | 2020-06-11 | BizteX株式会社 | 社内ネットワーク上の社内サーバに対する操作を伴う業務プロセスを自動化するための装置、方法及びそのためのプログラム |
US10654166B1 (en) * | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
Also Published As
Publication number | Publication date |
---|---|
KR20220007495A (ko) | 2022-01-18 |
KR102446568B1 (ko) | 2022-09-22 |
EP3937015A1 (en) | 2022-01-12 |
CN113168168A (zh) | 2021-07-23 |
TW202203015A (zh) | 2022-01-16 |
TWI770622B (zh) | 2022-07-11 |
JP7364588B2 (ja) | 2023-10-18 |
JP2022541957A (ja) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113334371B (zh) | 用于机器人流程自动化的自动化窗口 | |
US11818223B2 (en) | Inter-session automation for robotic process automation (RPA) robots | |
US11740990B2 (en) | Automation of a process running in a first session via a robotic process automation robot running in a second session | |
US11157339B1 (en) | Automation of a process running in a first session via a robotic process automation robot running in a second session | |
CN113168168B (zh) | 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化 | |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |