JP2023089951A - ロボティックプロセスオートメーションのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティ - Google Patents
ロボティックプロセスオートメーションのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティ Download PDFInfo
- Publication number
- JP2023089951A JP2023089951A JP2022196081A JP2022196081A JP2023089951A JP 2023089951 A JP2023089951 A JP 2023089951A JP 2022196081 A JP2022196081 A JP 2022196081A JP 2022196081 A JP2022196081 A JP 2022196081A JP 2023089951 A JP2023089951 A JP 2023089951A
- Authority
- JP
- Japan
- Prior art keywords
- rpa
- target
- project
- automation
- platform
- 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
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31342—Design of process control system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
- Manipulator (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】ロボティックプロセスオートメーション(RPA)のためのマルチターゲットライブラリ、プロジェクト及びアクティビティを提供する。
【解決手段】プロセスは、マルチターゲットRPAデザイナアプリケーションを起動し910、非マルチプラットフォームRPAプロジェクトをマルチターゲットRPAプロジェクトに変換し920、開発者が非マルチターゲットRPAプロジェクトをマルチターゲットRPAプロジェクトに変換するだけでなければ、プロジェクト及び/又は個々のアクティビティのためのRPAワークフロー構成を受信し930、RPAワークフローが作製されると、ターゲットプラットフォーム(複数可)上でワークフローを実装する自動化を生成し940、RPAロボット(複数可)を介してターゲットプラットフォーム(複数可)上でRPAオートメーションを遂行し、検証する950。
【選択図】図9
【解決手段】プロセスは、マルチターゲットRPAデザイナアプリケーションを起動し910、非マルチプラットフォームRPAプロジェクトをマルチターゲットRPAプロジェクトに変換し920、開発者が非マルチターゲットRPAプロジェクトをマルチターゲットRPAプロジェクトに変換するだけでなければ、プロジェクト及び/又は個々のアクティビティのためのRPAワークフロー構成を受信し930、RPAワークフローが作製されると、ターゲットプラットフォーム(複数可)上でワークフローを実装する自動化を生成し940、RPAロボット(複数可)を介してターゲットプラットフォーム(複数可)上でRPAオートメーションを遂行し、検証する950。
【選択図】図9
Description
本発明は概して、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティに関する。
現在、Windows(登録商標)、Mac(登録商標)、Linux(登録商標)、モバイルオペレーティングシステム(OS)など、さまざまなターゲットに対してさまざまなバージョンのRPAワークフローが開発されている。したがって、同じ自動化に対して複数のバージョンが生成される。これは面倒であり、プロジェクトとライブラリの多様性につながり、さらにバージョン管理、バグ修正、および更新がより困難になる。さらに、現在のRPAアクティビティには、ターゲットプラットフォームを指定する機能がない。したがって、RPAライブラリとプロジェクト、およびRPAアクティビティ自体を管理するための改善されたアプローチが有益であり得る。
本発明の特定の実施形態は、現在のRPA技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、RPAのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティに関係する。
実施形態では、コンピューティングシステムは、マルチターゲットRPAデザイナアプリケーション用のコンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサが、RPAプロジェクトのためのターゲットプラットフォーム構成を受信する、RPAワークフローの1または複数のアクティビティの複数のターゲットプラットフォームバージョンを受信する、またはその両方を行うように構成される。コンピュータプログラム命令はまた、少なくとも1つのプロセッサが、ターゲットプラットフォーム構成に従ってRPAプロジェクトを構成する、それぞれのターゲットプラットフォームのための1または複数のアクティビティの複数のバージョンを構成する、またはその両方を行うように構成される。RPAプロジェクトは、複数のターゲットプラットフォームに対応する。
別の実施形態では、非一時的なコンピュータ読み取り可能な媒体は、マルチターゲットRPAデザイナアプリケーション用のコンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサが、RPAプロジェクトのためのターゲットプラットフォーム構成を受信し、ターゲットプラットフォーム構成に従ってRPAプロジェクトを構成するように構成される。RPAプロジェクトは、複数のターゲットプラットフォームに対応する。
さらに別の実施形態では、コンピュータ実装方法は、コンピューティングシステム上で遂行するマルチターゲットRPAデザイナアプリケーションによって、RPAワークフローの1または複数のアクティビティの複数のターゲットプラットフォームバージョンを受信することを含む。コンピュータ実施される方法はまた、マルチターゲットRPAデザイナアプリケーションによって、それぞれのターゲットプラットフォームのための1または複数のアクティビティの複数のバージョンを構成することを含む。RPAプロジェクトは、複数のターゲットプラットフォームに対応する。
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明の、より特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
(実施形態の詳細な説明)
いくつかの実施形態は、RPAのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティに関係する。従来のRPAでは、ターゲットプラットフォームごとに、独自のアクティビティを持つ複数の異なるライブラリとプロジェクトとが生成される。例えば、レガシーターゲット、.NET Core、クロスプラットフォーム(例えば、Windows(登録商標)とLinux(登録商標)の両方で実行可能)、Apple(登録商標) OS X、ネイティブモバイルなどのために、個別のプロジェクトおよびライブラリが開発され得る。つまり、プラットフォームごとに同じ自動化の複数のバージョンが作製される。これには追加の開発者リソースが必要であり、バージョン管理、メンテナンス、および/または展開の問題につながり得る。
いくつかの実施形態は、RPAのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティに関係する。従来のRPAでは、ターゲットプラットフォームごとに、独自のアクティビティを持つ複数の異なるライブラリとプロジェクトとが生成される。例えば、レガシーターゲット、.NET Core、クロスプラットフォーム(例えば、Windows(登録商標)とLinux(登録商標)の両方で実行可能)、Apple(登録商標) OS X、ネイティブモバイルなどのために、個別のプロジェクトおよびライブラリが開発され得る。つまり、プラットフォームごとに同じ自動化の複数のバージョンが作製される。これには追加の開発者リソースが必要であり、バージョン管理、メンテナンス、および/または展開の問題につながり得る。
いくつかの実施形態は、複数のターゲットプラットフォームが同じプロジェクトで処理されることを可能にする。ターゲットプラットフォーム(複数可)は、それぞれにサポートされている機能を提供するために、自動化および/またはアクティビティレベルで指定され得る。これにより、ゼロから始めることなく、以前に構築された自動化を新しいターゲットフレームワークに適用することもできる。
いくつかの実施形態では、各アクティビティは、タグ、変数、配列、または所与のアクティビティのターゲットプラットフォーム(複数可)を指定する他の記述子またはデータ構造を有し得る。これにより、RPAロボットが実行時に現在のターゲットプラットフォーム用にタグ付けされたアクティビティのみを遂行する、同じワークフロー内のすべての意図されたターゲットプラットフォームのすべてのアクティビティの開発が可能になる。例えば、Linux(登録商標)、OS X、Windows(登録商標)、ネイティブモバイル、および4つすべてのアクティビティを含む単一プロジェクトが公開されても、Windowsで自動化を遂行すると、「Windows」または「すべて」をターゲットとしたアクティビティのみが遂行される。
いくつかの実施形態では、長時間実行ワークフローに関与する異なるコンピューティングシステムが異なるターゲットプラットフォームを有する場合、長時間実行ワークフローが使用され得る。いくつかの実施形態におけるRPAのための長時間実行ワークフローは、サービスオーケストレーション、人間の介入、およびアテンディッドまたはアンアテンディッド環境における長時間実行トランザクションをサポートするマスタープロジェクトである。人間の介入は、特定のプロセスが、アクティビティの次のステップに進む前に、例外処理、承認、または検証のために人間の入力を必要とする場合に登場する。この場合、プロセスの遂行は一時停止され、人間のタスクが完了するまでRPAロボット(複数可)を開放する。
長時間実行ワークフローは、永続化アクティビティを介してワークフローの断片化をサポートしてもよく、プロセスおよび非ユーザーインタラクションアクティビティを呼び出し、人間のタスクをRPAロボットタスクでオーケストレーションすることと組み合わされ得る。長時間実行ワークフローは、迅速な遂行を促進するためにセッションで実行し得る。いくつかの実施形態では、長時間実行ワークフローは、アプリケーションプログラミングインターフェース(API)呼び出しを実行し、かつ長時間実行ワークフローセッションで実行するアクティビティを含み得るバックグラウンドプロセスをオーケストレーションしてもよい。これらのアクティビティは、いくつかの実施形態では、呼び出しプロセスアクティビティによって呼び出され得る。ユーザーセッションで実行するユーザーインタラクションアクティビティを有するプロセスは、コンダクタアクティビティからジョブを開始することによって呼び出され得る(コンダクタは、本明細書で後により詳細に説明する)。ユーザーは、いくつかの実施形態では、コンダクタでフォームを完成させる必要があるタスクを通じてインタラクションし得る。RPAロボットにフォームタスクが完了するのを待たせ、その後、長時間実行ワークフローを再開させるアクティビティが含まれ得る。
いくつかのマルチターゲット実施形態では、プラットフォーム/デバイスの組み合わせによって集合的に実行される全体的な(マスター)プロセスの部分が、ネイティブモバイル、Mac(登録商標) OS X、Windows(登録商標)などで遂行されるように、長時間実行ワークフローが設計され得る。さらに、いくつかの実施形態では、全体的なプロセスのユーザーの部分は、ユーザーがログインしているサポートされたデバイスおよびプラットフォームのいずれでも遂行され得る。例えば、長時間実行ワークフローの一部は、マルチターゲットサポートにより、ユーザーがMac(登録商標) OS または Windows(登録商標)のどちらにログインしているかに関係なく遂行され得るアテンディッド部分であり得る。これは現在、RPAシステムでは不可能である。したがって、ユーザーは、彼または彼女が使用しているサポートされたプラットフォームに関係なく、自動化の彼または彼女の部分を実行できる。
いくつの実施形態におけるアテンディッドオートメーションでは、フォーム、コールアウトなどでユーザーにプロンプトを表示することができる。しかしながら、この機能は通常、オペレーティングシステム(OS)に依存する。このような通知は、より広範なまたは普遍的なソリューションとしてウェブブラウザを介して提供され得るが、これはいくつかの実装では望ましくない場合がある。したがって、いくつかの実施形態では、自動化が一度構築され得、その後、マルチターゲット機能により、そのようなフォームおよびコールアウトがターゲットプラットフォームで提供されることを保証し得る。
特定のターゲットに対してネイティブ機能が使用され得る。このネイティブ機能は、例えば、ユーザーと自動化との間の完全なデスクトップインタラクションを含む、OS依存の機能を提供するために使用され得る。自動化の設計とユーザーの期待を満たすために、OSに呼び出す本格的なネイティブアプリケーションが提供され得る。したがって、自動化はユーザーのアクションを監視し、ユーザーの現在のコンテキストに基づいて遂行を継続し得る。コンテキストは、限定されないが、デスクトップリソース、場所、アプリケーションの可用性、ユーザーのOS固有のアクションなどを含む。
図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発および展開を容易にする。
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
ワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの遂行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを遂行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。
コンダクタ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(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
いくつかの実施形態では、ロボット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のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、それは、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ230のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方により消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットにより記録されたメッセージを(インデクササーバー250に加えて、またはそれに代えて)格納してもよい。
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、ドライバ340、およびAI/MLモデル350の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびユーザーインターフェース(UI)オートメーションアクティビティ330を含んでもよい。ユーザー定義アクティビティ320および/またはUIオートメーションアクティビティ330は、いくつかの実施形態では、ロボットが動作しているコンピューティングシステムに対してローカルに、および/またはそれに対してリモートに位置され得る、1または複数のAI/MLモデル350を呼び出し得る。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を特定し、その上にホバーし得る。要素の有無の検出は、上述した技法を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千ものアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
UIオートメーションアクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ330は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ340および/またはAI/MLモデル350を介して、これらのインタラクションを促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含み得る。コンピューティングシステムとのインタラクションの実行を決定するために、1または複数のAI/MLモデル350はUIオートメーションアクティビティ330によって使用され得る。いくつかの実施形態では、AI/MLモデル350は、ドライバ340を増強するか、またはそれらを完全に置き換え得る。実際、特定の実施形態では、ドライバ340は含まれない。
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSとインタラクションしてもよい。それらは、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は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム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: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)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oを使用することができる。
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションすることができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでそれとインタラクションしてもよいし、コンピューティングシステム500は自律的に動作してもよい。
メモリ515は、プロセッサ(複数可)510により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたマルチターゲットRPAモジュール545を含む。例えば、マルチターゲットRPAモジュール545は、設計時にマルチターゲットワークフローおよび自動化の開発を促進し得る、または実行時にマルチターゲットRPAオートメーションを実装し得る。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技法と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部またはその他の方法でアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所または分散アーキテクチャが使用され得る。
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
図6は、本発明の実施形態による、マルチターゲットRPA機能を提供するように構成されたシステム600を示すアーキテクチャ図である。システム600は、デスクトップコンピュータ602、タブレット604、スマートフォン606などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータ、モノのインターネット(IoT)デバイス、車両コンピューティングシステムなどを含むがこれらに限定されない、本発明の範囲から逸脱することなく、任意の所望のコンピューティングシステムが使用され得る。
各コンピューティングシステム602、604、606には、RPAロボット610がそこにインストールされている。RPAロボット610は、マウスクリックの実行、テキストフィールドへのテキストの入力、スクリーンショットの提供、テキストフィールドまたはウェブページの他のコンポーネントに現れる情報の提供、オペレーティングシステムを介して実行するアプリケーションおよび他のプロセスとのインタラクションなどのように、(例えば、XAMLスクリプトを介して)ローカルに自動化を実行し得る。これらの自動化は、マルチターゲットオートメーションであってもよく、RPAロボット610は、コンピューティングシステムのターゲットプラットフォームに関連する自動化の部分を遂行し得る。
RPAロボット610およびコンピューティングシステム602、604、606は、ネットワーク620(例えば、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、それらの任意の組み合わせなど)を介して、サーバー630と通信する。サーバー630は、いくつかの実施形態では、クラウドアーキテクチャに常駐し得る。サーバー630は、RPAロボット610がアクセスし遂行し得る自動化632を提供する。サーバー630は、いくつかの実施形態では、データベース640に自動化632のデータを格納する。
自動化632は、コンピューティングシステム650上で動作するマルチプラットフォームRPAデザイナアプリケーション652を使用して、RPA開発者によって設計され得る。RPA開発者は、プロジェクトの作製または選択、RPAワークフローの作製または修正、RPAワークフローアクティビティの追加/修正/削除などを行うことができる。また、RPA開発者は、自動化および/またはアクティビティレベルでターゲットプラットフォームを指定することができる。例えば、ユーザーのOutlookメールにアクセスし、過去1週間以内に受信した、件名、本文、添付ファイル名に「請求書」というテキストを含むすべてのメールを検索する自動化を開発したい場合を考えてみる。ワークフローは、ユーザー名およびパスワードの取得など、各プラットフォームにいくつかの共通する要素を持ち得る。しかし、資格情報は同じでも、ログインのメカニズムはデスクトップ版のOutlookとウェブ版で異なる。デスクトップ版の場合、アクティビティロジックはOutlook APIを介してログインし得る。しかし、ウェブ版では、アクティビティはリモートで通信し、HTTP経由で資格情報を送信する。また、検索クエリは異なるが、その検索クエリが送信される場所も異なる。結果が受信されたら、同じアクティビティロジックでそれらが処理され得る。
図7Aは、本発明の実施形態によるマルチターゲットRPAデザイナアプリケーション700を示すスクリーンショットである。しかしながら、ウェブRPAデザイナアプリケーションが示されているが、本発明の範囲から逸脱することなく、同様の機能を有するデスクトップ版も使用され得ることにも留意されたい。マルチターゲットRPAデザイナアプリケーション700は、自動化が設計され得るキャンバス710を含む。プロジェクトターゲットプラットフォーム指定オプション712により、RPAデザイナは、自動化が適用されるであろうターゲットプラットフォーム(複数可)を指定することができる。この例では、ユーザーは「グローバル(Globally)」を選択しており、自動化がサポートされるすべてのターゲットプラットフォームに適用されることを示している。しかし、RPA開発者は、所望のプラットフォームを選択することによって、自動化を単一のターゲットまたは複数のターゲットに適用させることを選択することもできる。図7Bを参照。
グローバルアクティビティは、開発者がアプリケーションにとらわれないおよび/またはプラットフォームにとらわれない自動化を可能にし得る。例えば、電子メール送信アクティビティでは、開発者は、異なるアプリケーションのためにアクティビティの複数のバージョンを作製する必要がないことを望み得る。接続情報、オペレーティングシステムにおける実行中のプロセスのリスト、アプリケーションのユーザーログイン資格情報(例えば、図8のステップ810で行われるように)、または他の任意の適切なソースは、本発明の範囲から逸脱することなく、正しいプラットフォームおよびアプリケーションを決定するために使用され得る。
アクティビティは、ユーザーが空のアクティビティ714をクリックすることによって追加され得る。ユーザーが空のアクティビティ714をクリックすると、アクティビティカテゴリおよびクイックアクションウィンドウ720が表示される。図7Cを参照。ユーザーは、リストされたカテゴリを検索し、またはそこから選択し得る。例えば、ユーザーがExcel(登録商標)をクリックすると、Excel(登録商標)アクティビティのオプションを含むExcel(登録商標)アクティビティウィンドウ730が表示される。図7Dを参照。
ユーザーがExcel(登録商標)ファイルの使用を選択した場合、RPA開発者によって構成され得るExcel(登録商標)ファイル使用アクティビティ740が作製される。この実施形態では、アクティビティのデフォルトは「グローバル(Global)」の範囲である。しかしながら、RPA開発者は、図7Bに示されるものと同様の選択インターフェースを表示し得るボタン741をクリックすることによって、アクティビティのターゲットプラットフォームを修正し得る。入れ子になった(nested)アクティビティは、適切であれば、オプション742を介してアクティビティ740内に提供され得る。これは、図7Cのウィンドウ720と同じまたは類似のウィンドウを立ち上げ得る。ラベル744は、アクティビティ740の終わりを示す。テスト自動化を実行するためのオプション716とオートミールプロジェクトを共有するためのオプション718も表示される。これにより、ユーザーは、ワークフローが作製されたようにワークフローを検証するだけでなく、それらの作業を他と共有し得る。
RPA開発者がアクティビティを構成すると、アクティビティに固有の様々なオプションが表示される。例えば、ユーザーがアクティビティ740をクリックすると、オプションがオプションペイン750の右側に表示される。図7Fを参照。この場合、ユーザーは、ファイル選択メニュー751からExcel(登録商標)ファイル「Apollo components list.xlsx」を選択する。このファイル名は、ファイル名リスト752に表示される。ユーザーは、テストアクティビティメニュー753を使用してアクティビティの構成をテストすることができ、また、所定のアクティビティに固有のプロパティのグループ化である一般オプション754および基本オプション755を構成し得る。より具体的なオプションも構成され得る。例えば、ユーザーは、各チェックボックス756で反復を選択し得、これにより、ユーザーは、アクティビティが反復するスプレッドシート内の要素を選択し得る。ここでは、ユーザーはオプション757で「行」を選択し、オプション758でスプレッドシートの「シート1」を選択している。いくつかの実施形態では、ボタン741を介することに加えてまたはその代わりに、アクティビティのターゲットプラットフォーム(複数可)がオプションペイン750で指定され得る。
図7A~図7Fは例としてのみ提供されており、本発明の範囲から逸脱することなく、様々な他のアクティビティおよび条件が構成され得ることに留意されたい。例えば、RPA開発者は、異なる条件が存在する場合Excel(登録商標)ファイルに対して異なるアクションを実行することを選択し得る(例えば、コンポーネントの締め切りが過ぎた場合に、コンポーネントの締め切りに関する電子メールを送信する対コンポーネントが期限を過ぎていない場合に、新しい完成したコンポーネントを含む電子メールを送信し、Excel(登録商標)のステータスを更新するセルに書き込む、電子メール以外のアプリケーションで電子メールおよび/またはメッセージを送信するなど)。自動化は、ウェブページとインタラクションし、ウェブページから情報を取得し、そして本発明の範囲から逸脱することなく、ユーザーのウェブページとのインタラクション、サーバー側またはユーザーコンピューティングシステム上のローカルな他のRPAロボットとのインタラクション、データベースからの情報の取得、ローカルアプリケーションもしくは他のプロセスとのインタラクション、または他の任意のRPAプロセス(複数可)を含み得るサーバー側で所望のRPAロボットのアクションを実行することができるいくつかの実施形態のRPAデザイナアプリケーション700を使用して設計され得る。
図8は、本発明の実施形態による、マルチターゲットRPAワークフロー800を示す。この実施形態では、RPAワークフロー800のいくつかのアクティビティは、ウェブとWindows両方に対してグローバルであり、他のRPAアクティビティはプラットフォーム特有である。先ほどの一般的な電子メールの例を用いると、自動化を遂行するとき、RPAロボットは、グローバルアクティビティ810を介してデータベースからユーザーの電子メールログイン資格情報を取得する。しかし、電子メールにログインして検索するメカニズムは、ウェブとWindowsとで異なる。RPAロボットは、ウェブアクティビティ820Aを経由してHTTPを使用してユーザーの電子メールにログインし、Windowsアクティビティ820Bを使用してAPIを経由してユーザーの電子メールにログインする。RPAロボットは、RPAロボットが動作しているプラットフォームに関するアクティビティのみを遂行する。例えば、過去1週間に受信された「請求書」という用語を含む電子メールを検索するために、RPAロボットは、ウェブアクティビティ830Aに対してHTTP ゲット/レスポンス(get/response)を使用し、Windowsアクティビティ830Bに対して別のAPI(または潜在的に複数のAPI)を使用する。そして、検索の結果は、グローバルアクティビティ840を介してデータベースに格納される。ウェブとWindowsでは表示メカニズムも異なるため、RPAロボットは、ウェブアクティビティ850Aを介してウェブページに、Windowsアクティビティ850Bを介してウィンドウに結果を表示する。
図9は、本発明の実施形態による、設計時にマルチターゲットRPA開発を実行するためのプロセス900を示すフローチャートである。プロセスは、910でマルチターゲットRPAデザイナアプリケーションを起動することから始まる。開発者が既存の非マルチプラットフォームRPAプロジェクトをロードする場合、マルチターゲットRPA開発者アプリケーションは、920において、非マルチプラットフォームRPAプロジェクトをマルチターゲットRPAプロジェクトに変換する。これは、RPA開発者の指示で行われてもよいし、自動的に行われてもよい。変換は、例えば、各ターゲットプラットフォームに対するグローバルアクティビティおよび/または対応するアクティビティを追加することを含み得る。RPAデザイナアプリケーションは、オペレーティングシステム(複数可)、UIオブジェクトリポジトリに格納されたバージョンなどに基づいて、この情報を見つけることができ得る。
次に、開発者が非マルチターゲットRPAプロジェクトをマルチターゲットRPAプロジェクトに変換するだけでなければ、930においてプロジェクトおよび/または個々のアクティビティのためのRPAワークフロー構成が受信される。これらの構成は、いくつかの実施形態では、ターゲットプラットフォームの選択および/または個々のアクティビティターゲットプラットフォームのバージョンの構成を含み得る。特定の実施形態では、複数またはすべてのターゲットプラットフォーム用のRPAワークフローのバージョンが、開発者がこのオプションを手動で選択する必要なく、自動的に作製され得る。マウスクリックアクティビティ、セレクタおよび/または他のUI記述子などが所定のターゲットプラットフォームに対して既に存在する場合、これらは、RPAワークフローの対応するアクティビティのために特定および使用され得る。例えば、あるアクティビティがアプリケーションの画面上の特定のボタンをクリックすることに関係する場合、システムは、アプリケーションが実行するサポートされたターゲットプラットフォームごとに対応するUI記述子を検索し得る。これは、「自動的なグローバル(automatic global)」構成と考えられ得る。言い換えれば、自動化自体が、それが実行中のターゲットプラットフォームを決定し、次いでそのターゲットプラットフォーム用の適切なUI記述子を使用し得る。
いくつかの実施形態では、ターゲットプラットフォームの指定を受けなかったアクティビティは、1または複数のプラットフォーム、グローバルスコープなどにデフォルトで移行し得る。各アクティビティは、所与のアクティビティのターゲットプラットフォーム(複数可)を指定するタグ、変数、配列、または他のいくつかの記述子もしくはデータ構造を有し得る。これにより、RPAプロジェクトから生成された自動化を遂行するRPAロボットが、遂行すべき適切なステップ(複数可)を決定し得る。
RPAワークフローが作製されると、マルチターゲットRPAデザイナアプリケーションは、940において、ターゲットプラットフォーム(複数可)上でワークフローを実装する自動化を生成する。次に、RPAデザイナアプリケーションは、950において、RPAロボット(複数可)を介してターゲットプラットフォーム(複数可)上でRPAオートメーションを遂行し、検証する。これは、各ターゲットプラットフォーム上でRPAロボットを介して自動化を実行し、自動化が各プラットフォーム上で意図されたように機能することを検証することを含み得る。検証が960で成功した場合、RPAワークフローは、970で本番環境(すなわち、実行時使用)用に公開され得る。これは、マルチターゲットRPAワークフローおよびそのそれぞれのアクティビティ、ならびに自動化を、UIオブジェクトリポジトリのライブラリに公開することを含み得る。例えば、米国非仮出版特許出願第16/922,289号を参照。成功しない場合、プロセスはステップ930に戻り、RPA開発者は、エラーを改善する試みでワークフローを修正してもよい。
UIオブジェクトリポジトリ(例えば、UiPath Object Repository(商標))は、UIオブジェクトライブラリの収集であり、これは、それ自体(例えば、アプリケーションの特定のバージョンおよびその1または複数の画面用)UI記述子の収集である。UIオブジェクトライブラリは、いくつかの実施形態では、UIオブジェクトリポジトリに格納されてもよい。いくつかの実施形態では、UIオブジェクトリポジトリは、NuGet(商標)フィード、ウェブサービスなどであってもよい。画面上のUI要素(例えば、テキストフィールド、ボタン、ラベル、メニュー、チェックボックスなど)は、アプリケーション、アプリケーションバージョン、アプリケーション画面、およびUI要素のコレクションによってグループ化され得、各画面は複数のUI要素を有する。本明細書で使用されるように、「画面」とは、ある時点でのアプリケーションUIまたはアプリケーションUIの一部の画像である。「アプリケーション」または所定のアプリケーションのバージョンは、このコンテキストでは画面の組合わせであってもよい。各UI要素は、いくつかの実施形態では、1または複数のUI記述子によって記述され得る。UI要素、UI記述子、アプリケーション、およびアプリケーション画面は、UIオブジェクトである。いくつかの実施形態では、UI要素および画面は、特定のタイプのUI要素(例えば、ボタン、チェックボックス、テキストフィールドなど)および画面(例えば、トップウィンドウ、モーダルウィンドウ、ポップアップウィンドウなど)にさらに区別されてもよい。
オブジェクトライブラリの構造例を以下に示す。
・SAP
・バージョン1
・画面1
・オブジェクト1
・オブジェクト2
・…
・画面2…
・…
・バージョン2…
・…
・セールスフォース…
・…
・SAP
・バージョン1
・画面1
・オブジェクト1
・オブジェクト2
・…
・画面2…
・…
・バージョン2…
・…
・セールスフォース…
・…
上記の階層は、例としてのみ提供されていることに留意されたい。本発明の範囲から逸脱することなく、階層内の任意の所望の数のレベルおよび各レベルに関連する要素が使用され得る。特定の実施形態では、開発者は、アプリケーションマップを彼または彼女が所望するように定義し得る。さらに、ツリー内のいくつかのノードは、いくつかの実施形態では、管理的な役割のみを果たし、機能的な役割は果たさないかもしれない。例えば、UI要素は、UI記述子を持たないコンテナに一緒にグループ化され得る。コンテナは、いくつかの実施形態では、グループ化の目的だけのために存在し得る。
UIオブジェクトを再利用可能にするために、RPA処理で参照可能なUIオブジェクトライブラリに抽出され得る。例えば、アプリケーションの新しいバージョンが原因でセレクタまたは他のUI記述子が変更された場合、ライブラリは、変更されたUI記述子を含めるために再作製(または再公開)され得る。次いで、UIオブジェクトライブラリを使用するRPAプロセスは、変更されたUI記述子のバージョンを呼び出し得る。新しいライブラリに関連する新しいアプリケーションプログラミングインターフェース(API)への参照は、開発者がRPAプロセスのために手動で変更することも、ソフトウェアツール(例えば、RPAプロセスを経て、セレクタまたはその他のコンポーネントが変更されたときにUI記述子参照を更新するツール)を介して変更することも、またはいくつかの実施形態では自動的に変更することもできる。
いくつかの実施形態では、UIオブジェクトのパッケージが依存関係として添付され得る(例えば、NuGet(商標)パッケージ)。しかしながら、特定の実施形態では、UIオブジェクトは、ウェブサービスへの1または複数のAPI呼び出しを介して取得され得る。これにより、UIオブジェクトをリモートで格納し、自動化の間に取得して使用し得る。
セレクタは、いくつかの実施形態においてUI要素を検出するために使用され得るUI記述子に対するタイプである。セレクタは、いくつかの実施形態では、以下の構造を有する。
<node_1/><node_2/>...<node_N/>
<node_1/><node_2/>...<node_N/>
最後のノードは対象のGUI要素を表し、それ以前の全てのノードはその要素の親を表す。<node_1>は通常ルートノードと呼ばれ、アプリケーションのトップウィンドウを表す。
各ノードは、選択されたアプリケーションの特定のレベルの正しい特定を支援する1または複数の属性を有してもよい。各ノードは、いくつかの実施形態では、以下の形式を有する。
<ui_system attr_name_1=’attr_value_1’...attr_name_N=’attr_value_N’/>
<ui_system attr_name_1=’attr_value_1’...attr_name_N=’attr_value_N’/>
全ての属性は、割り当てられた値を有し得、一定の値を有する属性が選択され得る。これは、アプリケーションが起動するたびに属性の値を変更すると、セレクタが関連する要素を正しく特定できなくなる可能性があるからである。
UIオブジェクトライブラリ記述子は、RPAワークフローアクティビティに直接追加され得、さもなくばアクティビティ用のカスタムセレクタを作製するために必要とされ得る開発者の時間を節約する。オブジェクトライブラリは、アプリケーションの特定のバージョンから1または複数の画面に対応するUI記述子の収集として本明細書で定義される。UI記述子とは、UI要素を見つけるための命令のセットである。いくつかの実施形態におけるUI記述子は、UI要素セレクタ(複数可)、アンカーセレクタ(複数可)、コンピュータビジョン(CV)記述子(複数可)、統一ターゲット記述子(複数可)、画面イメージキャプチャ(コンテキスト)、要素イメージキャプチャ、他のメタデータ(例えば、アプリケーションおよびアプリケーションバージョン)、それらの組み合わせなどを含むカプセル化されたデータ/構造フォーマットである。カプセル化されたデータ/構造フォーマットは、プラットフォームへの将来のアップデートによって拡張可能であってもよく、上記の定義に限定されるものではない。画面上のUI要素を特定するためのUI記述子としては、本発明の範囲を逸脱することなく、任意の好適なものを使用することができる。統一されたターゲット記述子は、複数のタイプのUI記述子を連結する。統一されてターゲット記述子は、有限状態機械(FSM)のように機能し得、第1のコンテキストでは、第1のUI記述子メカニズムが適用され、第2のコンテキストでは、第2のUI記述子が適用される、などである。
RPAワークフロー内のアクティビティからUI記述子が抽出され、UIアプリケーション、画面、およびUI要素ごとにUI記述子をグループ化する構造化スキーマに追加され得る。UI記述子は、いくつかの実施形態では、広く再利用するための1つのプロジェクトの一部、テスト目的のためのグローバルリポジトリの一部、またはグローバルなプロジェクト間共有のためのUIオブジェクトライブラリの一部とし得る。UI記述子が定義され、オブジェクトライブラリに追加され得、これは、いくつかの実施形態では、公開後に依存物として他のプロジェクトにインストールされ得る。これにより、UI記述子のオブジェクトライブラリは、再利用が可能になる。いくつかの実施形態におけるUIアプリケーションは、各バージョンが複数の画面を有する複数のバージョンを有するターゲットアプリケーションである。
UIオブジェクトリポジトリとUI記述子の再利用は、さまざまな理由で有益であり得る。例えば、アプリケーション内のUI要素の位置、外観、および/または機能が変更された場合、UI記述子が変更され得、その変更は、次いでUI記述子を使用するアクティビティに伝搬され得る。このように、再利用性は、UIにおけるグラフィカル要素の特定のレベルで提供され得る。
これは、アプリケーションの新しいバージョンに対応するために、特に有益であり得る。新バージョンの場合、ソフトウェア開発者は、UI記述子を更新し、および/または少数の新しいセレクタを一から開発する必要があるだけでよく、開発時間を大幅に短縮することができる。例えば、ウェブページの場合、ハイパーテキストマークアップ言語(HTML)が検査されて、対応するセレクタのためのUI要素へのパスを取得し得る。対応するUI要素のセレクタは、異なるウェブブラウザおよび/または同じウェブブラウザの異なるバージョンで異なる場合がある。この概念はまた、ビジュアルデスクトップ、サーバー、スマートフォン、およびタブレットのアプリケーションに適用されてもよい。UIオブジェクトライブラリは、アプリケーションのための実際のセレクタを含むことができ、これは、上記のとおり、UI記述子の1つのタイプに過ぎない。UIオブジェクトライブラリは、1または複数のアプリケーションのために、異なるタイプの複数のUI記述子を持ち得る。UI記述子は、アプリケーションが構築された異なる技術を参照し得る。例えば、スタンドアロンのデスクトップ、ウェブ、およびモバイルアプリケーションのために、異なるUI記述子が作製され、使用され得る。ある技術では、あなたはセレクタを使用したい場合があり、別ではあなたはCV記述子を使用したい場合などがある。
範囲は、いくつかの実施形態では、オブジェクトライブラリで利用可能な画面のセットからの選択を通じて、ユーザーによってデザイナアプリケーションで定義され得る。範囲が特定の画面に1対1で結びつけられるとき、ユーザーは、UIアクション(例えば、クリック、テキスト取得など)を追加し、次に、潜在的候補オプションのインテリジェントセンシングを使用して、それらのアクションをUIオブジェクトにマッピングし得る。オブジェクトのセットは、いくつかの実施形態では、UIオブジェクトリポジトリ(例えば、UIオブジェクトライブラリのデータベース)内部の画面に対して定義されるリストに限定され得る。
図10は、本発明の実施形態による、アクティビティレベル範囲決定を用いて実行時にマルチターゲットRPAオートメーションを遂行するためのプロセス1000を示すフローチャートである。プロセスは、1010でRPAロボットを介して自動化を遂行することから始まる。RPAロボットは、1020において、第1のアクティビティの範囲をチェックする。範囲が1030で現在のプラットフォームに適用される場合、RPAロボットは、1040でそのプラットフォームのためのアクティビティロジックを遂行する。そうでない場合、RPAロボットは、1050でアクティビティをスキップする。1060でより多くのアクティビティがある場合、RPAロボットは1070で次のアクティビティの範囲をチェックする。1080で範囲が適用される場合、RPAロボットは1040でそのプラットフォームのためのアクティビティロジックを遂行し、そうでない場合、RPAロボットは1050でアクティビティをスキップする。これをワークフローの終端に達するまで、各アクティビティについて繰り返す。
いくつかの実施形態は、自動化が1つのプラットフォーム上で開始し、その後、少なくとも1つの他のプラットフォーム上で実行し続ける、長時間実行ワークフローに関連するものである。例えば、携帯電話上で実行するRPAロボットは、直接またはコンダクタアプリケーションを介して、サーバー上で実行する別のRPAロボットと相互作用し、これらのデバイスを含むRPA機能を実装し得る。このような長時間実行ワークフロー1100は、図11に示される。
RPAロボット1は、iOS(登録商標)をターゲットプラットフォームとするセッションAで、顧客の携帯電話上で実行する。サーバー上のセッションBで実行するコンダクタは、異なるコンピューティングシステム上のRPAロボット間の通信を容易にする。RPAロボット2は、Windows(登録商標)10を実行するカスタマーサービスエージェントのコンピューティングシステム上で実行するアテンディッドカスタマーサービスロボット、または潜在的に、Linux(登録商標)を実行するサーバー上で、自動的に顧客のアシストを試みるアンアテンディッドロボットであり得る。RPAロボット2はセッションCで実行する。
この長時間実行ワークフローの例では、RPAロボット1が請求書を取得しようとする。RPAロボット1は要求をコンダクタに送信し、コンダクタは要求をRPAロボット2が受信および解釈できる形式に変換し、要求をそこに送信する。要求を送信後、RPAロボット1は請求書を待つ。
RPAロボット2は、データベースから請求書情報を取得し、その情報をPDF形式に変換する。次に、RPAロボット2がPDFをコンダクタに送信する。コンダクタは、PDFをRPAロボット1が受信および解釈できる形式に変換してそこにPDFを送信する。その後、RPAロボット1は、長時間実行ワークフローのその一部に従って動作を継続する(例えば、モバイルデバイスのユーザーにPDFを表示する)。
図12は、本発明の実施形態による、異なるコンピューティングシステム上のマルチターゲットプラットフォーム上で遂行する長時間実行ワークフローを作製するためのプロセス1200を示すフローチャートである。プロセスは、1210でマルチターゲットRPAデザイナアプリケーションを起動することから始まる。開発者が既存の非マルチプラットフォーム長時間実行ワークフロー(LRWF)RPAプロジェクトをロードする場合、マルチターゲットRPA開発者アプリケーションは、1220において、非マルチプラットフォームLRWFRPAプロジェクトをマルチターゲットLRWFRPAプロジェクトに変換する。これは、RPA開発者の指示で行われてもよいし、自動的に行われてもよい。変換は、LRWFアクティビティにターゲットプラットフォームを割り当てること、またはLRWFを、LRWF全体の「サブプロセス」として各ターゲットプラットフォーム用の個別のRPAワークフローに分割することを含み得る。RPAデザイナアプリケーションは、オペレーティングシステム(複数可)、UIオブジェクトリポジトリに格納されるバージョンなどに基づいて、この情報を見つけることができ得る。ターゲットプラットフォームの指定を伴うLRWF RPAワークフロー構成は、開発者が非マルチターゲットLRWF RPAプロジェクトをマルチターゲットLRWF RPAプロジェクトに変換するだけでなければ、次に1230でプロジェクトおよび/または個々のアクティビティについて受信される。これらの構成は、いくつかの実施形態では、ターゲットプラットフォームの選択および/または個々のアクティビティターゲットプラットフォームのバージョンの構成を含み得る。
マルチプラットフォームLRWFを作製するために、開発者は、各ターゲットプラットフォーム用のワークフローを個別に作製してもよいし、単一のRPAワークフローにおいて、ターゲットプラットフォームをアクティビティレベルで指定することによって作製してもよい。後者の場合、LRWFに基づいて自動化が生成される際に、マルチターゲットRPAデザイナアプリケーションは、ターゲットプラットフォームごとに、そのプラットフォームに割り当てられたアクティビティを用いて個別に自動化を生成し得る。これにより、RPA開発者は、すべてのLRWFロジックを同じまとまったワークフローで開発でき、同じLRWFオートメーションを実現するためにワークフローの間を切り替える必要がない。
RPAワークフローが作製されると、マルチターゲットRPAデザイナアプリケーションは、1240において、ターゲットプラットフォーム上でLRWFを実装する自動化を生成する。図11の例について、これは、モバイルデバイスおよびサーバーの両方に対して自動化を生成することを含み得る。次に、RPAデザイナアプリケーションは、1250でRPAロボットを介してターゲットプラットフォーム上でRPAオートメーションを実行し、検証する。これは、各ターゲットプラットフォーム上でRPAロボットを介して自動化を実行し、自動化が各プラットフォーム上および集合的に意図されたように機能することを検証することを含み得る。検証が1260で成功した場合、LRWFオートメーションは、1270で本番環境(すなわち、実行時使用)用に公開され得る。これは、LRWFおよびそのそれぞれのアクティビティ、ならびに自動化を、UIオブジェクトリポジトリのライブラリに公開することを含み得る。成功しない場合、プロセスはステップ1230に戻り、RPA開発者は、エラーを改善する試みでLRWFを修正してもよい。
図9~図12で実行されるプロセスステップは、本発明の実施形態に従って、図9~図12で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラム(複数可)によって実行されてもよい。コンピュータプログラム(複数可)は、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体/媒体(medium/media)は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラム(複数可)は、図9~図12に記載されたプロセスステップの全部または一部を実装するために、1または複数のコンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体/媒体に格納されてもよい。
コンピュータプログラム(複数可)は、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラム(複数可)は、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラム(複数可)は、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態にあることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
Claims (26)
- マルチターゲットロボティックプロセスオートメーション(RPA)デザイナアプリケーションのためのコンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含み、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
複数のターゲットプラットフォームを含むターゲットプラットフォーム構成に従ってRPAプロジェクトを構成する、それぞれのバージョンのそれぞれのターゲットプラットフォームのための1または複数のアクティビティの複数のバージョンを構成する、またはその両方を行うように構成される、コンピューティングシステム。 - 前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
RPA開発者による作製後に、前記RPAプロジェクトのための前記ターゲットプラットフォーム構成を受信する、RPAワークフローの1もしくは複数のアクティビティの複数のターゲットプラットフォームバージョンを受信する、またはその両方を行うように構成される、請求項1に記載のコンピューティングシステム。 - 前記ターゲットプラットフォーム構成は、RPAワークフローの範囲内で複数の異なるターゲットプラットフォームのアクティビティを自動的に生成する前記RPAプロジェクトのグローバルスコープであるかまたはそれを含む、請求項1に記載のコンピューティングシステム。
- ターゲットプラットフォームが指定されていない場合、前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記複数のターゲットプラットフォームを手動で選択することなく、RPAワークフローの範囲内で複数の異なるターゲットプラットフォームのアクティビティを自動的に生成する前記RPAプロジェクトのグローバルスコープを自動的に指定するように構成される、請求項1に記載のコンピューティングシステム。 - 前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記複数のターゲットプラットフォームでRPAワークフローを実装するマルチターゲットオートメーションを生成し、
それぞれのRPAロボットを介して、前記複数のターゲットプラットフォーム上で前記マルチターゲットオートメーションを遂行および検証するように構成される、請求項1に記載のコンピューティングシステム。 - 前記マルチターゲットオートメーションの前記検証は、前記複数のターゲットプラットフォームの各ターゲットプラットフォーム上で前記それぞれのRPAロボットによってそれぞれのオートメーションを実行し、前記マルチターゲットオートメーションが前記複数のターゲットプラットフォームの各ターゲットプラットフォーム上で意図したとおりに機能することを検証することを含む、請求項5に記載のコンピューティングシステム。
- 前記マルチターゲットオートメーションの前記検証が成功すると、前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
UIオブジェクトリポジトリのユーザーインターフェース(UI)オブジェクトライブラリでの本番環境使用のための前記複数のターゲットプラットフォーム用のオートメーションを公開するように構成される、請求項5に記載のコンピューティングシステム。 - 前記RPAプロジェクトは以前に作製されたRPAプロジェクトであり、前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記以前に作製されたRPAプロジェクトがマルチターゲットRPAプロジェクトではないことを検出し、
前記以前に作製されたRPAプロジェクトを自動的に変換して、1または複数の追加のターゲットプラットフォーム、前記1または複数のアクティビティの複数のプラットフォーム特有のバージョン、またはその両方に対応するように構成される、請求項1に記載のコンピューティングシステム。 - RPAワークフローは、タグ、変数、配列、または別の記述子、またはそれぞれのアクティビティの1もしくは複数のターゲットプラットフォームを指定するデータ構造を含む複数のアクティビティを含む、請求項1に記載のコンピューティングシステム。
- 前記マルチターゲットRPAデザイナアプリケーションは、ターゲットプラットフォームオプションを提供するプロジェクトターゲットプラットフォーム指定オプションを含む、請求項1に記載のコンピューティングシステム。
- 前記マルチターゲットRPAデザイナアプリケーションは、アクティビティのためのターゲットプラットフォームオプションを提供するアクティビティターゲットプラットフォーム指定オプションを含む、請求項1に記載のコンピューティングシステムアクティビティ。
- マルチターゲットロボティックプロセスオートメーション(RPA)デザイナアプリケーション用のコンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
複数のターゲットプラットフォームを含むターゲットプラットフォーム構成に従って、RPAプロジェクトを構成するように構成される、非一時的なコンピュータ読み取り可能な媒体。 - 前記ターゲットプラットフォーム構成は、RPAワークフローの範囲内で複数の異なるターゲットプラットフォームのアクティビティを自動的に生成する前記RPAプロジェクトのグローバルスコープであるかまたはそれを含む、請求項12に記載の非一時的なコンピュータ読み取り可能な媒体。
- ターゲットプラットフォームが指定されていない場合、前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、RPAワークフローの範囲内で複数の異なるターゲットプラットフォームのアクティビティを自動的に生成する前記RPAプロジェクトのためのグローバルスコープを自動的に指定するように構成される、請求項12に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記複数のターゲットプラットフォームでRPAワークフローを実装するマルチターゲットオートメーションを生成し、
それぞれのRPAロボットを介して、前記複数のターゲットプラットフォーム上で前記マルチターゲットオートメーションを遂行および検証するように構成される、請求項12に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記マルチターゲットオートメーションの前記検証は、前記複数のターゲットプラットフォームの各ターゲットプラットフォーム上で前記それぞれのRPAロボットによって前記オートメーションを実行し、前記オートメーションが前記複数のターゲットプラットフォームの各ターゲットプラットフォーム上で意図したとおりに機能することを検証することを含む、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記マルチターゲットオートメーションの前記検証が成功した場合、前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、UIオブジェクトリポジトリのユーザーインターフェース(UI)オブジェクトライブラリにおける本番環境使用のための前記マルチターゲットオートメーションを公開するように構成される、請求項15に記載の非一時的なコンピュータ読み取り可能な媒体。
- 前記RPAプロジェクトは以前に作製されたRPAプロジェクトであり、前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記以前に作製されたRPAプロジェクトがマルチターゲットRPAプロジェクトではないことを検出し、
前記以前に作製されたRPAプロジェクトを自動的に変換して、1または複数の追加のターゲットプラットフォームに対応するように構成される、請求項12に記載の非一時的なコンピュータ読み取り可能な媒体。 - 前記マルチターゲットRPAデザイナアプリケーションは、ターゲットプラットフォームオプションを提供するプロジェクトターゲットプラットフォーム指定オプションを含む、請求項12に記載の非一時的なコンピュータ読み取り可能な媒体。
- マルチターゲットロボティックプロセスオートメーション(RPA)デザイナアプリケーションによって、複数のターゲットプラットフォームのそれぞれのターゲットプラットフォームのための1または複数のアクティビティのうちの複数のバージョンを構成することを含む、コンピュータ実装方法。
- 前記マルチターゲットRPAデザイナアプリケーションによって、前記複数のターゲットプラットフォーム上でRPAプロジェクトのRPAワークフローを実装するマルチターゲットオートメーションを生成することと、
前記マルチターゲットRPAデザイナアプリケーションによって、それぞれのRPAロボットを介して前記複数のターゲットプラットフォーム上で前記マルチターゲットオートメーションを遂行および検証することとを、さらに含む、請求項20に記載のコンピュータ実装方法。 - 前記マルチターゲットオートメーションの前記検証は、前記複数のターゲットプラットフォームの各ターゲットプラットフォーム上で前記それぞれのRPAロボットによって前記オートメーションを実行し、前記マルチターゲットオートメーションが前記複数のターゲットプラットフォームの各プラットフォーム上で意図したとおりに機能することを検証することを含む、請求項21に記載のコンピュータ実装方法。
- 前記マルチターゲットオートメーションの検証が成功した場合、前記コンピュータ実装方法はさらに、
前記マルチターゲットRPAデザイナアプリケーションによって、UIオブジェクトリポジトリのユーザーインターフェース(UI)オブジェクトライブラリでの本番環境使用用の前記マルチターゲットオートメーションを公開することを含む、請求項20に記載のコンピュータ実装方法。 - RPAプロジェクトは、以前に作製されたRPAプロジェクトであり、前記コンピュータ実装方法はさらに、
前記マルチターゲットRPAデザイナアプリケーションによって、前記以前に作製されたRPAプロジェクトがマルチターゲットRPAプロジェクトではないことを検出することと、
前記マルチターゲットRPAデザイナアプリケーションによって、前記以前に作製されたRPAプロジェクトを、前記1または複数のアクティビティの複数のプラットフォーム特有のバージョンに対応するように自動的に変換することと、を含む、請求項20に記載のコンピュータ実装方法。 - RPAプロジェクトのRPAワークフローは、タグ、変数、配列、または別の記述子、またはそれぞれのアクティビティの1もしくは複数のターゲットプラットフォームを指定するデータ構造を含む複数のアクティビティを含む、請求項20に記載のコンピュータ実装方法。
- 前記マルチターゲットRPAデザイナアプリケーションは、アクティビティのためのターゲットプラットフォームオプションを提供するアクティビティターゲットプラットフォーム指定オプションを含む、請求項20に記載のコンピュータ実装方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/553,192 | 2021-12-15 | ||
US17/553,192 US20230191601A1 (en) | 2021-12-16 | 2021-12-16 | Multi-target libraries, projects, and activities for robotic process automation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023089951A true JP2023089951A (ja) | 2023-06-28 |
Family
ID=86723814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022196081A Pending JP2023089951A (ja) | 2021-12-16 | 2022-12-08 | ロボティックプロセスオートメーションのためのマルチターゲットライブラリ、プロジェクト、およびアクティビティ |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230191601A1 (ja) |
JP (1) | JP2023089951A (ja) |
CN (1) | CN116262350A (ja) |
-
2021
- 2021-12-16 US US17/553,192 patent/US20230191601A1/en active Pending
-
2022
- 2022-12-08 JP JP2022196081A patent/JP2023089951A/ja active Pending
- 2022-12-14 CN CN202211610103.0A patent/CN116262350A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230191601A1 (en) | 2023-06-22 |
CN116262350A (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11818223B2 (en) | Inter-session automation for robotic process automation (RPA) robots | |
US11789853B2 (en) | Test automation for robotic process automation | |
US20220012152A1 (en) | Automation of a process running in a first session via a robotic process automation robot running in a second session | |
JP2023534638A (ja) | ロボティックプロセスオートメーション用のユーザーインターフェース(ui)記述子、uiオブジェクトライブラリ、uiオブジェクトリポジトリ、およびuiオブジェクトブラウザ | |
US11748479B2 (en) | Centralized platform for validation of machine learning models for robotic process automation before deployment | |
JP2023549632A (ja) | 人工知能/機械学習によるロボティックプロセスオートメーションのための異常検出および自己修復 | |
US20220050584A1 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
US11385777B2 (en) | User interface (UI) mapper for robotic process automation | |
JP2023524917A (ja) | ロボティックプロセスオートメーションのためのアプリケーション統合 | |
CN115943367A (zh) | 基于Web的机器人流程自动化设计器***以及用于虚拟机、会话和容器的自动化 | |
JP2022552466A (ja) | ロボティック・プロセス・オートメーション・ワークフローのための再構成可能なワークベンチパイプライン | |
US11544082B2 (en) | Shared variable binding and parallel execution of a process and robot workflow activities for robotic process automation | |
KR20220007496A (ko) | 제1 세션에서 실행되고 있는 프로세스의 제2 세션에서 실행되고 있는 로봇 프로세스 자동화 로봇을 통한 자동화 | |
US11507059B1 (en) | System and computer-implemented method for seamless consumption of automations | |
JP7242981B2 (ja) | 特定用途向けグラフィカル要素検出 | |
EP3901864A1 (en) | Test automation for robotic process automation | |
EP3901865A1 (en) | Test automation for robotic process automation | |
JP2023542559A (ja) | 組み合わせた直列および遅延並列実行統一ターゲット技術、デフォルトのグラフィカル要素検出技術、またはその両方を用いたグラフィカル要素検出 | |
US20230191601A1 (en) | Multi-target libraries, projects, and activities for robotic process automation | |
US11650871B2 (en) | System and computer-implemented method for verification of execution of an activity | |
KR102447072B1 (ko) | 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출 | |
US20220075509A1 (en) | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both |