(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-29
(54)【発明の名称】人工知能/機械学習によるロボティックプロセスオートメーションのための異常検出および自己修復
(51)【国際特許分類】
G06F 16/903 20190101AFI20231121BHJP
G06N 20/00 20190101ALI20231121BHJP
G06N 3/08 20230101ALI20231121BHJP
G06T 7/00 20170101ALI20231121BHJP
G06F 3/048 20130101ALI20231121BHJP
【FI】
G06F16/903
G06N20/00
G06N3/08
G06T7/00 350B
G06T7/00 300F
G06F3/048
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023518987
(86)(22)【出願日】2021-10-05
(85)【翻訳文提出日】2023-05-15
(86)【国際出願番号】 US2021053504
(87)【国際公開番号】W WO2022081381
(87)【国際公開日】2022-04-21
(32)【優先日】2020-10-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】シング,プラブディープ
【テーマコード(参考)】
5B175
5E555
5L096
【Fターム(参考)】
5B175DA10
5B175HA01
5B175HB03
5E555AA67
5E555BA01
5E555BB01
5E555BC04
5E555CA02
5E555CA18
5E555CB02
5E555CB20
5E555CB33
5E555CC01
5E555CC05
5E555DB03
5E555DB41
5E555DC13
5E555DD01
5E555DD06
5E555EA02
5E555EA11
5E555EA19
5E555EA27
5E555FA00
5L096AA06
5L096BA05
5L096CA01
5L096DA01
5L096GA41
5L096HA11
(57)【要約】
人工知能(AI)/機械学習(ML)を介したロボティックプロセスオートメーション(RPA)のための異常検出および自己修復が開示される。AI/MLモデルおよびコンピュータビジョン(CV)を利用するRPAロボットは、通常の学習されたインタラクションを介して、ほとんどの遭遇したグラフィカル要素を解釈および/またはインタラクションし得る。しかし、そのようなRPAロボットは、グラフィカル要素を特定できないおよび/または通常のインタラクションが機能しない、新しい、取り扱いできない異常に時折遭遇し得る。そのような異常は、異常ハンドラによって処理され得る。RPAロボットは、異常に対処する情報を自動的に見つけようとする自己修復機能を有し得る。
【特許請求の範囲】
【請求項1】
RPAロボットによって、人工知能(AI)/機械学習(ML)モデルを使用してユーザーインターフェース(UI)オートメーションを実行するロボティックプロセスオートメーション(RPA)ワークフローを遂行することと、
前記RPAロボットによって、前記AI/MLモデルを使用して、前記RPAワークフローのアクティビティによってインタラクションされる前記UI内のターゲットグラフィカル要素を検索することと、
前記AI/MLモデルによって前記ターゲットグラフィカル要素が一意に見つからない場合またはそれとインタラクションできない場合、前記RPAロボットまたは前記AI/MLモデルによって、異常の修正を自動的に試みることと、を有する、コンピュータ実装方法。
【請求項2】
前記異常を修正する自動的な試みは、1または複数の特徴が、前記ターゲットグラフィカル要素を他の同様のグラフィカル要素と区別するかどうかを決定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記1または複数の特徴が前記ターゲットグラフィカル要素を前記他の同様のグラフィカル要素から区別するかどうかを決定することは、半径内で前記ターゲットグラフィカル要素を囲むグラフィカル要素を分析すること、前記UI内の前記グラフィカル要素の順序を利用すること、前記ターゲットグラフィカル要素が1または複数の異なる視覚特性を有するかどうかを決定すること、あるいはそれらの組み合わせを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記異常を修正する自動的な試みは、前記UIの視覚的特性を変更すること、および変更された前記視覚的特性を使用して前記UI内の前記ターゲットグラフィカル要素を検索することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記異常を修正する自動的な試みは、デフォルトのアクションを取ることを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記デフォルトのアクションは、前記ターゲットグラフィカル要素とのインタラクションを可能にする1または複数のUI記述子についてUIオブジェクトライブラリまたはUIオブジェクトリポジトリを検索することを含む、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記異常を修正する自動的な試みが成功したとき、前記方法はさらに、
前記RPAロボットによって、前記AI/MLモデルのその後の再訓練のための自動修正に関連するデータを提供することを含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記異常を修正する自動的な試みが成功しなかったとき、前記方法はさらに、
前記RPAロボットによって、前記ターゲットグラフィカル要素を特定するソリューション、前記ターゲットグラフィカル要素とインタラクションする方法、またはその両方をユーザーに促すことを含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記ユーザーによって提供されたガイダンスが、前記RPAロボットが前記ターゲットグラフィカル要素とインタラクションすることを可能にすることに成功したとき、前記方法はさらに、
前記RPAロボットによって、前記AI/MLモデルのその後の再訓練のためのユーザーソリューションに関するデータを提供することを含む、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記ユーザーによって提供されたガイダンスが、前記RPAロボットが前記ターゲットグラフィカル要素とインタラクションすることを可能にすることに成功しておらず、かつ前記ターゲットグラフィカル要素が前記RPAワークフローの全体タスクを完了するために必要でない場合、前記方法はさらに、
前記RPAロボットによって、前記RPAワークフローの遂行を継続することを試みることを含む、請求項8に記載のコンピュータ実装方法。
【請求項11】
前記異常を修正する自動的な試みは、
前記RPAロボットまたは前記AI/MLモデルによって、ユーザー入力なしで欠損データを補完する自己修復プロセスを試みることを含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記RPAロボットまたは前記AI/MLモデルは、1または複数のパフォーマンスメトリックスが前記自己修復プロセスに応答して改善するかどうかを監視することによって、前記自己修復プロセスが成功したかどうかを決定するように構成される、請求項11に記載のコンピュータ実装方法。
【請求項13】
前記自己修復プロセスが成功しなかったとき、前記方法はさらに、
1または複数の異なる技術を試み、前記1または複数の異なる技術が前記1または複数のパフォーマンスメトリックを改善するかどうかを監視することを含む、請求項11に記載のコンピュータ実装方法。
【請求項14】
前記自己修復プロセスは、
前記異常に対する提案されたソリューションを提供するために複数のユーザーにポーリングすることと、
1または複数のパフォーマンスメトリックスに基づく前記提案されたソリューションのうち最も最適なソリューションを選択することとを含む、請求項11に記載のコンピュータ実装方法。
【請求項15】
ユーザー入力なしに前記欠損データを補完する前記自己修復プロセスの前記試みは、強化学習における探索段階を使用することを含む、請求項11に記載のコンピュータ実装方法。
【請求項16】
コンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
人工知能(AI)/機械学習(ML)モデルを使用してユーザーインターフェース(UI)オートメーションを実行するロボティックプロセスオートメーション(RPA)ワークフローを遂行し、
前記AI/MLモデルを使用して前記RPAワークフローのアクティビティによってインタラクションされる前記UI内のターゲットグラフィカル要素を検索し、
前記AI/MLモデルによって前記ターゲットグラフィカル要素が一意に見つからない場合またはそれとインタラクションできない場合、異常の修正を自動的に試みるように構成される、非一時的なコンピュータ読み取り可能な媒体。
【請求項17】
前記異常を修正する自動的な試みは、半径内で前記ターゲットグラフィカル要素を取り囲むグラフィカル要素を分析すること、前記UIにおける前記グラフィカル要素の順序を利用すること、前記ターゲットグラフィカル要素が1または複数の異なる視覚特性を有するかどうかを決定すること、前記UIの視覚特性を変更し、変更した前記視覚特性を用いて前記UIにおいて前記ターゲットグラフィカル要素を検索すること、あるいはこれらの組み合わせを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項18】
前記異常を修正する自動的な試みが成功したとき、前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記AI/MLモデルのその後の再訓練のために自動修正に関するデータを提供させるようにさらに構成され、
前記異常を修正する自動的な試みが成功しない場合、前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記ターゲットグラフィカル要素を特定するためのソリューション、前記ターゲットグラフィカル要素とインタラクションする方法、またはその両方をユーザーに促すようにさらに構成される、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項19】
前記ユーザーによって提供されたガイダンスが、前記コンピュータプログラムが前記ターゲットグラフィカル要素とインタラクションすることを可能にすることに成功したとき、前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記AI/MLモデルのその後の再訓練のためのユーザーソリューションに関するデータを提供するようにさらに構成され、
前記ユーザーによって提供された前記ガイダンスが、前記コンピュータプログラムが前記ターゲットグラフィカル要素とインタラクションすることを可能にすることに成功せず、前記ターゲットグラフィカル要素が前記RPAワークフローの全体タスクを完了するのに必要でないとき、前記コンピュータプログラムは、前記少なくとも1つのプロセッサが、前記RPAワークフローの遂行を継続しようと試みるようにさらに構成される、請求項18に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項20】
前記異常を修正する自動的な試みは、ユーザー入力なしに欠損したデータを補完する自己修復プロセスを試みることを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項21】
コンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含むシステムであって、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
RPAロボットによって、人工知能(AI)/機械学習(ML)モデルを使用してユーザーインターフェース(UI)オートメーションを実行するロボティックプロセスオートメーション(RPA)ワークフローを遂行し、
前記RPAロボットによって、前記AI/MLモデルを使用して、前記RPAワークフローのアクティビティによってインタラクションされる前記UI内のターゲットグラフィカル要素を検索し、
前記AI/MLモデルによって前記ターゲットグラフィカル要素が一意に見つからない場合またはそれとインタラクションできない場合、前記RPAロボットまたは前記AI/MLモデルによって、異常の修正を自動的に試みるように構成され、
前記異常を修正する自動的な試みは、1または複数の特徴が前記ターゲットグラフィカル要素を他の同様のグラフィカル要素から区別するかどうかを決定すること、ユーザー入力なしで欠損データを補完する自己修復プロセスを試みること、あるいはその両方を含む、コンピューティングシステム。
【請求項22】
前記1または複数の特徴が前記ターゲットグラフィカル要素を前記他の同様のグラフィカル要素から区別するかどうかを決定することは、半径内で前記ターゲットグラフィカル要素を囲むグラフィカル要素を分析すること、前記UI内の前記グラフィカル要素の順序を利用すること、前記ターゲットグラフィカル要素が1または複数の異なる視覚特性を有するかどうかを決定すること、あるいはそれらの組み合わせを含む、請求項21に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
これは、2020年10月14日に出願された米国特許出願第17/070,250号の利益およびその優先権を主張する国際出願である。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
【0002】
本発明は概して、ユーザーインターフェース(UI)オートメーションに関し、より具体的には、人工知能(AI)/機械学習(ML)を介したロボティックプロセスオートメーション(RPA)の異常検出および自己修復に関する。
【背景技術】
【0003】
現在、RPAでは実行時(例えば、本番環境など)に異常が発生した場合、問題の原因を分析し、RPA開発者が分析に基づきプログラムによるソリューションを提供する。しかし、このプロセスは時間とコストがかかる傾向がある。したがって、改良されたアプローチが有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のUIオートメーション技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、AI/MLを介したRPAの異常検出および自己修復に関する。
【0005】
実施形態では、コンピュータ実装方法は、RPAロボットによって、AI/MLモデルを使用して、UIオートメーションを実行するRPAワークフローを遂行することを含む。コンピュータ実装方法はまた、RPAロボットによって、AI/MLモデルを使用して、RPAワークフローのアクティビティによってインタラクションされるUI内のターゲットグラフィカル要素を検索することを含む。AI/MLモデルによってターゲットグラフィカル要素が一意に見つからない場合またはそれとインタラクションできない場合、コンピュータ実装方法はさらに、RPAロボットまたはAI/MLモデルによって、異常の修正を自動的に試みることを含む。
【0006】
別の実施形態では、非一時的なコンピュータ読み取り可能な媒体は、コンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサが、AI/MLモデルを使用して、UIオートメーションを実行するRPAワークフローを遂行するように構成される。AI/MLモデルを使用して、コンピュータプログラムはまた、少なくとも1つのプロセッサが、RPAワークフローのアクティビティによってインタラクションされるUI内のターゲットグラフィカル要素を検索するように構成される。AI/MLモデルによってターゲットグラフィカル要素が一意に見つからない場合またはそれとインタラクションできない場合、コンピュータプログラムは、少なくとも1つのプロセッサが、異常の修正を自動的に試みるようにさらに構成される。
【0007】
さらに別の実施形態では、コンピューティングシステムは、コンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサが、RPAロボットによって、AI/MLモデルを使用してUIオートメーションを実行するRPAワークフローを遂行するように構成される。AI/MLモデルを使用して、コンピュータプログラム命令はまた、少なくとも1つのプロセッサが、RPAロボットによって、RPAワークフローのアクティビティによってインタラクションされるUI内のターゲットグラフィカル要素を検索するように構成される。AI/MLモデルによってターゲットグラフィカル要素が一意に見つからない場合またはそれとインタラクションできない場合、コンピュータプログラム命令はさらに、少なくとも1つのプロセッサが、RPAロボットまたはAI/MLモデルによって、異常の修正を自動的に試みるように構成される。異常を修正する自動的な試みは、1または複数の特徴がターゲットグラフィカル要素を他の同様のグラフィカル要素から区別するかどうかを決定すること、ユーザー入力なしで欠損データを補完する自己修復プロセスを試みること、あるいはその両方を含む。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0009】
【
図1】本発明の実施形態による、ロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
【
図4】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】本発明の実施形態による、AI/MLを介してRPAの異常検出および自己修復を実行するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
【
図6】本発明の実施形態による、AI/MLを介してRPAの異常検出および自己修復を実行するように構成されたシステムを示すアーキテクチャ図である。
【0015】
【
図7】本発明の実施形態による、AI/MLを介してRPAの異常検出および自己修復を実行するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0016】
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
【0017】
(実施形態の詳細な説明)
いくつかの実施形態は、AI/MLを介したRPAの異常検出および自己修復に関する。AI/MLモデルおよびコンピュータビジョン(CV)を利用するRPAロボットは、通常の学習されたインタラクションを介して、UIにおけるほとんどの遭遇したグラフィカル要素を解釈および/またはインタラクションし得る。しかし、そのようなRPAロボットは、グラフィカル要素を特定できないおよび/または通常のインタラクションが機能しない、新しい、取り扱いできない異常に時折遭遇し得る。そのような異常は、いくつかの実施形態では、RPAロボットまたはAI/MLモデルの異常ハンドラによって処理され得る。
【0018】
画面上に複数の送信ボタンが表示され、AI/MLモデルがそれ自体でどのボタンをクリックすればいいのか決定できないなどの異常が発生した場合、異常ハンドラはこれらのグラフィカル要素を互いに区別する何かがあるかどうかを決定しようとし得る。これは、ある半径内でターゲットグラフィカル要素(複数可)を囲むグラフィカル要素を見る、画面上のグラフィカル要素の順序を見る、ターゲットグラフィカル要素を他の同様のグラフィカル要素から視覚的に区別するものがあるかどうかを決定しようとするなどを含み得るが、これらに限定されない。いくつかの実施形態では、画面の上部または下部に最も近い位置に現れるグラフィカル要素を自動的に選択するなど、デフォルトのアクションが取られ得る。
【0019】
いくつかの実施形態では、デフォルトのアクションは、RPAロボットまたはAI/MLモデルがターゲットグラフィカル要素とインタラクションすることを可能にするUI記述子を、UIオブジェクトを含むUIオブジェクトライブラリまたはUIオブジェクトライブラリのUIオブジェクトリポジトリで検索することであり得る。画面上のUI要素(例えば、テキストフィールド、ボタン、ラベル、メニュー、チェックボックスなど)は、アプリケーション、アプリケーションバージョン、アプリケーション画面、およびUI要素の収集によってグループ化され得、各画面は複数のUI要素を有する。本明細書で使用されるように、「画面」とは、ある時点でのアプリケーションUIまたはアプリケーションUIの一部の画像である(例えば、スクリーンショット)。実行中のUIオートメーションの場合、画面は、コンピューティングシステムの現在のUIであってもよい。「アプリケーション」または所定のアプリケーションのバージョンは、このコンテキストにおける画面の結合であってもよいし、または実行時の実行中のアプリケーションであってもよい。各UI要素は、いくつかの実施形態では、1または複数のUI記述子によって記述され得る。UI要素、UI記述子、アプリケーション、およびアプリケーション画面は、UIオブジェクトである。いくつかの実施形態では、UI要素および画面は、特定のタイプのUI要素(例えば、ボタン、チェックボックス、テキストフィールドなど)および画面(例えば、トップウィンドウ、モーダルウィンドウ、ポップアップウィンドウなど)にさらに区別されてもよい。
【0020】
UIオブジェクトライブラリは、いくつかの実施形態では、UIオブジェクトリポジトリに格納されてもよい。本明細書で使用される場合、UIオブジェクトリポジトリは、UIオブジェクトライブラリの収集である。いくつかの実施形態では、UIオブジェクトリポジトリは、NuGet(商標)フィード、ウェブサービスなどであってもよい。いくつかの実施形態におけるUIオブジェクトライブラリのUIオブジェクトリポジトリは、プロジェクトにおけるUI記述子の管理、再利用、および信頼性の向上を容易にし得る。いくつかの実施形態では、UI記述子はUIライブラリに追加され、UIオブジェクトリポジトリでグローバルに再利用するために公開または再公開され得る。
【0021】
UIオブジェクトを再利用可能にするために、RPA処理で参照可能なUIオブジェクトライブラリに抽出され得る。例えば、アプリケーションの新しいバージョンが原因でセレクタまたは他のUI記述子が修正された場合、UIオブジェクトライブラリは、修正されたUI記述子を含めるために再作製(または再公開)され得る。次いで、UIオブジェクトライブラリを使用するRPAプロセスは、修正されたUI記述子のバージョンを呼び出し得る。新しいライブラリに関連する新しいアプリケーションプログラミングインターフェース(API)への参照は、開発者がRPAプロセスのために手動で修正することも、ソフトウェアツール(例えば、RPAプロセスを経て、セレクタまたはその他のコンポーネントが変更されたときにUI記述子参照を更新するツール)を介して修正することも、またはいくつかの実施形態では自動的に修正することもできる。
【0022】
いくつかの実施形態では、UIオブジェクトのパッケージが依存関係として添付され得る(例えば、NuGet(商標)パッケージ)。しかしながら、特定の実施形態では、UIオブジェクトは、ウェブサービスへの1または複数のAPI呼び出しを介して取得され得る。これにより、UIオブジェクトをリモートで格納し、自動化の間に取得して使用し得る。
【0023】
UIオブジェクトライブラリに追加されたUI要素は、RPAワークフローで使用するセレクタを表し得る。UIでの特定のアクションを自動化するために、RPAロボットは、さまざまなウィンドウ、ボタン、ドロップダウンリスト、および/またはその他のグラフィカル要素とインタラクションし得る。従来、これは、UI要素の予想される画面位置を使用して行われる。しかし、これは信頼できない。
【0024】
いくつかの実施形態は、UI要素およびその親の属性をXMLフラグメントに格納することで、固定座標特定に関連する問題を克服するセレクタを使用する。UIが静的であるいくつかの実施形態では、セレクタは自動的に生成されてもよいが、いくつかのウェブアプリケーションなどのいくつかのソフトウェアプログラムでは、レイアウトが変化し、揮発性値を有する属性ノードが存在する。これらの変更は容易に予測できない場合があり、これは以前はいくつかのセレクタを手動で生成することを要求した。しかし、いくつかの実施形態では、例えば、他のタイプのUI記述子を使用することによって、この問題を克服し得る。
【0025】
セレクタは、いくつかの実施形態においてUI要素を検出するために使用され得るUI記述子のタイプである。セレクタは、いくつかの実施形態では、以下の構造を有する。
<node_1/><node_2/>...<node_N/>
【0026】
最後のノードは対象のGUI要素を表し、それ以前の全てのノードはその要素の親を表す。<node_1>は通常ルートノードと呼ばれアプリケーションのトップウィンドウを表す。
【0027】
各ノードは、選択されたアプリケーションの特定のレベルの正しい特定を支援する1または複数の属性を有してもよい。各ノードは、いくつかの実施形態では、以下の形式を有する。
<ui_system attr_name_1=’attr_value_1’...attr_name_N=’attr_value_N’/>
【0028】
全ての属性は、割り当てられた値を有し得、一定の値を有する属性が選択され得る。これは、アプリケーションが起動するたびに属性の値を変更すると、セレクタが関連する要素を正しく特定できなくなる可能性があるからである。
【0029】
UIオブジェクトライブラリ記述子は、RPAワークフローアクティビティに直接追加され得、さもなくばアクティビティ用のカスタムセレクタを作製するために必要とされ得る開発者の時間を節約する。オブジェクトライブラリは、アプリケーションの特定のバージョンから1または複数の画面に対応するUI記述子の収集として本明細書で定義される。UI記述子とは、UI要素を見つけるための命令のセットである。いくつかの実施形態におけるUI記述子は、UI要素セレクタ(複数可)、アンカーセレクタ(複数可)、コンピュータビジョン(CV)記述子(複数可)、統合されたターゲット記述子(複数可)、画面イメージキャプチャ(コンテキスト)、要素イメージキャプチャ、他のメタデータ(例えば、アプリケーションおよびアプリケーションバージョン)、それらの組み合わせなどを含むカプセル化されたデータ/構造フォーマットである。カプセル化されたデータ/構造フォーマットは、プラットフォームへの将来のアップデートによって拡張可能であってもよく、上記の定義に限定されるものではない。画面上のUI要素を特定するためのUI記述子としては、本発明の範囲を逸脱することなく、任意の好適なものを使用することができる。統合されたターゲット記述子は、複数のタイプのUI記述子を連結する。統合されたターゲット記述子は、有限状態機械(FSM)のように機能し得、第1のコンテキストでは、第1のUI記述子メカニズムが適用され、第2のコンテキストでは、第2のUI記述子が適用される、などである。
【0030】
従来、セレクタを信頼できるものにするためには、テスト、固有のセレクタの詳細の理解などが必要である。これにより、技術的な知識のない個人にとって、セレクタの作成/改良は困難または不可能になる。一般的なUI要素およびタスクのための作業セレクタのライブラリを提供することによって、いくつかの実施形態は、非技術者個人による生産で機能する自動化の開発を可能にする。ユーザーは、自動化するアプリケーションのバージョンの画面を指定でき、RPA開発アプリケーションはその画面をフェッチし得る。次に、ユーザーは画面とインタラクションして、彼または彼女がしたいことを定義し得る。
【0031】
いくつかの実施形態では、新しいUI記述子が作成され、および/または既存のUI記述子が修正されると、共有可能で、共同的で、かつ潜在的にオープンソースであるUIオブジェクトライブラリのグローバルデータベースが構築され得る。特定の実施形態では、タクソノミおよびオントロジーが使用され得る。アプリケーション、バージョン、画面、UI要素、記述子などは、サブカテゴリの階層構造であるタクソノミとして定義され得る。
【0032】
しかし、現実世界の概念の多くは、タクソノミ的組織化には容易に役立たない。むしろ、それらは数学的オントロジーの概念に近いかもしれない。オントロジーでは、カテゴリ間の関係は必ずしも階層的ではない。例えば、画面上のボタンをクリックするとユーザーが別の画面に移動する場合、次の画面は階層にないため、その画面のタクソノミでは容易にキャプチャでされ得ない。いくつかの実施形態では、同じ画面または異なる画面上のUI要素間のインタラクションが収容され得、UI要素が、潜在的に異なる画面上で互いにどのように関係するかに関する情報が提供され得る。
【0033】
OKボタンをクリックすると従業員画面が表示される例を考えてみる。オントロジー構造により、デザイナアプリケーションは、ユーザーが次の画面で従業員をフィルタリングすることを提案し得る。OKボタンを介したこれらの画面間の関係のオントロジー情報により、デザイナアプリケーションはこれを行うことができる。必ずしもツリーではなく、アプリケーションが実際に行っていることに関連するグラフィカル構造を定義することで、より複雑で豊富な関係が捉えられ得る。
【0034】
RPAワークフロー内のアクティビティからUI記述子が抽出され、UIアプリケーション、画面、およびUI要素ごとにUI記述子をグループ化する構造化スキーマに追加され得る。UI記述子は、いくつかの実施形態では、広く再利用するための1つのプロジェクトの一部、テスト目的のためのグローバルリポジトリの一部、またはグローバルなプロジェクト間共有のためのUIオブジェクトライブラリの一部とし得る。いくつかの実施形態におけるオブジェクトライブラリは、アプリケーション、アプリケーションバージョン、および画面によってグループ化されたUI記述子のカプセル化である。UI記述子が定義され、オブジェクトライブラリに追加され得、これは、いくつかの実施形態では、公開後に依存物として他のプロジェクトにインストールされ得る。これにより、UI記述子のオブジェクトライブラリは、再利用が可能になる。いくつかの実施形態におけるUIアプリケーションは、各バージョンが複数の画面を有する複数のバージョンを有するターゲットアプリケーションである。
【0035】
UIオブジェクトリポジトリとUI記述子の再利用は、さまざまな理由で有益であり得る。例えば、アプリケーション内のUI要素の位置、外観、および/または機能が変更された場合、UI記述子が変更され得、その変更は、次いでUI記述子を使用するアクティビティに伝搬され得る。このように、再利用性は、UIにおけるグラフィカル要素の特定のレベルで提供され得る。
【0036】
これは、アプリケーションの新しいバージョンに対応するために、特に有益であり得る。新バージョンの場合、ソフトウェア開発者は、UI記述子を更新し、および/または少数の新しいセレクタを一から開発する必要があるだけでよく、開発時間を大幅に短縮することができる。例えば、ウェブページの場合、ハイパーテキストマークアップ言語(HTML)が検査されて、対応するセレクタのためのUI要素へのパスを取得し得る。対応するUI要素のセレクタは、異なるウェブブラウザおよび/または同じウェブブラウザの異なるバージョンで異なる場合がある。この概念はまた、ビジュアルデスクトップ、サーバー、スマートフォン、およびタブレットのアプリケーションに適用されてもよい。UIオブジェクトライブラリは、アプリケーションのための実際のセレクタを含むことができ、これは、上記のとおり、UI記述子の1つのタイプに過ぎない。UIオブジェクトライブラリは、1または複数のアプリケーションのために、異なるタイプの複数のUI記述子を持ち得る。UI記述子は、アプリケーションが構築された異なる技術を参照し得る。例えば、スタンドアロンのデスクトップ、ウェブ、およびモバイルアプリケーションのために、異なるUI記述子が作製され、使用され得る。ある技術では、あなたはセレクタを使用したい場合があり、別ではあなたはCV記述子を使用したい場合などがある。
【0037】
UI記述子は、いくつかの実施形態では、画像の検出および定義が実行される全てのUI検出メカニズムを包含する統合されたターゲットと協働してもよい。統合されたターゲットは、UI要素を特定して自動化する複数の技術を、単一のまとまりのあるアプローチに併合してもよい。統合されたターゲットは、セレクタベースおよびドライバベースのUI検出メカニズムを優先し、CVにフォールバックして、最初の2つのメカニズムが成功しない場合に画像を見つけ得る。いくつかの実施形態では、統合されたターゲットを支持するようにセレクタエディタおよびUIエクスプローラが構成され得る。
【0038】
オブジェクトライブラリの構造例を以下に示す。
・SAP
・バージョン1
・画面1
・オブジェクト1
・オブジェクト2
・…
・画面2…
・…
・バージョン2…
・…
・セールスフォース…
・…
【0039】
上記の階層は、例としてのみ提供されていることに留意されたい。本発明の範囲から逸脱することなく、階層内の任意の所望の数のレベルおよび各レベルに関連する要素が使用され得る。特定の実施形態では、ユーザーは、アプリケーションマップを彼または彼女が所望するように定義し得る。さらに、ツリー内のいくつかのノードは、いくつかの実施形態では、管理的な役割のみを果たし、機能的な役割は果たさないかもしれない。例えば、UI要素は、UI記述子を持たないコンテナに一緒にグループ化され得る。コンテナは、いくつかの実施形態では、グループ化の目的だけのために存在し得る。
【0040】
UIオブジェクトライブラリおよび/またはUIオブジェクトリポジトリを利用するために、ターゲットグラフィカル要素を特定できない場合、いくつかの実施形態のRPAロボットまたはAI/MLモデルは、ターゲットグラフィカル要素とインタラクションできるかもしれないUI記述子についてUIオブジェクトライブラリまたはUIオブジェクトライブラリのリポジトリを検索することをデフォルトとする。例えば、RPAロボットまたはAI/MLモデルは、同じ名前を持つUI記述子、同じまたは類似の属性を持つUI記述子、同じターゲットアプリケーションであるが異なるバージョンを持つUI記述子などを探すことができる。そのようなUI記述子(複数可)が見つかった場合、それらは自動的にRPAロボットまたはAI/MLモデルによって試行され得る。ターゲットグラフィカル要素とのインタラクションに成功した場合、RPAロボットまたはAI/MLモデルは、以前に試されたUI記述子に加えまたは代わりに、成功したUI記述子を将来使用するように修正され得る。UIオブジェクトライブラリまたはUIオブジェクトリポジトリは、それらを検索するRPAロボットまたはAI/MLモデルに対してローカルまたはリモートであり得る。
【0041】
異常ハンドラによってターゲットグラフィカル要素を特定できない場合、および/またはデフォルトのアクションが失敗する場合、RPAロボットは例外を体良く処理し得る。例えば、ターゲットグラフィカル要素が十分な精度でタスク全体を完了するために必要でない場合、異常ハンドラは、RPAロボットにそのワークフローの遂行を継続させ、進めるかどうかに関してユーザーに促し、将来的に異常に対処するために使用するラベル付き訓練データを要求するなどさせ得る。このような異常ハンドリングは、AI/MLモデルを、実行時の現実世界の差異および変化に対してより頑健にし得る。これは、アプリケーションの新しいバージョンがリリースされたとき、異なるブラウザの設定に遭遇したときなどに発生し得る。
【0042】
いくつかの実施形態では、RPAロボットおよび/またはAI/MLモデルが、ユーザー入力なしに異常からの欠損データを補完しようとするような自己修復機能が提供され得る。RPA開発者は、AI/MLモデルの変数に特定の入力を行う、データベースからデータを引き出す、などしてもよい。いくつかの実施形態では、AIツールが、人間の設計時間なしにこのコードを生成するために使用され得る。
【0043】
自己修復は、いくつかの実施形態では、様々な技術を採用し得る。文書理解または他のアプリケーションでは、例えば、人間の検証が頻繁に必要な場合、AI/MLモデルが十分でないと推論することができる。AI/MLモデルは、「自己修復」手段として、自身のパフォーマンスを向上させようとする様々な技術を採用することができる。例えば、AI/MLモデルは、異なる光学式文字認識(OCR)エンジンを試したり、画像の特性を修正したり(例えば、明るさ、色相、コントラスト、グレースケールへの変換など)、類似して見える画像を検索して、それらの画像に対して適用された技術(複数可)および/または結果をチェックするなどし得る。AI/MLモデルは、AI/MLモデルの自己修復努力が機能しているかどうかを決定するために、人間の検証労力が減少するか、実行速度および/または効率が向上するか(例えば、プロセスがより速く実行するおよび/またはRPAワークフローのステップがスピードアップされ得るもしくは排除され得る)、あるいは投資収益率(ROI)が向上するかを監視し得る。そうでない場合、AI/MLモデルは、異なる技術を試し、および/または異なる情報を使用することができる。その後、AI/MLモデルは、この自己修復アプローチに基づいて、実行時に欠落、不正確、および/または不完全なデータを補完する方法を学習することができる。
【0044】
いくつかの実施形態では、強化学習が使用され得る。強化学習では、探索段階と利用段階とがある。探索段階では、システムは、状態空間の探索を導くために、短期および長期の報酬の両方を有する中間遷移およびステップを探索する報酬関数を使用して、開始状態から終了状態までのソリューションをランダムに見つけようとし得る。例えば、異常が、ターゲットグラフィカル要素がUIで見つからない、またはそれとのインタラクションが失敗したという場合、勝利状態は、RPAワークフロー内のアクティビティが達成すべきターゲットグラフィカル要素との正しいインタラクションであり得る。ソリューションが見つかった場合、RPAロボットまたはAI/MLモデルは、以前のアプローチに加えてまたは代わりに、このソリューションを試みるように修正され得る。
【0045】
完全にランダムな探索を行うのではなく、いくつかの実施形態は、ポリシーネットワークを介して、ポリシーがどうあるべきかを決定する。これは、勝利状態を達成するために必要なシミュレーションの数を劇的に減らすことができ、強化学習を介して訓練されたAI/MLモデルがより迅速に開発および展開されること、より少ないコンピューティングハードウェア資源を用いて訓練されること、またはその両方が可能になる。実際、いくつかの実施形態では、強化学習は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォンなどのユーザー自身のコンピューティングシステム上で実行されてもよく、これは典型的に従来不可能である。
【0046】
ユーザーインターフェースとのインタラクションのコンテキストでは、例えば、ロボットがランダムに画面をクリックして、何がクリック可能かを決定し得る。その後、強化学習を使用して、所望の自動化を進めることができる。例えば、電子メールアドレスおよび所望の電子メールテキストのスプレッドシートが与えられた場合、強化学習は、どのクリック可能なボタンが電子メールアプリケーションを開くかを発見し、電子メールで異なるテキストが入力されるべき場所を発見し、そして電子メールを送信するためにクリックするボタンを発見するために使用され得る。この例では、ポリシーネットワークは、まず、電子メールを送信することがいっそう可能であるかまたは望ましいかを決定するために使用され得る。この決定がなされると、ポリシーネットワークは、次に、スプレッドシートからの電子メールアドレスおよび電子メール本文が、送信前に電子メールにコピーされ得るかどうかを決定することができる。
【0047】
特定の実施形態は、ロボティックプロセスオートメーション(RPA)に採用されてもよい。
図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発および展開を容易にする。
【0048】
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0049】
ワークフローのタイプには、シーケンス、フローチャート、FSM、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0050】
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの遂行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを遂行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイント、または統合ポイントの1つとして動作し得る。
【0051】
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して遂行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0052】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0053】
コンダクタ120は、プロビジョニング、展開、バージョニング、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。バージョニングは、いくつかの実施形態では、いくつかのプロセスまたは構成の固有のインスタンスの管理を含んでもよい。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0054】
ロボット130は、デザイナ110で構築されたワークフローを実行する遂行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0055】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置され得る。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
【0056】
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0057】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0058】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントであり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0059】
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが遂行していることをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0060】
図2は、本発明の実施形態による、展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のRPAシステム100であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216を含む。しかし、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212はプロセスを実行している。
図2に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、それは、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。
図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
【0061】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0062】
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0063】
サーバー側には、プレゼンテーション層(ウェブアプリケーション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からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動および停止などし得る。
【0064】
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方により消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0065】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0066】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0067】
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットにより記録されたメッセージを(インデクササーバー250に加えて、またはそれに代えて)格納してもよい。
【0068】
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0069】
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、ドライバ340、およびAI/MLモデル350の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUIオートメーションアクティビティ330を含んでもよい。ユーザー定義アクティビティ320および/またはUIオートメーションアクティビティ330は、いくつかの実施形態では、ロボットが動作しているコンピューティングシステムに対してローカルに、および/またはそれに対してリモートに位置され得、1または複数のAI/MLモデル350を呼び出し得る。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を特定し、その上にホバーし得る。要素の有無の検出は、上述した技法を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千ものアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
【0070】
UIオートメーションアクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ330は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ340および/またはAI/MLモデル350を介して、これらのインタラクションを促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含み得る。コンピューティングシステムとのインタラクションの実行を決定するために、1または複数のAI/MLモデル350はUIオートメーションアクティビティ330によって使用され得る。いくつかの実施形態では、AI/MLモデル350は、ドライバ340を増強するか、またはそれらを完全に置き換え得る。実際、特定の実施形態では、ドライバ340は含まれない。
【0071】
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSとインタラクションしてもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0072】
図4は、本発明の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、
図1および/または
図2のRPAシステム100および/または200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。コンダクタコンピューティングシステム420は、順番に、データベースサーバー430および任意のインデクササーバー440と通信することができる。
【0073】
図1および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0074】
図5は、本発明の実施形態による、AI/MLを介してRPAの異常検出および自己修復を実行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0075】
コンピューティングシステム500は、プロセッサ(複数可)510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0076】
さらに、コンピューティングシステム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または複数のアンテナを含み得る。
【0077】
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oを使用することができる。
【0078】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションすることができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでそれとインタラクションしてもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0079】
メモリ515は、プロセッサ(複数可)510により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成された異常検出および自己修復モジュール545をさらに含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0080】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技法と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部またはその他の方法でアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所または分散アーキテクチャが使用され得る。
【0081】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0082】
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのような非一時的なコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0083】
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0084】
図6は、本発明の実施形態による、AI/MLを介してRPAの異常検出および自己修復を実行するように構成されたシステム600を示すアーキテクチャ図である。システム600は、デスクトップコンピュータ602、603、タブレット604、スマートフォン606などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータなどを含むが、これらに限定されない、任意の所望のコンピューティングシステムが本発明の範囲から逸脱せずに使用され得る。また、
図6には3つのユーザーコンピューティングシステムが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のコンピューティングシステムが使用されてもよい。
【0085】
各コンピューティングシステム602、604、606は、AI/MLモデル632などのAI/MLモデルを使用して特定のタスクを実行する、AI/ML対応RPAロボット610を有する。例えば、RPAロボット610は、それぞれのコンピューティングシステム上でユーザーがしていることを認識するためにCVを使用するように訓練されたAI/MLモデルを使用し得る。コンピューティングシステム602、604、606は、ネットワーク620(例えば、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、それらの任意の組み合わせなど)を介して、サーバー630に情報を送信する。いくつかの実施形態では、サーバー630は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどの一部であってもよい。特定の実施形態では、サーバー630は、単一のコンピューティングシステム630上で複数のソフトウェアベースのサーバーをホストしてもよい。サーバー630は、本実施形態では、RPAロボット610によって呼び出されて動作を実行するAI/MLモデル632を含む。
【0086】
RPAロボット610は、異常を自動的に検出し修正しようとする異常処理および/または自己修復ロジックを含む。このロジックは、RPAロボット610自体、AI/MLモデル632、またはそれらの組み合わせに組み込まれ得る。AI/MLモデル632の一部として異常処理および/または自己修復ロジックを含めることは、複数のまたは多くのコンピューティングシステムからの情報を利用することを可能にし、より多くの例、ユーザーがどのように問題を克服したかの例などを提供する可能性がある。
【0087】
RPAロボット610は、グラフィカル要素を特定できないおよび/または通常のインタラクションが機能しない、新しい、取り扱いできない異常に時折遭遇し得る。そのような異常は、異常を自動的に処理しようとする異常ハンドラ(例えば、RPAロボット610のワークフロー(複数可)内のアクティビティのサブセットまたはAI/MLモデル632内のロジック)により処理され得る。ターゲットグラフィカル要素が依然として異常ハンドラによって特定できない場合、RPAロボット610は、例外を処理することができる。RPAロボット610および/またはAI/MLモデル632は、いくつかの実施形態では、ユーザー入力なしに異常から欠損したデータを補完しようとする自己修復機能を有し得る。
【0088】
いくつかの実施形態では、異常に関するデータは、ユーザーが、RPAロボット610による自己修正の試みを処理することができなかった異常に係る画面をラベル付けし、および/または修正することができる訓練コンピューティングシステム650のアプリケーション652によるレビューのためにデータベース640に格納され得る。例えば、AI/MLモデルに認識されない新しいコントロールなど、これまで見たことのないシナリオが発生した場合、ユーザーにガイダンスを促すことができる。次いで、ユーザーは、画面上のコントロールをラベルし得、コントロールがAI/MLモデルが認識するように訓練された以前のコントロールとは異なる動作をする場合に取るべきアクションを提供する可能性がある。この訓練データを使用して、AI/MLモデル632は、精度を高めるために再訓練され得る。いくつかの実施形態では、RPAロボット610によって呼び出されるAI/MLモデルは、統計的モデリング(例えば、隠れマルコフモデル(HMM))などのさまざまな機能を実行する複数の層を有し得、深層学習技術(例えば、長短期記憶(LSTM)深層学習、以前の隠れ状態のエンコードなど)を利用してユーザーインタラクションのシーケンスを特定し得る。
【0089】
AI層
【0090】
いくつかの実施形態では、複数のAI層が使用され得る。各AI層は、データ上で実行されるアルゴリズム(またはモデル)であり、AIモデル自体は、訓練データで訓練された人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であり得る。層は、直列、並列、またはそれらの組み合わせで実行され得る。
【0091】
Al層は、限定されないが、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層(例えば、OCR)、音声-テキスト翻訳層、またはそれらのいずれかの組み合わせを含み得る。しかしながら、本発明の範囲を逸脱することなく、いずれかの所望の数およびタイプ(複数可)の層を使用し得る。複数の層を使用することで、システムが画面で何が起こっているのかのグローバルな画像を展開し得る。例えば、あるAI層はOCRを実行し得、別のAI層はボタンを検出し得、別のAI層はシーケンスを比較し得るなど。パターンは、1つのAI層によって個別に決定されてもよいし、複数のAI層によってまとめて決定されてもよい。
【0092】
図7は、本発明の実施形態による、AI/MLを介してRPAの異常検出および自己修復を実行するためのプロセス700を示すフローチャートである。プロセスは、705において、AI/MLモデルを使用してUIオートメーションを実行するRPAロボット(および、したがってRPAワークフロー)を遂行することから始まる。AI/MLモデルを使用して、RPAロボットは、710において、RPAワークフローのアクティビティによってインタラクションされるUI内のターゲットグラフィカル要素を検索する。715でAI/MLモデルによってターゲットグラフィカル要素が一意に見つかると、RPAロボットは、720でRPAワークフローの1または複数のRPAアクティビティに従ってターゲットグラフィカル要素にインタラクションする。その後、RPAロボットは、次のグラフィカル要素とのインタラクションが必要になるまで、725においてRPAワークフローロジックの遂行を継続する。その後、プロセスはステップ710に戻る
【0093】
しかし、715でターゲットグラフィカル要素がAI/MLモデルによって一意に見つからないか、またはインタラクションできない場合、RPAロボットまたはAI/MLモデルは、730で自動的に異常の修正を試みる。いくつかの実施形態では、異常を修正する自動的な試みは、1または複数の特徴が、ターゲットグラフィカル要素を他の同様のグラフィカル要素と区別するかどうかを決定することを含む。特定の実施形態では、1または複数の特徴がターゲットグラフィカル要素を他の同様のグラフィカル要素から区別するかどうかを決定することは、半径内でターゲットグラフィカル要素を囲むグラフィカル要素を分析すること、UI内のグラフィカル要素の順序を利用すること、ターゲットグラフィカル要素が1または複数の異なる視覚特性を有するかどうかを決定すること、あるいはそれらの組み合わせを含む。いくつかの実施形態では、異常を修正する自動的な試みは、UIの視覚的特性を変更すること、および変更された視覚的特性を使用してUI内の前記ターゲットグラフィカル要素を検索することを含む。特定の実施形態では、異常を修正する自動的な試みは、デフォルトのアクションを取ることを含む。いくつかの実施形態では、デフォルトのアクションは、ターゲットグラフィカル要素との所望のインタラクションを可能にする1または複数のUI記述子についてUIオブジェクトライブラリまたはUIオブジェクトリポジトリを検索することであってもよいしまたはそれを含み得る。
【0094】
いくつかの実施形態では、異常を修正する自動的な試みは、RPAロボットまたはAI/MLモデルによって、ユーザー入力なしで欠損データを補完する自己修復プロセスを試みることを含む。これは、例えば、強化学習における探索段階を介して達成され得る。特定の実施形態では、RPAロボットまたはAI/MLモデルは、1または複数のパフォーマンスメトリックスが自己修復プロセスに応答して改善するかどうかを監視することによって、自己修復プロセスが成功したかどうかを決定するように構成される。いくつかの実施形態では、自己修復プロセスがうまくいかなかった場合、異常を修正する自動的な試みは、1または複数の異なる技術を試み、1または複数の異なる技術が1または複数のパフォーマンスメトリックを改善するかどうかを監視することを含む。特定の実施形態では、自己修復プロセスは、異常に対する提案されたソリューションを提供するために複数のユーザーにポーリングすることと、1または複数のパフォーマンスメトリックスに基づく提案されたソリューションのうち最も最適なソリューションを選択することとを含む。例えば、速度、収益の増加、より多くの顧客アカウントの作成、それらの組み合わせなどに基づいて、最も最適なソリューションが選択され得る。
【0095】
735において異常を修正する自動的な試みが成功した場合、740においてAI/MLモデルのその後の再訓練のために、自動修正に関するデータが提供され(例えば、
図6のサーバー630およびデータベース640などのリモートサーバーおよびデータベースに送られ)、そしてプロセスはステップ720に進み、上述のように継続する。しかし、745において、異常を修正する自動的な試みが成功しない場合、ターゲットグラフィカル要素を特定するためのソリューション、ターゲットグラフィカル要素とインタラクションする方法、またはその両方について、ユーザーが促される。例えば、AI/MLモデルに認識されない新しいコントロールなど、これまで見たことのないシナリオが発生した場合、ユーザーにガイダンスを促すことができる。次いで、ユーザーは、画面上のコントロールをラベルし得、コントロールがAI/MLモデルが認識するように訓練された以前のコントロールとは異なる動作をする場合に取るべきアクションを提供する可能性がある。ユーザーによって提供されたガイダンスが、RPAロボットがターゲットグラフィカル要素とインタラクションすることを可能にすることに成功した場合、740においてAI/MLモデルのその後の再訓練のためのユーザーソリューションに関するデータが提供され、プロセスはステップ720に進み、上述のように継続する。
【0096】
ユーザーによって提供されたガイダンスが、750においてRPAロボットがターゲットグラフィカル要素とインタラクションすることを可能にすることに成功せず、755においてターゲットグラフィカル要素がRPAワークフローの全体タスクを完了するために必要ではなく、継続した動作が可能な場合、RPAロボットは725においてRPAワークフローの遂行を継続し得る。これは、例えば、ターゲットグラフィカル要素が、十分な精度でタスク全体を完了するために必要でない場合に可能であり得る。しかし、755で動作の継続が不可能な場合、760で例外が投げられ、プロセスは終了する。
【0097】
図7で実行されるプロセスステップは、本発明の実施形態に従って、
図7で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、
図7に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、
図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0098】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
【0099】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0100】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0101】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態であることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0102】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれないが特定の実施形態では認識され得る。
【0103】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
【国際調査報告】