(57)【要約】【課題】仮想マシン上で利用されるソフトウェアの不正利用を防止すること。【解決手段】ライセンス管理プログラムは、ソフトウェアがインストールされるコンピュータに、前記コンピュータ又は前記コンピュータ上の仮想マシンの第一の固有情報を取得する第一の固有情報取得手順と、前記第一の固有情報が仮想マシンに関する情報を含む場合、前記コンピュータ又は前記コンピュータとネットワークを介して接続されるコンピュータの第二の固有情報を取得する第二の固有情報取得手順と、前記第一の固有情報が仮想マシンに関する情報を含む場合、前記第一の固有情報と前記第二の固有情報とを組み合わせて、前記ソフトウェアが利用される前記仮想マシンを識別する識別情報を生成する第一の生成手順とを実行させる。【選択図】図４
2013131015.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアがインストールされるコンピュータに、
前記コンピュータ又は前記コンピュータ上の仮想マシンの第一の固有情報を取得する第一の固有情報取得手順と、
前記第一の固有情報が仮想マシンに関する情報を含む場合、前記コンピュータ又は前記コンピュータとネットワークを介して接続されるコンピュータの第二の固有情報を取得する第二の固有情報取得手順と、
前記第一の固有情報が仮想マシンに関する情報を含む場合、前記第一の固有情報と前記第二の固有情報とを組み合わせて、前記ソフトウェアが利用される前記仮想マシンを識別する識別情報を生成する第一の生成手順とを実行させるライセンス管理プログラム。
【請求項２】
前記第一の固有情報が仮想マシンに関する情報を含まない場合、前記第一の情報に基づいて、前記ソフトウェアが利用される当該コンピュータを識別する識別情報を生成する第二の生成手順を実行させる請求項１記載のライセンス管理プログラム。
【請求項３】
前記第一の固有情報は、前記仮想マシンの仮想的なＭＡＣアドレスであり、前記第二の固有情報は、当該コンピュータのＭＡＣアドレスである請求項１又は２記載のライセンス管理プログラム。
【請求項４】
ソフトウェアがインストールされる情報処理装置であって、
前記コンピュータ又は前記コンピュータ上の仮想マシンの第一の固有情報を取得する第一の固有情報取得部と、
前記第一の固有情報が仮想マシンに関する情報を含む場合、前記コンピュータ又は前記コンピュータとネットワークを介して接続されるコンピュータの第二の固有情報を取得する第二の固有情報取得部と、
前記第一の固有情報が仮想マシンに関する情報を含む場合、前記第一の固有情報と前記第二の固有情報とを組み合わせて、前記ソフトウェアが利用される前記仮想マシンを識別する識別情報を生成する生成部とを有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
ソフトウェアのライセンスの管理形態として、正当なユーザであることを証明するライセンス情報が、ソフトウェアのインストール先のコンピュータに保存される形態がある。コンピュータにおいてソフトウェアが利用される際に、正しいライセンス情報が当該コンピュータに保存されているか否かが判定され、保存されていれば、ソフトウェアの利用は許可される。
【０００３】
ライセンス情報は、他のソフトウェア資源と同様、容易にコピーが可能である。そこで、ライセンス情報のコピーによるソフトウェアの不正利用を防止するため、ライセンス情報には、例えば、コンピュータごとにユニークなＩＤ（以下、「ユニークＩＤ」という。）が含められる。正しいライセンス情報の保存の有無が判定される際に、ライセンス情報に含まれるユニークＩＤが、ソフトウェアが利用されるコンピュータに係るユニークＩＤと一致すれば、ソフトウェアの利用は許可される。そうすることで、コンピュータＡに関するユニークＩＤを含むライセンス情報がコンピュータＢにコピーされたとしても、コンピュータＢにおけるソフトウェアの不正利用は防止される。
【０００４】
従来、ユニークＩＤの生成方法として、ＭＡＣアドレスやハードディスクのＩＤといった、ハードウェアの固有情報を利用する方法が知られている。ハードウェアの固有情報であれば、コンピュータごとの一意性が保証される可能性は高いからである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、仮想化技術によって実現される仮想マシンは、同一のコンピュータ（以下、仮想マシンとの区別を明確にするため「物理マシン」という。）上において、複数起動される。したがって、各仮想マシン上のＯＳ（Operating System）から取得される物理マシンの固有情報は共通なものとなってしまう場合が有る。その場合、各仮想マシンに関するユニークＩＤが重複してしまう可能性がある。ユニークＩＤが重複する場合、例えば、仮想マシンＡに関するライセンス情報を利用して、仮想マシンＢにおいてソフトウェアの不正利用が可能となってしまう。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、仮想マシン上で利用されるソフトウェアの不正利用を防止することのできるライセンス管理プログラム及び情報処理装置の提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、ライセンス管理プログラムは、ソフトウェアがインストールされるコンピュータに、前記コンピュータ又は前記コンピュータ上の仮想マシンの第一の固有情報を取得する第一の固有情報取得手順と、前記第一の固有情報が仮想マシンに関する情報を含む場合、前記コンピュータ又は前記コンピュータとネットワークを介して接続されるコンピュータの第二の固有情報を取得する第二の固有情報取得手順と、前記第一の固有情報が仮想マシンに関する情報を含む場合、前記第一の固有情報と前記第二の固有情報とを組み合わせて、前記ソフトウェアが利用される前記仮想マシンを識別する識別情報を生成する第一の生成手順とを実行させる。
【発明の効果】
【０００８】
仮想マシン上で利用されるソフトウェアの不正利用を防止することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態におけるライセンス管理システムの構成例を示す図である。
【図２】本発明の実施の形態における物理マシンのハードウェア構成例を示す図である。
【図３】本発明の実施の形態における物理マシンのソフトウェア構成例を示す図である。
【図４】ライセンス管理クライアントの機能構成例を示す図である。
【図５】ライセンス管理クライアントの事前準備処理の処理手順の一例を説明するためのフローチャートである。
【図６】ライセンスの登録処理の処理手順の一例を説明するためのシーケンス図である。
【図７】ライセンス情報記憶部の一つのレコードの構成例を示す図である。
【図８】ライセンス情報の構成例を示す図である。
【図９】機体識別情報の生成処理の一例を説明するためのフローチャートである。
【図１０】機体識別情報の生成例を示す図である。
【図１１】ライセンスの検証処理の処理手順の一例を説明するためのシーケンス図である。
【図１２】仮想マシンが動作する物理マシンとは別の物理マシンの機器固有情報を機体識別情報の生成に利用する場合のシステム構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるライセンス管理システムの構成例を示す図である。
【００１１】
図１のライセンス管理システム１において、ライセンス管理サーバ２０は、拠点Ａ及び拠点Ｂ等と、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１２】
ライセンス管理サーバ２０は、拠点Ａ又は拠点Ｂにおいて利用されるソフトウェアのライセンス（利用権限）を一元的に管理するコンピュータである。図１において、ライセンス管理サーバ２０は、ライセンス情報記憶部２１を有する。ライセンス情報記憶部２１は、拠点Ａ又は拠点Ｂにおいて利用されるソフトウェアのライセンスを管理するための情報を記憶する。
【００１３】
拠点Ａ及び拠点Ｂは、それぞれ企業又は個人宅等、ソフトウェアが導入されるコンピュータが設置される場所である。なお、本実施の形態では、物理的なコンピュータを、「物理マシン」という。一方、仮想的なコンピュータを、「仮想マシン」という。物理マシン及び仮想マシンを区別しない場合、「機器」という。
【００１４】
拠点Ａには、物理マシン１０ａ１及び１０ａ２、並びにルータＲａ等が設置されている。物理マシン１０ａ１及び１０ａ２、並びにルータＲａは、拠点Ａ内のＬＡＮ（Local Area Network）又はＷＡＮ（Wide Area Network）等であるネットワークＮＬａを介して通信可能に接続されている。ネットワークＮＬａは、ルータＲａを介してネットワークＮ１に接続される。なお、ルータＲａは、ルータ及びプロキシサーバとして機能する装置である。
【００１５】
拠点Ｂには、物理マシン１０ｂ１、１０ｂ２、及び１０ｂ３、並びにルータＲｂ等が設置されている。物理マシン１０ｂ１、１０ｂ２、及び１０ｂ３は、拠点Ｂ内のＬＡＮ（Local Area Network）又はＷＡＮ（Wide Area Network）等であるネットワークＮＬａを介して通信可能に接続されている。ネットワークＮＬｂは、ルータＲｂを介してネットワークＮ１に接続される。なお、ルータＲｂは、ルータ及びプロキシサーバとして機能する装置である。
【００１６】
なお、拠点Ａの各物理マシン１０を区別しない場合、「物理マシン１０ａ」という。拠点Ｂの各物理マシン１０を区別しない場合、「物理マシン１０ｂ」という。拠点Ａ及び拠点Ｂの各物理マシン１０の区別しない場合、「物理マシン１０」という。また、拠点ＡのネットワークＮＬａ及び拠点ＢのネットワークＮＬｂを区別しない場合、「ネットワークＮＬ」という。
【００１７】
各物理マシン１０は、ＰＣ（Personal Computer）等のコンピュータ（個人用のＰＣ、ＰＣサーバ、又は大型のサーバ等の形態は問わない。）であり、本実施の形態において、ライセンス管理の対象とされるソフトウェアの導入先とされる。「ソフトウェア」とは、プログラムに限られない。静止画像、動画、音声データ等、ライセンスの対象となりうる電子的な情報であれば、ソフトウェアの内容は特定のものに限定されない。
【００１８】
本実施の形態において、拠点ＡにおけるネットワークＮＬａ上、又は拠点ＢにおけるネットワークＮＬｂ上においては、ＩＰアドレスの一意性が保証される。換言すれば、拠点Ａ及び拠点Ｂを跨っては、ＩＰアドレスの一意性は保証されない。すなわち、「拠点」とは、ＩＰアドレスの一意性が保証される空間又は範囲をいう。
【００１９】
本実施の形態において、拠点Ａ及び拠点ＢのＩＰアドレスの体系は、例えば、１９２．１６８．０．１／２４である等、相互に同じであるとする。このことは、物理マシン１０ａと物理マシン１０ｂとの間おいて、同じＩＰアドレスが割り当てられる可能性があることを意味する。
【００２０】
図２は、本発明の実施の形態における物理マシンのハードウェア構成例を示す図である。図２の物理マシン１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、ネットワークカード１０５、表示装置１０６、及び入力装置１０７等を有する。
【００２１】
物理マシン１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２２】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って物理マシン１０に係る機能を実現する。ネットワークカード１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００２３】
図３は、本発明の実施の形態における物理マシンのソフトウェア構成例を示す図である。図３に示されるように、各物理マシン１０では、ホストＯＳ１１及び仮想化ソフト１２等が動作する。
【００２４】
ホストＯＳ１１は、物理マシン１０上で直接動作するＯＳである。ホストＯＳ１１上においては、物理機器固有情報取得サーバ１１１が動作する。物理機器固有情報取得サーバ１１１は、後述されるライセンス管理クライアント１５からの要求に応じ、物理マシン１０ごとに固有な（又は一意な）識別情報を、物理マシン１０より取得する。以下、物理マシン１０ごとに固有な識別情報を「物理機器固有情報」という。本実施の形態では、物理マシン１０のネットワークカード１０５のＭＡＣアドレスが、物理機器固有情報の一例として用いられる。
【００２５】
仮想化ソフト１２は、ホストＯＳ１１上において動作し、仮想マシンを作り出すソフトウェアである。図３では、仮想マシンＶ１及び仮想マシンＶ２の二つの仮想マシンＶが動作している状態が示されている。各仮想マシンＶは、仮想的なネットワークカードである仮想ＮＩＣ１２１を有する。仮想ＮＩＣ１２１は、仮想マシンＶ上で動作するゲストＯＳ１３にとって、ネットワークカード１０５として見える。各仮想ＮＩＣ１２１には、仮想的なＭＡＣアドレスが割り当てられる。
【００２６】
通常、仮想ＮＩＣ１２１のＭＡＣアドレスは、物理マシン１０のＩＰアドレスに基づいて生成される。本実施の形態においても、仮想ＮＩＣ１２１のＭＡＣアドレスは、物理マシン１０のＩＰアドレスから生成されることを想定する。この場合、一つの物理マシン１０上で動作する各仮想マシンＶの仮想ＮＩＣ１２１のＭＡＣアドレスは、重複することが考えられる。しかし、一般的な、仮想化ソフト１２では、斯かる重複が回避されるように、各仮想ＮＩＣ１２１に対するＭＡＣアドレスの割り当てが行われる。各仮想ＮＩＣ１２１のＭＡＣアドレスが重複してしまっては、各仮想マシンＶは、正常に通信を行うことができないからである。したがって、図３において、仮想マシンＶ１と仮想マシンＶ２とのそれぞれの仮想ＮＩＣ１２１は、公知技術によって、相互に異なることが保証されることとする。このことは、一つの拠点内において、各仮想マシンＶの仮想ＮＩＣ１２１のＭＡＣアドレスは、一意であることが保証されることを意味する。各仮想ＮＩＣ１２１のＭＡＣアドレスは、物理マシン１０のＩＰアドレスより生成されるところ、拠点内において、各物理マシン１０のＩＰアドレスの一意性は保証されるからである。そこで、本実施の形態では、仮想ＮＩＣ１２１のＭＡＣアドレスを、仮想マシンＶごとに固有な識別情報として利用する。以下、仮想マシンＶごとに固有な識別情報を「仮想機器固有情報」という。
【００２７】
但し、拠点Ａにおける仮想ＮＩＣ１２１のＭＡＣアドレスと、拠点Ｂにおける仮想ＮＩＣ１２１のＭＡＣアドレスとは、重複する可能性がある。拠点Ａにおける物理マシン１０ａのＩＰアドレスと、拠点Ｂにおける物理マシン１０ｂのＩＰアドレスとは重複する可能性があるからである。したがって、仮想機器固有情報に関して一意性が保証される範囲は、拠点内に限られる。
【００２８】
各仮想マシンＶにおいては、ゲストＯＳ１３が動作する。ゲストＯＳ１３上には、対象ソフトウェア１４及びライセンス管理クライアント１５等がインストールされる。対象ソフトウェア１４は、ライセンス管理の対象とされるソフトウェアである。ライセンス管理クライアント１５は、ライセンス管理サーバ２０からのライセンス情報の取得や、ライセンス情報に基づく対象ソフトウェア１４の利用の許否の判定等をＣＰＵ１０４に実行させるプログラムである。なお、ライセンス情報とは、対象ソフトウェア１４の利用権限を示すデータをいう。ライセンス管理クライアント１５は、例えば、対象ソフトウェア１４がインストールされる際に、併せてインストールされてもよい。但し、既にライセンス管理クライアント１５がインストールされている場合は、ライセンス管理クライアント１５はインストールされなくてよい。
【００２９】
なお、本実施の形態では、「ホスト型」等と呼ばれる形態によって、仮想化が行われる例が示されているが、「ハイパーバイザ型」と呼ばれる形態によって、仮想化が行われてもよい。この場合、ホストＯＳ１１は、不要となるため、物理機器固有情報取得サーバ１１１は、例えば、ハイパーバイザの一部の機能として実装されてもよい。
【００３０】
図４は、ライセンス管理クライアントの機能構成例を示す図である。図４に示されるように、ライセンス管理クライアント１５は、ライセンス情報取得部１５１、物理機器固有情報取得部１５２、機器固有情報取得部１５３、機体識別情報生成部１５４、プロダクトキー受付部１５５、設定情報受付部１５６、動作環境判定部１５７、ライセンス情報保存部１５８、及びライセンス検証部１５９等を含む。
【００３１】
ライセンス情報取得部１５１は、ライセンス管理サーバ２０よりライセンス情報を取得する。物理機器固有情報取得部１５２は、物理機器固有情報取得サーバ１１１に対して物理機器固有情報の取得要求を送信することにより、物理機器固有情報を取得する。
【００３２】
機器固有情報取得部１５３は、ライセンス管理クライアント１５の動作環境のＭＡＣアドレスを取得する。以下、機器固有情報によって取得されるＭＡＣアドレスを、「機器固有情報」という。機器固有情報は、物理機器固有情報及び仮想機器固有情報を抽象化した概念である。したがって、機器固有情報の実体は、物理機器固有情報又は仮想機器固有情報である。すなわち、ライセンス管理クライアント１５の動作環境が、仮想マシンＶ（ゲストＯＳ１３）である場合、機器固有情報取得部１５３によって取得される機器固有情報（ＭＡＣアドレス）は、仮想ＮＩＣ１２１のＭＡＣアドレスとなる。一方、ライセンス管理クライアント１５の動作環境が、物理マシン１０（ホストＯＳ１１）である場合、機器固有情報取得部１５３によって取得される機器固有情報（ＭＡＣアドレス）は、ネットワークカード１０５のＭＡＣアドレスとなる。
【００３３】
すなわち、図３及び図４では、対象ソフトウェア１４及びライセンス管理１５が、仮想マシンＶ上で動作する形態が示されているが、本実施の形態では、対象ソフトウェア１４及びライセンス管理１５が、物理マシン１０上で動作する形態についても考慮されている。
【００３４】
機体識別情報生成部１５４は、ライセンス管理クライアント１５及び対象ソフトウェア１４が動作する機器の個体（機体）を、拠点を跨って一意に識別する識別情報（以下、「機体識別情報」という。）を生成する。ライセンス管理クライアント１５が及び対象ソフトウェア１４が仮想マシンＶ上で動作する場合、機体識別情報は、仮想マシンＶを、拠点を跨って一意に識別する情報である。ライセンス管理クライアント１５が及び対象ソフトウェア１４が物理マシン１０上で動作する場合、機体識別情報は、物理マシン１０を、拠点を跨って一意に識別する情報である。
【００３５】
プロダクトキー受付部１５５は、対象ソフトウェア１４のプロダクトキーの入力を受け付ける。プロダクトキーとは、対象ソフトウェア１４のライセンスの購入によって、ユーザに対して発行される、ライセンスの識別情報をいう。具体的には、対象ソフトウェア１４のライセンスには、ライセンス数や、ライセンス期間等、各種の属性が付随する。ユーザは、ライセンスの購入時（又は対象ソフトウェア１４の購入時）において、ライセンス数及びライセンス期間等を指定して、ライセンスを購入する。ライセンス管理サーバ２０は、購入されたライセンスの識別情報として、プロダクトキーを発行する。ライセンス管理サーバ２０は、購入されたライセンスごとに、当該ライセンスのプロダクトキーと、当該ライセンスの属性情報とを対応付けてライセンス情報記憶部２１に記憶する。したがって、ライセンス管理サーバ２０は、プロダクトキーによって、当該プロダクトキーに係るライセンスの範囲（ライセンス数やライセンス期間等）を把握することができる。
【００３６】
なお、プロダクトキー受付部１５５によって受け付けられたプロダクトキーは、ライセンス情報取得部１５１が、ライセンス管理サーバ２０よりライセンス情報を取得する際に利用される。
【００３７】
設定情報受付部１５６は、ライセンス管理クライアント１５の処理に必要な設定情報の入力を受け付ける。例えば、設定情報受付部１５６は、設定情報の入力画面を表示装置１０６に表示させ、当該画面を介して、ユーザより設定情報の入力を受け付ける。入力された設定情報は、例えば、補助記憶装置１０２に記憶される。但し、設定情報の入力画面ではなく、テキストエディタ等を利用して、所定のファイルに対して、設定情報が保存されてもよい。
【００３８】
動作環境判定部１５７は、ライセンス管理クライアント１５の動作環境が、仮想マシンＶであるか物理マシン１０であるかを判定する。
【００３９】
ライセンス情報保存部１５８は、ライセンス情報取得部１５１によって取得されたライセンス情報を、例えば、補助記憶装置１０２に保存する。
【００４０】
ライセンス検証部１５９は、ライセンス情報保存部１５８によって保存されたライセンス情報を用いて、対象ソフトウェア１４の利用の許否を判定する。
【００４１】
なお、図４において、ゲストＯＳ１３は、ネットワーク制御部１３１、入力制御部１３２、表示制御部１３３、及び記憶制御部１３４等を有する。ネットワーク制御部１３１は、ネットワーク通信に関する処理制御を行う。入力制御部１３２は、入力装置１０７に関する処理制御を行う。表示制御部１３３は、表示装置１０６に関する処理制御を行う。記憶制御部１３４は、メモリ装置１０３や補助記憶装置１０２等に関する処理制御を行う。
【００４２】
以下、ライセンス管理システム１において実行される処理手順について説明する。図５は、ライセンス管理クライアントの事前準備処理の処理手順の一例を説明するためのフローチャートである。図５の処理は、例えば、ライセンス管理クライアント１５が、そのインストール後に初めて起動された際に実行される。
【００４３】
ステップＳ１０１において、設定情報受付部１５６は、ライセンス管理サーバ２０のＩＰアドレスの入力をユーザより受け付ける。設定情報受付部１５６は、入力されたＩＰアドレスを、例えば、補助記憶装置１０２に保存する。なお、入力されたＩＰアドレスの正否が確認されてもよい。例えば、入力されたＩＰアドレスに基づいて、ライセンス管理サーバ２０との通信の可否が確認されてもよい。
【００４４】
但し、ライセンス管理サーバ２０のＩＰアドレスは、予めライセンス管理クライアント１５に対して組み込まれていてもよい。この場合、ステップＳ１０１において、ライセンス管理サーバ２０のＩＰアドレスは入力されなくてもよい。
【００４５】
続いて、機器固有情報取得部１５３は、ライセンス管理クライアント１５が動作するＯＳのネットワーク制御部１３１を介してＭＡＣアドレスを機器固有情報として取得する（Ｓ１０２）。
【００４６】
続いて、動作環境判定部１５７は、機器固有情報取得部１５３によって取得された機器固有情報に基づいて、ライセンス管理クライアント１５の動作環境が、仮想マシンＶであるか否かを判定する（Ｓ１０３）。具体的には、ＭＡＣアドレスは、ベンダコードを含む。仮想ＮＩＣ１２１より取得されたＭＡＣアドレスには、仮想化ソフト１２のベンダを示すベンダコードが含まれている。したがって、動作環境判定部１５７は、機器固有情報取得部１５３によって取得された機器固有情報（ＭＡＣアドレス）のベンダコードが、仮想化ソフト１２のベンダのベンダコードに一致するか否かに基づいて、動作環境が仮想マシンＶであるか否かを判定する。
【００４７】
例えば、仮想化ソフト１２のベンダのベンダコードは、例えば、所定のファイルに予め保存されていてもよいし、ライセンス管理クライアント１５のプログラムロジック内に埋め込まれていてもよい。
【００４８】
機器固有情報のベンダコードが、仮想化ソフト１２のベンダのベンダコードに一致する場合、すなわち、動作環境が仮想マシンＶである場合（Ｓ１０３でＹｅｓ）、設定情報受付部１５６は、物理機器固有情報取得サーバ１１１のＩＰアドレスの入力をユーザより受け付ける（Ｓ１０４）。設定情報受付部１５６は、入力されたＩＰアドレスを、例えば、補助記憶装置１０２に保存する。なお、入力されたＩＰアドレスの正否が確認されてもよい。例えば、入力されたＩＰアドレスに基づいて、物理機器固有情報取得サーバ１１１との通信の可否が確認されてもよい。
【００４９】
一方、動作環境が物理マシン１０である場合（Ｓ１０３でＮｏ）、物理機器固有情報取得サーバ１１１のＩＰアドレスの受け付けは不要である。後述より明らかなように、動作環境が物理マシン１０であるライセンス管理クライアント１５にとって、物理機器固有情報取得サーバ１１１との通信は不要だからである。
【００５０】
なお、ステップＳ１０２において取得された機器固有情報（ＭＡＣアドレス）がプライベートアドレスである場合、機器固有情報は重複する可能性があるため、例えば、図５の処理は異常終了してもよい。
【００５１】
また、ライセンス管理サーバ２０や、物理機器固有情報取得サーバ１１１のＩＰアドレスは、任意のタイミングで変更可能なように、例えば、ライセンス管理クライアント１５のアイコンを右クリックすることにより表示されるコンテキストメニューから設定情報受付部１５６の呼び出しが可能とされてもよい。
【００５２】
また、ライセンス管理サーバ２０のＩＰアドレスの入力と物理機器固有情報取得サーバ１１１のＩＰアドレスの入力とは同じ画面において行われてもよい。
【００５３】
続いて、機器に対するライセンスの登録時に実行される処理手順を説明する。図６は、ライセンスの登録処理の処理手順の一例を説明するためのシーケンス図である。
【００５４】
ステップＳ２０１において、ライセンス管理クライアント１５のプロダクトキー受付部１５５は、プロダクトキーの入力をユーザより受け付ける。例えば、プロダクトキー受付部１５５は、プロダクトキーの入力用の画面を表示装置１０６に表示させ、当該画面を介してプロダクトキーの入力を受け付ける。
【００５５】
続いて、ライセンス管理クライアント１５は、当該ライセンス管理クライアント１５の動作環境に係る機器の機体識別情報の生成処理を実行する（Ｓ２０２）。当該生成処理の詳細については後述される。
【００５６】
続いて、ライセンス管理クライアント１５のライセンス情報取得部１５１は、ライセンスキーと機体識別情報とを指定して、ライセンス情報の取得要求をライセンス管理サーバ２０に送信する（Ｓ２０３）。ライセンス管理サーバ２０のＩＰドレスは、予め設定されている設定情報に基づいて特定される。
【００５７】
ライセンス情報の取得要求に応じ、ライセンス管理サーバ２０は、ライセンス情報を生成すると共に、ライセンスが使用されたことを記憶する（Ｓ２０４）。ライセンス情報の生成は、ライセンス情報記憶部２１を参照して行われる。
【００５８】
図７は、ライセンス情報記憶部の一つのレコードの構成例を示す図である。図７において、ライセンス情報記憶部２１の一つのレコードは、プロダクトキー、ソフトウェア名、製品ＩＤ、利用権限、ライセンス数、及びライセンス使用数等を含む。
【００５９】
プロダクトキーは、購入されたライセンスに対して割り当てられたプロダクトキーである。ソフトウェア名及び製品ＩＤは、当該プロダクトキーに係るライセンスによって利用が許可される対象ソフトウェア１４の名前又はＩＤである。利用期限は、当該プロダクトキーに係るライセンスの有効期限である。ライセンス数は、当該プロダクトキーに係るライセンスによって同時に発行可能なライセンス情報の数である。ライセンス使用数は、当該プロダクトキーに関して、既に発行されたライセンス情報の数である。
【００６０】
上記の各項目の値は、ライセンスの購入時においてライセンス情報記憶部２１に記憶される。ライセンス使用数の初期値は「０」である。
【００６１】
ステップＳ２０４において、ライセンス管理サーバ２０は、以下の条件（１）及び（２）の充足の有無を判定する。（１）ライセンス情報の取得要求に指定されたプロダクトキーに一致するレコードがライセンス情報記憶部２１より検索されること。（２）検索されたレコードのライセンス使用数が、ライセンス数未満であること。
【００６２】
条件（１）及び（２）が充足された場合、ライセンス管理サーバ２０は、ライセンス情報を生成する。
【００６３】
図８は、ライセンス情報の構成例を示す図である。図８に示されるように、ライセンス情報には、利用期限等が含まれる。
【００６４】
利用期限は、ライセンス情報の取得要求に指定されていたプロダクトキーに対してライセンス情報記憶部２１に記憶されていた利用期限である。
【００６５】
続いて、ライセンス管理サーバ２０は、生成されたライセンス情報と、プロダクトキーに対応する製品ＩＤと、ライセンス情報の取得要求に指定されていた機体識別情報とに基づいて、一つのハッシュ値を生成する（Ｓ２０５）。続いてライセンスサーバ２０は、ライセンス情報及びハッシュ値を、ライセンス管理クライアント１５に返信する（Ｓ２０６）。
【００６６】
ライセンス情報取得部１５１によってライセンス情報及びハッシュ値が受信されると、ライセンス情報保存部１５８は、当該ライセンス情報及びハッシュ値を、例えば、補助記憶装置１０２に保存する（Ｓ２０７）。保存形態は、ファイルでもよいし、レジストリでもよい。
【００６７】
続いて、ステップＳ２０２における機体識別情報の生成処理の詳細について説明する。図９は、機体識別情報の生成処理の一例を説明するためのフローチャートである。
【００６８】
ステップＳ２０１において、機器固有情報取得部１５３は、ライセンス管理クライアント１５が動作するＯＳ（ゲストＯＳ１３又はホストＯＳ１１）のネットワーク制御部１３１を介して、ＭＡＣアドレスを機器固有情報として取得する。続いて、動作環境判定部１５７は、取得された機器固有情報に基づいて、ライセンス管理クライアント１５の動作環境が、仮想マシンであるか否かを判定する（Ｓ２１２）。当該判定は、図５のステップＳ１０３において説明した方法によって行われればよい。なお、ステップＳ１０３における判定結果を保存しておき、保存されている判定結果がステップＳ２１２において利用されてもよい。但し、ライセンス管理クライアント１５が物理マシン１０にインストールされた後に仮想化されることも可能であるため、機器固有情報は、図９の処理が実行されるたびに取得された方がよい。
【００６９】
動作環境が仮想マシンＶである場合（Ｓ２１２でＹｅｓ）、物理機器固有情報取得部１５２は、予め設定されているＩＰアドレスに基づいて、物理機器固有情報取得サーバ１１１に対して、物理機器固有情報（物理マシン１０のＭＡＣアドレス）を問い合わせることにより、物理機器固有情報を取得する（Ｓ２１３）。物理機器固有情報の取得に失敗した場合（Ｓ２１４でＮｏ）、図９の処理は異常終了する。
【００７０】
物理機器固有情報の取得に成功した場合（Ｓ２１４でＹｅｓ）、機体識別情報生成部１５４は、仮想機器固有情報と、取得された物理機器固有情報とを組み合わせて機体識別情報を生成する（Ｓ２１５）。なお、動作環境が仮想マシンＶである場合、ステップＳ２１１において取得される機器固有情報は、仮想機器固有情報（すなわち、仮想ＮＩＣ１２１のＭＡＣアドレス）である。したがって、機体識別情報を生成するための仮想機器固有情報としては、ステップＳ２１１において取得された機器固有情報が利用されればよい。
【００７１】
物理機器固有情報と仮想機器固有情報とが組み合わされることにより、拠点を跨いで、仮想マシンＶ単位で一意性が保証される機体識別情報が生成される。すなわち、動作環境が仮想マシンＶである場合、仮に、物理機器固有情報のみに基づいて機体識別情報が生成されると、同一の物理マシン１０上で動作する仮想マシンＶ間において、機体識別情報が重複してしまう。また、仮想機器固有情報のみに基づいて機体識別情報が生成されると、拠点Ａと拠点Ｂとで、機体識別情報が重複する可能性がある。一方、物理機器固有情報と仮想機器固有情報とが組み合わされれば、物理機器固有情報によって、拠点を跨いだ物理マシン１０単位の一意性が確保され、仮想機器固有情報によって、同一の物理マシン１０上における各仮想マシンＶの一意性が確保される。その結果、拠点を跨いで、仮想マシンＶ単位で一意な機体識別情報が生成される。
【００７２】
一方、ステップＳ２１２において、動作環境は物理マシン１０であると判定される場合（Ｓ２１２でＮｏ）、機体識別情報生成部１５４は、物理機器固有情報に基づいて機体識別情報を生成する（Ｓ２１６）。動作環境が物理マシン１０である場合、ステップＳ２１１で取得される機器固有情報は、物理機器固有情報（すなわち、物理マシン１０のＭＡＣアドレス）である。したがって、機体識別情報を生成するための物理機器固有情報としては、ステップＳ２１１において取得された機器固有情報が利用されればよい。
【００７３】
なお、物理機器固有情報は、拠点を跨って物理マシン１０の一意性を保証する。したがって、動作環境が物理マシン１０である場合、物理機器固有情報に基づいて機体識別情報が生成されれば、機体識別情報の重複は回避可能である。
【００７４】
機体識別情報の生成例について説明する。図１０は、機体識別情報の生成例を示す図である。図１０では、機体識別情報の生成例の一部として、（例１）から（例５）が示されている。
【００７５】
（例１）では、動作環境が物理マシン１０の場合には、物理機器固有情報がそのまま機体識別情報とされる。また、動作環境が仮想マシンの場合には、物理機器固有情報に仮想機器固有情報を続けたものが、そのまま機体識別情報とされる。
【００７６】
（例２）では、動作環境に応じて機体識別情報の長さが変わらないように、動作環境が物理マシン１０の場合に、仮想機器固有情報と同じ長さの空白又は特定の文字列が物理機器固有情報に付加されたものが、機体識別情報とされる。なお、（例２）では、（例１）に対して、仮想機器固有情報と物理機器固有情報との前後関係が入れ替えられている。
【００７７】
（例３）では、仮想機器識別情報（又は空白若しくは特定の文字列）と、物理機器固有情報との一部ずつが交互に組み合わされたものが、機体識別情報とされる。
【００７８】
（例４）では、（例１）における機体識別情報のハッシュ値が、機体識別情報とされる。
【００７９】
（例５）では、（例２）における機体識別情報のハッシュ値が、機体識別情報とされる。
【００８０】
続いて、対象ソフトウェア１４の利用時に実行される、ライセンスの検証処理について説明する。
【００８１】
図１１は、ライセンスの検証処理の処理手順の一例を説明するためのシーケンス図である。
【００８２】
ステップＳ３０１において、例えば、ユーザによって、対象ソフトウェア１４の利用指示が入力されと、対象ソフトウェア１４が起動を開始する。続いて、対象ソフトウェア１４は、当該対象ソフトウェア１４の製品ＩＤを指定して、ライセンスの有無を同一機器上のライセンス管理クライアント１５に対して問い合わせる（Ｓ３０２）。
【００８３】
当該問い合わせに応じ、ライセンス管理クライアント１５のライセンス検証部１５９は、例えば、補助記憶装置１０２に保存されている、ライセンス情報及びハッシュ値を取得する（Ｓ３０３）。続いて、機体識別情報生成部１５４は、ライセンス管理クライアント１５の動作環境（すなわち、対象ソフトフェア１４の動作環境）の機器の機体識別情報を生成する（Ｓ３０４）。ステップＳ３０４において実行される処理手順は、図９において説明した通りである。
【００８４】
続いて、ライセンス検証部１５９は、ステップＳ３０２の問い合わせに指定された製品ＩＤと、ステップＳ３０３において取得されたライセンス情報と、ステップＳ３０４において生成された機体識別情報とに基づいて、一つのハッシュ値を生成する（Ｓ３０５）。ここで利用されるハッシュ関数は、図６のステップＳ２０５において利用されるハッシュ関数と同じである。
【００８５】
続いて、ライセンス検証部１５９は、生成されたハッシュ値と、ステップＳ３０３において取得されたハッシュ値とを比較することにより、ライセンスの有無を判定する（Ｓ３０６）。すなわち、両者が一致すれば、ライセンスは有ると判定される。両者が一致しなければ、ライセンスは無いと判定される。なお、本実施の形態のように、ライセンス情報において、ライセンスの有効期限等が含まれている場合は、当該有効期限に関しても検証が行われる。
【００８６】
続いて、ライセンス検証部１５９は、ステップＳ３０６における判定結果を、対象ソフトウェア１４に応答する（Ｓ３０７）。対象ソフトウェア１４は、当該判定結果が、ライセンスが有ることを示す場合、起動処理を継続する。その結果、対象ソフトウェア１４は利用可能となる。一方、当該判定結果が、ライセンスは無いことを示す場合、対象ソフトウェア１４は、起動処理を中止する。その結果、対象ソフトウェア１４の利用は制限される。
【００８７】
なお、対象ソフトウェア１４とライセンス管理クライアント１５とは、同じプロセス上で動作してもよい。
【００８８】
ところで、ライセンスの登録時において、ライセンス情報は、機体識別情報及び製品ＩＤも含まれるように生成されてもよい。この場合、ライセンス情報、機体識別情報、及び製品ＩＤのハッシュ値は生成されなくてもよい。すなわち、ライセンス情報のみが、ライセンス先の機器に保存されてもよい。ライセンスの検証時において、ライセンス検証部１５９は、ステップＳ３０２の問い合わせに指定された製品ＩＤと、ステップＳ３０４において生成された機体識別情報とが、保存されているライセンス情報に含まれているか否かによって、ライセンスの有無を判定してもよい。
【００８９】
なお、上記においては、仮想マシンＶの機体識別情報は、当該仮想マシンＶの仮想機器固有情報に対して物理機器固有情報が組み合わされることにより生成される例を説明したが、物理機器固有情報として付加される情報は、必ずしも当該仮想マシンＶが動作する物理マシン１０の機器固有情報（ＭＡＣアドレス）でなくてもよい。
【００９０】
すなわち、仮想機器固有情報に対して物理機器固有情報が付加されるのは、機体識別情報に関して、拠点を跨いだ一意性を確保するためである。したがって、拠点を跨いだ一意性を確保可能な情報であれば、当該仮想マシンＶが動作する物理マシン１０の機器固有情報（ＭＡＣアドレス）に置き換わることができる。例えば、当該仮想マシンＶが動作する物理マシン１０とは別の物理マシン１０の機器固有情報が、当該仮想マシンＶの仮想機器固有情報に組み合わされてもよい。この場合、図１２に示されるような構成が可能となる。
【００９１】
図１２は、仮想マシンが動作する物理マシンとは別の物理マシンの機器固有情報を機体識別情報の生成に利用する場合のシステム構成例を示す図である。
【００９２】
図１２では、物理マシン１０ａ１には、物理機器固有情報取得サーバ１１１は実装されておらず、物理マシン１０ａ２に、物理機器固有情報取得サーバ１１１が実装されている例が示されている。この場合、物理マシン１０ａ１上における各仮想マシンＶ上のライセンス管理クライアント１５は、物理マシン１０ａ２の物理機器固有情報取得サーバ１１１から物理機器固有情報を取得し、機体識別情報を生成する。すなわち、物理マシン１０ａ２のＭＡＣアドレスが、物理マシン１０ａ１上で動作する仮想マシンＶの機体識別情報の生成に利用される。このよう形態であっても、当該機体識別情報は、拠点Ｂにおいて、仮想マシンＶに関して生成される機体識別情報との重複を回避することができる。拠点Ｂには、物理マシン１０ａ２と同じＭＡＣアドレスを有する物理マシン１０ｂは存在しないはずだからである。
【００９３】
なお、物理マシン１０ａ２の物理機器固有情報は、拠点Ａの各物理マシン１０ａの各仮想マシン上のライセンス管理クライアント１５によって共用可能である。
【００９４】
また、拠点間で重複することがなく、容易に複製が行えない情報であれば、物理マシンのＭＡＣアドレス以外の情報が、仮想マシンＶの機体識別情報の生成に利用されてもよい。
【００９５】
また、本実施の形態の適用に際し、機器固有情報として用いられる情報は、仮想マシンＶ及び物理マシンを問わず、ＭＡＣアドレスに限定されない。例えば、物理的又は仮想的なハードディスクのＩＤ（シリアル番号）が利用されてもよいし、物理的又は仮想的なＣＰＵのＩＤが利用されてもよい。
【００９６】
上述したように、本実施の形態によれば、仮想マシンＶごとに、拠点を跨いで一意な機体識別情報を生成することができる。したがって、対象ソフトウェア１４が仮想マシンＶ上で利用される場合であっても、ライセンス情報のコピーによる、ライセンスの不正利用を防止することができる。
【００９７】
また、無関係なユーザ間（例えば、拠点が異なるユーザ間）において、機体識別情報が重複してしまうことを防止することができる。その結果、無関係な一方のユーザによって他方のユーザのライセンスが使用されてしまうといった不都合を回避することができる。
【００９８】
なお、本実施の形態において、機器固有情報取得部１５３は、第一の固有情報取得部の一例である。物理機器固有情報取得部１５２は、第二の固有情報取得部の一例である。機体識別情報生成部１５４は、生成部の一例である。物理マシン１０は、情報処理装置又はコンピュータの一例である。
【００９９】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１００】
１            ライセンス管理システム
１０ａ１、１０ａ２、１０ａ３、１０ｂ１、１０ｂ２、及び１０ｂ３  物理マシン
１１          ホストＯＳ
１２          仮想化ソフト
１３          ゲストＯＳ
１４          対象ソフトウェア
１５          ライセンス管理クライアント
２０          ライセンス管理サーバ
２１          ライセンス情報記憶部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        ネットワークカード
１０６        表示装置
１０７        入力装置
１１１        物理機器固有情報取得サーバ
１２１        仮想ＮＩＣ
１３１        ネットワーク制御部
１３２        入力制御部
１３３        表示制御部
１３４        記憶制御部
１５１        ライセンス情報取得部
１５２        物理機器固有情報取得部
１５３        機器固有情報取得部
１５４        機体識別情報生成部
１５５        プロダクトキー受付部
１５６        設定情報受付部
１５７        動作環境判定部
１５８        ライセンス情報保存部
１５９        ライセンス検証部
Ｂ            バス
Ｎ１          ネットワーク
ＮＬａ、ＮＬｂ  ネットワーク
Ｒａ、Ｒｂ    ルータ
Ｖ１、Ｖ２    仮想マシン
【先行技術文献】
【特許文献】
【０１０１】
【特許文献１】特開２０１０−２８７０８１号公報
【図１】
2013131015.tif 000003
【図２】
2013131015.tif 000004
【図３】
2013131015.tif 000005
【図４】
2013131015.tif 000006
【図５】
2013131015.tif 000007
【図６】
2013131015.tif 000008
【図７】
2013131015.tif 000009
【図８】
2013131015.tif 000010
【図９】
2013131015.tif 000011
【図１０】
2013131015.tif 000012
【図１１】
2013131015.tif 000013
【図１２】
2013131015.tif 000014