(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157530
(43)【公開日】2024-11-07
(54)【発明の名称】テスト自動化詳細を有する最も使用されたシステムトランザクションのグラフィックユーザーインターフェースヒートマップ
(51)【国際特許分類】
G06F 16/25 20190101AFI20241030BHJP
G06F 16/26 20190101ALI20241030BHJP
G06F 11/36 20060101ALI20241030BHJP
【FI】
G06F16/25
G06F16/26
G06F11/36 176
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024066637
(22)【出願日】2024-04-17
(31)【優先権主張番号】202311029856
(32)【優先日】2023-04-25
(33)【優先権主張国・地域又は機関】IN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
2.ZIGBEE
3.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】レフ クシュニル
(72)【発明者】
【氏名】アモル アワテ
(72)【発明者】
【氏名】リック チョークリー
(72)【発明者】
【氏名】ゲルト ヴァイシャー
(72)【発明者】
【氏名】グルプリート チャハル
(72)【発明者】
【氏名】スミット チョウラシア
【テーマコード(参考)】
5B042
5B175
【Fターム(参考)】
5B042GB01
5B042HH18
5B042NN07
5B175CA01
5B175CA11
5B175EA03
(57)【要約】 (修正有)
【課題】使用データを取得し、使用データから分析を導出するための、統合データの変換および視覚化のための方法を提供する。
【解決手段】コンピューティング環境内のコンピュータプログラムとして実装された決定エンジンによって遂行される方法であって、統合データを出力するために集約データを重みごとの変換に供することによって、集約データを統合データに正規化するデータ統合を遂行するステップと、統合データの最終格付を決定し、最終格付に従って統合データを描写するヒートマップを含むユーザーインターフェースをディスプレイ上に生成することによって、データ変換および視覚化を遂行するステップと、を含む。
【選択図】なし
【特許請求の範囲】
【請求項1】
統合データの変換および視覚化のための方法であって、前記方法は、コンピューティング環境内のコンピュータプログラムとして実装された決定エンジンによって遂行され、
前記決定エンジンにより、統合データを出力するために集約データを重みごとの変換に供することによって、前記集約データを前記統合データに正規化するデータ統合を遂行するステップと、
前記決定エンジンにより、前記統合データの最終格付を決定し、前記最終格付に従って前記統合データを描写するヒートマップを含むユーザーインターフェースをディスプレイ上に生成することによって、データ変換および視覚化を遂行するステップと、を含む方法。
【請求項2】
前記データ統合を遂行するステップが、前記集約データを生成するために、ソフトウェアシステムのトランザクションデータを集約するステップを含む、請求項1に記載の方法。
【請求項3】
前記トランザクションデータが、1つもしくは複数のサーバー、1つもしくは複数のユーザー、または、1つもしくは複数のトランザクションにわたって、前記ソフトウェアシステムによって生成されたデータを含む、請求項2に記載の方法。
【請求項4】
前記決定エンジンの収集プログラムが、トランザクションデータを集約するために、1つまたは複数の時間間隔で遂行する、請求項1に記載の方法。
【請求項5】
前記重みが、少なくとも、ユーザーカテゴリ、ダイアログカテゴリ、時間カテゴリ、対象カテゴリ、および強度カテゴリのうちの、1つまたは複数のカテゴリを含む、請求項1に記載の方法。
【請求項6】
前記ダイアログカテゴリが、トランザクションの遂行回数を含む、請求項5に記載の方法。
【請求項7】
前記時間カテゴリが、ソフトウェアシステムの全体的な処理時間を含む、請求項5に記載の方法。
【請求項8】
オブジェクトカテゴリが、開発オブジェクトの数を含む、請求項5に記載の方法。
【請求項9】
オブジェクトカテゴリが、トランザクションのタイプを含む、請求項5に記載の方法。
【請求項10】
前記重みが、0.0000から1.0000の範囲に沿って前記決定エンジンによって決定される、請求項5に記載の方法。
【請求項11】
前記決定エンジンが、前記最終格付を生成するために数学的アルゴリズムを利用して前記統合データを分析することによって前記データ変換を実施する、請求項1に記載の方法。
【請求項12】
前記最終格付が、前記重みについての1つまたは複数のカテゴリの平均または加重平均を含む、請求項1に記載の方法。
【請求項13】
前記最終格付が、前記統合データの関連性または強度を示す、請求項1に記載の方法。
【請求項14】
前記ヒートマップが、1つまたは複数の資格情報を含む、1つまたは複数の要素を含む、請求項1に記載の方法。
【請求項15】
前記1つまたは複数の要素がボックスを含み、前記1つまたは複数の資格情報が前記ボックスのサイズまたは前記ボックスの色を含む、請求項14に記載の方法。
【請求項16】
前記ボックスの前記サイズが、前記最終格付に対応する、請求項15に記載の方法。
【請求項17】
前記ボックスの前記色が、テストカバレッジに対応する、請求項15に記載の方法。
【請求項18】
前記決定エンジンが、ソフトウェアシステムのソフトウェア、または独立したアプリケーションに追加される、請求項1に記載の方法。
【請求項19】
前記決定エンジンによって実装される前記方法が、SAP ECC、SAP S/4HANA、およびSAP EWMのうちの1つまたは複数に適用される、請求項1に記載の方法。
【請求項20】
決定エンジンのためのコンピュータプログラムを遂行する少なくとも1つのプロセッサを含むコンピューティング環境であって、
前記コンピュータプログラムが前記コンピューティング環境のメモリに格納され、
統合データを出力するために集約データを重みごとの変換に供することによって、前記集約データを前記統合データに正規化するデータ統合を遂行することと、
前記統合データの最終格付を決定し、前記最終格付に従って前記統合データを描写するヒートマップを含むユーザーインターフェースをディスプレイ上に生成することによって、データ変換および視覚化を遂行することとを、
前記コンピューティング環境に、引き起こすことにより、
前記決定エンジンが、前記統合データの変換および視覚化を実装するように構成された、
コンピューティング環境。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、自動化に関し、より具体的には、テスト自動化の詳細を有する最も使用されるシステムトランザクションのグラフィックユーザーインターフェースヒートマップに関する。
【背景技術】
【0002】
企業は、日常業務のために従来のソフトウェアパッケージ(例えば、SAPシステム)を利用する。従来のソフトウェアパッケージは包括的であり、従来のソフトウェアパッケージの単一のソフトウェアインスタンスで、何千ものトランザクション(例えば、SAPトランザクション、SAP Fioriアプリケーション、SAP Webdynpro、SAP WinGUI、SAP WebGUIなど)を可能にできる。したがって、膨大な量のトランザクションを考慮すると、企業が従来のソフトウェアパッケージ(すなわち、使用データのコンパイルおよび処理)の使用を理解することは困難である。さらに、従来のソフトウェアパッケージが更新を受信すると、企業は、すべてのテストケースについて、各単一のソフトウェアインスタンスの任意の変更に関してテストを遂行する必要がある。
【0003】
従来のソフトウェアパッケージの使用データを蓄積するためには、従来の収集プログラムは、分ごとに実行可能である。しかし、従来の収集プログラムは、一般に、分析を抽出しない。または蓄積された使用データの管理さえできる。最善の状態でも、従来の収集プログラムはギガバイトのデータを提供し、これらは正規化されておらず、最も特殊化された従来のプログラムのみによって解析するには面倒で時間がかかる。
【0004】
例えば、ST03(N)は、システム性能監視およびシステム作業負荷分析に使用されるSAP標準トランザクションである。しかしながら、ST03(N)を分析に使用することは、いくつかの理由で困難かつ複雑であり得る。例えば、ST03(N)を使用するためには、エンドユーザーは、SAPシステムのアーキテクチャ、データベースの概念、および性能測定基準に関する専門的な技術的知識および理解を有する必要がある。専門的な技術的知識および理解がなければ、ST03(N)によって提供された情報を解釈することは極めて困難である。さらに、ST03(N)によって生成されるデータの量は、10GBを超える技術データなどで、膨大であり得る。そのような量のデータを分析することは時間がかかる。そして、このようなデータ量では、エンドユーザーにとって煩雑で分かり難い負担となる。さらに、データは、異なる位置にわたって拡張でき、それによって、ナビゲートすることが非常に困難であり得る。また、ST03(N)をどのように使用するかに関する技術文書、ましてや、多くのアプリケーションサーバー、作業プロセス、トランザクション、およびユーザー層に関する文書は、ほとんど存在しない。
【0005】
したがって、使用データを取得し、使用データから分析を導出するためのソリューションが必要である。
【発明の概要】
【0006】
1つまたは複数の実施形態によれば、統合データの変換および視覚化のための方法が提供される。本方法は、コンピューティング環境内のコンピュータプログラムとして実装された決定エンジンによって遂行される。本方法は、統合データを出力するために集約データを重みごとの変換に供することによって、集約データを統合データに正規化するデータ統合を遂行するステップを含む。本方法は、統合データの最終格付を決定し、最終格付に従って統合データを描写するヒートマップを含むユーザーインターフェースをディスプレイ上に生成することによって、データ変換および視覚化を遂行するステップを含む。
【0007】
本明細書の特定の実施形態の利点が容易に理解されるように、添付の図面に示されている特定の実施形態を参照することによって、より詳細な説明が提供される。これらの図面は典型的な実施形態のみを示しており、したがってその範囲を限定するものと見なされるべきではないことを理解されたいが、本明細書の1つまたは複数の実施形態は、添付の図面を使用して追加の具体性および詳細を伴って記載および説明される。
【図面の簡単な説明】
【0008】
【
図1】1つまたは複数の実施形態による、自動化システムを示すアーキテクチャ図である。
【0009】
【
図2】1つまたは複数の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0010】
【
図3】1つまたは複数の実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
【0011】
【
図4】1つまたは複数の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
【
図5】1つまたは複数の実施形態による、コンピューティングシステムを示すアーキテクチャ図である。
【0013】
【
図6】1つまたは複数の実施形態による、画像内のグラフィカル要素を認識するように訓練されたニューラルネットワークの一例を示す図である。
【0014】
【
図7】1つまたは複数の実施形態による、ニューロンの一例を示す図である。
【0015】
【
図8】1つまたは複数の実施形態による、AI/MLモデル(複数可)を訓練するためのプロセスを示すフローチャートである。
【0016】
【
図9】1つまたは複数の実施形態による、プロセスを示すフローチャートである。
【0017】
【
図10】1つまたは複数の実施形態による、インターフェースを示す図である。
【0018】
【
図11】1つまたは複数の実施形態による、インターフェースを示す図である。
【0019】
【
図12】1つまたは複数の実施形態による、インターフェースを示す図である。
【0020】
【
図13】1つまたは複数の実施形態による、インターフェースを示す図である。
【0021】
【
図14】1つまたは複数の実施形態による、インターフェースを示す図である。
【0022】
【
図15】1つまたは複数の実施形態による、インターフェースを示す図である。
【0023】
【
図16】1つまたは複数の実施形態による、インターフェースを示す図である。
【0024】
別段の指示がない限り、同様の参照符号は、添付の図面を通して一貫して対応する特徴を示す。
【発明を実施するための形態】
【0025】
本明細書の実施形態は、自動化に関する。より詳細には、本明細書の実施形態は、テスト自動化の詳細を有する最も使用されるシステムトランザクションのグラフィックユーザーインターフェースヒートマップを自動的に生成することに関する。グラフィックユーザーインターフェースヒートマップは、ロボティックプロセスオートメーション(RPA)をさらに遂行する、決定エンジンを遂行する1つまたは複数のコンピューティングシステムによって自動的に生成できる。1つまたは複数の実施形態によれば、決定エンジンは、一般に、ソフトウェアシステムの使用データを取得し、使用データから分析を導出する、操作または方法を実行する。決定エンジンの操作または方法は、ソフトウェアシステムの使用の統合、集約、および視覚化としてグラフィックユーザーインターフェースヒートマップを生成するために、導出された分析を利用することを含む。決定エンジンは、グラフィックユーザーインターフェースヒートマップが、テスト自動化の詳細と共にソフトウェアシステムにおいて最も使用されるトランザクションの描写を可能にできる。例えば、決定エンジンは、グラフィックユーザーインターフェースヒートマップを介して、ソフトウェアシステムのテスト自動化機会の即時発見を提供できる。1つまたは複数の実施形態によれば、決定エンジンはまた、収集プログラムによって抽出された使用データを集約し、使用データをそれぞれ重みに計算および/または変換し、使用データをグラフィックユーザーインターフェースヒートマップとして視覚化できる。さらに、決定エンジンは、グラフィックユーザーインターフェースヒートマップがテスト関連性およびテスト優先順位付けの表示の描写することを、可能にできる。
【0026】
図1は、1つまたは複数の実施形態による、ハイパーオートメーションシステム100を示すアーキテクチャ図である。本明細書で使用される「ハイパーオートメーション」は、プロセス自動化のコンポーネント、統合ツール、および作業を自動化する能力を高める技術、をまとめる自動化システムを指す。例えば、RPAは、いくつかの実施形態ではハイパーオートメーションシステムのコアで使用されてもよく、特定の実施形態では、自動化機能は、人工知能および/または機械学習(AI/ML)、プロセスマイニング、分析、ならびに/あるいは他の高度なツールで拡張されてもよい。ハイパーオートメーションシステムがプロセスを学習し、AI/MLモデルを訓練し、分析を使用すると、例えば、ますます多くの知識作業を自動化することができ、組織内のコンピューティングシステム、例えば個人によって使用されるものと自律的に実行するものの両方が、すべてハイパーオートメーションプロセスの参加者となるように関与され得る。いくつかの実施形態のハイパーオートメーションシステムでは、ユーザーおよび組織は、自動化を効率的かつ効果的に発見し、理解し、スケールできる。
【0027】
ハイパーオートメーションシステム100は、デスクトップコンピュータ102、タブレット104、およびスマートフォン106などのユーザーコンピューティングシステムを含む。しかしながら、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、スマートウォッチ、ラップトップコンピュータ、サーバー、モノのインターネット(IoT)デバイスなどを含むがこれらに限定されない、任意の所望のコンピューティングシステムを使用できる。また、
図1には3つのユーザーコンピューティングシステムが示されているが、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の適切な数のコンピューティングシステムを使用できる。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のコンピューティングシステムを使用できる。ユーザーコンピューティングシステムは、ユーザーによって能動的に使用されてもよく、または、多くのもしくは任意のユーザー入力なしに、自動的に実行されてもよい。
【0028】
各コンピューティングシステム102,104,106は、その上で実行されるそれぞれの自動化プロセス110,112,114(複数可)を有する。自動化プロセス102,104,106(複数可)は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション(複数可)、任意の他の適切なソフトウェアおよび/またはハードウェア、あるいは、これらの任意の組み合わせを含むことができるが、これらに限定されない。いくつかの実施形態では、プロセス110,112,114(複数可)のうちの1つまたは複数は、リスナーであってもよい。リスナーは、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション、または任意の他のソフトウェアおよび/またはハードウェアであってもよい。実際、いくつかの実施形態では、リスナー(複数可)のロジックは、物理ハードウェアを介して部分的または完全に実装される。
【0029】
リスナーは、それぞれのコンピューティングシステムとのユーザーインタラクション、および/または無人コンピューティングシステムの操作、に関するデータを監視および記録し、ネットワーク(例えば、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、それらの任意の組み合わせなど)を介して、コアハイパーオートメーションシステム120にデータを送信する。データは、どのボタンがクリックされたか、マウスがどこに移動したか、フィールドに入力されたテキスト、1つのウィンドウが最小化されそして別のウィンドウが開かれたこと、ウィンドウに関連付けられたアプリケーション、などを含んでもよいが、これらに限定されない。特定の実施形態では、リスナーからのデータは、ハートビードメッセージの一部として定期的に送信されてもよい。いくつかの実施形態では、データは、所定量のデータが収集された後、所定期間が経過した後、またはその両方で、コアハイパーオートメーションシステム120に送信されてもよい。サーバー130などの1つまたは複数のサーバーは、データベース140などのデータベース内で、リスナーからデータを受信および格納する。
【0030】
自動化プロセスは、設計時間中にワークフローで開発されたロジックを遂行できる。RPAの場合、ワークフローは、本明細書で「アクティビティ」と定義される、シーケンスまたは他の何らかのロジックフローで遂行されるステップのセットを含んでもよい。各アクティビティは、ボタンのクリックする、ファイルを読む、ログパネルへの書き込む、などのアクションを含んでもよい。いくつかの実施形態では、ワークフローは入れ子にされても、また埋め込まれてもよい。
【0031】
いくつかの実施形態におけるRPAの長期間実行ワークフローは、サービスオーケストレーション、人間の介入、および無人環境における長期間実行トランザクションをサポートするマスタプロジェクトである。米国特許第10,860,905号は、それが含むすべてについて参照により組み込まれる。特定のプロセスが、アクティビティの次のステップに進む前に、例外処理、承認、または検証を処理するために人間の入力を必要とする場合、人間の介入が行われる。この場合、プロセス遂行が中断され、人間のタスクが完了するまでRPAロボットを解放する。
【0032】
長時間実行ワークフローは、永続性アクティビティを介してワークフローの断片化をサポートしてもよく、呼び出しプロセスおよび非ユーザーインタラクションアクティビティと組み合わせて、人間のタスクをRPAロボットタスクでオーケストレーションできる。いくつかの実施形態では、複数または多数のコンピューティングシステムが、長期実行ワークフローのロジックの遂行に関与できる。長時間実行ワークフローは、迅速な遂行を容易にするためにセッションで実行できる。いくつかの実施形態では、長時間実行ワークフローは、アプリケーションプログラミングインターフェース(API)呼び出しを実行し、かつ、長時間実行ワークフローセッションで実行するアクティビティを含み得るバックグラウンドプロセスをオーケストレーションしてもよい。いくつかの実施形態では、これらのアクティビティは、呼び出しプロセスアクティビティによって呼び出されてもよい。ユーザーセッションで実行するユーザーインタラクションアクティビティを有するプロセスは、コンダクタアクティビティからジョブを開始することによって呼び出されてもよい(コンダクタは、本明細書で後により詳細に説明する)。いくつかの実施形態では、ユーザーは、コンダクタでフォームを完成させる必要があるタスクを介して、インタラクションできる。RPAロボットにフォームタスクが完了するのを待機させ、次いで、長時間実行ワークフローを再開させるアクティビティが含まれてもよい。
【0033】
自動化プロセス110,112,114(複数可)のうちの1つまたは複数は、コアハイパーオートメーションシステム120と通信している。いくつかの実施形態では、コアハイパーオートメーションシステム120は、サーバー130などの1つまたは複数のサーバー上でコンダクタアプリケーションを実行できる。例示目的のために1つのサーバー130が示されているが、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、互いに近接しているかまたは分散アーキテクチャにある、複数または多数のサーバーを採用することができる。例えば、1つまたは複数のサーバーが、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、コンダクタ機能、AI/MLモデル提供、認証、ガバナンス、および/または任意の他の適切な機能のために提供され得る。いくつかの実施形態では、コアハイパーオートメーションシステム120は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどを組み込むか、その一部であってもよい。特定の実施形態では、コアハイパーオートメーションシステム120は、サーバー130などの1つまたは複数のコンピューティングシステム上で複数のソフトウェアベースのサーバーをホストしてもよい。いくつかの実施形態では、サーバー130などのコアハイパーオートメーションシステム120の1つまたは複数のサーバーは、1つまたは複数の仮想マシン(VM)を介して実装されてもよい。
【0034】
いくつかの実施形態では、自動化プロセス110,112,114(複数可)のうちの1つまたは複数は、コアハイパーオートメーションシステム120上に展開された、またはそれによってアクセス可能な1つまたは複数のAI/MLモデル132を呼び出すことができる。AI/MLモデル132は、本明細書でより詳細に説明するように、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の適切な目的のために訓練され得る。いくつかの実施形態では、AI/MLモデル132のうちの2つ以上は、それらが集合的に協調出力(複数可)を提供するように(例えば、直列、並列、またはそれらの組み合わせ)チェーン化されてもよい。AI/MLモデル132は、コンピュータビジョン(CV)、光学文字認識(OCR)、文書処理および/または理解、意味学習および/または分析、分析予測、プロセス発見、タスクマイニング、テスト、自動RPAワークフロー生成、シーケンス抽出、クラスタリング検出、音声-テキスト翻訳、それらの任意の組み合わせなどを実行または支援してもよい。しかしながら、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の所望の数および/またはタイプ(複数可)のAI/MLモデルを使用できる。複数のAI/MLモデルを使用することにより、システムは、例えば、所与のコンピューティングシステム上で何が起こっているかの全体像を開発できる。例えば、あるAI/MLモデルはOCRを実行でき、別のAI/MLモデルはボタンを検出でき、別のAI/MLモデルはシーケンスを比較できる、などである。パターンは、AI/MLモデルによって個別に決定されてもよいし、複数のAI/MLモデルによってまとめて決定されてもよい。特定の実施形態では、1つまたは複数のAI/MLモデルは、コンピューティングシステム102,104,106の少なくとも1つにローカルに展開される。
【0035】
いくつかの実施形態では、複数のAI/MLモデル132を使用できる。各AI/MLモデル132は、データ上で実行するアルゴリズム(またはモデル)であり、AI/MLモデル自体は、例えば、訓練データで訓練された、訓練された人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であってもよい。いくつかの実施形態では、AI/MLモデル132は、統計的モデリング(例えば、隠れマルコフモデル(HMM))などの様々な機能を実行する複数の層を有してもよく、深層学習技術(例えば、長期短期記憶(LSTM)深層学習、以前の隠れ状態のエンコーディングなど)を利用して所望の機能を実行できる。
【0036】
いくつかの実施形態では、ハイパーオートメーションシステム100は、以下の4つの主要な機能グループを提供できる。(1)発見、(2)自動化の構築、(3)管理、および(4)エンゲージメントである。いくつかの実施形態では、オートメーション(例えば、ユーザーコンピューティングシステム、サーバーなどで実行される)は、RPAロボットなどのソフトウェアロボットによって実行されてもよい。例えば、アテンディッドロボット、アンアテンディッドロボット、および/またはテストロボットを使用できる。アテンディッドロボットは、タスクでユーザーを支援するために(例えば、UiPath Assistant(商標)を介して)、ユーザーと作業する。アンアテンディッドロボットは、ユーザーから独立して作業し、ユーザーが知らない間にバックグラウンドで実行できる。テストロボットは、アプリケーションまたはRPAワークフローに対してテストケースを実行するアンアテンディッドロボットである。いくつかの実施形態では、テストロボットを複数のコンピューティングシステム上で並行して実行できる。
【0037】
発見機能は、ビジネスプロセスの自動化の様々な機会を発見し、自動的な推奨を提供できる。そのような機能は、サーバー130などの1つまたは複数のサーバーによって実装されてもよい。発見機能は、いくつかの実施形態では、オートメーションハブ、プロセスマイニング、タスクマイニング、および/またはタスクキャプチャを提供することを含んでもよい。オートメーションハブ(例えば、UiPath Automation Hub(商標))は、可視性および制御性を伴うオートメーションロールアウトを管理するための機構を提供できる。オートメーションアイデアは、例えば、提出フォームを介して従業員からクラウドソースされてもよい。これらのアイデアを自動化するための実現可能性および投資収益率(ROI)の計算を提供でき、将来の自動化のための文書を収集でき、自動化の発見から構築までをより迅速に行うために協調を提供できる。
【0038】
プロセスマイニング(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介して)とは、アプリケーション(例えば、企業資源計画(ERP)アプリケーション、顧客関係管理(CRM)アプリケーション、電子メールアプリケーション、コールセンターアプリケーションなど)からデータを収集して分析し、組織内にどのようなエンドツーエンドプロセスが存在するか、それらを効果的に自動化すればよいか、また、自動化がもたらす影響が何であるか、を示すプロセスを指す。このデータは、例えば、リスナーによってユーザーコンピューティングシステム102,104,106から収集され、サーバー130などのサーバーによって処理できる。いくつかの実施形態では、この目的のために、1つまたは複数のAI/MLモデル132を使用できる。この情報は、実装を迅速化し、手動の情報転送を回避するために、オートメーションハブにエクスポートされてもよい。プロセスマイニングの目標は、組織内のプロセスを自動化することによってビジネス価値を高めることであり得る。プロセスマイニング目標のいくつかの例には、利益の増加、顧客満足の向上、規制および/または契約の遵守、従業員の効率の向上などが含まれるが、これらに限定されない。
【0039】
タスクマイニング(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介して)は、ワークフロー(例えば、従業員のワークフロー)を識別および集約し、次いで、AIを適用して日常タスクのパターンおよび変動を公開し、自動化を容易にして潜在的な節約(例えば、時間および/またはコストの節約)のために、そのようなタスクをスコアリングする。1つまたは複数のAI/MLモデル132が、データ内の繰り返されるタスクパターンを発見するために、採用され得る。その後、自動化のために準備が整った反復タスクを識別できる。この情報は、いくつかの実施形態では、最初にリスナーによって提供され、サーバー130などのコアハイパーオートメーションシステム120のサーバー上で分析されてもよい。タスクマイニングからの発見(例えば、拡張アプリケーションマークアップ言語(XAML)プロセスデータ)は、文書を処理するために、またはUiPath Studio(商標)などのデザイナアプリケーションにエクスポートされて、自動化をより迅速に作成および展開できる。
【0040】
いくつかの実施形態におけるタスクマイニングは、ユーザーアクション(例えば、マウスクリック位置、キーボード入力、ユーザーがインタラクションしていたアプリケーションウィンドウおよびグラフィカル要素、インタラクションのタイムスタンプなど)、を伴う、スクリーンショットの撮影、統計データ(例えば、遂行時間、アクションの数、テキスト入力など)の収集、スクリーンショットの編集および注釈、記録されるべきアクションのタイプの指定、などを含んでもよい。
【0041】
タスクキャプチャ(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介して)は、ユーザーが作業する際にアテンディッドプロセスを自動的に文書化し、またはアンアテンディッドプロセスのためのフレームワークを提供する。そのような文書化は、プロセス定義文書(PDD)、スケルトンワークフロー、プロセスの各部分に対するアクションのキャプチャ、ユーザーアクションの記録、および、各ステップ、Microsoft Word(登録商標)文書、XAMLファイルなどに関する詳細を含む包括的なワークフロー図の自動生成、の形態で自動化する所望のタスクを含んでもよい。構築可能なワークフローは、いくつかの実施形態では、UiPath Studio(商標)などのデザイナアプリケーションに直接エクスポートできる。タスクキャプチャは、プロセスを説明するサブジェクトマターエキスパートと、プロダクショングレードオートメーションを提供する、センターオブエクセレンス(CoE)メンバの両方にとって、要件収集プロセスを単純化できる。
【0042】
オートメーションの構築は、デザイナアプリケーション(例えば、UiPath Studio(商標)、UiPath StudioX(商標)、またはUiPath Web(商標)など)を介して達成できる。例えば、RPA開発施設150のRPA開発者は、コンピューティングシステム152のRPAデザイナアプリケーション154を使用して、ウェブ、モバイル、SAP(登録商標)、および仮想化デスクトップなどの様々なアプリケーションおよび環境のオートメーションを構築およびテストできる。API統合は、様々なアプリケーション、技術、およびプラットフォームのために提供されてもよい。事前定義されたアクティビティ、ドラッグアンドドロップモデリング、およびワークフローレコーダは、最小限のコーディングで自動化を容易にしてもよい。文書理解機能は、1つまたは複数のAI/MLモデル132を呼び出すデータ抽出および解釈のためのドラッグアンドドロップAIスキルを介して提供できる。そのような自動化は、テーブル、チェックボックス、署名、および手書きを含む、実質的に任意の文書タイプおよびフォーマットを処理できる。データが検証されるか、または例外が処理される場合、この情報を使用してそれぞれのAI/MLモデルを再訓練し、時間と共にそれらの精度を向上できる。
【0043】
統合サービスにより、開発者は、例えば、ユーザーインターフェース(UI)の自動化とAPIの自動化をシームレスに組み合わせることができる。APIを必要とする、またはAPIおよび非APIアプリケーションおよびシステムの両方を横断する自動化が構築されてもよい。開発者が多種多様なプロセスをより迅速に自動化できるように、予め構築されたRPAおよびAIテンプレートとソリューションのためのリポジトリ(例えば、UiPath Object Repository(商標))またはマーケットプレイス(例えば、UiPath Marketplace(商標))が、提供されてもよい。したがって、自動化を構築するとき、ハイパーオートメーションシステム100は、ユーザーインターフェース、開発環境、API統合、予め構築されたおよび/またはカスタム構築されたAI/MLモデル、開発テンプレート、統合開発環境(IDE)、および高度なAI機能を提供してもよい。ハイパーオートメーションシステム100は、いくつかの実施形態では、RPAロボットの開発、デプロイメント、管理、構成、監視、デバッグ、および維持を可能にし、これにより、ハイパーオートメーションシステム100の自動化を提供してもよい。
【0044】
いくつかの実施形態では、デザイナアプリケーション(複数可)および/または外部ルールエンジンなどのハイパーオートメーションシステム100のコンポーネントは、ハイパーオートメーションシステム100によって提供される様々な機能を制御するためのガバナンスポリシーを管理および施行するためのサポートを提供する。ガバナンスとは、組織がポリシーを導入して、E.U.一般データ保護規則(GDPR、General Data Protection Regulation)、米国医療保険の携行性と責任に関する法律(HIPAA、Health Insurance Portability and Accountability Act)、サードパーティアプリケーションの利用規約などに違反するような、組織に害を及ぼす可能性のあるアクションを実行できる自動化(RPA ロボットなど)を、ユーザーが開発するのを防ぐ能力である。そうでなければ、開発者は、それらの自動化を実行しながらプライバシー法、サービス利用規約などに違反する自動化を作成できるので、いくつかの実施形態は、ロボットおよび/またはロボット設計アプリケーションレベルで、アクセス制御およびガバナンス制限を実装する。これにより、セキュリティリスクをもたらすか、または、ポリシー、規制、プライバシー法、および/もしくはプライバシーポリシーに違反するあるいは動作する可能性がある、未承認のソフトウェアライブラリに、開発者が依存することを防止することによって、いくつかの実施形態では、自動化プロセス開発パイプラインへの追加レベルのセキュリティおよびコンプライアンスを提供できる。米国非仮特許出願第16/924,499号を参照されたい。これは、それが含むすべてについて参照により組み込まれる。
【0045】
管理機能は、組織全体にわたる自動化の管理、デプロイメント、および最適化を提供できる。管理機能は、いくつかの実施形態では、オーケストレーション、テスト管理、AI機能、および/または洞察を含むことができる。ハイパーオートメーションシステム100の管理機能はまた、自動化アプリケーションおよび/またはRPAロボットのためのサードパーティソリューションおよびアプリケーションとの統合ポイントとして機能できる。ハイパーオートメーションシステム100の管理機能は、とりわけ、RPAロボットのプロビジョニング、デプロイメント、構成、待ち行列、監視、ロギング、および相互接続を容易にすることを含むことができるが、これらに限定されない。
【0046】
UiPath Orchestrator(これは、いくつかの実施形態ではUiPath Automation Cloud(商標)の一部として、またはオンプレミスで、VM内で、プライベートまたはパブリッククラウドで、Linux(商標)VM内で、提供されてもよく、あるいは、UiPath Automation Suite(商標)を介してクラウドネイティブシングルコンテナスイートとして提供されてもよい)などのコンダクタアプリケーションは、RPAロボットデプロイメントでの展開、監視、最適化、スケール、およびセキュリティ確保のためのオーケストレーション能力を提供する。テストスイート(例えば、UiPath Test Suite(商標))は、展開された自動化の品質を監視するためのテスト管理を提供できる。テストスイートは、テスト計画および遂行、要件の充足、および欠陥トレーサビリティを容易にできる。テストスイートは、包括的なテスト報告を含んでもよい。
【0047】
分析ソフトウェア(例えば、UiPath Insights(商標))は、展開された自動化の性能を追跡、測定、および管理できる。分析ソフトウェアは、自動化操作を、組織の特定の重要業績評価指標(KPI)および戦略的結果と整合させることができる。分析ソフトウェアは、人間のユーザーによるより良い理解しやすいように、ダッシュボード形式で結果を提示できる。
【0048】
データサービス(例えば、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の再訓練に使用されてもよい。
【0049】
エンゲージメント機能は、所望のプロセスにおけるシームレスな協調のために1つのチームとして人間および自動化を関与させる。いくつかの実施形態では、APIが不足している場合でも、ブラウザタブとレガシーソフトウェアとを接続するために、ローコードアプリケーションを(例えば、UiPath Apps(商標)を介して)構築できる。アプリケーションは、例えば、ドラッグアンドドロップ制御の豊富なライブラリを介してウェブブラウザを使用して迅速に作成できる。アプリケーションは、単一の自動化または複数の自動化に接続され得る。
【0050】
アクションセンター(例えば、UiPath Action Center(商標))は、オートメーションから人間に、およびその逆にプロセスを引き渡すための簡単で効率的な機構を提供する。人間は、承認またはエスカレーションを提供したり、例外を設けたりしてもよい。次いで、自動化は、所与のワークフローの自動機能を実行できる。
【0051】
ローカルアシスタントは、ユーザーがオートメーション(例えば、UiPath Assistant(商標))を起動するための起動パッドとして提供されてもよい。この機能は、例えば、オペレーティングシステムによって提供されるトレイに提供されてもよく、ユーザーがコンピューティングシステム上のRPAロボットおよびRPAロボット搭載アプリケーションとインタラクションすることを可能にしてもよい。インターフェースは、所与のユーザーに承認された自動化をリストし、ユーザーがそれらを実行することを可能にできる。これらは、オートメーションマーケットプレイス、オートメーションハブ内の内部オートメーションストアなどからの、すぐに使える自動化を含んでもよい。オートメーションが実行されると、オートメーションがそのアクションを実行している間にユーザーがコンピューティングシステムを使用できるように、それらはコンピューティングシステム上の他のプロセスと並列にローカルインスタンスとして実行できる。特定の実施形態では、アシスタントは、ユーザーがアシスタントの起動パッドからまもなく自動化されるプロセスを文書化できるように、タスクキャプチャ機能と統合される。
【0052】
チャットボット(例えば、UiPath Chatbots(商標))、ソーシャルメッセージングアプリケーション、および/または音声コマンドは、ユーザーが自動化を実行することを可能にできる。これにより、顧客とインタラクションするため、または他のアクティビティを実行するためにユーザーが必要とする情報、ツール、およびリソースへのアクセスを簡素化することができる。人々間の会話は、他のプロセスと同様に、容易に自動化できる。このようにして起動されたトリガRPAロボットは、潜在的に平易な言語コマンドを使用して、注文状況のチェック、CRMにおけるデータの投稿などの操作を実行できる。
【0053】
いくつかの実施形態では、任意のスケールでの自動化プログラムのエンドツーエンド測定およびガバメントを、ハイパーオートメーションシステム100によって提供できる。上記により、自動化の性能を理解するために、(例えば、UiPath Insights(商標)を介した)分析を使用してもよい。利用可能なビジネス測定基準および操作上の洞察の任意の組み合わせを使用するデータモデリングおよび分析は、様々な自動化プロセスに使用できる。カスタム設計および予め構築されたダッシュボードにより、所望の測定基準にわたってデータを視覚化すること、新しい分析的洞察を発見すること、性能指標を追跡すること、自動化のためにROIを発見すること、ユーザーコンピューティングシステム上で実行されるテレメトリー監視すること、エラーおよび異常を検知すること、ならびに自動化をデバッグすること、が可能になる。自動化ライフサイクル全体にわたる自動化を管理するために、自動化管理コンソール(例えば、UiPath Automation Ops(商標))は、提供されてもよい。組織は、自動化がどのように構築されるか、ユーザーがそれらを用いて何を行うことができるか、およびユーザーがどの自動化にアクセスすることができるか、支配できる。
【0054】
ハイパーオートメーションシステム100は、いくつかの実施形態において反復的なプラットフォームを提供する。プロセスを発見することができ、自動化を構築、テスト、および展開することができ、性能を測定することができ、自動化の使用をユーザーに容易に提供することができ、フィードバックを取得することができ、AI/MLモデルを訓練および再訓練することができ、プロセスはそれ自体を繰り返すことができる。これにより、より堅牢で効果的な一連の自動化が容易になる。
【0055】
図2は、1つまたは複数の実施形態による、RPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のハイパーオートメーションシステム100の一部である。RPAシステム200は、開発者がワークフローを設計して実装することを可能にするデザイナ210を含む。デザイナ210は、アプリケーション統合、ならびにサードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供できる。デザイナ210は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ210は、ワークフローおよびロボットの開発およびデプロイメント(矢印211によって表される)を容易にする。いくつかの実施形態では、デザイナ210は、ユーザーのデスクトップ上で実行するアプリケーション、VMでリモートで実行するアプリケーション、ウェブアプリケーションなどであってもよい。
【0056】
自動化プロジェクトは、上記のように本明細書で「アクティビティ」として定義される、ワークフローで開発されたカスタムセットのステップ間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ210の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリックする、ファイルを読む、ログパネルへの書き込む、などのアクションを含んでもよい。いくつかの実施形態では、ワークフローは入れ子にされても、また埋め込まれてもよい。
【0057】
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含んでもよいが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへのフローを可能にする線形プロセスに特に適してもよい。フローチャートは、より複雑なビジネスロジックに特に適してもよく、複数の分岐論理演算子を介してより多様な方法で判断の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用できる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定し、プロセスをデバッグするのに特に適し得る。
【0058】
ワークフローがデザイナ210で開発されると、ビジネスプロセスの遂行は、コンダクタ220によって調整され、デザイナ210で開発されたワークフローを遂行する1つまたは複数のロボット230を調整する。コンダクタ220の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ220は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ220は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして機能できる。上記により、いくつかの実施形態では、コンダクタ220は、
図1のコアハイパーオートメーションシステム120の一部であってもよい。
【0059】
コンダクタ220は、全てのロボット230を管理してもよく、集中ポイントからロボット230を(矢印231によって表されるよう)接続し遂行してもよい。管理され得るロボット230のタイプは、アテンディッドロボット232、アンアテンディッドロボット234、開発ロボット(アンアテンディッドロボット234と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット232と同様であるが、開発およびテストの目的で使用される)を含むが、これらに限定されない。アテンディッドロボット232は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に操作する。アテンディッドロボット232は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ220と共に使用できる。アテンディッドロボット232は、人間のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボットのコンダクタ220から開始することができず、および/または、ロックされた画面の下で実行できない。特定の実施形態では、アテンディッドロボット232は、ロボットトレイから、またはコマンドプロンプトからのみ起動できる。いくつかの実施形態では、アテンディッドロボット232は人間の監督下で実行するべきである。
【0060】
アンアテンディッドロボット234は、仮想環境で無人で実行し、多くのプロセスを自動化できる。アンアテンディッドロボット234は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当できる。いくつかの実施形態では、すべてのロボットタイプのデバッグをデザイナ210で実行できる。アテンディッドロボットとアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化できる(破線のボックス290によって表される)。
【0061】
コンダクタ220は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な機能(矢印232によって表される)を有することができる。プロビジョニングは、ロボット230とコンダクタ220(例えば、ウェブアプリケーション)との間の接続の作成し、維持を含んでもよい。デプロイメントは、遂行のために割り当てられたロボット230へのパッケージバージョンの正しい配信を保証することを含んでもよい。構成は、ロボット環境およびプロセス構成の維持および配信を含んでもよい。キューイングは、キューおよびキュー項目の管理を提供することを含んでもよい。監視は、ロボットの識別データを追跡し、ユーザー権限を維持することを含んでもよい。ロギングは、データベース(例えば、構造化照会言語(SQL)データベースまたはNoSQLデータベース)、および/または別のストレージ機構(例えば、大規模なデータセットを格納し、迅速に照会する能力を提供するElasticSearch(登録商標))へのログの格納およびインデックス付けを含んでもよい。コンダクタ220は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供できる。
【0062】
ロボット230は、デザイナ210で構築されたワークフローを実装する遂行エージェントである。ロボット(複数可)230のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット230は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット230は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。
【0063】
いくつかの実施形態では、ロボット230は、ユーザーモードで設置できる。このようなロボット230の場合、これは、所与のロボット230が設置されたユーザーと同じ権利を有することを意味する。この機能は、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、任意のタイプのロボット230をHD環境で構成できる。
【0064】
いくつかの実施形態におけるロボット230は、複数のコンポーネントに分割、各々が特定の自動化タスク専用に特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホスト(すなわち、ロボット230が遂行されるコンピューティングシステム)との間のプロキシとして機能する。これらのサービスは、ロボット230の資格情報で信頼され、管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。
【0065】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホストとの間のプロキシとして機能する。ユーザーモードロボットサービスは、ロボット230の資格情報で信頼され、管理できる。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションを自動的に起動できる。
【0066】
エグゼキュータは、Windows(登録商標)セッション下で所与のジョブを実行できる(すなわち、エグゼキュータはワークフローを遂行できる)。エグゼキュータは、モニターごとのドット/インチ(DPI)設定を認識していてもよい。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブの開始または停止、および設定変更を要求できる。コマンドラインは、サービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0067】
上記で説明したようにロボット230のコンポーネントを分割することは、開発者、サポートユーザー、およびコンピューティングシステムが各コンポーネントが遂行しているものを、より容易に実行、識別、および追跡するのに役立つ。このようにして、エグゼキュータおよびサービスに対して異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成できる。いくつかの実施形態では、エグゼキュータは、モニターごとにDPI設定を常に認識できる。結果として、ワークフローが作成されたコンピューティングシステムの構成にかかわらず、ワークフローを任意のDPIで遂行できる。いくつかの実施形態では、デザイナ210からのプロジェクトは、ブラウザのズームレベルとは独立していてもよい。いくつかの実施形態では、DPIを認識していない、または意図的に認識していないとマークされたアプリケーションの場合、DPIを無効にできる。
【0068】
本実施形態におけるRPAシステム200は、ハイパーオートメーションシステムの一部である。開発者は、デザイナ210を使用して、コアハイパーオートメーションシステム240(例えば、そのAI中心の一部として)に展開されたAI/MLモデルを利用するRPAロボットを構築し、テストできる。そのようなRPAロボットは、AI/MLモデル(複数可)の遂行のための入力を送信し、コアハイパーオートメーションシステム240を介してそこから出力を受信できる。
【0069】
上述したように、ロボット230の1つまたは複数は、リスナーであってもよい。これらのリスナーは、ユーザーがコンピューティングシステムを使用するときにユーザーが何を行っているかに関する情報を、コアハイパーオートメーションシステム240に提供してもよい。次いで、この情報は、プロセスマイニング、タスクマイニング、タスクキャプチャなどのためにコアハイパーオートメーションシステムによって使用されてもよい。
【0070】
アシスタント/チャットボット250をユーザーコンピューティングシステム上に設けて、ユーザーがRPAローカルロボットを起動できるようにしてもよい。アシスタントは、例えば、システムトレイに配置されてもよい。チャットボットは、ユーザーがチャットボット内のテキストを見ることができるように、ユーザーインターフェースを有してもよい。あるいは、チャットボットは、ユーザーインターフェースを持たず、バックグラウンドで実行され、ユーザーの発話に対してコンピューティングシステムのマイクロフォンを使用して聞き取ってもよい。
【0071】
いくつかの実施形態では、データラベリングは、ロボットが遂行しているコンピューティングシステムのユーザーによって、またはロボットが情報を提供する別のコンピューティングシステム上で、実行されてもよい。例えば、ロボットがVMユーザーのために画像に対してCVを実行するAI/MLモデルを呼び出すが、AI/MLモデルが画面上のボタンを正しく識別しない場合、ユーザーは、誤って識別されたまたは識別されていないコンポーネントの周りに長方形を描画し、正しい識別をテキストに提供する可能性がある。この情報は、コアハイパーオートメーションシステム240に提供されてもよく、その後、AI/MLモデルの新しいバージョンを訓練するために後で使用されてもよい。
【0072】
図3は、1つまたは複数の実施形態による、展開されたRPAシステム300を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム300は、
図2のRPAシステム200および/または
図1のハイパーオートメーションシステム100の一部であってもよい。展開されたRPAシステム300は、異なるコンピューティングプロセスの自動化のためのエンタープライズレベル、ユーザーレベル、またはデバイスレベルの自動化ソリューションを提供する、クラウドベースのシステム、オンプレミスシステム、デスクトップベースのシステムなどであってもよい。
【0073】
クライアント側301、サーバー側302、またはその両方は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意されたい。クライアント側301では、ロボットアプリケーション310は、エグゼキュータ312、エージェント314、およびデザイナ316を含む。しかしながら、いくつかの実施形態では、デザイナ316は、エグゼキュータ312およびエージェント314と同じコンピューティングシステム上で実行されていなくてもよい。エグゼキュータ312は、プロセスを実行している。
図3に示すように、いくつかのビジネスプロジェクトが同時に実行されてもよい。エージェント314(例えば、Windows(登録商標)サービス)は、本実施形態では、すべてのエグゼキュータ312に対する単一の接続ポイントである。本実施形態におけるすべてのメッセージは、コンダクタ340にログインされ、これはデータベースサーバー355、AI/MLサーバー360、インデクササーバー370、またはそれらの任意の組み合わせを介して、それらをさらに処理する
図2に関して上述したように、エグゼキュータ312はロボットコンポーネントであってもよい。
【0074】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理できる。同時に実行される複数のインタラクティブなセッションをサポートするコンピューティングシステム(例えば、Windows(登録商標)Server2012)では、複数のロボットが同時に実行され、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行されてもよい。これは、上記ではHDロボットと呼ばれる。
【0075】
エージェント314はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。いくつかの実施形態では、エージェント314とコンダクタ340との間の通信は、常にエージェント314によって開始される。通知シナリオでは、エージェント314は、コンダクタ330によってロボットにコマンド(例えば、開始、停止など)を送信するために後で使用される、WebSocketチャネルを開いてもよい。
【0076】
リスナー330は、アテンディッドコンピューティングシステムとのユーザーインタラクション、および/またはリスナー330が常駐するアンアテンディッドコンピューティングシステムの操作、に関するデータを監視および記録する。リスナー330は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション、または任意の他のソフトウェアおよび/またはハードウェアであってもよい。実際、いくつかの実施形態では、リスナーのロジックは、物理ハードウェアを介して部分的または完全に実装される。
【0077】
サーバー側302には、プレゼンテーション層333、サービス層334、および永続層336、ならびにコンダクタ340が含まれる。プレゼンテーション層333は、ウェブアプリケーション342、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント344、ならびに、通知監視346を含んでもよい。サービス層334は、API実装/ビジネスロジック348を含んでもよい。永続層336は、データベースサーバー355、AI/MLサーバー360、およびインデクササーバー370を含んでもよい。例えば、コンダクタ340は、ウェブアプリケーション342、OData REST APIエンドポイント344、通知監視346、ならびにAPI実装/ビジネスロジック348を含む。いくつかの実施形態では、ユーザーがコンダクタ340のインターフェースで(例えば、ブラウザ320を介して)実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。そのようなアクションは、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、ロボット上のジョブの開始、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含むことができるが、これらに限定されない。ウェブアプリケーション342は、サーバープラットフォームのビジュアル層とすることができる。本実施形態では、ウェブアプリケーション342は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかしながら、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、または任意の他のフォーマットを使用できる。ユーザーは、コンダクタ340を制御するための様々なアクションを実行するために、本実施形態ではブラウザ320を介してウェブアプリケーション342からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごとおよび/またはプロセスごとにログを分析し、ロボットを起動および停止することなどができる。
【0078】
ウェブアプリケーション342に加えて、コンダクタ340はまた、OData REST APIエンドポイント344を公開するサービス層334も含む。しかしながら、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション342とエージェント314の両方によって消費される。エージェント314は、本実施形態ではクライアントコンピュータ上の1つまたは複数のロボットのスーパーバイザーである。
【0079】
本実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能を含む(少なくとも矢印349によって表される)。いくつかの実施形態では、構成エンドポイントは、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報など、様々な情報をログに記録するために使用されてもよい。デプロイメントRESTエンドポイントは、ジョブ開始コマンドがコンダクタ340内で使用される場合に遂行されるべきパッケージバージョンを問い合わせるために、ロボットによって使用されてもよい。キューイングRESTエンドポイントは、キューにデータを追加、キューからトランザクションを取得、トランザクションのステータスを設定など、キューおよびキュー項目管理を担当してもよい。
【0080】
RESTエンドポイントの監視は、ウェブアプリケーション342およびエージェント314を監視してもよい。通知監視API346は、エージェント314の登録、エージェント314への構成設定の配信、ならびにサーバーおよびエージェント314からの通知の送受信に使用されるRESTエンドポイントであってもよい。いくつかの実施形態では、通知監視API346はまた、WebSocket通信を使用してもよい。
図3に示すように、本明細書に記載の1つまたは複数のアクティビティ/アクションは、矢印350および351によって表される。
【0081】
サービス層334内のAPIは、いくつかの実施形態では、例えば、コンダクタ340および全体的なハイパーオートメーションシステムがオンプレミスデプロイメントタイプまたはクラウドベースデプロイメントタイプを有するかどうかに基づいて、適切なAPIアクセスパスの構成を通じて、アクセスできる。コンダクタ340用のAPIは、コンダクタ340に登録された様々なエンティティに関する統計を照会するためのカスタム方法を提供できる。いくつかの実施形態では、各ロジックリソースはODataエンティティであってもよい。そのようなエンティティでは、ロボット、プロセス、キューなどのコンポーネントは、プロパティ、関係、および操作を有してもよい。いくつかの実施形態では、コンダクタ340のAPIは、以下の2つの方法でウェブアプリケーション342および/またはエージェント314によって消費されてもよい。コンダクタ340からAPIアクセス情報を取得することによって、またはOAuthフローを使用するために外部アプリケーションを登録することによって。
【0082】
本実施形態では、永続層336は、データベースサーバー355(例えば、SQLサーバー)、AI/MLサーバー360(例えば、AIセンター機能などのサービスを提供するAI/MLモデルを提供するサーバー)、およびインデクササーバー370の3つのサーバーを含む。本実施形態におけるデータベースサーバー355は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション342を介して管理される。データベースサーバー355は、キューおよびキュー項目を管理できる。いくつかの実施形態では、データベースサーバー355は、ロボットによって記録されたメッセージを(インデクササーバー370に加えて、またはその代わりに)格納してもよい。データベースサーバー355はまた、例えば、クライアント側301にインストールされたリスナー330から受信したプロセスマイニング、タスクマイニング、および/またはタスクキャプチャ関連データを格納してもよい。いくつかの実施形態では、リスナー330とデータベース355との間に矢印は示されていないが、リスナー330はデータベース355と通信でき、その逆も可能であることを理解されたい。このデータは、PDD、画像、XAMLファイルなどの形式で格納されてもよい。リスナー330は、リスナー330が常駐するそれぞれのコンピューティングシステム上のユーザーアクション、プロセス、タスク、および性能測定基準を傍受するように構成されてもよい。例えば、リスナー330は、そのそれぞれのコンピューティングシステム上でユーザーアクション(例えば、クリック、入力文字、位置、アプリケーション、アクティブ要素、時間など)を記録し、次いで、これらをデータベースサーバー355に提供され格納されるのに適した形式に変換されてもよい。
【0083】
AI/MLサーバー360は、AI/MLモデルの自動化への組み込みを容易にする。予め構築されたAI/MLモデル、モデルテンプレート、および様々なデプロイメントオプションは、データサイエンティストでない者であってもそのような機能をアクセス可能にできる。展開された自動化(例えば、RPAロボット)は、AI/MLサーバー360からAI/MLモデルを呼び出すことができる。AI/MLモデルの性能を監視し、人間が検証したデータを使用して訓練および改善することができる。AI/MLサーバー360は、AI/MLモデルの新しいバージョンを訓練するために、訓練ジョブをスケジュールし遂行できる。
【0084】
AI/MLサーバー360は、開発時にユーザーに対して様々なMLスキルを構成するためのAI/MLモデルおよびMLパッケージに関するデータを格納してもよい。本明細書で使用されるMLスキルは、例えば自動化によって使用され得る、プロセスのための予め構築され訓練されたMLモデルである。AI/MLサーバー460はまた、意図分析、自然言語処理(NLP)、音声分析、異なるタイプのAI/MLモデルなどを含むがこれらに限定されない、様々なAI/ML機能のための文書理解技術およびフレームワーク、アルゴリズムおよびソフトウェアパッケージに関係するデータを格納してもよい。
【0085】
いくつかの実施形態では任意ではあるが、インデクササーバー370は、ロボットにより記録された情報を格納し、インデックスを作成する。特定の実施形態では、インデクササーバー370は、構成設定を通じて無効にされてもよい。いくつかの実施形態では、インデクササーバー370は、オープンソースプロジェクトの全文検索エンジンであるElastic Search(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー370に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
【0086】
図4は、1つまたは複数の実施形態による、デザイナ410、アクティビティ420,430,440,450、ドライバ460、API470、およびAI/MLモデル480の間の関係を示すアーキテクチャ図である。本明細書で説明するように、開発者は、デザイナ410を使用して、ロボットによって遂行されるワークフローを開発する。いくつかの実施形態では、様々なタイプのアクティビティを開発者に表示できる。デザイナ410は、ユーザーのコンピューティングシステムに対してローカルであっても、リモートであってもよい(例えば、VMまたはリモートウェブサーバーとインタラクションするローカルウェブブラウザを介してアクセスされる)。ワークフローは、ユーザー定義のアクティビティ420、API駆動アクティビティ430、AI/MLアクティビティ440、および/またはUI自動化アクティビティ450を含んでもよい。例として(点線で示すように)、ユーザー定義のアクティビティ420およびAPI駆動アクティビティ440は、それらのAPIを介してアプリケーションとインタラクションする。次に、ユーザー定義のアクティビティ420および/またはAI/MLアクティビティ440は、いくつかの実施形態では、ロボットが操作しているコンピューティングシステムに対してローカルに、および/またはそこからリモートに配置され得る、1つまたは複数のAI/MLモデル480を呼び出してもよい。
【0087】
いくつかの実施形態は、画像内の非テキスト視覚的コンポーネントを識別でき、これは、本明細書ではCVと呼ばれる。CVは、AI/MLモデル(複数可)480によって少なくとも部分的に実行されてもよい。そのようなコンポーネントに関係するいくつかのCVアクティビティは、OCRを使用したセグメント化されたラベルデータからのテキストの抽出、ファジーテキストマッチング、MLを使用したセグメント化されたラベルデータのクロッピング、ラベルデータ内の抽出されたテキストとグラウンドトゥルースデータとの比較などを含んでもよいが、これらに限定されない。いくつかの実施形態では、ユーザー定義のアクティビティ420において実装され得るアクティビティが数百または数千であってもよい。しかしながら、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティを使用されてもよい。
【0088】
UI自動化アクティビティ450は、低レベルコードで記述され、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ450は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ460を介して、インタラクションを容易にする。例えば、ドライバ460は、オペレーティングシステム(OS)ドライバ462、ブラウザドライバ464、VMドライバ466、エンタープライズアプリケーションドライバ468などを含んでもよい。いくつかの実施形態では、コンピューティングシステムとのインタラクションを実行するために、AI/MLモデル480のうちの1つまたは複数を、自動化アクティビティ450によって使用できる。特定の実施形態では、AI/MLモデル480は、ドライバ460を増強するか、それらを完全に置き換えることができる。実際、特定の実施形態では、ドライバ460は含まれない。
【0089】
ドライバ460は、OSドライバ462を介してフックを探し、キーを監視するなど、低レベルでOSとインタラクションしてもよい。ドライバ460は、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にしてもよい。例えば、「クリック」アクティビティは、ドライバ460を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0090】
図5は、1つまたは複数の実施形態による、テスト自動化の詳細を有する最も使用されるシステムトランザクションのグラフィックユーザーインターフェースヒートマップを自動的に生成するための決定エンジンを提供するように構成された、コンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。特定の実施形態では、コンピューティングシステム500は、
図1および
図2に示すようなハイパーオートメーションシステムの一部であってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためにバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途向けプロセッサであってもよい。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生体ニューロンを模倣する処理要素を含む、ニューロモーフィック回路であってもよい。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0091】
コンピューティングシステム500は、プロセッサ(複数可)510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体の任意の組み合わせ、あるいは、それらのいずれかの組み合わせから構成されてもよい。非一時的なコンピュータ可読媒体は、プロセッサ(複数可)510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能なもの、取り外し不可能なもの、またはその両方であってもよい。
【0092】
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、ロングタームエボリューション(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID)、赤外線通信協会(IrDA)、近距離無線通信(NFC)、第5世代(5G)New Radio(NR)、それらの任意の組み合わせ、および/または、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の他の現在存在するもしくは将来実装される通信規格および/またはプロトコルを使用するように、構成されてもよい。いくつかの実施形態では、通信デバイス520は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、単数アンテナ、アレイアンテナ、パネルアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/または任意の他のアンテナ構成である1つまたは複数のアンテナを含んでもよい。
【0093】
プロセッサ(複数可)510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525に結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線方式、光学イメージング方式、分散信号技術、音響パルス認識方式、フラストレート全内部反射方式などを使用して、タッチ(触覚)ディスプレイ、三次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されてもよい。本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の適切な表示デバイスおよび触覚I/Oを使用できる。
【0094】
キーボード530、およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースできるように、バス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションできる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用できる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500とリモートにインタラクションしてもよいし、またはコンピューティングシステム500は自律的に操作してもよい。
【0095】
メモリ515は、プロセッサ(複数可)510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスの全部もしくは一部、またはその派生物の実行するように構成されたモジュール545(テスト自動化の詳細を有するグラフィックユーザーインターフェースヒートマップを自動的に実装/生成するためのRPAおよび視覚化ソフトウェアを含む決定エンジンを表す)をさらに含む。モジュール545は、グラフィックユーザーインターフェースヒートマップを生成し、それと共にフィルタ、マウスホバー検出、構成可能な設定、テストケースビュー、テストセットビュー、および全体的なトランザクションビューを提供するためのソフトウェアコードを含むことができる。フィルタは、最も関連するトランザクションに焦点を設定し、関連する日付を選択するための追加可能性を提供でき、さらに、グラフィックユーザーインターフェースヒートマップ内で同じものを視覚化できる。マウスホバー検出は、テストケース遂行状態に関する追加情報を提供でき、さらに、グラフィックユーザーインターフェースヒートマップ内に同じものを視覚化できる。構成可能な設定は、ユーザーが計算値を構成および変更してテスト関連性を決定するか、またはユーザーの必要に応じて上記値を調整する選択可能なオプションを提供できる。(グラフィックユーザーインターフェースヒートマップから選択されたトランザクション/プロセスの)テストケースビューは、割り当てられたすべてのテストケースのビューを提示し、新しいテストケースを作成し、または遂行状態をレビューできる。(グラフィックユーザーインターフェースヒートマップから選択されたトランザクション/プロセスの)テストセットビューは、割り当てられたすべてのテストセットのビューを提示し、提示されたテストセットを自動的にまたは手動で、直ちに遂行できる。(選択されたトランザクションの)全体的なトランザクションビューは、選択されたトランザクションのより詳細な情報へのアクセスを提供できる。モジュール545は、ソフトウェアシステムまたは独立したアプリケーションに追加できる。モジュール545(すなわち、決定エンジン)の1つまたは複数の技術的効果、恩恵、および利点は、ソフトウェアシステムの実際に使用されるトランザクションのテストカバレッジおよびテスト関連性についての分析を提供すること、収集プログラムを使用して抽出された使用データを分析するための分析時間を短縮すること、および使用データの視覚化により収集プログラムにおけるテスト機会を理解するように新しいユーザーを誘導すること、を含む。したがって、モジュール545は、その機能を改善するためのコンピューティングシステム500の操作に、必然的に根ざしている。
【0096】
コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含んでもよい。
【0097】
当業者であれば、「システム」は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述の機能を「システム」によって実行されるものとして提示することは、本明細書の実施形態の範囲を決して限定することを意図するものではなく、多くの実施形態の一例を提供することを意図している。実際、本明細書に開示される方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化されたまたはおよび分散された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらの任意の組み合わせなどの一部であるか、またはそれらによってアクセス可能であってもよい。本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の局所または分散アーキテクチャを使用することができる。
【0098】
本明細書に記載されたシステム特徴のいくつかは、それらの実装の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0099】
モジュールはまた、様々なタイプのプロセッサによって遂行されるためのソフトウェアに少なくとも部分的に実装されてもよい。例えば、遂行可能コードの識別された単位は、オブジェクト、手順、または関数として組織化されるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含んでもよい。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に一緒に配置される必要はなく、論理的に一緒に結合されたときにモジュールを含み、モジュールの記載された目的を達成するために、異なる位置に格納された異なる命令を含んでもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または、本明細書の1つまたは複数の実施形態の範囲から逸脱することなくデータを格納するために使用される任意の他の非一時的コンピュータ可読媒体であり得る、コンピュータ可読媒体に格納されてもよい。
【0100】
実際、遂行可能コードのモジュールは、単一の命令、または多数の命令であってもよく、さらには、複数の異なるコードセグメント、異なるプログラム間、およびいくつかのメモリデバイス間に分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具体化され、任意の適切なタイプのデータ構造内に組織化されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる位置に分散されてもよく、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として存在してもよい。
【0101】
本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、様々なタイプのAI/MLモデルを訓練し展開できる。例えば、
図6は、1つまたは複数の実施形態による、画像内のグラフィカル要素を認識するように訓練されたニューラルネットワーク600の一例を示す。ここで、ニューラルネットワーク600は、1920×1080画面のスクリーンショット画像の画素(610列で表される)を入力層の入力「ニューロン」1~I(620列で表される)として受け取る。この場合、Iは2,073,600であり、スクリーンショット画像内の画素の総数である。
【0102】
ニューラルネットワーク600はまた、(列630および列640で表される)いくつかの隠れ層を含む。DLNNおよび浅い学習ニューラルネットワーク(SLNN)は、通常、複数の層を有するが、SLNNは、場合によっては1つまたは2つの層しか有さず、通常はDLNNよりも少ない層を有してもよい。典型的には、ニューラルネットワークアーキテクチャは、ニューラルネットワーク600の場合のように、入力層、複数の中間層(例えば、隠れ層)、および出力層(列650で表される)を含む。
【0103】
DLNNは、多くの層(例えば、10、50、200など)を有することが多く、後続層は、典型的には、より複雑で一般的な関数を計算するために、前の層からの特徴を再利用する。一方、SLNNは、生データサンプルから事前にエキスパート特徴が作成されるため、数層しか有さず、比較的迅速に訓練される傾向がある。しかしながら、特徴抽出は面倒である。一方、DLNNは、通常、エキスパート特徴を必要としないが、訓練に時間がかかり、より多くの層を有する傾向がある。
【0104】
両方の手法について、層は訓練セット上で同時に訓練され、通常、分離された交差検証セット上の過剰適合をチェックする。両方の技術は優れた結果をもたらすことができ、両方の手法にかなりの意欲が見られる。個々の層の最適なサイズ、形状、および量は、それぞれのニューラルネットワークによって対処される問題に応じて変化する。
【0105】
図6に戻ると、入力層として提供される画素は、隠れ層1のJ個のニューロンへの入力として供給される。この例ではすべての画素が各ニューロンに供給されるが、フィードフォワードネットワーク、放射基底ネットワーク、ディープフィードフォワードネットワーク、深層畳み込み逆グラフィックスネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、人工ニューラルネットワーク、長/短期メモリネットワーク、ゲーティッドリカレントユニットネットワーク、敵対的生成ネットワーク、液体状態機械、オートエンコーダ、変分オートエンコーダ、ノイズ除去オートエンコーダ、スパースオートエンコーダ、エクストリームラーニングマシン、エコーステートネットワーク、マルコフチェーン、ホップフィールドネットワーク、ボルツマンマシン、制限ボルツマンマシン、深層残差ネットワーク、コホネンネットワーク、深層確率ネットワーク、深層畳み込みネットワーク、サポートベクターマシン、ニューラル・チューリングマシン、または、本明細書の1つまたは複数の実施形態の範囲から逸脱しない、任意の他の適切なタイプまたは組み合わせのニューラルネットワークを含むが、これらに限定されない、個々にまたは組み合わせて使用することができる、様々なアーキテクチャが可能である。
【0106】
隠れ層2(630)は隠れ層1(620)からの入力を受け取り、隠れ層3は隠れ層2(630)からの入力を受け取り、最後の隠れ層(楕円655で表される)が出力層の入力としてその出力を提供するまで、以下同様にすべての隠れ層について繰り返す。ニューロンI、J、K、およびLの数は必ずしも等しいとは限らず、したがって、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の所望の数の層をニューラルネットワーク600の所与の層に使用できることに留意されたい。実際、特定の実施形態では、所与の層のニューロンのタイプはすべて同じであるとは限らない。
【0107】
ニューラルネットワーク600は、画像内で発見されたと考えられるグラフィカル要素に信頼スコアを割り当てるように訓練される。許容できないほど低い尤度との一致を減らすために、いくつかの実施形態では、信頼閾値を満たすかまたはそれを超える信頼スコアを有する結果のみが提供されてもよい。例えば、信頼閾値が80%である場合、この量を超える信頼スコアを有する出力を使用でき、残りは無視できる。この場合、出力層は、2つのテキストフィールド(出力661および662で表される)、テキストラベル(出力663で表される)、および送信ボタン(出力665で表される)が見つかったことを示す。ニューラルネットワーク600は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、これらの要素の位置、寸法、画像、および/または信頼スコアを提供でき、これらは、RPAロボットまたは所与の目的のためにこの出力を使用する別のプロセスによって、その後使用できる。
【0108】
ニューラルネットワークは、典型的には信頼スコアを有する確率的構築物であることに留意されたい。これは、訓練中に類似の入力が正しく識別された頻度に基づいてAI/MLモデルによって学習されたスコアであり得る。例えば、テキストフィールドは、長方形の形状および白色の背景を有することが多い。ニューラルネットワークは、これらの特性を有するグラフィカル要素を、高い信頼性で識別するために学習できる。いくつかの一般的なタイプの信頼スコアは、0と1との間の十進数(信頼のパーセンテージとして解釈できる)、負の∞と正の∞との間の数、または式のセット(例えば、「低」、「中」、「高」)を含む。温度スケーリング、バッチ正規化、重み減衰、負の対数尤度(NLL)など、より正確な信頼スコアを得るために、様々な後処理キャリブレーション技術を使用することもできる。
【0109】
ニューラルネットワークにおける「ニューロン」は、典型的には生体ニューロンの機能に基づく数学関数である。ニューロンは、重み付けされた入力を受け取り、それらが出力を次の層に渡すかどうかを支配する、総和および活性化関数を有する。この活性化関数は、値が閾値を下回る場合には何も起こらないが、関数が閾値を超えて直線的に応答する、非線形閾値化アクティビティ関数であってもよい(すなわち、正規化線形ユニット(ReLU)非線形性)。実際のニューロンはほぼ同様のアクティビティ関数を有することができるので、総和関数およびReLU関数が深層学習で使用される。線形変換を介して、情報を減算、追加などを行うことができる。本質的に、ニューロンは、その基礎となる数学関数によって支配されるように、出力を次の層に渡すゲーティング関数として機能する。いくつかの実施形態では、少なくともいくつかのニューロンに異なる機能を使用してもよい。
【0110】
【0111】
【0112】
【0113】
この場合、ニューロン700は単層パーセプトロンである。しかしながら、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、任意の適切なニューロンタイプまたはニューロンタイプの組み合わせを使用できる。重みの値の範囲および/または活性化関数の出力値(複数可)は、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、いくつかの実施形態では異なり得ることにも留意されたい。
【0114】
目標または「報酬関数」は、この場合には画像内のグラフィカル要素の識別に成功するなど、しばしば使用される。報酬関数は、状態空間の探索を誘導し、目標(例えば、グラフィカル要素の正常な識別、RPAワークフローのアクティビティの次のシーケンスの正常な識別など)を達成しようと試みるために、短期および長期の両方の報酬を伴う中間遷移およびステップを探索する。
【0115】
訓練中、様々なラベル付きデータ(この場合、画像)がニューラルネットワーク600を介して供給される。識別が成功すると、ニューロンへの入力の重みが強化されるが、識別が失敗すると、ニューロンが弱くなる。平均二乗誤差(MSE)または勾配降下法などのコスト関数を使用して、非常に間違っている予測よりもはるかに少ないわずかに間違った予測を処理できる。AI/MLモデルの性能が特定の数の訓練反復後に改善していない場合、データサイエンティストは、報酬関数を修正すること、識別されていないグラフィカル要素がどこにあるかの指示を提供すること、誤って識別されたグラフィカル要素の補正を提供すること、などができる。
【0116】
誤差逆伝播法は、フィードフォワードニューラルネットワークにおけるシナプス重みを最適化するための技術である。誤差逆伝播法を使用して、ニューラルネットワークの隠れ層で「エンジンフードを開けて」、すべてのノードがどの程度の損失に関与しているかを確認し、その後、より高いエラーレートのノードにより低い重みを与えることによって損失を最小化するように重みを更新することができ、その逆も可能である。言い換えれば、誤差逆伝播法により、データサイエンティストは、実際の出力と所望の出力との差を最小にするように、重みを繰り返し調整できる。
【0117】
誤差逆伝播アルゴリズムは、最適化理論において数学的に確立されている。教師あり学習では、既知の出力を有する訓練データがニューラルネットワークを通過し、既知の目標出力からコスト関数を用いて誤差が計算され、これが誤差逆伝播法の誤差を与える。出力において誤差が計算され、この誤差は、誤差を最小にするネットワーク重みの補正に変換される。
【0118】
教師あり学習の場合、誤差逆伝播法の例を以下に示す。列ベクトル入力xは、ネットワークの各層i=1,...,Nの間の一連のN個の非線形アクティビティ関数fiを介して処理され、所与の層における出力は最初にシナプス行列Wiによって乗算され、バイアスベクトルbiが加算される。ネットワーク出力oは、以下によって与えられる。
o=fN(WNfN-1(WN-1fN-2(...f1(W1x+b1)...)+bN-1)+bN)(4)
【0119】
いくつかの実施形態では、oは目標出力tと比較され、誤差
【数1】
をもたらし、これは最小化されることが望ましい。
【0120】
勾配降下法の手順形式の最適化を使用して、各層のシナプス重みWiを修正することによって、誤差を最小化できる。勾配降下法の手順では、既知の目標出力tに対応する入力xが与えられた出力oの計算を必要とし、誤差o-tを生成する。次いで、このグローバル誤差は後方に伝播され、順伝播に使用されるものと同様であるが正確に同じではない、計算による重み更新のためのローカル誤差を与える。特に、誤差逆伝播法のステップは、典型的には、pj(nj)=fj´(nj)の形式のアクティビティ関数を必要とし、ここで、njは、層j(すなわち、nj=Wjoj-1+bj)におけるネットワークアクティビティであり、ここで、oj=fj(nj)であり、アポストロフィ´は、アクティビティ関数fの導関数を表す。
【0121】
【0122】
ここで、○はアダマール(Hadamard)積(すなわち、2つのベクトルの要素ごとの積)を表し、Tは行列転置を表し、ojはfj(Wjoj-1+bj)を表し、o0=xである。ここで、学習率ηは、機械学習の考慮事項に関して選択される。以下、ηは、ニューラル実装で使用されるニューラルヘブ学習機構に関連する。シナプスWおよびbは、1つの大きなシナプス行列に組み合わせることができ、入力ベクトルが1を付加していると仮定し、b個のシナプスを表す余分な列がWに包含されることに留意されたい。
【0123】
AI/MLモデルは、良好なレベルの精度(例えば、検出のためにF2またはF4閾値および約2,000エポックを使用して、97%以上)に達するまで、複数のエポックにわたって訓練できる。この精度レベルは、いくつかの実施形態では、本明細書の1つまたは複数の実施形態の範囲から逸脱することなく、F1スコア、F2スコア、F4スコア、または任意の他の適切な技術を使用して決定できる。訓練データで訓練されると、AI/MLモデルが以前に遭遇したことのない評価データのセットで、AI/MLモデルをテストできる。これは、AI/MLモデルが訓練データ内のグラフィカル要素を十分に識別するが、他の画像には十分に一般化されないように、AI/MLモデルが「過剰適合」しないことを保証するのに役立つ。
【0124】
いくつかの実施形態では、AI/MLモデルがどの精度レベルを達成できるかが分からない場合がある。したがって、評価データを分析するときにAI/MLモデルの精度が低下し始める(すなわち、モデルは訓練データでは良好に機能しているが、評価データではあまり機能しなくなっている)場合、AI/MLモデルは、訓練データ(および/または新しい訓練データ)に対する訓練のより多くのエポックを経験してもよい。いくつかの実施形態では、精度が特定のレベルに達する場合、または訓練されたAI/MLモデルの精度が既存の展開されたAI/MLモデルよりも優れている場合にのみ、AI/MLモデルは展開される。
【0125】
特定の実施形態では、訓練されたAI/MLモデルの集合を使用して、関心のあるグラフィカル要素のタイプごとにAI/MLモデルを使用すること、OCRを実行するためにAI/MLモデルを使用すること、グラフィカル要素間の近接関係を認識するためにさらに別のAI/MLモデルを展開すること、他のAI/MLモデルからの出力に基づいてRPAワークフローを生成するためにさらに別のAI/MLモデルを使用すること、などのタスクを達成できる。これは、例えば、AI/MLモデルが意味的自動化を可能にすることを、共同で可能にできる。
【0126】
いくつかの実施形態は、最先端のセンテンス、テキスト、および画像の埋め込みのためのPython(商標)フレームワークであるSentence Transformers(商標)などのトランスフォーマーネットワークを使用できる。そのようなトランスフォーマーネットワークは、高いスコアと低いスコアの両方を有する単語および句の関連付けを学習する。これは、AI/MLモデルを訓練して、入力に近いものとそうでないものをそれぞれ決定する。トランスフォーマーネットワークは、単に単語/句のペアを使用するのではなく、フィールド長およびフィールドタイプも使用できる。
【0127】
図8は、1つまたは複数の実施形態によるAI/MLモデル(複数可)を訓練するためのプロセス800を示すフローチャートである。プロセス800は、NLPおよびチャットボットなどの他のUI学習操作にも適用できることに留意されたい。プロセスは、ブロック810において、例として、(例えば、グラフィカル要素およびテキストが識別される)ラベル付き画面、単語および句、所与の単語または句に対する類似の単語および句を識別できるような単語と句との間の意味的関連付けの「シソーラス」などの、
図8に示すようなラベル付きデータを提供する訓練データから始まる。提供される訓練データの性質は、AI/MLモデルが達成しようとする目的に依存する。次いで、ブロック820においてAI/MLモデルが複数のエポックにわたって訓練され、ブロック830において結果がレビューされる。
【0128】
判断ブロック840において、AI/MLモデルが所望の信頼閾値を満たさない場合(プロセス800はNO矢印に従って進む)、ブロック850において、訓練データが補完され、および/または、AI/MLモデルがその目的をより良好に達成するのを助けるために報酬関数が修正され、プロセスはブロック820に戻る。判断ブロック840において、AI/MLモデルが信頼閾値を満たす場合(プロセス800はYES矢印に従って進む)、ブロック860において、AI/MLモデルが十分に一般化されAI/MLモデルが訓練データに対して過剰適合しないことを保証するために、AI/MLモデルが評価データに対してテストされる評価データは、AI/MLモデルが以前に処理されたことがない画面、ソースデータなどを含んでもよい。判断ブロック870において、評価データについて信頼閾値が満たされた場合(プロセス800はYes矢印に従って進む)、ブロック880において、AI/MLモデルが展開される。そうでない場合(プロセス800はNO矢印に従って進む)、プロセスはブロック880に戻り、AI/MLモデルがさらに訓練される。
【0129】
図9は、1つまたは複数の実施形態による、テスト自動化の詳細を有する最も使用されるシステムトランザクションのグラフィックユーザーインターフェースヒートマップを自動的に生成するための決定エンジンのプロセス900を示すフローチャートである。
図8で実行されるプロセス800、および
図9で実行されるプロセス900は、1つまたは複数の実施形態に従って、プロセッサ(複数可)用の命令をエンコーディングするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または、データを格納するために使用される任意の他のそのような媒体もしくは媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納され得る
図8~
図9で説明したプロセスステップの全部または一部を実施するように、コンピューティングシステムのプロセッサ(複数可)(例えば、
図5のコンピューティングシステム500のプロセッサ510(複数可))を制御するための符号化命令を含んでもよい。
【0130】
1つまたは複数の実施形態によれば、プロセス900は、ソフトウェアシステムの使用データを取得し、使用データから分析を導出する決定エンジンの操作または方法の一例と考えることができる。プロセス900は、ソフトウェアシステムの追加ソフトウェアまたは独立したアプリケーションとして遂行できる。例えば、本方法は、SAP(オンプレミス)ERP central component(ECC)、SAPS/4HANA、およびSAP extended warehouse management(EWM)のうちの1つまたは複数に適用することができる。プロセス900は、導出された分析を利用して、ソフトウェアシステムの使用の視覚化としてグラフィックユーザーインターフェースヒートマップを生成することを含むことができる。
【0131】
1つまたは複数の実施形態によれば、決定エンジンによって実装されるプロセス900は、(SAPシステムのような)既存のユーザーユースケースおよび新しいユーザーユースケースなどの、1つまたは複数のユースケースに適用できる。既存のユーザーユースケースに関して、プロセス900は、現在のテストポートフォリオのレビューを可能にし、SAPシステムの実際の使用に基づいてテストケースのカバレッジを識別し、自動テストがSAPシステム内の実際に使用されるトランザクションをカバーしている場合に洞察を提供し、手動テストがSAPシステム内の実際に使用されるトランザクションをカバーしている場合に洞察を提供し、実際に使用されるトランザクションがテストポートフォリオ内にテストを有さない場合にギャップを識別できる。新しいユーザーユースケースに関して、プロセス900は、短期間でプロジェクトを迅速に開始および確立することを可能にし、ゼロからテストプロジェクトへの素早いジャンプスタートを可能にし、「何をテストするか」および「どこでテストを開始するか」に関する詳細を提供できる。
【0132】
方法900の1つまたは複数の技術的効果、恩恵、および利点には、ソフトウェアシステムの実際に使用されるトランザクションのテストカバレッジおよびテスト関連性のための分析を提供すること(例えば、SAPシステムの実使用トランザクションのテストカバレッジおよびテスト関連性のための分析を提供すること)、収集プログラムを使用して抽出された使用状況データを分析するための分析時間を短縮すること(例えば、SAP収集プログラムを用いて抽出された利用データを分析するための分析時間を短縮すること)、および使用状況データの視覚化によって収集プログラムにおけるテスト機会を理解するように新しいユーザーを誘導すること(例えば、新しいSAPユーザーに、使用データの視覚化を用いてSAPシステムにおけるテスト機会を理解するように誘導すること)が含まれるが、これらに限定されない。決定エンジンによる方法900の別の技術的効果、恩恵、および利点は、ソフトウェアシステムの使用の理解しやすいビューを提供することと、何をテストし、どこでテストを開始するかに関する質問に答えることと、を含む。
【0133】
プロセス900はブロック910に始まり、決定エンジンはデータ統合を遂行する。データ統合は、データを集約し、そのデータを統合データに正規化することを含むことができる。例えば、決定エンジンによるデータ統合は、統合データを出力するためにソフトウェアシステムのトランザクションデータの分析を実行する、カスタムアプリケーションまたはサブコードであり得る。
【0134】
1つまたは複数の実施形態によれば、サブブロックブロック925において、決定エンジンはデータ集約を遂行する。例えば、データ集約は、集約データを生成するためのトランザクションデータ(例えば、すべてのサーバー、ユーザー、およびトランザクションにわたってST03システムによって生成されたデータ、ならびに、SAPトランザクション、SAP Fioriアプリケーション、SAP Webdynpro、SAP WinGUI、SAP WebGUIなどによって生成されたデータ)を遂行または取得する、決定エンジンのカスタムアプリケーションまたはサブコードを含むことができる。トランザクションデータは、10GBを超える技術データなどの膨大なデータ量であり、合理的または費用効果の高い方法で処理できる人間の脳の能力の範囲外であることに留意されたい。1つまたは複数の実施形態によれば、決定エンジンのカスタムアプリケーションまたはサブコードは、収集プログラムであり得る。収集プログラムは、トランザクションデータを集約するために、1分ごとなどの時間間隔で実行できる。集約されたトランザクションデータは、時間単位、毎日、毎週などの追加の間隔でさらに蓄積できる。
【0135】
サブブロック935において、カスタムアプリケーションまたはサブコードが遂行されて、集約データ(すなわち、ST03で生成された累積トランザクションデータ)の性能データ測定基準が統合される。1つまたは複数の実施形態によれば、カスタムアプリケーションまたはサブコードは、日、週、および/または月などの所定の期間にわたって性能データ測定基準を統合する。
【0136】
サブブロック945において、集約データおよび性能データ測定基準は、統合データを準備するためにカスタムアプリケーションまたはサブコードによって正規化される。例として、集約データおよび性能データ測定基準は、統合データを出力するために、ユーザーが提供する重みなどの変換を受けることができる。
【0137】
1つまたは複数の実施形態によれば、重みはデフォルトの重みとすることができる。ユーザーは、必要性/関連性に従って重みを調整することもできる。重み(例えば、SAP属性)の1つまたは複数のカテゴリの例には、ユーザー、ダイアログ/遂行、時間/遂行時間、オブジェクト/開発オブジェクト、および強度/トランザクションタイプが含まれるが、これらに限定されない。さらなる例として、提供された重みに従って決定エンジンによって集約データを変換できるように、SAP属性を考慮に入れることができる。
【0138】
重みとしてのユーザーは、トランザクションを使用するユーザーの数を含むことができる。これに関連して、ユーザーの数に応じてトランザクションにより大きな重みを与えることができる。例えば、トランザクションを使用または遂行するユーザーが多いほど、そのトランザクションをより重要に重み付けすることができる(したがって、より高い重み)。例えば、トランザクションを遂行しているユーザーの数は重みと等しくなり得る。重みとしてのユーザーは、決定エンジンによって決定/計算でき、および/または0.0000から1.0000などの範囲から選択できる。
【0139】
重みとしてのダイアログ/遂行は、トランザクションの遂行回数を含み得る。これに関して、遂行回数に応じてトランザクションにより大きな重みを与えることができる。例えば、トランザクションの遂行が多いほど、そのトランザクションを重み付けすることができることはより重要である。したがって、より高い重み)。さらなる例として、決定エンジンは、SAPシステム内の1つの画面の1つのダイアログステップごとに「ダイアログステップ」がいくつ実行されたかを決定できる。重みとしてのダイアログ/遂行は、決定エンジンによって決定/計算でき、および/または0.0000から1.0000などの範囲から選択できる。
【0140】
重みとしての時間/遂行時間は、ソフトウェアシステムの全体的な処理時間を含み得る。これに関して、トランザクション遂行時間の長さに応じて、トランザクションにより大きな重みを与えることができる。例えば、トランザクションの処理/遂行にかかる時間が長いほど、そのトランザクションをより多く重み付けすることができる。さらなる例として、決定エンジンは、SAPシステムがアクションを処理する必要がある時間を決定でき、これは、グラフィックユーザーインターフェース時間、データベース時間、ネットワーク時間などを含むことができる。重みとしての時間/遂行時間は、決定エンジンによって決定/計算でき、および/または0.0000から1.0000などの範囲から選択できる。
【0141】
重みとしてのオブジェクト/開発オブジェクトは、開発オブジェクトの数を含み得る。これに関して、オブジェクトの数に応じて、より大きな重みをアプリケーションに与えることができる。例えば、アプリケーションのオブジェクトが多いほど、そのトランザクションをより多く重み付けすることができる。さらなる例として、決定エンジンは、画面、機能モジュール、テーブル、ドメイン、データ要素、フィールド、クラスなど、高度なビジネス・アプリケーション・プログラミング(ABAP)アプリケーションの個々の部分の開発オブジェクトを決定できる。重みとしてのオブジェクト/開発オブジェクトは、決定エンジンによって決定/計算でき、および/または0.0000から1.0000などの範囲から選択できる。
【0142】
重みとしての強度/トランザクションタイプは、トランザクションのタイプ(例えば、作成、変更、表示、テストなど)を含み得る。これに関して、タイプに応じて異なるトランザクションにより大きな重みを与えることができる。1つまたは複数の実施形態によれば、作成タイプのトランザクションは、変更タイプのトランザクションよりも高い重要性を有することができる。1つまたは複数の実施形態によれば、表示タイプのトランザクションは、テストタイプのトランザクションよりも低い重要性を有することができる。1つまたは複数の実施形態によれば、表示のみを許可するトランザクションは、挿入/更新/編集アクションを許可するトランザクションよりも重要性が低いとして重み付けすることができる。重みとしての強度/トランザクションタイプは、決定エンジンによって決定/計算でき、および/または0.0000から1.0000などの範囲から選択できる。
【0143】
ブロック970において、決定エンジンは、データ変換および視覚化を遂行する。決定エンジンによるデータ変換および視覚化は、最終格付を計算し、それぞれユーザーインターフェースを生成する、カスタムアプリケーションまたはサブコードを含むことができる。
【0144】
例えば、サブブロック985において、決定エンジンは、数学的アルゴリズムを利用して統合データを分析することによってデータ変換を実施して、その中のデータを「格付」する。1つまたは複数の実施形態によれば、数学的アルゴリズムは、重み(例えば、SAP属性、またはユーザー、ダイアログ/遂行、時間/遂行時間、オブジェクト/開発オブジェクト、および強度/トランザクションタイプ)についての1つまたは複数のカテゴリの平均または加重平均によって、最終格付を生成する。最終格付は、データの関連性(例えば、テスト関連性)またはトランザクションの強度の程度を示すことができる。最終格付は、「どこで自動化を開始するか」についてのガイダンスを与えることができる。統合データが(提供された重みに従って)最終格付を有する変換データに変換されると、変換データ内の既存のトランザクションに関連するすべてのテストケースが識別され、決定エンジンによって遂行される。テストケースは、それに関連付けられたトランザクションラベルを使用して識別できる。例えば、テストケースは、SAPトランザクションまたはSAPプログラムラベルを使用して識別できる。
【0145】
さらに、サブブロック995において、決定エンジンは、変換されたデータを視覚的に提示するユーザーインターフェースを生成する。1つまたは複数の実施形態によれば、ユーザーインターフェースは、各々が1つまたは複数の資格情報を含む1つまたは複数の要素を有するヒートマップを含む。例えば、1つまたは複数の要素は、ヒートマップのボックスなどの形状とすることができる。さらに、1つまたは複数の資格情報は、形状のサイズおよび/または色を含むことができる。例示的な資格情報は、最終格付とすることができ、これはボックスの「サイズ」として表すことができる。最終格付またはサイズは、重み(例えば、SAP属性、またはユーザー、ダイアログ/遂行、時間/遂行時間、オブジェクト/開発オブジェクト、および強度/トランザクションタイプ)についての1つまたは複数のカテゴリの平均または加重平均によって導出できる。1つまたは複数の実施形態によれば、最終格付は、「自動化をどこで開始するか」についてのガイダンスを与えることができる。
【0146】
図10は、1つまたは複数の実施形態によるインターフェース1000を示す。インターフェース1000は、サブブロック995において決定エンジンによって生成されるユーザーインターフェースの一例である。インターフェース1000は、テスト関連性を有するヒートマップ1001を介して変換されたデータ(元々SAP使用データであってもよい)の視覚化を提供できる。インターフェース1000は、タスクマネージャ、テストメニュー、プロファイルアイコン、検索アイコンなどの1つまたは複数の選択可能な要素を提示できるツールバー1005を含む。インターフェース1000は、ホームアイコン1011、オーケストレータアイコン1012、スタジオアイコン1013、アクションアイコン1014、およびオートメーションハブアイコン1015、プロセスアイコン1016、テストマネージャアイコン1017、およびアドミニアイコン1018などの、1つまたは複数の選択可能な要素を提示できる第1のパネル1010を含む。インターフェース1000は、第1のパネル1010の選択可能な要素のどれが選択されるかに基づいて、1つまたは複数の選択可能な選択肢を提示できる第2のパネル1020を含む。例えば、第1のパネル1010のテストマネージャアイコン1017が選択された場合、第2のパネル1020は、ダッシュボードオプション1021、ヒートマップオプション1022、要求オプション1023、テストケースオプション1024、テストセットオプション1025、テスト結果オプション1026、およびプロジェクト設定オプション1027を提示できる。
【0147】
インターフェース1000は、ヒートマップ1001と並んで提示され、ヒートマップ1001を操作するために利用できる、1つまたは複数のメニュー項目1031および1032、ならびに、1つまたは複数の選択可能フィルタ1035、1036、1037および1038を提示できる、第3のパネル1030を含む。例えば、
図11は、1つまたは複数の実施形態によるインターフェース1100を示す。他の図と同様の要素および識別子は再利用され、簡潔にするために再度紹介されない。
【0148】
インターフェース1100は、ほとんどの関連するトランザクションに焦点を合わせて、関連する日付を選択するための追加可能性を提供するフィルタリング機能を提供する。これに関して、ヒートマップ1001と並んで提示される1つまたは複数のメニュー項目1031および1032は、ヒートマップ1001を操作するために利用できる。メニュー項目1031は、すべてのトランザクション、上位10のトランザクション、および上位20(20)のトランザクションなどの選択可能なメニューオプションを提供するドロップダウンメニュー1101とすることができる。メニュー項目1032は、前日、先週、先月などの時間間隔を提供するドロップダウンメニュー1102とすることができる。他の例には、前四半期、昨年、過去6ヶ月などが含まれるが、これらに限定されない。
【0149】
図10に戻ると、ヒートマップ1001と並んで提示される1つまたは複数の選択可能フィルタ1035、1036、1037、および1038を利用して、ヒートマップ1001を操作できる。例えば、選択可能フィルタ1035は、すべてを示すトグルチェックボックスとすることができ、選択可能フィルタ1036は、合格を示すトグルチェックボックスとすることができ、選択可能フィルタ1037は、不合格を示すトグルチェックボックスとすることができ、選択可能フィルタ1038は、割り当てられたテストケースを示さないトグルチェックボックスとすることができる。
【0150】
ヒートマップ1001は、トランザクションおよび/またはそのテストを表す1つまたは複数の要素または形状1041、1042、1043、1044、および1045(例えば、正方形)を有する、第1のプロセス1040を含むことができる。ヒートマップ1001は、トランザクションおよび/またはそのテストを表す1つまたは複数の要素または形状1051、1052、および1053(例えば、正方形)を有する第2のプロセス1050を含むことができる。ヒートマップ1001は、トランザクションおよび/またはそのテストを表す1つまたは複数の要素または形状1061、1062、および1063(例えば、正方形)を有する第3のプロセス1060を含むことができる。したがって、変換されたデータおよびテスト結果から、任意のプロセス1040、1050、および1060(例えば、SAPシステムインスタンスのトランザクション/プロセスを表す)の各要素または形状は、サイズ(例えば、最終格付)および色などの1つまたは複数の資格情報を含む。
【0151】
最終格付またはサイズは、重み(例えば、SAP属性、またはユーザー、ダイアログ/遂行、時間/遂行時間、オブジェクト/開発オブジェクト、および強度/トランザクションタイプ)についての1つまたは複数のカテゴリの平均または加重平均によって導出できる。1つまたは複数の実施形態によれば、最終格付は、「自動化をどこで開始するか」についてのガイダンスを与えることができる。
【0152】
形状のサイズは、テスト関連性を示すことができる。テスト関連性は、特定の目標を達成するためにテストが関連性または重要である程度を指すことができる。テスト関連性またはサイズは、重みについての1つまたは複数のカテゴリに基づいて、決定エンジンによって計算され重み付けされる。
【0153】
形状の色は、テストカバレッジを示すことができる。テストカバレッジは、テストケースによって遂行されるトランザクションの遂行カバレッジを示す視覚化であり得る。すなわち、識別されたテストケースは、トランザクションのテストカバレッジを決定するために遂行される。1つまたは複数の色を利用できる。1つまたは複数の実施形態によれば、ヒートマップ1001内の決定エンジンによって三色が利用される。第1の色(例えば、灰色)は、テストケースが存在しないか、または遂行されなかったことを示す。第2の色(例えば、赤色)は、テストケースが存在し、少なくとも1つの遂行が失敗したことを示す。第3の色(例えば、緑色)は、テストケースが存在し、すべての遂行が合格したことを示す。
【0154】
例として、
図10のヒートマップ1001の第1のプロセス1040は、以下のように分割できる。要素1041は、25%のサイズで一般的なテーブル表示を提供でき、要素1042は、25%のサイズでユーザーインターフェース設計の例を提供でき、要素1043は、12%のサイズで開発ワークベンチのデモを提供でき、要素1044は、11%のサイズで休止プログラムブロックを提供でき、要素1045は、8%のサイズでエディタを提供でき、合計でヒートマップ1001の75%の面積となる。さらに、
図10には陰影が示されていないが、要素1041、1042、および1044は第2の色にでき、要素1043は第1の色にでき、要素1045は第3の色にでる。
【0155】
図10のヒートマップ1001の第2のプロセス1050は、以下のように分割できる。要素1051は、6%のサイズで購入変更注文を提供でき、要素1052は、3%のサイズでキャッシュジャーナルを提供でき、要素1053は、3%のサイズで口座明細を提供でき、合計でヒートマップ1001の12%の面積となる。さらに、
図10には陰影が示されていないが、要素1052および1053は第2の色にでき、要素1051は第3の色にできる。
【0156】
図10のヒートマップ1001のプロセス1060は、以下のように分割できる。要素1061は、2%のサイズで請求書を提供でき、要素1062は、2%のサイズで財務報告を提供でき、要素1063は、14%のサイズで一般的なテーブル表示を提供でき、合計でヒートマップ1001の18%の面積となる。さらに、
図10には陰影が示されていないが、要素1062は第1の色とすることができ、要素1061は第2の色とすることができ、要素1063は第3の色とすることができる。
【0157】
ここで
図12~
図13を参照すると、インターフェース1200、1300、および1400が、1つまたは複数の実施形態に従って示されている。インターフェース1200、1300、および1400は、サブブロック995において決定エンジンによって生成されるユーザーインターフェースの例である。他の図と同様の要素および識別子は再利用され、簡潔にするために再度紹介されない。例えば、インターフェース1200は、1つまたは複数のインターフェース要素1221、1222、および1223を有するサブインターフェース1201を含むことができ、選択可能なビューを提供する。
【0158】
トランザクションが選択されたとき、および/またはインターフェース要素1221が選択されたとき、
図12のインターフェース1200は、その選択されたトランザクションのサブインターフェース1201内のテストケースビューを示す。すなわち、ヒートマップ1001から任意のプロセス1040、1050、および1060(例えば、SAPシステムインスタンスのトランザクション/プロセスを表す)の任意の要素または形状を選択すると、テストケースビューがインターフェース1200によって提供できる。さらに、テストケースビューは、検索オプション、ラベル選択、最新の結果選択、およびスタジオプロジェクト選択などの追加オプションを提供するために、1つまたは複数のインターフェース要素1231、1232、1233、および1234を含むことができる。テストケースビュー内で、ユーザーは、新しいテストケース1235を作成するか、または遂行状態をレビューできる。テストケースビュー内には、テーブル1240が設けられている。テーブル1240は、その選択されたトランザクション/プロセスに割り当てられたすべてのテストケースを提供できる。テーブル1240は、キー、名前、スタジオプロジェクト、最終修正、最終結果、およびラベルなどのソート可能な列を含むことができる。1つまたは複数の実施形態によれば、作成要素1235の選択によるテストケース作成が、サブプロセス1290に関して説明される。サブプロセス1290は、決定エンジンによって実行でき、ブロック1291、1293、および1295を含む。ブロック1291において、任意のプロセス1040、1050、および1060またはその中の要素を選択できる。例えば、テストケースが存在しないことを示す第1の色(例えば、灰色)を含む要素を選択できる。次に、ブロック1293において、作成要素1235を選択して、そのプロセス1040、1050、および1060またはその中の要素に関して、テストケース作成を可能にする。これに関して、テストケースの名前などの入力を少なくとも受け入れるために、プロンプトが1つまたは複数のフィールドと共に表示できる。ブロック1295において、プロセス1040、1050、および1060またはその中の要素に関して、作成されたテストケースがヒートマップ1001にロードされる。1つまたは複数の実施形態によれば、任意のプロセス1040、1050、および1060またはその中の要素が、テストケースを有する場合、決定エンジンは、サブプロセス1290を使用して追加のテストケースを作成する。1つまたは複数の実施形態によれば、テストケースがテストセットの一部である場合(
図13に示すように)、決定エンジンは、独立してまたはインターフェース1200を介して、テストセットを用いてそのテストケースを遂行できる。
【0159】
トランザクションが選択されたとき、および/またはインターフェース要素1222が選択されたとき、
図13のインターフェース1300は、その選択されたトランザクションのサブインターフェース1201内のテストセットビューを示す。すなわち、ヒートマップ1001から任意のプロセス1040、1050、および1060(例えば、SAPシステムインスタンスのトランザクション/プロセスを表す)の任意の要素または形状を選択すると、テストセットビューをインターフェース1300によって提供できる。さらに、テストケースビューは、1つまたは複数のインターフェース要素1331、1332、および1333を含むことができ、検索オプション、ラベル選択、およびソース選択などの追加のオプションを提供できる。テストケースビュー内には、テーブル1340が設けられている。テーブル1340は、すべての割り当てられたテストセットを提供でき、自動的にまたは手動で、割り当てられたテストセットのうちの1つまたは複数の即時遂行を可能にできる。例えば、ポップアップ1341は、手動で遂行する、自動的に遂行する、クローン化する、および削除するなど、選択されたテストセットに対して選択可能なコマンドを提供する。
【0160】
トランザクションが選択されたとき、および/またはインターフェース要素1223が選択されたとき、
図14のインターフェース1400は、その選択されたトランザクションのサブインターフェース1201の概要を示す。
図14のインターフェース1400は、トランザクションの概要を示す。すなわち、ヒートマップ1001から任意のプロセス1040、1050、および1060(例えば、SAPシステムインスタンスのトランザクション/プロセスを表す)の任意の要素または形状を選択すると、概要をインターフェース1400によって提供できる。概要は、テーブル1440を提供できる。テーブル1440は、選択されたトランザクションのより詳細な情報へのアクセスを提供できる。例えば、テーブル1440は、トランザクションタイプ、コード、タイプ、格付または最終格付、および用法を含むことができる。
【0161】
ここで
図15~
図16を参照すると、インターフェース1500および1600が、1つまたは複数の実施形態に従って示されている。インターフェース1500および1600は、サブブロック995において決定エンジンによって生成されるユーザーインターフェースの例である。他の図と同様の要素および識別子は再利用され、簡潔にするために再度紹介されない。
図15のインターフェース1500は、要素1041上にホバーしているマウスカーソル1501を示す。即時、1秒、2秒などの所定の時間でホバーすると、要素1041に関する追加情報(すなわち、テストケース遂行状態)を提供するパネル1503が提示される。追加情報は、(合格または不合格の)結果、テストケースの数、格付または最終格付、および実行または遂行の数を含むことができる。
【0162】
図16のインターフェース1600は、追加の構成可能な設定を示す。マウスの右クリックまたは設定アイコン1601の選択のためにホバーすると、ユーザーが0%から100%の間で構成することができる、1つまたは複数の設定を提供するパネル1602が提示される。1つまたは複数の設定により、ユーザーは、顧客のニーズに従ってテスト関連性を決定する値の変更を判断できる。例えば、重みの1つまたは複数のカテゴリは、以下のように変更することができる。ユーザー重み1611を40%に変更でき、遂行重み1612を10%に変更でき、時間重み1613を10%に変更でき、オブジェクト重み1614を10%に変更でき、強度重み1615を30%に変更できる。したがって、1つまたは複数の設定が構成されると、キャンセルインターフェース要素1016および保存インターフェース要素1617を使用できる。
【0163】
1つまたは複数の実施形態によれば、統合データの変換および視覚化のための方法が提供される。本方法は、コンピューティング環境内のコンピュータプログラムとして実装された決定エンジンによって遂行される。本方法は、統合データを出力するために集約データを重みごとの変換に供することによって、集約データを統合データに正規化するデータ統合を遂行するステップを含む。本方法は、統合データの最終格付を決定し、最終格付に従って統合データを描写するヒートマップを含むユーザーインターフェースをディスプレイ上に生成することによって、データ変換および視覚化を遂行するステップを含む。
【0164】
本明細書の1つもしくは複数の実施形態または方法の実施形態のいずれかによれば、トランザクションデータは、1つもしくは複数のサーバー、1つもしくは複数のユーザー、または、1つもしくは複数のトランザクションにわたってソフトウェアシステムによって生成されたデータ、を含むことができる。
【0165】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、決定エンジンの収集プログラムは、トランザクションデータを集約するために1つまたは複数の時間間隔で遂行できる。
【0166】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、重みは、少なくともユーザーカテゴリ、ダイアログカテゴリ、時間カテゴリ、対象カテゴリ、および強度カテゴリの1つまたは複数のカテゴリを含むことができる。
【0167】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、ダイアログカテゴリは、トランザクションを遂行回数を含むことができる。
【0168】
本明細書の1つもしくは複数の実施形態または方法の実施形態のいずれかによれば、時間カテゴリは、ソフトウェアシステムの全体的な処理時間を含むことができる。
【0169】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、オブジェクトカテゴリは、開発オブジェクトの数を含むことができる。
【0170】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、オブジェクトカテゴリはトランザクションのタイプを含むことができる。
【0171】
本明細書の1つもしくは複数の実施形態または方法の実施形態のいずれかによれば、重みは、0.0000から1.0000の範囲に沿って決定エンジンによって決定できる。
【0172】
本明細書の1つもしくは複数の実施形態または方法の実施形態のいずれかによれば、決定エンジンは、最終格付を生成するために数学的アルゴリズムを利用して統合データを分析することによってデータ変換を実施できる。
【0173】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、最終格付は、重みについての1つまたは複数のカテゴリの平均または加重平均を含むことができる。
【0174】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、最終格付は、統合データの関連性または強度の程度を示すことができる。
【0175】
本明細書の1つまたは複数の実施形態または任意の方法の実施形態によれば、ヒートマップは、1つまたは複数の資格情報を含む1つまたは複数の要素を含むことができる。
【0176】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、1つまたは複数の要素はボックスを含むことができ、1つまたは複数の資格情報はボックスのサイズまたはボックスの色を含む。
【0177】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、ボックスのサイズは最終格付に対応できる。
【0178】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、ボックスの色はテストカバレッジに対応できる。
【0179】
本明細書の1つもしくは複数の実施形態または方法の実施形態のいずれかによれば、決定エンジンは、ソフトウェアシステムのソフトウェア、または独立したアプリケーションを追加できる。
【0180】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、決定エンジンによって実装される方法は、SAP ECC、SAP S/4HANA、およびSAP EWMのうちの1つまたは複数に適用できる。
【0181】
本明細書の1つまたは複数の実施形態または方法の実施形態のいずれかによれば、データ統合の遂行は、ソフトウェアシステムのトランザクションデータを集約して集約データを生成することを含むことができる。
【0182】
1つまたは複数の実施形態によれば、コンピューティング環境が提供される。コンピューティング環境は、決定エンジンのためのコンピュータプログラムを遂行する少なくとも1つのプロセッサを含む。コンピュータプログラムは、コンピューティング環境のメモリに格納される。決定エンジンは、統合データを出力するために集約データを重みごとの変換に供することにより、集約データを統合データに正規化するデータ統合をコンピューティング環境に遂行させることによって、統合データの変換および視覚化を実施するように構成される。決定エンジンは、統合データの最終格付を決定し、最終格付に従って統合データを描写するヒートマップを含むユーザーインターフェースをディスプレイ上に生成することより、コンピューティング環境にデータ変換および視覚化を遂行させることによって、統合データの変換および視覚化を実施するように構成される。
【0183】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装できる。コンピュータプログラムは、互いに操作可能に通信し、表示するために情報または命令を渡すように設計された、モジュールから構成できる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で操作するように構成できる。
【0184】
本明細書の図に一般的に記載および図示されているような様々な実施形態のコンポーネントは、多種多様な異なる構成で配置および設計され得ることが容易に理解されよう。したがって、添付の図面に表される実施形態の詳細な説明は、特許請求される範囲を限定することを意図するものではなく、単に選択された実施形態を表すものである。
【0185】
本明細書を通して説明される特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
【0186】
本明細書全体を通して特徴、利点、または同様の文言を参照することは、実現され得る特徴および利点のすべてが任意の単一の実施形態であるべきであること、またはあることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、実施形態に関連して説明される特定の特徴、利点、または特性が1つまたは複数の実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0187】
さらに、本明細書の1つまたは複数の実施形態の記載された特徴、利点、および特性は、任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴、または利点の1つまたは複数、なしで本開示を実施できることを認識するであろう。他の例では、すべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0188】
当業者は、本開示が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本開示はこれらの好ましい実施形態に基づいて説明されてきたが、本開示の精神および範囲内に留まりながら、特定の修正、変形、および代替構造が明らかであることは当業者には明らかであろう。したがって、本開示の範囲および境界を決定するために、添付の特許請求の範囲を参照すべきである。
【外国語明細書】