(57)【要約】【課題】分散アプリケーションを構成する複数のソフトウェア部品について、各ソフトウェア部品の連携動作が適正に行われるように最適化された配置先ノードの選択支援を行う。【解決手段】分散アプリケーションを構成する複数のソフトウェア部品Ａ〜Ｄ…を、ネットワーク上の複数のハードウェアノード１１〜１４…の何れに配置すべきか候補を算出する分散アプリケーションの配置先ノード選択支援システムである。そして、一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、複数のハードウェアのノード間を結ぶネットワーク経路ｒｏ１〜ｒｏ３…の通信処理上の優劣度とを求め、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように配置先ノードの候補を算出する。【選択図】図１
2009282652.tif 000002
【特許請求の範囲】
【請求項１】
分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか候補を算出する分散アプリケーションの配置先ノード選択支援システムであって、
前記複数のソフトウェア部品のうち一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、前記複数のハードウェアのノード間を結ぶネットワーク経路の通信処理上の優劣度とを求め、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように、前記複数のソフトウェア部品における一もしくは複数の配置先ノードの候補を算出することを特徴とする分散アプリケーションの配置先ノード選択支援システム。
【請求項２】
前記複数のソフトウェア部品のうち動作要件から配置先ノードが一箇所に決定されるソフトウェア部品についてはこれらの配置先ノードに対応付け、
前記複数のソフトウェア部品のうち動作要件から配置先ノードが一箇所に決定されないソフトウェア部品について、前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とに基づく配置先ノードの候補を算出することを特徴とする請求項１記載の分散アプリケーションの配置先ノード選択支援システム。
【請求項３】
配置先ノードの候補の算出対象となっている対象ソフトウェア部品について、該対象ソフトウェア部品と連携処理を行う複数のソフトウェア部品の中から、当該対象ソフトウェア部品との連携処理で優先度の高い処理を行いかつ配置先ノードが決定済みになっている重要連携先ソフトウェア部品を抽出する重要連携先抽出手段と、
前記対象ソフトウェア部品が配置可能な複数のノードと前記重要連携先ソフトウェア部品の配置先ノードとの間のネットワーク経路をそれぞれ抽出し、これらネットワーク経路の通信処理上の優劣度を比較する経路優劣度比較手段と、
この経路優劣度比較手段の比較により優良とされたネットワーク経路に対応するノードを前記対象ソフトウェア部品の配置先ノードの候補として算出する配置先候補算出手段と、
を備えていることを特徴とする請求項１記載の分散アプリケーションの配置先ノード選択支援システム。
【請求項４】
前記配置先候補算出手段は、
前記経路優劣度比較手段により優良と判断された側から複数のネットワーク経路に対応する複数のノードを、前記対象ソフトウェア部品の配置先ノードの候補リストとして算出し、
前記配置先ノードの候補リストが外部出力されることを特徴とする請求項３記載の分散アプリケーションの配置先ノード選択支援システム。
【請求項５】
前記複数のソフトウェア部品の連携関係が示された連携マップ情報、
前記複数のソフトウェア部品の各々について必要なハードウェア構成がそれぞれ示された第１ソフト仕様情報、
前記複数のソフトウェア部品の各々について各ソフトウェア部品により実行される連携通信の種類および属性が示された第２ソフト仕様情報、
前記複数のノードの各々について各ノードのハードウェア構成が示されたノード構成情報、
前記複数のハードウェアが接続されるネットワークのトポロジーおよびネットワークを構成する各回線の属性が示されたネットワーク仕様情報、
をそれぞれ入力するデータ入力手段を備え、
前記連携マップ情報、前記第１ソフト仕様情報、前記第２ソフト仕様情報、前記ノード構成情報、および、前記ネットワーク仕様情報に基づき、前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とを求め、前記複数のソフトウェア部品の配置先ノードの候補を算出することを特徴とする請求項１記載の分散アプリケーションの配置先ノード選択支援システム。
【請求項６】
配置先ノードの候補の算出対象となっている対象ソフトウェア部品について、前記連携マップ情報に基づき当該対象ソフトウェア部品と連携処理を行う連携先のソフトウェア部品を抽出する連携先抽出手段と、
前記第２ソフト仕様情報や前記連携マップ情報に示される連携通信の設定パラメータに基づいて、前記対象ソフトウェア部品と各連携先との間で行われる各連携通信の優先度に関する重み付けを行う連携重み付け演算手段と、
前記連携重み付け演算手段により高い重み付けに算出された連携通信を行う連携先のソフトウェア部品で、既に配置先ノードが決定されているソフトウェア部品の配置先ノードを、重要連携先ノードとして抽出する重要連携先抽出手段と、
前記ネットワーク仕様情報に基づいて、前記対象ソフトウェア部品を配置可能な複数のノードと前記重要連携先ノードとの間のネットワーク経路を抽出する経路抽出手段と、
前記ネットワーク仕様情報に基づき前記経路抽出手段により抽出された各ネットワーク経路の通信処理上の優劣度に関する重み付けを行って優劣度を比較する経路優劣度比較手段と、
前記経路優劣度比較手段の比較により優良と判断された方のネットワーク経路に対応するノードを前記対象ソフトウェア部品の配置先ノードの候補として算出する配置先候補算出手段と、
を備えていることを特徴とする請求項５記載の分散アプリケーションの配置先ノード選択支援システム。
【請求項７】
分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか、コンピュータが候補を算出する分散アプリケーションの配置先ノード選択支援方法であって、
前記コンピュータが、前記複数のソフトウェア部品の連携関係が示された連携マップ情報、前記複数のソフトウェア部品の各々について必要なハードウェア構成がそれぞれ示された第１ソフト仕様情報、前記複数のソフトウェア部品の各々について各ソフトウェア部品により実行される連携通信の種類および属性が示された第２ソフト仕様情報、前記複数のノードのハードウェア構成が示されたノード構成情報、前記複数のハードウェアが接続されるネットワークのトポロジーおよびネットワークを構成する各回線の属性が示されたネットワーク仕様情報を、それぞれ外部入力するデータ入力ステップと、
前記コンピュータが、前記データ入力ステップにより入力された情報に基づいて、前記複数のソフトウェア部品のうち一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、前記複数のハードウェアのノード間を結ぶネットワーク経路の通信処理上の優劣度とを算出する算出ステップと、
前記コンピュータが、前記算出ステップにより算出された前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とに基づいて、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように、前記複数のソフトウェア部品の配置先ノードの候補を算出する配置先候補算出ステップと、
を有することを特徴とする分散アプリケーションの配置先ノード選択支援方法。
【請求項８】
分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか候補を算出させるためのプログラムであって、
コンピュータに、
前記複数のソフトウェア部品の連携関係が示された連携マップ情報、前記複数のソフトウェア部品の各々について必要なハードウェア構成がそれぞれ示された第１ソフト仕様情報、前記複数のソフトウェア部品の各々について各ソフトウェア部品により実行される連携通信の種類および属性が示された第２ソフト仕様情報、前記複数のノードのハードウェア構成が示されたノード構成情報、前記複数のハードウェアが接続されるネットワークのトポロジーおよびネットワークを構成する各回線の属性が示されたネットワーク仕様情報を外部から入力するデータ入力機能と、
前記データ入力機能により入力された情報に基づいて、前記複数のソフトウェア部品のうち一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、前記複数のハードウェアのノード間を結ぶネットワーク経路の通信処理上の優劣度とを算出する算出機能と、
前記算出機能により算出された前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とに基づいて、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように、前記複数のソフトウェア部品の配置先ノードの候補を算出する配置先候補算出機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか候補を算出する分散アプリケーションの配置先ノード選択支援システム、配置先ノード選択支援方法、ならびに、これらに機能をコンピュータにより実現させるプログラムに関する。
【背景技術】
【０００２】
プログラム動作する複数のソフトウェア部品を、ネットワーク接続された複数のハードウェアのコントローラなどに配置し、各ソフトウェア部品同士を連携させて複数のハードウェアを統合的に稼動させる分散アプリケーションシステムがある。このようなシステムは、例えば、工場生産設備において各種の測定器（例えば温度計、湿度計、圧力計、ヒータなど）や各種の駆動装置（例えばヒータをオン・オフする駆動スイッチ、流量を調整するバルブ駆動装置など）などを稼動制御するのに利用されたりする。
【０００３】
このような分散アプリケーションシステムにおいては、ソフトウェア部品は、測定器や駆動装置のコントローラ、ならびに、汎用の端末装置などの各ノードに配置される。そして、異なるノードに配置された複数のソフトウェア部品はネットワーク回線を介した通信により連携動作を行う。また、同一ノードに配置された複数のソフトウェア部品は、ノード上のメモリなどを介してメッセージ通信を行い、それにより連携動作を行う。
【０００４】
従来、分散アプリケーションを構成する各ソフトウェア部品についてその仕様情報に自らの動作要件を含めるようにした標準化技術が提案されている（例えば、非特許文献１）。この技術によれば、各ソフトウェア部品に、例えば、データファイルのリード／ライト、デジタルデータイン（ＤＩ）、デジタルデータアウト（ＤＯ）など、動作に必要なハードウェア構成などの動作要件を仕様情報として記しておくことができる。
【非特許文献１】ジュリア マッカーシー（Julia McCarthy）他、“ソリューション ディプロイメント ディスクリプター スペシフィケーション 1.0 コミッティ ドラフト 4（Solution Deployment Descriptor Specification 1.0 Committee Draft 4）”、 ［online］、平成２０年４月８日、OASIS、［平成２０年５月７日検索］、インターネット〈ＵＲＬ：http://docs.oasis-open.org/sdd/v1.0/sdd-spec-v1.0.html〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
分散アプリケーションを利用したシステムを構成する場合、各ソフトウェア部品を動作要件の充足するハードウェアのノードに配置する必要がある。例えば、データファイルのリード／ライトを動作要件に含むソフトウェア部品であれば、ファイルシステムを有するハードウェアのノードに配置する必要があるし、ＤＩ／ＤＯが動作要件に含まれるソフトウェア部品であれば、デジタルデータのインプット／アウトプットが行われるハードウェアのノードに配置する必要がある。
【０００６】
そこで、本発明者らは、分散アプリケーションを構成する複数のソフトウェア部品について、これらの配置先ノードを間違いなく選択できる配置先ノードの選択支援方法について検討した。その結果、上記のソフトウェア部品の仕様情報を記す標準化技術を有効に利用できると考えた。すなわち、図１０に示すように、各ソフトウェア部品Ｈ〜Ｊの動作要件を記したソフトウェア部品リスト３１と、ソフトウェア部品が配置される各ノードのハードウェア構成等の仕様情報を記したノード構成リスト３２とをコンピュータに入力しておく。そして、このコンピュータ上でユーザが配置先ノードを決定したいソフトウェア部品Ｈ〜Ｊの何れかを選択すると、コンピュータがこのソフトウェア部品の仕様情報と各ノードの仕様情報とを照合し、ソフトウェア部品の動作要件を充足する配置先候補ノードをユーザに提示する。ユーザは、この中から当該ソフトウェア部品の配置先ノードを選択することで、図１１に示すように、動作要件を充足したソフトウェア部品Ｈ〜Ｊの配置先ノード４１〜４３を決定することができる。
【０００７】
ところで、図１０のソフトウェア部品リスト３１や図１１の構成図におけるソフトウェア部品Ｊの仕様情報に示すように、複数のソフトウェア部品の中には動作要件が寛容なものも存在する。例えば、ソフトウェア部品Ｊが計算ロジックのみを実装したものであれば、必要なメモリ領域さえ提供されれば動作が可能であり、その他の特別なハードウェア構成を動作要件として必要としない。
【０００８】
しかしながら、このように動作要件が寛容なソフトウェア部品をユーザが無造作に配置した場合、次のＡ，Ｂの課題が生じると考えられた。
Ａ．２つのソフトウェア部品の間で頻繁なメッセージ通信が行われるような場合、これらのソフトウェア部品を通信帯域の小さな回線を挟んだ異なる２点のノードに配置すると、頻繁なメッセージ通信により通信帯域が占領されてしまい、他の通信と重なった場合に、通信遅延が生じたり、正常な通信が妨げられたりする可能性が生じる。
Ｂ．２つのソフトウェア部品の間で高い信頼性を要求される連携動作がなされる場合、これらのソフトウェア部品を例えばネットワーク経路上離れたノード（例えば多くのＩＰルータを経由するノード）に配置してしまうと、ネットワーク障害の影響を受ける確率が高くなったり、メッセージの到達遅延が生じたりするなど、連携動作の信頼性が低下してしまう。
【０００９】
この発明の目的は、分散アプリケーションを構成する複数のソフトウェア部品について、各ソフトウェア部品の連携動作がより適正に行われるように最適化の図られた配置先ノードを選択することのできる配置先ノードの選択支援システム、選択支援方法、また、コンピュータによりこれらの機能を実現させるプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、請求項１記載の発明は、
分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか候補を算出する分散アプリケーションの配置先ノード選択支援システムであって、
前記複数のソフトウェア部品のうち一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、前記複数のハードウェアのノード間を結ぶネットワーク経路の通信処理上の優劣度とを求め、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように、前記複数のソフトウェア部品における一もしくは複数の配置先ノードの候補を算出することを特徴としている。
【００１１】
請求項２記載の発明は、請求項１記載の分散アプリケーションの配置先ノード選択支援システムにおいて、
前記複数のソフトウェア部品のうち動作要件から配置先ノードが一箇所に決定されるソフトウェア部品についてはこれらの配置先ノードに対応付け、
前記複数のソフトウェア部品のうち動作要件から配置先ノードが一箇所に決定されないソフトウェア部品について、前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とに基づく配置先ノードの候補を算出することを特徴としている。
【００１２】
請求項３記載の発明は、請求項１記載の分散アプリケーションの配置先ノード選択支援システムにおいて、
配置先ノードの候補の算出対象となっている対象ソフトウェア部品について、該対象ソフトウェア部品と連携処理を行う複数のソフトウェア部品の中から、当該対象ソフトウェア部品との連携処理で優先度の高い処理を行いかつ配置先ノードが決定済みになっている重要連携先ソフトウェア部品を抽出する重要連携先抽出手段と、
前記対象ソフトウェア部品が配置可能な複数のノードと前記重要連携先ソフトウェア部品の配置先ノードとの間のネットワーク経路をそれぞれ抽出し、これらネットワーク経路の通信処理上の優劣度を比較する経路優劣度比較手段と、
この経路優劣度比較手段の比較により優良とされたネットワーク経路に対応するノードを前記対象ソフトウェア部品の配置先ノードの候補として算出する配置先候補算出手段と、
を備えていることを特徴としている。
【００１３】
請求項４記載の発明は、請求項３記載の分散アプリケーションの配置先ノード選択支援システムにおいて、
前記配置先候補算出手段は、
前記経路優劣度比較手段により優良と判断された側から複数のネットワーク経路に対応する複数のノードを、前記対象ソフトウェア部品の配置先ノードの候補リストとして算出し、
前記配置先ノードの候補リストが外部出力されることを特徴としている。
【００１４】
請求項５記載の発明は、請求項１記載の分散アプリケーションの配置先ノード選択支援システムにおいて、
前記複数のソフトウェア部品の連携関係が示された連携マップ情報、
前記複数のソフトウェア部品の各々について必要なハードウェア構成がそれぞれ示された第１ソフト仕様情報、
前記複数のソフトウェア部品の各々について各ソフトウェア部品により実行される連携通信の種類および属性が示された第２ソフト仕様情報、
前記複数のノードの各々について各ノードのハードウェア構成が示されたノード構成情報、
前記複数のハードウェアが接続されるネットワークのトポロジーおよびネットワークを構成する各回線の属性が示されたネットワーク仕様情報、
をそれぞれ入力するデータ入力手段を備え、
前記連携マップ情報、前記第１ソフト仕様情報、前記第２ソフト仕様情報、前記ノード構成情報、および、前記ネットワーク仕様情報に基づき、前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とを求め、前記複数のソフトウェア部品の配置先ノードの候補を算出することを特徴としている。
【００１５】
請求項６記載の発明は、請求項５記載の分散アプリケーションの配置先ノード選択支援システムにおいて、
配置先ノードの候補の算出対象となっている対象ソフトウェア部品について、前記連携マップ情報に基づき当該対象ソフトウェア部品と連携処理を行う連携先のソフトウェア部品を抽出する連携先抽出手段と、
前記第２ソフト仕様情報や前記連携マップ情報に示される連携通信の設定パラメータに基づいて、前記対象ソフトウェア部品と各連携先との間で行われる各連携通信の優先度に関する重み付けを行う連携重み付け演算手段と、
前記連携重み付け演算手段により高い重み付けに算出された連携通信を行う連携先のソフトウェア部品で、既に配置先ノードが決定されているソフトウェア部品の配置先ノードを、重要連携先ノードとして抽出する重要連携先抽出手段と、
前記ネットワーク仕様情報に基づいて、前記対象ソフトウェア部品を配置可能な複数のノードと前記重要連携先ノードとの間のネットワーク経路を抽出する経路抽出手段と、
前記ネットワーク仕様情報に基づき前記経路抽出手段により抽出された各ネットワーク経路の通信処理上の優劣度に関する重み付けを行って優劣度を比較する経路優劣度比較手段と、
前記経路優劣度比較手段の比較により優良と判断された方のネットワーク経路に対応するノードを前記対象ソフトウェア部品の配置先ノードの候補として算出する配置先候補算出手段と、
を備えていることを特徴としている。
【００１６】
請求項７記載の発明は、
分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか、コンピュータが候補を算出する分散アプリケーションの配置先ノード選択支援方法であって、
前記コンピュータが、前記複数のソフトウェア部品の連携関係が示された連携マップ情報、前記複数のソフトウェア部品の各々について必要なハードウェア構成がそれぞれ示された第１ソフト仕様情報、前記複数のソフトウェア部品の各々について各ソフトウェア部品により実行される連携通信の種類および属性が示された第２ソフト仕様情報、前記複数のノードのハードウェア構成が示されたノード構成情報、前記複数のハードウェアが接続されるネットワークのトポロジーおよびネットワークを構成する各回線の属性が示されたネットワーク仕様情報を、それぞれ外部入力するデータ入力ステップと、
前記コンピュータが、前記データ入力ステップにより入力された情報に基づいて、前記複数のソフトウェア部品のうち一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、前記複数のハードウェアのノード間を結ぶネットワーク経路の通信処理上の優劣度とを算出する算出ステップと、
前記コンピュータが、前記算出ステップにより算出された前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とに基づいて、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように、前記複数のソフトウェア部品の配置先ノードの候補を算出する配置先候補算出ステップと、
を有することを特徴としている。
【００１７】
請求項８記載の発明は、
分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク上の複数のハードウェアの何れのノードに配置すべきか候補を算出させるためのプログラムであって、
コンピュータに、
前記複数のソフトウェア部品の連携関係が示された連携マップ情報、前記複数のソフトウェア部品の各々について必要なハードウェア構成がそれぞれ示された第１ソフト仕様情報、前記複数のソフトウェア部品の各々について各ソフトウェア部品により実行される連携通信の種類および属性が示された第２ソフト仕様情報、前記複数のノードのハードウェア構成が示されたノード構成情報、前記複数のハードウェアが接続されるネットワークのトポロジーおよびネットワークを構成する各回線の属性が示されたネットワーク仕様情報を外部から入力するデータ入力機能と、
前記データ入力機能により入力された情報に基づいて、前記複数のソフトウェア部品のうち一対のソフトウェア部品の間で行われる連携処理に要求される優先度と、前記複数のハードウェアのノード間を結ぶネットワーク経路の通信処理上の優劣度とを算出する算出機能と、
前記算出機能により算出された前記連携処理に要求される優先度と前記ネットワーク経路の通信処理上の優劣度とに基づいて、優先度の高い連携処理が通信処理上優良なネットワーク経路を介した通信により行われるように、前記複数のソフトウェア部品の配置先ノードの候補を算出する配置先候補算出機能と、
を実現させることを特徴としている。
【発明の効果】
【００１８】
本発明に従うと、ソフトウェア部品間で行われる連携処理の優先度とネットワーク経路の通信処理上の優劣度とが考慮されて、ソフトウェア部品の配置先ノードの候補が算出されるので、候補の中からソフトウェア部品の配置先ノードを選択することで、例えば高い信頼性を必要としたり通信量が非常に多いなど優先度の高い連携処理が優良なネットワーク経路を介した通信により実行されるように各ソフトウェア部品を配置することができるという効果がある。また、このようなソフトウェア部品の配置によって分散アプリケーションシステムの全体的な動作の安定性の向上が図れるという効果がある。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２０】
［第１実施形態］
図１は、分散アプリケーションケーションシステムのソフトウェア部品構成とハードウェア構成の一例を示した説明図、図２は、本発明の第１実施形態の配置先ノード選択支援システムの全体を示した構成である。
【００２１】
第１実施形態の配置先ノード選択支援システム１００は、分散アプリケーションを構成する複数のソフトウェア部品を、ネットワーク接続された複数のハードウェアのうち適切なノードにユーザが配置していくために、各ソフトウェア部品の配置先候補ノードのリストをユーザに提示するシステムである。
【００２２】
この実施形態において、分散アプリケーションは、例えば、工場生産設備等が各ハードウェアに配置されて実行されるものが対象となる。工場生産設備等においては、各種の計測器（例えば温度計、湿度計、流量計など）や、各種の駆動装置（例えばヒータの駆動スイッチや流量調整を行うバルブアクチュエータなど）、ならびに、汎用の端末装置などが、通信回線を介してネットワーク接続され、これら計測器のコントローラ、駆動装置のコントローラ、および端末装置に各種のソフトウェア部品が配置される。すなわち、ソフトウェア部品が各ハードウェアのコントローラにロードされコントローラ内部のＣＰＵ（中央演算処理装置）により実行される。異なるノードに配置された複数のソフトウェア部品は、ネットワークを介したデータ通信により連携動作し、また、同一ノードに配置された複数のソフトウェア部品はメモリを介したメッセージ通信などを介して連携動作するように構成される。そして、これらの連携動作によって分散アプリケーションによる設備の稼動制御が実現される。
【００２３】
図１に単純化した構成例を示すように、分散アプリケーションは、例えば、複数のソフトウェア部品Ａ〜Ｄにより構成され、各ソフトウェア部品Ａ〜Ｄには、動作に必要なハードウェア構成が動作要件として指定されている。例えば、ソフトウェア部品Ｃ，Ｄは特定のデジタルデータイン・アウト（ＤＩ１，ＤＯ１，ＤＩ２，ＤＯ２）を動作要件とし、また、ソフトウェア部品Ａは任意のファイルリード／ライトを動作要件としている。また、ソフトウェア部品Ｂはメモリ領域のみを動作要件としている。このように、ソフトウェア部品Ａ〜Ｄには、動作要件が限定されたものや、動作要件に寛容なものが存在する。
【００２４】
分散アプリケーションを構成する複数のソフトウェア部品は、ユーザ設計等に応じて連携して動作するように構成される。図１の例では、例えば、ソフトウェア部品ＡはソフトウェアＢ，Ｃと連携動作を行い、ソフトウェア部品Ｂはソフトウェア部品Ａ，Ｃ，Ｄと連携動作するように設計されている。各連携動作は、各ソフトウェア部品が異なるノードに配置された場合にはネットワーク回線を介した通信により実行され、各ソフトウェア部品が同一ノードに配置された場合にはメモリを介したメッセージ通信により実行される。
【００２５】
各ソフトウェア部品が配置されるノード１１〜１４は、ネットワーク接続された各種ハードウェアのコントローラなどが対象となる。例えば、計測器のデータを入力するＤＩポートや駆動装置にデータ出力を行うＤＯポートなどを有するノード１３，１４、データファイルの読み書きを行うファイルシステム（ＦＳ１，ＦＳ２）を有するノード１１，１２など、種々のハードウェア構成を有するものが対象となる。各ノード１１〜１４は、例えば、各種のネットワーク機器（例えばルータやネットワークスイッチなど）を介して有線又は無線によりネットワーク接続されている。
【００２６】
この実施の形態の配置先ノード選択支援システム１００は、汎用のコンピュータに配置先ノード選択支援機能を実現させるプログラムを実行させてなるものである。この配置先ノード選択支援システム１００は、図２に示すように、ＣＰＵ（中央演算処理装置）６１、ＣＰＵ６１に作業用のメモリ空間を提供するメモリ６２、ユーザからの操作入力やデータ入力を行う入力部６３、表示出力や印字出力を行う出力部６４、ＣＰＵ６１が実行するプログラムが格納された記憶装置６５、入力データが蓄えられるデータベース（６７，６８）等を備えている。上記のプログラムは、コンピュータに配置先ノード選択支援システムとしての機能を実現させるもので、コンピュータが読み取り可能な記憶媒体６６に格納されている。記憶媒体６６は、例えば、光ディスク等の河搬型記憶媒体、フラッシュメモリ等の不揮発性メモリ、ＲＯＭ（Read Only Memory）等を適用することが可能である。また、本発明に係るプログラムを通信回線を介して提供する媒体としてキャリアウェーブ（搬送波）も適用できる。
【００２７】
この実施形態の配置先ノード選択支援システム１００は、データ入力機能を有し、ユーザの操作入力に従って、所定のデータロードおよびデータファイルの読み込み等を行い、配置先ノードの選択支援に必要なデータベースを構築することが可能になっている。
【００２８】
ここで構築されるデータベースは、分散アプリケーションのソフトウェア構成に関するデータが蓄えられるアプリケーション構成ＤＢ（データベース）６７と、ハードウェアやネットワークの構成に関するデータが蓄えられるハードウェア・ネットワーク構成ＤＢ６８である。
【００２９】
アプリケーション構成ＤＢ６７には、各ソフトウェア部品に関する情報が格納されるソフトウェア部品情報リスト６７Ａと、各ソフトウェア部品の配置先ノードが決定するたびにこの配置先ノードの情報が格納される配置先ノード情報６７Ｂが含まれる。
【００３０】
上記ソフトウェア部品情報リスト６７Ａは、各ソフトウェア部品の仕様情報と、ユーザが設計した分散アプリケーションの各ソフトウェア部品の連携関係等を示した連携マップ情報とを有する。ソフトウェア部品の仕様情報には、例えば、各ソフトウェア部品が必要とするハードウェア構成を表わした動作要件、各ソフトウェア部品により実行される通信の種類や属性の情報が含まれる。通信種類の情報には、例えば、通信内容、通信方式の情報などが含まれ、通信の属性情報には、通信データ長、通信頻度、要求される通信条件（例えば要求メッセージ到達時間、要求レスポンス時間など）等の情報が含まれる。これらソフトウェア部品の仕様情報は、例えば、ソフトウェア部品を開発するソフトウェアベンダーにより提供され、システム１００にロードさせるものである。
【００３１】
連携マップ情報は、各ソフトウェア部品の全体的な連携関係を示す情報（例えば各ソフトウェア部品が何れのソフトウェア部品と連携しているかを示す情報など）、連携処理で実行される通信処理のパラメータ（例えばユーザ指定のポーリング通信の周期パラメータ、要求メッセージ到達時間、要求レスポンス時間など）、ユーザにより指定されるソフトウェア部品の配置先ノードの情報などを有する。これらの連携マップ情報は、例えば、ユーザが作成してシステム１００に入力するものである。
【００３２】
ハードウェア・ネットワーク構成ＤＢ６８には、ソフトウェア部品が配置可能な各ノードの情報が格納されるノード情報リスト６８Ａと、ネットワーク構成が格納されるネットワーク接続構成情報６８Ｂとが含まれる。
【００３３】
ノード情報リスト６８Ａは、各ノードの仕様情報として各ノードのハードウェア構成（例えば第１ノード１１はファイルシステムＦＳ１とメモリ領域３２ＭＢを有しているなど）を表わした情報を有する。ネットワーク接続構成情報６８Ｂは、ネットワークの全体的な接続構造を表わしたネットワークトポロジーの情報と、ネットワークを構成する各回線の属性（例えば通信帯域や通信方式など）の情報を有する。これらのノード情報リスト６８Ａとネットワーク接続構成情報６８Ｂとは、例えば、ユーザが作成してシステム１００に入力するものである。
【００３４】
つぎに、上記構成の配置先ノード選択支援システム１００により実行される、ソフトウェア部品の配置先ノードの選択支援処理について説明する。
【００３５】
図３は、ＣＰＵ６１により実行されるソフトウェア部品の配置先ノードの選択支援処理の処理手順を示すフローチャートである。
【００３６】
このソフトウェア部品の配置先ノードの選択支援処理は、上述のデータ入力が完了している状態でユーザが配置先ノード選択支援システム１００に選択支援処理の実行指令を入力することで開始される。この処理が開始されると、まず、ステップＳ１において、ＣＰＵ６１は、ソフトウェア構成データベース６７からソフトウェア部品情報リスト６７Ａを読み出して、配置先ノードが未設定になっているソフトウェア部品のリストを作成して出力部６４に表示出力する。
【００３７】
分散アプリケーションを構成する複数のソフトウェア部品の中には、ソフトウェア部品情報リスト６７Ａの連携マップ情報により既に配置先ノードがユーザにより指定されているものがある。この指定データは、例えば、配置先ノード情報６７Ｂに格納される。また、各ソフトウェア部品の動作要件とハードウェア構成とから配置先が一意に決まるものもある。従って、ＣＰＵ６１は、最初の段階で、ソフトウェア部品情報リスト６７Ａとノード情報リスト６８Ａとから、ソフトウェア部品の配置先ノードが一意に決まるものを抽出し、一意に決まるものがあれば、該当するソフトウェア部品の配置先ノードをそこに決定し、これらの配置先ノードの情報を配置先ノード情報６７Ｂに格納する。そして、ステップＳ１において、配置先ノードの決まっていないソフトウェア部品についてのみ抽出してリスト表示を行う。
【００３８】
ステップＳ１で配置先ノードの決まっていないソフトウェア部品のリスト表示を行ったら、続くステップＳ２において、ユーザにリスト内から配置先ノードの選択支援の対象となる対象ソフトウェア部品の選択を行わせる。ユーザは、入力部６３を介した操作入力によりこの選択処理を行う。そして、対象ソフトウェア部品が選択されたら、ＣＰＵ６１は、このソフトウェア部品に関する情報をソフトウェア部品情報リスト６７Ａから抽出して、配置したいソフトウェア部品情報８１としてメモリ６２に内部記憶する。配置したいソフトウェア部品情報８１には、対象ソフトウェア部品の識別子、その動作要件、連携関係にある他のソフトウェア部品の識別子、連携通信の種類や属性の情報、連携通信のパラメータなどの情報が含まれる。
【００３９】
次いで、ステップＳ３において、ＣＰＵ６１は、ハードウェア・ネットワーク構成ＤＢ６８からノード情報リスト６８Ａを読み出し、かつ、上記の配置したいソフトウェア部品情報８１に抽出した動作要件の情報と照合して、ステップＳ２で選択された対象ソフトウェア部品について、動作要件を充足しているノードの一覧リストを作成する。一覧リストを作成したら、これを配置先候補ノードリスト８２としてメモリ６２に内部記憶する。配置先候補ノードリスト８２には、対象ソフトウェア部品が配置可能な動作要件を充足したノードを表わす１個又は複数のノード識別子がリスト形式で格納される。
【００４０】
ここで、図１の例を参照しながら、配置先候補ノードリスト８２の作成処理について詳述する。図１の分散アプリケーションの構成においてソフトウェア部品Ｂが配置先の選択対象になっているとする。この場合、ソフトウェア部品Ｂの動作要件は、３２ＭＢのメモリ空き領域だけなので、ハードウェア構成のうち第１〜第３ノード１１〜１３がこの動作要件を充足する。従って、これら第１〜第３ノード１１〜１３が配置先候補ノードとなる。ここで、第２ノード１２や第３ノード１３は、ソフトウェア部品Ａ，Ｃの動作要件とそのハードウェア構成等から、ソフトウェア部品Ａ，Ｃの配置先ノードとして既に決定されている。しかしながら、ソフトウェア部品は、同一ノードに複数配置されることも可能なので、これらの第２ノード１２や第３ノード１３もソフトウェア部品Ｂの配置先候補ノードとして抽出される。なお、１つのノードに或るソフトウェア部品が既に配置済みとなっている場合には、当該ノードのメモリ空き容量は、元の空き容量からそのソフトウェア部品が使用するメモリ容量分だけ差し引いて扱うようにされる。
【００４１】
配置先候補ノードリスト８２が作成されたら、つぎに、ステップＳ４において、ＣＰＵ６１は、ハードウェア・ネットワーク構成ＤＢ６８からネットワーク接続構成情報６８Ｂを読み込んで、対象ソフトウェア部品の連携動作の優先度とネットワーク経路の優劣度を考慮した配置先候補ノードの適性度をそれぞれ算出する。そして、この適性度の高い順で、配置先候補ノードリスト８２をソートして、配置先候補ノード適性度順ソートリスト８３を作成する。そして、このリスト８３をメモリ６２に内部記憶し、さらに、これを出力部６４を介して表示出力する。この配置先候補ノード適性度順ソートリスト８３の出力により、対象ソフトウェア部品について優先度の高い連携動作がより優良なネットワーク経路を介して実行できる順番で、複数の配置先候補ノードが提示されることとなる。なお、このステップＳ４の処理については、図４のフローチャートを用いて後に詳述する。
【００４２】
配置先候補ノード適性度順ソートリスト８３を出力したら、続いて、ステップＳ５において、ＣＰＵ６１は、ユーザからの選択入力処理を行う。ユーザは、配置先候補ノード適性度順ソートリスト８３の表示出力を見ながら、対象ソフトウェア部品の配置先ノードを選択操作する。ユーザは、配置先候補ノード適性度順ソートリスト８３を頼りに、優先度の高い連携動作がより優良なネットワーク経路を介して実行されるように、対象ソフトウェア部品について適性度の高い配置先ノードの選択処理を行うことができる。
【００４３】
配置先ノードが選択されたら、ステップＳ６において、ＣＰＵ６１は、この配置先ノードの情報を対象のソフトウェア部品と対応づけて配置先ノード情報６７Ｂに格納する。そして、１回のソフトウェア部品の配置先ノードの選択支援処理を終了する。ユーザは、このような選択支援処理を複数回繰り返すことで、複数のソフトウェア部品の各々について配置先ノードを適宜決定していくことができる。
【００４４】
図４には、図３のステップＳ４で実行される「配置先候補ノード適性度順ソートリスト作成・表示処理」の詳細なフローチャートを示す。また、図５には、図４のステップＳ１１，Ｓ１２の処理で使用される通信処理の内容に応じた信頼性要求レベルの一例を示した対応表を、図６には、通信処理の内容をより細分化した場合の信頼性要求レベルの一例を示した対応表を、それぞれ示す。
【００４５】
上述の配置先ノードの選択支援処理（図３）においてステップＳ４の処理に移行すると、ＣＰＵ６１は、次にステップＳ１１〜Ｓ１７の処理によって、配置先ノードの選択対象になっている対象ソフトウェア部品について、配置先候補ノードが適性度順に示される配置先候補ノード適性度順ソートリスト８３を作成し、表示出力するようになっている。
【００４６】
すなわち、ステップＳ１１に移行すると、ＣＰＵ６１は、先のステップＳ２（図３）でメモリ６２に内部記憶した、配置したいソフトウェア部品情報８１から、対象ソフトウェア部品についての連携関係の情報をリスト抽出する（連携先抽出手段）。そして、これらをまとめて連携情報リスト８５としてメモリ６２に内部記憶する。図１の例では、配置先ノードの選択対象になっている対象ソフトウェア部品Ｂについて、連携先であるソフトウェア部品Ａ，Ｃ，Ｄとの各種の連携情報“Ｂ−Ｄ”，“Ｂ−Ａ”，“Ｂ−Ｃ”が抽出される。 
【００４７】
連携情報リスト８５には、例えば、次のようなデータが含まれる。
１．連携先ソフトウェア部品の情報
対象ソフトウェア部品と連携関係にある別のソフトウェア部品を識別する情報である。図１の例では、対象ソフトウェア部品Ｂについて、このソフトウェア部品Ｂと連携関係にある、ソフトウェア部品Ａ，Ｃ，Ｄを示す識別子データが該当する。
２．各連携動作の連携信頼性要求レベル
対象ソフトウェア部品により実行される各連携動作について、要求される信頼度の度合いをそれぞれ表わしたデータである。例えば、図５の表に示すように、予め、通信内容とそれに要求される信頼度の要求レベル値とを対応づけておき、ソフトウェア部品仕様情報に含まれる通信種類のデータにより示される通信内容の情報と上記の要求レベルの対応表とから、対象ソフトウェア部品の各連携動作に対して要求レベル値をそれぞれ割り当て、これを各連携動作の連携信頼性要求レベルのデータとして抽出する。例えば、連携動作がアラーム通知通信であれば、信頼性要求レベルは高い値“３”となり、デバッグメッセージ通信であれば信頼性要求レベルは低い値“１”となる。
また、図６の表に示すように、ソフトウェア部品仕様情報に含まれる通信内容の情報や連携マップ情報に含まれる通信パラメータの情報等に基づいて、より詳細な信頼性要求レベルを割り付けるようにしてもよい。例えば、連携動作がアラーム通知通信の場合でも、ユーザ指定の要求メッセージ到達時間の設定値に応じて信頼性の要求レベル値を“５”，“４”，“２”と段階づけたり、収集データの保存要求通信や定周期のポーリング通信の場合でも、ユーザ指定の要求レスポンス時間の設定値に応じて要求レベル値を段階づけたりすることもできる。これら連携動作の内容や通信パラメータと要求レベル値との対応関係は、一般的に要求される信頼性の高低に応じて予め定めておいてもよいし、ユーザにより設定可能なようにしてもよい。
３．連携動作の仕様情報
ソフトウェア部品仕様情報の通信の属性情報に含まれるもので、通信プロトコル形態（例えば定周期ポーリングやイベント通知など）や、通信量算出情報（メッセージ発生頻度算出ロジックの情報や１メッセージのデータ長算出ロジックの情報など）などが該当する。
４．連携パラメータ設定値
ソフトウェア部品仕様情報や連携マップ情報にユーザ指定のパラメータ値として含まれるもので、ポーリング周期、ポーリング問い合わせアイテム数、イベントを発生させる監視対象についての情報（イベントソース情報）、イベント予想発生頻度を算出可能とするイベントキューイング規則の設定パラメータなどが該当する。
【００４８】
なお、これらの連携情報リスト８５には、対象ソフトウェア部品が主となって連携先のソフトウェア部品が従属して実行される連携動作に係る情報のみでなく、連携先のソフトウェア部品が主となって対象ソフトウェア部品が従属して実行される連携動作に係る情報も格納される。
【００４９】
上記のような連携情報リスト８５を抽出したら、つぎに、ステップＳ１２において、ＣＰＵ６１は、この連携情報リスト８５を用いて各連携動作について重要度の指標値を求める演算処理を行う（連携重み付け演算手段）。さらに、求めた重要度の指標値に基づいて各連携動作を重要度の高い順に並べ変える処理（ソート処理）を行う。そして、最も重要度の高い連携動作についての情報を最重要連携情報８６としてメモリ６２に内部記憶する。
【００５０】
先ず、各連携動作の重要度の指標値を求める演算処理について、単純な詳細例を用いて説明する。この詳細例では、重要度の指標値として、例えば、１．連携信頼性要求レベル値、２．連携先ソフトウェア部品の処理内容の重要度を表わすレベル値、３．各連携動作の単位時間当たりの通信量を算出する。
【００５１】
１．連携信頼性要求レベル値
連携信頼性要求レベル値は、ステップＳ１１で連携情報リスト８５を作成する際に図５や図６の対応表から得られた値をそのまま適用することができる。
【００５２】
２．連携先ソフトウェア部品の処理内容の重要度を表わすレベル値
連携先ソフトウェア部品の処理内容の重要度を表わすレベル値は、例えば、ソフトウェア部品仕様情報に含まれる通信種類の情報や、連携マップ情報に示される各ソフトウェア部品の処理内容の情報に基づいて、ＣＰＵ６１が連携先ソフトウェア部品の処理内容に応じたレベル値を求める。レベル値は、各処理内容と重要度レベル値との対応表を用意しておき、ＣＰＵ６１がこれを照合することで求めたりする。或いは、連携マップ情報に、各ソフトウェア部品が行う処理内容とともに重要度のレベル値もユーザが指定できるようにしておき、ＣＰＵ６１が連携先ソフトウェア部品に対応するこのレベル値を抽出して、これを連携先ソフトウェア部品の処理内容の重要度を表わすレベル値として適用することもできる。
【００５３】
具体的には、連携先のソフトウェア部品が、例えば、設備緊急停止スイッチの押下検出の処理を行っている場合などに、通信種類の情報或いは連携マップ情報にこの処理内容を表わす情報を含めておくか、或いは、連携マップ情報にこの処理内容に対応する重要度レベル値を指定しておくことで、ＣＰＵ６１がこれらの情報から、連携先ソフトウェア部品の処理内容の重要度を示すレベル値を求める。
【００５４】
３．各連携動作の単位時間当たりの通信量
各連携動作の単位時間当たりの通信量は、ソフトウェア部品仕様情報に含まれる通信属性の情報や、連携マップ情報に含まれるユーザ指定の通信パラメータの情報等から、ＣＰＵ６１が演算処理を行って算出する。次に、定周期ポーリングの場合と、イベント通知の場合の算出例を示す。なお、これらの場合には、通信量の多い方が重要度が高いものとする。
【００５５】
＜定周期ポーリングの通信量算出例＞
連携動作の通信種類の情報として定周期ポーリングが示されている場合、まず、通信属性の情報やユーザ指定の通信パラメータ値にあるポーリング周期の設定値からメッセージの発生頻度を算出する。つぎに、ポーリング問い合わせアイテム数の設定値や、各メッセージのデータ長算出ロジックの情報から、リクエストやレスポンスの全メッセージのデータ長を算出する。そして、これらのメッセージ発生頻度とメッセージのデータ長とを乗算して、単位時間当たりの通信量を算出する。
＜イベント通知の場合の通信量算出例＞
連携動作の通信種類の情報としてイベント通知が示されている場合、先ず、上記の連携動作の仕様情報に含まれる各メッセージのデータ長算出ロジックの情報から各イベントメッセージのデータ長を算出する。また、上記の連携パラメータ設定値の情報から対象の連携動作に係るイベントソース数を読み出す。さらに、連携動作の仕様情報に含まれるメッセージ発生頻度の算出ロジックの情報からイベント予想発生頻度を算出する。そして、これら１イベントメッセージデータ長、イベントソース数、イベント予想発生頻度をそれぞれ乗算して、単位時間当たりの通信量を算出する。
【００５６】
このように、ＣＰＵ６１は、連携情報リスト８５の情報に基づいて、対象ソフトウェア部品の各連携動作についての重要度の指標値（例えば、連携信頼性要求レベル値、連携先ソフトウェア部品処理内容重要度レベル値、各連携動作の単位時間当たりの通信量など）を算出することができる。
【００５７】
上記のような各連携動作の重要度の指標値を演算したら、ＣＰＵ６１は、つぎのようにして、対象ソフトウェア部品の各連携動作について重要度順にソートする処理を行う。すなわち、上記算出した連携信頼性要求レベル値、連携先ソフトウェア部品処理内容重要度レベル値、各連携動作の単位時間当たりの通信量を、それぞれ別々のソートキーとして割当てる。各ソートキーは、より重要度に影響を与える指標を第１優先ソートキーとし、重要度に与える影響が小さくなる順番でソートキーの優先番号を低くしていく。上記の詳細例の場合には、重要度に与える影響が一番大きい連携信頼性要求レベル値を第１優先ソートキーとし、二番目に影響の大きな連携先ソフトウェア部品処理内容重要度レベル値を第２優先ソートキーとし、三番目に影響の大きな単位時間当たりの通信量を第３優先ソートキーとする。そして、これらの第１優先ソートキー〜第３優先ソートキーの各指標値に応じて、重要度の高い順に各連携動作について並べ変えを行う。
【００５８】
その結果、例えば、第１優先ソートキーの連携信頼性要求レベル値が、１つの連携動作だけ高い値になっていれば、この連携動作がソート処理によりリストの最上位に来る。また、第１優先ソートキーの連携信頼性要求レベル値が、複数の連携動作で同値になっていれば、第２優先ソートキーの指標値の高いものがリストの上位にソートされる。また、第２優先ソートキーの指標値も同値であれば、第３優先ソートキーの指標値の高いものがリストの上位にソートされる。
【００５９】
そして、ステップＳ１２において、上記のソート処理の結果、リストの最上位の連携動作を示す情報が、ＣＰＵ６１に読み出されて最重要連携情報８６としてメモリ６２に内部記憶される。
【００６０】
最重要連携情報８６を抽出したら、次に、ＣＰＵ６１はステップＳ１３に移行して、この最重要とされた連携動作を行う連携先のソフトウェア部品を示す情報を取得する。その際、連携情報リスト８５等から、この最重要の連携先ソフトウェア部品に関する情報を抽出して連携先ソフトウェア部品情報８７としてまとめておく。そして、この連携先ソフトウェア部品情報８７から、この最重要の連携先ソフトウェア部品が配置される配置先ノードを示す情報を取得し、連携ソフトウェア部品配置先ノード情報８８としてメモリ６２に内部記憶する。上記のステップＳ１２，Ｓ１３の処理ステップにより重要連携先抽出手段が構成される。
【００６１】
なお、ソフトウェア部品の配置先ノードは、大半がその動作要件と各ノードのハードウェア構成とから、或いは、連携マップ情報に示されるユーザによる配置先ノードの設定データから一意に決定されるため、多くの場合において、最重要の連携先ソフトウェア部品は既に配置先ノードが決まった状態にある。
【００６２】
しかしながら、最重要の連携先ソフトウェア部品の配置先ノードが未決定である場合もあるため、その場合には、次のような例外処理を行うようにしてもよい。例えば、最重要連携先ソフトウェア部品の配置先ノードが未決定であった場合、ユーザに「他のソフトウェア部品の配置先を先に決定してください」、或いは、「次のソフトウェア部品（最重要の連携先ソフトウェア部品）の配置先を先に決定してください」等のメッセージ出力を行って、現在選択されている対象ソフトウェア部品の配置先ノード選択支援処理を中止する。または、最重要の連携先ソフトウェア部品の配置先ノードが未決定であった場合、ステップＳ１２に戻って、重要度順にソート処理した連携情報リストの中から、次に重要度の高い位置に登録されている連携動作の情報を最重要連携情報８６に書き換えて、ステップＳ１３に移行する。このような例外処理により、ステップＳ１３において最重要の連携先ソフトウェア部品についての配置先ノードが取得される。
【００６３】
最重要の連携先ソフトウェア部品の配置先ノードが取得されたら、ＣＰＵ６１はステップＳ１４に移行して、次のような処理を行う。まず、ネットワーク接続構成情報６８Ｂからネットワークトポロジーの情報を読み込み、さらに、ステップＳ３（図３）の処理で抽出した配置先候補ノードリスト８２と、上記の連携ソフトウェア部品配置先ノード情報８８とを参照して、最重要連携先ソフトウェア部品の配置先ノードと、対象ソフトウェア部品の複数の配置先候補ノードとの間の各ネットワーク経路を示す情報を抽出する（経路抽出手段）。そして、これらの情報をまとめてネットワーク経路情報リスト８９としてメモリ６２に内部記憶する。
【００６４】
なお、分散アプリケーションシステムにおいては、複数のソフトウェア部品を同一ノードに配置することが可能なので、上記のネットワーク経路を示す情報には、最重要連携先ソフトウェア部品の配置先ノードと対象ソフトウェア部品の配置先候補ノードとが、同一ノードとされる場合のものも含まれる。この場合のネットワーク経路を示す情報は、例えば、経路回線や経路途中の中継ノードがゼロのネットワーク経路と表わされたりする。
【００６５】
ここで、図１の例を参照しながら、上記のネットワーク経路の抽出処理の具体例を説明する。配置先ノードの選択対象となって対象ソフトウェア部品Ｂに対して、最重要の連携先がソフトウェア部品Ｃとされ、このソフトウェア部品Ｃの配置先ノードが動作要件等から第３ノード１３に決定されている場合を説明する。この場合、対象ソフトウェア部品Ｂの配置先候補ノードとしては、動作要件等から第１〜第３ノード１１〜１３があるので、ステップＳ１４の処理で抽出されるネットワーク経路は、第３ノード１３と第１〜第３ノード１１〜１３とを結ぶ３つの経路となる。すなわち、両ソフトウェア部品Ｂ，Ｃが同一の第３ノード１３に配置される場合の第１のネットワーク経路（経路ゼロ）ｒｏ１と、第３ノード１３からネットワークスイッチ２３を介して第２ノード１２に到達する第２のネットワーク経路ｒｏ２と、第３ノード１３からネットワークスイッチ２３とルータ２１とネットワークスイッチ２２とを介して第１ノード１１に到達する第３のネットワーク経路ｒｏ３である。
【００６６】
ネットワーク経路の抽出とこれらに関する経路情報リスト８９が作成できたら、続くステップＳ１５において、ＣＰＵ６１は、各ネットワーク経路のネットワーク経路コストを算出する。そして、この算出結果を、ネットワーク経路コスト情報リスト９０としてメモリ６２に内部記憶する。
【００６７】
ここで、各ネットワーク経路についてのネットワーク経路コストの算出処理の具体例を、各連携機能がＩＰ（Internet Protocol）ネットワーク経由の通信を利用している場合の単純な構成例を用いて説明する。このような構成の場合、次の１．最低回線容量や２．経路ホップ数を、ネットワーク経路コストとして算出することができる。
１．経路途中の最低回線容量
対象のネットワーク経路を構成する０個〜複数の回線の属性情報から、各回線の回線容量（ｂｐｓ：Bit par Second）を抽出し、その中で最も低い回線容量を、このネットワーク経路の最低回線容量として算出する。
２．ネットワーク経路ホップ数
対象のネットワーク経路上にある全ての中継ノードや回線について、信頼性低下につながる作用について、その度合いに応じた点数を加算していき、これらの点数の合計を経路ポップ数として演算する。例えば、中継ノードの種別がレイヤ２のネットワークスイッチであれば１点加算、ＩＰルータ機器であれば２点加算、ＷＡＮ経由であれば１０点加算などである。経路ホップ数はその数が大きくなるほど、ネットワーク経路の信頼性が低いことを表わす。
【００６８】
経路コストを算出してネットワーク経路コスト情報リスト９０が作成されたら、つぎにステップＳ１６において、ＣＰＵ６１は、この経路コスト情報リスト９０を、経路コストが低い順になるようにソート処理する。これらステップＳ１５，Ｓ１６の経路コストに関わる処理により経路優劣度比較手段が構成される。さらに、このソート処理と同様に配置先候補ノードリスト８２の並べ変えを行って、ネットワーク経路の経路コストが低い順になるように配置先候補ノードをソートする。そして、これを配置先候補ノード適性度順ソートリスト８３としてメモリ６２に内部記憶する。
【００６９】
ネットワーク経路コスト情報リスト９０のソート処理は、例えば、次のようにして行われる。すなわち、ネットワーク経路コストのデータのうち、最低回線容量を第１優先ソートキー、経路ホップ数を第２優先ソートキーとし、各ソートキーの値が優良を表わすほうから順に並ぶようにソート処理を行う。これにより、ネットワーク経路コスト情報リスト９０や配置先候補ノードリスト８２が、対応するネットワーク経路の最低回線容量の大きい順に、また、回線容量が同一の場合には経路ホップ数が低い順に並び変えられる。
【００７０】
図１の例の場合、最重要連携先ソフトウェア部品Ｃの配置先ノードが第３ノード１３であるので、第３ノード１３と配置先候補ノード１１〜１３を接続する第１〜第３のネットワーク経路ｒｏ１〜ｒｏ３のうち、ネットワーク回線を介さずに通信可能な第１ネットワーク経路ｒｏ１が第１位に、最低回線容量が５０Ｍｂｐｓである第３ネットワーク経路ｒｏ３が第２位に、最低回線容量が１２Ｍｂｐｓである第２ネットワーク経路ｒｏ２が第３位となる。そして、これに対応して配置先候補ノード適性度順ソートリスト８３では、第３ノード１３が第１位に、第１ノード１１が第２位に、第２ノード１２が第３位になる。
【００７１】
配置先候補ノード適性度順ソートリスト８３が得られたら、つぎに、ステップＳ１７において、ＣＰＵ６１はこの配置先候補ノード適性度順ソートリスト８３を出力部６４を介して表示出力する。これらの配置先候補ノードのソート処理とソートリスト８３の出力処理により配置先候補算出手段が構成される。これにより、配置先ノードの選択対象になっている対象ソフトウェア部品について配置先候補ノードを示す情報（例えば各ノードの識別子）が、適性度順に出力部６４に表示出力される。そして、この図４の配置先候補ノード適性度順ソートリスト作成・表示処理を終了する。その後、上述したように、図３のステップＳ５の処理に移行して、ユーザにより配置先候補ノード適性度順ソートリスト８３を頼りにした配置先ノードの選択入力が行われることとなる。
【００７２】
以上のように、この実施形態のソフトウェア部品の配置先選択支援システム１００によれば、配置先の選択対象となっている対象ソフトウェア部品について、まず、動作要件を満たす配置先候補ノードが抽出されて、この中から配置先ノードが選択される構成なので、ソフトウェア部品を動作要件を充足していないノードに配置してしまうといった配置先ノードの誤設定を防ぐことができる。
【００７３】
さらに、上記の配置先候補ノードのリスト８２が、対象ソフトウェア部品とこれの連携先のソフトウェア部品との間の各連携処理のうち優先度の高いものが優良なネットワーク経路で行われるような適性度順でソートされ、配置先候補ノード適性度順ソートリスト８３が算出されるので、この適性度順ソートリスト８３を頼りに配置先ノードを選択することで、重要な連携動作を安定的に実行させるような各ソフトウェア部品の配置先ノードの選定を容易に行えるという効果が得られる。また、このような配置先ノードの選択により、アプリケーションシステム全体の安定性の向上を図れるという効果が得られる。
【００７４】
なお、本発明は、上記の実施形態に限られるものではなく、様々な変更が可能である。例えば、上記実施形態では、各連携動作の優先度を比較するのに、連携処理の重要度を表わす複数種類の指標を別々のソートキーとして、優先するソートキーから指標値順にソート処理して、最重要の連携動作を決定するように構成したが、例えば、重要度を表わす複数種類の指標値をそれぞれ所定の重み付けで合算して１種類の指標値で表わし、この１種類の指標値により最優先の携動作を決定するように構成してもよい。また、優先度を表わす指標の種類も、上記実施形態に示したものは一例に過ぎず、種々の変更が可能である。
【００７５】
また、上記実施形態では、各連携動作ごとに重要度を比較して、最重要の連携動作を決定し、この連携動作が行われる連携先を最重要の連携先ソフトウェア部品として扱うようにしているが、各連携動作ごとに重要度を比較するのでなく、各連携相手ごとに重要度を比較して最重要の連携先ソフトウェア部品を決定するように構成してもよい。すなわち、対象ソフトウェア部品と個々の連携先ソフトウェア部品との間で行われる複数の連携動作に関する重要度を、各連携先のソフトウェア部品ごとに集計して、それらを比較することで、最重要の連携先ソフトウェア部品を決定するように構成してもよい。
【００７６】
また、上記実施形態では、各ネットワーク経路の通信処理上の優劣を比較するのに、経路コストを表わす二種類の指標（最低回線容量、ホップ数）を、別々のソートキーとして、優先するソートキーから指標値順にソート処理して、経路コストの低いネットワーク経路を優良なものとして決定しているが、これらについても、複数種類の指標値をそれぞれ所定の重み付けで合算して１種類の指標値で表わし、これにより各ネットワーク経路の優劣を表わすようにしてもよい。また、各ネットワーク経路の通信処理上の優劣を表わす指標は、上記の最低回線容量とホップ数に限られず、種々の変更が可能である。
【００７７】
［第２実施形態］
第２実施形態の配置先ノード選択支援システム１００Ａは、図３のステップＳ４で実行される配置先候補ノード適性度順ソートリスト作成・表示処理の内容を一部変更したものであり、その他の構成や処理内容は第１実施形態と同様である。したがって、第１実施形態と異なる部分のみ説明する。
【００７８】
図７には、本発明の第２実施形態の配置先ノード選択支援システム１００Ａの全体構成図を示す。また、図８には、図３のステップＳ４で実行される第２実施形態の配置先候補ノード適性度順ソートリスト作成・表示処理の詳細なフローチャートを示す。
【００７９】
第２実施形態の配置先ノード選択支援システム１００Ａは、各ネットワーク経路の通信処理上の優劣を比較するのに、ネットワーク回線のＱｏｓ（Quality of Service）機能を考慮するようにしたものである。Ｑｏｓ機能とは、ルータやネットワークスイッチなどにおいて、特定の通信に使用される通信帯域を予め優先的に予約しておくことが可能な機能等である。
【００８０】
第２実施形態の配置先ノード選択支援システム１００Ａには、第１実施形態の構成に加えて、Ｑｏｓ機能の管理情報が蓄積されるネットワークＱｏｓ管理ＤＢ７１が備わるようになっている。ネットワークＱｏｓ管理ＤＢ７１には、例えば、システムのネットワークと実際に接続して各通信機器と管理データの送受信を行うことでネットワーク機器に備わるＱｏｓ機能の情報を収集したり、Ｑｏｓ機能に関する設定を行うＱｏｓ管理ツールを用いて、システムネットワークに備わるＱｏｓ機能の情報が読み込まれ、その管理情報が蓄積されるようになっている。
【００８１】
ネットワークＱｏｓ管理ＤＢ７１には、例えば、ネットワーク構成に備わる各ネットワーク中継器のうちＱｏｓ管理の対応機器を示す対応機器リスト７１Ａや、各Ｑｏｓ管理対応機器について予約可能になっているネットワーク帯域幅の情報７１Ｂが蓄積されるようになっている。
【００８２】
図８に示すように、第２実施形態の「配置先候補ノード適性度順ソートリスト作成・表示処理」においては、ステップＳ１４でＣＰＵ６１がネットワーク経路情報リスト８９を作成したら、次にステップＳ２１に移行して、ネットワーク経路情報リスト８９の各ネットワーク経路について、Ｑｏｓ機能によるネットワーク帯域幅の予約が可能であるか算出する処理を行う。すなわち、ネットワークＱｏｓ管理ＤＢ７１からメモリ６２に読み出したＱｏｓ管理対応機器リスト９２に基づいて、対象のネットワーク経路上にある全てのネットワーク機器のＱｏｓ管理対応情報を参照し、ネットワーク経路が帯域幅予約可能な経路か否かを判断する。さらに、予約可能な経路であると判断したら、メモリ６２に読み出した予約可能ネットワーク帯域幅情報９１に基づいて予約可能な帯域幅を算出する。そして、これらの情報をネットワーク経路情報リスト８９に追加する。
【００８３】
さらに、第２実施形態の「配置先候補ノード適性度順ソートリスト作成・表示処理」においては、続く、ステップＳ１５，Ｓ１６で各ネットワーク経路の経路コスト情報を算出し、各ネットワーク経路の情報を経路コストの低い順にソートする処理の際、上記Ｑｏｓ機能による予約可能なネットワーク帯域幅の情報を参照したソート処理を行う。
【００８４】
すなわち、ステップＳ１６のソート処理の際、ソートの指標として、第１実施形態で説明した最低回線容量と、ネットワークホップ数に加え、Ｑｏｓ管理対応／未対応の情報と、予約可能帯域幅の情報とを加える。具体的には、第１優先ソートキーとしてネットワーク経路の予約可能帯域幅（Ｑｏｓ管理未対応である場合には最低回線容量とする）を、第２優先ソートキーとしてネットワーク経路の最低回線容量を、第３優先ソートキーとしてネットワーク経路のホップ数を割り当てる。そして、優先順に各ソートキーの指標値順に並べ替えを行って、通信処理上優良と判断される順にネットワーク経路情報リスト８９をソートする。
【００８５】
また、第１実施形態と同様に、上記のステップＳ１６において、上記の経路コストに基づくソート処理に対応させて配置先候補ノードリスト８２のソート処理も行う。そして、続くステップＳ１７において、ソート後の配置先候補ノード適性度順ソートリスト８３を出力部６４を介して表示出力する。
【００８６】
図９には、第２実施形態における配置先候補ノード適性度順ソートリストの表示例を表わした画像図を示す。
【００８７】
図９に示すように、ステップＳ１７の表示出力処理においては、配置先候補ノードの識別子（ノードＩＤ）を適性度順にリスト表示するとともに、各配置先候補ノードに対応させてＱｏｓ管理対応か否か、Ｑｏｓ管理対応であれば予約可能な帯域幅の値を同時に表示出力する。
【００８８】
このような表示出力により、ユーザは対象ソフトウェア部品の配置先ノードを選択する際に、その配置先ノードに対象ソフトウェア部品を配置したときの重要連携動作に使用されるＱｏｓ管理予約帯域幅を確認することができ、Ｑｏｓ機能を考慮した配置先ノードの選択処理を行うことが可能となる。
【００８９】
以上のように、第２実施形態の配置先ノード選択支援システム１００Ａによれば、分散アプリケーションを構成する複数のソフトウェア部品を、その動作要件を充足するように配置先候補ノードをユーザに示すことができるとともに、重要な連携動作がＱｏｓ機能を考慮した優良なネットワーク回線を介した通信により行われるように、各ソフトウェア部品の配置先候補ノードをユーザに選択させることができるという効果が得られる。
【００９０】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。例えば、上記第１と第２の実施形態では、配置先ノードを決定したい１つのソフトウェア部品をユーザが選択することで、このソフトウェア部品についての配置先候補ノードを適性度順に並べてユーザに提示する構成としているが、例えば、配置先ノード選択支援システムが自動的に配置先ノードの選択対象とする対象ソフトウェア部品を選択し、配置先ノード選択支援システムが自動的にこの対象ソフトウェア部品について適性度の高い配置先ノードを演算して、配置先ノードを順次決定していくように構成してもよい。
【００９１】
その他、実施の形態で示した細部構成や処理内容は、発明の趣旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【００９２】
【図１】分散アプリケーションケーションシステムのソフトウェア構成とハードウェア構成の一例を示した説明図である。
【図２】本発明の第１実施形態の配置先ノード選択支援システムの全体を示した構成図である。
【図３】図２のＣＰＵにより実行されるソフトウェア部品の配置先ノードの選択支援処理の処理手順を示すフローチャートである。
【図４】配置先候補ノード適性度順ソートリスト作成・表示処理の詳細な処理手順を示すフローチャートである。
【図５】通信処理の内容と信頼性要求レベルの対応表の一例を示す図である。
【図６】通信処理の内容をより細分化した場合の信頼性要求レベルの対応表の一例を示す図である。
【図７】本発明の第２実施形態の配置先ノード選択支援システムの全体を示す構成図である。
【図８】第２実施形態における配置先候補ノード適性度順ソートリスト作成・表示処理の詳細な処理手順を示すフローチャートである。
【図９】第２実施形態における配置先候補ノード適性度順ソートリストの表示例を表わした画像図である。
【図１０】配置先ノード選択支援方法の検討例における入力データの一例を示すデータチャートである。
【図１１】配置先ノード選択支援方法の検討例におけるソフトウェア部品の配置例を示す構成図である。
【符号の説明】
【００９３】
Ａ〜Ｄ  ソフトウェア部品
１１〜１４  ノード
２１    ルータ
２２，２３  ネットワークスイッチ
ｒｏ１〜ｒｏ３  ネットワーク経路
６１    ＣＰＵ
６２    メモリ
６３    入力部
６４    出力部
６５    記憶装置
６６    記憶媒体
６７    アプリケーション構成ＤＢ
６７Ａ  ソフトウェア部品情報リスト
６７Ｂ  配置先ノード情報
６８    ハードウェア・ネットワーク構成ＤＢ
６８Ａ  ノード情報リスト
６８Ｂ  ネットワーク接続構成情報
７１    ネットワークＱｏｓ管理ＤＢ
７１Ａ  Ｑｏｓ管理対応機器リスト
７１Ｂ  予約可能ネットワーク帯域幅情報
８２    配置先候補ノードリスト
８３    配置先候補ノード適性度順ソートリスト
８５    連携情報リスト
８６    最重要連携情報
８９    ネットワーク経路情報リスト
９０    ネットワーク経路コスト情報リスト
１００，１００Ａ  配置先ノード選択支援システム
【図１】
2009282652.tif 000003
【図２】
2009282652.tif 000004
【図３】
2009282652.tif 000005
【図４】
2009282652.tif 000006
【図５】
2009282652.tif 000007
【図６】
2009282652.tif 000008
【図７】
2009282652.tif 000009
【図８】
2009282652.tif 000010
【図９】
2009282652.tif 000011
【図１０】
2009282652.tif 000012
【図１１】
2009282652.tif 000013