TWI730845B - 提供用於機器人行程自動化的自動化視窗之電腦程式和電腦實現方法 - Google Patents

提供用於機器人行程自動化的自動化視窗之電腦程式和電腦實現方法 Download PDF

Info

Publication number
TWI730845B
TWI730845B TW109124314A TW109124314A TWI730845B TW I730845 B TWI730845 B TW I730845B TW 109124314 A TW109124314 A TW 109124314A TW 109124314 A TW109124314 A TW 109124314A TW I730845 B TWI730845 B TW I730845B
Authority
TW
Taiwan
Prior art keywords
session
robot
rpa
window
parent
Prior art date
Application number
TW109124314A
Other languages
English (en)
Other versions
TW202132070A (zh
Inventor
安卓 哈爾
Original Assignee
美商尤帕斯公司
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
Application filed by 美商尤帕斯公司 filed Critical 美商尤帕斯公司
Application granted granted Critical
Publication of TWI730845B publication Critical patent/TWI730845B/zh
Publication of TW202132070A publication Critical patent/TW202132070A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31124Interface between communication network and process control, store, exchange data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32128Gui graphical user interface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50391Robot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本申請公開了用於有人值守或無人值守的機器人的機器人行程自動化(RPA)的自動化視窗。子會話被創建並被託管為視窗,其包括與父會話相關聯的視窗的應用的使用者介面(user interface,UI)。運行多個會話允許在用戶與父會話互動時機器人在該子會話中操作。用戶可以因此能夠與機器人沒有正在使用的應用互動,或者用戶和機器人可以能夠與相同應用互動(如果該應用具有該功能的話)。使用者和機器人兩者都與相同的應用實例和檔案系統互動。經由機器人和用戶在應用中進行的改變將被做出,如同單個用戶做出改變一樣,而不是使用戶和機器人各自對應用和檔案系統的單獨的版本起作用。

Description

提供用於機器人行程自動化的自動化視窗之電腦程式和電腦實現方法
本發明總體上涉及機器人行程自動化(robotic process automation,RPA),並且更具體地涉及用於有人值守或無人值守的機器人的RPA的自動化視窗。
有人值守的自動化機器人運行在由使用者操作的計算系統上。在有人值守的自動化情形中可能出現的問題是機器人可以在使用者試圖與計算系統互動時“接管”使用者的計算系統。換言之,機器人通過使用者介面(user interface,UI)以與使用者相同的方式(例如,類比滑鼠點擊和鍵盤輸入)控制應用。
存在創建作業系統或運行在其上的應用的完全或部分副本的各種技術。模擬器已經存在了數十年並且可以為開發者提供測試並調試應用的能力。例如,模擬器可以為開發者提供測試並調試使用不支援直接運行開發工具的作業系統的移動應用的能力。Android®和iOS®兩者都提供了可以從開發機器運行以測試並調試Android®或iOS®應用的模擬器,因為開發者工具不能本機運行在那些移動作業系統上。
模擬器允許開發者在他或她的本地機器上託管視窗,該視窗允許難以或不可能在開發機器上執行的應用的開發者測試和調試行為。例如,模擬器允許開發者點擊按鈕以旋轉模擬器,其告訴運行在模擬器內部的應用設備已經出於測試並調試對這些事件做出回應的應用行為的目的而被旋轉。另一常見示例是多觸摸。許多開發者機器不支援觸摸,因此模擬器使開發者測試並調試應用如何對多個觸摸點做出回應。Android®和iOS®模擬器還提供類比能力。另外,Microsoft®提供用於它們的通用Windows平臺(Universal Windows Platform,UWP)應用的模擬器。
虛擬機器在機器上託管第二作業系統並且能夠通過視窗被打開和監測。這運行完全不同的作業系統並與託管機器共用硬體。“遊客”機器必須安裝有它自己的應用的副本並且不與用戶機器共用公共資源或檔。
Docker®容器在概念上是虛擬機器的混合形式。需要被執行的所有應用被封裝成直接執行在主機作業系統上的不可變封裝。封裝不是另一作業系統的完整副本,但是其默認不共用或能夠訪問託管機器上的應用或資源中的任何。因此,從用戶體驗角度,Docker®容器感覺類似於虛擬機器,但是在技術上,容器不執行在完全分離的作業系統上。
然而,常規模擬器、模擬器、虛擬機器(virtual machine,VM)和提供作業系統(operating system,OS)層虛擬化(例如,Docker®容器)的混合VM不解決在有人值守的自動化機器人作為使用者在相同的計算系統上操作的情況下出現的問題。因此,用戶基本上變成針對他或她自己的計算系統的旁觀者,觀看機器人工作而不能與機器上的需要使用者互動的其他應用互動。因此,一種改進的方法可以是有益的。
本發明的某些實施例可以提供對本領域中的尚未通過當前RPA技術被完全標識、認識到或解決的問題和需求的解決方案。例如,本發明的一些實施例涉及用於有人值守或無人值守的機器人的RPA的自動化視窗。
在實施例中,一種電腦程式被體現於非暫態電腦可讀取媒體上。程式被配置為使至少一個處理器啟動子會話視窗和子會話。子會話是針對作業系統的父會話的子代,並且子視窗位於父會話的父視窗內。程式還被配置為使至少一個處理器在使用者計算系統上啟動使用者會話視窗,將用於機器人會話的機器人會話視窗啟動為使用者會話視窗的子視窗,在機器人子會話中將RPA機器人初始化為行程,並且執行RPA機器人。在執行期間,RPA機器人執行包括子會話視窗內的複數個活動的RPA工作流。父會話和子會話能夠訪問共用檔案系統。
在另一實施例中,一種用於在設計時執行用於RPA的有人值守的自動化的電腦實現的方法包括:從整合式開發環境(integrated development environment,IDE)啟動子會話視窗和子會話。子會話是針對作業系統的父會話的子代,並且子視窗位於父會話的父視窗內。電腦實現的方法還包括在子會話中將RPA機器人初始化為行程並執行RPA機器人。在執行期間,RPA機器人執行包括子會話視窗內的複數個活動的RPA工作流。父會話和子會話能夠訪問共用檔案系統。
在又一實施例中,一種用於RPA中的自動化監測的電腦實現的方法包括:在與計算系統相關聯的父會話中初始化並執行監測和故障排除應用。電腦實現的方法還包括啟動子會話視窗和子會話。子會話是針對作業系統的父會話的子代。電腦實現的方法還包括在子會話中將無人值守的RPA機器人初始化並執行為行程,從監測和故障排除應用的使用者接收命令以終止無人值守的RPA機器人的操作,並且響應於接收到命令而暫停或終止無人值守的RPA機器人的操作。父會話和子會話能夠訪問共用檔案系統。
100:系統
110:設計器
120:指揮器
130:機器人
132:有人值守的機器人
134:無人值守的機器人
200:系統
210:應用/系統
212:執行器
214:代理
216:設計器
220:瀏覽器
230:指揮器
232:web應用
234:端點/OData REST API端點
236:通知和監測/通知和監測API
238:API實現/業務邏輯
240:資料庫伺服器
250:索引子伺服器
300:關係
310:設計器
320:活動/用戶定義的活動
330:活動/UI自動化活動
340:驅動器
342:OS驅動器
344:瀏覽器驅動器
346:VM驅動器
348:企業應用驅動器
400:系統
410:系統
420:系統
430:資料伺服器
440:索引子伺服器
500:系統
505:匯流排
510:處理器
515:記憶體
520:通信設備
525:顯示器
530:鍵盤
535:游標控制設備
540:作業系統
545:自動化視窗模組
550:功能模組
600:系統
610:用戶會話/會話1
620:機器人會話/會話2
630:瀏覽器應用
640:電子資料工作表應用
650:電子郵件應用
660:檔案系統
700:使用者會話視窗
710:機器人托盤
720:機器人會話視窗
730:微軟記事本®應用
732:文字
740:UiPath StudioTM
750:RPA工作流
800:行程
810:步驟
820:步驟
830:步驟
840:步驟
850:步驟
900:行程
910:步驟
920:步驟
930:步驟
940:步驟
950:步驟
960:步驟
970:步驟
1000:行程
1010:步驟
1020:步驟
1030:步驟
1040:步驟
1050:步驟
1060:步驟
1100:行程
1110:步驟
1120:步驟
1130:步驟
1140:步驟
1150:步驟
1200:行程
1210:步驟
1220:步驟
1230:步驟
1240:步驟
1250:步驟
1260:步驟
為了本發明的某些實施例的優點將被容易理解,以上簡單描述的本發明的更具體的描述將通過參考在附圖中圖示的特定實施例來呈現。儘管應當理解這些附圖僅僅描繪本發明的典型實施例並且因此不被認為是對其範圍的限制,但是本發明利用在對附圖的使用中的額外的特異性和細節來描述並解釋,在附圖中:[圖1]是圖示了根據本發明的實施例的機器人行程自動化(RPA)系統的架構圖;[圖2]是圖示了根據本發明的實施例的部署的RPA系統的架構圖;[圖3]是圖示了根據本發明的實施例的設計器、活動以及驅動程式之間的關係的架構圖;[圖4]是圖示了根據本發明的實施例的RPA系統的架構圖;[圖5]是圖示了根據本發明的實施例的被配置為運行RPA的自動化視窗的計算系統的架構圖;[圖6]圖示了根據本發明的實施例的運行與也運行在使用者計算系統上的一些應用的用戶會話和有人值守的自動化機器人會話的使用者計算系統的一些應用。
[圖7]A-K是圖示了根據本發明的實施例的RPA的針對用戶和機器人的單獨的會話的示例的螢幕截圖。
[圖8]是圖示了根據本發明的實施例的用於使得機器人和用戶能夠同時使用有人值守自動化視窗來操作計算系統的行程的流程圖。
[圖9]是圖示了根據本發明的實施例的用於使得機器人和RPA開發者能夠同時使用有人值守自動化視窗來操作計算系統的行程的流程圖。
[圖10]是圖示了根據本發明的實施例的用於使用使用者的自動化視窗來執行有人值守或無人值守的自動化的行程的流程圖。
[圖11]是圖示了根據本發明的實施例的用於使用RPA開發者的自動化視窗來執行有人值守或無人值守的自動化的行程的流程圖。
[圖12]是圖示了根據本發明的實施例的用於執行自動化監測的行程的流程圖。
除非另行指示,相似的附圖標記表示貫穿附圖一致的對應特徵。
一些實施例涉及用於有人值守或無人值守的機器人的RPA的自動化視窗。在一些實施例中,自動化視窗用於有人值守的自動化。然而,在一些實施例中,並且如下文所討論的,自動化視窗可以用於監測無人值守的機器人,諸如當運營工程師遠端地監測伺服器上運行的一個或多個機器人時。用於自動化視窗的應用包括但不限於模擬器、模擬器、VM和提供OS層虛擬化(例如,Docker®容器)的混合VM。一些實施例創建並託管第二(例如,子)會話作為視窗,該視窗包括由有人值守的自動化程序控制的應用的UI。如本文所使用的,“視窗”可以應用於表示在主UI、計算系統的第二顯示器的第二螢幕、虛擬桌面、隔離的環境內顯示的UI的視窗(例如,繪製在環境(被稱為“子代”)內部啟動的所有應用的UI並且在主機會話的背景下運行所有應用的視窗(被稱為“主機”))等而不偏離本發明的範圍。
運行多個會話允許機器人在用戶與第一會話(例如,父會話)互動時在該第二會話中操作。備選地,機器人可以在第一會話中操作而用戶在第二會話中操作。用戶可以因此能夠與機器人沒有正在使用的應用互動(例如,用戶可以使用Outlook®,而機器人正在將資料從Excel®移動到網路瀏覽器),或者使 用者和機器人可以能夠與相同應用互動(如果該應用具有該功能的話)(例如,機器人正在與網路瀏覽器中的一個實例互動,而使用者與另一實例互動)。
用戶和機器人兩者都能與相同的應用安裝和檔案系統互動。經由機器人和用戶在應用中進行的改變將被做出,如同單個用戶做出改變一樣,而不是使用戶和機器人各自對應用和檔案系統的單獨的版本起作用。換言之,應用是用戶的本地Excel®、Outlook®等。而且,本地檔案系統可以在沒有附加配置的情況下被利用。這不同於Docker®容器,例如,其要求附加配置步驟以能夠訪問檔案系統。
在一些實施例中,針對任何數目的機器人的任何期望數目的會話可以被創建並使用而不偏離本發明的範圍。例如,用戶可以與第一會話互動,第一機器人可以與第二會話互動,第二機器人可以與第三會話互動,等等。在某些實施例中,多個機器人可以與單個會話互動。
用於創建會話的功能可以經由例如Windows®終端服務子會話(其可以在無需使用者登出的情況下將會話創建回到用戶自己的機器中)來實現。新創建的會話顯現為子視窗,並且包含和啟動存在於用戶的會話中的應用。換言之,用戶與機器人之間的分離發生在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、企業應用(例如,由SAP®、SalesForce®、Oracle®等生產的那些)以及計算系統應用(例如,桌面和膝上型應用、移動設備應用、可穿戴電腦應用等)。
指揮器120可以具有各種能力,包括但不限於預置、部署、版本管理、配置、排隊、監測、日誌記錄、和/或提供相互連線性。預置可以包括創建並維護機器人130與指揮器120之間的連接(例如,web應用)。部署可以包括確保正確遞送封裝版本到所分配的機器人130以用於執行。在一些實施例中,版本管理可以包括管理一些行程或配置的唯一實例。配置可以包括對機器人環境和行程配置的維護和遞送。排隊可以包括提供對佇列和佇列項的管理。監測可以包括跟蹤機器人標識資料並維護使用者許可權。日誌記錄可以包括將日誌儲存並索引到資料庫(例如,SQL資料庫)和/或另一儲存機制(例如,ElasticSearch®,其提供儲存並快速查詢大資料集的能力)。指揮器120可以通過充當針對協力廠商解決方案和/或應用的集中通信點來提供相互連線性。
機器人130是運行在設計器110中所建立的工作流的執行代理。(多個)機器人130的一些實施例的一個業務示例是UiPath機器人TM。在一些實施例中,機器人130預設安裝微軟Windows®服務控制管理器(Service Control Manager,SCM)管理的服務。因此,這樣的機器人130可以在本地系統帳戶下打 開互動式Windows®會話並且具有Windows®服務的權利。
在一些實施例中,機器人130可以以使用者模式被安裝。對於這樣的機器人130,這意味著它們與安裝給定機器人130的用戶具有相同的權利。該特徵也可以可用於高密度(High Density,HD)機器人,其確保以其最大可能對每個機器的完全利用。在一些實施例中,任何類型的機器人130可以被配置在HD環境中。
在一些實施例中,機器人130被拆分成若干元件,每個元件專用於特定自動化任務。在一些實施例中,機器人元件包括但不限於SCM管理的機器人服務、使用者模式機器人服務、執行器、代理以及命令列。SCM管理的機器人服務管理並監測Windows®會話,並充當指揮器120與執行主機(即,機器人130被執行在其上的計算系統)之間的代理方。這些服務利用針對機器人130的證書受信任並管理該證書。控制台應用由本地系統下的SCM啟動。
在一些實施例中,使用者模式機器人服務管理並監測Windows®會話,並充當指揮器120與執行主機之間的代理方(proxy)。使用者模式機器人服務利用針對機器人130的證書受信任並管理該證書。如果SCM管理的機器人服務未被安裝,Windows®應用可以被自動啟動。
執行器可以在Windows®會話下運行給定作業(即,它們可以執行工作流)。執行器可以意識到每個監視器的每英寸點數(dots per inch,DPI)設置。代理可以是顯示系統托盤視窗中的可用作業的Windows®展示架構(Windows® Presentation Foundation,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(例如,Windows®服務)是針對所有執行器212的單個接觸點。在該實施例中,所有消息被日誌記錄到指揮器230中,其經由資料庫伺服器240、索引子伺服器250或兩者進一步處理它們。如以上參考圖1所討論的,執行器212可以是機器人元件。
在一些實施例中,機器人表示機器名與用戶名之間的關聯。機器人可以同時管理多個執行器。在支援同時運行的多個互動式會話的計算系統(例如,Windows®伺服器2012)上,多個機器人可以正在同時運行,各自在單獨的Windows®會話中使用唯一的用戶名。這被稱為上述HD機器人。
代理214還負責發送機器人的狀態(例如,週期性地發送指示機器人仍然正在起作用的“心跳”消息),並下載要被執行的封裝的所需版本。在一些實施例中,代理214與指揮器230之間的通信總是由代理214發起。在通知的情形中,代理214可以打開稍後由指揮器230用來將命令發送給機器人(例如,開始、停止等)的WebSocket通道。
在伺服器側上,包括:展示層(web應用232、開放資料協定(Open Data Protocol,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可以是REST端點,其用於註冊代理214、將配置設置遞送到代理214、並且用於發送/接收來自伺服器和代理214的通知。在一些實施例中,通知和監測API 236還可以使用WebSocket通信。
在該實施例中,持久層包括一對伺服器,資料庫伺服器240(例如,SQL伺服器)和索引子伺服器250。在該實施例中,資料庫伺服器240儲存機器人、機器人組、相關聯的行程、用戶、角色(role)、調度等的配置。在一些實施例中,該資訊通過web應用232來管理。資料庫伺服器240可以管理佇列和佇列項。在一些實施例中,資料庫伺服器240可以儲存由機器人日誌記錄的消息(除了或代替索引子伺服器250)。
索引子伺服器250,其在一些實施例中是可選的,儲存並索引由機器人日誌記錄的資訊。在某些實施例中,索引子伺服器250可以通過配置設置被禁用。在一些實施例中,索引子伺服器250使用ElasticSearch®,其是開源專案全文字搜尋引擎。由機器人日誌記錄的消息(例如,使用如日誌消息或寫入行的活動)可以通過(多個)日誌記錄的REST端點被發送到索引子伺服器250,其中它們被索引以用於未來利用。
圖3是圖示了根據本發明的實施例的設計器310、活動320、330以及驅動器340之間的關係300的架構圖。按照上文,開發者使用設計器310來開發由機器人執行的工作流。工作流可以包括用戶定義的活動320和UI自動化活動330。一些實施例能夠標識圖像中的非文字視覺元件,其在本文被稱為電腦視覺(computer vision,CV)。一些涉及這樣的元件的CV活動可以包括但不限於點擊、打字、獲得文字、懸停、元件存在、刷新範圍、突出顯示等。點擊在一些實施例中使用例如CV、光學字元辨識(optical character recognition,OCR)、模糊文字 匹配、以及多錨來標識元素並且點擊它。打字可以使用上述來標識元素並在元素中打字。獲得文字可以使用OCR來標識特定文字的位置並且掃描它。懸停可以標識元素並懸停在它上方。元素存在可以使用以上描述的技術來檢查元素是否存在於螢幕上。在一些實施例中,可以存在數百或甚至數千可以被實現於設計器310中的活動。然而,任何數目和/或類型的活動可以是可用的而不偏離本發明的範圍。
UI自動化活動330是以較低層代碼編寫並且促進與螢幕的互動的特殊的較低水準的活動(例如,CV活動)的子集。UI自動化活動330經由允許機器人與期望軟體互動的驅動器340促進這些互動。例如,驅動器340可以包括OS驅動器342、瀏覽器驅動器344、VM驅動器346、企業應用驅動器348等。
驅動器340可以在低層次上與OS互動,查找鉤子(hook)、監測金鑰等。它們可以促進與Chrome®、IE®、Citrix®、SAP®等的集成。例如,“點擊”活動在這些不同應用中經由驅動器340執行相同作用。
圖4是圖示了根據本發明的實施例的RPA系統400的架構圖。在一些實施例中,RPA系統400可以是或包括圖1和/或圖2的RPA系統100和/或200。RPA系統400包括運行機器人的多個用戶端計算系統410。計算系統410能夠經由運行在其上的web應用與指揮器計算系統420通信。指揮器計算系統420繼而能夠與資料伺服器430和可選的索引子伺服器440通信。
關於圖1和圖3,應當指出,儘管web應用被使用在這些實施例中,但是任何合適的用戶端/伺服器軟體可以被使用而不偏離本發明的範圍。例如,指揮器可以運行與用戶端計算系統上的非基於web的用戶端軟體應用通信的伺服器側應用。
圖5是圖示了根據本發明的實施例的被配置為執行針對RPA的自動化視窗的計算系統500的架構圖。在一些實施例中,計算系統500可以是本文描 繪和/或描述的計算系統中的一個或多個。計算系統500包括匯流排505或用於通信資訊的其他通信機制、以及耦合到匯流排505的用於處理資訊的(多個)處理器510。(多個)處理器510可以是任何類型的通用或專用處理器,包括中央處理單元(Central Processing Unit,CPU)、專用積體電路(Application Specific Integrated Circuit,ASIC)、場域可程式設計閘陣列(Field Programmable Gate Array,FPGA)、圖形處理單元(Graphics Processing Unit,GPU)、其多個實例、和/或其任何組合。(多個)處理器510還可以具有多個處理核心,並且核心中的至少一些可以被配置為執行特定功能。多並行處理可以被使用在一些實施例中。在某些實施例中,(多個)處理器510中的至少一個可以是包括模擬生物神經元的處理元件的神經形態電路。在一些實施例中,神經形態電路可以不要求馮諾依曼(Von Neumann)計算架構的典型元件。
計算系統500還包括用於儲存要由(多個)處理器510執行的資訊和指令的記憶體515。記憶體515可以包括以下中的任何組合:隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read Only Memory,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中的機器人常常以類似方式與計算系統互動(例如,生成滑鼠點擊和按鍵事件,經由API(例如,使用視窗消息)類比這些事件等),一些實施例創建第二會話來託管並運行其中的有人值守的自動化。不像現有RPA系統,使用者可以受益於在機器人正在第二會話中運行有人值守的自動化時與他們的計算系統互動的能力。用戶可以仍然監測機器人正在做什麼並且通過用於第二會話的託管自動化視窗與機器人互動。這將RPA機器人從僅僅比用戶更快且更可靠地做任務,有效地演變到成為可以與使用者並存執行工作的真正數位助理,從而提供甚至更大的生產力提升。在一些實施例中,第一會話和第二會話可以正在運行在由使用者的計算系統控制的遠端機器上。
在某些實施例中,RPA機器人可以正在運行在使用者的計算系統上並且通過遠端運行時(例如,經由UiPath遠端運行時TM)驅動遠端計算系統。UiPath遠端運行時TM是促進遠端應用(諸如Citrix虛擬應用和DesktopsTM)或桌面與專用UiPath®擴展(例如,用於Citrix®的UiPath®擴展或用於Windows®遠端桌面的UiPath®擴展)之間的通信的元件。UiPath遠端運行時TM收集與遠端應用的靶向UI元素有關的資訊,並將該資訊發送到對應的擴展,使得選擇器被直接生成在UI ExplorerTM中。
如之前所陳述的,用戶和機器人兩者都正在與相同的應用實例和檔案系統互動。圖6圖示了根據本發明的實施例的運行用戶會話610的使用者計算系統600、以及有人值守的自動化機器人會話620(其中一些應用也運行在使用者計算系統600上)的一些應用。如可以在圖6中看出的,web瀏覽器應用630、電子資料工作表應用640、以及電子郵件應用650可由用戶會話610和有人值守的自動化機器人會話620兩者訪問。用戶會話610和有人值守的自動化機器人會話620可以同時與網路瀏覽器應用630和電子郵件應用650互動。
然而,當機器人正在與電子資料工作表應用640的相同檔互動時,用戶不能與該應用互動(例如,用戶可以僅僅能夠打開“唯讀”視圖或者用戶可以被完全阻止打開檔)。用戶可以接收指示電子資料工作表應用640被鎖定、正由另一“用戶”(即,機器人)訪問等的消息。用戶會話610和有人值守的自動化機器人會話620兩者也可以與檔案系統660互動。因此,經由機器人和用戶經由它們各自的會話在應用中進行的改變將被做出,如同單個用戶做出改變一樣,而不是使用戶和機器人各自對應用和檔案系統的單獨的版本起作用。
圖7A-K是圖示了根據本發明的實施例的RPA的針對用戶和機器人的單獨的會話的示例的螢幕截圖。在圖7A中,使用者會話視窗700被示出,其中用戶能夠與UI中的應用互動並且沒有機器人當前正在執行。在圖7B中,用戶拉起機器人托盤710(例如,通過點擊螢幕的右下方的圖示),並選擇機器人來在他或她的計算系統上執行。在選擇要被執行的機器人之後,如圖7C所示,機器人會話視窗720在螢幕上顯現為子視窗。機器人將在機器人會話視窗720中操作。
轉到圖7D和7E(其是圖7D的一部分的放大視圖),在該示例中,機器人啟動微軟記事本®應用730並開始在其中輸入文字732。在這正在發生時,使用者可以與在使用者會話視窗700中的應用互動、對機器人會話視窗720進行移動、調整大小、或最小化等。如圖7F所示,機器人托盤710指示機器人正在運 行。
在圖7G中,使用者已經在使用者會話視窗700內打開了Google Chrome®。機器人會話視窗720在前景中可見。在圖7H和圖7I中示出的其放大部分中,當使用者使用Google Chrome®瀏覽網路時,與使用者的網路瀏覽並行地機器人繼續在微軟記事本®應用730中輸入文字732。
圖7J圖示了具有用於機器人的RPA工作流750的部分的UiPath StudioTM 740。如可以在圖7K中看出的,開發者能夠使用UiPath StudioTM 740步進通過RPA工作流750。UiPath StudioTM 740和機器人會話視窗720兩者都在使用者會話視窗700中可見。利用每個步驟,文字732被輸入在微軟記事本®應用730中。
圖8是圖示了根據本發明的實施例的用於使得機器人和用戶能夠同時使用有人值守的自動化視窗來操作計算系統的行程800的流程圖。行程在810處開始啟動使用者會話視窗。例如,這可以是與運行在使用者計算系統上的作業系統相關聯的主視窗。在820處,機器人會話視窗然後被啟動為用於使用者會話視窗的子視窗。在一些實施例中,例如,機器人會話視窗可以回應於機器人被初始化或以其他方式啟動而被啟動。機器人然後在830處在機器人會話中被啟動,並且在840處,機器人在機器人會話中執行其工作流。在一些實施例中,在850處,機器人會話被結束並且機器人會話視窗被自動關閉。
在一些實施例中,子會話可以經由作業系統的子會話API來創建。由作業系統提供的Windows®終止服務子會話或另一子會話可以在一些實施例中用於創建第二會話而不偏離本發明的範圍。機器人托盤應用(例如,UiPath®機器人代理桌面)可以然後利用合適的參數使用作業系統中的創建行程來在該子會話中啟動機器人行程。機器人托盤應用可以然後使用合適的協定(例如,在命名的管線上建立的協定)與機器人行程通信。
在兩個會話之間與機器人通信可以使用IPC協定來完成。這些協 定可以促進經由網路、管線、元件物件模型(COM)、遠端程序呼叫(RPC)、通訊端等的通信。在支援的情況下,合適的會話創建機制和IPC協定可以也用於其他作業系統。當使用者點擊機器人托盤上的按鈕時,機器人托盤應用可以使用IPC協定將該命令發送到機器人行程。機器人可以也經由IPC協定將狀態通知發送回到機器人托盤應用(例如,指示機器人正在啟動、運行、暫停等)。
用於RPA開發者的有人值守的自動化(設計時)
在一些實施例中,有人值守的自動化視窗可以創建第二會話來託管並運行其中的有人值守的自動化,以便當在設計時從開發環境使用時測試並調試自動化。這可以使得RPA開發者能夠確保在機器人有人值守的自動化視窗內部運行的有人值守的自動化如期望地運轉。
RPA開發者還可以使用該功能來創建有人值守的自動化,其提供平滑體驗,此處用戶可以在機器人正在運行時根據需要訪問應用。如果有人值守的自動化使用戶難以在運行時與他或她的計算系統互動,或者如果在有人值守的自動化正在運行時,難以使從整合式開發環境(IDE)啟動有人值守的自動化的RPA開發者查看並訪問IDE,則可能期望RPA開發者將機器人修改為以較少干擾的方式運行。例如,如果自動化將應用帶到IDE前面的前景,則開發者喪失查看從行程即時流傳輸的日誌資訊的能力。RPA開發者可以因此改變來自IDE的啟動設置,使得這不再發生。
圖9是圖示了根據本發明的實施例的用於使得機器人和RPA開發者能夠同時使用有人值守自動化視窗來操作計算系統的行程900的流程圖。行程以在910處啟動開發者會話視窗開始。例如,這可以是與運行在RPA開發者計算系統上的作業系統相關聯的主視窗。接下來,在920處啟動IDE,並且在930處,RPA開發者發出命令以開始有人值守的自動化。這使機器人會話視窗在940處啟動並且在950處在機器人會話中初始化機器人。機器人然後在960處在機器人會 話中執行其工作流以執行有人值守的自動化邏輯。如果開發者不滿意機器人的操作,則開發者可以命令執行在IDE中停止,其在970處結束機器人會話並關閉機器人會話視窗。行程然後返回到步驟930。
用於RPA的自動化監測
在一些實施例中,第二會話可以用於自動化監測和故障排除。例如,負責伺服器(其託管無人值守的自動化)的運營工程師(即,不存在用戶正在監測運行的自動化行程的許可要求或期望)可以期望介入以校正錯誤。運營工程師可以經由第二會話視窗來完成這一點。例如,運營工程師可以涉足並殺死錯誤正在發生時的(多個)機器人的操作。
在一些實施例中,運營工程師可以使用遠端桌面技術來訪問計算系統。例如,運營工程師可以登錄到計算系統(例如,生產機器)中並且能夠在他或她自己的計算系統上看到其使用者介面。因此,運營工程師可以能夠看到UI並根據需要控制遠端計算系統。
機器人可以正在生產機器上在第二會話中運行並控制UI。這意味著運營工程師自由進行諸如監測來自機器人的流傳輸日誌和視覺地監測由機器人驅動的UI(如果有的話),不喪失對機器的控制之類的事情。因為機器人控制軟體正在第一會話或父會話中運行,所以如果問題發生,則工程師能夠從他或她登錄到的父會話暫停/終止/恢復執行。在一些實施例中,機器人可以正在父會話中運行而監測可以從子會話執行。
Microsoft®通用視窗平臺(UWP)模擬器提供模擬諸如地理位置、多觸摸、旋轉等的行為的能力。這樣的行為可能難以或不可能在開發者機器上測試。例如,如果開發者想要測試取決於不同位置的應用(諸如地圖程式)的測試行為,則開發者攜帶他或她的電腦到全國或全世界各地進行測試是很不方便的。不是集中於將“UI接管”與用戶隔離,或排外地與RPA相關,UWP應用而是包含在 單個視窗中的單個應用。因此,隔離UI控制的需要不應成為問題。UWP模擬器因此可以解決針對單個應用的“模擬場景”。
圖10是圖示了根據本發明的實施例的用於使用使用者的自動化視窗來執行有人值守或無人值守的自動化的行程1000的流程圖。行程以在1010處啟動子會話視窗和子會話開始。子會話是針對作業系統的父會話的子代,並且子視窗位於父會話的父視窗內。RPA機器人在1020處在子會話中被初始化為行程,並且RPA機器人在1030處被執行。在執行期間,RPA機器人執行包括子會話視窗內的複數個活動的RPA工作流。父會話和子會話能夠訪問共用檔案系統。
如果在1040處用戶嘗試與RPA機器人訪問相同的應用,則在1050處在父會話視窗中向使用者顯示指示RPA機器人當前正在訪問應用的消息。在1060處,在RPA機器人完成對RPA工作流的運行之後,子會話被自動結束並且子會話視窗被自動關閉。步驟1010-1060可以順序或並行地針對運行子會話的任何期望數目的機器人進行重複。
在一些實施例中,當執行RPA工作流中的複數個活動時,RPA機器人與運行在計算系統上的經由父會話和子會話兩者都可訪問的一個或多個共用應用互動。在某些實施例中,RPA機器人是有人值守的機器人,並且用戶經由父會話與應用的實例互動,而不干擾RPA機器人經由子會話與應用的不同實例或不同應用的實例互動。在一些實施例中,子會話視窗由父會話視窗中的機器人托盤應用啟動。在某些實施例中,在機器人托盤應用與RPA機器人之間的通信使用IPC協定來完成,並且機器人托盤應用被配置為經由IPC協定將命令發送到RPA機器人行程。在一些實施例中,RPA機器人被配置為經由IPC協定將狀態通知發送到機器人托盤應用。
在一些實施例中,父會話和子會話在設計時被啟動,RPA機器人執行有人值守的自動化,並且IDE應用執行在與父會話相關聯的計算系統上並且 被配置為啟動有人值守的自動化。在某些實施例中,父會話和子會話運行在不同計算系統上。在一些實施例中,父視窗、子視窗、或兩者包括視窗,其表示在主UI、計算系統的第二顯示器的第二螢幕、虛擬桌面、或隔離的環境內顯示的UI。
在一些實施例中,RPA機器人是有人值守的機器人,並且RPA機器人在用戶與父會話互動時被初始化並執行在父會話中。在某些實施例中,對子會話視窗和子會話的啟動、在子會話中對RPA機器人的初始化、以及對RPA機器人的執行是經由遠端計算系統執行的。在一些實施例中,RPA機器人是無人值守的機器人。
圖11是圖示了根據本發明的實施例的用於使用RPA開發者的自動化視窗來執行有人值守或無人值守的自動化的行程1100的流程圖。行程在1110處以從IDE啟動子會話視窗和子會話開始。子會話是針對作業系統的父會話的子代,並且子視窗位於父會話的父視窗內。在1120處RPA機器人在子會話中被初始化為行程,並且RPA機器人在1130處被執行。在執行期間,RPA機器人執行包括子會話視窗內的複數個活動的RPA工作流。父會話和子會話能夠訪問共用檔案系統。
在1140處,在機器人操作期間從RPA機器人接收狀態訊息,並且在IDE中顯示所接收的狀態訊息。如果機器人沒有正在如期望的進行操作,則用戶(例如,RPA開發者)可能想要結束其操作。當用戶提供命令以終止RPA機器人的操作時,由IDE終止RPA機器人、子會話、子視窗的操作。
圖12是圖示了根據本發明的實施例的用於執行自動化監測的行程1200的流程圖。行程以在1210處在與計算系統相關聯的父會話中初始化並執行監測和故障排除應用開始。在1220處啟動子會話視窗和子會話。子會話是針對作業系統的父會話的子代。
在1230處,無人值守的RPA機器人在子會話中被初始化並執行為 行程。在1240處,從監測和故障排除應用的使用者接收命令以終止無人值守的RPA機器人的操作。無人值守的RPA機器人的操作然後在1250處被暫停或終止,並且子會話和子會話視窗在1260處回應於接收到命令而被殺死。父會話和子會話能夠訪問共用檔案系統。
在一些實施例中,子會話視窗被顯示在與父會話正在運行於其上計算系統不同的計算系統上。在某些實施例中,當執行RPA工作流中的複數個活動時,無人值守的RPA機器人與經由父會話和子會話兩者都可訪問的一個或多個共用應用互動。在一些實施例中,用戶經由父會話與應用的實例的互動,而不干擾無人值守的RPA機器人經由子會話與應用的不同實例或不同應用的實例互動。在某些實施例中,在無人值守的RPA機器人完成對RPA工作流的執行之後,子會話被自動結束並且子會話視窗被自動關閉。
在一些實施例中,任何期望數目的附加機器人可以在與步驟1220的子會話順序或並行的相應子會話中被執行。在某些實施例中,當用戶嘗試與無人值守的RPA機器人正在與之互動的應用互動時,指示無人值守的RPA機器人當前正在訪問應用的消息可以在父會話視窗中被顯示給使用者。在一些實施例中,父會話和子會話運行在不同計算系統上。在某些實施例中,父視窗、子視窗、或兩者包括視窗,其表示在主UI、計算系統的第二顯示器的第二螢幕、虛擬桌面、或隔離的環境內顯示的UI。在一些實施例中,對子會話視窗和子會話的啟動、在子會話中對無人值守的RPA機器人的初始化、以及對無人值守的RPA機器人的執行是經由遠端計算系統執行的。
根據本發明的實施例,圖8-12中執行的行程步驟可以由電腦程式執行,電腦程式編碼用於(多個)處理器執行圖8-12中描述的(多個)行程的至少部分的指令。電腦程式可以被體現於非暫態電腦可讀取媒體上。電腦可讀取媒體可以為但不限於硬碟驅動器、快閃設備、RAM、磁帶、和/或任何其他這樣的 媒體或用於儲存資料的媒體的組合。電腦程式可以包括用於控制計算系統的(多個)處理器(例如,圖5的計算系統500的(多個)處理器510)實現圖8-12中描述的行程步驟中的全部或部分的編碼指令,其也可以被儲存於電腦可讀取媒體上。
電腦程式可以以硬體、軟體或混合實現來實現。電腦程式可以由與彼此操作性通信、並且被設計為傳遞資訊或指令以顯示的模組組成。電腦程式可以被配置為在通用電腦、ASIC或任何其他合適的設備上進行操作。
將容易理解如在本文的附圖中大體描述的和說明的本發明的各種實施例的元件可以以各種各樣的不同配置來佈置和設計。因此,如附圖中表示的本發明的實施例的詳細描述不旨在限制所要求保護的本發明的範圍而是僅僅表示本發明的選定實施例。
貫穿本說明書描述的本發明的特徵、結構或特性可以以任何適當的方式被組合在一個或多個實施例中。例如,貫穿本說明書對“某些實施例”、“一些實施例”或“類似語言的引用意味著結合實施例描述的特定特徵、結構或特性被包含在本發明的至少一個實施例中。因此,短語“在某些實施例中”、“在一些實施例中”、“在其他實施例中”或類似語言在整個說明書中的出現不必全部指代同一組實施例,並且所描述的特徵、結構或特性可以以任何適當的方式被組合在一個或多個實施例中。
應當指出,貫穿本說明書對特徵、優點或類似語言的引用不暗示可以利用本發明實現的特徵和優點中的全部應當在本發明的任何單個實施例中或者是在本發明的任何單個實施例中。相反,涉及特徵和優點的語言被理解為意味著結合實施例描述的特定特徵、優點或特性被包含在本發明的至少一個實施例中。因此,貫穿本說明書對特徵和優點以及類似語言的討論可以但不必指代相同實施例。
另外,本發明的上述特徵、優點和特性可以以任何適當的方式被組合在一個或多個實施例中。相關領域技術人員將意識到能夠在沒有具體實施例的指定特徵或優點中的一個或多個情況下實踐本發明。在其他實例中,在可以不存在於本發明的所有實施例中的某些實施例中意識到額外的特徵和優點。
本領域普通技術人員將容易理解,可以利用以不同順序的步驟和/或利用以不同於所公開的那些的配置的硬體元件來實踐如以上討論的本發明。因此,儘管已經基於優選實施例描述了本發明,但是對本領域技術人員將顯而易見的是,某些修改、變型和備選結構將是顯而易見的,同時保持在本發明的精神和範圍內。為了確定本發明的範圍,因此,應當對隨附請求項進行參考。
1000:行程
1010:步驟
1020:步驟
1030:步驟
1040:步驟
1050:步驟
1060:步驟

Claims (16)

  1. 一種體現於非暫態電腦可讀取媒體上的電腦程式,所述程式被配置為使至少一個處理器:啟動子會話視窗和子會話,其中所述子會話是針對作業系統的父會話的子代,並且所述子會話視窗位於所述父會話的父視窗內;在所述子會話中將機器人行程自動化(robotic process automation,RPA)機器人初始化為行程;以及執行所述RPA機器人,其中在執行期間,所述RPA機器人執行RPA工作流,所述RPA工作流包括所述子會話視窗內的複數個活動,並且所述父會話和所述子會話能夠訪問共用檔案系統,其中當執行所述RPA工作流中的所述複數個活動時,所述RPA機器人與運行在計算系統上的、經由所述父會話和所述子會話兩者都能夠訪問的一個或多個共用應用互動,並且所述RPA機器人是有人值守的機器人,並且用戶經由所述父會話與應用的實例之互動,不干擾所述RPA機器人經由所述子會話與所述應用的不同實例或不同應用的實例之互動。
  2. 根據請求項1所述的電腦程式,其中所述子會話視窗從所述父會話視窗中的機器人托盤應用被啟動。
  3. 根據請求項2所述的電腦程式,其中在所述機器人托盤應用與所述RPA機器人之間的通信使用行程間通信(inter-process communication,IPC)協定而被完成,並且所述機器人托盤應用被配置為經由所述IPC協定將命令發送給所述RPA機器人行程。
  4. 根據請求項3所述的電腦程式,其中所述RPA機器人被配置為經由所述IPC協定將狀態通知發送給所述機器人托盤應用。
  5. 根據請求項1所述的電腦程式,其中所述程式還被配置為使所述至少一個處理器:在所述RPA機器人完成對所述RPA工作流的執行之後,自動結束所述子會話並關閉所述子會話視窗。
  6. 根據請求項1所述的電腦程式,其中所述程式還被配置為使所述至少一個處理器:啟動附加子會話視窗以及共用所述共用檔案系統的附加的相應會話;在所述附加子會話中初始化另一RPA機器人;以及執行所述另一RPA機器人。
  7. 根據請求項1所述的電腦程式,其中當所述RPA機器人是有人值守的機器人並且用戶嘗試與所述RPA機器人正在與之互動的應用互動時,所述程式還被配置為使所述至少一個處理器:在所述父會話視窗中將指示所述RPA機器人當前正在訪問所述應用的消息顯示給所述使用者。
  8. 根據請求項1所述的電腦程式,其中所述父會話和所述子會話在設計時被啟動,所述RPA機器人執行有人值守的自動化,並且整合式開發環境(IDE)應用執行在與所述父會話相關聯的計算系統上,並且被配置為初始化所述有人值守的自動化。
  9. 根據請求項1所述的電腦程式,其中所述父會話和所述子會話運行在不同計算系統上。
  10. 根據請求項1所述的電腦程式,其中所述父視窗、所述子會話 視窗、或兩者包括視窗,其表示在主使用者介面(UI)、計算系統的第二顯示器的第二螢幕、虛擬桌面、或隔離的環境內被顯示的UI。
  11. 根據請求項1所述的電腦程式,其中所述RPA機器人是有人值守的機器人,並且所述RPA機器人在用戶與所述父會話互動時被初始化並執行在所述父會話中。
  12. 根據請求項1所述的電腦程式,其中對所述子會話視窗和所述子會話的啟動、在所述子會話中對所述RPA機器人的初始化、以及對所述RPA機器人的執行是經由遠端計算系統而被執行。
  13. 根據請求項1所述的電腦程式,其中所述RPA機器人是無人值守的機器人。
  14. 一種用於在設計時執行用於機器人行程自動化(RPA)的有人值守的自動化的電腦實現的方法,包括:從整合式開發環境(IDE)啟動子會話視窗和子會話,其中所述子會話是針對作業系統的父會話的子代,並且所述子會話視窗位於所述父會話的父視窗內;將所述子會話中的機器人行程自動化(RPA)機器人初始化為行程;以及執行所述RPA機器人,其中在執行期間,所述RPA機器人執行RPA工作流,所述RPA工作流包括所述子會話視窗內的複數個活動,所述父會話和所述子會話能夠訪問共用檔案系統,當執行所述RPA工作流中的所述複數個活動時,所述RPA機器人與運行在計算系統上的、經由所述父會話和所述子會話兩者都能夠訪問的一個或多個共用應用互動,並且所述RPA機器人是有人值守的機器人,並且用戶經由所述父會話與應用的實例之互動,不干擾所述RPA機器人經由所述子會話與所述應用的不同實例或不同 應用的實例之互動。
  15. 根據請求項14所述的電腦實現的方法,還包括:在機器人操作期間從所述RPA機器人接收狀態訊息;以及在所述IDE中顯示所述狀態訊息。
  16. 根據請求項14所述的電腦實現的方法,其中當用戶提供命令以終止所述RPA機器人的操作時,所述方法還包括:由所述IDE終止所述RPA機器人、所述子會話和所述子會話視窗的操作。
TW109124314A 2020-02-18 2020-07-17 提供用於機器人行程自動化的自動化視窗之電腦程式和電腦實現方法 TWI730845B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
TWI730845B true TWI730845B (zh) 2021-06-11
TW202132070A TW202132070A (zh) 2021-09-01

Family

ID=70736378

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109124314A TWI730845B (zh) 2020-02-18 2020-07-17 提供用於機器人行程自動化的自動化視窗之電腦程式和電腦實現方法

Country Status (7)

Country Link
US (6) US10654166B1 (zh)
EP (2) EP3869432A1 (zh)
JP (2) JP6929422B1 (zh)
KR (1) KR102227687B1 (zh)
CN (2) CN113334371B (zh)
TW (1) TWI730845B (zh)
WO (4) WO2021167644A1 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138539B2 (en) * 2017-08-25 2021-10-05 Target Brands, Inc. Robtic business process automation system utilizing reusable task-based microbots
US11775814B1 (en) 2019-07-31 2023-10-03 Automation Anywhere, Inc. Automated detection of controls in computer applications with region based detectors
US11113095B2 (en) 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
US11568054B2 (en) * 2019-06-11 2023-01-31 Micro Focus Llc Web application login macro generation and verification
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
US11481304B1 (en) 2019-12-22 2022-10-25 Automation Anywhere, Inc. User action generated process discovery
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
US11182178B1 (en) 2020-02-21 2021-11-23 Automation Anywhere, Inc. Detection of user interface controls via invariance guided sub-control learning
US20210349430A1 (en) * 2020-05-11 2021-11-11 UiPath, Inc. Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
US11494203B2 (en) * 2020-05-13 2022-11-08 UiPath, Inc. Application integration for robotic process automation
CN111709701A (zh) * 2020-05-29 2020-09-25 北京艾陌时信息技术有限公司 一种机器人办公系统
US11748069B2 (en) * 2020-07-07 2023-09-05 UiPath, Inc. User interface (UI) descriptors, UI object libraries, UI object repositories, and UI object browsers 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
US12019421B2 (en) 2020-07-09 2024-06-25 UiPath, Inc. Robot access control and governance for robotic process automation
CN113168355A (zh) * 2020-07-09 2021-07-23 尤帕斯公司 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化
KR102446568B1 (ko) * 2020-07-09 2022-09-22 유아이패스, 인크. 제2 세션에서 실행중인 로봇 프로세스 자동화 로봇을 통한 제1 세션에서 실행중인 프로세스의 자동화
CN111814799B (zh) * 2020-07-21 2024-05-14 北京来也网络科技有限公司 结合rpa和ai的影像归位方法及装置、计算设备、存储介质
US11647015B2 (en) 2020-07-30 2023-05-09 UiPath, Inc. Factor authentication for robotic processes
US12111646B2 (en) 2020-08-03 2024-10-08 Automation Anywhere, Inc. Robotic process automation with resilient playback of recordings
US11301268B2 (en) 2020-08-11 2022-04-12 UiPath, Inc. Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques
CN114341788A (zh) * 2020-08-11 2022-04-12 尤帕斯公司 使用根据两种或更多种图形元素检测技术的用户接口描述符属性的组合的图形元素检测
JP2023539853A (ja) * 2020-08-28 2023-09-20 ユーアイパス,インコーポレイテッド ロボティックプロセスオートメーション(rpa)パッケージおよびワークフローのウェブベースの閲覧
US11513499B2 (en) 2020-08-28 2022-11-29 UiPath, Inc. Web based viewing of robotic process automation (RPA) packages and workflows
US11507259B2 (en) * 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
CN113366492B (zh) * 2020-09-08 2024-03-01 尤帕斯公司 专用图形元素检测
US11232170B1 (en) 2020-09-08 2022-01-25 UiPath, Inc. Application-specific graphical element detection
US11385777B2 (en) * 2020-09-14 2022-07-12 UiPath, Inc. User interface (UI) mapper for robotic process automation
US11614730B2 (en) 2020-10-06 2023-03-28 UiPath, Inc. Embedded and/or pooled robotic process automation robots
US11294793B1 (en) * 2020-10-23 2022-04-05 UiPath Inc. Robotic process automation (RPA) debugging systems and methods
CN112379968B (zh) * 2020-11-13 2024-07-23 网易(杭州)网络有限公司 应用多开的方法、装置、设备及存储介质
US12061470B2 (en) * 2020-12-04 2024-08-13 UiPath, Inc. Guided operation by robotic processes
US12081513B2 (en) * 2020-12-14 2024-09-03 UiPath, Inc. Organizational modelling for routing RPA related services of an RPA cloud suite
US11782734B2 (en) * 2020-12-22 2023-10-10 Automation Anywhere, Inc. Method and system for text extraction from an application window for robotic process automation
US11618160B2 (en) * 2021-03-26 2023-04-04 UiPath, Inc. Integrating robotic process automations into operating and software systems
US11809883B2 (en) * 2021-07-08 2023-11-07 UiPath, Inc. Image pattern matching to robotic process automations
US12097622B2 (en) 2021-07-29 2024-09-24 Automation Anywhere, Inc. Repeating pattern detection within usage recordings of robotic process automation to facilitate representation thereof
US11820020B2 (en) 2021-07-29 2023-11-21 Automation Anywhere, Inc. Robotic process automation supporting hierarchical representation of recordings
US11968182B2 (en) 2021-07-29 2024-04-23 Automation Anywhere, Inc. Authentication of software robots with gateway proxy for access to cloud-based services
CN113742007A (zh) * 2021-08-25 2021-12-03 上海艺赛旗软件股份有限公司 一种rpa流程运行方法、系统及存储介质
US11792102B2 (en) * 2021-10-05 2023-10-17 Jpmorgan Chase Bank, N.A. System and method for implementing a high density session management module
US11507059B1 (en) * 2021-10-11 2022-11-22 UiPath, Inc. System and computer-implemented method for seamless consumption of automations
CN114185462A (zh) * 2021-11-05 2022-03-15 北京来也网络科技有限公司 基于ai和rpa系统分身窗口的控制方法及装置
CN114217718A (zh) * 2021-11-05 2022-03-22 北京来也网络科技有限公司 基于ai和rpa的系统分身窗口显示方法及装置
US20230195516A1 (en) * 2021-12-22 2023-06-22 UiPath, Inc. Cloud triggers for scheduling robots
US12101373B2 (en) 2022-03-31 2024-09-24 UiPath Inc. Systems and methods for using a browser to design robotic process automation (RPA) robots
KR20230165086A (ko) 2022-05-26 2023-12-05 삼성에스디에스 주식회사 Rpa 태스크의 레코딩 및 실행 방법
CN114817078B (zh) * 2022-06-29 2022-11-29 荣耀终端有限公司 一种自动化测试的方法、装置及存储介质
CN117076036B (zh) * 2023-10-16 2024-02-13 杭州实在智能科技有限公司 用于远程计算机上的rpa流程无人值守方法及系统
CN118467142A (zh) * 2024-07-11 2024-08-09 安徽思高智能科技有限公司 针对软件自动化rpa工作流的进程保活调度方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170076194A1 (en) * 2014-05-06 2017-03-16 Neurala, Inc. Apparatuses, methods and systems for defining hardware-agnostic brains for autonomous robots
CN107666987A (zh) * 2015-07-02 2018-02-06 埃森哲环球服务有限公司 机器人过程自动化
US10324457B2 (en) * 2017-05-11 2019-06-18 Global Eprocure Robotic process automation for supply chain management operations
US20190215283A1 (en) * 2017-11-05 2019-07-11 Walkme Ltd. Chat-Based Application Interface for Automation

Family Cites Families (85)

* 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
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
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
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
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
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
US12085901B2 (en) 2017-11-21 2024-09-10 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US11171989B1 (en) * 2017-11-21 2021-11-09 Medallia, Inc. Secure messaging integration with messaging applications
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
US10802889B1 (en) * 2018-07-18 2020-10-13 NTT DATA Services, LLC Systems and methods of virtual resource monitoring for robotic processes
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株式会社 社内ネットワーク上の社内サーバに対する操作を伴う業務プロセスを自動化するための装置、方法及びそのためのプログラム
US11113095B2 (en) 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
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
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
US11748479B2 (en) * 2019-10-15 2023-09-05 UiPath, Inc. Centralized platform for validation of machine learning models for robotic process automation before deployment
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
US11351669B2 (en) * 2019-10-29 2022-06-07 Kyndryl, Inc. Robotic management for optimizing a number of robots
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
US11494203B2 (en) * 2020-05-13 2022-11-08 UiPath, Inc. Application integration for robotic process automation
US11733668B2 (en) 2020-07-09 2023-08-22 UiPath, Inc. Robot access control and governance 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
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
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170076194A1 (en) * 2014-05-06 2017-03-16 Neurala, Inc. Apparatuses, methods and systems for defining hardware-agnostic brains for autonomous robots
CN107666987A (zh) * 2015-07-02 2018-02-06 埃森哲环球服务有限公司 机器人过程自动化
US10324457B2 (en) * 2017-05-11 2019-06-18 Global Eprocure Robotic process automation for supply chain management operations
US20190215283A1 (en) * 2017-11-05 2019-07-11 Walkme Ltd. Chat-Based Application Interface for Automation

Also Published As

Publication number Publication date
US20210252702A1 (en) 2021-08-19
US11325254B2 (en) 2022-05-10
US20220203530A1 (en) 2022-06-30
KR102227687B1 (ko) 2021-03-15
WO2021167677A1 (en) 2021-08-26
US11931899B2 (en) 2024-03-19
JP2023514682A (ja) 2023-04-07
JP2021131841A (ja) 2021-09-09
WO2021167678A1 (en) 2021-08-26
US11117259B2 (en) 2021-09-14
US20200180155A1 (en) 2020-06-11
CN113334371A (zh) 2021-09-03
WO2021167644A1 (en) 2021-08-26
TW202132070A (zh) 2021-09-01
CN115243839A (zh) 2022-10-25
EP3869432A1 (en) 2021-08-25
EP4106954A1 (en) 2022-12-28
JP6929422B1 (ja) 2021-09-01
US20210252703A1 (en) 2021-08-19
US20210252704A1 (en) 2021-08-19
US11130233B2 (en) 2021-09-28
US10654166B1 (en) 2020-05-19
CN113334371B (zh) 2022-08-12
US20220258346A1 (en) 2022-08-18
WO2021167679A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
TWI730845B (zh) 提供用於機器人行程自動化的自動化視窗之電腦程式和電腦實現方法
US11818223B2 (en) Inter-session automation for robotic process automation (RPA) robots
US11157339B1 (en) Automation of a process running in a first session via a robotic process automation robot running in a second session
JP2023524917A (ja) ロボティックプロセスオートメーションのためのアプリケーション統合
JP7364588B2 (ja) 第2のセッションで実行されるロボティックプロセスオートメーションロボットを介して第1のセッションで実行されるプロセスの自動化
KR102476043B1 (ko) 제1 세션에서 실행되고 있는 프로세스의 제2 세션에서 실행되고 있는 로봇 프로세스 자동화 로봇을 통한 자동화