(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-14
(54)【発明の名称】ロボティックプロセスオートメーションのための人工知能ベースのプロセス識別、抽出、および自動化
(51)【国際特許分類】
G06Q 10/06 20120101AFI20221207BHJP
【FI】
G06Q10/06 324
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022520176
(86)(22)【出願日】2020-08-13
(85)【翻訳文提出日】2022-05-13
(86)【国際出願番号】 US2020046071
(87)【国際公開番号】W WO2021076206
(87)【国際公開日】2021-04-22
(32)【優先日】2019-12-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】シング,プラブディープ
(72)【発明者】
【氏名】バーグ,クリスチャン
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA07
(57)【要約】
ロボティックプロセスオートメーション(RPA)のための人工知能(AI)ベースのプロセス識別、抽出、および自動化が開示される。ユーザーアクションに関するデータを収集するために、リスナーがユーザーコンピューティングシステムに展開され得る。次いで、リスナーによって収集されたデータは、1つまたは複数のサーバーに送信され、データベースに格納され得る。このデータは、AI層によって解析されて、その中のユーザー挙動プロセスのパターンを認識することができる。次いで、これらの認識されたプロセスは、それぞれのRPAワークフローに抽出され、プロセスを自動化するために展開され得る。
【特許請求の範囲】
【請求項1】
システムであって、
サーバーと、
それぞれのリスナーアプリケーションを含む複数のユーザーコンピューティングシステムと、を含み、前記リスナーアプリケーションは、それぞれのユーザーコンピューティングシステムとのユーザーインタラクションを含むログを生成し、前記ログから前記サーバーにログデータを送信するように構成され、
前記サーバーは、
前記リスナーから収集されたログデータにアクセスし、少なくとも1つの人工知能(AI)層を通して前記ログデータを実行し、前記少なくとも1つのAI層は、前記ログデータを処理し、その中の潜在的なロボティックプロセスオートメーション(RPA)プロセスを識別するように構成され、
前記識別されたRPAプロセスを含むRPAワークフローを自動的に生成するように構成される、システム。
【請求項2】
前記サーバーは、
前記RPAワークフローを実施するロボットを生成し、
前記生成されたロボットを、前記ユーザーコンピューティングシステム上で遂行されるように前記ユーザーコンピューティングシステムへプッシュするようにさらに構成される、請求項1に記載のシステム。
【請求項3】
前記少なくとも1つのAI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、またはそれらの任意の組み合わせを含む、請求項1に記載のシステム。
【請求項4】
前記サーバーは、コンダクタアプリケーションを含み、前記ログデータは、ハートビートメッセージの一部として前記複数のユーザーコンピューティングシステムの前記リスナーによって前記コンダクタアプリケーションに周期的に送信される、請求項1に記載のシステム。
【請求項5】
前記ログデータは、所定量のログデータが収集されると、または所定の期間が経過した後に、またはその両方で前記サーバーに送信される、請求項1に記載のシステム。
【請求項6】
前記サーバーに通信可能に結合されたデータベースをさらに含み、
前記サーバーは、前記リスナーから受信した前記ログデータを前記データベースに格納するように構成される、
請求項1に記載のシステム。
【請求項7】
前記サーバーは、
前記識別されたRPAプロセスと、前記ユーザーコンピューティングシステム上でロボットによって遂行された以前に存在したRPAプロセスとの間の類似性を判定し、
前記以前に存在したRPAプロセスを遂行する前記ロボットのRPAワークフローを前記識別されたRPAプロセスと置き換えるようにさらに構成される、請求項1に記載のシステム。
【請求項8】
前記識別されたRPAプロセスと前記以前に存在したRPAプロセスとの間の類似性は、前記RPAプロセスにおいて間に入るステップにおける共通の始まり、共通の終わり、および所定量の統計的共通性によって判定される、請求項7に記載のシステム。
【請求項9】
前記リスナーは、ユーザーがどのアプリケーションで画面上のどこをクリックしたか、キーストローク、どのボタンがクリックされたか、前記ユーザーがアプリケーションを切り替えるインスタンス、フォーカスの変更、電子メールが送信されたこと、および前記電子メールが関連するもの、またはこれらの任意の組み合わせを記録するように構成される、請求項1に記載のシステム。
【請求項10】
前記リスナーは、前記ユーザーコンピューティングシステムのユーザーがどのアプリケーションを使用しているか、前記ユーザーがどのくらいの時間の割合で所与のアプリケーションを使用しているか、前記ユーザーが前記アプリケーション内のどの機能を使用しているか、前記ユーザーが前記アプリケーション内のどの機能を使用していないか、またはこれらの任意の組み合わせを判定するように構成される、請求項1に記載のシステム。
【請求項11】
非一時的コンピュータ可読媒体上で具現化されたコンピュータプログラムであって、前記プログラムは、少なくとも1つのプロセッサに、
複数のユーザーコンピューティングシステムのそれぞれのリスナーアプリケーションから収集されたログデータにアクセスさせ、
少なくとも1つの人工知能(AI)層を通して前記ログデータを実行させ、前記少なくとも1つのAI層は、前記ログデータを処理し、その中の潜在的なロボティックプロセスオートメーション(RPA)プロセスを識別するように構成され、
前記識別されたRPAプロセスを含むRPAワークフローを自動的に生成させるように構成される、コンピュータプログラム。
【請求項12】
前記プログラムは、前記少なくとも1つのプロセッサに、
前記RPAワークフローを実施するロボットを生成させ、
前記生成されたロボットを、前記ユーザーコンピューティングシステム上で遂行されるように前記ユーザーコンピューティングシステムへプッシュさせるようにさらに構成される、請求項11に記載のコンピュータプログラム。
【請求項13】
前記少なくとも1つのAI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、またはそれらの任意の組み合わせを含む、請求項11に記載のコンピュータプログラム。
【請求項14】
前記プログラムは、前記少なくとも1つのプロセッサに、
前記識別されたRPAプロセスと、前記ユーザーコンピューティングシステム上でロボットによって遂行された以前に存在したRPAプロセスとの間の類似性を判定させ、
前記以前に存在したRPAプロセスを遂行する前記ロボットのRPAワークフローを前記識別されたRPAプロセスと置き換えさせるようにさらに構成される、請求項11に記載のコンピュータプログラム。
【請求項15】
前記識別されたRPAプロセスと前記以前に存在したRPAプロセスとの間の類似性は、前記RPAプロセスにおいて間に入るステップにおける共通の始まり、共通の終わり、および所定量の統計的共通性によって判定される、請求項11に記載のコンピュータプログラム。
【請求項16】
コンピュータにより実施される方法であって、
リスナーによって、ユーザーコンピューティングシステムとのユーザーインタラクションを含むログを生成するステップと、
前記リスナーによって、前記ログからサーバーにログデータを送信するステップと、を含み、
前記ログデータは、ユーザーがどのアプリケーションで画面上のどこをクリックしたか、キーストローク、どのボタンがクリックされたか、前記ユーザーがアプリケーションを切り替えるインスタンス、フォーカスの変更、電子メールが送信されたこと、および前記電子メールが何に関連するか、またはこれらの任意の組み合わせを含む、コンピュータにより実施される方法。
【請求項17】
前記ログデータは、ハートビートメッセージの一部として前記サーバーのコンダクタアプリケーションに周期的に送信される、請求項16に記載のコンピュータにより実施される方法。
【請求項18】
前記ログデータは、所定量のログデータが収集されると、または所定の期間が経過した後に、またはその両方で前記サーバーに送信される、請求項16に記載のコンピュータにより実施される方法。
【請求項19】
前記ユーザーインタラクションは、前記ユーザーがどのアプリケーションを使用しているか、前記ユーザーがどのくらいの時間の割合で所与のアプリケーションを使用しているか、前記ユーザーが前記アプリケーション内のどの機能を使用しているか、前記ユーザーが前記アプリケーション内のどの機能を使用していないか、またはこれらの任意の組み合わせを含む、請求項16に記載のコンピュータにより実施される方法。
【請求項20】
前記ユーザーインタラクションは、前記ユーザーが前記アプリケーション内のどの機能を使用しているか、および前記ユーザーが前記アプリケーション内のどの機能を使用していないかを含む、請求項16に記載のコンピュータにより実施される方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年12月9日に出願された米国非仮特許出願第16/707,564号および2019年10月15日に出願された米国仮特許出願第62/915,340号の利益を主張する。これらの先願の主題は、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAのための人工知能(AI)ベースのプロセス識別、抽出、および自動化に関する。
【背景技術】
【0003】
企業は、RPAから利益を得ることができるプロセスを認識している場合もしていない場合もある。従業員は、雇用者によって直接知られていない可能性が高い様々なタスクを実行し、これらのタスクは、反復的であるか、そうでなければ自動化される候補であり得る。さらに、企業は、何を自動化したいかについては考えているが、その自動化を達成するための最良のワークフローを知らない可能性がある。例えば、ユーザーアクションのログは、ビデオ記録を精査する人間によって生成され得るが、これは、ユーザーが何を行っているかを正確にキャプチャするのに有効ではなく、実用的かつ効果的であるには費用および時間がかかりすぎる。さらに、何が発生しているかについてのレビュアーの説明は正確ではない可能性がある(例えば、レビュアーは、ユーザーが所与の時間に使用しているアプリケーションを誤って識別する可能性がある)。したがって、有益な自動化を識別し、計画された自動化もしくは既存の自動化、またはその両方を改善するための改善された機構が有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、または解決されていない当技術分野の問題および必要性に対するソリューションを提供することができる。例えば、本発明のいくつかの実施形態は、RPAのAIベースのプロセス識別、抽出、および自動化に関する。
【0005】
一実施形態では、システムは、サーバーと、それぞれのリスナーアプリケーションを含む複数のユーザーコンピューティングシステムと、を含む。リスナーアプリケーションは、それぞれのユーザーコンピューティングシステムとのユーザーインタラクションを含むログを生成し、ログからサーバーにログデータを送信するように構成される。サーバーは、リスナーから収集されたログデータにアクセスし、少なくとも1つのAI層を通してログデータを実行するように構成される。少なくとも1つのAI層は、ログデータを処理し、その中の潜在的なRPAプロセスを識別するように構成される。次いで、サーバーは、識別されたRPAプロセスを含むワークフローを自動的に生成するように構成される。
【0006】
別の実施形態では、コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化される。プログラムは、少なくとも1つのプロセッサに、複数のユーザーコンピューティングシステムのそれぞれのリスナーアプリケーションから収集されたログデータにアクセスさせるように構成される。プログラムはまた、少なくとも1つのプロセッサに、少なくとも1つのAI層を通してログデータを実行させるように構成される。少なくとも1つのAI層は、ログデータを処理し、その中の潜在的なRPAプロセスを識別するように構成される。プログラムは、少なくとも1つのプロセッサに、識別されたRPAプロセスを含むRPAワークフローを自動的に生成させるようにさらに構成される。
【0007】
さらに別の実施形態では、コンピュータにより実施される方法は、リスナーによって、ユーザーコンピューティングシステムとのユーザーインタラクションを含むログを生成するステップと、リスナーによって、ログからサーバーにログデータを送信するステップと、を含む。ログデータは、ユーザーがどのアプリケーションで画面上のどこをクリックしたか、キーストローク、どのボタンがクリックされたか、ユーザーがアプリケーションを切り替えるインスタンス、フォーカスの変更、電子メールが送信されたこと、および電子メールが何に関連するか、またはこれらの任意の組み合わせを含む。さらに、コンピュータにより実施される方法は、1つまたは複数のそれぞれのワークフローおよびロボットを生成するために、1つまたは複数の抽出されたプロセスを使用するステップを含む。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより具体的な説明は、添付の図面に示されている特定の実施形態を参照することによって提供される。これらの図面は、本発明の典型的な実施形態のみを示しており、したがってその範囲を限定するものと見なされるべきではないことを理解されたいが、本発明は、添付の図面を使用することによって追加の具体性および詳細を伴って説明および説明される。
【0009】
【
図1】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の一実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の一実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
【
図4】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】本発明の一実施形態による、RPAのためのAIベースのプロセス識別、抽出、および/または自動化を実行するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
【
図6】本発明の一実施形態による、RPAのためのAIベースのプロセス識別、抽出、および自動化を実行するように構成されたシステムを示すアーキテクチャ図である。
【0015】
【
図7】本発明の一実施形態による、RPAのためのAIベースのプロセス識別、抽出、および自動化のためのプロセスを示すフローチャートである。
【0016】
【
図8】本発明の一実施形態による、ログデータに基づいてRPAワークフローを開発および展開するためのプロセスを示すフローチャートである。
【0017】
【
図9】本発明の一実施形態による、主題のエキスパート(SME)にガイドされたプロセス抽出のためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0018】
いくつかの実施形態は、RPAのAIベースのプロセス識別、抽出、および自動化に関する。ユーザーアクションに関するデータを収集するために、リスナーがユーザーコンピューティングシステムに展開され得る。次いで、リスナーによって収集されたデータは、1つまたは複数のサーバーに送信され、データベースに格納され得る。このデータは、AI層によって解析されて、その中のユーザー挙動プロセスのパターンを認識することができる。次いで、これらの認識されたプロセスは、それぞれのRPAワークフローに抽出され、プロセスを自動化するために展開され得る。
【0019】
したがって、これらの複数層のインテリジェンスは、既存の展開済みのプロセスを自動化および改善するための新しいプロセスの発見を容易にすることができる。したがって、いくつかの実施形態は、自動化のための良好な候補であるユーザーが実行するプロセスを見つけ、次いでこれらのプロセスを自動化するための「プロセスマイナー」として機能する。特定の実施形態では、ユーザーは、プロセスが抽出および自動化されていることを認識していない可能性があり、データ収集および自動化は、ユーザーによるアクションなしで行われ得る。
【0020】
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計および実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、ならびに第三者アプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供することができる。デザイナ110は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0021】
自動化プロジェクトは、本明細書で「アクティビティ」と定義される、ワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ110の一実施形態の一商用例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。いくつかの実施形態では、ワークフローはネストまたは埋め込みされてもよい。
【0022】
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含むことができるが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへの流れを可能にする線形プロセスに特に適することができる。フローチャートは、より複雑なビジネスロジックに特に適しており、複数の分岐論理演算子を通してより多様な方法で決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している場合がある。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を判定し、プロセスをデバッグするのに特に適することができる。
【0023】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの遂行は、デザイナ110で開発されたワークフローを遂行する1つまたは複数のロボット130を編成するコンダクタ120によって編成される。コンダクタ120の一実施形態の一商用例は、UiPathオーケストレータ(商標)である。コンダクタ120は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、第三者のソリューションおよびアプリケーションとの統合ポイントとして機能することができる。
【0024】
コンダクタ120は、集中ポイントからロボット130を接続し遂行するすべてのロボット130を管理することができる。管理され得るロボット130のタイプは、これらに限定されないが、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発および試験の目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発および試験の目的で使用される)を含む。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよび記録媒体のためのコンダクタ120と共に使用することができる。アテンディッドロボット132は、人間のユーザーが様々なタスクを達成するのを助けることができ、ユーザーイベントによってトリガすることができる。いくつかの実施形態では、プロセスは、このタイプのロボットのコンダクタ120から開始することができず、および/またはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイまたはコマンドプロンプトからのみ起動することができる。いくつかの実施形態では、アテンディッドロボット132は人間の監督下で動作するべきである。
【0025】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業待ち行列のサポートの提供を担当することができる。いくつかの実施形態では、すべてのロボットタイプのデバッグを、デザイナ110で実行することができる。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステムおよびアプリケーションを自動化することができる。
【0026】
コンダクタ120は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な機能を有することができる。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続の作成および保守を含むことができる。デプロイメントは、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含むことができる。構成は、ロボット環境およびプロセス構成の維持および配信を含むことができる。キューイングは、キューおよびキュー項目の管理を提供することを含むことができる。監視は、ロボット識別データを追跡し、ユーザー権限を維持することを含むことができる。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージ機構(例えば、大規模なデータセットを格納し、迅速にクエリする能力を提供するElasticSearch(登録商標))へのログの格納およびインデックス付けを含むことができる。コンダクタ120は、第三者のソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供することができる。
【0027】
ロボット130は、デザイナ110に構築されたワークフローを実行する遂行エージェントである。ロボット130のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。
【0028】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置することができる。このようなロボット130の場合、これは、所与のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特徴は、その最大の可能性で各機械の完全な利用を保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、任意のタイプのロボット130をHD環境で構成することができる。
【0029】
いくつかの実施形態におけるロボット130は、各々が特定の自動化タスク専用であるいくつかのコンポーネントに分割される。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして機能する。これらのサービスは、ロボット130の資格情報で信頼され、管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。
【0030】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして機能する。ユーザーモードロボットサービスは、ロボット130のための資格情報を信頼し管理することができる。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションを自動的に起動することができる。
【0031】
エグゼキュータは、Windows(登録商標)セッション下で所与のジョブを実行することができる(すなわち、エグゼキュータはワークフローを遂行することができる。エグゼキュータは、モニターごとのドット/インチ(DPI)設定を認識することができる。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブの開始または停止および設定の変更を要求することができる。コマンドラインは、サービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0032】
上記で説明したようにロボット130のコンポーネントを分割することは、開発者、サポートユーザー、およびコンピューティングシステムが各コンポーネントが遂行しているものをより容易に実行、識別、および追跡するのに役立つ。このようにして、エグゼキュータおよびサービスに対して異なるファイアウォールルールを設定するなど、特別な挙動をコンポーネントごとに構成することができる。エグゼキュータは、いくつかの実施形態では、モニターごとにDPI設定を常に認識することができる。結果として、ワークフローは、それらが作成されたコンピューティングシステムの構成にかかわらず、任意のDPIで遂行され得る。いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルとは無関係であってもよい。DPIを認識していない、または意図的に認識していないとマークされたアプリケーションの場合、いくつかの実施形態ではDPIを無効にすることができる。
【0033】
図2は、本発明の一実施形態による、展開されたRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバー側、またはその両方は、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意されたい。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212と、エージェント214と、デザイナ216と、を含む。しかしながら、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212は、実行中のプロセスである。
図2に示すように、いくつかのビジネスプロジェクトが同時に実行されてもよい。エージェント214(例えば、Windows(登録商標)サービス)は、この実施形態ではすべてのエグゼキュータ212に対する単一の接続ポイントである。この実施形態におけるすべてのメッセージは、データベースサーバー240、インデクササーバー250、またはその両方を介してそれらをさらに処理するコンダクタ230にログされる。
図1に関して上述したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0034】
いくつかの実施形態では、ロボットは、機械名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで同時に実行される複数のロボットが存在してもよい。これは、上記ではHDロボットと呼ばれる。
【0035】
エージェント214はまた、ロボットのステータス(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)を送信し、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では常にエージェント214によって開始される。通知シナリオでは、エージェント214は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ230によって後で使用されるWebSocketチャネルを開くことができる。
【0036】
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーション・プログラミング・インターフェース(API)エンドポイント234、ならびに通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ220のインターフェース内で(例えば、ブラウザ220を介して)実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。そのようなアクションは、本発明の範囲から逸脱することなく、ロボット上のジョブの開始、キュー内のデータの追加/削除、無人で実行するためのジョブのスケジューリングなどを含むことができるが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびJavaScript(JS)を使用する。しかしながら、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、または任意の他のフォーマットを使用することができる。ユーザーは、コンダクタ230を制御するための様々なアクションを実行するために、この実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクトする。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごとおよび/またはプロセスごとにログを解析し、ロボットを起動および停止することなどができる。
【0037】
ウェブアプリケーション232に加えて、コンダクタ230はまた、OData REST APIエンドポイント234を公開するサービス層を含む。しかしながら、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、この実施形態ではクライアントコンピュータ上の1つまたは複数のロボットの管理者である。
【0038】
この実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義および構成するために使用され得る。例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報などの様々な情報をログに記録するために、RESTエンドポイントをロギングすることができる。開始ジョブコマンドがコンダクタ230内で使用される場合に遂行されるべきパッケージバージョンをクエリするために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キューおよびキュー項目管理を担当することができる。
【0039】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視することができる。通知監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送信/受信に使用されるRESTエンドポイントであってもよい。通知監視API236はまた、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0040】
永続層は、この実施形態におけるサーバーのペア、すなわちデータベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。この実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態ではウェブアプリケーション232を通して管理される。データベースサーバー240は、キューおよびキュー項目を管理することができる。いくつかの実施形態では、データベースサーバー240は、(インデクササーバー250に加えて、またはその代わりに)ロボットによって記録されたメッセージを格納することができる。
【0041】
インデクササーバー250は、いくつかの実施形態ではオプションであり、ロボットによって記録された情報を格納し、インデックス付けする。特定の実施形態では、インデクササーバー250は、構成設定を通じて無効にすることができる。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトのフルテキスト検索エンジンであるElasticSearch(登録商標)を使用する。ロボット(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用する)によってログされたメッセージは、ロギングRESTエンドポイントを通してインデクササーバー250に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
【0042】
図3は、本発明の一実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。上記により、開発者は、デザイナ310を使用して、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含むことができる。いくつかの実施形態は、本明細書ではコンピュータビジョン(CV)と呼ばれる、画像内の非テキスト視覚成分を識別することができる。そのようなコンポーネントに関係するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素存在、リフレッシュ範囲、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学文字認識(OCR)、ファジー文字マッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを使用して要素を識別することができる。テキストを取得し、OCRを使用して特定のテキストの位置を識別し、それをスキャンすることができる。ホバーは、要素を識別し、それをホバーすることができる。要素が存在することは、上述した技術を使用して、画面上に要素が存在するかどうかをチェックすることができる。いくつかの実施形態では、デザイナ310に実装することができるアクティビティは、数百または数千であってもよい。しかしながら、本発明の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティが利用可能であり得る。
【0043】
UI自動化アクティビティ330は、下位レベルコード(例えば、CVアクティビティ)に書き込まれ、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアとインタラクトすることを可能にするドライバ340を介したこれらのインタラクションを容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0044】
ドライバ340は、フックを探し、キーを監視するなど、低レベルでOSとインタラクトすることができる。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にすることができる。例えば、「クリック」アクティビティは、ドライバ340を介してこれらの異なるアプリケーションで同じ役割を実行する。
【0045】
図4は、本発明の一実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、
図1および/または
図2のRPAシステム100および/または200であり得るか、それらを含み得る。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。次に、コンダクタコンピューティングシステム420は、データベースサーバー430および任意選択のインデクササーバー440と通信することができる。
【0046】
図1および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用できることに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバー側アプリケーションを実行することができる。
【0047】
図5は、本発明の一実施形態による、RPAのためのAIベースのプロセス識別、抽出、および/または自動化を実行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためにバス505に結合されたプロセッサ510と、を含む。プロセッサ510は、中央プロセッシングユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの汎用または専用プロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、プロセッサ510の少なくとも一方は、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0048】
コンピューティングシステム500は、プロセッサ510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体、またはそれらの組み合わせの任意の組み合わせで構成することができる。非一時的コンピュータ可読媒体は、プロセッサ510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能、取り外し不能、またはその両方であってもよい。
【0049】
さらに、コンピューティングシステム500は、無線接続および/または有線接続を介して通信ネットワークへのアクセスを提供するためのトランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、ロングタームエボリューション(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、ホームノードB(HnB)、Bluetooth、無線周波数識別(RFID)、赤外線データ結合(IrDA)、近距離通信(NFC)、第5世代(5G)、新無線(NR)、それらの任意の組み合わせ、ならびに/あるいは本発明の範囲から逸脱することなく、任意の他の現在存在する、または将来実施される通信規格および/またはプロトコルを使用するように構成されてもよい。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、位相、切り替え、ビームフォーミング、ビームステア、それらの組み合わせ、および/または任意の他のアンテナ構成である1つまたは複数のアンテナを含むことができる。
【0050】
プロセッサ510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
【0051】
キーボード530およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするためにバス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを通してデバイスとインタラクトすることができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500と遠隔でインタラクトすることができ、またはコンピューティングシステム500は自律的に動作することができる。
【0052】
メモリ515は、プロセッサ510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成されたプロセス識別、抽出、および自動化モジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含むことができる。
【0053】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。
【0054】
本明細書に記載されたシステム特徴のいくつかは、それらの実施態様の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0055】
モジュールはまた、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。
【0056】
実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
【0057】
図6は、本発明の一実施形態による、RPAのためのAIベースのプロセス識別、抽出、および自動化を実行するように構成されたシステム600を示すアーキテクチャ図である。システム600は、デスクトップコンピュータ602、タブレット604、およびスマートフォン606などのユーザーコンピューティングシステムを含む。しかしながら、これらに限られるわけではないがスマートウォッチ、ラップトップコンピュータ、モノのインターネット(IoT)デバイス、車両コンピューティングシステムなどを含む任意の所望のコンピューティングシステムを、本発明の範囲から逸脱することなく使用することができる。
【0058】
各コンピューティングシステム602、604、606は、その上にインストールされたリスナー610を有する。リスナー610は、本発明の範囲から逸脱することなく、RPAデザイナアプリケーション、オペレーティングシステムの一部、パーソナルコンピュータ(PC)もしくはスマートフォン用のダウンロード可能なアプリケーション、または任意の他のソフトウェアおよび/もしくはハードウェアを介して生成されたロボットであってもよい。実際、いくつかの実施形態では、リスナー610の1つまたは複数の論理は、物理ハードウェアを介して部分的または完全に実装される。
【0059】
リスナー610は、それぞれのコンピューティングシステム602、604、606とのユーザーインタラクションのログを生成し、ネットワーク620(例えば、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、これらの任意の組み合わせなど)を介してサーバー630にログデータを送信する。ログされるデータは、クリックされたボタン、マウスが移動された場所、フィールドに入力されたテキスト、1つのウィンドウが最小化され、別のウィンドウが開かれたこと、ウィンドウに関連するアプリケーションなどを含み得るが、これらに限定されない。いくつかの実施形態では、サーバー630は、コンダクタアプリケーションを実行することができ、データは、ハートビートメッセージの一部として定期的に送信されてもよい。特定の実施形態では、所定量のログデータが収集された後に、または所定の期間が経過した後に、またはその両方で、ログデータがサーバー630に送信され得る。サーバー630は、受信したリスナー610からのログデータをデータベース640に格納する。
【0060】
人間のユーザー(例えば、RPAエンジニアまたはデータサイエンティスト)によって指示されると、所定量のログデータが収集されたとき、最後の解析から所定量の時間が経過したときなどに、サーバー630は、データベース640からリスナー610によって様々なユーザーから収集されたログデータにアクセスし、複数のAI層632を通してログデータを実行する。AI層632は、ログデータを処理し、その中の1つまたは複数の潜在的なプロセスを識別する。AI層632は、統計的モデリング(例えば、隠れマルコフモデル(HMM))を実行し、深層学習技術(例えば、長期短期記憶(LSTM)深層学習、以前の隠れ状態の符号化など)を利用し、事例識別を実行してプロセスのアトミックインスタンスを識別することができる。請求書処理は、例えば、1つの請求書が完成した事例であってもよい。したがって、システムは、1つの事例が終了し、次の事例が開始する場所を決定する。電子メールを開くことは、例えば、事例の始まりであってもよく、事例のパターンは、変動および共通性を判定するために解析されてもよい。
【0061】
いくつかの実施形態では、識別されたプロセスは、ユーザーが精査するために列挙されてもよく、限定はしないが、所与のプロセスがRPAに対してどれだけ適切であるかを示すRPAスコア(例えば、自動化の複雑度、遂行時間、生成された収益、節約された収益、節約された時間などの重要業績評価指標に対する認識された利益に基づく)、プロセス名、総記録時間、プロセスを遂行したユーザーの数、プロセス遂行時間(例えば、少なくともまたはほとんどの時間)などを含む様々な要因によってソートされてもよい。プロセスワークフローは、ステップ、パラメータ、および相互接続を含む所与のプロセスをユーザーがクリックすると表示され得る。特定の実施形態では、クラスタリングの観点から重要であると思われるプロセスアクティビティのみが使用されてもよい。
【0062】
類似のプロセスが既に存在する場合、サーバー630は、この類似性を識別し、識別されたプロセスが、あまり最適に機能しない類似の自動化のための既存のプロセスを置き換えるべきであることを知ることができる。例えば、プロセス間の類似性は、共通の開始および終了、ならびに間に入るステップにおけるある程度の統計的共通性によって決定され得る。共通性は、エントロピー、プロセス検出目的関数の最小化などによって決定され得る。目的関数しきい値は、いくつかの実施形態では自動的に設定されてもよく、これは、システムによって非類似であると識別されたプロセスがユーザーによって類似していると示される場合には、訓練中に修正されてもよい。次いで、サーバー630は、識別されたプロセスを含むワークフローを自動的に生成し、ワークフローを実装するロボット(または交換ロボット)を生成し、生成されたロボットをユーザーコンピューティングシステム602、604、606にプッシュして遂行することができる。
【0063】
あるいは、特定の実施形態では、AI層632からの提案されたプロセスは、コンピューティングシステム650上のデザイナアプリケーション652を介してRPAエンジニアに提示されてもよい。次いで、RPAエンジニアは、ワークフローをレビューし、任意の所望の変更を行い、次いで、ロボットを介してコンピューティングシステム602、604、606にワークフローを展開するか、またはロボットを展開させることができる。例えば、デプロイメントは、サーバー630または別のサーバー上で実行されているコンダクタアプリケーションを介して行われてもよく、これは、プロセスを実施するロボットをユーザーコンピューティングシステム602、604、606にプッシュすることができる。いくつかの実施形態では、このワークフローデプロイメントは、デザイナアプリケーションの自動化マネージャ機能を介して実現することができ、RPAエンジニアは、単にボタンをクリックしてロボットにプロセスを実装することができる。
【0064】
リスナー
【0065】
コンピューティングシステム602、604、606上でユーザーによって行われたアクションに関連するデータを抽出するために、リスナー610は、ホワイトリストに登録されたアプリケーションからデータを抽出するためにドライバレベル(例えば、
図3のドライバ340)でクライアント側で使用することができる。例えば、リスナー610は、ユーザーがどのアプリケーションで画面上のどこをクリックしたか、キーストローク、どのボタンがクリックされたか、ユーザーがアプリケーションを切り替えるインスタンス、フォーカスの変更、電子メールが送信されたこと、および電子メールが何に関連するかなどを記録することができる。そのようなデータは、コンピューティングシステム602、604、606とのユーザーインタラクションの高忠実度ログを生成するために使用することができる。
【0066】
いくつかの実施形態では、所望のユーザーごとまたは総データ量および/または最大記録時間(ユーザーごとまたは合計)に達するまでデータを生成することができる。これは、個々のユーザー、複数のユーザー、またはその両方に対して設定され得る記録目標を構成することができる。特定の実施形態では、リスナー610は、個人またはグループデータ記録目標に達すると記録を停止することができる。次いで、データをサーバー630にアップロードし、データベース640に格納することができる。
【0067】
特定の実施形態では、ユーザーインタラクションが記録されるアプリケーションはホワイトリストに登録されてもよい。言い換えれば、特定の指定されたアプリケーションとのインタラクションのみが対象となり得る。例えば、ウェブブラウザおよび電子メールアプリケーションとのインタラクションが記録されてもよいが、他のアプリケーションとのインタラクションは無視されてもよい。
【0068】
プロセス抽出のためのログデータを生成することに加えて、またはその代わりに、いくつかの実施形態は、ユーザーが実際に行っていることに対する洞察を提供することができる。例えば、リスナー610は、ユーザーがどのアプリケーションを実際に使用しているか、ユーザーがどのくらいの時間の割合で所与のアプリケーションを使用しているか、ユーザーがアプリケーション内のどの機能を使用しているか、およびユーザーがアプリケーション内のどの機能を使用していないか、などを判定することができる。この情報は、アプリケーションのライセンスを更新するかどうか、機能のライセンスを更新しないかどうか、または機能を欠いているより安価なバージョンにダウングレードするかどうか、ユーザーが他の従業員をより生産的にする傾向があるアプリケーションを使用しておらず、そのためユーザーを適切に訓練することができるかどうか、ユーザーが非業務アクティビティ(例えば、個人の電子メールをチェックしたり、ウェブをサーフィンしたりする)の実行に大量の時間を費やしているかどうか、または自分の机から離れているか(例えば、コンピューティングシステムとインタラクトしない)などに関する情報に基づいた決定を行うためにマネージャに提供されてもよい。
【0069】
いくつかの実施形態では、検出更新をリスナーにプッシュして、ドライバレベルのユーザーインタラクションの検出およびキャプチャプロセスを改善することができる。特定の実施形態では、リスナー610は、それらの検出にAIを使用することができる。特定の実施形態では、自動化ワークフローからのプロセスを実施するロボットは、それぞれのリスナー610を介してコンピューティングシステム602、604、606に自動的にプッシュされてもよい。
【0070】
AI層
【0071】
いくつかの実施形態では、複数のAI層を使用することができる。各AI層は、ログデータ上で実行されるアルゴリズム(またはモデル)であり、AIモデル自体は、訓練データで訓練された訓練済人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であってもよい。層は、直列または並列に実行されてもよい。
【0072】
AI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層(例えば、OCR)、音声テキスト変換層、またはそれらの任意の組み合わせを含むことができるが、これらに限定されない。しかしながら、本発明の範囲から逸脱することなく、任意の所望の数およびタイプの層を使用することができる。複数の層を使用することにより、システムは画面またはプロセス内で何が起こっているかの全体像を作成することができる。例えば、1つのAI層はOCRを実行することができ、別のAI層はボタンなどを検出することができる。
【0073】
パターンは、AI層によって個別に決定されてもよいし、複数のAI層によって集合的に決定されてもよい。ユーザーアクションに関する確率または出力を使用することができる。例えば、ボタンの詳細、そのテキスト、ユーザーがクリックした場所などを判定するために、システムは、ボタンがどこにあるか、そのテキスト、画面上の位置などを知る必要があり得る。
【0074】
主題のエキスパートにガイドされたプロセス抽出
【0075】
ユーザーが仮想マシン環境によって提供される一連の画像とインタラクトしており、ユーザーがインタラクトしている実際のソフトウェアがリモートで実行される実施形態、または、リスナー610からのドライバレベルデータがユーザーが行っていることを正確にまたは完全にキャプチャしない実施形態などのいくつかの実施形態では、リスナー610は、ユーザーがある時点で行っていることのスクリーンショットをキャプチャすることができる(例えば、所定の頻度で、ユーザーが特定のアクションをとるとき、それらの組み合わせなど)。次いで、主題のエキスパート(SME)は、記録されたスクリーンショットをレビューし、関連するスクリーンショットを保存し、関連しないスクリーンショットを削除することができる。
【0076】
関連するスクリーンショットが識別された後に、これらのスクリーンショットは、AIを使用してユーザーがビデオで何を行っていたかを識別する訓練されたコンピュータビジョン(CV)モデル(例えば、サーバー630によって、またはユーザーのコンピューティングシステム上でローカルに実行される)を通して供給されてもよい。追加的または代替的に、スクリーンショットを使用して、より正確な検出のためにCVモデルを訓練することができる。複数のユーザーから多くのアクションが取得されると、識別されたアクション(例えば、クリックされたボタン、使用されたアプリケーション、入力されたテキストなど)はAI層632に供給され、そこからプロセスを抽出することができる。あるいは、単一のユーザーのスクリーンショットから抽出されたアクションを使用してワークフローを自動的に生成することができ、いくつかの実施形態では、SMEはそれが正しいことを確認するために編集することができる。この情報は、特定の実施形態において、実質的に詳細なステップ、スクリーンショット、およびフローチャートを含む製品定義文書(PDD)を生成するために使用され得る。そのようなPDDは、例えば、製品の文書化に使用することができる。
【0077】
特定の実施形態では、PDDを生成するためにシーンの変化が検出され得る。例えば、ユーザーが実行している20の異なるアクティビティは、異なるシーンであってもよい。次いで、システムは、この情報およびログデータを使用して、開発者アプリケーションにインポートすることができるスケルトンロボットを生成することができ、そこで開発者はワークフローの内容を洗い流すことができる。
【0078】
図7は、本発明の一実施形態による、RPAのためのAIベースのプロセス識別、抽出、および自動化のためのプロセス700を示すフローチャートである。プロセスは、710において、リスナーアプリケーション(すなわち、リスナー)が、それぞれのコンピューティングシステムとのユーザーインタラクションのログを生成することから始まる。いくつかの実施形態では、リスナーは、ユーザーが何のアプリケーションで画面上のどこをクリックしたか、キーストローク、どのボタンがクリックされたか、ユーザーがアプリケーションを切り替えるインスタンス、フォーカスの変更、電子メールが送信されたこと、および電子メールが関連するもの、またはこれらの任意の組み合わせを記録するように構成される。特定の実施形態では、リスナーは、ユーザーがどのアプリケーションを実際に使用しているか、ユーザーがどのくらいの時間の割合で所与のアプリケーションを使用しているか、ユーザーがアプリケーション内のどの機能を使用しているか、ユーザーがアプリケーション内のどの機能を使用していないか、またはこれらの任意の組み合わせを判定するように構成される。いくつかの実施形態では、リスナーは、コンピューティングシステムとのユーザーインタラクションを検出する際にAIを使用するように構成される。
【0079】
いくつかの実施形態では、ユーザーコンピューティングシステムの1つまたは複数(または潜在的にすべて)はサーバーである。例えば、負荷分散、サーバー性能、サーバー問題が発生したときに管理者によってとられる是正措置などを監視するためにサーバー上にリスナーを展開することによって、サーバー管理のためのプロセスを抽出することが望ましい場合がある。このようにして、ロボットは、管理者を模倣し、管理者が通常自分自身で対処する必要がある問題を自動的に修正するように訓練され得る。
【0080】
720において、リスナーは、生成されたログデータをサーバーに送信する。いくつかの実施形態では、サーバーまたは別のサーバーは、コンダクタアプリケーションを実行し、ログデータは、ハートビートメッセージの一部としてコンダクタアプリケーションに周期的に送信される。このデータには、ロボット稼働時間、遂行されているワークフロー、ダッシュボード(例えば、ロボットのグループまたは特定のタイプのすべてのロボットによって処理された合計ドル金額)で特定のグローバル情報を提供するためにコンダクタアプリケーションによって使用され得るワークフローアクティビティ(例えば、請求書から検出された合計)に関連するデータなどが含まれ得るが、これらに限定されない。ハートビートメッセージは、本発明の範囲から逸脱することなく、3秒ごと、5~10秒ごと、1分ごと、または任意の他の適切な期間または範囲で送信されてもよい。特定の実施形態では、所定量のログデータが収集されると、または所定の期間が経過した後に、またはその両方で、ログデータがサーバーに送信される。その後に、730において、ログデータがデータベースに格納される。
【0081】
サーバーは、740において、リスナーから収集された格納されたログデータにアクセスし、少なくとも1つのAI層を通してログデータを実行する。いくつかの実施形態では、限定はしないが、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、および/またはこれらの任意の組み合わせを含む複数のAI層を使用することができる。AI層は、750において、ログデータを処理し、その中の潜在的なRPAプロセスを識別するように構成される。より具体的には、識別されたRPAプロセスは、RPAワークフローに実装されたときに特定のユーザーアクションを自動化することができるプロセスである。サーバーは、760において、既存のロボット(もしあれば)によって実施される既存のプロセスにおける類似性を識別するように構成される。例えば、プロセス間の類似性は、共通の開始および終了、ならびに間に入るステップにおけるある程度の統計的共通性によって決定され得る。次いで、サーバーは、770において識別されたRPAプロセスを含むワークフローを自動的に生成し、780においてワークフローを実施するロボットを生成し、790において生成されたロボットを展開するように構成される(例えば、それらをユーザーのコンピューティングシステムにプッシュし、その上でロボットを遂行することによって)。同様のプロセスが既存のロボットによって実施される場合には、ステップ790は、既存のロボットを新たに生成されたロボットと交換することを含むことができる。
【0082】
図8は、本発明の一実施形態による、ログデータに基づいてRPAワークフローを開発および展開するためのプロセスを示すフローチャートである。プロセスは、810において、潜在的なRPAプロセスを識別するためにAI層を介してデータの処理を開始する。次いで、820において、識別されたプロセスは、コンピューティングシステム上のデザイナアプリケーションを介してRPA開発者に提示される。デザイナアプリケーションは、830においてRPA開発者によって行われたワークフローに対する変更を受信して実施する。その後に、840においてデザイナアプリケーションがワークフローからロボットを生成し、850においてロボットが展開される。いくつかの実施形態では、デプロイメントは、ロボットをユーザーコンピューティングシステムにプッシュするように構成されたサーバー上で実行されるコンダクタアプリケーションを介して行われてもよい。いくつかの実施形態では、このワークフローデプロイメントは、RPA開発者からの入力に応答してロボット内の識別されたプロセスを実装するデザイナアプリケーションの自動化マネージャ機能を介して実現される。
【0083】
図9は、本発明の一実施形態による、主題専門家(SME)によるプロセス抽出のためのプロセスを示すフローチャートである。プロセスは、910においてユーザーがコンピューティングシステムとインタラクトしている間に、リスナーがユーザーのコンピューティングシステムからスクリーンショットをキャプチャすることから始まる。いくつかの実施形態では、スクリーンショットは、所定の頻度で、またはユーザーが特定のアクションを行ったとき、またはこれらの組み合わせでキャプチャされてもよい。特定の実施形態では、保存されたスクリーンショットはビデオの一部である。SMEによって関連性があると識別されたスクリーンショットは920で保存され、関連性がないと識別されたスクリーンショットは930で削除される。これらのスクリーンショットは、SME、訓練されたAIモデル、関連性があると識別された他のものとは異なるスクリーンショットを探す異常検出器などによって、無関係であると識別され、破棄され得る。
【0084】
次に、保存されたスクリーンショットは、940でAIを使用してユーザーが保存されたスクリーンショットで何を行っていたかを識別する訓練されたCVモデルを通して供給される。保存されたスクリーンショットはまた、950でより正確な検出のためにCVモデルを訓練するために使用される。アクションがCVモデルによって識別されると、960において、これらのアクションが、そこからプロセスを抽出するために1つまたは複数のAI層に供給される。抽出されたプロセスは、その後に、970において、それぞれのワークフローおよびロボットを生成するために使用される。
【0085】
図7~
図9で実行されるプロセスステップは、本発明の実施形態に従って、プロセッサが
図7~
図9で説明したプロセスの少なくとも一部を実行するための命令を符号化するコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される任意の他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納することもできる、
図7~
図9で説明したプロセスステップの全部または一部を実施するようにコンピューティングシステムのプロセッサ(例えば、
図5のコンピューティングシステム500のプロセッサ510)を制御するための符号化命令を含むことができる。
【0086】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実施することができる。コンピュータプログラムは、互いに動作可能に通信し、表示するために情報または命令を渡すように設計されたモジュールから構成することができる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で動作するように構成することができる。
【0087】
本発明の様々な実施形態のコンポーネントは、本明細書の図に一般的に記載および図示するように、多種多様な異なる構成で配置および設計されてもよいことが容易に理解されよう。したがって、添付の図面に表される本発明の実施形態の詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を単に代表するものである。
【0088】
本明細書を通して説明される本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」というフレーズ、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
【0089】
本明細書を通して特徴、利点、または同様の文言を参照することは、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであること、または本発明の任意の単一の実施形態であることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、一実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0090】
さらに、本発明の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本発明を実施できることを認識するであろう。他の例では、本発明のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0091】
当業者は、上述の本発明が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本発明をこれらの好ましい実施形態に基づいて説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の修正、変形、および代替構築が明らかであることは、当業者には明らかであろう。したがって、本発明の範囲を決定するために、添付の特許請求の範囲を参照すべきである。
【0092】
一実施形態では、システムは、サーバーと、それぞれのリスナーアプリケーションを含む複数のユーザーコンピューティングシステムと、を含む。リスナーアプリケーションは、それぞれのユーザーコンピューティングシステムとのユーザーインタラクションのログを生成し、ログデータをサーバーに送信するように構成される。サーバーは、リスナーから収集されたログデータにアクセスし、少なくとも1つのAI層を通してログデータを実行するように構成される。いくつかの実施形態では、限定はしないが、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、および/またはこれらの任意の組み合わせを含む複数のAI層を使用することができる。少なくとも1つのAI層は、ログデータを処理し、その中の潜在的なRPAプロセスを識別するように構成される。次いで、サーバーは、識別されたRPAプロセスを含むワークフローを自動的に生成し、ワークフローを実装するロボットを生成し、生成されたロボットをユーザーコンピューティングシステムにプッシュして遂行するように構成される。
【0093】
いくつかの実施形態では、サーバーまたは別のサーバーは、コンダクタアプリケーションを実行し、ログデータは、ハートビートメッセージの一部としてコンダクタアプリケーションに周期的に送信される。特定の実施形態では、所定量のログデータが収集されると、または所定の期間が経過した後に、またはその両方で、ログデータがサーバーに送信される。いくつかの実施形態では、サーバーは、リスナーから受信したログデータをデータベースに格納する。特定の実施形態では、サーバーは、ユーザーコンピューティングシステム上でロボットによって遂行された以前に存在したRPAプロセス間の類似性を見つけ、以前に存在したロボットを生成されたロボットと置き換えるように構成される。
【0094】
いくつかの実施形態では、リスナーは、ユーザーが何のアプリケーションで画面上のどこをクリックしたか、キーストローク、どのボタンがクリックされたか、ユーザーがアプリケーションを切り替えるインスタンス、フォーカスの変更、電子メールが送信されたこと、および電子メールが関連するもの、またはこれらの任意の組み合わせを記録するように構成される。特定の実施形態では、リスナーは、ユーザーがどのアプリケーションを実際に使用しているか、ユーザーがどのくらいの時間の割合で所与のアプリケーションを使用しているか、ユーザーがアプリケーション内のどの機能を使用しているか、ユーザーがアプリケーション内のどの機能を使用していないか、またはこれらの任意の組み合わせを判定するように構成される。いくつかの実施形態では、リスナーは、コンピューティングシステムとのユーザーインタラクションを検出する際にAIを使用するように構成される。
【0095】
別の実施形態では、コンピュータにより実施される方法は、1つまたは複数の潜在的なRPAプロセスを識別するために、少なくとも1つのAI層を介してサーバーによってデータを処理するステップを含む。コンピュータにより実施される方法はまた、開発者コンピューティングシステム上のデザイナアプリケーションを介して、識別された潜在的なRPAプロセスを受信するステップと、1つまたは複数の識別されたRPAプロセスを開発者に提示するステップと、を含む。コンピュータにより実施される方法は、デザイナアプリケーションによって、ワークフローに対する変更を受信し実施するステップをさらに含む。さらに、コンピュータにより実施される方法は、デザイナアプリケーションによって、ワークフローからロボットを生成するステップを含む。次いで、ロボットを1つまたは複数のユーザーコンピューティングシステムに展開することができる。いくつかの実施形態では、デプロイメントは、ロボットをユーザーコンピューティングシステムにプッシュするように構成されたサーバー上で実行されるコンダクタアプリケーションを介して行われてもよい。いくつかの実施形態では、このワークフローデプロイメントは、RPA開発者からの入力に応答してロボット内の識別されたプロセスを実装するデザイナアプリケーションの自動化マネージャ機能を介して実現される。
【0096】
さらに別の実施形態では、コンピュータにより実施される方法は、ユーザーがユーザーコンピューティングシステムとインタラクトしている間に、ユーザーコンピューティングシステム上のリスナーによってスクリーンショットをキャプチャするステップを含む。いくつかの実施形態では、スクリーンショットは、所定の頻度で、またはユーザーが特定のアクションを行ったとき、またはこれらの組み合わせでキャプチャされてもよい。特定の実施形態では、保存されたスクリーンショットはビデオの一部である。コンピュータにより実施される方法はまた、関連性があるとしてマークされたキャプチャされたスクリーンショットのスクリーンショットを保存するステップと、関連性がないとして識別されたキャプチャされたスクリーンショットのスクリーンショットを削除するステップと、を含む。コンピュータにより実施される方法は、保存されたスクリーンショットを、AIを使用してユーザーが保存されたスクリーンショットで何を行っていたかを識別する訓練されたCVモデルに供給するステップと、識別されたアクションを1つまたは複数のAI層に供給してそこから1つまたは複数のプロセスを抽出するステップと、をさらに含む。いくつかの実施形態では、保存されたスクリーンショットはまた、将来のより正確な検出のためにCVモデルを訓練するために使用される。さらに、コンピュータにより実施される方法は、1つまたは複数のそれぞれのワークフローおよびロボットを生成するために、1つまたは複数の抽出されたプロセスを使用するステップを含む。
【国際調査報告】