(57)【特許請求の範囲】
【請求項１】
統合プロトコルの動的管理のためのコンピュータ実装プロセスであって、
１つまたは複数のプロセッサに接続されたメモリ内に記憶されたコンピュータ実行可能プログラム・コードを実行する前記１つまたは複数のプロセッサによって、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成することであって、前記通信ファブリックが統合バスを含み、前記統合バスが、アプリケーションの前記セット中のアプリケーションによって使用される通信プロトコルのセットを含むこと、
前記１つまたは複数のプロセッサによって接続の前記セットを監視して、接続の前記セットに関連する性能メトリックのセットを収集すること、
統合コントローラが規則のセットを有し、前記性能メトリックを使用してアプリケーションの通信フレームワークおよび通信プロトコルを動的に選択し、アプリケーションのデータをルーティングすること、
前記１つまたは複数のプロセッサによって、所定の性能メトリックが、アプリケーションの前記セット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定すること、および、
前記所定の性能メトリックが、アプリケーションの前記セット中の前記特定のアプリケーションに関連する前記所定の許容度内にないと判定されるのに応答して、前記１つまたは複数のプロセッサによって、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションの前記セット中の前記特定のアプリケーションについての、接続の前記セット中の統合パスを調整することを含む、コンピュータ実装プロセス。
【請求項２】
各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションの前記セット中の前記特定のアプリケーションについての、接続の前記セット中の統合パスを調整することが、
１つまたは複数のパスの選択を改変することを調整アクションが含むかどうか判定すること、
１つまたは複数のパスの選択を改変することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含むかどうか判定すること、および、
前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパスをアクティブ化することをさらに含む、請求項１に記載のコンピュータ実装プロセス。
【請求項３】
前記１つまたは複数のパス上のトラフィック・ミックスを調整することを前記調整アクションが含むかどうか判定することが、
前記１つまたは複数のパス上のトラフィック・ミックスを調整することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパス上の前記トラフィック・ミックスを調整することをさらに含む、請求項２に記載のコンピュータ実装プロセス。
【請求項４】
前記１つまたは複数のプロセッサによって、所定の性能メトリックが、アプリケーションの前記セット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定することが、
規則のセットを使用することをさらに含み、規則の前記セット中の各規則が性能指向型規則であり、統合コントローラが規則の前記セットを維持し、規則の前記セットが、アプリケーションの前記セット中の前記特定のアプリケーションについて得られた前記性能メトリックのうちの１つまたは複数との組合せで使用される、請求項１に記載のコンピュータ実装プロセス。
【請求項５】
前記１つまたは複数のプロセッサによって接続の前記セットを監視して、接続の前記セットに関連する性能メトリックのセットを収集することが、
後で規則の前記セットと共に使用するために、性能メトリックの前記セットをキャッシュすることをさらに含む、請求項１に記載のコンピュータ実装プロセス。
【請求項６】
１つまたは複数のプロセッサに接続されたメモリ内に記憶されたコンピュータ実行可能プログラム・コードを実行する前記１つまたは複数のプロセッサによって、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成することが、
アプリケーションの前記セット中のアプリケーションに関連する要求についてのサービス定義およびサービス品質を含めた、性能メトリックの前記セット中の性能メトリックを、前記アプリケーションをシステムの他のコンポーネントと統合するのに使用される特定のプロトコルおよび統合チャネルにリンクすることをさらに含み、前記アプリケーションおよびアプリケーション・コンポーネントの各々が相互接続され、各接続が、デフォルト・パスを含むように定義された統合パスのセットを有する、請求項１に記載のコンピュータ実装プロセス。
【請求項７】
統合プロトコルの動的管理のためのコンピュータ・プログラムであって、
コンピュータ実行可能プログラム・コードが記憶されたコンピュータ記録可能データ・ストレージ・デバイスを備え、コンピュータに、
アプリケーションのセットを通信ファブリックに接続して接続のセットを形成するステップであって、前記通信ファブリックが統合バスを含み、前記統合バスが、アプリケーションの前記セット中のアプリケーションによって使用される通信プロトコルのセットを含むステップと、
接続の前記セットを監視して、接続の前記セットに関連する性能メトリックのセットを収集するステップと、
統合コントローラが規則のセットを有し、前記性能メトリックを使用してアプリケーションの通信フレームワークおよび通信プロトコルを動的に選択し、アプリケーションのデータをルーティングするステップと、
所定の性能メトリックが、アプリケーションの前記セット中の特定のアプリケーションに関連する所定の許容度内にあるかどうかを、１つまたは複数のプロセッサによって判定するステップと、  
前記所定の性能メトリックが、アプリケーションの前記セット中の前記特定のアプリケーションに関連する前記所定の許容度内にないと判定されるのに応答して、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションの前記セット中の前記特定のアプリケーションについての、接続の前記セット中の統合パスを調整するステップとを実行させる、コンピュータ・プログラム。
【請求項８】
各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションの前記セット中の前記特定のアプリケーションについての、接続の前記セット中の統合パスを調整するステップが、
１つまたは複数のパスの選択を改変することを調整アクションが含むかどうか判定するステップと、
１つまたは複数のパスの選択を改変することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含むかどうか判定するステップと、
前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパスをアクティブ化するステップとをさらに含む、請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記１つまたは複数のパス上のトラフィック・ミックスを調整することを前記調整アクションが含むかどうか判定することが、
前記１つまたは複数のパス上のトラフィック・ミックスを調整することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパス上の前記トラフィック・ミックスを調整することをさらに含む、請求項８に記載のコンピュータ・プログラム。
【請求項１０】
所定の性能メトリックが、アプリケーションの前記セット中の特定のアプリケーションに関連する所定の許容度内にあるかどうかを、前記１つまたは複数のプロセッサによって判定するステップが、
規則のセットを使用するステップをさらに含み、規則の前記セット中の各規則が性能指向型規則であり、統合コントローラが規則の前記セットを維持し、規則の前記セットが、アプリケーションの前記セット中の前記特定のアプリケーションについて得られた前記性能メトリックのうちの１つまたは複数との組合せで使用される、請求項７に記載のコンピュータ・プログラム。
【請求項１１】
前記１つまたは複数のプロセッサによって接続の前記セットを監視して、接続の前記セットに関連する性能メトリックのセットを収集するための前記ステップが、
後で規則の前記セットと共に使用するために、性能メトリックの前記セットをキャッシュするステップをさらに含む、請求項７に記載のコンピュータ・プログラム。
【請求項１２】
１つまたは複数のプロセッサに接続されたメモリ内に記憶されたコンピュータ実行可能命令を実行する前記１つまたは複数のプロセッサによって、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成するステップが、
アプリケーションの前記セット中のアプリケーションに関連する要求についてのサービス定義およびサービス品質を含めた、性能メトリックの前記セット中の性能メトリックを、前記アプリケーションをシステムの他のコンポーネントと統合するのに使用される特定のプロトコルおよび統合チャネルにリンクするステップをさらに含み、前記アプリケーションおよびアプリケーション・コンポーネントの各々が相互接続され、各接続が、デフォルト・パスを含むように定義された統合パスのセットを有する、請求項７に記載のコンピュータ・プログラム。
【請求項１３】
統合プロトコルの動的管理のための装置であって、
通信ファブリックと、
前記通信ファブリックに接続されたメモリであって、コンピュータ実行可能プログラム・コードを含む、前記メモリと、
前記通信ファブリックに接続された通信ユニットと、
前記通信ファブリックに接続された入出力ユニットと、
前記通信ファブリックに接続された表示装置と、
前記通信ファブリックに接続されたプロセッサ・ユニットとを備え、前記プロセッサ・ユニットが、前記コンピュータ実行可能プログラム・コードを実行して、前記装置に、
アプリケーションのセットを前記通信ファブリックに接続して接続のセットを形成することであって、前記通信ファブリックが統合バスを含み、前記統合バスが、アプリケーションの前記セット中のアプリケーションによって使用される通信プロトコルのセットを含むこと、
接続の前記セットを監視して接続の前記セットに関連する性能メトリックのセットを収集すること、
統合コントローラが規則のセットを有し、前記性能メトリックを使用してアプリケーションの通信フレームワークおよび通信プロトコルを動的に選択し、アプリケーションのデータをルーティングすること、
所定の性能メトリックが、アプリケーションの前記セット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定すること、および、
前記所定の性能メトリックが、アプリケーションの前記セット中の前記特定のアプリケーションに関連する前記所定の許容度内にないと判定されるのに応答して、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションの前記セット中の前記特定のアプリケーションについての、接続の前記セット中の統合パスを調整すること、を行うように指示する、装置。
【請求項１４】
前記プロセッサ・ユニットが、前記コンピュータ実行可能プログラム・コードを実行して、前記装置に、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションの前記セット中の前記特定のアプリケーションについての、接続の前記セット中の統合パスを調整すること、を行うように指示する際、前記プロセッサ・ユニットが、前記装置に、
１つまたは複数のパスの選択を改変することを調整アクションが含むかどうか判定すること、
１つまたは複数のパスの選択を改変することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含むかどうか判定すること、および、
前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパスをアクティブ化すること、を行うようにさらに指示する、請求項１３に記載の装置。
【請求項１５】
前記プロセッサ・ユニットが、前記コンピュータ実行可能プログラム・コードを実行して、前記装置に、
前記１つまたは複数のパスをアクティブ化することを前記調整アクションが含まないと判定されるのに応答して、前記１つまたは複数のパス上のトラフィック・ミックスを調整することを前記調整アクションが含むかどうか判定すること、および、
前記１つまたは複数のパス上のトラフィック・ミックスを調整することを前記調整アクションが含むと判定されるのに応答して、前記１つまたは複数のパス上の前記トラフィック・ミックスを調整すること、を行うようにさらに指示する、請求項１４に記載の装置。
【請求項１６】
前記プロセッサ・ユニットが、前記コンピュータ実行可能プログラム・コードを実行して、前記装置に、所定の性能メトリックが、アプリケーションの前記セット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定するように指示する際、前記プロセッサ・ユニットが、前記装置に、
規則のセットを使用するようにさらに指示し、規則の前記セット中の各規則が性能指向型規則であり、統合コントローラが規則の前記セットを維持し、規則の前記セットが、アプリケーションの前記セット中の前記特定のアプリケーションについて得られた前記性能メトリックのうちの１つまたは複数との組合せで使用される、請求項１３に記載の装置。
【請求項１７】
前記プロセッサ・ユニットが、前記コンピュータ実行可能プログラム・コードを実行して、前記装置に、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成するように指示する際、前記プロセッサ・ユニットが、前記装置に、
アプリケーションの前記セット中のアプリケーションに関連する要求についてのサービス定義およびサービス品質を含めた、性能メトリックの前記セット中の性能メトリックを、前記アプリケーションをシステムの他のコンポーネントと統合するのに使用される特定のプロトコルおよび統合チャネルにリンクするようにさらに指示し、前記アプリケーションおよびアプリケーション・コンポーネントの各々が相互接続され、各接続が、デフォルト・パスを含むように定義された統合パスのセットを有する、請求項１３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データ処理システムにおけるアプリケーション統合に関し、より詳細には、データ処理システムにおける統合プロトコルの動的管理に関する。
【背景技術】
【０００２】
アプリケーションまたはアプリケーション・コンポーネントは、しばしば、他のアプリケーションまたはコンポーネントと通信して、関連データを取り出して処理する。例えば、電子商取引に使用されるアプリケーションは、検索アプライアンスと通信してカタログ検索データを取り出し、また、注文管理システムと通信して注文を記憶する。ソフトウェア・アズ・ア・サービス（ＳａａＳ）の使用の増加と、クラウドベースのコンピューティング技法を使用したアプリケーション展開とに伴い、細分性のある相互接続されたサービスのパターンが進化し、より普及してきている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このパターンの使用に関して明白である典型的な問題は、特定のタイプの統合システムの全体的な性能が、通常、システム中の最も弱いリンクに依存することである。したがって、１つのコンポーネントが負荷を受けすぎるか、障害を起こすか、またはうまく機能しないとき、統合システム全体が損害を受ける。
【課題を解決するための手段】
【０００４】
一実施形態によれば、統合プロトコルの動的管理のためのコンピュータ実装プロセスは、１つまたは複数のプロセッサに接続されたメモリ内に記憶されたコンピュータ実行可能プログラム・コードを実行する１つまたは複数のプロセッサによって、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成すること、および、１つまたは複数のプロセッサによって接続のセットを監視して、接続のセットに関連する性能メトリックのセットを収集することを含む。
【０００５】
コンピュータ実装プロセスはさらに、１つまたは複数のプロセッサによって、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定する。所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にないと判定されるのに応答して、１つまたは複数のプロセッサによって、規則のセットをプログラム的に使用して、アプリケーションのセット中の特定のアプリケーションについての、接続のセット中の統合パスを調整し、規則のセット中の各規則は、性能指向型（ｐｅｒｆｏｒｍａｎｃｅ  ｄｒｉｖｅｎ）規則である。
【０００６】
別の実施形態によれば、統合プロトコルの動的管理のためのコンピュータ・プログラム製品は、コンピュータ実行可能プログラム・コードが記憶されたコンピュータ記録可能データ・ストレージ・デバイスを備える。コンピュータ実行可能プログラム・コードは、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成するためのコンピュータ実行可能プログラム・コードと、接続のセットを監視して、接続のセットに関連する性能メトリックのセットを収集するためのコンピュータ実行可能プログラム・コードとを含む。コンピュータ・プログラム製品はさらに、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にあるかどうかを、１つまたは複数のプロセッサによって判定するためのコンピュータ実行可能プログラム・コードと、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にないと判定されるのに応答して、規則のセットをプログラム的に使用して、アプリケーションのセット中の特定のアプリケーションについての、接続のセット中の統合パスを調整するためのコンピュータ実行可能プログラム・コードとを含み、規則のセット中の各規則は、性能指向型規則（performance driven rule）である。
【０００７】
別の実施形態によれば、統合プロトコルの動的管理のための装置は、通信ファブリックと、通信ファブリックに接続されたメモリであって、コンピュータ実行可能プログラム・コードを含むメモリと、通信ファブリックに接続された通信ユニットと、通信ファブリックに接続された入出力ユニットと、通信ファブリックに接続された表示装置と、通信ファブリックに接続されたプロセッサ・ユニットとを備える。プロセッサ・ユニットは、コンピュータ実行可能プログラム・コードを実行して、装置に、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成すること、および、接続のセットを監視して、接続のセットに関連する性能メトリックのセットを収集すること、を指示する。
【０００８】
プロセッサ・ユニットはさらに、コンピュータ実行可能プログラム・コードを実行して、装置に、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定すること、および、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にないと判定されるのに応答して、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションのセット中の特定のアプリケーションについての、接続のセット中の統合パスを調整すること、を指示する。
【０００９】
本開示のより完全な理解のために、次に、添付の図面および詳細な説明と共に、以下の簡単な説明を参照する。添付の図面および詳細な説明では、同じ参照番号は同じ部分を表す。
【図面の簡単な説明】
【００１０】
【図１】本開示の様々な実施形態で動作可能な例示的なネットワーク・データ処理システムのブロック図である。
【図２】本開示の様々な実施形態で動作可能な例示的なデータ処理システムのブロック図である。
【図３】本開示の様々な実施形態で動作可能な統合制御システムのブロック図表現である。
【図４】本開示の一実施形態による、図３の統合制御システムを使用する一実施形態のブロック図である。
【図５】本開示の一実施形態による、図３の統合制御システムを使用する一実施形態のブロック図である。
【図６】本開示の一実施形態による、図３の統合制御システムを使用するプロセスのフローチャートである。
【図７】本開示の一実施形態による、図６の統合制御システムを使用するプロセス内の調整サブプロセスのフローチャートである。
【発明を実施するための形態】
【００１１】
１つまたは複数の実施形態の例証的な一実装形態を以下に提供するが、開示するシステムまたは方法あるいはその両方は、任意の数の技法を使用して実現することができる。本開示は、本明細書で例証および説明する例示的な設計および実装形態を含めた、以下に示す例証的な実装形態、図面、および技法に限定されるべきでは決してなく、添付の請求項の均等物の全範囲と共に、添付の請求項の範囲内で変更されてもよい。
【００１２】
当業者には理解されるであろうが、本開示の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではこれらは全て「回路」、「モジュール」、または「システム」と一般に呼ばれる場合がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み入れられた１つまたは複数のコンピュータ可読媒体において具現化されるコンピュータ・プログラム製品の形をとることもできる。
【００１３】
１つまたは複数のコンピュータ可読データ・ストレージ・デバイスの任意の組合せを利用することができる。コンピュータ可読データ・ストレージ・デバイスは、例えば、以下のものに限定されないが、電子、磁気、光学、もしくは半導体の、システム、装置、もしくはデバイス、またはこれらの任意の適切な組合せであってよく、ただし伝搬媒体は包含しない。コンピュータ可読データ・ストレージ・デバイスのより具体的な例（非網羅的なリスト）は、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能プログラム可能な読取専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光学ストレージ・デバイス、もしくは磁気ストレージ・デバイス、またはこれらの任意の適切な組合せを含むことになるが、伝搬媒体は包含しない。この文書のコンテキストでは、コンピュータ可読データ・ストレージ・デバイスは、命令実行システム、装置、またはデバイスによって使用されるプログラムまたはそれらに関連して使用されるプログラムを記憶できる、任意の有形デバイスとすることができる。
【００１４】
本開示の態様に関する動作を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含めた、１つまたは複数のプログラミング言語の任意の組合せで書かれてよい。Ｊａｖａ（Ｒ）および全てのＪａｖａ（Ｒ）ベースの商標およびロゴは、Ｏｒａｃｌｅ  Ｃｏｒｐｏｒａｔｉｏｎまたはその系列会社あるいはその両方の、米国、その他の国、またはその両方における商標である。プログラム・コードは、完全にユーザのコンピュータ上で実行されるか、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で実行され部分的にリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行される場合がある。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して（例えばインターネット・サービス・プロバイダを使用してインターネットを介して）行われてもよい。
【００１５】
本開示の態様を、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート説明またはブロック図あるいはその両方に関して以下に述べる。フローチャート説明またはブロック図あるいはその両方の各ブロック、ならびに、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ・プログラム命令によって実現できることは理解されるであろう。
【００１６】
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現するための手段をもたらすように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを生み出すことができる。
【００１７】
これらのコンピュータ・プログラム命令はまた、コンピュータ可読データ・ストレージ・デバイスに記憶された命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現する命令を含む製品を生み出すように、コンピュータ可読データ・ストレージ・デバイスに記憶され、コンピュータまたは他のプログラム可能データ処理装置に、特定の方式で機能するよう指示することができる。
【００１８】
コンピュータ・プログラム命令はまた、コンピュータまたは他のプログラム可能装置上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現するためのプロセスを提供するように、コンピュータ実装プロセスを生み出すべく、コンピュータまたは他のプログラム可能データ処理装置にロードされ、コンピュータまたは他のプログラム可能装置上で一連の動作ステップを実施させることができる。
【００１９】
次に、図、特に図１〜２を参照しながら、例証的な実施形態を実現できるデータ処理環境の例示的な図を提供する。図１〜２は、例示に過ぎず、種々の実施形態を実現できる環境に関するどのような限定も主張または含意するものとしないことを理解されたい。示される実施形態に対して多くの変更を加えることができる。
【００２０】
図１は、例証的な実施形態を実現できるデータ処理システムのネットワークの、絵による表現を示している。ネットワーク・データ処理システム１００は、例証的な実施形態を実現できる、コンピュータのネットワークである。ネットワーク・データ処理システム１００はネットワーク１０２を含み、ネットワーク１０２は、ネットワーク・データ処理システム１００内で共に接続される様々なデバイスおよびコンピュータの間の通信リンクを提供するのに使用される媒体である。ネットワーク１０２は、ワイヤ、ワイヤレス通信リンク、または光ファイバケーブルなどの接続を含み得る。
【００２１】
示される例では、サーバ１０４およびサーバ１０６は、ストレージ・ユニット１０８と共に、ネットワーク１０２に接続する。加えて、クライアント１１０、１１２、および１１４もネットワーク１０２に接続する。クライアント１１０、１１２、および１１４は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータとすることができる。示される例では、サーバ１０４は、ブート・ファイルなどのデータ、オペレーティング・システム・イメージ、統合制御システム１１６の一実施形態、およびアプリケーションを、クライアント１１０、１１２、および１１４に提供する。クライアント１１０、１１２、および１１４は、この例では、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示されていない追加のサーバ、クライアント、および他のデバイスを含んでもよい。
【００２２】
示される例では、ネットワーク・データ処理システム１００はインターネットであり、ネットワーク１０２は、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）プロトコル・スイートを使用して相互に通信するネットワークおよびゲートウェイの世界的な集まりを表す。インターネットの中心には、データおよびメッセージをルーティングする何千もの商用、行政用、教育用、および他のコンピュータ・システムからなる主要なノードまたはホスト・コンピュータの間の、高速データ通信回線のバックボーンがある。当然、ネットワーク・データ処理システム１００はまた、いくつかの異なるタイプのネットワークとして、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）などとして実現されてもよい。図１は、例とするものであり、種々の例証的な実施形態に対するアーキテクチャ上の限定とするものではない。
【００２３】
図２を参照すると、本開示の様々な実施形態で動作可能な例示的なデータ処理システムのブロック図が提示されている。この例証的な例では、データ処理システム２００は通信ファブリック２０２を含み、通信ファブリック２０２は、プロセッサ・ユニット２０４、メモリ２０６、永続ストレージ２０８、通信ユニット２１０、入出力（Ｉ／Ｏ）ユニット２１２、および表示装置２１４の間の通信を提供する。
【００２４】
プロセッサ・ユニット２０４は、メモリ２０６にロードされ得るソフトウェアに関する命令を実行する役割を果たす。プロセッサ・ユニット２０４は、特定の実装形態に応じて、１つまたは複数のプロセッサのセットである場合もあり、またはマルチプロセッサ・コアである場合もある。さらに、プロセッサ・ユニット２０４は、主プロセッサが２次プロセッサと共に単一のチップ上に存在する、１つまたは複数の異種プロセッサ・システムを使用して実現されてもよい。別の例証的な例として、プロセッサ・ユニット２０４は、同じタイプの複数のプロセッサを含む対称型マルチプロセッサ・システムとすることもできる。
【００２５】
メモリ２０６および永続ストレージ２０８は、ストレージ・デバイス２１６の例である。ストレージ・デバイスは、情報（例えば、限定ではないが、データ、機能的形式のプログラム・コード、または他の適切な情報、あるいはそれらの全てなど）を、一時的にまたは永続的にあるいはその両方で記憶することのできる任意のハードウェアである。メモリ２０６は、これらの例では、例えば、ランダム・アクセス・メモリ、または他の任意の適切な揮発性もしくは不揮発性ストレージ・デバイスとすることができる。永続ストレージ２０８は、特定の実装形態に応じて様々な形をとる場合がある。例えば、永続ストレージ２０８は、１つまたは複数のコンポーネントまたはデバイスを含むことがある。例えば、永続ストレージ２０８は、ハード・ドライブ、フラッシュ・メモリ、書換え可能な光学ディスク、書換え可能な磁気テープ、またはこれらの何らかの組合せとすることができる。永続ストレージ２０８によって使用される媒体はまた、取外し可能とすることができる。例えば、取外し可能なハード・ドライブを永続ストレージ２０８に使用することができる。
【００２６】
通信ユニット２１０は、これらの例では、他のデータ処理システムまたはデバイスとの通信を可能にする。これらの例では、通信ユニット２１０は、ネットワーク・インタフェース・カードである。通信ユニット２１０は、物理通信リンクとワイヤレス通信リンクとのいずれかまたは両方の使用を介した通信を提供することができる。
【００２７】
入出力ユニット２１２は、データ処理システム２００に接続され得る他のデバイスとの間の、データの入力および出力を可能にする。例えば、入出力ユニット２１２は、キーボード、マウス、または他の何らかの適切な入力デバイス、あるいはこれら全てを介したユーザ入力のための接続を提供することができる。さらに、入出力ユニット２１２は、出力をプリンタに送ることができる。表示装置２１４は、情報をユーザに対して表示するためのメカニズムを提供する。
【００２８】
オペレーティング・システム、図１の統合制御システム１１６、アプリケーション、またはプログラム、あるいはそれらの全てに関する命令が、ストレージ・デバイス２１６中に位置してよく、ストレージ・デバイス２１６は、通信ファブリック２０２を介してプロセッサ・ユニット２０４と通信する。これらの例証的な例では、命令は、永続ストレージ２０８上では機能的形式である。これらの命令は、プロセッサ・ユニット２０４によって実行されるために、メモリ２０６にロードされてよい。種々の実施形態のプロセスは、プロセッサ・ユニット２０４によって、コンピュータ実装命令を使用して実施されてよく、これらのコンピュータ実装命令は、メモリ２０６などのメモリ中に位置してよい。
【００２９】
これらの命令は、プロセッサ・ユニット２０４中のプロセッサによって読み取られ実行され得る、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。異なる実施形態におけるプログラム・コードは、メモリ２０６または永続ストレージ２０８など、異なる物理的または有形のコンピュータ可読記憶媒体上で具現化される場合がある。
【００３０】
図１の統合制御システム１１６を一実施形態で含むプログラム・コード２１８が、選択的に取外し可能なコンピュータ可読ストレージ・デバイス２２０などのコンピュータ可読記憶媒体上に機能的形式で位置し、プロセッサ・ユニット２０４によって実行されるためにデータ処理システム２００にロードまたは転送されてよい。プログラム・コード２１８およびコンピュータ可読ストレージ・デバイス２２０は、これらの例では、コンピュータ・プログラム製品２２２を形成する。一例では、コンピュータ可読ストレージ・デバイス２２０は、有形の形とすることができ、例えば、永続ストレージ２０８の一部であるハード・ドライブなどのストレージ・デバイス上に転送されるように、永続ストレージ２０８の一部であるドライブまたは他のデバイスに挿入または配置される、光学ディスクまたは磁気ディスクなどとすることができる。有形の形では、コンピュータ可読ストレージ・デバイス２２０はまた、データ処理システム２００に接続されたハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなど、永続ストレージの形をとることもできる。有形の形のコンピュータ可読ストレージ・デバイス２２０は、コンピュータ記録可能記憶媒体またはコンピュータ可読データ・ストレージ・デバイスとも呼ばれる。場合によっては、コンピュータ可読ストレージ・デバイス２２０は、取外し可能でないこともある。
【００３１】
別法として、プログラム・コード２１８は、通信ユニット２１０への通信リンクを介して、または入出力ユニット２１２への接続を介して、あるいはその両方を介して、コンピュータ可読ストレージ・デバイス２２０からデータ処理システム２００に転送されてもよい。通信リンクまたは接続あるいはその両方は、例証的な例では、物理的またはワイヤレスとすることができる。
【００３２】
いくつかの例証的な実施形態では、プログラム・コード２１８は、データ処理システム２００内で使用されるために、別のデバイスまたはデータ処理システムからネットワークを介して永続ストレージ２０８にダウンロードされてよい。例えば、サーバ・データ処理システム中のコンピュータ可読データ・ストレージ・デバイスに記憶されたプログラム・コードが、サーバからネットワークを介してデータ処理システム２００にダウンロードされてよい。プログラム・コード２１８を提供するデータ処理システムは、プログラム・コード２１８を記憶および送信できるサーバ・コンピュータ、クライアント・コンピュータ、または他の何らかのデバイスとすることができる。
【００３３】
図２のデータ処理システム２００を例として使用して、統合プロトコルの動的管理のためのコンピュータ実装プロセスを提示する。プロセッサ・ユニット２０４は、プロセッサ・ユニット２０４の１つまたは複数のプロセッサに接続されたメモリ２０６内に記憶された、図１の統合制御システム１１６を含むコンピュータ実行可能プログラム・コードを実行し、それにより、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成すると共に、接続のセットを監視して、接続のセットに関連する性能メトリックのセットを収集する。
【００３４】
プロセッサ・ユニット２０４はさらに、プロセッサ・ユニット２０４の１つまたは複数のプロセッサに接続されたメモリ２０６内に記憶されたコンピュータ実行可能プログラム・コードを実行し、それにより、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定する。所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にないと判定されるのに応答して、プロセッサ・ユニット２０４は、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションのセット中の特定のアプリケーションについての、接続のセット中の統合パスを調整する。
【００３５】
図３を参照すると、本開示の様々な実施形態で動作可能な統合制御システムのブロック図表現が提示されている。統合制御システム３００は、性能特性と統合内容の実際の特性とを使用して統合プロトコルおよびチャネルの選択をランタイム中にリアルタイムで制御する、システム統合プロトコルおよびチャネルの自動管理のための、システムまたは装置の例である。リアルタイムとは、本開示のコンテキストでは、時間、日、週、または月で測定される時間期間とは対照的に、比較的短い時間期間の近似である。
【００３６】
統合制御システム３００は、アプリケーション（例えばアプリケーションＡ３０２またはアプリケーションＢ３０４）が処理する必要のある要求３０６について、サービスおよびサービス品質を定義し、通信プロトコルのセット３２０中の特定の通信プロトコルおよび統合チャネル（アプリケーションをデータ処理システムの他の部分と統合するのに使用される）に性能メトリック３１２をリンクする能力を提供する。特定の通信プロトコルおよび統合チャネルは、パスまたはルートと呼ばれることもある。アプリケーションは、この例では、会話型の交換の形の、要求３０６と応答３０８との対応を使用して相互に通信する。
【００３７】
この例におけるアプリケーションＡ３０２およびアプリケーションＢ３０４など、種々のアプリケーション（またはアプリケーションのコンポーネント）は、統合バス３１８を介して相互に接続する。統合バス３１８は、多様なアプリケーション（またはアプリケーションのコンポーネント）の間の通信を可能にする、通信ファブリックの一形式を提供する。個々の接続ごとに、通信プロトコルのセット３２０からの統合パスの事前定義済みのセットが、統合バス３１８内で定義される。各接続は、デフォルト統合パスを有する。統合コントローラ３１４が、事前定義済みの規則のセット３１６のうちの１つまたは複数を使用して、利用可能な所定の統合パスのうちのどれがとられるべきかを命令する。
【００３８】
規則は通常、満たされたときに特定のアクションをトリガする１つまたは複数の条件として定義される。例えば、１つまたは複数の条件と１つまたは複数のアクションとを含む規則が、「コンポーネントＡに対する要求の数が１０万個を超えた場合は、２時間にわたりコンポーネントＡとの通信に「バッチ送信」統合パスをとる」として定義される場合がある。指定された条件が発生したとき、指定された統合パスを統合バス３１８中でとるという対応するアクションがとられる。コンポーネントＡを同時要求で溢れさせるのではなく、通信プロトコルが特定の時間量にわたってバッチ・モードに選択されて、コンポーネントに対するストレスが緩和される。１つまたは複数の規則が組合せで実行されて特定の結果が達成される場合もある。
【００３９】
統合コントローラ３１４は、いくつかの機能を集約する能力を提供し、これらの機能は、性能メトリック指向型規則（例えば規則のセット３１６）のためのプラガブル（ｐｌｕｇｇａｂｌｅ）リポジトリ、統合パス選択のためのコントローラ、および、本開示の一実施形態の実装形態によれば元々追加設定なしではサポートされない性能メトリック３１２をモニタ３１０によって測定するための測定プラグインのためのプラガブル・リポジトリ、としての働きをすることを含む。
【００４０】
統合制御システム３００を利用して、ルーティングされているデータに関するいくつかの追加のプロパティに基づいて、異なる複数の統合パスを同時に使用することができる。例えば、電子商取引サイトが、時間の影響を非常に受ける商品と、時間の影響をあまり受けない商品との両方を販売し、所定の規則を使用してほとんどの要求を待機バッチ・キューにルーティングするが、また、関連データの時間感度をトリガ特性として使用して、いくつかの要求は通過させる。
【００４１】
図４を参照すると、本開示の一実施形態による、図３の統合制御システムを使用する一実施形態のブロック図が提示されている。統合制御システム４００は、図３の統合制御システム３００の異形であり、スイッチ４０４の単純化されたビューを使用して、統合コントローラ３１４および統合バス３１８の機能的な能力が表されている。
【００４２】
ソース４０２は、１つもしくは複数のアプリケーションのセット、または、アプリケーションの１つもしくは複数のコンポーネントのセットを表し、これらは、１つもしくは複数のアプリケーションの別のセット、または、アプリケーションの１つもしくは複数のコンポーネントの別のセットと通信する必要がある。場合によっては、１つもしくは複数のアプリケーションのセット、または、アプリケーションの１つもしくは複数のコンポーネントのセットは、１つもしくは複数のアプリケーションの同じセット、または、アプリケーションの１つもしくは複数のコンポーネントの同じセットと通信する必要があることもある。
【００４３】
統合制御システム４００（および統合制御システム３００）は、以前に試みられた解決法とは異なる。というのは、性能ベースのメトリックを使用して、リアルタイムの測定データおよび可用性パラメータに応じて種々の利用可能な通信フレームワーク（プロトコルおよびチャネル）間で選択されるからである。開示するサービス・タイプは、後で使用されるために性能メトリックのセット４２２として保存された性能メトリック４２０を使用して通信フレームワークおよび宛先（プロトコルおよびチャネル）を動的に選択する、という形のプログラム的な管理という理由で、特定のサービス・レベル合意によって支配されるサービスベースのモデル／クラウド・モデルに適合する。性能メトリックのセット４２２をキャッシュして、プロトコル選択アクティビティの間に、向上した性能を提供することができる。
【００４４】
動的選択はまた、性能メトリックのセット４２２の形の性能メトリック４２０に基づいて、通信プロトコルをスイッチ４０４によって実際に切り替えることも含意する。スイッチ４０４は、メッセージ／データ４０８、メッセージ／データ４１０、メッセージ／データ４１２、およびメッセージ／データ４１４のそれぞれを使用して、ソース４０２との通信、およびターゲット４０６とターゲット４１６のいずれかとの通信を行う。
【００４５】
図３の例を使用すると、電子商取引サイトが、時間の影響を非常に受ける商品と、時間の影響をあまり受けない商品との両方を販売する。特定の所定規則を使用して、スイッチ４０４は、ソース４０２からの要求のほとんどを、メッセージ／データ４１０のルートまたはパスを用いて待機バッチ・キューにルーティングする。待機バッチ・キューは、さらに他の処理のために、ある時間に到達するまで要求を取り込むためのバッファとして働く。同時に、スイッチ４０４はまた、関連データの時間感度をトリガ特性として使用して、要求のいくつかを、メッセージ／データ４１２のルートまたはパスを用いて通過させる。特定の所定規則を使用する別の変形では、スイッチ４０４はまた、ソース４０２からの要求の一部を、メッセージ／データ４１０のルートまたはパスを用いて待機バッチ・キューにルーティングする。しかしこの場合、スイッチ４０４は同時にまた、関連データの時間感度をトリガ特性として使用して、要求のいくつかを、メッセージ／データ４１８のルートまたはパスを用いてターゲット４１６の形の第２のターゲットに通過させる。
【００４６】
述べたばかりの例では、ターゲット４０６の過負荷および潜在的な障害を回避する能力が提供されるが、これは、ある事例では、ターゲット４０６が負荷を扱えるようになるまで要求を待機バッチ・キュー中に保持するキュー管理技法を使用して行われる。別の事例では、負荷の一部が、ターゲット４１６のように別のターゲットに移される。どのルートまたはパスを使用するかの選択は、スイッチ４０４によって、性能メトリックのセット４２２を使用して動的に管理される。
【００４７】
図５を参照すると、本開示の一実施形態による、図３の統合制御システムを使用する一実施形態のブロック図が提示されている。統合制御システム５００中には、統合バス５０８と統合コントローラ５１０とを含む相互作用が示されているが、この統合制御システム５００は、図３の統合制御システム３００の異形である。
【００４８】
アプリケーションＡ５０２、アプリケーションＢ５０４、およびアプリケーションＣ５０６として示されるアプリケーション（またはアプリケーションのコンポーネント）の各々は、統合バス５０８を使用して、相互に（および他のコンポーネントまたはアプリケーションと）通信する。通信パスは、メッセージ／データ５１２のラベルに関連付けられた実線として表されている。通信パスは同じ識別子でラベル付けされているが、パスは、必要に応じて、種々のメッセージ（コマンド、要求、応答）およびデータを、統合バス５０８とアプリケーション（またはアプリケーションのコンポーネント）の１つまたは複数との間で搬送することができる。メッセージ／データ５１２の通信パスによって表されるパスの各々は、統合バス５０８と、アプリケーションＡ５０２、アプリケーションＢ５０４、およびアプリケーションＣ５０６のそれぞれとの間の、１つまたは複数の可能なパスを表す。例えば、統合バス５０８とアプリケーションＡ５０２との間のメッセージ／データ５１２は、統合バス５０８内で定義され相応にサポートされるプロトコルのセットのうちの、統合バス５０８とアプリケーションＡ５０２との間をリンクするプロトコルによって定義される、単一のパスまたは複数のパスとすることができる。
【００４９】
統合コントローラ５１０はまた、アプリケーションＡ５０２、アプリケーションＢ５０４、およびアプリケーションＣ５０６の各々と通信して、統合コントローラ５１０の監視コンポーネントを介して性能メトリック５１４をリアルタイムで受け取る。統合コントローラ５１０は性能メトリック５１４を維持するが、維持することは、合体、集約、縮小、または性能メトリックをキャッシュして生データのままにすること、を含めた処理オプションを含む。
【００５０】
統合コントローラ５１０は、性能指向型規則のセット中の１つまたは複数の規則を使用して性能メトリック５１４の現在のセットをリアルタイムで処理した結果を統合バス５０８に知らせて、統合バス５０８に引き渡すアクションを得る。特定のアプリケーションに関連する性能メトリック５１４の現在のセットが、１つまたは複数の特定の性能メトリックについての所定の許容度内にないと決定されるのに応答して、統合バス５０８は、性能指向型規則のセット中の１つまたは複数の規則を使用する結果として、統合コントローラ５１０によって指定されるアクションを実施するように、特定のアプリケーションに知らせる。
【００５１】
性能メトリック５１４の現在のセットが、１つまたは複数の特定の性能メトリックについての所定の許容度内にあると判定された場合は、統合コントローラ５１０はどのようなアクションも指定しない。統合コントローラ５１０は、アプリケーションを監視して性能メトリック５１４をリアルタイムで収集することに戻る。
【００５２】
例証的な実際の例では、電子商取引ウェブ・サイトとバック・オフィス履行アプリケーションとを含む電子商取引システムが、ウェブ・サイトを介してサブミットされた注文を受け取り、これらの注文は履行アプリケーションに転送される。ウェブ・サイトは、花を含めた生鮮品を販売し、そのため注文は非常に迅速に履行されなければならず、したがって、ウェブ・サイトから履行アプリケーションへの転送はリアルタイムで実施される。
【００５３】
ウェブ・サイトにおける処理は通常はうまく機能するが、特定の祝日、例えばバレンタイン・デーの間は、履行アプリケーションが継続できないほどの非常に多くの注文が受け取られる。バック・エンド・マシン上のプロセッサ利用は１００％に達し、メモリ消費もまたピークに達し、すぐに履行アプリケーションはクラッシュする。ウェブ・サイトは動作していても、ウェブ・サイトは、注文を履行アプリケーションに転送することができず、したがって機能することができず、よってウェブ・サイトもまた障害を起こす。結果として、企業は潜在的な収入を失う。
【００５４】
次の特定の祝日について、本開示の一実施形態が実施される。本開示の一実施形態を使用して、ウェブ・サイトと履行アプリケーションは、統合バス５０８を介して相互に通信する。図３の規則のセット３１６など、統合コントローラ５１０によって維持される性能指向型規則のセット中の、特定の規則を使用して、履行アプリケーション・マシン上のプロセッサ利用が７０％を超えるときは注文が統合バス５０８においてキューに入れられ、プロセッサ利用が７０％未満に下がったときにのみキューからの注文が処理され始める。
【００５５】
この例のこの異形では、前年の祝日よりもさらに多い注文が受け取られるが、履行アプリケーション・マシンの負荷は今や統合バス５０８を使用して制御されるので、履行アプリケーション・マシンは障害を起こさない。結果として、システム全体は、予期されるように動作し続ける。至急の注文を履行するのは遅延される（キューにおける遅延のせいで）が、システム全体の機能は維持される。
【００５６】
次の年についてのこの例の別の異形では、ウェブ・サイトは、いくつかの商品を、例えば４時間以内の配達を必要とする超特急として提供するように、強化される。新しい超特急注文を管理するために、対応する規則が策定されるが、この規則は、前と同様、履行アプリケーション・マシン上のプロセッサ利用が７０％を超えるとき、統合バス５０８に、要求をキューにルーティングさせる。しかし、超特急商品に対する注文は、この規則から除外され、依然として履行アプリケーションに直行する。新たに定義された規則と共に本開示の一実施形態を使用することで、超特急注文を失うことまたは不必要に遅延させることなく、履行アプリケーションに対する負荷を低減する能力がもたらされる。
【００５７】
図６を参照すると、本開示の一実施形態による、図３の統合制御システムを使用するプロセスのフローチャートが提示されている。プロセス６００は、図３の統合制御システムを使用するプロセスの高レベルの例である。
【００５８】
プロセス６００は、開始し（ステップ６０２）、アプリケーション（またはアプリケーションのコンポーネント）のセットを通信ファブリックに接続して接続のセットを形成する。接続は、種々のアプリケーション、および種々のアプリケーションのコンポーネントの間の通信を可能にする。図３の統合制御システム３００のように、通信ファブリックは、統合バス３１８の形の制御メカニズムをさらに備え、統合バス３１８は通信プロトコルのセット３２０をさらに備える。
【００５９】
プロセス６００は、アプリケーション（またはアプリケーションのコンポーネント）のセットに関連する性能メトリックと、規則のセット中の１つまたは複数の性能指向型規則とを使用して、接続のセットを監視する（ステップ６０６）。アプリケーション（またはアプリケーションのコンポーネント）のセットに関連する性能メトリックは、アプリケーション（またはアプリケーションのコンポーネント）のセットに関連する処理アクティビティに関する利用情報を含む。例えば、性能メトリックは、アプリケーション（またはアプリケーションのコンポーネント）のセットのうちの１つまたは複数をホストするサーバなどのリソースについてのプロセッサ利用およびメモリ利用に関して、収集され処理されてよい。別の例では、性能メトリックは、統合バスとアプリケーションとの間の特定の通信パスについての通信パス利用に関して、収集され処理されてよい。
【００６０】
モニタは、本開示の一実施形態では、統合コントローラのコンポーネントとして機能する。統合コントローラは、性能メトリック６１０を使用する性能指向型である規則６０８のセットから、１つまたは複数の性能指向型規則を識別する。性能メトリック６１０は、アプリケーション（またはアプリケーションのコンポーネント）のセットの各々に関連する監視アクティビティの間に、統合コントローラの監視コンポーネントによって得られる。
【００６１】
プロセス６００は、所定の性能メトリックが、特定のアプリケーション、アプリケーションのコンポーネント、またはパスについての、所定の許容度内にあるかどうか判定する（ステップ６１２）。所定の性能メトリックが、特定のアプリケーション、アプリケーションのコンポーネント、またはパスについての、所定の許容度内にあると判定されるのに応答して、プロセス６００は、ループバックしてステップ６０６を前と同様に実施する。この場合、統合コントローラは、特定のアプリケーション、アプリケーションのコンポーネント、またはパスについて得られたそれぞれの性能メトリックとの組合せで、性能指向型規則のセットのうちの１つまたは複数を使用して、これ以上のアクションは必要とされないと決定していた。これ以上のアクションが必要とされないことの指示が、統合バスに渡される。
【００６２】
所定の性能メトリックが、特定のアプリケーション、アプリケーションのコンポーネント、またはパスについての、所定の許容度内にないと判定されるのに応答して、プロセス６００は、特定のアプリケーション、アプリケーションのコンポーネント、またはパスについて得られたそれぞれの性能メトリックとの組合せで、性能指向型規則のセットのうちの１つまたは複数を使用して、アプリケーションのセット中の特定のアプリケーションについての、接続のセット中の統合パスを調整する（ステップ６１４）。その後、プロセス６００は終了する（ステップ６１６）。
【００６３】
したがって、図３の統合制御システム３００と同様に、プロセス６００の一実施形態を使用することにより、性能トリガが、統合をあるルートから別のルートに動的に方向転換させることができ、これは、アプリケーションおよびアプリケーションのコンポーネントが会話する際に経由する通信ファブリックを提供する統合バスに関連して、統合コントローラによって収集された（規則のセットで処理された）情報（性能メトリック）を使用して、行うことができる。
【００６４】
図７を参照すると、本開示の一実施形態による、図３の統合制御システムを使用するプロセス内の調整サブプロセスのフローチャートが提示されている。プロセス７００は、図３の統合制御システム３００を使用する図６のプロセス６００の調整部分（ステップ６１４）内の調整サブプロセスの一例である。
【００６５】
プロセス７００は開始し（ステップ７０２）、１つまたは複数のパスの選択を改変することを調整アクションが含むかどうか判定する（ステップ７０４）。調整アクションは、規則のセット中の１つまたは複数の性能指向型規則を使用して、特定のアプリケーション、アプリケーションのコンポーネント、またはパスに関連する性能メトリックを、統合コントローラによって処理した結果である。１つまたは複数のパスの選択を改変することを調整アクションが含まないと判定されるのに応答して、プロセス７００は、前にスキップしてステップ７１０を実施する。１つまたは複数のパスの選択を改変することを調整アクションが含むと判定されるのに応答して、プロセス７００は、１つまたは複数のパスをアクティブ化することを改変アクションが含むかどうか判定する（ステップ７０６）。
【００６６】
１つまたは複数のパスをアクティブ化することを改変アクションが含むと判定されるのに応答して、プロセス７００は、１つまたは複数のパスをアクティブ化し（ステップ７０８）、その後終了する（ステップ７１４）。１つまたは複数のパスをアクティブ化することを改変アクションが含まないと判定されるのに応答して、プロセス７００は、１つまたは複数のパス上のトラフィック・ミックスを調整することを改変アクションが含むかどうか判定する（ステップ７１０）。
【００６７】
１つまたは複数のパス上のトラフィック・ミックスを調整することを改変アクションが含むと判定されるのに応答して、プロセス７００は、１つまたは複数のパス上のトラフィック・ミックスを調整し（ステップ７１２）、その後終了する（ステップ７１４）。１つまたは複数のパス上のトラフィック・ミックスを調整することを改変アクションが含まないと判定されるのに応答して、プロセス７００は、その後終了する（ステップ７１４）。
【００６８】
したがって、全体として見たとき、図６のプロセス６００、およびプロセス７００は、統合プロトコルの動的管理のためのプロセスを定義する。したがって、結合されたプロセスは、データ処理システムの１つまたは複数のプロセッサによって実行されたとき、性能メトリック（アプリケーションが処理する必要のある要求についてのサービス定義およびサービス品質を含む）を、アプリケーションをシステムの他のコンポーネントと統合するのに使用される特定のプロトコルおよび統合チャネルにリンクすることを含むプロセスの一実施形態を定義する。プロセスはさらに、１つまたは複数のプロセッサによって実行されたとき、アプリケーションおよびアプリケーション・コンポーネントを通信相互接続ファブリックに接続して接続のセットを形成し、この場合、アプリケーションおよびアプリケーション・コンポーネントの各々は相互接続され、個々の接続は、デフォルト・パスを含むように定義された統合パスのセットを有する。
【００６９】
プロセスは、１つまたは複数のプロセッサによってさらに実行されたとき、統合コントローラを使用して接続のセットを監視し、この場合、統合コントローラは規則のセットを使用し、これらの規則は、選択可能であり、統合コントローラに関連する性能メトリック指向型規則および測定プラグインのリポジトリ中で維持される。プロセスはさらに、特定のアプリケーションについての性能メトリックが所定の許容度内にあるかどうか判定し、特定のアプリケーションについての性能メトリックが所定の許容度内にないと判定されるのに応答して、統合コントローラは、統合パスの変更を命令し、この場合、変更は、１つまたは複数のパスの選択を改変することを含み、この改変は、特定のアプリケーションについての１つまたは複数のパスをアクティブ化すること、および選択されたパス上のトラフィック・ミックスを調整することを含む。
【００７０】
よって、例証的な一実施形態で、統合プロトコルの動的管理のためのコンピュータ実装プロセスが提示され、このコンピュータ実装プロセスは、１つまたは複数のプロセッサに接続されたメモリ内に記憶されたコンピュータ実行可能プログラム・コードを実行する１つまたは複数のプロセッサによって、アプリケーションのセットを通信ファブリックに接続して接続のセットを形成すること、および、１つまたは複数のプロセッサによって接続のセットを監視して、接続のセットに関連する性能メトリックのセットを収集することを含む。コンピュータ実装プロセスはさらに、１つまたは複数のプロセッサによって、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にあるかどうか判定し、所定の性能メトリックが、アプリケーションのセット中の特定のアプリケーションに関連する所定の許容度内にないと判定されるのに応答して、１つまたは複数のプロセッサによって、各規則が性能指向型規則である規則のセットをプログラム的に使用して、アプリケーションのセット中の特定のアプリケーションについての、接続のセット中の統合パスを調整することを含む。
【００７１】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、これは、指定される論理機能を実現するための１つまたは複数の実行可能命令を含む。また、いくつかの代替実装形態では、ブロック中で示される機能は、図中で示される順序とは異なる順序で生じる場合があることにも留意されたい。例えば、関連する機能に応じて、連続して示される２つのブロックが実際にはほぼ同時に実行される場合もあり、またはこれらのブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明あるいはその両方の各ブロック、および、ブロック図またはフローチャート説明あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を実施する専用ハードウェアベースのシステムによって、または、専用ハードウェアとコンピュータ命令との組合せによって、実現できることにも気付くであろう。
【００７２】
添付の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の、対応する構造、材料、行為、および均等物は、具体的に請求される他の特許請求要素との組合せで機能を実施するための任意の構造、材料、または行為を含むものとする。本発明の記述は、例証および説明の目的で提示したものであり、網羅的なもの、または開示した形の発明に限定するものとはしない。本発明の範囲および主旨を逸脱することなく、多くの変更および変形が当業者には明らかとなるであろう。実施形態は、本発明の原理および実際の適用例を最もうまく説明するために、かつ、企図される特定の用途に合わせた様々な変更を伴う様々な実施形態について他の当業者が本発明を理解できるようにするために、選択し記述したものである。
【００７３】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、または、ハードウェアとソフトウェアの両方の要素を含む実施形態の形をとることができる。好ましい一実施形態では、本発明はソフトウェアにおいて実現され、ソフトウェアは、以下のものに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコード、および、当業者によって認識され得る他のソフトウェア媒体を含む。
【００７４】
本発明を、完全に機能するデータ処理システムのコンテキストで述べたが、本発明のプロセスは、コンピュータ実行可能プログラム・コードを構成するコンピュータ実行可能命令が様々な形で記憶された、コンピュータ記録可能データ・ストレージ・デバイスの形で配布できることを、当業者なら理解するであろうことに留意するのは重要である。コンピュータ記録可能データ・ストレージ・デバイスの例としては、フロッピー（Ｒ）・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなど、記録可能タイプの媒体が挙げられる。コンピュータ実行可能命令は、特定のデータ処理システム中で実際に使用されるために復号される、符号化済みフォーマットの形をとることができる。
【００７５】
プログラム・コードを構成するコンピュータ実行可能命令を記憶するかまたは実行するかあるいはその両方を行うのに適したデータ処理システムは、システム・バスを介してメモリ素子に直接的または間接的に結合された、１つまたは複数のプロセッサを備えることになる。メモリ素子は、プログラム・コードの実際の実行中に利用されるローカル・メモリと、バルク・ストレージと、キャッシュ・メモリとを含んでよく、キャッシュ・メモリは、実行中にコードがバルク・ストレージから取り出されなければならない回数を削減するために、少なくともいくらかのプログラム・コードの一時記憶域を提供する。
【００７６】
入出力デバイスまたはＩ／Ｏデバイス（以下のものに限定されないが、キーボード、表示装置、ポインティング・デバイスなどを含む）が、直接に、または介在するＩ／Ｏコントローラを介して、システムに結合されてよい。
【００７７】
ネットワーク・アダプタをシステムに結合して、介在する私設ネットワークまたは公衆ネットワークを介してデータ処理システムが他のデータ処理システムまたはリモート・プリンタもしくはストレージ・デバイスに結合されるのを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット（Ｒ）・カードは、現在利用可能なタイプのネットワーク・アダプタのうちのほんの少数である。
【図１】
0006529488.tif 000002
【図２】
0006529488.tif 000003
【図３】
0006529488.tif 000004
【図４】
0006529488.tif 000005
【図５】
0006529488.tif 000006
【図６】
0006529488.tif 000007
【図７】
0006529488.tif 000008