(57)【特許請求の範囲】
【請求項１】
性能に関する複数の性能属性それぞれの値である性能値により性能が示されるリソースノードから構成される複数のリソースノードのうち、要求される複数の性能属性の性能値が含まれる要求条件を満たすリソースノードを検索するノード検索装置であって、
各前記複数のリソースノードの性能属性ごとの性能値から構成されるリソース管理表を格納するリソース管理データベースと、
性能属性ごとに、前記リソース管理データベースによって格納されたリソース管理表に含まれる当該性能属性の性能値と、当該リソース管理表に当該性能値が含まれる度数とを対応付けた度数表を生成する度数表生成手段と、
前記度数表生成手段によって生成された性能属性ごとの度数表の各レコードについて、各レコードに含まれる性能値を当該性能属性が示す性能の良い順にソートしたソート度数表を生成するソート度数表生成手段と、
前記ソート度数表生成手段によって生成された性能属性ごとのソート度数表の各レコードについて累積度数をさらに対応付けた累積度数表を生成する累積度数表生成手段であって、前記累積度数は、各レコードについてソート順に、自レコードに含まれる度数と自レコードよりも前の順のレコード全てに含まれる度数とを加算した度数である、累積度数表生成手段と、
要求条件を取得する要求条件取得手段と、
前記要求条件取得手段によって取得された要求条件に含まれる性能属性ごとに、前記累積度数表生成手段によって生成された当該性能属性の累積度数表から、要求条件に含まれる当該性能属性の性能値が示す性能を最低限満たす性能値に対応付けられた累積度数を抽出する累積度数抽出手段と、
前記累積度数抽出手段によって抽出された性能属性ごとの累積度数に基づいて、累積度数が小さい順の性能属性の順を算出する性能属性順算出手段と、
前記要求条件取得手段によって取得された要求条件に含まれる複数の性能属性の各性能値について、前記性能属性順算出手段によって算出された性能属性の順に、前記リソース管理データベースによって格納されたリソース管理表に含まれるレコードのうち当該性能属性の性能値が示す性能以上の性能値を含むレコードを抽出して絞込みを行う絞込み手段と、
前記絞込み手段により、前記要求条件取得手段によって取得された要求条件に含まれる複数の性能属性の性能値全ての絞込みが行われたレコードが示すリソースノード情報を出力するリソースノード情報出力手段と、
を備えるノード検索装置。
【請求項２】
リソースノードの性能属性は、ＣＰＵ（Central  Processing  Unit）周波数とＣＰＵコア数とを含み、
性能属性としてのＣＰＵ周波数とＣＰＵコア数とは、ＣＰＵリソース量として扱い、ＣＰＵリソース量の性能値として、ＣＰＵ周波数の性能値とＣＰＵコア数の性能値とを乗算した値を用いる、
請求項１に記載のノード検索装置。
【請求項３】
各前記複数のリソースノードの性能値を取得し、取得した性能値で前記リソース管理データベースによって格納されたリソース管理表を更新するリソース更新手段をさらに備える、
請求項１又は２に記載のノード検索装置。
【請求項４】
性能に関する複数の性能属性それぞれの値である性能値により性能が示されるリソースノードから構成される複数のリソースノードのうち、要求される複数の性能属性の性能値が含まれる要求条件を満たすリソースノードを検索するノード検索装置であって、各前記複数のリソースノードの性能属性ごとの性能値から構成されるリソース管理表を格納するリソース管理データベースを備えるノード検索装置により実行されるノード検索方法であって、
性能属性ごとに、前記リソース管理データベースによって格納されたリソース管理表に含まれる当該性能属性の性能値と、当該リソース管理表に当該性能値が含まれる度数とを対応付けた度数表を生成する度数表生成ステップと、
前記度数表生成ステップにおいて生成された性能属性ごとの度数表の各レコードについて、各レコードに含まれる性能値を当該性能属性が示す性能の良い順にソートしたソート度数表を生成するソート度数表生成ステップと、
前記ソート度数表生成ステップにおいて生成された性能属性ごとのソート度数表の各レコードについて累積度数をさらに対応付けた累積度数表を生成する累積度数表生成ステップであって、前記累積度数は、各レコードについてソート順に、自レコードに含まれる度数と自レコードよりも前の順のレコード全てに含まれる度数とを加算した度数である、累積度数表生成ステップと、
要求条件を取得する要求条件取得ステップと、
前記要求条件取得ステップにおいて取得された要求条件に含まれる性能属性ごとに、前記累積度数表生成ステップにおいて生成された当該性能属性の累積度数表から、要求条件に含まれる当該性能属性の性能値が示す性能を最低限満たす性能値に対応付けられた累積度数を抽出する累積度数抽出ステップと、
前記累積度数抽出ステップにおいて抽出された性能属性ごとの累積度数に基づいて、累積度数が小さい順の性能属性の順を算出する性能属性順算出ステップと、
前記要求条件取得ステップにおいて取得された要求条件に含まれる複数の性能属性の各性能値について、前記性能属性順算出ステップにおいて算出された性能属性の順に、前記リソース管理データベースによって格納されたリソース管理表に含まれるレコードのうち当該性能属性の性能値が示す性能以上の性能値を含むレコードを抽出して絞込みを行う絞込みステップと、
前記絞込みステップにより、前記要求条件取得ステップにおいて取得された要求条件に含まれる複数の性能属性の性能値全ての絞込みが行われたレコードが示すリソースノード情報を出力するリソースノード情報出力ステップと、
を含むノード検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、性能に関する要求条件を満たす仮想マシン用に準備されたサーバプール（リソースノード）を検索するノード検索装置及びノード検索方法に関する。
【背景技術】
【０００２】
従来、サーバ仮想化及びネットワーク仮想化等の仮想化技術により、距離の離れた拠点の間で仮想マシン（Virtual  Machine(ＶＭ)）の移動及び配備と、これに追従した柔軟なネットワーク制御による、拠点を跨るリソース（設備）の融通が行われてきた。例えば、下記特許文献１には、新たな仮想計算機で必要とするリソースの使用量を含む要求スペックを受け付け、当該使用量を割当てることの可能な仮想計算機を検索し、配備するリソース管理サーバが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−３８３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
リソースの融通をサービス状況にあわせて動的に行うことで、ある拠点のサービスのリソースが不足した場合でも、他の拠点のリソースを用いてサービスを増強し、サービスの輻輳を回避することができる。しかしながら、リソースの融通が可能な拠点が多数ある場合に、全ての拠点についてどの拠点のリソースであれば性能（サービス）の要求条件が満たされるかを検索するために、多くの時間が必要となる。
【０００５】
そこで、本発明は、かかる課題に鑑みて為されたものであり、性能の要求条件を満たすリソースノードをより速く検索することができるノード検索装置及びノード検索方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のノード検索装置は、性能に関する複数の性能属性それぞれの値である性能値により性能が示されるリソースノードから構成される複数のリソースノードのうち、要求される複数の性能属性の性能値が含まれる要求条件を満たすリソースノードを検索するノード検索装置であって、各複数のリソースノードの性能属性ごとの性能値から構成されるリソース管理表を格納するリソース管理データベースと、性能属性ごとに、リソース管理データベースによって格納されたリソース管理表に含まれる当該性能属性の性能値と、当該リソース管理表に当該性能値が含まれる度数とを対応付けた度数表を生成する度数表生成手段と、度数表生成手段によって生成された性能属性ごとの度数表の各レコードについて、各レコードに含まれる性能値を当該性能属性が示す性能の良い順にソートしたソート度数表を生成するソート度数表生成手段と、ソート度数表生成手段によって生成された性能属性ごとのソート度数表の各レコードについて累積度数をさらに対応付けた累積度数表を生成する累積度数表生成手段であって、累積度数は、各レコードについてソート順に、自レコードに含まれる度数と自レコードよりも前の順のレコード全てに含まれる度数とを加算した度数である、累積度数表生成手段と、要求条件を取得する要求条件取得手段と、要求条件取得手段によって取得された要求条件に含まれる性能属性ごとに、累積度数表生成手段によって生成された当該性能属性の累積度数表から、要求条件に含まれる当該性能属性の性能値が示す性能を最低限満たす性能値に対応付けられた累積度数を抽出する累積度数抽出手段と、累積度数抽出手段によって抽出された性能属性ごとの累積度数に基づいて、累積度数が小さい順の性能属性の順を算出する性能属性順算出手段と、要求条件取得手段によって取得された要求条件に含まれる複数の性能属性の各性能値について、性能属性順算出手段によって算出された性能属性の順に、リソース管理データベースによって格納されたリソース管理表に含まれるレコードのうち当該性能属性の性能値が示す性能以上の性能値を含むレコードを抽出して絞込みを行う絞込み手段と、絞込み手段により、要求条件取得手段によって取得された要求条件に含まれる複数の性能属性の性能値全ての絞込みが行われたレコードが示すリソースノード情報を出力するリソースノード情報出力手段と、を備える。
【０００７】
このようなノード検索装置によれば、累積度数抽出手段によって抽出された性能属性ごとの累積度数は、リソース管理表の全レコードのうち、要求条件の当該性能属性の性能値が示す性能を満たすレコードの数を示す。つまり、性能属性順算出手段によって算出された、累積度数が小さい順の性能属性の順は、リソース管理表の全レコードのうち、要求条件の当該性能属性の性能値が示す性能を満たすレコードの数が少ない順を示す。それにより、絞込み手段によって、絞込んだ結果のレコードの数が少ない順に絞込みが行われるため、性能の要求条件を満たすリソースノードをより速く検索することができる。
【０００８】
また、本発明のノード検索装置において、リソースノードの性能属性は、ＣＰＵ（Central  Processing  Unit）周波数とＣＰＵコア数とを含み、性能属性としてのＣＰＵ周波数とＣＰＵコア数とは、ＣＰＵリソース量として扱い、ＣＰＵリソース量の性能値として、ＣＰＵ周波数の性能値とＣＰＵコア数の性能値とを乗算した値を用いることが好ましい。かかる構成を採れば、ＣＰＵ周波数とＣＰＵコア数とのどちらかが要求条件を満たさない場合でも、ＣＰＵ周波数とＣＰＵコア数とを乗算したＣＰＵリソース量を満たすリソースノード候補を検索することができる。それにより、例えば、サービスの要求条件を満たせない場合にサービス増強が困難になるという課題を解決することができる。
【０００９】
また、本発明のノード検索装置において、各複数のリソースノードの性能値を取得し、取得した性能値でリソース管理データベースによって格納されたリソース管理表を更新するリソース更新手段をさらに備えることが好ましい。かかる構成を採れば、例えば、最新のリソースノードの性能値を取得し、リソース管理表を更新することで、現状のリソースノードの性能値に基づいた、要求条件を満たすリソースノードを検索することができる。
【００１０】
ところで、本発明は、上記のようにノード検索装置の発明として記述できる他に、以下のようにノード検索方法の発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００１１】
即ち、本発明に係るノード検索方法は、性能に関する複数の性能属性それぞれの値である性能値により性能が示されるリソースノードから構成される複数のリソースノードのうち、要求される複数の性能属性の性能値が含まれる要求条件を満たすリソースノードを検索するノード検索装置であって、各複数のリソースノードの性能属性ごとの性能値から構成されるリソース管理表を格納するリソース管理データベースを備えるノード検索装置により実行されるノード検索方法であって、性能属性ごとに、リソース管理データベースによって格納されたリソース管理表に含まれる当該性能属性の性能値と、当該リソース管理表に当該性能値が含まれる度数とを対応付けた度数表を生成する度数表生成ステップと、度数表生成ステップにおいて生成された性能属性ごとの度数表の各レコードについて、各レコードに含まれる性能値を当該性能属性が示す性能の良い順にソートしたソート度数表を生成するソート度数表生成ステップと、ソート度数表生成ステップにおいて生成された性能属性ごとのソート度数表の各レコードについて累積度数をさらに対応付けた累積度数表を生成する累積度数表生成ステップであって、累積度数は、各レコードについてソート順に、自レコードに含まれる度数と自レコードよりも前の順のレコード全てに含まれる度数とを加算した度数である、累積度数表生成ステップと、要求条件を取得する要求条件取得ステップと、要求条件取得ステップにおいて取得された要求条件に含まれる性能属性ごとに、累積度数表生成ステップにおいて生成された当該性能属性の累積度数表から、要求条件に含まれる当該性能属性の性能値が示す性能を最低限満たす性能値に対応付けられた累積度数を抽出する累積度数抽出ステップと、累積度数抽出ステップにおいて抽出された性能属性ごとの累積度数に基づいて、累積度数が小さい順の性能属性の順を算出する性能属性順算出ステップと、要求条件取得ステップにおいて取得された要求条件に含まれる複数の性能属性の各性能値について、性能属性順算出ステップにおいて算出された性能属性の順に、リソース管理データベースによって格納されたリソース管理表に含まれるレコードのうち当該性能属性の性能値が示す性能以上の性能値を含むレコードを抽出して絞込みを行う絞込みステップと、絞込みステップにより、要求条件取得ステップにおいて取得された要求条件に含まれる複数の性能属性の性能値全ての絞込みが行われたレコードが示すリソースノード情報を出力するリソースノード情報出力ステップと、を含む。
【発明の効果】
【００１２】
本発明によれば、性能の要求条件を満たすリソースノードをより速く検索することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るノード検索システムのシステム概要図である。
【図２】本発明の実施形態に係るノード検索システムにおけるサービスリソース増強時の処理の流れを示すシーケンス図である。
【図３】本発明の実施形態に係るノード検索装置の機能ブロック図である。
【図４】本発明の実施形態に係るノード検索装置のハードウェア構成を示す図である。
【図５】本発明の実施形態に係るノード検索装置で実行される度数表作成時の処理の流れを示すフローチャートである。
【図６】本発明の実施形態に係るノード検索装置で実行される累積度数表作成時の処理の流れを示すフローチャートである。
【図７】リソース管理表のテーブル例を示す図である。
【図８】度数表のテーブル例を示す図である。
【図９】ソート度数表のテーブル例を示す図である。
【図１０】累積度数表のテーブル例を示す図である。
【図１１】累積度数表の別のテーブル例を示す図である。
【図１２】本発明の実施形態に係るノード検索装置で実行される性能属性の順の算出時の処理の流れを示すフローチャートである。
【図１３】本発明の実施形態に係るノード検索装置で実行されるリソースノード情報出力時の処理の流れを示すフローチャートである。
【図１４】要求条件のテーブル例を示す図である。
【図１５】要求条件に基づき、１回目の絞込みが行われた際のテーブル例を示す図である。
【図１６】要求条件に基づき、２回目及び３回目の絞込みが行われた際のテーブル例を示す図である。
【図１７】別の要求条件のテーブル例を示す図である。
【図１８】別の要求条件に基づき、１回目及び２回目の絞込みが行われた際のテーブル例を示す図である。
【図１９】別の要求条件に基づき、３回目の絞込みが行われた際のテーブル例を示す図である。
【図２０】本発明の実施形態に係るノード検索装置で実行される累積度数表更新時の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面とともに本発明によるノード検索装置及びノード検索方法の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１５】
図１は、ノード検索システム３のシステム概要図である。図１に示す通り、ノード検索システム３は、ノード検索装置１（１Ａ、１Ｂ、１Ｃ及び１Ｄ）と一つ以上のリソースノード（Ａ−１、Ａ−２、Ｂ−１、Ｂ−２、Ｃ−１、Ｃ−２、Ｃ−３及びＤ−１）とを含む拠点（Ａ、Ｂ、Ｃ及びＤ）が、ネットワーク２を介して互いに通信可能なように接続されて構成されている。
【００１６】
以下、図１に示す拠点Ａを例に説明する。まず、拠点とは、所定のサービスを提供する物理的なコンピュータ設備が備えられた範囲や、所定のサービスを提供する論理的なコンピュータ資源（リソース）の範囲を示す。拠点の具体例としては、全国各地にあるデータセンタの設備が備えられた範囲が挙げられる。図１に示す通り、拠点Ａには、リソースノードＡ−１、Ａ−２及びノード検索装置１Ａが含まれている。
【００１７】
リソースノードとは、他のコンピュータシステム等にリソースを提供可能なノードであり、具体的には、例えば、仮想化技術によりＶＭを配備可能とした物理マシンのクラスタ（サーバプール）である。リソースノードの性能は、性能に関する複数の性能属性それぞれの値である性能値により示される。性能属性の具体例として、ＣＰＵ（Central  Processing  Unit）周波数（以下、ＣＰＵと呼ぶ）、ＣＰＵコア数（以下、コア数と呼ぶ）、メモリ量（以下、メモリと呼ぶ）、ネットワークトラフィックの平均遅延時間（以下、平均遅延時間と呼ぶ）が挙げられる。
【００１８】
ノード検索装置１Ａは、一般的なサーバ装置であり、自装置の拠点である拠点Ａに含まれるリソースノードＡ−１及びＡ−２のリソースに関する情報（後述の性能値を含む）であるリソース情報について管理を行うと共に、定期的に他の拠点のノード検索装置１とリソース情報の交換を行い、他の拠点に含まれるリソースノードのリソース情報についても管理を行う。また、ノード検索装置１Ａは、オペレータや他のサーバ装置等（以降、オペレータと呼ぶ）から、拠点Ａのサービスのリソース増強指示を、要求されるリソースの性能に関する要求条件と共に受け付ける。ノード検索装置１Ａは、リソース増強指示及び要求条件を受け付けると、要求条件を満たすリソースノードを、自拠点を含む全ての拠点から検索し、オペレータに検索したリソースノードに関するリソースノード情報を提供する。そして、ノード検索装置１Ａは、オペレータから実際にサービスのリソース増強に用いるリソースノードが指定されると、指定されたリソースノードに対してサービスのリソースを増強する一般的な処理を実行する。
【００１９】
すなわち、ノード検索装置１は、性能に関する複数の性能属性それぞれの値である性能値により性能が示されるリソースノードから構成される複数のリソースノードのうち、要求される複数の性能属性の性能値が含まれる要求条件を満たすリソースノードを検索する。ノード検索装置１については詳細を後述する。
【００２０】
ネットワーク２は、インターネットや移動体通信網等のネットワークである。拠点又はノード検索装置１は、ネットワーク２を介して互いに通信可能である。
【００２１】
図２は、ノード検索システム３におけるサービスリソース増強時の処理の流れを示すシーケンス図である。まず、各拠点のノード検索装置１により、定期的に自拠点のリソース情報が互いに送受信され、自拠点にて管理するリソース情報が更新される（具体的には、後述のリソース管理表及び度数管理表が更新される）（ステップＳ０１）。次に、オペレータにより、ノード検索装置１Ａに対して、拠点Ａのサービスのリソース増強指示が要求条件と共に送信される（ステップＳ０２）。次に、ノード検索装置１Ａにより、Ｓ０２にて受信された要求条件に対応するリソースノードが検索され、リソースノード候補として選出される（ステップＳ０３）。次に、ノード検索装置１Ａにより、オペレータに対して、Ｓ０３にて選出されたリソースノード候補の一覧が提示される（ステップＳ０４）。
【００２２】
次に、オペレータにより、ノード検索装置１Ａに対して、Ｓ０４にて提示されたリソースノード候補の一覧のうち拠点Ｂのリソースノードが選択された旨の指示情報が送信される（ステップＳ０５）。次に、ノード検索装置１Ａにより、ノード検索装置１Ｂに対して、Ｓ０５にて受信された指示情報に基づき、対応するリソースノードを用いたサービス増設を要求するサービス増設要求が送信される（ステップＳ０６）。次に、ノード検索装置１Ｂにより、Ｓ０６にて受信されたサービス増設要求に基づき、サービス増設が行われ、それに伴い、自装置が管理するリソース情報が更新される（具体的には、後述のリソース管理表及び度数管理表が更新される）（ステップＳ０７）。次に、ノード検索装置１Ｂにより、ノード検索装置１Ａに対して、サービス増設が完了した旨のサービス増設応答が送信される（ステップＳ０８）。次に、ノード検索装置１Ａにより、オペレータに対して、Ｓ０８にて受信されたサービス増設応答に基づき、拠点Ａのサービスを拠点Ｂに増設した旨の通知が送信される（ステップＳ０９）。
【００２３】
そして、Ｓ０８に続いて、ノード検索装置１Ｂにより、他の拠点のノード検索装置１であるノード検索装置１Ａ、１Ｃ及び１Ｄに対して、自装置のリソース情報の更新に関する更新情報が通知される（ステップＳ１０）。次に、ノード検索装置１Ａ、１Ｃ及び１Ｄそれぞれにて、Ｓ１０にて通知された更新情報を受けて、自装置のリソース情報が更新される（ステップＳ１１）。
【００２４】
以上説明した図２のシーケンス図のうち、Ｓ０１、及びＳ０２〜Ｓ０４の処理の詳細については後述する。
【００２５】
図３は、ノード検索装置１の機能ブロック図である。図３に示す通り、ノード検索装置１は、リソース管理データベース１０（リソース管理データベース）、度数表生成部１１（度数表生成手段）、ソート度数表生成部１２（ソート度数表生成手段）、累積度数表生成部１３（累積度数表生成手段）、要求条件取得部１４（要求条件取得手段）、累積度数抽出部１５（累積度数抽出手段）、性能属性順算出部１６（性能属性順算出手段）、絞込み部１７（絞込み手段）、リソースノード情報出力部１８（リソースノード情報出力手段）及びリソース更新部１９（リソース更新手段）を含んで構成される。
【００２６】
ノード検索装置１は、ＣＰＵ等のハードウェアから構成されているものである。図４は、ノード検索装置１のハードウェア構成の一例を示す図である。図３に示されるノード検索装置１は、物理的には、図４に示すように、ＣＰＵ１００、主記憶装置であるＲＡＭ１０１及びＲＯＭ１０２、ディスプレイ等の入出力装置１０３、通信モジュール１０４、及び補助記憶装置１０５などを含むコンピュータシステムとして構成されている。
【００２７】
図３に示すノード検索装置１の各機能ブロックの機能は、図４に示すＣＰＵ１００、ＲＡＭ１０１等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１００の制御のもとで入出力装置１０３、通信モジュール１０４、及び補助記憶装置１０５を動作させるとともに、ＲＡＭ１０１におけるデータの読み出し及び書き込みを行うことで実現される。
【００２８】
以下、図３に示すノード検索装置１の各機能ブロックについて説明する。
【００２９】
リソース管理データベース１０は、各複数のリソースノードの性能属性ごとの性能値から構成されるリソース管理表を格納する。
【００３０】
度数表生成部１１は、性能属性ごとに、リソース管理データベース１０によって格納されたリソース管理表に含まれる当該性能属性の性能値と、当該リソース管理表に当該性能値が含まれる度数とを対応付けた度数表を生成する。
【００３１】
ソート度数表生成部１２は、度数表生成部１１によって生成された性能属性ごとの度数表の各レコードについて、各レコードに含まれる性能値を当該性能属性が示す性能の良い順にソートしたソート度数表を生成する。
【００３２】
累積度数表生成部１３は、ソート度数表生成部１２によって生成された性能属性ごとのソート度数表の各レコードについて累積度数をさらに対応付けた累積度数表（ヒストグラム、リソース属性ヒストグラム情報）を生成する。ここで、累積度数は、各レコードについてソート順に、自レコードに含まれる度数と自レコードよりも前の順のレコード全てに含まれる度数とを加算した度数である。
【００３３】
以下、図５及び６に示すフローチャート並びに図７〜１１に示すテーブル図を用いて、度数表生成部１１、ソート度数表生成部１２及び累積度数表生成部１３が、リソース管理表から累積度数表を生成する処理の具体例について説明する。
【００３４】
図５は、ノード検索装置１における度数表作成時の処理（度数表生成ステップ）の流れを示すフローチャートである。図５の各処理について説明する前に、前提条件として予め用意されているリソース管理表について説明する。
【００３５】
図７は、リソース管理データベース１０によって格納されたリソース管理表のテーブル例を示す図である。図７に示す通り、リソース管理表では、各拠点に含まれる各リソースノードごとの性能属性ごとの性能値が対応付けられている。図７に示すリソース管理表では、性能属性として、ＣＰＵ、コア数、ＣＰＵリソース量、メモリ及び平均遅延時間が含まれる。ここで、ＣＰＵリソース量はＣＰＵ及びコア数の代替として用いるための性能属性であり、ＣＰＵリソース量の性能値として、ＣＰＵの性能値とコア数の性能値とを乗算した値を用いる。図７に示すリソース管理表において、例えば、リソースノードＡ−１について、性能属性「ＣＰＵ」の性能値は「１．８ＧＨｚ」、性能属性「コア数」の性能値は「１００」、性能属性「ＣＰＵリソース量」の性能値は「１８０」（＝１．８＊１００）、性能属性「メモリ」の性能値は「４ＴＢ」及び性能属性「平均遅延時間」の性能値は「０ｍｓ」を示している。
【００３６】
なお、性能属性であるＣＰＵ、コア数、ＣＰＵリソース量及びメモリの性能値は、サービス増設等のための仮想マシン（ＶＭ）配備により変動する値であり、ノード検索装置１は、ＶＭ配備時に、度数表生成部１１、ソート度数表生成部１２及び累積度数表生成部１３を利用してリソース管理表から累積度数表を生成する。一方、性能属性である平均遅延時間の性能値は、ネットワーク状況に応じて変動する値であり、ノード検索装置１は、周期的に、度数表生成部１１、ソート度数表生成部１２及び累積度数表生成部１３を利用してリソース管理表から累積度数表を生成する。
【００３７】
図５に戻り、リソース管理データベース１０によって格納されたリソース管理表に対して、ループ処理Ｓ２０−Ｓ２０Ｅ及びＳ２１−Ｓ２１Ｅが繰り返される。ループ処理Ｓ２０−Ｓ２０Ｅでは、リソース管理表の各レコードｉについて（リソースノードＡ−１のレコードから順に、リソースノードＤ−１のレコードまで）ループ処理が繰り返される。ループ処理Ｓ２１−Ｓ２１Ｅでは、リソース管理表の各性能属性ｘについて（ＣＰＵから順に、平均遅延時間まで）ループ処理が繰り返される。Ｓ２２にて、度数表生成部１１により、レコードｉの性能属性ｘの性能値ｙが、性能属性ｘごとの度数表である度数表Ｓｘに存在するか否かが判定される。Ｓ２２にて存在しないと判定された場合、Ｓ２３にて、度数表生成部１１により、当該度数表Ｓｘに当該性能値ｙが追加され、度数「１」が設定される。一方、Ｓ２２にて存在すると判定された場合、Ｓ２４にて、度数表生成部１１により、当該度数表Ｓｘの性能値ｙの度数に「１」が加算される。
【００３８】
図８は、図７に示すリソース管理表に対して、図５に示す処理を行った結果、度数表生成部１１により作成された、性能属性ごとの度数表のテーブル例を示す図である。図８（ａ）は、ＣＰＵリソース量の度数表のテーブル例であり、図８（ｂ）は、メモリの度数表のテーブル例であり、図８（ｃ）は、平均遅延時間の度数表のテーブル例である。
【００３９】
図６は、ノード検索装置１における累積度数表作成時の処理の流れを示すフローチャートである。
【００４０】
まず、図５に示す処理を行った結果作成された図８に示す性能属性ごとの度数表Ｓｘそれぞれについて、図５のループ処理Ｓ２０−Ｓ２０Ｅの終了に引き続き、図６のループ処理Ｓ３０−Ｓ３０Ｅが繰り返される。Ｓ３１にて、ソート度数表生成部１２により、度数表Ｓｘの全レコードが、性能値について性能が良い順にソートされたソート度数表が生成される（ソート度数表生成ステップ）。
【００４１】
図９は、図８に示す性能属性ごとの度数表に対して、図６に示すＳ３１の処理を行った結果、ソート度数表生成部１２により生成されたソート度数表のテーブル例を示す図である。より具体的には、図９（ａ）は、図８（ａ）のＣＰＵリソース量の度数表に対して性能が良い順（ＣＰＵリソース量が多い順）にソートされたソート度数表を示す。また、図９（ｂ）は、図８（ｂ）のメモリの度数表に対して性能が良い順（メモリが多い順）にソートされたソート度数表を示す。また、図９（ｃ）は、図８（ｃ）の平均遅延時間の度数表に対して性能が良い順（平均遅延時間が小さい順）にソートされたソート度数表を示す。
【００４２】
図６に戻り、続いてＳ３２にて、累積度数表生成部１３により、度数表Ｓｘの各レコードについて、自レコードよりも前の順のレコードの度数全てと自レコードの度数を足し合わせたものを累積度数として保持された累積度数表が生成される（累積度数表生成ステップ）。
【００４３】
図１０は、図９に示す性能属性ごとのソート度数表に対して、図６に示すＳ３２の処理を行った結果、累積度数表生成部１３により生成された累積度数表のテーブル例を示す図である。より具体的には、図１０（ａ）は、図９（ａ）のＣＰＵリソース量のソート度数表に対して累積度数がさらに対応付けられた累積度数表を示す。また、図１０（ｂ）は、図９（ｂ）のメモリのソート度数表に対して累積度数がさらに対応付けられた累積度数表を示す。また、図１０（ｃ）は、図９（ｃ）の平均遅延時間のソート度数表に対して累積度数がさらに対応付けられた累積度数表を示す。
【００４４】
ここで、図１１（ａ）及び（ｂ）は、上述の処理と同様の処理によって生成された、それぞれＣＰＵ及びコア数の累積度数表のテーブル例を示す図である。性能属性としてのＣＰＵ及びコア数の代わりに、ＣＰＵリソース量を扱う場合は、ＣＰＵ及びコア数の累積度数表を生成しなくてもよいが、ＣＰＵ及びコア数をそのまま利用する場合は、他の性能属性と同様に図１１に示す累積度数表を作成し、利用する。
【００４５】
なお、度数表生成部１１により生成された度数表、ソート度数表生成部１２により生成されたソート度数表及び累積度数表生成部１３により生成された累積度数表は、ノード検索装置１内に一時的に保存されてもよいし、他のサーバ装置に送信されて当該装置にて保存されてもよい。
【００４６】
図３に戻り、要求条件取得部１４は、要求される複数の性能属性の性能値が含まれる要求条件を取得する。要求条件取得部１４は、要求条件をオペレータから受信してもよいし、他のサーバ装置から取得してもよいし、ノード検索装置１内から取得してもよい。要求条件取得部１４は、取得した要求条件を、後述の累積度数抽出部１５及び絞込み部１７に出力する。
【００４７】
累積度数抽出部１５は、要求条件取得部１４によって取得され、入力された要求条件に含まれる性能属性ごとに、累積度数表生成部１３によって生成された当該性能属性の累積度数表から、要求条件に含まれる当該性能属性の性能値が示す性能を最低限満たす性能値に対応付けられた累積度数を抽出する。累積度数抽出部１５は、抽出した性能属性ごとの累積度数を後述の性能属性順算出部１６に出力する。
【００４８】
性能属性順算出部１６は、累積度数抽出部１５によって抽出され、入力された性能属性ごとの累積度数に基づいて、累積度数が小さい順の性能属性の順を算出する。性能属性順算出部１６は、算出した性能属性の順（性能属性の順を示す情報）を後述の絞込み部１７に出力する。
【００４９】
絞込み部１７は、要求条件取得部１４によって取得され、入力された要求条件に含まれる複数の性能属性の各性能値について、性能属性順算出部１６によって算出され、入力された性能属性の順に、リソース管理データベース１０によって格納されたリソース管理表に含まれるレコードのうち当該性能属性の性能値が示す性能以上の性能値を含むレコードを抽出して絞込みを行う。
【００５０】
リソースノード情報出力部１８は、絞込み部１７により、要求条件取得部１４によって取得された要求条件に含まれる複数の性能属性の性能値全ての絞込みが行われたレコードが示すリソースノードに関するリソースノード情報を出力する。リソースノード情報には、リソースノードを識別する情報等が含まれる。リソースノード情報出力部１８は、リソースノード情報を他の装置やオペレータに出力してもよいし、ノード検索装置１内の他の機能ブロックに出力してもよいし、ノード検索装置１のディスプレイに出力してもよい。
【００５１】
以下、図１２及び１３に示すフローチャート並びに図１４〜１６に示すテーブル図を用いて、要求条件取得部１４、累積度数抽出部１５、性能属性順算出部１６、絞込み部１７及びリソースノード情報出力部１８が、要求条件、累積度数表及びリソース管理表に基づいてリソースノード候補を検索する（リソースノード情報を出力する）処理の具体例について説明する。
【００５２】
図１２は、ノード検索装置１における性能属性の順の算出時の処理の流れを示すフローチャートである。
【００５３】
まず、Ｓ４０にて、要求条件取得部１４により、要求条件が取得される（要求条件取得ステップ）。
【００５４】
図１４は、要求条件のテーブル例を示す図である。図１４に示す要求条件では、性能属性「ＣＰＵ」の性能値として「１．８ＧＨｚ以上」、性能属性「コア数」の性能値として「１００以上」、性能属性「メモリ」の性能値として「０．８ＴＢ以上」、性能属性「平均遅延時間」の性能値として「５ｍｓ以下」が指定されている。
【００５５】
図１２に戻り、続いてＳ４１にて、本実施形態では性能属性としてＣＰＵ及びコア数の代わりにＣＰＵリソース量を用いるため、要求条件取得部１４又は累積度数抽出部１５により、要求条件のうちＣＰＵの性能値とコア数の性能値とを掛け合わせた（乗算した）「１８０」が算出され、性能属性「ＣＰＵリソース量」の性能値として「１８０以上」が以降の処理にて利用される。次に、Ｓ４２にて、累積度数抽出部１５により、要求条件に含まれる各属性性能の性能値と、累積度数表生成部１３によって生成された図１０に示す各性能属性の累積度数表とに基づき、要求条件を最低限満たす性能値に対応付けられた累積度数が抽出される（累積度数抽出ステップ）。具体例を用いて説明すると、性能属性「ＣＰＵリソース量」について、要求条件の性能値は上述で算出したように「１８０以上」であり、図１０（ａ）に示すＣＰＵリソース量の累積度数表のうち、性能値が「１８０以上」を満たす最低限の性能値は「１８０」のレコードであり、当該レコードに対応付けられた累積度数「３」が抽出される。同様にして、性能属性「メモリ」については、図１０（ｂ）に示すメモリの累積度数表のうち、「０．８ＴＢ以上」を満たす最低限の性能値「１ＴＢ」に対応付けられた累積度数「７」が抽出される。また、性能属性「平均遅延時間」については、図１０（ｃ）に示す平均遅延時間の累積度数表のうち、「５ｍｓ以下」を満たす最低限の性能値「５ｍｓ」に対応付けられた累積度数「３」が抽出される。
【００５６】
次に、Ｓ４３にて、性能属性順算出部１６により、Ｓ４２にて抽出された累積度数が小さい順に性能属性がソートされ、順に、累積度数が「３」の平均遅延時間、累積度数が「３」のＣＰＵリソース量、累積度数が「７」のメモリが算出される。そして、性能属性順算出部１６により、順に「性能属性１」として「平均遅延時間」が設定され、「性能属性２」として「ＣＰＵリソース量」が設定され、「性能属性３」として「メモリ」が設定される（性能属性順算出ステップ）。なお、図１２における「性能属性Ｘ」の「Ｘ」はこの場合「３」となる。また、今回の場合、平均遅延時間とＣＰＵリソース量との累積度数の値は同じであるため、この２つについては逆順でもよい。
【００５７】
図１２のフローチャートの処理に引き続き、図１３のフローチャートの処理が行われる。図１３は、ノード検索装置１におけるリソースノード情報出力時の処理の流れを示すフローチャートである。
【００５８】
図１２のＳ４３に引き続き、図１３のＳ５０にて、絞込み部１７により、リソース管理データベース１０によって格納されている図７に示すリソース管理表の全レコードとしてＮ（リソースノードＡ−１〜Ｄ−１）が設定される。次に、絞込み部１７により、性能属性ｉ（ｉ＝１〜Ｘ）それぞれについてループ処理Ｓ５１−Ｓ５１Ｅが繰り返される（絞込みステップ）。まず、Ｓ５２にて、絞込み部１７により、性能属性ｉの要求条件の性能値にてＮが検索される。具体例を用いて説明すると、要求条件のうち「性能属性１」である「平均遅延時間」の性能値「５ｍｓ以下」を満たすレコードがＮ（この段階では図７に示すリソース管理表の全レコード）から検索（抽出）される。この場合、Ｎのうち平均遅延時間の性能値が「０ｍｓ」及び「５ｍｓ」であるリソースノードＡ−１、Ａ−２及びＤ−１のレコードが検索される。次にＳ５３にて、絞込み部１７により、検索結果が存在するか否かが判定される。Ｓ５３にて検索結果が存在しないと判定されると、Ｓ５４にて、絞込み部１７により要求条件を満たす拠点（リソースノード）は存在しないと判定され、処理を終了する。一方、Ｓ５３にて検索結果が存在すると判定されると、Ｓ５５にて、絞込み部１７により、検索結果のレコード集合が新たなＮとして設定される。
【００５９】
図１５は、ループ処理Ｓ５１−Ｓ５１Ｅの１回目のループにて絞込み部１７により絞込まれ、新たなＮとして設定されたレコード集合を示すテーブル図である。上述の通り、図１５に示すテーブル図には、リソースノードＡ−１、Ａ−２及びＤ−１のレコードが含まれる。
【００６０】
ループ処理Ｓ５１−Ｓ５１Ｅの２回目のループでは、絞込み部１７により、要求条件のうち「性能属性２」である「ＣＰＵリソース量」の性能値「１８０以上」を満たすレコードがＮ（この段階では図１５に示すテーブル図）から検索（抽出）される。この場合、ＮのうちＣＰＵリソース量の性能値が「１８０」であるリソースノードＡ−１のみが検索され、新たなＮとして設定される。
【００６１】
図１６は、ループ処理Ｓ５１−Ｓ５１Ｅの２回目のループにて絞込み部１７により絞込まれ、新たなＮとして設定されたレコード集合を示すテーブル図である。上述の通り、図１６に示すテーブル図には、リソースノードＡ−１のみのレコードが含まれる。
【００６２】
ループ処理Ｓ５１−Ｓ５１Ｅの３回目（最後）のループでは、絞込み部１７により、要求条件のうち「性能属性３」である「メモリ」の性能値「０．８ＴＢ以上」を満たすレコードがＮ（この段階では図１６に示すテーブル図）から検索（抽出）される。この場合、Ｎのうちメモリの性能値が「４ＴＢ」であるリソースノードＡ−１のみが検索され、新たなＮとして設定される。すなわち、図１６に示すテーブル図から変更はなく、絞込み部１７によるループ処理Ｓ５１−Ｓ５１Ｅの最終結果として、図１６に示すテーブル図に示すレコードが検索される。
【００６３】
次に、Ｓ５６にて、リソースノード情報出力部１８により、検索結果ＮがＣＰＵ及びコア数の条件を満たしているか否かが判定される。Ｓ５６にて条件を満たしていると判定された場合、Ｓ５７にて、リソースノード情報出力部１８により、検索結果Ｎが、要求条件を満たす拠点（リソースノード）リストとして出力される（リソースノード情報出力ステップ）。上述の具体例で言えば、図１６に示すテーブル図は、要求条件のうちＣＰＵの性能値「１．８ＧＨｚ」及びコア数の性能値「１００以上」を両方とも満たしているので、リソースノード情報出力部１８により、図１６に示すテーブル図に含まれるリソースノードＡ−１が拠点リストとして出力される。
【００６４】
一方、Ｓ５６にて条件を満たしていないと判定された場合、リソースノード情報出力部１８により、Ｓ５８にて、検索結果Ｎが、ＣＰＵ及びコア数以外の要求条件を満たす次点の拠点リストとして出力される（リソースノード情報出力ステップ）。例えば、上述の具体例において、図１４に示す要求条件のうち、ＣＰＵの性能値が「０．９ＧＨｚ以上」であり、コア数の性能値が「２００以上」であった場合、ＣＰＵリソース量の性能値は上述の具体例と同様に「１８０以上」となり、同様の処理により、ループ処理Ｓ５１−Ｓ５１Ｅの最終結果であるＮとして図１６に示すテーブル図が設定される。しかしながら、Ｓ５６にて、図１６に示すテーブル図のうちコア数の性能値「１００」は要求条件のコア数の性能値「２００以上」を満たしていないため、条件を満たしていないと判定される。よって、その場合は、Ｓ５８にて、リソースノード情報出力部１８により、図１６に示すテーブル図に含まれるリソースノードＡ−１が次点の拠点リストとして出力される。
【００６５】
以下、図１７〜１９を用いて、別の具体例に基づくリソースノードの検索例について説明する。最初の時点におけるリソース管理表については図７と同様である。処理手順については上述の説明と同様のため、処理内容の詳細については適宜省略する。
【００６６】
図１７は、今回の具体例における要求条件のテーブル例を示す図である。図１７に示す要求条件では、性能属性「ＣＰＵ」の性能値として「３．０ＧＨｚ以上」、性能属性「コア数」の性能値として「３０以上」、性能属性「メモリ」の性能値として「０．８ＴＢ以上」、性能属性「平均遅延時間」の性能値として「１５ｍｓ以下」が指定されている。これから、「ＣＰＵリソース量」の性能値として「９０（＝３．０＊３０）以上」が算出される。なお、ＣＰＵリソース量は、要求条件の送信元によって予め計算され、要求条件に予め含まれていてもよい。
【００６７】
そして、図１２のＳ４２にて、性能属性「ＣＰＵリソース量」について、図１０（ａ）に示すＣＰＵリソース量の累積度数表のうち、性能値「９０以上」を満たす最低限の性能値「９０」に対応付けられた累積度数「７」が抽出される。同様にして、性能属性「メモリ」については、図１０（ｂ）に示すメモリの累積度数表のうち、「０．８ＴＢ以上」を満たす最低限の性能値「１ＴＢ」に対応付けられた累積度数「７」が抽出される。また、性能属性「平均遅延時間」については、図１０（ｃ）に示す平均遅延時間の累積度数表のうち、「１５ｍｓ以下」を満たす最低限の性能値「１０ｍｓ」に対応付けられた累積度数「５」が抽出される。
【００６８】
そして、図１２のＳ４３にて、累積度数の小さい順に「性能属性１」として「平均遅延時間」が設定され、「性能属性２」として「メモリ」が設定され、「性能属性３」として「ＣＰＵリソース量」が設定される（同じ性能値のため、「性能属性２」として「ＣＰＵリソース量」、「性能属性３」として「メモリ」を設定してもよい）。
【００６９】
そして、図１３のループ処理Ｓ５１−Ｓ５１Ｅの１回目ループにて、レコードがＮ（この段階では図７に示すリソース管理表の全レコード）から、要求条件のうち「性能属性１」である「平均遅延時間」の性能値「１５ｍｓ以下」を満たす平均遅延時間の性能値が「０ｍｓ」、「５ｍｓ」及び「１０ｍｓ」であるリソースノードＡ−１、Ａ−２、Ｂ−１、Ｂ−２及びＤ−１のレコードが検索される。図１８は、検索の結果、新たなＮとして設定されたテーブル図である。
【００７０】
そして、図１３のループ処理Ｓ５１−Ｓ５１Ｅの２回目ループにて、新たなＮ（この段階では図１８に示すテーブル図）から、要求条件のうち「性能属性２」である「メモリ」の性能値「０．８ＴＢ以上」を満たす全てのレコードが検索される。すなわち、新たなＮは変化せずに図１８に示すテーブル図のままである。
【００７１】
そして、図１３のループ処理Ｓ５１−Ｓ５１Ｅの３回目ループにて、新たなＮ（この段階では図１８に示すテーブル図）から、要求条件のうち「性能属性３」である「ＣＰＵリソース量」の性能値「９０以上」を満たすＣＰＵリソース量の性能値が「１００」、「１８０」、「３６０」及び「６００」であるリソースノードＡ−１、Ａ−２、Ｂ−１及びＢ−２のレコードが検索される。図１９は、検索の結果、新たなＮ（最終的なＮ）として設定されたテーブル図である。
【００７２】
最終的なＮはＣＰＵリソース量の条件は満たしているが、ＣＰＵの条件は満たしていないため、図１３のＳ５８にて、図１９に示すテーブル図に含まれるリソースノードＡ−１、Ａ−２、Ｂ−１及びＢ−２が次点の拠点リストとして出力される。つまり、次点として複数の拠点リストが出力される。
【００７３】
図３に戻り、リソース更新部１９は、各複数のリソースノードの性能値を取得し、取得した性能値でリソース管理データベース１０によって格納されたリソース管理表を更新する。
【００７４】
次に、リソース管理表更新時の処理について説明する。図２０は、リソース管理表が更新された際の、ノード検索装置１における累積度数表更新時の処理の流れを示すフローチャートである。
【００７５】
まず、リソース管理データベース１０によって格納されたリソース管理表に対して、ループ処理Ｓ６０−Ｓ６０Ｅ及びＳ６１−Ｓ６１Ｅが繰り返される。ループ処理Ｓ６０−Ｓ６０Ｅでは、リソース管理表のうち更新された各レコードｉについてループ処理が繰り返される。ループ処理Ｓ６１−Ｓ６１Ｅでは、レコードｉのうち更新された性能属性ｘについてループ処理が繰り返される。Ｓ６２にて、累積度数表生成部１３により、累積度数表Ｓｘの性能属性ｘの更新前の性能値の度数が１減算される。次に、Ｓ６３にて、累積度数表生成部１３により、累積度数表Ｓｘの性能属性ｘの更新後の性能値の度数が１加算される。更新後の性能値が累積度数表Ｓｘになければ、更新後の性能値を累積度数表Ｓｘに追加し、度数を１とする。以降のループ処理Ｓ６４−Ｓ６４Ｅについては、図６の処理と同様のため説明を省略する。
【００７６】
次に、本実施形態のように構成されたノード検索装置１の作用効果について説明する。
【００７７】
本実施形態のノード検索装置１によれば、累積度数抽出部１５によって抽出された性能属性ごとの累積度数は、リソース管理表の全レコードのうち、要求条件の当該性能属性の性能値が示す性能を満たすレコードの数を示す。つまり、性能属性順算出部１６によって算出された、累積度数が小さい順の性能属性の順は、リソース管理表の全レコードのうち、要求条件の当該性能属性の性能値が示す性能を満たすレコードの数が少ない順を示す。それにより、絞込み部１７によって、絞込んだ結果のレコードの数が少ない順に絞込みが行われるため、性能の要求条件を満たすリソースノードをより速く検索することができる。
【００７８】
また、本実施形態のノード検索装置１によれば、ＣＰＵ周波数とＣＰＵコア数とのどちらかが要求条件を満たさない場合でも、ＣＰＵ周波数とＣＰＵコア数とを乗算したＣＰＵリソース量を満たすリソースノード候補を検索することができる。それにより、例えば、サービスの要求条件を満たせない場合にサービス増強が困難になるという課題を解決することができる。
【００７９】
また、本実施形態のノード検索装置１によれば、例えば、最新のリソースノードの性能値を取得し、リソース管理表を更新することで、現状のリソースノードの性能値に基づいた、要求条件を満たすリソースノードを検索することができる。
【００８０】
以上の通り、本実施形態のノード検索装置１によれば、リソースの属性（但し、ＣＰＵとコア数はＣＰＵリソース量にまとめる）ごとに累積度数表（度数分布表、ヒストグラム）が作成され、リソースの現在の状態に応じて更新される。そして、リソース融通の要求条件として属性情報が与えられた場合に、どの属性情報で絞り込めば、最もデータ数が少なくなるかを累積度数表（ヒストグラム）から判断することで、リソース融通を行える拠点（リソースノード）を高速に検索することができる。また、ＣＰＵとコア数を掛け合わせた値をＣＰＵリソース量として定義し、この値を要求条件として用いることで、ＣＰＵとコア数のどちらかが要求条件を満たさない場合でも、次点の候補としてＣＰＵリソース量を満たす拠点（リソースノード）を提示することができる。
【符号の説明】
【００８１】
１…ノード検索装置、２…ネットワーク、３…ノード検索システム、１０…リソース管理データベース、１１…度数表生成部、１２…ソート度数表生成部、１３…累積度数表生成部、１４…要求条件取得部、１５…累積度数抽出部、１６…性能属性順算出部、１７…絞込み部、１８…リソースノード情報出力部、１９…リソース更新部。
【図１】
0005901677.tif 000002
【図２】
0005901677.tif 000003
【図３】
0005901677.tif 000004
【図４】
0005901677.tif 000005
【図５】
0005901677.tif 000006
【図６】
0005901677.tif 000007
【図７】
0005901677.tif 000008
【図８】
0005901677.tif 000009
【図９】
0005901677.tif 000010
【図１０】
0005901677.tif 000011
【図１１】
0005901677.tif 000012
【図１２】
0005901677.tif 000013
【図１３】
0005901677.tif 000014
【図１４】
0005901677.tif 000015
【図１５】
0005901677.tif 000016
【図１６】
0005901677.tif 000017
【図１７】
0005901677.tif 000018
【図１８】
0005901677.tif 000019
【図１９】
0005901677.tif 000020
【図２０】
0005901677.tif 000021