IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユーアイパス,インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-19
(54)【発明の名称】特定用途向けグラフィカル要素検出
(51)【国際特許分類】
   G06F 8/30 20180101AFI20221012BHJP
【FI】
G06F8/30
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2020553458
(86)(22)【出願日】2020-09-18
(85)【翻訳文提出日】2021-01-12
(86)【国際出願番号】 US2020051481
(87)【国際公開番号】W WO2022055518
(87)【国際公開日】2022-03-17
(31)【優先権主張番号】17/016,251
(32)【優先日】2020-09-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/014,171
(32)【優先日】2020-09-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】452 5th Avenue, 22nd Floor, New York,NY 10018,United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ダニエル ダインズ
(72)【発明者】
【氏名】イオン マイロン
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC31
5B376BC38
5B376BC43
5B376FA13
(57)【要約】
アプリケーションおよび/もしくはUIタイプレベル、またはその両方で複数のグラフィカル要素検出技術を潜在的に用いて、デフォルトのユーザーインターフェース(UI)要素検出技術構成を潜在的に実行する、組み合わせた直列および遅延並列実行統一ターゲット技術を用いたグラフィカル要素検出が開示される。統一ターゲットは、UI要素を識別して自動化する複数の技術を、単一のまとまりのあるアプローチに併合する。統一ターゲット記述子は、複数のタイプのUI記述子を直列に連鎖させ、それらを並列に使用し、または、少なくとも1つの技術を最初に一定期間使用し、最初の技術が期間内に一致を見つけられなかった場合には、次いで少なくとも1つの他の技術を並列または交互に実行する。
【選択図】図1

【特許請求の範囲】
【請求項1】
ユーザーインターフェース(UI)内のグラフィカル要素を検出するためのコンピュータ実装方法であって、
ロボティックプロセスオートメーション(RPA)デザイナアプリケーションによって、アプリケーションまたはUIタイプの選択を受信し、
前記RPAデザイナアプリケーションによって、デフォルトのターゲティング方法設定構成を受信し、保存し、
前記RPAデザイナアプリケーションによって、前記選択されたアプリケーションまたはUIタイプに関連する自動化される画面の表示を受信し、
前記RPAデザイナアプリケーションによって、前記選択されたアプリケーションまたはUIタイプの前記デフォルトのターゲティング方法設定を自動的に事前構成することを含む、コンピュータ実装方法。
【請求項2】
前記RPAデザイナアプリケーションによって、前記デフォルトのターゲティング方法設定に対する変更を受信し、
前記RPAデザイナアプリケーションによって、前記変更に応じて前記ターゲティング方法設定を構成することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記RPAデザイナアプリケーションの第1インスタンスは前記デフォルトのターゲティング方法設定を構成するために使用され、前記RPAデザイナアプリケーションの第2インスタンスはその後に前記デフォルトのターゲティング方法設定を変更するために使用される、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記デフォルトのターゲティング方法設定に対する変更は、前記選択されたアプリケーションまたはUIタイプに対して1または複数のターゲティング方法を使用するか否かを含む、請求項2に記載のコンピュータ実装方法。
【請求項5】
前記デフォルトのターゲティング方法設定は、フルセレクタ、ファジーセレクタ、もしくは画像セレクタのいずれを使用するか否か、アンカーを有効にするか否か、またはそれらの組み合わせを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記デザイナアプリケーションによって、前記選択されたアプリケーションまたはUIタイプのデフォルトの前記ターゲティング方法設定を使用して、ロボティックプロセスオートメーション(RPA)ワークフロー内の1または複数のアクティビティを構成することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記PRAデザイナアプリケーションによって、前記1または複数の構成されたアクティビティを含む前記RPAワークフローを実装するためのRPAロボットを生成することをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記RPAロボットによって、実行時にUI要素属性を識別するためにUIを分析し、
前記RPAロボットによって、設計時にユーザーによって上書きされない限り、前記デフォルトのターゲティング方法設定を使用して前記識別されたUI要素属性を分析することをさらに含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記アプリケーションがウェブブラウザである場合、前記デフォルトのターゲティング方法設定の前記事前設定は、フルセレクタを実行しないように設定し、ファジーセレクタ、画像セレクタ、および/または有効なアンカーを実行するように設定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
非一時的なコンピュータ読み取り可能な媒体上に格納されたコンピュータプログラムであって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
選択されたアプリケーションまたはユーザーインターフェース(UI)タイプのデフォルトのターゲティング方法設定を自動的に事前構成し、
前記アプリケーションまたは前記UIタイプの前記デフォルトのターゲティング方法設定に対する変更を受信し、
前記変更に応じて、前記デフォルトのターゲティング方法設定を構成し、
前記アプリケーションまたはUIタイプの前記デフォルトのターゲティング方法設定を使用して、ロボティックプロセスオートメーション(RPA)ワークフロー内の1または複数のアクティビティを構成するように構成される、コンピュータプログラム。
【請求項11】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記選択されたアプリケーションまたはUIタイプに関連する自動化される画面の表示を受信するように構成される、請求項10に記載のコンピュータプログラム。
【請求項12】
前記デフォルトのターゲティング方法設定に対する変更は、前記アプリケーションまたはUIタイプに対して1または複数のターゲティング方法を使用するか否かを含む、請求項10に記載のコンピュータプログラム。
【請求項13】
前記デフォルトのターゲティング方法設定は、フルセレクタ、ファジーセレクタ、もしくは画像セレクタのいずれを使用するか、アンカーを有効にするか、またはそれらの組み合わせを含む、請求項10に記載のコンピュータプログラム。
【請求項14】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記1または複数の構成されたアクティビティを含む前記RPAワークフローを実装するように構成されるRPAロボットを生成するように構成される、請求項10に記載のコンピュータプログラム。
【請求項15】
前記アプリケーションがウェブブラウザである場合、前記デフォルトのターゲティング方法設定の前記事前設定は、フルセレクタを実行しないように設定し、ファジーセレクタ、画像セレクタ、および/または有効なアンカーを実行するように設定することを含む、請求項10に記載のコンピュータプログラム。
【請求項16】
非一時的なコンピュータ読み取り可能な媒体上に格納されたコンピュータプログラムであって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
デザイナアプリケーションによって、アプリケーションまたはUIタイプのデフォルトのターゲティング方法設定を自動的に事前構成し、
前記アプリケーションまたはUIタイプの前記デフォルトのターゲティング方法設定を使用して、ロボティックプロセスオートメーション(RPA)ワークフロー内の1または複数のアクティビティを構成し、
前記1または複数の構成されたアクティビティを含む前記RPAワークフローを実装するためのRPAロボットを生成するように構成される、コンピュータプログラム。
【請求項17】
ユーザーが前記RPAワークフロー内のアクティビティに関連付けられたUI要素の前記デフォルトのターゲティング方法設定を変更すると、前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、
前記デフォルトのターゲティング方法設定の代わりに、前記変更された設定を前記アクティビティに使用するようにさらに構成される、請求項16に記載のコンピュータプログラム。
【請求項18】
前記デフォルトのターゲティング方法設定に対する変更は、前記アプリケーションまたはUIタイプに対して1または複数のターゲティング方法を使用するか否かを含む、請求項17に記載のコンピュータプログラム。
【請求項19】
前記デフォルトのターゲティング方法設定は、フルセレクタ、ファジーセレクタ、もしくは画像セレクタのいずれを使用するか否か、アンカーを有効にするか否か、またはそれらの組み合わせを含む、請求項16に記載のコンピュータプログラム。
【請求項20】
前記アプリケーションがウェブブラウザである場合、前記デフォルトのターゲティング方法設定の前記事前設定は、フルセレクタを実行しないように設定し、ファジーセレクタ、画像セレクタ、および/または有効なアンカーを実行するように設定することを含む、請求項16に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2020年9月9日に出願された米国非仮特許出願第17/016,251号の利益を主張し、これは、2020年9月8日に出願された米国非仮特許出願第17/014,171号の続きであり、その利益を主張するものである。これらの先に出願された出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
【0002】
本発明は概して、グラフィカル要素検出に関するものであり、より具体的には、アプリケーションおよび/またはUIタイプレベルでの組み合わせた直列および遅延並列実行統一ターゲット技術、デフォルトのUI要素検出技術構成を実行したグラフィカル要素検出の実行、またはその両方に関するものである。
【背景技術】
【0003】
UIにおけるロボティックプロセスオートメーション(RPA)の場合、UIのアクションごとに、セレクタ、コンピュータビジョン(CV)、または光学的文字認識(OCR)を用いて、グラフィカル要素検出を行ってもよい。しかし、これらの技術は典型的には個別に適用され、全てのシナリオに最適なものではない。したがって、改良されたアプローチが有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のグラフィカル要素検出技術よってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、組み合わせた直列および遅延並列実行統一ターゲット技術を使用するグラフィカル要素検出に関する。特定の実施形態は、アプリケーションおよび/またはUIタイプレベルでのデフォルトのUI要素検出技術構成に関係する。この構成を使用して、実行時にUI要素を検出し得る。
【0005】
実施形態では、UI内のグラフィカル要素を検出するためのコンピュータ実装方法は、デザイナアプリケーションによって、統一ターゲット技術を使用してグラフィカル要素検出を実行するように構成されるRPAワークフロー内のアクティビティの選択を受信することを含む。コンピュータ実装方法はまた、デザイナアプリケーションにより、アクティビティの統合ターゲット技術に対する変更を受信し、デザイナアプリケーションにより、変更に基づいてアクティビティを構成することを含む。統一ターゲット技術は、複数のグラフィカル要素検出技術を採用するように構成された、組み合わせた直列および遅延並列実行統一ターゲット技術である。
【0006】
別の実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に格納される。コンピュータプログラムは、少なくとも1つのプロセッサが実行時にUIを分析してUI要素属性を識別し、1または複数の初期グラフィカル要素検出技術を使用してRPAワークフローのアクティビティについてUI要素属性をUI記述子属性と比較するように構成される。第1期間中に1または複数の初期グラフィカル要素検出技術を使用して一致が検出されなかった場合、コンピュータプログラムは、少なくとも1つのプロセッサが1または複数の初期グラフィカル要素検出技術と並行して1または複数の追加のグラフィカル要素検出技術を実行するように構成される。
【0007】
さらに別の実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に格納される。コンピュータプログラムは、少なくとも1つのプロセッサが実行時にUIを分析してUI要素属性を識別し、1または複数の初期グラフィカル要素検出技術を使用してRPAワークフローのアクティビティについてUI要素属性をUI記述子属性と比較するように構成される。第1期間中に1または複数の初期グラフィカル要素検出技術を使用して一致が検出されなかった場合、コンピュータプログラムは、少なくとも1つのプロセッサが1または複数の初期グラフィカル要素検出技術の代わりに1または複数の追加のグラフィカル要素検出技術を実行するように構成される。
【0008】
さらに別の実施形態では、UI内のグラフィカル要素を検出するためのコンピュータ実装方法は、RPAデザイナアプリケーションにより、アプリケーションまたはUIタイプの選択を受信することを含む。コンピュータ実装方法は、RPAデザイナアプリケーションによって、デフォルトのターゲティング方法設定構成を受信し、保存することも含む。コンピュータ実装方法は、RPAデザイナアプリケーションによって、自動化される画面の表示を受信することをさらに含む。画面は、選択されたアプリケーションまたはUIタイプに関連する。さらに、コンピュータ実装方法は、RPAデザイナアプリケーションによって、選択されたアプリケーションまたはUIタイプのデフォルトのターゲティング方法設定を自動的に事前構成することを含む。
【0009】
別の実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に格納される。コンピュータプログラムは、少なくとも1つのプロセッサが選択されたアプリケーションまたはUIタイプのためのデフォルトのターゲティング方法設定を自動的に事前構成するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサがアプリケーションまたはUIタイプのデフォルトのターゲティング方法設定に対する変更を受信し、変更に従ってデフォルトのターゲティング方法設定を構成するように構成される。コンピュータプログラムはさらに、少なくとも1つのプロセッサがアプリケーションまたはUIタイプのデフォルトのターゲティング方法設定を使用して、RPAワークフローにおいて1または複数のアクティビティを構成するように構成される。
【0010】
さらに別の実施形態では、コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体上に格納される。コンピュータプログラムは、少なくとも1つのプロセッサが、デザイナアプリケーションによって、アプリケーションまたはUIタイプのデフォルトターゲティング方法設定を自動的に事前構成し、アプリケーションまたはUIタイプのデフォルトターゲティング方法設定を使用して、RPAワークフロー内の1または複数のアクティビティを構成するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサが1または複数の構成されたアクティビティを含むRPAワークフローを実施するためのRPAロボットを生成するように構成される。
【図面の簡単な説明】
【0011】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0012】
図1】本発明の実施形態による、ロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
【0013】
図2】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0014】
図3】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0015】
図4】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0016】
図5】本発明の実施形態による、組み合わせた直列および遅延並列実行統一ターゲット技術および/またはアプリケーションまたはUIタイプによって構成された1もしくは複数のデフォルトのターゲティング方法を使用してグラフィカル要素検出を実行するように構成されたコンピューティングシステムを例示するアーキテクチャ図である。
【0017】
図6A】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
図6B】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
図6C】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
図6D】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
図6E】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
図6F】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
図6G】本発明の実施形態による、RPAデザイナアプリケーションのための統一ターゲット構成インターフェースを示す。
【0018】
図7A】本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルでターゲティング方法を構成するためのターゲティング方法構成インターフェースを示す。
図7B】本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルでターゲティング方法を構成するためのターゲティング方法構成インターフェースを示す。
図7C】本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルでターゲティング方法を構成するためのターゲティング方法構成インターフェースを示す。
【0019】
図8】本発明の実施形態による、RPAワークフローにおけるアクティビティのための統一ターゲット機能を構成するためのプロセスを示すフローチャートである。
【0020】
図9A】本発明の実施形態による、組み合わせた直列および遅延並列実行統一ターゲット技術を使用したグラフィカル要素検出のためのプロセスを例示するフローチャートである。
図9B】本発明の実施形態による、組み合わせた直列および遅延並列実行統一ターゲット技術を使用したグラフィカル要素検出のためのプロセスを例示するフローチャートである。
【0021】
図10A】本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルでデフォルトのグラフィカル要素検出技術を構成し、グラフィカル要素検出を実行するためのプロセスの、それぞれ設計時間部分および実行時間部分を示すフローチャートである。
図10B】本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルでデフォルトのグラフィカル要素検出技術を構成し、グラフィカル要素検出を実行するためのプロセスの、それぞれ設計時間部分および実行時間部分を示すフローチャートである。
【発明を実施するための形態】
【0022】
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
【0023】
(実施形態の詳細な説明)
いくつかの実施形態は、複数のグラフィカル要素検出技術(例えば、セレクタ、CV、OCRなど)を潜在的に使用する組み合わせた直列および遅延並列実行の統一ターゲット技術を使用したグラフィカル要素検出に関する。本明細書では、「グラフィカル要素」と「UI要素」は互換的に使用される。それらの中核となるUI記述子は、UI要素(例えば、テキストフィールド、ボタン、ラベル、メニュー、チェックボックスなど)を識別する。UI記述子のいくつかのタイプは、セレクタ、CV記述子、画像マッチング記述子、OCR記述子、複数の異なるタイプのUI記述子を直列または並列に利用してもよい統一ターゲット記述子などを含むが、これらに限定されない。UI記述子は、与えられたUI記述子の属性を、UI内で実行時に発見されたUI要素属性と比較するために使用され得る。
【0024】
いくつかの実施形態では、UI記述子は、それぞれのUI要素およびその親の属性を、例えば、拡張可能なマークアップ言語(XML)フラグメントに格納する。実行時には、UIで見つかったUI要素属性は、それぞれのRPAワークフローアクティビティの属性との一致を検索され得、完全一致または「十分に近い」一致が一致しきい値内で見つかった場合には、UI要素が識別され、それに応じて対話され得る。属性には、テキストベースの識別子(ID)、クラス、ロールおよび同様のものなどが含まれていてもよい。CVの場合、属性は、ターゲット要素のタイプと、マルチアンカーマッチングアプローチで使用され得る1または複数のアンカー要素との関係を含んでもよい。OCRの場合、属性は、例えば、格納された文字列の形をしたテキストと、実行中に格納された文字列がファジーマッチングされたOCRを介して発見されたテキストとを含んでもよい。本発明の範囲を逸脱することなく、任意の好適な属性およびグラフィカル要素検出技術を用いることができる。
【0025】
本明細書で使用されるように、「画面」とは、ある時点でのアプリケーションUIまたはアプリケーションUIの一部の画像である。いくつかの実施形態では、UI要素および画面は、特定のタイプのUI要素(例えば、ボタン、チェックボックス、テキストフィールドなど)および画面(例えば、トップウィンドウ、モーダルウィンドウ、ポップアップウィンドウなど)にさらに区別されてもよい。
【0026】
いくつかの実施形態では、UI要素とその親の属性をXMLフラグメントに格納するUI記述子を使用する。最近のコンピューティングシステムでは、オペレーティングシステムは通常、各ユーザーインターフェースを一般的にUIツリーと呼ばれる階層的なデータ構造として表現する。例示的なUIツリーは、ウェブブラウザアプリケーションによってレンダリングされるウェブページの基礎となるドキュメントオブジェクトモデル(DOM(Document Object Model))を含み得る。
【0027】
セレクタは、いくつかの実施形態においてUI要素を検出するために使用され得るUI記述子に対するタイプである。セレクタは、いくつかの実施形態では、以下の構造を有する。
<node_1/><node_2/>...<node_N/>
【0028】
最後のノードは対象のGUI要素を表し、それ以前の全てのノードはその要素の親を表す。<node_1>は通常ルートノードと呼ばれ、アプリケーションのトップウィンドウを表す。
【0029】
各ノードは、選択されたアプリケーションの特定のレベルの正しい識別を支援する1または複数の属性を有してもよい。各ノードは、いくつかの実施形態では、以下の形式を有する。
<ui_system attr_name_1=’attr_value_1’ ... attr_name_N=’attr_value_N’/>
【0030】
全ての属性は、割り当てられた値を有し得、一定の値を有する属性が選択され得る。これは、アプリケーションが起動するたびに属性の値を変更すると、セレクタが関連する要素を正しく識別できなくなる可能性があるからである。
【0031】
UI記述子とは、UI要素を見つけるための命令のセットである。いくつかの実施形態におけるUI記述子は、UI要素セレクタ(複数可)、アンカーセレクタ(複数可)、CV記述子(複数可)、OCR記述子(複数可)、2つのタイプ以上のUI記述子を組み合わせた統一ターゲット記述子(複数可)、画面イメージキャプチャ(コンテキスト)、要素イメージキャプチャ、他のメタデータ(例えば、アプリケーションおよびアプリケーションバージョン)、それらの組み合わせなどを含むカプセル化されたデータ/構造フォーマットである。カプセル化されたデータ/構造フォーマットは、プラットフォームへの将来のアップデートによって拡張可能であってもよく、上記の定義に限定されるものではない。画面上のUI要素を識別するためのUI記述子としては、本発明の範囲を逸脱することなく、任意の好適なものを使用することができる。RPAワークフロー内のアクティビティからUI記述子が抽出され、UIアプリケーション、画面、およびUI要素ごとにUI記述子をグループ化する構造化スキーマに追加され得る。
【0032】
UI記述子は、いくつかの実施形態では、画像の検出および定義が実行される複数または全てのUI要素検出メカニズムを包含する統一ターゲットと協働してもよい。統一ターゲットは、UI要素を識別して自動化する複数の技術を、単一のまとまりのあるアプローチに併合してもよい。統一ターゲット記述子は、複数のタイプのUI記述子を直列に連鎖させ、それらを並列に使用し、または、少なくとも1つの技術(例えば、セレクタ)を最初に一定期間使用し、最初の技術が期間内に一致を見つけられなかった場合には、次いで少なくとも1つの他の技術を並列または交互に実行する。いくつかの実施形態では、統一ターゲット記述子は、第1コンテキストでは第1UI記述子メカニズムが適用され、第2コンテキストでは第2UI記述子が適用されるなど、有限状態機械(FSM)のように機能してもよい。統一ターゲットは、セレクタベースのUI検出メカニズムとドライバベースのUI検出メカニズムに優先順位をつけ、いくつかの実施形態では最初の2つのメカニズムが成功しない場合、グラフィカル要素を見つけるためにCV、イメージマッチング、および/または他のメカニズムに頼ってもよい。
【0033】
いくつかの実施形態では、ファジーマッチングが採用されてもよく、ここでは、文字列メトリック(例えば、レーベンシュタイン距離、ハミング距離、ジャロ・ウィンクラー距離など)、それらの組み合わせなどを使用して、1つまたは複数の属性が、一定の範囲内で、一定の精度(例えば、70%一致、80%一致、99%一致など)で一致しなければならない。当業者であれば、類似度測定は、類似度の量だけでなく、2つの属性値の間の不一致の量を定量化することができることを理解するであろう。さらに、様々な実施形態では、類似度しきい値は、不一致の最大量または一致に必要な類似度の最小量を表してもよい。
【0034】
類似度測定値を計算する選択された方法に応じて、類似度しきい値は様々な解釈を有し得る。例えば、類似度しきい値は、2つの文字列の間で異なり得る文字の最大カウント数を示してもよいし、文字の合計カウント数(例えば、結合された文字列の長さ)の割合として計算された不一致の分数の程度を示してもよい。いくつかの実施形態では、類似度しきい値は、0と1の間、0と100の間、7と34の間などの所定の間隔に再スケーリングされてもよい。1つの非限定的な例では、比較的高い類似度しきい値(例えば、1または100%に近い)は、ほぼ完全一致の要件、すなわち、実行時間ターゲットにおけるファジー属性の値が、設計時間ターゲットにおける各属性の値から非常にわずかに逸脱することしか許されないことを示す。一方、類似度しきい値が比較的低い(例えば、0に近い)場合には、それぞれのファジー属性のほぼ全ての値が一致するとみなされる。
【0035】
特定の実施形態では、マッチング許容差は属性の基準ごとに異なっていてもよい。例えば、1または複数の属性に対して完全一致が要求されてもよく(例えば、特定の正確な名前を見つけることが望まれてもよい)、1または複数の他の属性に対してファジーマッチングが実行されてもよい。各グラフィカル要素検出技術から使用される属性の数および/またはタイプは、いくつかの実施形態では、RPA開発者によってカスタム指定されてもよい。
【0036】
いくつかの実施形態では、属性は、属性-値のペアおよび/または属性-値-許容差のペア(例えば、ファジーマッチング)として格納されてもよい。属性-値のペアは、いくつかの実施形態では、それぞれのノードによって表されるUI要素の名前とタイプを示し得る。しかしながら、当業者は、本発明の範囲から逸脱することなく、属性-値のペアのリスト以外に、UIツリー内の特定のノードの位置を表現する複数の方法があり得ることを理解するであろう。
【0037】
これらの属性-値のペアおよび/または属性-値-許容差のペアは、いくつかの実施形態ではタグに格納されてもよく、各タグは、実装固有の区切り文字(例えば、「<」で始まり「/>」で終わる)によってブックエンドされたシーケンスを有する文字の列を含み得る。属性-値のペアは、いくつかの実施形態では、それぞれのノードによって表されるUI要素の名前とタイプを示し得る。しかしながら、当業者は、本発明の範囲から逸脱することなく、属性-値のペアのリスト以外に、UIツリー内の特定のノードの位置を表現する複数の方法があり得ることを理解するであろう。
【0038】
RPAロボットによる成功的かつ理想的に曖昧さのない識別を可能にするために、いくつかの実施形態では、それぞれのUI要素を特徴づける要素IDを使用して各UI要素を表現する。いくつかの実施形態では、要素IDは、UIツリー内のターゲットノードの位置を示し、ここで、ターゲットノードはそれぞれのUI要素を表す。例えば、要素IDは、ターゲットノード/UI要素を、選択されたノードのサブセットのメンバーとして識別してもよい。選択されたノードのサブセットは、系図、すなわち、各ノードが別のノードの先祖または子孫のいずれかであるUIツリーを介した下降線を形成することができる。
【0039】
いくつかの実施形態では、要素IDは、ノードインジケータの順序付けされたシーケンスを含み、シーケンスはUIツリーを介して系図的な経路を追跡し、経路はそれぞれのターゲットノード/UI要素で終わる。各ノードインジケータは、それぞれのUIのオブジェクト階層のメンバーと、それぞれの階層と一致するシーケンス内のその位置を表してもよい。例えば、シーケンスの各メンバーは、前のメンバーの子孫(例えば、子ノード)を表し、次のメンバーを子孫(例えば、子ノード)としてもよい。1つのハイパーテキストマークアップ言語(HTML)の例では、個々のフォームフィールドを表す要素IDは、それぞれのフォームフィールドがHTMLフォームの子であることを示してもよく、その子は、順番にウェブページの特定のセクションなどの子である。系図は、いくつかの実施形態では完全である必要はない。
【0040】
いくつかの実施形態では、1または複数のマルチアンカーマッチング属性を使用してもよい。アンカーは、ターゲットUI要素を一意に識別するのを助けるために使用され得る他のUI要素である。例えば、UIに複数のテキストフィールドが含まれている場合、テキストフィールドを検索するだけでは、与えられたテキストフィールドを一意に識別するには不十分である。したがって、いくつかの実施形態では、与えられたUI要素を一意に識別するために、追加の情報を探す。テキストフィールドの例を使用すると、「ファーストネーム(First Name)」というラベルの右側に、ファーストネームを入力するためのテキストフィールドが表示される場合があり得る。このファーストネームラベルは、「ターゲット」であるテキストフィールドを一意に識別するのに役立つように、「アンカー」として設定してもよい。
【0041】
いくつかの実施形態では、ターゲットとアンカーの間の様々な位置および/または幾何学的な関連付けが、ターゲットを一意に識別するために、潜在的に1つまたは複数の許容差内で使用される可能性がある。例えば、アンカーとターゲットのバウンディングボックスの中心が線セグメントを定義するために使用されてもよい。次いで、この線セグメントは、ターゲット/アンカーペアを使用してターゲットを一意に識別するために、許容差内の特定の長さおよび/または許容差内の傾きを有することが要求され得る。しかしながら、ターゲットおよび/またはアンカーに関連付けられた位置の任意の所望の位置は、本発明の範囲から逸脱することなく、いくつかの実施形態において使用され得る。例えば、線セグメントを描画するための点は、バウンディングボックス特性に関連して識別される、バウンディングボックスの境界上の中央、左上隅、右上隅、左下隅、右下隅、他の任意の位置、バウンディングボックス内の任意の位置、バウンディングボックスの外側の位置内などにあり得る。特定の実施形態では、ターゲットおよび1または複数のアンカーは、幾何学的マッチングのために使用されるそれらのバウンディングボックス内またはバウンディングボックス外の異なる位置を有してもよい。
【0042】
以上のように、画面上のターゲット要素を一定の信頼性をもって一意に識別するためには、単一のアンカーだけでは必ずしも十分ではない場合がある。例えば、画面上の異なる位置にある「ファーストネーム」というラベルのそれぞれの右側に、ファーストネームを入力するための2つのテキストフィールドが表示されているウェブフォームを考えてみる。この例では、1または複数の追加のアンカーは、所与のターゲットを一意に識別するのに有用であり得る。アンカーとターゲットとの間の幾何学的特性(例えば、許容差を有する線セグメントの長さ、角度、および/または相対位置)は、ターゲットを一意に識別するために使用されてもよい。ユーザーは、ターゲットに対する一致強度がしきい値を超えるまでアンカーを追加し続けることが要求されてもよい。
【0043】
本明細書で使用されるように、用語「ユーザー」および「開発者」は互換的に使用される。ユーザー/開発者は、プログラミングおよび/または技術的な知識を持っている場合と持っていない場合がある。例えば、いくつかの実施形態では、ユーザー/開発者は、手動でコーディングすることなく、RPAワークフロー内のアクティビティを構成することにより、RPAワークフローを作成し得る。特定の実施形態では、これは、例えば、様々な機能をクリックしてドラッグアンドドロップすることによって行われてもよい。
【0044】
いくつかの実施形態では、デフォルトのUI要素検出技術(本明細書では「ターゲティング方法」とも呼ばれる)は、アプリケーションおよび/またはUIタイプレベルで構成され得る。与えられたアプリケーションおよび/またはUIタイプではうまく機能するUI要素検出技術は、別のアプリケーションおよび/またはUIタイプではうまく機能しない場合がある。例えば、Java(登録商標)ウィンドウでうまく機能する技術は、ウェブブラウザのウィンドウではうまく機能しない場合がある。したがって、ユーザーは、与えられたアプリケーションおよび/またはUIタイプに対して最も効果的な技術(複数可)を使用するようにRPAロボットを構成し得る。
【0045】
特定の実施形態は、ロボティックプロセスオートメーション(RPA)に採用されてもよい。図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0046】
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の実行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0047】
ワークフローのタイプには、シーケンス、フローチャート、FSM、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、実行エラーに遭遇したときのワークフローの動作を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0048】
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの実行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを実行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイント、または統合ポイントの1つとして動作し得る。
【0049】
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して実行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされてもよいし、自動的に発生するようにスケジュールされてもよく、同じコンピューティングシステム上で人と並んで動作し得る。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0050】
アンアテンディッドロボット134は、仮想環境または物理マシン上で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート実行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110から実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイル装置アプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0051】
コンダクタ120は、プロビジョニング、デプロイメント、バージョニング、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。デプロイメントは、実行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。バージョニングは、いくつかの実施形態では、いくつかのプロセスまたは構成の固有のインスタンスの管理を含んでもよい。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として動作することにより、相互接続性を提供し得る。
【0052】
ロボット130は、デザイナ110で構築されたワークフローを実行する実行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0053】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置され得る。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
【0054】
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と実行ホスト(すなわち、ロボット130が実行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0055】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と実行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0056】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0057】
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが何を実行しているかをより容易に実行し、識別し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで実行し得る。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0058】
図2は、本発明の実施形態による展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、図1のRPAシステム100であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216を含む。しかし、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212はプロセスを実行する。図2に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、コンダクタ230は、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
【0059】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数の対話型セッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0060】
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、実行されるパッケージの必要なバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0061】
サーバー側には、プレゼンテーション層(ウェブアプリケーション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からのウェブページと対話する。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0062】
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方により消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0063】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に実行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0064】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0065】
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットにより記録されたメッセージを(インデクササーバー250に加えて、またはインデクササーバー250に代えて)格納してもよい。
【0066】
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0067】
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含んでもよい。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを識別することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含むが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を識別してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を識別し、その上にホバーし得る。要素の有無の検出は、上述した技術を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千でさえのアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
【0068】
UI自動化アクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、UI層を介したアプリケーションとの対話を促進する特別な低レベルのアクティビティのサブセットである。特定の実施形態では、UI自動化アクティビティ300は、例えば、ウィンドウメッセージなどを介したユーザー入力をシミュレートしてもよい。UI自動化アクティビティ330は、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、これらの対話を促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0069】
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSと対話してもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0070】
図4は、本発明の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、図1および/または図2のRPAシステム100および/または200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。コンダクタコンピューティングシステム420は、順番に、データベースサーバー430および任意のインデクササーバー440と通信することができる。
【0071】
図1および図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、いずれかの適切なクライアントおよび/またはサーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0072】
図5は、本発明の実施形態による、組み合わせた直列および遅延並列実行統一ターゲット技術および/またはアプリケーションまたはUIタイプによって構成された1もしくは複数のデフォルトのターゲティング方法を使用してグラフィカル要素検出を実行するように構成されたコンピューティングシステム500を例示するアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0073】
コンピューティングシステム500は、プロセッサ(複数可)510によって実行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0074】
さらに、コンピューティングシステム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または複数のアンテナを含み得る。
【0075】
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示装置およびハプティックI/Oを使用することができる。
【0076】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御装置535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力装置および/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0077】
メモリ515は、プロセッサ(複数可)510により実行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部または一部、またはその派生物を実行するように構成された、組み合わせた直列-および-並列の統一ターゲット/デフォルトのターゲティング方法モジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0078】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分散された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部またはその他の方法でアクセス可能であり得る。本発明の範囲を逸脱することなく、任意の局所化されたアーキテクチャまたは分散アーキテクチャを使用し得る。
【0079】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0080】
モジュールはまた、様々なタイプのプロセッサにより実行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、実行可能コードの識別された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、実行可能な識別されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュ装置、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0081】
実際、実行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリ装置間に分散されていてもよい。同様に、操作データは、モジュール内で識別され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。操作データは、単一のデータセットとして収集されてもよいし、または異なる記憶装置にわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0082】
図6A~Gは、本発明の実施形態による、RPAデザイナアプリケーション600のための統一されたターゲット構成インターフェースを示す。この実施形態では、RPA開発者は、RPAワークフロー内のアクティビティのために、統一ターゲット機能をカスタム設定し得る。RPAデザイナアプリケーション600は、クリックアクティビティ612を有するRPAワークフロー開発ペイン610を含む。RPAデザイナアプリケーション600はまた、統一ターゲット構成ペイン620を含む。ユーザーがUI内のグラフィカル要素と相互作用するアクティビティをクリックすると、統一ターゲット構成ペイン620は、そのアクティビティの統一ターゲットオプションを示す。
【0083】
図6Aに示すように、シリアル実行セレクタ630は、RPA開発者が、アクティビティ612のための統一ターゲット技術を個別に直列に実行するか、または遅延並列実行の少なくとも1つの段階と並列に実行するかを選択することを可能にする。シリアル実行が選択されている場合、技術の実行順序は、ドロップダウン632を使用して指定し得る。図6Bを参照。選択された技術634(複数可)は、選択後に表示され、各技術のタイムアウトは、タイムアウトフィールド636を介して指定され得る。図6Cを参照。
【0084】
遅延並列実行が望まれる場合、シリアル実行セレクタ630の値は「いいえ」に設定されてもよく、その後、RPA開発者は、初期技術セレクタ640を介して1または複数の初期技術が使用されるかどうかを選択することができる。図6Dを参照。なお、初期技術セレクタ640が「いいえ」に設定されている場合には、統一ターゲットのグラフィカル要素検出技術を並行して実行してもよい。ただし、初期技術セレクタ640が「はい」に設定されている場合には、初期技術を選択するためのドロップダウン642が表示される。図6Eを参照。しかし、いくつかの実施形態では、1または複数の初期技術は自動的に実行され、RPA開発者によって構成され得ない。例えば、セレクタベースのアプローチは他のものよりも速いかもしれないし、最初に試され得る。特定の実施形態では、1または複数のデフォルトの初期技術が示されてもよく、RPA開発者は、これらを変更してもよい(例えば、新しい技術を追加すること、デフォルトの技術を削除することなどによって)。いくつかの実施形態では、RPA開発者は初期技術(複数可)を構成することはできないが、遅延並列技術(複数可)を構成し得る。
【0085】
初期技術644が選択されると、残りの技術がリストされた状態で並列技術ドロップダウン646が表示される。図6Fを参照。いくつかの実施形態では、グラフィカル要素検出技術のタイプは、アクティビティによって実装されたアクション(例えば、クリック、テキスト取得、ホバーなど)、グラフィカル要素のタイプ(例えば、ボタン、テキストフィールドなど)、および/またはRPA開発者によって示された特定のグラフィカル要素(例えば、ユーザーが画面上でどの要素を選んだか、およびアプリケーション内にどのような他の要素が存在するか)に基づいて、自動的に選択される。特定のグラフィック要素に関しては、例えば、RPA開発者が1つのOKボタンをクリックしても、画面上に2つのOKボタンがある場合には、他の2つの同じOKボタンを区別するために、いくつかの属性が自動的に追加され得る。例えば、UIツリーを使用する場合、UIツリーは通常、RPA開発者が画面上にグラフィカル要素を表示したときに、UIツリーの属性の少なくとも一部が、そのグラフィカル要素に対して他のグラフィカル要素と異なるように構築される。
【0086】
RPA開発者は、追加リンク645を介してさらに多くの初期技術を追加してもよいし、RPA開発者は、以前に選択された初期技術を削除してもよい。いくつかの実施形態では、RPA開発者が初期技術セレクタ640に対して「いいえ」を選択すると、並列技術ドロップダウン646が依然として表示され、RPA開発者は、どの技術を並列に実行するかをカスタム選択し得る。並列技術647が選択された後も、RPA開発者は、追加リンク648を介してさらに並列技術を追加してもよく、またはRPA開発者は、以前に選択された並列技術を削除してもよい。図6Gを参照。初期技術(複数可)の実行が開始された後、並列技術(複数可)の実行を待つ時間がどのくらい長いかの遅延は、遅延フィールド649を介して指定し得る。マルチアンカー技術がターゲットおよび1または複数のアンカーを識別するために使用されるいくつかの実施形態では、統一ターゲット設定は、ターゲットおよび各アンカーのためにカスタム設定されてもよく、または同じ設定がターゲットおよびアンカー(複数可)に適用されてもよい。
【0087】
いくつかの実施形態では、複数の遅延期間が使用されてもよい。例えば、初期技術を1秒間使用してもよく、一致が見つからない場合には、初期技術と並行して1または複数の他の技術を使用してもよく、第2期間中に一致が見つからない場合には、さらに他の技術を並行して適用してもよいなどである。各遅延期間中の遅延期間および/または技術の任意の数は、本発明の範囲から逸脱することなく、使用され得る。
【0088】
いくつかの実施形態では、相互に排他的なシリアルステージが採用されてもよい。例えば、初期技術を1秒間使用してもよく、一致が見つからない場合には、初期技術の代わりに1または複数の他の技術を使用してもよく、第2期間中に一致が見つからない場合には、初期技術および第2期間技術(複数可)などの代わりに、さらに他の技術(複数可)を適用してもよい。このようにして、成功していないように見える技術は停止され、潜在的にリソース要件を低減し得る。
【0089】
図7Aは、本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルで構成するための崩壊したターゲティング方法構成インターフェース700を示す。この実施形態では、ユーザーは、ウェブブラウザ、Java(登録商標)、SAP(登録商標)、Microsoft(登録商標) UI Automation (UIA) デスクトップ、Active Accessibility (AA) デスクトップ、およびMicrosoft(登録商標) Win32 デスクトップのターゲティング方法を構成し得る。これらのアプリケーションおよび/または表示タイプのそれぞれは、ユーザーによって個別に構成されてもよい。
【0090】
図7Bに戻ると、ユーザーは、SAP(登録商標)ターゲティング方法タブ710を使用して、SAP(登録商標)のデフォルトのターゲティング方法を構成した。現在、SAP(登録商標)には強力で信頼性の高いセレクタがあるため、フルセレクタ712の実行値は「真」に設定される。ファジーセレクタ714、画像セレクタ716、およびイネーブルアンカー718(すなわち、ターゲット/アンカー機能を用いてターゲットの識別を可能にするため)の実行値は、「偽」に設定される。
【0091】
しかし、この技術は全てのアプリケーションおよび/またはUIタイプには有効ではない場合がある。例えば、セレクタは属性の値が動的に変化する傾向があるため、多くの最新のウェブブラウザではうまく機能しないかもしれない。図7Cに戻ると、ユーザーは、ウェブターゲティング方法タブ720を使用して、ウェブブラウザのデフォルトのターゲティング方法を構成した。入力モード722は、ドロップダウンメニュー723を介して「シミュレート」に設定される。これはウェブ固有の設定であり、ウェブアプリケーションおよび/または他のアプリケーション/UIタイプのための他のアプリケーションおよび/またはUIタイプ固有の設定は、本発明の範囲から逸脱することなく含まれ得る。いくつかの実施形態では、アプリケーションが自動化される場合、アプリケーションと対話するための異なるメカニズム(例えば、マウスクリック、キープレスなどを提供する)が使用されてもよい。「シミュレート」は、ユーザーが同様の対話を実行した場合にウェブブラウザがシステムから受信する入力をシミュレートする。
【0092】
多くのウェブブラウザではフルセレクタを使用することは正確ではないため、フルセレクタ設定724の実行値は「偽」に設定される。一方、ファジーセレクタ725、画像セレクタ726、およびイネーブルアンカー727の実行値は「真」に設定される。これは、図7BのSAP(登録商標)ターゲティング方法タブ710とは逆の構成である。
【0093】
アプリケーションごとおよび/またはUIタイプごとにターゲティング方法を構成することで、彼または彼女が画面上に要素を示す際に、ユーザーは各グラフィカル要素を再構成する必要がなくなる。例えば、ユーザーがウェブブラウザでテキストフィールドを示す場合、そのテキストフィールドに対するターゲティング方法は、ユーザーがその都度行って、フルセレクタの実行値を「偽」に設定したり、ファジーセレクタの実行値を「真」に設定したりなどすることなく、ユーザーが事前構成した通りのものになるだろう。しかし、デフォルト構成とは異なるターゲティング方法の構成を使用して、より正確に検出される可能性のある特定のUI要素が存在する場合には、いくつかの実施形態において、ユーザーはこれらのデフォルト値を変更することができることに留意すべきである。
【0094】
他のターゲティング方法の設定も可能であることに留意すべきである。例えば、いくつかの実施形態では、CV、OCR、またはそれらの組み合わせが使用されてもよい。実際、本発明の範囲から逸脱することなく、任意の適切なグラフィカル要素検出技術を使用することができる。
【0095】
図8は、本発明の実施形態による、RPAワークフローにおけるアクティビティのための統一ターゲット機能を構成するためのプロセス800を示すフローチャートである。いくつかの実施形態では、プロセス800は、図6A-6GのRPAデザイナアプリケーション600によって実行されてもよい。プロセスは、統一ターゲットを使用してグラフィカル要素検出を実行するように構成されたRPAワークフロー810でアクティビティの選択を受信することから始まる。いくつかの実施形態では、統一ターゲット機能は、820において自動的に事前構成される。特定の実施形態では、この事前構成は、グラフィカル要素検出技術のタイプ、グラフィカル要素のタイプ、および/またはRPA開発者によって示される特定のグラフィカル要素に基づいてもよい。
【0096】
RPAデザイナアプリケーションは、アクティビティのための統一ターゲット機能をカスタム構成するために、RPA開発者から統一ターゲット機能に対する変更を830で受信してもよい。次に、RPAデザイナアプリケーションは、840で統一ターゲット構成に基づいてアクティビティを構成する。より多くのアクティビティが構成される場合、RPA開発者は別のアクティビティを選択してもよく、プロセスはステップ810に戻る。所望のアクティビティ(複数可)が構成されると、RPAデザイナアプリケーションは、構成されたアクティビティ(複数可)を含むRPAワークフローを実装するためのRPAロボットを850で生成する。次いでプロセスは終了し、図9Aに進む。
【0097】
図9Aおよび図9Bは、本発明の実施形態による、組み合わせた直列および遅延並列実行統一ターゲット技術を使用したグラフィカル要素検出のためのプロセス900を例示するフローチャートである。いくつかの実施形態では、プロセス900は、図6A~GのRPAデザイナアプリケーション600を介して作製されたRPAロボットによって実行時に実装されてもよい。プロセスは、UI(例えば、スクリーンショット、アプリケーションウィンドウの画像など)を分析して、UI要素属性を910で識別することから始まる。UI要素属性は、画像、テキスト、グラフィカル要素間の関係、UI内のグラフィカル要素の階層的表現などを含んでもよいが、これらに限定されるものではない。識別は、CV、OCR、APIコール、テキストファイル(例えば、HTML、XMLなど)の分析、それらの組み合わせなどを介して実行されてもよい。
【0098】
UIが解析された後、920で統一ターゲットを使用してアクティビティについてUI要素属性を解析する。図9Bに戻ると、1または複数の初期グラフィカル要素検出技術は、922において(潜在的に並列に)実行される。初期技術(複数可)について924で第1期間(例えば、10分の1秒以内、1秒以内、10秒以内など)に一致が見つかった場合、この一致からの結果が926で選択される。
【0099】
もし、924での初期技術期間で一致が見つからない場合、928で、1または複数の追加のグラフィカル要素検出技術が並列に実行される。929での第2期間に一致が見つかった場合、次いで全ての初期技術および後続の並列技術から一致を見つけるための最初の技術の結果が926で選択され、プロセスはステップ930に進む。いくつかの実施形態では、グラフィカル要素の一致を見つけることは、ターゲットとしてのグラフィカル要素自体とそのアンカー(複数可)の一致を見つけることを含んでもよく、それぞれの一致を見つけるための最初の技術は、そのそれぞれのターゲット/アンカーのために選択されてもよい。929での第2期間に一致が見つからない場合、プロセスはまたステップ930に進む。いくつかの実施形態では、遅延並列実行の複数の段階が実行される。特定の実施形態では、異なる技術が各段階で実行され、前の技術が停止される。
【0100】
一致するUI要素が930で統一ターゲットを介して見つかった場合、UI要素を含むアクティビティに関連付けられたアクションが940で実行される(例えば、ボタンをクリックする、テキストを入力する、メニューと対話するなど)。また、950でより多くのアクティビティがある場合には、次のアクティビティのためにステップ920にプロセスが進む。しかし、930でグラフィカル要素検出技術の属性に一致するUI要素が見つからない場合、例外が投げられるか、または960で彼または彼女がどのように進みたいか(例えば、実行を継続するかどうか)をユーザーに尋ねられ、プロセスは終了する。
【0101】
図10Aおよび10Bは、本発明の実施形態による、アプリケーションおよび/またはUIタイプレベルでグラフィカル要素検出技術を構成し、グラフィカル要素検出を実行するためのプロセス1000の、それぞれ設計時間部分および実行時間部分を示すフローチャートである。いくつかの実施形態では、プロセス1000の設計時間部分は、図7A-Cのターゲティング方法構成インターフェース700によって実行されてもよい。プロセスは、デフォルトのターゲティング方法構成のためのアプリケーションまたはUIタイプの選択を1005で受信することから始まる。次に、開発者は、デフォルトのターゲティング方法設定(例えば、ウェブブラウザ、Win32デスクトップなど)を設定し、このデフォルト構成は、1010で受信され、保存される。デフォルト構成は、複数または多数のユーザーがアクセスできるいくつかの実施形態では、UIオブジェクトリポジトリに保存されてもよい。次に、ユーザーは、所望に応じて、デフォルトのターゲティング方法の構成のために、別のアプリケーションまたはUIタイプを選択してもよい。
【0102】
次に、同じ開発者または別の開発者がUI内の画面を表示(指示)し、画面表示は1015で受信される(例えば、UiPath Studio(商標)のようなRPAデザイナアプリケーションによって)。言い換えれば、RPAデザイナアプリケーションの異なるインスタンスを使用して、デフォルトのターゲティング方法設定を構成したり、その後にデフォルトのターゲティング方法設定を変更したりすることができる。実際、これらのインスタンスは、いくつかの実施形態では、同じコンピューティングシステム上にない場合がある。次に、デフォルトのターゲティング方法設定は、1020において、検出されたアプリケーションまたは画面に関連付けられたUIタイプに対して事前構成される。RPAデザイナアプリケーションは、1025において、デフォルトのターゲティング方法設定に対する変更を受信し、それに応じて設定を構成してもよい。例えば、ユーザーは、デフォルトの技術が所望ほどの性能を発揮していない画面に対して、彼または彼女がそのターゲティング方法を使用したいかを選択してもよい。例えば、おそらく、特定の画面は、アプリケーションまたはデスクトップ内の他の画面とは実質的に異なる視覚的特徴を有する。
【0103】
ターゲティング方法の設定がデフォルトで設定された後、またはデフォルトの構成から変更された後、ユーザーは、1030において、これらのターゲティング方法の設定を使用してアクティビティが構成されるRPAワークフローを展開する。いくつかの実施形態では、ユーザーはまだ、RPAワークフローを設計している間に、デフォルトのターゲティング方法設定を変更してもよい。ユーザーがRPAワークフローを完了した後、RPAデザイナアプリケーションは、1035において、構成されたアクティビティ(複数可)を含むRPAワークフローを実装するためのRPAロボットを生成する。次いでプロセスは終了し、図10Bに進む。
【0104】
図10Bに戻ると、UI(例えば、スクリーンショット、アプリケーションウィンドウの画像など)は、1040においてUI要素属性を識別するために分析される。UI要素属性は、画像、テキスト、グラフィカル要素間の関係、UI内のグラフィカル要素の階層的表現などを含んでもよいが、これらに限定されるものではない。識別は、CV、OCR、APIコール、テキストファイル(例えば、HTML、XMLなど)の分析、それらの組み合わせなどを介して実行されてもよい。
【0105】
UIが解析された後、UI要素属性は、設計時間開発中にユーザーによって所定のUI要素に対して上書きされない限り、1045でデフォルトのターゲティング方法構成(複数可)を使用してアクティビティについて解析される。一致するUI要素が1050でのターゲティング方法設定を使用して見つかった場合、UI要素を含むアクティビティに関連付けられたアクションが1055で実行される(例えば、ボタンをクリックする、テキストを入力する、メニューと対話する、など)。また、1060でより多くのアクティビティがある場合には、次のアクティビティのためにステップ1045にプロセスが進む。しかし、1050で設定されたターゲティング方法(複数可)を使用してUI要素が見つからない場合、例外が投げられるか、または1065で彼もしくは彼女がどのように進みたいか(例えば、実行を継続するかどうか)をユーザーに尋ねられ、そしてプロセスは終了する。
【0106】
図8-10Bで実行されるプロセスステップは、本発明の実施形態に従って図8-10Bで説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュ装置、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、図8-10Bに記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0107】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに操作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適な装置で動作するように構成され得る。
【0108】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0109】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0110】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態にあることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0111】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれない特定の実施形態では認識され得る。
【0112】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。

図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図6E
図6F
図6G
図7A
図7B
図7C
図8
図9A
図9B
図10A
図10B
【手続補正書】
【提出日】2021-11-18
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ユーザーインターフェース(UI)内のグラフィカル要素を検出するためのコンピュータ実装方法であって、
コンピューティングシステム上で実行するロボティックプロセスオートメーション(RPA)デザイナアプリケーションによって、アプリケーションまたはUIタイプの選択を受信し、
前記RPAデザイナアプリケーションによって、デフォルトのターゲティング方法設定構成を受信し、保存し、
前記RPAデザイナアプリケーションによって、前記選択されたアプリケーションまたはUIタイプに関連する自動化される画面の表示を受信し、
前記RPAデザイナアプリケーションによって、前記選択されたアプリケーションまたはUIタイプの前記デフォルトのターゲティング方法設定を自動的に事前構成することを含
前記デフォルトのターゲティング方法設定構成は、1または複数のデフォルトのターゲティング方法のための設定を提供し、前記1または複数のデフォルトのターゲティング方法は、UI記述子のタイプを含む、コンピュータ実装方法。
【請求項2】
前記RPAデザイナアプリケーションによって、前記デフォルトのターゲティング方法設定に対する変更を受信し、
前記RPAデザイナアプリケーションによって、前記変更に応じて前記ターゲティング方法設定を構成することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記RPAデザイナアプリケーションの第1インスタンスは前記デフォルトのターゲティング方法設定を構成するために使用され、前記RPAデザイナアプリケーションの第2インスタンスはその後に前記デフォルトのターゲティング方法設定を変更するために使用される、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記デフォルトのターゲティング方法設定に対する変更は、前記選択されたアプリケーションまたはUIタイプに対して1または複数のターゲティング方法を使用するか否かを含む、請求項2に記載のコンピュータ実装方法。
【請求項5】
前記デフォルトのターゲティング方法設定は、フルセレクタ、ファジーセレクタ、もしくは画像セレクタのいずれを使用するか否か、アンカーを有効にするか否か、またはそれらの組み合わせを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記デザイナアプリケーションによって、前記選択されたアプリケーションまたはUIタイプのデフォルトの前記ターゲティング方法設定を使用して、ロボティックプロセスオートメーション(RPA)ワークフロー内の1または複数のアクティビティを構成することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記PRAデザイナアプリケーションによって、前記1または複数の構成されたアクティビティを含む前記RPAワークフローを実装するためのRPAロボットを生成することをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記RPAロボットによって、実行時にUI要素属性を識別するためにUIを分析し、
前記RPAロボットによって、設計時にユーザーによって上書きされない限り、前記デフォルトのターゲティング方法設定を使用して前記識別されたUI要素属性を分析することをさらに含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記アプリケーションがウェブブラウザである場合、前記デフォルトのターゲティング方法設定の前記事前設定は、フルセレクタを実行しないように設定し、ファジーセレクタ、画像セレクタ、および/または有効なアンカーを実行するように設定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
コンピュータプログラムを格納する非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
選択されたアプリケーションまたはユーザーインターフェース(UI)タイプのデフォルトのターゲティング方法設定を自動的に事前構成し、
前記アプリケーションまたは前記UIタイプの前記デフォルトのターゲティング方法設定に対する変更を受信し、
前記変更に応じて、前記デフォルトのターゲティング方法設定を構成し、
前記アプリケーションまたはUIタイプの前記デフォルトのターゲティング方法設定を使用して、ロボティックプロセスオートメーション(RPA)ワークフロー内の1または複数のアクティビティを構成するように構成され、
前記デフォルトのターゲティング方法設定は、1または複数のデフォルトのターゲティング方法のための設定を提供し、前記1または複数のデフォルトのターゲティング方法は、UI記述子のタイプを含む、非一時的なコンピュータ読み取り可能な媒体
【請求項11】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記選択されたアプリケーションまたはUIタイプに関連する自動化される画面の指示を受信するように構成される、請求項10に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項12】
前記デフォルトのターゲティング方法設定に対する変更は、前記アプリケーションまたはUIタイプに対して1または複数のターゲティング方法を使用するか否かを含む、請求項10に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項13】
前記デフォルトのターゲティング方法設定は、フルセレクタ、ファジーセレクタ、もしくは画像セレクタのいずれを使用するか、アンカーを有効にするか、またはそれらの組み合わせを含む、請求項10に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項14】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記1または複数の構成されたアクティビティを含む前記RPAワークフローを実装するように構成されるRPAロボットを生成するように構成される、請求項10に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項15】
前記アプリケーションがウェブブラウザである場合、前記デフォルトのターゲティング方法設定の前記事前設定は、フルセレクタを実行しないように設定し、ファジーセレクタ、画像セレクタ、および/または有効なアンカーを実行するように設定することを含む、請求項10に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項16】
コンピュータプログラムを格納する非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
デザイナアプリケーションによって、アプリケーションまたはユーザーインターフェース(UIタイプのデフォルトのターゲティング方法設定を自動的に事前構成し、
前記アプリケーションまたはUIタイプの前記デフォルトのターゲティング方法設定を使用して、ロボティックプロセスオートメーション(RPA)ワークフロー内の1または複数のアクティビティを構成し、
前記1または複数の構成されたアクティビティを含む前記RPAワークフローを実装するためのRPAロボットを生成するように構成され、
前記デフォルトのターゲティング方法設定は、1または複数のデフォルトのターゲティング方法のための設定を提供し、前記1または複数のデフォルトのターゲティング方法は、UI記述子のタイプを含む、非一時的なコンピュータ読み取り可能な媒体
【請求項17】
ユーザーが前記RPAワークフロー内のアクティビティに関連付けられたUI要素の前記デフォルトのターゲティング方法設定を変更すると、前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、
前記デフォルトのターゲティング方法設定の代わりに、前記変更された設定を前記アクティビティに使用するようにさらに構成される、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項18】
前記デフォルトのターゲティング方法設定に対する変更は、前記アプリケーションまたはUIタイプに対して1または複数のターゲティング方法を使用するか否かを含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項19】
前記デフォルトのターゲティング方法設定は、フルセレクタ、ファジーセレクタ、もしくは画像セレクタのいずれを使用するか否か、アンカーを有効にするか否か、またはそれらの組み合わせを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体
【請求項20】
前記アプリケーションがウェブブラウザである場合、前記デフォルトのターゲティング方法設定の前記事前設定は、フルセレクタを実行しないように設定し、ファジーセレクタ、画像セレクタ、および/または有効なアンカーを実行するように設定することを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体
【国際調査報告】