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

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

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

特表2023-517150ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理
<>
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図1A
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図1B
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図1C
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図2
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図3
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図4
  • 特表-ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-24
(54)【発明の名称】ロボティックプロセスオートメーション(RPA)のためのインプロセストリガ管理
(51)【国際特許分類】
   G06F 11/30 20060101AFI20230417BHJP
   G06F 9/445 20180101ALI20230417BHJP
【FI】
G06F11/30 155
G06F9/445
G06F11/30 140D
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021517960
(86)(22)【出願日】2021-03-12
(85)【翻訳文提出日】2021-06-08
(86)【国際出願番号】 US2021022042
(87)【国際公開番号】W WO2021188368
(87)【国際公開日】2021-09-23
(31)【優先権主張番号】16/821,489
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.FLASH
3.JAVASCRIPT
4.ZIGBEE
5.BLUETOOTH
6.ウィンドウズ
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ブランドン ノット
(72)【発明者】
【氏名】ジャスティン マークス
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042JJ17
5B376AE51
5B376FA11
5B376GA13
(57)【要約】
コンピューティングデバイスは、ロボット自動化プロセスに関して、トリガに関連するイベント又はアクティビティを監視し得る。トリガは、コード、定義ファイル、又は構成ファイルによって定義され得る。トリガに関連するイベント又はアクティビティについて適合が識別され得る。コンピューティングデバイスは、トリガが識別されたという条件で、ロボット自動化プロセス中にプロセスを開始するようロボットエグゼキュータに指示し得る。

【特許請求の範囲】
【請求項1】
アプリケーションのロボット自動化プロセスを実行するように構成されたメモリ及びプロセッサを備え、
前記プロセッサはさらに、前記ロボット自動化プロセスに関して、トリガに関連するイベント又はアクティビティを監視するように構成され、
前記トリガは、コード、定義ファイル、又は構成ファイルによって定義され、
前記プロセッサはさらに、前記トリガに関連するイベント又はアクティビティについて適合を識別し、
前記プロセッサはさらに、前記トリガが識別されたという条件で、前記ロボット自動化プロセス中にプロセスを開始するようロボットエグゼキュータに指示するように構成されていることを特徴とするコンピューティングデバイス。
【請求項2】
前記コード、前記定義ファイル、又は前記構成ファイルは、前記トリガのルール又は要素を定義することを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記プロセスは、前記トリガに関連する複数のプロセスのリストであることを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項4】
前記トリガは、前記ロボット自動化プロセス中、タイムポイント、フローポイント、又はシーケンスポイントに関連付けられることを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項5】
前記トリガに関連するユーザインタフェース(UI)要素が、前記プロセスに関連してマップ又は構成されることを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記適合は、前記アプリケーションのユーザインタフェース(UI)要素の適合を含むことを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記ロボット自動化プロセスに関連して前記ロボットエグゼキュータの要求を管理するように構成されたキューをさらに備えることを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記イベント又は前記アクティビティは、マウスクリック、キーボードイベント、画像クリック、タッチ入力、プロセスの開始、プロセスの停止、ファイルの変更、フォルダの変更、ユニバーサルリソースロケータ(URL)入力、ナビゲーション入力、リプレイイベント、望ましくないオンラインユーザナビゲーション、望ましいユーザナビゲーション、外部トリガ、別のシステムでのイベントのうちいずれかであることを特徴とする、請求項1に記載のコンピューティングデバイス。
【請求項9】
コンピューティングデバイスによって実行される方法であって、
前記方法は、
アプリケーションのロボット自動化プロセスを実行することと、
前記ロボット自動化プロセスに関して、トリガに関連するイベント又はアクティビティを監視することと、
前記トリガに関連するイベント又はアクティビティについて適合を識別することと、
前記トリガが識別されたという条件で、前記ロボット自動化プロセス中にプロセスを開始するようロボットエグゼキュータに指示することと、
を含み、
前記トリガは、コード、定義ファイル、又は構成ファイルによって定義されることを特徴とする方法。
【請求項10】
前記コード、前記定義ファイル、又は前記構成ファイルは、前記トリガのルール又は要素を定義することを特徴とする、請求項9に記載の方法。
【請求項11】
前記プロセスは、前記トリガに関連する複数のプロセスのリストであることを特徴とする、請求項9に記載の方法。
【請求項12】
前記トリガは、前記ロボット自動化プロセス中、タイムポイント、フローポイント、又はシーケンスポイントに関連付けられることを特徴とする、請求項9に記載の方法。
【請求項13】
前記トリガに関連するユーザインタフェース(UI)要素が、前記プロセスに関連してマップ又は構成されることを特徴とする、請求項9に記載の方法。
【請求項14】
前記適合は、前記アプリケーションのユーザインタフェース(UI)要素の適合を含むことを特徴とする、請求項9に記載の方法。
【請求項15】
前記方法は、前記ロボット自動化プロセスに関連して前記ロボットエグゼキュータの要求をキューによって管理することをさらに含むことを特徴とする、請求項9に記載の方法。
【請求項16】
前記イベント又は前記アクティビティは、マウスクリック、キーボードイベント、画像クリック、タッチ入力、プロセスの開始、プロセスの停止、ファイルの変更、フォルダの変更、ユニバーサルリソースロケータ(URL)入力、ナビゲーション入力、リプレイイベント、望ましくないオンラインユーザナビゲーション、望ましいユーザナビゲーション、外部トリガ、別のシステムでのイベントのうちいずれかであることを特徴とする、請求項9に記載の方法。
【請求項17】
アプリケーションのロボット自動化プロセスを実行するように構成されたメモリ及びプロセッサを備え、
前記プロセッサはさらに、前記ロボット自動化プロセスに関して、トリガに関連するアクティビティを監視するように構成され、
前記トリガは、構成ファイルによって定義され、
前記プロセッサはさらに、前記トリガに関連するアクティビティについて適合を識別し、
前記プロセッサはさらに、前記トリガが識別されたという条件で、前記ロボット自動化プロセス中にプロセスを開始するよう複数のロボットエグゼキュータに指示するように構成されていることを特徴とするコンピューティングデバイス。
【請求項18】
前記ロボット自動化プロセスに関連して前記複数のロボットエグゼキュータの要求を管理するように構成されたキューをさらに備えることを特徴とする、請求項17に記載のコンピューティングデバイス。
【請求項19】
前記プロセスは、前記トリガに関連する複数のプロセスのリストであることを特徴とする、請求項17に記載のコンピューティングデバイス。
【請求項20】
前記トリガは、前記ロボット自動化プロセス中、タイムポイント、フローポイント、又はシーケンスポイントに関連付けられることを特徴とする、請求項17に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年3月17日に出願された米国特許出願番号16/821,489の利益を主張し、その内容が参照により本明細書に組み込まれる。
【背景技術】
【0002】
ロボティックプロセスオートメーション(RPA)は、エンタープライズプラットフォーム、仮想マシン(VM)、リモートデスクトップ、クラウド上のアプリケーション、デスクトップアプリケーション、モバイルアプリケーションなどの動作、機能、コンポーネント、タスク、又はワークフローを自動化し得る。例えばアテンディッド(操作要)ロボットなどのロボットを使用するRPAデプロイメントでは、トリガにより、ソフトウェア又はアプリケーションがユーザイベント、システムイベント、ファイルに対する変更、別のシステムでの外部イベントなどに応答することを可能にし得る。トリガは、アプリケーションのためのプロセス、イベント、又はアクティビティを開始するために、RPAプロセス若しくはRPAパッケージに関連して又はそのコンテキスト内で、利用、ロード、実行、使用、又は遂行され得る。
【0003】
ローカルマシン、クライアントデバイス、オペレーティングシステムトレイ、コンピューティングデバイスなどで多数のトリガがアクティブになると、かなりのリソースが消費される可能性がある。単一プロセス、同時プロセス、並列プロセスなどを含む、プロセスにおいて一又は複数のトリガを使用する構成では、RPAデプロイメントについてのオーバーヘッドを管理又は削減することが大規模に望まれる。
【発明の概要】
【0004】
トリガは、アプリケーションのロボット自動化に関連して、プロセス、パッケージ、ワークフローなどの内部で、その間に、又はそれにおいて、自動的に実行又は遂行するように構成され得る。ロボットは、プロセスにおけるトリガイベント又はアクティビティについて監視(モニタ)又はリッスンし得る。トリガの適合が識別(確認)されると、識別されたトリガに関連するプロセスが開始又は実行され得る。さらに、ロボティックプロセスオートメーション(RPA)ロボットは、トリガ又は関連するアクション若しくはアクティビティに基づいて、登録、実行、キューイング、ローカル編集、優先度付けなどを行うことができる。
【図面の簡単な説明】
【0005】
より詳細な理解が、添付の図面と併せて例として与えられる以下の説明から得られる。図中の同様の参照番号は、同様の要素を示す。
【0006】
図1A】ロボティックプロセスオートメーション(RPA)の開発、設計、動作、又は実行を示す図である。
【0007】
図1B】RPAの開発、設計、動作、又は実行を示す別の図である。
【0008】
図1C】コンピューティングシステム又は環境を示す図である。
【0009】
図1A】ロボティックプロセスオートメーション(RPA)の開発、設計、動作、又は実行を示す図である。
【0010】
図2】インプロセストリガの監視、リスニング、又は管理の一例を示す図である。
【0011】
図3】ロボットについてのプロセスキュー管理の一例を示す図である。
【0012】
図4】インプロセストリガの監視又はリスニングの一例を示す別の図である。
【0013】
図5】インプロセストリガについてのプロセスの一例を示す図である。
【発明を実施するための形態】
【0014】
本明細書に記載の方法及びプロセスについて、記載されるステップは、任意の順序で順不同で実行され、明示的に説明されていない又は示されていないサブステップを実行し得る。さらに、「結合された」又は「動作可能に結合された」は、オブジェクトがリンクされているが、リンクされたオブジェクト間にゼロ又はそれ以上の中間オブジェクトを有し得ることを意味し得る。また、開示された特徴/要素の任意の組み合わせが、一又は複数の実施形態において使用され得る。「A又はB」への言及を使用する場合、A、B、又はA及びBを含み、より長いリストと同様に拡張され得る。X/Yとの表記を使用する場合は、X又はYを含み得る。或いは、X/Yとの表記を使用する場合は、X及びYを含み得る。X/Yとの表記は、同じ説明ロジックを有する長いリストと同様に拡張され得る。
【0015】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、動作、又は実行100を示す図である。デザイナ102は、スタジオ、開発プラットフォーム、開発環境などともいい、ロボットが一又は複数のワークフローを実行又は自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る、選択されたものから、ロボットは、ユーザ又はオペレータによって選択されたビジュアルディスプレイ(視覚表示)の領域の代表データを決定し得る。RPAの一部として、例えば正方形、矩形、円、多角形、フリーフォームなどの複数次元の形状が、コンピュータビジョン(CV)動作又は機械学習(ML)モデルに関連するユーザインタフェース(UI)ロボットの開発とランタイム(実行)に利用され得る。
【0016】
ワークフローによって達成され得る動作の非限定的な例は、ログインの実行、フォームへの記入、情報技術(IT)管理などのうち一又は複数であり得る。UI自動化のためのワークフローを実行するために、ロボットは、アプリケーションアクセス又はアプリケーション開発に関係なく、例えばボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に識別する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能マークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどがあり得る。
【0017】
ワークフローには、タスクシーケンス、フローチャート、有限状態機械(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、一又は複数のアプリケーション又はウィンドウ間で線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを処理するように構成され、複数の分岐論理演算子によってより多様な方法で決定の統合及びアクティビティの接続を可能にする。FSMは、大規模なワークフローのために構成され得る。FSMは、実行時に有限数の状態を使用し、それらの状態は、条件、遷移、アクティビティなどによってトリガされ得る。グローバル例外ハンドラは、実行エラーが発生したときのワークフローの振る舞いを決定したり、プロセスをデバッグしたりするために構成され得る。
【0018】
ロボットは、基礎となるオペレーティングシステム(OS)又はハードウェアに対して透過的なUIを自動化し得るアプリケーション、アプレット、スクリプトなどである。デプロイメント時に、一又は複数のロボットは、コンダクタ104(オーケストレータという場合もある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリケーション、ブラウザなどのクライアント、アプリケーション、又はプログラムにおいてワークフローを実行又は監視(モニタ)するようにロボット又は自動化のエグゼキュータ106に指示又は命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するように複数のロボットに指示又は命令するための中心点(ポイント)又は半中心点(ポイント)として機能し得る。
【0019】
特定の構成において、コンダクタ104は、プロビジョニング、デプロイメント、コンフィギュレーション、キューイング、監視(モニタリング)、ロギング、及び/又は相互接続性を提供するように構成され得る。プロビジョニングには、ロボット又は自動化のエグゼキュータ106とコンダクタ104との間の接続又は通信の作成及び保守が含まれ得る。デプロイメントには、実行のために割り当てられたロボットへのパッケージバージョンの配信の保証が含まれ得る。コンフィギュレーションには、ロボット環境及びプロセスコンフィギュレーションの保守及び配信が含まれ得る。キューイングには、キュー及びキューアイテムの管理の提供が含まれ得る。監視には、ロボット識別データの追跡及びユーザ権限の維持が含まれ得る。ロギングには、データベース(例えば、SQLデータベースなど)及び/又は別のストレージメカニズム(例えば、大規模なデータセットを保存してすばやくクエリする機能を提供する、ElasticSearch(登録商標)など)へのログの記憶及びインデックス付けが含まれ得る。コンダクタ104は、サードパーティ(第三者)のソリューション及び/又はアプリケーションのための通信の集中ポイントとして機能することで、相互接続性を提供し得る。
【0020】
ロボット又は自動化のエグゼキュータ106は、アンアテンディッド(操作不要)108又はアテンディッド(操作要)110として構成され得る。アンアテンディッド108動作の場合、自動化は、サードパーティの入力又は制御なしで実行され得る。アテンディッド110動作の場合、自動化は、サードパーティコンポーネントから入力、コマンド、命令、ガイダンスなどを受け取ることで実行され得る。アンアテンディッド108又はアテンディッド110のロボットは、モバイルコンピューティング又はモバイルデバイス環境で実行又は遂行され得る。
【0021】
ロボット又は自動化のエグゼキュータ106は、デザイナ102に組み込まれたワークフローを実行する実行エージェントであり得る。UI又はソフトウェアの自動化のためのロボットの1つの商業的な例は、UiPath Robots(商標)である。幾つかの実施形態において、ロボット又は自動化のエグゼキュータ106は、デフォルトで、Microsoft Windows(登録商標)サービスコントロールマネージャー(SCM)が管理するサービスをインストールする。その結果、そのようなロボットは、ローカルシステムアカウントでインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権限を有する。
【0022】
幾つかの実施形態において、ロボット又は自動化のエグゼキュータ106は、ユーザモードでインストールされ得る。そのようなロボットは、ユーザのもとで所与のロボットがインストールされて、そのユーザと同じ権限を有し得る。この機能は、高密度(HD)ロボットでも利用可能であり得、HD環境などにおいて最大の性能で各マシン最大限の活用を確実にし得る。
【0023】
特定の構成において、ロボット又は自動化のエグゼキュータ106は、各々が特定の自動化タスク又はアクティビティ専用である幾つかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理のロボットサービス、ユーザモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれる。SCM管理のロボットサービスは、Windows(登録商標)セッションを管理又は監視し、コンダクタ104と実行ホスト(即ち、ロボット又は自動化のエグゼキュータ106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。このようなサービスは、ロボット又は自動化のエグゼキュータ106の資格情報を託され、これを管理し得る。
【0024】
ユーザモードロボットサービスは、Windows(登録商標)セッションを管理、監視し、コンダクタ104と実行ホストとの間のプロキシとして機能し得る。ユーザモードロボットサービスは、ロボットの資格情報を託され、これを管理し得る。SCM管理のロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動されてもよい。
【0025】
エグゼキュータは、Windows(登録商標)セッションで所与のジョブを実行し得る(即ち、エグゼキュータは、ワークフローを実行し得る)。エグゼキュータは、モニタ毎のドット/インチ(DPI)設定を認識してもよい。エージェントは、システムトレイウィンドウに使用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、このサービスのクライアントであってもよい。エージェントは、ジョブの開始又は停止を要求し、設定を変更し得る。コマンドラインは、このサービスのクライアントであってもよい。コマンドラインは、ジョブの開始を要求可能なコンソールアプリケーションであり、その出力を待つ。
【0026】
上記で説明したようにロボット又は自動化のエグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザ、及びコンピューティングシステムが各コンポーネントによる実行をより容易に実行、識別、及び追跡するのに役立つ。例えばエグゼキュータとサービスに異なるファイアウォールルールを設定するなど、この方法でコンポーネント毎に特別な振る舞いが構成されてもよい。幾つかの実施形態において、エグゼキュータは、モニタ毎のDPI設定を認識してもよい。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、任意のDPIで実行されてもよい。デザイナ102からのプロジェクトはまた、ブラウザのズームレベルから独立していてもよい。DPIを認識しない又は意図的に認識しないとマークされているアプリケーションの場合、幾つかの実施形態においてDPIが無効にされてもよい。
【0027】
図1Bは、RPAの開発、設計、動作、又は実行120を示す別の図である。スタジオコンポーネント又はモジュール122が、ロボットが一又は複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザインタフェース(UI)自動化126が、一又は複数のドライバコンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュール又はエンジン130を使用してアクティビティを実行し得る。他のドライバ132が、ロボットによるUI自動化のために利用され、UIの要素を取得し得る。そのようなドライバには、OSドライバ、ブラウザードライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成において、CVアクティビティモジュール又はエンジン130は、UI自動化に使用されるドライバであり得る。
【0028】
図1Cは、情報又はデータを通信するためのバス142又は他の通信メカニズムと、処理のためにバス142に接続された一又は複数のプロセッサ144を含み得るコンピューティングシステム又は環境140を示す図である。一又は複数のプロセッサ144は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセシングユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、又はこれらのうちの任意の組み合わせを含む、任意の種類の汎用又は特定用途向けのプロセッサであり得る。一又は複数のプロセッサ144はまた、複数の処理コアを有してもよく、コアの少なくとも一部が、特定の機能を実行するように構成されてもよい。複数の並列処理が構成されてもよい。さらに、少なくとも一又は複数のプロセッサ144は、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。
【0029】
メモリ146は、プロセッサ144によって実行又は処理される情報、命令、コマンド、又はデータを記憶するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスク若しくは光ディスクなどの静的記憶装置、又は任意の他の種類の非一時的なコンピュータ読み取り可能な媒体、又はこれらのうちの任意の組み合わせからなる。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ144によってアクセス可能な任意の媒体であり、揮発性媒体、不揮発性媒体などを含み得る。媒体はまた、取り外し可能、取り外し不可能などであり得る。
【0030】
通信装置148は、周波数分割多元接続(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)、又は一又は複数のアンテナを介した通信用の任意の他の無線又は有線のデバイス/トランシーバとして構成され得る。アンテナは、単一、アレイ、フェーズド、スイッチド、ビームフォーミング、ビームステアリングなどであり得る。
【0031】
一又は複数のプロセッサ144は、バス142を介してディスプレイデバイス150にさらに接続され得る。ディスプレイデバイス150は、例えば、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高解像度(HD)ディスプレイ、Retina(著作権)ディスプレイ、インプレーンスイッチング(IPS)などがベースのディスプレイである。ディスプレイデバイス150は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射など、当業者によって理解されるような入出力(I/O)のためのものを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、又はマルチタッチディスプレイとして構成され得る。
【0032】
キーボード152と、例えばコンピュータマウス、タッチパッドなどの制御デバイス154とが、コンピューティングシステム又は環境140への入力のためにバス142にさらに接続され得る。さらに、入力は、コンピューティングシステム又は環境140に、それと通信している別のコンピューティングシステムを介してリモートで提供されてもよく、或いは、コンピューティングシステム又は環境140は自律的に動作してもよい。
【0033】
メモリ146は、一又は複数のプロセッサ144によって実行又は処理されると機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを記憶し得る。これは、コンピューティングシステム又は環境140用のOS156を含み得る。モジュールは、カスタムモジュール158をさらに含み、アプリケーション特有のプロセス又はその派生のプロセスを実行し得る。コンピューティングシステム又は環境140は、追加の機能を含む一又は複数の追加の機能モジュール160を含み得る。
【0034】
コンピューティングシステム又は環境140は、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして機能するように適応又は構成され得る。
【0035】
本明細書で与えられる例では、モジュールは、カスタムの超大規模集積(VLSI)回路又はゲートアレイ、ロジックチップ、トランジスタ、又は他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装され得る。モジュールはまた、例えばフィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0036】
モジュールは、様々な種類のプロセッサによる実行のため、ソフトウェアで少なくとも部分的に実装されてもよい。実行可能コードの識別されたユニットは、例えば、オブジェクト、手順、ルーチン、サブルーチン、又は機能として構成され得るコンピュータ命令の一又は複数の物理ブロック又は論理ブロックを含み得る。識別されたモジュールの実行可能ファイルは、論理的に結合されるとモジュールを構成するように、同じ場所に配置又は異なる場所に記憶され得る。
【0037】
実行可能コードのモジュールは、単一の命令、一又は複数のデータ構造、一又は複数のデータセット、複数の命令などであり、異なるプログラム間で複数の異なるコードセグメントにわたり、複数のメモリデバイスにわたって分散され得る。動作データ又は機能データは、本明細書においてモジュール内で識別され、示され、適切な形式で具体化されて任意の適切な種類のデータ構造内に構成されてもよい。
【0038】
本明細書で与えられる例では、コンピュータプログラムは、ハードウェア、ソフトウェア、又はハイブリッド実装で構成され得る。コンピュータプログラムは、互いに動作可能に通信し、情報又は命令を渡すためのモジュールで構成され得る。
【0039】
本明細書で与えられる実施形態では、アプリケーションのロボット自動化プロセスが実行され得る。ロボット自動化プロセス内の又はロボット自動化プロセスに関連するコンポーネント又はービスは、システムトレイで実行されているロボット自動化プロセス又はアテンディッドロボットに関連するイベント又はアクティビティのトリガをリッスン又は監視し得る。特定の実施形態において、トリガは、定義ファイル又は構成ファイルにおけるルール又は要素を使用して定義され得る。コンポーネント又はサービスは、トリガに関連して、条件、パターン、シーケンスなどの一致を識別し得る。トリガが識別されると、ロボットエグゼキュータは、ロボット自動化プロセスの間にプロセス又はサブプロセスを開始するように指示され得る。
【0040】
一又は複数のトリガイベントが、ユーザ又はオペレータ(操作者)によって設定され得る。一又は複数のトリガが、複数のプロセスのリストにおける各プロセスに関連付けられ得る。識別されたプロセス又はサブプロセスは、イベント又はアクティビティの監視又はリスニングの条件、パターン、シーケンスなどが適合する場合に、実行され得る。本明細書で与えられる例では、RPAプロセスは、パッケージ、RPAパッケージなどともいい、これらは各々、RPA自動化のためのワークフローを含み得る。
【0041】
システムは、管理される(た)プロセス又は自己開発される(た)プロセスをインタフェース又はUIに表示し得る。識別されたプロセス又はサブプロセスの実行は、メニューから、プログラムされた実行ボタンをクリック又は選択することによって、開始され得る。システムは、管理される(た)又は自己開発される(た)プロセスが特定の時点(ポイント)での実行するように構成されるように、又は、ユーザにそのプロセスを手動で開始させることを思い出させるように構成されるように、プロセスをスケジューリングできるように構成され得る。
【0042】
さらに、特定の構成において、システム又はコンポーネントは、RPAプロセスについてトリガ条件又はイベントが適合するか、満たされるか、又は期限切れになるまで、例えばマウスイベント又はキーボードイベントなどの所定のイベント又は条件を監視、リッスン、又は待機し得る。自動化のためにトリガを利用するため、実質的に常時オン、リアルタイム、又は一貫してオンのウィンドウサービス、一連のサービス、ウィンドウズプロセス、一連のプロセスなどが、定義されたトリガ又はトリガの定義に関連して、ユーザイベント、システムイベント、ファイル変更、別のシステム上で外部イベントなどを監視又はリッスンするように構成され得る。トリガが関係する特定の構成において、インテリジェントキュー及びスケジューリングが、RPAプロセス又は自動化のために利用され得る。
【0043】
トリガは、パッケージ、RPAパッケージ、RPA実行可能ファイルなどの開発中にスタジオコンポーネントでコーディングされ得る。特定の構成において、サービスが常にイベント、パッケージ、RPAパッケージ、RPA実行可能ファイルなどを監視又はリッスンしている場合、サービスはセレクタを利用又はセレクタを使用してコーディングして、種類、要素アクティビティなどによって略全ての既存のトリガを有効又は無効にし得る。
【0044】
セレクタは、RPAロボットが自動化又はプロセスで利用できるアプリケーション、ウェブページなどにおける要素(例えば、画像、テキスト、HTMLタグなど)への参照(リファレンス)又はポインタであり得る。セレクタは、トリガイベントに関連して、パッケージにマップ又は保存され得る。この構成は、トリガを有効又は無効にしたり、通常の又は一般的な式を使用してセレクタをパッケージと適合(照合)したり、パッケージの静的又は動的な入力引数を利用したりするために利用され得る。
【0045】
特定の構成において、トリガルールは、プロセス、パッケージ、RPAプロセス、RPAパッケージ、RPAロボット、パッケージのワークフロー、RPAロボットなどに関連して、例えばスタジオなどにおける開発時に構成され得る。パッケージは、RPAロボットとして実行される自動化又はRPAスクリプトであり得る。パッケージは、プロセス又はロボットとして構成又は参照され、チャネル又はコネクタを介して一又は複数の他のパッケージを呼び出し又は開始するように構成され得る。RPAロボットは、パッケージ又は他のコードを実行するマシンで実行されるアプリケーションであり得る。
【0046】
トリガルール又は定義は、ターゲットとトリガの種類とを含み、ターゲットは、セレクタ、ウィンドウズプロセス、ファイル又はフォルダなどであり得る。トリガの種類は、クリックトリガ、キーボードトリガ、プロセストリガ、ファイル変更トリガなどを含み得る。トリガルール又は定義はまた、イベントを含み、イベントは、実行、一時停止、停止するプロセス又はパッケージ、トリガの追加設定/一時停止/キャンセル、プロセスの開始/停止、外部イベントなどを含み得る。イベントは、デフォルトの優先度又はフィルタとトリガルール又は定義を満たすために必要な追加の条件とに関連し得る。
【0047】
トリガは、設定されたルールのためのイベントトリガに関連する情報、トリガを設定するための情報、トリガルールを設定するための情報、トリガ又は抑制(サプレス)されるルールに必要な追加の又は特別な基準、ルールに関連するアクション、ルールの優先度、ルールのためのサービス品質(QoS)要因などを含み得る。さらに、トリガルール又は定義は、ルール又はルールの一部をクライアントデバイスでローカルに編集できるか否かを示し得る。
【0048】
ユーザ又はオペレータは、例えばRPAロボットと統合されたロボットトレイ又はサードパーティアプリケーションなどを介して、クライアントデバイス又は環境でサービスを利用して、トリガをオンにしたり、トリガをオフにしたり、トリガのためのユーザ固有の基準を設定したり、トリガのアクセスポリシー/権限を表示したり、トリガのアクセスポリシーを構成したり、新しいユーザ固有のトリガを作成したりし得る。特定の構成において、プロセス又はサブプロセスは、事前に決定された基準に基づいてトリガを動的に定義、有効化、無効化などするように構成され得る。例えば、プロセスは、あるタイムポイント(時点)、フローポイント、シーケンスポイントなどで到達すると、必要に応じて、トリガを有効にしてもよい。
【0049】
図2は、インプロセストリガの監視、リスニング、又は管理200の一例を示す図である。ロボット202は、開発者204によって、セットアップ、プログラミング、配置、開発などされ得る。センターオブエクセレンス(COE)開発者チーム206が、自己開発される(た)又は管理される(た)プロセスをデプロイし得る。一又は複数のトリガに関連する一又は複数のUI要素が、自己開発される(た)又は管理される(た)プロセスに関連してマップ又は構成され得る。自己開発される(た)トリガは、新たにプログラミングされたコードパッケージであり得る。管理される(た)プロセスのトリガは、既存の定義又は構成に関連してデプロイされ得る。ロボット202は、アテンディッド又はアンアテンディッドとして構成され得る。さらに、ロボット202は、一又は複数のUI要素の一又は複数のトリガを監視(1)又はリッスンするように、クライアントデバイス又はマシン208上で構成されてもよい。
【0050】
一又は複数のUI要素に関連する一又は複数のトリガがアクティビティと適合すると(2)、自己開発される(た)又は管理される(た)プロセスが実行(3)又は遂行され得る。適合(照合)は、条件、パターン、シーケンスなどに基づき得る。自己開発される(た)又は管理される(た)プロセスは、本明細書に記載されている自動化のいずれかに関連し得る。さらに、プロセスは、ロボット共有サービスセンター210に構成されている他のアンアテンディッドロボットに分散されるイベントに基づいて、他のロボットと協調(共同)して実行されてもよい。
【0051】
本明細書で与えられる実施形態では、トリガ又はトリガイベントは、マウスクリック、キーボードイベント、キーボードプレス、画像クリック、タッチ入力、画面入力、画面上の要素の変更、プロセスの開始、プロセスの停止、ファイルの変更、フォルダの変更、ユニバーサルリソースロケータ(URL)入力、ナビゲーション入力、リプレイ(再生)イベント、望ましくないオンラインユーザナビゲーション、望ましいユーザナビゲーション、外部トリガ、別のシステムでのイベントなどのうち一又は複数を含み得る。本明細書で与えられる例では、ロボットは、マウスクリックが右クリック、左クリックなどであるときに異なるプロセスを実行するように構成され得る。画面要素入力イベントは、例えばレコードの作成、適用など、インタフェース上の特定の要素のクリックの識別、又は、画面又はディスプレイに表示される特定の要素の監視を含み得る。
【0052】
マウストリガコンポーネントは、例えば監視イベントアクティビティ又はオブジェクト、特定のマウスキー入力、クリック、ボタン、又はアクティビティに関連する他の入力又はキーとの組み合わせなどで、監視し得る。アクティビティは、システム全体のイベントであり得る。マウス入力、アクティビティ、又はアクションは、UI要素又はオブジェクトに関連して実行され得る。
【0053】
システムトリガコンポーネントは、監視イベントアクティビティに関連して、所定のシステム全体のキー、キーボード、又はマウスイベントを監視するように構成され得る。特定の構成において、システムトリガは、UI要素でのアクションをブロックするためのイベントモードに関連付けられてもよい。さらに、クリックトリガは、イベント監視アクティビティ内の所定のUI要素で、子要素を含むクリックイベントを監視し得る。クリックは、グラフィカルユーザインタフェース(GUI)要素に関連するマウスボタン入力又はテキスト選択であり得る。クリックは、UI要素及び関連付けUI方向に関連して、ピクセル単位のクリッピング矩形のクリッピング領域に関連付けられてもよい。監視対象のイベントアクティビティは、同期であっても非同期であってもよい。さらに、クリックトリガは、UI要素で可能なブロックアクションのイベントモードに関連付けられてもよい。
【0054】
キー押下トリガコンポーネントは、イベント監視アクティビティに関連して、所定のUI要素又はオブジェクト上のキーボード、タッチパッド、トラックパッド、タッチスクリーンなどのイベントの監視に関連し得る。このトリガの変数には、キー、特殊キー、アクティビティの実行時に特定のUI要素又はオブジェクトを検索するためのテキストプロパティのためのセレクタなどが含まれ得る。他の変数には、同期イベント種類、非同期イベント種類、UI要素の子、UI要素についてブロックされるキー押下アクション、及びアクティビティに対する選択されたキー修飾子が含まれ得る。さらに、ホットキートリガは、イベント監視アクティビティ内の特別なキー又はウィンドウズホットキーを含む、所定のシステム全体のキーのイベントを監視し得る。イベントモードでは、キー押下がUI要素に作用しないようにブロックされるように指定し得る。ホットキーは、UI要素でのアクションをブロックする可能性があるイベントモードに関連付けられ得る。
【0055】
本明細書で与えられる実施形態について、リプレイユーザイベントは、トリガ、トリガ定義、トリガ構成などの一部としてブロックされたユーザイベントをリプレイし得る。リプレイは、キー押下トリガ又はクリック画像トリガに関連付けられ得る。リプレイは、監視されるイベントアクティビティに関連付けられてもよい。監視されるイベントアクティビティは、同期であっても非同期であってもよい。
【0056】
特定の構成において、ユーザ入力ブロックは、その内部のアクティビティが実行される場合にマウス及びキーボードを無効にするコンテナ又はパッケージで利用され得る。このコンポーネントは、マウス、キーボード、特殊キー、又はいずれの入力もブロックするように構成され得る。このコンポーネントにより、指定されたホットキーの組み合わせでユーザ入力を再度有効にし得る。さらに、エラー時に続行するように設定された制御パラメータが、アクティビティがエラー又は例外をスローしたときに自動化を続行するか停止するかを指定し得る。
【0057】
イベント監視・リスニングコンポーネントは、複数のアクティビティ又はトリガをリッスンし、イベントハンドラコンテナ又はパッケージで指定されたアクティビティを実行し得る。イベント頻度については、真(true)に設定された制御パラメータは、トリガがアクティブ化されるたびに実行をブロックし得る。制御パラメータが偽(false)に設定されている場合、アクティビティは1回実行され得る。エラー時に続行するように設定された制御パラメータは、アクティビティがエラー又は例外をスローした場合に自動化を続行するか停止するかを指定し得る。
【0058】
ソース取得コンポーネントは、トリガについて実行されるアクション又はアクティビティに関連してUI要素又はオブジェクトを抽出し得る。この要素のためのアクティビティには、キー押下トリガ、クリック画像トリガ、クリックトリガなどが含まれ得る。この要素は、イベント監視アクティビティ内で実行されてもよい。同様に、イベント情報取得コンポーネントは、トリガに関連する様々な種類の情報の抽出を可能にし得る。
【0059】
本明細書において与えられる実施形態についても、ファイル又はフォルダへの変更について、特定の構成は、特定のファイル又はフォルダの追加、削除、変更などをトリガとして識別し得る。識別は、ファイル名、ファイルパス、ファイルプロパティなどの変更を監視することによって実行され得る。このようなトリガイベントは、ユーザによって設定され、プロセスのリスト又はセットにおける各プロセスに関連付けされ得る。監視される条件が適合又は満たされている場合、識別されたプロセス又はサブプロセスが実行され得る。特定の構成において、RPAプロセスの実行を開始するためのユーザインタフェースを提供することによって、プロセスをトリガし得る。管理される(た)プロセスと自己開発される(た)プロセスが、インタフェースに表示され、メニューから実行ボタンをクリックすると、識別されたプロセスの実行が開始されてもよい。さらに、プロセスは、管理されるプロセスと自己開発される(た)プロセスが特定の時点で実行されるように構成されるように、スケジュールされてもよい。
【0060】
クリック画像トリガコンポーネントは、例えばマウス入力、マウスクリック、タッチ入力などの入力について、ターゲットUI要素によって定義される画像を監視し得る。画像の精度は、0から1までの測定単位が検索されている画像と見つけられるの画像との間の最小の類似性を表すように、このトリガに関連し得る。画像プロファイルは、例えば基本的な又は強化された検出などの画像検出アルゴリズムを変更又は選択するために利用され得る。このトリガコンポーネントは、UI要素に関して矩形をピクセル単位でクリッピングするためのクリッピング領域に関連し、UI方向に関連していてもよい。セレクタは、このトリガコンポーネントのためのテキストプロパティに関連付けられてもよい。イベント種類には、同期イベント種類、非同期イベント種類などが含まれ得る。
【0061】
図3は、ロボットのためのキュー管理のためのプロセス300の一例を示す図である。プロセスキューは、例えばアテンディッドロボットなど任意の種類のロボットのためのマシン又はクライアントデバイスでローカルに構成され得る。自動化の要求は、アテンディッドロボット自動化のための一又は複数の異なるソースから送られ得る。本明細書で説明するように、トリガコンポーネントが、監視又はリスニングにより、ファイルシステムへの変更、ユーザ又はオペレータが設定したプロセス、新たにスケジュールされたプロセスなどを検出し得る。同じパッケージ内にワークフローがある構成では、内部又はインテリジェントなキューイングコンポーネントが、要求を順次受け入れてキュー(待ち行列)に入れてもよい。しかし、特定の構成において、自動化の要求が一又は複数の異なるソースから送られてくる場合、順次的な要求処理は望ましくない場合もある。
【0062】
コンフィギュレーション(構成)300において、ロボットのキュー管理のために、ロボットサービス302は、プロセスキューコンポーネント310を使用して、一又は複数の重複する要求があり得る一又は複数のロボットエグゼキュータ306を開始、停止、又は一時停止し得る。インタフェース308は、一又は複数のロボットエグゼキュータ306の現在のRPAロボットアクション、イベント、又はアクティビティを表示するように構成され得る。
【0063】
要求は、サービス又はコンポーネントから受け取られたものであり得る。ルール構成、基準、又はデフォルト条件のセットが、ロボットがプロセスを評価して、パフォーマンスレベル、応答性、QoSなどを提供し得るように、構成され得る。要求が重複する場合、ルール又は基準がロボットサービス302によって利用されて、一又は複数のサービス、プロセス、又はワークフローについての要求を選択し得る。ロボットサービス302は、様々なエントリポイントコンポーネント304と通信し、それらから要求を受け取って、プロセスを開始又は起動し得る。様々なエントリポイントは、プロセスキューコンポーネント310を使用してキューを管理するため、トリガされる(た)プロセスコンポーネント、スケジュールされたプロセスコンポーネント、手動開始プロセスコンポーネント、又は自動開始プロセスコンポーネントを含む。
【0064】
コンフィギュレーション300において、ロボットプロセスは、プロセス要求ソース、時刻、事前設定された値などに関連する基本優先度に関連付けられ得る。さらに、プロセスがフォアグラウンド又はバックグラウンド動作用に構成されている場合、キューイングがスキップされ、プロセスが並行して実行され得る。したがって、コンフィギュレーション300は、プロセス、ロボットプロセス、サービス、ロボットサービスなどを開始、停止、又は一時停止する要求について異なるメカニズムを提供する。さらに、プロセスキューコンポーネント310は、ロボットサービスが、後の処理のために要求が配信又は保存されることを確実にすることを可能にし得る。
【0065】
手動開始プロセスコンポーネントは、略リアルタイムでの場合も含み、プロセスキューコンポーネント310を監視し、追加の要求を再優先度付け、キャンセル、又は追加するため、ユーザからコマンド又は入力を受け取り得る。さらに、優先度の高い又はより高いプロセスが、別のフォアグラウンド又はバックグラウンド動作をオーバーライドするために、構成可能である。ユーザ又はオペレータによる入力はまた、優先度の高い又はより高いプロセスが、クライアントデバイス、サーバ、又はシステムで追加のリソースを使用して、又は使用せずに、完了するように、現在のプロセスを一時停止し得る。
【0066】
図4は、インプロセストリガの監視又はリスニング400を示す別の図である。監視イベントプロセス402は、画像トリガ404上のクリックの適合(照合)アクティビティをリッスンし得る。適合が行われると、イベントハンドラ406が、メッセージボックス「Hello Robot」を表示する。イベント監視プロセス402は、実行中のプロセス408であってもよく、又はインタフェース412に表示されるプロセスリスト410にキューイングされてもよい。
【0067】
図5は、インプロセストリガ500のプロセスの一例を示す図である。ロボット自動化プロセスは、イベント又はアクティビティのトリガについて、例えばサービス、コンポーネントなどによって、監視され得る(502)。これは、ロボット自動化プロセスの内部で、その間に、又はそれにおいて実行され得る。トリガについてパターン照合(適合)が識別(特定)され得る(504)。トリガが識別された場合(506)、ロボットエグゼキュータは、ロボット自動化プロセス(508)中にプロセスを開始し得る。トリガが識別されない場合、サービス又はコンポーネントは引き続きリッスンし、トリガについてパターン照合を識別することを試みる。
【0068】
特徴及び要素は特定の組み合わせで上記で説明しているが、当業者は、各特徴又は要素が、単独で又は他の特徴、要素との任意の組み合わせで使用され得ることを理解するであろう。さらに、本明細書に記載の方法は、コンピュータ又はプロセッサによって実行するためコンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、又はファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例には、電子信号(有線又は無線接続を介して送信される)及びコンピュータ読み取り可能な記憶媒体が含まれる。コンピュータ読み取り可能な記憶媒体の例には、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、例えば内蔵ハードディスク及びリムーバブルディスクなどの磁気媒体、磁気光学メディア、例えばCD-ROMディスクなどの光メディア、並びにデジタル多用途ディスク(DVD)が含まれるが、これらに限定されない。

図1A
図1B
図1C
図2
図3
図4
図5
【国際調査報告】