(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-01
(54)【発明の名称】RPAのためのロボットアクセス制御及びガバナンス
(51)【国際特許分類】
G06F 21/62 20130101AFI20230725BHJP
G06N 5/046 20230101ALI20230725BHJP
G06Q 10/0633 20230101ALI20230725BHJP
【FI】
G06F21/62
G06N5/046
G06Q10/0633
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2020553459
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2021-01-22
(86)【国際出願番号】 US2020052183
(87)【国際公開番号】W WO2022010515
(87)【国際公開日】2022-01-13
(32)【優先日】2020-07-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-07-28
(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)【発明者】
【氏名】アンドリュー ホール
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA07
(57)【要約】
ロボティックプロセスオートメーション(RPA)のためのロボットアクセス制御及びガバナンスが開示されている。例えばワークフローアナライザなどの、RPAデザイナアプリケーションのコードアナライザは、RPAデザイナアプリケーションのためのロボットアクセス制御及びガバナンスのポリシールールを読み込み、RPAデザイナアプリケーションのRPAワークフローのアクティビティをロボットアクセス制御及びガバナンスのポリシールールに照らして分析してもよい。RPAワークフローの一又は複数の分析されたアクティビティがアクセス制御及びガバナンスのポリシールールに違反する場合、コードアナライザは、RPAワークフローが前記アクセス制御及びガバナンスのポリシールールを満たすまで、RPAロボットの生成又はRPAワークフローの公開を防止する。RPAワークフローの分析されたアクティビティが全ての要求されるアクセス制御及びガバナンスのポリシールールに準拠している場合、RPAワークフローを実行するRPAロボットを生成し、又は、前記RPAワークフローを公開してもよい。
【選択図】
図15
【特許請求の範囲】
【請求項1】
ロボティックプロセスオートメーション(RPA)のための実行時ロボットアクセス制御及びガバナンスを実行するための、コンピュータによって実行される方法であって、
RPAロボットによって実行される一又は複数のアクション、前記RPAロボットによって要求された情報、又はこれらの両方を、アクセス制御及びガバナンスのルールに照らしてチェックすることと、
前記アクセス制御及びガバナンスのルールに基づいて、前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されている場合に、
前記一又は複数のアクションを承認し、且つ/又は、要求された前記情報を前記RPAロボットに提供することと、
前記アクセス制御及びガバナンスのルールに基づいて、前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、
前記RPAロボットが前記一又は複数のアクションを実行すること及び/又は要求された前記情報を取得することを防止することと、
を含むことを特徴とする方法。
【請求項2】
前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、前記方法は、
前記一又は複数のアクション及び/又は前記情報へのアクセスが許可されていないことを示す通知を前記RPAロボット又はクライアント側のアプリケーションに送ること
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項3】
前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、前記方法は、
前記RPAロボットの実行を自動的に終了すること
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項4】
前記方法は、クライアント側の確認アプリケーションによって実行されることを特徴とする、請求項1に記載の方法。
【請求項5】
前記方法は、サーバ側の確認アプリケーションによって実行されることを特徴とする、請求項1に記載の方法。
【請求項6】
前記RPAロボットに関連するコンピューティングシステムがサーバ側のコンダクタアプリケーションに接続すると、前記コンピューティングシステムに前記アクセス制御及びガバナンスのルールを自動的に送ること
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項7】
前記一又は複数のアクションの少なくとも1つは、前記RPAロボットではなく、人間のユーザに許可されていることを特徴とする、請求項1に記載の方法。
【請求項8】
一又は複数のレガシーシステムが一又は複数の動作を実行するための時間少なくとも、前記RPAロボットが一時停止することを確認することと、
前記PAロボットが少なくとも前記時間一時停止しない場合に、
前記時間が満了するまで、前記RPAロボットによって要求された前記情報の取得又は前記RPAロボットからの新しい情報の要求の受け入れを遅らせることと、
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項9】
前記アクセス制御及びガバナンスのルールの設計時の実施に加えて、前記アクセス制御及びガバナンスのルールの実行時の実施が行われることを特徴とする、請求項1に記載の方法。
【請求項10】
前記RPAロボットは、自動的に挿入されたコードを含み、前記コードは、前記RPAロボットに、前記アクセス制御及びガバナンスのルールを取得させ且つ/又は前記アクセス制御及びガバナンスのルールに準拠して動作させることを特徴とする、請求項1に記載の方法。
【請求項11】
前記アクセス制御及びガバナンスのルールには、一又は複数のアプリケーション及び/又はユニバーサルリソースロケータ(URL)制限、一又は複数のパッケージ制限、一又は複数のアクティビティ制限、一又は複数のアクティビティプロパティ要件、或いはこれらのうちの組み合わせが含まれることを特徴とする、請求項1に記載の方法。
【請求項12】
非一時的なコンピュータ読み取り可能な媒体に格納された、ロボティックプロセスオートメーション(RPA)のための実行時のロボットアクセス制御及びガバナンスを実行するためのコンピュータプログラムであって、
RPAロボットによって実行される一又は複数のアクション、前記RPAロボットによって要求された情報、又はこれらの両方を、アクセス制御及びガバナンスのルールに照らしてチェックすることと、
前記アクセス制御及びガバナンスのルールに基づいて、前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、
前記RPAロボットが前記一又は複数のアクションを実行すること及び/又は要求された前記情報を取得することを防止することと、
を少なくとも1つのプロセッサに実行させるように構成されていることを特徴とするコンピュータプログラム。
【請求項13】
前記アクセス制御及びガバナンスのルールに基づいて、前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されている場合に、前記コンピュータプログラムは、
前記一又は複数のアクションを承認し、且つ/又は、要求された前記情報を前記RPAロボットに提供すること
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項14】
前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、前記コンピュータプログラムは、
前記一又は複数のアクション及び/又は前記情報へのアクセスが許可されていないことを示す通知を前記RPAロボット又はクライアント側のアプリケーションに送ること
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項15】
前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、前記コンピュータプログラムは、
前記RPAロボットの実行を自動的に終了すること
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項16】
前記コンピュータプログラムは、
前記RPAロボットに関連するコンピューティングシステムがサーバ側のコンダクタアプリケーションに接続すると、前記コンピューティングシステムに前記アクセス制御及びガバナンスのルールを自動的に送ること
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項17】
前記一又は複数のアクションの少なくとも1つは、前記RPAロボットではなく、人間のユーザに許可されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項18】
前記コンピュータプログラムは、
一又は複数のレガシーシステムが一又は複数の動作を実行するための時間少なくとも、前記RPAロボットが一時停止することを確認することと、
前記PAロボットが少なくとも前記時間一時停止しない場合に、
前記時間が満了するまで、前記RPAロボットによって要求された前記情報の取得又は前記RPAロボットからの新しい情報の要求の受け入れを遅らせることと、
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項19】
前記コンピュータプログラムは、前記アクセス制御及びガバナンスのルールの設計時の実施に加えて、前記アクセス制御及びガバナンスのルールの実行時の実施を行うように構成されていることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項20】
前記RPAロボットは、自動的に挿入されたコードを含み、前記コードは、前記RPAロボットに、前記アクセス制御及びガバナンスのルールを取得させ且つ/又は前記アクセス制御及びガバナンスのルールに準拠して動作させることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項21】
前記アクセス制御及びガバナンスのルールには、一又は複数のアプリケーション及び/又はユニバーサルリソースロケータ(URL)制限、一又は複数のパッケージ制限、一又は複数のアクティビティ制限、一又は複数のアクティビティプロパティ要件、或いはこれらのうちの組み合わせが含まれることを特徴とする、請求項12に記載のコンピュータプログラム。
【請求項22】
非一時的なコンピュータ読み取り可能な媒体に格納された、ロボティックプロセスオートメーション(RPA)のための実行時のロボットアクセス制御及びガバナンスを実行するためのコンピュータプログラムであって、
RPAロボットによって実行される一又は複数のアクション、前記RPAロボットによって要求された情報、又はこれらの両方を、アクセス制御及びガバナンスのルールに照らしてチェックすることと、
前記アクセス制御及びガバナンスのルールに基づいて、前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されていない場合に、
前記RPAロボットが前記一又は複数のアクションを実行すること及び/又は要求された前記情報を取得することを防止することと、
前記一又は複数のアクション及び/又は前記情報へのアクセスが許可されていないことを示す通知を前記RPAロボット又はクライアント側のアプリケーションに送ること、前記RPAロボットの実行を自動的に終了すること、又はこれらの両方と、
を少なくとも1つのプロセッサに実行させるように構成されていることを特徴とするコンピュータプログラム。
【請求項23】
前記アクセス制御及びガバナンスのルールに基づいて、前記RPAロボットが前記一又は複数のアクションを実行すること、要求された前記情報を受け取ること、又はこれらの両方を許可されている場合に、前記コンピュータプログラムは、
前記一又は複数のアクションを承認し、且つ/又は、要求された前記情報を前記RPAロボットに提供すること
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項22に記載のコンピュータプログラム。
【請求項24】
前記コンピュータプログラムは、
前記RPAロボットに関連するコンピューティングシステムがサーバ側のコンダクタアプリケーションに接続すると、前記コンピューティングシステムに前記アクセス制御及びガバナンスのルールを自動的に送ること
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項22に記載のコンピュータプログラム。
【請求項25】
前記一又は複数のアクションの少なくとも1つは、前記RPAロボットではなく、人間のユーザに許可されていることを特徴とする、請求項22に記載のコンピュータプログラム。
【請求項26】
前記コンピュータプログラムは、
一又は複数のレガシーシステムが一又は複数の動作を実行するための時間少なくとも、前記RPAロボットが一時停止することを確認することと、
前記PAロボットが少なくとも前記時間一時停止しない場合に、
前記時間が満了するまで、前記RPAロボットによって要求された前記情報の取得又は前記RPAロボットからの新しい情報の要求の受け入れを遅らせることと、
を少なくとも1つのプロセッサにさらに実行させるように構成されていることを特徴とする、請求項22に記載のコンピュータプログラム。
【請求項27】
前記コンピュータプログラムは、前記アクセス制御及びガバナンスのルールの設計時の実施に加えて、前記アクセス制御及びガバナンスのルールの実行時の実施を行うように構成されていることを特徴とする、請求項22に記載のコンピュータプログラム。
【請求項28】
前記RPAロボットは、自動的に挿入されたコードを含み、前記コードは、前記RPAロボットに、前記アクセス制御及びガバナンスのルールを取得させ且つ/又は前記アクセス制御及びガバナンスのルールに準拠して動作させることを特徴とする、請求項22に記載のコンピュータプログラム。
【請求項29】
前記アクセス制御及びガバナンスのルールには、一又は複数のアプリケーション及び/又はユニバーサルリソースロケータ(URL)制限、一又は複数のパッケージ制限、一又は複数のアクティビティ制限、一又は複数のアクティビティプロパティ要件、或いはこれらのうちの組み合わせが含まれることを特徴とする、請求項22に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年7月9日に出願された米国非仮特許出願番号16/924,499の継続出願であり、その利益を主張する、2020年7月28日に出願された米国非仮特許出願番号16/941,484の利益を主張する。これらのより早く出願された出願の主題は、参照によりその全体が本明細書に組み込まれる。
【0002】
本発明は、概して、ロボティックプロセスオートメーション(RPA)、より詳細には、RPAのためのロボットアクセス制御及びガバナンスに関する。
【背景技術】
【0003】
コンピューティングシステムのユーザがとる特定のアクションは、米国及び他の国々における法律又は協定、例えばEUの一般データ保護規則(General Data Protection Regulation:GDPR)、米国の医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act:HIPAA)、サードパーティの利用規約などに違反する可能性がある。このような法律又は協定に違反した場合の罰則は非常に重くなる可能性がある。例えば、GDPRの場合、低レベルの違反には、1,000万ユーロ又は違反者の世界的の年間収入(利益ではない)の2%のいずれか高い方の罰金が科せられる可能性がある。より深刻な違反には、2,000万ユーロ又は違反者の年間収入の4%のいずれか高い方の罰金が科せられる可能性がある。このような罰金は、企業に経済的損害を与える可能性があり、場合によっては致命的となる可能性もある。RPAは、アクセス制御及びガバナンスに固有の課題を示す。したがって、RPAアクセス制御及びガバナンスへの向上したアプローチが有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、又は解決されていない当該技術分野の課題及び必要性に対する解決方法を提供し得る。例えば、本発明の幾つかの実施形態は、RPAのためのロボットアクセス制御及びガバナンスに関する。
【0005】
一実施形態において、RPAのためのロボットアクセス制御及びガバナンスを実行するためのコンピュータプログラムが、非一時的なコンピュータ読み取り可能な媒体に格納される。該コンピュータプログラムは、RPAデザイナアプリケーションのためのアクセス制御及びガバナンスのポリシールールを読み込むことと、RPAデザイナアプリケーションのRPAワークフローのアクティビティをアクセス制御及びガバナンスのポリシールールに照らして分析することと、を少なくとも1つのプロセッサに実行させるように構成されている。該プログラムは、RPAワークフローの一又は複数の分析されたアクティビティがアクセス制御及びガバナンスのポリシールールに違反する場合、RPAワークフローがアクセス制御及びガバナンスのポリシールールを満たすまで、RPAロボットの生成又はRPAワークフローの公開を防止することを少なくとも1つのプロセッサに実行させるように構成されている。該プログラムは、RPAワークフローの分析されたアクティビティが全ての要求されるアクセス制御及びガバナンスのポリシールールに準拠している場合、RPAワークフローを実行するRPAロボットを生成し、又は、RPAワークフローを公開することを少なくとも1つのプロセッサに実行させるように構成されている。
【0006】
別の一実施形態において、RPAのためのロボットアクセス制御及びガバナンスを実行するための、コンピュータによって実行される方法は、コードアナライザによって、RPAデザイナアプリケーションのRPAワークフローのアクティビティをアクセス制御及びガバナンスのポリシールールに照らして分析することを含む。該方法は、RPAワークフローの一又は複数の分析されたアクティビティがアクセス制御及びガバナンスのポリシールールに違反する場合、コードアナライザによって、RPAワークフローがアクセス制御及びガバナンスのポリシールールを満たすまで、RPAロボットの生成又はRPAワークフローの公開を防止することを含む。
【0007】
さらに別の一実施形態において、RPAのためのロボットアクセス制御及びガバナンスを実行するためのコンピュータプログラムが、非一時的なコンピュータ読み取り可能な媒体に格納される。該コンピュータプログラムは、コンピューティングシステムのレジストリエントリからアクセス制御及びガバナンスのポリシールールを含むファイルへのリンクを判断して判断されたリンクを使用してファイルをダウンロードすること、又は、コンダクタアプリケーションからガバナンスのポリシールールをダウンロードすることを少なくとも1つのプロセッサに実行させるように構成されている。該コンピュータプログラムは、ダウンロードされたファイルから、RPAデザイナアプリケーションのためのアクセス制御及びガバナンスのポリシールールを読み込むことと、RPAデザイナアプリケーションのRPAワークフローのアクティビティをアクセス制御及びガバナンスのポリシーに照らして分析することと、を少なくとも1つのプロセッサに実行させるように構成されている。該コンピュータプログラムは、RPAワークフローの一又は複数の分析されたアクティビティがアクセス制御及びガバナンスのポリシールールに違反する場合、RPAワークフローがアクセス制御及びガバナンスのポリシールールを満たすまで、RPAロボットの生成又はRPAワークフローの公開を防止することを少なくとも1つのプロセッサに実行させるように構成されている。該コンピュータプログラムは、RPAワークフローの分析されたアクティビティが全ての要求されるアクセス制御及びガバナンスのポリシールールに準拠している場合、RPAワークフローを実行するRPAロボットを生成し、又は、RPAワークフローを公開することを少なくとも1つのプロセッサに実行させるように構成されている。アクセス制御及びガバナンスのポリシールールには、一又は複数のアプリケーション及び/又はユニバーサルリソースロケータ(URL)制限、一又は複数のパッケージ制限、一又は複数のアクティビティ制限、一又は複数のアクティビティプロパティ要件、或いはこれらのうちの組み合わせが含まれる。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記簡単に説明した本発明のより詳細な説明を、添付の図面に示す特定の実施形態を参照して行う。これらの図面は、本発明の典型的な実施形態のみを示すもので、その範囲を限定するものとみなされるべきではないことを理解されたい。本発明は、添付の図面の使用を通じて追加の特性及び詳細とともに記載され説明される。
【0009】
【
図1】本発明の一実施形態によるロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の一実施形態による、デプロイされたRPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の一実施形態による、デザイナとアクティビティとドライバとの関係を示すアーキテクチャ図である。
【0012】
【
図4】本発明の一実施形態によるRPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】本発明の一実施形態による、RPAのためのロボットアクセス制御及びガバナンスを実行するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
【
図6】本発明の一実施形態による、UiPath Studio(商標)用のWindows(登録商標)レジストリエディタのフォルダのビューを示すスクリーンショットである。
【0015】
【
図7】本発明の一実施形態による、ファイルSampleGovernanceRules.dllがUiPath Studio(商標)用のRulesフォルダにインストールされているWindows Explorer(登録商標)UIの一部を示すスクリーンショットである。
【0016】
【
図8】本発明の一実施形態による、パッケージ管理インタフェースを示すスクリーンショットである。
【0017】
【
図9】本発明の一実施形態による、フィードバック送信アイコンが無効になっている状態のRPAデザイナアプリケーションの右上部分を示すスクリーンショットである。
【0018】
【
図10】
図10A~
図10Dは、本発明の一実施形態による、ワークフローアナライザ設定インタフェースを示すスクリーンショットである。
【0019】
【
図11】本発明の一実施形態による、RPAデザイナアプリケーション設定インタフェースを示すスクリーンショットである。
【0020】
【
図12】
図12A及び
図12Bは、本発明の一実施形態による、RPAワークフローを示すスクリーンショットである。
【0021】
【
図13】本発明の一実施形態による、エラーリストインタフェースを示す。
【0022】
【
図14】本発明の一実施形態による、ワークフローアナライザインタフェースを示すスクリーンショットである。
【0023】
【
図15】本発明の一実施形態による、ロボット実行時にRPAのためのアクセス制御及びガバナンスを実行するためのシステムを示すアーキテクチャ図である。
【0024】
【
図16】本発明の一実施形態による、RPAデザイナアプリケーション用のロボットアクセス制御及びガバナンスを実行するプロセスを示すフローチャートである。
【0025】
【
図17】本発明の一実施形態による、実行中のRPAロボット用の、RPAのためのロボットアクセス制御及びガバナンスを実行するプロセスを示すフローチャートである。
【0026】
特に示さない限り、同様の符号は、添付の図面全体を通して一貫して対応する特徴を示す。
【発明を実施するための形態】
【0027】
幾つかの実施形態は、RPAのためのロボットアクセス制御及びガバナンスに関する。RPAガバナンスは、例えばGDPR、HIPAA、サードパーティのアプリケーション利用規約への違反など組織に害を及ぼす可能性のあるアクションを実行する能力を有するRPAロボットを、ユーザが開発できないようにポリシーを設定する機能である。開発者は、自動化の実行中にプライバシー法、利用規約などに違反するロボットを作成する可能性があるため、幾つかの実施形態では、ロボット及び/又はロボット設計アプリケーションレベルで、アクセス制御及びガバナンスの制限を実行する。これは、セキュリティリスクを導入したり、或いは、ポリシー、規則、プライバシー法、及び/又はプライバシーポリシーに違反する方法で動作したりする可能性のある未承認のソフトウェアライブラリにRPA開発者が依存することを防ぐことにより、幾つかの実施形態において、RPAプロセス開発パイプラインに追加レベルのセキュリティ及びコンプライアンスを提供してもよい。
【0028】
幾つかの実施形態では、ロボットによってではなくユーザによって許可されるアクションを、RPAロボットが実行することを防ぐ。従来、組織は、その組織のシステムへのアクセス制御を通じて、ユーザが実行できることと実行できないこととを制御する場合がある。しかし、RPAのコンテキスト、特にアテンディッド(操作要)自動化の場合、このような制御は機能しない可能性がある。ロボットがユーザの代わりにタスクを実行し、つまり、バックエンドシステムが、ロボットがシステムにアクセスしているのかユーザがシステムにアクセスしているのかを区別できないということになる。
【0029】
これは、幾つかの理由で問題になる可能性がある。例えば、バックエンドシステムでは、誤用される可能性のある特定のデータにユーザがアクセスできる可能性がある。しかし、優れたシステムでは、通常、いかなる規模においてもユーザが問題を引き起こすことは困難である。これは、すべきでないことを行うことは時間がかかり面倒であるためである。対照的に、RPAロボットが使用される場合、ロボットの実行速度のため、ロボットは、データの誤用又はポリシー違反の規模を大幅に拡大させる可能性がある。
【0030】
次の例を考える。ある組織が、「私に連絡しない」オプションをユーザが選択したか否かをチェックしてプライバシーポリシーへのリンクと組織に「忘れる」ことを要求するため指示とを提供することにより、例えばGDPRの「オプトアウト」ポリシー及び「忘れる」ポリシー又は他のユーザ保護法などの様々なプライバシーオプションを完全に支持する顧客に連絡するため、顧客関係管理(CRM)システムを使用する。組織は、CRMシステムへのアクセスを従業員の大部分に許可するが該システムで電子メールを送信する許可(権限)を限定された少数の従業員にのみ与えることを選択している。
【0031】
しかし、合法的なビジネス目的で、この幅広いユーザが、顧客の電子メールアドレスを含む顧客プロファイルにアクセスできる必要がある(例えば、従業員が顧客を扱う仕事をするときに、システム内の顧客の電子メールアドレスを含む誤情報を作成又は編集する場合がある)。CRMシステムを使用せずに顧客に電子メールを送ることは組織のポリシーに対する違反であるが、一部の従業員は、情報を知りたいと考えており、その許可を得るために様々な承認ルートを待つ又は適切に許可された従業員に代わりにしてもらうことを望んでいない。RPAロボットを使用しない場合、従業員がこのポリシーに違反する可能性があるが、システムから電子メールアドレスを1つずつ手動でコピーしてペーストするのは面倒である。従業員がこのポリシーに違反した場合でも、違反の規模は小さいため、違反が発生しても、組織へのリスクは軽減されるであろう。しかし、RPAロボットは、このデータを人間よりも桁違いに速く(例えば、数千倍、数万倍、数十万倍、数百万倍など)抽出して、電子メールを作成し送信する。このため、ユーザがポリシーに違反する5~10通のメールを手動で送信して企業を顧客によるGDPRの「オプトアウト」に違反するリスクにさらす可能性があるのに対して、ユーザがこれをロボットにさせると、多数の違反メールを送ることになるであろう。
【0032】
別の一例として、慎重に保護されたシステムを使用して全てのデータをHIPAA準拠の方法で保存している医療機関について考えてみる。従業員は、適切なアプリケーションのコンテキストでこのデータに合法的にアクセスして扱う可能性がある。システムの非効率性に不満を持っている従業員は、自分のデスクトップ上の保護されていないExcel(登録商標)スプレッドシートに患者データを抽出するRPAロボットを書きたいと望む可能性がある。これは、現在HIPAA違反であり、例えば従業員のコンピュータが盗まれてアクセスされるなど、そのデータに何かが起こった場合、これにより、組織は重大な経済的及び法的責任を負う可能性がある。
【0033】
さらに別の一例として、サードパーティのアプリケーション又はサービスの利用規約で、自動化を使用して該アプリケーション又はサービスを扱うことが禁止されている場合を考える。従業員がこのような利用規約に違反して動作するRPAロボットを書くことを選択した場合、会社は法的責任を負う可能性がある。
【0034】
このような問題及び他の問題が、RPAロボットを採用している組織に大きなリスクをもたらす可能性がある。しかし、幾つかの実施形態では、開発者が未承認のライブラリ及びアクティビティの参照を使用することを防ぐことによって、開発者からのセキュリティ及びコンプライアンスのリスクを低減又は排除する。RPA開発者は、訓練を受けたRPA開発者(例えば、UiPath Studio(商標)を使用する)又は訓練を受けていない市民開発者(シチズンディベロッパ)(例えば、UiPath StudioX(商標)を使用する)のいずれであっても、安全でないとみなされるライブラリへの参照又はポリシー/規制ルールに違反する方法で機能するライブラリへの参照を追加する可能性がある。
【0035】
次の例を考える。米国政府は、ロシア又は敵対的とみなされる他の国で開発された技術を使用するものを米国政府のコンピューティングシステムにインストールすることを許可していない。しかし、ロシアの企業によって開発されたRPAで使用されるよく知られたライブラリ(例えば、Abbyy(登録商標)OCRエンジンなど)がある。開発者は、自身のコンピューティングシステムでこのようなライブラリをデフォルトで使用できないようにすることを選択できるが、ユーザがこのようなライブラリをRPAプロジェクトに組み込むことに依存することを明示的に防ぐことはできない。RPA開発者のインターネットアクセスがブロックされる可能性があり、これはソフトウェアを開発する際の多くの理由で望ましくないが、開発者は、例えばユニバーサルシリアルバス(USB)スティックなどの別のメカニズムを介して未承認のライブラリをコンピューティングシステムに持ち込むことができる。
【0036】
別の一例として、多くの金融機関は、その内部ネットワーク及びファイアウォールを離れる可能性のある情報と離れない可能性のある情報に関して、厳格なポリシーを設定している。現代では、多くのRPAライブラリ(RPAアクティビティを介して呼び出される)が、UiPath(登録商標)のドキュメント理解アクティビティなどのパブリッククラウド上のサーバと通信することによって動作する。このような金融機関は、機密データを会社のファイアウォールの外に送信する可能性があるためにこのようなアクティビティの使用が許可されていないことにユーザが気付かないであろうことを懸念している。しかし、これを防ぐための既存の効果的な選択肢はない。
【0037】
さらに別の懸念は、大規模なRPAがシステムを圧倒するのを防ぐことである。RPAの大成功の理由の1つは、レガシーシステムをアップグレードする必要なく、レガシーシステムを自動化できることである。レガシーシステムは自動化されるように設計されていないので、その設計及び性能は、人間が操作できる速度で対話を処理できるのみである可能性がある。しかし、レガシーアプリケーションが、RPAロボットがシステムと対話可能な速度に常についていくことができるとは限らない。このような制約内で動作するように設計されていないロボットは、基本的に、処理できるよりも高速な要求でレガシーシステムを圧倒し、基本的にシステムに対して偶発的なサービス拒否(DoS)攻撃を実行する可能性がある。アクティビティ間の遅延を可能にする設定がUiPath Studio(商標)に存在するが、RPAロボットの速度で動作できないレガシーシステムを扱う場合に開発者がこのような設定を使用することを保証する中央強制メカニズムは現在存在しない。
【0038】
さらに別の懸念は、組織のポリシーコンプライアンス(準拠)を確保することである。多くの組織には、自動化に適用したい特定のルールがある。例えば、幾つかの例として、自動化によって作成された電子メールが外部の受信者ではなく内部の従業員にのみ送信されるように強制すること、自動化によって作成された全ての電子メールが下書きとして保存されて人間によるレビューなしに送信されないように強制することなどがある。適切なガバナンスがない場合、このようなポリシーがRPAロボットによって違反される可能性がある。
【0039】
RPAで発生する可能性のあるアクセス制御及びガバナンスの課題の様々な課題に対処するために、幾つかの実施形態は、組織がガバナンスポリシーを定義及び実施するための機能を提供する。例えば、これは、RPAロボットがアクセスできるもの及び/又はアクセスできないものを定義するJavaScript Object Notation(JSON)ファイルを介して実装されてもよい。幾つかの実施形態において、組織は、どのアプリケーション及び/又はユニバーサルリソースロケータ(URL)が自動化可能か及び/又は自動化可能でないかを制御し、どのアクティビティが使用可能か及び/又は使用可能でないかを制御し、どのパッケージ(例えば、ライブラリなど)が使用可能か及び/又は使用可能でないかを制御し、ガバナンス機能を拡張するカスタムルールを作成及びデプロイする機能を提供し、例えばユーザがライブラリをインストールするために使用可能なパッケージフィードなどを制御可能な様々なRPAデザイナアプリケーション設定を提供する。
【0040】
幾つかの実施形態において、ガバナンスは、設計時に(即ち、開発者がRPAロボットワークフローを構築、テスト、修正しているときに)実施されてもよい。しかし、これにより、特定のポリシーを適用することが困難又は不可能になる可能性がある。例えば、ポリシーが適用されている値が実行時にのみ分かっている場合にはポリシーを適用することが困難又は不可能である可能性がある。例えば、組織が特定のウェブサイトへのアクセスを防止するポリシーを設定することを望む場合、設計時の分析が、フラグを立てるURLを認識できる必要がある。しかし、幾つかの実施形態において、例えば外部ファイル又はユーザに要求するプロンプトなどの動的ソースから値がロードされるような方法で、RPAプログラムを構築することが可能である。この場合、ポリシーに違反する値が設計時に分からないので、設計時の分析では不十分である。別の一例は、組織が組織外の顧客への電子メールの自動化を防止することを望むが、電子メールアドレスのリストがスプレッドシートからのものである場合である。この場合、電子メールは、設計時には不明であるが、代わりに実行時に評価される必要があるシステムへの動的な入力である。
【0041】
特定の実施形態において、ガバナンスは、設計時の実施に加えて又はその代わりに、実行時に実施される。これは、例えば、ポリシーを構成及びデプロイするためのサーバ側のアプリケーションを介して実行されてもよい。例えば、これらのコンピューティングシステムがサーバ側のコンダクタアプリケーションに接続すると、ポリシーがユーザのコンピューティングシステムに自動的に送られてもよい。RPAデザイナアプリケーションは、RPAロボットにこのようなポリシーを取得させ且つそのポリシーに準拠して動作させるコードを、RPAロボットに自動的に挿入してもよい。
【0042】
幾つかの実施形態において、開発者がRPAロボットを開発するときに行うことが可能なことを制御するために、制御が、組織、役割、グループ、個々の開発者などに基づいてRPAデザイナアプリケーションについて定義されてもよい。RPAロボットが自動化を実行するときにRPAロボットが実行可能なことを制御するために、ポリシーが定義され制御が実行されてもよい。そのような実施形態により、組織が、法律、規則、協定、及び会社のポリシーに関して、コンプライアンス及びガバナンスの要件をよりよく満たすことを可能にしてもよい。
【0043】
幾つかの実施形態において、ローカルファイルは、管理者によってのみ変更されてもよい。そのため、管理者以外のユーザは、これらのファイルをオーバーライド又は変更できないようにする必要がある。パッケージフィードは、所望のフィードのみが使用可能であり追加のフィードを追加できないようにロックダウンされてもよい。これにより、ユーザは他の場所で取得したパッケージを使用できなくなる。特定の実施形態において、「フィードバック送信」ツールが、ポリシーの一部として無効にされてもよい。
【0044】
「パッケージフィード」は、本明細書で使用される場合、開発者が自身の自動化プロジェクトの追加機能を取得するために任意にインストールすることを選択可能な追加のライブラリへのアクセスを含む場所(リモート又はローカル)である。ライブラリは、本明細書で使用される場合、プロジェクトに追加機能(例えば、アクティビティなど)を提供するコンピュータコードを含むパッケージである。パッケージフィードの一例は、UiPath Connect(商標)マーケットプレイスである。これは、コミュニティメンバが自身が作成したカスタムアクティビティを含むライブラリをアップロード可能なオープンな場所である。UiPath(登録商標)RPA開発者がこのような機能を使用したい場合、その開発者は自身のプロジェクトにライブラリ参照を閲覧して追加してもよい。ライブラリの一例は、UiPath GSuite(商標)アクティビティである。UiPath Studio(商標)のデフォルトのインストールでは、RPA開発者はGSuite(商標)を操作する機能を与えられない。しかし、開発者は、Gsuite(商標)(例えば、Gmail(登録商標)、Google(登録商標)スプレッドシート、Google(登録商標)ドライブなど)を操作するためのアクティビティを使用できる機能をそのプロジェクトに与えるGSuite(商標)アクティビティライブラリをインストールしてもよい。
【0045】
幾つかの実施形態において、例えばプログラムアナライザ又はRPAワークフローアナライザなどのコードアナライザが、RPAデザイナアプリケーションのための監査機能として提供される。ワークフローアナライザは、ユーザがRPAデザイナアプリケーションを実行させるときに許可される内容を定義し、ポリシーを適用してもよい。例えば、ユーザが操作できる許可されたURLが指定される、特定のURLが制限されるなど。
【0046】
「コードアナライザ」は、本明細書で使用される場合、RPAユーザによって書かれたコードを検査してアプリケーションがルールを満たさない場合にはフィードバック(例えば、メッセージ、警告、エラーなど)を生成する一連のルールを実行するコンピュータコードである。幾つかの実施形態において、コードアナライザは、RPAアプリケーション(例えば、UiPath(登録商標)など)のベンダによって提供され、又は、RPAアプリケーションを使用して顧客によって書かれる。コードアナライザのルールの一例は、UiPath Studio(商標)「App/Url Restrictions」ルールであり、これにより、どのデスクトップアプリケーション及びウェブサイトのURLが自動化プロジェクトで使用可能か又は可能でないかを組織が定義できる。ユーザがこのようなルールの何れかに違反した場合、ユーザはガバナンスポリシーで指定された重大度で通知を受け取るであろう。幾つかの実施形態において、これは通常、自動化が公開又は実行されるのを妨げるエラーである。
【0047】
特定の実施形態が、ロボティックプロセスオートメーション(RPA)に使用されてもよい。
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計及び実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、並びにサードパーティアプリケーション、管理情報技術(IT)タスク、及びビジネスITプロセスの自動化のためのソリューションを提供してもよい。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にしてもよい。簡単に言うと、デザイナ110はワークフロー及びロボットの開発とデプロイメントを容易にする。
【0048】
自動化プロジェクトは、開発者が、本明細書において「アクティビティ」として定義される、ワークフローで開発されたカスタムセットのステップ間の実行順序及び関係を制御できるようにすることで、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の1つの商業的な例は、UiPath Studio(商標)である。各アクティビティには、例えばボタンのクリック、ファイルの読み込み、ログパネルへの書き込みなどのアクションが含まれていてもよい。幾つかの実施形態において、ワークフローがネストされ又は埋め込まれてもよい。
【0049】
一部の種類のワークフローには、シーケンス、フローチャート、FSM、及び/又はグローバル例外ハンドラが含まれてもよいが、これらに限定されない。シーケンスは、線形プロセスに特に適している可能性があり、ワークフローを混乱させることなく、あるアクティビティから別のアクティビティへのフローを可能にする。フローチャートは、より複雑なビジネスロジックに特に適している可能性があり、複数の分岐論理演算子によって、より多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している可能性がある。FSMは、実行時に有限数の状態を使用してもよく、それらの状態は、条件(即ち、遷移)又はアクティビティによってトリガされる。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするのに特に適している可能性がある。
【0050】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの実行は、デザイナ110で開発されたワークフローを実行する一又は複数のロボット130を調整するコンダクタ120によって調整される。コンダクタ120の実施形態の1つの商用的な例は、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(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボット130が、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権限を有することができる。
【0055】
幾つかの実施形態において、ロボット130は、ユーザモードでインストールされてもよい。そのようなロボット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にログインされる。このコンダクタ230は、さらにデータベースサーバ240、インデクササーバ250、又はこれらの両方を介して、それらのメッセージを処理する。
図1に関して上記で説明したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0061】
幾つかの実施形態において、ロボットは、マシン名とユーザ名との間の関連付けを表す。ロボットは同時に複数のエグゼキュータを管理してもよい。同時に実行されている複数の対話型セッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され、それぞれが一意のユーザ名を使用する個別のWindows(登録商標)セッションで実行されてもよい。これを上記のHDロボットという。
【0062】
エージェント214はまた、ロボットのステータスを送り(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送り)、実行されるパッケージの必要なバージョンをダウンロードすることも担当する。幾つかの実施形態において、エージェント214とコンダクタ230との間の通信は、常にエージェント214によって開始される。通知シナリオにおいて、エージェント214は、コンダクタ230によって後で使用されるWebSocketチャネルを開き、ロボットにコマンド(例えば、開始、停止など)を送ってもよい。
【0063】
サーバ側では、プレゼンテーション層(ウェブアプリケーション232、Open Data Protocol(オープンデータプロトコル)(OData)Representative State Transfer(リプレゼンタティブステートトランスファー)(REST)Application Programming Interface(アプリケーションプログラミングインタフェース)(API)エンドポイント234、通知・監視236)、サービス層(API実装/ビジネスロジック238)、及び永続層(データベースサーバ240及びインデクササーバ250)が含まれる。コンダクタ230には、ウェブアプリケーション232、OData REST APIエンドポイント234、通知・監視236、及びAPI実装/ビジネスロジック238が含まれる。幾つかの実施形態において、コンダクタ230のインタフェースで(例えば、ブラウザ220を介して)ユーザが実行する殆どのアクションが、様々なAPIを呼び出すことで実行される。このようなアクションには、本発明の範囲から逸脱することなく、ロボットでのジョブの開始、キュー内のデータの追加/削除、操作不要で実行するジョブのスケジューリングなどが含まれてもよいが、これらに限定されない。ウェブアプリケーション232は、サーバプラットフォームのビジュアル層である。このような実施形態において、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)及びJavaScript(JS)を使用する。しかし、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、又は任意の他のフォーマットが使用されてもよい。このような実施形態において、ユーザは、コンダクタ230を制御するための様々なアクションを実行するため、ブラウザ220を介してウェブアプリケーション232からウェブページと対話する。例えば、ユーザは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボット毎に且つ/又はプロセス毎にログを分析し、ロボットを起動、停止させるなどしてもよい。
【0064】
ウェブアプリケーション232に加えて、コンダクタ230には、OData REST APIエンドポイント234を公開するサービス層も含まれる。しかし、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって使用される。このような実施形態において、エージェント214は、クライアントコンピュータ上の一又は複数のロボットのスーパーバイザである。
【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との間の関係300を示すアーキテクチャ図である。上記のとおり、開発者は、デザイナ310を使用して、ロボットによって実行されるワークフローを開発する。ワークフローは、ユーザ定義のアクティビティ320とUI自動化アクティビティ330を含んでもよい。幾つかの実施形態は、本明細書においてコンピュータビジョン(CV)という、画像における非テキストのビジュアルコンポーネントを識別することができる。そのようなコンポーネントに関連する一部のCVアクティビティには、クリック(click)、タイプ(type)、テキストを取得(get text)、ホバー(hover)、要素の有無を検出(element exists)、スコープの更新(refresh scope)、ハイライト(highlight)などが含まれてもよいが、これらに限定されない。幾つかの実施形態において、クリック(click)は、例えば、CV、光学式文字認識(OCR)、ファジーテキストマッチング、複数のアンカーを使用して要素を識別し、クリックする。タイプ(type)は、上記を使用して要素を識別してもよく、要素内でタイプする。テキストを取得(get text)は、特定のテキストの位置を識別し、OCRを使用してスキャンしてもよい。ホバー(hover)は、要素を識別し、その上にホバーしてもよい。要素の有無を検出(element exists)は、上記の技術を使用して、要素が画面上に存在するか否かを確認してもよい。幾つかの実施形態において、デザイナ310で実装可能な数百又は数千ものアクティビティがあってもよい。しかし、本発明の範囲から逸脱することなく、任意の数及び/又は種類のアクティビティが利用可能であってもよい。
【0070】
UI自動化アクティビティ330は、低レベルのコードで書かれた特別な低レベルのアクティビティ(例えば、CVアクティビティなど)のサブセットであり、画面との対話を容易にする。UI自動化アクティビティ330は、ロボットが所望のソフトウェアと対話することを可能にするドライバ340を介して、このような対話を容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0071】
ドライバ340は、低レベルでOSと対話して、フックを探したりキーを監視したりするなどしてもよい。ドライバ340は、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は、本発明の一実施形態による、RPAのためのロボットアクセス制御及びガバナンスを実行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。幾つかの実施形態において、コンピューティングシステム500は、本出願において図示及び/又は説明される一又は複数のコンピューティングシステムであってもよい。コンピューティングシステム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)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、Long Term Evolution(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、Radio Frequency Identification(RFID)、Infrared Data Association(IrDA)、Near-Field Communications(NFC)、第5世代(5G)、New Radio(NR)、これらのうちの任意の組み合わせ、及び/又は任意の他の現在存在する又は将来実施される通信規格及び/又はプロトコルを使用するように構成されてもよい。幾つかの実施形態において、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、フェーズド、スイッチド、ビームフォーミング、ビームステアリング、これらのうちの組み合わせ、及び/又は任意の他のアンテナ構成である一又は複数のアンテナを含んでもよい。
【0077】
プロセッサ510は、バス505を介して、例えばプラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、又はユーザに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに接続される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されてもよい。任意の適切な表示デバイス及び触覚I/Oが、本発明の範囲から逸脱することなく、使用されてもよい。
【0078】
キーボード530と、例えばコンピュータマウス、タッチパッドなどのようなカーソル制御デバイス535とが、さらにバス505に接続されて、ユーザがコンピューティングシステム500とインタフェースをとることを可能にする。しかし、特定の実施形態において、物理的なキーボード及びマウスが存在しなくてもよく、ユーザは、ディスプレイ525及び/又はタッチパッド(図示略)を介してのみデバイスと対話してもよい。入力デバイスの任意の種類及び組み合わせが、設計上の選択事項として使用されてもよい。特定の実施形態において、物理的な入力デバイス及び/又はディスプレイが存在しない。例えば、ユーザは、コンピューティングシステム500と通信する別のコンピューティングシステムを介してリモートでコンピューティングシステム500と対話してもよく、或いは、コンピューティングシステム500は自律的に動作してもよい。
【0079】
メモリ515は、プロセッサ510によって実行されると機能を提供するソフトウェアモジュールを記憶する。該モジュールは、コンピューティングシステム500用のオペレーティングシステム540を含む。モジュールは、本明細書に記載されているプロセス又はその派生のプロセスの全て又は一部を実行するように構成されるロボットアクセス制御及びガバナンスモジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む一又は複数の追加の機能モジュール550を含んでもよい。
【0080】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、任意の他の適切なコンピューティングデバイス、又はデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして示すことは、決して本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を示すことを意図する。実際、本明細書において開示される方法、システム、及び装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合するローカライズされ分散された形式で実装されてもよい。
【0081】
本明細書に記載されているシステム機能の一部は、実装の独立性をより強調するため、モジュールとして示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイを含むハードウェア回路、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体として実装されてもよい。モジュールは、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0082】
モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されたユニットは、例えばオブジェクト、手順、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含んでもよい。これにも関わらず、識別されたモジュールの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に結合されるとモジュールを含んでモジュールの上記目的を達成するような様々な場所に記憶された異種の命令を含んでもよい。さらに、モジュールは、本発明の範囲から逸脱することなく、コンピュータ読み取り可能な媒体に記憶されてもよく、コンピュータ読み取り可能な媒体は、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される他のそのような非一時的なコンピュータ読み取り可能な媒体であってもよい。
【0083】
実際、実行可能コードのモジュールは、単一の命令であっても多数の命令であってもよく、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散されてもよい。同様に、動作データが、識別されて、本明細書においてモジュール内に示されてもよく、任意の適切な形式で具体化され、任意の適切な種類のデータ構造内で構成されてもよい。動作データは、単一のデータセットとしてまとめられてもよく、或いは、異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、単にシステム又はネットワーク上の電子信号として存在してもよい。
【0084】
幾つかの実施形態において、RPAデザイナアプリケーションのためのガバナンス情報は、RPA開発者が編集できないファイルに保存されてもよい。例えば、
図6は、RPAデザイナアプリケーション(この場合、UiPath Studio(商標))用のWindows(登録商標)レジストリエディタ600のフォルダ600のビューを示すスクリーンショットである。パスComputer¥HKEY_CURRENT_USER¥Software¥UiPathの下に、GovernanceSourceという名前のレジストリキー610が設定され(例えば、RPAデザイナアプリケーションがインストールされている場合など)、関連するリンク620を介して利用可能なリモートポリシーファイルを指す。このリンクで利用可能なポリシーは、コンピューティングシステムにのみ読み込まれ、特定の許可を管理するためにRPAデザイナアプリケーション又はRPAロボットによって使用される。このポリシーは、個々のユーザレベル、グループレベル、役割レベル、組織レベルなどで定義されてもよい。リモートリンクを介してポリシーを含めることにより、ポリシーの更新を所望するときにいつでも行うことができ、更新されたポリシーは、PRAロボット及び/又はRPAデザイナアプリケーションを使用することで、自動的にアクセスされるであろう。この例では、ポリシーファイルは、開発プロファイルの様々なポリシーセットを定義する機能を提供する。幾つかの実施形態において、経験豊富なプログラマとプログラミングの知識を有しない可能性がある市民開発者とに対して、異なるポリシーが設定されてもよい。何故なら、これらの開発者は異なるニーズを有する可能性があるためである。開発ユーザ、ビジネスユーザ、StudioProユーザのためのルールを定義するUiPath Studio(商標)のための例示的なポリシーファイルの一部が以下に含まれる。山括弧の部分は、この例で追加のルール又はカウンタが定義可能な場所を示す。
{
"Metadata": {
"Version": "1.0",
},
"Info": {
"Name": "Sample Policy Registry Key"
},
"Profiles": {
"Development": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"SourceControl": {
"CheckInBeforePublish": false
},
"Workflow": {
"DockedAnnotations": true,
"AnalyzeOnPublish": false,
"AnalyzeOnRun": false
},
"PackageManager": {
"AllowAddRemoveFeeds": false,
"AllowEnableDisableFeeds": false,
"AllowOrchestratorFeeds": true,
"Feeds": [
{
"Name": "Local",
"Source": "C:\\Program Files (x86)\\UiPath\\Studio\\Packages",
"IsEnabled": true
},
{
"Name": "Official",
"Source": "https://www.myget.org/F/workflow/",
"IsEnabled": true
},
{
"Name": "Connect",
"Source": "https://gallery.uipath.com/api/v2",
"IsEnabled": true
}
]
},
"Analyzer": {
"AllowEdit": false,
"ReferencedRulesConfigFile": null,
"EmbeddedRulesConfig": {
"Rules": [
{
"Id": "ST-NMG-001",
"IsEnabled": true,
"Parameters": [
{
"Name": "Regex",
"Value": null
}
],
"ErrorLevel": "Off"
},
<ADDITIONAL RULES DEFINED HERE>
],
"Counters": [
{
"Id": "ST-NMG-001",
"IsEnabled": true,
"Parameters": []
},
<ADDITIONAL COUNTERS DEFINED HERE>
]
}
}
},
"Business": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"SourceControl": {
"CheckInBeforePublish": false
},
"Workflow": {
"DockedAnnotations": true,
"AnalyzeOnPublish": false,
"AnalyzeOnRun": false
},
"PackageManager": {
"AllowAddRemoveFeeds": false,
"AllowEnableDisableFeeds": false,
"AllowOrchestratorFeeds": true,
"Feeds": [
{
"Name": "Local",
"Source": "C:\\Program Files (x86)\\UiPath\\Studio\\Packages",
"IsEnabled": true
},
{
"Name": "Official",
"Source": "https://www.myget.org/F/workflow/",
"IsEnabled": true
},
{
"Name": "Connect",
"Source": "https://gallery.uipath.com/api/v2",
"IsEnabled": true
}
]
},
"Analyzer": {
"AllowEdit": false,
"ReferencedRulesConfigFile": null,
"EmbeddedRulesConfig": {
"Rules": [
{
"Id": "ST-NMG-001",
"IsEnabled": true,
"Parameters": [
{
"Name": "Regex",
"Value": null
}
],
"ErrorLevel": "Off"
},
<ADDITIONAL RULES DEFINED HERE>
],
"Counters": [
{
"Id": "ST-NMG-001",
"IsEnabled": true,
"Parameters": []
},
<ADDITIONAL COUNTERS DEFINED HERE>
]
}
}
},
"StudioPro": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"SourceControl": {
"CheckInBeforePublish": false
},
"Workflow": {
"DockedAnnotations": true,
"AnalyzeOnPublish": false,
"AnalyzeOnRun": false
},
"PackageManager": {
"AllowAddRemoveFeeds": false,
"AllowEnableDisableFeeds": false,
"AllowOrchestratorFeeds": true,
"Feeds": [
{
"Name": "Local",
"Source": "C:\\Program Files (x86)\\UiPath\\Studio\\Packages",
"IsEnabled": true
},
{
"Name": "Official",
"Source": "https://www.myget.org/F/workflow/",
"IsEnabled": true
},
{
"Name": "Connect",
"Source": "https://gallery.uipath.com/api/v2",
"IsEnabled": true
}
]
},
"Analyzer": {
"AllowEdit": false,
"ReferencedRulesConfigFile": null,
"EmbeddedRulesConfig": {
"Rules": [
{
"Id": "ST-NMG-001",
"IsEnabled": true,
"Parameters": [
{
"Name": "Regex",
"Value": null
}
],
"ErrorLevel": "Off"
},
<ADDITIONAL RULES DEFINED HERE>
],
"Counters": [
{
"Id": " ST-NMG-001",
"IsEnabled": true,
"Parameters": []
},
<ADDITIONAL RULES DEFINED HERE>
]
}
}
}
}
}
【0085】
ここに示すルール及びカウンタは各ユーザの種類について同じであるが、必ずしもそうである必要はなく、通常は実際の実装ではそうではないであろうことに留意されたい。制御及びガバナンスのポリシールールを含むファイルは、幾つかの実施形態では、レジストリエントリを使用して取得される、特定の実施形態では、ファイル又は他のポリシー情報フォーマットが、コンダクタアプリケーションによって配信されることにも留意されたい。特定の実施形態において、サーバUIは、管理者が、接続を介して(例えば、.jsonペイロードとして)配信されるポリシーを定義することを可能にする。しかし、このポリシーは、幾つかの実施形態において、管理者が明示的に作成する「ファイル」である必要はない。
【0086】
幾つかの実施形態において、カスタムガバナンスのルールは、ワークフローアナライザプロセスの一部として開発されてもよい。例えば、幾つかの実施形態において、RPAデザイナアプリケーションのためのインストールスクリプトが、カスタムガバナンスのルールをユーザのコンピューティングシステムにインストールしてもよい。例えば、ファイルSampleGovernanceRules.dll 710がUiPath Studio(商標)用のRulesフォルダにインストールされているWindows Explorer(登録商標)UIの一部を示す
図7のスクリーンショット700を参照されたい。SampleGovernanceRules.dll 710はProgramFilesフォルダにあるので、管理者のみがそれを変更してもよい。自身のマシンで管理権限を有しないエンドユーザは変更できない。したがって、そのような権限を有しないエンドユーザはガバナンスポリシーを有し、それをオーバーライド又は変更することはできないであろう。
【0087】
図8は、本発明の一実施形態による、パッケージ管理インタフェース800を示すスクリーンショットである。この実施形態では、開発者のためのパッケージフィードがロックダウンされている。詳細には、開発者は公式パッケージフィード810にアクセスできるのみで、開発者は公式パッケージフィード810を有効又は無効にすることはできない。開発者はまた、ユーザ定義パッケージについて名前820又はソース830を入力したり、追加ボタン840を使用してユーザ定義パッケージ追加したり、又は保存ボタン850を使用して変更されたパッケージ設定を保存したりすることができない。これにより、開発者は、組織が望まない場所からアクティビティパッケージを取得できなくなる。
【0088】
開発者が開発中にRPAデザイナアプリケーションのプロバイダに機密情報を漏らす可能性があることを懸念している組織もあるかもしれない。したがって、幾つかの実施形態において、フィードバック送信機能が、ポリシーの問題として、RPAデザイナアプリケーションで無効にされている。例えば、
図9を参照されたい。
図9は、フィードバック送信アイコンが無効で且つメッセージ910がこれが事実であることを示している状態のRPAデザイナアプリケーションの右上部分900を示すスクリーンショットである。
【0089】
図10Aは、本発明の一実施形態による、ワークフローアナライザ設定インタフェース1000を示すスクリーンショットである。幾つかの実施形態において、ワークフローアナライザの設定が、ポリシー構成ファイルから取得される。
図10Aを参照すると、様々なルールが、各々のコード、名前、スコープ、及びデフォルトのアクションを伴いルールペイン1002にリストされている。選択されたルールの特定の設定オプションは、ルール設定ペイン1004に表示される。
【0090】
この実施形態では、4種類のアクセス制限、即ち、アプリケーション/URL制限1010、パッケージ制限1020、アクティビティ制限1030、アクティビティプロパティ要件1040がある。しかし、本発明の範囲を逸脱することなく、任意の数及び/又は種類のアクセス制限が使用されてもよい。アプリ/URL制限1010は、RPAデザイナアプリケーションのユーザがどのアプリケーション及び/又はURLを使用することを許可されている及び/又は許可されていないかを制御する。例えば、
図10Bを参照すると、禁止されているアプリケーションがある場合には、禁止されているアプリケーションは禁止アプリケーションフィールド1012に示され、許可されているアプリケーションは許可アプリケーションフィールド1014に表示される。ユーザが下にスクロールすると、禁止されているURLと許可されているURLとが、各々のフィールドに表示されるであろう。当然、所与のアプリケーション又はURLを禁止(例えば、ブラックリストに登録)し且つ許可(例えば、ホワイトリストに登録)することはできない。特定の実施形態において、許可されているアプリケーションが指定されている場合、ユーザはそのアプリケーションのみ使用できる。この実施形態では、このようなフィールドは読み取り専用である。
【0091】
パッケージ制限1020は、どのパッケージが禁止されるかを制御する。例えば、
図10Cを参照すると、禁止されているパッケージが、禁止パッケージフィールド1022にリストされてもよい。これは、幾つかの実施形態において、組織がユーザによりアクセスできることを望まないパッケージのカテゴリを制限してもよい。特定の実施形態において、許可されているパッケージが、禁止パッケージフィールド1022に加えて又はその代わりにリストされてもよい。この実施形態では、禁止パッケージフィールド1022は読み取り専用である。
【0092】
アクティビティ制限1030は、ユーザがどのアクティビティを使用することを許可されている及び/又は許可されていないかを制御する。例えば、
図10Dを参照すると、禁止されているアクティビティがある場合には、禁止されているアクティビティは禁止アクティビティフィールド1032に表示され、許可されているとしてリストされているアクティビティがある場合には、許可されているアクティビティは許可アクティビティフィールド1034に表示される。したがって、パッケージ全体のレベルでは制限が望まれないが、許可されるべきではない特定のアクティビティがあり且つ/又は特定のアクティビティのみが許可されるべきである場合に、これは、アクティビティ制限1030を介して指定されてもよい。この実施形態では、このようなフィールドは読み取り専用である。
【0093】
幾つかの実施形態において、許可されている及び/又は許可されていないとしてアクティビティが指定されていない場合、これは、デフォルトで全てのアクティビティが許可される。特定の実施形態において、許可又は不許可のみが実施され、その両方は実施されない。例えば、そのような実施形態では、許可されているアクティビティと許可されていないアクティビティとの両方が含まれる場合、許可されているアクティビティを具体的に指定することがより限定的であるとみなされるので、「許可されている」セット(集合)が優先され、許可されていないセットは無視されてもよい。
【0094】
アクティビティプロパティ要件1040を使用することにより、組織は、カスタムルールを定義できる。
図10Aに戻ると、ルール構成フィールド1042は、「Property:
*Draft
*,Activity:
*MailX,Value:True」の値を有する。この例では、UiPath StudioX(商標)においてOutlook(登録商標)を扱うMailXアクティビティについて、Draft(ドラフト)プロパティをTrue(真)に設定する必要がある。他の種類の制限と同様に、ルール構成フィールド1042は、ユーザに対して読み取り専用である。
図10A~
図10Dに示すように、デフォルトのアクションとしてエラーを提供するように設定されているルールがあれば、警告を提供するように設定されているルールもある。
【0095】
図11のスクリーンショットに示すように、RPAデザイナアプリケーション設定インタフェース1100では、RPAワークフロー設計のために様々な設定が実施されてもよい。この場合、ワークフローは、実行前と公開前の両方でワークフローアナライザを通過する必要がある。この実施は、それぞれ設定1110と設定1120で分かる。これは、ワークフローアナライザ設定インタフェース1000でルールとして設定されたガバナンスポリシーについて、ワークフローは、非準拠の場合にエラーをスローするように設定されている全てのルールに準拠する必要があることを意味する。
【0096】
図12A及び
図12Bは、本発明の一実施形態による、RPAワークフロー1200を示すスクリーンショットである。ユーザはリンク1210(ここでは、「https://www.uipath.com/」)でコンテンツを自動化しようとしている。これがワークフローアナライザのルールに基づいて許可されたURLではない場合を考える。また、「save as draft(ドラフトとして保存)」チェックボックス1220が選択されることを要求するルールが存在する場合も考える。ユーザがワークフローを確認(バリデーション)しようとすると、この実施形態では、エラーリストインタフェース1300が表示される。
図13を参照されたい。エラーリストインタフェース1300は、「save as draft(ドラフトとして保存)」プロパティが組織のガイドラインを満たしていないことと、https://www.uipath.com/がUI自動化のために組織によって定義された許可されているアプリケーションではないこととを示す。
【0097】
上記のとおり、幾つかの実施形態において、ポリシーは、ユーザの高度な技術知識に基づいて定義されてもよい。例えば、プログラミング知識を有するRPA開発者によって使用される傾向のあるUiPath Studio(商標)については、任意のレベルのプログラミング知識を有する又はプログラミング知識が不足している個人によって使用される可能性のあるUiPath StudioX(商標)よりも複雑なルールが定義されてもよい。例えば、より高度な技術知識を有する、RPAデザイナアプリケーションのユーザは、より多くのパッケージフィードにアクセスできる、フィードを無効にすることができる、より豊富なルールセットを有するなどしてもよい。
【0098】
図14のワークフローアナライザインタフェース1400を考える。この場合、RPA開発者に対して、カスタムルールを含む豊富なルールセットが提供される。カスタムパッケージバージョン要件ルール1410が実施されている。メールアクティビティ「UiPath.Mail.Activities」は、ルール設定フィールド1412において、最小バージョンが1.6.0、最大バージョンが1.6.0である必要があり、別のバージョンが参照されるとエラーがスローされる。これにより、UiPath.Mail.Activitiesは正確にこのバージョンである必要がある。また、プレリリースパッケージを許可するフィールド1414が「True(真)」に設定されている。
【0099】
上記のとおり、幾つかの実施形態において、ガバナンスは、RPAデザイナアプリケーションのためのインストールスクリプトの一部として有効である。特定の実施形態において、RPAデザイナアプリケーションが常に現在のバージョンのガバナンスポリシーを有するように、登録キーを介してリモートポリシーファイルが設定されてもよい。或いは、ポリシーファイルは、RPAデザイナアプリケーションが存在するローカルコンピューティングシステム上の保護された場所にあってもよい。幾つかの実施形態において、カスタムルールは、インストールスクリプトの一部として、保護された「ルール」フォルダにデプロイされる。
【0100】
幾つかの実施形態において、技術に精通したユーザとプログラミングの知識が十分でないユーザとには、別個のポリシーが適用されてもよい。特定の実施形態において、所与のユーザ、ユーザの役割、ユーザのグループなどに基づいて、異なるポリシーが適用される。幾つかの実施形態において、ユーザは、非準拠のRPAワークフローを実行又は公開できない。
【0101】
図15は、本発明の一実施形態による、ロボット実行時にRPAのためのアクセス制御及びガバナンスを実行するためのシステム1500を示すアーキテクチャ図である。システム1500は、例えばデスクトップコンピュータ1502、タブレット1504、スマートフォン1506などのユーザコンピューティングシステムを備える。しかし、本発明の範囲を逸脱することなく、スマートウォッチ、ラップトップコンピュータ、モノのインターネット(IoT)デバイス、車両コンピューティングシステムなどを含むがこれらに限定されない、任意の所望のコンピューティングシステムが使用されてもよい。
【0102】
各コンピューティングシステム1502、1504、1506は、一又は複数の自動化を実行する、コンピューティングシステム上で実行されるRPAロボット1510を有する。しかし、特定の実施形態において、コンピューティングシステム1502、1504、1506は、異なるロボットを実行してもよい。RPAロボットは、そのプロセスを実行するとき、ネットワーク1520(例えば、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、これらのうちの任意の組み合わせなど)を介して、サーバ1530からの特定の情報を要求する(例えば、サーバ1530で実行されるコンダクタアプリケーションに要求を送る)。例えば、RPAロボット1510は、サーバ1530と通信して、データを送受信し(例えば、データキューからプッシュ/プルする)、安全に格納されている資格情報/アセット情報(例えば、ユーザ名/パスワード、アクセストークンなど)を取得し、アクティビティからの情報(例えば、実行ログなど)をログに記録し、「ハートビートステータス」(例えば、RPAロボット1510が正しく実行されていることなど)を報告し、「オーケストレーションコマンド」(例えば、「これを実行」、「実行の中止/キャンセル」など)をチェックし、又は本発明の範囲から逸脱することのなく任意の他の適切な通信を行ってもよい。幾つかの実施形態において、サーバ1530はコンダクタアプリケーションを実行させてもよく、データがハートビートメッセージの一部として定期的に送られてもよい。サーバ1530は、一又は複数のファイル1532、データベース1540、又はその両方から、所与のロボットのためのアクセス制御及びガバナンスのルールを取得する。
【0103】
サーバ1530は、ロボット1510によって実行されるアクション及び/又はRPAロボットによって要求された情報を、アクセス制御及びガバナンスのルールに照らしてチェックする。ロボット1510がアクションを実行する又は情報を取得することを許可されている場合、サーバ1530は、要求された情報をロボット1510に提供し、且つ/又は、アクションが許容可能であることを示す情報を各自のコンピューティングシステム上の確認(バリデーション)アプリケーションに送る。許可されていない場合、サーバ1530は、要求された情報をロボット1510に提供せず、且つ/又は、ロボット1510によって試みられたアクションが許容可能でないことを示す情報を各自のコンピューティングシステム上の確認アプリケーションに送る。特定の実施形態において、確認アプリケーションは、ロボット1510に関連するプロセスを終了してもよい。
【0104】
幾つかの実施形態において、許可されていないアクションは、RPAロボットではなく、人間のユーザに許可されているアクションであってもよい。特定の実施形態において、サーバ1530は、ロボット1510が一又は複数のレガシーシステムにとって十分長く一時停止することを確認し、遅延時間が満了するまで、ロボットによって要求された情報の取得又はロボットからの新しい情報の要求の受け入れを遅らせてもよい。特定の実施形態において、ガバナンスは、設計時の実施に加えて、実行時に実施される。幾つかの実施形態において、コンピューティングシステム1502、1504、1506が、例えば、サーバ1530のサーバ側のコンダクタアプリケーションに接続するときに、ポリシーがコンピューティングシステム1502、1504、1506に自動的に送られてもよい。幾つかの実施形態において、RPAデザイナアプリケーションは、RPAロボットにこのようなポリシーを取得させ且つそのポリシーに準拠して動作させるコードを、RPAロボットに自動的に挿入してもよい。
【0105】
図16は、本発明の一実施形態による、RPAデザイナアプリケーション用のロボットアクセス制御及びガバナンスを実行するプロセス1600を示すフローチャートである。
該プロセスは、1605でコンピューティングシステムのレジストリエントリからアクセス制御及びガバナンスのポリシールールを含むファイルへのリンクを判断し、1610で判断されたリンクを使用してファイルをダウンロードすることから始まる。幾つかの実施形態において、アクセス制御及びガバナンスのポリシールールは、RPAデザイナアプリケーションのインストールスクリプトを介して実施される。1615で、ワークフローアナライザは、ファイルからRPAデザイナアプリケーションのアクセス制御及びガバナンスのポリシールールを読み込む。
【0106】
幾つかの実施形態において、アクセス制御及びガバナンスのポリシールールには、どのアプリケーション及び/又はURLが自動化可能か及び/又は自動化可能でないかの制御、どのアクティビティがRPAワークフローで使用可能か及び/又は使用可能でないかの制御、どのパッケージがRPAワークフローのために使用可能か及び/又は使用可能でないかの制御、又はこれらのうちの組み合わせが含まれる。特定の実施形態において、アクセス制御及びガバナンスのポリシールールは、組織、役割、グループ、個々の開発者、又はこれらのうちの組み合わせに基づいて、RPAデザイナアプリケーションについて定義される。幾つかの実施形態において、アクセス制御及びガバナンスのポリシールールは、RPAデザイナアプリケーションが実行されるコンピューティングシステムのオペレーティングシステムによって実施されるようにRPAデザイナアプリケーションのユーザによって変更することができない。特定の実施形態において、アクセス制御及びガバナンスのポリシールールには、一又は複数のアプリケーション及び/又はURL制限、一又は複数のパッケージ制限、一又は複数のアクティビティ制限、一又は複数のアクティビティプロパティ要件、或いはこれらのうちの組み合わせが含まれる。
【0107】
幾つかの実施形態において、1620で、様々なインタフェースが表示されてもよく、許可されていないユーザの変更を防止してもよい。例えば、RPAワークフローのアクティビティによってアクセス可能なパッケージを含むパッケージ管理インタフェースが表示されてもよく、アクセス制御及びガバナンスのポリシールールに基づいて、RPAデザイナアプリケーションのユーザが許可されているパッケージを変更する又は許可されていない新しいパッケージを追加することを防止してもよい。別の一例として、アクセス制御及びガバナンスのポリシールールをリストするワークフローアナライザ設定インタフェースが表示されてもよく、RPAデザイナアプリケーションのユーザがアクセス制御及びガバナンスのポリシールールを変更することを防止してもよい。
【0108】
1625で、RPAデザイナアプリケーションのRPAワークフローのアクティビティは、アクセス制御及びガバナンスのポリシールールに照らして分析される。幾つかの実施形態において、RPAワークフローのアクティビティの分析は、RPAワークフローにおいてアクセスされる一又は複数のライブラリがホワイトリストに含まれるか又はブラックリストに含まれないかについての確認を含む。1630で確認が成功した場合(即ち、RPAワークフローアクティビティが全ての要求されるアクセス制御及びガバナンスのポリシールールに準拠している場合)、1635で、RPAワークフローを実行するRPAロボットが生成される、又は、RPAワークフローが公開される。しかし、1630で確認が失敗した場合(即ち、RPAワークフローの一又は複数の分析されたアクティビティがアクセス制御及びガバナンスのポリシールールに違反する場合)、RPAワークフローがアクセス制御及びガバナンスのポリシールールを満たすまで、RPAロボットの生成又はRPAワークフローの公開が防止される。この実施形態では、1640で、RPAワークフローアナライザ/RPAデザイナアプリケーションは、ユーザがRPAワークフローに変更を加えるのを待つ。次に、プロセスは、ステップ1625に戻り、RPAワークフローの変更されたアクティビティを分析する。幾つかの実施形態において、変更されたアクティビティのみが再び分析される。
【0109】
図17は、本発明の一実施形態による、実行中のRPAロボット用の、RPAのためのロボットアクセス制御及びガバナンスを実行するプロセス1700を示すフローチャートである。該プロセスは、1710で、RPAロボットによって実行されるアクション及び/又はRPAロボットによって要求された情報をアクセス制御及びガバナンスのルールに照らしてチェックすることから始まる。このチェックは、例えば、クライアント側又はサーバ側の確認アプリケーションによって実行されてもよい。1720で、RPAロボットがアクションの実行及び/又は情報の取得を許可されている場合、1730で、要求された情報がRPAロボットに提供され、且つ/又は、アクションが承認される。その後、1740で、次のRPAロボット通信が受け取られるまで、確認アプリケーションは待機する。
【0110】
1720で、RPAロボットがアクションの実行及び/又は情報の取得を許可されていない場合、1750で、確認アプリケーションは、RPAロボットが情報を取得すること及び/又はアクションを実行することを防止する。幾つかの実施形態において、1760で、情報へのアクセス及び/又はアクションが許可されていないという通知がRPAロボットに送られてもよい。特定の実施形態において、1770で、確認アプリケーションは、(例えば、RPAロボットに関連するプロセスを終了することで)RPAロボットの実行を自動的に終了してもよい。
【0111】
幾つかの実施形態において、許可されていないアクションは、RPAロボットではなく、人間のユーザに許可されているアクションであってもよい。特定の実施形態において、確認アプリケーションは、RPAロボットが一又は複数のレガシーシステムにとって十分長く一時停止することを確認し、遅延時間が満了するまで、RPAロボットによって要求された情報の取得又はRPAロボットからの新しい情報の要求の受け入れを遅らせてもよい。
【0112】
図16、
図17で実行されるプロセスステップは、本発明の実施形態に従って、コンピュータプログラムによって実行されて、
図16、
図17に記載されているプロセスの少なくとも一部をプロセッサが実行するための命令を符号化してもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、及び/又はデータを記憶するために使用される任意の他のそのような媒体又は媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、
図16、
図17に記載されたプロセスステップの全て又は一部を実施するようにコンピューティングシステムのプロセッサ(例えば、
図5のコンピューティングシステム500のプロセッサ510など)を制御するための符号化された命令を含んでもよく、これもまた、コンピュータ読み取り可能な媒体に記憶されてもよい。
【0113】
コンピュータプログラムは、ハードウェア、ソフトウェア、又はハイブリッド実装で実装されてもよい。コンピュータプログラムは、互いに動作可能に通信し、表示する情報又は命令を渡すように設計されたモジュールで構成されてもよい。コンピュータプログラムは、汎用コンピュータ、ASIC、又は任意の他の適切なデバイスで動作するように構成されてもよい。
【0114】
本発明の様々な実施形態の構成要素は、本願の図面で一般的に記載され示されているように、多種多様な異なる構成で配置、設計されてもよいことは容易に理解されるであろう。したがって、添付の図面に表されている本発明の実施形態の詳細な説明は、クレームされている本発明の範囲を限定することを意図しておらず、単に本発明の選択された実施形態を表すものである。
【0115】
本明細書全体を通して説明される本発明の特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。例えば、本明細書全体を通して「特定の実施形態」、「幾つかの実施形態」、又は類似の文言への言及は、実施形態に関連して説明される特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して「特定の実施形態において」、「幾つかの実施形態において」、「他の実施形態において」という語句、又は同様の文言の出現は、必ずしも全て同じ実施形態のグループを指すとは限らず、説明された特徴、構造、又は特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。
【0116】
本明細書全体を通して特徴、利点、又は同様の文言への言及は、本発明で実現され得る特徴及び利点の全てが本発明の任意の単一の実施形態であるか或いはそれに含まれることを意味しないことに留意されたい。むしろ、特徴及び利点に言及する文言は、実施形態に関連して説明される特定の特徴、利点、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体を通して特徴、利点、及び類似の文言の説明は、必ずしもそうではないが、同じ実施形態を指してもよい。
【0117】
さらに、本発明の説明された特徴、利点、及び特性は、一又は複数の実施形態において任意の適切な方法で組み合わせられてもよい。当業者は、特定の実施形態の特定の特徴又は利点のうちの一又は複数がなくても本発明を実施できることを認識するであろう。他の例において、本発明の全ての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴及び利点が認識されてもよい。
【0118】
当業者は、上記の本発明が異なる順序のステップで、及び/又は開示されているものとは異なる構成のハードウェア要素で実施されてもよいことを容易に理解するであろう。したがって、本発明をこのような好ましい実施形態に基づいて説明してきたが、本発明の主旨及び範囲内にありながら、特定の修正、変形、及び代替構造が明らかであることは当業者には明らかであろう。したがって、本発明の境界及び範囲を決定するために、添付の特許請求の範囲を参照されたい。
【国際調査報告】