(57)【要約】      （修正有）【課題】通信ネットワーク内の様々なノード間の分散アプリケーションの操作上の問題を診断する。【解決手段】通信ネットワークにおいて複数のノードからデータを受信するテンプレートスタックを供給する。テンプレートスタックは、受信データを共通のデータフレームワークにマッピングし、クライアントノード２０１〜２０８からテンプレート要求を受信する。テンプレート要求は、少なくとも１つの変換関数を含む。テンプレート要求の受信に応答して、テンプレートスタックは、変換データを生成するために前記データ上の少なくとも１つの変換関数を実行し、クライアントノードに前記変換データを送信する。【選択図】図１
2015028764.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークにおいて、テンプレートスタックノードを介して、複数のノードからデータを受信するステップと、
前記複数のノードの各ノードからの前記データを、共通のデータフレームワークにマッピングするステップと、
クライアントノードから、少なくとも１つの変換関数を有するテンプレート要求を受信するステップと、
前記テンプレート要求に応答して、変換データを生成するために、前記複数のノードのデータ上の前記少なくとも１つの変換関数を実行するステップと、
前記クライアントノードに変換データを送信するステップと
を含む方法。
【請求項２】
前記変換データに基づいて、分散アプリケーションの１つ以上の操作問題を検出するステップと、
前記クライアントノードに対して、前記分散アプリケーションの前記１つ以上の操作問題を表示する警告を送信するステップと
を、さらに含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの変換関数が、マージ、共用体、アドプロビジョンドインターフェース、および派生列からなるグループから選択される、請求項１に記載の方法。
【請求項４】
前記データ上の前記少なくとも１つの変換関数を実行する前記ステップが、例外およびエラーを検出し処理するステップを含む、請求項１に記載の方法。
【請求項５】
前記テンプレート要求が、さらに、少なくとも１つの追加変換関数の呼出しを含み、前記少なくとも１つの変換関数を実行する前記ステップが、前記少なくとも１つの追加変換関数を取得するステップと、追加変換データを生成するために前記変換データ上の前記少なくとも１つの追加変換関数を実行するステップとを備え、前記変換データを前記クライアントノードに送信する前記ステップが、前記追加変換データを前記クライアントノードに送信するステップを備える、請求項１に記載の方法。
【請求項６】
前記テンプレート要求が、実行ファイルである、請求項１に記載の方法。
【請求項７】
通信ネットワーク内の前記複数のノードから前記データを受信する前記ステップが、前記複数のノードからの前記データをドライバを介して受信するステップを含む、請求項１に記載の方法。
【請求項８】
通信ネットワーク内で通信するように適合されるテンプレートスタックノードの１つ以上のネットワークインターフェースと、
１つ以上の手順を実行するように適合されるプロセッサと、
前記プロセッサにより実行可能な工程を保存するように構成される記憶装置と、を具備し、前記工程が実行されると、
通信ネットワーク内の複数のノードからデータを受信し、
前記複数のノードの各ノードからの前記データを共通のデータフレームワークにマッピングし、
クライアントノードから、少なくとも１つの変換関数を含むテンプレート要求を受信し、
前記テンプレート要求に応答して、変換データを生成するために前記複数のノードの前記データ上の前記少なくとも１つの変換関数を実行し、かつ、
前記クライアントノードに変換データを送信する操作が可能である、
装置。
【請求項９】
前記工程が、実行されると、さらに、
前記変換データに基づいて分散アプリケーションの１つ以上の操作問題を検出し、かつ、
前記分散アプリケーションの前記１つ以上の操作問題を表示する警告を前記クライアントノードに送信する操作が可能である、請求項８に記載の装置。
【請求項１０】
前記少なくとも１つの変換関数が、マージ、共用体、アドプロビジョンドインターフェース、および派生列からなるグループから選択される、請求項９に記載の装置。
【請求項１１】
前記データ上の前記少なくとも１つの変換関数を実行する前記工程が、さらに、例外およびエラーを検出し処理する操作が可能である、請求項８に記載の装置。
【請求項１２】
前記テンプレート要求が、さらに、少なくとも１つの追加変換関数の呼出しを含み、前記少なくとも１つの変換関数を実行する前記工程が、さらに、少なくとも１つの追加変換関数を取得し、追加変換データを生成するために前記変換データ上の前記少なくとも１つの追加変換関数を実行する操作が可能であり、前記変換データを前記クライアントノードに送信する前記工程が、さらに、前記追加変換データを前記クライアントノードに送信する操作が可能である、請求項８に記載の装置。
【請求項１３】
前記テンプレート要求が、実行ファイルである、請求項８に記載の装置。
【請求項１４】
通信ネットワーク内の前記複数のノードから前記データを受信する前記工程が、さらに、前記複数のノードからの前記データをドライバを介して受信する操作が可能である、請求項８に記載の装置。
【請求項１５】
コード化されたソフトウェアを有する、タンジブルで非一時的なコンピュータ可読媒体であって、前記ソフトウェアが、プロセッサにより実行されるとき、
通信ネットワーク内で複数のノードからデータを受信し、
前記複数のノードの各ノードからの前記データを共通のデータフレームワークにマッピングし、
クライアントノードから、少なくとも１つの変換関数を含むテンプレート要求を受信し、
前記テンプレート要求に応答して、変換データを生成するために前記複数のノードの前記データ上の前記少なくとも１つの変換関数を実行し、かつ、
前記クライアントノードに変換データを送信する操作が可能である、
コンピュータ可読媒体。
【請求項１６】
前記工程が、プロセッサにより実行されるとき、さらに、
前記変換データに基づいて分散アプリケーションの１つ以上の操作問題を検索し、かつ、
前記分散アプリケーションの前記１つ以上の操作問題を表示する警告を前記クライアントノードに送信する操作が可能である、請求項１５に記載のタンジブルで非一時的なコンピュータ可読媒体。
【請求項１７】
前記データ上の前記少なくとも１つの変換関数を実行する前記工程が、前記プロセッサによって実行されるとき、さらに、例外およびエラーを検出し処理する操作が可能である、請求項１５に記載のタンジブルで非一時的なコンピュータ可読媒体。
【請求項１８】
前記テンプレート要求が、さらに、少なくとも１つの追加変換関数の呼出しを含み、前記少なくとも１つの変換関数を実行する前記工程が、前記プロセッサによって実行されるとき、さらに、前記少なくとも１つの追加変換関数を取得し、追加変換データを生成するために前記変換データ上の前記少なくとも１つの追加変換関数を実行する操作が可能であり、前記変換データを前記クライアントノードに送信する前記工程が、前記プロセッサによって実行されるとき、さらに、前記追加変換データを前記クライアントノードに送信する操作が可能である、請求項１５に記載のタンジブルで非一時的なコンピュータ可読媒体。
【請求項１９】
前記テンプレート要求が、実行ファイルである、請求項１５に記載のタンジブルで非一時的なコンピュータ可読媒体。
【請求項２０】
通信ネットワーク内の前記複数のノードから前記データを受信する前記工程が、前記プロセッサによって実行されるとき、さらに、前記複数のノードから前記データをドライバを介して受信する操作が可能である、請求項１５に記載のタンジブルで非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本出願は、２０１３年５月３１日に出願された米国仮特許出願第６１／８２９，５８７号に基づく優先権を主張し、当該日に本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
１．発明分野
本開示は通信ネットワークに関し、より具体的には、様々な種類のデータを共通のフレームワークに統合する方法および装置に関する。
【０００３】
２．従来技術の説明
通信ネットワーク内の様々なノード間の分散アプリケーションの操作上の問題の診断は非常に困難である。操作上の問題の診断には、例えば、多種多様なパフォーマンスデータ、各ノードのステータスデータ、および、アプリケーションに特化したメトリクスへのアクセスが含まれる。さらに、データソースなどの個々のノードからのデータは、通常、潜在的な操作上の問題の局所的な表示しか提示しない。今日までの努力にもかかわらず、ネットワーク問題のシステム全体の診断の提供を試みる従来技術は、種々のノードからのローカルデータ特有の多様性が原因で不十分なものであった。
【発明の概要】
【課題を解決するための手段】
【０００４】
後述する実施形態の目的と長所が、以下の記述から明らかにされる。また、実施形態のさらなる利点が、特に、明細書および請求項に記述され添付図面に示された装置、システム、および方法により認識され達成されるであろう。
【０００５】
本発明の一実施形態によると、テンプレートスタックが、種々のデータソースまたはノードからのデータを共通のフレームワークにマッピングする。テンプレートスタックは、特にテンプレート、変換、およびドライバを含む。
【０００６】
操作上、テンプレートスタックノードなどのノードは、通信ネットワーク内の複数のノード（例えば、データソース）からデータを受信し、各ノードからの前記データを（例えば、ドライバを介して）共通のデータフレームワークにマッピングする。前記テンプレートスタックノードは、クライアントノードからのテンプレート要求（例えば、実行ファイル）を受信し、前記テンプレート要求に応じて、変換データを生成するために前記複数のノードの前記データ上の前記テンプレート要求により特定された少なくとも１つの変換関数を実行する。前記テンプレートスタックは前記変換データを前記クライアントノードに返送または送信する。いくつかの実施形態において、変換関数は、マージ（ｍｅｒｇｅ）、共用体（ｕｎｉｏｎ）、アドプロビジョンドインターフェース（ａｄｄｐｒｏｖｉｓｉｏｎｅｄｉｎｔｅｒｆａｃｅ）、および、派生列（ｄｅｒｉｖｅｄｃｏｌｕｍｎ）などを含むが、これに限定されない。好ましくは、テンプレートスタックノード（ｔｅｍｐｌａｔｅ  ｓｔａｃｋ  ｎｏｄｅ）がテンプレート要求により特定された関数を実行する際、テンプレートスタックがさらに例外およびエラーを検出し対処する。
【０００７】
他の実施形態において、テンプレート要求はスタック可能であり、他のまたは追加の変換関数（例えば、追加のテンプレート要求など）を呼び出すことができる。このような実施形態では、テンプレートスタックノードも追加された変換関数を実行する。
【０００８】
本発明のシステムおよび方法の上述した、また、その他の特徴が、以下の好ましい実施形態の詳細な説明と図面から当業者に容易に明らかにされる。
【図面の簡単な説明】
【０００９】
本発明が属する分野の当業者が、過度の実験をすることなく本発明の装置および方法の使用法を容易に理解できるように、図面を参照しながら本発明の好ましい実施形態を以下に詳述する：
【図１】図１は通信ネットワーク例の模式図である；
【図２】図２はネットワーク装置例の模式図である；
【図３】図３はテンプレートスタックアーキテクチャの模式図である；
【図４Ａ】図４Ａは典型的なテンプレートである；
【図４Ｂ】図４Ｂは典型的なテンプレートである；そして、
【図５】図５は様々なノードからのデータを共通のフレームワークに統合するための簡易化した手順の例である。
【００１０】
１つ以上の図に共通する構成要素または機能は各図面で同一の参照番号で示される。
【発明を実施するための形態】
【００１１】
概要
本開示の１つ以上の実施形態に従い、テンプレートスタックノードは通信ネットワーク内の複数のノードからデータを受信する。テンプレートスタックノード（または、追加のノード）は受信したデータを共通のデータフレームワークにマッピングし、クライアントノードからテンプレート要求（例えば、実行ファイル、保管テンプレートの参照など）を受信する。テンプレート要求は、好ましくは、少なくとも１つの変換関数を含む。テンプレート要求の受信に応答して、ノード（または、追加のノード）は、変換データを生成するために複数のノードのデータ上で少なくとも１つの変換関数を実行する。テンプレートスタックは、変換データに基づいて分散アプリケーションの１つ以上の操作問題を検出するために使用できる。いくつかの実施形態においては、テンプレートスタックは、警告エンジンと併用して、変換データに基づいて操作問題を特定して警告を生成し、クライアントノードに警告と変換データを送信する。
【００１２】
説明
通信ネットワークは、パーソナルコンピュータおよびワークステーション、またはセンサなどその他の装置からなる終端ノード間で、データを移送するための通信リンクやセグメントによって相互接続される、地理的に分散したノードの集まりである。ネットワークは、ローカルエリアネットワーク（以下“ＬＡＮ”と称する）からワイドエリアネットワーク（以下“ＷＡＮ”と称する）まで多くの種類のネットワークが利用可能である。ＬＡＮは、通常、ビルまたはキャンパスなどの、同一の全体的な物理的位置に配置される専用私設通信リンクを通じてノードを接続する。一方、ＷＡＮは、通常、通信業者の電話回線、光パス、同期型光ネットワーク（ｓｙｎｃｈｒｏｎｏｕｓ  ｏｐｔｉｃａｌ  ｎｅｔｗｏｒｋｓ）（ＳＯＮＥＴ）、同期デジタルハイアーラキ（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｉｇｉｔａｌ  ｈｉｅｒａｒｃｈｙ）（ＳＤＨ）リンク、または、ＩＥＥＥ  ６１３３４、ＣＰＬ  Ｇ３、ワットパルス通信（Ｗａｔｔ  Ｐｕｌｓｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）（ＷＰＣ）、および、その他の電力線通信（Ｐｏｗｅｒｌｉｎｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）（ＰＬＣ）などの長距離通信リンクを介して、地理的に分散したノードを接続する。
【００１３】
図１は、種々の通信手段により相互接続されるノード／装置２０１〜２０８（例えば、クライアント装置、サーバ、ルータ、スイッチなどのネットワーク装置）を有する通信ネットワーク１００の一例を示す模式図である。例えば、リンク１０５は有線リンクであっても、無線通信媒体を有していてもよく、いくつかのノードが、例えば、距離、信号強度、電流駆動状況、位置などに基づいて他のノードと通信する。当業者が承知のように、ノード、装置、リンクなどの数は任意であり、ここに示した図は分かり易く簡略化したものである。また、本実施形態は一般的なネットワーククラウドに基づいて示しているが、ここでの記述はそれに限定する意図はなく、配線で接続されるネットワークに適用してもよい。
【００１４】
図２は、ネットワーク装置２００（例えば、ネットワーク装置２０１〜２０８の１つ）の一例を示す模式図であり、例えば、ネットワーク１００に示すノードの１つのように、ここに記述する１つ以上の実施形態で使用される。装置２００は、システムバス２５０により相互接続される、１つ以上のネットワークインターフェース２１０、少なくとも１つのプロセッサ２２０、および、記憶装置２４０を具備する。
【００１５】
ネットワークインターフェース２１０は、ネットワーク１００に接続する物理的リンクおよび／または無線リンクを介してデータを伝搬する、機械的回路、電気回路、および信号伝送回路を含む。ネットワークインターフェースは、とりわけ、ＴＣＰ／ＩＰ、ＵＤＰ、無線プロトコル（例えば、ＩＥＥＥ  Ｓｔｄ．  ８０２．１５．４、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標））、イーサネットなどを含む、様々な異なる通信プロトコルを使用してデータを送信および／または受信するように構成される。
【００１６】
記憶装置２４０は、ここに記述する実施形態に関連するソフトウェアプログラムおよびデータ構造を保存するために、プロセッサ２２０およびネットワークインターフェース２１０によりアドレス指定可能な複数の記憶位置を具備する。上記のように、いくつかの装置は限定的記憶容量のみ有してもよいし、または記憶装置をまったく有しなくても（例えば、装置上で動作するプログラム／プロセス以外を保存する記憶装置を有しなくても）よい。プロセッサ２２０は、（特に、対応する装置上でのみ）ソフトウェアプログラムを実行し、データ構造２４５を操作するために適合される、ルートまたはプレフィックスなどの必要な素子または論理回路を具備してもよい。オペレーティングシステム２４２は、通常、その一部が記憶装置２４０に常駐し、プロセッサにより実行されるが、特に、装置上で実行されるソフトウェアプロセスおよび／またはサービスを支持する操作を呼び出すことにより、装置を機能的に構築する。これらのソフトウェアプロセスおよび／またはサービスが、テンプレートスタックプロセス／サービス２４４を具備してもよい。当業者には明らかなように、ここに記述した技術に関するプログラム命令を保存し実行するために、種々のコンピュータ可読媒体を含む、その他のタイプのプロセッサおよび記憶装置が使用されてもよい。また、様々なプロセスについて説明するが、本技術に従って（例えば、同様の処理の機能性に応じて）動作するように構成されたモジュールとして、様々なプロセスが実施されることが特に望まれる。
【００１７】
例示的に、ここに記述の技術は、例えば、ここに示す技術に関する機能を遂行するために、プロセッサ２２０（または、インターフェース２１０の独立プロセッサ）によって実行されるコンピュータ実行可能命令を含む、テンプレートスタックプロセス２４４に応じた、ハードウェア、ソフトウェア、そして／またはファームウェアにより遂行されてもよい。
【００１８】
上述の通り、通信ネットワーク内の様々なノード間の分散アプリケーションの操作問題の診断は、非常に困難であり、特に、ローカルで様々なステータスデータを、より広範囲なシステムレベルオペレーションと相関させようとする場合は困難である。
【００１９】
従って、ここに記述の技術は、ローカルで多様なデータを、統合された共通のテンプレートスタックプラットフォームに同期させる、テンプレートスタックを提供する。上記のように、これらの技術は  時間、位置、装置の種類、インターフェース、アプリケーションホストなどに基づいて、対応するデータソースからのデータの分析と相互関係を提供する。特に、１つ以上の特定の実施形態において、テンプレートスタック技術は、インターフェースに共通のフレームワークを実例的に提供し、様々なタイプのデータをさらなる処理のために共通のアーキテクチャにマッピングする。マッピング終了後、本技術は、ハードコードのサポートまたは新たなソフトウェアをビルドする必要なく、マッピングされたデータの一部または全ての上で実行される（例えば、様々なテンプレートに応じて定義される）変換または機能を提供する。
【００２０】
例示的に、図３を参照しながら、ここで述べるテンプレートスタック技術をアーキテクチャ図３００に示す。上記のように、テンプレートスタックアーキテクチャ（ｔｅｍｐｌａｔｅ  ｓｔａｃｋ  ａｒｃｈｉｔｅｃｔｕｒｅ）３００は、データソース３０５からの多種多様なデータを処理するための、通常、テンプレートスタック３２１として言及される、共通かつ定数のデータモデルを提供する。一般的に、テンプレートスタック３２１は、ドライバ３１０、変換３１５およびテンプレート３２０を含む。
【００２１】
ドライバ３１０について述べると、ドライバ３１０はデータソース仕様のフォーマットを提供し、様々なデータソース３０５からのシンタックス（ｓｉｎｔａｘ）問題を解決する。このように、テンプレートスタックアーキテクチャは、（例えば、ネットワーク装置２０１〜２０８から）外部データソース３０５に直接接続またはインターフェース接続するためにドライバ３１０を使用する。さらに、ドライバ３１０は、データの要求（この要求は、好ましくは、テンプレートスタックモデル（ｔｅｍｐｌａｔｅ  ｓｔａｃｋ  ｍｏｄｅｌ）で規定される）を受信し、前記要求をデータソースに必要とされるフォーマットおよびシンタックスに変換し、前記要求されたデータをデータソースから取得し、前記取得されたデータを共通のテンプレートスタックデータモデルに一致するように変換して例外およびエラーを検出して処理し、かつ、前記例外とエラーを残りのテンプレートスタックアーキテクチャから隔離するように構成される。  
【００２２】
変換３１５は、ドライバ３１０により取得されたデータ上で実行される命令または機能操作を供給する。例示的に、いくつかの変換は、マージ（ｍｅｒｇｅ）、共用体（ｕｎｉｏｎ）、アドプロビジョンドインターフェース（ａｄｄｐｒｏｖｉｓｉｏｎｅｄｉｎｔｅｒｆａｃｅ）、および、派生列（ｄｅｒｉｖｅｄｃｏｌｕｍｎ）などを含む。マージ関数またはマージ変換は、特に、最初の各主キーに基づいて複数のデータテーブルを単一のデータテーブルに統合する。このように、マージ変換は複数のデータテーブルを統合し、単一または共通のより広いデータテーブルを生成する。共用体変換は、複数のデータテーブルを、それぞれの行に基づいて単一データテーブルに結合する。特に、各データテーブルのスキーマは、好ましくは、同一である。アドプロビジョンドインターフェース変換は、既存のデータテーブルに新たな行を追加し、派生列変換は、既存のデータテーブルに新たな列を追加する。一般的に、変換３１５は、１つ以上のデータソースからドライバ３１０を介して入力を受け取り、単一のデータセットを返送する。好ましくは、変換３１５は例外とエラーを検出して処理し、前記例外とエラーをテンプレートスタックアーキテクチャ３００のその他の成分から分離する。
【００２３】
テンプレートスタック３２１のテンプレート３２０は、テンプレートスタックアーキテクチャを使って検索できるデータを定義する。特に、テンプレート３２０は、通常、上記のように、定義済関数または関数を有し、記憶装置（例えば、データ構造２４５）に保存され、テンプレート要求により参照される。例えば、例示的に、各テンプレートは名前を有し、いかにして変換３１５およびドライバ３１０を使用して応答を生成するかを説明する。操作上、各テンプレートは、通常、１つ以上の変換（マージなど）および１つ以上のデータソース（ＮＰＡおよびＫｉｔｅなど）を規定する。特に、テンプレートからすれば、データソースは（データソース３０５からデータを戻す）ドライバ３１０の１つか、または別の「子」テンプレートさえ含むことができる。
【００２４】
通常、テンプレート３２０は、コードではなくメタデータとして定義される。例えば、図４Ａおよび図４Ｂは、２つの典型的なテンプレート、すなわち、それぞれテンプレート３２０ａと３２０ｂを示す。テンプレート３２０ａは、『インターフェースパーフォーマンスパーデバイス（ＩｎｔｅｒｆａｃｅＰｅｒｆｏｒｍａｎｃｅＰｅｒＤｅｖｉｃｅ）』というタイトルであり、ドライバ３１０（すなわち、ＮＰＡ）の１つからＦｒｅインターフェースを使用してデータに接続する。図に示すように、テンプレート３２０ａはＮＰＡおよびその先に直接呼出しをするため、子テンプレートを全く含まず、さらに、変換３１５への参照も含まない。テンプレート３２０ｂは、『インターフェースパフォーマンスパーデバイスプロビジョンド（ＩｎｔｅｒｆａｃｅＰｅｒｆｏｒｍａｎｃｅＰｅｒＤｅｖｉｃｅＰｒｏｖｉｓｉｏｎｅｄ）』というタイトルであり、（例えば、ドライバ３１０を介して）データソース３０５から特定のデータを読み出し、全ての戻りデータに『アドプロビジョンドインターフェース』変換を適用する。  
【００２５】
もう一度図３を参照すると、クライアントアプリケーション３２５は、テンプレートスタック３２１と応答／要求３２２を送受信する。通常、要求は共通のアプリケーションプログラミングインターフェース（ＡＰＩ）に適合する。要求の一例は次の通りである：
ＤａｔａＳｅｔ  ｏｕｔｐｕｔＤａｔａ＝ＧｅｔＤａｔａＳｅｔ（ＭｅｔａＤａｔａＴｅｍｐｌａｔｅ  ｒｅｑｕｅｓｔＴｅｍｐｌａｔｅ，
Ｌｉｓｔ＜ＮａｍｅＶａｌｕｅＰａｉｒ＞ｐａｒａｍｅｔｅｒｓ，ＤａｔａＳｅｔ  ｉｎｐｕｔＤａｔａ）
【００２６】
例示した要求に従い、『ｒｅｑｕｅｓｔＴｅｍｐｌａｔｅ』はテンプレート３２０の１つを呼出し；『ｐａｒａｍｅｔｅｒｓ』は要求に対するパラメータのコレクションを示し；『ｉｎｐｕｔＤａｔａ』は各入力データソースのデータテーブルを含む空のデータセットであり、『ｏｕｔｐｕｔＤａｔａ』は『ｒｅｑｕｅｓｔＴｅｍｐｌａｔｅ』などの共通のまたは共有の名前を有するデータセットである。かかるテーブルは、応答内に提供されるデータを含むか、または明確に参照する。さらに、前記テーブルのスキーマは完結しており、任意の例外または問題が要求に対する応答において識別されるか否かに依存しない。特に、ＡＰＩによると、『ｏｕｔｐｕｔＤａｔａ』は、いかなるエラー／例外も処理する『ＥｒｒｏｒＭｅｓｓａｇｅｓ』と名付けられたデータテーブルもまた含むことができる（例えば、テーブルは要求に応答する際に識別されるいかなる例外または問題も記録する行を含むことができる）。さらに、好ましくは『ｏｕｔｐｕｔＤａｔａ』が同一のデータテーブル『ＥｒｒｏｒＭｅｓｓａｇｅｓ』を含む。
【００２７】
例示的に、ここに記載の技術は、テンプレートスタックプロセス２４４（各テンプレートスタックプロセスが、ここに記載の技術に関する機能を実行するために、プロセッサ２２０によって実行されるコンピュータ実行可能命令を有する）に従い、ハードウェア、ソフトウェア、および／またはファームウェアによって実施されてよい。
【００２８】
操作上、テンプレートスタックプロセス２４４の実施例の制御の下で、テンプレートスタック３２１はクライアントアプリケーション３２５から要求３２２を受信する。要求３２２は、特定のテンプレートを指定し、パラメータのコレクションを供給する（例えば、名前と値の組として指定される）。重要なことに、要求により通過するパラメータは、不必要なパラメータの変換、再フォーマット、編集およびフィルタリングを回避する。さらに、特定の要求のためのパラメータは、通常、前記テンプレートスタックを通して不変で通過する。テンプレートスタック３２１は要求を受信して指定のテンプレート３２０を取得し、テンプレート３２０は1つ以上の指定の変換３１５を呼出し、指定のテンプレートデータソースから（ドライバ３１０を介して）取得したデータに実行する。取得データに変換を適用した結果は、応答３２２を介して、クライアントアプリケーション３２５に返送される。例えば、要求は、マージ変換を指定し、ＮｐａＦｒｅおよびＫｉｔｅドライバからデータを取得できるインターフェース性能データのグリッドを作成するテンプレートを呼び出すことができる。
【００２９】
特に、上述したように、テンプレート３２０は、ドライバ３１０から直接データを取得するだけでなく、スタック可能なテンプレートを可能するためにその他のテンプレートもまた呼び出すことができる。さらに、要求３２２は通常対応するテンプレートのスキーマにより規定される。すなわち、個別の要求は、対応するテンプレートのスキーマで取得できるタグおよびメトリックを適用する。同様に、応答として返送されたデータもまた、対応するテンプレートのスキーマにより規定される。このように、テンプレートは、特定のスキーマ（例えば、テンプレートスキーマ）を有する仮想テーブルに対する実行クエリ（例えば、要求）と同様である。
【００３０】
従って、ここで述べる技術は、テンプレートスタック３２１の共通のフレームワークによって相関する様々なデータソースからのデータを許可する。特定のアプリケーションにおいて様々なデータソースからの受信データを相関させる別の実施形態として、ネットワークオラクルアプリケーションとしてインターネットプロトコル（ＩＰ）トランザクションを考察する。オラクルアプリケーションは、通常、２つのタイプのデータソースであり、１つの（例えば、クライアントデバイスからの）データソースは、例えば、オラクルアプリケーションの応答時間に関するデータを供給し、もう１つの（例えば、オラクルアプリケーションをホストするサーバからの）データソースは、ホストサーバの性能データ（例えば、バッファキャッシュ、クエリアナライザ、ページフォルト、入出力性能など）を供給する。このように、相関および解析が、オラクルアプリケーションのユーザパフォーマンス問題に潜在する要因（例えば、オラクルサーバ上のバッファキャッシュに割り当てられるメモリの不足など）を識別するために実行されうる。
【００３１】
図５は、ここに記述した１つ以上の実施形態に従い、様々なネットワークノードから（特に、テンプレートスタックノードの観点から）のデータを共通のフレームワークに統合する簡素化した手順５００の実施例を示している。手順５００はステップ５０５から始まり、詳しく上述したように、テンプレートスタックノードが通信ネットワーク内の複数のデータソース（すなわち、ノード）からのデータを受信する、ステップ５１０へと続く。例えば、上述の通り、テンプレートスタックノードは、複数のノードのそれぞれからの様々なデータソースに対応する様々なドライバを含む。データが受信されると、ステップ５１５のテンプレートスタックノードは、共通のデータフレームワークにデータをマッピングする。次に、ステップ５２０において、テンプレートスタックノードはクライアントノードからテンプレート要求を受信する。テンプレート要求は、少なくとも１つの変換関数を含む。さらに、上述したいくつかの実施形態において、テンプレート要求は（それぞれ追加の変換関数を含む）追加のテンプレートを特定または呼び出すことができる。このように、上述したように、テンプレートはスタック可能である。ステップ５２５では、テンプレート要求に応じて、テンプレートスタックノードは変換データを生成するために複数のノードのデータ上の変換関数を実行する。次に、ステップ５３０において、テンプレートスタックノードは変換データに基づき、分散アプリケーションの１つ以上の操作問題を検出し、ステップ５３５において、テンプレートスタックノードは、変換データおよび／または警告をクライアントノードに送信する。特に、当業者には理解できるように、テンプレートスタックノードは、変換データを解析し、変換データ内に異常が検出された場合は警告を生成するために、警告エンジンを使用することができる。このような警告は、例えば、分散アプリケーションの１つ以上の操作問題を表示する。この手順はステップ５４０で終了してもよいし、または、その代わりに、テンプレートスタックノードは、ステップ５２０で言及したように、追加のテンプレート要求を受信することもできる。
【００３２】
手順５００内のいくつかのステップは、上述の通り任意であってもよく、図５に示すステップは、単に説明するための例であり、要望に従って、いくつかの他のステップを含んでもよいし、削除してもよいことに留意されたい。さらに、特定のステップの順序を示しているが、この順序は単に説明のためであり、本実施形態の要旨から逸脱しない範囲における、いかなる適した配列も使用可能である。
【００３３】
従って、ここに述べる技術は、ネットワークノードからの様々なローカルデータを統合するテンプレートスタックを介して共通のフレームワークを提供する。特に、本技術は、ネットワークアプリケーションのためのデータソースの多様なコレクションの全域においてデータ解析および相関を供給する。特に、共通のフレームワークを使用することにより、テンプレートスタックは多様なローカルデータソースの全体においてデータを直接比較し、解析し、かつ、相関することができる。
【００３４】
テンプレートスタックの共通のフレームワークを供給する実施形態について述べてきたが、本実施形態の精神および範囲を逸脱することなく、様々なその他の適合および変更がなされてよいことを理解されたい。例えば、特定のテンプレート、変換、およびドライバを使用して、実施形態をここに述べてきた。しかしながら、より広範な意味において、実施形態は限定されず、事実、どのようなタイプのテンプレート、変換およびドライバにも使用可能である。
【００３５】
上記の説明は、特定の実施形態について述べられている。しかしながら、利点のいくつかまたは全てを実現するために、上述した実施形態に対してその他の変更や修正を加えてもよいことは明らかである。例えば、ここに述べた成分および／または要素は、コンピュータ、ハードウェア、ファームウェア、または、それらの組み合わせ上で実行するプログラム命令を有する、具体的な（非一時的な）コンピュータ可読の媒体（例えば、ディスク／ＣＤなど）上に保存されているソフトウェアとして実装可能であることを理解されたい。従って、ここでの記述は、単に例示するためだけのものであり、本実施形態の範囲を制限するものではない。従って、本実施形態の真の精神および範囲を逸脱しない、すべての変更および修正を含むことが、添付の請求項の目的である。
【図１】
2015028764.tif 000003
【図２】
2015028764.tif 000004
【図３】
2015028764.tif 000005
【図４Ａ】
2015028764.tif 000006
【図４Ｂ】
2015028764.tif 000007
【図５】
2015028764.tif 000008
【外国語明細書】
2015028764000001.pdf