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

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

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

特表2023-519033ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと
<>
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図1A
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図1B
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図1C
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図2
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図3
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図4
  • 特表-ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-10
(54)【発明の名称】ユーザー定義の優先度に基づいて、RPAジョブをスケジュールすることおよび優先順位付けを行うこと
(51)【国際特許分類】
   G06F 9/48 20060101AFI20230428BHJP
   G05B 19/42 20060101ALI20230428BHJP
【FI】
G06F9/48 300Z
G05B19/42 D
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021565068
(86)(22)【出願日】2021-03-12
(85)【翻訳文提出日】2022-01-19
(86)【国際出願番号】 US2021022041
(87)【国際公開番号】W WO2021188367
(87)【国際公開日】2021-09-23
(31)【優先権主張番号】16/821,394
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.JAVASCRIPT
3.ZIGBEE
4.BLUETOOTH
5.ウィンドウズ
6.FLASH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ノット,ブランドン
【テーマコード(参考)】
3C269
【Fターム(参考)】
3C269AB33
3C269BB09
3C269SA17
(57)【要約】
コンピューティングデバイスは、プロセス要求を受信してメモリ内のプロセスキューに格納するロボットサービスを実行し得る。ロボットサービスは、ユーザーが定義した好みを利用して、プロセスキュー内のプロセス要求を優先順位付けし得る。プロセス要求は、ユーザーが定義した好みに基づいてスケジュールされてもよい。ロボットサービスは、アプリケーションのロボティックオートメーションのために、スケジュールされたプロセス要求を開始してもよい。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
1または複数のプロセス要求を受信してメモリ内のプロセスキューに格納するロボットサービスを実行するように構成された少なくとも1つのプロセッサおよび前記メモリとを備え、前記ロボットサービスは、ユーザーが定義した好みを利用して、前記プロセスキュー内の前記1または複数のプロセス要求を優先順位付けし、
前記少なくとも1つのプロセッサは、前記ユーザーが定義した好みに基づいて、前記1または複数のプロセス要求をスケジュールするように構成され、
前記少なくとも1つのプロセッサは、前記ロボットサービスを使用して、前記スケジュールされた1または複数のプロセス要求を、アプリケーションのロボティックオートメーションのために開始するように構成される、コンピューティングデバイス。
【請求項2】
前記1または複数のプロセス要求は、トリガされたプロセスコンポーネント、スケジュールされたプロセスコンポーネント、手動で開始されるプロセスコンポーネント、または自動開始されるプロセスコンポーネントのいずれか1つから受信される、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記トリガされたプロセスコンポーネントは、ファイルシステムへの変更、ファイルへの変更、またはユーザーが要求したプロセスのいずれか1つのためのトリガイベントを含む、請求項2に記載のコンピューティングデバイス。
【請求項4】
前記スケジュールされた1または複数のプロセス要求は、前記ユーザーが定義した好みに基づいて停止または一時停止される、請求項1に記載のコンピューティングデバイス。
【請求項5】
前記スケジュールされた1または複数のプロセス要求は、前記コンピューティングデバイスのユーザー操作がないという条件で開始される、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記少なくとも1つのプロセッサは、前記開始の前に、前記1または複数のプロセス要求をユーザーに警告するためのユーザー通知またはユーザーリマインダを生成するようにさらに構成される、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記プロセスキュー内の前記1または複数のプロセス要求のうち、重複するプロセス要求を配列または優先順位付けするために、デフォルト設定が利用される、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記1または複数のプロセス要求は、前記ユーザーが定義した好みによって定義された時間、条件、またはイベントに基づいて、ローカルにスケジュールされる、請求項1に記載のコンピューティングデバイス。
【請求項9】
前記1または複数のプロセス要求のうちの1つは、前記アプリケーションの要素のクリック、要素の出現、またはファイルの変更のためのイベントに基づくトリガである、請求項1に記載のコンピューティングデバイス。
【請求項10】
前記スケジュールされた1または複数のプロセス要求は、前記開始の前にユーザーが選択したものである、請求項1に記載のコンピューティングデバイス。
【請求項11】
コンピューティングデバイスによって実行される方法であって、前記方法は、
1または複数のプロセス要求を受信してメモリ内のプロセスキューに格納するロボットサービスを実行することであって、前記ロボットサービスが、ユーザーが定義した好みを利用して、前記プロセスキュー内の前記1または複数のプロセス要求を優先順位付けすることと、
前記ユーザーが定義した好みに基づいて、前記1または複数のプロセス要求をスケジュールすることと、
前記ロボットサービスを使用して、前記スケジュールされた1または複数のプロセス要求を、アプリケーションのロボティックオートメーションのために開始することと、を含む、方法。
【請求項12】
前記1または複数のプロセス要求は、トリガされたプロセスコンポーネント、スケジュールされたプロセスコンポーネント、手動で開始されるプロセスコンポーネント、または自動開始されるプロセスコンポーネントのいずれか1つから受信される、請求項11に記載の方法。
【請求項13】
前記トリガされたプロセスコンポーネントは、ファイルシステムへの変更、ファイルへの変更、またはユーザーが要求したプロセスのいずれか1つのためのトリガイベントを含む、請求項12に記載の方法。
【請求項14】
前記スケジュールされた1または複数のプロセス要求は、前記ユーザーが定義した好みに基づいて停止または一時停止される、請求項11に記載の方法。
【請求項15】
前記スケジュールされた1または複数のプロセス要求は、前記コンピューティングデバイスのユーザー操作がないという条件で開始される、請求項11に記載の方法。
【請求項16】
前記開始の前に、前記スケジュールされた1または複数のプロセス要求をユーザーに警告するためのユーザー通知またはユーザーリマインダを生成することをさらに含む、請求項11に記載の方法。
【請求項17】
前記プロセスキュー内の前記1または複数のプロセス要求のうち、重複するプロセス要求を配列または優先順位付けするために、デフォルト設定が利用される、請求項11に記載の方法。
【請求項18】
前記1または複数のプロセス要求は、前記ユーザーが定義した好みによって定義された時間、条件、またはイベントに基づいて、ローカルにスケジュールされる、請求項11に記載の方法。
【請求項19】
前記1または複数のプロセス要求のうちの1つは、前記アプリケーションの要素のクリック、要素の出現、またはファイルの変更のためのイベントに基づくトリガである、請求項11に記載の方法。
【請求項20】
前記スケジュールされた1または複数のプロセス要求は、前記開始の前にユーザーが選択したものである、請求項11に記載の方法。

【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2020年3月17日に出願された米国出願第16/821,394号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
ロボティックプロセスオートメーション(RPA)は、1または複数のロボットを利用して、エンタープライズプラットフォーム、仮想マシン(VM)、リモートデスクトップ、クラウド上のアプリケーション、デスクトップアプリケーション、モバイルアプリケーションなどにおけるプロセス、操作、機能、コンポーネント、タスク、またはワークフローを自動化し得る。ソフトウェアロボット、プロセス、パッケージ、RPAプロセス、RPAパッケージ、RPAロボット、パッケージのワークフロー、サブプロセス、マイクロボット、モジュールなどが、アプリケーションの自動化のために、クライアントマシンまたはユーザーマシン上でローカルにスケジュールされ得る。ローカルマシンまたはクライアントマシンでアプリケーションの自動化のためにスケジュールされた1または複数のプロセスは、マウスまたはキーボードを制御するときなどに、ユーザーまたは管理者を中断し得る。
【0003】
さらに、アテンディッドロボットオートメーション構成は、スケジュールまたは実行のために、異なるソースからプロセスの自動化の要求を受信し得るが、これも中断の原因となり得る。例えば、ファイルシステムの変更、ファイルの変更、ユーザーが要求したプロセスなどをトリガが検出し、後続のプロセスが短時間でスケジュールされ、ユーザーやオペレータの中断を招き得る。中断または混乱を防ぐためには、ユーザーからの柔軟な入力で、ローカルに処理をスケジュールすることが望ましい。
【発明の概要】
【0004】
ロボットサービスは、ユーザー定義、オペレータ、または管理者の好みまたは定義に基づいて、プロセスをローカルにスケジュール、キュー、または実行し得る。また、ロボットのための通知またはリマインダは、ユーザー定義、オペレータ、管理者の好みまたは定義に基づいて設定され得る。スケジュールされたプロセスは、ユーザー定義の優先順位を用いてキュー内で優先され得る。特定の構成では、スケジュールは、追加の開発、コーディングなどを行うことなく、ユーザーによってローカルに実行され得る。
【図面の簡単な説明】
【0005】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【0006】
図1A】ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行の説明図である。
【0007】
図1B】RPAの開発、設計、運用、または実行の別の説明図である。
【0008】
図1C】コンピューティングシステムまたは環境の説明図である。
【0009】
図2】自動化されたロボット(複数可)のためのプロセスキュー管理の例を示す説明図である。
【0010】
図3】ユーザーが定義した好みまたはオペレータの好みを用いた自動化されたロボット(複数可)のためのプロセスキュー管理の例を示す説明図である。
【0011】
図4】ユーザーが定義した好みまたはオペレータの好みを用いたプロセスキュー管理のためのプロセスの例を示す説明図である。
【0012】
図5】ユーザーが定義した好みまたはオペレータの好みを用いたプロセスキュー管理のための別のプロセスの例を示す説明図である。詳細な説明
【0013】
本明細書に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、これは、より長い羅列にも同様に当てはまり得る。X/Yという表記を使用する場合、当該表記は、XまたはYを含み得る。あるいは、X/Yという表記を使用する場合、当該表記は、XおよびYを含み得る。X/Yの表記は、上記と同じ論理により、より長い羅列にも同様に当てはまり得る。
【0014】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行100の説明図である。デザイナ102は、スタジオ、開発プラットフォーム、開発環境などとも呼ばれ、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザーまたはオペレータによって選択された視覚表示の領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、矩形、円、多角形、自由形などの多次元の形状が、UIロボットの開発およびランタイムに利用され得る。
【0015】
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数があり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどがあり得る。
【0016】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。
【0017】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対し透過的なUIを自動化し得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータと呼ばれることもある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するために複数のロボットを指示または命令するための中央または半中心点として機能し得る。
【0018】
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の生成および維持を含み得る。展開は、実行のために割り当てられたロボットへのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの許可を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として機能することにより、相互接続性を提供し得る。
【0019】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108操作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110操作については、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。アンアテンディッド108またはアテンディッド110ロボットは、モバイルコンピューティングまたはモバイルデバイスの環境で実行するまたは実行することがきる。
【0020】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する実行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0021】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などで最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットでも使用可能であり得る。
【0022】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティのために専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクタ104と実行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、信用を受け得、ロボット(複数可)または自動化エグゼキュータ106の資格情報を管理し得る。
【0023】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、信用を受け得、ロボットの資格情報を管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0024】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を要求し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0025】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、特定、および追跡をより容易に実行するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動が構成され得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが生成されたコンピューティングシステムの構成に関係なく、任意のDPIにおいて実行され得る。また、デザイナ102からのプロジェクトは、ブラウザのズームレベルから独立するようにされ得る。DPIを認識していないまたは認識していないと意図的にマークされているアプリケーションの場合、いくつかの実施形態ではDPIは無効にされ得る。
【0026】
図1Bは、RPAの開発、設計、運用、または実行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
【0027】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0028】
メモリ146は、プロセッサ(複数可)144によって実行または処理される情報、命令、コマンド、またはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他の任意のタイプの非一時的な読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的な読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0029】
通信装置148は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、または、1もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0030】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0031】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力をコンピューティングシステムまたは環境140と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供してもよいし、あるいは、コンピューティングシステムまたは環境140が自律的に動作してもよい。
【0032】
メモリ146は、1または複数のプロセッサ(複数可)144によって実行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納し得る。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。
【0033】
コンピューティングシステムまたは環境140は、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0034】
本明細書に記載された例では、モジュールは、カスタムの超大型集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0035】
モジュールは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。特定された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成され得るコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの実行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。
【0036】
実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分配され得る。運用データまたは機能データは、本明細書中においてモジュールにおいて特定され、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
【0037】
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で構成され得る。コンピュータプログラムは、互いに動作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
【0038】
ユーザー、オペレータ、または管理者の好みまたは定義に基づいて、ロボットのプロセスをローカルにスケジュール、優先順位付け、または実行することが望ましい。特定の構成では、プロセスを実行すべき時刻などの特定の1組の基準または条件の存在を待機する無限ループを実行することにより、プロセスがスケジュールされ得る。また、ウィンドウズのタスクスケジューラまたはサードパーティのシステムなどでプロセスがトリガされ得る。特定の構成では、スケジューラは、ユーザーがコンピューティングデバイスに干渉するのを防ぐために、プロセスまたはトリガされたプロセスを実行する前に与えられるリマインダであり得る。ユーザーがプロセスまたはワークフローをローカルにスケジュールするための構成がない場合、ユーザーへの通知またはユーザーのアクティビティの検出は、プロセス、ワークフロー、またはスケジューラへのカスタム開発またはコーディングが必要になり得る。特定の構成では、このようなプロセスのスケジュールは、アテンドしているロボットのコンダクタまたはオーケストレータによって実行され得る。
【0039】
本明細書において記載されるいくつかの実施形態において、コンピューティングデバイスが、ロボットサービスを実行し得る。ロボットサービスは、スケジュールすべき1または複数のプロセス要求を受信し得る。1または複数のプロセス要求は、プロセスキューに格納され得る。ロボットサービスは、ルールまたは基準およびユーザーが定義した好みを利用して、プロセスキュー内の1または複数のプロセス要求を優先順位付けし得る。好みまたは定義は、ローカルまたはリモートで設定され得る。ロボットサービスまたはユーザー入力に基づいて、ロボットエグゼキュータは、アプリケーションのロボティックオートメーションのためにプロセス要求の1つを開始し得る。
【0040】
同じパッケージに関連するワークフローのグループを持つ構成では、内部キューイングコンポーネントが、順次または実質的に順次に要求を受け入れ、キューし得る。異なるソースからのプロセス実行要求は、コンピューティングデバイスまたはシステムのパフォーマンスをスローダウンさせたり、フリーズさせたり、低下させたりし得るため、ユーザーまたは管理者による制御を含めたローカルスケジュールが望ましい。さらに、プロセスキューは、ソフトウェアロボット、プロセス、パッケージ、RPAプロセス、RPAパッケージ、RPAロボット、パッケージのワークフロー、サブプロセス、マイクロボット、モジュールなどに、受信した複数の重複した要求の取り扱いについて通知するように構成され得る。ロジックの構成と、1組のルール構成物とにより、ロボットは、1または複数のプロセスをインテリジェントに評価し、一定レベルのパフォーマンス、応答性、品質などを保証し得る。
【0041】
図2は、構成200におけるロボット(複数可)のためのプロセスキュー管理の例を示す説明図である。プロセスキューは、アテンディッドロボットのような任意のタイプのロボットのために、マシンまたはクライアントデバイス上でローカルに構成され得る。プロセスまたはサブプロセスのロボットオートメーションのための要求(複数可)またはプロセス要求は、1または複数の異なるソースから来てもよい。本明細書で説明したように、トリガ(複数可)コンポーネントは、ファイルシステムへの変更、ファイルへの変更、ユーザーが要求したプロセスなどと、短い時間内にスケジュールされた後続のプロセスとを、監視またはリッスンことなどによって検出し得る。同じパッケージ(複数可)内にワークフロー(複数可)がある構成では、内部またはインテリジェントなキューコンポーネントが順次、要求(複数可)を受信してキューし得る。特定の構成では、自動化のための要求(複数可)が1または複数の異なるソースから来る場合、順次の要求処理以外の構成が利用され得る。
【0042】
構成200では、ロボット(複数可)のキュー管理のために、ロボットサービス202は、プロセスキューコンポーネント210を使用して、様々なソースからの他のプロセス、サブプロセス、またはプロセス要求に基づいて、1または複数のロボットエグゼキュータ206を開始、停止、または一時停止させ得る。1または複数の重複する要求がスケジュールされている場合、ロボットサービス202は、1または複数のロボットエグゼキュータ206を管理して、パフォーマンスの向上、競合の解決、要求の優先順位付けなどを行うように構成され得る。プロセスは、ユーザー、オペレータ、または管理者が設定した好みまたは定義に基づいて、開始、停止、または一時停止され得る。ロボットによって使用される通知またはリマインダも、プロセスまたはサブプロセスの開始、停止、または一時停止をユーザーに促す際のユーザーまたは管理者の好みまたは定義に基づき得る。好みまたは定義は、ローカルまたはリモートで設定され得る。ユーザー通知またはユーザーリマインダは、ユーザーが定義した好みまたはオペレータの好みに基づいて生成され得る。構成200において、インターフェース208は、1または複数のロボットエグゼキュータ206の現在のRPAロボットアクション、イベント、またはアクティビティを表示するように構成され得る。
【0043】
サービスまたはコンポーネントから、1または複数のサービス、プロセス、またはワークフローの要求が受信され得る。ロボットが、パフォーマンスレベルの提供、応答性の向上、QoSの管理などのためにプロセス(複数可)を評価し得るように、1組のルール構成物、基準、またはデフォルト条件が構成され得る。要求が重複する場合、ルールまたは基準は、ロボットサービス202によって、1または複数のサービス、プロセス、またはワークフローの要求を選択するために利用され得る。ロボットサービス202は、プロセスまたはサブプロセスを開始、始めるなどするために、プロセスキューコンポーネント210でキューを管理するための、トリガされたプロセスコンポーネント、スケジュールされたプロセスコンポーネント、手動で開始するプロセスコンポーネント、または自動開始プロセスコンポーネントを含む様々なエントリポイントコンポーネント204と通信し、そこから要求を受信し得る。
【0044】
構成200において、ロボティックプロセスは、プロセス要求ソース、時間帯、事前設定値などに基づく基本的な優先順位と関連付けられ得る。さらに、プロセスがフォアグラウンドまたはバックグラウンドで操作するように構成されている場合、キューがスキップされ得、プロセスが並列に実行され得る。このように、構成200は、プロセス、ロボティックプロセス、サービス、ロボットサービスなどを開始、停止、または一時停止する要求のために異なるメカニズムを提供する。さらに、プロセスキューコンポーネント210は、要求が配信されるまたは後の処理のために保存されることを保証するために、ロボットサービス202と連携し得る。
【0045】
手動開始プロセスコンポーネントは、例えば実質的にリアルタイムで、ユーザーからコマンド(複数可)または入力(複数可)を受信して、プロセスキューコンポーネント210を観察し、さらなる要求を再優先し、キャンセルし、または追加し得る。さらに、高いまたはより優先度の高いプロセス(複数可)は、別のフォアグラウンドまたはバックグラウンドの動作をオーバーライドするように構成され得る。また、ユーザー入力により、現在のプロセスを一時停止して、クライアントデバイス、サーバー、またはシステム上の追加リソースを使用して、または使用せずに、高いまたはより高い優先度のプロセス(複数可)が完了するようにしてもよい。
【0046】
様々なエントリポイントコンポーネント204からの要求に対し、ユーザーまたは管理者の好みまたは定義に基づいてロボットサービス202によって開始または実行されるように、プロセスキューコンポーネント210においてキューイング、スケジューリングなどが行われる。好みまたは定義は、ローカルまたはリモートで設定され得る。ロボットサービス202による開始または実行は、ユーザーによって設定された好みまたは定義に基づいて、ユーザーの中断を最適化、最小化、または削減するために実行され得る。例えば、通知またはリマインダコンポーネントは、スケジュールされたまたはキューされたプロセスの開始または実行が間近に迫っていることをユーザーまたはオペレータにローカルに促すまたは信号を送るために、ユーザーの好みに基づいて構成され得る。
【0047】
図3は、ユーザーが定義した好みまたはオペレータの好みを用いた自動化されたロボット(複数可)のためのプロセスキュー管理の例を示す説明図である300。プロセスキュー管理は、コンピューティングデバイスのユーザー操作中にトリガされた場合、プロセスまたはサブプロセスがユーザーアクティビティを中断させないように構成され得る。このように、プロセスキュー管理は、混乱を防ぐために、ユーザーが定義したまたはオペレータの好みまたは定義に基づいて操作し得る。好みまたは定義は、ローカルまたはリモートで設定され得る。
【0048】
さらに、構成300では、ユーザーまたはオペレータの中断または妨害を防ぐために、キャンセルまたは一時停止をしなければプロセスが実行されることを、ユーザーへの通知またはリマインダで警告し得る。ユーザー通知またはユーザーリマインダは、ユーザーが定義した好みまたはオペレータの好みに基づいて生成され得る。ユーザーリマインダは、アプリケーションを使用しているユーザーへの干渉を防ぐために、トリガされたプロセスを実行前にユーザーに通知するために、スケジューラ操作の一部として構成され得る。また、ユーザーへの通知またはリマインダは、ユーザーの準備が整った場合にプロセスを実行できることをユーザーに警告し得る。さらに、プロセスキュー管理はまた、デフォルト設定を利用することを含めて、重複するプロセス要求を優先順位付けしたり、または再配置したりするように構成され得る。プロセスキュー管理のための設定または構成は、開発者またはユーザーが要求を優先順位付けする機能を含み得る。プロセス要求の優先順位付けは、先入れ先出し(FIFO)、後入れ先出し(LIFO)などのように構成され得る。また、1または複数のプロセス要求は、エグゼキュータによって同時に、一斉に実行され得る。さらに、プロセス要求は、ユーザー入力により、システムトレイインターフェースにおいて手動で再優先順位付けされてもよい。システムトレイインターフェースは、ユーザーインターフェース308の一部であり得る。
【0049】
プロセススケジューラ302は、プロセス1、プロセス2、...プロセスNを含んでいてもよい。プロセススケジューラ302は、ユーザーが定義した好みまたはオペレータの好みに基づいて、実行のための時間、条件、イベントなどに基づいてプロセスをローカルにスケジュールするように構成され得る。時間、イベント、条件などは、ユーザーまたは管理者の好みまたは定義の一部であり得る。プロセスのための条件は、コンピューティングデバイスのアイドルモード、時間帯、イベントパターン、前回の実行または実行からの経過時間などであり得る。また、プロセス1、プロセス2、...プロセスNは、ユーザーが定義した優先順位に基づいて優先順位付けされ得る。プロセススケジューラ302のプロセスは、要求またはプロセス要求として、後続の実行のために優先度キュー304に追加され得る。
【0050】
イベントに基づくトリガ306は、イベントをプロセスまたはサブプロセスに関連付け得る。プロセスに関連付けられたイベントは、本明細書で説明するように、管理されたプロセスまたは自己開発されたプロセスの一部であり得る。イベントは、要素のクリック、要素の出現、ファイルの変更などのいずれか1つであり得る。管理されたプロセスに関連するトリガは、既存の定義または特定のフォルダの場所またはボタンのクリックなど、ユーザーによる追加設定を可能にする設定ファイル(複数可)を利用して展開され得る。自己開発プロセスは、カスタマイズ可能であるが、新しいコードパッケージの開発が必要である。開発の一部として、新しいコードパッケージは、既存の定義または設定ファイル(複数可)を持つトリガとは異なり、テストまたは再テストを必要とし得る。
【0051】
管理されたプロセスは、イベントに基づくトリガのための要求またはプロセス要求であり得る。トリガは、ユーザーが定義した好みまたはオペレータの好みに基づいて実行され得る。本明細書で説明された実施形態では、トリガまたはトリガイベント(複数可)は、アプリケーションまたはユーザーインターフェースに関連して、マウスクリック(複数可)、キーボードイベント(複数可)、キーボード押下(複数可)、イメージクリック、タッチ入力(複数可)、画面入力(複数可)、画面上の要素変更、プロセス開始、プロセス停止、ファイル変更、フォルダ変更、ユニバーサルリソースロケータ(URL)入力、ナビゲーション入力、再生イベント、望ましくないオンラインユーザーナビゲーション、望ましいユーザーナビゲーション、外部トリガ、別のシステム上のイベントなどのうちの1または複数を含み得る。本明細書で説明された例では、ロボットは、マウスのクリック(複数可)が右クリック、左クリックなどの場合に、異なる処理を実行するように構成され得る。画面要素入力イベント(複数可)は、記録の作成、適用など、インターフェース上の特定の要素(複数可)をクリックしたことの特定、または画面上に表示される特定の要素(複数可)の監視を含み得る。
【0052】
ユーザーインターフェース308は、ユーザーが、要求またはプロセス要求として、優先度キュー304に追加されるプロセスを入力または選択するために、管理されたプロセスまたは自己開発プロセスを利用し得る。入力または選択されたプロセスは、ユーザーが定義した好みまたはオペレータの好みに基づいて開始または実行され得る。要求されたタイムスケジュールされたプロセス、イベントトリガされたプロセス、または選択されたプロセスもしくはサブプロセスのいずれか1つは、アプリケーションまたはユーザーインターフェースの自動化のために、クライアントマシン上の実行プロセスコンポーネント310による実行のためにデキューされ得る。コンポーネント310を実行することによる開始または実行は、ユーザーまたはオペレータによって設定された好みまたは定義に基づいて、ユーザーの中断を最適化、最小化、または削減するために実行され得る。さらに、プロセスまたはサブプロセスは、ユーザーの操作またはアクティビティの外で開始され得る。
【0053】
図4は、ユーザーが定義した好みまたはオペレータの好みを用いたプロセスキュー管理のためのプロセスの例を示す説明図である400。ロボットサービスコンポーネントは、メモリ(402)のプロセスキューに格納するプロセス要求を受信し得る。ロボットサービスは、ユーザー定義の好みを利用して、プロセス要求を優先順位付けし得る(404)。プロセス要求は、ユーザー定義の好みに基づいてスケジュールされてもよい(406)。ロボットエグゼキュータは、ロボットサービスを利用して、アプリケーションのロボティックオートメーションのためのプロセス要求の処理を開始するように指示され得る(408)。
【0054】
図5は、ユーザーが定義した好みまたはオペレータの好みを用いたプロセスキュー管理のための別のプロセスの例を示す説明図である500。プロセス要求は、ユーザー定義の好みに基づいてローカルにスケジュールされてもよい(502)。中断を防ぐために、開始(504)の前に、優先されたプロセスをユーザーに警告するために、ユーザー通知またはユーザーリマインダが生成され得る。ユーザー通知またはユーザーリマインダは、ユーザーが定義した好みまたはオペレータの好みに基づいて生成され得る。プロセス要求のうち優先されたプロセスは、アプリケーションのロボティックオートメーションのための実行のために、ロボットサービスを利用して開始され得る(506)。
【0055】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。

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