(57)【要約】【課題】リソースプロビジョニングを推定するための方法およびシステムを提供すること。【解決手段】例示的な方法は、外部呼び出しノード、ならびにサービスノード、ノードコネクタ、およびハードウェアノードのそれぞれのグループを含み、外部呼び出しノードからハードウェアノードに至る、サービスノードに関連するサービス実行フローの順序付けを示す有向順序付きパスを含むワークフローパスを獲得すること、サービスノード作業負荷の指標を、サービスノードに関連する属性値に基づいて算出し、伝播作業負荷の指標を、外部呼び出しノードに関連する属性値と、順序付けに基づいてワークフローパスにおいてサービスノードに先行する他のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出すること、およびサービスノード作業負荷の指標と、ハードウェアノードに関連する現在のリソース需要の指標とを組み合わせることに基づき、サービスノードをハードウェアノード上に提供することを含むことが可能である。【選択図】図1
2008257694.tif 000002
【特許請求の範囲】
【請求項１】
第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得するように構成され、前記第1のワークフローパスは、前記第1の外部呼び出しノードから、前記第1のハードウェアノードグループに含まれる前記ハードウェアノードの1つまたは複数に至る、前記第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含むワークフローマネージャと、
前記第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、前記第1のサービスノードに関連する属性値に基づいて算出し、第1の伝播作業負荷の指標を、前記第1の外部呼び出しノードに関連する属性値と、前記順序付けに基づいて前記第1のワークフローパスにおいて前記第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出するように構成された伝播作業負荷エンジンと、
前記第1のサービスノードを、前記第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供することを、前記第1のサービスノードに関連する前記第1のサービスノード作業負荷の前記指標と、前記第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づいて行うように構成されたプロビジョニングエンジンをとを含むリソースプロビジョニングエスティメータを含むシステム。
【請求項２】
前記リソースプロビジョニングエスティメータは、前記第1の現在のリソース需要の前記指標、および前記第1のハードウェアノードに関連する第1の合計リソース指標に基づき、前記第1のハードウェアノードに関連する利用率指標を算出するように構成された利用率指示ジェネレータをさらに含む請求項1に記載のシステム。
【請求項３】
前記リソースプロビジョニングエスティメータは、呼び出し値の所定の変動に基づいて、前記第1のハードウェアノードに関連する前記利用率指標の表現の表示をユーザに生成するように構成されたユーザインターフェースをさらに含む請求項2に記載のシステム。
【請求項４】
前記リソースプロビジョニングエスティメータは、前記第1の外部呼び出しノードから前記第1のハードウェアノードまで前記第1のワークフローパスをたどるように構成されたワークフロートラバーサルエンジンをさらに含み、前記プロビジョニングエンジンは、前記第1の外部呼び出しノードから前記第1のハードウェアノードまで前記第1のワークフローパスを前記ワークフロートラバーサルエンジンがたどることに基づいて、前記第1のサービスノードを前記第1のハードウェアノード上に提供するように構成される請求項1に記載のシステム。
【請求項５】
前記ワークフローマネージャは、第2の外部呼び出しノードと、第2のサービスノードグループと、第2のノードコネクタグループと、第2のハードウェアノードグループとを含む第2のワークフローパスを獲得するように構成され、前記第2のワークフローパスは、前記第2の外部呼び出しノードから、前記第2のハードウェアノードグループに含まれる前記ハードウェアノードの1つまたは複数に至る、前記第2のサービスノードグループに関連するサービス実行フローの第2の順序付けを示す第2の有向順序付きパスを含み、
前記伝播作業負荷エンジンは、前記第2のワークフローパスに含まれる第2のサービスノードに関連する第2のサービスノード作業負荷の指標を、前記第2のサービスノードに関連する属性値に基づいて算出し、第2の伝播作業負荷の指標を、前記第2の外部呼び出しノードに関連する属性値と、前記順序付けに基づいて前記第2のワークフローパスにおいて前記第2のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出するように構成され、
前記プロビジョニングエンジンは、前記第2のサービスノードを、前記第2のハードウェアノードグループに含まれる第2のハードウェアノード上に提供することを、前記第2のサービスノードに関連する前記第2のサービスノード作業負荷の前記指標と、前記第2のハードウェアノードに関連する第2の現在のリソース需要の指標とを組み合わせることに基づいて行うように構成される請求項1に記載のシステム。
【請求項６】
前記リソースプロビジョニングエスティメータは、1つまたは複数の呼び出しノード、ならびに複数のサービスノード、ノードコネクタ、およびハードウェアノードの配置を表すモデルを獲得するように構成されるモデルマネージャをさらに含み、前記モデルは、前記第1のワークフローパスを含む請求項1に記載のシステム。
【請求項７】
前記プロビジョニングエンジンは、各ハードウェアノードを含む前記モデルに含まれるすべてのワークフローパスをたどることに基づき、前記モデルに含まれる各ハードウェアノードに関連するサービスおよびリソースのプロビジョニングを決定するように構成される請求項6に記載のシステム。
【請求項８】
ワークフローに関連する情報、および前記ワークフローに基づくモデルを格納するように構成されたモデルリポジトリをさらに含む請求項1に記載のシステム。
【請求項９】
前記モデルリポジトリは、
モデル構造情報を格納するように構成されたモデル構造ストレージ領域と、
前記モデル構造情報に関連する1つまたは複数のモデル構造に含まれる1つまたは複数のノードに関連するノード情報を格納するように構成されたノードリポジトリと、
前記モデル構造情報に関連する1つまたは複数のモデル構造に含まれる1つまたは複数のエッジに関連するエッジ情報を格納するように構成されたエッジリポジトリとを含む請求項8に記載のシステム。
【請求項１０】
前記モデル構造情報は、1つまたは複数のサービスノード、外部呼び出しノード、またはハードウェアノードを含む複数のノード、ならびに1つまたは複数のインターフェースコネクタ、プロビジョナ、または作業負荷プロパゲータを含む、前記ノードコネクタを含む1つまたは複数のエッジの配置を表す少なくとも1つのモデルに関連し、
前記ノードリポジトリは、
サービスノードに関連する情報を格納するように構成されたサービスストレージ領域と、
外部呼び出しノードを含む呼び出しノードに関連する情報を格納するように構成された呼び出しストレージ領域と、
ハードウェアノードに関連する情報を格納するように構成されたハードウェアストレージ領域とを含み、
前記エッジリポジトリは、
インターフェースコネクタエッジに関連する情報を格納するように構成されたインターフェースコネクタストレージ領域と、
プロビジョナエッジに関連する情報を格納するように構成されたプロビジョナストレージ領域と、
呼び出しエッジに関連する情報を格納するように構成された作業負荷プロパゲータストレージ領域とを含む請求項8に記載のシステム。
【請求項１１】
第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得し、前記第1のワークフローパスは、前記第1の外部呼び出しノードから、前記第1のハードウェアノードグループに含まれる前記ハードウェアノードの1つまたは複数に至る、前記第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含むステップと、
前記第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、前記第1のサービスノードに関連する属性値に基づいて算出し、第1の伝播作業負荷の指標を、前記第1の外部呼び出しノードに関連する属性値と、前記順序付けに基づいて前記第1のワークフローパスにおいて前記第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出するステップと、
前記第1のサービスノードを、前記第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供することを、前記第1のサービスノードに関連する前記第1のサービスノード作業負荷の前記指標と、前記第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づいて行うステップとを含む方法。
【請求項１２】
1つまたは複数の呼び出しノード、ならびに複数のサービスノード、ノードコネクタ、およびハードウェアノードの配置を表すモデルを獲得するステップをさらに含み、前記モデルは、前記第1のワークフローパスを含む請求項11に記載の方法。
【請求項１３】
前記モデルは、1つまたは複数のサービスノード、外部呼び出しノード、またはハードウェアノードを含む複数のノード、ならびに1つまたは複数のインターフェースコネクタ、プロビジョナ、または作業負荷プロパゲータを含む、前記ノードコネクタを含む1つまたは複数のエッジの配置を表す請求項12に記載の方法。
【請求項１４】
前記モデルを獲得するステップは、前記第1の外部呼び出しノード、前記第1のサービスノードグループ、前記第1のノードコネクタグループ、および前記第1のハードウェアノードグループを含む有向非巡回グラフを含む前記モデルを獲得するステップを含む請求項12に記載の方法。
【請求項１５】
前記モデルに含まれる前記ハードウェアノードの各ノードに関して、前記各ハードウェアノードを含む前記モデルに含まれるすべてのワークフローパスをたどることに基づき、前記各ハードウェアノードに関連する利用率指標を算出するステップをさらに含む請求項14に記載の方法。
【請求項１６】
前記モデルに含まれる前記ハードウェアノードの各ノードに関して、前記各ハードウェアノードを含む前記モデルに含まれるすべてのワークフローパスをたどることに基づき、前記各ハードウェアノードに関連するサービスおよびリソースのプロビジョニングを決定するステップをさらに含む請求項14に記載の方法。
【請求項１７】
前記第1の現在のリソース需要の前記指標、および前記第1のハードウェアノードに関連する第1の合計リソース指標に基づき、前記第1のハードウェアノードに関連する利用率指標を算出するステップをさらに含む請求項11に記載の方法。
【請求項１８】
前記第1のハードウェアノードに関連する前記利用率指標の表現の表示を生成するステップをさらに含む請求項17に記載の方法。
【請求項１９】
呼び出し値の所定の変動に基づいて、前記第1のハードウェアノードに関連する前記利用率指標の表現の表示を生成するステップをさらに含む請求項17に記載の方法。
【請求項２０】
前記第1のサービスノードを前記第1のハードウェアノード上に提供するステップは、前記第1の外部呼び出しノードから前記第1のハードウェアノードまで前記第1のワークフローパスをたどることに基づいて、前記第1のサービスノードを前記第1のハードウェアノード上に提供するステップを含む請求項11に記載の方法。
【請求項２１】
第2の外部呼び出しノードと、第2のサービスノードグループと、第2のノードコネクタグループと、第2のハードウェアノードグループとを含む第2のワークフローパスを獲得し、前記第2のワークフローパスは、前記第2の外部呼び出しノードから、前記第2のハードウェアノードグループに含まれる前記ハードウェアノードの1つまたは複数に至る、前記第2のサービスノードグループに関連するサービス実行フローの第2の順序付けを示す第2の有向順序付きパスを含むステップと、
前記第2のワークフローパスに含まれる第2のサービスノードに関連する第2のサービスノード作業負荷の指標を、前記第2のサービスノードに関連する属性値に基づいて算出し、第2の伝播作業負荷の指標を、前記第2の外部呼び出しノードに関連する属性値と、前記順序付けに基づいて前記第2のワークフローパスにおいて前記第2のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出するステップと、
前記第2のサービスノードを、前記第2のハードウェアノードグループに含まれる第2のハードウェアノード上に提供することを、前記第2のサービスノードに関連する前記第2のサービスノード作業負荷の前記指標と、前記第2のハードウェアノードに関連する第2の現在のリソース需要の指標とを組み合わせることに基づいて行うステップとを含む請求項11に記載の方法。
【請求項２２】
コンピュータ可読媒体上に実体化され、データ処理装置に、
第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得させ、前記第1のワークフローパスは、前記第1の外部呼び出しノードから、前記第1のハードウェアノードグループに含まれる前記ハードウェアノードの1つまたは複数に至る、前記第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含み、
前記第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、前記第1のサービスノードに関連する属性値に基づいて算出させ、第1の伝播作業負荷の指標を、前記第1の外部呼び出しノードに関連する属性値と、前記順序付けに基づいて前記第1のワークフローパスにおいて前記第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出させ、
前記第1のサービスノードを、前記第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供することを、前記第1のサービスノードに関連する前記第1のサービスノード作業負荷の前記指標と、前記第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づいて行わせるように構成されたコンピュータプログラム製品。
【請求項２３】
前記データ処理装置に、1つまたは複数の呼び出しノード、ならびに複数のサービスノード、ノードコネクタ、およびハードウェアノードの配置を表すモデルを獲得させるようにさらに構成され、前記モデルは、前記第1のワークフローパスを含む請求項22に記載のコンピュータプログラム製品。
【請求項２４】
前記データ処理装置に、前記モデルに含まれる前記ハードウェアノードの各ノードに関して、前記各ハードウェアノードを含む前記モデルに含まれるすべてのワークフローパスをたどることに基づき、前記各ハードウェアノードに関連する利用率指標を算出させるようにさらに構成される請求項23に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
この説明は、リソースプロビジョニングを推定するための技術に関する。
【背景技術】
【０００２】
企業ビジネスソフトウェア会社は、企業、またはソフトウェア会社のシステムの他のユーザにより大きな柔軟性を提供するために、ソフトウェア製品のアーキテクチャをますます変更している。従来のビジネスソフトウェアは、階層型アーキテクチャ設計、例えば、データベース層、アプリケーションサーバ層、およびユーザインターフェース層を含むことが可能な3層アーキテクチャを含むことが可能である。しかし、より新しいビジネスソフトウェアは、SOA(サービス指向アーキテクチャ)に基づいて設計されることが可能である。
【０００３】
階層型アーキテクチャとSOAの間には、いくつかの違いが存在する。例えば、階層型アーキテクチャは、データベースなどの単一のソフトウェア層が、単一のハードウェアリソース上に、またはリソースのクラスタ上に保持されることが可能なサーバサイロを使用して、構築されることが可能である。このため、ハードウェアリソースにソフトウェア層全体を緊密に結合することが、例示的な階層型アーキテクチャの特徴であることが可能である。
【０００４】
これに対して、SOAは、他のサービスとの相互通信のために独自のプログラミングインターフェースをそれぞれが提供する多くのソフトウェアサービスにわたって分散されたシステム機能を提供することが可能である。ソフトウェアサービスは、はるかに高い細分性レベルで機能をカプセル化するので、階層型アーキテクチャと比べて、より緩い結合、およびより大きい柔軟性を提供することができる。そのようなシステムは、組み合わせられてワークフローにされるすべてのサービスの調整に基づいて生成されることが可能である。サービス自体は、階層化される可能性があるが、このことは、サービスインターフェースだけがシステムに開示されることが可能であるため、全体的なシステムには重要でないと考えることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
SOAに基づくシステム上のハードウェアリソースプロビジョニングを規定することが可能な特徴は、SOAアプローチにおける、より多くの、より細分性が高いサービスのため、通常の階層型アーキテクチャのものよりはるかに複雑な場合がある。しかし、SOAに関するリソースプロビジョニングは、階層型アーキテクチャに関するリソースプロビジョニングと同等に重要である。このため、サービス指向アーキテクチャなどのアーキテクチャのリソースプロビジョニングに関する推定を向上させることができる技術を提供することが、望ましい。
【課題を解決するための手段】
【０００６】
1つの一般的な態様によれば、システムは、第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得するように構成されたワークフローマネージャを含むリソースプロビジョニングエスティメータを含み、第1のワークフローパスは、第1の外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含む。リソースプロビジョニングエスティメータは、第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、第1のサービスノードに関連する属性値に基づいて算出し、第1の伝播作業負荷の指標を、第1の外部呼び出しノードに関連する属性値と、順序付けに基づいて第1のワークフローパスにおいて第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出するように構成された伝播作業負荷エンジンを含むことが可能である。リソースプロビジョニングエスティメータは、第1のサービスノードを、第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供することを、第1のサービスノードに関連する第1のサービスノード作業負荷の指標と、第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づいて行うように構成されたプロビジョニングエンジンをさらに含むことが可能である。
【０００７】
別の態様によれば、方法は、第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得することを含み、第1のワークフローパスは、第1の外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含む。第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標が、第1のサービスノードに関連する属性値に基づいて算出されることが可能であり、第1の伝播作業負荷の指標が、第1の外部呼び出しノードに関連する属性値と、順序付けに基づいて第1のワークフローパスにおいて第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出されることが可能である。第1のサービスノードは、第1のサービスノードに関連する第1のサービスノード作業負荷の指標と、第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づき、第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供されることが可能である。
【０００８】
さらに別の態様によれば、コンピュータプログラム製品が、コンピュータ可読媒体上で実体化されて、データ処理装置に、第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得させるように構成され、第1のワークフローパスは、第1の外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含む。コンピュータプログラム製品は、データ処理装置に、第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、第1のサービスノードに関連する属性値に基づいて算出させ、第1の伝播作業負荷の指標を、第1の外部呼び出しノードに関連する属性値と、順序付けに基づいて第1のワークフローパスにおいて第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出させ、さらに、第1のサービスノードを、第1のハードウェアノードグループに含まれる第1のハードウェアノード上に、第1のサービスノードに関連する第1のサービスノード作業負荷の指標と、第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づいて提供させるように、さらに構成される。
【０００９】
1つまたは複数の実施形態の詳細を、添付の図面、および後段の説明において示す。他の特徴は、説明および図面、ならびに特許請求の範囲から明白となろう。
【発明を実施するための最良の形態】
【００１０】
図1は、例示的な実施形態によるリソースプロビジョニングを推定するためのシステム100のブロック図である。図1の実施例では、リソースプロビジョニングエスティメータ102が、例えば、ユーザ104のために表示されることが可能なモデルまたは設計の処理を提供し、実行する様々な処理エンジンを含むことが可能である。リソースプロビジョニングエスティメータ102は、第1の外部呼び出しノードと、第1のサービスノードグループと、第1のノードコネクタグループと、第1のハードウェアノードグループとを含む第1のワークフローパスを獲得するように構成されたワークフローマネージャ106を含むことが可能であり、第1のワークフローパスは、第1の外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含む。
【００１１】
例えば、ワークフローは、ユーザが、サービス、「create purchase order」を呼び出すことなどの、外部呼び出しを介する、「create purchase order」などのサービスの呼び出しからもたらされることが可能なサービス実行フローを示すことが可能である。例えば、ワークフローパスは、呼び出しから終端ハードウェアノードまで延びることが可能であり、終端ハードウェアノード上で、サービスが、提供される、または実行のために展開されることが可能であり、例えば、作業負荷パスにおけるすべてのサービスが提供された後、分析が、実行されることが可能である。
【００１２】
例示的な実施形態によれば、伝播作業負荷エンジン108が、第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、第1のサービスノードに関連する属性値に基づいて算出し、第1の伝播作業負荷の指標を、第1の外部呼び出しノードに関連する属性値と、順序付けに基づいて第1のワークフローパスにおいて第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出するように構成されることが可能である。
【００１３】
例示的なプロビジョニングエンジン110は、第1のサービスノードに関連する第1のサービスノード作業負荷の指標と、第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づき、第1のサービスノードを、第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供するように構成されることが可能である。例示的な実施形態によれば、プロビジョニングエンジンは、各ハードウェアノードを含むモデルに含まれるすべてのワークフローパスをたどることに基づき、モデルに含まれる各ハードウェアノードに関連するサービスおよびリソースのプロビジョニングを決定するように構成されることが可能である。
【００１４】
例示的な実施形態によれば、利用率指示ジェネレータ112が、第1の現在のリソース需要の指標、および第1のハードウェアノードに関連する第1の合計リソース指標に基づき、第1のハードウェアノードに関連する利用率指標を算出するように構成されることが可能である。
【００１５】
例示的な実施形態によれば、ワークフロートラバーサルエンジン114が、第1の外部呼び出しノードから第1のハードウェアノードまで第1のワークフローパスをたどるように構成されることが可能である。
【００１６】
例示的な実施形態によれば、ユーザインターフェース114が、ユーザ104と、システム100に関連する他のエンジンまたはストレージ領域との間でインターフェースを提供するように構成されることが可能である。ユーザインターフェース114は、例えば、GUI(グラフィカルユーザインターフェース)マネージャ118を介して、ユーザ104から情報を受け取ること、およびユーザ104に情報を提供することがさらにできる。例えば、ユーザ104は、SOAシステムのモデルまたは設計を、GUIマネージャ118およびユーザインターフェース114を介して生成することができる。例えば、ユーザインターフェース114は、モデルまたは設計に含まれることが可能なエンティティに関連する構造上の設計制約を実施するように構成されることが可能である。例えば、「外部呼び出し」ノードが、「インターフェースコネクタ」エッジを介して「サービス」ノードに接続されることだけしか可能でない場合、ユーザインターフェース114は、ユーザ104が、「インターフェースコネクタ」エッジタイプ以外のタイプを有するエッジを介して、「外部呼び出し」ノードを「サービス」ノードに誤って接続しないことを確実にするように構成されることが可能である。GUIマネージャ118は、例えば、1つまたは複数のワークフローを含むシステムの設計の表示を生成するように構成されることが可能である。GUIマネージャ118は、例えば、1つまたは複数のワークフローを含むシステムの設計のシミュレーションの結果の表示を生成するように構成されることが可能である。
【００１７】
例示的な実施形態によれば、例示的なモデルマネージャ120は、1つまたは複数の呼び出しノード、ならびに複数のサービスノード、ノードコネクタ、およびハードウェアノードの配置を表すモデルを獲得するように構成されることが可能であり、モデルは、第1のワークフローパスを含む。例えば、モデルマネージャ120は、GUIマネージャ118およびユーザインターフェース116を介して、ユーザ104からモデルを獲得するように構成されることが可能である。
【００１８】
例示的な実施形態によれば、モデルリポジトリ122が、ワークフローに関連する情報、およびそれらのワークフローに基づくモデルを格納するように構成されることが可能である。例えば、ワークフローモデルの構造に関する情報が、モデルリポジトリ122の中に格納されることが可能である。例示的な実施形態によれば、モデルリポジトリ122は、モデル構造情報を格納するように構成されることが可能なモデル構造ストレージ領域124を含むことが可能である。例えば、モデル構造ストレージ領域124は、SOAシステムなどのモデル化されたシステムのグラフィック表現に関連する構造に対応する有向非巡回グラフなどの、モデル構造情報を格納するように構成されることが可能である。
【００１９】
例示的な実施形態によれば、モデルリポジトリ122は、モデル構造情報に関連する1つまたは複数のモデル構造に含まれる1つまたは複数のノードに関連するノード情報を格納するように構成されることが可能なノードリポジトリ126と、モデル構造情報に関連する1つまたは複数のモデル構造に含まれる1つまたは複数のエッジに関連するエッジ情報を格納するように構成されることが可能なエッジリポジトリ128とを含むことが可能である。
【００２０】
例示的な実施形態によれば、モデル構造情報は、1つまたは複数のサービスノード、外部呼び出しノード、またはハードウェアノードを含む複数のノード、ならびに1つまたは複数のインターフェースコネクタ、プロビジョナ、または作業負荷プロパゲータを含む、ノードコネクタを含む1つまたは複数のエッジの配置を表す少なくとも1つのモデルに関連することが可能である。
【００２１】
例示的な実施形態によれば、ノードリポジトリ126は、サービスノードに関連する情報を格納するように構成されることが可能なサービスストレージ領域130と、外部呼び出しノードを含む呼び出しノードに関連する情報を格納するように構成されることが可能な呼び出しストレージ領域132と、ハードウェアノードに関連する情報を格納するように構成されることが可能なハードウェアストレージ領域134とを含むことが可能である。例えば、サービスノードは、「create purchase order」サービスなどのサービスを表すことが可能である。例えば、外部呼び出しノードは、サービスを呼び出すことが可能なユーザを表すことが可能である。例えば、ハードウェアノードは、SOAシステムなどのシステムにおけるサーバなどのハードウェアを表すことが可能である。
【００２２】
例示的な実施形態によれば、エッジリポジトリ128は、インターフェースコネクタエッジに関連する情報を格納するように構成されることが可能なインターフェースコネクタストレージ領域136と、プロビジョナエッジに関連する情報を格納するように構成されることが可能なプロビジョナストレージ領域138と、呼び出しエッジに関連する情報を格納するように構成されることが可能な作業負荷プロパゲータストレージ領域140とを含むことが可能である。例えば、インターフェースコネクタエッジは、外部呼び出しノードをサービスノードに接続することができるインターフェースコネクタを表すことが可能であり、プロビジョナエッジは、サービスをハードウェアノードに接続して、接続されたハードウェアノードへのサービスのプロビジョニングまたは展開を実施することができるプロビジョナを表すことが可能であり、作業負荷プロパゲータエッジは、サービスを他のサービスに接続して、ワークフローパスを介して、プロビジョニングのためのサーバノードまで作業負荷値を伝播させることができる。
【００２３】
例示的な実施形態によれば、リソースプロビジョニングエスティメータは、ユーザによるグラフィカルユーザインターフェーススクリーンの完了の後、ユーザインターフェース116およびGUIマネージャ118を介して、モデルまたは設計のシミュレーションの実行を開始するように構成されることが可能なシミュレーションエンジン142を含むことが可能である。例えば、ユーザ104は、GUIマネージャ118およびユーザインターフェース114を介して、SOAシステムのモデルまたは設計を生成することができ、シミュレーションエンジン142を介して、設計されたシステムの動作をシミュレートすることができる。
【００２４】
モデル化技術およびシミュレーション技術を介してリソースプロビジョニングを推定するための例示的な方法およびシステムを、本明細書で説明する。本明細書で説明される例示的な方法およびシステムは、例えば、ユーザが、SOAシステムを設計し、実際のハードウェアへのサービスの実際の展開に先立って、プロビジョニングの推定値を算出し、分析するモデル化技術およびシミュレーション技術を提供することができる。
【００２５】
SOA(サービス指向アーキテクチャ)は、単一のサービスを、いくつかの異なるシステム構成に組み込むことにより、あるサービスに含まれる機能を再利用する能力を提供することができる。このため、例えば、ワークフローの構築を考慮することを含め、サービス展望が、ハードウェアプロビジョニングの際に考慮されることが可能である。
【００２６】
企業ソフトウェアの分野においてサイジングと呼ばれることが可能な、階層型アーキテクチャに関するハードウェアリソースプロビジョニングを推定するための従来の技術は、任意のハードウェアの処理能力を、システムが実行される可能性がある分野に有意義であることが可能な抽象ベンチマーク単位に定量化する能力に依拠する可能性がある。従来のアプローチは、理論上の基準マシンを使用してきた。例えば、スループットおよび応答時間に基づいてシステムの処理能力を測定するためのハードウェア独立の単位は、「SAPS」と呼ばれることが可能である。そのような単位は、階層型アーキテクチャ(例えば、2段、3段、多段)における段の数にかかわらず、さらに、クライアント/サーバ構成にかかわらず、2つのシステム間の比較の手段を提供することができる。例として、100単位のSAPSは、毎時2000の完全に処理される命令ラインと等価であると算出されることが可能であり、これは、2000のポスティングまたは2400のシステムトランザクションを伴う6000のダイアログステップ(例えば、スクリーン切り替え)を処理することを必然的に伴う可能性がある。同様に、他のベンチマーク単位には、「毎秒の浮動小数点演算回数」と呼ばれる、ハードウェア性能に関連することが可能なFLOPSベンチマーク単位、および「毎秒のトランザクション回数」と呼ばれる、データベースアプリケーションに関連することが可能なTPSベンチマーク単位が含まれることが可能である。
【００２７】
例示的な実施形態によれば、サイジング手続きにおける第1のステップは、システムハードウェア上でベンチマークを実行して、例えば、処理能力の点で、システムの能力を算出することを含むことが可能である。例えば、ビジネスソフトウェアシステムの場合、ベンチマークプロセスは、SD(販売および流通)ベンチマークを含むことが可能である。様々なシステムの間における比較のためのより有用な単位を提供するように使用することができる、他の多数のベンチマークが存在する可能性があることが、データ処理分野の業者には理解されよう。例示的な実施形態によれば、SDベンチマークは、SAPS単位で測定されるシステムの最大処理能力を算出するために、システムにかかる集中的な負荷を生じさせることができる。サイジング手続きにおける最終ステップは、システムが生じさせる、予期される需要に対応するのに必要とされるSAPS単位の数を算出することを含むことが可能である。
【００２８】
SOAに関するリソースプロビジョニングは、階層型アーキテクチャに関するリソースプロビジョニングと同等に重要である可能性がある。階層型アーキテクチャに関するサイジング手続きのスケーラビリティにもかかわらず、階層型アーキテクチャに関する従来のリソースプロビジョニング技術は、SOAに関して、最適な結果をもたらさない可能性があり、システムを構成するサービスに関する、より細かい細分性の、より多くの知識として、どのようにサービスが一緒に接続されているか、ならびにサービスのワークフローのより多くの知識が、SOAにおけるハードウェアプロビジョニングのための重要な考慮すべき事項である可能性がある。SOAのサービス再利用特性は、システムにおける単一のサービスに対する需要を多くする可能性があり、多くの需要を経験するサービスを含むすべてのワークフローに影響を及ぼす可能性があるネックを生じさせる可能性がある。
【００２９】
本明細書で説明される例示的なサイジング技術は、例えば、SOAの設計と、その設計に関連する、推定されるハードウェアリソースプロビジョニングとの間の関係を提供するモデルにおいて利用されることが可能である。本明細書で説明される例示的な技術は、グラフを形成することが可能なノードおよびエッジを含むことが可能な、いくつかのエンティティを利用することができる。
【００３０】
例示的な実施形態によれば、インターフェースを介して他のサービスと通信する、緩く結合された自律的なビジネス機能または技術的機能を記述することが可能なサービスが、ノードによって表されることが可能である。例えば、「create purchase order」サービスは、購入注文を作成するためのビジネス機能を記述することが可能であり、インターフェースを介して、「send email」サービスなどの別のサービスと通信することができる。
【００３１】
例示的な実施形態によれば、1名または複数名のユーザ、または1つまたは複数の外部呼び出しの結果として、システムにおいて生じた負荷を記述することが可能な外部呼び出しが、ノードによって表されることが可能である。例えば、システム上に外部作業負荷を生じさせる毎月の給与支払いプロセスまたは顧客注文を開始するシステムユーザが、外部呼び出しによって表されることが可能である。
【００３２】
例示的な実施形態によれば、外部呼び出しと、ワークフローにおける第1の呼び出されるサービスとの間の関係を示すのに使用されることが可能なインターフェースコネクタが、エッジによって表されることが可能である。例えば、インターフェースコネクタは、ユーザが、「create purchase order」などのサービスを呼び出すこと、および「create purchase order」が、ワークフローにおける第1の呼び出されるサービスであることを示すことが可能である。この文脈において、ワークフローパスは、外部呼び出しノード、サービスノードのグループ、ノードコネクタのグループ、および1つまたは複数のハードウェアノードのグループを含む有向順序付きパスによって表されることが可能である。ワークフローパスは、外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、サービスノードのグループに関連するサービス実行フローの順序付けを示す有向順序付きパスを含むことが可能である。例えば、属性としてある方向に関連付けられることが可能なノードが、エッジを介して接続されることが可能である。例えば、エッジは、特定のノードタイプを接続するのに限って使用されることが可能であるという構造上の要件によって、ある方向に関連付けられることが可能であり、あるいはエッジは、「ソースノード」や「ターゲットノード」などの属性に関連付けられることが可能である。例えば、ワークフローパスに関連する有向パスに関して、「順方向」エッジをたどって、ある特定の順序で、例えば、パスに含まれるエンティティの間で「順方向に移動して」、エンティティを訪れる移動がもたらされることが可能である。
【００３３】
例示的な実施形態によれば、作業負荷プロパゲータは、エッジによって表されることが可能である。SOAの緩く結合された性質のため、サービスは、他の任意のサービスを呼び出すように構成されることが可能であり、呼び出されたサービスは、さらなるサービスを呼び出すことができる。その結果、例えば、各ワークフローに関与する順序およびサービスが、ハードウェアリソースプロビジョニング推定のための重要な要因であることが可能であり、システムにおけるサービス間の多数の様々な関係として記述されることが可能な、サービス調整が、もたらされることが可能である。例示的な実施形態によれば、作業負荷プロパゲータは、本明細書で説明される例示的なモデルにおいて別なサービスを呼び出す1つのサービスの関係を表すことが可能である。
【００３４】
例示的な実施形態によれば、ハードウェアエンティティは、展開されるサービスの需要を満たすように計算能力または処理能力を提供する、SOAにおけるノードによって表されることが可能である。例示的な実施形態によれば、例示的なシステムにおけるすべてのハードウェアは、サーバのセットとして表されることが可能である。しかし、そのような処理能力は、サーバ以外のエンティティによって提供されてもよいことが、データ処理分野の業者には理解されよう。
【００３５】
例示的な実施形態によれば、サービスとハードウェアの間の関係を示すプロビジョナが、エッジによって表されることが可能である。例えば、この関係は、ハードウェアノード上へのサービスのプロビジョニング、または展開を示すことが可能である。ハードウェアノードは、ハードウェア上で展開されるサービスが生じさせる需要を満たす、すべての計算能力または処理能力を供給することが可能である。
【００３６】
図2は、図1のシステムの例示的な動作を示す流れ図である。例示的な実施形態によれば、第1の外部呼び出しノード、第1のサービスノードグループ、第1のノードコネクタグループ、および第1のハードウェアノードグループを含む第1のワークフローパスが、獲得されることが可能であり、第1のワークフローパスは、第1の外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含む(202)。例えば、ワークフローマネージャ106は、例えば、モデルリポジトリ122から、第1のワークフローパスを獲得することができる。例えば、ワークフローマネージャ106は、モデル構造ストレージ領域124の中に格納された情報に基づき、第1のワークフローパスを獲得することができる。例えば、ワークフローマネージャ106は、ユーザインターフェース116を介するユーザ104からの入力に基づき、第1のワークフローパスを獲得することができる。
【００３７】
例示的な実施形態によれば、サービスノードおよびハードウェアノードは、属性値に関連付けられることが可能である。例えば、サービスノードのそれぞれは、サービスの外部呼び出しに関連する合計作業負荷値、一時作業負荷値、およびサービスの各呼び出しを実行するのに費やされる作業の量に関連する単位作業量値を含む属性値、ならびに、例えば、サービスストレージ領域130の中に格納されることが可能な単位作業量値と作業負荷値を組み合わせることに基づく、サービスに関連するリソース需要値に関連することが可能である。例えば、ハードウェアノードのそれぞれは、そのハードウェアノードに関連する計算能力の合計需要を示す合計需要値、ハードウェアノードに関連する計算能力の合計供給値、および、例えば、ハードウェアストレージ領域134の中に格納されることが可能な合計需要値と合計供給値を組み合わせることに基づく、ハードウェアノードに関連する計算能力の利用率を示す利用率値に関連することが可能である。
【００３８】
外部呼び出しノードなどの呼び出しノードが、例えば、呼び出しストレージ領域132の中に格納されることが可能な呼び出しレートに関連することが可能である。
【００３９】
第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標が、第1のサービスノードに関連する属性値に基づいて算出されることが可能であり、第1の伝播作業負荷の指標が、第1の外部呼び出しノードに関連する属性値と、順序付けに基づいて第1のワークフローパスにおいて第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出されることが可能である(204)。例えば、第1の作業負荷パスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標は、前述したとおり、例示的な伝播作業負荷エンジン108によって算出されることが可能である。
【００４０】
第1のサービスノードは、第1のサービスノードに関連する第1のサービスノード作業負荷の指標と、第1のハードウェアノードに関連する第1の現在のリソース需要の指標とを組み合わせることに基づき、第1のハードウェアノードグループに含まれる第1のハードウェアノード上に提供されることが可能である(206)。例えば、第1のサービスノードは、前述したとおり、例示的なプロビジョニングエンジン110によって第1のハードウェアノード上に提供されることが可能である。例示的な実施形態によれば、第1のサービスノードは、第1の外部呼び出しノードから第1のハードウェアノードまで第1のワークフローパスをたどることに基づき、第1のハードウェアノード上に提供されることが可能である。
【００４１】
例示的な実施形態によれば、1つまたは複数の呼び出しノード、ならびに複数のサービスノード、ノードコネクタ、およびハードウェアノードの配置を表すモデルが、獲得されることが可能であり、モデルは、第1のワークフローパスを含む。例示的な実施形態によれば、モデルは、前述したモデルリポジトリ122から、モデルマネージャ120によって獲得されることが可能である。例示的な実施形態によれば、モデルは、1つまたは複数のサービスノード、外部呼び出しノード、またはハードウェアノードを含む複数のノード、ならびに1つまたは複数のインターフェースコネクタ、プロビジョナ、または作業負荷プロパゲータを含む、ノードコネクタを含む1つまたは複数のエッジの配置を表すことが可能である。
【００４２】
例示的な実施形態によれば、モデルを獲得することは、第1の外部呼び出しノード、第1のサービスノードグループ、第1のノードコネクタグループ、および第1のハードウェアノードグループを含む有向非巡回グラフを獲得することを含むことが可能である。例示的な実施形態によれば、有向非巡回グラフは、前述したモデル構造ストレージ領域124から獲得されることが可能である。
【００４３】
例示的な実施形態によれば、モデルに含まれるハードウェアノードの各ノードに関して、各ハードウェアノードに関連するサービスおよびリソースのプロビジョニングは、各ハードウェアノードを含むモデルに含まれるすべてのワークフローパスをたどることに基づいて算出されることが可能である。
【００４４】
例示的な実施形態によれば、第1のハードウェアノードに関連する利用率指標は、第1の現在のリソース需要の指標、および第1のハードウェアノードに関連する第1の合計リソース指標に基づいて算出されることが可能である。例えば、利用率指標は、SOAシステムなどの設計されたモデルのシミュレーションからもたらされるプロビジョニングによって利用されることが可能な第1のハードウェアノードに関連する利用可能なリソースのパーセンテージを示してもよい。例示的な実施形態によれば、第1のハードウェアノードに関連する利用率指標の表現の表示は、図11および図12に関して後段で説明するとおり、生成されることが可能である。
【００４５】
例示的な実施形態によれば、第2の外部呼び出しノード、第2のサービスノードグループ、第2のノードコネクタグループ、および第2のハードウェアノードグループを含む第2のワークフローパスが、獲得されることが可能であり、第2のワークフローパスは、第2の外部呼び出しノードから、第2のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第2のサービスノードグループに関連するサービス実行フローの第2の順序付けを示す第2の有向順序付きパスを含む。第2のワークフローパスに含まれる第2のサービスノードに関連する第2のサービスノード作業負荷の指標が、第2のサービスノードに関連する属性値に基づいて算出されることが可能であり、第2の伝播作業負荷の指標が、第2の外部呼び出しノードに関連する属性値と、順序付けに基づいて第2のワークフローパスにおいて第2のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づいて算出されることが可能である。第2のサービスノードは、第2のサービスノードに関連する第2のサービスノード作業負荷の指標と、第2のハードウェアノードに関連する第2の現在のリソース需要の指標とを組み合わせることに基づき、第2のハードウェアノードグループに含まれる第2のハードウェアノード上に提供されることが可能である。
【００４６】
例示的な属性値は、例えば、少なくとも、モデルの中の各ノードに関連して、ある特定の構成によるハードウェア上の需要の定量化された予測をもたらすことが可能である。例えば、呼び出しレートrが、外部呼び出しノードに関連することが可能であり、以下のとおり、ある期間にわたる呼び出しの回数として定義されることが可能である。すなわち、
呼び出しレート→r      単位:[1/s]
【００４７】
呼び出しは、少なくとも平均で、一定であると考えることができる。例示的な実施形態によれば、呼び出しレートは、例えば、ユーザインターフェース116を介して、モデルのユーザによってもたらされることが可能である。
【００４８】
例示的なサービスは、以下のとおり、作業負荷、単位作業量、およびリソース需要などの例示的な属性に関連することが可能である。すなわち、
作業負荷→w            単位:[1/s]
単位作業量→u          単位:[SAPS*s]
リソース需要→d=u*w    単位:[SAPS]
【００４９】
例示的な属性作業負荷wは、ある特定のサービスの外部呼び出しに基づくことが可能である。例示的な属性u(すなわち、単位作業量)は、各サービスに関して指定されることが可能な固定のパラメータであることが可能であり、各呼び出しに関して実行するのにサービスが必要とする平均作業量を記述することが可能である。例示的な属性uの例示的な物理単位は、ベンチマーク単位*sとして表されることが可能である。例えば、ベンチマーク単位が、SAPで指定される場合(例えば、SAPアプリケーションに関して)、例示的な属性uは、SAPS*sとして表されることが可能である。単位作業量属性値に作業負荷属性値を掛けることにより、サービスの需要dが、ベンチマーク単位に換算して(例えば、SAPアプリケーションに関してSAPSに換算して)計算されることが可能である。
【００５０】
例示的なハードウェアは、以下のとおり、計算能力の供給や利用率などの例示的な属性に関連することが可能である。すなわち、
計算能力の供給→h      単位:[SAPS]
利用率→d/h            ただし、dは、合計需要である
【００５１】
計算リソース(例えば、ハードウェア)の供給は、ベンチマーク単位(例えば、SAPアプリケーションに関してSAPS)に換算して表現されることが可能である。利用率は、例えば、展開される各サービスが生じさせる需要の合計として算出されることが可能な合計需要dの比として表現されることが可能である。
【００５２】
また、例示的な属性値は、少なくとも、モデルにおけるエッジに関連することも可能である。例えば、作業負荷プロパゲータは、以下のとおり、2つのサービス間の乗数などの属性に関連することが可能である。すなわち、
乗数→サービスj(wj)とサービス(wi)の間のmij
【００５３】
乗数mijは、jからiまでメッセージ(例えば、呼び出し)を送信することからもたらされる、サービスjが別のサービスiに課す作業負荷伝播を示すことが可能である。
【００５４】
別の実施形態によれば、システム設計モデルは、重み付き有向非巡回グラフに基づくことが可能であり、重みは、1つまたは複数の作業負荷プロパゲータによって与えられることが可能である。例示的な実施形態によれば、サービスのワークフローにおける巡回は、SOAシステムにおいて生じる可能性が低いので、巡回は、排除されることが可能である。SOAにおけるワークフローは、明確に規定された呼び出しソース、および対応するシンクを有することが可能である。
【００５５】
例示的な実施形態によれば、サービス作業負荷、呼び出しレート、および作業負荷プロパゲータは、以下のとおり、一次の数式を介して関係付けられることが可能である。すなわち、
【００５６】
【数１】
2008257694.tif 000003
【００５７】
ただし、nは、サービスの数を表す。
【００５８】
乗数に関連し、前段で示した一次の数式(1)に対応する例示的な行列は、以下の3つの特性を有することが可能である。すなわち、
1)mij=1
2)i≠jである場合、mij≦0
3)可能なすべての巡回置換に関して、mijmjk..mli=0
【００５９】
前段に示される3つの特性の最初の特性は、SOAにかかる、自らに負わせたものではない負荷からもたらされることが可能である。これら3つの特性の2番目の特性は、作業負荷が、常に正である(例えば、-mijが、作業負荷の実際の変化を表すことが可能である)という条件と関係することが可能である。これら3つの特性の3番目の特性は、対応する有向グラフが、非巡回であるという条件を反映することが可能である。
【００６０】
このため、3つの例示的なサービスを含む例示的な数式は、以下のとおり、記述されることが可能である。すなわち、
【００６１】
【数２】
2008257694.tif 000004
【００６２】
前段に示される乗数の例示的な行列は、グラフが、非巡回であるため、すなわち、m12m21=0、m13m31=0、m23m32=0、かつm12m23m31=0であるため、三角形である。しかし、これは、一般には、当てはまらない可能性がある。というのは、n>3の場合、上側の三角形と下側の三角形の両方に、1つまたは複数の0ではない値がポピュレートされることが可能な、例示的なシナリオが、算出されることが可能だからである。
【００６３】
例示的な実施形態によれば、単一のサービスjに起因する需要は、dj=wj・ujによって定義されることが可能である。あるハードウェアノードにかかる合計需要dは、以下のとおり、そのハードウェアノード上で展開されるすべてのサービスの需要の合計として算出されることが可能である。すなわち、
【００６４】
【数３】
2008257694.tif 000005
【００６５】
ただし、kは、ハードウェア上の展開されたサービスの数である。
【００６６】
例示的な実施形態によれば、利用率は、比d/hとして定義されることが可能であり、ただし、hは、前述したとおり、計算リソース供給を表す。
【００６７】
例示的な実施形態によれば、例示的なモデル化技術は、前述したとおり、例示的なモデルエンティティのグラフィック表現を提供することが可能であり、そのモデルに関連するパラメータまたは属性を指定する手段を提供することができる。SOA設計またはSOA展望が、生成されると、この技術は、前述したとおり、基礎をなす数式を解くことができ、ユーザ、例えば、システム設計者が見るために、システムにおけるモデルの推定されるハードウェアプロビジョニングの表示を提供することが可能である。例えば、例示的な技術は、各ハードウェアノードの利用率を示す表示を提供することができる。例えば、その表示は、利用可能な計算能力の利用のパーセンテージを示すことが可能であり、外部呼び出しが、一定のレートで生じない可能性があるという想定に基づき、入力レートの変動をさらに示すことが可能である。
【００６８】
図3は、例示的な実施形態による例示的なモデル構造に関連する例示的なエンティティを示す。より詳細には、図3は、例示的な実施形態による例示的なモデル構造に関連する例示的なエンティティを示すUML(Unified Modeling Language)図300を示す。図3に示されるとおり、エンティティ302は、ノードエンティティ304と、エッジエンティティ306とを含むことが可能である。例示的な実施形態によれば、ノードエンティティ304は、関連するモデル構造におけるノードから発する1つまたは複数の順方向エッジを示す1つまたは複数の順方向エッジのベクトルの属性値に関連することが可能である。例示的な実施形態によれば、エッジエンティティ306は、関連するモデル構造におけるエッジを介して接続されたソースノードとターゲットノードを示す、ソースノード値およびターゲットノード値を含む属性に関連することが可能である。
【００６９】
例示的な実施形態によれば、ノードエンティティ304は、外部呼び出しエンティティ308、サービスエンティティ310、およびハードウェアエンティティ312を含むことが可能である。例示的な実施形態によれば、外部呼び出しエンティティ308は、呼び出しレート、例えば、毎秒3回の呼び出しを示す属性値に関連することが可能である。例示的な実施形態によれば、サービスエンティティ310は、前述したとおり、合計作業負荷、一時作業負荷、および単位作業量値を示す属性値に関連することが可能である。例示的な実施形態によれば、ハードウェアエンティティ312は、前述したとおり、例えば、計算能力に関連する、合計需要値および合計供給値を示す属性値に関連することが可能である。
【００７０】
例示的な実施形態によれば、エッジエンティティ306は、インターフェース接続エンティティ314、プロビジョナエンティティ316、および作業負荷プロパゲータエンティティ318を含むことが可能である。例示的な実施形態によれば、プロビジョナエンティティ316は、サービスノード310とハードウェアノード312の間の順方向エッジまたは順方向接続を示すことが可能であり、サービスが実行されるべきハードウェアノード312によって表されるハードウェア上への、サービスノード310によって表されるサービスの展開を示すことが可能である。
【００７１】
例示的な実施形態によれば、作業負荷プロパゲータエンティティ318は、第2のサービスにメッセージを送信する、または第2のサービスを呼び出す第1のサービスの結果として生じることが可能な作業負荷伝播を示すことが可能な、乗数を示す属性値に関連することが可能である。例えば、乗数は、ソースノードが、ターゲットノードにメッセージを送信すること、またはターゲットノードを呼び出すことの結果として、ターゲットノードに課せられる作業負荷伝播を示すことが可能である。
【００７２】
前述したとおり、前述したモデルエンティティのグラフィック表現が、表示されることが可能であり、モデルのパラメータおよび/または修飾子が、例えば、ユーザ、または他の外部ソースによって指定されることが可能である。SOA設計が生成されると、1つまたは複数の基礎をなす数式が解かれることが可能であり、各ハードウェアノード312に関して利用結果が生成されることが可能であり、システムにおける推定されたハードウェアプロビジョニングが、ユーザに、例えば、システム設計者に提供されることが可能である。
【００７３】
例示的な実施形態によれば、アルゴリズムが、基礎をなす非巡回有向グラフに基づいて利用結果を算出するように構成されることが可能である。例示的なアルゴリズムは、開始点および終点にそれぞれが関連するパスまたはワークフローを表すものとして参照されることが可能なグラフ上の連続する順方向エッジに基づくことが可能である。可能なすべてのパスまたはワークフローに沿って反復することにより、アルゴリズムは、前述した数式の解をもたらすことができる。例示的な実施形態によれば、後段で示されるアルゴリズム1によって参照されるエンティティは、図3に関連して前述したとおり、エンティティの例示的なUML表現に対応することが可能である。
【００７４】
例示的な実施形態によれば、後段で示されるアルゴリズム1は、前述したとおり、有向非巡回グラフのパスをたどることにより、前述した数式の解をもたらすことができる例示的なアルゴリズムに関連する擬似コードを示す。アルゴリズム1に示されるとおり、例示的な再帰的技術は、有向非巡回グラフのノード304間の接続を表すことが可能な順方向エッジ306をなぞって、ソースノードからターゲットノードまで移動することができる。アルゴリズム1に示されるとおり、例示的な再帰的技術は、外部呼び出し308によって開始されることが可能であり、ハードウェアノード312上に終端することが可能である。
【００７５】
【表１】
2008257694.tif 000006
【００７６】
アルゴリズム1に示される擬似コード例に関して再帰的に呼び出される例示的な関数、evaluateNode(エッジ、edge)が、ノード上で、それらのノードが、アルゴリズム1の実行によってたどられるにつれ、処理を実行するように構成されることが可能である。
【００７７】
アルゴリズムの開始時に送られる例示的な引数は、あるタイプのインターフェースコネクタ314に関連するエッジ306を表すことが可能である。アルゴリズム1に示されるとおり、命令は、インターフェースコネクタ314に関するCASE文に従って処理されることが可能である。CASE文命令の実行が、第1回において完了すると、ターゲットノードのエッジ306に問い合わせが行われるループに入り、次に、evaluateNode(..)関数が、現在のターゲットノード304から順方向を向いた各エッジ306上で再帰的に呼び出される。現在のターゲットノード304からの、順方向を向いたすべてのエッジ306が処理されると、再帰的呼び出しは終了する。というのは、ある特定の外部呼び出し308、および関連するワークフローに関して、アルゴリズムは、その時点でハードウェアノード312によって表されるハードウェアノード上に、サービスノード310によって表されるサービス(例えば、サービスの展開を表す)を提供しているからである。
【００７８】
例示的な実施形態によれば、非巡回有向グラフにおける各タイプのエッジ306に関して、アルゴリズム1のCASE文によって実行されることが可能な動作は、以下のとおり、説明されることが可能である。すなわち、
1.インターフェースコネクタ314タイプのエッジ306(すなわち、外部呼び出し308-サービス310に関連する)に関して、サービス一時作業負荷パラメータは、外部呼び出しレートと等しい値に設定されることが可能である。次に、サービス310一時作業負荷パラメータは、累積サービス合計作業負荷に追加されることが可能である。
2.作業負荷プロパゲータ318タイプのエッジ306(すなわち、サービス310-サービス310)に関して、ターゲットサービス310一時作業負荷パラメータは、ソースサービス310一時作業負荷に、作業負荷プロパゲータエッジ318に関連する乗数を掛けた値と等しい値に設定されることが可能である。次に、サービス310一時作業負荷パラメータは、累積サービス合計作業負荷に追加されることが可能である。
3.プロビジョナ316タイプのエッジ306(すなわち、サービス310-ハードウェア312)に関して、サービス単位作業量が掛けられたサービス310一時作業負荷パラメータとして生成された値が、累積ハードウェア312合計需要に追加されることが可能であり、このため、事実上、実行のために、ハードウェアノード312上にサービスノード310が提供される、またはハードウェアノード312によって表されるハードウェア上に、サービスノード310によって表されるサービスが展開される。
4.他のタイプのエッジ(例えば、サービスワークフローの終了)に関して、再帰的呼び出しが、終了することが可能である。
【００７９】
例示的な実施形態によれば、前述した例示的な技術は、すべてのエンティティ302、および対応するサービスワークフローを描くため、または表現するための例示的なグラフィック技術に組み込まれることが可能である。各タイプのエンティティ302に関する例示的なグラフィック表現が、図4〜図17に関して後段で説明するとおり、例示的なグラフィックシステムモデルに含められることが可能である。
【００８０】
図4は、例示的な実施形態による外部呼び出し400の例示的なグラフィック表現を示す。外部呼び出し400のグラフィック表現は、図3に関して前述した外部呼び出しノード308に対応することが可能である。例示的な外部呼び出し400は、複数ユーザ呼び出しに関連することが可能である。また、呼び出しは、例えば、B2B(ビジネスツービジネス)の文脈で生じる可能性があるとおり、マシンによってトリガされることも可能である。外部作業負荷または呼び出しレートrは、例えば、GUIマネージャ118によって表示されるコンテキストメニューを介して、ユーザ104によって設定されることが可能である。
【００８１】
図5は、例示的な実施形態によるインターフェースコネクタの例示的なグラフィック表現を示す。図5に示されるとおり、例示的なインターフェースコネクタ502は、任意の外部呼び出し、例えば、外部呼び出し504を、サービス506のようなサービス上にマップする、または接続することが可能である。例示的な実施形態によれば、例示的なインターフェースコネクタ502は、インターフェースコネクタエッジ314に対応することが可能であり、外部呼び出し504は、外部呼び出しノード308に対応することが可能であり、サービス506は、図3に関して前述したサービスノード310に対応することが可能である。
【００８２】
図6は、例示的な実施形態によるサービス600の例示的なグラフィック表現を示す。図6に示されるとおり、例示的なサービス600は、例えば、ユーザインターフェース104に関連するコンテキストメニューを介して設定されることが可能な、識別子<identifier>、および呼び出し当たりの単位作業量uを示す値を含むことが可能である。例示的な実施形態によれば、例示的なサービス600は、図3に関して前述したサービスノード310に対応することが可能である。
【００８３】
図7は、例示的な実施形態による作業負荷プロパゲータの例示的なグラフィック表現を示す。図7に示されるとおり、例示的な作業負荷プロパゲータは、2つのサービス、サービス1  704とサービス2  706との間のコネクタ702によって表されることが可能である。作業負荷プロパゲータの値は、コネクタまたはエッジ702に関連するものとして示される乗数m(例えば、前述したとおり、m=-m12)によって示されることが可能であり、例えば、ユーザインターフェース104に関連するコンテキストメニューを介して設定されることが可能である。例示的な実施形態によれば、コネクタ702によって表される例示的な作業負荷プロパゲータは、図3に関して前述した作業負荷プロパゲータ318に対応することが可能である。
【００８４】
図8は、例示的な実施形態による計算リソース供給h、つまり、ハードウェアノード800の例示的なグラフィック表現を示す。図8に示されるとおり、例示的なハードウェアノード800、つまり、処理能力または計算リソース供給hは、ユーザインターフェース104に関連するコンテキストメニューを介して設定されることが可能である。例示的な実施形態によれば、例示的なハードウェアノード800は、図3に関して前述したハードウェアノード312に対応することが可能である。
【００８５】
図9は、例示的な実施形態によるプロビジョナの例示的なグラフィック表現を示す。図9に示されるとおり、例示的なプロビジョナ902は、サービス904が実行されるハードウェア906上へのサービス904の展開を示すことが可能である。例示的な実施形態によれば、例示的なプロビジョナ902は、プロビジョナ316に対応することが可能であり、サービス904は、サービス310に対応することが可能であり、ハードウェア906は、図3に関して前述したハードウェアノード312に対応することが可能である。
【００８６】
図10は、例示的な実施形態によるシステム展望またはシステム設計を示す例示的なモデル1000の例示的なグラフィック表現を示す。図10の例示的なモデルのグラフィック表現は、図3、および図4〜図9に関して前述したエンティティのグラフィック表現の配置を含む。例示的なモデル1000は、図3に関して前述したハードウェアノードエンティティ312にそれぞれが対応することが可能な、サーバ1  1002、サーバ2  1004、およびサーバ3  1006などのノードを含む。例示的なモデル1000は、図3に関して前述した外部呼び出しノードエンティティ308にそれぞれが対応することが可能な、外部呼び出し1008および1010などのノードをさらに含む。さらに、例示的なモデル1000は、図3に関して前述したサービスノードエンティティ310にそれぞれが対応することが可能な、サービスノード、create purchase order 1012、create marketing letter 1014、send email 1016、およびdatabase store 1018などのノードを含む。
【００８７】
例示的なモデル1000は、図3に関して前述したインターフェースコネクタエッジ314に対応することが可能なインターフェースコネクタエッジ1020、1022をさらに含む。図10に示されるとおり、インターフェースコネクタエッジ1020は、外部呼び出し1008をサービスノード、create purchase order 1012に接続し、インターフェースコネクタエッジ1022は、外部呼び出し1010を、サービスノード、create marketing letter 1014に接続する。
【００８８】
例示的なモデル1000は、図3に関して前述したプロビジョナエッジ316に対応することが可能な例示的なプロビジョナエッジ1024、1026、1028、1030をさらに含む。図10に示されるとおり、プロビジョナエッジ1024は、サービスノード、create purchase order 1012をサーバ1ノード1002に接続し、プロビジョナエッジ1026は、サービスノード、create marketing letter 1014をサーバ1ノード1002に接続する。さらに、プロビジョナエッジ1028は、サービスノード、send email 1016をサーバ2ノード1004に接続し、プロビジョナエッジ1030は、サービスノード、database store 1018をサーバ3ノード1006に接続する。
【００８９】
さらに、例示的なモデル1000は、図3に関して前述した作業負荷プロパゲータエッジ318に対応することが可能な例示的な作業負荷プロパゲータエッジ1032、1034、1036を含む。図10に示されるとおり、作業負荷プロパゲータエッジ1032、1034、1036はそれぞれ、乗数属性に関連する。例えば、作業負荷プロパゲータエッジ1032は、2という乗数値に関連し、サービスノード、create purchase order 1012をサービスノード、send email 1016に接続する。このため、例えば、create purchase orderサービス1012への各呼び出しにより、2つの呼び出しが、send emailサービス1016に送られるようにすることが可能である。
【００９０】
図10にさらに示されるとおり、作業負荷プロパゲータエッジ1034は、3という乗数値に関連し、サービスノード、send email 1016をサービスノード、database store 1018に接続する。さらに、作業負荷プロパゲータエッジ1036は、1という乗数値に関連し、サービスノード、create marketing letter 1014をサービスノード、send email 1016に接続する。
【００９１】
図10に示されるとおり、例示的なモデルシナリオ1000は、サービスのいくつかが、両方のワークフローによって共有される1つのサービス展望またはサービス設計に組み合わされた2つの異なるワークフローを含むことが可能である。例えば、create purchase orderサービス1012は、マーケティングレターを作成するためのサービス1014と、いくらかの電子メール機能およびデータベース機能を共有することが可能である。
【００９２】
このシナリオは、SOAベースのシステムにかかるいくらかの外部作業負荷をそれぞれが生じさせる2つの外部呼び出し1008、1010を表す。図10に示されるとおり、create purchase orderサービス1012を外部から呼び出す例示的なユーザ(例えば、外部呼び出し1008)が、毎秒r=6回の呼び出しというレートで呼び出しを行うことが可能である。create purchase orderサービス1012に対する呼び出しのたびに、u=5単位作業量(SAPS*s)が、create purchase orderサービス1012が展開されたサーバ(例えば、サーバ1  1002)によって実行される、または発揮される。
【００９３】
サーバ1  1002上のcreate purchase order 1012の実行と並行して、またはそれと同時に、サービス、create marketing letter 1014上に他の例示的なユーザ1010からのいくらかの外部作業負荷活動が、存在する可能性がある。図10に示されるとおり、これらの例示的なユーザ1010の呼び出しレートrは、毎秒r=3回の呼び出しである。例示的なcreate marketing letterサービス1014は、u=3 SAPS*sという値を有する単位作業量属性に関連し、これは、create marketing letterサービス1014上の各呼び出しが、サーバ1  1002上で3単位作業量を発揮することを意味する。このため、例示的な外部呼び出し1008により、毎秒6*5=30ベンチマーク単位が、サーバ1ノード1002上で発揮させられ、外部呼び出し1010により、毎秒3*3=9ベンチマーク単位が、サーバ1ノード1002上で発揮させられる。サーバ1  1002に関連する処理能力、つまり、供給hは、100ベンチマーク単位という値を有し、したがって、サーバ1  1002は、サーバ1  1002上でcreate purchase orderサービス1012およびcreate marketing letterサービス1014を提供した後、他のサービスに利用可能な、毎秒100-30-9=61ベンチマーク単位を有することが可能である。さらに、サーバ1  1002の利用率は、需要(すなわち、30+9)を利用可能なベンチマーク単位(すなわち、h=100)で割った値として算出されることが可能であり、つまり、図10の例示的なシナリオの場合、後段でさらに説明する図12に関して示されるとおり、サーバ1  1002に関連する39/100=39%の利用率である。
【００９４】
図10に示されるとおり、create marketing letterサービス1014と次のサービス、send email 1016は、作業負荷プロパゲータ1036を介して接続される。作業負荷プロパゲータ1036は、m=1という例示的な属性値に関連し、したがって、create marketing letterサービス1014に対する呼び出しのたびに、send emailサービス1016に対する1回の呼び出しが、存在する。
【００９５】
別の実施例として、図10の実施例に示されるとおり、create purchase orderサービス1012に対する呼び出しのたびに、作業負荷プロパゲータ1032は、send emailサービス1016が、2回呼び出されることを示す。このため、外部呼び出し1008は、毎秒6回の呼び出しというレートでcreate purchase orderサービス1012を呼び出し、これは、create purchase order 1012に、毎秒2*6=12回の呼び出しというレートでsend emailサービス1016を呼び出させる。さらに、外部呼び出し1010は、毎秒3回の呼び出しというレートでcreate marketing letterサービス1014を呼び出し、これは、create marketing letterサービス1014に、毎秒1*3=3回の呼び出しというレートでsend emailサービス1016を呼び出させる。
【００９６】
例示的なsend emailサービス1016の各呼び出しは、作業負荷プロパゲータエッジ1034を介して、例示的なdatabase storeサービス1018のm=3回の呼び出しを生じさせる。このため、外部呼び出し1008は、例示的なdatabase storeサービス1018の合計で毎秒6*2*3=36回の呼び出しを生じさせ、外部呼び出し1010は、例示的なdatabase storeサービス1018の合計で毎秒3*1*3=9回の呼び出しを生じさせる。例示的なdatabase storeサービス1018は、u=3 SAPS*sという値を有する単位作業量属性に関連し、これは、例示的なdatabase storeサービス1018に対する各呼び出しが、サーバ3  1006上で3単位作業量を発揮することを意味する。このため、例示的な外部呼び出し1008により、サーバ3ノード1006上で毎秒36*3=108ベンチマーク単位が発揮させられ、外部呼び出し1010により、サーバ3ノード1006上で毎秒9*3=27ベンチマーク単位が発揮させられる。サーバ3  1006に関連する処理能力、つまり、供給hは、150ベンチマーク単位という値を有し、したがって、サーバ3  1006は、サーバ3  1006上でdatabase storeサービス1018を提供した後、他のサービスに利用可能な、毎秒150-108-27=15ベンチマーク単位を有することが可能である。さらに、サーバ3  1006の利用率は、需要(すなわち、108+27)を利用可能なベンチマーク単位(すなわち、h=150)で割った値として算出されることが可能であり、つまり、図10の例示的なシナリオの場合、後段でさらに説明する図11に関して示されるとおり、サーバ3  1006に関連する135/150=90%の利用率である。
【００９７】
本明細書で説明される例示的な技術の例示的な出力は、モデル化されたSOA設計のシミュレーションおよび分析からもたらされるハードウェアノード(例えば、サーバ1002、1004、1006)の各ノードの利用率の指示を含むことが可能である。図11は、例示的な実施形能による、サーバ3  1006の利用料に対する、外部呼び出し1008、1010の変動の効果を示す2つの線1104、1106が示されたサーバを示すタブ1102を表示する、モデル分析の例示的な出力を示す。図10に関連して前述したとおり、90%の利用レートが、図10に示される例示的なモデルに基づいて、サーバ3  1006に関して算出されることが可能である。変化する作業負荷の下における振舞いを開示するため、各外部呼び出し1008、1010に関連する外部呼び出しレートの例示的な所定の変動に起因する利用率の変化を示すことが可能な感度分析が、含められることが可能である。例示的な実施形態によれば、例示的な変動は、呼び出しレートrの絶対変動として、例えば、2という変動を有するr=6、つまり、r=4...8として、外部呼び出しエンティティ308において設定されることが可能である。表示される変動は、平均値に対する相対値として表現されてもよい。
【００９８】
また、例示的な出力は、ハードウェアの利用率が、総容量の65%を超えているものと推定されると、図11の例示的なタブ1102において示されるとおり、警報を示すことも可能である。というのは、この段階を超えると、応答時間が大幅に増大する可能性があるからである。図11に示されるとおり、警報シンボルは、サーバ3  1006が、過度に利用されていることを示すことが可能である。というのは、0%の入力レート変動で、サーバ3  1006は、65%を超えて利用されているからである。
【００９９】
同様に、図12は、例示的な実施形態によるモデル分析の例示的な出力を示す。図12は、例示的な実施形態による、サーバ1  1002の利用率に対する、外部呼び出し1008、1010の変動の効果を示す2つの線1204、1206が示されたモデル分析の例示的な出力を示す。図10に関連して前述したとおり、39%の利用レートが、図10に示される例示的なモデルに基づき、サーバ1  1002に関して算出されることが可能である。
【０１００】
例示的な実施形態によれば、サービス、ハードウェア、およびユーザ展望またはユーザ設計は、グラフィカルユーザインターフェースを介してモデル化されることが可能であり、次に、それらの展望または設計が、SOAのリソースプロビジョニングを評価することに関して評価されることが可能である。
【０１０１】
例えば、図4〜図9に関して前述したようなグラフィックエンティティが、例示的なグラフフレームワークに基づき、グラフィカルユーザインターフェースを介して図形的に関連付けられることが可能であり、例示的な相互関係が、レンダリングされることが可能である。例示的な制約が、例えば、モデルSOAまたはモデルワークフローにおいて、いずれのエンティティが接続されることが可能であるかに関して、無効な決定を回避するよう、グラフィカルユーザインターフェースのユーザを誘導することが可能である。
【０１０２】
例示的な実施形態によれば、シミュレーションエンジン142への例示的な入力は、グラフィックモデルまたはグラフィックワークフローを作成するためにユーザによって使用される例示的なグラフィカルユーザインターフェースに関連するAPI(アプリケーションプログラミングインターフェース)を介する、グラフィックエンティティの抽出を含むことが可能である。このため、シミュレーションエンジン142は、サービス、ハードウェア、およびユーザ展望またはユーザ設計からのオブジェクト、ならびに、それらのオブジェクトの関連する属性、例えば、サービスノード310に関連する単位作業量属性値を獲得することが可能である。このため、例示的な実施形態によれば、ユーザがモデルを設計することができる例示的な「キャンバスデザイナ」アプリケーションが、シミュレーションエンジン142などのシミュレーション機能とは別個に提供されてもよい。しかし、本明細書で説明される例示的な技術の趣旨を逸脱することなく、この設計機能および、このシミュレーション機能を実現する多数の仕方が存在することが、データ処理分野の業者には理解されよう。
【０１０３】
図13は、例示的な実施形態によるシステム設計をモデル化するためのキャンバス1302を含む表示1300を示すスクリーンショットである。このため、グラフィカルユーザインターフェースのユーザは、空白のキャンバスから始める。表示1300は、例えば、プロビジョニングのシミュレーションのために、モデルを設計することの一環として、ユーザによって選択されて、キャンバス1302上にドラッグアンドドロップされることが可能な、例示的なノード1306、1308、1310、1312、および1314などのグラフィックエンティティの表示を含むことが可能な、ノードリポジトリ領域1304を含むことが可能である。図13の実施例に示されるとおり、例示的なノード1306は、ハードウェアノードエンティティ312に対応することが可能であり、例示的なノード1312は、サービスノードエンティティ310に対応することが可能であり、例示的なノード1314は、前述した外部呼び出しノードエンティティ308に対応することが可能である。
【０１０４】
表示1300は、例示的なリンクまたはエッジ1318のようなグラフィックエンティティの表示を含むことが可能な、リンク領域、またはエッジリポジトリ領域1316をさらに含むことが可能である。例示的なエッジ1318は、前述したインターフェースコネクタエッジ314、プロビジョナエッジ316、および作業負荷プロパゲータエッジ318に対応するエッジタイプを含むことが可能な、それぞれの異なるエッジタイプに関する、例えば、異なる表示色によって区別されることが可能である。前述したとおり、配置が、例えば、図3に関連して説明したエンティティの構造上の説明に適合するように、表示1300のユーザが、モデルにおいてノードおよびエッジを配置することを確実にする予防措置が、例示的なモデル化技術に含められることが可能である。例えば、ユーザは、インターフェースコネクタエッジ314に対応するインターフェースコネクタエッジを介して、サービスノード1312を外部呼び出しノード1314に接続することができるが、プロビジョナエッジ316に対応するプロビジョナエッジを介して、これを行うことはできない。
【０１０５】
表示1300は、完成されたモデルまたは設計のシミュレーションの実行を開始するよう、ユーザによって選択されることが可能なグラフ領域1320およびSIMボタン1322をさらに含む。
【０１０６】
図14は、例示的な実施形態によるシステム設計をモデル化するためのキャンバスにユーザによって追加されたノードを示すスクリーンショットである。例示的な実施形態によれば、ユーザは、ノードリポジトリ領域1304からキャンバス1302上に、サービスノード、外部呼び出しノード、およびハードウェアノードなどのノードをドラッグアンドドロップすることができる。図14に示されるとおり、ユーザは、前述した図10に関して前述したノード配置と同様にノードを配置している。
【０１０７】
図15は、例示的な実施形態によるシステム設計をモデル化するためのキャンバスを介してユーザによってリンクされたノードを示すスクリーンショットである。例示的な実施形態によれば、ユーザは、エッジリポジトリ1316から作業負荷プロパゲータ1032、1034、インターフェースコネクタ1020、1022、およびプロビジョナ1024、1026、1028、1030などのエッジ1318をドラッグアンドドロップして、ノードをエッジと一緒にリンクすることができる。図14に示されるとおり、ユーザは、前述した図10に関して前述したエッジ配置と同様にエッジを配置している。
【０１０８】
図16は、例示的な実施形態によるユーザによって選択されたエンティティに関連するカスタム属性を指定するための例示的なダイアログボックスを示すスクリーンショットである。例えば、ユーザは、キャンバス1302上に表示されたノードまたはエッジを選択することができ、ユーザが、例えば、選択されたサービスノード、ハードウェアノード、または外部呼び出しノード、あるいは選択された作業負荷プロパゲータに関連付けるために、カスタム属性を指定することができるように、ポップアップカスタム属性ダイアログスクリーン1602が、提供されることが可能である。例えば、カスタム属性ダイアログスクリーン1602は、ユーザが、キャンバス1302上に表示された、選択された作業負荷プロパゲータに関連する属性に関して、ある値、例えば、2という値を入力することができるように、「multiplier」のような属性名を表示してもよい。
【０１０９】
図17は、例示的な実施形態によるシミュレーションの実行を開始するユーザ選択を示すスクリーンショットである。ユーザは、キャンバス1302上でモデルスキームまたは設計スキームを完成させると、SIMボタン1322を選択して、例えば、シミュレーションエンジン142に対するユーザインターフェース116による呼び出しを介して、シミュレーションの実行を開始することができる。次に、シミュレーションは、ハードウェアノードにサービスを提供するコードを実行することに取りかかり、前述したとおり、図11および図12に示される例示的な利用率結果などの結果を提供することができる。例示的な実施形態によれば、シミュレーションの結果を検討した後、ユーザは、設計を改訂し、グラフィカルユーザインターフェース表示をユーザが抜けることを決定するまで、シミュレーションを再び開始することができる。
【０１１０】
図18は、図1の例示的なシステムの動作を示す流れ図である。例えば、ユーザインターフェース116は、シミュレーションエンジン142と対話して、図11〜図17に関して前述したとおり、ユーザ104のようなユーザに、例示的なスクリーンビューを提供することができる。例示的な実施形態によれば、複数のノードおよびエッジに関連するグラフィック指標の表示が、要求されることが可能であり、ノードは、外部呼び出しノード、サービスノード、およびハードウェアノードを含み、エッジは、ノードコネクタを含む(1802)。例えば、ユーザインターフェース116は、図13の実施例に関して前述したとおり、例示的なノード1306、1308、1310、1312、および1314のようなグラフィックエンティティの表示を含むことが可能なノードリポジトリ領域1304と、例示的なリンクまたはエッジ1318のようなグラフィックエンティティの表示を含むことが可能なリンク領域、つまり、エッジリポジトリ領域1316とを含むスクリーンの表示を要求することが可能である。
【０１１１】
第1の外部呼び出しノード、第1のサービスノードグループ、第1のノードコネクタグループ、および第1のハードウェアノードグループの第1の配置の指示が、受け取られることが可能であり、第1の配置は、表示されたグラフィック指標と対話するユーザによって構成される(1804)。例えば、ユーザインターフェース116が、前述したとおり、図17のキャンバス領域1302に示される例示的な配置のような第1の配置の指示を受け取ることが可能である。
【０１１２】
第1の配置の指示は、第1の外部呼び出しノード、第1のサービスノードグループ、第1のノードコネクタグループ、および第1のハードウェアノードグループを含むワークフローパスの表現を含むかどうかが判定されることが可能であり、第1のワークフローパスは、第1の外部呼び出しノードから、第1のハードウェアノードグループに含まれるハードウェアノードの1つまたは複数に至る、第1のサービスノードグループに関連するサービス実行フローの第1の順序付けを示す第1の有向順序付きパスを含む(1806)。例えば、ユーザインターフェース116は、図17のキャンバス領域1302に示される例示的な配置が、前述したとおり、有効なワークフローパスの表現を含むかどうかを判定することが可能である。
【０１１３】
第1のワークフローパスに含まれる第1のサービスノードに関連する第1のサービスノード作業負荷の指標の算出が、要求されることが可能であり、この算出は、第1のサービスノードに関連する属性値に基づき、第1の伝播作業負荷の指標は、第1の外部呼び出しノードに関連する属性値と、順序付けに基づいて第1のワークフローパスにおいて第1のサービスノードに先行する他の1つまたは複数のサービスノードまたはノードコネクタに関連する属性値とを組み合わせることに基づく(1808)。例えば、ユーザインターフェース116は、例示的な伝播作業負荷エンジン108が、前述したとおり、第1のサービスノードに関連する第1のサービス作業負荷の指標を算出することを要求することが可能である。
【０１１４】
第1のハードウェアノードグループに含まれる第1のハードウェアノード上に第1のサービスノードを提供することが、要求されることが可能であり、提供することは、第1のサービスノードに関連する第1のサービスノード作業負荷の指標を、第1のハードウェアノードに関連する第1の現在のリソース需要の指示と組み合わせることに基づく(1810)。例えば、ユーザインターフェース116は、前述したとおり、第1のハードウェアノード上に第1のサービスノードを提供するよう、例示的なプロビジョニングエンジン110に要求することができる。例示的な実施形態によれば、提供することは、第1の外部呼び出しノードの呼び出しレートに関連する値、サービスノードのそれぞれに関連する単位作業量値、ノードコネクタの1つまたは複数に関連する乗数値、およびハードウェアノードの1つに関連する合計能力供給値を組み合わせることに基づくことが可能である。
【０１１５】
本明細書で説明される例示的な技術を使用することにより、SOA設計者は、サービスの需要、およびすべてのサービスをホストするのに要求されるハードウェア展望の可能なレイアウトの見通しを得ることができる。SOA設計者は、分析モデルを実行したことの結果に応答してシステム構成を変更することができる。システム構成が変更されるべき場合、SOA設計者は、全体的なシステムに関する結果の推定を得ることができる可能性がある。この特徴を使用して、設計決定に関する要求される情報が、システム改訂に先立って、有利に提供されることが可能である。
【０１１６】
図1に示される例示的なエスティメータ、エンジン、ジェネレータ、マネージャ、およびインターフェースは、別々のプロセッサとして実施されても、単一のプロセッサによってロードされて、実行されることが可能な実行可能コードとして実施されてもよい。例えば、エスティメータ、エンジン、ジェネレータ、マネージャ、およびインターフェースは、コンパイルされて、不揮発性メモリの中に格納されることが可能であり、実行のために揮発性メモリの中にロードされることが可能なソフトウェアオブジェクトとして実施されてもよい。例えば、エスティメータ、エンジン、ジェネレータ、マネージャ、およびインターフェースは、インターネットなどのネットワークにわたって分散されることが可能な別々のプロセッサ上に配置されてもよく、必要とされる場合、分散した仕方で実行されることが可能である。
【０１１７】
本明細書で説明される様々な技術の実施形態は、デジタル電子回路において、あるいはコンピュータハードウェア、コンピュータファームウェア、コンピュータソフトウェア、または以上の組合せにおいて実施されることが可能である。実施形態は、コンピュータプログラム製品として、すなわち、データ処理装置、例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータによって実行されるように、またはそのような装置の動作を制御するように、情報キャリアとして、例えば、マシン可読記憶装置として、または伝搬される信号として実体化されたコンピュータプログラムとして実施されることが可能である。前述したコンピュータプログラムのようなコンピュータプログラムは、コンパイル型言語または解釈型言語を含む、任意の形態のプログラミング言語で書かれることが可能であり、コンピューティング環境で使用されるのに適したスタンドアロンのプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、または他のユニットとして展開されることを含め、任意の形態で展開されることが可能である。コンピュータプログラムは、1つのサイトにおける1つのコンピュータ上で、または複数のサイトにわたって分散されて、通信ネットワークによって互いに接続された複数のコンピュータ上で実行されるように展開されることが可能である。
【０１１８】
方法ステップは、入力データを操作すること、および出力を生成することによって諸機能を実行するようにコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行されることが可能である。また、方法ステップは、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることも可能であり、装置が、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実行されることが可能である。
【０１１９】
コンピュータプログラムの実行に適したプロセッサには、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリから、またはランダムアクセスメモリから、あるいはその両方から命令およびデータを受け取る。コンピュータの要素には、命令を実行するための少なくとも1つのプロセッサ、ならびに命令およびデータを格納するための1つまたは複数のメモリデバイスが含まれることが可能である。一般に、コンピュータは、データを格納するための1つまたは複数の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、または光ディスクを含むことも可能であり、あるいは、そのような装置からデータを受け取る、またはそのような装置にデータを転送する、あるいはその両方を行うように、動作上、結合されることも可能である。コンピュータプログラム命令およびデータを実体化するのに適した情報キャリアには、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含め、すべての形態の不揮発性メモリが含まれる。プロセッサおよびメモリは、専用論理回路によって補足される、または専用論理回路に組み込まれることも可能である。
【０１２０】
ユーザとの対話を提供するため、実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタ、ユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータ上で実施されることが可能である。他の種類のデバイスを使用して、ユーザとの対話が提供されることも可能であり、例えば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響入力、音声入力、または触覚入力を含め、任意の形態で受け取られることが可能である。
【０１２１】
実施形態は、バックエンドコンポーネント、例えば、データサーバを含む、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含む、またはフロントエンドコンポーネント、例えば、ユーザが実施形態と対話することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含む、あるいはそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムとして実施されることが可能である。コンポーネントは、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって互いに接続されることが可能である。通信ネットワークの例には、LAN(ローカルエリアネットワーク)およびWAN(ワイドエリアネットワーク)、例えば、インターネットが含まれる。
【０１２２】
説明される実施形態のいくつかの特徴を、本明細書で説明されるとおり、例示してきたが、多数の変形形態、代替形態、変更形態、および均等形態が、現時点で、当業者には想起されよう。したがって、添付の特許請求の範囲は、実施形態の真の趣旨の範囲内に入る、すべてのそのような変形形態および変更形態を範囲に含むことを意図している。
【図面の簡単な説明】
【０１２３】
【図１】例示的な実施形態によるリソースプロビジョニングを推定するための例示的なシステムを示すブロック図である。
【図２】図1の例示的なシステムの動作を示す流れ図である。
【図３】例示的な実施形態による例示的なモデル構造に関連する例示的なエンティティを示す図である。
【図４】例示的な実施形態による外部呼び出しを例示する図である。
【図５】例示的な実施形態によるインターフェースコネクタを例示する図である。
【図６】例示的な実施形態によるサービス600を例示する図である。
【図７】例示的な実施形態による作業負荷プロパゲータを例示する図である。
【図８】例示的な実施形態による計算リソース供給またはハードウェアノードを例示する図である。
【図９】例示的な実施形態によるプロビジョナを例示する図である。
【図１０】例示的な実施形態による例示的なモデルを例示する図である。
【図１１】例示的な実施形態によるモデル分析の例示的な出力を示す図である。
【図１２】例示的な実施形態によるモデル分析の例示的な出力を示す図である。
【図１３】例示的な実施形態によるシステム設計をモデル化するためのキャンバスを示すスクリーンショットである。
【図１４】例示的な実施形態によるシステム設計をモデル化するためのキャンバスにユーザによって追加されたノードを示すスクリーンショットである。
【図１５】例示的な実施形態によるシステム設計をモデル化するためのキャンバスを介してユーザによってリンクされたノードを示すスクリーンショットである。
【図１６】例示的な実施形態によるユーザによって選択されたエンティティに関連するカスタム属性を指定するための例示的なダイアログボックスを示すスクリーンショットである。
【図１７】例示的な実施形態によるシミュレーションの実行を開始するユーザ選択を示すスクリーンショットである。
【図１８】図1の例示的なシステムの動作を示す流れ図である。
【符号の説明】
【０１２４】
102    リソースプロビジョニングエスティメータ
104    ユーザ
106    ワークフローマネージャ
108    伝播作業負荷エンジン
110    プロビジョニングエンジン
112    利用率指示ジェネレータ
114    ワークフロートラバーサルエンジン
116    ユーザインターフェース
118    GUIマネージャ
120    モデルマネージャ
122    モデルリポジトリ
124    モデル構造ストレージ領域
126    ノードリポジトリ
128    エッジリポジトリ
130    サービスストレージ領域
132    呼び出しストレージ領域
134    ハードウェアストレージ領域
136    インターフェースコネクタストレージ領域
138    プロビジョナストレージ領域
140    作業負荷プロパゲータストレージ領域
142    シミュレーションエンジン
【図１】
2008257694.tif 000007
【図２】
2008257694.tif 000008
【図３】
2008257694.tif 000009
【図４】
2008257694.tif 000010
【図５】
2008257694.tif 000011
【図６】
2008257694.tif 000012
【図７】
2008257694.tif 000013
【図８】
2008257694.tif 000014
【図９】
2008257694.tif 000015
【図１０】
2008257694.tif 000016
【図１８】
2008257694.tif 000017
【図１１】
2008257694.tif 000018
【図１２】
2008257694.tif 000019
【図１３】
2008257694.tif 000020
【図１４】
2008257694.tif 000021
【図１５】
2008257694.tif 000022
【図１６】
2008257694.tif 000023
【図１７】
2008257694.tif 000024