JP2014049057A - サーバ管理方法、情報処理装置、およびプログラム - Google Patents

サーバ管理方法、情報処理装置、およびプログラム Download PDF

Info

Publication number
JP2014049057A
JP2014049057A JP2012193696A JP2012193696A JP2014049057A JP 2014049057 A JP2014049057 A JP 2014049057A JP 2012193696 A JP2012193696 A JP 2012193696A JP 2012193696 A JP2012193696 A JP 2012193696A JP 2014049057 A JP2014049057 A JP 2014049057A
Authority
JP
Japan
Prior art keywords
server
network
virtual
service
license
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012193696A
Other languages
English (en)
Inventor
Masaki Hiraga
正樹 平賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012193696A priority Critical patent/JP2014049057A/ja
Publication of JP2014049057A publication Critical patent/JP2014049057A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】ライセンスの柔軟な使用を促進させる。
【解決手段】情報処理装置1は、判定手段1bと検出手段1cとを有する。判定手段1bは、端末装置4aがアクセス可能なネットワーク2a内のサーバのライセンスに基づいて、端末装置4aからのサービス要求で指定されたサービスを提供できるサーバ3a,3bが、ネットワーク2a内にあるか否かを判定する。検出手段1cは、ネットワーク2a内にサービスを提供できるサーバがない場合、ネットワーク2a以外のネットワーク2bから、サービスを提供可能なライセンスを有するサーバ3cを検出する。移動手段1dは、検出したサーバ3cをネットワーク2aに移動する。
【選択図】図1

Description

本発明は、サーバのライセンスを管理するサーバ管理方法、情報処理装置、およびプログラムに関する。
サーバには、サービスを利用するライセンスが設定される。そしてサーバは、ライセンスに定義された範囲内で、ユーザに対してそのサービスを提供する。ライセンスには、例えば同時にアクセスできるクライアント数の最大値が定義されている。
同時にアクセスできるクライアント数が制限される場合、サーバでは、サービスを利用しているクライアント数を管理する。そしてサーバは、同時に利用するクライアント数が、ライセンスで許容している最大クライアント数を超えない範囲で、アクセスしてきたクライアントに対してサービスの利用を許可する。
同時に利用しているクライアント数がライセンスで許容している最大クライアント数に達すると、以後、サーバは、端末装置からのサービスの利用要求(サービス要求)に対して、ライセンスに空きがないとしてエラーを応答する。このように端末装置からのサーバへの接続時にライセンスの空きの有無がチェックされ、ライセンスの空きがない場合はサービスの利用が拒否される。
なおクラウドコンピューティング環境などでは、同じサービスが複数のサーバで提供されている場合がある。同じサービスが複数のサーバで提供されているシステムでは、サーバごとにライセンスが設定される。このようなシステムにおいて、端末装置から任意のサーバにサービス要求を送信したとき、そのサーバのライセンスに空きがなければ、たとえ他のサーバのライセンスに余裕があったとしても、サービスを利用することができない。
そこで、例えばクライアントのアクセス要求をサーバへ振り分ける際に,各サーバに対応するライセンスとそのライセンスの使用状態をもとに、ライセンスの使用が可能なサーバを振り分け対象とする技術が提案されている。
なお、クラウドコンピューティングにおけるサーバは、仮想マシン(VM:Virtual Machine)上で実現することができる。VMとは、ソフトウェアなどのエミュレートにより実現された仮想的なコンピュータである。例えば、1つの物理的なサーバで複数のVMを生成し、各VMを個別のサーバとして機能させることができる。また、VMは、マイグレーションと呼ばれる機能により、物理的なサーバ間を移動させることが可能である。そこで、VMがそれぞれ動作するサーバを複数有するシステムにおいて、サーバへのVMの配置を適切に行うことにより、コスト削減を実現しつつ、VMの処理性能を保障する技術も考えられている。
特開2010−39661号公報 特開2011−198332号公報
ところで、ネットワークを介してサービスを提供する場合、セキュリティなどの問題により、端末装置からアクセス可能なネットワークが制限されている場合がある。このような場合、ユーザが使用している端末装置からアクセス可能なネットワーク内のサーバで提供されているアプリケーションからしか、サービスの提供を受けることができない。そのため、ユーザが使用している端末装置からアクセス可能なサーバのライセンスに空きがなければ、システム内の他のサーバにおいてライセンスに空きがあっても、ユーザがサービスの提供を受けることができない。
このように、端末装置からのアクセス可能なネットワークの制限などにより、ライセンスの空きがあるサーバがシステム内に存在するにもかかわらず、ライセンスに空きがないと判断され、サービス提供が拒否される事態が発生する。
1つの側面では、本発明は、ライセンスの柔軟な使用を促進させるサーバ管理方法、情報処理装置、およびプログラムを提供することを目的とする。
1つの案では、情報処理装置が、端末装置がアクセス可能な第1のネットワーク内のサーバのライセンスに基づいて、端末装置からのサービス要求で指定されたサービスを提供できるサーバが、第1のネットワーク内にあるか否かを判定し、第1のネットワーク内に該サービスを提供できるサーバがない場合、第1のネットワーク以外の第2のネットワークから、該サービスを提供可能なライセンスを有するサーバを検出し、検出したサーバを第1のネットワークに移動する、サーバ管理方法が提供される。
1態様によれば、ライセンスの柔軟な使用が促進される。
第1の実施の形態に係るシステムの一例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 物理サーバのハードウェアの一構成例を示す図である。 仮想環境を含めたシステム構成の一例を示す図である。 サービス要求の振り分け機能を示すブロック図である。 資源・ネットワーク対応テーブルのデータ構造の一例を示す図である。 ユーザ・ネットワーク対応テーブルのデータ構造の一例を示す図である。 アプリケーションライセンス定義テーブルのデータ構造の一例を示す図である。 ネットワーク別ライセンス管理テーブルのデータ構造の一例を示す図である。 サーバ別ライセンス管理テーブルのデータ構造の一例を示す図である。 仮想サーバ単位でライセンスが管理されるアプリケーションへのサービス要求の振り分け例を示す図である。 情報の更新状況の第1の例を示す図である。 仮想ネットワーク単位でライセンスが管理されているアプリケーションへのサービス要求の振り分け例を示す図である。 情報の更新状況の第2の例を示す図である。 通信接続処理の手順の一例を示すシーケンス図である。 接続チェック処理の手順の一例を示すフローチャートである。 サービス要求受付処理の手順の一例を示すフローチャートである。 サーバ接続処理の手順の一例を示すフローチャートである。 接続先候補選定処理の手順の一例を示すフローチャートである。 接続先選択処理の手順の一例を示すフローチャートである。 仮想サーバ調達処理の手順の一例を示すフローチャートの前半である。 仮想サーバ調達処理の手順の一例を示すフローチャートの後半である。 調達候補選定処理の手順を示すフローチャートである。 調達対象選択処理の手順の一例を示すフローチャートである。 仮想サーバ移動処理の手順の一例を示すフローチャートである。 アクセス制御処理の手順の一例を示すフローチャートの前半である。 アクセス制御処理の手順の一例を示すフローチャートの後半である。 シャットダウン処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、端末装置がアクセス可能なネットワーク内に、ライセンスの関係でサービスを提供できるサーバがない場合、別のネットワークから、サービスを提供可能なライセンスを有するサーバを調達するものである。
図1は、第1の実施の形態に係るシステムの一例を示す図である。情報処理装置1には、ネットワーク2a,2bを介して複数のサーバ3a,3b,3c,3dが接続されている。サーバ3a,3b,3c,3dは、情報処理装置1からの制御により、接続されるネットワークを変更可能である。例えばサーバ3a,3b,3c,3dが仮想マシン上で動作している場合、マイグレーション機能を利用して、仮想マシンごとサーバを移動させることができる。
また情報処理装置1には、端末装置4a,4bが接続されている。なお、端末装置4a,4bは、例えば一部のネットワークにのみアクセスできるように、アクセス制限が課されている。図1の例では、端末装置4aは、ネットワーク2aにのみアクセスできるものとする。
情報処理装置1は、端末装置4a,4bからのサービス要求の受け付け、そのサービス要求で指定されたサービスを提供するサーバと端末装置4a,4bとの通信接続を行う。そのために、情報処理装置1は、記憶手段1a、判定手段1b、検出手段1c、移動手段1d、および接続手段1eを有している。
記憶手段1aは、サーバ3a,3b,3c,3dのライセンスの使用状態に関する情報を記憶する。例えば記憶手段1aには、サーバの識別情報に対応付けて、サーバが属するネットワークの識別情報、ライセンスの使用数、ライセンスの空き数が格納されている。ライセンス使用数は、サーバに設定されたライセンスを適用してサービスの提供を受けている端末装置の数である。ライセンス空き数は、サーバに設定されたライセンスにおいて定義された使用数の最大値から、ライセンスの使用数を減算した値である。ライセンスの空き数が1以上のサーバであれば、新たな端末装置にサービスを提供することができる。
判定手段1bは、端末装置4aがアクセス可能なネットワーク2a内のサーバのライセンスに基づいて、端末装置4aからのサービス要求で指定されたサービスを提供できるサーバが、ネットワーク2a内にあるか否かを判定する。サービスを提供できるサーバがあるか否かについて、例えば、ライセンスの管理単位に応じた判定を行うことができる。
例えば判定手段1bは、サーバ単位でライセンスを管理する場合には、まず、サービス要求で指定されたサービスを提供するソフトウェアが実装されているサーバを検出する。次に判定手段1bは、検出したサーバのうち、そのサービスのライセンスに定義された最大クライアント数よりも、そのサービスの使用のために接続している端末装置数が少ないサーバを抽出する。そして、判定手段1bは、抽出したサーバを、サービス要求で指定されたサービスを提供できるサーバと判定する。
またネットワーク単位でライセンスが管理される場合もある。ネットワーク単位でライセンスが管理される場合、ネットワーク内で同時にサービスを利用できるクライアント数の最大値が決められており、サーバごとの最大クライアント数は決められていない。ネットワーク単位で管理されるライセンスは、フローティングライセンスと呼ばれる。判定手段1bは、ネットワーク単位でライセンスを管理する場合には、サービス要求で指定されたサービスを提供するソフトウェアが実装された、ネットワーク内の1以上のサーバを検出する。次に判定手段1bは、ライセンスに定義された最大クライアント数よりも、検出した1以上のサーバにおいてそのサービスの使用のために接続している端末装置数が少ないかどうかを確認する。そして判定手段1bは、最大クライアント数の合計よりも、接続している端末装置数の合計の方が少ない場合、検出した1以上のサーバのいずれかにおいて、サービス要求で指定されたサービスを提供できると判定する。
検出手段1cは、ネットワーク2a内に、サービス要求で指定されたサービスを提供できるサーバがない場合、ネットワーク2a以外のネットワーク2bから、そのサービスを提供可能なライセンスを有するサーバを検出する。例えば検出手段1cは、いずれのサービスも利用されておらず、端末装置4aから要求されたサービスを提供可能なライセンスを有するサーバを検出する。また検出手段1cは、例えば、サービスの提供用にコネクションが使用されていないサーバについて、いずれのサービスも利用されていないと判断することができる。
移動手段1dは、検出手段1cが検出したサーバを、端末装置4aがアクセス可能なネットワークに移動する。
接続手段1eは、端末装置4aがサービス要求を出力した時点で、ネットワーク2a内に、端末装置4aにサービスを提供できるサーバがある場合、そのサーバと端末装置4aとの通信を接続する。また接続手段1eは、端末装置4aがサービス要求を出力した時点で、ネットワーク2a内にサービスを提供できるサーバがない場合、ネットワーク2bからネットワーク2aに移動したサーバと端末装置4aとの通信を接続する。例えば接続手段1eは、サービス要求を出力した端末装置がアクセス可能なネットワーク内に、サービス要求で指定されたサービスを提供できるサーバが複数ある場合、それらのサーバのうち負荷の少ないサーバと端末装置との通信を接続する。なお接続手段1eは、例えば端末装置との間で接続されたコネクション数が少ないサーバほど、負荷が少ないと判定する。
このようなシステムにおいて、端末装置4aからサービス要求が出力された場合の処理について説明する。なお、端末装置4aがサービス要求を出力する以前は、サーバ3a,3bはネットワーク2aに接続されており、サーバ3c,3dはネットワーク2bに接続されているものとする。
端末装置4aからサービス要求が出力されると、判定手段1bにより、端末装置4aからのサービス要求で指定されたサービスを提供できるサーバが、ネットワーク2a内にあるか否かが判定される。例えば判定手段1bは、記憶手段1aを参照し、端末装置4aがアクセス可能なネットワーク2a内のサーバのライセンスに関する使用状況を把握する。図1の例では、ネットワーク2a(ネットワークの識別情報「#1」)に接続されたサーバ3a,3bは、いずれもライセンスの空き数が「0」である。そのため、ネットワーク2a内にサービスを提供できるサーバがないと判定される。
ネットワーク2a内にサービスを提供できるサーバがない場合、検出手段1cにより、ネットワーク2a以外のネットワーク2bから、サービスを提供可能なライセンスを有するサーバが検出される。例えば検出手段1cは、記憶手段1aを参照し、ネットワーク2b(ネットワークの識別情報「#2」)内のサーバ3c,3dのうち、ライセンスの空き数が「1」以上であり、ライセンスの使用数が「0」のサーバを検出する。すなわち、サーバのライセンスの使用数が「0」であれば、現時点で、そのサーバからサービスの提供を受けている端末装置はない。そのため、ライセンスの使用数が「0」のサーバがネットワーク2bから除外されても、提供中のサービスが止まることはない。図1の例では、サーバ3c(サーバの識別情報「#3」)のライセンスの使用数が「0」、空き数が「10」であり、このサーバ3cが検出される。
検出されたサーバ3cは、移動手段1dにより、ネットワーク2bからネットワーク2aに移動される。移動手段1dは、例えばマイグレーションの技術により、サーバ3cを、ネットワーク2bからネットワーク2aに移動する。その後、接続手段1eにより、ネットワーク2aに移動したサーバ3cと、端末装置4aとの通信が接続される。
このようにして、端末装置4aがアクセス可能なネットワーク2a内のサーバにライセンスの空きがなくても、他のネットワーク2bから、ライセンスの空きがあるサーバ3cを調達することができる。これにより、ライセンスの柔軟な使用が促進される。その結果、端末装置4aによるサービス要求に対して、ライセンス枯渇によりサービス提供が拒否されるような事態の発生が抑止される。
なお、判定手段1b、検出手段1c、移動手段1d、および接続手段1eは、例えば情報処理装置1が有するプロセッサにより実現することができる。また、記憶手段1aは、例えば情報処理装置1が有するRAM(Random Access Memory)により実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、仮想マシン(VM)上で動作するサーバアプリケーションソフトウェア(以下、単にアプリケーションと呼ぶ)によってサービスを提供するシステムにおいて、アプリケーションを利用するライセンスを管理するものである。以下、アプリケーションを実行する仮想マシンを、仮想サーバと呼ぶ。
図2は、第2の実施の形態のシステム構成例を示す図である。管理ネットワーク41には、複数の物理サーバ100,200,300が接続されている。
物理サーバ100は、端末装置21,22,・・・から物理サーバ200,300へのアクセスを管理するコンピュータである。例えば物理サーバ100は、物理サーバ200,300内の仮想サーバが提供するサービスについてのユーザのライセンスを管理する。ライセンスは、例えばクライアントアクセスライセンス(CAL:Client Access License)と呼ばれるライセンスである。CALでは、仮想サーバに同時にアクセスできる端末装置(クライアント)の最大数(最大クライアント数)が定義されている。そして物理サーバ100は、端末装置からサービスの利用要求(サービス要求)があると、そのサービスについての空きライセンスを有する仮想サーバに、サービス要求を転送する。空きライセンスを有する仮想サーバが複数ある場合、物理サーバ100は、負荷の少ない仮想サーバに、サービスのサービス要求を送信する。仮想サーバの負荷は、例えばサービス提供のために仮想サーバに接続されたコネクション数によって判断される。なお、物理サーバ100には、ネットワーク機器30を介して端末装置21,22,・・・が接続されている。
ネットワーク機器30は、端末装置21,22,・・・と物理サーバ100との通信を中継する。またネットワーク機器30は、端末装置21,22,・・・のセキュリティチェックを行う。例えばネットワーク機器30は、予め定義されたセキュリティポリシーに従って、端末装置21,22,・・・のセキュリティパッチやアンチウイルスパターンの対応状況をチェックする。そして、ネットワーク機器30は、セキュリティパッチやアンチウイルスパターンに関する条件を満たした端末装置からの要求であれば、その要求を物理サーバに転送する。
端末装置21,22,・・・は、ユーザが使用するコンピュータである。ユーザは、端末装置21,22,・・・を使用して、物理サーバ200,300からサービスの提供を受けることができる。
物理サーバ200,300は、仮想サーバを実現するコンピュータである。例えば物理サーバ200,300では、ホストOS(Operating System)と呼ばれるOSが実行される。ホストOSは、仮想マシンのプログラムを実行するOSである。なおホストOSは、ハイパーバイザと呼ばれることもある。ホストOS上で、仮想マシンが構築される。仮想マシンは、ソフトウェアによって仮想的に構築されたコンピュータである。ホストOSは、複数の仮想マシンを構築することができる。ホストOS上で構築された仮想マシンは、個別のOS(ゲストOS)を実行する。仮想マシンで実行されたOS上で、アプリケーションを実行することで、その仮想マシンが仮想サーバとして機能する。
なお物理サーバ200,300には、ローカルの端末装置を接続することができる。図2の例では、物理サーバ300に端末装置42が接続されている。ユーザは、端末装置42を用いて、ネットワーク機器30や物理サーバ100を経由せずに、物理サーバ300で提供されるサービスを利用することもできる。
図3は、物理サーバのハードウェアの一構成例を示す図である。物理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、物理サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108,108aがある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、物理サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をプロセッサ101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、物理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置15やメモリリーダライタ16を接続することができる。メモリ装置15は、機器接続インタフェース107との通信機能を実装した記録媒体である。メモリリーダライタ16は、メモリカード17へのデータの書き込み、またはメモリカード17からのデータの読み出しを行う装置である。メモリカード17は、カード型の記録媒体である。
ネットワークインタフェース108は、管理ネットワーク41に接続されている。ネットワークインタフェース108は、管理ネットワーク41を介して、他の物理サーバ200,300との間でデータの送受信を行う。
ネットワークインタフェース108aは、ネットワーク機器30に接続されている。ネットワークインタフェース108aは、ネットワーク機器30を介して、端末装置21,22,・・・との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置1も、図3に示した物理サーバ100と同様のハードウェアにより実現することができる。
物理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。物理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、物理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また物理サーバ100に実行させるプログラムを、光ディスク14、メモリ装置15、メモリカード17などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
このようなシステムにおいて、物理サーバ200,300は、内部で仮想的なコンピュータネットワークを構築する。物理サーバ100は、物理サーバ200,300内に構築された仮想的なコンピュータネットワークとの間で通信を行うこととなる。
図4は、仮想環境を含めたシステム構成の一例を示す図である。物理サーバ200内には、仮想ネットワーク210と仮想サーバ220,230,・・・とが構築されている。仮想サーバ220,230,・・・は、仮想ネットワーク210を介して物理サーバ100に接続される。物理サーバ300内には、仮想ネットワーク310と仮想サーバ320,330,・・・とが構築されている。仮想サーバ320,330,・・・は、仮想ネットワーク310を介して、物理サーバ100や端末装置42に接続される。第2の実施の形態では、図4に示したシステムにおける仮想サーバ220,230,320,330,・・・がサービスを提供する。
次に物理サーバ100と各仮想サーバ220,230,320,330,・・・とが連携して実現する、サービス要求の仮想サーバへの振り分け機能について説明する。
図5は、サービス要求の振り分け機能を示すブロック図である。物理サーバ100は、記憶部110、サービス要求受付部120、サーバ接続部130、接続先候補選定部131、接続先選択部132、仮想サーバ調達部140、調達候補選定部141、調達対象選択部142、および仮想サーバ管理部150を有する。
記憶部110は、サービス要求の振り分けに用いる情報を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、記憶部110として使用される。記憶部110には、資源・ネットワーク対応テーブル111、ユーザ・ネットワーク対応テーブル112、アプリケーションライセンス定義テーブル113、ネットワーク別ライセンス管理テーブル114、およびサーバ別ライセンス管理テーブル115が格納されている。
資源・ネットワーク対応テーブル111には、ユーザが使用するハードウェア資源と、その資源で使用可能な仮想ネットワークとの対応関係が登録されている。ユーザ・ネットワーク対応テーブル112には、ユーザの識別情報(ユーザID)と、そのユーザがアクセス可能な仮想ネットワークとの対応関係が登録されている。アプリケーションライセンス定義テーブル113は、サービスを提供するアプリケーションを利用するライセンスの管理単位を定義する情報が登録されている。ライセンスの管理単位は、例えば仮想サーバ単位、仮想ネットワーク単位などである。ネットワーク別ライセンス管理テーブル114は、仮想ネットワークごとに、ライセンスの使用状況を示す情報が登録されている。サーバ別ライセンス管理テーブル115には、仮想サーバごとに、その仮想サーバに実装されているアプリケーションのライセンスの使用状況を示す情報が登録されている。
サービス要求受付部120は、端末装置21,22,・・・から、仮想サーバ220,230,320,330,・・・で提供されているサービスの利用要求(サービス要求)を受け付ける。サービス要求受付部120は、受け付けたサービス要求を、サーバ接続部130に送信する。
サーバ接続部130は、サービス要求に応じて、指定されたサービスを提供している仮想サーバに、サービス要求を出力した端末装置を接続する。なおサーバ接続部130は、接続先候補選定部131と接続先選択部132との連携処理により選択された仮想サーバを、サービス要求を出力した端末装置の接続先とする。またサーバ接続部130は、サービス要求を出力した端末装置にサービスを提供できる仮想サーバがない場合、仮想サーバ調達部140に、サービスを提供できる仮想サーバの調達を依頼する。ここで仮想サーバの調達とは、他の仮想ネットワークで稼働している仮想サーバから、ユーザがアクセス可能な仮想ネットワーク内に移動する仮想サーバを特定することである。仮想サーバを調達後、サーバ接続部130は、仮想サーバ調達部140が調達した仮想サーバを、サービス要求を出力した端末装置の接続先とする。
接続先候補選定部131は、サーバ接続部130からの要求により、サービス要求を出力した端末装置の接続先の候補とする仮想サーバを選定する。例えば接続先候補選定部131は、サービス要求で指定されている種別のサービスを提供しており、そのサービスを利用している端末装置の数(クライアント数)が、ライセンスの定義における最大クライアント数未満である仮想サーバを、接続先候補に選定する。
接続先選択部132は、接続先候補選定部131で接続先に選定された仮想サーバのうち、負荷の少ない仮想サーバを接続先に選択する。例えば接続先選択部132は、サービスの提供に使用されているコネクション数が少ない仮想サーバほど、負荷が少ないと判断する。接続先選択部132は、選択した仮想サーバを、サーバ接続部130に通知する。
仮想サーバ調達部140は、サービス要求で要求されているサービスを提供できる仮想サーバを調達する。例えば仮想サーバ調達部140は、調達候補選定部141と調達対象選択部142との連携処理により選択された仮想サーバを調達する。そして仮想サーバ調達部140は、調達する仮想サーバの、サービス要求を出力した端末装置のユーザが使用可能な仮想ネットワークへの移動を、仮想サーバ管理部150に指示する。
調達候補選定部141は、仮想サーバ調達部140からの要求により、調達候補とする仮想サーバを選定する。例えば調達候補選定部141は、サービス要求で指定されている種別のサービスを提供しており、そのサービスを利用している端末装置の数が、ライセンスの定義における最大クライアント数未満である仮想サーバを、調達候補に選定する。
調達対象選択部142は、調達候補選定部141で調達候補に選定された仮想サーバのうち、負荷の少ない仮想サーバを接続先に選択する。例えば調達対象選択部142は、使用されているコネクション数が少ない仮想サーバほど、負荷が少ないと判断する。調達対象選択部142は、サービス要求を出力した端末装置のユーザがアクセス可能な仮想ネットワークへの、選択した仮想サーバの移動を、仮想サーバ管理部150に指示する。
仮想サーバ管理部150は、仮想サーバ220,230,320,330,・・・を管理する。例えば仮想サーバ管理部150は、仮想サーバ220,230,320,330,・・・からライセンスの使用数などの情報を取得し、取得した情報を記憶部110に格納する。また仮想サーバ管理部150は、仮想マシンにサーバアプリケーションをデプロイする。デプロイとは、アプリケーションなどを利用可能にすることである。また仮想サーバ管理部150は、仮想マシンからサーバアプリケーションをアンデプロイすることもできる。アンデプロイとは、アプリケーションなどを利用できない状態にすることである。仮想サーバ管理部150は、デプロイとアンデプロイとの機能を用い、仮想サーバのライブマイグレーションを行うこともできる。ライブマイグレーションは、動作中の仮想マシンで実行されているアプリケーションなどのソフトウェアを、停止させずに別の仮想マシンに移動させる技術である。例えば仮想サーバ管理部150は、仮想サーバ調達部140からの指示に従って、サービス要求を出力した端末装置のユーザがアクセス可能な仮想ネットワークへ、他の仮想ネットワーク内の仮想サーバを、ライブマイグレーションにより移動させる。
仮想サーバ220は、アクセス制御部221とシャットダウン部222とを有している。アクセス制御部221は、例えば、仮想サーバ220で提供しているサービスに関するライセンスを管理する。そしてアクセス制御部221は、物理サーバ100の仮想サーバ管理部150に、仮想サーバ220で提供しているサービスに関するライセンスの使用数を通知する。ライセンスの使用数とは、そのライセンスに基づいて、サービス利用のためにコネクションを接続している端末装置数である。シャットダウン部222は、仮想サーバ220のシャットダウンを行う。シャットダウンとは、システムを所定の手順に従って停止させる処理である。なおアクセス制御部221とシャットダウン部222とは、仮想サーバ管理部150を介して、記憶部110内の情報を更新することができる。
仮想サーバ320も、仮想サーバ220と同様に、アクセス制御部321とシャットダウン部322とを有している。アクセス制御部321とシャットダウン部322とは、それぞれ仮想サーバ220の同名の要素と同じ機能を有する。なお図5では省略しているが、他の仮想サーバ230,330,・・・も、仮想サーバ220,320と同様の機能を有する。
なお、図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、記憶部110に格納されている情報について詳細に説明する。
図6は、資源・ネットワーク対応テーブルのデータ構造の一例を示す図である。資源・ネットワーク対応テーブル111には、MAC(Media Access Control)アドレス、所属、仮想ネットワーク名の欄が設けられている。
MACアドレスの欄には、端末装置21,22,・・・それぞれのMACアドレスが設定される。MACアドレスとは、ネットワーク上で端末装置を一意に識別するための識別情報である。所属の欄には、組織内での、端末装置を使用しているユーザが所属する部門の名称が設定される。仮想ネットワーク名の欄には、端末装置を使用しているユーザに対してアクセスが許容される仮想ネットワークの名称が設定される。
端末装置からサービス要求が出力されたとき、この資源・ネットワーク対応テーブル111を参照することで、その端末装置からアクセス可能な仮想ネットワークを確定することができる。
図7は、ユーザ・ネットワーク対応テーブルのデータ構造の一例を示す図である。ユーザ・ネットワーク対応テーブル112には、ユーザID、パスワード、所属、および仮想ネットワーク名の欄が設けられている。
ユーザIDの欄には、サービスを利用するユーザの識別情報(ユーザID)が設定される。パスワードの欄には、ユーザのパスワードが設定される。所属の欄には、ユーザが所属する部門の名称が設定される。仮想ネットワーク名の欄には、ユーザに対してアクセスが許容される仮想ネットワークの名称が設定される。
このユーザ・ネットワーク対応テーブル112を参照して、ユーザ認証を行うことができる。またユーザ認証に成功したときに、このユーザ・ネットワーク対応テーブル112を参照することで、そのユーザからアクセス可能な仮想ネットワークを確定することができる。
図8は、アプリケーションライセンス定義テーブルのデータ構造の一例を示す図である。アプリケーションライセンス定義テーブル113には、番号(No.)、アプリケーション名、およびライセンス管理単位の欄が設けられている。
番号の欄には、アプリケーションの識別番号が設定される。アプリケーション名の欄には、アプリケーションの名称が設定される。ライセンス管理単位の欄には、アプリケーションのライセンスの管理単位が設定される。ライセンスの管理単位は、例えば仮想サーバまたは仮想ネットワークである。仮想サーバ単位でライセンスを管理する場合、アプリケーションのライセンスには、そのアプリケーションが実行された仮想サーバを利用してサービスを提供可能な最大クライアント数が定義される。仮想ネットワーク単位でライセンスを管理する場合、アプリケーションのライセンスには、仮想ネットワークを経由してそのアプリケーションによるサービスを同時に提供可能な最大クライアント数が定義される。例えばライセンス管理単位が仮想ネットワークの場合、ライセンス管理単位の欄に「1」が設定される。またライセンス管理単位が仮想サーバの場合、ライセンス管理単位の欄に「2」が設定される。
図8に示すように、第2の実施の形態では、RDB(Relational DataBase)のアプリケーションについては、仮想ネットワーク単位でライセンスが管理される。また業務やニュース配信のアプリケーションについては、仮想サーバ単位でライセンスが管理される。
図9は、ネットワーク別ライセンス管理テーブルのデータ構造の一例を示す図である。ネットワーク別ライセンス管理テーブル114では、行方向のラベルとして、仮想ネットワーク名が設定され、列方向のラベルとして、アプリケーション名と使用状況とが設定されている。使用状況には、使用数、空き数、および合計の項目がある。使用数は、アプリケーションからサービスの提供を受けている端末装置の数である。空き数は、アプリケーションのライセンスに定義された最大クライアント数から、使用数を減算した値である。合計は、使用数と空き数との合計である。合計は、ライセンスに定義された最大クライアント数と同じ値となる。ネットワーク別ライセンス管理テーブル114の、行と列との交差するフィールドに、行に対応する仮想ネットワークにおける、列に対応するアプリケーションの使用状況を示す値が設定される。
なおサーバ単位でライセンスが管理される場合、各仮想ネットワークのライセンスの合計は、その仮想ネットワークに属する仮想サーバそれぞれのライセンスに定義された最大クライアント数の合計である。またネットワーク単位でライセンスが管理される場合、アプリケーションのライセンスには、仮想ネットワークに属する仮想サーバで同時にサービスの提供を受けることができる端末装置の最大数(最大クライアント数)が定義されている。この最大クライアント数が、仮想ネットワークの該当アプリケーションのライセンスの合計である。
図10は、サーバ別ライセンス管理テーブルのデータ構造の一例を示す図である。サーバ別ライセンス管理テーブル115には、ID、仮想ネットワーク名、実装アプリケーション名、およびライセンスの欄が設けられている。
IDの欄には、仮想サーバを実現している仮想マシンの識別子(ID)が設定される。仮想ネットワーク名の欄には、仮想サーバが接続されている仮想ネットワークの名称が設定される。実装アプリケーションの欄には、仮想サーバに実装されているアプリケーションの名称が設定される。ライセンスの欄には、アプリケーションに設定されたライセンスの使用状況が設定される。ライセンスの使用状況には、使用数、空き数、合計が含まれる。
図10に示すように、1つの仮想サーバには、1または複数のアプリケーションが実装される。例えばID「VM−0004」、「VM−0006」の仮想マシンで実現された仮想サーバには、「RDB」と「ニュース配信」のアプリケーションが実装されている。
なお、「RDB」アプリケーションのようにネットワーク単位で管理されるアプリケーションについては、仮想サーバ単位では使用数が管理されていればよい。換言すると、ネットワーク単位で管理されるアプリケーションについては、仮想サーバごとの空き数や合計を管理しなくてもよい。
以上のような構成のシステムにより、端末装置からのサービス要求が出力されると、ライセンスの空き状況やコネクションの使用状況に応じてサービスを提供する仮想サーバが決定される。そして、決定された仮想サーバと端末装置とのコネクションが確立される。
図11は、仮想サーバ単位でライセンスが管理されるアプリケーションへのサービス要求の振り分け例を示す図である。ユーザは、端末装置21を用いて、利用するサービスを提供しているアプリケーションを選択する(ステップS11)。例えば、ユーザが端末装置21を操作し、物理サーバ100にアクセスすると、物理サーバ100は端末装置21に画面情報を送信し、メニュー43を表示させる。メニュー43には、システム内のいずれかの仮想サーバに実装されているアプリケーションのリストが表示されている。ユーザは、端末装置21を操作し、メニュー43内のアプリケーションの1つを選択する。すると、端末装置21から物理サーバ100に、選択されたアプリケーションを使用するためのサービス要求が送信される。
サービス要求を受信した物理サーバ100は、端末装置21がアクセス可能な仮想ネットワークで実行されている仮想サーバの中から、サービス要求で指定されたアプリケーションを実行している仮想サーバを抽出する(ステップS12)。例えば、端末装置21は、「業務ネットワークA」という名称の仮想ネットワーク310にアクセス可能であるものとする。そしてユーザによって「業務」アプリケーションが選択された場合、「業務」アプリケーションを実装している仮想サーバ320,330,340が抽出される。
アプリケーションライセンス定義テーブル113(図8参照)によれば、「業務」アプリケーションは、仮想サーバ単位でライセンスが管理される。そこで物理サーバ100は、サーバ別ライセンス管理テーブル115を参照し、抽出した仮想サーバ320,330,340の中から、ライセンスの空きがある仮想サーバを、選択候補として選定する(ステップS13)。例えば図11の例では、仮想サーバ320の「業務」アプリケーションのライセンスの空き数は「50」である。また仮想サーバ330の「業務」アプリケーションのライセンスの空き数は「100」である。仮想サーバ340の「業務」アプリケーションのライセンスの空き数は「0」である。すると仮想サーバ320,330においてライセンスの空きがあるため、それらの仮想サーバ320,330が選択候補として選定される。
次に物理サーバ100は、選択候補の仮想サーバ320,330の中で、コネクション数が最小の仮想サーバを選択する(ステップS14)。図11の例では、仮想サーバ320のコネクション数は「0」、仮想サーバ330のコネクション数は「20」である。従って、コネクション数が少ない方の仮想サーバ320が選択される。
そして端末装置21は、仮想サーバ320との間でコネクションが接続される。その後、端末装置21から仮想サーバ320に対し、サービス利用のためのログインアクセスが行われる(ステップS15)。ログインアクセスでは、例えばアプリケーション利用のための認証情報(例えばユーザIDとパスワード)などが、端末装置21から仮想サーバ320に送信される。
端末装置21と仮想サーバ320との間のコネクションが接続されると、記憶部110内の情報が更新される。
図12は、情報の更新状況の第1の例を示す図である。端末装置21と仮想サーバ320とのコネクションが接続され、端末装置21が仮想サーバ320の「業務」アプリケーションのサービスの利用を開始すると、アクセス制御部321は、「業務」アプリケーションのライセンスの使用状況を更新する。例えばアクセス制御部321は、「業務」アプリケーションのライセンスの使用数を1だけカウントアップし、空き数を1だけカウントダウンする。アクセス制御部321は、更新後の使用状況を物理サーバ100に送信する。
物理サーバ100では、仮想サーバ管理部150が、更新された使用状況を受信し、ネットワーク別ライセンス管理テーブル114とサーバ別ライセンス管理テーブル115とを更新する。例えば仮想サーバ管理部150は、ネットワーク別ライセンス管理テーブル114の仮想サーバ320が属する仮想ネットワークにおける「業務」アプリケーションのライセンスの使用数を1だけカウントアップし、空き数を1だけカウントダウンする。また仮想サーバ管理部150は、サーバ別ライセンス管理テーブル115の仮想サーバ320における「業務」アプリケーションのライセンスの使用数を1だけカウントアップし、空き数を1だけカウントダウンする。
このようにして、端末装置がサービスの利用を開始するごとに、記憶部110内の情報が更新される。
次に仮想ネットワーク単位でライセンスが管理されているアプリケーションへのサービス要求の振り分け処理について説明する。
図13は、仮想ネットワーク単位でライセンスが管理されているアプリケーションへのサービス要求の振り分け例を示す図である。ユーザは、端末装置21を用いて、利用するサービスを提供しているアプリケーションを選択する(ステップS21)。すると、例えば、端末装置21に、アプリケーションのリストを含むメニュー43が表示される。ユーザがメニュー43からアプリケーションを選択すると、端末装置21から物理サーバ100に、選択されたアプリケーションを利用するためのサービス要求が送信される。
サービス要求を受信した物理サーバ100は、端末装置21がアクセス可能な仮想ネットワークで実行されている仮想サーバの中から、サービス要求で指定されたアプリケーションを実行している仮想サーバを抽出する(ステップS22)。例えば、端末装置21は、「業務ネットワークA」という名称の仮想ネットワーク310にアクセス可能であり、ユーザによって「業務」アプリケーションが選択されたものとする。
ここで、仮想ネットワーク310内の仮想サーバにおいて、「業務」アプリケーションを実装している仮想サーバがないものとする。すると物理サーバ100は、仮想ネットワーク310からの仮想サーバの抽出に失敗し、別の仮想ネットワーク210からの仮想サーバの抽出を試みる(ステップS23)。端末装置21がアクセスできない仮想ネットワーク210から仮想サーバを抽出する場合、選択されたアプリケーションを実装しており、かつアクセスしているユーザがいない仮想サーバが抽出される。例えば、コネクション数が「0」であれば、アクセスしているユーザがいないと判断できる。図13の例では、仮想サーバ220が抽出されている。抽出された仮想サーバ220は、調達対象として扱われる。
物理サーバ100は、物理サーバ300に対して、新たな仮想サーバの作成を指示する。すると物理サーバ300が、端末装置21がアクセス可能な仮想ネットワーク310内に、新たな仮想サーバ350を作成する(ステップS24)。なお、作成される仮想サーバ350には、ユーザが指定したアプリケーションが実装される。
次に物理サーバ100は、物理サーバ200に対して、調達対象の仮想サーバ220のメモリページを、仮想サーバ350に転送させる(ステップS25)。転送されるメモリページには、例えば、ライセンス情報も含まれる。そして物理サーバ100は、物理サーバ300に対して、仮想サーバ350のオンライン化を指示する。すると物理サーバ300により、仮想サーバ350がオンライン化される(ステップS26)。物理サーバ100は、仮想サーバ350のオンライン化後、物理サーバ200に、調達対象の仮想サーバ220の停止を指示する。すると物理サーバ200の制御により仮想サーバ220が停止する(ステップS27)。
そして、端末装置21と仮想サーバ350との間でコネクションが接続される。その後、端末装置21から仮想サーバ350に対し、サービス利用のためのログインアクセスが行われる(ステップS28)。ログイン後、端末装置21が仮想サーバ350から「業務」アプリケーションのサービスの提供を受けることができる。
端末装置21と仮想サーバ350との間のコネクションが接続されると、記憶部110内の情報が更新される。
図14は、情報の更新状況の第2の例を示す図である。端末装置21と仮想サーバ350とのコネクションが接続され、端末装置21が仮想サーバ350の「業務」アプリケーションのサービスの利用を開始する。すると、仮想サーバ350のアクセス制御部351は、「業務」アプリケーションのライセンスの使用状況を更新する。そしてアクセス制御部351は、更新後の使用状況を物理サーバ100に送信する。
物理サーバ100では、仮想サーバ管理部150が、更新された使用状況を受信し、ネットワーク別ライセンス管理テーブル114とサーバ別ライセンス管理テーブル115とを更新する。
例えば仮想サーバ管理部150は、ネットワーク別ライセンス管理テーブル114に対して以下の操作を行う。まず仮想サーバ管理部150は、調達対象の仮想サーバ220が属する仮想ネットワークにおける「業務」アプリケーションの空き数と合計とのそれぞれから、仮想サーバ220に実装された「業務」アプリケーションの最大クライアント数を減算する。次に仮想サーバ管理部150は、仮想サーバ350が属する仮想ネットワークにおける「業務」アプリケーションの空き数と合計とのそれぞれに、仮想サーバ350に実装された「業務」アプリケーションの最大クライアント数を加算する。また仮想サーバ管理部150は、仮想サーバ350が属する仮想ネットワークにおける「業務」アプリケーションのライセンスの使用数を1だけカウントアップし、空き数を1だけカウントダウンする。
また仮想サーバ管理部150は、サーバ別ライセンス管理テーブル115に対して以下の操作を行う。まず仮想サーバ管理部150は、調達対象の仮想サーバ220のエントリを削除する。次に仮想サーバ管理部150は、仮想サーバ350における「業務」アプリケーションのライセンスの使用数を1だけカウントアップし、空き数を1だけカウントダウンする。
このようにして、端末装置がサービスの利用を開始するごとに、記憶部110内の情報が更新される。
次に、仮想サーバで提供されるサービスの利用手順について詳細に説明する。
図15は、通信接続処理の手順の一例を示すシーケンス図である。なお、図15には、仮想サーバ320に実装されているアプリケーションにより、端末装置21にサービスを提供する場合の例が示されている。
[ステップS31]端末装置21は、ユーザからの入力に応じ、管理ネットワーク41内に配置された物理サーバ100への接続要求を出力する。出力された接続要求は、ネットワーク機器30で受信される。
[ステップS100]ネットワーク機器30は、接続要求に応じて接続チェック処理を行う。接続チェック処理とは、セキュリティなどの観点から端末装置を接続してよいかどうかを判断する処理である。接続チェック処理で接続が許可されると、接続要求が物理サーバ100に転送され、端末装置21と物理サーバとの間の通信が接続される。なお、接続チェック処理の詳細は後述する(図16参照)。
[ステップS32]端末装置21は、物理サーバ100との通信が接続されると、物理サーバ100に、利用するアプリケーションを指定したサービス要求を送信する。
[ステップS200]物理サーバ100は、サービス要求受付処理を行う。サービス要求受付処理は、端末装置からのサービス要求を取得し、そのサービス要求に応じてサービスを提供する仮想サーバを決定し、端末装置とその仮想サーバとの通信を接続する処理である。なお、サービス要求受付処理の詳細は後述する(図17参照)。
[ステップS33]端末装置21は、仮想サーバ320に対してログインし、サービスを利用する。そして端末装置21は、サービスの利用が終了すると、仮想サーバ320からログアウトする。
[ステップS320]仮想サーバ320は、端末装置21からのアクセス制御処理を行う。アクセス制御処理では、端末装置21からのログイン・ログアウトに応じたライセンスの使用状況の更新などの処理が行われる。なお、アクセス制御処理の詳細は後述する(図26、図27参照)。
次に、接続チェック処理の詳細について説明する。
図16は、接続チェック処理の手順の一例を示すフローチャートである。
[ステップS111]ネットワーク機器30は、接続要求を出力した端末装置のセキュリティチェックを行う。セキュリティチェックでは、端末装置が所定のセキュリティポリシーに合致しているか否かが判断される。セキュリティポリシーでは、例えば、ソフトウェアに最新のパッチが適用されていること、所定期間内にウィルスチェックが行われていることなどの条件が定義されている。ネットワーク機器30は、セキュリティポリシーに定義されている条件を、端末装置が満たした場合に、その端末装置のセキュリティチェックを合格とする。なおネットワーク機器30は、セキュリティチェックに利用する各種情報は、例えばセキュリティチェックの際に端末装置から取得する。端末装置がセキュリティチェックに合格した場合、処理がステップS112に進められる。端末装置がセキュリティチェックに不合格の場合、処理がステップS115に進められる。
[ステップS112]ネットワーク機器30は、端末装置がセキュリティチェックに合格すると、IT資源チェックを行う。IT資源チェックは、端末装置について、いずれかの仮想ネットワークに接続することが許されているか否かを判断する処理である。例えばネットワーク機器30は、物理サーバ100の記憶部110にアクセスし、資源・ネットワーク対応テーブル111を参照する。そしてネットワーク機器30は、接続要求を出力した端末装置のMACアドレスが、資源・ネットワーク対応テーブル111に登録されているか否かを判断する。資源・ネットワーク対応テーブル111に端末装置のMACアドレスが登録されている場合、ネットワーク機器30は、IT資源チェックに合格したと判定する。端末装置がIT資源チェックに合格した場合、処理がステップS113に進められる。端末装置がIT資源チェックに不合格となった場合、処理がステップS114に進められる。
[ステップS113]IT資源チェックに合格した場合、ネットワーク機器30は、接続要求を出力した端末装置からの接続を許可する仮想ネットワークを、IT資源情報に基づいて確定する。例えばネットワーク機器30は、資源・ネットワーク対応テーブル111を参照し、端末装置のMACアドレスに対応付けられている仮想ネットワークを、その端末装置からの接続を許可する仮想ネットワークに確定する。その後、処理がステップS117に進められる。
[ステップS114]ネットワーク機器30は、端末装置を使用しているユーザのユーザ認証を行う。例えばネットワーク機器30は、端末装置に対して、認証情報(ユーザIDとパスワード)の入力を促すメッセージを送信する。端末装置からネットワーク機器30へ認証情報が送られると、ネットワーク機器30は、物理サーバ100の記憶部110内のユーザ・ネットワーク対応テーブル112を参照する。そして、ネットワーク機器30は、受信した認証情報に示されるユーザIDとパスワードとの組が、ユーザ・ネットワーク対応テーブル112に登録されていれば、ユーザ認証に合格したと判定する。ユーザ認証に合格した場合、処理がステップS116に進められる。またユーザ認証に不合格となった場合、処理がステップS115に進められる。
[ステップS115]端末装置がセキュリティチェックで不合格になるか、またはIT資源チェックとユーザ認証との両方に不合格となった場合、ネットワーク機器30は、端末装置の物理サーバ100への接続を拒否する。その後、接続チェック処理が終了する。
[ステップS116]ユーザ認証に合格した場合、ネットワーク機器30は、接続要求を出力した端末装置からの接続を許可する仮想ネットワークを、ユーザIDに基づいて確定する。例えばネットワーク機器30は、ユーザ・ネットワーク対応テーブル112を参照し、端末装置から送られたユーザIDに対応付けられている仮想ネットワークを、その端末装置からの接続を許可する仮想ネットワークに確定する。
[ステップS117]ネットワーク機器30は、接続要求を出力した端末装置を物理サーバ100に接続する。この際、ネットワーク機器30から物理サーバ100に、接続を許可する仮想ネットワークの識別情報(例えば、仮想ネットワーク名)が通知される。
このようにして、所定の条件を満たした端末装置が、物理サーバ100にアクセスすることができる。次に、サービス要求受付処理について詳細に説明する。
図17は、サービス要求受付処理の手順の一例を示すフローチャートである。
[ステップS211]サービス要求受付部120は、接続チェックをパスした端末装置に対してメニュー43を表示させる。例えばサービス要求受付部120は、メニュー43の画面情報を端末装置に送信する。このとき、サービス要求受付部120は、メニュー入力モードとなる。
[ステップS212]サービス要求受付部120は、メニュー入力モードの終了条件が満たされたか否かを判断する。例えばサービス要求受付部120は、端末装置から、メニュー43の操作終了を示す入力情報を受信すると、終了条件が満たされたと判断する。メニュー入力モードの終了条件が満たされた場合、サービス要求受付処理が終了する。メニュー入力モードの終了条件が満たされていなければ、処理がステップS213に進められる。
[ステップS213]サービス要求受付部120は、端末装置から任意のサービスの指定があったか否かを判断する。例えばユーザが端末装置に表示されたメニューから、利用するアプリケーションを選択すると、端末装置から物理サーバ100に、選択されたアプリケーションの識別情報を含むサービス要求が送信される。サービス要求受付部120は、サービス要求を受信すると、サービス要求に示されるアプリケーションで提供されるサービスの指定があったと判断する。サービスの指定があった場合、処理がステップS214に進められる。またサービスの指定がなければ、処理がステップS212に進められる。
[ステップS214]サービス要求受付部120は、取得したサービス要求を、サーバ接続部130に送信する。
[ステップS215]サーバ接続部130が、他の要素と連携してサーバ接続処理を行う。
図18は、サーバ接続処理の手順の一例を示すフローチャートである。
[ステップS221]サーバ接続部130は、接続先候補選定部131に、端末装置の接続先候補の選定要求を送信する。すると接続先候補選定部131が、接続先候補選定処理を行う。接続先候補選定処理では、端末装置にサービスを提供可能な仮想サーバがリストアップされる。なお接続先候補選定処理の詳細は後述する(図19参照)。
[ステップS222]接続先候補の選定が終了すると、接続先選択部132が、接続先選択処理を行う。接続先選択処理では、接続先候補の仮想サーバの中から、接続先とする仮想サーバが選択される。なお、接続先選択処理の詳細は後述する(図20参照)。
[ステップS223]サーバ接続部130は、接続先選択部132により接続先が選択されたか否かを判断する。例えばサーバ接続部130は、接続先を示す変数に仮想サーバの識別子が設定されていれば、接続先が選択されたと判断する。またサーバ接続部130は、接続先を示す変数の内容が空の場合、接続が選択されていないと判断する。接続先が選択された場合、処理がステップS227に進められる。接続先が選択されなかった場合、処理がステップS224に進められる。
[ステップS224]接続先選択部132により接続先が選択されなかった場合、仮想サーバ調達部140に仮想サーバの調達を要求する。この要求に応じて、仮想サーバ調達部140により仮想サーバ調達処理が行われる。仮想サーバ調達処理は、サービス要求を出力した端末装置からのアクセスが許されていない仮想ネットワーク内の仮想サーバを調達し、その端末装置からアクセス可能な仮想ネットワーク内に移動する処理である。仮想サーバが調達できた場合、移動後の仮想サーバが接続先となる。なお仮想サーバ調達処理の詳細は後述する(図21参照)。
[ステップS225]サーバ接続部130は、仮想サーバが調達され、調達された仮想サーバが接続先として設定されたか否かを判断する。接続先が選択された場合、処理がステップS227に進められる。接続先が選択されなかった場合、処理がステップS226に進められる。
[ステップS226]仮想サーバ調達処理を行っても接続先が得られなかった場合、サーバ接続部130は、ライセンス枯渇を示すメッセージを、サービス要求を出力した端末装置に送信する。例えば、「ご希望のサービスのライセンスがネットワーク全体で枯渇しているため、サービスを提供することができません。」というメッセージが送信される。すると送信されたメッセージが端末装置の画面に表示される。その後、サーバ接続処理が終了する。
[ステップS227]接続先が得られた場合、サーバ接続部130は、端末装置を接続先の仮想サーバ上のアプリケーションに誘導する。例えばサーバ接続部130は、端末装置からのサービス要求を、接続先の仮想サーバ上の、サービス要求で指定されたアプリケーションに転送する。すると、接続先の仮想サーバと端末装置との間でコネクションが接続される。そして、端末装置から仮想サーバ上のアプリケーションに、例えばログイン処理が行われる。以後、仮想サーバのアプリケーションは、端末装置からの要求に応じてサービスを提供する。
次に、接続先候補選定処理の手順について詳細に説明する。
図19は、接続先候補選定処理の手順の一例を示すフローチャートである。
[ステップS231]接続先候補選定部131は、アプリケーションライセンス定義テーブル113を参照し、ユーザが指定したアプリケーションのライセンスの管理単位を確認する。第2の実施の形態では、アプリケーションライセンス定義テーブル113において、ユーザが指定したアプリケーションのライセンス管理単位の欄に「1」が設定されていれば、ライセンス管理単位は、仮想ネットワークである。またライセンス管理単位の欄に「2」が設定されていれば、ライセンス管理単位は、仮想サーバである。
[ステップS232]接続先候補選定部131は、ライセンスの管理単位が仮想ネットワークなのか、仮想サーバなのかを判断する。仮想ネットワーク単位のライセンス管理であれば、処理がステップS233に進められる。仮想サーバ単位のライセンス管理であれば、処理がステップS237に進められる。
[ステップS233]接続先候補選定部131は、仮想ネットワーク単位でライセンスが管理される場合、ネットワーク別ライセンス管理テーブル114を参照する。そして接続先候補選定部131は、端末装置からのアクセスが許されている仮想ネットワークにおける、ユーザが指定したアプリケーションのライセンスの使用状況に関する情報を取得する。なお、アクセスが許されている仮想ネットワークは、ネットワーク機器30による接続チェック処理によって確定されており、ネットワーク機器30から物理サーバ100に通知されている。
[ステップS234]接続先候補選定部131は、ユーザが指定したアプリケーションのライセンスに空きがあるか否かを判断する。例えば、該当アプリケーションの空き数が「0」であれば空きなし、空き数が「1」以上であれば空きありと判断される。ライセンスに空きがあれば、処理がステップS235に進められる。ライセンスに空きがなければ、接続先候補なしのまま、接続先候補選定処理が終了する。
[ステップS235]接続先候補選定部131は、サーバ別ライセンス管理テーブル115を参照する。そして接続先候補選定部131は、アクセスが許されている仮想ネットワークに属する仮想サーバに対し、1から順番に番号を振る。この番号は、接続先候補選定処理の間だけ有効な番号である。
[ステップS236]接続先候補選定部131は、接続先候補の配列に、アクセスが許されている仮想ネットワーク内のすべての仮想サーバのIDを設定する。例えば各仮想サーバのIDが、その仮想サーバに割り振られた番号をインデックスとする、接続先候補の配列に設定される。仮想サーバのIDとしては、例えば、その仮想サーバを実行している仮想マシンのIDが使用される。このように、仮想ネットワーク単位でライセンスが管理される場合、アクセスが許されている仮想ネットワーク内のすべての仮想サーバが、接続先候補に選定される。その後、接続先候補選定処理が終了する。
[ステップS237]接続先候補選定部131は、仮想サーバ単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115を参照する。そして接続先候補選定部131は、端末装置からのアクセスが許されている仮想ネットワークに属し、かつユーザが指定したアプリケーションを実装する仮想サーバにおける、そのアプリケーションのライセンスの使用状況に関する情報を取得する。
[ステップS238]接続先候補選定部131は、アクセスが許されている仮想ネットワークに属する仮想サーバの中に、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバがあるか否かを判断する。ライセンスに空きがある仮想サーバがあれば、処理がステップS239に進められる。ライセンスに空きがある仮想サーバがなければ、接続先候補なしのまま、接続先候補選定処理が終了する。
[ステップS239]接続先候補選定部131は、サーバ別ライセンス管理テーブル115を参照する。そして接続先候補選定部131は、アクセスが許されている仮想ネットワークに属し、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバに対し、1から順番に番号を振る。この番号は、接続先候補選定処理の間だけ有効な番号である。
[ステップS240]接続先候補選定部131は、接続先候補の配列に、アクセスが許されている仮想ネットワークに属し、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバのIDを設定する。例えば各仮想サーバのIDが、その仮想サーバに割り振られた番号をインデックスとする、接続先候補の配列に設定される。このように、仮想サーバ単位でライセンスが管理される場合、アクセスが許されている仮想ネットワーク内の、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバが、接続先候補に選定される。その後、接続先候補選定処理が終了する。
接続先候補選定処理が終了すると、接続先選択部132により、接続先候補の中から、接続先とする1つの仮想サーバが選択される。
図20は、接続先選択処理の手順の一例を示すフローチャートである。
[ステップS241]接続先選択部132は、変数kに「1」を設定する。
[ステップS242]接続先選択部132は、配列でk番目の接続先候補がnull(空)か否かを判断する。配列でk番目の接続先候補が空の場合とは、接続先候補の数が「k−1」個の場合である。配列でk番目の接続先候補が空であれば、接続先選択処理が終了する。配列でk番目の接続先候補が空でなければ、処理がステップS243に進められる。
[ステップS243]接続先選択部132は、配列でk番目の接続先候補である仮想サーバのコネクション数を、コネクション数の配列のk番目に設定する。仮想サーバのコネクション数は、例えば、その仮想サーバのすべてのアプリケーションのライセンスの使用数を合計することで算出できる。
[ステップS244]接続先選択部132は、変数kが「2」以上か否かを判断する。2以上であれば、処理がステップS245に進められる。2未満であれば、処理がステップS247に進められる。
[ステップS245]接続先選択部132は、配列でk番目のコネクション数が、現時点で接続先に設定されている仮想サーバのコネクション数よりも少ないか否かを判断する。配列でk番目のコネクション数の方が少なければ、処理がステップS247に進められる。配列でk番目のコネクション数が、現時点で接続先に設定されている仮想サーバのコネクション数以上であれば、処理がステップS246に進められる。
[ステップS246]接続先選択部132は、変数kを1だけカウントアップする。その後、処理がステップS242に進められる。
[ステップS247]接続先選択部132は、配列でk番目の接続先候補の仮想サーバを、接続先とする。その後、処理がステップS242に進められる。
このようにして、接続先候補の仮想サーバのうち、コネクション数が最小の仮想サーバが、接続先として選択される。接続先候補が1つもなく、接続先を選択できなかった場合、仮想サーバ調達処理が行われる。
図21は、仮想サーバ調達処理の手順の一例を示すフローチャートの前半である。
[ステップS251]仮想サーバ調達部140は、端末装置からのアクセスが許される仮想ネットワーク以外の仮想ネットワーク(他の仮想ネットワーク)に番号を振る。この番号は、仮想サーバ調達処理の間だけ有効な番号である。
[ステップS252]仮想サーバ調達部140は、変数mに「1」を設定する。
[ステップS253]仮想サーバ調達部140は、変数mが、他の仮想ネットワークの数よりも大きいか否かを判断する。調達先が見つけられないまま、他の仮想ネットワークのすべてについてステップS254〜S258の処理が終了した場合に、変数mが、他の仮想ネットワークの数よりも大きくなる。変数mが、他の仮想ネットワークの数よりも大きい場合、仮想サーバ調達処理が終了する。変数mが、他の仮想ネットワークの数以下であれば、処理がステップS254に進められる。
[ステップS254]仮想サーバ調達部140は、m番目の他の仮想ネットワークを選択する。
[ステップS255]調達候補選定部141は、選択された仮想ネットワークから、調達候補選定処理を行う。なお、調達候補選定処理の詳細は後述する(図23参照)。
[ステップS256]調達対象選択部142は、調達対象選択処理を行う。調達対象選択処理は、調達候補に選定された仮想サーバの中から、調達対象とする仮想サーバを選択する処理である。なお、調達対象選択処理の詳細は後述する(図24参照)。
[ステップS257]仮想サーバ調達部140は、調達対象の仮想サーバを設定する変数の値がnull(空)か否かを判断する。調達対象が空であれば、処理がステップS258に進められる。調達対象として仮想サーバが設定されていれば、処理がステップS259に進められる。
[ステップS258]仮想サーバ調達部140は、変数mを1だけカウントアップする。その後、処理がステップS253に進められる。
[ステップS259]調達対象となる仮想サーバが設定された場合、仮想サーバ管理部150が、仮想サーバ移動処理を行う。仮想サーバ移動処理は、調達対象の仮想サーバを、端末装置からのアクセスが許される仮想ネットワーク上に移動する処理である。仮想サーバ移動処理の詳細は後述する(図25参照)。
[ステップS260]仮想サーバ管理部150は、調達対象として設定された仮想サーバの移動後のIDを、接続先に設定する。その後、処理がステップS261(図22参照)に進められる。
図22は、仮想サーバ調達処理の手順の一例を示すフローチャートの後半である。
[ステップS261]仮想サーバ管理部150は、サーバ別ライセンス管理テーブル115を参照する。
[ステップS262]仮想サーバ管理部150は、仮想サーバ移動処理によって停止された仮想サーバに実装されていたアプリケーションのうち、情報の追加・削除を行っていないアプリケーションを1つ選択する。
[ステップS263]仮想サーバ管理部150は、停止された仮想サーバの選択されたアプリケーションに関する情報を、サーバ別ライセンス管理テーブル115から削除する。
[ステップS264]仮想サーバ管理部150は、仮想サーバ移動処理により作成された仮想サーバの、ステップS262で選択したアプリケーションに関する情報を、サーバ別ライセンス管理テーブル115に新規追加する。
[ステップS265]仮想サーバ管理部150は、仮想サーバ移動処理によって停止された仮想サーバに実装されていたアプリケーションのうち、情報の追加・削除を行っていないアプリケーションが残っているか否かを判断する。該当するアプリケーションがあれば、処理がステップS262に進められる。該当するアプリケーソンがなければ、処理がステップS266に進められる。
[ステップS266]仮想サーバ管理部150は、ネットワーク別ライセンス管理テーブル114を参照する。
[ステップS267]仮想サーバ管理部150は、仮想サーバ移動処理によって停止された仮想サーバに実装されていたアプリケーションのうち、ネットワーク別ライセンス管理テーブル114の情報更新を行っていないアプリケーションを1つ選択する。
[ステップS268]仮想サーバ管理部150は、調達対象の仮想サーバが移動前に属していた仮想ネットワーク(移動元の仮想ネットワーク)に対する、選択したアプリケーションのライセンスの使用状況を更新する。例えば仮想サーバ管理部150は、調達対象の仮想サーバにおける、選択したアプリケーションのライセンスに定義された最大クライアント数だけ、移動元の仮想ネットワークの該当アプリケーションのライセンスの空き数と合計とのそれぞれから減算する。
[ステップS269]仮想サーバ管理部150は、調達対象の仮想サーバが移動後に属する仮想ネットワーク(移動先の仮想ネットワーク)に対する、選択したアプリケーションのライセンスの使用状況を更新する。例えば仮想サーバ管理部150は、調達対象の仮想サーバにおける、選択したアプリケーションのライセンスに定義された最大クライアント数だけ、移動先の仮想ネットワークの該当アプリケーションのライセンスの空き数と合計とのそれぞれに加算する。
[ステップS270]仮想サーバ管理部150は、仮想サーバ移動処理によって停止された仮想サーバに実装されていたアプリケーションのうち、ネットワーク別ライセンス管理テーブル114の情報更新を行っていないアプリケーションがあるか否かを判断する。該当するアプリケーションがあれば、処理がステップS267に進められる。該当するアプリケーションがなければ、仮想サーバ調達処理が終了する。
このようにして、端末装置からのアクセスが許されていない仮想ネットワーク内から仮想サーバが調達され、端末装置からのアクセスが許されている仮想ネットワークに移動される。
次に、調達候補選定処理について詳細に説明する。
図23は、調達候補選定処理の手順を示すフローチャートである。
[ステップS271]調達候補選定部141は、アプリケーションライセンス定義テーブル113を参照し、ユーザが指定したアプリケーションのライセンスの管理単位を確認する。
[ステップS272]調達候補選定部141は、ライセンスの管理単位が仮想ネットワークなのか、仮想サーバなのかを判断する。仮想ネットワーク単位のライセンス管理であれば、処理がステップS273に進められる。仮想サーバ単位のライセンス管理であれば、処理がステップS277に進められる。
[ステップS273]調達候補選定部141は、仮想ネットワーク単位でライセンスが管理される場合、ネットワーク別ライセンス管理テーブル114を参照する。そして調達候補選定部141は、端末装置からのアクセスが許されている仮想ネットワークにおける、ユーザが指定したアプリケーションのライセンスの使用状況に関する情報を取得する。
[ステップS274]調達候補選定部141は、ユーザが指定したアプリケーションのライセンスに空きがあるか否かを判断する。ライセンスに空きがあれば、処理がステップS275に進められる。ライセンスに空きがなければ、調達候補なしのまま、調達候補選定処理が終了する。
[ステップS275]調達候補選定部141は、サーバ別ライセンス管理テーブル115を参照する。そして調達候補選定部141は、アクセスが許されている仮想ネットワークに属する仮想サーバに対し、1から順番に番号を振る。この番号は、調達候補選定処理の間だけ有効な番号である。
[ステップS276]調達候補選定部141は、調達候補の配列に、アクセスが許されている仮想ネットワーク内のすべての仮想サーバのIDを設定する。例えば各仮想サーバのIDが、その仮想サーバに割り振られた番号をインデックスとする、調達候補の配列に設定される。このように、仮想ネットワーク単位でライセンスが管理される場合、アクセスが許されている仮想ネットワーク内のすべての仮想サーバが、調達候補に選定される。その後、調達候補選定処理が終了する。
[ステップS277]調達候補選定部141は、仮想サーバ単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115を参照する。そして調達候補選定部141は、端末装置からのアクセスが許されている仮想ネットワークに属し、かつユーザが指定したアプリケーションを実装する仮想サーバにおける、そのアプリケーションのライセンスの使用状況に関する情報を取得する。
[ステップS278]調達候補選定部141は、アクセスが許されている仮想ネットワークに属する仮想サーバの中に、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバがあるか否かを判断する。ライセンスに空きがある仮想サーバがあれば、処理がステップS279に進められる。ライセンスに空きがある仮想サーバがなければ、調達候補なしのまま、調達候補選定処理が終了する。
[ステップS279]調達候補選定部141は、サーバ別ライセンス管理テーブル115を参照する。そして調達候補選定部141は、アクセスが許されている仮想ネットワークに属し、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバに対し、1から順番に番号を振る。この番号は、調達候補選定処理の間だけ有効な番号である。
[ステップS280]調達候補選定部141は、調達候補の配列に、アクセスが許されている仮想ネットワークに属し、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバのIDを設定する。例えば各仮想サーバのIDが、その仮想サーバに割り振られた番号をインデックスとする、調達候補の配列に設定される。このように、仮想サーバ単位でライセンスが管理される場合、アクセスが許されている仮想ネットワーク内の、ユーザが指定したアプリケーションのライセンスの空き数が1以上の仮想サーバが、調達候補に選定される。その後、調達候補選定処理が終了する。
調達候補選定処理が終了すると、調達対象選択部142により、調達候補の中から、調達対象とする1つの仮想サーバが選択される。
図24は、調達対象選択処理の手順の一例を示すフローチャートである。
[ステップS281]調達対象選択部142は、変数kに「1」を設定する。
[ステップS282]調達対象選択部142は、配列でk番目の調達候補がnull(空)か否かを判断する。配列でk番目の調達候補が空の場合とは、調達候補の数が「k−1」個の場合である。配列でk番目の調達候補が空であれば、調達対象選択処理が終了する。配列でk番目の調達候補が空でなければ、処理がステップS283に進められる。
[ステップS283]調達対象選択部142は、配列でk番目の調達候補である仮想サーバのコネクション数を、コネクション数の配列のk番目に設定する。
[ステップS284]調達対象選択部142は、配列でk番目のコネクション数が「0」か否かを判断する。配列でk番目のコネクション数が「0」であれば、処理がステップS286に進められる。配列でk番目のコネクション数が「0」でなければ、処理がステップS285に進められる。
[ステップS285]調達対象選択部142は、変数kを1だけカウントアップする。その後、処理がステップS282に進められる。
[ステップS286]調達対象選択部142は、配列でk番目の調達候補の仮想サーバを、調達対象とする。その後、調達対象選択処理が終了する。
このようにして、最初にヒットした、コネクション数が「0」の仮想サーバが、調達対象として選択される。
次に、仮想サーバ移動処理について詳細に説明する。
図25は、仮想サーバ移動処理の手順の一例を示すフローチャートである。
[ステップS291]仮想サーバ管理部150は、移動先の仮想ネットワーク内に仮想サーバを作成する。移動先の仮想ネットワークは、サービス要求を出力した端末装置からのアクセスが許されている仮想ネットワークである。例えば仮想サーバ管理部150は、移動先の仮想ネットワークを実現している物理サーバのOS(例えばハイパーバイザ)に対して、新たな仮想マシンの生成と、その仮想マシン上でのゲストOSの起動とを指示する。新たな仮想マシンで実行されたOSが仮想サーバとして機能する。これにより、移動先の仮想ネットワーク内に新たな仮想サーバが作成されたこととなる。さらに仮想サーバ管理部150は、調達対象の仮想サーバ上で実行されているアプリケーションと同じアプリケーションを、作成した仮想サーバで実行させる。
[ステップS292]仮想サーバ管理部150は、調達対象の仮想サーバのメモリページを、ステップS291で作成した仮想サーバに転送する。このメモリページの転送により、例えばアプリケーションのライセンスに関する情報が、作成したサーバに転送される。その結果、調達対象の仮想サーバに定義されていたライセンスと同じ内容のライセンスが、作成した仮想サーバにおいて定義される。
[ステップS293]仮想サーバ管理部150は、メモリページの転送が終了したか否かを判断する。メモリページの転送が終了した場合、処理がステップS294に進められる。メモリページの転送が終了していなければ、処理がステップS292に進められ、メモリページの転送が続行される。
[ステップS294]仮想サーバ管理部150は、調達対象の仮想サーバによって制御されている仮想ディスクを、ステップS291で作成した仮想サーバによる制御に切り替える。例えば図2では省略しているが、管理ネットワーク41に、物理サーバ200,300それぞれからアクセス可能なストレージ装置を接続できる。そのストレージ装置内には、複数の仮想ディスクを作成できる。作成された仮想ディスクは、物理サーバ200,300上で動作する仮想サーバが制御できる。このような場合、調達対象の仮想サーバが制御していた仮想ディスクを、新たに作成した仮想サーバが制御するようにすることで、仮想ディスクに格納されていたデータを、調達対象の仮想サーバから新たに作成した仮想サーバに受け渡すことができる。
[ステップS295]仮想サーバ管理部150は、ステップS291で作成した仮想サーバをオンライン化する。例えば仮想サーバ管理部150は、作成した仮想サーバに対して、実装されているアプリケーションによるネットワークを介したサービス提供の開始を指示する。指示を受けた仮想サーバは、アプリケーションによるサービス提供を開始する。
[ステップS296]仮想サーバ管理部150は、調達対象の仮想サーバを停止する。例えば仮想サーバ管理部150は、調達対象の仮想サーバに対し、シャットダウンを指示する。
このようにして、仮想サーバの移動が完了する。すなわち調達対象の仮想サーバと同じライセンスが定義されたアプリケーションを実装する新たな仮想サーバが、端末装置からのアクセスが許されている仮想ネットワークに追加される。
次に、アクセス制御処理について詳細に説明する。
図26は、アクセス制御処理の手順の一例を示すフローチャートの前半である。以下、仮想サーバ320が実行する場合を想定して、アクセス制御処理について説明する。
[ステップS311]アクセス制御部321は、仮想サーバ320が稼働しているゲストOSから、シャットダウンの要求が出力されたか否かを判断する。シャットダウンの要求が出力された場合、処理がステップS312に進められる。シャットダウンの要求が出力されていなければ、処理がステップS313に進められる。
[ステップS312]シャットダウンの要求が出力された場合、シャットダウン部322がシャットダウン処理を実行する。そしてシャットダウン処理の終了後、アクセス制御処理が終了する。なお、シャットダウン処理の詳細は後述する(図28参照)。
[ステップS313]アクセス制御部321は、端末装置から、アプリケーションに対するログインのアクセスがあったか否かを判断する。ログインのアクセスがあった場合、処理がステップS314に進められる。ログインのアクセスがなければ、処理がステップS311に進められる。
[ステップS314]アクセス制御部321は、物理サーバ100内のアプリケーションライセンス定義テーブル113を参照し、ログイン対象のアプリケーションのライセンスの管理単位を確認する。
[ステップS315]アクセス制御部321は、ライセンスの管理単位が仮想ネットワークなのか、仮想サーバなのかを判断する。仮想ネットワーク単位のライセンス管理であれば、処理がステップS316に進められる。仮想サーバ単位のライセンス管理であれば、処理がステップS319に進められる。
[ステップS316]アクセス制御部321は、仮想ネットワーク単位でライセンスが管理される場合、物理サーバ100内のネットワーク別ライセンス管理テーブル114を参照する。そしてアクセス制御部321は、仮想サーバ320が属する仮想ネットワークにおける、ログイン対象のアプリケーションのライセンスの使用状況に関する情報を取得する。
[ステップS317]アクセス制御部321は、ログイン対象のアプリケーションのライセンスに空きがあるか否かを判断する。ライセンスに空きがあれば、処理がステップS318に進められる。ライセンスに空きがなければ、処理がステップS337(図27参照)に進められる。
なお、アクセス制御処理においてライセンスの空きがないと判断されるのは、例えば、図4に示す端末装置42のように、物理サーバ100を介さずに仮想サーバにアクセスが可能な端末装置から、ログインのアクセスがあった場合である。すなわち、物理サーバ100を経由したログインのアクセスの場合、物理サーバ100においてライセンスの空きがあることが確認されているため、アクセス制御処理の段階でライセンスの枯渇が発生することはない。他方、物理サーバ100を経由せずにログインのアクセスが行われた場合、ライセンスの空きの有無が事前に確認されていないため、ログインのアクセスの際に、ライセンスの空きがないと判断される場合があり得る。
[ステップS318]アクセス制御部321は、ライセンスの空きがあれば、端末装置からのログインを許可する。次にアクセス制御部321は、サーバ別ライセンス管理テーブル115における、仮想サーバ320のログインしたアプリケーションのライセンスの使用数に1を加算する。その後、処理がステップS322に進められる。
[ステップS319]アクセス制御部321は、仮想サーバ単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115を参照する。そしてアクセス制御部321は、仮想サーバ320における、ログイン対象のアプリケーションのライセンスの使用状況に関する情報を取得する。
[ステップS320]アクセス制御部321は、ログイン対象のアプリケーションのライセンスに空きがあるか否かを判断する。ライセンスに空きがあれば、処理がステップS321に進められる。ライセンスに空きがなければ、処理がステップS337(図27参照)に進められる。
[ステップS321]アクセス制御部321は、ライセンスの空きがあれば、端末装置からのログインを許可する。次にアクセス制御部321は、サーバ別ライセンス管理テーブル115における、仮想サーバ320のログインしたアプリケーションのライセンスの使用数に1を加算し、該当アプリケーションのライセンスの空き数から1を減算する。
[ステップS322]アクセス制御部321は、ネットワーク別ライセンス管理テーブル114における、仮想サーバ320が属する仮想ネットワークの、ログインしたアプリケーションのライセンスの使用数に1を加算する。またアクセス制御部321は、そのアプリケーションのライセンスの空き数から1を減算する。その後、処理がステップS331(図27参照)に進められる。
図27は、アクセス制御処理の手順の一例を示すフローチャートの後半である。
[ステップS331]アクセス制御部321は、端末装置から、アプリケーションに対するログオフのアクセスがあったか否かを判断する。ログオフのアクセスがあった場合、処理がステップS332に進められる。ログオフのアクセスがなければ、ステップS331の処理が繰り返される。
[ステップS332]アクセス制御部321は、物理サーバ100内のアプリケーションライセンス定義テーブル113を参照し、ログイン対象のアプリケーションのライセンスの管理単位を確認する。
[ステップS333]アクセス制御部321は、ライセンスの管理単位が仮想ネットワークなのか、仮想サーバなのかを判断する。仮想ネットワーク単位のライセンス管理であれば、処理がステップS334に進められる。仮想サーバ単位のライセンス管理であれば、処理がステップS335に進められる。
[ステップS334]アクセス制御部321は、仮想ネットワーク単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115における、仮想サーバ320のログインしたアプリケーションのライセンスの使用数から1を減算する。その後、処理がステップS336に進められる。
[ステップS335]アクセス制御部321は、仮想ネットワーク単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115における、仮想サーバ320のログインしたアプリケーションのライセンスの使用数から1を減算する。またアクセス制御部321は、そのアプリケーションのライセンスの空き数に1を加算する。
[ステップS336]アクセス制御部321は、ネットワーク別ライセンス管理テーブル114における、仮想サーバ320が属する仮想ネットワークの、ログインしたアプリケーションのライセンスの使用数から1を減算する。またアクセス制御部321は、そのアプリケーションのライセンスの空き数に1を加算する。その後、アクセス制御処理が終了する。
[ステップS337]アクセス制御部321は、ログインのアクセスを行った端末装置に対し、ライセンス枯渇を示すメッセージを送信する。例えば、「ご希望のサービスのライセンスがネットワーク全体で枯渇しているため、サービスを提供することができません。」というメッセージが送信される。すると送信されたメッセージが端末装置の画面に表示される。その後、アクセス制御処理が終了する。
このようにして、端末装置からのログイン・ログオフに応じて、ライセンスの状態情報が更新される。
次に仮想サーバのシャットダウン処理について詳細に説明する。
図28は、シャットダウン処理の手順の一例を示すフローチャートである。以下、仮想サーバ320が実行する場合を想定して、シャットダウン処理について説明する。
[ステップS341]シャットダウン部322は、仮想サーバ320に実装されているすべてのアプリケーションに対して、1から順に番号を振る。この番号は、シャットダウン処理の間でのみ有効な番号である。
[ステップS342]シャットダウン部322は、変数nに1を設定する。
[ステップS343]シャットダウン部322は、変数nが、仮想サーバ320に実装されているアプリケーション数よりも大きいか否かを判断する。変数nの方が大きければ、シャットダウン処理が終了する。変数nがアプリケーション数以下であれば、処理がステップS344に進められる。
[ステップS344]シャットダウン部322は、物理サーバ100内のアプリケーションライセンス定義テーブル113を参照し、n番目のアプリケーションのライセンスの管理単位を確認する。
[ステップS345]シャットダウン部322は、ライセンスの管理単位が仮想ネットワークなのか、仮想サーバなのかを判断する。仮想ネットワーク単位のライセンス管理であれば、処理がステップS346に進められる。仮想サーバ単位のライセンス管理であれば、処理がステップS347に進められる。
[ステップS346]シャットダウン部322は、仮想ネットワーク単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115における、仮想サーバ320のn番目のアプリケーションのライセンスの使用数を0にリセットする。なお、リセット前のライセンスの使用数を、シャットダウン時解放ライセンス数とする。その後、処理がステップS348に進められる。
[ステップS347]シャットダウン部322は、仮想サーバ単位でライセンスが管理される場合、サーバ別ライセンス管理テーブル115における、仮想サーバ320のn番目のアプリケーションのライセンスの使用数を0にリセットする。またシャットダウン部322は、このアプリケーションのライセンスの空き数を、初期状態(最大クライアント数)にリセットする。
[ステップS348]シャットダウン部322は、ネットワーク別ライセンス管理テーブル114における、仮想サーバ320が属する仮想ネットワークのn番目のアプリケーションのライセンスの使用数から、シャットダウン時解放ライセンス数を減算する。またアクセス制御部321は、そのアプリケーションのライセンスの空き数から、仮想サーバ320におけるそのアプリケーションの最大クライアント数だけ減算する。
[ステップS349]シャットダウン部322は、変数nに1を加算する。その後、処理がステップS343に進められる。
このようにして、仮想サーバがシャットダウンされる際には、ライセンスの使用状況に関する情報が更新される。
以上説明したように、第2の実施の形態によれば、サーバ接続時に、ライセンスの枯渇によりソフトウェアを使用できない事態の発生が少なくなる。すなわち、第2の実施の形態によれば、サービス要求を、ライセンスに空きのあるサーバに振り分ける。そのため、端末装置がアクセス可能なネットワーク内に、ライセンスに空きのあるサーバが少なくとも1台あれば、その端末装置はサービスの提供を受けることが可能である。しかも第2の実施の形態では、端末装置からアクセス可能なネットワーク内にライセンスの空きがあるサーバがない場合、他のネットワークからサーバが調達され、調達されたサーバによってサービスが提供される。これにより、端末装置からアクセス可能なネットワーク内にライセンスの空きがあるサーバがない場合であっても、端末装置によるサービスの使用が可能となる。その結果、ライセンス枯渇によりサービスが使用できない事態の発生が抑止される。
また第2の実施の形態では、ライセンスに空きのあるサーバが複数ある場合、コネクション数の少ないサーバを、端末装置の接続先にする。これにより、端末装置がコネクション数の多いサーバ(高負荷のサーバ)に接続され、サーバ間の負荷の偏りが増大することを抑止できる。
さらに第2の実施の形態では、ライセンスの管理単位に応じて、ライセンスの使用状況を判断している。これにより、異なるライセンス形態(サーバ単位で発生するライセンス、ネットワーク単位で発生するライセンス)のアプリケーションを実装したサーバが混在したネットワーク環境において、統合的にライセンスを管理できる。
なお、第2の実施の形態では、仮想サーバによってサービスを提供しているが、仮想サーバに代えて物理サーバを用いてもよい。サーバ調達によって物理サーバが属するネットワークを変更するには、例えば、移動先のネットワーク内にプールしておいた物理サーバを起動し、調達された物理サーバの機能を、新たに起動した物理サーバにマイグレーションする。
また、第2の実施の形態では、ライセンスにおいて、サービスを同時に利用できる端末装置数に制限を設けているが、端末装置数に代えて、ユーザ数による制限を設けることもできる。その場合、ライセンスの使用状況としては、サービス利用のためにログインしたユーザ数をカウントすることとなる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 情報処理装置
1a 記憶手段
1b 判定手段
1c 検出手段
1d 移動手段
1e 接続手段
2a,2b ネットワーク
3a,3b,3c,3d サーバ
4a,4b,・・・ 端末装置

Claims (10)

  1. 情報処理装置が、
    端末装置がアクセス可能な第1のネットワーク内のサーバのライセンスに基づいて、前記端末装置からのサービス要求で指定されたサービスを提供できるサーバが、前記第1のネットワーク内にあるか否かを判定し、
    前記第1のネットワーク内に該サービスを提供できるサーバがない場合、前記第1のネットワーク以外の第2のネットワークから、該サービスを提供可能なライセンスを有するサーバを検出し、
    検出したサーバを前記第1のネットワークに移動する、
    サーバ管理方法。
  2. サーバの検出では、いずれのサービスも利用されておらず、前記端末装置から要求されたサービスを提供可能なライセンスを有するサーバを検出する、
    ことを特徴とする請求項1記載のサーバ管理方法。
  3. サーバの検出では、サービスの提供用にコネクションが使用されていないサーバについて、いずれのサービスも利用されていないと判断する、
    ことを特徴とする請求項1または2に記載のサーバ管理方法。
  4. サービスを提供できるサーバがあるか否かの判定では、サーバ単位でライセンスを管理する場合には、前記サービス要求で指定されたサービスを提供するソフトウェアが実装されており、該サービスのライセンスに定義された最大クライアント数よりも、該サービスの使用のために接続している端末装置数が少ないサーバを、前記サービス要求で指定されたサービスを提供できるサーバと判定する、
    ことを特徴とする請求項1乃至3のいずれかに記載のサーバ管理方法。
  5. サービスを提供できるサーバがあるか否かの判定では、ネットワーク単位でライセンスを管理する場合には、前記第1のネットワーク内の、前記サービス要求で指定されたサービスを提供するソフトウェアが実装された1以上のサーバで、同時にサービスの提供を受けることができる最大クライアント数よりも、該1以上のサーバから該サービスの提供を受けている端末装置数が少ない場合、前記1以上のサーバのいずれかにおいて、前記サービス要求で指定されたサービスを提供できると判定する、
    ことを特徴とする請求項1乃至4のいずれかに記載のサーバ管理方法。
  6. さらに、
    前記第1のネットワーク内に該サービスを提供できるサーバがある場合、該サーバと前記端末装置との通信を接続し、前記第1のネットワーク内に該サービスを提供できるサーバがない場合、前記第1のネットワークに移動したサーバと、前記端末装置との通信を接続する、
    ことを特徴とする請求項1乃至5のいずれかに記載のサーバ管理方法。
  7. 前記端末装置との通信の接続では、前記第1のネットワーク内に該サービスを提供できるサーバが複数ある場合、該複数のサーバのうち負荷の少ないサーバと、前記端末装置との通信接続を行う、
    ことを特徴とする請求項1乃至6のいずれかに記載のサーバ管理方法。
  8. 前記端末装置との通信接続では、前記端末装置との間で接続されたコネクション数が少ないサーバほど、負荷が少ないと判定する、
    ことを特徴とする請求項7記載のサーバ管理方法。
  9. 端末装置がアクセス可能な第1のネットワーク内のサーバのライセンスに基づいて、前記端末装置からのサービス要求で指定されたサービスを提供できるサーバが、前記第1のネットワーク内にあるか否かを判定する判定手段と、
    前記第1のネットワーク内に該サービスを提供できるサーバがない場合、前記第1のネットワーク以外の第2のネットワークから、該サービスを提供可能なライセンスを有するサーバを検出する検出手段と、
    検出したサーバを前記第1のネットワークに移動する移動手段と、
    を有する情報処理装置。
  10. 情報処理装置に、
    端末装置がアクセス可能な第1のネットワーク内のサーバのライセンスに基づいて、前記端末装置からのサービス要求で指定されたサービスを提供できるサーバが、前記第1のネットワーク内にあるか否かを判定し、
    前記第1のネットワーク内に該サービスを提供できるサーバがない場合、前記第1のネットワーク以外の第2のネットワークから、該サービスを提供可能なライセンスを有するサーバを検出し、
    検出したサーバを前記第1のネットワークに移動する、
    処理を実行させるプログラム。
JP2012193696A 2012-09-04 2012-09-04 サーバ管理方法、情報処理装置、およびプログラム Pending JP2014049057A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012193696A JP2014049057A (ja) 2012-09-04 2012-09-04 サーバ管理方法、情報処理装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012193696A JP2014049057A (ja) 2012-09-04 2012-09-04 サーバ管理方法、情報処理装置、およびプログラム

Publications (1)

Publication Number Publication Date
JP2014049057A true JP2014049057A (ja) 2014-03-17

Family

ID=50608619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012193696A Pending JP2014049057A (ja) 2012-09-04 2012-09-04 サーバ管理方法、情報処理装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP2014049057A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020530172A (ja) * 2017-07-31 2020-10-15 ファンプレイヤー インク.Fanplayr Inc. セグメンテーション・アズ・ア・サービスのための方法及びシステム
JP7463606B1 (ja) 2023-09-19 2024-04-08 株式会社 日立産業制御ソリューションズ 接続切替えサーバおよび接続切替え方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020530172A (ja) * 2017-07-31 2020-10-15 ファンプレイヤー インク.Fanplayr Inc. セグメンテーション・アズ・ア・サービスのための方法及びシステム
JP7250017B2 (ja) 2017-07-31 2023-03-31 ファンプレイヤー インク. セグメンテーション・アズ・ア・サービスのための方法及びシステム
JP2023078337A (ja) * 2017-07-31 2023-06-06 ファンプレイヤー インク. セグメンテーション・アズ・ア・サービスのための方法及びシステム
JP7455252B2 (ja) 2017-07-31 2024-03-25 ファンプレイヤー インク. セグメンテーション・アズ・ア・サービスのための方法及びシステム
JP7463606B1 (ja) 2023-09-19 2024-04-08 株式会社 日立産業制御ソリューションズ 接続切替えサーバおよび接続切替え方法

Similar Documents

Publication Publication Date Title
US10380504B2 (en) Machine learning with distributed training
CN100578455C (zh) 提交给网格环境的网格作业使用前的资源功能性验证
US20140281308A1 (en) Storage unit selection for virtualized storage units
JP2022536944A (ja) クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング
US7203770B2 (en) Apparatus and method of supporting configuration of storage system
US10439957B1 (en) Tenant-based management system and method for distributed computing environments
US11620571B2 (en) Machine learning with distributed training
US20030172069A1 (en) Access management server, disk array system, and access management method thereof
US10944815B2 (en) Service location management in computing systems
US20090328151A1 (en) Program, apparatus, and method for access control
CN111343262B (zh) 分布式集群登录方法、装置、设备和存储介质
US11770704B2 (en) Distance based session roaming
JP6364160B2 (ja) メニュー制御方法、メニュー制御装置およびメニュー制御プログラム
JPWO2006040812A1 (ja) 運用管理プログラム、運用管理方法および運用管理装置
JP3782429B2 (ja) 負荷分散システム及び計算機管理プログラム
JP2014049057A (ja) サーバ管理方法、情報処理装置、およびプログラム
JP2015022501A (ja) 構築装置、構築方法、及び構築プログラム
US20220318433A1 (en) Provisioning a computing subsystem with disaggregated computing hardware resources selected in compliance with a physical location requirement of a workload
US10291616B1 (en) Resource authorization system and method
JP6244496B2 (ja) サーバストレージシステムの管理システム及び管理方法
JP5660986B2 (ja) データ処理システム及びデータ処理方法及びプログラム
WO2022197444A1 (en) Dynamically acquiring scoped permissions to perform operations in compute capacity and resources