(57)【特許請求の範囲】
【請求項１】
対象とするネットワークに接続された分散システムを構成する各コンピュータシステムにインストールされたオペレーティングシステムのディスクイメージからそれぞれ仮想マシンイメージを生成する仮想マシンイメージ生成機能と、
対象とする分散システムに含まれるコンピュータシステム間の依存関係を特定して、パッケージ生成後に該依存関係をユーザが設定変更できるようにするための設定項目を設けた仮想マシンパッケージの設定ファイルを生成する仮想マシンパッケージ設定ファイル生成機能と、
仮想マシンイメージと仮想マシンパッケージ設定ファイルを仮想マシンパッケージとして格納する仮想マシンパッケージ格納機能とからなり、
対象とする分散システムを、仮想マシンパッケージ格納機能を用いて格納し、仮想マシン実行環境で再現するための仮想マシンパッケージを生成する仮想マシンパッケージ生成システム。
【請求項２】
前記仮想マシンパッケージ設定ファイル生成機能は、
対象とするコンピュータシステムの設定情報やプログラムを解析した結果を収集する解析情報収集部と、
上記解析した結果から、コンピュータシステム間の前記依存関係を、各コンピュータシステムを点、依存関係を辺としたグラフ構造として表現するグラフ構造に変換するグラフ構造変換部と、
前記変換されたグラフ構造をさらに変換して縮約グラフを生成する縮約グラフ生成部と、
前記縮約グラフ中の各点を一つの仮想マシンパッケージとして対応させ、各点に縮約された縮約前のグラフ構造の点から、その仮想マシンパッケージに含める仮想マシンを特定することにより、縮約グラフに基づいて仮想マシンパッケージの候補を決定し、仮想マシンパッケージに含まれる仮想マシンが他の仮想マシンやシステムを参照および呼び出す際に必要となる設定項目を、縮約グラフの辺から特定して仮想マシンパッケージの設定要素を設定ファイルとして書き出す仮想マシンパッケージ設定ファイル生成部を含む請求項１記載の仮想マシンパッケージ生成システム。
【請求項３】
前記仮想マシンパッケージ設定ファイル生成機能は、対象とするネットワークに接続された複数の前記コンピュータシステムで構成される前記分散システムの各コンピュータシステム間のネットワーク性能値を格納するネットワーク性能情報格納部を含み、前記グラフ構造変換部はさらに、前記ネットワーク性能情報格納部を参照し、コンピュータシステムとコンピュータシステムとの間の前記ネットワーク性能値に基づいて、各コンピュータシステムを点として表現したグラフ構造の辺に重み付けを行うグラフ構造変換部を含むことを特徴とする請求項２に記載の仮想マシンパッケージ生成システム。
【請求項４】
前記仮想マシンパッケージ設定ファイル生成機能は、対象とするコンピュータシステムの性能情報を格納するサーバ性能情報格納部と、仮想マシンパッケージを配布して、仮想マシンパッケージに含まれる一つ以上の仮想マシンを動作させるためのコンピュータシステムであって、前記対象とするネットワークに接続された分散システムを構成する各コンピュータシステムとは別のコンピュータシステムの性能情報を事前に収集して格納する物理サーバ制約格納部とを備え、前記グラフ構造変換部に比べ、前記サーバ性能情報格納部を参照し、前記対象とするコンピュータシステムの性能情報を用いて、該コンピュータシステムに対応するグラフ上の点に重み付けを行う特徴を有するグラフ構造変換部と、前記物理サーバ制約格納部を参照して、縮約グラフの点の重みに制限を設けて縮約グラフを生成する縮約グラフ生成部を備えることを特徴とする請求項２乃至３いずれか一つに記載の仮想マシンパッケージ生成システム。
【請求項５】
前記縮約グラフ生成部が、前記縮約グラフの点の重みを一定値として縮約グラフを生成することにより仮想パッケージを分割する請求項４に記載の仮想マシンパッケージ生成システム。
【請求項６】
前記縮約グラフ生成部が、前記縮約グラフの点の重みをパッケージ毎に変更して縮約グラフを生成することにより仮想パッケージを分割する請求項４に記載の仮想マシンパッケージ生成システム。
【請求項７】
コンピュータハードウェア上でソフトウェアによって一つ以上の擬似的なコンピュータハードウェアを作り出す仮想マシンパッケージ生成方法であって、対象とするネットワークに接続された分散システムを構成する各コンピュータシステムにインストールされたオペレーティングシステムのディスクイメージからそれぞれ仮想マシンイメージを生成し、対象とする分散システムに含まれるコンピュータシステム間の依存関係を特定して、パッケージ生成後に該依存関係をユーザが設定変更できるようにするための設定項目を設けた仮想マシンパッケージの設定ファイルを生成し、仮想マシンイメージと仮想マシンパッケージ設定ファイルを仮想マシンパッケージとして格納することを特徴とする仮想マシンパッケージ生成方法。
【請求項８】
前記仮想マシンパッケージ設定ファイルの生成に際して、対象とするコンピュータシステムの設定情報やプログラムを解析した結果を収集し、該解析した結果から、コンピュータシステム間の前記依存関係を、各コンピュータシステムを点、依存関係を辺としたグラフ構造として表現するグラフ構造に変換し、前記変換されたグラフ構造を縮約することによって生成した縮約グラフ中の各点を一つの仮想マシンパッケージとして対応させ、各点に縮約された縮約前のグラフ構造の点から、その仮想マシンパッケージに含める仮想マシンを特定することにより、縮約グラフに基づいて仮想マシンパッケージの候補を決定し、仮想マシンパッケージに含まれる仮想マシンが他の仮想マシンやシステムを参照および呼び出す際に必要となる設定項目を、縮約グラフの辺から特定して仮想マシンパッケージ間の設定要素を設定ファイルとして書き出すことを特徴とする請求項７に記載の仮想マシンパッケージ生成方法。
【請求項９】
前記仮想マシンパッケージ設定ファイルの生成に際して、さらに、対象とするネットワークに接続された複数の前記コンピュータシステムで構成される前記分散システムの各コンピュータシステム間のネットワーク性能値を格納するネットワーク性能情報格納部を参照し、コンピュータシステムとコンピュータシステムとの間の前記ネットワーク性能値に基づいて、各コンピュータシステムを点として表現したグラフ構造の辺に重み付けを行ってグラフ構造を生成することを特徴とする請求項８に記載の仮想マシンパッケージ生成方法。
【請求項１０】
前記仮想マシンパッケージ設定ファイルの生成に際し、さらに、対象とするコンピュータシステムの性能情報を格納するサーバ性能情報格納部を参照して、前記対象とするコンピュータシステムの性能情報を用いることにより、該コンピュータシステムに対応するグラフ上の点に重み付けを行ってグラフ構造を生成し、仮想マシンパッケージを配布して、仮想マシンパッケージに含まれる一つ以上の仮想マシンを動作させるためのコンピュータシステムであって、前記対象とするネットワークに接続された分散システムを構成する各コンピュータシステムとは別のコンピュータシステムの性能情報を参照して、縮約グラフの点の重みに制限を設けて縮約グラフを生成して仮想マシンパッケージの候補を決定することを特徴とする請求項８または９に記載の仮想マシンパッケージ生成方法。
【請求項１１】
前記縮約グラフの生成に際し、前記縮約グラフの点の重みを一定値として縮約グラフを生成することにより仮想パッケージを分割する請求項１０に記載の仮想マシンパッケージ生成方法。
【請求項１２】
前記縮約グラフの生成に際し、前記縮約グラフの点の重みをパッケージ毎に変更して縮約グラフを生成することにより仮想パッケージを分割する請求項１０に記載の仮想マシンパッケージ生成方法。
【請求項１３】
対象とするネットワークに接続された分散システムを構成する各コンピュータシステムにインストールされたオペレーティングシステムのディスクイメージからそれぞれ仮想マシンイメージを生成する処理と、対象とする分散システムに含まれるコンピュータシステム間の依存関係を特定して、パッケージ生成後に該依存関係をユーザが設定変更できるようにするための設定項目を設けた仮想マシンパッケージの設定ファイルを生成する処理と、仮想マシンイメージと仮想マシンパッケージ設定ファイルを仮想マシンパッケージとして格納する処理とをコンピュータに実行させるための仮想マシンパッケージ生成プログラム。
【請求項１４】
前記仮想マシンパッケージ設定ファイルの生成に際して、対象とするコンピュータシステムの設定情報やプログラムを解析した結果を収集する処理と、該解析した結果から、コンピュータシステム間の前記依存関係を、各コンピュータシステムを点、依存関係を辺としたグラフ構造として表現するグラフ構造に変換する処理と、前記変換されたグラフ構造を縮約することによって生成した縮約グラフ中の各点を一つの仮想マシンパッケージとして対応させ、各点に縮約された縮約前のグラフ構造の点から、その仮想マシンパッケージに含める仮想マシンを特定することにより、縮約グラフに基づいて仮想マシンパッケージの候補を決定する処理と、仮想マシンパッケージに含まれる仮想マシンが他の仮想マシンやシステムを参照および呼び出す際に必要となる設定項目を、縮約グラフの辺から特定して仮想マシンパッケージ間の設定要素を設定ファイルとして書き出す処理とをコンピュータに実行させることを特徴とする請求項１３に記載の仮想マシンパッケージ生成プログラム。
【請求項１５】
前記仮想マシンパッケージ設定ファイルの生成に際して、さらに、対象とするネットワークに接続された複数の前記コンピュータシステムで構成される前記分散システムの各コンピュータシステム間のネットワーク性能値を格納するネットワーク性能情報格納部を参照する処理と、コンピュータシステムとコンピュータシステムとの間の前記ネットワーク性能値に基づいて、各コンピュータシステムを点として表現したグラフ構造の辺に重み付けを行ってグラフ構造を生成する処理とをコンピュータに実行させることを特徴とする請求項１４に記載の仮想マシンパッケージ生成プログラム。
【請求項１６】
前記仮想マシンパッケージ設定ファイルの生成に際し、さらに、対象とするコンピュータシステムの性能情報を格納するサーバ性能情報格納部を参照して、前記対象とするコンピュータシステムの性能情報を用いることにより、該コンピュータシステムに対応するグラフ上の点に重み付けを行ってグラフ構造を生成する処理と、仮想マシンパッケージを配布して、仮想マシンパッケージに含まれる一つ以上の仮想マシンを動作させるためのコンピュータシステムであって、前記対象とするネットワークに接続された分散システムを構成する各コンピュータシステムとは別のコンピュータシステムの性能情報を参照する処理と、縮約グラフの点の重みに制限を設けて縮約グラフを生成して仮想マシンパッケージの候補を決定することを特徴とする請求項１４または１５に記載の仮想マシンパッケージ生成プログラム。
【請求項１７】
前記縮約グラフの生成に際し、前記縮約グラフの点の重みを一定値として縮約グラフを生成することにより仮想パッケージを分割する処理をコンピュータに実行させることを特徴とする請求項１６に記載の仮想マシンパッケージ生成プログラム。
【請求項１８】
前記縮約グラフの生成に際し、前記縮約グラフの点の重みをパッケージ毎に変更して縮約グラフを生成することにより仮想パッケージを分割する処理をコンピュータに実行させることを特徴とする請求項１６に記載の仮想マシンパッケージ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成用プログラムに関し、特に構築済みのシステムから複数の仮想マシンパッケージを生成する際に仮想マシンパッケージ間の依存関係を削減し、再利用性の高い仮想マシンパッケージを生成できる仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成用プログラムに関する。
【背景技術】
【０００２】
本発明に関する現時点での技術水準をより十分に説明する目的で、本願で引用され或いは特定される特許、特許出願、特許公報、科学論文等の全てを、ここに、参照することでそれらの全ての説明を組入れる。【０００３】
仮想マシン技術は、１つのコンピュータハードウェア（物理マシン）上でソフトウェアによって擬似的なコンピュータハードウェアを複数作り出すことを可能にする。擬似的なコンピュータハードウェアを仮想マシンと呼ぶ。仮想マシンは、物理マシンと同様に、オペレーティングシステム（ＯＳ）やアプリケーションプログラム（アプリケーション）を動作させることができる。ＯＳやアプリケーションは物理マシンのハードウェア構成に依存せず、仮想マシン実行環境を備える様々な物理マシン上で実行可能となる。【０００４】
ＯＳやアプリケーションをインストール済みの仮想マシンは仮想マシンフォーマット形式によって保存して再利用することができる。非特許文献１では、仮想マシン実行環境であるＶＭｗａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒの仮想マシンディスクフォーマット形式ＶＭＤＫが示されている。ＶＭＤＫで保存された仮想マシンは別のＶＭｗａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒの環境に配布することで再現することができる。【０００５】
このような仮想マシンの保存・再現技術は、様々な産業上の応用が期待される。例えば、大規模災害時に壊れたシステムを別の場所で再現するディザスタリカバリへの応用が期待できる。また、システム構築の際に、テスト環境で構築したシステムをそのまま実環境に移行させる用途にも利用できる。【０００６】
しかし、一般的な企業システムやデータセンタは、複数のコンピュータがネットワークで接続された分散システムであるため、仮想マシンによるコンピュータの保存・再現技術だけでは十分ではない。１つのコンピュータ上で動作するＯＳやアプリケーションの構成だけでなく、ネットワーク設定やアプリケーション通信などの分散システムとしての構成も保存して再現しなければならない。【０００７】
そこで、複数の仮想マシンを分散システムとしての構成情報も含んだ形でパッケージ化し、仮想マシンパッケージとして保存する手法が考えられている。仮想マシンパッケージのフォーマットはＤＭＴＦ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｍａｎａｇｅｍｅｎｔ  Ｔａｓｋ  Ｆｏｒｃｅ）のＯＶＦ（Ｏｐｅｎ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｆｏｒｍａｔ）として標準化が進められている。ＯＶＦではフォーマット形式を定めてはいるが、分散システムをどのように分割してパッケージ化するかは規定していない。【０００８】
【非特許文献１】ＶＭｗａｒｅ  Ｖｉｒｔｕａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ  １．０，  ｈｔｔｐ：／／ｗｗｗ．ｖｍｗａｒｅ．ｃｏｍ／ｉｎｔｅｒｆａｃｅｓ／ｖｍｄｋ．ｈｔｍｌ
【非特許文献２】ＯＶＦ：  Ｏｐｅｎ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｆｏｒｍａｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，  ｈｔｔｐ：／／ｗｗｗ．ｖｍｗａｒｅ．ｃｏｍ／ｐｄｆ／ｏｖｆ＿ｓｐｅｃ＿ｄｒａｆｔ．ｐｄｆ
【特許文献１】特開２００１−５８６５号公報
【特許文献２】特開２００６−２９３５９２号公報
【特許文献３】特開２００７−１５８８７０号公報
【特許文献４】特開平８−６９３６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
すでに、仮想マシンに関しては、特許文献１乃至特許文献４などが開示されているが以下の課題については解決されていない。【００１０】
発明が解決しようとする課題は以下の通りである。【００１１】
第１の問題点は分散システムから生成された仮想マシンパッケージは、パッケージとしての再利用性が低く、配布時に多くの設定作業を必要とすることである。
その理由は、分散システムから仮想マシンパッケージに分割する際に、多くの仮想マシンパッケージ間の依存関係が残るため、配布先の環境に合わせて依存関係を解決するための設定作業が必要となるためである。【００１２】
第２の問題点は分散システムから１つの物理マシンで動作することを前提に生成された仮想マシンパッケージは、配布先のネットワークに大きな負荷をかけることである。その理由は、分散システムから仮想マシンパッケージに分割する際に、多くの仮想マシンパッケージ間の依存関係が残るため、配布先のネットワークでの通信が必要となるためである。【００１３】
そこで、本発明の目的は、分散システムから仮想マシンパッケージを生成する際に、仮想マシンパッケージ間の依存関係を可能な限り削減する仮想マシンパッケージ生成方法を提供することである。
【課題を解決するための手段】
【００１４】
上記の課題を解決すべく本発明に係る仮想マシンパッケージ生成システムは、仮想マシンイメージ生成機能と仮想マシンパッケージ設定ファイル生成機能とを備え、仮想マシン設定ファイル生成機能は、対象システムで動作するプログラムや設定情報を解析した結果を収集する解析情報収集部、グラフ構造変換部、縮約グラフ生成部、仮想マシンパッケージ設定ファイル生成部を備え、対象システムの依存関係をグラフ構造化し、辺の重みを最小化するようにグラフの縮約を行い、仮想マシンパッケージの候補を切り出して、仮想マシンパッケージの設定ファイルを生成するように動作する。このような構成を採用し、仮想マシンパッケージ間の依存関係を削減することにより、本発明の目的を達成することができる。【００１５】
また、本発明に係る仮想マシンパッケージ生成方法は、対象とするコンピュータシステムの構成と接続関係から仮想マシンイメージを生成し、対象とするコンピュータシステム間の依存関係を解析して仮想マシンパッケージの設定ファイルを生成し、仮想マシンイメージと仮想マシンパッケージ設定ファイルを仮想マシンパッケージとして格納することを特徴とすることにより、本発明の目的を達成することができる。【００１６】
さらに、本発明に係るプログラムは、対象とするコンピュータシステムの構成と接続関係から仮想マシンイメージを生成する処理と、対象とするコンピュータシステム間の依存関係を解析して仮想マシンパッケージの設定ファイルを生成する処理と、仮想マシンイメージと仮想マシンパッケージ設定ファイルを仮想マシンパッケージとして格納する処理とをコンピュータに実行させることにより、本発明の目的を達成することができる。
【発明の効果】
【００１７】
第１の効果は、仮想マシンパッケージの配布による分散システムの再現を迅速に処理できることである。
その理由は、仮想マシンパッケージ間の依存関係を削減できるため、配布先のシステム環境に合わせて設定変更を行わなければならない箇所を削減でき、設定作業時間を短縮できるためである。【００１８】
第２の効果は、仮想マシンパッケージの再利用性を高められることである。その理由は、仮想マシンパッケージ間の依存関係を削減できるため、少ない設定項目で異なるシステム上に仮想マシンパッケージを再現可能となるためである。【００１９】
第３の効果は、仮想マシンパッケージを１つの物理サーバ上に対応づけて配布する場合に、仮想マシンパッケージの配布先のネットワーク負荷を削減できることである。
その理由は、仮想マシンパッケージ間の依存関係を削減できるため、配布先のネットワークを介して通信する処理が削減されるためである。
【図面の簡単な説明】
【００２０】
【図１】本発明に係る第１の発明を実施するための最良の形態の構成を示すブロック図である。
【図２】本発明に係る第１の発明を実施するための最良の形態の仮想マシンパッケージの構成を示すブロック図である。
【図３】本発明に係る第１の発明を実施するための最良の形態の仮想マシンパッケージの構成を示すブロック図である。
【図４】本発明に係る第１の発明を実施するための最良の形態の仮想マシンパッケージ生成処理の動作を示す流れ図である。
【図５】本発明に係る第１の発明を実施するための最良の形態の仮想マシンパッケージ設定ファイル生成処理の動作を示す流れ図である。
【図６】本発明に係る第１の発明を実施するための最良の形態の対象システムの依存関係抽出方法の流れ図である。
【図７】本発明に係る第１の発明を実施するための最良の形態の対象システムの依存関係の解析結果の具体例を示す図である。
【図８】本発明に係る第１の発明を実施するための最良の形態の対象システムをグラフ構造に変換した具体例を示す図である。
【図９】本発明に係る第１の発明を実施するための最良の形態の対象システムを表すグラフ構造を縮約したグラフの構成を示す図である。
【図１０】本発明に係る第１の発明を実施するための最良の形態の仮想マシンパッケージ設定ファイルの具体例を示す図である。
【図１１】本発明に係る第２の発明を実施するための最良の形態の仮想マシンパッケージ設定ファイル生成機能の構成を示すブロック図である。
【図１２】本発明に係る第２の発明を実施するための最良の形態の仮想マシンパッケージ生成処理の動作を示す流れ図である。
【図１３】本発明に係る第２の発明を実施するための最良の形態のネットワーク性能情報の具体例を示す図である。
【図１４】本発明に係る第２の発明を実施するための最良の形態の対象システムをグラフ構造に変換してネットワーク性能情報で辺に重み付けを行ったグラフの構成を示す図である。
【図１５】本発明に係る第２の発明を実施するための最良の形態の対象システムを表すグラフ構造を縮約したグラフの構成を示す図である。
【図１６】本発明に係る第３の発明を実施するための最良の形態の仮想マシンパッケージ設定ファイル生成機能の構成を示すブロック図である。
【図１７】本発明に係る第３の発明を実施するための最良の形態の仮想マシンパッケージ生成処理の動作を示す流れ図である。
【図１８】本発明に係る第３の発明を実施するための最良の形態のサーバ性能情報の具体例を示す図である。
【図１９】本発明に係る第３の発明を実施するための最良の形態の対象システムをグラフ構造に変換してサーバ性能情報で点に重み付けを行ったグラフの構成を示す図である。
【図２０】本発明に係る第３の発明を実施するための最良の形態の物理サーバ制約の具体例を示す図である。
【図２１】本発明に係る第３の発明を実施するための最良の形態の対象システムを表すグラフ構造を縮約したグラフの構成を示す図である。
【図２２】本発明の実施例の対象とするＷｅｂアプリケーションシステムの構成を示す図である。
【図２３】本発明の実施例の対象とするシステムをグラフ構造に変換した図である。
【図２４】本発明の実施例の対象とするシステムをサーバ性能情報に基づいて点に重み付けを行ったグラフ構造を示す図である。
【図２５】本発明の実施例の対象とするシステムをサーバ性能情報に基づいて点に重み付けを行ったＦＦＤアルゴリズムに従った流れ図である。
【図２６】本発明の実施例の対象とするシステムを表すグラフに対し、Ｆｉｓｔ  Ｆｉｔ減少アルゴリズムによってグラフを縮約した構成を示す図である。
【図２７】本発明の実施例の対象とするシステムを表すグラフに対し、依存関係を削減するようにグラフ縮約を行った結果の構造を示す図である。
【図２８】本発明の実施例の仮想マシンパッケージ設定ファイルの具体例を示す図である。
【図２９】本発明の実施例で生成した仮想マシンパッケージを配布する際の具体例を示した図である。
【図３０】本発明の第２の実施例の対象とするシステムをサーバ性能情報に基づいて点に重み付けを行ったグラフ構造を示す図である。
【符号の説明】
【００２１】
１  仮想マシンパッケージ生成システム
２  対象システム
１１  仮想マシンパッケージ生成機能
１２  仮想マシンイメージ生成機能
１３  仮想マシンパッケージ格納部
１４  仮想マシンパッケージ設定ファイル生成機能
２１  設定情報・プログラム解析部
２２  アプリケーションプログラム（アプリケーション）
２３  オペレーティングシステム（ＯＳ）
１３１  仮想マシンパッケージ
１３２  仮想マシンイメージ
１３３  設定ファイル
１４１  解析情報収集部
１４２  グラフ構造変換部
１４３  縮約グラフ生成部
１４４  仮想マシンパッケージ設定ファイル生成部
１４５  ネットワーク性能情報格納部
１４６  サーバ性能情報格納部
１４７  物理サーバ制約格納部
５００  ロードバランサ
５０１  Ｗｅｂサーバ
５０５  ＡＰサーバ
５０５  ＡＰサーバ
５０７  ＤＢサーバ
【発明を実施するための最良の形態】
【００２２】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。【００２３】
図１を参照すると、本発明の第１の実施の形態は、仮想マシンパッケージを生成するための仮想マシンパッケージ生成システム１と、対象となる分散システムを構成する複数の対象システム２から構成される。【００２４】
対象システム２はコンピュータ（中央処理装置；プロセッサ；データ処理装置）上で動作するオペレーティングシステム（ＯＳ）２３とアプリケーションプログラム（アプリケーション）２２を含み、ＯＳ２３やアプリケーション２２を構成するプログラムや設定情報を解析する設定情報・プログラム解析部２１を備える。【００２５】
仮想マシンパッケージ生成システム１は仮想マシンパッケージ生成機能１１、仮想マシンイメージ生成機能１２、仮想マシンパッケージ格納部１３、仮想マシンパッケージ設定ファイル生成機能１４を含む。【００２６】
ここで、仮想マシンパッケージ生成システム１を１つのサーバ等の１つの中央演算素子と記憶素子を含むコンピュータで構成した場合の構成例を図２に示す。仮想マシンパッケージ生成システム１は、中央演算素子３とプログラムメモリと仮想マシンパッケージ格納部１３とネットワークインターフェース５とから構成され、プログラムメモリ内に仮想マシンパッケージ生成機能１１と仮想マシンイメージ生成機能１２と仮想マシンパッケージ設定ファイル生成機能１４とが格納される。また、ネットワークインターフェース５を介して対象システムＡと接続される。これらの機能を有するプログラムは中央演算素子３と協同して動作する。【００２７】
さらに、仮想マシンパッケージ設定ファイル生成機能１４は解析情報収集部１４１、グラフ構造変換部１４２、縮約グラフ生成部１４３、仮想マシンパッケージ設定ファイル生成部１４４を含む。【００２８】
これらの機能はそれぞれ概略つぎのように動作する。【００２９】
仮想マシンパッケージ生成機能１１は仮想マシンイメージ生成機能１２を利用して対象システム２の構成と接続関係から仮想マシンイメージを作成する。さらに、仮想マシンパッケージ設定ファイル生成機能１４を利用して仮想マシンパッケージ設定ファイルを作成する。作成した仮想マシンイメージと仮想マシンパッケージ設定ファイルを仮想マシンパッケージとして仮想マシンパッケージ格納部１３に格納する。図３は仮想マシンパッケージの一例を示している。仮想マシンパッケージ格納部１３に格納される仮想マシンパッケージ１３１は、複数の仮想マシンイメージ１３２と、仮想マシンパッケージを配布して利用する際に設定する要素を記述した設定ファイル１３３で構成される。【００３０】
仮想マシン設定ファイル生成機能１４では、解析情報収集部１４１が、複数の対象システム２の設定情報・プログラム解析部２１から得られる対象システム間の依存関係に関する情報を集める。集めた情報はグラフ構造変換部１４２に入力され、対象システムの依存関係を点と線で表されるグラフ構造に変換する。縮約グラフ生成部１４３では、生成されたグラフ構造の縮約グラフを生成することで対象システムのグループ化を行い、仮想マシンパッケージの候補を抽出する。仮想マシンパッケージ設定ファイル生成部１４４では、生成された縮約グラフに基づいて、仮想マシンパッケージ間の依存関係を特定し、依存関係を解決するための設定要素を設定ファイルに記述する。【００３１】
この依存関係を抽出する依存関係抽出方法について図６を用いて説明する。まず、各サーバを識別するサーバ識別子情報を各サーバに格納されるシステムファイルからサーバ毎に抽出する。具体的には、ホスト名、ＩＰアドレス、ＭＡＣアドレス情報を抽出する（２２００）。【００３２】
さらに、続いて各サーバより設定ファイルと、アプリケーションのソースファイルを抽出する（２２０２）。続いて、抽出された設定ファイルとソースファイルから２２００で抽出したサーバ識別子情報を抽出して、どの設定ファイルとどのサーバに依存関係があり、また、どのアプリケーションとどのサーバに依存関係があるかを抽出する（２２０４）。サーバ毎に抽出を行い、残りのサーバが無くなるまで依存関係を抽出する（２２０６）。残りのサーバがあるうちは、工程２２０２より繰り返し、全てのサーバについて抽出したら完了となる（２２０８）。【００３３】
次に、図４、図５のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。はじめに、仮想マシンパッケージ生成機能１１は仮想マシンイメージ生成機能１２を利用し、対象システム２の仮想マシンイメージを作成する（図５のステップ１０００）。仮想マシンイメージの生成は対象システム毎に行い、対象システムの数だけ仮想マシンイメージが生成される。【００３４】
仮想マシンイメージは、既存のシステムから仮想マシンイメージを生成する方法としては大きく以下の２つの方法がある。第１の方法は仮想化機能を利用して、対象とするシステムと同じ構成を持つ仮想マシンを１から再構築する方法である。具体的には、管理者が仮想マシンの仕様を策定し、その仕様に沿って管理者自らが設定ファイルを作成しながら完成する方法である。管理者がシステムの構築を詳細に把握している必要があり、構築にかかる工数も大きい。一方、第２の方法は、予め設定の拡張可能な仮想マシンであって必要な設定ファイルが準備された仮想マシンを、仮想マシンへ移行する物理サーバと並立して起動させて順次、物理サーバのデータを仮想マシンへコピーする方法である。この場合、必要情報を物理サーバから抽出しながら行うことで、管理者の工数を削減することができる。【００３５】
具体的に、第一に仮想マシンイメージ生成機能１２は移行側装置に移行先仮想マシンを生成するためのデータすべてをインストールして移行先仮想マシンを生成する。【００３６】
仮想マシンイメージ生成機能１２は移行元物理サーバと移行先仮想マシンにそれぞれのブート時の起動ファイルであるブートイメージシステムがインストールされる。【００３７】
移行元物理サーバと移行先仮想マシンはいずれも再起動され、両者が接続されるＤＨＣＰサーバからＩＰアドレスを取得する。続いて、仮想マシンイメージ生成機能１２は、ブートイメージで移行元物理サーバから移行先仮想マシンへファイルを転送する。【００３８】
移行先仮想マシンは、ドライバ変換を含むシステム変更がなされる。前記ブートイメージシステムは削除されて完了する。【００３９】
次に、仮想マシンパッケージ生成機能１１は仮想マシンパッケージ設定ファイル生成機能１４を利用し、仮想マシンパッケージ設定ファイルを生成する（ステップ１００１）。【００４０】
仮想マシンパッケージ生成機能１１は仮想マシンイメージと仮想マシンパッケージ設定ファイルをアーカイブまたは特定のディレクトリに収め、仮想マシンパッケージとする（ステップ１００２）。【００４１】
具体的には、特定のディレクトリに対応するファイルを生成し、そのヘッダーにはファイルネームとファイルモードとファイルオーナ名とファイルサイズとファイル修正時間情報とチェックサム情報とリンク情報とまとめる各ファイル名とが記載され、実データがそのヘッダーとともに一つのデータとして保存される。例えば、ＵＮＩＸ（登録商標）の書庫用コマンドであるｔａｒコマンドを代用することもできる。圧縮する場合は、ｃｏｍｐｒｅｓｓ，ｇｚｉｐ，ｂｚｉｐ２コマンドを用いることもできる。【００４２】
さらに、作成した仮想マシンパッケージを所定の格納場所に格納する（ステップ１００３）。具体的には、前記コマンドで生成した仮想マシンパッケージデータを特定のディレクトリに格納する。【００４３】
図５は仮想マシンパッケージ設定ファイル生成の動作を説明するためのフローチャートである。はじめに、対象システム２で設定情報プログラム解析部２１を利用して、対象システムで動作するＯＳやアプリケーションのネットワーク設定や通信関係を抽出する（ステップ２０００）。３つの対象システムＡ、Ｂ、Ｃを持つ場合の解析結果の例を図７に示す。この例では、図７は、アプリケーションＡがアプリケーションＢを呼び出し、アプリケーションＢがアプリケーションＣを呼び出す関係にあることを示している。【００４４】
次に解析情報収集部１４１によって、解析結果を収集する（ステップ２００１）。【００４５】
また、収集された解析結果はグラフ構造変換部１４２に入力され、対象システムの依存関係をグラフ構造に変換する（ステップ２００２）。図７の例では、アプリケーションの呼び出し関係に基づき、図８に示すグラフ構造が得られる。具体的には１つのシステムを１つのノードと定義し、システム同士の１つの結合関係としてノード同士を結合する１つのエッジと定義して、図６に示されるノードとして示される各システムをエッジで示される結線として抽象化されたグラフ表示させるプログラムである。【００４６】
さらに、縮約グラフ生成部１４３によって、辺（エッジ）の数を削減するようにノードを縮約した縮約グラフを生成する（２００３）。図９では図８に対して対象システムＡと対象システムＢを縮約して対象システムＢと対象システムＣを結合するエッジのみを残すものである。【００４７】
辺の数を最小化する縮約グラフの生成は最適化問題として定式化できるため、近似解を求めるためのヒューリスティック手法などを用いて問題を解く。ここでは、ヒューリスティック手法を用いたサブルーチンから近似解を算出する。縮約グラフの例として図９に示す縮約グラフが得られた場合について説明する。この例では対象システムＡと対象システムＢが縮約されて一つの点として表現されている。生成された縮約グラフの点を一つの仮想マシンパッケージとして扱い、仮想マシンパッケージ設定ファイル生成部１４４によって仮想マシンパッケージ設定ファイルを生成する（２００４）。【００４８】
仮想マシンパッケージの設定ファイルの例を図１０に示す。対象システムＡと対象システムＢを含む仮想マシンパッケージＡＢの設定ファイルには、各システムが縮約されて仮想マシンパッケージのＩＰアドレスと、ＶＬＡＮ  ＩＤとが設定される。その他の項目に、アプリケーションＣと通信するためのアドレスとポートの設定項目が追加される。これは、アプリケーションＢがアプリケーションＣと通信するために必要な設定である。【００４９】
次に、本実施の形態の効果について説明する。【００５０】
本実施の形態では、仮想マシンパッケージを生成する対象システムの依存関係を解析し、解析結果に基づいてグラフ構造を作成し、辺の数が少なくなるように縮約グラフを生成し、仮想マシンパッケージの候補を切り出して設定ファイルを生成するように構成されているため、仮想マシンパッケージ間の依存関係を削減できる。【００５１】
次に、本発明の第２の発明を実施するための最良の形態について図面を参照して詳細に説明する。【００５２】
図１１は本発明の第２の発明を実施するための最良の形態の仮想マシンパッケージ設定ファイル生成機能１４の構成を示している。仮想マシンパッケージ設定ファイル生成機能は、グラフ構造変換部１４２がネットワーク性能情報格納部１４５を参照し、グラフの辺に重み付けを行うように構成されている。ネットワーク性能情報格納部１４５は、対象システム間のネットワーク性能に関する情報（帯域、通信量の統計値など）を格納する。【００５３】
図１２は本発明の第２の発明を実施するための最良の形態の動作を示すフローチャートである。
まず、対象システム２で設定情報プログラム解析部２１を利用して、対象システムで動作するオペレーティングシステムやアプリケーションのネットワーク設定や通信関係を抽出する（ステップ３０００）。【００５４】
次に解析情報収集部１４１によって、解析結果を収集する（ステップ３００１）。【００５５】
収集された解析結果はグラフ構造変換部１４２に入力され、対象システムの依存関係をグラフ構造に変換する（ステップ３００２）。【００５６】
次にネットワーク性能情報格納部１４５に格納されたネットワーク性能情報に基づいて、グラフの辺に相対的な重み付けを行う。例えば、図１３のようなネットワーク性能情報があった場合は、図１４のように辺に重み付けを行う。辺の重み付けは、ネットワークの転送速度等のネットワーク性能情報を参照して決定する。さらに、設定項目の数に基づいて行っても良い。重み付けされたグラフに対し、縮約グラフ生成部１４３は辺の重みを最小化するようにグラフ縮約を行う（ステップ３００４）。生成された縮約グラフの例を図１５に示す。重みを最小化するため、重みの大きなエッジ（辺）を有するノード同士を縮約している。【００５７】
生成された縮約グラフに基づいて、仮想マシンパッケージの設定ファイルを生成する（ステップ２００５）。仮想マシンパッケージ全体の生成手順は、図４に示した方法と同じである。【００５８】
次に、本発明を実施するための最良の形態の効果について説明する。本発明を実施するための最良の形態では、ネットワークの性能情報に基づいてグラフの辺に重み付けを行い、辺の重みを最小化するようにグラフ縮約を行うため、仮想マシンパッケージ配布時のネットワーク負荷を削減することができる。特に、仮想マシンパッケージを一つに物理サーバに配布する場合、物理サーバ間の通信量を削減することができる。【００５９】
次に、本発明の第３の発明を実施するための最良の形態について図面を参照して詳細に説明する。【００６０】
図１６は本発明の第３の発明を実施するための最良の形態の仮想マシンパッケージ設定ファイル生成機能の構成を示している。仮想マシンパッケージ設定ファイル生成機能１４は、グラフ構造変換部１４２がサーバ性能情報格納部１４６を参照し、グラフの点に重み付けを行うように構成されている。さらに、縮約グラフ生成部１４３が物理サーバ制約格納部１４７を参照し、配布先の物理サーバの性能に合わせてグラフの縮約を行うように構成されている。サーバ性能情報格納部１４６は、対象システムのサーバ性能に関する情報（ＣＰＵ利用率、ＣＰＵスペック、メモリ容量、メモリ利用量、ディスク帯域など）を格納する。物理サーバ制約格納部には、配布対象の物理サーバの性能情報（稼働可能な仮想マシンの数、ＣＰＵスペック、メモリ容量など）を格納する。【００６１】
図１７は本発明の第３の発明を実施するための最良の形態の動作を示すフローチャートである。
はじめに、対象システム２で設定情報プログラム解析部２１を利用して、対象システムで動作するＯＳやアプリケーションのネットワーク設定や通信関係を抽出する（ステップ４０００）。【００６２】
次に解析情報収集部１４１によって、解析結果を収集する（ステップ４００１）。【００６３】
また、収集された解析結果はグラフ構造変換部１４２に入力され、対象システムの依存関係をグラフ構造に変換する（ステップ４００２）。【００６４】
更に、サーバ性能情報格納部１４５に格納されたサーバ性能情報に基づいて、グラフの点に相対的な重み付けを行う。例えば、図１８のようなサーバ性能情報があった場合は、図１９のように点に重み付けを行う（ステップ４００３）。【００６５】
重み付けされたグラフに対し、縮約グラフ生成部１４３は物理サーバ制約格納部１４７を参照し、各点の重みが指定した値より大きくならない範囲でグラフの縮約を行う（ステップ４００４）。例えば、図２０に示す物理マシン制約情報があった場合、配布先の物理マシンの相対的な処理能力は１．０と見積もれるため、縮約グラフの各点の重みが１．０以下となる範囲でグラフの縮約を行う。生成された縮約グラフの例を図２１に示す。【００６６】
生成された縮約グラフに基づいて、仮想マシンパッケージの設定ファイルを生成する（ステップ４００５）。仮想マシンパッケージ全体の生成手順は、図４に示した方法と同じである。【００６７】
次に、本発明を実施するための最良の形態の効果について説明する。本発明を実施するための最良の形態では、サーバの性能情報に基づいてグラフの点に重み付けを行い、配布先の物理サーバの性能情報に基づいて、縮約グラフの点の重みに制約を設けて縮約グラフを生成するため、一つの物理サーバに収まる仮想マシンパッケージを生成することができる。仮想マシンパッケージが物理サーバ内に収まる場合、仮想マシンパッケージ内の依存関係は配布時に考慮する必要はないため、仮想マシンパッケージの配布が容易になる。
【実施例】
【００６８】
（実施例１）
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。【００６９】
図２２に示すＷｅｂアプリケーションシステムを仮想マシンパッケージとして分割して保存する例を示す。  対象とするシステムは２つのＷｅｂアプリケーションシステムで構成される。どちらのＷｅｂアプリケーションシステムもロードバランサ５００を介してクライアントからのリクエストを受け付ける。各サーバの間の線はサーバの呼び出し関係を表している。例えば、Ｗｅｂサーバ５０１はＡＰ（アプリケーション）サーバ５０５を呼び出し、ＡＰサーバ５０５はＤＢサーバ５０７を呼び出す。【００７０】
はじめに、仮想マシンイメージ生成機能１２によって、Ｗｅｂアプリケーションシステムを構成する各サーバの仮想マシンイメージを生成する。ロードバランサもソフトウェアロードバランサとして実現されていることを想定し、仮想マシンイメージを生成する。【００７１】
次に、各サーバおよびロードバランサの設定情報やプログラムを解析し、サーバやアプリケーション間の依存関係を抽出する。この情報をもとにグラフ構造に変換した結果、図２３の構成が得られたとする。各サーバは点で表され、サーバ間の依存関係が辺で表される。さらに、ここでは、各サーバの処理量に基づいて、点に重み付けを行う。例えば、過去一ヶ月間のＣＰＵ利用率の最大値に基づいて、各サーバの処理量を相対的に評価する。点に重み付けを行った後のグラフを図２４に示す。【００７２】
ここで、グラフを縮約する際の制約を設ける。仮想マシンパッケージを一つの物理サーバに配備することを想定し、仮想マシンパッケージの大きさを一定量に制限する。具体的には、縮約グラフの各点の重みが１．０以下となるように、縮約を行うこととする。【００７３】
はじめに、依存関係を考慮せず、最小のパッケージ数で対象システムを分割する手法を示す。問題は、仮想マシンパッケージに各仮想マシンを詰めていくビンパッキング問題として定式化でき、Ｆｉｒｓｔ−Ｆｉｔ減少アルゴリズムという近似アルゴリズムによって近似解を求めることができる。【００７４】
ここで、Ｆｉｒｓｔ−Ｆｉｔ減少アルゴリズムを用い、依存関係を考慮せず、最小のパッケージ数で対象システムを分割する流れ図を図２５に示す。【００７５】
まず、図２４に示されるように、各装置に重み付けがなされて、ここでは、ファイルサーバ：０．６、ＤＢサーバ：０．５、ＡＰサーバ２：０．４、ＡＰサーバ１：０．４、Ｗｅｂサーバ３：０．４、Ｗｅｂサーバ４：０．４、ＡＰサーバ３：０．３、Ｗｅｂサーバ２：０．３、Ｗｅｂサーバ１：０．３、ロードバランサ：０．２と設定されている。まず、仮想マシンイメージ生成機能１２は、これらの装置をその重み付け値（縮約値）の順序にソートする（５０００）。【００７６】
続いて、縮約値の最大の装置の有無を判定する（５００２）。縮約値の最大の装置が無い場合は、分割すべき装置がないため、仮想パッケージの分割工程は完了する（５０１０）。他方、縮約値の最大の装置が有る場合は、現在存在する仮想パッケージのなかに、その縮約値の最大の装置を収納する仮想パッケージの有無を判定する（５００４）。ここでは、仮想パッケージの最大収納可能縮約値を１．０と設定する。既に複数の装置が仮想パッケージに収納され、最大収納可能縮約値１．０から収納済装置の縮約値の和を差し引いた値が、現在の縮約値の最大の装置縮約値よりも大きければ収納可能となり、その既存の仮想パッケージに現在の縮約値の最大の装置を収納する（５００８）。そこで、再び、５００２工程へ遷移する。【００７７】
一方、最大収納可能縮約値１．０から収納済装置の縮約値の和を差し引いた値が、現在の縮約値の最大の装置縮約値よりも小さい場合は、新たな仮想パッケージを生成して、その内部に現在の縮約値の最大の装置を収納する（５００６）。また、仮想パッケージが一つも生成されていない場合も新たな仮想パッケージを生成して、その内部に現在の縮約値の最大の装置を収納する。そこで、再び、５００２工程へ遷移する。この結果として、Ｆｉｒｓｔ−Ｆｉｔ減少アルゴリズムを適用して仮想マシンパッケージの候補を切り出した結果を図２６に示す。仮想マシンパッケージの数は４となり最小値が達成される。このとき、仮想マシンパッケージ間の依存関係、すなわち、辺の数は９となる。【００７８】
次に、依存関係を考慮し、グラフの縮約によって対象システムを分割する手法を示す。グラフに対して辺縮約を行うと、辺で示される依存関係が、一つの点の中に収められるため、依存関係を削減する効果がある。したがって、仮想マシンパッケージの大きさの制約の範囲で、辺縮約をできるだけ多く繰り返すことで、依存関係の少ない縮約グラフを生成できる。辺縮約によって得られた縮約グラフの一例を図２７に示す。仮想マシンパッケージ数は４で最小であり、仮想マシンパッケージ間の依存関係の数は６となる。依存関係を考慮しない場合に比べて、依存関係の少ない仮想マシンパッケージを生成することができる。【００７９】
図２７の縮約グラフに基づいて仮想マシンパッケージ設定ファイルを生成すると、図２８のようになる。【００８０】
仮想マシンイメージと、仮想マシンパッケージ設定ファイルによって、別の環境で対象となるＷｅｂアプリケーションシステムを再現することができる。このとき、仮想マシンパッケージ間の依存関係が少ないため、仮想マシンパッケージ配布時の設定作業が少なくてすむ。また、仮想マシンパッケージを一つの物理サーバに配置するので、仮想マシンパッケージ間の依存関係が少ないことによって、物理サーバ間のネットワーク負荷も削減される。【００８１】
図２９は生成した仮想マシンパッケージを１７２．１６．０．０／２４のネットワークのシステムに配布して再現する際の構成と設定ファイルを示している。仮想マシンパッケージのＩＰアドレスやＶＬＡＮ  ＩＤは配布対象のシステムに合わせて変更される。アドレスの変更に伴い、アプリケーション通信に関する設定を変更する必要がある。仮想マシンパッケージ内の通信は、仮想化機能が提供する仮想スイッチによって、アドレス変更なしに実現できる。仮想スイッチには配布対象のシステムに適合させるためのＮＡＴの設定やＶＬＡＮ  ＩＤの設定を行う。【００８２】
（実施例２）
ここで、実施例１では最小のパッケージ数で対象システムを分割する手法において、縮約グラフの各点の重みが１．０以下となるように規定した条件で仮想パッケージを分割した。【００８３】
しかし、仮想パッケージを展開する物理的環境によっては、必ずしも全ての縮約グラフの各点の重みが１．０以下となるわけではない。その重み付けを予め定めた値以下としたり、生成される仮想パッケージ毎に重み付けを変更することで、物理的環境やサーバ資源に適合した仮想パッケージを生成することができる。以下に重み付けを予め定めた値以下とした場合の対象システムを仮想パッケージに分割する流れ図を図３０に示す。【００８４】
縮約値の最大の装置の有無を判定する（６００２）。縮約値の最大の装置が無い場合は、分割すべき装置がないため、仮想パッケージの分割工程は完了する（６０１０）。他方、縮約値の最大の装置が有る場合は、現在存在する仮想パッケージのなかに、その縮約値の最大の装置を収納する仮想パッケージの有無を判定する（６００４）。ここでは、仮想パッケージの最大収納可能縮約値をＡと設定する。既に複数の装置が仮想パッケージに収納され、最大収納可能縮約値Ａから収納済装置の縮約値の和を差し引いた値が、現在の縮約値の最大の装置縮約値よりも大きければ収納可能となり、その既存の仮想パッケージに現在の縮約値の最大の装置を収納する（６００８）。そこで、再び、６００２工程へ遷移する。【００８５】
一方、最大収納可能縮約値Ａから収納済装置の縮約値の和を差し引いた値が、現在の縮約値の最大の装置縮約値よりも小さい場合は、新たな仮想パッケージを生成して、その内部に現在の縮約値の最大の装置を収納する（６００６）。また、仮想パッケージが一つも生成されていない場合も新たな仮想パッケージを生成して、その内部に現在の縮約値の最大の装置を収納する。そこで、再び、６００２工程へ遷移する。この結果として、Ｆｉｒｓｔ−Ｆｉｔ減少アルゴリズムを適用して仮想マシンパッケージに任意の重み付けで分割することができる。このＡの値はすべて一定値とすることもでき、また、パッケージ毎に変更することができる。
【産業上の利用可能性】
【００８６】
本発明によれば、大規模災害時に壊れたシステムを別の場所で再現するディザスタリカバリといった用途に適用できる。また、システム構築の際に、テスト環境で構築したシステムをそのまま実環境に移行させるといった用途にも利用できる。【００８７】
さらに、システム構築後、安定動作の確認されたシステムの事例をベースに、新しい環境でシステム構築を行うといった用途に適用できる。【００８８】
本発明は、仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成用プログラムに関し、特に、特に構築済みのシステムから複数の仮想マシンパッケージを生成する際に仮想マシンパッケージ間の依存関係を削減し、再利用性の高い仮想マシンパッケージを生成できる仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成用プログラムに適用して有効な技術に関するものであれば、あらゆるものに適用することが可能であり、その利用の可能性において何ら限定するものではない。【００８９】
幾つかの好適な実施の形態及び実施例に関連付けして本発明を説明したが、これら実施の形態及び実施例は単に実例を挙げて発明を説明するためのものであって、限定することを意味するものではないことが理解できる。本明細書を読んだ後であれば、当業者にとって等価な構成要素や技術による数多くの変更および置換が容易であることが明白であるが、このような変更および置換は、添付の請求項の真の範囲及び精神に該当するものであることは明白である。
【図１】
0005598762.tif 000002
【図２】
0005598762.tif 000003
【図３】
0005598762.tif 000004
【図４】
0005598762.tif 000005
【図５】
0005598762.tif 000006
【図６】
0005598762.tif 000007
【図７】
0005598762.tif 000008
【図８】
0005598762.tif 000009
【図９】
0005598762.tif 000010
【図１０】
0005598762.tif 000011
【図１１】
0005598762.tif 000012
【図１２】
0005598762.tif 000013
【図１３】
0005598762.tif 000014
【図１４】
0005598762.tif 000015
【図１５】
0005598762.tif 000016
【図１６】
0005598762.tif 000017
【図１７】
0005598762.tif 000018
【図１８】
0005598762.tif 000019
【図１９】
0005598762.tif 000020
【図２０】
0005598762.tif 000021
【図２１】
0005598762.tif 000022
【図２２】
0005598762.tif 000023
【図２３】
0005598762.tif 000024
【図２４】
0005598762.tif 000025
【図２５】
0005598762.tif 000026
【図２６】
0005598762.tif 000027
【図２７】
0005598762.tif 000028
【図２８】
0005598762.tif 000029
【図２９】
0005598762.tif 000030
【図３０】
0005598762.tif 000031