(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025016423
(43)【公開日】2025-02-04
(54)【発明の名称】ロボットによるフォーム入力アクティビティを最適化するためのシステムおよび方法
(51)【国際特許分類】
G06F 8/38 20180101AFI20250128BHJP
G06F 3/0482 20130101ALI20250128BHJP
【FI】
G06F8/38
G06F3/0482
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024073382
(22)【出願日】2024-04-30
(31)【優先権主張番号】18/347,819
(32)【優先日】2023-07-21
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.VISUAL BASIC
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】アレクサンドル シー. ペトレスク
(72)【発明者】
【氏名】コスミン ヴィー. ヴォイク
(72)【発明者】
【氏名】ラズヴァン マリノヴィッチ
(72)【発明者】
【氏名】アイオン マイロン
(57)【要約】 (修正有)
【課題】ロボットによるフォーム入力アクティビティを最適化するシステム及び方法を提供する。
【解決手段】ハイパーオートメーションシステム10は、ターゲットフォームフィールドに入力するための複数の代替ストラテジーを特定するストラテジーランキングインジケータをロボティックプロセスオートメーション(RPA)ロボットに供給して、フォーム入力RPAロボットの自律性を向上させ、1つのストラテジーが失敗したとき、RPAロボットは代替ストラテジーに戻る。ランキングインジケータは、各フォーム入力ストラテジーをランキングし、RPAロボットがそのランクに従って利用可能なストラテジーの中から選択し、より高いランクのストラテジーを優先する。ストラテジーランキングインジケータは動的に更新され、成功したフォーム入力ストラテジーを促進し、失敗したストラテジーを降格し、RPAロボットの他のインスタンスで使用する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ターゲットユーザーインターフェース(UI)によって表示されるターゲットフォームフィールドに入力するロボティックプロセスオートメーション(RPA)手順を最適化する方法であって、前記方法は、コンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、
前記ターゲットUIの識別子に従って、データベースからストラテジーランキングインジケータを取得し、ここで、前記ストラテジーランキングインジケータは、前記ターゲットフォームフィールドに入力するための複数の代替RPAストラテジーを特定し、さらに、前記複数の代替RPAストラテジー間のランキングを示し、前記複数の代替RPAストラテジーの各々は、前記ターゲットフォームフィールドに入力するように構成されたRPAアクティビティの別個のシーケンスを含み、
前記ランキングに従って前記複数の代替RPAストラテジーから第1のRPAストラテジーを選択することに応答して、前記第1のRPAストラテジーに従って選択された前記フォームフィールドに入力する第1の試みを実行し、
前記第1の試みが失敗したと判断したことに応答して、前記ランキングに従って前記複数の代替RPAストラテジーから第2のRPAストラテジーを選択し、
前記第2のRPAストラテジーを選択することに応答して、前記第2のRPAストラテジーに従って選択された前記フォームフィールドに入力する第2の試み実行し、
前記第2の試みが成功したと判断したことに応答して、前記データベース内の前記ストラテジーランキングインジケータを更新し、前記更新は、前記第2のRPAストラテジーの選択が前記第1のRPAストラテジーの選択よりも優先されるように前記ランキングを変更するように構成される、ことを含む、方法。
【請求項2】
前記少なくとも1つのハードウェアプロセッサは、前記複数の代替RPAストラテジーのそれぞれが前記ランキングに従って使用するために選択される順序を決定するように構成される、請求項1に記載の方法。
【請求項3】
前記ランキングは、それぞれのRPAストラテジーが前記ターゲットフォームフィールドへの入力に成功する可能性を示す、請求項1に記載の方法。
【請求項4】
前記ストラテジーランキングインジケータは、ストラテジー識別子の順序付けられたシーケンスを含み、各ストラテジー識別子は、前記複数の代替RPAストラテジーの別個のRPAストラテジーを特定し、前記ランキングは、前記順序付けられたシーケンス内の各ストラテジー識別子の位置に従って決定される、請求項1に記載の方法。
【請求項5】
前記ストラテジーランキングインジケータを更新することは、ストラテジー識別子の前記順序付けられたシーケンスを再配置することを含む、請求項4に記載の方法。
【請求項6】
前記ターゲットUIは、ターゲットウェブページを表示するブラウザインターフェースを含み、前記ターゲットUIの識別子は、前記ターゲットウェブページの統一レコード識別子(URI)を含む、請求項1に記載の方法。
【請求項7】
前記データベースは、前記ストラテジーランキングインジケータを前記ターゲットUIの識別子に関連付ける、請求項1に記載の方法。
【請求項8】
前記ターゲットUIによって表示される複数のフォームフィールドのうち、前記ターゲットフォームフィールドを特定するフィールドIDに従って、前記データベースから前記ストラテジーランキングインジケータを選択的に取得することをさらに含む、請求項1に記載の方法。
【請求項9】
前記フィールドIDは、前記ターゲットフォームフィールドの近傍に表示されるテキストラベルを含む、請求項8に記載の方法。
【請求項10】
前記第1のRPAストラテジーを選択することに応答して、前記少なくとも1つのハードウェアプロセッサを使用して、リモートリポジトリからストラテジーパッケージを選択的に取得することをさらに含み、前記ストラテジーパッケージは、第1のRPAパッケージの仕様を含む、請求項1に記載の方法。
【請求項11】
ターゲットユーザーインターフェース(UI)によって表示されるターゲットフォームフィールドに入力するロボティックプロセスオートメーション(RPA)手順を最適化するように構成された少なくとも1つのハードウェアプロセッサを含むコンピュータシステムであって、前記RPA手順を最適化することは、前記少なくとも1つのハードウェアプロセッサを用いて、
前記ターゲットUIの識別子に従って、データベースからストラテジーランキングインジケータを取得し、ここで、前記ストラテジーランキングインジケータは、前記ターゲットフォームフィールドに入力するための複数の代替RPAストラテジーを特定し、さらに、前記複数の代替RPAストラテジー間のランキングを示し、前記複数の代替RPAストラテジーの各々は、前記ターゲットフォームフィールドに入力するように構成されたRPAアクティビティの別個のシーケンスを含み、
前記ランキングに従って前記複数の代替RPAストラテジーから第1のRPAストラテジーを選択することに応答して、前記第1のRPAストラテジーに従って選択された前記フォームフィールドに入力する第1の試みを実行し、
前記第1の試みが失敗したと判断したことに応答して、前記ランキングに従って前記複数の代替RPAストラテジーから第2のRPAストラテジーを選択し、
前記第2のRPAストラテジーを選択することに応答して、前記第2のRPAストラテジーに従って選択された前記フォームフィールドに入力する第2の試み実行し、
前記第2の試みが成功したと判断したことに応答して、前記データベース内の前記ストラテジーランキングインジケータを更新し、前記更新は、前記第2のRPAストラテジーの選択が前記第1のRPAストラテジーの選択よりも優先されるように前記ランキングを変更するように構成される、ことを含む、コンピュータシステム。
【請求項12】
前記少なくとも1つのハードウェアプロセッサは、前記複数の代替RPAストラテジーのそれぞれが前記ランキングに従って使用するために選択される順序を決定するように構成される、請求項11に記載のコンピュータシステム。
【請求項13】
前記ランキングは、それぞれのRPAストラテジーが前記ターゲットフォームフィールドへの入力に成功する可能性を示す、請求項1に記載のコンピュータシステム。
【請求項14】
前記ストラテジーランキングインジケータは、ストラテジー識別子の順序付けられたシーケンスを含み、各ストラテジー識別子は、前記複数の代替RPAストラテジーの別個のRPAストラテジーを特定し、前記ランキングは、前記順序付けられたシーケンス内の各ストラテジー識別子の位置に従って決定される、請求項11に記載のコンピュータシステム。
【請求項15】
前記ストラテジーランキングインジケータを更新することは、ストラテジー識別子の前記順序付けられたシーケンスを再配置することを含む、請求項14に記載のコンピュータシステム。
【請求項16】
前記ターゲットUIは、ターゲットウェブページを表示するブラウザインターフェースを含み、前記ターゲットUIの識別子は、前記ターゲットウェブページの統一レコード識別子(URI)を含む、請求項11に記載のコンピュータシステム。
【請求項17】
前記データベースは、前記ストラテジーランキングインジケータを前記ターゲットUIの識別子に関連付ける、請求項11に記載のコンピュータシステム。
【請求項18】
前記少なくとも1つのハードウェアプロセッサは、前記ターゲットUIによって表示される複数のフォームフィールドのうち、前記ターゲットフォームフィールドを特定するフィールドIDにさらに従って、前記データベースから前記ストラテジーランキングインジケータを選択的に取得するように構成される、請求項11に記載のコンピュータシステム。
【請求項19】
前記フィールドIDは、前記ターゲットフォームフィールドの近傍に表示されるテキストラベルを含む、請求項18に記載のコンピュータシステム。
【請求項20】
前記少なくとも1つのハードウェアプロセッサはさらに、前記第1のRPAストラテジーを選択すること応答して、リモートリポジトリからストラテジーパッケージを選択的に取得するように構成され、前記ストラテジーパッケージは、第1のRPAパッケージの仕様を含む、請求項11に記載のコンピュータシステム。
【請求項21】
コンピュータシステムの少なくとも1つのハードウェアプロセッサによって遂行されたときに、ターゲットユーザーインターフェース(UI)によって表示されるターゲットフォームフィールドに入力するロボティックプロセスオートメーション(RPA)手順を前記コンピュータシステムに最適化させる命令を格納する非一時的なコンピュータ読み取り可能な媒体であって、前記RPA手順を最適化することは、前記少なくとも1つのハードウェアプロセッサを用いて、
前記ターゲットUIの識別子に従って、データベースからストラテジーランキングインジケータを取得し、ここで、前記ストラテジーランキングインジケータは、前記ターゲットフォームフィールドに入力するための複数の代替RPAストラテジーを特定し、さらに、前記複数の代替RPAストラテジー間のランキングを示し、前記複数の代替RPAストラテジーの各々は、前記ターゲットフォームフィールドに入力するように構成されたRPAアクティビティの別個のシーケンスを含み、
前記ランキングに従って前記複数の代替RPAストラテジーから第1のRPAストラテジーを選択することに応答して、前記第1のRPAストラテジーに従って選択された前記フォームフィールドに入力する第1の試みを実行し、
前記第1の試みが失敗したと判断したことに応答して、前記ランキングに従って前記複数の代替RPAストラテジーから第2のRPAストラテジーを選択し、
前記第2のRPAストラテジーを選択することに応答して、前記第2のRPAストラテジーに従って選択された前記フォームフィールドに入力する第2の試み実行し、
前記第2の試みが成功したと判断したことに応答して、前記データベース内の前記ストラテジーランキングインジケータを更新し、前記更新は、前記第2のRPAストラテジーの選択が前記第1のRPAストラテジーの選択よりも優先されるように前記ランキングを変更するように構成される、ことを含む、非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【背景技術】
【0001】
(発明の背景)
本発明は、ロボティックプロセスオートメーション(RPA)に関し、特にRPAソフトウェアの開発と使用を容易にすることに関する。
【0002】
RPAは、オフィスの繰り返し行われるコンピューティングタスクを自動化することで生産性を向上させ、人間のオペレータを自由にしてより知的に洗練されたおよび/または創造的なアクティビティを行えるようにすることを目的とした、情報技術の新しい分野である。自動化の対象となる注目すべきタスクは、文書からの構造化データの抽出および例えば、フォームへの入力といったユーザーインターフェースとのインタラクションなどを含む。
【0003】
しかし、フォーム入力のような一見単純なソフトウェアタスクでさえ自動化することは、実質的な技術的課題を含み得る。ターゲットアプリケーションに応じて、フォームフィールドのタイプと動作は、単純なクリックアンドタイプから、複数のカスケードフォーム、カレンダー、計算機などを含む高度な構造化入力まで、非常に多様である。したがって、フォーム入力ロボットを適切に設計するために、RPA開発者は通常、それぞれのロボットが遭遇するフォームフィールドのタイプを事前に把握し、各状況に対応する方法をロボットに具体的に指示する必要がある。RPA開発者はさらに、ウェブブラウザおよび関連技術、スプレッドシートアプリケーション、顧客関係管理ソフトウェア(例えば、Salesforce(登録商標)Platform from Salesforce, Inc.)、エンタープライズリソースプランニングソフトウェア(例えば、SAP(登録商標))など、自動化の対象となるソフトウェアに関する深い知識が必要になる場合がある。
【0004】
さらに、自動化の対象となるソフトウェアは通常、ロボットとは独立して開発および維持されるため、ターゲットフォームの外観、構造、および/または機能はいつでも変更され得る。従来のRPAロボットは適応性に限界があり、このような変更はそれぞれの自動化を失敗させ、保守コストと生産性に関する損失をもたらす。
【0005】
上記のような背景から、さまざまなフォームを効率的に入力し、不測の事態にも柔軟に対応できる堅牢なRPAロボットの開発が強く望まれている。同時に、RPAの設計面と実行時面の両方をよりユーザーフレンドリーで直感的なものにすることに強い関心が寄せられており、RPA技術の範囲を「シチズンデベロッパー」、すなわち高度なプログラミングスキルまたは専門的訓練を持たないユーザーにまで拡大しようとしている。
【0006】
(発明の概要)
一態様によると、方法は、ターゲットユーザーインターフェース(UI)によって表示されるターゲットフォームフィールドに入力するためのロボット手順を最適化する。方法は、コンピュータシステムの少なくとも1つのハードウェアプロセッサを使用して、ターゲットUIの識別子に従ってデータベースからストラテジーランキングインジケータを取得することを含み、ストラテジーランキングインジケータは、ターゲットフォームフィールドに入力するための複数の代替的なロボティックプロセスオートメーション(RPA)ストラテジーを特定し、さらに、複数の代替RPAストラテジー間のランキングを示す。複数の代替RPAストラテジーの各々は、ターゲットフォームフィールドに入力するように構成されたRPAアクティビティの別個のシーケンスを含む。方法はさらに、少なくとも1つのハードウェアプロセッサを使用して、ランキングに従って複数の代替RPAストラテジーから第1のRPAストラテジーを選択することに応答して、第1のRPAストラテジーに従って選択された前記フォームフィールドに入力する第1の試みを実行することを含む。方法はさらに、少なくとも1つのハードウェアプロセッサを使用して、第1の試みが失敗したと判断したことに応答して、ランキングに従って複数の代替RPAストラテジーから第2のRPAストラテジーを選択し、第2のRPAストラテジーに従って選択されたフォームフィールドに入力する第2の試みを実行することを含む。方法はさらに、少なくとも1つのハードウェアプロセッサを使用して、第2の試みが成功したと判断したことに応答して、データベース内のストラテジーランキングインジケータを更新し、更新は、第2のRPAストラテジーの選択が第1のRPAストラテジーの選択よりも優先されるようにランキングを変更するように構成される、ことを含む。
【0007】
別の態様によると、コンピュータシステムは、ターゲットUIによって表示されるターゲットフォームフィールドに入力するロボット手順を最適化するように構成された少なくとも1つのハードウェアプロセッサを含む。少なくとも1つのハードウェアプロセッサは、ターゲットUIの識別子に従ってデータベースからストラテジーランキングインジケータを取得するように構成され、ストラテジーランキングインジケータは、ターゲットフォームフィールドに入力するための複数の代替的なRPAストラテジーを特定し、さらに、複数の代替RPAストラテジー間のランキングを示す。複数の代替RPAストラテジーの各々は、ターゲットフォームフィールドに入力するように構成されたRPAアクティビティの別個のシーケンスを含む。少なくとも1つのハードウェアプロセッサはさらに、ランキングに従って複数の代替RPAストラテジーから第1のRPAストラテジーを選択することに応答して、第1のRPAストラテジーに従って選択された前記フォームフィールドに入力する第1の試みを実行するように構成される。少なくとも1つのハードウェアプロセッサはさらに、第1の試みが失敗したと判断したことに応答して、ランキングに従って複数の代替RPAストラテジーから第2のRPAストラテジーを選択し、第2のRPAストラテジーに従って選択されたフォームフィールドに入力する第2の試みを実行するように構成される。少なくとも1つのハードウェアプロセッサはさらに、第2の試みが成功したと判断したことに応答して、データベース内のストラテジーランキングインジケータを更新するように構成され、更新は、第2のRPAストラテジーの選択が第1のRPAストラテジーの選択よりも優先されるようにランキングを変更するように構成される。
【0008】
別の態様によると、非一時的なコンピュータ読み取り可能な媒体は、コンピュータシステムの少なくとも1つのハードウェアプロセッサによって遂行されたとき、コンピュータシステムに、ターゲットUIによって表示されるターゲットフォームフィールドに入力するためのロボット手順を最適化させる命令を格納する。命令は、コンピュータシステムに、ターゲットUIの識別子に従ってデータベースからストラテジーランキングインジケータを取得させ、ストラテジーランキングインジケータは、ターゲットフォームフィールドに入力するための複数の代替的なRPAストラテジーを特定し、さらに、複数の代替RPAストラテジー間のランキングを示す。複数の代替RPAストラテジーの各々は、ターゲットフォームフィールドに入力するように構成されたRPAアクティビティの別個のシーケンスを含む。命令はさらに、コンピュータシステムに、ランキングに従って複数の代替RPAストラテジーから第1のRPAストラテジーを選択することに応答して、第1のRPAストラテジーに従って選択されたフォームフィールドに入力する第1の試みを実行させる。命令はさらに、コンピュータシステムに、少なくとも1つのハードウェアプロセッサはさらに、第1の試みが失敗したと判断したことに応答して、ランキングに従って複数の代替RPAストラテジーから第2のRPAストラテジーを選択し、第2のRPAストラテジーに従って選択されたフォームフィールドに入力する第2の試みを実行させる。命令はさらに、コンピュータシステムに、第2の試みが成功したと判断したことに応答して、データベース内のストラテジーランキングインジケータを更新させ、更新は、第2のRPAストラテジーの選択が第1のRPAストラテジーの選択よりも優先されるようにランキングを変更するように構成される。
【図面の簡単な説明】
【0009】
本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照することにより、よりよく理解されるであろう。
【0010】
【
図1】本発明のいくつかの実施形態によるハイパーオートメーションシステムのアーキテクチャ図を示す。
【0011】
【
図2】本発明のいくつかの実施形態による例示的なRPAシステムを示す。
【0012】
【
図3】本発明のいくつかの実施形態によるクライアントサーバー構成で遂行される例示的な展開されたRPAシステムを示す。
【0013】
【
図4】本発明のいくつかの実施形態によるRPAコンダクタとRPAロボット(複数可)との間の例示的なデータ交換を示す。
【0014】
【
図5】本発明のいくつかの実施形態による自動入力を目標とする例示的なフォームを示す。
【0015】
【
図6】本発明のいくつかの実施形態による例示的なフォーム入力ストラテジーを示す。
【0016】
【
図7-A】本発明のいくつかの実施形態による例示的なストラテジーランキングレコードを示す。
【0017】
【
図7-B】本発明のいくつかの実施形態による別の例示的なストラテジーランキングレコードを示す。
【0018】
【
図8】本発明のいくつかの実施形態によるRPAロボットによって実行されるステップの例示的なシーケンスを示す。
【0019】
【
図9】本発明のいくつかの実施形態によるRPAサーバーによって実行される例示的な一連のステップを示す。
【0020】
【
図10】本明細書に記載される方法のいくつかを遂行するようにプログラムされたコンピュータシステムの例示的なハードウェア構成を示す。
【発明を実施するための形態】
【0021】
(発明の詳細な説明)
以下の説明において、構造間のすべての言及された接続は、直接的な動作可能な接続または仲介構造を介した間接的に動作可能な接続であり得ることが理解される。要素のセットは、1または複数の要素を含む。要素のいかなる言及も、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。「または」の使用は、非排他的な「または」として意味される。特に必要とされない限り、記載された方法ステップは、必ずしも特定の図示された順序で実行される必要はない。第2の要素から導かれる第1の要素(例えば、データ)は、第2の要素に等しい第1の要素と、第2の要素を処理することによって生成される第1の要素と、任意に他のデータとを包含する。パラメータに従って判断または決定を行うことは、パラメータに従って判断または決定を行うこと、および任意に他のデータに従って判断または決定を行うことを包含する。特に指定がない限り、ある量/データの指標は、量/データそのものであってもよいし、量/データそのものとは異なる指標であってもよい。コンピュータプログラムは、タスクを実行するプロセッサ命令のシーケンスである。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、独立したソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ(例えば、サブルーチン、ライブラリ)であり得る。本明細書に記載されるユーザーインターフェースによって表示される入力可能なフォームは、複数のフィールドを含み得、各フィールドは、ユーザー入力のための個々の別個のレセプタクルである。「フォームフィールド」および「入力フィールド」という用語は、本明細書では交換可能に使用される。本明細書では、「データベース」という用語は、組織化された検索可能なデータの集合を示すために使用される。コンピュータ読み取り可能な媒体は、磁気、光学、および半導体記憶媒体(例えば、ハードディスク、光ディスク、フラッシュメモリ、DRAM)などの非一時的な媒体、ならびに導電性ケーブルおよび光ファイバーリンクなどの通信リンクを包含する。いくつかの実施形態によると、本発明は、特に、本明細書に記載の方法を実行するようにプログラムされたハードウェア(例えば、1または複数のプロセッサ)、ならびに本明細書に記載の方法を実行するための命令をエンコードするコンピュータ読み取り可能な媒体を含むコンピュータシステムを提供する。
【0022】
以下の説明は、本発明の実施形態を例示するものであり、必ずしも限定するものではない。
【0023】
図1は、本発明のいくつかの実施形態によるハイパーオートメーションシステム10を示すアーキテクチャ図である。本明細書で使用される「ハイパーオートメーション」は、ロボティックプロセスオートメーション(RPA)のコンポーネント、統合ツール、および作業を自動化する能力を増幅する技術をまとめた拡張オートメーションシステムを指す。本明細書では、RPAは、それぞれのタスクを実行するためのソフトウェアツールのセットを使用して、人間オペレータの一連のアクションを模倣することによって、計算タスクを自動的に実行することを示す。例示的なシナリオでは、会社の従業員がビジネスソフトウェアを使用してクライアントに請求書を発行し、これは、Microsoft Excel(登録商標)スプレッドシートを開く、クライアントの会社の詳細を調べる、それぞれの詳細を請求書テンプレートにコピーする、購入したアイテムを示す請求書フィールドを埋める、電子メールアプリケーションに切り替える、それぞれのクライアントへの電子メールメッセージを作成する、新しく作成した請求書をそれぞれのメールメッセージに添付する、および「送信」ボタンをクリックするなど一連のアクションを含み得る。RPAロボットは、同じ一連のアクションを効果的に再現できるため、それぞれの請求タスクを自動化できる。人間の動作/アクションを模倣することは、本明細書では、人間のオペレータがコンピュータ上でそれぞれの動作/アクションを実行するときに生じるコンピューティングイベントのシーケンスを再現すること、および人間のオペレータがコンピュータ上でそれぞれの動作を実行した結果を再現することを包含すると理解される。例えば、グラフィカルユーザーインターフェース(GUI)のボタンをクリックするアクションを模倣することは、オペレーティングシステムにマウスポインタをそれぞれのボタンに移動させ、マウスクリックイベントを発生させることを含んでもよく、またはそれぞれのGUIボタン自体をクリックされた状態にトグルすることを代替的に含んでもよい。
【0024】
RPAが対象とするプロセスの例は、とりわけ支払処理、請求書発行、ビジネスクライアントとのコミュニケーション(例えば、ニュースレターおよび/または製品提供の配布)、内部コミュニケーション(例えば、メモ、会議および/またはタスクのスケジューリング)、監査、および給与処理などを含む。
【0025】
RPAは、ハイパーオートメーションシステム10のコアを構成し得、特定の実施形態では、人工知能(AI)/機械学習(ML)、プロセスマイニング、分析、および/または他の高度なツールによって自動化能力が拡張され得る。ハイパーオートメーションシステム10がプロセスを学習し、AI/MLモデルを訓練し、そして分析を採用すると、例えば、より多くの知識作業が自動化され得、組織内のコンピューティングシステム、例えば、個人によって使用されるものと自律的に動作するものの両方は、すべてハイパーオートメーションプロセスの参加者として従事され得る。いくつかの実施形態のハイパーオートメーションシステムは、ユーザーおよび組織が効率的かつ効果的にオートメーションを発見し、理解し、最適化し、そして拡張することを可能にする。
【0026】
例示的なハイパーオートメーションシステム10は、とりわけ、デスクトップコンピュータ、タブレットコンピュータ、およびスマートフォンなどのRPAクライアントコンピューティングシステム12a-cを含む。スマートウォッチ、ラップトップコンピュータ、サーバー、インターネットオブシングス(IoT)デバイスなどを含むが、これらに限定されない、任意の所望のクライアントコンピューティングシステムが本発明の範囲から逸脱せずに使用され得る。また、
図1には3つのクライアントコンピューティングシステム12a-cだけが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のライアントコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のクライアントコンピューティングシステムが使用され得る。クライアントコンピューティングシステム12a-cは、ユーザーによって積極的に使用されてもよいし、または多くのもしくは任意のユーザー入力なしに自動的に実行され得る。
【0027】
示された各クライアントコンピューティングシステム12a-cは、その上で実行されるそれぞれのオートメーションモジュール(複数可)14a-cを有する。例示的なオートメーションモジュール(複数可)14a-cは、限定されないが、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション(複数可)、他の任意の適切なソフトウェアおよび/またはハードウェア、またはそれらのいずれかの組み合わせを含み得る。
【0028】
いくつかの実施形態では、1または複数のモジュール(複数可)14a-cは、リスナーであり得る。リスナーは、それぞれのコンピューティングシステムとのユーザーインタラクションおよび/またはアンアテンディッドコンピューティングシステムの動作に関連するデータを監視および記録し、通信ネットワーク15(例えば、ローカルエリアネットワーク-LAN、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、それらのいずれかの組み合わせ等)を介してハイパーオートメーションコアシステム30にデータを送信する。データは、限定されないが、どのボタンがクリックされたか、マウスがどこに移動したか、フィールドに入力されたテキスト、1つのウィンドウが最小化されそして別のウィンドウが開かれたこと、ウィンドウに関連するアプリケーションなどを含み得る。特定の実施形態では、そのようなリスナープロセスからのデータは、ハートビートメッセージの一部としてまたはデータ蓄積条件の達成に応答して定期的に送信され得る。1または複数のRPAサーバー32は、
図1のRPAデータベース(複数可)34などのデータベース内のリスナーからデータを受信して格納する。
【0029】
他の例示的なオートメーションモジュール14a-cは、選択されたプロセスの自動化を実際に実装するロジックを実行し得る。別の言い方をすれば、少なくとも1つのオートメーションモジュール14a-cは、以下にさらに説明するように、RPAロボットの一部を含み得る。ロボットは、アテンディッド(すなわち、人間の介入を必要とする)またはアンアテンディッドがあり得る。いくつかの実施形態では、複数のモジュール14a-cまたはコンピューティングシステムが、オートメーションのロジックの遂行に参加し得る。いくつかの自動化は、複数のモジュール14a-cを編成してもよく、様々なバックグラウンド処理を実行してもよく、および/またはアプリケーションプログラミングインターフェース(API)呼び出しを実行してもよい。いくつかのロボットアクティビティは、現在のワークフローを再開する前に、選択されたタスクが(おそらく別のエンティティまたはオートメーションモジュールによって)完了するのをモジュール14a-cに待機させることができる。
【0030】
いくつかの実施形態では、ハイパーオートメーションコアシステム30は、RPAサーバー(複数可)32などの1または複数のサーバー上でコンダクタアプリケーションを実行し得る。
図1は1つのRPAサーバー32のみを示しているが、本発明の範囲から逸脱することなく、互いに近接する、または分散アーキテクチャの複数または多数のサーバーが採用され得る。例えば、1または複数のRPAサーバー(複数可)32が、本発明の範囲から逸脱することなく、コンダクタ機能、AI/MLモデル提供、認証、ガバナンス、および または他の任意の適切な機能のために提供され得る。いくつかの実施形態では、ハイパーオートメーションコアシステム30は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどを組み込んでよく、またはその一部であってよい。特定の実施形態では、ハイパーオートメーションコアシステム30は、RPAサーバー(複数可)32などの1または複数のコンピューティングシステム上で複数のソフトウェアベースのサーバーをホストし得る。いくつかの実施形態では、RPAサーバー(複数可)32などのコアハイパーオートメーションシステム30の1または複数のサーバーは、1または複数の仮想マシン(VM)を介して実装され得る。
【0031】
いくつかの実施形態では、1または複数のオートメーションモジュール14a-cは、ハイパーオートメーションコア30上に配備された、またはハイパーオートメーションコア30によってアクセス可能な1つまたは複数のAI/MLモデル36を呼び出すことができる。AI/MLモデル36は、本発明の範囲から逸脱することなく、任意の適切な目的のために訓練され得る。2以上のAI/MLモデル36は、それらが集合的に協働出力(複数可)を提供するように、いくつかの実施形態では連鎖されてもよい(例えば、直列、並列、またはそれらの組合せ)。例示的なAI/MLモデル36は、コンピュータビジョン(CV)、光学的文字認識(OCR)、文書処理および/または理解、意味学習および/または分析、分析予測、プロセス発見、タスクマイニング、テスト、自動RPAワークフロー生成、シーケンス抽出、クラスタリング検出、音声-テキスト翻訳、これらのいずれかの組み合わせなどを実行または支援してもよい。しかしながら、本発明の範囲から逸脱することなく、AI/MLモデル36の任意の所望の数および/またはタイプ(複数可)が使用され得る。複数のAI/MLモデル36を使用することで、例えば、与えられたコンピューティングシステム上で何が起こっているかについての全体像をシステムが開発し得る。例えば、あるAI/MLモデルはOCRを実行することができ、別のものはボタンを検出することができ、別のものはシーケンスを比較することができる、などである。パターンは、AI/MLモデルによって個別に決定されてもよいし、または複数のAI/MLモデルによって集合的に決定されてもよい。特定の実施形態では、1または複数のAI/MLモデル36は、少なくとも1つのRPAクライアントコンピューティングシステム12a-c上にローカルに展開される。
【0032】
ハイパーオートメーションシステム10は、少なくとも4つの主要な機能グループを提供し得る:(1)発見、(2)自動化の構築、(3)管理、および(4)エンゲージメント。発見機能は、ビジネスプロセスの自動化の様々な機会を発見し、その自動的な推奨を提供し得る。そのような機能は、RPAサーバー32などの1または複数のサーバーによって実装され得る。発見機能は、いくつかの実施形態では、オートメーションハブ、プロセスマイニング、タスクマイニング、および/またはタスクキャプチャを提供することを含み得る。
【0033】
オートメーションハブ(例えば、UiPath Automation Hub(商標))は、可視性および制御性を有するオートメーションロールアウトを管理するためのメカニズムを提供し得る。オートメーションアイデアは、例えば、提出フォームを介して従業員からクラウドソーシングされ得る。これらのアイデアを自動化するための実現可能性と投資収益率(ROI)の計算が提供され、将来の自動化のための文書が収集され、そして自動化の発見から構築までを迅速に行うためのコラボレーションが提供され得る。
【0034】
(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)プロセスマイニングとは、アプリケーション(企業資源計画(ERP)アプリケーション、顧客関係管理(CRM)アプリケーション、メールアプリケーション、コールセンターアプリケーションなど)からデータを収集して分析し、組織にどんなエンドツーエンドのプロセスが存在するか、それらを効果的に自動化するにはどうすればよいか、また自動化がもたらす影響についてを特定するプロセスを指す。このデータは、例えば、リスナーによってRPAクライアント12a-cから収集され、RPAサーバー(複数可)32によって処理される。1または複数のAI/MLモデル36がこの目的のために採用され得る。この情報は、実装を迅速化し、手動での情報転送を回避するために、オートメーションハブにエクスポートされ得る。プロセスマイニングの目標は、組織内のプロセスを自動化することによって、ビジネス価値を高めることであり得る。プロセスマイニングの目標のいくつかの例は、限定されないが、利益の増加、顧客満足度の向上、規制および/または契約遵守、従業員の効率の向上などを含む。
【0035】
(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)タスクマイニングは、ワークフロー(例えば、従業員のワークフロー)を特定および集約し、次にAIを適用して日常的なタスクのパターンおよびバリエーションを明らかにし、自動化の容易性および節約の可能性について(例えば、時間および/またはコストの節約)そのようなタスクをスコアリングする。1または複数のAI/MLモデル36は、データ内の反復タスクパターンを明らかにするために採用され得る。自動化の機が熟した反復タスクは、その後、特定され得る。この情報は、最初に、リスナーモジュール(例えば、オートメーションモジュール14a-c)によって提供され、ハイパーオートメーションコア30のサーバー上で分析され得る。タスクマイニングからの結果は、プロセス文書またはUiPath Studio(商標)などRPA設計アプリケーションにエクスポートされて、自動化をより迅速に作成および展開し得る。
【0036】
いくつかの実施形態におけるタスクマイニングは、ユーザーアクション(例えば、マウスクリック位置、キーボード入力、ユーザーがインタラクションしていたアプリケーションウィンドウおよびグラフィカル要素、インタラクションのためのタイムスタンプなど)を伴うスクリーンショットの撮影、統計データ(例えば、遂行時間、アクション数、テキスト入力など)の収集、スクリーンショットの編集および注釈、記録されるアクションのタイプの指定、などを含み得る。
【0037】
(UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)タスクキャプチャは、ユーザーが作業しているときにアテンディッドプロセスを自動的に文書化する、またはアンアテンディッドプロセスのためのフレームワークを提供する。このような文書化は、プロセス定義文書(PDD)、スケルトンワークフロー、プロセスの各部分のアクションのキャプチャ、ユーザーのアクションの記録および各ステップに関する詳細を含む包括的なワークフロー図の自動生成、Microsoft Word(登録商標)文書、XAMLファイルなどのような形式で自動化することが望ましいタスクを含み得る。構築可能なワークフローは、いくつかの実施形態では、UiPath Studio(商標)などのRPA設計アプリケーションに直接エクスポートできる。タスクキャプチャは、プロセスを説明するサブジェクトマターエキスパートと、プロダクショングレードオートメーションを提供するセンターオブエクセレンス(CoE)メンバーとの両方にとって、要件収集プロセスを簡素化し得る。
【0038】
ハイパーオートメーションシステム10の自動化構築機能は、
図1にRPA設計アプリケーション40として示されるコンピュータプログラムを介して達成され得る。例は、とりわけ、UiPath Studio(商標)、UiPath StudioX(商標)、UiPath Web(商標)を含み得る。このようなコンピュータプログラムは、ウェブ、モバイル、SAP(登録商標)、および仮想デスクトップなどのさまざまなアプリケーションおよび環境の自動化を構築およびテストするために使用され得る。いくつかの実施形態では、RPA設計アプリケーション40は、人間の開発者が、ターゲット作業プロセスを効果的に自動化するワークフローを設計することを可能にする。ワークフローは通常、カスタムオートメーションステップのシーケンスを含み、本明細書ではRPAアクティビティとみなされる。各アクティビティは、ボタンのクリック、ファイルの読み取り、スプレッドシートセルへの書き込みなど、ロボットによって実行される少なくとも1つのアクションを含む。アクティビティは、入れ子にされ(nested)および/または埋め込まれ得る。いくつかの実施形態では、RPA設計アプリケーション40は、ワークフローの実行順序およびワークフローのアクティビティ間の関係の制御を開発者に与える設計インターフェースおよびツールのセットを公開する。いくつかの実施形態では、予め定義されたアクティビティ、ドラッグアンドドロップモデリング、およびワークフローレコーダーは、最小限のコーディングで自動化を容易にし得る。文書理解機能は、1または複数AI/MLモデル36を呼び出すデータ抽出および解釈のためのAIアクティビティによって提供され得る。このような自動化は、表、ウェブページ、フォーム、署名、および手書きを含む、事実上任意の文書タイプおよびフォーマットを処理し得る。
【0039】
また、RPA設計アプリケーション40は、例えば、様々な他のアプリケーション、技術、およびプラットフォームとのAPI統合を提供するために、ユーザーインターフェース(UI)オートメーションをAPIオートメーションとシームレスに組み合わせるために使用され得る。開発者が多種多様なプロセスをより迅速に自動化できるように、あらかじめ構築されたRPAおよびAIテンプレートとソリューションのためのリポジトリ(例えば、UiPath Object Repository(商標))またはマーケットプレイス(例えば、UiPath Marketplace(商標))が提供され得る。したがって、自動化を構築する場合、ハイパーオートメーションシステム10は、ユーザーインターフェース、開発環境、API統合、あらかじめ構築されたおよび/またはカスタムビルドのAI/MLモデル、開発テンプレート、統合開発環境(IDE)、および高度なAI能力を提供し得る。ハイパーオートメーションシステム10は、アプリケーション40を使用して設計された自動化を実行するためのRPAロボットの展開、管理、構成、監視、デバッグ、および保守をさらに可能にし得る。
【0040】
ハイパーオートメーションシステム10の管理機能は、組織全体にわたる自動化の展開、オーケストレーション、テスト管理、AI機能、および最適化を提供することができる。管理機能の一例は、本明細書に記載されるように、フォーム入力ストラテジーの最適化と、集中型フォーム入力ストラテジー知識ベースの維持とを含む。その他の例示的な管理機能は、継続的インテグレーションおよび自動化の継続的展開などのDevOpsアクティビティを含む。管理機能はまた、自動化アプリケーションおよび/またはRPAロボットのためのサードパーティーソリューションおよびアプリケーションとの統合ポイントとして作動し得る。
【0041】
管理機能の例として、コンダクタアプリケーションまたはサービスは、とりわけRPAロボットのプロビジョニング、展開、構成、キューイング、監視、ロギング、および相互接続を容易にすることができる。このようなコンダクタアプリケーション/サービスの例は、(UiPath Automation Cloud(商標)の一部として、またはオンプレミス、仮想マシン内、あるいはUiPath Automation Suite(商標)を介したクラウドネイティブな単一コンテナスイートとして提供され得る)UiPath Orchestrator(商標)を含む。アプリケーション/サービスのテストスイート(例えば、UiPath Test Suite(商標))はさらに、展開された自動化の品質を監視するためのテスト管理を提供し得る。テストスイートは、テストの計画および遂行、要件の充足、および欠陥のトレーサビリティを促進し得る。テストスイートは、包括的なテストレポートを含み得る。
【0042】
分析ソフトウェア(例えば、UiPath Insights(商標))は、展開された自動化の性能を追跡、測定、および管理し得る。分析ソフトウェアは、自動化動作を組織の特定の重要業績評価指標(KPI)および戦略的成果と整合させ得る。分析ソフトウェアは、人間のユーザーがより理解しやすいように、ダッシュボード形式で結果を提示し得る。
【0043】
AI管理機能は、AIセンター(例えば、UiPath AI Center(商標))によって提供されてもよく、これはAI/MLモデルの自動化への組み込みを容易にする。あらかじめ構築されたAI/MLモデル、モデルテンプレート、およびさまざまな展開オプションにより、データ科学者でない人でもこのような機能にアクセスできるようにし得る。展開されたオートメーション(例えば、RPAロボット)は、AIセンターからAI/MLモデル36を呼び出し得る。AI/MLモデルのパフォーマンスを監視することができる。モデル36は、
図1に示すようなデータレビューセンターによって提供されるデータのような、人間によって検証されたデータを使用して訓練され、改善され得る。人間のレビュアーは、ラベル付けされたデータ(例えば、訓練コーパス)を、ネットワーク15に接続されたコンピュータ上で遂行されるレビュアープリケーション38を介して、ハイパーオートメーションコア30に提供し得る。レビュアーはまた、アプリケーション38を使用して、AI/MLモデル36による予測が正確であることを検証し、そうでなければ訂正を提供することができる。この動的入力は、その後、AI/MLモデル36を再訓練するためのトレーニングデータとして保存されてもよく、例えば、RPAデータベース34のようなデータベースに格納されてもよい。AIセンターは、訓練データを使用してAI/MLモデル36の新バージョンを訓練するための訓練ジョブをスケジュールし、遂行し得る。
【0044】
ハイパーオートメーションシステム10のエンゲージメント機能は、所望のプロセスに関するシームレスなコラボレーションのために、人間および自動化を1つのチームとして関与させる。ローコードアプリケーションは、ブラウザおよびレガシーソフトウェアに接続するために(UiPath Apps(商標)経由など)構築され得る。アプリケーションは、例えば、ドラッグアンドドロップ制御の豊富なライブラリを通じて、ウェブブラウザを使用して迅速に作成され得る。アプリケーションは、1つのオートメーションまたは複数のオートメーションに接続され得る。アクションセンター(例えば、UiPath Action Center(商標))は、ロボットから人間にプロセスを渡すメカニズムを提供し得、その逆もあり得る。人間は、承認またはエスカレーションを提供し、例外処理などを行い得る。その後、RPAロボットは、所定のワークフローの自動機能を実行し得る。
【0045】
ローカルアシスタントは、ユーザーがオートメーション(例えば、UiPath Assistant(商標))を起動するための起動パッドとして提供され得る。この機能は、例えばオペレーティングシステムによって提供されるトレイで提供されてもよく、ユーザーが彼らのコンピューティングシステム上でRPAロボットおよびRPAロボット搭載アプリケーションとインタラクションすることを可能にし得る。インターフェースは、所定のユーザーに対して承認されたオートメーション/ワークフローをリストにし、ユーザーがそれらを実行することを可能にし得る。これらは、オートメーションマーケットプレイス、オートメーションハブの内部オートメーションストアなどからのすぐに使えるオートメーションを含んでもよい。オートメーションが実行しているとき、オートメーションがそのアクションを実行する間、ユーザーがコンピューティングシステムを使用できるように、それらは、コンピューティングシステム上の他のプロセスと並行してローカルインスタンスとして実行し得る。特定の実施形態では、アシスタントは、ユーザーがアシスタントの起動パッドからそれらのもうすぐ自動化されるプロセスを文書化できるように、タスクキャプチャ機能と統合される。
【0046】
別の例示的なエンゲージメント機能では、チャットボット(例えば、UiPath Chatbots(商標))、ソーシャルメッセージングアプリケーション、および/または音声コマンドは、ユーザーがオートメーションを実行することを可能にし得る。これにより、顧客とのやり取りまたは他のアクティビティを行うために必要な情報、ツール、およびリソースへのアクセスを簡素化し得る。例えば、チャットボットは、注文状況の確認、顧客関係管理(CRM)プラットフォームへのデータの投稿などの動作を実行するように構成されたロボットをトリガすることによって、自然言語で定式化されたコマンドに応答することができる。
【0047】
いくつかの実施形態では、ハイパーオートメーションシステム10のいくつかの機能は、反復的および/または再帰的に提供されてもよい。プロセスが発見され得、オートメーションが構築され得、テストされ得、そして展開され得、性能が測定され得、オートメーションの使用がユーザーに容易に提供され得、フィードバックが得られ得、AI/MLモデルが訓練され、再訓練され得、そしてプロセス自体が繰り返され得る。これにより、より堅牢で効果的な一連の自動化を促進する。
【0048】
図2は、本発明のいくつかの実施形態によるRPAシステム20の例示的なコンポーネントおよび動作を示す。RPAシステム20は、
図1のハイパーオートメーションシステム10の一部を形成し得る。RPAシステム20は、開発者がRPAワークフローを設計および実装することによって自動化を構築することを可能にするRPA設計アプリケーション40を含む。例えば、アプリケーション40は、ワークフローの遂行順序およびワークフローのアクティビティ間の関係の制御を開発者に与えるユーザーインターフェースおよびツールのセットを公開し得る。RPA設計アプリケーション40の商業的な一例は、UiPath Studio(商標)である。
【0049】
RPAワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0050】
ワークフローが開発されると、それは、RPAスクリプトまたはRPAパッケージ50(
図2)などのコンピュータ読み取り可能な形態でエンコードされ得る。RPAスクリプトは、それぞれのワークフローの仕様を含み、仕様は、RPAロボット22に理解可能(または解釈可能)である。RPAスクリプトは、例えば、拡張可能マークアップ言語(XML)、JavaScript Object Notation(JSON)、またはC#、Visual Basic、Javaなどのプログラミング言語のバージョンなどで、本技術分野で既知の任意のデータ仕様フォーマットに従って定式化され得る。あるいは、RPAスクリプトは、バイトコードのRPA固有のバージョンで、または英語、スペイン語、日本語などの自然言語で定式化された命令のシーケンスとしてでさえ定式化され得る。いくつかの実施形態では、1または複数の関連するRPAスクリプトが、他のファイルおよび/またはメタデータと共にバンドルされ、RPAパッケージ50を形成する。例えば、RPAスクリプトの他に、RPAパッケージ50は、それぞれのワークフロー(複数可)を遂行するために必要なリソースの仕様を含み得る。例示的なリソースは、とりわけ、ファイル(例えば、パス、URL)の位置、ファイル名、および特定のマシン、コンピュータプログラム、またはサービスにアクセスするための認証情報のセットを含む。本分野で「構築(build)」として一般的に知られているものでは、RPAスクリプトは、RPAパッケージ50を形成するために、メインの遂行可能ファイルと付随するライブラリ、リソース仕様、およびメタデータを含む遂行可能ファイルのセットに予めコンパイルされ得る。パッケージ50は、本分野で既知の任意のデータ仕様フォーマットを使用することができる。例えば、パッケージ50のいくつかの実施形態は、.NETアセンブリファイルのNuGetパッケージを含む。
【0051】
当業者は、RPA設計アプリケーション40が複数のコンポーネント/モジュールを含み得、それらが別個の物理的マシン上で遂行し得ることを理解するであろう。本発明のクラウドコンピューティングの実施形態を示すそのような一例では、RPA設計アプリケーション40は、クライアント-サーバー構成で遂行し得、アプリケーション40の1つのコンポーネントは、開発者のコンピュータ上でオートメーション設計インターフェースを公開してもよく、リモートサーバー上で遂行するアプリケーション40の別のコンポーネントは、ワークフローをアセンブルし、RPAパッケージ50を形成/出力することができる。例えば、開発者は、開発者のコンピュータ上で遂行されるウェブブラウザを介して自動化設計インターフェースにアクセスすることができ、一方、開発者のコンピュータで受信されたユーザー入力を処理するソフトウェアは、実際にはサーバー上で実行される。
【0052】
いくつかの実施形態では、RPA設計アプリケーション40で設計されたワークフローは、例えば上述のRPAパッケージの形態で、RPAコンダクタ24に展開される。上記によれば、いくつかの実施形態では、コンダクタ24は、
図1に示すハイパーオートメーションコアシステム30の一部であってもよい。コンダクタ24の商業的な一例は、UiPath Orchestrator(商標)である。
【0053】
コンダクタ24は、それぞれのワークフローを遂行する1または複数のRPAロボット22を編成する。このような「オーケストレーション(orchestration(編成))」は、クラウドコンピューティングシステムおよび/またはローカルコンピュータなどの環境におけるロボット22のためのコンピューティングリソースの作成、監視、および展開を含み得る。オーケストレーションは、とりわけ、ロボット22の展開、構成、キューイング、監視、ロギング、および/またはロボット22の相互接続性の提供をさらに含み得る。プロビジョニングは、ロボット22とコンダクタ24との間の接続を作成し維持することを含み得る。展開は、遂行のためにロボット22へのソフトウェア(例えば、RPAパッケージ50、個々のワークフロー仕様)の正確な送達を保証することを含み得る。構成は、ロボット環境およびワークフロー構成の維持および配信を含み得る。キューイングは、ジョブキューおよびキュー項目の管理を提供することを含み得る。監視は、ロボット状態の追跡を維持し、ユーザーの権限を維持することを含み得る。ロギングは、データベースおよび/または別のストレージメカニズム(例えば、SQL、ElasticSearch(登録商標)、Redis(登録商標))へのログの格納およびインデックス付けを含み得る。コンダクタ24はさらに、サードパーティーソリューションおよび/またはアプリケーションのための通信の集中点として機能し得る。
【0054】
RPAロボット22は、メインフレーム、ウェブアプリケーション、仮想マシン、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などで作成されたもの)、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなどを含むがこれらに限定されない様々なシステムおよびアプリケーションを対象とするオートメーションワークフローを実装する遂行エージェント(例えば、コンピュータプログラム)である。ロボット22の一商業的な例は、UiPath Robots(商標)である。
【0055】
いくつかの実施形態では、ターゲットアプリケーションのユーザーインターフェースと人間のユーザーとのインタラクションを模倣するために、RPAロボット22は、それぞれのホスト上で遂行されるRPAドライバ25のセットとインターフェースする。このようなドライバは一般に、画面上でのカーソルの移動、マウス、キーボード、および/またはタッチスクリーンイベントの登録および/または遂行、ハンドヘルドデバイスの現在の姿勢/向きの検出、現在の加速度計読み取り値の検出、スマートフォンのカメラでの写真撮影などの低レベルの動作を実行するソフトウェアモジュールを表す。このようなドライバの一部は、ローカルオペレーティングシステムの一部を形成する。他のRPAドライバ25は、SAP(登録商標)、Citrix(登録商標)仮想化ソフトウェア、Microsoft Excel(登録商標)などの複雑なターゲットアプリケーションとのユーザーのインタラクションの様々なアプリケーション固有の側面を実装し得る。1つの特定の例は、ブラウザ互換スクリプト(例えば、JavaScript(登録商標))のセットとして具体化され得るブラウザドライバを含む。ブラウザ内に現在表示されているウェブページに注入されると、そのようなブラウザドライバは、それぞれのウェブページの様々な要素(例えば、ボタン、メニュー、フォームフィールドなど)を特定し得、それぞれの要素の特定の機能(例えば、フォームフィールドへの入力、メニュー項目の選択、チェックボックスの切り替えなど)を呼び出し得る。他の例示的なRPAドライバ25は、Microsoft(登録商標) WinAppDriver、Apple, Inc.のXCTestドライバ、およびGoogle, Inc.のUI Automatorドライバを含む。
【0056】
ロボットのタイプは、とりわけ、アテンディッドロボット122、アンアテンディッドロボット222、開発ロボット(アンアテンディッドロボットに似ているが、開発とテストの目的で使用される)、および非生産ロボット(アテンディッドロボットに似ているが、開発とテストの目的で使用される)を含むことができる。アテンディッドロボット122のいくつかのアクティビティは、ユーザーイベントおよび/またはコマンドによってトリガされ、同じコンピューティングシステム上で人間のオペレータと共に動作する。いくつかの実施形態では、アテンディッドロボットは、ロボットトレイからまたはコマンドプロンプトからのみで開始され得、したがって、コンダクタ24から完全に制御され得ず、例えば、ロックされた画面の下で実行することはできない。アンアテンディッドロボットは、遠隔仮想環境において無人で実行され得、遠隔遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。
【0057】
Windows(登録商標)環境で遂行されるいくつかの実施形態では、ロボット22は、Microsoft Windows(登録商標)サービスコントロールマネージャ(SCM)管理のサービスをデフォルトでインストールする。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスのプロセッサ特権を持ち得る。例えば、コンソールアプリケーションは、SCM管理ロボットによって起動され得る。いくつかの実施形態では、ロボット22は、ユーザーレベルのプロセッサ特権(ユーザーモード、リング3)でインストールされ得る。このようなロボットは、それぞれのロボットがインストールされているユーザーと同じ権限を持つ。例えば、このようなロボットは、各ユーザーが実行可能な任意のアプリケーションを起動することができる。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが異なるユーザー名を使用して、別々のWindows(登録商標)セッションで実行され得る。
【0058】
いくつかの実施形態では、ロボット22は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。プラットフォームの詳細に応じて、SCM管理および/またはユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ24とホストマシン(すなわち、ロボット22が遂行するコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット22の資格情報を任されて管理する。コマンドラインはサービス(複数可)のクライアントであり、ジョブを起動し、その出力を表示またはさもなくば処理するために使用できるコンソールアプリケーションである。
【0059】
例示的なロボットエグゼキュータ26のセットおよびRPAエージェント28を
図3に示す。ロボットエグゼキュータ26は、Windows(登録商標)セッションの下で与えられたジョブを実行することができる。エグゼキュータ26は、ワークフロー(例えば、ロボティックアクティビティのシーケンス)を指定するRPAパッケージ50を受信し、RPAアクティビティのそれぞれのシーケンスを実行することに実質的になるそれぞれのパッケージを遂行するように構成される。いくつかの実施形態では、パッケージ50は、予めコンパイルされた実行可能コードを含む。他の例示的な実施形態では、ロボットエグゼキュータ(複数可)26は、ワークフロー仕様(例えば、バイトコード、XML、JSONなど)を含む受信したRPAスクリプトを、それぞれのワークフローを実行するためのプロセッサ命令を含む実行時コードに変換するように構成されたインタプリタ(例えば、ジャストインタイムのインタプリタまたはコンパイラ)を含む。従って、RPAパッケージ50の遂行は、エグゼキュータ(複数可)26が、パッケージ50に含まれるワークフロー仕様を翻訳し、それぞれのホストマシンのプロセッサに、結果として得られる実行時コードをメモリにロードし、実行時コードを遂行中に起動するように命令することを含む。
【0060】
RPAエージェント28は、ロボットエグゼキュータ(複数可)26の動作を管理し得る。例えば、RPAエージェント28は、人間のオペレータからの入力に従っておよび/またはスケジュールに従って、ロボットエグゼキュータ(複数可)26による遂行のためのタスク/スクリプトを選択し得る。エージェント28は、ジョブを開始および停止し、エグゼキュータ(複数可)22の様々な動作パラメータを構成し得る。ロボット22が複数のエグゼキュータ26を含む場合、エージェント28は、それらのアクティビティおよび/またはプロセス間通信を調整し得る。RPAエージェント28は、RPAロボット22、およびコンダクタ24、ならびに/または他のエンティティ間の通信をさらに管理し得る。
【0061】
図2の例示的なRPAシステム20は、ハイパーオートメーションシステム10(
図1参照)の一部を形成する。このように、ロボット22は、様々なコンポーネントと相互作用し、
図2にハイパーオートメーションサービス23として一般的に示されるハイパーオートメーションコアシステム30の様々な態様を使用することができる。例えば、開発者は、RPA設計アプリケーション40を使用して、AI/MLモデル36を利用するRPAロボット22を構築し、テストすることができる。そのようなRPAロボット22は、AI/MLモデル(複数可)の遂行のための入力を送信し、ハイパーオートメーションコアシステム30を介してそこからの出力を受信し得る。ロボット22は、上述のように、リスナーであってもよい。これらのリスナーは、ユーザーが彼らのコンピューティングシステムを使用するときに彼らがしていることに関する情報をコアハイパーオートメーションシステム30に提供し得る。次いで、この情報は、プロセスマイニング、タスクマイニング、タスクキャプチャなどのために、ハイパーオートメーションシステム30によって使用され得る。別の例示的な実施形態では、ハイパーオートメーションサービス23は、ロボット22をホストするコンピューティングシステムのユーザー、またはロボット22が情報を提供する別のコンピューティングシステムにデータラベリング機能を公開することができる。例えば、ロボット22がコンピュータビジョンAI/MLモデル36を呼び出すが、それぞれのモデルが画面上のボタンを正しく特定しない場合、ユーザーは正しい特定を明示的に提供し得る。このような情報は、ハイパーオートメーションコアシステム30に渡され、その後、それぞれのAI/MLモデルを再訓練するために使用され得る。
【0062】
いくつかの実施形態では、ハイパーオートメーションシステム10および/またはRPAシステム20の選択されたコンポーネントは、クライアントサーバー構成で遂行することができる。
図3に示すそのような構成の1つでは、エグゼキュータ(複数可)26およびRPAエージェント28を含むRPAロボット20は、クライアント側で、例えば
図1のRPAクライアントコンピュータ12a-cの1つで遂行し得る。次に、コンダクタ24の機能性および/またはハイパーオートメーションコアシステム30の他のサービスは、サーバー側、例えばリモートRPAサーバー32(
図1)上に実装され得る。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステム(例えば、物理マシンまたは仮想マシン)を含むことができることに留意すべきである。示されたRPAシステムは、クラウドベース、オンプレミス、またはそれらの組み合わせであり、さまざまなワークプロセスを自動化するためのエンタープライズレベル、ユーザーレベル、またはデバイスレベルの自動化ソリューションを提供する。
【0063】
ロボット22は、いくつかのジョブ/ワークフローを同時に実行し得る。RPAエージェント28(例えば、Windows(登録商標)service)は、複数のエグゼキュータ26の単一のクライアント側の接点として機能し得る。エージェント28は、ロボット22およびコンダクタ24の間の通信をさらに管理し得る。いくつかの実施形態では、通信は、RPAエージェント28によって開始され、それは、コンダクタ24へのWebSocketチャネルを開くことができる。エージェント28は、その後、チャネルを使用して、各エグゼキュータ26の状態に関する通知を、例えばハートビート信号として、コンダクタ24に送信し得る。次に、コンダクタ24は、チャネルを使用して、承認、ジョブ要求、ならびにRPAパッケージ50などの他のデータをロボット22に送信し得る。
【0064】
図3に示す一実施形態では、コンダクタ24は、ウェブインターフェース42と、アプリケーションプログラミングインターフェース(API)エンドポイント43およびサービスAPI/ビジネスロジック44のセットを含サービスモジュールのセットとを含む。ユーザーは、ウェブインターフェース42(例えば、ブラウザ16上で専用のウェブページを開くことによって)を介してコンダクタ24とインタラクションし、コンダクタ24に、ロボット22上でのジョブのスケジューリングおよび/または開始、ロボットグループ/プールの作成、ロボットへのワークフローの割り当て、キューへの/からのデータの追加/削除、ロボットまたはワークフローごとのログの分析などのアクションを実行するよう命令することができる。インターフェース42は、ハイパーテキストマークアップ言語(HTML)、JavaScript(登録商標)(JS)、または本分野で既知の任意の他のデータフォーマットを使用して実装され得る。
【0065】
コンダクタ24は、エンドポイント43を介してサービスAPI/ビジネスロジック44を選択的に呼び出すことによって、ユーザーによって要求されたアクションを実行し得る。さらに、いくつかの実施形態では、APIエンドポイント43を使用して、RPAロボット22とコンダクタ24との間で、とりわけ、構成、ロギング、展開、監視、およびキューイングなどのタスクのために通信する。APIエンドポイント43は、本分野で既知の任意のデータフォーマットおよび/または通信プロトコルを使用してセットアップされ得る。例えば、APIエンドポイント43は、Representational State Transfer(REST)および/またはOpen Data Protocol(OData)に準拠することができる。
【0066】
構成エンドポイントは、アプリケーションユーザー、権限、ロボット、アセット、リリースなどを定義および構成するために使用され得る。ロギングエンドポイントを使用して、エラー、ロボット22によって送信された明示的メッセージ、および他の環境固有の情報などの異なる情報をロギングすることができる。ロボット22は、デプロイメントエンドポイントを使用して、遂行すべきRPAパッケージ50のバージョンを問い合わせることができる。キューイングエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションの状態の設定など、キューおよびキュー項目の管理に責任を負い得る。監視エンドポイントは、ウェブインターフェース42および/またはRPAエージェント28の遂行を監視することができる。
【0067】
サービスAPI44は、例えば、コンダクタ24およびハイパーオートメーションシステム全体がオンプレミス展開タイプまたはクラウドベース展開タイプを有するかどうかに基づいて、適切なAPIアクセスパスの構成を通じてアクセス/呼び出されるコンピュータプログラムを含む。例示的なAPI44は、コンダクタ24に登録された様々なエンティティに関する統計を照会するためのカスタム方法を提供する。各論理リソースは、いくつかの実施形態では、ODataエンティティであってもよい。そのようなエンティティにおいて、ロボット、プロセス、キューなどのコンポーネントは、プロパティ、関係、および動作を有してよい。API44は、コンダクタ24から適切なAPIアクセス情報を取得することによって、またはOAuthフロー機構を使用する外部アプリケーションを登録することによって、ウェブアプリケーション42および/またはRPAエージェント28によって消費され得る。
【0068】
いくつかの実施形態では、サーバー側動作の永続層は、データベースサービスを実装する。データベースサーバー45は、RPAデータベース34へ/からデータを選択的に格納および/または取得するように構成され得る。データベースサーバー45およびデータベース34は、とりわけ、構造化クエリ言語(SQL)、ElasticSearch(登録商標)、およびRedis(登録商標)といった、本技術分野において既知の任意のデータ記憶プロトコルおよびフォーマットを採用し得る。サーバー45によって格納/取得される例示的なデータは、ロボット22およびロボットプールの構成パラメータ、ならびにロボット22によって遂行されるワークフローを特徴付けるデータ、ユーザー、役割、スケジュール、キューを特徴付けるデータなどを含み得る。いくつかの実施形態では、そのような情報はウェブインターフェース42を介して管理される。データベースサーバー45によって格納および/または取得されるデータの別の例示的なカテゴリは、各遂行ロボットの現在の状態を特徴付けるデータ、ならびに遂行中にロボットによってログ付けされるメッセージを含む。このようなデータは、APIエンドポイント43を介してロボット22によって送信され、例えばAPIロジック44を介してコンダクタ24によって集中管理され得る。データベースサーバー45によって格納および/または取得されるデータの別の例示的なカテゴリは、以下に詳細に説明するように、フォーム入力ストラテジーパッケージおよび/またはストラテジーランキングレコードを含む。
【0069】
サーバー45およびデータベース34はまた、例えば上述したようにクライアント側で遂行するリスナーモジュールから受信したプロセスマイニング、タスクマイニング、および/またはタスクキャプチャ関連データを格納/管理する。このような一例では、リスナーは、それらのローカルホスト(例えば、クリック、タイプされた文字、位置、アプリケーション、アクティブ要素、時間など)上で実行されたユーザーアクションを記録し、次いで、これらをデータベース34に提供されて格納される適切なフォーマットに変換することができる。
【0070】
いくつかの実施形態では、専用のAI/MLサーバー46は、AI/MLモデル36の自動化への組み込みを容易にする。予め構築されたAI/MLモデル、モデルテンプレート、およびさまざまな展開オプションによって、高度なAI/ML知識または専門知識を持たないオペレータでも、このような機能にアクセスできるようになる。展開されたロボット22は、AI/MLサーバー46とインターフェースすることによってAI/MLモデル36を呼び出すことができる。展開されたAI/MLモデル36の性能を監視することができ、それぞれのモデルは、人間が検証したデータを使用して再訓練および改善され得る。AI/MLサーバー46は、訓練ジョブをスケジュールして遂行し、訓練コーパスを管理することができる。AI/MLサーバー46はさらに、AI/MLモデル36、文書理解技術およびフレームワーク、意図分析、自然言語処理(NLP)、音声分析および合成、コンピュータビジョンなどを含むがこれらに限定されない様々なAI/ML機能のためのアルゴリズムおよびソフトウェアパッケージに関連するデータを管理することができる。
【0071】
図4は、本発明のいくつかの実施形態による例示的なフォーム入力RPAシステムを示す。空港チェックインのシナリオを示す例示的な実施形態では、RPAロボット22は、乗客のパスポートのスキャンを受信し、そこから名前、国籍、およびパスポート番号などの構造化データを自動的に抽出するように構成することができる。RPAロボットは、ウェブベースの空港チェックインフォームに乗客データを自動的に入力する。フォーム入力アクティビティを実行するために、ロボット22は、それぞれのフォームの各フィールドを特定し、適切な情報を入力することができる。
【0072】
RPAロボット22(
図4)は、RPAクライアント12、例えば、それぞれの空港ターミナルに配置されたデスクトップコンピュータ、またはそれぞれの航空会社によって操作されるリモートサーバーコンピュータ上で遂行し得る。フォーム入力アクティビティを遂行するために、ロボット22は、本例ではウェブブラウザのようなRPAターゲットアプリケーションによって公開されるターゲットユーザーインターフェース(UI)37とインタラクションする。本明細書に記載される例示的なターゲットUI37は、
図5に示され、複数の入力フィールド58を有するフォームを含む。当業者であれば、示したフォームの外観および内容は限定的なものではなく、同様のフォームが、CRMおよびERPプラットフォームクライアント、スプレッドシートアプリケーション、およびドキュメントビューアアプリケーション(例:Adobe(登録商標) Reader(登録商標))などの他のRPAターゲットアプリケーションによって表示され得ることを理解するであろう。
【0073】
ターゲットアプリケーションおよびターゲットUI37に応じて、入力フィールド58のタイプおよび挙動はかなり変化し得る。HTML仕様だけでも、とりわけテキスト、ラジオ、チェックボックス、日付、およびパスワードを含む、20超の異なる入力タイプが定義されている。このようなフィールドタイプは、タイプ固有の挙動を有する。例えば、
図5の例示的なフィールド58などの日付フィールドをクリック/タップすると、カレンダーウィジェットが表示され、カレンダーを介して日付を選択するユーザー入力が期待される。その他のフィールドタイプでは、ユーザーは、オプションのドロップダウンリストから入力データを選択できる。ウェブデザイナは、入力データのフォーマットおよび/または内容を制限する自動補完および/または入力検証手順の追加など、様々なオプション機能をさらにオンにすることができる(例えば、数字があらかじめ決められた範囲内にあること、日付があらかじめ決められたフォーマットで書かれていること、それぞれのテキストが特定の特殊文字を含んでいないことなどを確実にする)。いくつかのエンタープライズアプリケーションUIによって公開される入力フィールドの挙動は、さらに複雑な場合があり得る。例えば、ドロップダウンメニューからオプションを選択すると、ポップアップウィンドウが表示され、別の入力フィールドのセットなどがさらに公開され得る。したがって、フォーム入力ロボットを設計しようとしているRPA開発者は、それぞれのフィールドを入力する適切な方法をロボットに指示するために、ロボットが実行時に遭遇する入力フィールドのタイプと挙動に関する正確な事前知識を必要とする場合がある。
【0074】
本発明のいくつかの実施形態は、多種多様な入力タイプおよび関連する挙動変動を考慮に入れると、与えられたフォームフィールドに入力するためのただ1つの所定のストラテジーに依存するRPAロボットは、多くの理由で失敗する可能性があるという観察に依存している。例えば、ターゲットフォームの詳細の1つが突然変更され、それぞれの入力手順がもはや機能しなくなる場合がある。このような一例では、ターゲットUI37の開発者は、単純なテキストフィールドをドロップダウンフィールドに変更することができる。各フィールドに単に入力するように構成されたRPAロボットは、そこから選択するオプションのセットを予想外に提示され得、適切に応答できない場合がある。
【0075】
このような欠点に対処するために、いくつかの実施形態では、RPAロボット22に、それぞれのフィールドに入力するための複数の代替ストラテジーを与え、1つのストラテジーが失敗したときに、ロボット22が少なくとも別のストラテジーを試みることができるようする。それぞれの複数のフォーム入力ストラテジーは、それぞれの入力フィールドのタイプに固有であってもよく、すなわち、ドロップダウンフィールドに関連するある複数のストラテジーおよび日付フィールドに関連する別の複数のストラテジーなどがあってもよい。いくつかの実施形態では、ストラテジーは、例えば、それらが試されるべき順序および/またはそれぞれのフォーム/フィールドに入力することに成功する可能性を示すためにランク付けされ得る。
【0076】
いくつかの実施形態では、フォーム入力ストラテジーは、例えば、設計時にRPAパッケージ50に含まれるか、またはストラテジーリポジトリ53(
図4)からオンデマンドでフェッチされ得るライブラリの形態で、他のRPAワークフローとは独立して開発される。
図6は、本発明のいくつかの実施形態による例示的なフォーム入力ストラテジー70を示す。ストラテジー70は、フォームの少なくとも1つの入力フィールドに入力するためのRPAワークフローを含み、入力変数および/または出力変数を有してもよい。例えば、ストラテジー70は、入力データ75のセットを受信し、それぞれのストラテジーがそれぞれの入力フィールドにデータ75を導入することに成功したかどうかを示す成功インジケータ77を出力するように構成され得る。
【0077】
いくつかの実施形態では、ストラテジー70は、個々のフォーム入力タスクを集合的に実行する一連の個々のRPAアクティビティ72を含む。アクティビティ72は、本分野で既知の任意のRPAアクティビティを含み得る。ドロップダウンフィールドに入力するためのストラテジーの一例では、アクティビティ72は、とりわけ、それぞれの入力フィールドがドロップダウンシンボル(例えば、矢印、三角形)を表示するかどうかを決定することを含み得;はいの場合、各記号を自動的にクリックして、各ドロップダウンリストを表示し;入力データ75と一致する項目を特定するためのリストを構文解析し;そしてリストから各項目を選択する。ドロップダウン入力フィールドに入力するための別の例示的なストラテジー70は、各フィールドへの入力を試み、各フィールドが入力値を提案することによって応答するかどうかを決定するRPAアクティビティ72を含むことができ;はいの場合、提示された値が所望の入力値と一致するかどうかを判断し;はいの場合は、各推奨値をクリックする。いくつかのアクティビティ72は、より複雑であってもよく、および/または外部リソースまたはサービスを呼び出すことを含んでいてもよい。このような一例では、ターゲットUI37は、英語および/またはラテンアルファベットで定式化された入力を受信するように構成され得る。しかし、入力データ75の一部は、異なる言語および/またはスクリプト(アラビア語、中国語など)で提供されてもよい。そのような状況では、いくつかのアクティビティ72は、入ってくるデータが期待されるフォーマットであるかどうかを判断することを含むことができ;いいえの場合、画像解析、変換および/またはさらなる操作のために、それぞれのデータをリモートサーバー(例えば、
図2のハイパーオートメーションサービス23)に送信し、応答として正しくフォーマットされた入力データを受信する。
【0078】
いくつかの実施形態では、RPA開発者は、RPA設計アプリケーション40のインスタンスを使用して、任意の他のRPAワークフローと同様に、フォーム入力ストラテジー70を開発することができる。次いで、ストラテジー70は、ストラテジーパッケージ51としてコンピュータ読み取り可能なフォームでエクスポートし得る。パッケージ51は、通常のRPAパッケージ(
図2に関する上記説明を参照)と同じデータフォーマットを使用できる。例えば、パッケージ51は、RPAアクティビティ72、依存関係、および/またはRPAロボット20がストラテジー70を遂行するために必要な他のリソースのコンピュータ読み取り可能な仕様を含むRPAスクリプトを含むことができる。
【0079】
ストラテジーパッケージ51は、例えば、選択的な挿入および取得を可能にするインデックス付きデータ構造の形態で、ストラテジーリポジトリ53に格納され得る。リポジトリ53は、データベースサーバーによって管理され、RPAデータベース34(
図1)の一部を形成し得る。中央リポジトリから取得可能なパッケージ51を有することにより、他のRPAワークフローとは独立してフォーム入力ストラテジー70を開発し、維持することが可能となり、さらに、複数の自動化に亘ってそのようなストラテジーを共有し、再利用することが可能となる。いくつかの実施形態では、フォーム入力ストラテジー70は、RPAオートメーションのためのビルディングブロックとしてRPA設計アプリケーション40にさらに含まれ得る。このような一例では、アプリケーション40は、選択されたフォームフィールドに入力するための複数の利用可能な方法をリストする専用アクティビティメニューによって、開発者に様々なフォーム入力ストラテジー70へのアクセスを与えることができる。
【0080】
既成のストラテジー70の共有および再利用をさらに容易にするために、いくつかの実施形態は、ターゲットUI37と、それぞれのターゲットUIによって表示されるフォームを入力するために使用可能なストラテジー70との間の関連を維持する。そのような実施形態は、いくつかのUI37、例えば、複雑なERPプラットフォームによって公開されるインターフェースは、同じロボット22によって繰り返しアクセスされ、かつ/または複数の自動化および/またはロボット22によって同時にターゲットにされ得るという観察に依存する。このような一例では、複数のワークフローの各々は、別個のソース(例えば、別個のタイプの文書、別個のソフトウェアアプリケーションなど)からデータを抽出するように構成することができる。ただし、すべてのそれぞれのワークフローは、同じオンラインフォームを使用して、それぞれのデータをERPシステムに転送することができる。それぞれのフォームと、それぞれのフォームに記入するためのストラテジー70のセットとの間の関連を維持することは、それぞれのフォーム/ターゲットUIに対して現在どのようなストラテジーが機能するかについての共有知識ベースになる。特定のストラテジーが突然失敗した場合、それぞれのロボットは、利用可能なオプションの中から有効なストラテジーを検索し、それに応じて知識ベースを更新して、それぞれのフォーム/フィールドを新たに特定された成功したストラテジーに関連付けることができる。その後、それぞれのフォーム/フィールドをターゲットとする他のロボットおよびワークフローは、新しい成功ストラテジーを直接使用することができるため、自動化のパフォーマンスとユーザーエクスペリエンスが向上する。
【0081】
いくつかの実施形態は、ストラテジーランキングレジスタ52および/またはローカルストラテジーランキングキャッシュ152(
図4)の形態で、ターゲットUI37をフォーム入力ストラテジー70に関連付ける知識ベースを格納する。レジスタ52およびキャッシュ152は、本分野で既知の任意のデータフォーマットを有する検索可能なレコードの集合を含むことができる。レジスタ52は、RPAデータベース34(
図1)の一部を形成することができ、その内容が様々なRPAホスト上で遂行するRPAロボット22にアクセス可能となるように、データベースサーバーによって集中管理され得る。
【0082】
図7-Aに示される例示的な実施形態では、レジスタ52および/またはキャッシュ152は、リレーショナルデータベーステーブル内の個々の行として示される複数のストラテジーランキングレコード60を格納する。各行/レコード60は、フォームID62、フィールドID59、およびフィールドタイプインジケータ64などのターゲット特定データのセットを含み、自動入力のターゲットとなる特定の入力フィールドを集合的に特定する。フォームID62は、例えば、ターゲットUI37(例えば、
図5参照、ここで、フォームは統一レコードロケータ/URLによって特定される)の統一レコード識別子(URI)を含み得る。ターゲットUI37がウェブベースでない場合、フォームID62は、UI37および/またはUI37によって表示される特定のフォームを特定し得る他のデータを含むことができる。例えば、いくつかの実施形態は、UI37を表示しているコンピュータプログラムの識別子(例えば、プロセスID)、現在UI37を表示しているウィンドウの属性(例えば、名前)、各フォームを含むドキュメントの名前などを使用してもよい。いくつかの実施形態では、フォームID62は、UI37によって表示されるすべてのフィールドのフィールド識別子(フィールドラベル)のリストを含むUI37のダイジェストをさらに含み得る。このようなデータは、URLまたは他の識別子が変更される可能性がある場合に、それぞれのUI/フォームの明確な特定の可能性を高めることができる。
【0083】
フィールドID59は、ターゲットUI37の他の要素の中でターゲット入力フィールドを特定する任意のデータを含み得る。例えば、フィールドID59は、
図5および
図7-Aに示すように、それぞれの入力フィールドの隣に表示されるテキストラベルを含むことができる。別の例示的なフィールドID59は、ローカルオペレーティングシステムによって管理されるUIツリー表現であるUI37のUIツリー表現から抽出された属性値対のセットを含むことができる。このような属性値ペアのセットは、それぞれのUIツリー内の一意の位置を示すことによって、識別子として機能することができる。他のフィールドIDデータは、各入力フィールドの画像、各フィールドの隣に表示されるラベルまたはタイトルなどを含むことができる。
【0084】
フィールドタイプインジケータ64は、例えば、入力の各タイプを他のタイプから区別する番号またはラベルによって、各入力フィールドのタイプを示す。
図5および
図7-Aに示す例では、ラベル「43」は付属のカレンダーウィジェットによる日付入力を示し得、ラベル「2」はテキストフィールドへの単純な入力を示すことができる。フィールドタイプインジケータ64は、ウェブベースのフォームフィールドと、スプレッドシートアプリケーションおよび種々のレガシーソフトウェアのような他のコンピュータプログラムによって表示される入力とをさらに区別することができる。
【0085】
項目59、62、および64などのターゲット識別子は、ターゲット入力フィールドを集合的に特定する(現在の例では、「Expiration date」というラベルが付けられ、URL「gammaair.com/boarding-check.html」にあるウェブページによって表示される日付入力)。いくつかの実施形態では、ストラテジーランキングレコード60は、それぞれのターゲット識別子によって特徴付けられるフィールドに入力するために使用可能な少なくとも1つのフォーム入力ストラテジー70の識別子をさらに含む。好ましい実施形態では、レコード60は、それぞれの入力に適用可能な複数の代替フォーム入力ストラテジー70を特定し、さらにそれぞれのストラテジーのランキングを示すストラテジーランキングインジケータ54を含む。いくつかの実施形態では、ストラテジーランキングは、例えば、より低いランクのストラテジーの前に試みられるより高いランクのストラテジーを用いて、それぞれのフィールドをうまく入力するためにそれぞれのストラテジーが試みられるべき順序を示す。
【0086】
例示的なランキングは、それぞれのストラテジーがそれぞれのフォームフィールドへの入力に成功する可能性、それぞれのストラテジーに関連する計算コスト、それぞれのストラテジーの複雑さ(例えば、個々のステップのカウント)、それぞれのストラテジーの遂行によって引き起こされるそれぞれのフィールドの状態への変化の量など、それぞれのストラテジー70のパフォーマンスの尺度に従って決定される。他の例示的なストラテジー選択およびランキング基準は、いくつかのストラテジーは、あるデバイス上で昇格され(スマートフォン等)、他のデバイス上で降格される(例えば、デスクトップコンピュータ)デバイスタイプを含むことができる。ランキングインジケータ54の内容は、とりわけ、それぞれの自動化を遂行するRPAクライアント12の現在の位置(例えば、地理的位置、クラウドプラットフォーム、ネットワークプロバイダなど)、それぞれの自動化を実行する顧客の特定、およびそれぞれの自動化に関連するサービス契約に応じてさらに変化し得る。
【0087】
図7-Aに示される例示的な実施形態では、ランキングインジケータ54は、各々がそれぞれのフォーム入力ストラテジー70に一意に関連付けられたストラテジー識別子h
kの順序付けられたリストを含む。例示的なストラテジー識別子h
kは、整合性ハッシュ、例えば、それぞれのフォーム入力ストラテジー70(例えば
図6を参照)の仕様を含むストラテジーパッケージ51上で計算されたハッシュを含むことができる。別の例示的なストラテジー識別子h
kは、それぞれのストラテジー70に関連するデータベースレコードを指すインデックス(例えば、ハッシュインデックス)を含む。
図7-Aにおいて、ストラテジーリポジトリ53は、インデックスh
kを、それぞれのフォーム入力ストラテジーを指定するストラテジーパッケージ51を取得するためのアドレスを示すストラテジー位置インジケータ66(例えば、URL)に関連付ける。
【0088】
当業者であれば、ターゲット入力フィールド58をフォーム入力ストラテジー70およびランキングと関連付ける多くの方法があり得ること、ならびにそのような実装の詳細は限定するものではないことを理解するであろう。代替の実施形態では、レコード60は、拡張マークアップ言語(XML)、Javascript(登録商標) object notation(JSON)、または任意の他の宣言的データフォーマットのバージョンで定式化された属性値対のセットによって定義され得る。
図7-Bに示す例では、フィールドID59は、「キー」属性の値を含み、フィールドタイプインジケータ64は、「タイプ」引数の値を含み、フォームID62およびランキングインジケータ54は、それぞれ、「アプリケーション識別子」および「トレース」属性の現在の値を含む。示されたフォームID62は、ターゲットUI37がウェブベースのフォームであることをさらに特徴づける。
【0089】
図7-A-Bに示される実施形態は、ストラテジーの例示的なランキングをさらに提供し、インジケータ54は、ストラテジーIDの順序付けられたシーケンスを含み、順序付けられたシーケンス内の位置は、現在のランクを示す。例えば、
図7-Aにおいて、h
12によって特定されるストラテジーは、h
2によって特定されるストラテジーよりも高いランクを有することがあり、次いで、h
2は、h
8によって特定されるストラテジーよりも高いランクを有することなどがある。
図7-Bにおいて、「Strategy(ストラテジー)8」は、「Strategy(ストラテジー)3」などよりも上位にランクされ得る。
【0090】
当業者であれば、項目の集合にランキングを付加する多くの方法があり得ること、およびそのような実装の詳細が制限を意味するものではないことを理解するであろう。1つの例示的な代替実施形態では、ランキングインジケータ54は、nサイズの数rkのベクトルを含むことができ、ここで、nは利用可能なストラテジー70のカウント数である。各要素rkは、別個のフォーム入力ストラテジー70に対応することができ、一方で、その値は、それぞれのストラテジーの現在のランクを示すことができる。
【0091】
図8は、本発明のいくつかの実施形態におけるRPAロボット22によって実行されるステップの例示的なシーケンスを示す。ステップ802は、ターゲットフォームの選択されたフィールドに入力するためのアクティビティを含むRPAワークフローの仕様を受信し得る。ワークフロー仕様は、リモートRPAサーバー32(例えば、
図4を参照)上で遂行するRPAコンダクタ24のインスタンスによって送信されるRPAパッケージ50のフォームでロボット22に配信され得る。さらなるステップ804では、ロボット22は、それぞれの自動化によって目標とされるユーザーインターフェース(例えば、
図4-5のターゲットUI37)を特定することができる。ターゲットUIは、パッケージ50によって明示的に指定され得る。代替実施形態では、ロボット22は、例えば、ロボットを特定のURLまたは現在画面上に表示されているUIに注意を向かせることによって、ユーザーにターゲットUI37を選択またはさもなくば指示するように促すことができる。
【0092】
ステップ804は、UI37とインタラクションするために少なくとも1つのRPAドライバ25を設定することをさらに含み得る。ウェブベースのユーザーインターフェースの場合、いくつかの実施形態は、スクリプトのセットをターゲットUI37に注入し、それぞれのスクリプトは、UI37を表示するブラウザアプリケーションによって実行されると、ドライバの機能を集合的に実装する。各ドライバは、現在のRPAワークフローで指定されたフォーム入力アクティビティを効果的に実行し、その過程でロボット22と通信することができる。そのような実施形態では、ドライバ25を設定することは、ロボット22とそれぞれのドライバとの間の通信チャネルを設定することをさらに含むことができる。ウェブベースのインターフェースの場合、例示的な通信チャネルは、ウェブ拡張機構を使用して確立することができる。このような実装の詳細は、本説明の範囲を超える。
【0093】
受信されたRPAワークフロー仕様は、ターゲットUI37の入力フィールドのセットに入力するようにロボット22に明示的に命令し得る。代替実施形態では、自律型ロボットは、それぞれのUIによって表示されるすべてのフィールドに入力しようとするか、または所定の基準またはアルゴリズムに従ってどのフィールドに入力するかを独立して決定することができる。各そのようなターゲット入力58(すなわち、ステップ806がはいを返す間)に対して、ステップ808-810のシーケンスは、
図7-A-Bに関連して上述したように、フォームID62、入力タイプ64および/またはフィールドID59などの、それぞれの入力フィールドの特性のセットを含むターゲットID61を決定することができる。実装に応じて、このようなターゲットIDデータは、RPAパッケージ50で指定されてもよく、またはターゲットUI37を分析することによってその場でRPAドライバによって決定されてもよい。UI37がブラウザアプリケーションによって表示されるとき、RPAドライバは、例えばUI37のドキュメントオブジェクトモデル(DOM)を解析することによって、ターゲットIDデータ(例えば、入力フィールドのタイプ、入力フィールドの横に表示されるラベルなど)を導出することができる。別の例示的な実施形態は、ターゲットUI37の画像をキャプチャし、それぞれの画像をAI画像処理モジュール(例えば、
図1のAIモデル36)に送信し、応答としてターゲットIDデータ61を返信し得る。
【0094】
次に、ステップ812-814のシーケンスにおいて、RPAロボット22は、それぞれのターゲットIDデータを有するストラテジーランキングレコードをルックアップ(look-up)することができる。本開示は、集中ストラテジーランキングレジスタ52(
図4)へのリモートルックアップのみを説明する。しかし、当業者は、利用可能であれば、同様のルックアップをローカルランキングキャッシュ152に実行してもよいことを知っている。いくつかの実施形態では、ローカルキャッシュ152内のストラテジーランキングレコードを検索し、それぞれのターゲットIDに関連するレコードをローカルに見つけることができない場合、および/またはローカルキャッシュが期限切れになった場合にのみ、リモートルックアップを実行することができる。ステップ812は、ターゲットUI37によって表示される少なくとも1つの入力フィールドを特定するターゲットIDデータ61を含む、RPAサーバー32に対するクエリを定式化することを含み得る。それぞれのクエリのフォーマットと内容は実装に依存し得る。
【0095】
図9は、本発明のいくつかの実施形態におけるRPAサーバー32によって実行されるステップの例示的なシーケンスを示す。示されたステップは、RPAコンダクタ24のようなコンピュータプログラムおよび/またはデータベースサーバー45のソフトウェアコンポーネント(例えば、
図3)によって遂行され得る。ステップ902-904のシーケンスは、RPAクライアント12からの入力クエリをリッスン(listen)することができる。クエリが受信されると、ステップ906は、それぞれのクエリに含まれるターゲットIDデータに従って、ストラテジーランキングレジスタ52へのルックアップを実行する。レジスタ52は、ターゲットIDデータをストラテジーランキングインジケータ(例えば、
図7-A-Bに関する上記説明を参照)に効果的に関連付けるので、ルックアップは、それぞれの特性を有する入力フィールドに対応するランキングインジケータ54を生成することができる。
【0096】
それぞれの特性を有するレコード60が現在レジスタ52内に存在しない場合(ステップ908は、例えば、ターゲットUI37が新しいか、またはロボット22によってまだ訪問されていない場合にいいえを返すことができる)、ステップ910は、ターゲットIDデータ61によって特徴付けられる入力フィールドに対して新しいストラテジーランキングレコードを作成することができる。いくつかの実施形態では、新しいストラテジーランキングレコードのランキングインジケータ54は、所定のデフォルト値のセットを含むことができる。別の言い方をすれば、レコード60は、デフォルトのフォーム入力ストラテジー70およびランキングのセットに初期化され得る。デフォルトのフォーム入力ストラテジーおよびランキングは、フィールドタイプ固有であってもよく、すなわち、入力フィールドのタイプごとに異なっていてもよい。デフォルトのランキングインジケータの内容は、静的(例えば、RPA開発者による定義)であってもよく、またはレジスタ52の現在の内容に従って動的に決定されてもよい。例えば、いくつかの実施形態は、レジスタ52内で、現在のターゲット入力といくつかの特定データを共有するレコードのファミリーを特定し、それぞれのレコードのファミリーに従ってデフォルトのランキングインジケータを決定することができる。このような一例では、デフォルトのランキングインジケータは、それぞれのクエリに含まれるものと同じタイプ(例えば、同じタイプのインジケータ64)および/または位置(例えば、同じURL、同じインターネットドメインなど)の別の入力に対応する別のランキングインジケータのコピーを含むことができる。
【0097】
他の例示的な実施形態では、デフォルトのストラテジーは、それらがそれぞれの入力フィールドの状態をどのように変化させるかに従って選択され得る。例えば、それぞれの入力の状態に可逆的な変化を引き起こすストラテジーのみをデフォルトのストラテジーとして選択することができ、この選択により、それぞれのストラテジーが失敗した場合にそれぞれの入力をその初期状態に戻すことができる。一方、デフォルトのランキングは、各それぞれのストラテジーによって生成される状態変化のサイズに従って決定されてもよく、いくつかの実施形態は、他よりも比較的小さな変化を生成するストラテジーを優先する。詳細は、ステップ822(
図8)を参照のこと。
【0098】
ステップ912において、サーバー32は、ランキングインジケータ54を要求RPAクライアントに送信することができる。上述のような状況に応じて、インジケータ54は、データベースルックアップの結果(ステップ906の出力)またはデフォルトのランキングインジケータ(ステップ908の出力)を含むことができる。
【0099】
ステップ814(
図8)において、RPAロボット22は、ランキングインジケータ54を受信し、インジケータ54に従ってストラテジー70のセットを特定することができる。次いで、ロボット22は、それが成功するストラテジーを見つけるまで、それぞれのストラテジーをサイクルすることができる。ランキングインジケータ54によって示されるすべてのストラテジーが失敗した場合、いくつかの実施形態は、それぞれの入力フィールドの入力することの失敗を報告し(ステップ830)、UI37の次のターゲット入力に進む。
【0100】
ステップ818は、ランキングインジケータ54に従ってストラテジーを選択する。いくつかの実施形態は、ランク順にストラテジーを選択する:最高ランクのものが最初であり、下位ランクのものに戻る。ステップ820は、選択されたストラテジーの仕様を取得することができる。いくつかの実施形態は、RPAパッケージ50内のフォーム入力仕様の実質的な集合を含む。代替実施形態は、RPAサーバー32(例えば、RPAコンダクタアプリケーション/サービス24)から要求に応じてストラテジーパッケージ51を取得し得、パッケージ51は選択されたフォーム充填ストラテジーの仕様を含む。
【0101】
さらなるステップ822は、ストラテジー70を効果的に実行すること、すなわち、それぞれのストラテジーを構成する一連のRPAアクティビティを実行することができる。このようなRPAアクティビティは、例えば、それぞれの入力フィールドをクリック/タップすること、それぞれのフィールドにタイプすること、ドロップダウンメニューの展開を検出すること、およびメニュー項目を解析して入力データ75に一致する少なくとも1つの項目を特定することを含み得る。このようなアクティビティを実行するために、ロボット22は、ステップ804で構成されたRPAドライバ25と協働することができる(上記詳細を参照)。
【0102】
ステップ822を遂行する準備として、いくつかの実施形態は、ターゲット入力58をその初期状態、すなわち、それぞれの入力が特定され、自動入力のために選択されたときのそれぞれの入力の状態に戻すことができる。そのような実施形態では、上述のステップ808-810は、それぞれの入力の初期状態を決定し、記録することをさらに含むことができる。状態は、フィールド固有属性の初期値のセットによって定義することができ、そのような値は、例えば、それぞれの入力のデフォルトコンテンツ、それぞれの入力に関連するウィジェットが現在アクティブ/表示されているか否か、ドロップダウンリストが現在表示されているか否かなどを示す。次に、新しいストラテジーを遂行する準備として(ステップ822)、RPAロボット22は、RPAドライバ25と協働して、ターゲット入力58のフィールド固有属性をステップ808-810に記録された初期値にリセットすることができる。
【0103】
代替の例示的な実施形態では、フォーム入力ストラテジー70(例えば、ストラテジーパッケージ51)の仕様は、それぞれのストラテジーの遂行中の中間ステージ/基準点のセットのインジケータ、および各中間ステージにおけるターゲット入力58の基準状態のインジケータを含むことができる。中間ステージの例示的なセットは、連続するRPAアクティビティ72(
図6)の間のステージを含む。例示的な基準状態は、ストラテジー内のそれぞれの中間ステージにおける入力58の所望/期待状態を含むことができる。そのような実施形態では、各ストラテジーを遂行する前に、ロボット22は、ターゲット入力58の現在の状態が、それぞれのストラテジーに関連する基準状態のいずれかと一致するかどうかを判断することができる。はいの場合、上記のように入力58をその初期状態にリセットする代わりに、いくつかの実施形態は、ターゲット入力58の現在の状態に一致する中間段階からストラテジー70の遂行を開始することができる。このような一例では、ストラテジーAは、単に入力データ75をターゲットフィールド58にタイプすることを含む。しかし、フィールド58がタイピングに応答してオプションのドロップダウンリストを予期せずに開くと、ストラテジーAはそれぞれのフィールドを適切に入力することに失敗する可能性がある。次いで、ロボット22は、ターゲットフィールドへの入力を試み、次いで、入力データ75を表示されたドロップダウンオプションのいずれかに一致させることを試みる代替ストラテジーBを選択することができる。しかし、ストラテジーBを遂行する準備として、ロボット22は、失敗したストラテジーAが、ドロップダウンリストが既に表示されている状態でターゲット入力58を残したことを最初に判断し、したがって、ドロップダウンリストが表示されている中間段階からストラテジーBの遂行を開始することができる。
【0104】
ステップ824では、ロボット22は、現在のストラテジーがそれぞれのターゲット入力を満たすことに成功したかどうかを判断することができる。いくつかの実施形態では、ロボット22は、現在のストラテジーの遂行中に生成された状態報告および/またはエラーメッセージに従って成功を測定する(ステップ822)。例えば、
図6の成功インジケータ77を参照。代替実施形態は、ストラテジー70のすべてのRPAアクティビティ72が遂行を完了したときに、現在のストラテジーが成功したと判断する。そのような実施形態は、各アクティビティ72の完了時のターゲット入力58の状態を、ストラテジー70の遂行中のその時点における基準/期待状態と比較し、状態が一致したときに、それぞれのアクティビティが正常に完了したと判断することができる。(上記の参照状態の説明を参照。)さらに別の例示的な実施形態は、ターゲット入力が所望の入力データ75を含む場合にのみ、現在のストラテジーが成功したと判断し得る。ターゲットフィールドの現在の内容を決定するために、ロボット22は、RPAドライバ(複数可)25に、ターゲットUI37(例えば、DOM、UIツリーなど)のプログラム表現を解析するように依頼することができる。別の例では、ステップ824は、ターゲットUI37またはターゲット入力のスナップショットを取ることと、画像処理AIモジュールを使用してターゲット入力の現在の内容を決定することとを含むことを含み得る。
【0105】
入力が成功したことに応答して、ステップ826において、ロボット22は、現在のストラテジーランキングを再計算して、フォーム入力が成功したストラテジーを促進することができ、それにより、それぞれのストラテジーは、それぞれのターゲット入力を入力する後続の試みにおいて優先順位付けされ得る。次に、ステップ828において、いくつかの実施形態は、ランキング更新56をストラテジーランキングレジスタ52および/またはローカルキャッシュ152に送信する(例えば、
図4を参照)。
【0106】
ランキング更新56は、他のフォーム入力ストラテジーに関して成功したストラテジーを促進する更新されたストラテジーインジケータを含むことができる。代替実施形態では、ランキング更新56は、成功したストラテジーの識別子と、それぞれのターゲット入力を特定するターゲットIDとを少なくとも含むことができる。更新56に含まれる追加データは、現在の成功した入力への途中で試みられた失敗したストラテジー70のリストおよび/または関連する成功インジケータ77の内容、エラーメッセージなどを含むことができる。次いで、サーバー32は、そのようなデータを使用してランキングインジケータ54を更新し、現在それぞれのターゲット入力に関連付けられている他のストラテジーよりも成功したストラテジーを促進/優先順位付けすることができる。失敗したストラテジーは、それぞれのターゲット入力に入力するための将来の試みで優先順位が下がるように、例えば、それらのランクを下げて、降格させることができる。次いで、サーバー32は、更新されたランキングインジケータを含むようにランキングレジスタ52を更新することができる。
【0107】
図10は、本明細書に記載される方法のいくつかを遂行するようにプログラムされたコンピュータシステム80の例示的なハードウェア構成を示す。コンピュータシステム80は、
図1のRPAクライアント12a-c、
図4のRPAクライアント12、およびRPAサーバー(複数可)32のいずれかを表すことができる。示されたアプライアンスはパーソナルコンピュータであり;サーバー、携帯電話、タブレットコンピュータ、ウェアラブルコンピューティングデバイスなどの他のコンピュータシステムは、構成が若干異なる場合がある。プロセッサ(複数可)82は、信号および/またはデータのセットを用いて計算および/または論理演算を遂行するように構成された物理デバイス(例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路)を含む。このような信号またはデータは、エンコードされ、プロセッサ命令、例えばマシンコードの形でプロセッサ(複数可)82に送られ得る。プロセッサ82は、中央処理装置(CPU)および/またはグラフィックス処理装置(GPU)のアレイを含むことができる。
【0108】
メモリユニット83は、動作を実行する過程でプロセッサ(複数可)82によってアクセスまたは生成されるデータおよび/または命令エンコーディングを格納する揮発性のコンピュータ読み取り可能な媒体(例えば、ダイナミックランダムアクセスメモリ-DRAM)を含むことができる。入力デバイス84は、とりわけ、コンピュータキーボード、マウス、トラックパッド、およびマイクロフォンを含み得、ユーザーがデータおよび/または命令をコンピュータシステム80に導入することを可能にするそれぞれのハードウェアインターフェースおよび/またはアダプタを含む。出力デバイス85は、とりわけ、モニタおよびスピーカなどの表示デバイス、ならびにグラフィックカードなどのハードウェアインターフェース/アダプタを含み得、それぞれのコンピューティングデバイスがユーザーにデータを通信することを可能にする。いくつかの実施形態では、入力および出力デバイス84-85は、共通のピースのハードウェア(例えば、タッチスクリーン)を共有する。ストレージデバイス86は、ソフトウェア命令および/またはデータの不揮発性記憶、読み取り、および書き込みを可能にするコンピュータ読み取り可能な媒体を含む。例示的なストレージデバイスは、磁気ディスクおよび光ディスクおよびフラッシュメモリデバイス、ならびにCDおよび/またはDVDディスクおよびドライブなどのリムーバブル媒体を含む。ネットワークアダプタ(複数可)87は、電子通信ネットワーク(例えば、
図1)および/または他のデバイス/コンピュータシステムに結合された物理リンクを介してデータを通信するための機械的、電気的、およびシグナリング回路を含む。アダプタ(複数可)87は、種々の通信プロトコルを使用してデータを送信および/または受信するように構成され得る。
【0109】
コントローラハブ90は、複数のシステム、周辺機器、および/またはチップセットバス、および/またはプロセッサ(複数可)82とコンピュータシステム80の残りのハードウェアコンポーネントとの間の通信を可能にする他のすべての回路を一般的に表している。例えば、コントローラハブ90は、メモリコントローラ、入/出力(I/O)コントローラ、および割込みコントローラを含み得る。ハードウェア製造業者に依存して、いくつかのこのようなコントローラは、単一の集積回路に組み込まれてもよく、および/またはプロセッサ(複数可)82と統合されてもよい。別の例では、コントローラハブ90は、プロセッサ82をメモリ83に接続するノースブリッジ、ならびに/またはプロセッサ82をデバイス84、85、86、および87に接続するサウスブリッジを含み得る。
【0110】
上述の例示的なシステムおよび方法は、RPAシステムの設計および動作を容易にする。従来のRPAでは、各ターゲットフィールドに入力するストラテジーを含むワークフローの完全な仕様は、設計時にRPA開発者によって決定される。しかし、実際には、複雑なエンタープライズリソースプランニング(ERP)プラットフォームのウェブページなどの一般的なターゲットユーザーインターフェースは、予告なしに頻繁に変更される可能性がある。例えば、それぞれのウェブページのデザイナは、入力のタイプを単純なテキストからドロップダウンメニューに変更したり、または新しい機能に対応するためにドロップダウンメニューの内容もしくは挙動を変更したりし得る。それぞれの入力を埋めるためのRPAストラテジーが固定されている場合、ロボットはターゲットUIのこのような変更または他の予期しないイベントに適応できない。従来のRPAロボットは、代替のフォーム入力ストラテジーを持たず、失敗から学習できない。
【0111】
この適応性の欠如は、例えば、さまざまなソースドキュメントから構造化データを抽出し、さまざまなフォームとインタラクションし、および/または予期しない状況に対処できるAI対応フォーム入力ロボットといった、自律型RPAロボットを開発する上での大きな障害となっている。
【0112】
従来のRPAとは対照的に、本発明のいくつかの実施形態は、ターゲットフォームフィールドに入力するための複数のストラテジーを特定するストラテジーランキングインジケータをRPAロボットに提供して、1つのストラテジーが失敗したときに、RPAロボットが自律的に代替ストラテジーに戻ることができるようにする。いくつかの実施形態では、フォーム入力ストラテジーは、特定のタイプのフォームフィールド(例えば、単純なテキスト入力、ドロップダウンリスト、日付フィールドなど)とインタラクションするための一連のRPAアクティビティを含む。ストラテジーは、他のRPAワークフローとは独立して開発することも、個別のライブラリとしてロボットに提供することも、および/またはより複雑なワークフローを記述するRPAパッケージに含めることもできる。
【0113】
ランキングインジケータはさらに、それぞれのフォーム入力ストラテジーをランキングし、RPAロボットがそのランクに従って利用可能なストラテジーの中から選択できるようにする。いくつかの実施形態は、より高いランクのストラテジーを優先する。ストラテジーランキングインジケータは動的に更新され、成功したフォーム入力ストラテジーを促進し、および/または失敗したストラテジーを降格し、RPAロボットの他のインスタンスで使用できるようになる。このような動的な更新は、RPAロボットの自律性とパフォーマンスを向上させ、各RPAロボットが以前に同じフォームに入力しようとした他のロボットの経験から利益を得ることができるため、ユーザーエクスペリエンスをさらに向上させる。別の言い方をすれば、同じ面倒な試行錯誤手順を実行する代わりに、RPAロボットは、それぞれのターゲット入力で成功したとして先行者によって特定されたストラテジーを直接試すことができる。
【0114】
情報の共有を容易にするために、いくつかの実施形態では、個別のランキングインジケータ54を各個別のターゲットUI37に関連付け、さらに、それぞれのUIによって表示される各フォームフィールド58に関連付ける集中ストラテジーランキングデータベースを維持する。例えば、ウェブフォームは、そのURLによって特定され、個々のフィールド58は、それぞれのウェブページのDOMから抽出された属性値対の特性セットによって特定される。いくつかの実施形態は、RPAロボットを遂行する各RPAクライアントマシン上でローカルストラテジーランキングキャッシュを維持することによって、自動フォーム入力をさらに最適化する。
【0115】
ストラテジーとランキングの動的更新は、実世界データに基づくRPAロボットの集合的訓練のプロセスとして見ることができ、そこでは、独立した自律的なRPAロボット群が、様々なターゲットフォームに入力するための成功ストラテジーを特定し、それらの間でそのような情報をリアルタイムで共有するために協働する。成功したストラテジーは昇格され、失敗したストラテジーは降格され得るが、これはすべて、各ターゲットフォームフィールドに対して複数の代替ストラテジーが使用可能なフォールバック機構を維持したままである。
【0116】
上記の実施形態は、本発明の範囲から逸脱することなく多くの変更が可能であることは、当業者には明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびその法的均等物によって決定されるべきである。
【外国語明細書】