(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-28
(54)【発明の名称】RPA開発のためのRPAオブジェクトリポジトリに対するインタラクティブなUI要素のマッピング
(51)【国際特許分類】
G06Q 10/00 20230101AFI20241018BHJP
【FI】
G06Q10/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021572637
(86)(22)【出願日】2021-11-03
(85)【翻訳文提出日】2022-02-14
(86)【国際出願番号】 US2021072195
(87)【国際公開番号】W WO2023069125
(87)【国際公開日】2023-04-27
(32)【優先日】2021-10-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】リパ,ボグダン コンスタンチン
(72)【発明者】
【氏名】ヴォイク,コスミン ヴィー.
(72)【発明者】
【氏名】マイロン,アイオン
(72)【発明者】
【氏名】グリゴーレ,ミルシア
【テーマコード(参考)】
5L010
【Fターム(参考)】
5L010AA20
(57)【要約】
インタラクティブなUI(ユーザーインターフェース)要素をRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリにマッピングするためのシステム及び方法が提供される。表示デバイスに表示されるアプリケーションのウィンドウを選択するユーザー入力が受信される。アプリケーションのウィンドウを選択するユーザー入力の受信に応じて、アプリケーションのウィンドウ内のインタラクティブなUI要素が自動的に識別される。アプリケーションのウィンドウ内の識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力が受信される。1つ以上の選択されたインタラクティブなUI要素は、RPAシステムのRPAオブジェクトリポジトリに記憶される。
【特許請求の範囲】
【請求項1】
表示デバイスに表示されるアプリケーションのウィンドウを選択するユーザー入力を受信するステップと、
前記アプリケーションの前記ウィンドウを選択する前記ユーザー入力の受信に応じて、前記アプリケーションの前記ウィンドウ内のインタラクティブなUI(ユーザーインターフェース)要素を自動的に識別するステップと、
前記アプリケーションの前記ウィンドウ内の前記識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力を受信するステップと、
前記1つ以上の選択されたインタラクティブなUI要素をRPAシステムのRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリに記憶するステップと、
を含むコンピュータ実装方法。
【請求項2】
前記識別されたインタラクティブなUI要素を自動的に選択するステップを更に含み、前記アプリケーションの前記ウィンドウ内の前記識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力を受信する前記ステップは、
前記自動的に選択されたインタラクティブなUI要素のうちの1つ以上を選択解除するユーザー入力を受信するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記記憶されたインタラクティブなUI要素のユーザー入力編集プロパティを受信するステップを更に含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記1つ以上の選択されたインタラクティブなUI要素をRPAシステムのRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリに記憶する前記ステップは、
前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較して、前記1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定するステップと、
前記1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を記憶するステップと、
を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較して、前記1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定する前記ステップは、
前記既存のインタラクティブなUI要素と関連付けられる記述子をフィルタリングして一致スコアを生成するステップと、
前記一致スコアのいずれも最大一致スコアではないと決定することに応じて、上位のN個の一致スコアを伴う記述子を識別するステップであって、Nが任意の正の整数である、ステップと、
前記識別された記述子に対して統一ターゲットアルゴリズムを適用して、前記識別された記述子が前記1つ以上の選択されたインタラクティブなUI要素と一致するかどうかを決定するステップと、
を含み、
前記1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を記憶する前記ステップは、
前記識別された記述子が前記1つ以上の選択されたインタラクティブなUI要素と一致しないと前記統一ターゲットアルゴリズムが決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶するステップを含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記インタラクティブなUI要素は、ボタン、チェックボックス、又は、テキストフィールドのうちの1つ以上を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記記憶されたインタラクティブなUI要素のうちの1つ以上に対して実行されるアクションのRPA自動化を記録するステップを更に含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
コンピュータプログラム命令を記憶するメモリと、
前記コンピュータプログラム命令を遂行するように構成される少なくとも1つのプロセッサであって、前記コンピュータプログラム命令が、前記少なくとも1つのプロセッサに、
表示デバイスに表示されるアプリケーションのウィンドウを選択するユーザー入力を受信する操作と、
前記アプリケーションの前記ウィンドウを選択する前記ユーザー入力の受信に応じて、前記アプリケーションの前記ウィンドウ内のインタラクティブなUI(ユーザーインターフェース)要素を自動的に識別する操作と、
前記アプリケーションの前記ウィンドウ内の前記識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力を受信する操作と、
前記1つ以上の選択されたインタラクティブなUI要素をRPAシステムのRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリに記憶する操作と、
を実行させるように構成される、少なくとも1つのプロセッサと、
を備える装置。
【請求項9】
前記操作は、前記識別されたインタラクティブなUI要素を自動的に選択する操作を更に含み、前記アプリケーションの前記ウィンドウ内の前記識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力を受信する前記操作は、
前記自動的に選択されたインタラクティブなUI要素のうちの1つ以上を選択解除するユーザー入力を受信する操作を含む、請求項8に記載の装置。
【請求項10】
前記操作は、
前記記憶されたインタラクティブなUI要素のユーザー入力編集プロパティを受信する操作を更に含む、請求項8に記載の装置。
【請求項11】
前記1つ以上の選択されたインタラクティブなUI要素をRPAシステムのRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリに記憶する前記操作は、
前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較して、前記1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定する操作と、
前記1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を記憶する操作と、
を含む、請求項8に記載の装置。
【請求項12】
前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較して、前記1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定する前記操作は、
前記既存のインタラクティブなUI要素と関連付けられる記述子をフィルタリングして一致スコアを生成する操作と、
前記一致スコアのいずれも最大一致スコアではないと決定することに応じて、上位のN個の一致スコアを伴う記述子を識別する操作であって、Nが任意の正の整数である、操作と、
前記識別された記述子に対して統一ターゲットアルゴリズムを適用して、前記識別された記述子が前記1つ以上の選択されたインタラクティブなUI要素と一致するかどうかを決定する操作と、
を含み、
前記1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を記憶する前記操作は、
前記識別された記述子が前記1つ以上の選択されたインタラクティブなUI要素と一致しないと前記統一ターゲットアルゴリズムが決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶する操作を含む、請求項11に記載の装置。
【請求項13】
前記インタラクティブなUI要素は、ボタン、チェックボックス、又は、テキストフィールドのうちの1つ以上を含む、請求項8に記載の装置。
【請求項14】
前記操作は、
前記記憶されたインタラクティブなUI要素のうちの1つ以上に対して実行されるアクションのRPA自動化を記録する操作を更に含む、請求項8に記載の装置。
【請求項15】
コンピュータプログラム命令を記憶する非一時的コンピュータ可読媒体であって、前記コンピュータプログラム命令は、少なくとも1つのプロセッサ上で実行されると、前記少なくとも1つのプロセッサに、
表示デバイスに表示されるアプリケーションのウィンドウを選択するユーザー入力を受信する操作と、
前記アプリケーションの前記ウィンドウを選択する前記ユーザー入力の受信に応じて、前記アプリケーションの前記ウィンドウ内のインタラクティブなUI(ユーザーインターフェース)要素を自動的に識別する操作と、
前記アプリケーションの前記ウィンドウ内の前記識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力を受信する操作と、
前記1つ以上の選択されたインタラクティブなUI要素をRPAシステムのRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリに記憶する操作と、
を含む操作を実行させる、非一時的コンピュータ可読媒体。
【請求項16】
前記操作は、前記識別されたインタラクティブなUI要素を自動的に選択する操作を更に含み、前記アプリケーションの前記ウィンドウ内の前記識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力を受信する前記操作は、
前記自動的に選択されたインタラクティブなUI要素のうちの1つ以上を選択解除するユーザー入力を受信する操作を含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記操作は、
前記記憶されたインタラクティブなUI要素のユーザー入力編集プロパティを受信する操作を更に含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記1つ以上の選択されたインタラクティブなUI要素をRPAシステムのRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリに記憶する前記操作は、
前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較して、前記1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定する操作と、
前記1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を記憶する操作と、
を含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較して、前記1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定する前記操作は、
前記既存のインタラクティブなUI要素と関連付けられる記述子をフィルタリングして一致スコアを生成する操作と、
前記一致スコアのいずれも最大一致スコアではないと決定することに応じて、上位のN個の一致スコアを伴う記述子を識別する操作であって、Nが任意の正の整数である、操作と、
前記識別された記述子に対して統一ターゲットアルゴリズムを適用して、前記識別された記述子が前記1つ以上の選択されたインタラクティブなUI要素と一致するかどうかを決定する操作と、
を含み、
前記1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を記憶する前記操作は、
前記識別された記述子が前記1つ以上の選択されたインタラクティブなUI要素と一致しないと前記統一ターゲットアルゴリズムが決定することに応じて、前記1つ以上の選択されたインタラクティブなUI要素を前記RPAオブジェクトリポジトリに記憶する操作を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記インタラクティブなUI要素は、ボタン、チェックボックス、又は、テキストフィールドのうちの1つ以上を含む、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項21】
前記操作は、
前記記憶されたインタラクティブなUI要素のうちの1つ以上に対して実行されるアクションのRPA自動化を記録する操作を更に含む、請求項15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、RPA(ロボティックプロセスオートメーション)に関し、より詳細には、RPA開発のためのRPAオブジェクトリポジトリに対するインタラクティブなUI(ユーザーインターフェース)要素のマッピングに関する。
【背景技術】
【0002】
RPA(ロボティックプロセスオートメーション)は、反復的及び/又は労働集約的なタスクを自動化し、それにより、コストを削減して効率を向上させるために実施されるプロセスオートメーションの一形態である。RPAでは、ワークフローを自動化するためにソフトウェアロボットが遂行される。そのようなワークフローは、それぞれが1つ以上のアクションに対応する複数のアクティビティを含む。RPA開発中、ワークフローは、ワークフローの各アクティビティを定義するためにRPAデザイナアプリケーションと対話する開発者によって定義される。ワークフローのアクティビティは、例えばボタン、チェックボックス、テキストフィールドなどのインタラクティブなUI(ユーザーインターフェース)要素との開発者のインタラクションを記録することによって定義される。従来、インタラクションを記録するために、開発者は、インタラクティブなUI要素を選択し、インタラクティブなUI要素をオブジェクトリポジトリに記憶し、その後、その記憶されたインタラクティブなUI要素に対してアクションを実行する。しかしながら、開発者は、アクションを実行する前に個々のインタラクティブなUI要素を選択してインタラクティブなUI要素をオブジェクトリポジトリに記憶する必要があるため、従来のインタラクションの記録は煩雑で時間がかかる。
【発明の概要】
【0003】
1つ以上の実施形態によれば、インタラクティブなUI(ユーザーインターフェース)要素をRPA(ロボティックプロセスオートメーション)オブジェクトリポジトリにマッピングするためのシステム及び方法が提供される。表示デバイスに表示されるアプリケーションのウィンドウを選択するユーザー入力が受信される。アプリケーションのウィンドウを選択するユーザー入力の受信に応じて、アプリケーションのウィンドウ内のインタラクティブなUI要素が自動的に識別される。アプリケーションのウィンドウ内の識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力が受信される。1つ以上の選択されたインタラクティブなUI要素は、RPAシステムのRPAオブジェクトリポジトリに記憶される。
【0004】
一実施形態では、識別されたインタラクティブなUI要素が自動的に選択される。自動的に選択されたインタラクティブなUI要素のうちの1つ以上を選択解除するユーザー入力が受信される。インタラクティブなUI要素は、ボタン、チェックボックス、又は、テキストフィールドのうちの1つ以上を含んでもよい。
【0005】
一実施形態では、記憶されたインタラクティブなUI要素のユーザー入力編集プロパティが受信される。
【0006】
一実施形態では、1つ以上の選択されたインタラクティブなUI要素が複製であるかどうかを決定するために、1つ以上の選択されたインタラクティブなUI要素が、RPAオブジェクトリポジトリに記憶される既存のインタラクティブなUI要素と比較される。1つ以上の選択されたインタラクティブなUI要素が複製でないと決定することに応じて1つ以上の選択されたインタラクティブなUI要素が記憶される。一実施形態において、比較は、一致スコアを生成するために既存のインタラクティブなUI要素と関連付けられる記述子をフィルタリングすることによって実行される。一致スコアのいずれも最大一致スコアではないと決定することに応じて、上位N個の一致スコアを伴う記述子が識別され、Nは任意の正の整数である。識別された記述子が1つ以上の選択されたインタラクティブなUI要素と一致するかどうかを決定するために、統一ターゲットアルゴリズムが識別された記述子に適用される。識別された記述子が1つ以上の選択されたインタラクティブなUI要素と一致しないと統一ターゲットアルゴリズムが決定することに応じて、1つ以上の選択されたインタラクティブなUI要素がRPAオブジェクトリポジトリに記憶される。
【0007】
一実施形態では、記憶されたインタラクティブなUI要素のうちの1つ以上に対して実行されるアクションのRPA自動化が記録される。
【0008】
本発明のこれら及び他の利点は、以下の詳細な説明及び添付の図面を参照することによって当業者には明らかになる。
【図面の簡単な説明】
【0009】
【
図1】本発明の一実施形態に係る、ロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の一実施形態に係る、配備されたRPAシステムの一例を示すアーキテクチャ図である。
【0011】
【
図3】本発明の一実施形態に係る、RPAシステムの簡略化された配備例を示すアーキテクチャ図である。
【0012】
【
図4】本発明の一実施形態に係る、ロボティックプロセスオートメーションロボットのクラウドベースの管理を実施するためのクラウドRPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】1つ以上の実施形態に係る、インタラクティブなUI要素をRPAオブジェクトリポジトリにマッピングするための方法を示す。
【0014】
【
図6】1つ以上の実施形態に係る、RPAデザイナアプリケーションのユーザーインターフェースを示す。
【0015】
【
図7】1つ以上の実施形態に係る、捕捉要素モジュールのユーザーインターフェースを示す。
【0016】
【
図8】1つ以上の実施形態に係る、インタラクティブなUI要素がそこから捕捉されるようになっているアプリケーションのウィンドウを選択するためのユーザーインターフェースを示す。
【0017】
【
図9】1つ以上の実施形態に係る、インタラクティブなUI要素を識別するユーザーインターフェースを示す。
【0018】
【
図10】1つ以上の実施形態に係る、インタラクティブなUI要素を選択するためのユーザーインターフェースを示す。
【0019】
【
図11】1つ以上の実施形態に係る、RPAオブジェクトリポジトリに記憶されるインタラクティブなUI要素を示すユーザーインターフェースを示す。
【0020】
【
図12】1つ以上の実施形態に係る、捕捉要素モジュールを示すユーザーインターフェースを示す。
【0021】
【
図13】本発明の実施形態を実施するために使用されてもよいコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0022】
本明細書中に記載される実施形態は図面に関連して説明され、図面において、同様の参照番号は、同じ又は同様の要素を表わす。RPA(ロボティックプロセスオートメーション)では、ワークフローを自動的に実行するためにロボットが利用される。RPAは、
図1~
図4に示されるようなRPAシステムによって実装されてもよい。
【0023】
図1は、1つ以上の実施形態に係る、RPAシステム100のアーキテクチャ図である。
図1に示されるように、RPAシステム100は、開発者が自動化プロセスを設計できるようにするためのデザイナ102を含む。より具体的には、デザイナ102は、プロセスにおけるアクティビティを実行するためのRPAプロセス及びロボットの開発及びデプロイメントを容易にする。デザイナ102は、アプリケーション統合のためのソリューション、並びに、サードパーティアプリケーション、管理情報技術(IT)タスク、及び、コンタクトセンター運用のためのビジネスプロセスの自動化をもたらすことができる。デザイナ102の一実施形態の1つの市販例は、UiPath Studio(商標)である。
【0024】
ルールベースのプロセスの自動化を設計する際、開発者は、遂行順序、及び、本明細書中で「アクティビティ」と定義されるプロセスで開発されるカスタムセットのステップ間の関係を制御する。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。幾つかの実施形態では、プロセスがネストされ又は埋め込まれてもよい。
【0025】
幾つかのタイプのプロセスは、シーケンス、フローチャート、有限状態機械(FSM)、及び/又は、グローバル例外ハンドラを含んでもよいが、これらに限定されない。シーケンスは、プロセスを雑然とさせることなく1つのアクティビティから他のアクティビティへの流れを可能にする線形プロセスに特に適し得る。フローチャートは、複数の分岐論理演算子を介してより多様な態様で決定の統合及びアクティビティの接続を可能にする、より複雑なビジネスロジックに特に適し得る。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)又はアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定し、プロセスをデバッグするのに特に適し得る。
【0026】
デザイナ102においてプロセスが開発された時点で、ビジネスプロセスの遂行がコンダクタ104によって編成され、コンダクタ104は、デザイナ102において開発されたプロセスを遂行する1つ以上のロボット106を編成する。コンダクタ104の一実施形態の1つの市販例は、UiPath Orchestrator(商標)である。コンダクタ220は、RPA環境におけるリソースの作成、監視、及び、デプロイメントの管理を容易にする。一例では、コンダクタ104がウェブアプリケーションである。また、コンダクタ104は、サードパーティソリューション及びアプリケーションとの統合ポイントとして機能することもできる。
【0027】
コンダクタ104は、集中ポイントからロボット106を接続して遂行することによって、RPAロボット106のフリートを管理することができる。コンダクタ104は、プロビジョニング、デプロイメント、コンフィギュレーション、キューイング、監視、ロギング、及び/又は、相互接続性の提供を含むがこれらに限定されない様々な機能を有することができる。プロビジョニングは、ロボット106とコンダクタ104(例えば、ウェブアプリケーション)との間の接続の作成及び維持を含むことができる。デプロイメントは、遂行のために割り当てられたロボット106へのパッケージバージョンの正しい配信を保証することを含むことができる。コンフィギュレーションは、ロボット環境及びプロセス構成の維持及び配信を含むことができる。キューイングは、キュー及びキュー項目の管理を行なうことを含むことができる。監視は、ロボット識別データを追跡し、ユーザー権限を維持することを含むことができる。ロギングは、データベース(例えば、SQLデータベース)及び/又は他の記憶機構(例えば、大規模なデータセットを記憶して迅速に照会できる能力を与えるElasticSearch(登録商標)へのログの記憶及びインデックス付けを含むことができる。コンダクタ104は、サードパーティソリューション及び/又はアプリケーションのための通信の集中ポイントとして作用することによって相互接続性をもたらすことができる。
【0028】
ロボット106は、デザイナ102で構築されたプロセスを実行する遂行エージェントである。ロボット106の幾つかの実施形態の一市販例は、UiPath Robots(商標)である。ロボット106のタイプとしては、アテンディッドロボット108及びアンアテンディッドロボット110を挙げることができるが、これらに限定されない。アテンディッドロボット108は、ユーザー又はユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間のユーザーと一緒に動作する。アテンディッドロボット108は、人間のユーザーが様々なタスクを達成するのを助けることができ、人間のユーザーによって及び/又はユーザーイベントによって直接にトリガされ得る。アテンディッドロボットの場合、コンダクタ104は、集中プロセスデプロイメント及びロギング媒体をもたらすことができる。特定の実施形態において、アテンディッドロボット108は、「ロボットトレイ」から又はウェブアプリケーションにおけるコマンドプロンプトからのみ起動することができる。アンアテンディッドロボット110は、仮想環境において無人モードで動作し、例えば大量のバックエンドプロセスなどのために、多くのプロセスを自動化するために使用され得る。アンアテンディッドロボット110は、遠隔遂行、監視、スケジューリング、及び、作業キューのためのサポートの提供に関与することができる。アテンディッドロボット及びアンアテンディッドロボットはいずれも、メインフレーム、ウェブアプリケーション、VM、企業アプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、及び、コンピューティングシステムアプリケーション(例えば、デスクトップ及びラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステム及びアプリケーションを自動化することができる。
【0029】
幾つかの実施形態において、ロボット106は、初期設定でMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット106は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。幾つかの実施形態では、ユーザーと同じ権利を有するユーザーモードでロボット106を設置することができ、ユーザーモード下では所定のロボット106が設置されてしまっている。
【0030】
幾つかの実施形態におけるロボット106は、それぞれが特定のタスク専用である幾つかのコンポーネントに分割される。幾つかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、及び、コマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理及び監視するとともに、コンダクタ104と遂行ホスト(すなわち、ロボット106が遂行されるコンピューティングシステム)との間のプロキシとしての機能を果たす。これらのサービスは、ロボット106のための資格情報で信頼され、この資格情報を管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。幾つかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理及び監視するとともに、コンダクタ104と遂行ホストとの間のプロキシとしての機能を果たす。ユーザーモードロボットサービスは、ロボット106のための資格情報で信頼されてこの資格情報を管理することができる。SCM管理ロボットサービスがインストールされなければ、Windows(登録商標)アプリケーションを自動的に起動することができる。エグゼキュータは、Windows(登録商標)セッション下で所定のジョブを実行することができ(例えば、エグゼキュータはワークフローを遂行することができる)、モニタごとのドット/インチ(DPI)設定を認識することができる。エージェントは、システムトレイウィンドウで利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブを開始又は停止して設定を変更するように要求することができる。コマンドラインは、サービスのクライアントであり、ジョブを開始するように要求することができるとともにジョブの出力を待つコンソールアプリケーションである。ロボットコンポーネントの分割は、開発者を助け、ユーザーをサポートするとともに、各ロボットコンポーネントが遂行しているものをコンピューティングシステムがより容易に実行、識別、及び、追跡できるようにし得る。例えば、エグゼキュータ及びサービスに関して異なるファイアウォールルールを設定するなど、ロボットコンポーネントごとに特別な挙動を構成することができる。更なる例として、エグゼキュータは、幾つかの実施形態ではモニタごとのDPI設定を認識することができ、その結果、ワークフローは、それらが作成されたコンピューティングシステムのコンフィギュレーションに関係なく、任意のDPIで遂行することができる。
【0031】
図2は、1つ以上の実施形態に係るRPAシステム200を示す。RPAシステム200は、
図1のRPAシステム100であってもよく又はRPAシステム100の一部であってもよい。「クライアント側」、「サーバ側」、又は、その両方は、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意すべきである。
【0032】
この実施形態におけるクライアント側に示されるように、コンピューティングシステム202は、1つ以上のエグゼキュータ204、エージェント206、及び、デザイナ208を含む。他の実施形態において、デザイナ208は、同じコンピューティングシステム202上で実行されていなくてもよい。エグゼキュータ204(前述のようにロボットコンポーネントであってもよい)はプロセスを実行し、幾つかの実施形態では、複数のビジネスプロセスが同時に実行されてもよい。この例において、エージェント206(例えば、Windows(登録商標)サービス)は、エグゼキュータ204を管理するための単一の接続ポイントである。
【0033】
幾つかの実施形態において、ロボットは、機械名とユーザー名との間の関連付けを表わす。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、複数のロボットがそれぞれ固有のユーザー名を使用して別々のWindows(登録商標)セッションで同時に(例えば、高密度(HD)環境)実行されてもよい。
【0034】
また、エージェント206は、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信し)、遂行されるべきパッケージの必要なバージョンをダウンロードすることにも関与する。エージェント206とコンダクタ212との間の通信は、幾つかの実施形態ではエージェント206によって開始される。通知シナリオの例において、エージェント206は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ212によって後で使用されるWebSocketチャネルを開くことができる。
【0035】
この実施形態においてサーバ側に示されるように、プレゼンテーション層は、ウェブアプリケーション214と、オープンデータプロトコル(OData)表象状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント216と、通知監視API 218とを備える。サーバ側のサービス層は、API実装/ビジネスロジック220を含む。サーバ側の永続層は、データベースサーバ222とインデクササーバ224とを含む。コンダクタ212は、ウェブアプリケーション214、OData REST APIエンドポイント216、通知監視API 218、及び、API実装/ビジネスロジック220を含む。
【0036】
様々な実施形態において、コンダクタ212のインターフェースにおいてユーザーが(例えば、ブラウザ210を介して)実行する殆どのアクションは、様々なAPIを呼び出すことによって実行される。そのようなアクションとしては、ロボット上のジョブの開始、キュー内のデータの追加/削除、無人で実行すべきジョブのスケジューリングなどを挙げることができるが、これらに限定されない。ウェブアプリケーション214は、サーバプラットフォームのビジュアル層である。この実施形態において、ウェブアプリケーション214は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(登録商標)(JS)を使用する。しかしながら、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は、任意の他のフォーマットを使用することができる。ユーザーは、コンダクタ212を制御するための様々なアクションを実行するために、この実施形態ではブラウザ210を介してウェブアプリケーション214からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごと及び/又はプロセスごとにログを分析し、ロボットを起動及び停止することなどができる。
【0037】
ウェブアプリケーション214に加えて、コンダクタ212は、OData REST APIエンドポイント216を露出させるサービス層も含む(又は、本発明の範囲から逸脱することなく他のエンドポイントが実装されてもよい)。REST APIは、ウェブアプリケーション214及びエージェント206の両方によって消費される。エージェント206は、この例示的な構成ではクライアントコンピュータ上の1つ以上のロボットのスーパーバイザーである。
【0038】
この実施形態におけるREST APIは、コンフィギュレーション、ロギング、監視、及び、キューイング機能をカバーする。幾つかの実施形態では、コンフィギュレーションRESTエンドポイントを使用して、アプリケーションユーザー、権限、ロボット、アセット、リリース、及び、環境を定義及び構成することができる。RESTエンドポイントのロギングは、例えば、エラー、ロボットによって送信された明示的なメッセージ、及び、他の環境固有の情報などの異なる情報をロギングするのに有用であり得る。開始ジョブコマンドがコンダクタ212内で使用される場合に遂行されるべきパッケージバージョンを照会するために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キュー及びキュー項目の管理に関与できる。RESTエンドポイントの監視は、ウェブアプリケーション214及びエージェント206を監視する。通知監視API 218は、エージェント206の登録、エージェント206への構成設定の配信、並びに、サーバ及びエージェント206からの通知の送信/受信のために使用されるRESTエンドポイントであってもよい。また、通知監視API 218は、幾つかの実施形態では、WebSocket通信を使用してもよい。
【0039】
サーバ側の永続層は、この例示的な実施形態におけるサーバの対、すなわち、データベースサーバ222(例えば、SQLサーバ)及びインデクササーバ224を含む。この実施形態におけるデータベースサーバ222は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を記憶する。この情報は、幾つかの実施形態ではウェブアプリケーション214を介して管理される。また、データベースサーバ222は、キュー及びキュー項目を管理することもできる。幾つかの実施形態において、データベースサーバ222は、(インデクササーバ224に加えて又はインデクササーバ224の代わりに)ロボットによってロギングされるメッセージを記憶することができる。インデクササーバ224は、幾つかの実施形態ではオプションであり、ロボットによってロギングされる情報を記憶し、インデックス付けする。特定の実施形態において、インデクササーバ224は、構成設定を通じて無効にされてもよい。幾つかの実施形態において、インデクササーバ224は、オープンソースプロジェクトのフルテキスト検索エンジンであるElasticSearch(登録商標)を使用する。ロボットによって(例えば、ログメッセージ又は行書き込みのようなアクティビティを使用して)ロギングされるメッセージは、ロギングRESTエンドポイントを介してインデクササーバ224に送信されてもよく、そこで、それらのメッセージは将来の利用のためにインデックス付けされる。
【0040】
図3は、1つ以上の実施形態に係る、RPAシステム300の簡略化された配備例を示すアーキテクチャ図である。幾つかの実施形態において、RPAシステム300は、
図1及び
図2のそれぞれのRPAシステム100及び/又は200であってもよく、RPAシステム100及び/又は200を含んでもよい。RPAシステム300は、ロボットを実行する複数のクライアントコンピューティングシステム302を含む。コンピューティングシステム302は、そこで実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム304と通信することができる。更に、コンダクタコンピューティングシステム304は、データベースサーバ306及び随意的なインデクササーバ308と通信する。
図2及び
図3に関して、これらの実施形態ではウェブアプリケーションが使用されるが、本発明の範囲から逸脱することなく任意の適切なクライアント/サーバソフトウェアを使用できることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバ側アプリケーションを実行することができる。
【0041】
一実施形態において、
図1のRPAシステム100、
図2のRPAシステム200、及び/又は、図のRPAシステム300は、RPAロボットのクラウドベースの管理のために実装されてもよい。そのようなRPAロボットのクラウドベースの管理により、RPAをサービスとしてのソフトウェア(SaaS)として提供することができる。したがって、
図1のコンダクタ104、
図2のコンダクタ212、及び/又は、
図3のコンダクタ304は、例えば、RPAロボットを作成する、RPAロボットを提供する、RPAロボットに関するタスクをスケジューリングする、RPAロボットを停止する、又は、RPAロボットを管理するための任意の他のオーケストレーションタスクを実行するべく、RPAロボットのクラウドベースの管理のためにクラウドに実装される。
【0042】
図4は、1つ以上の実施形態に係る、RPAロボットのクラウドベースの管理を実施するためのクラウドRPAシステム400のアーキテクチャ図を示す。クラウドRPAシステム400は、クラウドコンピューティング環境402及びローカルコンピューティング環境404を備える。ローカルコンピューティング環境404は、例えば企業、会社などのユーザー又は任意の他の1つ又は複数のエンティティのローカルネットワークアーキテクチャを表わす。ローカルコンピューティング環境404はローカルネットワーク406を含む。クラウドコンピューティング環境402は、ローカルコンピューティング環境404においてユーザーから離れた作業負荷のサービス又は処理を提供するクラウドコンピューティングネットワークアーキテクチャを表わす。クラウドコンピューティング環境402は、インターネット414、ユーザーによって管理(又は制御)されてクラウドプラットフォームプロバイダによってホストされるクラウドネットワークを表わすユーザークラウドネットワーク418、及び、クラウドサービスプロバイダによって管理されてクラウドプラットフォームプロバイダによってホストされるクラウドネットワークを表わすクラウドサービスプロバイダクラウドネットワーク420を含む、様々なクラウドネットワークを備える。クラウドサービスプロバイダは、クラウドを介してサービス(例えば、RPA)を提供するエンティティである。クラウドプラットフォームプロバイダは、クラウドコンピューティングインフラストラクチャを維持するエンティティである。ローカルコンピューティング環境404のローカルネットワーク406は、ローカルコンピューティング環境404とクラウドコンピューティング環境402との間の通信を容易にするために、クラウドコンピューティング環境402のインターネット414に通信可能に結合される。
【0043】
図4に示されるように、クラウドオーケストレータ430は、RPAロボットのクラウドベースの管理を可能にするためにクラウドコンピューティング環境402に実装される。特に、クラウドオーケストレータ430は、クラウドサービスプロバイダによって管理されるとともに、クラウドコンピューティング環境402内のクラウドサービスプロバイダクラウドネットワーク420内でホストされる。一実施形態において、クラウドサービスプロバイダは、ローカルコンピューティング環境404内のユーザーにRPAを提供する。
【0044】
クラウドオーケストレータ430は、クラウドコンピューティング環境402内のRPAロボットを管理する。特に、ユーザーは、ローカルコンピューティング環境404内のコンピューティングデバイス412と対話して、RPAロボットを管理するための命令をクラウドコンピューティング環境402内のクラウドオーケストレータ430に送信する。或いは、ユーザーは、ローカルコンピューティング環境404内のコンピューティングデバイス412と対話して、RPAロボットを管理するためにユーザーに代わって命令を自動的に送信するようにクラウドオーケストレータ430上にスケジュールを設定する。RPAロボットを管理するための典型的な命令としては、RPAロボットを作成するための命令、RPAロボットをプロビジョニングするための命令、RPAロボット上のタスクをスケジューリングするための命令(例えば、タスクを実行するための時間及びタスクを実行するためのロボットのタイプをスケジューリングする)、RPAロボットをデコミッションするための命令、又は、RPAロボットのための任意の他の編成命令が挙げられる。命令を受信したことに応じて、クラウドオーケストレータ430は、例えば、RPAロボットの作成、RPAロボットのプロビジョニング、RPAロボットのタスクのスケジューリング、RPAロボットのデコミッショニングなどによって命令を実行する。一実施形態において、クラウドオーケストレータ430は、
図1のコンダクタ104、
図2のコンダクタ212、又は、
図3のコンダクタ304と同様であってもよいが、クラウドコンピューティング環境402内のクラウドサービスプロバイダクラウドネットワーク420に実装されてもよい。
【0045】
クラウドオーケストレータ430によって管理されるRPAロボットは、クラウドコンピューティング環境402内に配備されて維持されるクラウドロボットのプールを含んでもよい。そのようなクラウドロボットは、クラウドサービスロボットプール426の1つ以上のクラウドサービスロボット428-A、...、428-X(以下、まとめてクラウドサービスロボット428と呼ぶ)と、クラウド管理ロボットプール422の1つ以上のクラウド管理ロボット424-A、...、424-Y(以下、まとめてクラウド管理ロボット424と呼ぶ)とを含むことができる。そのようなクラウドロボットは、クラウドコンピューティング環境402において(すなわち、プロセス)タスクを実行し、タスクの結果をローカルコンピューティング環境404内のユーザーに送信する。これに加えて又は代えて、クラウドオーケストレータ430によって管理されるRPAロボットは、ローカルロボットプール408の1つ以上のローカルロボット410-A、...、410-Z(以下、まとめてローカルロボット410と呼ぶ)を含んでもよい。
【0046】
クラウドサービスロボット428は、ローカルネットワーク環境404内のユーザーのためにクラウドコンピューティング環境402内でRPAタスクを実行するために、クラウドサービスプロバイダのクラウドネットワーク420内のクラウドサービスプロバイダによって維持される。クラウドサービスロボット428は、ユーザーがコンピューティングデバイス412からクラウドオーケストレータ430に命令を送信することによって、要求に応じて作成される。作成されると、クラウドサービスロボット428は、タスク(又はワークフロー)を実行するのを待っている間、待機モードに入る。待機モードにある間、クラウドサービスロボット428を動作させるためのコストは最小化される或いはさもなければ低減される。タスクは、ユーザーがコンピューティングデバイス412からクラウドオーケストレータ430に命令を送ることによって、クラウドサービスロボット428上にスケジューリングされる。タスクをスケジューリングするための命令は、タスクを実行するための時間及びタスクを実行するためのロボットのタイプを定義する。クラウドサービスロボット428は、タスクを実行するために待機モードから起動し、タスクが完了すると待機モードに戻る。したがって、クラウドサービスロボット428は、ローカルコンピューティング環境404内のユーザーのためにクラウドサービスプロバイダクラウドネットワーク420上でタスクを実行する。
【0047】
クラウド管理ロボット424は、ローカルネットワーク環境404内のユーザーのためにクラウドコンピューティング環境402内でRPAタスクを実行するために、ユーザークラウドネットワーク418内のユーザーによって維持される。クラウド管理ロボット424は、クラウドサービスロボット428と機能が類似しており、また、クラウドコンピューティング環境402でホストされる。しかしながら、クラウド管理ロボット424がホストされるユーザークラウドネットワーク418は、ユーザーによって管理され、一方、クラウドサービスロボット428がホストされるクラウドサービスプロバイダクラウドネットワーク420は、クラウドサービスプロバイダによって管理されてクラウドプラットフォームプロバイダによってホストされる。クラウドオーケストレータ430は、クラウドサービスプロバイダクラウドネットワーク420とユーザークラウドネットワーク418との間の接続を確立することによって、クラウド管理ロボット424を管理する。ユーザークラウドネットワーク418は、ローカルネットワーク406にトンネルバックするために、クラウドプロバイダ技術を利用するユーザーによって確立されてもよい。ユーザーは、ローカルネットワーク406からクラウドサービスプロバイダクラウドネットワーク420への専用ネットワーク接続を確立することができる。接続は、一般に、例えば、任意対任意(例えば、インターネットプロトコル仮想プライベートネットワーク)ネットワーク、ポイントツーポイントEthernetネットワーク、又は、コロケーション施設における接続プロバイダを介した仮想交差接続の形態を成す。これらの接続は、公衆インターネットを経由しない。これは、インターネットを介した典型的な接続よりも高い信頼性、より速い速度、一貫した待ち時間、及び、より高いセキュリティを提供する。ユーザークラウドネットワーク418は、ユーザーによって完全に制御及び管理され続け、それによって、ユーザーにデータに対する厳格な制御を提供する。
【0048】
クラウドサービスプロバイダクラウドネットワーク420とユーザークラウドネットワーク418との間の接続が確立されると、クラウド管理ロボット424は、コンピューティングデバイス412を介してクラウドオーケストレータ430と対話するユーザーによる要求に応じて作成される。クラウド管理ロボット424は、ユーザークラウドネットワーク418上に作成される。したがって、クラウド管理ロボット424は、ローカルコンピューティング環境404内のユーザーのためにユーザークラウドネットワーク418上でタスクを実行する。アルゴリズムを適用して、クラウド管理ロボットプール422内のロボットの利用を最大化し、ユーザーの運用コストを削減することができる。
【0049】
ローカルロボット410は、ローカルネットワーク環境404内のユーザーのためにRPAタスクを実行するべく、ローカルネットワーク406内のユーザーによって維持される。ローカルネットワーク406は、ユーザーによって制御又は管理される。クラウドオーケストレータ430は、標準的なHTTPS接続を介してローカルロボット410への接続を維持する。
【0050】
RPA開発中、ワークフローは、ワークフローの各アクティビティを定義するためにRPAデザイナアプリケーションと対話する開発者(又は他のユーザー)によって定義される。例えば、そのようなRPAデザイナアプリケーションは、
図1のRPAシステム100のデザイナ102、
図2のRPAシステム200のデザイナ208、
図3のRPAシステム300のデザイナ(図示せず)、又は、
図4のクラウドRPAシステム400のデザイナ(図示せず)であってもよい。従来、開発者は、アプリケーションのウィンドウからインタラクティブなUI(ユーザーインターフェース)要素を個別に別個に選択し、選択されたインタラクティブなUI要素の自動化を記録することによってワークフローを設計しており、これは煩わしく時間のかかるプロセスとなり得る。本明細書中に記載の実施形態は、インタラクティブなUI要素をRPAオブジェクトリポジトリにマッピングすることによって、RPAワークフローの開発を容易にする。このようにして、開発者は、アプリケーションのウィンドウから各インタラクティブなUI要素を選択する必要なく、自動化を記録するためにRPAオブジェクトリポジトリから幾つかのインタラクティブなUI要素のうちの1つ以上を選択することができる。好適には、本明細書に記載の実施形態は、自動化のシームレスな記録を行なう。
【0051】
図5は、1つ以上の実施形態に係る、インタラクティブなUI要素をRPAオブジェクトリポジトリにマッピングするための方法500を示す。方法500のステップは、例えば
図13のコンピューティングシステム1300などの、1つ以上の適切なコンピューティングデバイスによって実行することができる。
【0052】
図5のステップ502において、表示デバイス上に表示されるアプリケーションのウィンドウを選択するユーザー入力が受信される。ユーザー入力は、開発者又は任意の他の適切なユーザーから受信される。
【0053】
アプリケーションのウィンドウを選択するユーザー入力は、開発者によるRPAワークフローの設計中に受信される。RPAワークフローの設計中に、開発者はRPAデザイナアプリケーションと対話してワークフローの各アクティビティを定義する。ワークフローのアクティビティは、デザイナアプリケーションを介してRPAオブジェクトリポジトリからインタラクティブなUI要素を選択し、インタラクティブなUI要素に対して実行されたアクションを記録することによって定義することができる。
【0054】
図6は、1つ以上の実施形態に係る、RPAデザイナアプリケーションのユーザーインターフェース600を示す。ユーザーインターフェース600は、開発者がRPAワークフローを定義するメインビュー602と、インタラクティブなUI要素を記憶するオブジェクトリポジトリ604とを示す。
図6に示されるように、オブジェクトリポジトリ604は空である。オブジェクトリポジトリ604に記憶すべきインタラクティブなUI要素を捕捉するために、開発者は、捕捉要素モジュールを起動するレコーダシンボル606を選択する。
【0055】
図7は、1つ以上の実施形態に係る、捕捉要素モジュールのユーザーインターフェース700を示す。ユーザーインターフェース700は、アプリケーションの選択されたウィンドウ内の全てのインタラクティブなUI要素を捕捉するための全要素捕捉ボタン702を備える。開発者は全要素捕捉ボタン702を選択し、これにより、捕捉プロセスを開始するべくスキャンモジュールが起動される。
【0056】
図8は、1つ以上の実施形態に係る、インタラクティブなUI要素が捕捉されるようになっているアプリケーションのウィンドウを選択するためのユーザーインターフェース800を示す。ユーザーインターフェース800は、インタラクティブなUI要素が捕捉されるようになっているアプリケーションのウィンドウを選択するように開発者に促すスキャンモジュール802を示す。スキャンモジュール802からのプロンプトに応じて、開発者はウィンドウ804を選択する。開発者によるウィンドウ804の選択は、
図5のステップ502でアプリケーションのウィンドウを選択するユーザー入力であってもよい。
【0057】
図5のステップ504において、アプリケーションのウィンドウを選択するユーザー入力の受信に応じて、インタラクティブなUI要素がアプリケーションのウィンドウ内で自動的に識別される。インタラクティブなUI要素は、ユーザーが対話することができるユーザーインターフェース要素である。典型的なインタラクティブなUI要素は、ボタン、チェックボックス、テキストフィールドなどを含む。
【0058】
インタラクティブなUI要素は、任意の適切な手法を使用して自動的に識別されてもよい。一実施形態において、インタラクティブなUI要素は、訓練された機械学習ベースのモデルを使用して自動的に識別される。訓練された機械学習ベースのモデルは、アプリケーションのウィンドウの画像を入力として受けるとともに、識別されたインタラクティブなUI要素を有するアプリケーションのウィンドウの画像を出力として生成する。訓練された機械学習ベースのモデルは、訓練データを使用して前のオフライン中又は訓練段階中に訓練される。訓練データは、(例えば、ユーザーによって)インタラクティブなUI要素で注釈付けされたアプリケーションのウィンドウの訓練画像を含む。
【0059】
図9は、1つ以上の実施形態に係る、インタラクティブなUI要素を識別するユーザーインターフェース900を示す。ユーザーインターフェース900は、開発者によって選択されたアプリケーションのスキャンモジュール902及びウィンドウ804を、その中でハイライトされたインタラクティブなUI要素904-A~904-Yと共に示す。
【0060】
図5のステップ506において、アプリケーションのウィンドウ内の識別されたインタラクティブなUI要素のうちの1つ以上を選択するユーザー入力が受信される。一実施形態において、ユーザー入力は、全ての識別されたインタラクティブなUI要素をそれぞれ選択する又は全ての識別されたインタラクティブなUI要素を選択解除するための全選択ボタン又は全選択解除ボタンの選択であってもよい。他の実施形態において、ユーザー入力は、これに加えて又は代えて、アプリケーションのウィンドウ内での直接的な1つ以上のインタラクティブなUI要素の選択又は選択解除であってもよい。一実施形態では、全ての識別されたインタラクティブなUI要素が自動的に選択され、識別されたインタラクティブなUI要素のうちの1つ以上を選択解除するためにユーザー入力が受信される。
【0061】
図10は、1つ以上の実施形態に係る、インタラクティブなUI要素を選択するためのユーザーインターフェース1000を示す。ユーザーインターフェース1000において、開発者は、全ての識別されたUI要素を選択解除するためにスキャンモジュール902内の全選択解除ボタン1002を選択する又は全ての識別されたUI要素を選択するために全選択ボタン1004を選択することができる。開発者は、これに加えて又は代えて、ウィンドウ804内の1つ以上のインタラクティブなUI要素904-A~904-Yを選択又は選択解除することができる。
図10に示されるように、全ての識別されたインタラクティブなUI要素904-A~904-Yが自動的に選択され、また、開発者は、その後、インタラクティブなUI要素904-A~904-Mを選択解除し、それにより、インタラクティブなUI要素904-N~904-Yの選択をもたらす。開発者は、捕捉ボタン1006を選択することによってインタラクティブなUI要素904-N~904-Yの選択を確定する。
【0062】
図5のステップ508において、選択されたインタラクティブなUI要素は、RPAシステムのRPAオブジェクトリポジトリに記憶される。一例において、RPAシステムは、
図1のRPAシステム100、
図2のRPAシステム200、
図3のRPAシステム300、又は、
図4のクラウドRPAシステム400であってもよい。
【0063】
図11は、1つ以上の実施形態に係る、RPAオブジェクトリポジトリに記憶されたインタラクティブなUI要素を示すユーザーインターフェース1100を示す。ユーザーインターフェース1100は、ウィンドウ804から選択されたインタラクティブなUI要素を記憶するRPAオブジェクトリポジトリ1104を示す捕捉要素モジュール1102を備える。
【0064】
一実施形態において、選択されたインタラクティブなUI要素は、選択されたインタラクティブなUI要素が複製であるかどうかを決定するために、RPAオブジェクトリポジトリに記憶された既存のインタラクティブなUI要素と比較される。比較を実行するために、RPAオブジェクトリポジトリに記憶された既存のインタラクティブなUI要素と関連付けられる全ての記述子が検索される。記述子は、それらの関連付けられた既存のインタラクティブなUI要素を一意的に識別する情報を保持する。記述子は、それらの関連する既存のインタラクティブなUI要素が選択されたインタラクティブなUI要素と一致するための潜在的な候補であるかどうかを決定するためにフィルタに通される。フィルタは、一致スコアを生成する(例えば、0から1までであり、ここで、0は選択されたインタラクティブなUI要素と一致しないことを示し、1は選択されたインタラクティブなUI要素と一致することを示す)。フィルタが最大一致スコア(すなわち、一致を示す)を有する記述子を識別する場合、その記述子と関連付けられる既存のインタラクティブなUI要素は、選択されたインタラクティブなUI要素に一致するものとして戻される。フィルタが最大一致スコアを有する複数の記述子を識別する場合、開発者は複数の記述子のうちの1つを選択することができ、また、選択された記述子と関連付けられる既存のインタラクティブなUI要素は、選択されたインタラクティブなUI要素に一致するものとして戻される。フィルタが最大一致スコアを有する記述子を識別しない場合、上位N個の一致スコアを有する記述子(ここで、Nは、例えば5などの任意の正の整数である)が識別され、識別された記述子に完全統一ターゲットアルゴリズムが適用される。識別された記述子が選択されたインタラクティブなUI要素と一致すると統一ターゲットアルゴリズムが決定する場合、その識別された記述子と関連付けられる既存のインタラクティブなUI要素は、選択されたインタラクティブなUI要素と一致するものとして戻される。さもなければ、識別された記述子のいずれも選択されたインタラクティブなUI要素と一致しないと統一ターゲットアルゴリズムが決定する場合、選択されたインタラクティブなUI要素は複製と見なされず、選択されたインタラクティブなUI要素はRPAオブジェクトリポジトリに記憶される。このようにして、既存のインタラクティブなUI要素と一致しない選択されたインタラクティブなUI要素のみがRPAオブジェクトリポジトリに記憶される。
【0065】
一実施形態では、オブジェクトリポジトリに記憶されたインタラクティブなUI要素のプロパティを編集及び保存するために、開発者からユーザー入力を受信することができる。
図12は、1つ以上の実施形態に係る、捕捉要素モジュールを示すユーザーインターフェース1200を示す。ユーザーインターフェース1200は、RPAオブジェクトリポジトリ1206に記憶された選択されたインタラクティブなUI要素1204のプロパティを編集するためのプロパティパネル1202を備える。プロパティパネル1202において編集され得る典型的なプロパティは、要素名、タイプ、記述、セレクタ、及び、ファジーセレクタを含む。一実施形態では、インタラクティブなUI要素の意味論的意味もまた、RPAオブジェクトリポジトリ1202に記憶されてもよい。
【0066】
一実施形態において、RPAオブジェクトリポジトリに記憶されたインタラクティブなUI要素は、アプリケーションのウィンドウ内の全てのインタラクティブなUI要素が識別されているかどうかを決定するために開発者によってテストされてもよい。ウィンドウ内の1つ以上のインタラクティブなUI要素が識別されなかった場合、識別されていないインタラクティブなUI要素は、見つからない又は問題があるとしてマークされる。
【0067】
図5のステップ510において、記憶されたインタラクティブなUI要素のうちの1つ以上に対して実行されたアクションのRPA自動化が記録される。記憶されたインタラクティブなUI要素のうちの1つ以上に対して実行されるアクションは、開発者によって実行される。記録されたRPA自動化は、RPAオブジェクトリポジトリに記憶され、RPAワークフローのアクティビティを定義するために使用され得る。
【0068】
図13は、本発明の一実施形態に係る、
図5の方法500を含む、本明細書中に記載の方法、ワークフロー、及び、プロセスを遂行するように構成されるコンピューティングシステム1300を示すブロック図である。幾つかの実施形態において、コンピューティングシステム1300は、図示された及び/又は本明細書中に記載されたコンピューティングシステムのうちの1つ以上であってもよい。コンピューティングシステム1300は、情報を通信するためのバス1302又は他の通信機構と、情報を処理するためにバス1302に結合されたプロセッサ1304とを含む。プロセッサ1304は、中央処理装置(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、及び/又は、それらの任意の組み合わせを含む、任意のタイプの汎用又は専用プロセッサであってもよい。また、プロセッサ1304は、複数の処理コアを有してもよく、また、コアの少なくとも幾つかは、特定の機能を実行するように構成されてもよい。幾つかの実施形態では、複数並列処理を使用することができる。
【0069】
コンピューティングシステム1300は、プロセッサ1304によって遂行される情報及び命令を記憶するためのメモリ1306を更に含む。メモリ1306は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、又は、任意の他のタイプの非一時的コンピュータ可読媒体、又は、それらの組み合わせの任意の組み合わせから構成することができる。非一時的コンピュータ可読媒体は、プロセッサ1304によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、又はその両方を含んでもよい。また、媒体は、取り外し可能、取り外し不能、又は、その両方であってもよい。
【0070】
更に、コンピューティングシステム1300は、任意の現在存在する又は将来実施される通信規格及び/又はプロトコルに従って、無線及び/又は有線接続を介して通信ネットワークへのアクセスを提供するためのトランシーバなどの通信デバイス1308を含む。
【0071】
プロセッサ1304は、バス1302を介して、ユーザーに情報を表示するのに適したディスプレイ1310に更に結合される。また、ディスプレイ1310は、タッチディスプレイ及び/又は任意の適切な触覚I/Oデバイスとして構成されてもよい。
【0072】
キーボード1312及びコンピュータマウス、タッチパッドなどのカーソル制御デバイス1314は、ユーザーがコンピューティングシステムとインターフェースすることを可能にするためにバス1302に更に結合される。しかしながら、特定の実施形態では、物理的なキーボード及びマウスが存在しなくてもよく、ユーザーは、ディスプレイ1310及び/又はタッチパッド(図示せず)のみを介してデバイスと対話することができる。入力デバイスの任意のタイプ及び組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイス及び/又はディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム1300と遠隔的に対話することができ、又はコンピューティングシステム1300は自律的に動作することができる。
【0073】
メモリ1306は、プロセッサ1304によって遂行されると機能を与えるソフトウェアモジュールを記憶する。モジュールは、コンピューティングシステム1300のためのオペレーティングシステム1316と、本明細書に記載のプロセス又はその派生物の全部又は一部を実行するように構成された1つ以上の更なる機能モジュール1318とを含む。
【0074】
当業者であれば分かるように、「システム」は、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは、任意の他の適切なコンピューティングデバイス、又は、デバイスの組み合わせとして具現化され得る。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際に、本明細書中に開示される方法、システム、及び、装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態及び分散された形態で実装され得る。
【0075】
本明細書中に記載されたシステム特徴の幾つかは、それらの実装の独立性をより具体的に強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイ、ロジックチップ、トランジスタ、又は、他のディスクリートコンポーネントなどの既製の半コンダクタを含むハードウェア回路として実装されてもよい。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。また、モジュールは、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、手順、又は、機能として編成することができるコンピュータ命令の1つ以上の物理ブロック又は論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に一緒に配置される必要はないが、論理的に一緒に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に記憶された異なる命令を含むことができる。更に、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又は、本発明の範囲から逸脱することなくデータを記憶するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよいコンピュータ可読媒体に記憶されてもよい。実際に、遂行可能コードのモジュールは、単一の命令、又は、多くの命令であってもよく、幾つかの異なるコードセグメント、異なるプログラム、及び、幾つかのメモリデバイスに分散されてもよい。同様に、操作データは、モジュール内で識別され及び本明細書中に例示されてもよく、任意の適切な形態で具体化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、又は、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システム又はネットワーク上の電子信号としてのみ存在してもよい。
【0076】
以上は本開示の原理を単に例示するにすぎない。したがって、本明細書中に明示的に記載され又は示されないが、本開示の原理を具現化するとともに本開示の思想及び範囲内に含まれる様々な構成を当業者が考え出すことができるのが分かる。更に、本明細書中に列挙される全ての例及び条件付き言語は、主に、本開示の原理と本技術を進展させるために本発明者によって寄与される概念とを読者が理解するのを助けるための教育目的のためのものにすぎず、そのような具体的に列挙された例及び条件に限定しないように解釈されるべきである。更に、本開示の原理、態様、及び、実施形態、並びに、その特定の例を列挙する本明細書中の全ての記述は、その構造的及び機能的な均等物の両方を包含しようとするものである。更に、そのような均等物が現在知られている均等物及び将来開発される均等物の両方を含むことが意図される。
【国際調査報告】