(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-01
(54)【発明の名称】外部トリガに基づくロボティックプロセスオートメーションワークフローの再開
(51)【国際特許分類】
G06F 9/445 20180101AFI20221124BHJP
G05B 19/042 20060101ALI20221124BHJP
G05B 23/02 20060101ALI20221124BHJP
H04L 67/51 20220101ALI20221124BHJP
H04L 67/60 20220101ALI20221124BHJP
【FI】
G06F9/445
G05B19/042
G05B23/02 Z
H04L67/51
H04L67/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2020553536
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2020-12-17
(86)【国際出願番号】 US2020052129
(87)【国際公開番号】W WO2021067085
(87)【国際公開日】2021-04-08
(32)【優先日】2019-10-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】452 5th Avenue, 22nd Floor, New York,NY 10018,United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ルサヌ レムス
(72)【発明者】
【氏名】クナス リジ
【テーマコード(参考)】
3C223
5B376
5H220
【Fターム(参考)】
3C223AA12
3C223BA03
3C223BB12
3C223CC02
3C223DD03
3C223GG01
5B376AC24
5B376AE02
5B376AE03
5B376AE44
5B376FA19
5H220BB11
5H220CC06
5H220CX01
5H220HH08
5H220JJ12
5H220JJ26
(57)【要約】
ユニバーサルリソースロケータ(URL)を生成するコンピュータシステム。URLは、複数の自動化されたプロセスを含む実行中のワークフロープロセスの少なくとも1つの自動化されたプロセスを再開することに関連付けられる。URLは外部のシステム/アプリケーションに提供される。外部システム/アプリケーションでのトリガイベントに応じて、外部システム/アプリケーションからURLの入力が受信される。URLの入力に基づいて、少なくとも1つのヘッドレスロボットによって少なくとも1つの自動化されたプロセスが再開される。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
1または複数のプロセッサと、
前記1または複数のプロセッサに結合されたメモリと、を備え、
前記メモリは、前記1または複数のプロセッサによって実行されたときに、前記1または複数のプロセッサに以下を実行させるプログラム命令を格納する、システム。
ユニバーサルリソースロケータ(URL)を生成させ、ここで、前記URLは、複数の自動化されたプロセスを含む実行中のワークフロープロセスの少なくとも1つの自動化されたプロセスを再開することに関連付けられ、
外部システム/アプリケーションへ前記URLを提供させ、
前記外部システム/アプリケーションでのトリガイベントに応答して、前記外部システム/アプリケーションからの前記URLの入力を受信させ、
前記URLの入力に基づいて、少なくとも1つのヘッドレスロボットによって前記少なくとも1つの自動化されたプロセスを再開させる。
【請求項2】
前記少なくとも1つの自動化されたプロセスは、中断またはマークされたアイドルである、請求項1に記載のシステム。
【請求項3】
前記少なくとも1つの自動化されたプロセスは、自動化されたプロセスのセットであり、前記URLの入力に基づいて、前記自動化されたプロセスのセットを再開する、請求項1に記載のシステム。
【請求項4】
前記システムは、中央集中型の実行ワークフロープロセスを実行する、請求項1に記載のシステム。
【請求項5】
前記実行ワークフロープロセスは、長期の実行ワークフロープロセスである、請求項1に記載のシステム。
【請求項6】
前記URLの入力の受信は、前記外部システム/アプリケーションによって決定されたビジネスイベントに応答する、請求項1に記載のシステム。
【請求項7】
前記実行中のワークフロープロセスが永続的である、請求項1に記載のシステム。
【請求項8】
プロセッサにより、ユニバーサルリソースロケータ(URL)を生成し、ここで、前記URLは、複数の自動化されたプロセスを含む実行中のワークフロープロセスの少なくとも1つの自動化されたプロセスを再開することに関連付けられ、
プロセッサにより、外部システム/アプリケーションへURLを提供し、
プロセッサにより、前記外部システム/アプリケーションでのトリガイベントに応答して、前記外部システム/アプリケーションからの前記URLの入力を受信し、
プロセッサにより、前記URLの入力に基づいて、少なくとも1つのヘッドレスロボットによって前記少なくとも1つの自動化されたプロセスを再開することを含む、方法。
【請求項9】
前記少なくとも1つのプロセスは、中断またはマークされたアイドルである、請求項8に記載の方法。
【請求項10】
前記少なくとも1つの自動化されたプロセスは、自動化されたプロセスのセットであり、前記URLの入力に基づいて、前記自動化されたプロセスのセットを再開する、請求項8に記載の方法。
【請求項11】
前記実行ワークフロープロセスは、中央集中型の実行ワークフロープロセスである、請求項8に記載の方法。
【請求項12】
前記実行ワークフロープロセスは、長期の実行ワークフロープロセスである、請求項8に記載の方法。
【請求項13】
前記URLの入力の受信は、前記外部システム/アプリケーションによって決定されたビジネスイベントに応答する、請求項8に記載の方法。
【請求項14】
前記実行中のワークフロープロセスが永続的である、請求項8に記載の方法。
【請求項15】
1または複数のプロセッサと、
前記1または複数のプロセッサに結合されたメモリと、を備え、
前記メモリは、前記1または複数のプロセッサによって実行されたときに、前記1または複数のプロセッサに以下を実行させるプログラム命令を格納する、システム。
ユニバーサルリソースロケータ(URL)を受信させ、ここで、前記URLは、複数の自動化されたプロセスを含む実行中のワークフロープロセスの少なくとも1つの自動化されたプロセスを再開することに関連付けられ、
トリガイベントに応答して、少なくとも1つのヘッドレスロボットによって前記少なくとも1つの自動化されたプロセスを再開させるために前記URLを送信させる。
【請求項16】
前記少なくとも1つの自動化されたプロセスは、中断またはマークされたアイドルである、請求項15に記載のシステム。
【請求項17】
前記少なくとも1つの自動化されたプロセスは、自動化されたプロセスのセットであり、前記送信されたURLに基づいて、前記自動化されたプロセスのセットを再開する、請求項16に記載のシステム。
【請求項18】
前記実行ワークフロープロセスは、長期の実行ワークフロープロセスである、請求項16に記載のシステム。
【請求項19】
前記送信されたURLがビジネスイベントに応答する、請求項16に記載のシステム。
【請求項20】
前記実行中のワークフロープロセスが永続的である、請求項16に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2019年10月1日に出願された米国出願第16/590,007号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【背景技術】
【0002】
長時間実行ワークフローは、所望のソフトウェア機能を実行するために、何時間、何日、または何ヶ月などの長期間にわたって持続することができる永続的なワークフローである。このような機能の例としては、承認プロセスがある。これらのワークフローは、外部システムまたはアプリケーションと連携し得る。長時間実行ワークフローを実行するために、断片化された自動化されたプロセス/ジョブをつなぎ合わせることで、ワークフローの長時間稼働動作を実現し得る。
【0003】
これらのワークフローと外部環境/アプリケーションとの間で、より効率的な対話を持つことが、ロボティックプロセスオートメーション環境では望ましい。
【発明の概要】
【0004】
コンピュータシステムは、ユニバーサルリソースロケータ(URL)を生成する。URLは、複数の自動化されたプロセスを含む実行中のワークフロープロセスの少なくとも1つの自動化されたプロセスを再開することに関連付けられる。URLは外部のシステム/アプリケーションに提供される。外部システム/アプリケーションでのトリガイベントに応じて、外部システム/アプリケーションからURLの入力が受信される。URLの入力に基づいて、少なくとも1つのヘッドレスロボットによって少なくとも1つの自動化されたプロセスが再開される。
【図面の簡単な説明】
【0005】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【0006】
【
図1A】ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行の説明図である。
【0007】
【
図1B】RPAの開発、設計、運用、または実行の別の説明図である。
【0008】
【
図1C】コンピューティングシステムまたは環境の説明図である。
【0009】
【
図2】外部システム/アプリケーションと実行中のワークフロープロセスシステムとの間の対話の簡略化された説明図である。
【0010】
【
図3】ユニバーサルリソースロケータ、URLを使用したロボットプロセス(複数可)の再開のフロー図である。
【0011】
【
図4】トピック名を使用したロボットプロセス(複数可)の再開のフロー図である。
【発明を実施するための形態】
【0012】
以下に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、それはXまたはYを含み得る。あるいは、表記X/Yを使用する場合、それはXおよびYを含み得る。X/Y表記は、同一の説明されたロジックを有するより長いリストと同様に拡張され得る。
【0013】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行100の説明図である。デザイナ102は、スタジオ、開発プラットフォーム、開発環境などとして時々参照され、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザーまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、直方体、円、多角形、自由形などの多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0014】
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UI自動化のためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に識別する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語((HTML)、HTML5、拡張可能なマークアップ言語(XML)、Javascript、C#、C++、Silverlightなどであり得る。
【0015】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態を実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。
【0016】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対し透過的なUIを自動化し得る。デプロイメント時には、1または複数のロボット204は、コンダクタ104(オーケストレータ202と呼ばれることもある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するために複数のロボット204を指示または命令するための中央または半中央点として機能し得る。
【0017】
特定の構成では、コンダクタ104は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の作製および維持を含み得る。デプロイメントは、実行のために割り当てられたロボット204へのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として動作することにより、相互接続性を提供し得る。
【0018】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108操作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110操作については、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。
【0019】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する実行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0020】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などで最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットでも使用でき得る。
【0021】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティに特化したいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクタ104と実行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、ロボット(複数可)または自動化エグゼキュータ106のための資格情報を任されて管理し得る。
【0022】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0023】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0024】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、識別、および追跡をより容易に実行するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで実行し得る。また、デザイナ102からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0025】
図1Bは、RPAの開発、設計、運用、または実行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)自動化126は、1または複数のドライバコンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUI自動化のために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UI自動化のために使用されるドライバであり得る。
【0026】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0027】
メモリ146は、プロセッサ(複数可)144によって実行または処理される情報、命令、コマンド、またはデータを記憶するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的な読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的な読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0028】
通信装置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もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0029】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。表示デバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0030】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、それと通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に動作してもよい。
【0031】
メモリ146は、1または複数のプロセッサ(複数可)144によって実行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納してもよい。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。
【0032】
コンピューティングシステムまたは環境140は、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0033】
長時間実行ワークフロー環境では、複数の断片化された自動化されたプロセス/ジョブがつなぎ合わされている。プロセス/ジョブは中断され、異なるインスタンスで再開され、ワークフローに長時間の動作を追加する。プロセス/ジョブの再開は、外部システム/アプリケーション206からのトリガ、例えば、SAPインボイス完了、Salesforsforceトリガなどの外部トリガによってトリガされ得る。
【0034】
長時間実行ワークフローは、以下ではオーケストレーションプロセスとして参照されている。オーケストレーションプロセスは、長時間実行ワークフローのための中央集中型のアプローチである。しかし、オーケストレーションプロセスのための技術は、分散型プロセスに適用され得る。オーケストレーションプロセスには、主に長期的に実行する機能をサポートするために開始するアクティビティの限られたセットが含まれる。オーケストレーションプロセスは、ロボットファームなどのロボット204によって実行される。このプロセスタイプには、長期的に実行されるアクティビティと一緒に動作するようにシリアル化可能であることを証明した後に、追加のアクティビティが追加される。ワークフローコンテキストは、シリアル化され、中央のストアに保存される。オーケストレーションプロセスは、同期ブロッキング(Sync-Blocking)または非同期ブロッキング(Async-Blocking)の方法で起動され得る通常の非UIアクティビティと同様に、非同期ノンブロッキング(Async-Non-Blocking)の方法で起動され得る長時間実行のアクティビティを含み得る。
【0035】
オーケストレーションプロセスは、ヘッドレスロボット204のボット環境で実行されるように構成され得る。ヘッドレスロボット204は、人の関与とは無関係にタスクを実行するアンアテンディッドボット204である。ヘッドレスロボット204は典型的には、スケジュール上またはトリガされたイベントに応答して自動的に起動するようにプログラムされている。以下では、ヘッドレスロボット204の文脈で説明されるが、いくつかの実施形態は、非ヘッドレスロボット204にも適用可能である。
【0036】
ボット204は、オーケストレータ202からそれらに渡された関連するワークフローコンテキスト(開始ジョブまたはスケジュールジョブまたはオーケストレータキュー)を用いて、ボット204を使用してオーケストレータプロセスの複数のインスタンスを実行することができる、長く実行されているアクティビティを有するプロセス/ジョブを実行し得る。
【0037】
図2は、ワークフロープロセスシステムを説明する簡略図である。長時間実行ワークフローシステム200は、オーケストレータ202と、ヘッドレスロボット204
1~204
N(204)とを含む。オーケストレータ202は、ヘッドレスロボット204と通信して管理し、承認処理などの長時間のワークフローを実行する。長期的なワークフローの例は、請求書処理のGLコード承認、見積書割引承認プロセス、ロボット処理されたコンテンツが監査目的のために人によって検証される必要がある検証シナリオ、または信頼性の低いスコアの場合、保険請求プロセス、従業員のオンボーディングプロセスを含む。上記のように、人為的なアクションを含む長時間実行ワークフローの一部は、RPAワークフローがその端末相互間で完了するために再開されなければならないことに基づく他のサードパーティ製システムで実行され得る。また、オーケストレータ202は、外部システムまたはアプリケーション206とも通信する。
図2のシステムにおけるオーケストレータ202は、ワークフローの中央集中型操作を実行するものとして示されている。しかし、以下の実施形態では、非中央集中型ワークフローシステムに適用可能なシグナリングを含む。例えば、長時間実行ワークフローは、バイボット204(アンアテンディッド-通常またはヘッドレス)で分散して実行され得る。
図2は、ヘッドレスロボット204が中央システムに含まれていることを示す、長時間実行ワークフローシステムを示しているが、別のアプローチでは、長時間実行ワークフローの一部をロボット204(クライアントマシン)で実行し、オーケストレータ202内の中央永続性でワークフローの状態を調整し得る。長い実行ステップ(内部または外部)が完了するたびに、同じロボットファーム内の任意の利用可能なボット204でワークフローが再開される。
【0038】
図3は、URLを使用して外部トリガに基づいてロボットプロセスを再開する実施形態のフロー図である。このユニークなURLは、長い間実行されているプロセスの特定のインスタンスを、特定の中断されたステップから再開させ得る。オーケストレータ202は、URL、302を生成し、外部システム/アプリケーション206、304にURLを提供する。特定のビジネスイベント(複数可)に応答して、外部システム/アプリケーション206は、URL306を呼び出す。オーケストレータ202は、起動されたURLに基づいて、ヘッドレスロボット204、308による実行のために、中断されたアイドルプロセスまたはマークされたアイドルプロセスを再開するかどうかを決定する。
図3ではURLを参照しているが、インターネットプロトコルアドレス、媒体アクセス制御(MAC)アドレス、ネットワークアドレスなど、他のアドレッシング技術が使用され得る。
【0039】
図4は、トピック名を使用した外部トリガに基づいてロボットプロセスを再開する実施形態のフロー図である。トピック名ベースの再開技術を使用して、オーケストレータインスタンスのさまざまなステップで中断されている長時間実行ワークフローの複数のインスタンスを再開し得る。オーケストレータ202は、トピック名402を生成し、外部システム/アプリケーション206、404にトピック名を提供する。特定のビジネスイベント(複数可)に応答して、外部システム/アプリケーション206は、トピック名406でオーケストレータ202にコールバックを送信する。オーケストレータ202は、トピック名に基づいて、ヘッドレスロボット204、408による実行のために、中断されたアイドルプロセスまたはマークされたアイドルプロセスを再開するかどうかを決定する。以下のアクティビティのリストでは、ユーザーがワークフロー/オーケストレーションプロセスにトリガを追加し得る。外部トリガの作成:外部トリガの作成アクティビティは、外部システム206に固有であり、特定のジョブのために起動される。外部トリガは、RPA開発者が外部トリガ(SAP請求書の完成(SAPInvoice completion)、セールスフォーストリガ(Salesforce Trigger)など)にマッピングするために提供するテキスト識別子によって作成される。アクティビティの潜在的な出力は、ジョブを再開すべき何らかのビジネスイベントに基づいて外部システム206によって起動されるオーケストレータ202によって生成されたURLを含むことができるサブスクライバURLなどのURLである。
【0040】
外部トリガで再開:外部トリガでの再開アクティビティは、入力としてサブスクライバURLを取る。オーケストレータ202がこのトリガを待っているジョブ(複数可)のセットを再開することができることに基づいて構成された外部トリガが発生するまで、プロセスは中断されるかまたはアイドルとしてマークされる。
【0041】
別の方法として、ワークフローでトピック名を指定し得る。指定されたトピックのコールバックを受信すると、そのトピックで待機しているワークフローが再開される。
【0042】
オーケストレーションプロセスを実行時に実行するためのロボットコンポーネントおよびオーケストレータコンポーネントの潜在的な要件は以下の通りである。
【0043】
1.ジョブのスケジュールまたは開始ジョブに従って、ヘッドレスボット204でオーケストレーションプロセスを実行する。オーケストレーションプロセスは、ヘッドレスロボット204のボット環境で実行されるように構成されてもよい。ボット204は、オーケストレータ202からそれらに渡された関連するワークフローコンテキスト(ジョブの開始またはジョブのスケジュールまたはオーケストレータのキュー)を使用して、長時間実行アクティビティを有するプロセス(ジョブ)を実行し得る。
【0044】
2.オーケストレーションプロセスのインスタンスを同時に実行する。ヘッドレスロボット204では、オーケストレーションプロセスの複数のインスタンスを実行することが可能であり得る。
【0045】
3.フロー内の特定のアクティビティにおいて、ワークフローの実行を「アイドル」またはオーケストレータ内の「一時停止」状態としてマークする機能。bボットは、現在のジョブがアイドルとしてマークされるワークフローコンテキストを保存するために永続化サービスを起動し得、ボットは特定のステップでワークフローの永続化を開始するために、アクティビティロジックによって信号を送られ得、任意の他のサブプロセス/ジョブの完了を待っているアクティブなインスタンスは存在しない場合があり、このボットは、サーバーの負荷および設定に応じつつ、同じまたは異なるワークフローの別のジョブの実行を行うために割り当てられ得、同じワークフローのインスタンスは、プロセス定義に従って複数のステップで「アイドル」になる場合がある。
【0046】
4.永続的なアクティビティ(長時間実行タスク)の終了時に、ワークフローの実行を再開できる機能。ボット204は、ヒューマンタスクまたは他の長期的なアクティビティの完了時に、併合されたビジネスコンテキストを使用して、長時間実行ジョブの実行を再開することができ、再開フローのトリガとなるイベントに基づいて、永続化サービスは、正確なワークフローコンテキストを取得し、ワークフローインスタンスの残りの部分を実行するために、割り当てられた環境内のいずれかのロボットを割り当て得、新しいバージョンのパッケージが利用可能でプロセスが作成された場合でも、フローが「アイドル」状態に設定されたのと同じパッケージバージョンで再開フローが起動され得、ログと状態は、同じジョブ識別子で維持され、こうしてプロセスの開始から終了まで、長時間実行ワークフロージョブを作成する。
【0047】
5.ウェイトフォーオール(Wait for All)、ウェイトフォーエニー(Wait for Any)、またはウェイトフォーエニー#セマンティクス(Wait for Any # Semantics)に基づいてワークフローの実行を再開する機能。オーケストレータ202は、プロセスが待機している全てのアクティビティからコールバックを受信した後にのみ、そのようなジョブを再開するようにロボットに指示し得、オーケストレータ202は、再開コールを起動する前に、様々な並列ブランチを同期し得る。
【0048】
6.ロボットとサーバー間のワークフローコンテキストの確実な引き渡し。ボット204は、ジョブを障害としてマークする前に、内部リトライメカニズムを用いてワークフローコンテキストを永続化サービスに発信している間に、障害から回復し得る。
【0049】
7.前のステップを実行したロボットのプロセスの優先順位付けを再開する。永続化ワークフローエンジンは、プロセスがフローを再開しながら「アイドル」状態になる前に、同じワークフローの一部を実行した特定の環境内のロボット204に優先順位を付け得る。
【0050】
8.オーケストレーションプロセスの新しい状態「アイドル」または「一時停止」および「再開の保留中」または「再開された」。オーケストレーションプロセスが長時間実行ステップ(タスクなど)を実行している場合、ジョブのステータスは「アイドル」と表示され得、タスク完了イベントがオーケストレータコールバックをトリガすると、ジョブの状態は「アイドル」から「実行中」または「再開の保留中」に変わり、ジョブはその実行中に何度も「アイドル」状態に移行し得、「再開の保留中」は、「アイドル」ジョブが全ての依存するブックマークの完了に基づいて再開されたが、ボットの利用可能性に基づいて保留されている場合、新しい状態になり得、この状態は、オーケストレータ202のジョブの監視とロボット204、オーケストレータジョブおよびロボットのリストビューに反映されなければならない。
【0051】
9.ロボットおよび他のサーバー間の通信中のエラー処理およびリトライメカニズム。ロボットツーワークフロー(Robot to workflow)永続化サービス中、タスク管理サービス中、および再開ジョブ起動中のエラーおよびリトライのメカニズムを処理する。
【0052】
10.イベントトリガ。ジョブを作成する。オーケストレータ202は、オーケストレータジョブビューからジョブを作成し得る。
【0053】
11.イベントトリガ。ジョブスケジュール。オーケストレータ202のユーザーは、オーケストレータのスケジュールビューからジョブの実行をスケジュールし得る。
【0054】
ロボットサービスの潜在的な要件としては、以下のようなものが考えられる。
【0055】
1.UiPath.Executor.exeの永続化機能。UiPath.Executor.exeはロボットクライアント上で実行するワークフローをホストし、新しい長期的に実行されるアクティビティの導入により、アクティビティは永続化イベントを発生させることができるブックマーク作成を起動し得、オーケストレーションジョブを正しいワークフローコンテキストとブックマーク情報で「アイドル」としてマークするように、UiPath.Executor.exeは、永続化とサポートする全てのイベントを処理し、そのデータを、オーケストレーターチームによって暴露され得る新しい永続化サービスのエンドポイントに送信するように変更する必要がある。
【0056】
2.UiPathロボットサービスとUiPath.Executor.exeでジョブ機能を再開する。アイドルジョブの再開をサポートするために、UiPathロボットサービスは、再開コールバックイベント処理(タスク完了時にタスク管理システムによって、またはジョブ完了/キュー項目実行完了時にオーケストレータ202によって)時に必要な情報をエグゼキュータに渡す機能を有し得、UiPath.Executor.exeは、プロセス情報に基づいてワークフローをロードし、(与えられたブックマークに基づいて同じ識別子で)ジョブを再開さする機能を有し得る。
【0057】
イベントトリガに基づく自動化ワークフローのためのこれらの実施形態の潜在的な利点は、中央で調整されたヘッドレスロボット204におけるオーケストレーションプロセスの複数のインスタンスを実行する能力を取り込むことである。オーケストレーションプロセス内の永続的なステップ/アクティビティはまた、任意の異なるロボット(中央で調整されるが、分散した実行)で実行され得る。また、ボットによる継続的な監視または待機を必要とせず、長時間実行ワークフローを実行しながらリソースの割り当てを改善し得る。また、プロセス中に実行された全ての基礎となるジョブへのリンクで、プロセス実行インスタンスを追跡する機能が可能になる。
【0058】
本明細書に記載された例では、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0059】
モジュールは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。識別された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。識別されたモジュールの実行ファイルは、論理的に結合されるとモジュールを構成するように、異なる場所に共に配置されたり、格納されたりする。
【0060】
実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。操作データまたは機能データは、モジュール内で識別され、ここで示されてもよく、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
【0061】
本明細書で与えられた実施例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で構成され得る。コンピュータプログラムは、互いに操作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
【0062】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能な記憶媒体が挙げられる。コンピュータ読み取り可能な記憶媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶装置、内部ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。
【国際調査報告】