ライセンス管理システム、ライセンス管理方法及びコンピュータプログラム
【課題】ソフトウェアベンダー側、ユーザ側双方において、ライセンスを管理できるようにすることを目的とする。
【解決手段】複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムであって、アプリケーションを管理する管理モジュールは、課金のタイプを判断する手段と、判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、カウントの結果を、ライセンスを許可するサーバに送信する手段と、を有し、ライセンスを許可するサーバは、送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とする。
【解決手段】複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムであって、アプリケーションを管理する管理モジュールは、課金のタイプを判断する手段と、判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、カウントの結果を、ライセンスを許可するサーバに送信する手段と、を有し、ライセンスを許可するサーバは、送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ライセンス管理システム、ライセンス管理方法及びコンピュータプログラムに関し、特に、仮想サーバの性質に対応したライセンス課金を行えるライセンス管理システム、ライセンス管理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
現在、以下に述べる理由から、サーバの仮想化を導入する企業が増えている。サーバを仮想化する最大の利点は、サーバ1台の中に多数の「仮想サーバ」を作ることで、CPUの処理能力を無駄なく利用できる点である。
【0003】
ここで、サーバの仮想化とは、1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術のことを言う。プロセッサやメモリ、ディスクをまとめて、仮想的に複数の領域に分割し、それぞれがあたかも1台であるかのように振る舞い、異なるOSやアプリケーションを同時に実行できる。物理的に複数のコンピュータを用意する場合に比べ、物理的資源の管理にかかる手間が省け、資源配分を需要に応じて柔軟に配分することができるという利点がある。
【0004】
しかし、仮想化にかかるオーバーヘッドの分、直接実行するよりも性能面で劣る。CPUの処理能力を無駄なく利用できるという利点を生かしたのが、多数のPCサーバを集約するサーバ統合である。企業内のPCサーバは、Webサイトから基幹業務システムまで増加の一途をたどっている。こうしたPCサーバの大半は、そのリソースを最大限に生かしていなかった。平均的なサーバ利用率は10%〜20%程度に留まっているという調査がある。つまり、サーバが本来発揮できるはずの処理能力の80%〜90%程度は使われないまま無駄になっているわけである。
【0005】
理由としては、運用の安定性向上の面、システム管理の単純明快さを確保する上からも、アプリケーションごと、用務ごとにハードウェアレベルで別サーバを用意することが多かったからである。一方、台数が増加することに起因する問題としては、管理対象が増加することによる管理負担の増大や、設置スペース/電力消費/発熱量の増大などが挙げられる。こういう状況を解決する手段として、仮想化技術が注目されてきた。仮想化技術を使えば、1台につき10〜20台の仮想サーバを収容でき、サーバ台数を劇的に削減できる。また、利用効率をほぼ100%に近いところまで引き上げることができ、運用コストも削減できる。
【0006】
2点目の理由としては、プロセッサのマルチコア化の進展が関連している。マルチコア化によって内部での並列演算性能は大幅に高速化されたが、一方でソフトウェアの対応がまだ追いついていないという問題がある。具体的には、従来のソフトウェアはマルチコアプロセッサに最適化された構造にはなっていないため、急激に並列度を増したプロセッサの演算リソースを使い切れないということが生じている。端的に言えば、マルチコアプロセッサで実行しても、コアを使い切ることができず、遊んでしまうコアが生じてしまう懸念がある。サーバの仮想化技術は、マルチコアプロセッサの演算性能を使いこなすための効果的な手段の一つと考えることもできる。
【0007】
3点目の理由としては、システムの寿命の観点からの理由が考えられる。使い慣れた業務システムがWindows(登録商標)NTのような旧型のOSで稼動しており、延命策を考えているケースは少なくない。サポートの切れた旧型ハードから新型サーバに乗せ換えたくても、旧型OSがサポート対象外のこともある。かといって、業務システムを最新のOSに乗せ換える作業は開発の手間がかかるし、移行は難しいことが多い。このようなケースで仮想化技術を使うと、新型のサーバの上で旧型OSを仮想サーバとして立てることにより動作させることができる。
【0008】
4点目の理由としては、耐障害性の観点からの理由が考えられる。サーバにソフトウェア的な障害が発生すると、マシンをダウンさせ再起動をする必要がある。これを速やかに行うためには、予め論理的に全く同じサーバを立ち上げておき、瞬時に切り替える必要がある。このような運用が、仮想化技術のサーバの移動機能を使えば、容易に実現可能である。
【0009】
5点目の理由としては、時間帯によってCPUの処理能力やメモリ容量を切り替えられるということが挙げられる。例えば、オンライン系サーバは午前中又は月曜日に負荷のピークが集中し、バッチ系サーバは夜間や土日に負荷のピークが集中することがよくある。仮想化技術を使えば、仮想マシン間で利用できるCPU数やCPUパワー、メモリ容量を変更できる。その設定は、曜日や月末といった状況に応じて細かく変更することも容易である。このような利用法は、物理的に異なるサーバでシステムを構築した場合と比べて、コストを大幅に削減できる。
【0010】
このような背景に伴い、仮想サーバ市場が急速に成長してきており、2011年にx86サーバの4割近くが仮想化されるという予測もある。また、多種多様な仮想化ソフト(VMWare、Hyper−V、Xen)が存在している。
【0011】
サーバの仮想化の方式には、以下の二種類がある。ホストOS方式とハイパーバイザー方式である。ホストOS方式は、仮想ハードウェアを設けずに、実際の周辺機器などをそのまま利用し、ホストOS上で複数のゲストOSを実行可能にする方式である。また、ハイパーバイザー方式は、仮想化を実現する仮想化ソフトと仮想ハードウェアのソフトウェアレイヤーをハードウェア上に実装し、その上に複数のOSをインストールして利用するものである。
【0012】
次に、仮想サーバにおける一般的なライセンス課金方法について説明する。一般にソフトウェアの課金は、「ユーザ数」に基づくものと、サーバの「CPU数(コア数)」に基づくものがある。「ユーザ数」による課金の場合は、ユーザ数を変えない限り、ソフトウェアを仮想サーバに移行させてもライセンスコストは同じになる。このようなネットワーク環境で使用するソフトウェアでは、不特定多数の人がアクセスできるためライセンスにより使用できるコンピュータや本数を制限しているものが多い。
【0013】
ソフトウェアライセンスの形態としては以下の2種類が主に使用されている。すなわち、特定のコンピュータのみで実行可能なライセンスであるノードロックライセンスとネットワーク上のどのコンピュータでも実行可能なライセンスであるフローティングライセンスである。フローティングライセンスについては、特許文献1に記載されている。フローティングライセンス方式は、複数のコンピュータをネットワークにより相互に通信可能に接続したシステムに適用される方式である。ノードロックライセンス方式は、各コンピュータのホストIDを用いてライセンスを管理する方式である。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2001−092550号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
しかしながら、従来のフローティングライセンス技術では、上記した仮想サーバを含む、仮想化特有のライセンス課金体系を考慮したものではなかった。また、仮想化の機能として、仮想サーバに割り当てるCPU数を昼と夜とで変更するといった設定をできるということが挙げられる。仮想サーバに割り当てたCPU数に依存したライセンス体系の場合は、このCPUの割り当てスケジューリングのことを考慮する必要がある。このような仮想化特有の技術により、複雑になった課金方法は、現状ソフトウェアベンダーとユーザ側で、課金体系を紳士協定的に遂行されていることが多い状況である。しかしながら、成長著しい仮想サーバ環境を考えると、ソフトウェアベンダーにとって、正確で、かつ多様な仮想化ソフトに対応できる汎用的なライセンス管理方法の必要性が増してくる。また、ユーザにとっても、ライセンス使用状況の把握の負担が増してきている。そこで、本発明は、ソフトウェアベンダー側、ユーザ側双方において、ライセンスを管理できるようにすることを目的とする。
【課題を解決するための手段】
【0016】
上記の課題を解決するため、本発明は、複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムであって、前記アプリケーションを管理する管理モジュールは、前記課金のタイプを判断する手段と、該判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、該カウントの結果を、前記ライセンスを許可するサーバに送信する手段と、を有し、該ライセンスを許可するサーバは、該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、該判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とする。
【発明の効果】
【0017】
本発明によれば、仮想サーバを含むシステム全体で、課金方法が混在したような環境、又は動的にライセンスが変わるような環境において、同時に利用可能なライセンスカウントが可能となり、システム全体のライセンス管理を行うことが可能となる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施形態の構成を示す図である。
【図2】仮想化方式を示す図である。
【図3】仮想サーバにおける課金方法を示す図である。
【図4】仮想サーバの移動機能を示す図である。
【図5】端末装置602−606に内蔵される仮想サーバの様子を示す図である。
【図6】仮想環境ライセンス管理モジュール及びライセンスサーバがもつ情報内容を示す図である。
【図7】仮想サーバ上でアプリケーションが起動されるときの処理を示すフローチャートである。
【図8】仮想サーバの移動機能を実行したときの全体構成を示す図である。
【図9】仮想サーバの移動機能を実行したときの処理を示すフローチャートである。
【図10】CPU割り当て数が変更されたときの処理を示すフローチャートである。
【図11】実サーバと仮想サーバが混在したライセンス管理システムの全体構成を示す図である。
【図12】仮想サーバ及び実サーバ上でライセンス管理モジュールがもつ情報を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための最良の形態について、添付図面等を参照して詳細に説明する。なお、以下の説明では、具体的な数値、構成、動作等を示して説明を行うが、これらは、適宜変更することができる。
【0020】
<実施形態1>
図1(a)は、本発明の一実施形態としてのネットワークにおけるライセンス管理システムの全体構成図である。図1(a)に示すように、ネットワークにおけるライセンス管理システムは、ユーザのサーバ各種端末装置602−606と、ライセンスサーバ601とを備えている。端末装置602−606とライセンスサーバ601とはネットワーク607を介して相互に通信可能に接続されている。なお、ネットワーク607は、例えばLANから構成されている。
【0021】
図1(b)は、ライセンス管理装置の一例であるライセンスサーバ601の構成を示す図である。図1(b)に示すように、ライセンスサーバ601は、ライセンスサーバ601全体を制御するCPU702を有している。CPU702が、記憶装置704に記憶されているプログラムに基づき動作することによって、例えば、後記するライセンスサーバ601に関係するフローチャートの各処理を実行する。CPU702には、バス701を介して、キーボードやマウス等からなる入力装置703と、記憶装置704と、表示装置705と、通信インタフェース装置706とが接続されている。記憶手段の一例である記憶装置704は、例えば、ROM、RAM、ハードディスク装置等からなる。記憶装置704は、端末装置602−606で使用可能なアプリケーションの種類、アプリケーションが使用できるライセンス数、残ライセンス数を記憶している。表示装置705は、CRT又はLCD等からなる。通信インタフェース装置706は、端末装置602−606との間でデータや信号の授受を可能にする。
【0022】
図1(c)は、情報処理装置の一例である端末装置602−606の構成を示す図である。図1(c)に示すように、端末装置602−606は、端末装置全体を制御するCPU802を有している。CPU802が、記憶装置804に記憶されているプログラムに基づき動作することによって、例えば、後記する端末装置に関係するフローチャートの各処理を実行する。CPU802には、バス801を介して、キーボードやマウス等からなる入力装置803と、記憶装置804と、表示装置805と、通信インタフェース装置806とが接続されている。記憶手段の一例である記憶装置804は、例えば、ROM、RAM、ハードディスク装置等からなる。記憶装置804は、端末装置602−606で実行されるアプリケーションコンポーネントや動作機能追加に関するプログラム(プラグイン)を記憶している。表示装置805は、CRT又はLCD等からなる。通信インタフェース装置806は、ライセンスサーバ801との間でデータや信号の授受を可能にする。
【0023】
ここで、サーバの仮想化方式について説明する。サーバの仮想化方式には、代表的なものとして、ホストOS方式とハイパーバイザー方式とがある。図2は、これらの仮想化方式を示す図である。
【0024】
図2(a)は、ホストOS方式を示す図である。ホストOS102のミドルウェアとして仮想化ソフト103が動作する。仮想化ソフトは、物理ハードウェアをもとに仮想ハードウェア104を作り、そこにOS105やアプリケーション106が導入できるようにするソフトウェアである。OS105には、ホストOSと同一又は異なるOSをゲストOSとしてインストールすることが可能である。ホストOS方式では、ハードウェアとの入出力にホストOSの機能を活用する。ただし、仮想マシンとハードウェアの間にフル機能のOSが介在するため、オーバーヘッドがやや大きくなる傾向にある。製品としては、VMWare Server、Virual Server、Virtual PCなどがある。
【0025】
図2(b)は、ハイパーバイザー方式を示す図である。上記のホストOS方式で利用していた仮想化レイヤーをホストOSの代わりに直接物理ハードウェア上に展開したようなイメージである。このハイパーバイザーは、一種のOSともいえるが、ユーザインタフェースやユーザコマンドなどの要素は省略し、ハードウェアの管理と仮想環境の管理に特化しているため、ごく小規模で簡略化されたものとなっている。製品としては、VMWare ESX、Xen Server、Hyper−Vなどがある。
【0026】
次に、仮想サーバにおける一般的なライセンス課金方法について説明する。上記したように、一般にソフトウェアの課金は、「ユーザ数」に基づくものと、サーバの「CPU数(コア数)」に基づくものがある。「ユーザ数」による課金の場合は、ユーザ数を変えない限り、ソフトウェアを仮想サーバに移行させてもライセンスコストは同じになる。仮想環境に移行させるときに注意が必要なのは、CPUやサーバ数に基づく課金体系の場合である。このとき、ソフトウェアは「仮想サーバ単位」又は「物理サーバ単位」で課金される。
【0027】
一方、コンピュータのネットワーク化が進み、分散した資源にネットワークを介してアクセスすることが可能になってきている。コンピュータで実行するソフトウェアに関してもネットワーク環境での使用を前提にしたものが多くなり、ネットワーク上のマシンであれば何処からでも実行できるようになってきている。このようなネットワーク環境で使用するソフトウェアでは、不特定多数の人がアクセスできるためライセンスにより使用できるコンピュータや本数を制限しているものが多い。
【0028】
ソフトウェアライセンスの形態としては特定のコンピュータのみで実行可能なライセンス(ノードロックライセンス)と、ネットワーク上のどのコンピュータでも実行可能なライセンス(フローティングライセンス)の2種類が主に使用されている。
【0029】
フローティングライセンス方式は、複数のコンピュータをネットワークにより相互に通信可能に接続したシステムに適用される方式である。そのコンピュータのうちサーバとなるものにライセンス確認プログラムが常駐しており、クライアントでアプリケーションを起動すると、そのアプリケーションがサーバのライセンス確認プログラムを呼び出す。呼び出されたライセンス確認プログラムは、クライアントのアプリケーションから送られてくる情報に基づいて動作環境をチェックし、適正であればクライアントのアプリケーションに動作許可を与える。したがって、この方式によりネットワークに接続された複数のコンピュータにおいて同時に同じアプリケーションを動作させるためには、同時に起動させるアプリケーションの数だけライセンスが必要となる。
【0030】
ノードロックライセンス方式は、各コンピュータのホストIDを用いてライセンスを管理する方式である。該当ホストで実行されるならば、ユーザ名やユーザ数に制限がない方式である。つまり、アプリケーションは、予め登録されたコンピュータのみで起動される。この方式により複数のコンピュータにおいて同時に同じアプリケーションを動作させるためには、そのコンピュータの数だけライセンスが必要となる。
【0031】
次に、仮想サーバで稼動する現在一般的になっているソフトウェアのライセンスについて説明する。
【0032】
図3は、仮想サーバにおける課金方法を示す図である。図3に示すような5CPU301をもつサーバPCに、仮想サーバ3台を立て(302)、それぞれのサーバ上にアプリケーション303をインストールした構成で考えると、以下のような課金タイプが一般的である。
1.実マシンのCPU数(コア数)→5ライセンス(304)
2.アプリケーションをインストールした仮想サーバに割り当てたCPU数(コア数)分→4ライセンス(305)
3.アプリケーションをインストールした仮想サーバの台数分→3ライセンス(306)
4.実マシンのCPU数(コア数)分×アプリケーションをインストールした仮想サーバの台数分。→15ライセンス(307)
【0033】
現状このような課金方法がアプリケーションによって異なるというのが実情であり、このことがユーザにとってライセンス体系が複雑でわかりにくいものとしている。また、仮想化特有の機能として、移動機能というものがある(VMWareのVMotion、XenのLiveMigrationなど)。移動機能を使うと、あるサーバ上で稼動中の仮想サーバをオンライン状態で別のサーバに移動できる。本番サーバに対してバックアップサーバを用意しておき、フェイルオーバーや計画停止などに利用される。この機能を利用する際に、ライセンスの考え方としてバックアップサーバの分も考慮に入れるのが一般的である。
【0034】
図4は、仮想サーバの移動機能を示す図である。例えば、図4(a)のように、本番サーバ401で、仮想サーバA402が2CPU403割り当てられており、そこで、アプリケーション404がインストールされているとする。移動先のバックアップサーバ405では割り当てるCPU数が3CPU406になっていたとすると、最大利用CPUの3ライセンスが必要となる。図4(b)のように、物理サーバ単位で課金されるアプリケーションでは、バックアップサーバにもライセンスが必要になるケースがある。この例の場合、実CPU501を四つもつ本番サーバ502に仮想サーバA503、仮想サーバB504が複数台あり、それらにアプリケーション505がインストールされているとする。そのうちの一つの仮想サーバAが、実CPU506を四つもつバックアップサーバ507に移動する場合を考える。その場合、移動先の仮想サーバA508のライセンスも必要となり、本番サーバの実CPU四つとバックアップサーバの実CPU四つとを併せて、8ライセンスが必要となる。
【0035】
図5は、上記のサーバ各種端末装置602−606に内蔵される仮想サーバの様子を示す図である。図5に示す仮想サーバは上記のホストOS方式である。各端末装置602−606には、実サーバで運用されているサーバ901と、仮想サーバ904をそれぞれ二つたてた運用を行っているサーバ902及び903とが内蔵されている。実サーバ901及び仮想サーバ904には、アプリケーション905がインストールされているものとする。各仮想サーバを含むサーバ上に仮想環境ライセンス管理モジュール906を配置する。このモジュールが全ての仮想サーバ上で動作しているアプリケーションのライセンス数をカウントする。そのために、仮想環境ライセンス管理モジュール906は、図6(a)に示すような情報1001、1002をもつ。
【0036】
図6は、仮想環境ライセンス管理モジュール及びライセンスサーバがもつ情報内容を示す図である。情報1001は予め仮想環境ライセンス管理モジュールに設定されている情報であり、その仮想環境上で管理しているアプリケーションのライセンス課金タイプ、仮想環境ライセンス管理モジュールが管理しているアプリケーション情報などである。サーバ902、サーバ903のような異なるサーバでは、この課金タイプが異なってもよい。また、情報1002は仮想化ソフトを通じ、実CPU数、仮想サーバ数、各仮想サーバに割り当てられているCPU数、バックアップサーバの有無などの情報である。これらの情報からライセンスカウントを計算することが可能である(1003)。実サーバ901のような仮想サーバをもたない実サーバ上にインストールされているアプリケーションは、それ自身がライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(907)。同様に、サーバ902、サーバ903のような仮想サーバをもつサーバ上でのライセンスをカウントし、このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(908)。図6(b)はライセンスサーバがもつ情報を示す。ライセンスサーバは、システム全体で同時利用可能なライセンス数の情報1101をもつ。また、現在利用されているライセンス数を把握している。アプリケーション又は仮想環境ライセンス管理モジュールから利用の可否が問い合わされると、送信されてきたライセンスカウント情報から、現在利用されているライセンス数を更新する。その値と予め設定されている同時利用可能ライセンス数とを比較、利用の可否の判断を行い(1102)、その結果をアプリケーション又は仮想環境ライセンス管理モジュールに戻す。
【0037】
図7は、仮想サーバ上でアプリケーションが起動されるときを示すフローチャートである。まず、アプリケーションが起動されると(S1201)、アプリケーションは仮想環境ライセンス管理モジュールに利用の可否を問い合わせる(S1202)。仮想環境ライセンス管理モジュールは、自己の課金タイプに応じたライセンスカウントを行う。以下、仮想環境ライセンス管理モジュールの課金タイプに応じたライセンスカウントを数える方法について詳細に説明する。
【0038】
まず、課金タイプを判断する(S1203)。仮想サーバ単位なら仮想サーバの数え方を判断する(S1204)。ライセンス数がアプリケーションをインストールした仮想サーバに割り当てられたCPU数分なら、仮想サーバと割当CPU数からライセンスをカウントする(S1206)。ライセンスが仮想サーバごとに割り当てられているなら、仮想サーバの数からカウントする(S1207)。ライセンス数が仮想サーバ数と実CPU数とを乗じた数ならば、仮想サーバと実CPU数とからカウントする(S1208)。また、課金タイプが物理サーバ単位なら、実CPU数からライセンス数をカウントする(S1205)。その結果をライセンスサーバに送信し、利用の可否を問い合わせる(S1209)。ライセンスサーバは、ライセンス数を受信し、現在利用されているライセンス数を更新する(S1210)。同時利用数に上限がある場合、カウント数の累積が同時利用可能数の上限を超えているかどうかを判断する(S1211)。その結果がNGの場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1212)。さらに、その結果をアプリケーションに返却する(S1213)。アプリケーションは起動に失敗する(S1214)。一方、カウント数の累積が同時利用可能数の上限を超えている場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1215)。さらに、その結果をアプリケーションに返却する(S1216)。アプリケーションは起動に成功する(S1217)。
【0039】
以上、説明したように本実施形態によれば、仮想サーバを含むネットワークシステムにおけるフローティングライセンスサーバにおいて使用することができる。なお、本実施形態では、仮想サーバはホストOS方式で行っていることとしたが、ハイパーバイザー方式の場合でも同様に適用可能である。
【0040】
<実施形態2>
図8は、仮想サーバの移動機能を利用したバックアップサーバ運用を想定した仮想サーバ(ホストOS方式)を含むネットワークにおけるライセンス管理システムを示したものである。本実施形態のライセンス管理システムは、ライセンスサーバ601でネットワーク全体を管理している。本番サーバ1301は、仮想サーバ1302、1303をたてた運用を行っている。バックアップサーバ1304でバックアップをとる。仮想サーバ1302、1303には、アプリケーション1306がインストールされているものとする。各仮想サーバを含むサーバ上に仮想環境ライセンス管理モジュール1307を配置する。仮想サーバ1302がバックアップサーバへ移動されると(1308)、ライセンスカウント数の状況が変更される可能性があるため、仮想環境ライセンス管理モジュールは、自己が管理しているアプリケーションのライセンス数を再カウントする。このモジュールが全ての仮想サーバ上で動作しているアプリケーションのライセンス数をカウントする。このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(1309)。
【0041】
図9は、仮想サーバの移動機能が使用されたときを示すフローチャートである。まず、仮想サーバが移動すると(S1401)、仮想環境ライセンス管理モジュールは、自己が管理しているアプリケーションのライセンス利用状況を再確認する(S1402)。仮想環境ライセンス管理モジュールは、自己の課金タイプに応じたライセンスカウントを行う。以下、ライセンス管理モジュールの課金タイプに応じたライセンスカウントを数える方法について詳細に説明する。まず、課金タイプを判断する(S1403)。仮想サーバ単位なら、仮想サーバの数え方を判断する(S1404)。ライセンス数がアプリケーションをインストールした仮想サーバに割り当てられたCPU数分なら、仮想サーバと割当CPU数からライセンスをカウントする(S1406)。ライセンスが仮想サーバごとに割り当てられているなら、仮想サーバの数からカウントする(S1407)。ライセンス数が仮想サーバ数と実CPU数とを乗じた数ならば、仮想サーバと割当CPU数とからカウントする(S1408)。また、課金タイプが物理サーバ単位なら、実CPU数からライセンス数をカウントする(S1405)。その結果をライセンスサーバに送信し、利用の可否を問い合わせる(S1409)。ライセンスサーバは、ライセンス数を受信し現在利用されているライセンス数を更新する(S1410)。同時利用数に上限がある場合、カウント数の累積が同時利用可能数の上限を超えているかどうかを判断する(S1411)。一方、カウント数の累積が同時利用可能数の上限を超えている場合、仮境ライセンス管理モジュールにその結果を返却され、仮想サーバの移動が行われる(S1412)。そして、移動の結果、ライセンスが足りなくなった旨の警告を表示する(S1413)。超えていない場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1414)。
【0042】
以上説明したように本実施形態によれば、仮想サーバの移動機能を実施したときでもライセンス管理を行うことが可能である。
【0043】
<実施形態3>
CPU数の時間配分による割り当て機能により、CPU割り当て数が変更された場合も、ライセンスカウント数の状況が変更される可能性がある。
【0044】
図10は、仮想サーバに割り当てているCPU割り当て数が変更されたときを示すフローチャートである。まず、CPU割り当て数が変更されると(S1501)、仮想環境ライセンス管理モジュールは、自己が管理しているアプリケーションのライセンス利用状況を再確認する(S1502)。S1503で、仮想環境ライセンス管理モジュールは、自己の課金タイプに応じたライセンスカウントを行う。以下、ライセンス管理モジュールの課金タイプに応じたライセンスカウントを数える方法について詳細に説明する。まず、課金タイプを判断する(S1503)。仮想サーバ単位なら、仮想サーバの数え方を判断する(S1504)。ライセンス数がアプリケーションをインストールした仮想サーバに割り当てられたCPU数分なら、仮想サーバと割当CPU数からライセンスをカウントする(S1506)。ライセンスが仮想サーバごとに割り当てられているなら、仮想サーバの数からカウントする(S1507)。ライセンス数が仮想サーバ数と実CPU数とを乗じた数ならば、仮想サーバと割当CPU数とからカウントする(S1508)。また、課金タイプが物理サーバ単位なら、実CPU数からライセンス数をカウントする(S1505)。その結果をライセンスサーバに送信し、利用の可否を問い合わせる(S1509)。ライセンスサーバは、ライセンス数を受信し、現在利用されているライセンス数を更新する(S1510)。同時利用数に上限がある場合、カウント数の累積が同時利用可能数の上限を超えているかどうかを判断する(S1511)。一方、カウント数の累積が同時利用可能数の上限を超えている場合、仮境ライセンス管理モジュールにその結果を返却され、仮想サーバのCPU数の割り当てが変更される(S1512)。そして、変更の結果、ライセンスが足りなくなった旨の警告を表示する(S1513)。上限を超えていない場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1514)。
【0045】
以上、説明したように本実施形態によれば、仮想サーバのCPU割り当て機能を施したときでもライセンス管理を行うことが可能である。
【0046】
<実施形態4>
図11は、実サーバと仮想サーバが混在したネットワークシステムにおけるライセンス管理システムを示す全体構成図である。本実施形態のライセンス管理システムは、実サーバで運用されているサーバ1601と、仮想サーバ1604をそれぞれ二つたてた運用を行っているサーバ1602及び1603とを備えている。実サーバ1601、仮想サーバ1604には、アプリケーション1605がインストールされているものとする。上記の実施形態1とは異なり、実サーバ及び各仮想サーバ両方に各クライアントサーバ上のライセンスを把握するライセンス管理モジュール1606を配置する。
【0047】
図12は、仮想サーバ及び実サーバ上でライセンス管理モジュールがもつ情報を示す図である。ライセンス管理モジュール1606は、仮想サーバ上では、図12(a)に示すような情報1701、1702をもつ。情報1701は予めライセンス管理モジュールに設定されている情報であり、その仮想環境上で管理しているアプリケーションのライセンス課金タイプ、ライセンス管理モジュールが管理しているアプリケーション情報などである。サーバ1602、1603のような異なるサーバでは、この課金タイプが異なってもよい。また、情報1701は仮想化ソフトを通じ、実CPU数、仮想サーバ数、各仮想サーバに割り当てられているCPU数、バックアップサーバの有無などの情報である。これらの情報からライセンスカウントを計算することが可能である(1703)。ライセンス管理モジュール1606は、実サーバ1601上では、図12(b)に示すような情報1801をもつ。情報1801は予め仮想環境ライセンス管理モジュールに設定されている情報であり、その仮想環境上で管理しているアプリケーションのライセンス課金タイプ、ライセンス管理モジュールが管理しているアプリケーション情報などである。このときの課金タイプとしては、CPU数又はCPUコア数に依存しているか、又はCPU数には依存していないなどが考えられる。ライセンス管理モジュールは予めCPU数又はコア数を把握しているので、課金タイプに応じてライセンス数をカウントする(1802)。このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(1607)。同様に、サーバ1602、1603のような仮想サーバをもつサーバ上でのライセンスをカウントし、このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(1608)。
【0048】
また、本発明の各工程は、ネットワーク又は各種記録媒体を介して取得したソフトウェア(コンピュータプログラム)をパーソナルコンピュータ等の処理装置(CPU、プロセッサ)にて実行することで実現することでもできる。
【産業上の利用可能性】
【0049】
本発明は、ライセンス管理システムをもつネットワークなどに利用可能である。
【符号の説明】
【0050】
601 ライセンスサーバ
602 端末装置
603 端末装置
604 端末装置
605 端末装置
606 端末装置
607 ネットワーク
【技術分野】
【0001】
本発明は、ライセンス管理システム、ライセンス管理方法及びコンピュータプログラムに関し、特に、仮想サーバの性質に対応したライセンス課金を行えるライセンス管理システム、ライセンス管理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
現在、以下に述べる理由から、サーバの仮想化を導入する企業が増えている。サーバを仮想化する最大の利点は、サーバ1台の中に多数の「仮想サーバ」を作ることで、CPUの処理能力を無駄なく利用できる点である。
【0003】
ここで、サーバの仮想化とは、1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術のことを言う。プロセッサやメモリ、ディスクをまとめて、仮想的に複数の領域に分割し、それぞれがあたかも1台であるかのように振る舞い、異なるOSやアプリケーションを同時に実行できる。物理的に複数のコンピュータを用意する場合に比べ、物理的資源の管理にかかる手間が省け、資源配分を需要に応じて柔軟に配分することができるという利点がある。
【0004】
しかし、仮想化にかかるオーバーヘッドの分、直接実行するよりも性能面で劣る。CPUの処理能力を無駄なく利用できるという利点を生かしたのが、多数のPCサーバを集約するサーバ統合である。企業内のPCサーバは、Webサイトから基幹業務システムまで増加の一途をたどっている。こうしたPCサーバの大半は、そのリソースを最大限に生かしていなかった。平均的なサーバ利用率は10%〜20%程度に留まっているという調査がある。つまり、サーバが本来発揮できるはずの処理能力の80%〜90%程度は使われないまま無駄になっているわけである。
【0005】
理由としては、運用の安定性向上の面、システム管理の単純明快さを確保する上からも、アプリケーションごと、用務ごとにハードウェアレベルで別サーバを用意することが多かったからである。一方、台数が増加することに起因する問題としては、管理対象が増加することによる管理負担の増大や、設置スペース/電力消費/発熱量の増大などが挙げられる。こういう状況を解決する手段として、仮想化技術が注目されてきた。仮想化技術を使えば、1台につき10〜20台の仮想サーバを収容でき、サーバ台数を劇的に削減できる。また、利用効率をほぼ100%に近いところまで引き上げることができ、運用コストも削減できる。
【0006】
2点目の理由としては、プロセッサのマルチコア化の進展が関連している。マルチコア化によって内部での並列演算性能は大幅に高速化されたが、一方でソフトウェアの対応がまだ追いついていないという問題がある。具体的には、従来のソフトウェアはマルチコアプロセッサに最適化された構造にはなっていないため、急激に並列度を増したプロセッサの演算リソースを使い切れないということが生じている。端的に言えば、マルチコアプロセッサで実行しても、コアを使い切ることができず、遊んでしまうコアが生じてしまう懸念がある。サーバの仮想化技術は、マルチコアプロセッサの演算性能を使いこなすための効果的な手段の一つと考えることもできる。
【0007】
3点目の理由としては、システムの寿命の観点からの理由が考えられる。使い慣れた業務システムがWindows(登録商標)NTのような旧型のOSで稼動しており、延命策を考えているケースは少なくない。サポートの切れた旧型ハードから新型サーバに乗せ換えたくても、旧型OSがサポート対象外のこともある。かといって、業務システムを最新のOSに乗せ換える作業は開発の手間がかかるし、移行は難しいことが多い。このようなケースで仮想化技術を使うと、新型のサーバの上で旧型OSを仮想サーバとして立てることにより動作させることができる。
【0008】
4点目の理由としては、耐障害性の観点からの理由が考えられる。サーバにソフトウェア的な障害が発生すると、マシンをダウンさせ再起動をする必要がある。これを速やかに行うためには、予め論理的に全く同じサーバを立ち上げておき、瞬時に切り替える必要がある。このような運用が、仮想化技術のサーバの移動機能を使えば、容易に実現可能である。
【0009】
5点目の理由としては、時間帯によってCPUの処理能力やメモリ容量を切り替えられるということが挙げられる。例えば、オンライン系サーバは午前中又は月曜日に負荷のピークが集中し、バッチ系サーバは夜間や土日に負荷のピークが集中することがよくある。仮想化技術を使えば、仮想マシン間で利用できるCPU数やCPUパワー、メモリ容量を変更できる。その設定は、曜日や月末といった状況に応じて細かく変更することも容易である。このような利用法は、物理的に異なるサーバでシステムを構築した場合と比べて、コストを大幅に削減できる。
【0010】
このような背景に伴い、仮想サーバ市場が急速に成長してきており、2011年にx86サーバの4割近くが仮想化されるという予測もある。また、多種多様な仮想化ソフト(VMWare、Hyper−V、Xen)が存在している。
【0011】
サーバの仮想化の方式には、以下の二種類がある。ホストOS方式とハイパーバイザー方式である。ホストOS方式は、仮想ハードウェアを設けずに、実際の周辺機器などをそのまま利用し、ホストOS上で複数のゲストOSを実行可能にする方式である。また、ハイパーバイザー方式は、仮想化を実現する仮想化ソフトと仮想ハードウェアのソフトウェアレイヤーをハードウェア上に実装し、その上に複数のOSをインストールして利用するものである。
【0012】
次に、仮想サーバにおける一般的なライセンス課金方法について説明する。一般にソフトウェアの課金は、「ユーザ数」に基づくものと、サーバの「CPU数(コア数)」に基づくものがある。「ユーザ数」による課金の場合は、ユーザ数を変えない限り、ソフトウェアを仮想サーバに移行させてもライセンスコストは同じになる。このようなネットワーク環境で使用するソフトウェアでは、不特定多数の人がアクセスできるためライセンスにより使用できるコンピュータや本数を制限しているものが多い。
【0013】
ソフトウェアライセンスの形態としては以下の2種類が主に使用されている。すなわち、特定のコンピュータのみで実行可能なライセンスであるノードロックライセンスとネットワーク上のどのコンピュータでも実行可能なライセンスであるフローティングライセンスである。フローティングライセンスについては、特許文献1に記載されている。フローティングライセンス方式は、複数のコンピュータをネットワークにより相互に通信可能に接続したシステムに適用される方式である。ノードロックライセンス方式は、各コンピュータのホストIDを用いてライセンスを管理する方式である。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2001−092550号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
しかしながら、従来のフローティングライセンス技術では、上記した仮想サーバを含む、仮想化特有のライセンス課金体系を考慮したものではなかった。また、仮想化の機能として、仮想サーバに割り当てるCPU数を昼と夜とで変更するといった設定をできるということが挙げられる。仮想サーバに割り当てたCPU数に依存したライセンス体系の場合は、このCPUの割り当てスケジューリングのことを考慮する必要がある。このような仮想化特有の技術により、複雑になった課金方法は、現状ソフトウェアベンダーとユーザ側で、課金体系を紳士協定的に遂行されていることが多い状況である。しかしながら、成長著しい仮想サーバ環境を考えると、ソフトウェアベンダーにとって、正確で、かつ多様な仮想化ソフトに対応できる汎用的なライセンス管理方法の必要性が増してくる。また、ユーザにとっても、ライセンス使用状況の把握の負担が増してきている。そこで、本発明は、ソフトウェアベンダー側、ユーザ側双方において、ライセンスを管理できるようにすることを目的とする。
【課題を解決するための手段】
【0016】
上記の課題を解決するため、本発明は、複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムであって、前記アプリケーションを管理する管理モジュールは、前記課金のタイプを判断する手段と、該判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、該カウントの結果を、前記ライセンスを許可するサーバに送信する手段と、を有し、該ライセンスを許可するサーバは、該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、該判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とする。
【発明の効果】
【0017】
本発明によれば、仮想サーバを含むシステム全体で、課金方法が混在したような環境、又は動的にライセンスが変わるような環境において、同時に利用可能なライセンスカウントが可能となり、システム全体のライセンス管理を行うことが可能となる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施形態の構成を示す図である。
【図2】仮想化方式を示す図である。
【図3】仮想サーバにおける課金方法を示す図である。
【図4】仮想サーバの移動機能を示す図である。
【図5】端末装置602−606に内蔵される仮想サーバの様子を示す図である。
【図6】仮想環境ライセンス管理モジュール及びライセンスサーバがもつ情報内容を示す図である。
【図7】仮想サーバ上でアプリケーションが起動されるときの処理を示すフローチャートである。
【図8】仮想サーバの移動機能を実行したときの全体構成を示す図である。
【図9】仮想サーバの移動機能を実行したときの処理を示すフローチャートである。
【図10】CPU割り当て数が変更されたときの処理を示すフローチャートである。
【図11】実サーバと仮想サーバが混在したライセンス管理システムの全体構成を示す図である。
【図12】仮想サーバ及び実サーバ上でライセンス管理モジュールがもつ情報を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための最良の形態について、添付図面等を参照して詳細に説明する。なお、以下の説明では、具体的な数値、構成、動作等を示して説明を行うが、これらは、適宜変更することができる。
【0020】
<実施形態1>
図1(a)は、本発明の一実施形態としてのネットワークにおけるライセンス管理システムの全体構成図である。図1(a)に示すように、ネットワークにおけるライセンス管理システムは、ユーザのサーバ各種端末装置602−606と、ライセンスサーバ601とを備えている。端末装置602−606とライセンスサーバ601とはネットワーク607を介して相互に通信可能に接続されている。なお、ネットワーク607は、例えばLANから構成されている。
【0021】
図1(b)は、ライセンス管理装置の一例であるライセンスサーバ601の構成を示す図である。図1(b)に示すように、ライセンスサーバ601は、ライセンスサーバ601全体を制御するCPU702を有している。CPU702が、記憶装置704に記憶されているプログラムに基づき動作することによって、例えば、後記するライセンスサーバ601に関係するフローチャートの各処理を実行する。CPU702には、バス701を介して、キーボードやマウス等からなる入力装置703と、記憶装置704と、表示装置705と、通信インタフェース装置706とが接続されている。記憶手段の一例である記憶装置704は、例えば、ROM、RAM、ハードディスク装置等からなる。記憶装置704は、端末装置602−606で使用可能なアプリケーションの種類、アプリケーションが使用できるライセンス数、残ライセンス数を記憶している。表示装置705は、CRT又はLCD等からなる。通信インタフェース装置706は、端末装置602−606との間でデータや信号の授受を可能にする。
【0022】
図1(c)は、情報処理装置の一例である端末装置602−606の構成を示す図である。図1(c)に示すように、端末装置602−606は、端末装置全体を制御するCPU802を有している。CPU802が、記憶装置804に記憶されているプログラムに基づき動作することによって、例えば、後記する端末装置に関係するフローチャートの各処理を実行する。CPU802には、バス801を介して、キーボードやマウス等からなる入力装置803と、記憶装置804と、表示装置805と、通信インタフェース装置806とが接続されている。記憶手段の一例である記憶装置804は、例えば、ROM、RAM、ハードディスク装置等からなる。記憶装置804は、端末装置602−606で実行されるアプリケーションコンポーネントや動作機能追加に関するプログラム(プラグイン)を記憶している。表示装置805は、CRT又はLCD等からなる。通信インタフェース装置806は、ライセンスサーバ801との間でデータや信号の授受を可能にする。
【0023】
ここで、サーバの仮想化方式について説明する。サーバの仮想化方式には、代表的なものとして、ホストOS方式とハイパーバイザー方式とがある。図2は、これらの仮想化方式を示す図である。
【0024】
図2(a)は、ホストOS方式を示す図である。ホストOS102のミドルウェアとして仮想化ソフト103が動作する。仮想化ソフトは、物理ハードウェアをもとに仮想ハードウェア104を作り、そこにOS105やアプリケーション106が導入できるようにするソフトウェアである。OS105には、ホストOSと同一又は異なるOSをゲストOSとしてインストールすることが可能である。ホストOS方式では、ハードウェアとの入出力にホストOSの機能を活用する。ただし、仮想マシンとハードウェアの間にフル機能のOSが介在するため、オーバーヘッドがやや大きくなる傾向にある。製品としては、VMWare Server、Virual Server、Virtual PCなどがある。
【0025】
図2(b)は、ハイパーバイザー方式を示す図である。上記のホストOS方式で利用していた仮想化レイヤーをホストOSの代わりに直接物理ハードウェア上に展開したようなイメージである。このハイパーバイザーは、一種のOSともいえるが、ユーザインタフェースやユーザコマンドなどの要素は省略し、ハードウェアの管理と仮想環境の管理に特化しているため、ごく小規模で簡略化されたものとなっている。製品としては、VMWare ESX、Xen Server、Hyper−Vなどがある。
【0026】
次に、仮想サーバにおける一般的なライセンス課金方法について説明する。上記したように、一般にソフトウェアの課金は、「ユーザ数」に基づくものと、サーバの「CPU数(コア数)」に基づくものがある。「ユーザ数」による課金の場合は、ユーザ数を変えない限り、ソフトウェアを仮想サーバに移行させてもライセンスコストは同じになる。仮想環境に移行させるときに注意が必要なのは、CPUやサーバ数に基づく課金体系の場合である。このとき、ソフトウェアは「仮想サーバ単位」又は「物理サーバ単位」で課金される。
【0027】
一方、コンピュータのネットワーク化が進み、分散した資源にネットワークを介してアクセスすることが可能になってきている。コンピュータで実行するソフトウェアに関してもネットワーク環境での使用を前提にしたものが多くなり、ネットワーク上のマシンであれば何処からでも実行できるようになってきている。このようなネットワーク環境で使用するソフトウェアでは、不特定多数の人がアクセスできるためライセンスにより使用できるコンピュータや本数を制限しているものが多い。
【0028】
ソフトウェアライセンスの形態としては特定のコンピュータのみで実行可能なライセンス(ノードロックライセンス)と、ネットワーク上のどのコンピュータでも実行可能なライセンス(フローティングライセンス)の2種類が主に使用されている。
【0029】
フローティングライセンス方式は、複数のコンピュータをネットワークにより相互に通信可能に接続したシステムに適用される方式である。そのコンピュータのうちサーバとなるものにライセンス確認プログラムが常駐しており、クライアントでアプリケーションを起動すると、そのアプリケーションがサーバのライセンス確認プログラムを呼び出す。呼び出されたライセンス確認プログラムは、クライアントのアプリケーションから送られてくる情報に基づいて動作環境をチェックし、適正であればクライアントのアプリケーションに動作許可を与える。したがって、この方式によりネットワークに接続された複数のコンピュータにおいて同時に同じアプリケーションを動作させるためには、同時に起動させるアプリケーションの数だけライセンスが必要となる。
【0030】
ノードロックライセンス方式は、各コンピュータのホストIDを用いてライセンスを管理する方式である。該当ホストで実行されるならば、ユーザ名やユーザ数に制限がない方式である。つまり、アプリケーションは、予め登録されたコンピュータのみで起動される。この方式により複数のコンピュータにおいて同時に同じアプリケーションを動作させるためには、そのコンピュータの数だけライセンスが必要となる。
【0031】
次に、仮想サーバで稼動する現在一般的になっているソフトウェアのライセンスについて説明する。
【0032】
図3は、仮想サーバにおける課金方法を示す図である。図3に示すような5CPU301をもつサーバPCに、仮想サーバ3台を立て(302)、それぞれのサーバ上にアプリケーション303をインストールした構成で考えると、以下のような課金タイプが一般的である。
1.実マシンのCPU数(コア数)→5ライセンス(304)
2.アプリケーションをインストールした仮想サーバに割り当てたCPU数(コア数)分→4ライセンス(305)
3.アプリケーションをインストールした仮想サーバの台数分→3ライセンス(306)
4.実マシンのCPU数(コア数)分×アプリケーションをインストールした仮想サーバの台数分。→15ライセンス(307)
【0033】
現状このような課金方法がアプリケーションによって異なるというのが実情であり、このことがユーザにとってライセンス体系が複雑でわかりにくいものとしている。また、仮想化特有の機能として、移動機能というものがある(VMWareのVMotion、XenのLiveMigrationなど)。移動機能を使うと、あるサーバ上で稼動中の仮想サーバをオンライン状態で別のサーバに移動できる。本番サーバに対してバックアップサーバを用意しておき、フェイルオーバーや計画停止などに利用される。この機能を利用する際に、ライセンスの考え方としてバックアップサーバの分も考慮に入れるのが一般的である。
【0034】
図4は、仮想サーバの移動機能を示す図である。例えば、図4(a)のように、本番サーバ401で、仮想サーバA402が2CPU403割り当てられており、そこで、アプリケーション404がインストールされているとする。移動先のバックアップサーバ405では割り当てるCPU数が3CPU406になっていたとすると、最大利用CPUの3ライセンスが必要となる。図4(b)のように、物理サーバ単位で課金されるアプリケーションでは、バックアップサーバにもライセンスが必要になるケースがある。この例の場合、実CPU501を四つもつ本番サーバ502に仮想サーバA503、仮想サーバB504が複数台あり、それらにアプリケーション505がインストールされているとする。そのうちの一つの仮想サーバAが、実CPU506を四つもつバックアップサーバ507に移動する場合を考える。その場合、移動先の仮想サーバA508のライセンスも必要となり、本番サーバの実CPU四つとバックアップサーバの実CPU四つとを併せて、8ライセンスが必要となる。
【0035】
図5は、上記のサーバ各種端末装置602−606に内蔵される仮想サーバの様子を示す図である。図5に示す仮想サーバは上記のホストOS方式である。各端末装置602−606には、実サーバで運用されているサーバ901と、仮想サーバ904をそれぞれ二つたてた運用を行っているサーバ902及び903とが内蔵されている。実サーバ901及び仮想サーバ904には、アプリケーション905がインストールされているものとする。各仮想サーバを含むサーバ上に仮想環境ライセンス管理モジュール906を配置する。このモジュールが全ての仮想サーバ上で動作しているアプリケーションのライセンス数をカウントする。そのために、仮想環境ライセンス管理モジュール906は、図6(a)に示すような情報1001、1002をもつ。
【0036】
図6は、仮想環境ライセンス管理モジュール及びライセンスサーバがもつ情報内容を示す図である。情報1001は予め仮想環境ライセンス管理モジュールに設定されている情報であり、その仮想環境上で管理しているアプリケーションのライセンス課金タイプ、仮想環境ライセンス管理モジュールが管理しているアプリケーション情報などである。サーバ902、サーバ903のような異なるサーバでは、この課金タイプが異なってもよい。また、情報1002は仮想化ソフトを通じ、実CPU数、仮想サーバ数、各仮想サーバに割り当てられているCPU数、バックアップサーバの有無などの情報である。これらの情報からライセンスカウントを計算することが可能である(1003)。実サーバ901のような仮想サーバをもたない実サーバ上にインストールされているアプリケーションは、それ自身がライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(907)。同様に、サーバ902、サーバ903のような仮想サーバをもつサーバ上でのライセンスをカウントし、このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(908)。図6(b)はライセンスサーバがもつ情報を示す。ライセンスサーバは、システム全体で同時利用可能なライセンス数の情報1101をもつ。また、現在利用されているライセンス数を把握している。アプリケーション又は仮想環境ライセンス管理モジュールから利用の可否が問い合わされると、送信されてきたライセンスカウント情報から、現在利用されているライセンス数を更新する。その値と予め設定されている同時利用可能ライセンス数とを比較、利用の可否の判断を行い(1102)、その結果をアプリケーション又は仮想環境ライセンス管理モジュールに戻す。
【0037】
図7は、仮想サーバ上でアプリケーションが起動されるときを示すフローチャートである。まず、アプリケーションが起動されると(S1201)、アプリケーションは仮想環境ライセンス管理モジュールに利用の可否を問い合わせる(S1202)。仮想環境ライセンス管理モジュールは、自己の課金タイプに応じたライセンスカウントを行う。以下、仮想環境ライセンス管理モジュールの課金タイプに応じたライセンスカウントを数える方法について詳細に説明する。
【0038】
まず、課金タイプを判断する(S1203)。仮想サーバ単位なら仮想サーバの数え方を判断する(S1204)。ライセンス数がアプリケーションをインストールした仮想サーバに割り当てられたCPU数分なら、仮想サーバと割当CPU数からライセンスをカウントする(S1206)。ライセンスが仮想サーバごとに割り当てられているなら、仮想サーバの数からカウントする(S1207)。ライセンス数が仮想サーバ数と実CPU数とを乗じた数ならば、仮想サーバと実CPU数とからカウントする(S1208)。また、課金タイプが物理サーバ単位なら、実CPU数からライセンス数をカウントする(S1205)。その結果をライセンスサーバに送信し、利用の可否を問い合わせる(S1209)。ライセンスサーバは、ライセンス数を受信し、現在利用されているライセンス数を更新する(S1210)。同時利用数に上限がある場合、カウント数の累積が同時利用可能数の上限を超えているかどうかを判断する(S1211)。その結果がNGの場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1212)。さらに、その結果をアプリケーションに返却する(S1213)。アプリケーションは起動に失敗する(S1214)。一方、カウント数の累積が同時利用可能数の上限を超えている場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1215)。さらに、その結果をアプリケーションに返却する(S1216)。アプリケーションは起動に成功する(S1217)。
【0039】
以上、説明したように本実施形態によれば、仮想サーバを含むネットワークシステムにおけるフローティングライセンスサーバにおいて使用することができる。なお、本実施形態では、仮想サーバはホストOS方式で行っていることとしたが、ハイパーバイザー方式の場合でも同様に適用可能である。
【0040】
<実施形態2>
図8は、仮想サーバの移動機能を利用したバックアップサーバ運用を想定した仮想サーバ(ホストOS方式)を含むネットワークにおけるライセンス管理システムを示したものである。本実施形態のライセンス管理システムは、ライセンスサーバ601でネットワーク全体を管理している。本番サーバ1301は、仮想サーバ1302、1303をたてた運用を行っている。バックアップサーバ1304でバックアップをとる。仮想サーバ1302、1303には、アプリケーション1306がインストールされているものとする。各仮想サーバを含むサーバ上に仮想環境ライセンス管理モジュール1307を配置する。仮想サーバ1302がバックアップサーバへ移動されると(1308)、ライセンスカウント数の状況が変更される可能性があるため、仮想環境ライセンス管理モジュールは、自己が管理しているアプリケーションのライセンス数を再カウントする。このモジュールが全ての仮想サーバ上で動作しているアプリケーションのライセンス数をカウントする。このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(1309)。
【0041】
図9は、仮想サーバの移動機能が使用されたときを示すフローチャートである。まず、仮想サーバが移動すると(S1401)、仮想環境ライセンス管理モジュールは、自己が管理しているアプリケーションのライセンス利用状況を再確認する(S1402)。仮想環境ライセンス管理モジュールは、自己の課金タイプに応じたライセンスカウントを行う。以下、ライセンス管理モジュールの課金タイプに応じたライセンスカウントを数える方法について詳細に説明する。まず、課金タイプを判断する(S1403)。仮想サーバ単位なら、仮想サーバの数え方を判断する(S1404)。ライセンス数がアプリケーションをインストールした仮想サーバに割り当てられたCPU数分なら、仮想サーバと割当CPU数からライセンスをカウントする(S1406)。ライセンスが仮想サーバごとに割り当てられているなら、仮想サーバの数からカウントする(S1407)。ライセンス数が仮想サーバ数と実CPU数とを乗じた数ならば、仮想サーバと割当CPU数とからカウントする(S1408)。また、課金タイプが物理サーバ単位なら、実CPU数からライセンス数をカウントする(S1405)。その結果をライセンスサーバに送信し、利用の可否を問い合わせる(S1409)。ライセンスサーバは、ライセンス数を受信し現在利用されているライセンス数を更新する(S1410)。同時利用数に上限がある場合、カウント数の累積が同時利用可能数の上限を超えているかどうかを判断する(S1411)。一方、カウント数の累積が同時利用可能数の上限を超えている場合、仮境ライセンス管理モジュールにその結果を返却され、仮想サーバの移動が行われる(S1412)。そして、移動の結果、ライセンスが足りなくなった旨の警告を表示する(S1413)。超えていない場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1414)。
【0042】
以上説明したように本実施形態によれば、仮想サーバの移動機能を実施したときでもライセンス管理を行うことが可能である。
【0043】
<実施形態3>
CPU数の時間配分による割り当て機能により、CPU割り当て数が変更された場合も、ライセンスカウント数の状況が変更される可能性がある。
【0044】
図10は、仮想サーバに割り当てているCPU割り当て数が変更されたときを示すフローチャートである。まず、CPU割り当て数が変更されると(S1501)、仮想環境ライセンス管理モジュールは、自己が管理しているアプリケーションのライセンス利用状況を再確認する(S1502)。S1503で、仮想環境ライセンス管理モジュールは、自己の課金タイプに応じたライセンスカウントを行う。以下、ライセンス管理モジュールの課金タイプに応じたライセンスカウントを数える方法について詳細に説明する。まず、課金タイプを判断する(S1503)。仮想サーバ単位なら、仮想サーバの数え方を判断する(S1504)。ライセンス数がアプリケーションをインストールした仮想サーバに割り当てられたCPU数分なら、仮想サーバと割当CPU数からライセンスをカウントする(S1506)。ライセンスが仮想サーバごとに割り当てられているなら、仮想サーバの数からカウントする(S1507)。ライセンス数が仮想サーバ数と実CPU数とを乗じた数ならば、仮想サーバと割当CPU数とからカウントする(S1508)。また、課金タイプが物理サーバ単位なら、実CPU数からライセンス数をカウントする(S1505)。その結果をライセンスサーバに送信し、利用の可否を問い合わせる(S1509)。ライセンスサーバは、ライセンス数を受信し、現在利用されているライセンス数を更新する(S1510)。同時利用数に上限がある場合、カウント数の累積が同時利用可能数の上限を超えているかどうかを判断する(S1511)。一方、カウント数の累積が同時利用可能数の上限を超えている場合、仮境ライセンス管理モジュールにその結果を返却され、仮想サーバのCPU数の割り当てが変更される(S1512)。そして、変更の結果、ライセンスが足りなくなった旨の警告を表示する(S1513)。上限を超えていない場合、仮想環境ライセンス管理モジュールにその結果を返却する(S1514)。
【0045】
以上、説明したように本実施形態によれば、仮想サーバのCPU割り当て機能を施したときでもライセンス管理を行うことが可能である。
【0046】
<実施形態4>
図11は、実サーバと仮想サーバが混在したネットワークシステムにおけるライセンス管理システムを示す全体構成図である。本実施形態のライセンス管理システムは、実サーバで運用されているサーバ1601と、仮想サーバ1604をそれぞれ二つたてた運用を行っているサーバ1602及び1603とを備えている。実サーバ1601、仮想サーバ1604には、アプリケーション1605がインストールされているものとする。上記の実施形態1とは異なり、実サーバ及び各仮想サーバ両方に各クライアントサーバ上のライセンスを把握するライセンス管理モジュール1606を配置する。
【0047】
図12は、仮想サーバ及び実サーバ上でライセンス管理モジュールがもつ情報を示す図である。ライセンス管理モジュール1606は、仮想サーバ上では、図12(a)に示すような情報1701、1702をもつ。情報1701は予めライセンス管理モジュールに設定されている情報であり、その仮想環境上で管理しているアプリケーションのライセンス課金タイプ、ライセンス管理モジュールが管理しているアプリケーション情報などである。サーバ1602、1603のような異なるサーバでは、この課金タイプが異なってもよい。また、情報1701は仮想化ソフトを通じ、実CPU数、仮想サーバ数、各仮想サーバに割り当てられているCPU数、バックアップサーバの有無などの情報である。これらの情報からライセンスカウントを計算することが可能である(1703)。ライセンス管理モジュール1606は、実サーバ1601上では、図12(b)に示すような情報1801をもつ。情報1801は予め仮想環境ライセンス管理モジュールに設定されている情報であり、その仮想環境上で管理しているアプリケーションのライセンス課金タイプ、ライセンス管理モジュールが管理しているアプリケーション情報などである。このときの課金タイプとしては、CPU数又はCPUコア数に依存しているか、又はCPU数には依存していないなどが考えられる。ライセンス管理モジュールは予めCPU数又はコア数を把握しているので、課金タイプに応じてライセンス数をカウントする(1802)。このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(1607)。同様に、サーバ1602、1603のような仮想サーバをもつサーバ上でのライセンスをカウントし、このライセンスカウント情報をシステム全体のライセンスをカウントするライセンスサーバに送信し、利用の可否を問い合わせる(1608)。
【0048】
また、本発明の各工程は、ネットワーク又は各種記録媒体を介して取得したソフトウェア(コンピュータプログラム)をパーソナルコンピュータ等の処理装置(CPU、プロセッサ)にて実行することで実現することでもできる。
【産業上の利用可能性】
【0049】
本発明は、ライセンス管理システムをもつネットワークなどに利用可能である。
【符号の説明】
【0050】
601 ライセンスサーバ
602 端末装置
603 端末装置
604 端末装置
605 端末装置
606 端末装置
607 ネットワーク
【特許請求の範囲】
【請求項1】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムであって、
前記アプリケーションを管理する管理モジュールは、前記課金のタイプを判断する手段と、
該判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、
該カウントの結果を、前記ライセンスを許可するサーバに送信する手段と、を有し、
該ライセンスを許可するサーバは、該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、
該判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とするライセンス管理システム。
【請求項2】
前記課金のタイプを判断する手段は、前記管理モジュールが実サーバである場合、CPU数に依存した前記課金のタイプか否かを判断し、前記ライセンスの数をカウントする手段は該判断に基づく課金のタイプに応じたライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項3】
前記管理モジュールが仮想サーバである場合、前記課金のタイプが前記仮想サーバ単位であり、前記ライセンスの数が前記仮想サーバに割り当てられたCPU数分なら、前記ライセンスの数をカウントする手段は前記仮想サーバと該割り当てられたCPU数からライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項4】
前記管理モジュールが仮想サーバである場合、前記課金のタイプが前記仮想サーバ単位であり、前記ライセンスが前記仮想サーバごとに割り当てられているなら、前記ライセンスの数をカウントする手段は前記仮想サーバの数から前記ライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項5】
前記管理モジュールが仮想サーバである場合、前記課金のタイプが前記仮想サーバ単位であり、前記ライセンスの数が前記仮想サーバの数と実CPUの数とを乗じた数ならば、前記ライセンスの数をカウントする手段は前記仮想サーバと前記実CPU数とから前記ライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項6】
前記仮想サーバが移動する場合、前記ライセンスの数をカウントする手段は、該移動した状態において前記ライセンスの数をカウントし、
前記移動の結果、前記ライセンスの数が足りなくなった場合、該足りない旨を警告する手段をさらに有することを特徴とする請求項1記載のライセンス管理システム。
【請求項7】
前記仮想サーバへのCPUの割り当ての数が変更された場合、前記ライセンスの数をカウントする手段は、該移動した状態において前記ライセンスの数をカウントし、
前記変更の結果、前記ライセンスの数が足りなくなった場合、該足りない旨を警告する手段をさらに有することを特徴とする請求項1記載のライセンス管理システム。
【請求項8】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムの前記アプリケーションを管理する管理モジュールであって、
前記課金のタイプを判断する手段と、
該判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、
該カウントの結果を、前記ライセンスを許可するサーバに送信する手段と、を有することを特徴とする管理モジュール。
【請求項9】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムの前記ライセンスを許可するサーバであって、
該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、
該判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とするサーバ。
【請求項10】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理方法であって、
前記アプリケーションを管理する管理モジュールは、前記課金のタイプを判断するステップと、
該判断に基づく課金のタイプに応じたライセンスの数をカウントするステップと、
該カウントの結果を、前記ライセンスを許可するサーバに送信するステップと、を有し、
該ライセンスを許可するサーバは、該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断するステップと、
該判断の結果に基づいてライセンスを許可するか否かを決めるステップと、を有することを特徴とするライセンス管理方法。
【請求項11】
請求項10記載のライセンス管理方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項1】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムであって、
前記アプリケーションを管理する管理モジュールは、前記課金のタイプを判断する手段と、
該判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、
該カウントの結果を、前記ライセンスを許可するサーバに送信する手段と、を有し、
該ライセンスを許可するサーバは、該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、
該判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とするライセンス管理システム。
【請求項2】
前記課金のタイプを判断する手段は、前記管理モジュールが実サーバである場合、CPU数に依存した前記課金のタイプか否かを判断し、前記ライセンスの数をカウントする手段は該判断に基づく課金のタイプに応じたライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項3】
前記管理モジュールが仮想サーバである場合、前記課金のタイプが前記仮想サーバ単位であり、前記ライセンスの数が前記仮想サーバに割り当てられたCPU数分なら、前記ライセンスの数をカウントする手段は前記仮想サーバと該割り当てられたCPU数からライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項4】
前記管理モジュールが仮想サーバである場合、前記課金のタイプが前記仮想サーバ単位であり、前記ライセンスが前記仮想サーバごとに割り当てられているなら、前記ライセンスの数をカウントする手段は前記仮想サーバの数から前記ライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項5】
前記管理モジュールが仮想サーバである場合、前記課金のタイプが前記仮想サーバ単位であり、前記ライセンスの数が前記仮想サーバの数と実CPUの数とを乗じた数ならば、前記ライセンスの数をカウントする手段は前記仮想サーバと前記実CPU数とから前記ライセンスの数をカウントすることを特徴とする請求項1記載のライセンス管理システム。
【請求項6】
前記仮想サーバが移動する場合、前記ライセンスの数をカウントする手段は、該移動した状態において前記ライセンスの数をカウントし、
前記移動の結果、前記ライセンスの数が足りなくなった場合、該足りない旨を警告する手段をさらに有することを特徴とする請求項1記載のライセンス管理システム。
【請求項7】
前記仮想サーバへのCPUの割り当ての数が変更された場合、前記ライセンスの数をカウントする手段は、該移動した状態において前記ライセンスの数をカウントし、
前記変更の結果、前記ライセンスの数が足りなくなった場合、該足りない旨を警告する手段をさらに有することを特徴とする請求項1記載のライセンス管理システム。
【請求項8】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムの前記アプリケーションを管理する管理モジュールであって、
前記課金のタイプを判断する手段と、
該判断に基づく課金のタイプに応じたライセンスの数をカウントする手段と、
該カウントの結果を、前記ライセンスを許可するサーバに送信する手段と、を有することを特徴とする管理モジュール。
【請求項9】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理システムの前記ライセンスを許可するサーバであって、
該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断する手段と、
該判断の結果に基づいてライセンスを許可するか否かを決める手段と、を有することを特徴とするサーバ。
【請求項10】
複数のコンピュータが接続され、アプリケーションが仮想サーバ上で起動される際に課金によってライセンスを許可するライセンス管理方法であって、
前記アプリケーションを管理する管理モジュールは、前記課金のタイプを判断するステップと、
該判断に基づく課金のタイプに応じたライセンスの数をカウントするステップと、
該カウントの結果を、前記ライセンスを許可するサーバに送信するステップと、を有し、
該ライセンスを許可するサーバは、該送信されたカウント数が同時に利用できるライセンス数を超えているか否かを判断するステップと、
該判断の結果に基づいてライセンスを許可するか否かを決めるステップと、を有することを特徴とするライセンス管理方法。
【請求項11】
請求項10記載のライセンス管理方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−267009(P2010−267009A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−116745(P2009−116745)
【出願日】平成21年5月13日(2009.5.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願日】平成21年5月13日(2009.5.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]