(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-10
(54)【発明の名称】分散パッケージ型ロボティックプロセスのローカル型構成
(51)【国際特許分類】
G06F 8/65 20180101AFI20231002BHJP
【FI】
G06F8/65
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021569972
(86)(22)【出願日】2021-09-08
(85)【翻訳文提出日】2022-02-09
(86)【国際出願番号】 US2021049453
(87)【国際公開番号】W WO2022055987
(87)【国際公開日】2022-03-17
(32)【優先日】2020-09-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ノット,ブランドン
(72)【発明者】
【氏名】タパス,フローリンーラドゥ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA11
5B376AA35
5B376CA44
5B376GA13
(57)【要約】
本明細書では、メモリおよびプロセッサを含むコンピューティングデバイスを開示する。メモリは、ロボティックプロセスエンジンのためのプロセッサ実行可能を格納する。ロボティックプロセスエンジンは、分散パッケージ型ロボティックプロセスにアクセスしてコードを調達し、ローカルロボティックプロセスを生成する。コードにはパラメータが含まれており、ローカルロボティックプロセスには、パラメータに応じた入力フィールドが含まれる。ロボティックプロセスエンジンは、ローカルロボティックプロセスの入力フィールドを介して入力引数を受信して構成を生成し、その構成を利用してローカルロボティックプロセスを実行する。ローカルロボティックプロセスの実行は、分散パッケージ型ロボティックプロセスを変更することなく、分散パッケージ型ロボティックプロセスの実行をミラーリングする。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
ロボティックプロセスエンジンのためのプロセッサ実行可能命令を格納するように構成されたメモリと、
前記メモリに結合された少なくとも1つのプロセッサと、
を含み、
前記少なくとも1つのプロセッサは、前記ロボティックプロセスエンジンを実行して、
前記ロボティックプロセスエンジンによって、分散パッケージ型ロボティックプロセスにアクセスして、1または複数のパラメータを含むコードを調達し、前記1または複数のパラメータに従って1または複数の入力フィールドを含むローカルロボティックプロセスを生成すること、
前記ロボティックプロセスエンジンによって、前記ローカルロボティックプロセスの前記1または複数の入力フィールドを介して1または複数の入力引数を受信して、構成を生成すること、および
前記ロボティックプロセスエンジンによって、前記構成を利用して前記ローカルロボティックプロセスを実行することであって、前記ローカルロボティックプロセスの前記実行は、前記分散パッケージ型ロボティックプロセスを変更することなく、前記分散パッケージ型ロボティックプロセスの実行をミラーリングする、こと、
を前記コンピューティングデバイスに行わせる、
コンピューティングデバイス。
【請求項2】
前記少なくとも1つのプロセッサは、前記ロボティックプロセスエンジンを実行して、前記ローカルロボティックプロセスに関してかつ前記分散パッケージ型ロボティックプロセスとは別に前記構成を保存することを前記コンピューティングデバイスに行わせるように構成される、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記少なくとも1つのプロセッサは、前記ロボティックプロセスエンジンを実行して、前記ローカルロボティックプロセスの実行前に前記1または複数の入力引数のうち少なくとも1つの要求される入力の受信を要求することを前記コンピューティングデバイスに行わせるように構成される、請求項1に記載のコンピューティングデバイス。
【請求項4】
前記少なくとも1つのプロセッサは、前記ロボティックプロセスエンジンを実行して、前記ローカルロボティックプロセスが削除されたときに前記構成を削除することを前記コンピューティングデバイスに行わせるように構成される、請求項1に記載のコンピューティングデバイス。
【請求項5】
前記1または複数のパラメータは、前記分散パッケージ型プロセス内の特徴、範囲、特性または条件を定義するメカニズムを含む、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記1または複数の入力引数は、単純または複雑な形式の設定、初期設定またはデフォルト設定を含む、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記1または複数の入力フィールドは、前記1または複数のパラメータの異なるタイプそれぞれに対して設けられかつ対応する入力引数を受信するプロセス構造を含む、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記分散パッケージ型プロセスは、コンピューティングプラットフォームからのロボットまたはロボティックプロセスを含む、請求項1に記載のコンピューティングデバイス。
【請求項9】
前記コンピューティングデバイスは、前記コンピューティングプラットフォームと通信するローカルコンピューティングシステムを含む、請求項8に記載のコンピューティングデバイス。
【請求項10】
前記ロボティックプロセスエンジンは、前記ローカルコンピューティングシステム内で前記ロボティックプロセスを実行する、請求項9に記載のコンピューティングデバイス。
【請求項11】
ロボティックプロセスエンジンを実行する少なくとも1つのプロセッサに結合されたメモリにプロセッサ実行可能命令として格納された、前記ロボティックプロセスエンジンによって実装される方法であって、前記方法は、
前記ロボティックプロセスエンジンによって、分散パッケージ型ロボティックプロセスにアクセスして、1または複数のパラメータを含むコードを調達し、前記1または複数のパラメータに従って1または複数の入力フィールドを含むローカルロボティックプロセスを生成すること、
前記ロボティックプロセスエンジンによって、前記ローカルロボティックプロセスの前記1または複数の入力フィールドを介して1または複数の入力引数を受信して、構成を生成すること、
前記ロボティックプロセスエンジンによって、前記構成を利用して前記ローカルロボティックプロセスを実行することであって、前記ローカルロボティックプロセスの前記実行は、前記分散パッケージ型ロボティックプロセスを変更することなく、前記分散パッケージ型ロボティックプロセスの実行をミラーリングする、こと、
を含む、方法。
【請求項12】
前記ロボティックプロセスエンジンは、前記ローカルロボティックプロセスについて、前記分散パッケージ型ロボティックプロセスとは別に、前記構成を保存する、請求項11に記載の方法。
【請求項13】
前記ロボティックプロセスエンジンは、前記ローカルロボティックプロセスの実行前に、前記1または複数の入力引数のうち少なくとも1つの要求される入力の受信を要求する、請求項11に記載の方法。
【請求項14】
前記ロボティックプロセスエンジンは、前記ローカルロボティックプロセスが削除されたときに前記構成を削除する、請求項11に記載の方法。
【請求項15】
前記1または複数のパラメータは、前記分散パッケージ型プロセス内の特徴、範囲、特性または条件を定義するメカニズムを含む、請求項11に記載の方法。
【請求項16】
前記1または複数の入力引数は、単純または複雑な形式の設定、初期設定またはデフォルト設定を含む、請求項11に記載の方法。
【請求項17】
前記1または複数の入力フィールドは、前記1または複数のパラメータの異なるタイプそれぞれに対して設けられかつ対応する入力引数を受信するプロセス構造を含む、請求項11に記載の方法。
【請求項18】
前記分散パッケージ型プロセスは、コンピューティングプラットフォームからのロボットまたはロボティックプロセスを含む、請求項11に記載の方法。
【請求項19】
コンピューティングデバイスは、前記コンピューティングプラットフォームと通信するローカルコンピューティングシステムを含む、請求項18に記載の方法。
【請求項20】
前記ロボティックプロセスエンジンは、前記ローカルコンピューティングシステム内で前記ロボティックプロセスを実行する、請求項19に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2021年1月15日に出願された米国非仮出願第17/150,607号および2020年9月8日に出願された米国仮出願第63/075,620号の利益を主張するものであり、これらは参照により完全に記載されているかのように組み込まれる。
【0002】
デザインコンピューティングプラットフォームは、開発者がロボティックプロセスオートメーション(RPA)ワークフローを設計、パッケージ化し、そしてローカルコンピューティングデバイスに転送することを可能にする。これらのRPAワークフローは自己完結型であり、特定のタスクにのみ使用され得る。しかし、RPAワークフローは、ローカルコンピューティングデバイス内のわずかに異なるタスクなどにRPAワークフローを再利用できるように、(RPAワークフロー生成の基盤となる)デザインコンピューティングプラットフォームを再構成する必要がある。そのため、ローカルコンピューティングデバイス内においてRPAワークフローを操作するための、改良された構成技術を提供することが望まれる。
【発明の概要】
【0003】
1または複数の実施形態によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、メモリおよびプロセッサを含む。メモリは、ロボティックプロセスエンジンのためのプロセッサ実行可能命令を格納する。ロボティックプロセスエンジンは、分散パッケージ型ロボティックプロセスにアクセスしてコードを調達し、ローカルロボティックプロセスを生成する。このコードは、パラメータを含み、上記ローカルロボティックプロセスは、上記パラメータに従った入力フィールドを含む。ロボティックプロセスエンジンは、ローカルロボティックプロセスの入力フィールドを介して入力引数を受信して構成を生成し、この構成を利用してローカルロボティックプロセスを実行する。ローカルロボティックプロセスの実行は、分散パッケージ型ロボティックプロセスを変更することなく、分散パッケージ型ロボティックプロセスの実行をミラーリングする。
【0004】
1または複数の実施形態によれば、上記のコンピューティングデバイスの実施形態は、方法、装置、システムおよび/またはコンピュータプログラム製品として実施され得る。
【0005】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【図面の簡単な説明】
【0006】
【
図1A】1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、動作または実行の説明図である。
【0007】
【
図1B】1または複数の実施形態によるRPAの開発、設計、動作または実行の別の説明図である。
【0008】
【
図1C】1または複数の実施形態によるコンピューティングシステムまたは環境の説明図である。
【0009】
【
図2】1または複数の実施形態によるシステムの説明図である。
【0010】
【
図3】1または複数の実施形態によるロボティックプロセスエンジンによって実行されるプロセスフローを示すブロック図である。
【0011】
【
図4】1または複数の実施形態によるロボティックプロセスエンジンによって実行されるプロセスフローを示すブロック図である。
【0012】
【
図5】1または複数の実施形態によるユーザーインターフェースを示す図である。
【0013】
【
図6】1または複数の実施形態によるユーザーインターフェースを示す図である。
【0014】
【
図7】1または複数の実施形態によるユーザーインターフェースを示す図である。
【発明を実施するための形態】
【0015】
(詳細な説明)
1または複数の実施形態によるロボティックプロセスエンジンが、本明細書で開示される。ロボティックプロセスエンジンは、分散パッケージ型ロボティックプロセスのローカル型構成を行うソフトウェアおよび/またはハードウェアを含む。より詳細には、ロボティックプロセスエンジンは、ローカルコンピューティングシステムにおいて分散パッケージ型ロボティックプロセスを操作するための向上した構成技術のための、特定の構成およびツーリングロボティックプロセスオートメーション方法を提供する。ロボティックプロセスエンジンは、ハードウェア(例えば、プロセッサ)およびソフトウェア(例えば、ハードウェアに必然的に根付いたプロセッサ実行可能コード)の組み合わせであり得る。
【0016】
これに関連して、構成およびツーリングロボティックプロセスオートメーション方法は、異なる構成に関して、分散パッケージ型ロボティックプロセス(例えば、ロボット、ロボティックプロセス、および/またはデザインコンピューティングプラットフォームに由来するRPAワークフロー)を再利用するためのフレームワーク/メカニズムを含む。フレームワーク/メカニズムは、分散パッケージ型ロボティックプロセスを特定するプロセスリスト(例えば、ロボットトレイで提供され得る)を含み得る。分散パッケージ型ロボティックプロセスは、一旦ローカルに格納されると、分散パッケージ型ロボティックプロセスのそれぞれを1または複数の異なる構成に関して実行させるようにサイクルされ得る。構成は、分散パッケージ型ロボティックプロセスのそれぞれに「フィード」することができ、分散パッケージ型ロボティックプロセスが構成に従って(例えば、開発者/オーケストレータの必要に応じて)再利用されるようになる。このように、ロボティックプロセスエンジンの構成およびツーリングロボティックプロセスオートメーション方法は、デザインコンピューティングプラットフォームおよびローカルコンピューティングシステムに関連して、分散パッケージ型ロボティックプロセスの多段階データ操作および異なる構成を含む。
【0017】
一例の操作において、ロボティックプロセスエンジンは、分散パッケージ型ロボティックプロセスにアクセスしてコードを調達し、ローカルロボティックプロセスを生成する。上記コードは、パラメータを含み、ローカルロボティックプロセスは、上記パラメータに従った入力フィールドを含む。ロボティックプロセスエンジンは、ローカルロボティックプロセスの入力フィールドを介して入力引数を受信して構成を生成し、この構成を利用してローカルロボティックプロセスを実行する。ローカルロボティックプロセスの実行は、分散パッケージ型ロボティックプロセスを変更することなく、分散パッケージ型ロボティックプロセスの実行をミラーリングする。ロボティックプロセスエンジンの技術的な効果および利点は、任意の基盤となるコード(例えば、分散パッケージ型ロボティックプロセスに関連するパラメータまたはデフォルト値)の変更無く分散パッケージ型ロボティックプロセスを再利用できることを含む。
【0018】
本明細書に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「動作的に結合されている」とは、オブジェクトが連結されていることを意味し得るが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用され得る。「AまたはB」への言及が用いられる場合、A、B、またはAおよびBが含まれ得、このような様態でより長い羅列に拡張され得る。X/Yという表記を使用する場合、XまたはYを含み得る。あるいは、X/Yという表記を使用する場合、XおよびYを含み得る。X/Yという表記は、上記に説明した論理により、同様により長い羅列に拡張され得る。
【0019】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行100の説明図である。デザイナ102は、スタジオ、1または複数のエンジン(例えば、ロボティックプロセスエンジン)を含むオンラインプラットフォーム、開発環境などとも呼ばれ、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択物(複数可)から、ロボットは、ユーザーまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、長方形、円、多角形、自由形などの多次元の形状が、UIロボットの開発およびランタイムに利用され得る。
【0020】
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、JavaScript object notation(JSON)形式、C#、C++、Silverlightなどであり得る。
【0021】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなど(例えば、任意のフォーマットの文書ファイルなどの非構造化データのスクリプト)が含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態を実行時に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの挙動を決定するように構成され得る。
【0022】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対して透過的なUIを自動化させ得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータとも呼ばれる)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、オンラインプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォーム(例えば、デザインコンピューティングプラットフォーム)を自動化するように複数のロボットに指示または命令するための中央または半中央点として機能し得る。
【0023】
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の生成および維持を含み得る。展開は、割り当てられたロボットへのパッケージバージョンの(実行のための)配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0024】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108の動作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110の動作の場合、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。アンアテンディッド108またはアテンディッド110ロボットは、モバイルコンピューティング環境またはモバイルデバイスの環境において動作または実行し得る。
【0025】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する実行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0026】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、例えば高密度(HD)環境などにおいて最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットにおいても使用可能であり得る。
【0027】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティに専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し得、コンダクタ104と実行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、信頼され得、ロボット(複数可)または自動化エグゼキュータ106のための資格情報を管理し得る。
【0028】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、信頼され得、ロボットの資格情報を管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0029】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を要求し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0030】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、特定、および追跡をより容易に実行するのに役立つ。このようにして、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動が構成され得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、任意のDPIにおいて実行され得る。デザイナ102からのプロジェクトも、ブラウザのズームレベルから独立し得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態では、DPIを無効にし得る。
【0031】
図1Bは、RPAの開発、設計、運用、または実行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130(例えば、ロボティックプロセスエンジン)を使用してアクティビティを行い得る。他のドライバ132が、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。他のドライバ132には、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
【0032】
図1BのRPA開発、設計、運用、または実行120の1または複数の実施形態によると、スタジオコンポーネントまたはモジュール122は、ロボットによって実行されるであろうプロセス(ロボティックプロセスなど)を設計し得る。さらに、スタジオコンポーネントまたはモジュール122は、設計されたプロセスを実行のためにロボティックプロセスエンジンに渡し得る。したがって、ロボティックプロセスエンジンのコンピューティング環境がスタジオコンポーネントまたはモジュール122を含まない場合でも、ロボティックプロセスエンジンは、設計されたものを組み込むことができることに留意されたい。このようにして、例えば、設計されたプロセスは、スタジオコンポーネントまたはモジュール122が既にローカルに実装されている必要なしに、調達、購入、および/または取引され得る。実際、設計されたプロセスは、アプリケーションまたはインストーラ(例えば、ロボティックプロセスエンジンは、ローカルコンピュータ上の内部にインストールされて実行されるための設計のための「オペレーティングシステム」である)と非常によく似た動作および挙動をする、自動化のスタンドアロンユニットとみなされ得る)。
【0033】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140(例えば、オンラインプラットフォームおよび/またはロボティックプロセスエンジンをサポートするハードウェア)の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの汎用または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144は、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0034】
メモリ146は、プロセッサ(複数可)144によって実行または処理される情報、命令(例えば、分散パッケージ型ロボティックプロセスおよび構成と共に、ロボティックプロセスエンジンのプロセッサ実行可能命令)、コマンド、またはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であり得、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0035】
通信装置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もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0036】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを用いたタッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0037】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、コンピューティングシステムまたは環境140と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に動作してもよい。
【0038】
メモリ146は、1または複数のプロセッサ(複数可)144によって実行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納し得る。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション特有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。例えば、ロボティックプロセスエンジンは、モジュール158および160のうちの1または複数に実装されて、特定の構成およびツーリングロボティックプロセスオートメーション方法をコンピューティングシステムまたは環境140に提供し得る。
【0039】
コンピューティングシステムまたは環境140は、オンラインプラットフォーム、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0040】
本明細書に記載された例では、モジュールは、カスタムの超大型集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0041】
モジュールは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。特定された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成され得るコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの実行可能は、論理的に結合されるとモジュールを構成するように、異なる位置において共に配置され得るかまたは格納され得る。
【0042】
実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。動作データまたは機能データは、本明細書中においてモジュール内で特定および図示され得、適切な形態において具現化され得、任意の適切なタイプのデータ構造内において組織化され得る。
【0043】
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装の様態で構成され得る。コンピュータプログラムは、互いに動作可能な通信を行い、情報または指示を渡すためのモジュールによって構成され得る。
【0044】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。
【0045】
次に
図2~4に目を向けると、ロボティックプロセスエンジンのコンポーネントおよび操作が、1または複数の実施形態に従って説明される。
図2は、システム200(例えば、分散パッケージ型ロボティックプロセスのローカル型構成を行うソフトウェアおよび/またはハードウェア)の説明図である。
図2に示すように、システム200は、ロボティックプロセスエンジン220を動作させるコンピューティングデバイス210を含む。ロボティックプロセスエンジン220は、ロボットトレイ222と、ロボット224と、ローカルロボティックプロセス226と、構成228とを含む。システム200は、プロセスリスト232と、ロボティックプロセス234と、ロボット236とを含むコンピューティングプラットフォーム230を含む。システム200は、本明細書で説明するように、オーケストレータ242を含む中継プラットフォーム240を含む。さらに、システム200の各項目(またはコンポーネント)について単一のブロックが示されているが、その単一のブロックは、その項目(またはコンポーネント)の1または複数を表し、本明細書において、単数形と複数形は互換的に用いられ得る。
【0046】
図1のコンピューティングシステムまたは環境140の一例であるコンピューティングデバイス210は、(矢印Bで示すように)コンピューティングプラットフォーム230と通信する。コンピューティングデバイス210は、それぞれが少なくともプロセッサ、メモリ、およびユーザーインターフェースを備えたディスプレイを含む、1または複数のユーザーデバイスを示す。コンピューティングデバイス210の例は、限定されないが、パーソナルコンピュータ、PDA、携帯電話、タブレットコンピューティングデバイス、モバイルデバイス、デスクトップデバイスおよびスマートフォンを含む。コンピューティングプラットフォーム230は、ネットワーク、サーバー、ストレージサービス、オペレーティングシステム、データベースサービス、およびセキュリティサービス(例えば、ロボティックプロセスエンジン220)をコンピューティングデバイス210に提供する、1または複数のソフトウェア、インフラストラクチャ、プラットフォームに基づくサービスを示す(例えば、コンピューティングプラットフォーム230は、クラウドシステムおよび/またはサービスであり得る)。
【0047】
コンピューティングデバイス210およびコンピューティングプラットフォーム230は、中継サーバー240を介して任意選択的に通信し得る(矢印C1およびC2で示すように;中継サーバー240の破線の境界線は、このコンポーネントが任意選択であることを示す)ことに留意されたい。中継サーバー240は、コンピューティングデバイス210および/またはコンピューティングプラットフォーム230と構造的に類似し得、オーケストレータ242を内部に有し得る。システム200内の矢印B、C1およびC2は、有線および/または無線の接続、ネットワークなどを介して送信される通信を示す点にも留意されたい。
【0048】
一般的に、ロボティックプロセスエンジン220は、分散パッケージ型ロボティックプロセス(例えば、ロボット236、ロボティックプロセス234、および/またはデザインコンピューティングプラットフォームに由来するRPAワークフロー)のローカル型構成を実行するソフトウェアおよび/またはハードウェアである。したがって、
図2の例に示すように、ロボティックプロセスエンジン220は、コンピューティングデバイス210内に格納および実行される。
【0049】
1または複数の実施形態によると、ロボティックプロセスエンジン220のローカル型構成およびプロセス動作は、ハードウェアおよび/もしくはプロセッサの実行可能命令、コンピュータコードならびに/またはプログラミング言語によって実装される。さらに、1または複数の実施形態によると、ロボティックプロセスエンジン220のローカル型構成およびプロセス動作は、(オーケストレータ242および
図1のコンダクタ104が)分散パッケージ型ロボティックプロセスを再利用することを可能にするフレームワーク/メカニズムの一部であり得る。
【0050】
ロボティックプロセスエンジン220は、分散パッケージ型ロボティックプロセスのためのローカル化された分散プロセス構成をサポートするために、より多くのプロセッサ/デバイス/システム上で動作し得る。例えば、ロボティックプロセスエンジン220は、コンピューティングプラットフォーム230および中継サーバー240内など、1または複数のシステム、デバイス、および環境にわたって、複数の繰り返しにおいて任意に実行され得る。例えば、ロボティックプロセスエンジン220は、コンピューティングプラットフォーム230に対してローカルなものとして示されているが、ロボティックプロセスエンジン220は、追加的にまたは代替的に、コンピューティングプラットフォーム230に対してローカルなものであってもよいし、あるいはシステム200の他のコンポーネントと通信しているスタンドアロンのハードウェア/ソフトウェアの組み合わせとしてもよい。
【0051】
プロセスリスト232は、コンピューティングプラットフォーム230上の分散パッケージ型すべてのロボティックプロセス(例えば、ロボティックプロセス234およびロボット236)を項目化したものであり、オーケストレータ242およびロボティックプロセスエンジン220に対して利用可能である。ロボティックプロセス234は、コンピューティングプラットフォーム230から発生したロボティックプロセスおよび/またはRPAワークフローであり得、コンピューティングプラットフォーム230は、コンピューティングプラットフォーム230と関連付けられたパラメータを定義する。ロボット236(例えば、ロボット224)は、アプリケーション、アプレットまたはスクリプトなどであり得、パラメータおよび関連するデフォルト値を定義することもできる。ロボット236は、本明細書で説明するように、基礎となるオペレーティングシステム(OS)またはハードウェアに対して透過的なUIを自動化するように構成され得る。このように、ロボティックプロセス234およびロボット236は、コンピューティングプラットフォーム230においてまたはコンピューティングプラットフォーム230内において構築された分散パッケージ型ロボティックプロセスであり得る。
【0052】
例えば、コンピューティングプラットフォーム230は、1または複数の分散パッケージ型ロボティックプロセス(例えば、プロセス234およびロボット236を含む)を格納し、これらの分散パッケージ型ロボティックプロセスは、コンピューティングプラットフォーム230によってさらに分散される。実施形態では、ロボティックプロセス234(例えば、またはロボット236)は、1または複数のパラメータおよび関連するデフォルト値を含む。パラメータは、ロボティックプロセス234内の特徴、範囲、特性、条件および/または他のタイプを定義するメカニズムであり、デフォルト値は、パラメータのための事前定義された引数である。パラメータは、1または複数の入力引数を受容する1または複数の入力フィールドを作成するためにロボティックプロセスエンジン220によって使用される。1または複数の入力引数は、設定、初期設定および/またはデフォルト設定を含み得る。例えば、入力引数は、値(例えば、初期化された変数またはリテラルなど)、文字列、ブール状態、および/またはパラメータを定義する命令であり得る。入力フィールドは、異なるタイプのパラメータにそれぞれ対応し、対応する入力引数を受け取るプロセス構造であり得る。例えば、パラメータがブール演算子である場合、入力フィールドは2つのチェックボックスを含み得、一方、入力引数は各ブール状態に関係するチェックマークであり得る。入力フィールドの他の例は、限定されないが、文字列を受信するためのテキストフィールド、数字ピッカー、および日時を選択するためのデートピッカーを、その他の複合的な形態と共に含む。
【0053】
ロボットトレイ222は、分散パッケージ型ロボティックプロセス(例えば、ロボット224およびローカルロボティックプロセス226)の少なくともリストの表示、アクセス、操作および構成が行われる機能インターフェースフレームワークを提供する。例えば、ロボットトレイ222は、CV操作またはMLモデルに関連して、ユーザーインターフェースロボットの開発および実行時に形状を多次元で視覚的に表示するユーザーインターフェースとみなされ得る。ロボット224は、ロボット236のコードのコピーの一例であり得、ローカルロボティックプロセス226は、ロボティックプロセス234のコードのコピーの一例である。
【0054】
構成(複数可)228は、初期設定および/またはデフォルト設定を1または複数の入力引数として格納することができ、これらの設定は、任意のローカル分散パッケージ型ロボティックプロセス(例えば、ロボット224およびローカルロボティックプロセス226)を実行するためにロボティックプロセスエンジン220によって一般的に使用される。1または複数例では、構成(複数可)228は、HTML形式および/またはJavaScript JSON形式であり得る。1または複数の実施形態によると、ロボティックプロセスエンジン220は、単一の引数が複雑または単純(例えば、単純または複雑な形態の設定、初期設定、またはデフォルト設定)であることを可能にし得る。単純に関しては、データの各インスタンス(例えば、従業員名)は、単一の引数で渡され得る。複雑に関しては、多数のデータインスタンスおよびタイプ(例えば、従業員名、頻度、日付など)が、1つの引数に渡され得る。構成(複数可)228は、1または複数のユーザーの要件(例えば、同じチームに属するユーザーがコンピューティングデバイス210上の同じ構成228にアクセスできる)に応じて、1または複数のユーザーがアクセスできる場所(例えば、コンピューティングデバイス210上)に格納され得る。いくつかのケースでは、ロボティックプロセス234がオーケストレータ242によって格納される場合、ロボティックプロセス234は、複数のユーザーによってアクセスされ、構成228およびローカルのロボティックプロセス226をローカルに(例えば、コンピューティングデバイス210上に)で生成するために使用され得る。例えば、ここで
図3に目を向けると、1または複数の実施形態による、プロセスフロー300を示すブロック図が示される。より詳細には、プロセスフロー300は、
図1のコンピューティングデバイス210のロボティックプロセスエンジン220による、分散パッケージ型ロボティックプロセスの局所的な構成のための方法の実施例である。
【0055】
プロセスフロー300は、ブロック310から始まり、ここで、ロボティックプロセスエンジン220がロボティックプロセス234にアクセスする。一般的に、ロボティックプロセスエンジン220は、プロセスリスト232から任意の分散パッケージ型ロボティックプロセス(例えば、ロボティックプロセス234またはロボット236)を(例えば、ロボットトレイ222を介して)選択し、その選択された分散パッケージ型ロボティックプロセスのコードのコピーをダウンロード/受信し得る。このコードのコピーは、少なくとも1または複数のパラメータを含む。コンピューティングデバイス210は、コードのコピーに基づいて、ローカルロボティックプロセス226またはロボット224を相応に生成し得る。
【0056】
ブロック310の例では、ロボティックプロセスエンジン220は、ロボティックプロセス234がプロセスリスト232を介してアクセスされ得るように、コンピューティングプラットフォーム230と通信しているコンピューティングデバイス210上にあり得る。ロボティックプロセス234は、コンピューティングデバイス210にプッシュ/公表されたかまたはコンピューティングプラットフォーム230から(例えば、中継サーバー240によって)プルされた/公表されたプロセスリスト232から選択され得る。ロボティックプロセスエンジン220は、1または複数のパラメータを含むロボティックプロセス234のコードのコピーを利用して、1または複数のパラメータに対応する1または複数の入力フィールドを含むローカルロボティックプロセス226を生成して格納する。したがって、ロボティックプロセスエンジン220の技術的効果および利点は、ロボティックプロセス234を変更することなく、ロボティックプロセス234と同様の構造を有するローカルロボティックプロセス226を作成し得ることを含む。
【0057】
ブロック330において、ロボティックプロセスエンジン220は、1または複数の入力引数を受信する。1または複数の入力引数は、構成228を生成するために、ローカルロボティックプロセス226の1または複数の入力フィールドにそれぞれ対するものである(例えば、コンピューティングデバイス210は、構成228をその中のメモリ上に作成/構築/格納し得る)。構成228は、受信された1もしくは複数の入力引数に特有の新たに生成された構成ファイルであり得、かつ/または、特定の1組の入力を有するローカル構成ファイルと呼ばれ得る。したがって、ロボティックプロセスエンジン220の技術的効果および利点は、ロボティックプロセス234に関連する任意のデフォルト値を変更することなく構成228を作成し得ることを含む。
【0058】
ブロック370において、ロボティックプロセスエンジン200は、構成228を利用して、ローカルロボティックプロセス226を(例えば、コンピューティングデバイス210内において)実行する。ローカルロボティックプロセス226は、コンピューティングデバイス210のメモリにアクセスして、構成228から1または複数の入力引数を取得し得る。このように、プロセスフロー200およびロボティックプロセスエンジン220の技術的効果および利点は、ロボティックプロセス234またはそのデフォルト値を変更することなく、ロボティックプロセス234をローカルロボティックプロセス226として再利用することを可能にすることを含む(例えば、ローカルロボティックプロセス226は、実行時に、ロボティックプロセス234の実行をミラーリングする)。
【0059】
1または複数の実施形態によれば、ロボティックプロセスエンジン220が複数のローカルロボティックプロセス226(および/またはロボット224)を有する場合、ローカルロボティックプロセス226は、1または複数の構成を使用して、複数のローカルロボティックプロセス226の各プロセスをサイクルおよび実行し得る。したがって、ロボティックプロセスエンジン220の技術的効果および利点は、任意の基礎となるコード(例えば、パラメータまたは関連するデフォルト値)を変更することなく、分散パッケージ型ロボティックプロセスをプロセスリスト232内においてローカルに再利用することを可能にすることを含む。
【0060】
図4に目を向けると、1または複数の実施形態による、プロセスフロー400を示すブロック図が示される。より詳細には、プロセスフロー400は、
図1のコンピューティングデバイス210のロボティックプロセスエンジン220による、分散パッケージ型ロボティックプロセスの局所的構成のための方法の実施例である。
【0061】
プロセスフロー400は、ブロック410から始まり、ここで、ロボティックプロセスエンジン220は、ロボティックプロセス234にアクセスする。実施形態によると、ロボティックプロセス234は、オーケストレータ242によってコンピューティングプラットフォーム230から取得され得る。
【0062】
一例では、VAT計算機プロセス(例えば、ロボティックプロセス234)がコンピューティングプラットフォーム230内で開発され、「消費税率(VAT Rate)」パラメータがVAT計算機プロセスに追加される。「消費税率」パラメータのデフォルト値は、10%に設定され得る。VAT計算機プロセスは、プロセスリスト232のようなプロセスリスト内において公表され得る。VAT計算機プロセスがオーケストレータ242に公表されると、オーケストレータ242は、デフォルト値を上書きし得る(例えば、ルーマニアでは19%、フランスでは20%に設定する)。
【0063】
次に、ロボティックプロセス234は、ロボティックプロセスエンジン220によってオーケストレータ242から取得され得る。一般的に、ロボティックプロセスエンジン220は、オーケストレータ242内の任意の分散パッケージ型ロボティックプロセス(例えば、ロボティックプロセス234)を(例えば、ロボットトレイ222を介して)選択し、その選択された分散パッケージ型ロボティックプロセスのコードのコピーをダウンロード/受信し得る。1または複数の実施形態によると、ロボティックプロセスエンジン220は、ロボティックプロセスエンジン220が許可されている任意の分散パッケージ型ロボティックプロセスを選択し得る。次に、コンピューティングデバイス210は、コードのコピーに基づいてローカルロボティックプロセス226を相応に作成し、ローカルロボティックプロセス226は、ロボティックプロセス234をミラーリングする1または複数の入力フィールドを含む。1または複数の入力フィールドは、ロボティックプロセス234のパラメータをミラーリングし得ることに留意されたい。
【0064】
ブロック410の例を続けると、VAT計算機プロセスがプロセスリスト232内およびオーケストレータ242中に公表された後、オーケストレータ242は、デフォルト値を上書きすることによって、異なる国(例えば、ルーマニアおよびフランス)におけるコンピューティングデバイス210(およびロボティックプロセスエンジン220)の異なるローカル反復に分散されるべきVAT計算機プロセスを準備する。そして、VAT計算機プロセス(ローカルロボティックプロセス226によって表される)は、ルーマニアおよびフランスにおけるコンピューティングデバイス210のローカル反復に到着する。
【0065】
ブロック430、440、および450において、ロボティックプロセスエンジン220は、構成228を生成するために、1または複数の入力フィールドを介して1または複数の入力引数を受信し、ローカルロボティックプロセス226による使用のためにコンピューティングデバイス210にその構成228を設定し、ローカルロボティックプロセス226に関して構成228を保存する。構成228は、エンドユーザーが、ロボティックプロセス234を変更することなく、ローカルロボティックプロセス226を構成することを可能にする。
【0066】
セット操作により、構成228をコンピューティングデバイス210の揮発性メモリにローカルにバッファリングして、ローカルロボティックプロセス226を直ちに実行し得るようにする。これについて、プロセス構成は、コンピューティングシステム210上で実行される任意の分散パッケージ型ロボティックプロセスへの入力として(メモリバッファ内などに)キューイングされる。
【0067】
ブロック460の保存動作は、構成228が保存操作の下でコンピューティングデバイス210の永続的メモリにローカルに保存/格納されるという点で、ブロック450のセット操作とは別にされ得る。いくつかの実施形態では、構成228は、保存操作の下で、リモートデータベースに格納され得る。保存された任意の構成(例えば、構成228を含む)は、ロボットトレイ222において視認され得る。
【0068】
ブロック410のVAT計算機プロセスの例を続けると、VAT計算機プロセス(ローカルロボティックプロセス226によって表される)が、ルーマニアおよびフランスのコンピューティングデバイス210のローカル反復に到着したとき、中継サーバー240および/またはコンピューティングプラットフォーム230のロボティックプロセス234上の公表されたバージョンに影響を与えることなく、「消費税率」パラメータが変更され得る。さらに、ローカルに設定された値は、ローカルでしか利用できない(例えば、他のローカルのエンドユーザーが利用しない可能性が高いため)。したがって、「消費税率」パラメータは、複数のオーケストレータ242にわたって分散され得るデフォルト値を受信し得、複数のオーケストレータ242は、複数のエンドユーザーグループ(例えば、その後、彼らは、彼ら自身のためにのみ利用可能なローカル値を有する)にわたって、デフォルト値を変更/提供し得る。
【0069】
ブロック465において、ロボティックプロセスエンジン220は、1または複数の入力引数のうち少なくとも1つの要求される入力の受信を要求する(すなわち、ローカルロボティックプロセス226の実行の前に)。ローカルロボティックプロセス226を開始するとき、ロボティックプロセスエンジン220は、構成228の保存された入力データを用いて初期プロセスを実行し得る。不足している入力データは、それが要求されれば入力を促され得る。ローカルロボティックプロセス226を再利用するために要求される入力は、異なるユーザーに対して異なり得る。
【0070】
例えば、
図5に目を向けると、1または複数の実施形態によるユーザーインターフェース500が示される。ユーザーインターフェース500(例えば、ロボティックプロセスエンジン220のプロセス詳細ページ)は、少なくともパネル510を含み、このパネルは、1または複数の入力引数を提出するためのフィールドを含む。ユーザーインターフェース500は、ボタン520を含み、これにより、ロボティックプロセスエンジン220が要求される入力引数を提供し(例えば、初期であるか、またはローカルロボティックプロセス226の実行前)、かつ/または、1もしくは複数の入力引数を構成228に保存し得る。示されているように、「頻度」が7に設定されており、会議をスケジュールするための入力フィールドには、単一のユーザー(例えば、「人1」)のみが入力される。
【0071】
このように、1または複数の実施形態によると、ユーザーインターフェース500は、入力引数を取る「開始プロセス」をサポートし得る。これに関連して、ロボティックプロセスエンジン220は、(値が構成228によって以前に提供されていない場合に)値の入力を促す。次に、ユーザーは、ユーザーインターフェース500から入力引数を設定することができ、これらの入力引数は、後にプロセスを開始する際に使用される。ユーザーは、引数の種類に基づいて、有効な値のみを入力し得る。入力引数が要求される場合、ユーザーは、入力フィールドに有効な値を入力しなければ、いずれのプロセスも開始できない。入力フィールドには、ローカルのデフォルト値があらかじめ入力され得る。ユーザーは、入力引数を追加せず(例えば、スキップ)にプロセスを実行し得る。
【0072】
ユーザーインターフェース500は、「1対1」の会議スケジューリングプロセスのためのプロセス構成設定を構成することを一般的に示す。「1対1」の会議スケジューリングプロセスのためのプロセス構成設定のフィールドは、会議をいつ、どのくらいの期間、誰と、どのくらいの頻度で開催するかなどを含む。プロセス構成設定は、(例えば、ローカルロボティックプロセス226である)選択されたプロセスを再利用する必要性に応じて、パネル510内で構成され得る。ボタン520をクリックして「設定を保存」した後、構成228が(例えば、HTMLおよび/またはJSON形式で)生成され、使用のために設定され、および/またはメモリに格納される。プロセス構成設定は、設計時に操作され、実行時に利用されることに留意されたい。さらに、プロセス構成設定の任意の変更は、構成228を修正するか、または代替的に「1対1」の会議スケジューリングプロセスのための新しい構成を作成することに留意されたい。次に、異なるユーザーが異なるプロセス構成228を生成し、それはローカルロボティックプロセス226に供給され得る。
【0073】
ブロック470において、ロボティックプロセスエンジン220は、構成228を利用して、ローカルロボティックプロセス226(例えば、コンピューティングデバイス210内)を実行する。ローカルロボティックプロセス226の実行は、構成228を変更することなく、ロボティックプロセス234の実行をミラーリングする。動作において、ローカルロボティックプロセス226は、コンピューティングデバイス210のメモリにアクセスして、構成228の1または複数の入力引数を取得し得る。ローカルロボティックプロセス343は、ユーザーの必要性を詳細に示す1または複数の入力引数を利用する。1または複数の実施形態によると、ローカルロボティックプロセス226は、その後、実行後に出力パラメータを表示させ得る。出力パラメータは、コンピューティングデバイス210内に保存され得、また、ユーザーインターフェースの「履歴」セクションを介して視認され得る。
【0074】
ブロック480において、ロボティックプロセスエンジン220は、ローカルロボティックプロセス226を更新する。すなわち、構成228(および内部の引数)を使用して、ロボティックプロセスエンジン220(例えば、コンピューティングプラットフォーム230上)のための新しい構成パッケージを作成し得る。したがって、ロボティックプロセス234が更新されると、保存されたすべての構成は、この更新されたパッケージを使用し得る。
【0075】
ブロック490において、ロボティックプロセスエンジン220は、ローカルロボティックプロセス226を削除する。したがって、ローカルロボティックプロセス226が削除されると、保存されたすべての構成が削除される。すなわち、ユーザーは、既存の構成228を削除することができ、またはユーザーは、ローカルロボティックプロセス226を削除することができ、順に、構成228も削除される。
【0076】
1または複数の実施形態によると、ロボティックプロセスエンジン220は、プロセスリスト234および関連するすべての分散パッケージ型ロボティックプロセスを取得し得る。さらにロボティックプロセスエンジン220は、実行のために内部の分散パッケージ型ロボティックプロセスのそれぞれをサイクルし得る。このようにして、プロセスリスト232の各分散パッケージ型ロボティックプロセスは、ローカルにコピーされ、構成228の入力引数を供給される。
【0077】
ロボティックプロセスエンジン220について、
図6~7を参照してさらに説明する。
図6に示すように、1または複数の実施形態によると、ユーザーインターフェース600は、少なくともローカルプロセスリスト610、設定620および編集ボタン630を含む。ローカルプロセスリスト610は、ロボティックプロセスエンジン220に格納されたすべての分散パッケージ型ロボティックプロセスのリストを含み、これは、ロボティックプロセスエンジン220によって選択、アクセスおよび操作され得る。設定620は、特定の分散パッケージ型ロボティックプロセスがいつ、どこで、どのように、どのような条件下で実行されるのであろうかを記述する。例えば、「アイドルを待つ(Wait For Idle)」が特定の分散パッケージ型ロボティックプロセスに対して選択された場合、そのプロセスは、コンピューティングデバイス210がアイドルモードにあるときにトリガされよう。編集ボタン630は、再利用のために任意のプロセスを構成するための「編集」オプションを提供する。編集ボタン630をクリックすることにより、(例えば、
図5に関して説明されたように)設定インターフェースが視認される。
【0078】
図7に示すように、1または複数の実施形態によると、ユーザーインターフェース700は、パネル720を含む例示的なロボットトレイを示す。ロボットトレイは、プロセスのリストがインポートされ、パネル720に表示されるフレームワーク機能性を提供する。
【0079】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能な命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施例において、ブロックに記載されている機能は、図に記載されている順序とは異なる場合がある。例えば、連続して表示されている2つのブロックは、関係する機能に応じて、実際には実質的に同時に実行され得、またはブロックが逆の順序で実行され得る。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行動を実行するか、または特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特別な目的のハードウェアに基づくシステムによって実装され得ることに留意されたい。
【0080】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。本明細書で使用されるコンピュータ読み取り可能な媒体は、それ自体が一時的な信号であると解釈されるものではなく、例えば、電波またはその他の自由に伝播する電磁波、導波管またはその他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号である。
【0081】
コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例は、限定されないが、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、コンパクトディスク(CD)およびデジタルバーサタイルディスク(DVD)などの光媒体、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ならびにメモリースティックを含む。プロセッサは、ソフトウェアと関連して、端末、基地局、または任意のホストコンピュータで使用するための無線周波数トランシーバを実装するために使用され得る。
【0082】
本明細書で使用される用語は、ひとえに特定の実施形態を説明するためのものであり、限定することを意図しない。本明細書では、単数形の「a」、「an」、および「the」は、文脈が明確に示す場合を除き、複数形も含むことを意図する。本明細書で使用される「含む(comprises)」および/または「含む(comprising,)」という用語は、記載された特徴、整数、ステップ、操作、要素、および/またはコンポーネントの存在を特定するが、1または複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。
【0083】
本明細書の様々な実施形態の説明は、説明のために提示されたものであるが、開示された実施形態を網羅的に、またはそれに限定することを意図したものではない。当業者であれば、記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実用化もしくは技術的改善を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解できるように選択されたものである。
【国際調査報告】