(57)【要約】【課題】ソフトウェアのライセンス消費数を容易に算出する。【解決手段】インベントリのライセンス割り当て単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定し、該ライセンス割り当て単位が使用者グループを対象としたライセンスであると判定したインベントリ及びハードウェア関連するグループデータを含む処理対象インベントリデータの処理対象ＸＭＬデータを生成し、該ライセンス割り当て単位が物理的条件によるライセンスと判定したインベントリ内の仮想マシンに対してハードウェア情報を埋め込んだインベントリを含む処理対象インベントリデータの処理対象ＸＭＬデータを生成し、生成した処理対象ＸＭＬデータに基づいて消費数算出ＸＱＵＥＲＹを実行するサーバ用ライセンス管理システム。【選択図】図１
2017224106.tif 000002
【特許請求の範囲】
【請求項１】
ライセンス総称個々に一意に付与されたライセンス総称を含むライセンス総称定義テーブルと利用状況識別定義テーブルとベンダー係数に対応するハードウェア情報を含むベンダー係数テーブルと消費数算出定義テーブルとを格納するサーバライセンス辞書ＤＢと、
ハードウェアＩＤ及びＸＭＬ形式インベントリデータを含むインベントリ台帳テーブルとグループＩＤ及びハードウェアＩＤとの対応を含むグループ台帳関連付けテーブルとグループＩＤ及びＸＭＬ形式グルーブデータを含むグループ台帳テーブルとグループＩＤとＸＭＬ形式グルーブデータを格納するグループ種別テーブルとを格納するインベントリデータＤＢと、
ライセンス総称ＩＤとライセンス総称名称と利用状況識別ＩＤとベンダー係数ＩＤとライセンス該当種別との対応を格納するライセンス総称定義テーブルと、
ハードウェアＩＤとグループＩＤとライセンス総称ＩＤとライセンス識別ＩＤと消費数と消費数単位と消費数詳細とを格納するライセンス消費数テーブル及びライセンス総称ＩＤとライセンス総称名称とライセンス種別名称と割当数と消費数と単位と過不足数とを格納するライセンス過不足集計テーブルを含む消費数算出ＸＱＵＥＲＹを格納するライセンス消費数ＤＢと、
該ライセンス消費数ＤＢを参照し、ライセンス総称ＩＤ及び識別ＸＱＵＥＲＹに基づいてハードウェアＩＤに対するインベントリデータを識別し、この識別したライセンス総称ＩＤと識別ＸＱＵＥＲＹとインベントリデータに基づいてライセンス消費数を演算する制御部とを備えるサーバ用ライセンス管理システムであって、
該制御部が、
前記ライセンス総称定義テーブルと消費数算出定義テーブルとを結合することにより、ライセンスに対する消費数算出定義を抽出する第１工程と、
該第１工程で結合したテーブルからライセンス総称及び消費数算出用ＸＱＵＮＲＹの組み合わせを取得する第２工程と、
該第２工程により取得したライセンス総称がインストール済みのインベントリを、メモリ上に一時的に設けられた記憶領域である対象処理インベントリテーブルに格納する第３工程と、
前記対象処理インベントリテーブルからインベントリを１件取得する第４工程と、
該第４工程により取得したインベントリのライセンス割り当て単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定する第５工程と、
該第５工程において使用者グループを対象としたライセンスであると判定したとき、ライセンス割当単位に指定されたグループのみを対象としてハードウェアに関連するグループデータを抽出する第６工程と、
該第６工程において抽出したグループデータに含まれる全てのインベントリを抽出する第７工程と、
該第７工程により抽出したインベントリのグループ関連付けに含まれるホスト名をグループデータの付属情報に追加する第８工程と、
前記処理対象インベントリから取得したレコードをインベントリに格納する第９工程と、
該第９工程又は第５工程においてライセンス割り当て単位が物理的条件によるライセンスと判定したとき、インベントリ内の仮想マシンに対してハードウェア情報を埋め込む第１０工程と、
該第１０工程によりハードウェア情報を埋め込んだインベントリデータを元に処理対象ＸＭＬデータを生成する第１１工程と、
該第１１工程に続きライセンス割当単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定する第１２工程と、
該第１２工程においてライセンス割当単位が物理的条件によるライセンスと判定したとき、グループデータの情報を処理対象ＸＭＬデータに追加する第１３工程と、
前記第１２工程においてライセンス割当単位が使用者グループを対象としたよるライセンスと判定したとき、及び前記第１３工程に続き、処理対象ＸＭＬデータに対して消費数算出に使用される係数を特定する処理を実行する第１４工程と、
該第１４工程により係数を特定した処理対象ＸＭＬデータに対して消費数算出ＸＱＵＥＲＹを実行する第１５工程と、
該第１５工程に続きライセンス割当単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定する第１６工程と、
該第１６工程においてライセンス割当単位が使用者グループを対象としたよるライセンスと判定したとき、グループ単位で消費数をワークテーブルに格納する第１７工程と、
該第１６工程においてライセンス割当単位が物理的条件によるライセンスと判定したとき、ハードウェア単位で消費数をワークテーブルに格納する第１８工程と、
該第１７工程及び第１８工程によりワークテーブルに格納した消費数をライセンス消費数テーブルに格納する第１９工程とを実行する、
サーバ用ライセンス管理システム。
【請求項２】
前記制御部が、前記第１４工程において、
前記インベントリ台帳テーブルに格納したハードウェアＩＤからハードウェア情報を取得する第２０工程と、
該２０工程により取得したハードウェア情報に基づいてベンダー係数テーブルからベンダー係数を抽出する第２１工程と、
を実行することより処理対象ＸＭＬデータに対する係数を特定する請求項１に記載のサーバ用ライセンス管理システム。
【請求項３】
ライセンス総称個々に一意に付与されたライセンス総称を含むライセンス総称定義テーブルと利用状況識別定義テーブルとベンダー係数に対応するハードウェア情報を含むベンダー係数テーブルと消費数算出定義テーブルとを格納するサーバライセンス辞書ＤＢと、
ハードウェアＩＤ及びＸＭＬ形式インベントリデータを含むインベントリ台帳テーブルとグループＩＤ及びハードウェアＩＤとの対応を含むグループ台帳関連付けテーブルとグループＩＤ及びＸＭＬ形式グルーブデータを含むグループ台帳テーブルとグループＩＤとＸＭＬ形式グルーブデータを格納するグループ種別テーブルとを格納するインベントリデータＤＢと、
ライセンス総称ＩＤとライセンス総称名称と利用状況識別ＩＤとベンダー係数ＩＤとライセンス該当種別との対応を格納するライセンス総称定義テーブルと、
ハードウェアＩＤとグループＩＤとライセンス総称ＩＤとライセンス識別ＩＤと消費数と消費数単位と消費数詳細とを格納するライセンス消費数テーブル及びライセンス総称ＩＤとライセンス総称名称とライセンス種別名称と割当数と消費数と単位と過不足数とを格納するライセンス過不足集計テーブルを含む消費数算出ＸＱＵＥＲＹを格納するライセンス消費数ＤＢと、
該ライセンス消費数ＤＢを参照し、ライセンス総称ＩＤ及び識別ＸＱＵＥＲＹに基づいてハードウェアＩＤに対するインベントリデータを識別し、この識別したライセンス総称ＩＤと識別ＸＱＵＥＲＹとインベントリデータに基づいてライセンス消費数を演算する制御部とを備えるコンピータシステムにおけるサーバ用ライセンス管理方法であって、
該制御部に、
前記ライセンス総称定義テーブルと消費数算出定義テーブルとを結合することにより、ライセンスに対する消費数算出定義を抽出する第１工程と、
該第１工程で結合したテーブルからライセンス総称及び消費数算出用ＸＱＵＮＲＹの組み合わせを取得する第２工程と、
該第２工程により取得したライセンス総称がインストール済みのインベントリを、メモリ上に一時的に設けられた記憶領域である対象処理インベントリテーブルに格納する第３工程と、
前記対象処理インベントリテーブルからインベントリを１件取得する第４工程と、
該第４工程により取得したインベントリのライセンス割り当て単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定する第５工程と、
該第５工程において使用者グループを対象としたライセンスであると判定したとき、ライセンス割当単位に指定されたグループのみを対象としてハードウェアに関連するグループデータを抽出する第６工程と、
第６工程において抽出したグループデータに含まれる全てのインベントリを抽出する第７工程と、
該第７工程により抽出したインベントリのグループ関連付けに含まれるホスト名をグループデータの付属情報に追加する第８工程と、
前記処理対象インベントリから取得したレコードをインベントリに格納する第９工程と、
該第９工程又は第５工程においてライセンス割り当て単位が物理的条件によるライセンスと判定したとき、インベントリ内の仮想マシンに対してハードウェア情報を埋め込む第１０工程と、
該第１０工程によりハードウェア情報を埋め込んだインベントリデータを元に処理対象ＸＭＬデータを生成する第１１工程と、
該第１１工程に続きライセンス割当単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定する第１２工程と、
該第１２工程においてライセンス割当単位が物理的条件によるライセンスと判定したとき、グループデータの情報を処理対象ＸＭＬデータに追加する第１３工程と、
前記第１２工程においてライセンス割当単位が使用者グループを対象としたよるライセンスと判定したとき、及び前記第１３工程に続き、処理対象ＸＭＬデータに対して消費数算出に使用される係数を特定する処理を実行する第１４工程と、
該第１４工程により係数を特定した処理対象ＸＭＬデータに対して消費数算出ＸＱＵＥＲＹを実行する第１５工程と、
該第１５工程に続きライセンス割当単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定する第１６工程と、
該第１６工程においてライセンス割当単位が使用者グループを対象としたよるライセンスと判定したとき、グループ単位で消費数をワークテーブルに格納する第１７工程と、
該第１６工程においてライセンス割当単位が物理的条件によるライセンスと判定したとき、ハードウェア単位で消費数をワークテーブルに格納する第１８工程と、
該第１７工程及び第１８工程によりワークテーブルに格納した消費数をライセンス消費数テーブルに格納する第１９工程とを実行させる、
サーバ用ライセンス管理方法。
【請求項４】
前記制御部に、前記第１４工程において、
前記インベントリ台帳テーブルに格納したハードウェアＩＤからハードウェア情報を取得する第２０工程と、
該２０工程により取得したハードウェア情報に基づいてベンダー係数テーブルからベンダー係数を抽出する第２１工程と、
を実行させることより処理対象ＸＭＬデータに対する係数を特定する請求項３に記載のサーバ用ライセンス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス課金方法が異なる複数サーバのソフトウェアのライセンスを管理することができるサーバ用ライセンス管理システム及びサーバ用ライセンス管理方法に関する。特に本発明は、ライセンス課金方法が異なる複数サーバのソフトウェアのライセンス消費数を容易に算出することができるサーバ用ライセンス管理システム及びサーバ用ライセンス管理方法に関する。
【背景技術】
【０００２】
近年、仮想化技術及び負荷分散技術の進展にともなって所定のソフトウェアを複数の仮想サーバ（仮想マシン）にソフトウェアの使用ライセンスを許諾し、ソフトウェアの利用実績に応じて仮想サーバ毎にライセンス使用料を徴収するためのサーバ用ライセンス管理を行っている。
【０００３】
従来技術によるソフトウェアのライセンス管理技術が記載された文献としては下記の特許文献が挙げられる。この特許文献には、「稼働中のシステム環境で消費されている各ソフトウェアのライセンス数を、各ソフトウェアのライセンス体系の特性毎にカテゴライズして予め定義されたライセンス計算ロジックに従って算出し、ライセンス状況記録手段に記録するライセンスチェック部とを有する」という記載がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−０３３０９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述の特許文献１に記載された技術は、仮想マシンや仮想サーバ上で稼働するソフトウェアなど、物理的もしくは仮想的なハードウェア構成に依存してライセンスの消費数が変動するソフトウェアについて、ライセンスの消費数や必要数を効率的に算出することができる効果に留まる。
【０００６】
そこで、本発明では、ライセンス課金方法が異なる複数サーバのソフトウェアのライセンスを管理することができるサーバ用ライセンス管理システム及びサーバ用ライセンス管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明によるサーバ用ライセンス管理システム及び方法は、
インベントリのライセンス割り当て単位がＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定し、
前記ライセンス割り当て単位が使用者グループを対象としたライセンスであると判定したとき、ライセンス割当単位に指定されたグループのみを対象としてハードウェアに関連するグループデータ及びインベントリを含む処理対象インベントリデータの処理対象ＸＭＬデータを生成し、
前記ライセンス割り当て単位が物理的条件によるライセンスと判定したとき、インベントリ内の仮想マシンに対してハードウェア情報を埋め込んだインベントリを含む処理対象インベントリデータの処理対象ＸＭＬデータを生成し、
この作成した処理対象ＸＭＬデータに基づいて消費数算出ＸＱＵＥＲＹを実行することによって、ライセンス課金方法が異なる複数サーバのソフトウェアのライセンス消費数を容易に算出する。
【発明の効果】
【０００８】
本発明によるサーバ用ライセンス管理システム及びサーバ用ライセンス管理方法は、ライセンス課金方法が異なる複数サーバのソフトウェアのライセンス消費数を容易に算出することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例によるサーバ用ライセンス管理システムの基本的構成を示す図である。
【図２】本実施例によるＤＢのテーブル仕様を示す図である。
【図３】本実施例によるライセンス総称定義テーブルと利用者状況識別定義とベンダー係数と消費数算出定義ＩＤ例を示す図である。
【図４】本実施例によるＲＤＢＭＳを１台の物理サーバで使用時のインベントリデータ例を示す図である。
【図５】本実施例によるＲＤＢＭＳを仮想サーバで使用時のインベントリデータ例を示す図である。
【図６】本実施例によるＲＤＢＭＳをＬＰＡＲサーバで使用時のインベントリデータ例を示す図である。
【図７】本実施例によるＲＤＢＭＳをクラスタ構成＋スタンバイ構成で使用時のインベントリデータ例を示す図である。
【図８】本実施例によるライセンスの消費数算出処理フローを示す図である。
【図９】本実施例によるサーバ用ライセンス管理システムの全体動作を示す図である。
【図１０】本実施例による識別処理フローを示す図である。
【図１１】本実施例による係数特定処理フローを示す図である。
【図１２】ライセンス数の算出手法を説明するための図である。
【図１３】ライセンス数の算出手法を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明による実施例を説明するものであるが、まず、本発明の前提となるライセンスを必要とする仮想サーバの種類について説明する。
前記仮想サーバは、マイクロソフト（登録商標）社等のソフトウェアによって仮想的に構築されたコンピュータであるＶＭ（仮想）サーバと、一筐体内で複数のＯＳが稼動できるようにサーバーシステム資源を論理的に分割した単位である論理区画（ＬＰＡＲ：Ｌｏｇｉｃａｌ  Ｐａｒｔｉｔｉｏｎ）を採用したＩＢＭ（登録商標）社規格のＬＰＡＲサーバが存在する。
【００１１】
前記仮想化技術におけるＶＭ（仮想）サーバは、ＯＳが動作する実際のコンピュータをソフトウェアによって仮想的に構築し、１台の物理サーバを複数のＶＭに分割することによって複数の利用者が同時に利用することができる。
【００１２】
前記ＬＰＡＲサーバは、稼働するＯＳそれぞれが独立しており、システムに搭載されている使用可能なリソース（プロセッサ、メモリ、Ｉ／Ｏスロット）から、そのＬＰＡＲに必要な分量を割り当て、割り当てた定義情報は、管理コンソール上にパーティション・プロファイルとして保存することができる。
【００１３】
本出願においては、ライセンス管理対象のソフトウェアとして、関係モデルと呼ばれる概念に基づいてデータを扱うデータベースの一種であるリレーショナルデータベース管理システム（ＲＤＢＭＳ：Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）を例に挙げ、ＬＰＡＲサーバ及びＶＭサーバ毎に仮想サーバにライセンスを要するソフトウェアのライセンス数算出例を説明する。
【００１４】
（ａ）［リレーショナルデータベース管理システム（ＲＤＢＭＳ）を１台のＶＭサーバである物理サーバに適用した例］
本例は、図１２（ａ）に示す如く、４コアのＣＰＵを２台、所定性能のＣＰＵモデル、ＣＰＵ係数が０．５の物理ハードウェア（サーバ）において、ＯＳ上でＲＤＢＭＳを稼働させる例である。この場合のライセンス数は、２（２ＣＰＵ）×４（４コア）×０．５（係数０．５）＝４ライセンスとして算出する。
【００１５】
（ｂ）［ＲＤＢＭＳを１台のである物理サーバ上の２台の仮想マシン（ＶＭサーバ）に適用した例］
本例は、図１２（ｂ）に示す如く、４コアのＣＰＵを２台、所定性能のＣＰＵモデル、ＣＰＵ係数が０．５の物理ハードウェア（サーバ）において、仮想化ＯＳ上で２つの仮想マシンを稼働させ、１台の仮想マシン上でＲＤＢＭＳを稼働させる例である。この場合のライセンス数は、２（２ＣＰＵ）×４（４コア）×０．５（係数０．５）＝４ライセンスとして算出する。
【００１６】
（ｃ）［ＲＤＢＭＳを１台のＬＰＡＲサーバである物理サーバ上の２台の仮想マシンに適用した例］
本例は、図１２（ｃ）に示す如く、４コアのＣＰＵを２台、所定性能のＣＰＵモデル、ＣＰＵ係数が０．５の物理ハードウェア（サーバ）において、２つの仮想区画を生成し、割り当てコア数２の仮想区画上でＲＤＢＭＳを稼働させる例である。この場合のライセンス数は、２（２コア）×０．５（係数０．５）＝１ライセンスとして算出する。
【００１７】
次に、複数のサーバを結合し、クラスタ（葡萄の房）のようにひとまとまりのコンピュータシステムを形成し、稼動中のサーバに障害が発生したことを検知したとき、待機系サーバへ処理を切り替える構成（クラスタ構成且つスタンバイ構成）の例を説明する。
【００１８】
（ｄ）本例は、図１３に示す如く、ＣＰＵ係数が０．７５の３台の物理ハードウェア（サーバ）からクラスタ構成をなし、図面左側の２台の物理ハードウェアが本番として連帯して稼働し、図面右側１台の物理サーバが障害発生時のスタンバイ環境として準備され、各物理ハードウェアのＯＳ上でＲＤＢＭＳを稼働させる例である。この場合のライセンス数は、４（４ＣＰＵ）×２（２コア）×０．７５（係数０．７５）×３台＝１８ライセンスとして算出する。
【００１９】
このようにソフトウェアのライセンス計算手法は、物理サーバでの消費数算出は［ＣＰＵ数×コア数×ＣＰＵ係数］にて算出し、ＶＭサーバでの消費数算出は［ＣＰＵ数×コア数×ＣＰＵ係数］にて算出し、ＬＰＡＲサーバでの消費数算出は［ＣＰＵ数×ＣＰＵ係数］にて算出し、クラスタ構成の際には本番環境とスタンバイ環境の物理ハードウェアの台数を乗算して計算する。このように仮想プラットフォームの種類によって消費数の算出方法が異なり、従来技術では容易にライセンス数を算出することが困難であった。
【実施例１】
【００２０】
［構成］
本実施例によるサーバ用ライセンス管理方法を採用したコンピータシステムであるサーバ用ライセンス管理システムは、図１に示す、仮想サーバ及び物理サーバに関する情報を格納したサーバ管理台帳ＤＢ（データベース）３２と、サーバライセンス辞書ＤＢ３６と、インベントリデータＤＢ３０と、約款情報ＤＢ３４と、ライセンス消費数ＤＢ３８と、前記各ＤＢ３０〜３６を参照してシステム毎のライセンス数を算出する制御部３９とを備える。
【００２１】
［サーバライセンス辞書ＤＢ３６］
前記サーバライセンス辞書ＤＢ３６は、図２及び図３に示す如く、次の情報を格納する。
（ａ）ライセンス総称定義テーブル３０７：このライセンス総称定義テーブル３０７は、ライセンス総称個々に一意に付与されたライセンス総称名称と、該ライセンス総称名毎に一意に付与される利用状況識別ＩＤと、利用状況識別ＩＤ毎に付与されるベンダー（ソフトウェア提供企業）係数と、ライセンス割り当て種別と、消費数算出定義の各項目情報を格納する。
【００２２】
（ｂ）利用状況識別定義テーブル３０８：この利用状況識別定義テーブル３０８は、前記利用状況識別ＩＤ毎の識別ＸＱＵＥＲＹ（ＸＭＬ文書に対して問合せを行うための言語）を格納する。なお、ＸＱＵＥＲＹとは、ＸＭＬ文書に対して問合せを行うための言語である。
（ｃ）ベンダー係数テーブル３０６：このベンダー係数テーブル３０６は、前記ベンダー係数ＩＤ毎に、プロセッサライセンス係数の名称であるベンダー係数名称と、該ベンダー係数名称毎のハードウェア情報であるハードウェアモデル／ＣＰＵメーカ／ＣＰＵモデル／係数を含むベンダー係数ＸＭＬを格納する。
【００２３】
（ｄ）消費数算出定義テーブル３０９：この消費数算出定義テーブル３０９は、消費数算出方法毎に一意に付与された消費数算出定義ＩＤと、該消費数算出定義ＩＤ毎の消費数を算出するための算出用ＸＱＵＥＲＹを格納する。
［インベントリデータＤＢ３０］
前記インベントリデータＤＢ３０は、ハードウェア及びソフトウェアのインベントリデータを格納するものであって、図２に示す次の複数のテーブルから構成される。なお、図２は、複数のＤＢに格納した複数のテーブルの関係を表し、「テーブル」は「ＴＢ」として表す。
【００２４】
（１）［ハードウェアＩＤ及びＸＭＬ形式のインベントリデータ（ＸＭＬ形式インベントリデータ）を格納するインベントリ台帳テーブル３０１］
このＸＭＬ形式のインベントリデータは、例えば次に示す如く、ハードウェア情報（Ｈａｒｄｗａｒｅ）とソフトウェア情報（Ｓｏｆｙｗａｒｅ）とライセンス情報（ＩｎｓｔａｌｌｅｄＬｉｃｅｎｅｓ）が含まれ、特に、ハードウェア情報には、ライセンス消費数を算出する際の要素となる「総コア数」及び「仮想化の種類」を登録している。
【００２５】
／Ｒｏｏｔ
／Ｈａｒｄｗａｒｅ
／ホスト名
／マシン種別
／ＯＳ名称
／親物理ホスト名
／ハードウェアモデル
／ＣＰＵメーカー
／ＣＰＵモデル
／ＣＰＵ数
／総コア数
／仮想化の種類
／スタンバイグループＩＤ
／スタンバイ種別
／Ｓｏｆｔｗａｒｅ
／Ｒｏｗ
／製品名称
／バージョン
／製造元
／ＩｎｓｔａｌｌｅｄＬｉｃｅｎｓｅ
／Ｒｏｗ
／ライセンス総称ＩＤ
／ライセンス総称名称
【００２６】
［ＲＤＢＭＳを１台の物理サーバで使用例］
このインベントリデータＤＢ３０に格納されるハードウェア及びソフトウェアのインベントリデータは、図１２を参照して説明した前述の仮想サーバの種類によって、異なり、この仮想サーバ種類に応じたインベントリデータ例を図４〜図７を参照して説明する。
【００２７】
前述の図１２（ａ）に示したデータベースソフトであるＲＤＢＭＳを１台の物理サーバで使用した場合のインベントリデータは、図４（ａ）及び（ｂ）に示す如く、次の情報がインベントリ台帳テーブル３０１に格納される。
【００２８】
（ａ）［ハードウェアのインベントリデータ］
このハードウェアのインベントリデータは、ホスト名と、該ホストが物理マシンか仮想マシンかを表すマシン種別と、ソフトウェアのバージョンと、前記ホストを搭載する親マシンの親物理ホスト名と、親物理ホストのハードウェアモデルと、ＣＰＵメーカと、ＣＰＵモデル、ＣＰＵ数と、総コア数と、仮想化の種類（ＶＭ又はＬＰＡＲ）の各項目情報とが格納される。
【００２９】
（ｂ）［ソフトウェアのインベントリデータ］
このソフトウェアのインベントリデータは、ホスト名と、製品名称と、バージョンと、製造元と、インストール日付の各項目情報とが格納される。
【００３０】
［ＲＤＢＭＳを仮想サーバでの使用例］
前述の図１２（ｂ）に示したソフトウェアであるＲＤＢＭＳを仮想マシンで使用した場合、図５に示す次の情報がインベントリ台帳テーブル３０１に格納される。
【００３１】
（ａ）［ハードウェアのインベントリデータ］
このハードウェアのインベントリデータは、図５（ａ）に示す如く、ホスト名と、該ホストが物理マシンか仮想マシンかを表すマシン種別と、ソフトウェアのバージョンと、前記ホストを搭載する親マシンの親物理ホスト名と、親物理ホストのハードウェアモデルと、ＣＰＵメーカと、ＣＰＵモデル、ＣＰＵ数と、総コア数と、仮想化の種類（ＶＭ又はＬＰＡＲ）の各項目情報が格納される。このインベントリデータは、１台の物理サーバ（ハードウェア）上に２台の仮想マシンが稼働するため、ホスト名が３項目となり、２台の仮想マシン個々の総コア数は２台として格納される。
【００３２】
（ｂ）［ソフトウェアのインベントリデータ］
このソフトウェアのインベントリデータは、図５（ｂ）に示す如く、ホスト名と、製品名称と、バージョンと、製造元と、インストール日付の各項目情報とが格納される。
【００３３】
［ＲＤＢＭＳをＬＰＡＲサーバでの使用例］
前述の図１２（ｃ）に示したソフトウェアであるＲＤＢＭＳをＬＰＡＲサーバで使用した場合、図６に示す次の情報がインベントリ台帳テーブル３０１に格納される。
（ａ）［ハードウェアのインベントリデータ］
このハードウェアのインベントリデータは、このハードウェアのインベントリデータの各項目は前述と同一であるが、図６（ａ）に示す如く、１台の物理サーバ（ハードウェア）上に２つの仮想区画が設けられるため、ホスト名が３項目となり、２台の仮想マシン個々の総コア数は２台として格納される。
【００３４】
（ｂ）［ソフトウェアのインベントリデータ］
このソフトウェアのインベントリデータは、図６（ｂ）に示す如く、前述の仮想サーバの場合と同様に、ホスト名と、製品名称と、バージョンと、製造元と、インストール日付の各項目情報とが格納される。
【００３５】
［クラスタ構成＋スタンバイ構成での使用例］
このインベントリデータは、前述の図１３に示したクラスタ構成且つスタンバイ構成のＲＤＢＭＳを使用した場合、図７（ａ）〜（ｃ）に示す次の情報がインベントリ台帳テーブル３０１に格納される。
（ａ）［ハードウェアのインベントリデータ］
このハードウェアのインベントリデータは、図７（ａ）に示す如く、１台の物理サーバ（ハードウェア）上に２つの仮想区画が設けられるため、ホスト名が３項目となり、２台の仮想マシン個々の総コア数は２台として格納されることに加え、スタンバイグループＩＤ及びスタンバイ種別が格納される。
【００３６】
（ｂ）［グループデータのインベントリデータ］
このグループデータは、クラスタ構成且つスタンバイ構成に対して一意に付与されたグループＩＤ及びグループ名称が格納される。
【００３７】
（ｃ）［ソフトウェアのインベントリデータ］
このソフトウェアのインベントリデータの各項目は、３台の物理（Ｐｈｙｓｉｃａｌ）サーバに対してソフトウェアがインストールされたホスト名と、製品名称と、バージョンと、製造元と、インストール日付の各項目情報が格納される。
（２）［グループ台帳関連付けテーブル３０２］
このグループ台帳関連付けテーブル３０２は、グループＩＤ及びハードウェアＩＤとの関連付け（対応）を格納する。
（３）[グループ台帳テーブル３０３]
このグループ台帳テーブル３０３は、グループＩＤとＸＭＬ形式のグルーブデータ（ＸＭＬ形式グルーブデータ）を格納する。
（４）［グループ種別テーブル３０４］
このグループ種別テーブル３０４は、グループ種別ＩＤとグループ種別との対応を格納する。
【００３８】
［約款情報ＤＢ３４］
前記約款情報ＤＢ３４は、ソフトウェアのライセンスに関する約款情報を格納する。
【００３９】
［サーバ管理台帳ＤＢ３２］
前記サーバ管理台帳ＤＢ３２は、物理サーバ及び仮想サーバに対するハードウェア及びソフトウェアを含む構成情報並びに所有ライセンスＩＤ及びＸＭＬ形式の所有ライセンスデータを格納するものであって、図２に示す次の複数のテーブルによって構成される。なお、図２においては「テーブル」を「ＴＢ」として記載している。
【００４０】
［サーバライセンス辞書ＤＢ３６］
（１）ベンダー係数ＩＤとＸＭＬ形式のベンダー係数ＸＭＬを格納するベンダー係数テーブル３０６。
（２）ライセンス総称ＩＤとライセンス総称名称と利用状況識別ＩＤとベンダー係数ＩＤとライセンス割当種別との対応を格納するライセンス総称定義テーブル３０７。
【００４１】
（３）利用状況識別ＩＤと識別区分と識別ＸＱＵＥＲＹとを格納する利用状況識別定義テーブル３０８。
（４）消費数算出定義ＩＤと消費数算出定義名称と算出用ＸＱＵＥＲＹとを格納する消費数算出定義テーブル３０９。
【００４２】
［ライセンス消費数ＤＢ３８］
前記ライセンス消費数ＤＢ３８は、制御部３９が算出したＬＰＡＲサーバかＶＭサーバかの仮想サーバ種に応じたライセンス消費数を演算したライセンス消費数を格納する。すなわち、ライセンス消費数ＤＢ３８は、消費数算出ＸＱＵＥＲＹ（ＸＭＬ文書に対して問合せを行うための言語）としてＩＢＭ（登録商標）社のＬＰＡＲ（論理区画）サーバとマイクロソフト（登録商標）社等のメーカ毎の仮想サーバに対するライセンス毎に個別に格納するものであって、図２に示す次の各テーブルによって構成される。
【００４３】
（１）ハードウェアＩＤとグループＩＤとライセンス総称ＩＤとライセンス識別ＩＤと所有部署ＩＤと消費数と消費数単位と消費数詳細とシステムタイムとを格納するライセンス消費数テーブル３１０。
【００４４】
（２）ライセンス総称ＩＤとライセンス総称名称とライセンス識別ＩＤとライセンス種別名称と製造元企業名称と権利数と割当数と消費数と単位と過不足数と所有部署ＩＤとシステムタイムとを格納するライセンス過不足集計テーブル３１１。
【００４５】
本実施例によるサーバ用ライセンス管理システムの各テーブル仕様は、図２に示す如く、サーバライセンス辞書ＤＢ３６とライセンス消費数ＤＢ３８の各テーブルが関連付けられるように構成されている。
【００４６】
［動作］
次に、前述のように構成されたサーバ用ライセンス管理システムの全体動作を図９を参照して説明する。この全体動作は、制御部３９が、ライセンス総称ＩＤ及び識別ＸＱＵＥＲＹに基づいてハードウェアＩＤに対するインベントリデータを識別するステップＳ７０と、該ステップＳ７０により識別したライセンス総称ＩＤと識別ＸＱＵＥＲＹとインベントリデータに基づいて消費数を計算を行うステップＳ７２とを実行するように動作する。
【００４７】
［インベントリデータの識別］
前記ステップＳ７０によるハードウェアＩＤに対するインベントリデータの識別は、図１０に示す次の各ステップを制御部３９が実行することによって行われる。
【００４８】
ステップＳ８１：ライセンス総称定義テーブルと利用状況識別定義テーブルとを結合し、ライセンス総称ＩＤ及び識別ＸＱＵＥＲＹを取得し、図示しないメモリ上の一時テーブルに格納するステップ。
【００４９】
ステップＳ８２：一時テーブルからライセンス総称ＩＤ及び識別ＸＱＵＥＲＹの１セットを取得し、取得したライセンス総称ＩＤに対するクリエである識別ＸＱＵＥＲＹを実行するステップ。
【００５０】
ステップＳ８３：該ステップＳ８２によるクエリ実行により抽出したハードウェアＩＤに対して該当のインベントリデータの＜／ＩｎｓｔａｌｌｅｄＬｉｓｅｎｓｅ／Ｒｏｗ／＞（インストールしたライセンスの行）に、ライセンス総称ＩＤ及びライセンス総称名称の値を格納するステップ。
【００５１】
ステップＳ８４：一時テーブルからステップＳ８１により格納したライセンス総称ＩＤ及び識別ＸＱＵＥＲＹを削除するステップ。
【００５２】
ステップＳ８５：一時テーブルの残件数が１件以上か否かを判定し、１件以上と判定したときに前記ステップＳ８２に戻り、１件以上でない（０件）と判定したときに処理を終了するステップ。
【００５３】
これら一連のステップを実行することによって、本実施例による制御部３９は、ライセンス総称ＩＤ及び識別ＸＱＵＥＲＹに基づいてハードウェアＩＤに対するインベントリデータを識別するように動作する。
【００５４】
［消費数算出処理］
前記図９を参照した全体動作におけるステップＳ７２による消費数の算出は、制御部３９が、図８に示す次の各ステップを実行することによって消費数を算出し、以下、動作を説明する。
【００５５】
ステップＳ１００：ライセンス総称定義テーブル３０７と消費数算出定義テーブル３０９を結合することにより、ライセンスに対する消費数算出定義を抽出するステップ。
【００５６】
ステップＳ１０１：該ステップＳ１００により結合したテーブル残り件数がゼロか否かを判定し、ゼロと判定したとき、処理を終了するステップ。
【００５７】
ステップＳ１０２：該ステップＳ１０１においてテーブル残り件数がゼロでないと判定したとき、ステップＳ１００で結合したテーブルからライセンス総称ＩＤ及び消費数算出用ＸＱＵＮＲＹの組み合わせを取得するステップ。
【００５８】
ステップＳ１０３：該ステップＳ１０２により取得したライセンス総称がインストール済みのインベントリを、対象処理インベントリテーブルに格納するステップ。この対象処理インベントリテーブルはメモリ上に一時的に設けられた記憶領域であり、他のテーブルも同様である。
【００５９】
ステップＳ１０４：対象処理インベントリテーブルからインベントリを１件取得するステップ。
【００６０】
ステップＳ１０５：処理対象インベントリテーブルの残件数が１件以上か否かを判定するステップ。
【００６１】
ステップＳ１０６：該ステップＳ１０５において残件数が１件以上でない判定したとき、消費数計算結果を基にライセンス消費数テーブルを更新するステップ。
【００６２】
ステップＳ１０７：該ステップＳ１０６に続き、インベントリのレコードを全て削除して前記ステップＳ１０１に戻るステップ。
【００６３】
ステップＳ１１０：前記ステップＳ１０５において残件数が１件以上と判定したとき、ライセンス割り当て単位がＩｎｖ（インベントリ）であるか否かを判定するステップ。このステップは、ソフトウェアのライセンスが、ＣＰＵコア数等の物理的条件によるライセンスか使用者グループを対象としたライセンスかを判定するために実行される。
【００６４】
ステップＳ１１１：該ステップＳ１１０においてライセンス割り当て単位がＩｎｖ（インベントリ）でないと判定したとき、ライセンス割当単位に指定されたグループのみを対象としてハードウェアに関連するグループデータを抽出するステップ。
【００６５】
ステップＳ１１２：該ステップＳ１１１において抽出したグループデータに含まれる全てのインベントリを抽出するステップ。
【００６６】
ステップＳ１１３：該ステップＳ１１２により抽出したインベントリのグループ関連付けに含まれるホスト名をグループデータのＢｅｌｏｎｇｉｎｓ(付属情報)に追加するステップ。
【００６７】
ステップＳ１１５：処理対象インベントリから取得したレコードをインベントリに格納するステップ。
【００６８】
ステップＳ１１７：該ステップＳ１１５又は前記ステップＳ１１０においてライセンス割り当て単位がＩｎｖである（使用者グループである）と判定したとき、インベントリの内、仮想マシンのインベントリに「コア数」を含むハードウェア情報を埋め込むステップ。即ち、本ステップＳ１１７は、インベントリ台帳ＴＢ３０１からから抽出したインベントリデータのハードウェア情報に含まれる「仮想化の種類」により消費数算出対象のサーバがＶＭサーバかＬＰＡＲサーバかを判定し、ＶＭサーバと判定したときにはコア数を含むハードウェア情報を埋め込み、ＬＰＡＲサーバに対してはコア数を埋め込まないように動作する。
【００６９】
ステップＳ１１８：該ステップＳ１１７によりハードウェア情報を埋め込んだインベントリデータを元に処理対象ＸＭＬデータを生成するステップ。
ステップＳ１１９：該ステップＳ１１８に続きライセンス割当単位がＩｎｖか否かを判定するステップ。
【００７０】
ステップＳ１２０：該ステップＳ１１９においてライセンス割当単位がＩｎｖでない（使用者グループを対象としたよるライセンス）と判定したとき、グループデータの情報を処理対象ＸＭＬデータに追加するステップ。
【００７１】
ステップＳ１２１：前記ステップＳ１１９においてライセンス割当単位がＩｎｖである（物理的条件によるライセンス）と判定したとき、及びステップＳ１２０に続き、処理対象ＸＭＬデータに対して消費数算出に使用される係数を特定する処理を実行するステップ。この係数特定処理は後述する。
【００７２】
ステップＳ１２２：処理対象ＸＭＬデータに対して消費数算出ＸＱＵＥＲＹを実行するステップ。この処理対象ＸＭＬデータに対して消費数算出ＸＱＵＥＲＹを実行するステップによって、前記ステップＳ１１７において仮想（ＶＭ）サーバのインベントリに対してコア数を含ませ、ＬＰＡＲサーバに対してはインベントリコア数を含ませていないことによって、ＬＰＡＲサーバと仮想サーバとのライセンス算出方法が異なる仮想サーバ種が混在してもライセンス消費数を算出することができる。
【００７３】
ステップＳ１２３：該ステップＳ１２２に続きライセンス割当単位がＩｎｖか否かを判定するステップ。
【００７４】
ステップＳ１２４：該ステップＳ１２３においてライセンス割当単位がＩｎｖでない（使用者グループを対象としたよるライセンス）と判定したとき、グループ単位で消費数をワークテーブルに格納し、前記ステップＳ１０４に戻るステップ。
【００７５】
ステップＳ１２５：該ステップＳ１２３においてライセンス割当単位がＩｎｖである（物理的条件によるライセンス）と判定したとき、ハードウェア単位で消費数をワークテーブルに格納し、前記ステップＳ１０４に戻るステップ。
【００７６】
［係数特定処理］
前記ステップＳ１２１において処理対象ＸＭＬデータに対する係数特定処理の詳細は、図１１に示す如く、制御部３９が次のステップを実行する。
【００７７】
ステップＳ９２：インベントリ台帳テーブルのインベントリデータ＜／Ｒｏｏｔ／Ｈａｒｄｗａｒｅ要素＞からハードウェア情報であるハードウェアモデル、ＣＰＵメーカ、ＣＰＵモデルを取得するステップ。
【００７８】
ステップＳ９３：該ステップＳ９２において取得したハードウェア情報であるハードウェアモデル、ＣＰＵメーカ、ＣＰＵモデルをもとにベンダー係数テーブル３０６に対してベンダー係数を問い合わせて抽出するステップ。
【００７９】
ステップＳ９４：該ステップＳ９３において抽出した件数が１件か否かを判定するステップ。
ステップＳ９５：該ステップＳ９４において抽出件数が１件と判定したとき、該当の係数を戻り値に設定して処理を終了するステップ。
【００８０】
ステップＳ９６：該ステップＳ９４において抽出した件数が１件でない（０件又は２件以上）と判定したとき、戻り値にエラー値「−１」を設定して処理を終了するステップ。
【００８１】
このように本実施例によるサーバ用ライセンス管理システム及びサーバ用ライセンス管理方法は、ＬＰＡＲサーバによる論理区画の仮想マシンの場合、論理区画に割り当てられたコア数に応じて課金し、ソフトウェアパーティションの仮想マシンの場合、物理サーバのコア数に応じて課金し、ライセンス課金方法が異なる複数サーバのソフトウェアのライセンス消費数を容易に算出し、ソフトウェアのライセンスを容易に管理することができる。
【符号の説明】
【００８２】
３０  インベントリデータＤＢ  ３２  サーバ管理台帳ＤＢ
３４  約款情報ＤＢ  ３６  サーバライセンス辞書
３８  ライセンス消費数ＤＢ  ３９  制御部
３０１  インベントリ台帳テーブル
３０２  グループ台帳関連付けテーブル  ３０３  グループ台帳テーブル
３０４  グループ種別テーブル  ３０５  所有ライセンス台帳テーブル
３０６  ベンダー係数テーブル  ３０７  ライセンス総称定義テーブル
３０８  利用状況識別定義テーブル  ３０９  消費数算出定義テーブル
３１０  ライセンス消費数テーブル
３１１  ライセンス過不足集計テーブル
【図１】
2017224106.tif 000003
【図２】
2017224106.tif 000004
【図３】
2017224106.tif 000005
【図４】
2017224106.tif 000006
【図５】
2017224106.tif 000007
【図６】
2017224106.tif 000008
【図７】
2017224106.tif 000009
【図８】
2017224106.tif 000010
【図９】
2017224106.tif 000011
【図１０】
2017224106.tif 000012
【図１１】
2017224106.tif 000013
【図１２】
2017224106.tif 000014
【図１３】
2017224106.tif 000015