(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159886
(43)【公開日】2023-11-01
(54)【発明の名称】複数のオペレーティングシステムにわたってロボティックプロセスオートメーションを展開するためのシステム、装置、および方法
(51)【国際特許分類】
G06F 9/445 20180101AFI20231025BHJP
【FI】
G06F9/445 130
【審査請求】未請求
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023069018
(22)【出願日】2023-04-20
(31)【優先権主張番号】17/725,270
(32)【優先日】2022-04-20
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】フローリン-ラドゥ タパス
(72)【発明者】
【氏名】ラドゥ オアンチャ
(72)【発明者】
【氏名】ダナト ボアンタ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AC01
5B376AC13
(57)【要約】 (修正有)
【課題】ロボティックプロセスオートメーション(RPA)のためのマルチプラットフォームオートメーションを開発および展開するのシステム、装置および方法を提供する。
【解決手段】方法は、ハードウェアレベルコマンド、ドライバレベルコマンド及び/又はアプリケーションプログラミングインターフェース(API)コールは、設計時にオートメーション内及び/又はRPAワークフロー内で自動的にかつシームレスに置換される。RPAオートメーションは、第1のオペレーティングシステム上で開発され、その自動化された再構成及び展開は、第2の異なるオペレーティングシステムで行われる。第1のオペレーティングシステムにネイティブなハードウェアレベルコマンド、ドライバレベルコマンド、及び/又はAPIコールの第1のセットを含むオートメーションおw受信、取り込み又は取得する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ロボティックプロセスオートメーション(RPA)デザイナアプリケーション用のコンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
RPAワークフローのアクティビティのための、少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、アプリケーションプログラミングインターフェース(API)コール、またはそれらの任意の組み合わせ用の複数のオペレーティングシステムのオペレーティングシステムレベルオプションを指定し、かつ
以下を行うように前記RPAワークフローに関連するオートメーションを構成するように、構成される、非一時的なコンピュータ読み取り可能な媒体。
RPAロボットが実行時に前記オートメーションを実行しているオペレーティングシステムを決定すること、および
前記アクティビティに関連する1または複数のアクションを遂行する場合に、決定された前記オペレーティングシステムの前記オペレーティングシステムレベルオプションを利用すること。
【請求項2】
前記オートメーションは、前記RPAロボットが前記オートメーションを遂行するオペレーティングシステムセッション、仮想マシン(VM)、またはコンテナのいずれかに関係なく、前記オペレーティングシステムセッション、前記VM、または前記コンテナのいずれかで遂行されるように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項3】
前記オートメーションが、実行時に前記RPAロボットによってリモートで遂行されるように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項4】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、前記複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に変換する、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項5】
前記自動的に変換することは、前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせをリポジトリで検索することを含む、請求項4に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項6】
前記リポジトリは、前記複数のオペレーティングシステムの前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせにわたって機能のセットをマッピングする機能ライブラリを含む、請求項5に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項7】
前記自動的に変換することは、
前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせの間の機能的類似性を決定することと、
前記機能的類似性に基づいて、前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを選択することと、を含む、請求項6に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項8】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記オートメーションにおける前記複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、前記複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に置換する、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項9】
コンピューティングシステムであって、
コンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含むシステムであって、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
RPAワークフローのアクティビティのための、少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、アプリケーションプログラミングインターフェース(API)コール、またはそれらの任意の組み合わせ用の複数のオペレーティングシステムのオペレーティングシステムレベルオプションを指定し、かつ
以下を行うように前記RPAワークフローに関連するオートメーションを構成することを含む、コンピューティングシステム。
RPAロボットが実行時に前記オートメーションを実行しているオペレーティングシステムを決定すること、および
前記アクティビティに関連する1または複数のアクションを遂行する場合に、決定された前記オペレーティングシステムの前記オペレーティングシステムレベルオプションを利用すること。
【請求項10】
前記オートメーションは、前記RPAロボットが前記オートメーションを遂行するオペレーティングシステムセッション、仮想マシン(VM)、またはコンテナのいずれかに関係なく、前記オペレーティングシステムセッション、前記VM、または前記コンテナのいずれかで遂行されるように構成される、請求項9に記載のコンピューティングシステム。
【請求項11】
前記オートメーションが、実行時に前記RPAロボットによってリモートで遂行されるように構成される、請求項9に記載のコンピューティングシステム。
【請求項12】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、前記複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に変換する、請求項9に記載のコンピューティングシステム。
【請求項13】
前記自動的に変換することは、前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせをリポジトリで検索することを含む、請求項12に記載のコンピューティングシステム。
【請求項14】
前記リポジトリは、前記複数のオペレーティングシステムの前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせにわたって機能のセットをマッピングする機能ライブラリを含む、請求項13に記載のコンピューティングシステム。
【請求項15】
前記自動的に変換することは、
前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせの間の機能的類似性を決定することと、
前記機能的類似性に基づいて、前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを選択することと、を含む、請求項14に記載のコンピューティングシステム。
【請求項16】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記オートメーションにおける前記複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、前記複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に置換する、請求項9に記載のコンピューティングシステム。
【請求項17】
コンピュータ実装方法であって、
コンピューティングシステムによって、RPAワークフローのアクティビティのための、少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、アプリケーションプログラミングインターフェース(API)コール、またはそれらの任意の組み合わせ用の複数のオペレーティングシステムのオペレーティングシステムレベルオプションを指定し、かつ
前記コンピューティングシステムによって、以下を行うように前記RPAワークフローに関連するオートメーションを構成することを含む、コンピュータ実装方法。
RPAロボットが実行時に前記オートメーションを実行しているオペレーティングシステムを決定すること、および
前記アクティビティに関連する1または複数のアクションを遂行する場合に、決定された前記オペレーティングシステムの前記オペレーティングシステムレベルオプションを利用すること。
【請求項18】
前記オートメーションは、前記RPAロボットが前記オートメーションを遂行するオペレーティングシステムセッション、仮想マシン(VM)、またはコンテナのいずれかに関係なく、前記オペレーティングシステムセッション、前記VM、または前記コンテナのいずれかで遂行されるように構成される、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記オートメーションが、実行時に前記RPAロボットによってリモートで遂行されるように構成される、請求項17に記載のコンピュータ実装方法。
【請求項20】
さらに、前記コンピューティングシステムによって、前記複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、前記複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に変換することを含む、請求項17に記載のコンピュータ実装方法。
【請求項21】
前記自動的に変換することは、
前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせをリポジトリで検索することを含む、請求項20に記載のコンピュータ実装方法。
【請求項22】
UIオブジェクトリポジトリは、前記複数のオペレーティングシステムの前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせにわたって機能のセットをマッピングする機能ライブラリを含む、請求項21に記載のコンピュータ実装方法。
【請求項23】
前記自動的に変換することは、
前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせの間の機能的類似性を決定することと、
前記機能的類似性に基づいて、前記第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する前記第2のオペレーティングシステムのための前記少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを選択することと、を含む、請求項22に記載のコンピュータ実装方法。
【請求項24】
さらに、前記コンピューティングシステムによって、前記オートメーションにおける前記複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための前記少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、前記複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に置換し、
別のコンピューティングシステム上で前記オートメーションを展開することを含む、請求項17に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、オートメーションに関し、より具体的には、ロボティックプロセスオートメーション(RPA)のためのマルチプラットフォームオートメーションを開発および展開するためのシステム、装置、および方法に関する。
【背景技術】
【0002】
ロボティックプロセスオートメーション(RPA)ロボットの設計、テスト、および展開を成功させるには、RPAロボットによって遂行されるさまざまなオートメーションのコーディング、スクリプト作成、および/または設計が必要であり、そのうちのいくつかは、コンピューティングシステムとユーザーのインタラクション(例えば、マウス移動、マウスクリック、キー押下など)をシミュレートするハードウェアレベルのコマンド、ドライバレベルのコマンド(例えば、オペレーティングシステム(OS)ドライバ462、ブラウザドライバ464、VMドライバ466、エンタープライズアプリケーションドライバ468など)、および/またはコンピューティングシステム上で動作するOSまたはアプリケーションによって提供されるAPIに対するRPAロボットによるアプリケーションプログラミングインターフェース(API)コールを含み得る。
【0003】
しかし、異なるオペレーティングシステム間でオートメーションを開発、テスト、および展開する場合、大きな技術的課題が発生し、それは、それらのそれぞれのネイティブオペレーティングシステム環境において、ハードウェアレベルコマンド、ドライバレベルコマンド、およびAPIコールの異なるセットを採用し得る。さらに、いくつかのオペレーティングシステムは、他のオペレーティングシステムのネイティブ環境に固有の能力または機能を欠く場合がある。したがって、多様なオペレーティングシステム環境にオートメーションを展開する現在のアプローチでは、各オペレーティングシステム用の代替オートメーションを手動で開発するか、またはオートメーション内の機能を手動で特定、置換、および/またはパッチを適用する必要がある。一般的なアプローチでは、過剰な開発時間、オートメーションの非効率的な展開、そして開発者とオートメーションのユーザーの両方にとって不均一なユーザーエクスペリエンスをもたらす。
【0004】
したがって、改善されたおよび/または代替のアプローチが有益であり得る。
【発明の概要】
【0005】
本発明の特定の実施形態は、現在のRPA開発および展開技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、RPAのためのマルチプラットフォームオートメーションを開発および展開するためのシステム、装置、および方法に関する。
【0006】
実施形態では、非一時的なコンピュータ読み取り可能な媒体は、RPAデザイナアプリケーション用のコンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサが、RPAワークフローのアクティビティのための、少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせ用の複数のオペレーティングシステムのオペレーティングシステムレベルオプションを指定するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサが、RPAワークフローに関連するオートメーションを構成して、RPAロボットが実行時にオートメーションを遂行しているオペレーティングシステムを決定し、かつアクティビティに関連する1または複数のアクションを遂行する場合に、決定されたオペレーティングシステムのオペレーティングシステムレベルオプションを利用するように構成される。
【0007】
別の実施形態では、コンピューティングシステムは、コンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサが、RPAワークフローのアクティビティのための、少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせ用の複数のオペレーティングシステムのオペレーティングシステムレベルオプションを指定するように構成される。コンピュータプログラム命令はまた、少なくとも1つのプロセッサが、RPAワークフローに関連するオートメーションを構成して、RPAロボットが実行時にオートメーションを遂行しているオペレーティングシステムを決定し、かつアクティビティに関連する1または複数のアクションを遂行する場合に、決定されたオペレーティングシステムのオペレーティングシステムレベルオプションを利用するように構成される。
【0008】
さらに別の実施形態では、コンピュータ実装方法は、サーバーによって、RPAワークフローのアクティビティのための、少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせ用の複数のオペレーティングシステムのオペレーティングシステムレベルオプションを指定することを含む。コンピュータ実装方法はまた、RPAワークフローに関連するオートメーションを構成して、RPAロボットが実行時にオートメーションを遂行しているオペレーティングシステムを決定し、かつアクティビティに関連する1または複数のアクションを遂行する場合に、決定されたオペレーティングシステムのオペレーティングシステムレベルオプションを利用することを含む。
【0009】
さらに別の実施形態では、方法は、RPAロボットが実行している複数のオペレーティングシステムのうちの1つのオペレーティングシステムを決定すること、およびRPAワークフローに関連するオートメーションの遂行中に、RPAロボットのRPAワークフローのアクティビティに関連する1または複数のアクションを遂行することを含む。1またはアクションは、決定されたオペレーティングシステムに対してネイティブであるハードウェアレベルのコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせを含む。別の実施形態では、1または複数のアクションは、RPAロボットが実行している複数のオペレーティングシステムのいずれに関係なくシームレスに実行され、決定されたオペレーティングシステムに対してネイティブであるハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせは、RPAワークフローのアクティビティに関連する同じ1または複数のアクションを達成するために複数のオペレーティングシステムの少なくとも2つについて機能的に異なり得る。
【図面の簡単な説明】
【0010】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0011】
【
図1】本発明の実施形態による、ハイパーオートメーションシステムを示すアーキテクチャ図である。
【0012】
【
図2】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
【
図3】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0014】
【
図4】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0015】
【
図5】本発明の実施形態による、RPAのためのマルチプラットフォームオートメーションを開発および/または展開するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0016】
【
図6】本発明の実施形態による、RPAワークフローに関連するオートメーションセッションを別個のオペレーティングシステム上で遂行するように自動的に構成するためのプロセスを示すフローチャートである。
【0017】
【
図7】本発明の別の実施形態による、RPAワークフローに関連するオートメーションセッションを別個のオペレーティングシステム上で遂行するように自動的に構成するためのプロセスを示すフローチャートである。
【0018】
【
図8】本発明の別の実施形態による、RPAワークフローに関連するオートメーションセッションを別個のオペレーティングシステム上で遂行するように自動的に構成するためのプロセスを示すフローチャートである。
【0019】
【
図9】本発明の別の実施形態による、RPAワークフローに関連するオートメーションセッションを別個のオペレーティングシステム上で遂行するように自動的に構成するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0020】
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
【0021】
(実施形態の詳細な説明)
いくつかの実施形態は、RPAのためのマルチプラットフォームオートメーションを開発および展開するためのシステム、装置、および方法に関する。いくつかの実施形態では、ハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールは、設計時にオートメーション内および/またはRPAワークフロー内で自動的にかつシームレスに置換される。一般に、いくつかの実施形態は、第1のオペレーティングシステム内でのRPAオートメーションの開発、ならびに第2の異なるオペレーティングシステムでのRPAオートメーションの自動化された再構成および展開を可能にしかつ遂行する。いくつかの実施形態は、第1のオペレーティングシステムに対してネイティブなハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールの第1のセットを含むオートメーションを受信、取り込み、または取得し、オペレーティングシステムに対してネイティブなハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールの第2のセットを含むようにオートメーションを自動的に再構成し得る。したがって、本明細書に記載される少なくともいくつかの実施形態は、一連のオペレーティングシステムにわたって機能的に類似または機能的に同一であるオートメーションのシームレスで一貫した開発を提供し得る。
【0022】
図1は、本発明の実施形態による、ハイパーオートメーションシステム100を示すアーキテクチャ図である。本明細書で使用される「ハイパーオートメーション」は、プロセスオートメーションのコンポーネント、統合ツール、および作業を自動化する能力を増幅する技術をまとめたオートメーションシステムを指す。例えば、いくつかの実施形態では、RPAがハイパーオートメーションシステムのコアで使用され、特定の実施形態では、人工知能(AI)/機械学習(ML)、プロセスマイニング、分析、および/または他の高度なツールによって自動化能力が拡張され得る。ハイパーオートメーションシステムがプロセスを学習し、AI/MLモデルを訓練し、そして分析を採用すると、例えば、より多くの知識作業が自動化され得、組織内のコンピューティングシステム、例えば、個人によって使用されるものと自律的に動作するものの両方は、すべてハイパーオートメーションプロセスの参加者として従事され得る。いくつかの実施形態のハイパーオートメーションシステムは、ユーザーおよび組織が効率的かつ効果的にオートメーションを発見し、理解し、そして拡張することを可能にする。
【0023】
ハイパーオートメーションシステム100は、デスクトップコンピュータ102、タブレット104、およびスマートフォン106などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータ、サーバー、インターネットオブシングス(IoT)デバイスなどを含むが、これらに限定されない、任意の所望のユーザーコンピューティングシステムが本発明の範囲から逸脱せずに使用され得る。また、
図1には3つのユーザーコンピューティングシステムが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のユーザーコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のユーザーコンピューティングシステムが使用され得る。ユーザーコンピューティングシステムは、ユーザーによって積極的に使用されてもよいし、または多くのもしくは任意のユーザー入力なしに自動的に実行され得る。
【0024】
各ユーザーコンピューティングシステム102、104、106は、そこで実行しているそれぞれのオートメーションプロセス(複数可)110、112、114を有する。オートメーションプロセス(複数可)110、112、114は、限定されないが、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション(複数可)、他の任意の適切なソフトウェアおよび/またはハードウェア、またはこれらの任意の組み合わせを含み得る。いくつかの実施形態では、1または複数のプロセス(複数可)110、112、114は、リスナーであり得る。リスナーは、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション、または他の任意のソフトウェアおよび/もしくはハードウェアであり得る。実際、いくつかの実施形態では、リスナー(複数可)のロジックは、物理的なハードウェアを介して部分的または完全に実装される。
【0025】
リスナーは、それぞれのコンピューティングシステムとのユーザーインタラクションおよび/またはアンアテンディッドコンピューティングシステムの動作に関連するデータを監視および記録し、ネットワーク(例えば、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、それらのいずれかの組み合わせ等)を介してコアハイパーオートメーションシステム120にデータを送信する。データは、限定されないが、どのボタンがクリックされたか、マウスがどこに移動したか、フィールドに入力されたテキスト、1つのウィンドウが最小化されそして別のウィンドウが開かれたこと、ウィンドウに関連するアプリケーションなどを含み得る。特定の実施形態では、リスナーからのデータは、ハートビートメッセージの一部として定期的に送信され得る。いくつかの実施形態では、データは、所定量のデータが収集されると、所定期間が経過した後、またはその両方で、コアハイパーオートメーションシステム120に送信され得る。サーバー130などの1または複数のサーバーは、リスナーからデータを受信し、データベース140などのデータベースに格納する。
【0026】
オートメーションプロセスは、設計時間中にワークフローで開発されたロジックを遂行し得る。RPAの場合、ワークフローは、本明細書において「アクティビティ」として定義される、シーケンスまたは他の何らかのロジックフローで遂行されるステップのセットを含み得る。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0027】
いくつかの実施形態におけるRPAのための長時間実行ワークフローは、サービスオーケストレーション、人間の介入、およびアンアテンディッド環境における長時間実行トランザクションをサポートするマスタープロジェクトである。例えば、米国特許第10,860,905号を参照。人間の介入は、特定のプロセスが、アクティビティの次のステップに進む前に、例外処理、承認、または検証のために人間の入力を必要とする場合に登場する。この場合、プロセスの遂行は一時停止され、人間のタスクが完了するまでRPAロボットを開放する。
【0028】
長時間実行ワークフローは、永続化アクティビティを介してワークフローの断片化をサポートしてもよく、呼び出しプロセスおよび非ユーザーインタラクションアクティビティと組み合わされ、人間のタスクをRPAロボットタスクでオーケストレーションし得る。いくつかの実施形態では、複数または多数のコンピューティングシステムが、長時間実行ワークフローのロジックの遂行に参加し得る。長時間実行ワークフローは、迅速な遂行を促進するためにセッションで実行し得る。いくつかの実施形態では、長時間実行ワークフローは、アプリケーションプログラミングインターフェース(API)呼び出しを実行し、かつ長時間実行ワークフローセッションで実行するアクティビティを含み得るバックグラウンドプロセスをオーケストレーションしてもよい。これらのアクティビティは、いくつかの実施形態では、呼び出しプロセスアクティビティによって呼び出され得る。ユーザーセッションで実行するユーザーインタラクションアクティビティを有するプロセスは、コンダクタアクティビティからジョブを開始することによって呼び出され得る(コンダクタは、本明細書で後により詳細に説明する)。ユーザーは、いくつかの実施形態では、コンダクタでフォームを完成させる必要があるタスクを通じてインタラクションし得る。RPAロボットにフォームタスクが完了するのを待たせ、その後、長時間実行ワークフローを再開させるアクティビティが含まれ得る。
【0029】
1または複数のオートメーションプロセス(複数可)110、112、114は、コアハイパーオートメーションシステム120と通信している。いくつかの実施形態では、コアハイパーオートメーションシステム120は、サーバー130などの1または複数のサーバー上でコンダクタアプリケーションを実行し得る。例示のために1つのサーバー130が示されているが、本発明の範囲から逸脱することなく、互いに近接する、または分散アーキテクチャの複数または多数のサーバーが採用され得る。例えば、1または複数のサーバーが、本発明の範囲から逸脱することなく、コンダクタ機能、AI/MLモデル提供、認証、ガバナンス、および/または他の任意の適切な機能のために提供され得る。いくつかの実施形態では、コアハイパーオートメーションシステム120は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどを組み込んでよく、またはその一部であってよい。特定の実施形態では、コアハイパーオートメーションシステム120は、サーバー130などの1または複数のコンピューティングシステム上で複数のソフトウェアベースのサーバーをホストし得る。いくつかの実施形態では、サーバー130などのコアハイパーオートメーションシステム120の1または複数のサーバーは、1または複数の仮想マシン(VM)を介して実装され得る。
【0030】
いくつかの実施形態では、1または複数のオートメーションプロセス(複数可)110、112、114は、コアハイパーオートメーションシステム120上に展開されたまたはコアハイパーオートメーションシステム120によってアクセス可能な1または複数のAI/MLモデル132を呼び出してもよい。AI/MLモデル132は、本明細書で後により詳細に議論されるように、本発明の範囲から逸脱することなく、任意の適切な目的のために訓練され得る。2以上のAI/MLモデル132は、それらが集合的に協働出力(複数可)を提供するように、いくつかの実施形態では連鎖されてもよい(例えば、直列、並列、またはそれらの組合せ)。AI/MLモデル132は、コンピュータビジョン(CV)、光学的文字認識(OCR)、文書処理および/または理解、意味学習および/または分析、分析予測、プロセス発見、タスクマイニング、テスト、自動RPAワークフロー生成、シーケンス抽出、クラスタリング検出、音声-テキスト翻訳、これらのいずれかの組み合わせなどを実行または支援してもよい。しかしながら、本発明の範囲から逸脱することなく、AI/MLモデルの任意の所望の数および/またはタイプ(複数可)が使用され得る。複数のAI/MLモデルを使用することで、例えば、与えられたコンピューティングシステム上で何が起こっているかについての全体像をシステムが開発し得る。例えば、あるAI/MLモデルはOCRを実行することができ、別のものはボタンを検出することができ、別のものはシーケンスを比較することができる、などである。パターンは、AI/MLモデルによって個別に決定されてもよいし、または複数のAI/MLモデルによって集合的に決定されてもよい。特定の実施形態では、1または複数のAI/MLモデルは、少なくとも1つのコンピューティングシステム102、104、106上にローカルに展開される。
【0031】
いくつかの実施形態では、複数のAI/MLモデル132が使用され得る。各AI/MLモデル132は、データ上で実行するアルゴリズム(またはモデル)であり、AI/MLモデル自体は、例えば、訓練データ上で訓練された、訓練された人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であり得る。いくつかの実施形態では、AI/MLモデル132は、統計的モデリング(例えば、隠れマルコフモデル(HMM))などの様々な機能を実行する複数の層を有してよく、深層学習技術(例えば、長短期記憶(LSTM)深層学習、以前の隠れ状態のエンコーディングなど)を利用して所望の機能を実行し得る。
【0032】
ハイパーオートメーションシステム100は、いくつかの実施形態では、4つの主要な機能群を提供し得る:(1)発見、(2)自動化の構築、(3)管理、および(4)エンゲージメント。オートメーション(例えば、ユーザーコンピューティングシステム、サーバーなどで実行する)は、いくつかの実施形態では、RPAロボットなどのソフトウェアロボットによって実行され得る。例えば、アテンディッドロボット、アンアテンディッドロボット、および/またはテストロボットが使用され得る。アテンディッドロボットは、タスク(例えば、UiPath Assistant(商標)を介して)でユーザーを支援するためにユーザーと協働する。アンアテンディッドロボットはユーザーから独立して動作し、潜在的に、ユーザーが知らない間にバックグラウンドで実行し得る。テストロボットは、アプリケーションまたはRPAワークフローに対してテストケースを実行するアンアテンディッドロボットである。テストロボットは、いくつかの実施形態では、複数のコンピューティングシステム上で並行して実行され得る。
【0033】
発見機能は、ビジネスプロセスの自動化の様々な機会を発見し、その自動的な推奨を提供し得る。そのような機能は、サーバー130などの1または複数のサーバーによって実装され得る。発見機能は、いくつかの実施形態では、オートメーションハブ、プロセスマイニング、タスクマイニング、および/またはタスクキャプチャを提供することを含み得る。オートメーションハブ(例えば、UiPath Automation Hub(商標))は、可視性および制御性を有するオートメーションロールアウトを管理するためのメカニズムを提供し得る。オートメーションアイデアは、例えば、提出フォームを介して従業員からクラウドソーシングされ得る。これらのアイデアを自動化するための実現可能性と投資収益率(ROI)の計算が提供され、将来の自動化のための文書が収集され、そして自動化の発見から構築までを迅速に行うためのコラボレーションが提供され得る。
【0034】
(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)プロセスマイニングとは、アプリケーション(企業資源計画(ERP)アプリケーション、顧客関係管理(CRM)アプリケーション、メールアプリケーション、コールセンターアプリケーションなど)からデータを収集して分析し、組織にどんなエンドツーエンドのプロセスが存在するか、それらを効果的に自動化するにはどうすればよいか、また自動化がもたらす影響についてを特定するプロセスを指す。このデータは、例えば、リスナーによってユーザーコンピューティングシステム102、104、106から取得され、サーバー130などのサーバーによって処理され得る。いくつかの実施形態では、1または複数のAI/MLモデル132がこの目的のために採用され得る。この情報は、実装を迅速化し、手動での情報転送を回避するために、オートメーションハブにエクスポートされ得る。プロセスマイニングの目標は、組織内のプロセスを自動化することによって、ビジネス価値を高めることであり得る。プロセスマイニングの目標のいくつかの例は、限定されないが、利益の増加、顧客満足度の向上、規制および/または契約遵守、従業員の効率の向上などを含む。
【0035】
タスクマイニングは、ワークフロー(例えば、従業員のワークフロー)を特定および集約し、次にAIを適用して日常的なタスクのパターンおよびバリエーションを明らかにし、自動化の容易性および節約の可能性について(例えば、時間および/またはコストの節約)そのようなタスクをスコアリングする。1または複数のAI/MLモデル132は、データ内の反復タスクパターンを明らかにするために採用され得る。自動化の機が熟した反復タスクは、その後、特定され得る。この情報は、最初、リスナーによって提供され得、いくつかの実施形態では、サーバー130などのコアハイパーオートメーションシステム120のサーバー上で分析され得る。タスクマイニングからの発見(例えば、Extensible Application Markup Language(XAML)プロセスデータ)は、プロセス文書またはUiPath Studio(商標)などのデザイナアプリケーションにエクスポートされて、自動化をより迅速に作成および展開し得る。
【0036】
いくつかの実施形態におけるタスクマイニングは、ユーザーアクション(例えば、マウスクリック位置、キーボード入力、ユーザーがインタラクションしていたアプリケーションウィンドウおよびグラフィカル要素、インタラクションのためのタイムスタンプなど)を伴うスクリーンショットの撮影、統計データ(例えば、遂行時間、アクション数、テキスト入力など)の収集、スクリーンショットの編集および注釈、記録されるアクションのタイプの指定、などを含み得る。
【0037】
タスクキャプチャは、ユーザーが作業している間にアテンディッド(attended)プロセスを自動的に記録し、またはアンアテンディッドプロセスのためのフレームワークを提供する。このような文書化は、プロセス定義文書(PDD)、スケルトンワークフロー、プロセスの各部分のアクションのキャプチャ、ユーザーのアクションの記録および各ステップに関する詳細を含む包括的なワークフロー図の自動生成、Microsoft Word(登録商標)文書、XAMLファイルなどのような形式で自動化することが望ましいタスクを含み得る。構築可能なワークフローは、UiPath Studio(商標)などのデザイナアプリケーションに直接エクスポートされ得る。タスクキャプチャは、プロセスを説明するサブジェクトマターエキスパートと、プロダクショングレードオートメーションを提供するセンターオブエクセレンス(CoE)メンバーとの両方にとって、要件収集プロセスを簡素化し得る。
【0038】
オートメーションの構築は、デザイナアプリケーション(UiPath Studio(商標)、UiPath StudioX(商標)、UiPath Web(商標)など)を介して達成され得る。例えば、RPA開発施設150のRPA開発者は、コンピューティングシステム152のRPAデザイナアプリケーション154を使用して、ウェブ、モバイル、SAP(登録商標)、および仮想デスクトップなどのさまざまなアプリケーションおよび環境用のオートメーションを構築およびテストし得る。以下でより詳細に説明されるように、API統合は、さまざまなアプリケーション、技術、およびプラットフォームに対して提供され得る。事前定義されたアクティビティ、ドラッグアンドドロップモデリング、およびワークフローレコーダーは、最小限のコーディングで自動化を容易にし得る。文書理解機能は、1または複数AI/MLモデル132を呼び出すデータ抽出および解釈のためのドラッグアンドドロップAIスキルを介して提供され得る。このような自動化は、表、チェックボックス、署名、および手書きを含む、事実上任意の文書タイプおよびフォーマットを処理し得る。データが検証されるか、または例外が処理されるとき、この情報は、それぞれのAI/MLモデルを再訓練するために使用されてよく、時間とともにそれらの精度が改善される。
【0039】
統合サービスにより、開発者は、例えば、ユーザーインターフェース(UI)の自動化とAPIの自動化をシームレスに組み合わせ得る。APIを必要とする、またはAPIと非APIアプリケーションおよびシステムの両方を横断する自動化が構築され得る。開発者が多種多様なプロセスをより迅速に自動化できるように、あらかじめ建築されたRPAおよびAIテンプレートとソリューションのためのリポジトリ(例えば、UiPath Object Repository(商標))またはマーケットプレイス(例えば、UiPath Marketplace(商標))が提供され得る。したがって、自動化を構築する場合、ハイパーオートメーションシステム100は、ユーザーインターフェース、開発環境、API統合、あらかじめ建築されたおよび/またはカスタムビルドのAI/MLモデル、開発テンプレート、統合開発環境(IDE)、および高度なAI能力を提供し得る。ハイパーオートメーションシステム100は、いくつかの実施形態では、RPAロボットの開発、展開、管理、構成、監視、デバッグ、および保守を可能にし、それはハイパーオートメーションシステム100のための自動化を提供し得る。
【0040】
いくつかの実施形態では、デザイナアプリケーション(複数可)および/または外部ルールエンジンなどのハイパーオートメーションシステム100のコンポーネントは、ハイパーオートメーションシステム100によって提供されるさまざまな機能を制御するためのガバナンスポリシーを管理および施行するためのサポートを提供する。ガバナンスとは、組織がポリシーを導入して、EU一般データ保護規則(General Data Protection Regulation:GDPR)、米国医療保険の携行性と責任に関する法律(the U.S. Health Insurance Portability and Accountability Act:HIPAA)、サードパーティアプリケーションの利用規約などに違反するような、ユーザーが組織に害を及ぼし得る行動を実行できる自動化(RPAロボットなど)を開発できないようにする能力である。そうでなければ、開発者は、彼らの自動化の実行中にプライバシー法、利用規約などに違反する自動化を作成し得るため、いくつかの実施形態は、ロボットおよび/またはロボット設計アプリケーションレベルでアクセス制御およびガバナンス制限を実装する。これは、開発者が、セキュリティリスクをもたらすか、またはポリシー、規制、プライバシー法、および/もしくはプライバシーポリシーに違反する方法で動作し得る未承認ソフトウェアライブラリへの依存を取ることを防止することによって、いくつかの実施形態ではオートメーションプロセス開発パイプラインにセキュリティおよびコンプライアンスの追加レベルを提供し得る。例えば、参照によりその全体が本明細書に組み込まれる、米国非仮特許出願第16/924,499号(米国特許出願公開第2022/0011732号として公開)を参照。
【0041】
管理機能は、組織全体にわたるオートメーションの管理、展開、および最適化を提供し得る。管理機能は、いくつかの実施形態では、オーケストレーション、テスト管理、AI機能、および/または洞察力を含み得る。ハイパーオートメーションシステム100の管理機能はまた、自動化アプリケーションおよび/またはRPAロボットのためのサードパーティソリューションおよびアプリケーションとの統合ポイントとして作動し得る。ハイパーオートメーションシステム100の管理機能は、とりわけ、限定されないが、RPAロボットのプロビジョニング、展開、構成、キューイング、監視、ロギング、および相互接続を容易にすることを含み得る。
【0042】
UiPath Orchestrator(商標)(いくつかの実施形態ではUiPath Automation Cloud(商標)の一部として提供されてもよく、またはオンプレミス、VM、プライベートもしくはパブリッククラウドで、Linux(商標)VMで、またはUiPath Automation Suite(商標)を介してクラウドネイティブシングルコンテナスイートとして提供されてもよい)などのコンダクタアプリケーションは、RPAロボットデプロイメントのセキュリティを展開、監視、最適化、拡大縮小、および確保するオーケストレーション能力を提供する。テストスイート(例えば、UiPath Test Suite(商標))は、展開された自動化の品質を監視するためのテスト管理を提供し得る。テストスイートは、テストの計画および遂行、要件の充足、および欠陥のトレーサビリティを促進し得る。テストスイートは、包括的なテストレポートを含み得る。
【0043】
分析ソフトウェア(例えば、UiPath Insights(商標))は、展開された自動化の性能を追跡、測定、および管理し得る。分析ソフトウェアは、自動化動作を組織の特定の重要業績評価指標(KPI)および戦略的成果と整合させ得る。分析ソフトウェアは、人間のユーザーがより理解しやすいように、ダッシュボード形式で結果を提示し得る。
【0044】
データサービス(例えば、UiPath Data Service(商標))は、例えば、データベース140に格納され、ドラッグアンドドロップのストレージインターフェースを用いて、データを単一の、拡張可能な、安全な場所に持ち込むことができる。いくつかの実施形態は、データのシームレスなアクセス、エンタープライズグレードのセキュリティ、およびスケーラビリティを確保しながら、ローコードまたはノーコードのデータモデリングおよびストレージを自動化に提供してもよい。AI機能は、AIセンター(例えば、UiPath AI Center(商標))によって提供されてもよく、これはAI/MLモデルの自動化への組み込みを容易にする。あらかじめ建築されたAI/MLモデル、モデルテンプレート、およびさまざまな展開オプションにより、データ科学者でない人でもこのような機能にアクセスできるようにし得る。展開された自動化(例えば、RPAロボット)は、AI/MLモデル132などのAIセンターからAI/MLモデルを呼び出し得る。AI/MLモデルの性能は、監視され、データレビューセンター160によって提供されるような、人間が検証したデータを使用して訓練され、改善され得る。人間のレビューアは、コンピューティングシステム154上のレビューアプリケーション152を介して、ラベル付けされたデータをコアハイパーオートメーションシステム120に提供してもよい。例えば、人間のレビューアは、AI/MLモデル132による予測が正確であることを検証してもよいし、そうでなければ修正を提供してもよい。この動的入力は、その後、AI/MLモデル132を再訓練するためのトレーニングデータとして保存されてもよく、例えば、データベース140のようなデータベースに格納されてもよい。AIセンターは、次に、訓練データを使用してAI/MLモデルの新バージョンを訓練するための訓練ジョブをスケジュールし、遂行し得る。肯定的な例と否定的な例の両方が、AI/MLモデル132の再訓練のために格納され、使用され得る。
【0045】
エンゲージメント機能は、所望のプロセスに関するシームレスなコラボレーションのために、人間および自動化を1つのチームとして関与させる。ローコードアプリケーションは、ブラウザタブとレガシーソフトウェアを接続するために、いくつかの実施形態ではAPIを欠いているものであっても、(例えば、UiPath Apps(商標)を介して)構築され得る。アプリケーションは、例えば、ドラッグアンドドロップ制御の豊富なライブラリを通じて、ウェブブラウザを使用して迅速に作成され得る。アプリケーションは、1つのオートメーションまたは複数のオートメーションに接続され得る。
【0046】
アクションセンター(例えば、UiPath Action Center(商標))は、オートメーションから人間へ、またはその逆へ、プロセスを引き渡すための簡単で効率的なメカニズムを提供する。人間は、承認またはエスカレーションを提供し、例外処理などを行い得る。その後、オートメーションは、所定のワークフローの自動機能を実行し得る。
【0047】
ローカルアシスタントは、ユーザーがオートメーション(例:UiPath Assistant(商標))を起動するための起動パッドとして提供され得る。この機能は、例えばオペレーティングシステムによって提供されるトレイで提供されてもよく、ユーザーが彼らのコンピューティングシステム上でRPAロボットおよびRPAロボット搭載アプリケーションとインタラクションすることを可能にし得る。インターフェースは、所定のユーザーに対して承認されたオートメーションをリストにし、ユーザーがそれらを実行することを可能にし得る。これらは、オートメーションマーケットプレイス、オートメーションハブの内部オートメーションストアなどからのすぐに使えるオートメーションを含んでもよい。オートメーションが実行しているとき、オートメーションがそのアクションを実行する間、ユーザーがコンピューティングシステムを使用できるように、それらは、コンピューティングシステム上の他のプロセスと並行してローカルインスタンスとして実行し得る。特定の実施形態では、アシスタントは、ユーザーがアシスタントの起動パッドからそれらのもうすぐ自動化されるプロセスを文書化できるように、タスクキャプチャ機能と統合される。
【0048】
チャットボット(例えば、UiPath Chatbots(商標))、ソーシャルメッセージングアプリケーション、および/または音声コマンドは、ユーザーがオートメーションを実行することを可能にし得る。これにより、顧客とのやり取りまたは他のアクティビティを行うために必要な情報、ツール、およびリソースへのアクセスを簡素化し得る。人と人との会話は、他のプロセスと同様に容易に自動化され得る。このようにして起動されたトリガRPAロボットは、注文状況の確認、CRMへのデータ投稿などの動作を、平易な言語コマンドを用いて実行できる可能性がある。
【0049】
任意の規模での自動化プログラムのエンドツーエンドの測定およびガバメントは、いくつかの実施形態ではハイパーオートメーションシステム100によって提供され得る。上記により、自動化の性能を理解するために、(例えば、UiPath Insights(商標)を介した)分析が採用されてもよい。利用可能なビジネスメトリクスおよび運用上の洞察のいずれかの組み合わせを使用するデータモデリングおよび分析は、さまざまな自動化プロセスに使用され得る。カスタム設計およびあらかじめ構築されたダッシュボードにより、所望の測定基準にわたりデータが視覚化され、新しい分析的洞察が発見され、性能指標が追跡され、オートメーションについてROIが発見され、ユーザーのコンピューティングシステム上で遠隔測定モニタリングが実行され、エラーと異常が検出され、およびオートメーションがデバッグされ得る。自動化のライフサイクルを通じてオートメーションを管理するために、自動化管理コンソール(例えば、UiPath Automation Ops(商標))が提供され得る。組織は、オートメーションの構築方法、ユーザーがそれらとともにできること、およびユーザーがどのオートメーションとアクセスできるかを統治し得る。
【0050】
ハイパーオートメーションシステム100は、いくつかの実施形態では、反復的なプラットフォームを提供する。プロセスが発見され得、オートメーションが構築され得、テストされ得、そして展開され得、性能が測定され得、オートメーションの使用がユーザーに容易に提供され得、フィードバックが得られ得、AI/MLモデルが訓練され、再訓練され得、そしてプロセス自体が繰り返され得る。これにより、より堅牢で効果的な一連の自動化を促進する。
【0051】
図2は、本発明の実施形態による、RPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のハイパーオートメーションシステム100の一部である。RPAシステム200は、開発者がワークフローを設計して実装することを可能にするデザイナ210を含む。デザイナ210は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ210は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ210は、ワークフローおよびロボットの開発および展開を容易にする。いくつかの実施形態では、デザイナ210は、ユーザーのデスクトップ上で実行するアプリケーション、VMでリモートで実行するアプリケーション、ウェブアプリケーションなどであってもよい。
【0052】
自動化プロジェクトは、上記のように本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ210の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0053】
ワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0054】
ワークフローがデザイナ210内で開発されると、ビジネスプロセスの遂行は、コンダクタ220によって調整され、デザイナ210内で開発されたワークフローを遂行する1または複数のロボット230を調整する。コンダクタ220の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ220は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ220は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。上記により、いくつかの実施形態では、コンダクタ220は、
図1のコアハイパーオートメーションシステム120の一部であり得る。
【0055】
コンダクタ220は、全てのロボット230を管理し得、ロボット230を集中ポイントから接続して遂行する。管理され得るロボット230のタイプには、アテンディッドロボット232、アンアテンディッドロボット234、開発ロボット(アンアテンディッドロボット234と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット232と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット232は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット232は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ220とともに使用され得る。アテンディッドロボット232は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ220から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット232は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット232は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0056】
アンアテンディッドロボット234は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット234は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ210で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0057】
コンダクタ220は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット230とコンダクタ220(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット230へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、構造化照会言語(SQL)データベースまたは「not only」SQL(NoSQL)データベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ220は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0058】
ロボット230は、デザイナ210で構築されたワークフローを実装する遂行エージェントである。ロボット(複数可)230のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット230は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット230は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0059】
いくつかの実施形態では、ロボット230は、ユーザーモードで設置され得る。このようなロボット230については、所定のロボット230が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット230は、HD環境で構成され得る。
【0060】
いくつかの実施形態におけるロボット230は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホスト(すなわち、ロボット230が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット230の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0061】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット230の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0062】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントであり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0063】
上で説明したように、ロボット230のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが遂行していることをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、いくつかの実施形態では、デザイナ210からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0064】
本実施形態におけるRPAシステム200は、ハイパーオートメーションシステムの一部である。開発者は、デザイナ210を使用して、(例えば、そのAIセンターの一部として)コアハイパーオートメーションシステム240に展開されたAI/MLモデルを利用するRPAロボットを構築かつテストし得る。そのようなRPAロボットは、AI/MLモデル(複数可)の遂行のための入力を送信し、コアハイパーオートメーションシステム240を介してそこからの出力を受信し得る。
【0065】
1または複数のロボット230は、上述したように、リスナーであってもよい。これらのリスナーは、ユーザーが彼らのコンピューティングシステムを使用するときに彼らがしていることに関する情報をコアハイパーオートメーションシステム240に提供し得る。この情報は、その後、プロセスマイニング、タスクマイニング、タスクキャプチャなどのためにコアハイパーオートメーションシステムによって使用され得る。
【0066】
アシスタント/チャットボット250は、ユーザーがRPAローカルロボットを起動することを可能にするために、ユーザーコンピューティングシステム上に提供され得る。アシスタントは、例えば、システムトレイに配置され得る。チャットボットは、ユーザーがチャットボットのテキストを見ることができるように、ユーザーインターフェースを有し得る。あるいは、チャットボットは、ユーザーインターフェースを持たず、バックグラウンドで実行し、ユーザーの発話に対してコンピューティングシステムのマイクを使用して聞くことができる。
【0067】
いくつかの実施形態では、データラベリングは、ロボットが実行しているコンピューティングシステムのユーザーによって、またはロボットが情報を提供する別のコンピューティングシステム上で実行され得る。例えば、ロボットがVMユーザーのために画像にCVを行うAI/MLモデルを呼び出すが、AI/MLモデルが画面上のボタンを正しく特定しない場合、ユーザーは、誤特定または非特定コンポーネントの周りに矩形を描き、正しい特定を有するテキストを潜在的に提供し得る。この情報は、コアハイパーオートメーションシステム240に提供され得、その後、AI/MLモデルの新バージョンの訓練のために後で使用され得る。
【0068】
図3は、本発明の実施形態による、展開したRPAシステム300を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム300は、
図2のRPAシステム200および/または
図1のハイパーオートメーションシステム100の一部であり得る。展開されたRPAシステム300は、異なるコンピューティングプロセスの自動化のためのエンタープライズレベル、ユーザーレベル、またはデバイスレベルの自動化ソリューションなどを提供する、クラウドベースのシステム、オンプレミスシステム、デスクトップベースのシステムであり得る。
【0069】
クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション310は、エグゼキュータ312、エージェント314、およびデザイナ316を含む。しかし、いくつかの実施形態では、デザイナ316は、エグゼキュータ312およびエージェント314と同じコンピューティングシステム上で実行していない場合がある。エグゼキュータ312はプロセスを実行している。
図3に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント314(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ312のための単一の接続ポイントである。本実施形態における全てのメッセージはコンダクタ340にログインされ、それはデータベースサーバー350、AI/MLサーバー360、インデクササーバー370、またはそれらの任意の組み合わせを介してそれらをさらに処理する。
図2に関して上述したように、エグゼキュータ312は、ロボットコンポーネントであり得る。
【0070】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012を含むがこれに限定されない)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0071】
エージェント314はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント314とコンダクタ340との間の通信は、いくつかの実施形態では、常にエージェント314によって開始される。通知シナリオでは、エージェント314は、後にコンダクタ340によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0072】
リスナー330は、リスナー330が常駐するアテンディッドコンピューティングシステムおよび/またはアンアテンディッドコンピューティングシステムの動作とのユーザーインタラクションに係るデータを監視し記録する。リスナー330は、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション、または他の任意のソフトウェアおよび/もしくはハードウェアであり得る。実際、いくつかの実施形態では、リスナーのロジックは、物理的なハードウェアを介して部分的または完全に実装される。
【0073】
サーバー側には、プレゼンテーション層(ウェブアプリケーション342、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント344、通知および監視346)、サービス層(API実装/ビジネスロジック348)、永続層(データベースサーバー350、AI/MLサーバー360、インデクササーバー370)が含まれる。コンダクタ340は、ウェブアプリケーション342、OData REST APIエンドポイント344、通知および監視346、ならびにAPI実装/ビジネスロジック348を含む。いくつかの実施形態では、ユーザーがコンダクタ340のインターフェース(例えば、ブラウザ320を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション342は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション342は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ340を制御するための様々な動作を実行するために、本実施形態ではブラウザ320を介してウェブアプリケーション342からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0074】
ウェブアプリケーション342に加えて、コンダクタ340は、OData REST APIエンドポイント344を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション342とエージェント314の両方により消費される。エージェント314は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0075】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ340においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0076】
RESTエンドポイントの監視は、ウェブアプリケーション342およびエージェント314を監視してもよい。通知および監視API346は、エージェント314の登録、エージェント314への構成設定の配信、ならびにサーバーおよびエージェント314からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API346は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0077】
サービス層のAPIは、いくつかの実施形態では、適切なAPIアクセスパスの構成を通じて、例えば、コンダクタ340および全体的なハイパーオートメーションシステムがオンプレミス展開タイプまたはクラウドベース展開タイプを有するかどうかに基づいて、アクセスされ得る。コンダクタ340のためのAPIは、コンダクタ340に登録されたさまざまなエンティティに関する統計を照会するためのカスタムメソッドを提供し得る。各論理リソースは、いくつかの実施形態では、ODataエンティティであってもよい。そのようなエンティティにおいて、ロボット、プロセス、キューなどのコンポーネントは、プロパティ、関係、および動作を有してよい。コンダクタ340のAPIは、いくつかの実施形態では、以下の2つの方法でウェブアプリケーション342および/またはエージェント314によって消費され得る:コンダクタ340からAPIアクセス情報を得ることによって、またはOAuthフローを使用するために外部アプリケーションを登録することによって。
【0078】
永続層は、本実施形態では、データベースサーバー350(例えば、SQLサーバー)、AI/MLサーバー360(例えば、AIセンター機能などのAI/MLモデル提供サービスを提供するサーバー)、およびインデクササーバー370の3つのサーバーを含む。本実施形態におけるデータベースサーバー350は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション342を介して管理される。データベースサーバー350は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー350は、ロボットにより記録されたメッセージを(インデクササーバー370に加えて、またはそれに代えて)格納してもよい。データベースサーバー350は、例えば、クライアント側にインストールされたリスナー330から受信した、プロセスマイニング、タスクマイニング、および/またはタスクキャプチャ関連データも格納し得る。リスナー330およびデータベース350の間に矢印は示されていないが、リスナー330は、いくつかの実施形態では、データベース350と通信することができ、逆もまた同様であることが理解されるべきである。このデータは、PDD、画像、XAMLファイルなどの形態で格納され得る。リスナー330は、リスナー330が常駐するそれぞれのコンピューティングシステム上のユーザーアクション、プロセス、タスク、およびパフォーマンスメトリクスを傍受するように構成され得る。例えば、リスナー330は、そのそれぞれのコンピューティングシステム上のユーザーアクション(例えば、クリック、タイプされた文字、ロケーション、アプリケーション、アクティブ要素、時間など)を記録し得、次にこれらをデータベースサーバー350に提供し格納されるのに適した形式に変換し得る。
【0079】
AI/MLサーバー360は、AI/MLモデルの自動化への組み込みを容易にする。あらかじめ建築されたAI/MLモデル、モデルテンプレート、およびさまざまな展開オプションにより、データ科学者でない人でもこのような機能にアクセスできるようにし得る。展開されたオートメーション(例えば、RPAロボット)は、AI/MLサーバー360からAI/MLモデルを呼び出し得る。AI/MLモデルの性能は、監視され、そして人間が検証したデータを使用して訓練され、改善され得る。AI/MLサーバー360は、AI/MLモデルの新しいバージョンを訓練するために、訓練ジョブをスケジュールし、遂行し得る。
【0080】
AI/MLサーバー360は、開発時にユーザーのためのさまざまなMLスキルを構成するためのAI/MLモデルおよびMLパッケージに係るデータを格納し得る。本明細書で使用されるMLスキルは、例えば、オートメーションによって使用され得る、プロセスのためのあらかじめ構築され訓練されたMLモデルである。AI/MLサーバー360はまた、限定されないが、意図分析、自然言語処理(NLP)、音声分析、異なるタイプのAI/MLモデルなどを含む、さまざまなAI/ML能力のための文書理解技術およびフレームワーク、アルゴリズムおよびソフトウェアパッケージに係るデータを格納し得る。
【0081】
いくつかの実施形態では任意であるが、インデクササーバー370は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー370は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー370は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー370に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0082】
図4は、本発明の実施形態による、デザイナ410、アクティビティ420、430、440、450、ドライバ460、API470、およびAI/MLモデル480間の関係400を説明するアーキテクチャ図である。以上のように、開発者は、デザイナ410を用いて、ロボットによって遂行されるワークフローを開発する。様々なタイプのアクティビティは、いくつかの実施形態では、開発者に表示され得る。デザイナ410は、ユーザーのコンピューティングシステムに対してローカルであっても、またはそれに対してリモートであってもよい(例えば、VMまたはリモートウェブサーバーとインタラクションするローカルウェブブラウザーを介してアクセスされる)。ワークフローは、ユーザー定義アクティビティ420、API駆動アクティビティ430、AI/MLアクティビティ440、および/または、UIオートメーションアクティビティ450を含み得る。ユーザー定義アクティビティ420およびAPI駆動アクティビティ440は、それらのAPIを介してアプリケーションとインタラクションする。ユーザー定義アクティビティ420および/またはAI/MLアクティビティ440は、いくつかの実施形態では、ロボットが動作しているコンピューティングシステムに対してローカルに、および/またはそれに対してリモートに位置され得る、1または複数のAI/MLモデル480を呼び出し得る。
【0083】
いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではCVと呼ばれる。CVは、AI/MLモデル(複数可)480によって少なくとも部分的に実行され得る。そのようなコンポーネントに係るいくつかのCVアクティビティは、限定されないが、OCRを用いたセグメント化されたラベルデータからのテキストの抽出、ファジーテキストマッチング、MLを用いたセグメント化されたラベルデータのクロッピング、ラベルデータにおける抽出されたテキストとグランドトゥルースデータとの比較等を含み得る。いくつかの実施形態では、ユーザー定義のアクティビティ420に実装され得るアクティビティの数は、数百または数千であってもよい。しかし、本発明の範囲を逸脱することなく、任意の数および/またはアクティビティのタイプが使用され得る。
【0084】
UIオートメーションアクティビティ450は、低レベルのコードで記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ450は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ460を介して、これらのインタラクションを促進する。例えば、ドライバ460は、オペレーティングシステム(OS)ドライバ462、ブラウザドライバ464、VMドライバ466、エンタープライズアプリケーションドライバ468などを含み得る。いくつかの実施形態では、コンピューティングシステムとのインタラクションを実行するために、1または複数のAI/MLモデル480はUIオートメーションアクティビティ450によって使用され得る。特定の実施形態では、AI/MLモデル480は、ドライバ460を増強するか、またはそれらを完全に置き換え得る。実際、特定の実施形態では、ドライバ460は含まれない。
【0085】
ドライバ460は、OSドライバ462を介して、フックを探したり、キーを監視したりするなど、低レベルでOSとインタラクションし得る。ドライバ460は、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ460を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0086】
図5は、本発明の実施形態による、RPAのためのマルチプラットフォームオートメーションを開発および/または展開するように構成されたコンピューティングシステムを示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。特定の実施形態では、コンピューティングシステム500は、
図1および
図2に示されるようなハイパーオートメーションシステムの一部であり得る。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0087】
コンピューティングシステム500は、プロセッサ(複数可)510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0088】
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(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)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
【0089】
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oを使用することができる。
【0090】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションすることができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでそれとインタラクションしてもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0091】
メモリ515は、プロセッサ(複数可)510により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540(例えば、第1のオペレーティングシステム)を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたマルチプラットフォームオートメーションモジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0092】
当業者であれば、「コンピューティングシステム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技法と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部であり得、そうでない場合は、それらにアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所または分散アーキテクチャが使用され得る。
【0093】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0094】
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのような非一時的なコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0095】
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切な形態で具現化され、いずれかの適切なタイプのデータ構造体内で組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0096】
再び
図1を参照すると、各ユーザーコンピューティングシステム102、104、106は、そこで実行しているそれぞれのオートメーションプロセス(複数可)110、112、114を有し、複数のオペレーティングシステム(例えば、Windows(登録商標)、Linux(登録商標)、iOS(登録商標)、Android(商標)、Google Chrome(商標)など)がこれらのコンピュータシステム間で展開され得る。潜在的に、これらのコンピューティングシステムのうちの1または複数が、複数の異なるおよび/または独自のオペレーティングシステム自体を実行することが可能であり得る。さらに、各コンピューティングシステム110、112、114は、ハードウェア構成(例えば、キーボード、モニタ、タッチスクリーン、カメラ(複数可)など)の異なるおよび/または独自のセットを含むこともでき、それぞれがハードウェアコマンドのセットを定義または要求する。さらに、コンピューティングシステム110、112、114の1または複数のオペレーティングシステム(複数可)および/またはアプリケーション(複数可)は、オペレーティングシステム(複数可)および/またはアプリケーション(複数可)によって提供される機能を利用するためのAPIセットを含み得る。同様に、RPA設計プロセスの間、RPA開発施設150のRPA開発者は、上述のような複数のオペレーティングシステムをその中に有することができるコンピューティングシステム152を利用することができる。
【0097】
図6に示されるように、コンピューティングシステム500は、第1のオペレーティングシステム(例えば、Windows(登録商標))に従って設計されたオートメーションを、第2のオペレーティングシステム(例えば、Linux(登録商標)内でまたはそれと協調して遂行するように設計された再構成されたオートメーションにシームレスに構成または再構成するためにオートメーションプロセス110、112、114(例えば、オートメーション)を自動構成するための方法600のブロックを遂行し得る。例えば、方法600のブロック610において、コンピューティングシステムまたはサーバー500は、RPAワークフローのアクティビティのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、アプリケーションプログラミングインターフェース(API)コール(集合的に「OS固有命令」)、またはそれらの任意の組み合わせのための複数のオペレーティングシステムに関するオペレーティングシステムレベルオプションを指定し得る。いくつかの実施形態では、オペレーティングシステムレベルオプションは、2つまたは複数の異なるオペレーティングシステム間でマッピングされるおよび/またはマッピング可能な、再フォーマットされた、同等の、代替の、変換された、および/または提案されたOS固有命令を含み得る。例えば、いくつかの実施形態では、サーバーは、少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせのオートメーションへの機能的に同等および/またはシームレスな統合を提供するオペレーティングシステムレベルオプションのセットを含むまたは含有するローカルデータベース、リモートデータベース、ウェブサーバー、またはgitリポジトリにアクセスし得る。
【0098】
一例として、RPA開発者は、iOS(登録商標)またはLinux(登録商標)OSなどの第2の異なるオペレーティングシステム上で動作するユーザーコンピューティングシステム102、104、106上での使用を意図するオートメーションの設計およびテストにおいて、Windows(登録商標)オペレーティングシステムを使用し得る。したがって、開発者がコンピューティングシステム500を介してオートメーションを設計しているとき、コンピューティングシステム500は、直接的または間接的にオートメーション自体を通じて、第2のオペレーティングシステム(例えば、この例では非Windows(登録商標)オペレーティングシステム)を決定するようにオートメーションを構成し、必要な少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせをオートメーションに置き換え、そしてアクティビティに関連する1または複数のアクションを遂行する場合に、決定された(第2の)オペレーションシステムを利用するようにオートメーションを構成しおよび/またはそれを引き起こすことができる。
【0099】
一般に、いくつかの実施形態におけるコンピューティングシステム500は、RPAロボットがオートメーションを遂行するオペレーティングシステムセッション、仮想マシン(VM)、コンテナ、またはそれらの任意の組み合わせのうちのどれで実行されるかにかかわらず、オペレーティングシステムセッション、仮想マシン(VM)、コンテナ、またはそれらの任意の組み合わせにおいて遂行されるようにオートメーションを構成する。さらに、コンピューティングシステム500は、いくつかの実施形態において、例えば、コンピューティングシステム500および/またはデザイナコンピューティングシステム152とは第2の、固有の、または異なるオペレーティングシステムを利用するユーザーコンピューティングシステム102、104、106のいずれかにおいて、RPAロボットがリモートで実行時に遂行するようにオートメーションを構成し得る。
【0100】
図7に示すように、いくつかの実施形態では、コンピューティングシステム500は、複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に変換することによって、方法600のブロック630を遂行し得る。特定の実施形態では、コンピューティングシステム500は、第1のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせをUIオブジェクトリポジトリで検索することによって方法600のブロック640を遂行し得る。
【0101】
上述のように、コンピューティングシステム500は、少なくとも上述のものを含むがこれに限定されない様々なオペレーティングシステムのためのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールに一致するルックアップテーブル、マトリックス、またはデータセットのうちの1または複数を含むデータベースまたはサーバーでUIオブジェクトリポジトリをホストまたはそれにアクセスし得る。実施形態の他の変形例では、UIオブジェクトリポジトリは、複数のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせにわたって機能のセットをマッピングする機能ライブラリを含み得る。有利なことに、様々なオペレーティングシステムのハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールの機能的側面を分類、マッチング、および/またはマッピングすることによって、方法600は、オートメーションのデザイナおよびユーザーの両方にシームレスで均一なユーザーエクスペリエンスを提供し得る。すなわち、コンピューティングシステム500は、(例えば、シンタックス(syntax)ではなく)機能に基づいて、別個のハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールをマッピングおよび/またはマッチングするので、開発者およびユーザーの両方は、オートメーションによる遂行のために新しいオペレーティングシステムにネイティブではないハードウェアレベルコマンド、ドライバレベルコマンドおよび/またはAPIコールを手動で変換、マッピング、およびデバッグする必要がなく、種々のオペレーティングシステムプラットフォームにわたるシームレスかつ均一な開発者エクスペリエンスおよびユーザーエクスペリエンスを提供する。
【0102】
図8に示すように、実施形態の別の変形例では、コンピューティングシステム500は、第1のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせの間の機能的類似性を決定することによって、方法600のブロック650を遂行し得る。例えば、機能ライブラリは、エンド機能および期待される開発者エクスペリエンスおよび/またはユーザーエクスペリエンスによって分類される様々なハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールを含み得る。したがって、様々なオペレーティングシステムにおけるハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールのそれぞれは、コンピューティングシステム500が、様々なオペレーティングシステムのいずれかについての重複、一致、併存、または代替ハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールを検出または決定できるように、機能に従って整理および/または集計され得る。
【0103】
図8に示すように、実施形態の別の変形例では、コンピューティングシステム500は、次に、それらのそれぞれの機能的類似性に基づいて、第1のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに対応する第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを選択することによって、方法のブロック660を遂行し得る。実施形態のいくつかの変形例では、機能的類似性は、ユーザーコンピューティングシステム102、104、106および/または開発者コンピュータシステム152上で動作するオートメーションによって遂行されるアクション、イベント、および/または結果の間の類似性または同一性を含み得る。
【0104】
図9に示すように、コンピューティングシステム500は、オートメーションにおける複数のオペレーティングシステムのうちの第1のオペレーティングシステムのための少なくとも1つのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせを、複数のオペレーティングシステムのうちの第2のオペレーティングシステムのための少なくとも1つのそれぞれのハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの組み合わせに自動的に置換することによって、方法600のブロック670を遂行し得る。遂行ブロック670では、例えば、コンピューティングシステム500は、(1)開発されたままのオートメーションのハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールの基本セットをスキャンし、(2)特定されたハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールを、UIオブジェクトリポジトリおよび/または機能ライブラリ内の機能的に同一または機能的に類似したハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールと比較し、(3)第1のオペレーティングシステムに対してネイティブなハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールを削除し、ならびに/あるいは(4)第2の(実行時)オペレーティングシステムに対してネイティブな機能的に等価なハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールをオートメーションに挿入することができる。
【0105】
置換が成功すると、コンピューティングシステム500は、次に、本明細書に記載されたタイプ(複数可)のユーザーコンピューティングシステム(複数可)102、104、106上でまたはそれによってオートメーションをレンダリングし、展開し、および/またはアクセスを提供することによって方法600のブロック680を遂行し得る。さらに、コンピューティングシステム500は、複数のユーザーコンピューティングシステム102、104、106上で並行して実行される単一のオートメーションのためにその様々な実施形態における方法600を遂行し、使用中のオペレーティングシステムのタイプに大きな差異を典型的に有するエンタープライズ組織内およびエンタープライズ組織間の複数のユーザーコンピューティングシステム102、104、106のセットにわたって後のアクセス、置換、および展開のために様々なハードウェアレベルコマンド、ドライバレベルコマンドおよび/またはAPIコールにオートメーションおよび置換を格納し得る。
【0106】
上述のように、方法600の実施形態は、開発者コンピュータシステム(複数可)152およびユーザーコンピューティングシステム102、104、106の両方において、シームレスなデザイナおよび/またはユーザーエクスペリエンスを提供するように機能し得る。すなわち、オートメーションの開発者およびユーザーの両方の観点から、コンピューティングシステム500は、方法600のブロックを遂行して、開発者および/またはコンピューティングシステム500自体のいずれに対してもネイティブではないオペレーティングシステム上でオートメーションの自動変換、置換、および遂行を引き起こすことができる。例えば、コンピューティングシステム500、開発者コンピューティングシステム152、およびそれぞれのユーザーコンピューティングシステム102、104、106の各々は、デスクトップコンピューティング、モバイルコンピューティング、およびサーバー/クラウドベースコンピューティングシステムについて上で言及した少なくともそれらの例を含む、利用可能なオペレーティングシステムの任意の組み合わせまたはサブコンビネーションを含み得る。
【0107】
例えば、ユーザーコンピューティングシステム102、104、106の観点から、コンピューティングシステム500は、RPAロボットが実行している複数のオペレーティングシステムのうちの1つのオペレーティングシステムを決定し、かつRPAワークフローに関連するオートメーションの遂行中に、RPAロボットのRPAワークフローのアクティビティに関連する1または複数のアクションを遂行し得る。1または複数のアクションは、決定されたオペレーティングシステムに対してネイティブであるハードウェアレベルのコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせを含み得る。いくつかの実施形態では、1または複数のアクションは、RPAロボットが実行している複数のオペレーティングシステムのうちのどれに関係なく、シームレスに実行される。
【0108】
さらに、ユーザーコンピューティングシステム102、104、106の観点から、決定されたオペレーティングシステムに対してネイティブであるハードウェアレベルコマンド、ドライバレベルコマンド、APIコール、またはそれらの任意の組み合わせは、RPAワークフローのアクティビティに関連する同じ1または複数のアクションを達成するために複数のオペレーティングシステムの少なくとも2つについて機能的に異なり得る。上述のように、いくつかの実施形態では、コンピューティングシステム500は、本明細書に記載される様々なタイプのコンピューティングシステムのいずれかに展開可能な一連のオペレーティングシステムにわたって、機能的に類似するまたは機能的に等価なハードウェアレベルコマンド、ドライバレベルコマンド、および/またはAPIコールを格納および/またはそれにアクセスし得る。
【0109】
図6~
図9で実行されるプロセスステップは、本発明の実施形態に従って、
図6~
図9で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、
図6~
図9に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、
図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0110】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
【0111】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0112】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0113】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態であることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0114】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれないが特定の実施形態では認識され得る。
【0115】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
【外国語明細書】