JP6929422B1 - ロボティックプロセスオートメーションの自動化ウィンドウ - Google Patents

ロボティックプロセスオートメーションの自動化ウィンドウ Download PDF

Info

Publication number
JP6929422B1
JP6929422B1 JP2020125401A JP2020125401A JP6929422B1 JP 6929422 B1 JP6929422 B1 JP 6929422B1 JP 2020125401 A JP2020125401 A JP 2020125401A JP 2020125401 A JP2020125401 A JP 2020125401A JP 6929422 B1 JP6929422 B1 JP 6929422B1
Authority
JP
Japan
Prior art keywords
robot
session
child
rpa
application
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
Application number
JP2020125401A
Other languages
English (en)
Other versions
JP2021131841A (ja
Inventor
ホール アンドリュー
ホール アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UiPath Inc
Original Assignee
UiPath Inc
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 UiPath Inc filed Critical UiPath Inc
Application granted granted Critical
Publication of JP6929422B1 publication Critical patent/JP6929422B1/ja
Publication of JP2021131841A publication Critical patent/JP2021131841A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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
    • 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
    • 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/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)用自動化ウィンドウを提供する。【解決手段】子セッションが作成されて親セッションに関連付けられたウィンドウのアプリケーションのユーザインタフェース(UI)を含むウィンドウとしてホストされる。複数セッションの実行により、ユーザが親セッションと対話している間、ロボットがこの子セッションで動作できる。したがって、ユーザは、ロボットが使用していないアプリケーションと対話可能であってもよく、或いは、ユーザとロボットが同じアプリケーションと対話可能であり、該アプリケーションがこの機能に対応している場合に可能であってもよい。ユーザとロボットは同じアプリケーションインスタンス及びファイルシステムと対話する。アプリケーションでロボットとユーザを介した変更は、単一のユーザによる変更のように行われる。【選択図】図6

Description

本発明は、概して、ロボティックプロセスオートメーション(RPA)に関し、より詳細には、アテンディッド(操作要)ロボット又はアンアテンディド(操作不要)ロボットのためのRPA用自動化ウィンドウに関する。
アテンディッド(操作要)自動化ロボットは、ユーザによって操作されるコンピューティングシステム上で実行される。アテンディッド自動化シナリオで発生する可能性がある問題は、ユーザがコンピューティングシステムと対話することを試みるときに、ロボットがユーザのコンピューティングシステムを「テイクオーバする(引き継ぐ)」可能性があることである。つまり、ロボットは、ユーザが行うのと同じ方法で(例えば、マウスクリックやキーボード入力をシミュレートするなどして)、ユーザインタフェース(UI)を介してアプリケーションを制御する。
オペレーティングシステム又はオペレーティングシステム上で実行されているアプリケーションの完全な又は部分的なコピーを作成する様々な技術が存在する。エミュレータは何十年にわたり存在しており、アプリケーションをテスト、デバッグする機能を開発者に提供する場合がある。例えば、エミュレータは、開発ツールの実行を直接サポートしていないオペレーティングシステムを使用するモバイルアプリケーションをテスト、デバッグする機能を開発者に提供する。Android(登録商標)及びiOS(登録商標)はどちらも、それらのモバイルオペレーションシステム上で開発者用ツールをネイティブで実行できないため、開発マシンから実行されてAndroid(登録商標)又はiOS(登録商標)アプリケーションをテスト、デバッグできるエミュレータを提供する。
シミュレータにより、開発者は、開発マシンでの実行が困難又は不可能なアプリケーションの振る舞いを開発者がテスト、デバッグできる自身のローカルマシンでウィンドウをホストすることができる。例えば、シミュレータにより、開発者は、ボタンをクリックしてシミュレータを回転できる。これにより、シミュレータ内で実行されているアプリケーションに、このようなイベントに応答するアプリケーションの振る舞いをテスト、デバッグする目的でデバイスが回転されたことが通知される。別の一般的な例はマルチタッチである。多くの開発者マシンはタッチをサポートしていないため、シミュレータにより、開発者は、アプリケーションが複数のタッチポイントにどのように応答するかをテスト、デバッグできる。Android(登録商標)及びiOS(登録商標)エミュレータもシミュレーション機能を提供する。さらに、Microsoft(登録商標)は、ユニバーサルWindowsプラットフォーム(UWP)アプリケーション用のシミュレータを提供する。
仮想マシンは、マシン上で第2のオペレーティングシステムをホストし、ウィンドウを介して開かれ、監視されることが可能である。これは、完全に異なるオペレーティングシステムを実行し、ハードウェアをホストマシンと共有する。「ゲスト」マシンには、アプリケーションの「ゲスト」マシン自身のコピーがインストールされている必要があり、「ゲスト」マシンは、共通のリソースやファイルをユーザマシンと共有しない。
Docker(登録商標)コンテナは、概念的には仮想マシンのハイブリッド形式である。実行される必要がある全てのアプリケーションが、ホストオペレーティングシステムで直接実行される不変のパッケージにパッケージ化される。パッケージは別のオペレーティングシステムの完全なコピーではないが、デフォルトではホストマシン上のアプリケーションやリソースを共有したりそれらにアクセスしたりすることはない。したがって、ユーザエクスペリエンスの観点からは、Docker(登録商標)コンテナは仮想マシンに類似するように感じられるが、技術的には、コンテナは完全に別のオペレーティングシステム上で実行されていない。
しかし、従来のエミュレータ、シミュレータ、仮想マシン(VM)、オペレーティングシステム(OS)レベルの仮想化を提供するハイブリッドVM(例えば、Docker(登録商標)コンテナなど)は、ユーザと同じコンピューティングシステムで動作するアテンディッド自動化ロボットで発生する問題に対処していない。したがって、ユーザは、基本的に自身のコンピューティングシステムの見物人になり、ロボットの作業を監視し、ユーザとの対話(相互作用)を必要とするマシン上の他のアプリケーションと対話できなくなる。したがって、向上したアプローチが有益である可能性がある。
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、又は解決されていない、当技術分野における課題及び必要性に対する解決方法を提供する可能性がある。例えば、本発明の幾つかの実施形態は、アテンディッド(操作要)ロボット又はアンアテンディド(操作不要)ロボットのためのRPA用自動化ウィンドウに関する。
一実施形態において、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体で具現化される。該プログラムは、子セッションウィンドウと子セッションを起動することを少なくとも1つのプロセッサに実行させるように構成されている。子セッションはオペレーティングシステムの親セッションの子であり、子セッションウィンドウは親セッションの親ウィンドウ内に配置される。該プログラムはさらに、ユーザコンピューティングシステム上でユーザセッションウィンドウを起動することと、ユーザセッションウィンドウの子ウィンドウとしてロボットセッションのロボットセッションウィンドウを起動することと、RPAロボットをプロセスとしてロボット子セッションにおいて初期化することと、RPAロボットを実行することと、を少なくとも1つのプロセッサに実行させるように構成されている。RPAロボットは、実行中、子セッションウィンドウ内の複数のアクティビティを含むRPAワークフローを実行する。親セッションと子セッションは共通のファイルシステムにアクセス可能である。
別の実施形態において、設計時のRPAのためのアテンディッド(操作要)自動化を実行するためのコンピュータ実施方法は、統合開発環境(IDE)から子セッションウィンドウと子セッションを起動することとを含む。子セッションはオペレーティングシステムの親セッションの子であり、子セッションウィンドウは親セッションの親ウィンドウ内に配置される。コンピュータ実施方法はさらに、RPAロボットをプロセスとして子セッションにおいて初期化することと、RPAロボットを実行することと、を含む。RPAロボットは、実行中、子セッションウィンドウ内の複数のアクティビティを含むRPAワークフローを実行する。親セッションと子セッションは共通のファイルシステムにアクセス可能である。
さらに別の実施形態において、RPAの自動化監視のためのコンピュータ実施方法は、コンピューティングシステムに関連付けられた親セッションで監視及びトラブルシューティングアプリケーションを初期化して実行することを含む。コンピュータ実施方法はさらに、子セッションウィンドウと子セッションを起動することを含む。子セッションはオペレーティングシステムの親セッションの子である。コンピュータ実施方法はさらに、アンアテンディッドRPAロボットをプロセスとして子セッションで初期化して実行することと、監視及びトラブルシューティングアプリケーションのユーザからアンアテンディッドRPAロボットの動作を終了させるコマンドを受け取ることと、コマンドの受信に応答してアンアテンディッドRPAロボットの動作を一時停止又は終了させることと、を含む。親セッションと子セッションは共通のファイルシステムにアクセス可能である。
本発明の特定の実施形態の利点が容易に理解されるように、上記簡単に説明した本発明のより詳細な説明を、添付の図面に示す特定の実施形態を参照して行う。これらの図面は、本発明の典型的な実施形態のみを示すもので、その範囲を限定するものと見なされるべきではないことを理解されたい。本発明は、添付の図面の使用を通じて追加の特性及び詳細とともに記載され説明される。
本発明の一実施形態によるロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
本発明の一実施形態による、デプロイされたRPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、デザイナとアクティビティとドライバとの関係を示すアーキテクチャ図である。
本発明の一実施形態によるRPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、RPA用自動化ウィンドウを実行するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
本発明の一実施形態による、ユーザとアテンディッド自動化ロボットのセッションを実行するユーザコンピューティングシステムの幾つかのアプリケーションを、ユーザコンピューティングシステムで実行される幾つかのアプリケーションと共に示す。
図7A〜図7Kは、本発明の一実施形態による、ユーザとRPA用ロボットのための別々のセッションの例を示すスクリーンショットである。
本発明の一実施形態による、ロボットとユーザがアテンディッド自動化ウィンドウを使用して同時にコンピューティングシステムを操作できるようにするためのプロセスを示すフローチャートである。
本発明の一実施形態による、ロボットとRPA開発者がアテンディッド自動化ウィンドウを使用して同時にコンピューティングシステムを操作できるようにするためのプロセスを示すフローチャートである。
本発明の一実施形態による、ユーザのための自動化ウィンドウを使用してアテンディッド(操作要)又はアンアテンディッド(操作不要)自動化を実行するためのプロセスを示すフローチャートである。
本発明の一実施形態による、RPA開発者のための自動化ウィンドウを使用してアテンディッド又はアンアテンディッド自動化を実行するためのプロセスを示すフローチャートである。
本発明の一実施形態による、自動化監視を実行するためのプロセスを示すフローチャートである。
特に示さない限り、同様の符号は、添付の図面全体を通して一貫して対応する特徴を示す。
幾つかの実施形態は、アテンディッド(操作要)ロボット又はアンアテンディッド(操作不要)ロボットのためのRPA用自動化ウィンドウに関する。幾つかの実施形態において、自動化ウィンドウは、アテンディッド(操作要)自動化のために使用される。しかし、幾つかの実施形態において、以下で説明するように、自動化ウィンドウは、オペレーションエンジニアがサーバで実行されている一又は複数のロボットをリモートで監視する場合など、アンアテンディッドロボットの監視のために使用されてもよい。自動化ウィンドウのアプリケーションには、エミュレータ、シミュレータ、VM、OSレベルの仮想化を提供するハイブリッドVM(例えば、Docker(登録商標)コンテナなど)が含まれるが、これらに限定されない。幾つかの実施形態は、アテンディッド自動化プロセスによって制御されているアプリケーションのUIを含むウィンドウとして第2の(例えば、子)セッションを作成し、ホストする。本明細書で使用される場合、「ウィンドウ」は、本発明の範囲から逸脱することなく、メインUI内に示されるUIを表すウィンドウ、コンピューティングシステムの第2のディスプレイの第2の画面、仮想デスクトップ、隔離された環境(即ち、該環境内で起動された全てのアプリケーション(「子」という)のUIを描画し、(ホストセッションのコンテキストにおいて)それらを実行するウィンドウ(「ホスト」という)など)などに適用されてもよい。
複数のセッションを実行することにより、ユーザが第1のセッション(例えば、親セッションなど)と対話している間、ロボットはこの第2のセッションで動作できる。或いは、ユーザが第2のセッションで操作している間、ロボットが第1のセッションで動作してもよい。したがって、ユーザは、ロボットが使用していないアプリケーションと対話可能であってもよい(例えば、ロボットがExcel(登録商標)からウェブブラウザにデータを移動している間、ユーザはOutlook(登録商標)を使用可能であってもよい)。或いは、ユーザとロボットが同じアプリケーションと対話可能であり、これは、該アプリケーションがこの機能に対応している場合に可能であってもよい(例えば、ユーザがあるインスタンスと対話している間、ロボットはウェブブラウザにおける別のインスタンスと対話するなど)。
ユーザとロボットが両方とも、同じアプリケーションインストール及びファイルシステムと対話する。アプリケーションでロボット及びユーザを介して行われた変更は、ユーザとロボットがそれぞれ別のバージョンのアプリケーションとファイルシステムで機能するというよりはむしろ、単一のユーザが変更を行ったかのように行われるであろう。つまり、アプリケーションはユーザのローカルのExcel(登録商標)、Outlook(登録商標)などである。また、ローカルファイルシステムは追加構成なしで利用されてもよい。これは、例えば、ファイルシステムにアクセスするために追加構成手順が必要なDocker(登録商標)コンテナとは異なる。
幾つかの実施形態において、本発明の範囲から逸脱することなく、任意の数のロボットの任意の所望の数のセッションが作成されて使用されてもよい。例えば、ユーザは第1のセッションと対話してもよく、第1のロボットは第2のセッションと対話してもよく、第2のロボットは第3のセッションと対話してもよいなど。特定の実施形態において、複数のロボットが単一のセッションと対話してもよい。
セッションを作成する機能は、例えば、Windows(登録商標)ターミナルサービスの子セッションを介して実装されてもよく、これにより、ユーザがログアウトする必要なく、ユーザ自身のマシンにセッションを作成できる。新しく作成されたセッションは、子ウィンドウとして表示され、ユーザのセッションに存在するアプリケーションを含み、起動する。つまり、ユーザとロボットの分離がUIレベルで生じる。例えば、ファイルが削除された場合、これはコンピューティングシステムで実行されている全てのセッションにわたり生じる。
特定の実施形態は、ロボティックプロセスオートメーション(RPA)に使用されてもよい。図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計及び実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、並びにサードパーティアプリケーション、管理情報技術(IT)タスク、及びビジネスITプロセスの自動化のためのソリューションを提供してもよい。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にしてもよい。簡単に言うと、デザイナ110はワークフロー及びロボットの開発とデプロイメントを容易にしてもよい。
自動化プロジェクトは、開発者が、本明細書において「アクティビティ」として定義される、ワークフローで開発されたカスタムセットのステップ間の実行順序及び関係を制御できるようにすることで、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の1つの商業的な例は、UiPath Studio(商標)である。各アクティビティには、例えばボタンのクリック、ファイルの読み込み、ログパネルへの書き込みなどのアクションが含まれていてもよい。幾つかの実施形態において、ワークフローがネストされ又は埋め込まれてもよい。
一部の種類のワークフローには、シーケンス、フローチャート、FSM、及び/又はグローバル例外ハンドラが含まれてもよいが、これらに限定されない。シーケンスは、線形プロセスに特に適している可能性があり、ワークフローを混乱させることなく、あるアクティビティから別のアクティビティへのフローを可能にする。フローチャートは、より複雑なビジネスロジックに特に適している可能性があり、複数の分岐論理演算子によって、より多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している可能性がある。FSMは、実行時に有限数の状態を使用してもよく、それらの状態は、条件(即ち、遷移)又はアクティビティによってトリガされる。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするのに特に適している可能性がある。
ワークフローがデザイナ110で開発されると、ビジネスプロセスの実行は、デザイナ110で開発されたワークフローを実行する一又は複数のロボット130を調整するコンダクタ120によって調整される。コンダクタ120の実施形態の1つの商用的な例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの作成、監視、及びデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューション及びアプリケーションとの統合ポイント又は集約ポイントの1つとして機能してもよい。
コンダクタ120は、全てのロボット130を管理して、集中ポイントからロボット130を接続して実行してもよい。管理可能なロボット130の種類には、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発及びテストの目的で使用される)、及び非生産ロボット(アテンディッドロボット132と同様であるが、開発及びテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザイベントによってトリガされ、又は自動的に実行されるようにスケジュールされて、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセス展開及びロギング媒体のためにコンダクタ120と共に使用されてもよい。アテンディッドロボット132は、人間のユーザが様々なタスクを達成するのを助け、ユーザイベントによってトリガされてもよい。幾つかの実施形態において、プロセスは、この種のロボットのコンダクタ120から開始されることができず、且つ/又は、ロックされた画面の下で実行できない。特定の実施形態において、アテンディッドロボット132は、ロボットトレイから又はコマンドプロンプトから開始できるのみである。幾つかの実施形態において、アテンディッドロボット132は、人間の監督下で動作するべきである。
アンアテンディッドロボット134は、仮想環境で操作不要で実行され、多くのプロセスを自動化できる。アンアテンディッドロボット134は、遠隔実行、監視、スケジューリング、及びワークキューのサポートの提供を担当してもよい。幾つかの実施形態において、全てのロボットの種類のデバッグをデザイナ110から実行してもよい。アテンディッドロボットとアンアテンディッドロボットの両方が、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって生成されたもの)、及びコンピューティングシステムアプリケーション(例えば、デスクトップ及びラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステム及びアプリケーションを自動化してもよい。
コンダクタ120は、プロビジョニング、デプロイメント、バージョニング、コンフィギュレーション、キューイング、監視、ロギング、及び/又は相互接続性の提供を含むがこれらに限定されない様々な機能を有してもよい。プロビジョニングには、ロボット130とコンダクタ120(例えば、ウェブアプリケーションなど)の間の接続の作成及び保守が含まれてもよい。デプロイメントには、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することが含まれてもよい。バージョニングには、幾つかの実施形態において、幾つかのプロセス又はコンフィギュレーションの固有のインスタンスの管理が含まれてもよい。コンフィギュレーションには、ロボット環境及びプロセスコンフィギュレーションの保守及び配信が含まれてもよい。キューイングには、キュー及びキューアイテムの管理の提供が含まれてもよい。監視には、ロボット識別データの追跡及びユーザ権限の維持が含まれてもよい。ロギングには、データベース(例えば、SQLデータベースなど)及び/又は他のストレージメカニズム(例えば、ElasticSearch(登録商標)など。これは、大規模なデータセットを記憶してすばやくクエリを実行する機能を提供する)へのログの記憶及びインデックス付けが含まれてもよい。コンダクタ120は、サードパーティのソリューション及び/又はアプリケーションのための通信の集中ポイントとして機能することで、相互接続性を提供してもよい。
ロボット130は、デザイナ110に組み込まれたワークフローを実行する実行エージェントである。ロボット130の幾つかの実施形態のうち1つの商用的な例は、UiPath Robots(商標)である。幾つかの実施形態において、ロボット130は、デフォルトで、Microsoft Windows(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボット130が、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権限を有してもよい。
幾つかの実施形態において、ロボット130は、ユーザモードでインストールされてもよい。そのようなロボット130の場合、これは、ユーザのもとでロボット130がインストールされて、そのユーザと同じ権利をロボット130が有することを意味する。この特徴は、高密度(HD)ロボットで利用可能であってもよく、各マシンの最大限の活用を確実にしてもよい。幾つかの実施形態において、任意の種類のロボット130が、HD環境で構成されてもよい。
幾つかの実施形態におけるロボット130は、それぞれが特定の自動化タスク専用である幾つかのコンポーネントに分割される。幾つかの実施形態におけるロボットコンポーネントには、SCM管理のロボットサービス、ユーザモードのロボットサービス、エグゼキュータ、エージェント、及びコマンドラインが含まれるが、これらに限定されない。SCM管理のロボットサービスは、Windows(登録商標)セッションを管理、監視してコンダクタ120と実行ホスト(即ち、ロボット130が実行されるコンピューティングシステム)の間のプロキシとして機能する。このようなサービスは、ロボット130の資格情報で信頼され、これを管理する。コンソールアプリケーションは、ローカルシステムのもとでSCMによって起動される。
幾つかの実施形態におけるユーザモードロボットサービスは、Windows(登録商標)セッションを管理、監視し、コンダクタ120と実行ホストの間のプロキシとして機能する。ユーザモードロボットサービスは、ロボット130の資格情報で信頼され、これを管理してもよい。SCM管理のロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動されてもよい。
エグゼキュータは、Windows(登録商標)セッションのもとで所定のジョブを実行してもよい(即ち、エグゼキュータはワークフローを実行してもよい。エグゼキュータは、モニタ毎のドット/インチ(DPI)設定を認識していてもよい。エージェントは、システムトレイウィンドウで利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントはこのサービスのクライアントであってもよい。エージェントは、ジョブの開始又は停止を要求し、設定を変更してもよい。コマンドラインはそのサービスのクライアントであってもよい。コマンドラインは、ジョブの開始を要求可能なコンソールアプリケーションであり、その出力を待つ。
上記で説明したようにロボット130のコンポーネントを分割することにより、開発者、サポートユーザ、及びコンピューティングシステムが、各コンポーネントの実行内容の実行、識別、及び追跡をより容易に行うことができる。このように、例えばエグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネント毎に特別な振る舞いが構成されてもよい。幾つかの実施形態において、エグゼキュータは、モニタ毎のDPI設定を常に認識していてもよい。その結果、ワークフローが作成されたコンピューティングシステムの構成に関わらず、ワークフローが任意のDPIで実行されてもよい。幾つかの実施形態において、デザイナ110からのプロジェクトは、ブラウザのズームレベルから独立していてもよい。DPIを認識しない又は意図的に認識しないとマークされているアプリケーションの場合、幾つかの実施形態においてDPIが無効にされてもよい。
図2は、本発明の一実施形態による、デプロイされたRPAシステム200を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム200は、図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバ側、又はこれらの両方が、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含んでもよいことに留意されたい。クライアント側では、ロボットアプリケーション210が、エグゼキュータ212、エージェント214、及びデザイナ216を含む。しかし、幾つかの実施形態において、デザイナ216はコンピューティングシステム210で実行されていなくてもよい。エグゼキュータ212はプロセスを実行する。図2に示すように、複数のビジネスプロジェクトが同時に実行されてもよい。このような実施形態において、エージェント214(例えば、Windows(登録商標)サービスなど)は、全てのエグゼキュータ212の単一の接続ポイントである。このような実施形態における全てのメッセージは、さらにデータベースサーバ240、インデクササーバ250、又はこれらの両方を介して、それらのメッセージを処理するコンダクタ230にログインされる。図1に関して上記で説明したように、エグゼキュータ212はロボットコンポーネントであってもよい。
幾つかの実施形態において、ロボットは、マシン名とユーザ名の間の関連付けを表す。ロボットは同時に複数のエグゼキュータを管理してもよい。同時に実行されている複数の対話型セッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され、それぞれが一意のユーザ名を使用する個別のWindows(登録商標)セッションで実行されてもよい。これを上記のHDロボットという。
エージェント214はまた、ロボットのステータスを送り(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送り)、実行されるパッケージの必要なバージョンをダウンロードすることも担当する。幾つかの実施形態において、エージェント214とコンダクタ230の間の通信は、常にエージェント214によって開始される。通知シナリオにおいて、エージェント214は、コンダクタ230によって後で使用されるWebSocketチャネルを開き、ロボットにコマンド(例えば、開始、停止など)を送ってもよい。
サーバ側では、プレゼンテーション層(ウェブアプリケーション232、Open Data Protocol(OData)Representative State Transfer(REST)Application Programming Interface(API)エンドポイント234、通知監視236)、サービス層(API実装/ビジネスロジック238)、及び永続層(データベースサーバ240及びインデクササーバ250)が含まれる。コンダクタ230には、ウェブアプリケーション232、OData REST APIエンドポイント234、通知監視236、及びAPI実装/ビジネスロジック238が含まれる。幾つかの実施形態において、コンダクタ220のインタフェースで(例えば、ブラウザ220を介して)ユーザが実行する殆どのアクションが、様々なAPIを呼び出すことで実行される。このようなアクションには、本発明の範囲から逸脱することなく、ロボットでのジョブの開始、キュー内のデータの追加/削除、操作不要で実行するジョブのスケジューリングなどが含まれてもよいが、これらに限定されない。ウェブアプリケーション232は、サーバプラットフォームのビジュアル層である。このような実施形態において、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(JS)を使用する。しかし、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は任意の他のフォーマットが使用されてもよい。このような実施形態において、ユーザは、コンダクタ230を制御するための様々なアクションを実行するため、ブラウザ220を介してウェブアプリケーション232からウェブページと対話する。例えば、ユーザは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボット毎に且つ/又はプロセス毎にログを分析し、ロボットを起動、停止させるなどしてもよい。
ウェブアプリケーション232に加えて、コンダクタ230には、OData REST APIエンドポイント234を公開するサービス層も含まれる。しかし、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって使用される。このような実施形態において、エージェント214は、クライアントコンピュータ上の一又は複数のロボットのスーパーバイザである。
このような実施形態におけるREST APIは、コンフィギュレーション、ロギング、監視、及びキューイングの機能をカバーする。幾つかの実施形態において、コンフィギュレーションエンドポイントが使用されて、アプリケーションユーザ、権限、ロボット、アセット、リリース、及び環境を定義、構成してもよい。ロギングRESTエンドポイントが使用されて、例えばエラー、ロボットによって送られた明示的なメッセージ、その他の環境固有の情報など、様々な情報をログに記録してもよい。デプロイメントRESTエンドポイントがロボットによって使用されて、コンダクタ230でジョブ開始コマンドが使用される場合に実行する必要があるパッケージバージョンをクエリしてもよい。キューイングRESTエンドポイントは、例えばキューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キュー及びキューアイテムの管理を担当してもよい。
監視RESTエンドポイントは、ウェブアプリケーション232及びエージェント214を監視してもよい。通知監視API236は、エージェント214の登録、エージェント214へのコンフィギュレーション設定の配信、並びにサーバ及びエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。幾つかの実施形態において、通知監視API236はまた、WebSocket通信を使用してもよい。
永続層は、この実施形態では1対のサーバ、つまり、データベースサーバ240(例えば、SQLサーバなど)及びインデクササーバ250を含む。この実施形態のデータベースサーバ240は、ロボット、ロボットグループ、関連プロセス、ユーザ、ロール、スケジュールなどのコンフィギュレーションを記憶する。このような情報は、幾つかの実施形態において、ウェブアプリケーション232を介して管理される。データベースサーバ240は、キュー及びキューアイテムを管理してもよい。幾つかの実施形態において、データベースサーバ240は、(インデクササーバ250に加えて又はその代わりに)ロボットによってログに記録されたメッセージを記憶してもよい。
幾つかの実施形態において任意であるインデクササーバ250は、ロボットによってログに記録された情報を記憶し、インデックスを付ける。特定の実施形態において、インデクササーバ250は、コンフィギュレーション設定を通じて無効にされてもよい。幾つかの実施形態において、インデクササーバ250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって(例えば、ログメッセージ、行書き込みなどのアクティビティを使用して)ログに記録されたメッセージは、ロギングRESTエンドポイントを介してインデクササーバ250に送られてもよく、そこで将来の利用のためにインデックスが付けられてもよい。
図3は、本発明の一実施形態による、デザイナ310とアクティビティ320、330とドライバ340との間の関係300を示すアーキテクチャ図である。上記のとおり、開発者は、デザイナ310を使用して、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザ定義のアクティビティ320とUI自動化アクティビティ330を含んでもよい。幾つかの実施形態は、本明細書においてコンピュータビジョン(CV)という、画像における非テキストのビジュアルコンポーネントを識別することができる。そのようなコンポーネントに関連する一部のCVアクティビティには、クリック(click)、タイプ(type)、テキストを取得(get text)、ホバー(hover)、要素の有無を検出(element exists)、スコープの更新(refresh scope)、ハイライト(highlight)などが含まれてもよいが、これらに限定されない。幾つかの実施形態において、クリック(click)は、例えば、CV、光学式文字認識(OCR)、ファジーテキストマッチング、及び複数のアンカーを使用する要素を識別し、クリックする。タイプ(type)は、上記を使用して要素を識別してもよく、要素内でタイプする。テキストを取得(get text)は、特定のテキストの位置を識別し、OCRを使用してスキャンしてもよい。ホバー(hover)は、要素を識別し、その上にホバーしてもよい。要素の有無を検出(element exists)は、上記の技術を使用して、要素が画面上に存在するか否かを確認してもよい。幾つかの実施形態において、デザイナ310で実装可能な数百又は数千ものアクティビティがあってもよい。しかし、本発明の範囲から逸脱することなく、任意の数及び/又は種類のアクティビティが利用可能であってもよい。
UI自動化アクティビティ330は、低レベルのコードで書かれた特別な低レベルのアクティビティ(例えば、CVアクティビティなど)のサブセットであり、画面との対話を容易にする。UI自動化アクティビティ330は、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、このような対話を容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
ドライバ340は、低レベルでOSと対話して、フックを探したりキーを監視したりするなどしてもよい。ドライバ340は、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にしてもよい。例えば、「クリック」アクティビティは、ドライバ340を介してそのような異なるアプリケーションで同じ役割を果たす。
図4は、本発明の一実施形態によるRPAシステム400を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム400は、図1及び/又は図2のRPAシステム100及び/又は200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、そこで実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信可能である。次に、コンダクタコンピューティングシステム420は、データベースサーバ430及び任意のインデクササーバ440と通信可能である。
図1及び図3に関して、これらの実施形態においてウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバソフトウェアが使用されてもよいことに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバ側アプリケーションを実行してもよい。
図5は、本発明の一実施形態による、RPA用自動化ウィンドウを実行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。幾つかの実施形態において、コンピューティングシステム500は、本出願において図示及び/又は説明される一又は複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505又は他の通信メカニズムと、情報を処理するためにバス505に接続されたプロセッサ510とを含む。プロセッサ510は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数の例、及び/又はそれらのうちの任意の組み合わせを含む、任意の種類の汎用又は特定用途のプロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくとも一部が、特定の機能を実行するように構成されてもよい。幾つかの実施形態において、複数並列処理を使用されてもよい。特定の実施形態において、少なくとも1つのプロセッサ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)、Long Term Evolution(LTE)、LTEアドバンスト(LTE−A)、802.11x、Wi−Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、Home Node−B(HnB)、Bluetooth、Radio Frequency Identification(RFID)、Infrared Data Association(IrDA)、Near−Field Communications(NFC)、第5世代(5G)、New Radio(NR)、これらのうちの任意の組み合わせ、及び/又は任意の他の現在存在する又は将来実施される通信規格及び/又はプロトコルを使用するように構成されてもよい。幾つかの実施形態において、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、フェーズド、スイッチド、ビームフォーミング、ビームステアリング、これらのうちの組み合わせ、及び/又は任意の他のアンテナ構成である一又は複数のアンテナを含んでもよい。
プロセッサ510は、バス505を介して、例えばプラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、又はユーザに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに接続される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されてもよい。任意の適切な表示デバイス及び触覚I/Oが、本発明の範囲から逸脱することなく、使用されてもよい。
キーボード530と、例えばコンピュータマウス、タッチパッドなどのようなカーソル制御デバイス535とが、さらにバス505に接続されて、ユーザがコンピューティングシステム500とインタフェースをとることを可能にする。しかし、特定の実施形態において、物理的なキーボード及びマウスが存在しなくてもよく、ユーザは、ディスプレイ525及び/又はタッチパッド(図示略)を介してのみデバイスとインタフェースをとってもよい。入力デバイスの任意の種類及び組み合わせが、設計上の選択事項として使用されてもよい。特定の実施形態において、物理的な入力デバイス及び/又はディスプレイが存在しない。例えば、ユーザは、コンピューティングシステム500と通信する別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよく、或いは、コンピューティングシステム500は自律的に動作してもよい。
メモリ515は、プロセッサ510によって実行されると機能を提供するソフトウェアモジュールを記憶する。該モジュールは、コンピューティングシステム500用のオペレーティングシステム540を含む。モジュールは、本明細書に記載されているプロセス又はその派生のプロセスの全て又は一部を実行するように構成される自動化ウィンドウモジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む一又は複数の追加の機能モジュール550を含んでもよい。
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、任意の他の適切なコンピューティングデバイス、又はデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして示すことは、決して本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を示すことを意図する。実際、本明細書において開示される方法、システム、及び装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合するローカライズされ分散された形式で実装されてもよい。
本明細書に記載されているシステム機能の一部は、実装の独立性をより強調するため、モジュールとして示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体として実装されてもよい。モジュールは、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスにおいて実装されてもよい。
モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されたユニットは、例えばオブジェクト、手順、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含んでもよい。これにも関わらず、識別されたモジュールの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に結合されるとモジュールを含んでモジュールの上記目的を達成するような様々な場所に記憶された異種の命令を含んでもよい。さらに、モジュールは、本発明の範囲から逸脱することなく、コンピュータ読み取り可能な媒体に記憶されてもよく、コンピュータ読み取り可能な媒体は、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような非一時的なコンピュータ読み取り可能な媒体であってもよい。
実際、実行可能コードのモジュールは、単一の命令であっても多数の命令であってもよく、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散されてもよい。同様に、動作データが、識別されて、本明細書においてモジュール内に示されてもよく、任意の適切な形式で具体化され、任意の適切な種類のデータ構造内で構成されてもよい。動作データは、単一のデータセットとしてまとめられてもよく、或いは、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、単にシステム又はネットワーク上の電子信号として存在してもよい。
ユーザのためのアテンディッド自動化(実行時)
上記のように、アテンディッド(操作要)自動化では、ロボットはユーザと共に同じコンピューティングシステム上で動作する。RPAにおけるロボットは同様の方法でコンピューティングシステムと対話することが多いため(例えば、マウスクリック及びキープレスイベントの生成、APIを介したこのようなイベントのシミュレーション(例えば、ウィンドウメッセージの使用など)など)、幾つかの実施形態は、そこでアテンディッド自動化をホストし実行するための第2のセッションを作成する。既存のRPAシステムと異なり、ユーザは、ロボットが第2のセッションでアテンディッド自動化を実行している間、コンピューティングシステムと対話する機能の恩恵を受けることができる。ユーザは、ロボットの動作を引き続き監視し、第2のセッションのホスト自動化ウィンドウを介してロボットと対話してもよい。これにより、RPAロボットは、単にユーザよりも速く且つ確実にタスクを実行することから、ユーザと並行して作業を実行できる真のデジタルアシスタントになるまでに効果的に進化し、生産性をさらに一層向上させる。幾つかの実施形態において、第1及び第2のセッションは、ユーザのコンピューティングシステムによって制御されるリモートマシン上で実行されてもよい。
特定の実施形態において、RPAロボットは、ユーザのコンピューティングシステム上で実行されていて、リモートランタイムを介して(例えば、UiPath Romote Runtime(商標)を介して)リモートコンピューティングシステムを駆動していてもよい。UiPath Remote Runtime(商標)は、リモートアプリケーション又はデスクトップ(例えば、Citrix Virtual Apps and Desktops(商標)など)と、専用のUiPath(登録商標)拡張機能(例えば、Citrix(商標)用のUiPath(登録商標)拡張機能、Windows(登録商標)リモートデスクトップ用のUiPath(登録商標)拡張機能など)との間の通信を容易にするコンポーネントである。UiPath Remote Runtime(商標)は、リモートアプリケーションの対象となるUI要素に関連する情報を収集し、この情報を対応する拡張機能に送り、UI Explorer(商標)でセレクタがネイティブに生成されるようにする。
上記のように、ユーザとロボットはどちらも同じアプリケーションインスタンス及びファイルシステムと対話する。図6は、本発明の一実施形態による、ユーザセッション610とアテンディッド自動化ロボットセッション620を実行するユーザコンピューティングシステム600の幾つかのアプリケーションを、ユーザコンピューティングシステム600で実行される幾つかのアプリケーションと共に示す。図6に示すように、ウェブブラウザアプリケーション630、スプレッドシートアプリケーション640、及び電子メールアプリケーション650が、ユーザセッション610及びアテンディッド自動化ロボットセッション620の両方によってアクセス可能である。ユーザセッション610及びアテンディッド自動化ロボットセッション620は、ウェブブラウザアプリケーション630及び電子メールアプリケーション650と同時に対話することができる。
しかし、ロボットがスプレッドシートアプリケーション640の同じファイルと対話している場合、ユーザはこのアプリケーションと対話できない(例えば、ユーザは「読み取り専用」ビューで開くことができるのみであってもよいし、ユーザがそのファイルを開くことが完全に妨げられていてもよい)。ユーザは、スプレッドシートアプリケーション640がロックされている、別の「ユーザ」(即ち、ロボット)によってアクセスされているなどを示すメッセージを受け取ってもよい。ユーザセッション610及びアテンディッド自動化ロボットセッション620の両方が、ファイルシステム660と対話することができる。それぞれのセッションを介してアプリケーションでロボットとユーザを介して行われた変更は、ユーザとロボットがそれぞれ別のバージョンのアプリケーションとファイルシステムで動作するのではなく、単一のユーザが行ったように行われる。
図7A〜図7Kは、本発明の一実施形態による、ユーザとRPA用ロボットのための別々のセッションの例を示すスクリーンショットである。図7Aにおいて、ユーザセッションウィンドウ700が示され、ここで、ユーザはUI内のアプリケーションと対話することができ、ロボットは現在実行されていない。図7Bにおいて、ユーザは(例えば、画面の右下にあるアイコンをクリックすることにより)ロボットトレイ710を引き出し、ユーザのコンピューティングシステム上で実行するロボットを選択する。実行するロボットを選択した後、図7Cに示すように、ロボットセッションウィンドウ720が、画面上の子ウィンドウとして現れる。ロボットは、ロボットセッションウィンドウ720で動作する。
図7D、図7E(図7Dの一部の拡大図)を参照すると、この例では、ロボットはMicrosoft Notepad(登録商標)アプリケーション730を起動し、そこにテキスト732を入力し始める。この実行の間、ユーザは、ユーザセッションウィンドウ700内のアプリケーションと対話したり、ロボットセッションウィンドウ720を移動、サイズ変更、最小化したりするなどできる。図7Fに示すように、ロボットトレイ710は、ロボットが実行中であることを示す。
図7Gにおいて、ユーザは、ユーザセッションウィンドウ700内でGoogle Chrome(登録商標)を開いている。ロボットセッションウィンドウ720は、フォアグラウンドで見ることができる。図7Hと図7Iに示すその拡大部分において、ユーザがGoogle Chrome(登録商標)を使用してウェブをナビゲートするとき、ロボットは、ユーザのウェブナビゲーションと並行してMicrosoft Notepad(登録商標)アプリケーション730にテキスト732を入力し続ける。
図7Jは、ロボットのためのRPAワークフロー750の一部を伴うUiPath Studio(商標)740を示す。図7Kに示すように、開発者は、UiPath Studio(商標)740を使用してRPAワークフロー750をステップスルーすることができる。UiPath Studio(商標)740とロボットセッションウィンドウ720は両方とも、ユーザセッションウィンドウ700で見ることができる。各ステップで、テキスト732は、Microsoft Notepad(登録商標)アプリケーション730に入力される。
図8は、本発明の一実施形態による、ロボットとユーザがアテンディッド自動化ウィンドウを使用して同時にコンピューティングシステムを操作できるようにするためのプロセス800を示すフローチャートである。該プロセスは、810でユーザセッションウィンドウを起動することから始まる。これは、例えば、ユーザコンピューティングシステムで実行されているオペレーティングシステムに関連するメインウィンドウであってもよい。次に、820で、ロボットセッションウィンドウがユーザセッションウィンドウの子ウィンドウとして起動される。幾つかの実施形態において、ロボットセッションウィンドウは、例えば、開始されている又は他の方法で起動されているロボットに応答して起動されてもよい。次に、830で、ロボットはロボットセッションで開始され、840で、ロボットはロボットセッションでそのワークフローを実行する。幾つかの実施形態において、850で、自動的にロボットセッションが終了されてロボットセッションウィンドウが閉じられる。
幾つかの実施形態において、子セッションは、オペレーティングシステムの子セッションAPIを介して作成されてもよい。幾つかの実施形態において、本発明の範囲から逸脱することなく、オペレーティングシステムによって提供されるWindows(登録商標)ターミナルサービスの子セッション又は別の子セッションAPIを使用して、第2のセッションを作成してもよい。次に、ロボットトレイアプリケーション(例えば、UiPath(登録商標)Robot Agent Desktopなど)は、適切な引数を使用してオペレーティングシステムでプロセス作成APIを使用して、その子セッションでロボットプロセスを開始してもよい。次に、ロボットトレイアプリケーションは、適切なプロトコル(例えば、名前付きパイプ上に構築されたプロトコルなど)を使用して、ロボットプロセスと通信してもよい。
2つのセッション間のロボットとの通信は、IPCプロトコルを使用して実行されてもよい。これらのプロトコルは、ネットワーク、パイプ、コンポーネントオブジェクトモデル(COM)、リモートプロシージャコール(RPC)、ソケットなどを介した通信を促進する可能性がある。適切なセッション作成メカニズム及びIPCプロトコルが、サポートされている他のオペレーティングシステムにも使用されてもよい。ユーザがロボットトレイ上のボタンをクリックすると、ロボットトレイアプリケーションがIPCプロトコルを使用してそのコマンドをロボットプロセスに送ってもよい。ロボットは、IPCプロトコルを介して、ロボットトレイアプリケーションにステータス通知(例えば、ロボットが開始している、実行している、一時停止しているなどを示す)を送ってもよい。
RPA開発者のためのアテンディッド自動化(設計時)
幾つかの実施形態において、アテンディッド自動化ウィンドウは、設計時に開発環境から使用されたときに自動化をテスト、デバッグする目的で、アテンディッド自動化をホストし実行するための第2のセッションを作成してもよい。これにより、RPA開発者は、ロボットのアテンディッド自動化ウィンドウ内で実行されるアテンディッド自動化が意図したとおりに動作することを確実にすることができる。
RPA開発者はこの機能を使用して、ロボットの実行中にユーザが所望するようにアプリケーションにアクセスできるスムーズなエクスペリエンスを提供するアテンディッド自動化を作成してもよい。アテンディッド自動化により実行中にユーザがユーザのコンピューティングシステムと対話することが困難である場合、又は、統合開発環境(IDE)からアテンディッド自動化を起動するRPA開発者がアテンディッド自動化の実行中にIDEを見たりIDEにアクセスしたりすることが困難である場合に、RPA開発者がロボットをより煩わしくない方法で実行するよう変更することが望ましい場合がある。例えば、自動化によりアプリケーションがIDEの前のフォアグラウンドに移動すると、開発者はリアルタイムでプロセスからストリーミングしているログ情報を見ることができない。したがって、RPA開発者はIDEから起動設定を変更して、このようなことが起きないようにしてもよい。
図9は、本発明の一実施形態による、ロボットとRPA開発者がアテンディッド自動化ウィンドウを使用して同時にコンピューティングシステムを操作できるようにするためのプロセス900を示すフローチャートである。該プロセスは、910で開発者セッションウィンドウを起動することから始まる。これは、例えば、RPA開発者コンピューティングシステム上で実行されているオペレーティングシステムに関連するメインウィンドウであってもよい。次に、920で、IDEが起動され、930で、RPA開発者がアテンディッド自動化を開始するコマンドを発行する。これにより、940で、ロボットセッションウィンドウが起動し、950で、ロボットがロボットセッションで初期化される。次に、960で、ロボットはロボットセッションでのワークフローを実行して、アテンディッド自動化ロジックを実行する。開発者がロボットの動作に満足していない場合、970で、開発者はIDEでの実行を停止して、ロボットセッションを終了してロボットセッションウィンドウを閉じてもよい。その後、プロセスはステップ930に戻る。
RPAのための自動化監視
幾つかの実施形態において、第2のセッションは、自動化監視及びトラブルシューティングに使用されてもよい。例えば、アンアテンディッド(操作不要)自動化をホストしているサーバを担当するオペレーションエンジニア(即ち、ユーザが実行を監視している自動化プロセスによるライセンス要件や期待値はない)がエラーを修正するために介入することを望む場合がある。オペレーションエンジニアは、第2のセッションウィンドウを介してこれを行ってもよい。例えば、オペレーションエンジニアは、エラーが発生しているロボットの動作に介入してその動作を強制終了してもよい。
幾つかの実施形態において、オペレーションエンジニアは、リモートデスクトップ技術を使用してコンピューティングシステムにアクセスしてもよい。例えば、オペレーションエンジニアは、コンピューティングシステム(例えば、本番環境のマシンなど)にログインして、そのユーザインタフェースをユーザのコンピューティングシステム上で見ることができてもよい。したがって、オペレーションエンジニアが、UIを見て、所望するようにリモートコンピューティングシステムを制御できてもよい。
ロボットは、本番環境のマシン上で第2のセッションでUIを実行、制御してもよい。つまり、オペレーションエンジニアは、マシンを制御できなくなることなく、ロボットからのストリーミングログを監視したり、ロボットによって駆動されているUI(存在する場合)を視覚的に監視したりするなどできるようになる。ロボット制御ソフトウェアが第1のセッション又は親セッションで実行されているため、問題が発生した場合、エンジニアは、エンジニアがログインしている親セッションから実行を一時停止/終了/再開できる。幾つかの実施形態において、ロボットは親セッションで実行されていてもよく、監視は子セッションから実行されてもよい。
Microsoft(登録商標)ユニバーサルWindowsプラットフォーム(UWP)シミュレータは、例えばジオロケーション、マルチタッチ、回転などの振る舞いをシミュレートする機能を提供する。このような振る舞いは、開発者のマシンでテストするのが困難又は不可能である可能性がある。例えば、開発者が、例えばマッププログラムなどの様々な位置に依存するアプリケーションの振る舞いをテストしたい場合、開発者がテストのために国中又は世界中に自分のコンピュータを持ち運ぶことは非常に不便である。ユーザから「UIテイクオーバ」を分離させることやRPAにのみ関連することに重点を置くことよりはむしろ、UWPアプリケーションは、単一のウィンドウに含まれる単一のアプリケーションである。したがって、UI制御を分離する必要性は問題にならない。したがって、UWPシミュレータは、単一のアプリケーションの「シミュレーションシナリオ」を解決してもよい。
図10は、本発明の一実施形態による、ユーザのための自動化ウィンドウを使用してアテンディッド又はアンアテンディッド自動化を実行するためのプロセス1000を示すフローチャートである。該プロセスは、1010で子セッションウィンドウと子セッションを起動することから始まる。子セッションはオペレーティングシステムの親セッションの子であり、子ウィンドウは親セッションの親ウィンドウ内に配置される。1020で、RPAロボットはプロセスとして子セッションで初期化され、1030で、RPAロボットは実行される。実行中、RPAロボットは、子セッションウィンドウ内の複数のアクティビティを含むRPAワークフローを実行する。親セッションと子セッションは、共通のファイルシステムにアクセスできる。
1040で、RPAロボットと同じアプリケーションにユーザがアクセスすることを試みると、1050で、RPAロボットが現在アプリケーションにアクセスしていることを示すメッセージが親セッションウィンドウでユーザに対して表示される。1060で、RPAロボットがRPAワークフローの実行を完了した後、子セッションは自動的に終了され、子セッションウィンドウは自動的に閉じられる。直列(シリアル)に又は並列に子セッションで実行されている任意の所望の数のロボットに対して、ステップ1010〜1060が繰り返されてもよい。
幾つかの実施形態において、RPAワークフローで複数のアクティビティを実行するとき、RPAロボットは、コンピューティングシステムで実行されている一又は複数の共通のアプリケーションと対話する。この一又は複数の共通のアプリケーションに、ユーザは親セッションを介してアクセス可能であり、RPAロボットは子セッションを介してアクセス可能である。特定の実施形態において、RPAロボットはアテンディッドロボットであり、ユーザが親セッションを介してアプリケーションのインスタンスと対話することは、RPAロボットが子セッションを介して該アプリケーションの異なるインスタンス又は異なるアプリケーションのインスタンスと対話することを妨げない。幾つかの実施形態において、子セッションウィンドウは、親セッションウィンドウにおけるロボットトレイアプリケーションから起動される。特定の実施形態において、ロボットトレイアプリケーションとRPAロボットの間の通信は、IPCプロトコルを使用して行われ、ロボットトレイアプリケーションは、IPCプロトコルを介してRPAロボットプロセスにコマンドを送るように構成される。幾つかの実施形態において、RPAロボットは、IPCプロトコルを介してロボットトレイアプリケーションにステータス通知を送るように構成される。
幾つかの実施形態において、親セッション及び子セッションは設計時に起動され、RPAロボットはアテンディッド自動化を実行し、IDEアプリケーションは、親セッションに関連付けられたコンピューティングシステムで実行され、アテンディッド自動化を開始するように構成される。特定の実施形態において、親セッションと子セッションは、異なるコンピューティングシステム上で実行される。幾つかの実施形態において、親ウィンドウ、子ウィンドウ、又はこれら両方が、メインUI内に表示されるUIを表すウィンドウ、コンピューティングシステムの第2のディスプレイの第2の画面、仮想デスクトップ、又は隔離された環境を含む。
幾つかの実施形態において、RPAロボットはアテンディッドロボットであり、RPAロボットは、ユーザが親セッションと対話する間に親セッションで初期化され実行される。特定の実施形態において、子セッションウィンドウと子セッションの起動、子セッションにおけるRPAロボットの初期化、及びRPAロボットの実行は、リモートコンピューティングシステムを介して実行される。幾つかの実施形態において、RPAロボットはアンアテンディッドロボットである。
図11は、本発明の一実施形態による、RPA開発者のための自動化ウィンドウを使用してアテンディッド又はアンアテンディッド自動化を実行するためのプロセス1100を示すフローチャートである。該プロセスは、1110でIDEから子セッションウィンドウと子セッションを起動することから始まる。子セッションはオペレーティングシステムの親セッションの子であり、子ウィンドウは親セッションの親ウィンドウ内に配置される。1120で、RPAロボットはプロセスとして子セッションで初期化され、1130で、RPAロボットは実行される。実行中、RPAロボットは、子セッションウィンドウ内の複数のアクティビティを含むRPAワークフローを実行する。親セッションと子セッションは、共通のファイルシステムにアクセスできる。
1140で、ロボット動作中にRPAロボットからステータスメッセージが受け取られ、受け取られたステータスメッセージがIDEに表示される。ロボットが意図したとおりに動作していない場合、ユーザ(例えば、RPA開発者など)がその動作を終了することを望む可能性がある。ユーザがRPAロボットの動作を終了させるコマンドを与えると、RPAロボット、子セッション、及び子ウィンドウの動作がIDEによって終了される。
図12は、本発明の一実施形態による、自動化監視を実行するためのプロセス1200を示すフローチャートである。該プロセスは、1210で、コンピューティングシステムに関連付けられた親セッションで監視及びトラブルシューティングアプリケーションを初期化して実行することから始まる。1220で、子セッションウィンドウと子セッションが起動される。子セッションは、オペレーティングシステムの親セッションの子である。
1230で、アンアテンディッドRPAロボットは、プロセスとして子セッションで初期化され実行される。1240で、監視及びトラブルシューティングアプリケーションのユーザから、アンアテンディッドRPAロボットの動作を終了させるコマンドが受け取られる。次に、コマンドの受信に応答して、1250で、アンアテンディッドRPAロボットの動作が一時停止又は終了され、1260で、子セッションと子セッションウィンドウが強制終了される。親セッションと子セッションは、共通のファイルシステムにアクセスできる。
幾つかの実施形態において、子セッションウィンドウは、親セッションが実行されているのとは異なるコンピューティングシステムに表示される。特定の実施形態において、RPAワークフローで複数のアクティビティを実行するとき、アンアテンディッドRPAロボットは、親セッションと子セッションの両方を介してアクセス可能な一又は複数の共通のアプリケーションと対話する。幾つかの実施形態において、親セッションを介したアプリケーションのインスタンスとのユーザの対話は、アンアテンディッドRPAロボットが子セッションを介して該アプリケーションの異なるインスタンス又は異なるアプリケーションのインスタンスと対話することを妨げない。特定の実施形態において、アンアテンディッドRPAロボットがRPAワークフローの実行を完了した後、子セッションは自動的に終了され、子セッションウィンドウは自動的に閉じられる。
幾つかの実施形態において、任意の所望の数の追加のロボットが、ステップ1220のものと直列に又は並列にそれぞれの子セッションで実行されてもよい。特定の実施形態において、アンアテンディッドRPAロボットが対話しているアプリケーションと対話することをユーザが試みると、アンアテンディッドRPAロボットが現在アプリケーションにアクセスしていることを示すメッセージが親セッションウィンドウでユーザに対して表示されてもよい。幾つかの実施形態において、親セッションと子セッションは、異なるコンピューティングシステム上で実行される。特定の実施形態において、親ウィンドウ、子ウィンドウ、又はこれら両方が、メインUI内に表示されるUIを表すウィンドウ、コンピューティングシステムの第2のディスプレイの第2の画面、仮想デスクトップ、又は隔離された環境を含む。幾つかの実施形態において、子セッションウィンドウ及び子セッションの起動、子セッションにおけるアンアテンディッドRPAロボットの初期化、及びアンアテンディッドRPAロボットの実行は、リモートコンピューティングシステムを介して実行される。
図8〜図12で実行されるプロセスステップは、本発明の一実施形態に従って、コンピュータプログラムによって実行されて、図8〜図12に記載されているプロセスの少なくとも一部をプロセッサが実行するための命令を符号化してもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体で具現化されてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような媒体又は媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、図8〜図12に記載されたプロセスステップの全て又は一部を実施するようにコンピューティングシステムのプロセッサ(例えば、図5のコンピューティングシステム500のプロセッサ510など)を制御するための符号化された命令を含んでもよく、これもまた、コンピュータ読み取り可能な媒体に記憶されてもよい。
コンピュータプログラムは、ハードウェア、ソフトウェア、又はハイブリッド実装で実装されてもよい。コンピュータプログラムは、互いに動作可能に通信し、表示する情報又は命令を渡すように設計されたモジュールで構成されてもよい。コンピュータプログラムは、汎用コンピュータ、ASIC、又は任意の他の適切なデバイスで動作するように構成されてもよい。
本発明の様々な実施形態の構成要素は、本願の図面で一般的に記載され示されているように、多種多様な異なる構成で配置、設計されてもよいことは容易に理解されるであろう。したがって、添付の図面に表されている本発明の実施形態の詳細な説明は、クレームされている本発明の範囲を限定することを意図しておらず、単に本発明の選択された実施形態を表すものである。
本明細書全体を通して説明される本発明の特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。例えば、本明細書全体を通して「特定の実施形態」、「幾つかの実施形態」、又は類似の文言への言及は、実施形態に関連して説明される特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して「特定の実施形態において」、「幾つかの実施形態において」、「他の実施形態において」という語句、又は同様の文言の出現は、必ずしも全て同じ実施形態のグループを指すとは限らず、説明された特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。
本明細書全体を通して特徴、利点、又は同様の文言への言及は、本発明で実現され得る特徴及び利点の全てが本発明の任意の単一の実施形態であるか或いはそれに含まれることを意味しないことに留意されたい。むしろ、特徴及び利点に言及する文言は、実施形態に関連して説明される特定の特徴、利点、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体を通して特徴、利点、及び類似の文言の説明は、必ずしもそうではないが、同じ実施形態を指してもよい。
さらに、本発明の説明された特徴、利点、及び特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。当業者は、特定の実施形態の特定の特徴又は利点のうちの一又は複数がなくても本発明を実施できることを認識するであろう。他の例において、本発明の全ての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴及び利点が認識されてもよい。
当業者は、上記の本発明が異なる順序のステップで、及び/又は開示されているものとは異なる構成のハードウェア要素で実施されてもよいことを容易に理解するであろう。したがって、本発明をこのような好ましい実施形態に基づいて説明してきたが、本発明の主旨及び範囲内にありながら、特定の修正、変形、及び代替構造が明らかであることは当業者には明らかであろう。したがって、本発明の境界及び範囲を決定するために、添付の特許請求の範囲を参照されたい。

Claims (15)

  1. ンピュータプログラムであって、
    子ウィンドウと子セッションを起動することと、
    ロボティックプロセスオートメーション(RPA)ロボットをプロセスとして前記子セッションにおいて初期化することと、
    前記RPAロボットを実行することと、
    を少なくとも1つのプロセッサに実行させるように構成され、
    前記子セッションはオペレーティングシステムの親セッションの子であり、
    前記子ウィンドウは前記親セッションの親ウィンドウ内に配置され、
    前記RPAロボットは、実行中、前記子ウィンドウ内の複数のアクティビティを含むRPAワークフローを実行し、
    前記親セッションと前記子セッションは共通のファイルシステムにアクセス可能であり、
    前記RPAワークフローにおける前記複数のアクティビティを実行するときに、前記RPAロボットは、コンピューティングシステム上で実行されている一又は複数の共通のアプリケーションと対話し、ユーザは前記親セッションを介して前記一又は複数の共通のアプリケーションにアクセス可能であり、前記RPAロボットは前記子セッションを介して前記一又は複数の共通のアプリケーションにアクセス可能であり、
    前記RPAロボットアテンディッド(操作要)ロボットである場合に、ユーザが前記親セッションを介してアプリケーションのインスタンスと対話することは、前記RPAロボットが前記子セッションを介して該アプリケーションの異なるインスタンス又は異なるアプリケーションのインスタンスと対話することを妨げないことを特徴とするコンピュータプログラム。
  2. 前記子ウィンドウは、前記親セッションのウィンドウにおけるロボットトレイアプリケーションから起動されることを特徴とする、請求項1に記載のコンピュータプログラム。
  3. 前記ロボットトレイアプリケーションと前記RPAロボットの間の通信は、プロセス間通信(IPC)プロトコルを使用して行われ、
    前記ロボットトレイアプリケーションは、前記IPCプロトコルを介して前記RPAロボットのプロセスにコマンドを送るように構成されていることを特徴とする、請求項2に記載のコンピュータプログラム。
  4. 前記RPAロボットは、前記IPCプロトコルを介して前記ロボットトレイアプリケーションにステータス通知を送るように構成されていることを特徴とする、請求項3に記載のコンピュータプログラム。
  5. 前記RPAロボットが前記RPAワークフローの実行を完了した後、前記子セッションを自動的に終了させ、前記子ウィンドウを閉じること
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  6. 前記共通のファイルシステムを共有する追加の子ウィンドウと追加の個別セッションを起動することと、
    前記追加の子セッションにおいて別のRPAロボットを起動することと、
    前記別のRPAロボットを実行することと
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  7. 前記RPAロボットアテンディッドロボットであって前記RPAロボットが対話しているアプリケーションとユーザが対話することを試みるときに、
    前記RPAロボットが現在該アプリケーションにアクセスしていることを示すメッセージを前記親セッションのウィンドウでユーザに対して表示すること
    を前記少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  8. 前記親セッションと前記子セッションは設計時に起動され、
    前記RPAロボットはアテンディッド(操作要)自動化を実行し、
    統合開発環境(IDE)アプリケーションが、前記親セッションと関連付けられたコンピューティングシステム上で実行され、前記アテンディッド自動化を起動するように構成されていることを特徴とする、請求項1に記載のコンピュータプログラム。
  9. 前記親セッションと前記子セッションは異なるコンピューティングシステムで実行されることを特徴とする、請求項1に記載のコンピュータプログラム。
  10. 前記親ウィンドウ、前記子ウィンドウ、又はこれら両方が、メインユーザインタフェース(UI)内に表示されるUIを表すウィンドウ、コンピューティングシステムの第2のディスプレイの第2の画面、仮想デスクトップ、又は隔離された環境を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
  11. 前記子ウィンドウと前記子セッションの起動、前記子セッションにおける前記RPAロボットの初期化、及び前記RPAロボットの実行は、リモートコンピューティングシステムを介して実行されることを特徴とする、請求項1に記載のコンピュータプログラム。
  12. 前記RPAロボットはアンアテンディド(操作不要)ロボットであることを特徴とする、請求項1に記載のコンピュータプログラム。
  13. 設計時のロボティックプロセスオートメーション(RPA)のためのアテンディッド(操作要)自動化を実行するためのコンピュータ実施方法であって、
    前記コンピュータ実施方法は、
    統合開発環境(IDE)から子ウィンドウと子セッションを起動することと
    ロボティックプロセスオートメーション(RPA)ロボットをプロセスとして前記子セッションにおいて初期化することと、
    前記RPAロボットを実行することと、
    を含み、
    前記子セッションはオペレーティングシステムの親セッションの子であり、
    前記子ウィンドウは前記親セッションの親ウィンドウ内に配置され、
    前記RPAロボットは、実行中、前記子ウィンドウ内の複数のアクティビティを含むRPAワークフローを実行し、
    前記親セッションと前記子セッションは共通のファイルシステムにアクセス可能であり、
    前記RPAワークフローにおける前記複数のアクティビティを実行するときに、前記RPAロボットは、コンピューティングシステム上で実行されている一又は複数の共通のアプリケーションと対話し、ユーザは前記親セッションを介して前記一又は複数の共通のアプリケーションにアクセス可能であり、前記RPAロボットは前記子セッションを介して前記一又は複数の共通のアプリケーションにアクセス可能であり、
    前記RPAロボットはアテンディッド(操作要)ロボットであり、
    ユーザが前記親セッションを介してアプリケーションのインスタンスと対話することは、前記RPAロボットが前記子セッションを介して該アプリケーションの異なるインスタンス又は異なるアプリケーションのインスタンスと対話することを妨げないことを特徴とするコンピュータ実施方法。
  14. ロボット動作中に前記RPAロボットからステータスメッセージを受け取ることと、
    前記ステータスメッセージを前記IDEに表示することと、
    をさらに含むことを特徴とする、請求項1に記載のコンピュータ実施方法。
  15. ユーザが前記RPAロボットの動作を終了させるコマンドを与えるときに、
    前記コンピュータ実施方法は、
    前記RPAロボット、前記子セッション、及び前記子ウィンドウの動作を前記IDEによって終了させること
    をさらに含むことを特徴とする、請求項1に記載のコンピュータ実施方法。
JP2020125401A 2020-02-18 2020-07-22 ロボティックプロセスオートメーションの自動化ウィンドウ Active JP6929422B1 (ja)

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
JP6929422B1 true JP6929422B1 (ja) 2021-09-01
JP2021131841A JP2021131841A (ja) 2021-09-09

Family

ID=70736378

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020125401A Active JP6929422B1 (ja) 2020-02-18 2020-07-22 ロボティックプロセスオートメーションの自動化ウィンドウ
JP2022549438A Pending JP2023514682A (ja) 2020-02-18 2020-12-09 ロボティックプロセスオートメーションのための自動化ウィンドウ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022549438A Pending JP2023514682A (ja) 2020-02-18 2020-12-09 ロボティックプロセスオートメーションのための自動化ウィンドウ

Country Status (7)

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

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工作流的进程保活调度方法及设备

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5627128A (en) 1979-08-10 1981-03-16 Canon Inc Copying apparatus
US7080385B1 (en) 1997-08-18 2006-07-18 Tibco Software Inc. Certified message delivery and queuing in multipoint publish/subscribe communications
US7013465B1 (en) 1999-08-17 2006-03-14 Emc Corporation System, device and method for interprocessor communication in a computer system
SE0004466D0 (sv) 2000-12-04 2000-12-04 Abb Ab Mobile Robot
JP2002192486A (ja) 2000-12-25 2002-07-10 Seiko Epson Corp ロボット制御方法及び該方法を適用したロボットコントローラ
US7437715B2 (en) * 2002-04-09 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for generating a set of robot commands based on user entry events in a user interface
AU2003239385A1 (en) 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US7478402B2 (en) 2004-02-12 2009-01-13 Microsoft Corporation Configurable message pipelines
US7346607B2 (en) * 2004-05-17 2008-03-18 International Business Machines Corporation System, method, and software to automate and assist web research tasks
JP4671628B2 (ja) 2004-06-16 2011-04-20 ソニー株式会社 ロボット装置の制御システム及び制御方法
US20060184293A1 (en) * 2005-02-18 2006-08-17 Stephanos Konandreas Autonomous surface cleaning robot for wet cleaning
US8265793B2 (en) * 2007-03-20 2012-09-11 Irobot Corporation Mobile robot for telecommunication
US8997115B2 (en) 2007-08-31 2015-03-31 International Business Machines Corporation Method for data delivery in a network
US8402431B2 (en) * 2008-04-09 2013-03-19 Renesas Electronics America Inc. System and method for communicating with a microcontroller
US8756608B2 (en) * 2009-07-01 2014-06-17 International Business Machines Corporation Method and system for performance isolation in virtualized environments
US8448139B2 (en) 2009-10-05 2013-05-21 International Business Machines Corporation Automatic correction of application based on runtime behavior
WO2011103425A1 (en) 2010-02-18 2011-08-25 Sa Ignite, Inc. Systems and methods for monitoring and enhancing software applications
US9799004B2 (en) 2010-07-30 2017-10-24 Avaya Inc. System and method for multi-model, context-aware visualization, notification, aggregation and formation
US9552056B1 (en) 2011-08-27 2017-01-24 Fellow Robots, Inc. Gesture enabled telepresence robot and system
EP2642395B1 (de) 2012-03-21 2018-12-19 ServiceTrace e.K. Verfahren und Vorrichtung zum Ausführen von Workflow-Skripten
WO2016014137A2 (en) * 2014-05-06 2016-01-28 Neurala, Inc. Apparatuses, methods, and systems for defining hardware-agnostic brains for autonomous robots
US10185590B2 (en) 2014-06-16 2019-01-22 Amazon Technologies, Inc. Mobile and remote runtime integration
US10585548B2 (en) 2015-03-03 2020-03-10 Soroco Private Limited Software robots for programmatically controlling computer programs to perform tasks
US9808933B2 (en) 2015-04-03 2017-11-07 GM Global Technology Operations LLC Robotic system with reconfigurable end-effector assembly
EP3112965A1 (en) 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
EP3133539A1 (en) 2015-08-19 2017-02-22 Tata Consultancy Services Limited Method ans system for process automation in computing
WO2017144078A1 (en) * 2016-02-23 2017-08-31 Abb Schweiz Ag Robot controller system and method therefor
EP3214510B1 (en) 2016-03-03 2021-06-30 Magazino GmbH Controlling process of robots having a behavior tree architecture
WO2017176917A1 (en) 2016-04-06 2017-10-12 Soroco Private Limited Techniques for implementing persistently interactive software robots
US10831802B2 (en) * 2016-04-11 2020-11-10 Facebook, Inc. Techniques to respond to user requests using natural-language machine learning based on example conversations
US10469599B2 (en) * 2016-08-04 2019-11-05 Koji Yoden Automatic setting up of application program in portable computing device
US10339027B2 (en) 2016-09-06 2019-07-02 Accenture Global Solutions Limited Automation identification diagnostic tool
KR102628789B1 (ko) * 2016-09-09 2024-01-25 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
WO2018078457A1 (en) 2016-10-28 2018-05-03 Calgary Scientific Inc. Multi-window architecture and data communication for a remote access application session
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US10324457B2 (en) 2017-05-11 2019-06-18 Global Eprocure Robotic process automation for supply chain management operations
US10682761B2 (en) 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US20190004932A1 (en) 2017-06-30 2019-01-03 Infinera Corporation Unit test and automation framework (utaf) system and method
US20190122200A1 (en) 2017-10-24 2019-04-25 Bank Of America Corporation Robotic beacon device and system for remote triggering of events
US10437984B2 (en) * 2017-10-26 2019-10-08 Bank Of America Corporation Authentication protocol elevation triggering system
US10503627B2 (en) 2017-10-30 2019-12-10 Bank Of America Corporation Robotic process automation enabled file dissection for error diagnosis and correction
US10686684B2 (en) 2017-11-02 2020-06-16 Bank Of America Corporation Individual application flow isotope tagging within a network infrastructure
US10839798B2 (en) 2017-11-03 2020-11-17 Salesforce.Com, Inc. Intent interpreter for a visual bot builder
WO2019087194A1 (en) * 2017-11-05 2019-05-09 Walkme Ltd. Chat-based application interface for automation
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

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
US20210252703A1 (en) 2021-08-19
TWI730845B (zh) 2021-06-11
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
JP6929422B1 (ja) ロボティックプロセスオートメーションの自動化ウィンドウ
US11818223B2 (en) Inter-session automation for robotic process automation (RPA) robots
JP2023524917A (ja) ロボティックプロセスオートメーションのためのアプリケーション統合
JP7364588B2 (ja) 第2のセッションで実行されるロボティックプロセスオートメーションロボットを介して第1のセッションで実行されるプロセスの自動化
KR102476043B1 (ko) 제1 세션에서 실행되고 있는 프로세스의 제2 세션에서 실행되고 있는 로봇 프로세스 자동화 로봇을 통한 자동화

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200916

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200916

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210810

R150 Certificate of patent or registration of utility model

Ref document number: 6929422

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250