IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2024-162883計算機環境構築システム及び計算機環境構築方法
<>
  • 特開-計算機環境構築システム及び計算機環境構築方法 図1
  • 特開-計算機環境構築システム及び計算機環境構築方法 図2
  • 特開-計算機環境構築システム及び計算機環境構築方法 図3
  • 特開-計算機環境構築システム及び計算機環境構築方法 図4
  • 特開-計算機環境構築システム及び計算機環境構築方法 図5
  • 特開-計算機環境構築システム及び計算機環境構築方法 図6
  • 特開-計算機環境構築システム及び計算機環境構築方法 図7
  • 特開-計算機環境構築システム及び計算機環境構築方法 図8
  • 特開-計算機環境構築システム及び計算機環境構築方法 図9
  • 特開-計算機環境構築システム及び計算機環境構築方法 図10
  • 特開-計算機環境構築システム及び計算機環境構築方法 図11
  • 特開-計算機環境構築システム及び計算機環境構築方法 図12
  • 特開-計算機環境構築システム及び計算機環境構築方法 図13
  • 特開-計算機環境構築システム及び計算機環境構築方法 図14
  • 特開-計算機環境構築システム及び計算機環境構築方法 図15
  • 特開-計算機環境構築システム及び計算機環境構築方法 図16
  • 特開-計算機環境構築システム及び計算機環境構築方法 図17
  • 特開-計算機環境構築システム及び計算機環境構築方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162883
(43)【公開日】2024-11-21
(54)【発明の名称】計算機環境構築システム及び計算機環境構築方法
(51)【国際特許分類】
   G06F 8/60 20180101AFI20241114BHJP
【FI】
G06F8/60
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023078847
(22)【出願日】2023-05-11
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】金 成昊
(72)【発明者】
【氏名】角尾 晋一
(72)【発明者】
【氏名】大塚 祐策
(72)【発明者】
【氏名】西山 泰史
(72)【発明者】
【氏名】綿引 博章
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA14
5B376AA32
5B376AB01
5B376AB13
5B376AB43
(57)【要約】
【課題】修正対象を容易に明確化可能な、既存のソフトウェア資産の移行先の計算機環境を提供する。
【解決手段】本発明の一態様の仮想環境構築システム1は、新たな計算機環境への移行対象のアプリケーションを構成する各要素間における論理的関係及び依存性の情報に基づいて、要素を複数のレイヤのうちのいずれかのレイヤに割り当てる階層化情報生成部10と、複数のレイヤを含むコンテナを生成して、該コンテナを実環境におけるノードに配備する配備・更新管理部20と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
新たな計算機環境への移行対象のアプリケーションを構成する各要素間における論理的関係及び依存性の情報に基づいて、前記要素を複数のレイヤのうちのいずれかのレイヤに割り当てる階層化情報生成部と、
複数の前記レイヤを含む独立実行環境を生成して、該独立実行環境を実環境におけるノードに配備する配備管理部と、を備えた
計算機環境構築システム。
【請求項2】
前記配備管理部は、前記各要素間における論理的関係及び依存性の情報に基づいて、前記ノードに配置された前記要素を特定して修正する
請求項1に記載の計算機環境構築システム。
【請求項3】
前記配備管理部は、前記独立実行環境を、前記アプリケーションのパッケージの単位で生成する
請求項2に記載の計算機環境構築システム。
【請求項4】
前記階層化情報生成部は、前記アプリケーションのソースコードの修正履歴の情報に基づいて、アプリケーションを構成する各要素間における論理的関係及び依存性の情報、並びに、前記要素の前記レイヤへの割り当て結果の情報を記した階層構成テーブルを生成し、
前記配備管理部は、前記階層構成テーブルに記載の情報に基づいて前記独立実行環境の前記ノードへの配備、及び、前記独立実行環境に配備された前記要素の修正を行う
請求項3に記載の計算機環境構築システム。
【請求項5】
複数の前記レイヤは、第1のレイヤ、前記第1のレイヤの上に配置される第2のレイヤ、及び、前記第2のレイヤの上に配置される第3のレイヤを含み、
前記階層化情報生成部は、複数の前記パッケージによって共有される設定に関する前記要素を前記第1のレイヤに配置し、前記要素が有する機能の単位で共有される設定に関する前記要素を前記第2のレイヤに配置し、前記パッケージによって使用される設定に関する前記要素を前記第3のレイヤに配置する
請求項4に記載の計算機環境構築システム。
【請求項6】
前記論理的関係は、前記パッケージが有する機能により示される関係であり、前記依存性は、前記要素が他の要素により呼び出される場合における呼び出し元の前記要素の重複度、及び、前記要素の修正頻度により示される情報である
請求項5に記載の計算機環境構築システム。
【請求項7】
前記階層化情報生成部は、呼び出し元の前記要素の前記重複度が所定の閾値を超える前記要素を前記第1のレイヤに配置し、前記第1のレイヤに配置された前記要素のうち、前記修正頻度が所定の閾値を超える前記要素は、前記第1のレイヤから前記第2のレイヤに移動させる
請求項6に記載の計算機環境構築システム。
【請求項8】
前記配備管理部は、前記独立実行環境のうち、前記要素が有する機能毎に区切られた前記第2のレイヤの一区分に対応付けられた複数の前記独立実行環境を、一つのノードに配備する
請求項7に記載の計算機環境構築システム。
【請求項9】
前記要素は、前記アプリケーションの実行ファイル、共有ライブラリファイルを含み、
前記要素の他の要素による呼び出しは、前記共有ライブラリファイル内の関数を介して行われる
請求項8に記載の計算機環境構築システム。
【請求項10】
前記独立実行環境は、仮想化技術により形成される仮想マシンである
請求項1に記載の計算機環境構築システム。
【請求項11】
前記独立実行環境は、コンテナ型仮想化技術により仮想化されるコンテナである
請求項1に記載の計算機環境構築システム。
【請求項12】
新たな計算機環境への移行対象のアプリケーションを構成する各要素間における論理的関係及び依存性の情報に基づいて、前記要素を複数のレイヤのうちのいずれかのレイヤに割り当てる手順と、
複数の前記レイヤを含む独立実行環境を生成して、該独立実行環境を実環境におけるノードに配備する手順と、を含む
計算機環境構築方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算機環境構築システム及び計算機環境構築方法に関する。
【背景技術】
【0002】
従来、制御システム又はインフラシステム向け等の既存ソフトウェア資産(リソース)を、新しいハードウェアやOS(Operating System)、又は、仮想化環境等の新しいIT技術環境へ移行することにより、既存財産の活用を図ることが行われている。
【0003】
仮想化技術を用いたシステムの構築について、例えば、特許文献1に、物理的なノードの中に、仮想的なコンピュータ(バーチャル(仮想)マシン)を作り出し、同じ物理ノード内において複数の異なるOSを並列に実行する技術が開示されている。特許文献1に記載の技術によれば、物理デバイスを効率よく使用することが可能となり、リソース管理コストの低減が期待される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第7118230号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、近年、既存のソフトウェア資産におけるソフトウェアの機能又はパッケージ等の実行単位で独立した実行環境を形成し、形成された各実行環境を移行後の新たな計算機環境に配備することが行われている。独立した実行環境は、例えば、ソフトウェアスタックや、仮想マシン、コンテナ型仮想化技術により生成されるコンテナなどにより構築可能である。独立した各実行環境においては、ソフトウェアの実行に必要なライブラリファイルやプログラムなどが、階層化して配置される。
【0006】
したがって、実行環境の独立化の単位や、階層化の構造が適切に設定されていない場合、新環境の運用に基づくソフトウェアの修正や、新機能の追加などの作業時に、対応する修正箇所を明確化できなかったり、修正対象が膨大となってしまったりする可能性がある。
【0007】
本発明は、上記の状況を考慮してなされたものであり、本発明の目的は、修正対象を容易に明確化可能な、既存のソフトウェア資産の移行先の計算機環境を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一態様に係る計算機環境構築システムは、新たな計算機環境への移行対象のアプリケーションを構成する各要素間における論理的関係及び依存性の情報に基づいて、要素を複数のレイヤのうちのいずれかのレイヤに割り当てる階層化情報生成部と、複数のレイヤを含む独立実行環境を生成して、該独立環境を実環境におけるノードに配備する配備管理部と、を備える。
【発明の効果】
【0009】
本発明の少なくとも一態様によれば、修正対象を容易に明確化可能な、既存のソフトウェア資産の移行先の計算機環境が提供される。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1】本発明の第1の実施形態に係るコンテナ化対象の既存のミドルウェアのパッケージ構成例を示す図である。
図2】本発明の第1の実施形態に係るコンテナイメージの構成例を示す図である。
図3】本発明の第1の実施形態に係る仮想化環境構築システムの機能構成例を示すブロック図である。
図4】本発明の第1の実施形態に係る仮想化環境構築システムのハードウェア構成例を示すブロック図である。
図5】本発明の第1の実施形態に係るライブラリリストの構成例を示す図である。
図6】本発明の第1の実施形態に係る階層構成テーブルの構成例を示す図である。
図7】本発明の第1の実施形態に係るライブラリリスト生成部によるライブラリリストの生成処理の手順の例を示すフローチャートである。
図8】本発明の第1の実施形態に係る分類部による階層構成テーブルの生成処理の手順の例を示すフローチャートである。
図9】本発明の第1の実施形態に係る階層構成テーブルの生成過程の例を示す図である。
図10】本発明の第1の実施形態に係るイメージ生成部によるコンテナイメージ生成処理の手順の例を示すフローチャートである。
図11】本発明の第1の実施形態に係るイメージ生成部によるコンテナイメージ生成処理の手順の例を示すフローチャートである。
図12】本発明の第1の実施形態に係る各レイヤに配備されるビルド後生成物名が記載された設計ファイルの例を示す図である。
図13】本発明の第1の実施形態に係るコンテナイメージの生成過程の例を示す図である。
図14】本発明の第1の実施形態に係る配備判断部による配備判断処理の手順の例を示すフローチャートである。
図15】本発明の第1の実施形態に係る配備・更新管理部20の更新管理部23による更新管理処理の手順の例を示すフローチャートである。
図16】本発明の第2の実施形態に係るソフトウェアスタックの構成例を示す図である。
図17】本発明の第2の実施形態に係る計算機環境構築システムの機能構成例を示すブロック図である。
図18】本発明の第2の実施形態に係るソフトウェアスタックの生成過程の例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を、図を用いて説明する。各図において、同一の構成には同一の符号を付す。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0012】
<第1の実施形態>
本発明の第1の実施形態では、本発明の計算機環境構築システムの一例である仮想化環境構築システムが、既存のソフトウェア資産であるミドルウェアのアプリケーションを、コンテナ型仮想化技術を用いてコンテナ化する。コンテナ型仮想化は、ホストOS上に「コンテナ」と呼ばれる独立空間(独立実行環境の一例)を形成し、各独立空間においてアプリケーションの実行環境を構築する技術である。各コンテナは、論理的に分離されたホストOSの各リソースを共有して、それぞれが分離して動作可能であるため、ユーザは、各コンテナをあたかも個別のサーバのように扱うことができる。
【0013】
本実施形態では、例えば、製造ラインの各装置又は機器の制御を行うミドルウェアを構成する各アプリケーションをコンテナ化する場合を想定する。保守性の観点から、アプリケーションのパッケージの単位でコンテナ化することが好ましい。
【0014】
図1は、コンテナ化対象の既存のミドルウェアのパッケージ構成例を示す図である。図1に示す各ブロックはそれぞれパッケージを示し、各ブロック内の「Nc」、「Nb」等の文字は、パッケージの名称を示す。パッケージの名称の大文字部分には、パッケージの機能ごとに区分した場合における各区分に対応する文字が割り振られている。例えば、「N」は、各パッケージ間において共有される機能を提供するパッケージに割り振られ、「G」は、画像表示関連の処理を行う機能を有するパッケージに割り振られ、「D」は、データ処理を行う機能を有するパッケージに割り振られる。
【0015】
図中における矢印は、各パッケージ間における情報の入出力の方向を示す。矢印によって示されるパッケージ間の連携は、DLL(Dynamic Link Library)ファイル(共有ライブラリファイルの一例)を介して行われる。したがって、図1に例示したミドルウェアのように、各パッケージ間の連携が密に行われる場合には、DLLファイル及びパッケージのコンテナ化を適切に行わないと、ある修正が行われた場合における修正対象のコンテナの数が、非常に多くなる等の問題が起こり得る。
【0016】
本実施形態に係る仮想化環境構築システムは、修正が行われる場合における修正対象(範囲)を容易かつ明確に特定可能とする区分によって、既存のソフトウェア資産をコンテナ化する。具体的には、仮想化環境構築システムは、既存のパッケージの機能等により示されるパッケージ同士の論理的関係や、パッケージ間における情報の入出力等により示される依存関係などの情報に基づいて、コンテナを構築する。
【0017】
図2は、コンテナイメージの構成例を示す図である。コンテナイメージは、コンテナとして実行するアプリケーションや、アプリケーションが依存するライブラリ群、コンテナ自体の設定等が記載されたバイナリデータである。そして、コマンドを用いてコンテナイメージを実行させることによりコンテナが生成され、コンテナが実行される。
【0018】
コンテナイメージは、図2に示すようにレイヤ構造をしている。図2に示すコンテナイメージは、最下層から順に、OSベースイメージ、共通設定イメージ、レイヤ1の共通ライブラリイメージ、レイヤ2のグループライブラリイメージ、レイヤ3のパッケージイメージが積層されている。
【0019】
共通設定イメージには、OSのレジストリの設定や、環境変数の設定、セキュリティに関する設定等が記載される。レイヤ1(第1のレイヤの一例)の共通ライブラリイメージには、すべてのパッケージにおいて共通して使用されるDLLファイル及び設定内容等が記載される。
【0020】
レイヤ2(第2のレイヤの一例)のグループライブラリイメージには、画像表示機能や、データ処理機能などの、機能の各グループにおいて共通して使用されるDLLファイル及び設定内容が記載される。つまり、レイヤ2のグループライブラリイメージは、パッケージが有する各機能に対応して生成される。
【0021】
レイヤ3(第3のレイヤの一例)のパッケージイメージには、単一のパッケージが依存するDLLファイル及び設定内容等が記載される。図2に示すレイヤ3のパッケージイメージは、図1に示した各パッケージの単位で生成される。図2に示すレイヤ3における「Ga」、「Gb」等の名称は、図1に示したパッケージの名称と対応している。そして、図2において一点鎖線の枠によって囲われた縦割りの領域が、一つのコンテナに対応する。また、一点鎖線の枠よりも広い破線の枠は、実環境における各ノード(端末装置)に搭載されるコンテナイメージの範囲を示す。
【0022】
図2に示すように、レイヤ2のグループライブラリイメージは、画像表示機能やデータ処理機能などの単位で分けて生成されるため、コンテナが実装されるノードと機能とを容易にかつ明確に対応付けることが可能となる。これにより、開発環境より修正の要請があった場合における修正範囲(修正対象のコンテナ)の特定も容易となる。
【0023】
また、図2に示すコンテナイメージでは、他のDLLファイルへの依存度がより低いDLLファイルが、より下位のレイヤに配置される。依存性が低いDLLファイルとは、他のDLLファイル又はパッケージによる参照数が多いファイル、及び/又は、修正頻度(回数)が少ないファイルである。つまり、本実施形態では、仮想化環境構築システムは、DLLファイルの依存関係やパッケージの修正履歴などの情報に基づいて、コンテナイメージを生成する。
【0024】
[仮想化環境構築システムの構成]
次に、図3を参照して、本実施形態に係る仮想化環境構築システムの構成について説明する。図3は、仮想化環境構築システム1の機能構成例を示すブロック図である。
【0025】
図3に示すように、仮想化環境構築システム1(仮想化環境構築システムの一例)は、階層化情報生成部10と、配備・更新管理部20と、を備える。仮想化環境構築システム1における階層化情報生成部10及び配備・更新管理部20は、同一の装置内に設けられてもよく、ネットワークにより接続された別々の装置にそれぞれ配備されてもよい。
【0026】
(階層化情報生成部)
階層化情報生成部10は、DLLファイルの依存関係やパッケージの修正履歴などの情報を格納した階層構成テーブル14を生成し、該階層構成テーブル14の情報に基づいて、コンテナイメージを生成する。配備・更新管理部20は、階層構成テーブル14に記載の情報に基づいてコンテナをノードに配備するとともに、ユーザから入力された修正内容に基づいて、コンテナ内の情報を修正又は更新する。
【0027】
階層化情報生成部10は、ライブラリリスト生成部12(図においては「LIBリスト生成部」と表記)と、分類部13と、階層構成テーブル14と、イメージ生成部15と、を備える。
【0028】
ライブラリリスト生成部12は、コンテナ化対象の各パッケージのソースコード(以下、単に「ソース」とも称する)の修正ログの情報に基づいて、階層構成テーブル14の元となるライブラリリスト121(図5参照)を生成する。ライブラリリスト121は、各パッケージが依存するDLLファイルの情報、各DLLファイルが呼び出す関数(I/F関数)の情報、各パッケージに含まれるDLLファイルや実行プログラム等の修正回数の情報等を格納したリストである。ライブラリリスト121については、後述の図5を参照して詳述し、ライブラリリスト121の生成手順については、後述の図7を参照して詳述する。
【0029】
ライブラリリスト生成部12は、パッケージのソース、例えば実行バイナリファイルの修正ログを、dumpbin等のツールを使用して取得する。なお、実行バイナリファイルがIL(Intermediate language)形式で記載されている場合には、ライブラリリスト生成部12は、ildasm等のツールを使用して、実行バイナリファイルの修正ログを取得可能である。
【0030】
また、ライブラリリスト生成部12は、取得した各ソースのビルド用ファイルから、ビルド後の生成物をリストアップし、ビルド後生成物のそれぞれにおける依存DLLファイル、使用関数の各情報を取得する。ビルド用ファイルには、例えば、ソリューションファイル等がある。ビルド後生成物には、実行されるプロセスの名前や、DLLファイル等のライブラリなどの情報が含まれる。
【0031】
さらに、ライブラリリスト生成部12は、例えばgit log等のコマンドを用いてソースのコミットログを取得し、取得したコミットログの情報に基づいて、各パッケージにおける修正頻度、例えば修正回数の情報を取得する。そして、ライブラリリスト生成部12は、取得したこれらの情報を用いてライブラリリスト121を生成する。なお、ライブラリリスト生成部12が修正履歴を取得する方法は、上記以外の方法であってもよい。
【0032】
分類部13は、ライブラリリスト生成部12によって生成されたライブラリリスト121の情報に基づいて、コンテナイメージ生成の際又は修正の際に参照される、階層構成テーブル14を生成する。階層構成テーブル14は、ライブラリリスト121に格納された各DLLファイルに関する情報や、各DLLファイルのコンテナイメージのレイヤへの分類結果などが格納されたテーブルである。階層構成テーブル14の構成例については、後述の図6を参照して詳述する。
【0033】
分類部13は、参照元のパッケージの重複数がより多いDLLファイル、及び/又は、修正頻度の低いDLLファイルが、より下位のレイヤに配置されるように、各DLLファイルを分類する。そして、ライブラリリスト121に記載の情報、及び、各DLLファイルの分類結果の情報を用いて、階層構成テーブル14を生成する。分類部13による階層構成テーブル14の生成処理については、後述の図8及び図9を参照して詳述する。
【0034】
イメージ生成部15は、分類部13によって生成された階層構成テーブル14に記載の内容に基づいて、コンテナイメージを生成する。イメージ生成部15が生成したコンテナイメージは、リポジトリ151(図においては「repo」と表記)に格納される。イメージ生成部15によるコンテナイメージ生成処理については、後述の図10図12を参照して詳述する。なお、イメージ生成部15によって生成されたコンテナイメージは、サービスとして提供されるDocker Hub等のレジストリや、レジストリ構築ツールを用いて構築されたレジストリなどに格納されてもよい。
【0035】
(配備・更新管理部)
配備・更新管理部20(配備管理部の一例)は、配備判断部21と、配備部22と、更新管理部23と、を備える。
配備判断部21は、階層構成テーブル14に記載の情報に基づいて、各コンテナのノードにおける配備を決定する。より詳細には、配備判断部21は、同一の機能グループのコンテナは、同一のノードに配備する決定を行う。配備判断部21による配備判断処理については、後述の図13を参照して詳述する。
【0036】
配備部22は、配備判断部21によって決定された配備の内容に基づいて、実際にコンテナをノードに配備(デプロイ)する。
更新管理部23は、開発環境より修正の指示を受け付けた場合、階層構成テーブル14を参照して修正対象のコンテナイメージを特定及び修正し、修正内容と対応するコンテナイメージの差分をダウンロードすることにより、コンテナの修正を行う。更新管理部23による更新管理処理については、後述の図15を参照して詳述する。
【0037】
[計算機のハードウェア構成例]
次に、本実施形態に係る仮想化環境構築システム1の機能を実現するための装置のハードウェア構成について、図4を参照して説明する。
【0038】
図4は、仮想化環境構築システム1のハードウェア構成例を示すブロック図である。図4に示す計算機200は、いわゆるコンピュータとして用いられるハードウェアである。
【0039】
計算機200は、バスBにそれぞれ接続された制御部210と、不揮発性ストレージ220と、表示部230と、操作入力部240と、通信I/F(Interface)250と、を備える。
【0040】
制御部210は、CPU(Central Processing Unit)211と、ROM(Read Only Memory)212と、RAM(Random Access Memory)213と、を備える。
【0041】
CPU211は、本実施形態に係る各機能を実現するソフトウェアのプログラムコードをROM212から読み出してRAM213に展開して実行する。RAM213には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。
【0042】
仮想化環境構築システム1の階層化情報生成部10及び配備・更新管理部20の各機能は、CPU211がROM212から該当するプログラムコードを読み出してRAM213に展開して実行することにより実現される。
【0043】
なお、制御部210は、CPU211の代わりに、MPU(Micro-Processing Unit)等の処理装置を備えてもよい。もしくは、制御部210は、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等)を含んでもよい。
【0044】
不揮発性ストレージ220としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フレキシブルディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、不揮発性のメモリカード等を用いることができる。この不揮発性ストレージ220には、OS(Operating System)、各種のパラメータの他に、計算機200を機能させるためのプログラム等が記録される。なお、プログラムは、ROM212に格納されてもよい
【0045】
表示部230は、例えば、LCD(Liquid Crystal Display)等で構成されるモニタであり、計算機200で行われる処理の結果等を表示する。
操作入力部240は、例えば、キーボード、マウス、タッチセンサ等によって構成され、ユーザによる操作に応じた操作信号を生成してCPU211に供給する。
なお、表示部230と操作入力部240とは、タッチパネルとして一体に構成されてもよい。また、計算機200は、表示部230及び操作入力部240を備えない構成とされてもよい。
【0046】
プログラムは、コンピュータが読取り可能なプログラムコードの形態で格納され、CPU211は、当該プログラムコードに従った動作を逐次実行する。つまり、ROM212又は不揮発性ストレージ220は、コンピュータによって実行されるプログラムを格納した、コンピュータ読取可能な非一過性の記録媒体の一例として用いられる。
【0047】
仮想化環境構築システム1の階層化情報生成部10のソース11、階層構成テーブル14及びリポジトリ151は、不揮発性ストレージ220又はROM212内に形成される。
【0048】
通信I/F250には、例えば、NIC(Network Interface Card)等が用いられ、ネットワーク又は通信線を介して外部装置との間で各種のデータを送受信することが可能である。
【0049】
[ライブラリリストの構成例]
次に、図5を参照して、ライブラリリスト生成部12(図3参照)によって生成されるライブラリリスト121の構成について説明する。図5は、ライブラリリスト121の構成例を示す図である。
【0050】
図5に示すように、ライブラリリスト121は、「パッケージ名」(図においては「PKG名」と表記)、「ビルド後生成物」、「依存DLL名」、「DLL内関数名」及び「修正頻度」の各項目を有する。
【0051】
「パッケージ名」の項目には、パッケージの名称が格納される。「ビルド後生成物」の項目には、ビルド後の生成物の情報が格納される。「依存DLL名」の項目には、パッケージが依存するDLLファイルの名称が格納される。「DLL内関数名」の項目には、DLLファイル内に記載された、パッケージ又は他のDLLファイル等により呼び出される関数の情報が格納される。「修正頻度」の項目には、過去にそのパッケージが修正された回数の情報が格納される。
【0052】
[階層構成テーブルの構成例]
次に、図6を参照して、イメージ生成部15(図3参照)によって生成される階層構成テーブル14の構成について説明する。図6は、階層構成テーブル14の構成例を示す図である。
【0053】
図6に示すように、階層構成テーブル14は、「DLL名」、「使用パッケージリスト」、「修正頻度」、「使用パッケージ数」、「重複度」、「所属パッケージ」及び「レイヤ」の各項目を有する。(図において、「パッケージ」は「PKG」と表記)
【0054】
「DLL名」の項目には、DLLファイルの名称が格納される。「使用パッケージリスト」の項目には、そのDLLファイルを使用するパッケージ名の情報が格納される。「修正頻度」の項目には、DLLファイルに加えられた修正の回数が格納される。「使用パッケージ数」の項目には、そのDLLファイルを使用しているパッケージの数が格納される。
【0055】
「重複度」の項目には、そのDLLファイルを使用しているパッケージの数、すなわち、パッケージから見た場合におけるそのDLLファイル参照の重複数の情報が格納される。「所属パッケージ」の項目には、コンテナにおいてそのDLLファイルが割り当てられる(所属する)パッケージの名称が格納される。
【0056】
「レイヤ」の項目には、DLLファイルが配置されるレイヤの情報が格納される。レイヤの情報には、レイヤ1の共通ライブラリイメージ、レイヤ2のグループライブラリイメージ、レイヤ3のパッケージライブラリイメージ(図2参照)がある。
【0057】
上述したように、分類部13は、参照元のパッケージの重複数がより多いDLLファイル、及び/又は、修正頻度の低いDLLファイルが、より下位のレイヤに配置されるように、各DLLファイルを分類する。なお、階層構成テーブル14には、重複度を優先して決定したレイヤへの分類結果と、修正頻度を優先して決定したレイヤへの分類結果との両方が記載されてもよい。
【0058】
または、レイヤへの分類時に参照する情報として、重複度、修正頻度以外の情報が用いられてもよい。例えば、DLLファイル(ライブラリ)のサイズ(データ量)の情報等が参照されてもよい。参照元のパッケージやDLLファイルの数が多い(重複度の高い)DLLファイルは、ファイル容量が大きくなる傾向があるため、分類部13は、サイズの大きいDLLファイルを、より下位のレイヤに割り当てることができる。
【0059】
[ライブラリリスト生成処理]
次に、図7を参照して、ライブラリリスト生成部12(図3参照)によるライブラリリスト121の生成処理について説明する。図7は、ライブラリリスト生成部12によるライブラリリスト121の生成処理の手順の例を示すフローチャートである。
【0060】
まず、ライブラリリスト生成部12は、パッケージの各ソースの修正ログを収集する(ステップS1)。次いで、ライブラリリスト生成部12は、ステップS1で収集した各ソースのビルド用ファイルから、ビルド後の生成物をリストアップする(ステップS2)。
【0061】
次いで、ライブラリリスト生成部12は、DLL情報取得処理を開始する(ステップS3)。DLL情報取得処理は、DLL情報取得対象のビルド後生成物の数だけ繰り返し行われる。DLL情報取得処理において、ライブラリリスト生成部12は、ビルド後生成物のバイナリ情報から、ビルド後生成物が使用するDLLファイルの情報を取得する(ステップS4)。
【0062】
次いで、ライブラリリスト生成部12は、ステップS4で取得したDLLファイルの情報から、該DLLファイルが依存している他のDLLファイルの情報、及び、該DLLファイルが呼び出す関数(I/F関数)の各情報を取得する(ステップS5)。
【0063】
次いで、ライブラリリスト生成部12は、依存するDLLファイルはあったか否かを判定する(ステップS6)。ステップS6で、依存するDLLファイルはないと判定された場合(ステップS6がNO判定の場合)、ライブラリリスト生成部12は、ステップS4に戻って処理を行う。すなわち、ライブラリリスト生成部12は、次のビルド後生成物のDLLファイル情報を取得する。
【0064】
一方、ステップS6で、依存するDLLファイルはあると判定された場合(ステップS6がYES判定の場合)、ライブラリリスト生成部12は、ステップS5の処理を行う。そして、ライブラリリスト生成部12は、DLL情報取得対象のビルド後生成物がなくなった時点で、DLL情報取得処理を終了する。
【0065】
DLL情報取得処理の終了後、ライブラリリスト生成部12は、DLL情報取得処理によって取得した情報と、コミットログ等から収集した修正履歴(回数)の情報とを用いて、ライブラリリスト121を生成する(ステップS7)。ステップS7の処理後、ライブラリリスト生成部12によるライブラリリスト生成処理は終了する。
【0066】
[階層構成テーブル生成処理]
次に、分類部13による階層構成テーブル14の生成処理について説明する。図8は、分類部13による階層構成テーブル14の生成処理の手順の例を示すフローチャートである。
【0067】
分類部13は、フェーズ1~フェーズ3(図中においてはPH1~PH3と表記)の3段階の処理を行うことにより、階層構成テーブル14を生成する。まず、分類部13は、ライブラリリスト121を読み込み、各DLLファイルの統計データを生成する(ステップS11)。統計データとは、そのDLLファイルを使用するパッケージの重複数、そのDLLファイルが所属(依存)しているパッケージ名、修正頻度の情報により構成されるデータである。
【0068】
次いで、分類部13は、フェーズ1の処理として、各DLLファイルのレイヤ1~レイヤ3への割り当て処理を行う(ステップS12)。該割り当て処理は、割当て対象のDLLファイルの数だけ繰り返し行われる。
【0069】
フェーズ1の処理として、分類部13は、まず、パッケージの重複数が所定の閾値を超えるDLLファイルを、レイヤ1(共通ライブラリイメージ)に割り当てる(ステップS13)。パッケージの重複数の閾値は、例えば、全パッケージ数に対する重複数の割合(%)等によって示される。
【0070】
次いで、分類部13は、パッケージの重複がない、使用パッケージ数が“1”であるDLLファイルを、レイヤ3に割り当てる(ステップS14)。使用パッケージ数が1つであるとは、すなわち、そのパッケージのみが使用するDLLファイルであることを意味する。したがって、分類部13は、このようなDLLファイルを、パッケージ自身が配備される最上位のレイヤ3(パッケージイメージ)に割り当てる。
【0071】
次いで、分類部13は、レイヤ1又はレイヤ3への割り当てが行われていないDLLファイルを、レイヤ2(グループライブラリイメージ)に割り当てる(ステップS15)。割当対象のDLLファイルがなくなった時点で、分類部13は、各DLLファイルのレイヤ1~レイヤ3への割り当て処理を終了する。
【0072】
次いで、分類部13は、フェーズ2として、ステップS11で生成した統計データにおける修正頻度の情報に基づいて、レイヤ1に割り当て済みのDLLファイルを対象としたレイヤ割り当て調整を行う(ステップS16)。具体的には、分類部13は、ステップS13でレイヤ1に割り当てたDLLファイルのうち、修正回数が所定の閾値以上であるDLLファイルを、レイヤ1からレイヤ2に移動させる。
【0073】
例えば、図2に示した画像表示処理機能を有する各コンテナに対しては、ユーザによる仕様変更の指示等に基づいて、修正が頻繁に行われる可能性が高い。このような機能に対応するDLLファイルをレイヤ2に移動させ、レイヤ2の各機能グループの単位でコンテナをノードに実装させることにより、修正の範囲をノード(図2に示す例ではノード1)内に限定させることが可能となる。
【0074】
次いで、分類部13は、フェーズ3として、ステップS11で生成した統計データにおける、そのDLLファイルが所属(依存)しているパッケージ名の情報に基づいて、レイヤ2内におけるDLLファイルの配置調整を行う(ステップS17)。具体的には、分類部13は、DLLファイルが所属(依存)しているパッケージ名の情報に基づいて、レイヤ2を機能グループ単位に分割し、該機能グループに該当するDLLファイルを、該機能グループに移動させる。図2には、機能グループが「画像表示処理」、「データ処理」及び「サーバ処理」の3つに分割された例を示している。
【0075】
次いで、分類部13は、ステップS11で作成した各DLLファイルの統計データと、ステップS13~ステップS17において行った各DLLファイルの各レイヤへの割り当て結果の情報を用いて、階層構成テーブル14を生成する(ステップS18)。ステップS18の処理後、分類部13による階層構成テーブル生成処理は終了する。
【0076】
図9は、階層構成テーブル14の生成過程の例を示す図である。図9には、フェーズ1~フェーズ3の各処理の実行後におけるコンテナイメージの構成例を示す。図8のステップS13において、分類部13によってフェーズ1の処理が行われると、コンテナイメージは、図9の左側に示す状態となる。つまり、OSベースイメージ及び共通設定イメージの上に、共通ライブラリイメージ(レイヤ1)、グループライブラリイメージ(レイヤ2)、パッケージイメージ(レイヤ3)が積層された状態となる。
【0077】
図8のステップS16において、分類部13によってフェーズ2の処理が行われると、コンテナイメージは、図9の中央に示す状態となる。なお、図9の中央に示すコンテナイメージにおいては、OSベースイメージ及び共通設定イメージの図示を省略している。図9の中央に示すコンテナイメージでは、左側に示すコンテナイメージと比較して、共通ライブラリイメージ(レイヤ1)の層が薄くなり、グループライブラリイメージ(レイヤ2)の層が厚くなっている。フェーズ2の処理によって、共通ライブラリイメージ(レイヤ1)に割り当てられていたDLLファイルがグループライブラリイメージ(レイヤ2)に移動したためである。
【0078】
図8のステップS17において、分類部13によってフェーズ3の処理が行われると、コンテナイメージは、図9の右側に示す状態となる。なお、図9の右側に示すコンテナイメージにおいても、OSベースイメージ及び共通設定イメージの図示を省略している。図9の右端に示すコンテナイメージでは、グループライブラリイメージ(レイヤ2)が、「画像処理機能」、「サーバ機能」等の各機能グループ単位に分割されている。なお、機能グループの分割数は3つに限定されず、他の数であってもよい。
【0079】
[コンテナイメージ生成処理]
次に、イメージ生成部15によるコンテナイメージ生成処理について説明する。図10及び図11は、イメージ生成部15によるコンテナイメージ生成処理の手順の例を示すフローチャートである。
【0080】
まず、階層化情報生成部10のイメージ生成部15(図3参照)は、ライブラリリスト121(図5参照)のビルド後生成物の項目の中から、コンテナイメージ生成対象のビルド後生成物名を取得する(ステップS21)。次いで、イメージ生成部15は、レイヤ1のコンテナイメージ生成処理を行う(ステップS22)。レイヤ1のコンテナイメージ生成処理は、階層構成テーブル14においてレイヤ1に割り当てられたDLLファイルの数だけ繰り返し行われる。
【0081】
レイヤ1のコンテナイメージ生成処理において、イメージ生成部15は、まず、階層構成テーブル14を参照して、レイヤ1に配置するビルド後生成物名をリストアップ(取得)し、コンテナイメージの元となる設計ファイルFc1(図12参照)を生成する(ステップS23)。
【0082】
図12は、各レイヤに配備されるビルド後生成物名が記載された設計ファイルの例を示す図である。
図12には、図10のステップS23によって生成されたレイヤ1用の設計ファイルFc1と、後述する処理により生成されるレイヤ2用の設計ファイルFc2、及び、レイヤ3用の設計ファイルFc3とが示されている。図12の各設計ファイルFc1~Fc3には、レイヤ1~3のそれぞれに配置されるビルド後生成物の名称が記載されている。
【0083】
図10のステップS23の処理後、イメージ生成部15は、各パッケージのインストーラを起動して、ステップS23で生成した設計ファイルFc1に記載のビルド後生成物をインストールすることにより、レイヤ1のコンテナイメージを生成する(ステップS24)。
【0084】
次いで、イメージ生成部15は、レイヤ2のコンテナイメージ生成処理を行う(ステップS25)。レイヤ2のコンテナイメージ生成処理において、イメージ生成部15は、まず、レイヤ1をベースイメージに設定する(ステップS26)。次いで、イメージ生成部15は、階層構成テーブル14を参照して、レイヤ2に配置するビルド後生成物名をリストアップ(取得)して、設計ファイルFc2(図12参照)を生成する(ステップS27)。次いで、イメージ生成部15は、ステップS27で生成した設計ファイルFc2に記載のビルド後生成物をインストールすることにより、レイヤ2のコンテナイメージを生成する(ステップS28)。
【0085】
上述したステップS27及びステップS28の処理は、階層構成テーブル14においてレイヤ2に割り当てられたDLLファイルの数だけ繰り返し行われる。
【0086】
次いで、イメージ生成部15は、レイヤ3のコンテナイメージ生成処理を行う(図11のステップS29)。レイヤ3のコンテナイメージ生成処理において、イメージ生成部15は、まず、レイヤ2をベースイメージに設定する(ステップS30)。次いで、イメージ生成部15は、階層構成テーブル14を参照して、レイヤ3に配置するビルド後生成物名をリストアップ(取得)して、設計ファイルFc3(図12参照)を生成する(ステップS31)。次いで、イメージ生成部15は、ステップS31で生成した設計ファイルFc3に記載のビルド後生成物をインストールすることにより、レイヤ3のコンテナイメージを生成する(ステップS32)。
【0087】
上述したステップS31及びステップS32の処理は、階層構成テーブル14においてレイヤ3に割り当てられたDLLファイルの数だけ繰り返し行われる。ステップS32の処理後、イメージ生成部15によるコンテナイメージ生成処理は終了する。なお、イメージ生成部15によるコンテナイメージ生成処理は、Dockerfile等の機能を用いて行われてもよい。
【0088】
図13は、コンテナイメージの生成過程の例を示す図である。図13Aは、OSベースイメージ及び共通設定イメージの上に、レイヤ1(共通ライブラリイメージ)が形成された状態を示す。図13Bは、レイヤ1上に、複数のレイヤ2(グループライブラリイメージ)が形成された状態を示す。図13Cは、レイヤ2の上にレイヤ3(パッケージイメージ)が形成された状態を示す。
【0089】
[配備判断処理]
次に、図14を参照して、配備・更新管理部20の配備判断部21による配備判断処理について説明する。図14は、配備判断部21による配備判断処理の手順の例を示すフローチャートである。
【0090】
まず、配備判断部21は、階層構成テーブル14に記載の内容に基づいて、不図示のノードに配備する対象物(DLLファイル、パッケージ等)の所属グループ(レイヤ3のグループ)を特定する(ステップS41)。階層構成テーブル14(図6参照)の所属パッケージの項目には、パッケージの名称が記載されているため、該パッケージ名から所属するグループを特定する。
【0091】
次いで、配備判断部21は、レイヤ2における同一の機能グループに属する(対応付けられた)DLLファイル、パッケージ等を、同一のノードに配備する(ステップS42)。ステップS42の処理後、配備判断部21による配備判断処理は終了する。
【0092】
例えば、図2に示したように、一つのノード1に、レイヤ3のパッケージ「Ga」、「Gb」、「Gc」のそれぞれに属する3つのコンテナが配備されるとする。そして、「Ga」、「Gb」、「Gc」の順に対応するコンテナが1個ずつノードに配備されるとする。「Ga」、「Gb」、「Gc」は、同じ画像表示機能に属するパッケージであるため、同じレイヤ2に属する。すなわち、同じレイヤ2のコンテイメージを共通して使用する。
【0093】
したがって、例えば2つ目の「Gb」のグループのコンテナのイメージを生成する場合、配備部22(図3参照)は、1つ目の「Ga」のグループのコンテナ生成時に既に生成されたレイヤ1、レイヤ2のコンテナイメージを流用することが可能となる。つまり、配備部22は、「Gb」のグループのコンテナの配備時には、配備部22は、「Ga」のコンテナイメージとの差分、すなわち、レイヤ3のパッケージ部分のコンテナイメージのみをダウンロード(リポジトリ151(図3参照)から取得)し、デプロイするのみでよくなる。つまり、本実施形態によれば、各コンテナがダウンロードすべきデータの量を削減でき、かつ、コンテナイメージの生成に要する時間も節減できる。
【0094】
[更新管理処理]
次に、図15を参照して、配備・更新管理部20の更新管理部23による更新管理処理について説明する。図15は、配備・更新管理部20の更新管理部23による更新管理処理の手順の例を示すフローチャートである。
【0095】
開発環境より修正の要求があった場合、更新管理部23は、まず、階層構成テーブル14に記載の内容に基づいて、修正対象となるライブラリ(DLLファイル)の依存関係を特定する(ステップS51)。次いで、更新管理部23は、ステップS51で特定した依存関係にあるライブラリのコンテナイメージを更新する(ステップS52)。具体的には、更新管理部23は、コンテナイメージの元となる設計ファイルの該当箇所を修正し、該設計ファイルからコンテナイメージをビルドする。
【0096】
次いで、更新管理部23は、ステップS52で更新されたコンテナイメージと、現在のコンテナイメージとの差分を、リポジトリ151からダウンロードする(ステップS53)。次いで、更新管理部23は、更新後のコンテナイメージを再び起動させる(ステップS54)。コンテナの再起動にあたり、起動順等の起動の条件が設定されている場合には、更新管理部23は、該条件が満たされた場合に再起動する。ステップS54の処理後、更新管理部23による更新管理処理は終了する。
【0097】
上述した実施形態に係る仮想化環境構築システム1は、仮想化対象のアプリケーション(パッケージ)を構成する各要素間における論理的関係及び依存性の情報に基づいて、仮想化環境を構成する複数のレイヤのうちのいずれかのレイヤに要素を割り当てる階層化情報生成部10を有する。さらに、仮想化環境構築システム1は、複数のレイヤを含む独立空間としてのコンテナを生成して、該コンテナを実環境におけるノードに配備するとともに、各要素間における論理的関係及び依存性の情報に基づいて、ノードに配備された要素を特定して修正する配備・更新管理部20を有する。したがって、本実施形態によれば、修正対象を容易に明確化可能な仮想化環境が提供される。
【0098】
また、上述した実施形態では、配備・更新管理部20は、コンテナを、アプリケーションのパッケージの単位で生成する。したがって、本実施形態によれば、配備・更新管理部20は、開発環境より修正の指示があった場合における修正箇所を、パッケージの単位で生成されたコンテナを対象として探すことができるため、修正対象を容易に明確化できる。
【0099】
また、上述した実施形態では、階層化情報生成部10は、アプリケーションのソースコードの修正履歴の情報に基づいて、パッケージを構成する各DLLファイル間における論理的関係及び依存性の情報、並びに、DLLファイルのレイヤへの割り当て結果の情報を記した階層構成テーブル14を生成する。そして、配備・更新管理部20は、階層構成テーブル14に記載の情報に基づいてコンテナのノードへの配備、及び、コンテナの修正を行う。したがって、本実施形態によれば、配備・更新管理部20は、階層構成テーブル14に記載の情報に基づいて、修正対象のコンテナ及びコンテナ内のDLLファイル等を容易に特定できる。
【0100】
また、上述した実施形態では、コンテナには、最下層のレイヤ1~最上層のレイヤ3の3層のレイヤを含む。そして、階層化情報生成部10は、複数のパッケージによって共有される設定に関する要素(DLLファイル等)をレイヤ1に配置し、パッケージが有する機能の単位で共有される設定に関する要素(DLLファイル等)を第レイヤ2に配置する。さらに、階層化情報生成部10は、パッケージによって使用される設定に関する要素(DLLファイル等)をレイヤ3に配置する。
【0101】
また、上述した実施形態では、階層化情報生成部10は、呼び出し元のDLLファイルの重複度が所定の閾値を超える要素をレイヤ1に配置し、レイヤに配置されたDLLファイルのうち、修正頻度が所定の閾値を超える要素は、レイヤ1からレイヤ2に移動させる。これにより、レイヤ1には、参照元のDLLファイルの重複数が多く、かつ、修正頻度の少ないDLLファイルが配置され、レイヤ2には、パッケージの機能の単位で共有されるDLLファイルであり、かつ、修正頻度がある程度多いDLLファイルが配置される。
【0102】
コンテナイメージは、下位のレイヤとの差分の情報で構成されるため、レイヤが上層になる程、下位のレイヤに対する依存性は高くなる。したがって、本実施形態によれば、修正が頻繁に行われることが想定されるDLLファイルほど、上位のレイヤに配置されるため、修正頻度が頻繁になると想定されるパッケージの、修正時における修正対象範囲を、狭域化することができる。
【0103】
また、上述した実施の形態では、配備・更新管理部20は、コンテナのうち、パッケージの機能グループの単位で設けられたレイヤ2の一区分に対応付けられた複数のコンテナを、一つのノードに配備する。これにより、同一のノードに配備される2つ目以降のコンテナにおいては、1つ目に設定済みのコンテナが有する情報との差分の情報のみをダウンロードすればよくなるため、コンテナに格納されるデータの少量化、及び、コンテナ生成作業に要する時間の短縮化を図ることができる。
【0104】
さらに、上述した実施形態では、仮想化技術としてコンテナ型仮想化技術を用いることにより、各コンテナ内のアプリケーション動作環境を独立させることがでるため、可搬性を高めることができる。また、一つ一つのコンテナを独立した計算機環境とみなせるため、コンテナが含む共有ライブラリを、各コンテナ間において重複させることも可能となる。
【0105】
なお、上述した各実施形態では、計算機環境構築システム1がコンテナ型仮想化技術を用いて仮想化環境を構築する例を挙げたが、本発明はこれに限定されない。レイヤ構造を有する独立実行環境を構成可能な仮想化技術であれば、コンテナ型仮想化技術以外の仮想化技術が用いられてもよい。
【0106】
<第2の実施形態>
次に、図16図18を参照して、本発明の第2の実施形態について説明する。第2の実施形態において、本発明に係る計算機環境構築システムは、ソフトウェア(ソリューション)スタックの技術を用いて、既存のソフトウェア資産を計算機(ベアマシン)に移行する。ソフトウェアスタックは、互いに相互運用性のあるプロトコルやソフトウェアを積み重ね、全体として一つのシステムや機能を実現する手法である。
【0107】
図16は、第2の実施形態に係る構成ファイルイメージの構成例を示す図である。ソフトウェアスタックは、ベアマシン上で動作するOSを利用するため、OSベースイメージの階層を持たない。それ以外の階層の構成については、図2に示した第1の実施形態に係るコンテナイメージと同様である。本実施形態に係る構成ファイルイメージも、図8に示した手順により生成される階層構成テーブル14(図6参照)に基づいて、階層化情報生成部10のイメージ生成部15(図17参照)によって生成される。
【0108】
図17は、第2の実施形態に係る計算機環境構築システム1Aの機能構成例を示すブロック図である。図17に示す計算機環境構築システム1Aが、図3に示した第1の実施形態に係る仮想化環境構築装置1と異なる点は、階層化情報生成部10のイメージ生成部15が、コンテナイメージではなく、ソフトウェアスタックの構成ファイルイメージを生成する点と、配備・更新管理部20による配備先が、ベアマシン上の実環境である点である。
【0109】
図18は、本実施形態に係る構成ファイルイメージの生成過程の例を示す図である。図18に示す構成ファイルイメージの生成過程と、図13に示した第1の実施形態に係るコンテナイメージの生成過程との違いは、本実施形態に係る構成ファイルイメージは、OSベースイメージの階層を含まない点である。また、本実施形態では、図18中に破線の枠によって囲われた領域を構成するのは、各レイヤに割り当てられたファイルとなる。
【0110】
上述した第2の実施形態によっても、つまり、既存のソフトウェア資産の移行先の環境が、物理環境におけるベアマシンである場合にも、第1の実施形態によって得られる効果と同様の効果を得ることができる。
【0111】
なお、上述した実施形態は本発明を分かりやすく説明するためにシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【0112】
また、図3及び図4において実線又は矢印で示した制御線又は情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0113】
また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
【0114】
また、上述した本開示の各実施形態にかかる計算機環境構築システムの各構成要素は、それぞれのハードウェアがネットワークを介して互いに情報を送受信できるならば、いずれのハードウェアに実装されてもよい。また、ある処理部により実施される処理が、1つのハードウェアにより実現されてもよいし、複数のハードウェアによる分散処理により実現されてもよい。
【符号の説明】
【0115】
1…仮想化環境構築システム、1A…計算機環境構築システム、10…階層化情報生成部、12…ライブラリリスト生成部、13…分類部、14…階層構成テーブル、15…イメージ生成部、20…配備・更新管理部、21…配備判断部、22…配備部、23…更新管理部、121…ライブラリリスト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18