JP2023509249A - リモートネイティブオートメーションデカップリングのための方法および装置 - Google Patents
リモートネイティブオートメーションデカップリングのための方法および装置 Download PDFInfo
- Publication number
- JP2023509249A JP2023509249A JP2021565070A JP2021565070A JP2023509249A JP 2023509249 A JP2023509249 A JP 2023509249A JP 2021565070 A JP2021565070 A JP 2021565070A JP 2021565070 A JP2021565070 A JP 2021565070A JP 2023509249 A JP2023509249 A JP 2023509249A
- Authority
- JP
- Japan
- Prior art keywords
- tool driver
- rpa tool
- version
- rpa
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
- Crystals, And After-Treatments Of Crystals (AREA)
- Eyeglasses (AREA)
- Electrolytic Production Of Metals (AREA)
- Programmable Controllers (AREA)
Abstract
ロボティックプロセスオートメーション(RPA)における互換性のためのコンピューティングデバイスは、複数のRPAツールドライバのバージョンを含むメモリと、メモリと通信可能に結合されたプロセッサとを含む。プロセッサは、複数のRPAツールドライババージョンのうちの第1のRPAツールドライババージョンについての要求を受信すると、プロセッサは、処理のために第1のRPAツールバージョンをロードする。
Description
(関連出願への相互参照)
本出願は、2019年12月30日に出願された米国出願第16/730,524号の利益を主張し、その内容は参照により本明細書に組み込まれる。
本出願は、2019年12月30日に出願された米国出願第16/730,524号の利益を主張し、その内容は参照により本明細書に組み込まれる。
仮想マシン(VM)環境でアプリケーションを自動化する場合、VMアプリケーションはイメージの形式で表示されるため、ユーザーインターフェース(UI)要素の検出が困難である。VMアプリケーションのユーザーインターフェースにネイティブな自動化機能を提供するツールが必要とされる。自動化ツールをバージョンアップすると、VMオートメーションの実行時に互換性の問題が発生する。
本願は、異なるバージョンのロボティックプロセスオートメーション(RPA)ツールに、自動化すべきVMアプリケーションとの下位互換性を持たせることに関する。VMアプリケーションの自動化のためにインストールされたドライバのデカップリングが行われ、特定の自動化要求を実行するために適切なバージョンのドライバがロードされる。
(実施形態の詳細な説明)
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
(詳細な説明)
より詳細な説明は以下の通りであるが、簡潔に、UiPathは、クライアントマシンに拡張を、アプリケーションサーバーにリモートランタイムコンポーネントをインストールすることで、ネイティブオートメーションを実現する。これにより、セレクタに基づいて、クリック、入力、テキストの取得、データの抽出などのUIオートメーションアクティビティが可能になり、UiPathは、さらなる信頼性とパフォーマンスを高めるために、ICA(Independent Computing Architecture)またはRDP(Remote Desktop Services)チャネル上のメッセージングを使用する。しかしながら、後述するように、異なるバージョンのロボティックプロセスオートメーション(RPA)ツールと仮想化アプリケーションとの互換性が利用される。
より詳細な説明は以下の通りであるが、簡潔に、UiPathは、クライアントマシンに拡張を、アプリケーションサーバーにリモートランタイムコンポーネントをインストールすることで、ネイティブオートメーションを実現する。これにより、セレクタに基づいて、クリック、入力、テキストの取得、データの抽出などのUIオートメーションアクティビティが可能になり、UiPathは、さらなる信頼性とパフォーマンスを高めるために、ICA(Independent Computing Architecture)またはRDP(Remote Desktop Services)チャネル上のメッセージングを使用する。しかしながら、後述するように、異なるバージョンのロボティックプロセスオートメーション(RPA)ツールと仮想化アプリケーションとの互換性が利用される。
本明細書に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、これは、より長い羅列にも同様に当てはまり得る。X/Yという表記を使用する場合、当該表記はXまたはYを含み得る。あるいは、X/Yという表記を使用する場合、当該表記はXおよびYを含み得る。X/Yの表記は、上記と同じ論理により、より長い羅列にも同様に当てはまり得る。
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行100の説明図である。デザイナ102は、スタジオ、開発プラットフォーム、開発環境などとも呼ばれ、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザーまたはオペレータによって選択された視覚表示の領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、矩形、円、多角形、自由形などの多次元の形状が、UIロボットの開発およびランタイムに利用され得る。
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数があり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語((HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどがあり得る。
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対し透過的なUIを自動化し得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータと呼ばれることもある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するために複数のロボットを指示または命令するための中央または半中心点として機能し得る。
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の生成および維持を含み得る。展開は、実行のために割り当てられたロボットへのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの許可を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として機能することにより、相互接続性を提供し得る。
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108操作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110操作については、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。アンアテンディッド108またはアテンディッド110ロボットは、モバイルコンピューティングまたはモバイルデバイスの環境で実行するまたは実行することがきる。
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する実行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などで最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットでも使用可能であり得る。
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティのために専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクタ104と実行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、信用を受け得、ロボット(複数可)または自動化エグゼキュータ106の資格情報を管理し得る。
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、信用を受け得、ロボットの資格情報を管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
エグゼキュータは、Windows(登録商標)セッションの下で所与のジョブを実行し得る(つまり、ワークフローを実行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を要求し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、特定、および追跡をより容易に実行するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動が構成され得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが生成されたコンピューティングシステムの構成に関係なく、任意のDPIにおいて実行され得る。また、デザイナ102からのプロジェクトは、ブラウザのズームレベルから独立するようにされ得る。DPIを認識していないまたは認識していないと意図的にマークされているアプリケーションの場合、いくつかの実施形態ではDPIは無効にされ得る。
図1Bは、RPAの開発、設計、運用、または実行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
メモリ146は、プロセッサ(複数可)144によって実行または処理される情報、命令、コマンド、またはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または任意の他のタイプの非一時的な読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的な読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
通信装置148は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、または、1もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力をコンピューティングシステムまたは環境140と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供してもよいし、あるいは、コンピューティングシステムまたは環境140が自律的に動作してもよい。
メモリ146は、1または複数のプロセッサ(複数可)144によって実行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納し得る。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。
コンピューティングシステムまたは環境140は、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
図2は、例示的な実施形態による仮想マシン環境(VM)の例示的なシステム図200である。システム200は、クライアントデバイス2101および2102として描かれる1または複数のクライアントデバイスと、アプリケーションサーバー240とを含む。2つのクライアントデバイス210が示されているが、任意の数のクライアントデバイスがシステム200に含まれてもよい。ダイナミックリンクライブラリ(DLL)2211(例えば、UiPath.dll)を含むロボットv1 2201(例えば、UiPath Robot)と、リモートプロシージャコール(RPC)サーバー2311および仮想チャネルクライアント2321を含むプラグイン2201(例えば、Citrix Plugin)とが、クライアントデバイス2101に含まれる。ロボットv1 2201は、RPCチャネルを介して、プラグイン2301のRPCサーバー2311と通信し、RPCサーバー2311は、仮想チャネルクライアント2321と通信する。各クライアントデバイス210は、VM環境で実行する異なるアプリケーションに利用され得る。例えば、クライアントデバイス2101は、1つのバージョンのドライバで実行されるアプリケーションを必要とする会計アプリケーションを実行してもよく、一方、クライアントデバイス2102は、ヒューマンリソースアプリケーションに利用され、異なるバージョンのドライバで実行されるアプリケーションを必要とし得る。
DLL2212(例えば、UiPath.dll)を含むロボットv2 2202(例えば、UiPath Robot)と、RPCサーバー2311および仮想チャネルクライアント2321を含むプラグイン2202(例えば、Citrix Plugin)とが、クライアントデバイス2102に含まれる。ロボットv2 2202は、RPCチャネルを介して、プラグイン2302のRPCサーバー2312と通信し、RPCサーバー2312は、仮想チャネルクライアント2322と通信する。
アプリケーションサーバー240は、仮想チャネルサーバー251、第1リモートエグゼキュータ2601(リモートエグゼキュータ1)、および第2リモートエグゼキュータ2602(リモートエグゼキュータ2)を含むリモートランタイムコンポーネント250を含む。仮想チャネルサーバー251は、第1のリモートエグゼキュータ2601および第2のリモートエグゼキュータ2602の両方と通信する。ロボット2201および2202のそれぞれの仮想チャネルクライアント2321および2322は、ICA(Independent Computing Architecture)仮想チャネルプロトコルを用いて、仮想チャネルサーバー251と通信する。
第1のリモートエクゼキュータ2601は、DLL(UiPath.dll v1)2611と、UiRemote Driver 2621とを含む。第2のリモートエクゼキュータ2602は、DLL(UiPath.dll v2)2612と、UiRemote Driver 2622とを含む。2つのリモートエクゼキュータ(例えば、2601および2602)が示されるが、任意の数のリモートエクゼキュータが利用され得る。
図3は、例示的な実施形態によるリモートネイティブオートメーションデカップリングを実行する例示的な方法300のフロー図である。ステップ310では、複数のRPAツールのバージョンがアプリケーションサーバーにロードされる。例えば、図2に戻って参照すると、第1のリモートエグゼキュータ2601および第2のリモートエグゼキュータ2602は、それぞれロードされたドライバのバージョン1および2を有する。次に、アプリケーションサーバーは、クライアントデバイス(例えば、デバイス2101または2102)から、リモートランタイムアプリケーションを介してリクエストを受信する(ステップ220)。
例えば、再び図2を参照すると、リモートランタイムコンポーネント250は、プラグイン2302からリクエストを受信する。アプリケーションサーバー240は、ドライババージョンの要求についてのリクエストを読み取る(ステップ330)。そして、アプリケーションサーバー250は、要求されたドライバのバージョンに従って、ドライバのバージョンをロードする(ステップ340)。本実施例では、バージョン要求がバージョン2についてのものである場合、リモートランタイムコンポーネント250は、UiRemote Driver 2622のためのリモートエグゼキュータ2602にアクセスする。そして、アプリケーションサーバー250は、要求されたドライバのバージョン(例えば、バージョン2)に応じて、仮想アプリケーションを有効にする(ステップ350)。
リモートランタイムコンポーネント250は、異なるドライバについての要求を、互いに並行してまたは連続して受信し得ることに留意されたい。例えば、ステップ220において、リモートランタイムコンポーネント250は、プラグイン2301からの要求と、プラグイン2302からの要求との両方を並行して受信し得る。その場合、リモートランタイムコンポーネント250は、UiRemote Driver 2611のためのリモートエクゼキュータ2601にアクセスして、クライアントデバイス2101からの要求に対してバージョン1に従った仮想アプリケーションを有効化し、UiRemote Driver 2622のためのリモートエクゼキュータ2602にアクセスして、クライアントデバイス2102からの要求に対してバージョン2に従った仮想アプリケーションを有効化する。
このように、クライアントマシン上に拡張(プラグイン)を追加し、アプリケーションサーバー上に仮想アプリケーションのためのセレクタを用いたUI要素の検出を可能にするリモートランタイムコンポーネントを追加することで、仮想化アプリケーションの自動化が可能になる。サーバー内のドライバコンポーネントとクライアント内の拡張との間の通信には、ICA(Independent Computing Architecture)プロトコルなどの仮想チャネルが使用され、UI要素のためのセレクタを使用できるようになる。
オートメーションツールを複数のドライババージョンでサポートするために、アプリケーションサーバーに複数のバージョンをインストールし、リモートランタイムにより複数のドライバDLLをロードするようにする。リモートランタイムは、特定のドライババージョンの要求を受信すると(バージョンはリクエストメッセージの一部)、インストールされたパッケージフォルダーからその特定のドライババージョンをロードする。上記の説明は、ネイティブモードでの動作に関するものであるが、上記の方法および装置は、ノンネイティブモードでも実行され得ることを理解すべきである。
本明細書に記載された例では、モジュールは、カスタムの超大型集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
モジュールは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。特定された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成され得るコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの実行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。
実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。操作データまたは機能データは、モジュール内で特定され、ここで示されてもよく、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で構成され得る。コンピュータプログラムは、互いに動作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。
Claims (20)
- ロボティックプロセスオートメーション(RPA)におけるリモートネイティブデカップリングのためのコンピューティングデバイスであって、
複数のRPAツールドライババージョンを含むメモリと、
前記メモリに通信可能に結合されたプロセッサと、
を含み、
前記プロセッサは、前記複数のRPAツールドライババージョンのうちの第1のRPAツールドライババージョンについての要求を受信すると、前記プロセッサは、処理のために前記第1のRPAツールバージョンをロードする、
コンピューティングデバイス。 - 前記プロセッサは、前記複数のRPAツールドライババージョンのうちの第2のRPAツールドライババージョンについての要求を受信し、処理のために前記第2のRPAツールバージョンをロードする、請求項1に記載のコンピューティングデバイス。
- 前記第1のRPAツールドライババージョンの前記要求と前記第2のRPAツールドライババージョンの前記要求とを並行して受信する、請求項2に記載のコンピューティングデバイス。
- 前記第1のRPAツールドライババージョンの前記要求は、第1のクライアントデバイスから受信される、請求項2に記載のコンピューティングデバイス。
- 前記第2のRPAツールドライババージョンの前記要求は、第2のクライアントデバイスから受信される、請求項4に記載のコンピューティングデバイス。
- 前記プロセッサは、前記第1のRPAツールドライババージョンを含む第1のリモートエグゼキュータをさらに含む、請求項1に記載のコンピューティングデバイス。
- 前記プロセッサは、前記第2のRPAツールドライババージョンを含む第2のリモートエグゼキュータをさらに含む、請求項6に記載のコンピューティングデバイス。
- 前記プロセッサは、前記第1のリモートエクゼキュータを利用して、前記複数のRPAツールドライババージョンのうちの前記第1のRPAツールドライババージョンについての前記要求を処理する、請求項7に記載のコンピューティングデバイス。
- 前記プロセッサは、前記第2のリモートエクゼキュータを利用して、前記複数のRPAツールドライババージョンのうちの前記第2のRPAツールドライババージョンについての前記要求を処理する、請求項7に記載のコンピューティングデバイス。
- ロボティックプロセスオートメーション(RPA)におけるリモートネイティブデカップリングのための方法であって、前記方法は、
プロセッサによって、前記複数のRPAツールドライババージョンのうちの第1のRPAツールドライババージョンについての要求を受信することと、
処理のために前記第1のRPAツールバージョンを前記プロセッサによってメモリからロードすることと、
前記第1のRPAツールバージョンに従って実行する仮想アプリケーションを提供することと、を含む、方法。 - 前記プロセッサは、前記複数のRPAツールドライババージョンのうちの第2のRPAツールドライババージョンについての要求を受信し、処理のために前記第2のRPAツールバージョンをロードすることをさらに含む、請求項10に記載の方法。
- 前記第1のRPAツールドライババージョンの前記要求と前記第2のRPAツールドライババージョンの前記要求とを並行して受信する、請求項11に記載の方法。
- 前記第1のRPAツールドライババージョンの前記要求は、第1のクライアントデバイスから受信される、請求項11に記載の方法。
- 前記第2のRPAツールドライババージョンの前記要求は、第2のクライアントデバイスから受信される、請求項13に記載の方法。
- 第1のリモートエグゼキュータは、前記第1のRPAツールドライババージョンを含む、請求項10に記載の方法。
- 第2のリモートエグゼキュータは、前記第2のRPAツールドライババージョンを含む、請求項15に記載の方法。
- 前記複数のRPAツールドライババージョンのうちの前記第1のRPAツールドライババージョンについての前記要求を前記第1のリモートエグゼキュータによって実行することをさらに含む、請求項16に記載の方法。
- 前記複数のRPAツールドライババージョンのうち前記第2のRPAツールドライババージョンについての前記要求を前記第2のリモートエグゼキュータによって実行することをさらに含む、請求項16に記載の方法。
- ロボティックプロセスオートメーション(RPA)におけるリモートネイティブデカップリングのための非一時的なコンピュータ読み取り可能な媒体であって、前記非一時的なコンピュータ読み取り可能な媒体は、自身の上に記録された命令を有し、プロセッサによって実行されると、
前記複数のRPAツールドライババージョンのうちの第1のRPAツールドライババージョンについての要求をプロセッサによって受信すること、
処理のために前記第1のRPAツールバージョンを前記プロセッサによってメモリからロードすること、および
前記第1のRPAツールバージョンに従って実行する仮想アプリケーションを提供すること、
含む動作を前記プロセッサに実行させる、
非一時的なコンピュータ読み取り可能な媒体。 - 前記複数のRPAツールドライババージョンのうちの第2のRPAツールドライババージョンについての要求を受信することと、処理のために前記第2のRPAツールバージョンをロードすることとをさらに含む、請求項19に記載の非一時的なコンピュータ読み取り可能な媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/730,524 US11453131B2 (en) | 2019-12-30 | 2019-12-30 | Method and apparatus for remote native automation decoupling |
US16/730,524 | 2019-12-30 | ||
PCT/US2020/067248 WO2021138284A1 (en) | 2019-12-30 | 2020-12-29 | Method and apparatus for remote native automation decoupling |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023509249A true JP2023509249A (ja) | 2023-03-08 |
Family
ID=76547187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021565070A Pending JP2023509249A (ja) | 2019-12-30 | 2020-12-29 | リモートネイティブオートメーションデカップリングのための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11453131B2 (ja) |
EP (1) | EP3948444A4 (ja) |
JP (1) | JP2023509249A (ja) |
KR (1) | KR20220122485A (ja) |
CN (1) | CN113906391A (ja) |
WO (1) | WO2021138284A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240059353A (ko) * | 2022-10-27 | 2024-05-07 | 삼성에스디에스 주식회사 | Rpa 봇 실행의 최적화 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7610331B1 (en) * | 2000-09-13 | 2009-10-27 | Lightsurf Technologies, Inc. | System and method for dynamic uploading and execution of applications and drivers between devices |
US8521966B2 (en) | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
US8819707B2 (en) | 2009-06-18 | 2014-08-26 | Citrix Systems, Inc. | Methods and systems for importing a device driver into a guest computing environment |
US9158552B2 (en) | 2009-11-17 | 2015-10-13 | Netapp, Inc. | Adaptive device driver method and system |
US8327358B2 (en) | 2009-12-10 | 2012-12-04 | Empire Technology Development Llc | Hypervisor driver management in virtual machine environments |
KR101130781B1 (ko) | 2010-04-16 | 2012-03-28 | 성균관대학교산학협력단 | 부분 가상 머신 및 이를 이용한 디바이스 드라이버 처리 방법 |
CN104601617A (zh) | 2013-10-31 | 2015-05-06 | 南京中兴新软件有限责任公司 | 虚拟桌面系统中外设的接入处理方法及装置 |
EP3112965A1 (en) * | 2015-07-02 | 2017-01-04 | Accenture Global Services Limited | Robotic process automation |
US10095537B1 (en) * | 2016-03-22 | 2018-10-09 | Amazon Technologies, Inc. | Driver version identification and update system |
EP3376392A1 (de) | 2017-03-15 | 2018-09-19 | Siemens Aktiengesellschaft | Verfahren zum betrieb eines automatisierungssystems und nach dem verfahren arbeitendes automatisierungssystem |
US20190324781A1 (en) | 2018-04-24 | 2019-10-24 | Epiance Software Pvt. Ltd. | Robotic script generation based on process variation detection |
-
2019
- 2019-12-30 US US16/730,524 patent/US11453131B2/en active Active
-
2020
- 2020-12-29 CN CN202080041066.9A patent/CN113906391A/zh active Pending
- 2020-12-29 JP JP2021565070A patent/JP2023509249A/ja active Pending
- 2020-12-29 EP EP20910197.1A patent/EP3948444A4/en not_active Withdrawn
- 2020-12-29 KR KR1020217039305A patent/KR20220122485A/ko unknown
- 2020-12-29 WO PCT/US2020/067248 patent/WO2021138284A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
KR20220122485A (ko) | 2022-09-02 |
WO2021138284A1 (en) | 2021-07-08 |
EP3948444A4 (en) | 2022-12-07 |
EP3948444A1 (en) | 2022-02-09 |
CN113906391A (zh) | 2022-01-07 |
US20210197395A1 (en) | 2021-07-01 |
US11453131B2 (en) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113334371B (zh) | 用于机器人流程自动化的自动化窗口 | |
US11745344B2 (en) | Resuming robotic process automation workflows based on external triggers | |
CN115243838A (zh) | 针对机器人流程自动化(rpa)机器人的会话间自动化 | |
JP7106048B2 (ja) | ロボットブラウザ埋め込み | |
CN113168168B (zh) | 经由在第二会话中运行的机器人流程自动化机器人使在第一会话中运行的过程自动化 | |
JP2023517150A (ja) | ロボティックプロセスオートメーション(rpa)のためのインプロセストリガ管理 | |
US11334828B2 (en) | Automated data mapping wizard for robotic process automation (RPA) or enterprise systems | |
JP2023509249A (ja) | リモートネイティブオートメーションデカップリングのための方法および装置 | |
EP3800595A1 (en) | Resuming robotic process automation workflows based on external triggers | |
EP3806419A1 (en) | Robot browser embedding | |
JP2023542438A (ja) | 分散パッケージ型ロボティックプロセスのローカル型構成 | |
US20220075603A1 (en) | Dynamic robot tray by robotic processes | |
US20210405999A1 (en) | Context-aware undo-redo service of an application development platform | |
KR20230110380A (ko) | 로봇 프로세스에 의한 안내된 동작 | |
JP2023544277A (ja) | アーティファクト参照(artifacts reference)作成および依存関係追跡 |