(57)【要約】      （修正有）【課題】ユーザに仮想マシンを割り当てる仮想マシン割当方法、プログラム、仮想マシン割当装置、仮想マシン割当システムを提供する。【解決手段】仮想マシン割当方法は、予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に仮想マシンを待ち行列に登録されているユーザに対して割り当てる。【選択図】図１０
2020119027.tif 000002
【特許請求の範囲】
【請求項１】
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、
利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、
利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる、
仮想マシン割当方法。
【請求項２】
請求項１に記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンの利用を要求してきた順番でユーザを前記待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されている順番でユーザに対して割り当てる、
仮想マシン割当方法。
【請求項３】
請求項１又は２に記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンが新たに利用可能となる見込み状況を調べ、当該調べた見込み状況を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【請求項４】
請求項１乃至３のいずれかに記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【請求項５】
請求項４に記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンに特定のプログラムを適用するために必要な時間に基づいて、前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【請求項６】
請求項５に記載の仮想マシン割当方法であって、
仮想マシンに前記特定のプログラムを適用したときにかかった時間を計測して記憶し、
利用可能な仮想マシンが存在しない場合に、前記記憶された時間に基づいて、前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【請求項７】
請求項５又は６に記載の仮想マシン割当方法であって、
複数種類の前記特定のプログラム毎の、当該特定のプログラムを仮想マシンに適用するために必要な時間に基づいて、複数種類の前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【請求項８】
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、
利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、
利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる、
処理を情報処理装置に実行させるためのプログラム。
【請求項９】
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段、
を備えた仮想マシン割当装置。
【請求項１０】
仮想マシンを構築する仮想マシンサーバと、
前記仮想マシンサーバに構築された仮想マシンをユーザに割り当てる仮想マシン割当装置と、を備え、
前記仮想マシン割当装置は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段を備えた、
仮想マシン割当システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに仮想マシンを割り当てる仮想マシン割当方法、プログラム、仮想マシン割当装置、仮想マシン割当システムに関する。
【背景技術】
【０００２】
サーバ上で仮想マシンを稼働させ、ユーザの情報処理端末にデスクトップ環境を提供するＶＤＩ（Ｖｉｒｔｕａｌ  Ｄｅｓｋｔｏｐ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）システムがある。そして、ＶＤＩシステムでは、効率化のため、ユーザごとに仮想マシンを用意せずに、サーバ上でプールしている仮想マシンをユーザが利用する毎に割り当てる共有方式がある。ＶＤＩシステムの一例としては、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１５−５０７２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、上述したＶＤＩシステムの共有方式では、登録されているユーザ全員が同時に利用しないことを想定し、実際のユーザ数よりも用意する仮想マシン数を少なくすることが一般的である。そして、ＶＤＩシステムでは、ユーザがＶＤＩシステムにログインして仮想マシンを利用する際には、利用可能な仮想マシンを選択してユーザに割り当てる処理を行う。
【０００５】
しかしながら、ＶＤＩシステムの共有方式では、仮想マシンの利用を要求するユーザに対して、仮想マシンを割り当てることができない場合が生じる。例えば、事前に用意されている仮想マシン数を超えた数のユーザから利用要求があった場合や、空いている仮想マシンは存在するものの提供する準備が整っていない場合には、割り当てる仮想マシンが不足し、仮想マシンを割り当てることができない。
【０００６】
なお、仮想マシンを提供する準備が整っていない場合とは、例えば、仮想マシンに実装されるアプリケーション（例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）にセキュリティパッチや強化プログラム（更新プログラム）の実装が完了していない場合が挙げられる。高セキュリティを維持するために更新プログラムが適用された仮想マシンのみを使用すべきであるが、一度に全仮想マシンに更新プログラムを適用することはシステム全体の負荷が高くなるおそれがある。このため、仮想マシンに対する更新プログラムの適用処理を分散する必要があり、一時的に更新プログラムが適用されていない仮想マシンが存在し、かかる更新プログラムが適用されていない仮想マシンは利用できないこととなる。
【０００７】
上述したように、仮想マシンの利用を希望するユーザに対して仮想マシンを割り当てられない場合には、ユーザの利便性が低下する、という問題が生じる。例えば、ユーザは、仮想マシンを利用しようとしてＶＤＩシステムにログインした際に、利用可能な仮想マシンがなければ、仮想マシンを利用することなく強制的にログアウトされてしまう。そして、仮想マシンの割り当てはログイン順であるため、その後、ユーザには頻繁にログイン操作を行うことが強いられてしまう。
【０００８】
このため、本発明の目的は、仮想マシンを利用するユーザの利便性が低下する、ことを解決することができる仮想マシン割当方法、プログラム、仮想マシン割当装置、仮想マシン割当システム、を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一形態である仮想マシン割当方法は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、
利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、
利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる、
という構成をとる。
【００１０】
また、本発明の一形態であるプログラムは、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、
利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、
利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる、
処理を情報処理装置に実行させる、
という構成をとる。
【００１１】
また、本発明の一形態である仮想マシン割当装置は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段、
を備えた、
という構成をとる。
【００１２】
また、本発明の一形態である仮想マシン割当システムは、
仮想マシンを構築する仮想マシンサーバと、
前記仮想マシンサーバに構築された仮想マシンをユーザに割り当てる仮想マシン割当装置と、を備え、
前記仮想マシン割当装置は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段を備えた、
という構成をとる。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、仮想マシンを利用するユーザの利便性の向上を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態１における仮想マシン割当システムの全体構成を示すブロック図である。
【図２】図１に開示した管理サーバ及び仮想マシンサーバの構成を示すブロック図である。
【図３】図２に開示した待ち行列に記憶される情報の一例を示す図である。
【図４】図２に開示した仮想マシン情報に記憶される情報の一例を示す図である。
【図５】図２に開示した仮想マシン情報に記憶される情報の一例を示す図である。
【図６】図２に開示した計測テーブルに記憶される情報の一例を示す図である。
【図７】図２に開示した管理サーバの動作を示すフローチャートである。
【図８】図２に開示した管理サーバの動作を示すフローチャートである。
【図９】図２に開示した管理サーバの動作を示すフローチャートである。
【図１０】本発明の実施形態２における仮想マシン割当方法を示すフローチャートである。
【図１１】本発明の実施形態２における仮想マシン割当装置の構成を示すブロック図である。
【図１２】本発明の実施形態２における仮想マシン割当システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図９を参照して説明する。図１乃至図６は、仮想マシン割当システムの構成を説明するための図である。図７乃至図９は、仮想マシン割当システムの動作を説明するための図である。
【００１６】
［構成］
図１に示すように、本実施形態における仮想マシン割当システムは、ネットワークＮを介して接続された、管理システム１０と、仮想マシンサーバ２０と、ユーザ端末３０と、を備えている。そして、仮想マシン割当システムは、管理サーバ１０が、仮想マシンサーバ２０上に構築された仮想マシン２１を、ログインしてきた各ユーザ端末３０に割り当るよう制御する、というものである。以下、各構成について詳述する。
【００１７】
上記ユーザ端末３０は、予め仮想マシン２１を利用するよう登録されたユーザが操作する情報処理装置である。ユーザ端末３０は、ネットワークＮを介して管理サーバ１０にログインして仮想マシン２１の利用を要求することで、当該管理サーバ１０から仮想マシンサーバ２０上の仮想マシン２１を割り当てられる。これにより、ユーザ端末３０は、ネットワークＮを介して仮想マシン２１を利用することができる。
【００１８】
上記仮想マシンサーバ２０は、演算装置と記憶装置とを備えた１台又は複数台の情報処理装置にて構成されている。そして、仮想マシンサーバ２０は、演算装置がプログラムを実行することで構築された複数の仮想マシン２１を備えている。なお、仮想マシン２１の数は、例えば予め登録されたユーザの数よりも少ないが、いかなる数であってもよい。
【００１９】
上記管理サーバ１０（仮想マシン割当装置）は、演算装置と記憶装置とを備えた１台又は複数台の情報処理装置にて構成されている。そして、管理サーバ１０は、図２に示すように、演算装置がプログラムを実行することで構築された仮想マシン管理部１１とコネクションブローカー１６とを備えている。仮想マシン管理部１１は、割当部１２、計測部１３、時間算出部１４、計測テーブル１５、を備えている。また、コネクションブローカー１６は、ユーザ情報１７、仮想マシン情報１８、待ち行列１９、を記憶している。
【００２０】
上記割当部１２（第一手段）は、仮想マシンサーバ２０上の仮想マシン２１を管理し、当該仮想マシン２１をユーザ端末３０に対して割り当てる処理を行う。この割り当てる処理を行うために、割当部１２は、事前に仮想マシン２１を利用するユーザ端末３０の認証情報などのユーザ情報１７を登録して管理している。そして、割当部１２は、仮想マシン２１の利用を要求するためにユーザ端末３０からログインを受けると、ユーザ情報１７に基づいて、ユーザ端末３０の認証を行う。そして、割当部１２は、ユーザ端末３０のログインが成功すると、後述するように、待ち行列１９と仮想マシン情報１８とを参照して、仮想マシン２１を割り当てる。
【００２１】
具体的に、割当部１２は、まず、待ち行列１９に登録されるユーザが存在するか否かを調べる。ここで、待ち行列１９は、例えば、図３に示すように、過去にログインしてきたが仮想マシン２１を割り当てることができず、仮想マシン２１の割り当てを待つユーザのリストである。なお、待ち行列１９は、ログインした順序でユーザ端末３０を登録する。そして、割当部１２は、待ち行列１９に登録されているユーザが存在する場合には、現在登録されている最後の順序のユーザの次に、ログインしてきたユーザ端末３０に対応するユーザのユーザＩＤといった情報を登録する。
【００２２】
一方、割当部１２は、待ち行列１９に登録されているユーザが存在しない場合には、仮想マシン情報１８を調べ、割り当て可能な仮想マシン２１が存在するか否かを調べる。ここで、割り当て可能な仮想マシン２１とは、例えば、他のユーザ端末３０に割り当てられておらず、かつ、仮想マシン２１に実装されるアプリケーション（例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）にセキュリティパッチや強化プログラムといった更新プログラムの適用（実装）が完了しているものをいう。このため、割当部１２は、常に仮想マシンサーバ２０上の仮想マシン２１の状況を調べ、各仮想マシン２１の状況を仮想マシン情報１８に記憶して管理している。
【００２３】
ここで、割当部１２は、以下のようにして仮想マシン情報１８を管理している。割当部１２は、各仮想マシン２１がいずれかのユーザ端末３０に割り当てられているか否かを調べる。また、割当部１２は、各仮想マシン２１に適用が必要な更新プログラムを調べる。そして、割当部１２は、図４及び図５の仮想マシン情報１８に示すように、仮想マシン毎に、「仮想マシンＩＤ」と、ユーザ端末３０に割り当てられているか、更新プログラムの適用が必要か、を表す「状況」と、適用が必要な「更新プログラム」と、これらの情報に基づく「割当可否」を登録する。例えば、図４の仮想マシン情報１８の例では、「仮想マシンＩＤ：ＶＭ０３」の仮想マシン２１が、いずれのユーザ端末３０にも利用されておらず、更新プログラムの適用も完了しているため、割り当てが可能となっている。また、図５の仮想マシン情報１８の例では、いずれの仮想マシン２１も割り当て不可能であり、特に、「仮想マシンＩＤ：ＶＭ０２」と「仮想マシンＩＤ：ＶＭ０３」の仮想マシン２１は、ユーザ端末３０に割り当てられていないが、それぞれ「更新プログラム」に記載されている更新プログラムの適用が必要である。
【００２４】
そして、割当部１２は、上述した仮想マシン情報１８を参照して、割り当て可能な仮想マシン２１が存在する場合には、かかる仮想マシン２１をログインしてきたユーザのユーザ端末３０に割り当てる。一方で、割当部１２は、割り当て可能な仮想マシン２１が存在しない場合には、かかるユーザ端末３０のユーザ情報を、上述した図３に示すような待ち行列１９に登録する。なお、待ち行列１９に少なくとも１つのユーザ情報が登録されている際に、別のユーザ端末３０から仮想マシン２１の利用を要求すべくログインがあった場合には、割当部１２はログイン順にユーザ情報を待ち行列に登録することとなる。
【００２５】
また、上述したように割当部１２が待ち行列１９にユーザ情報を登録すると、算出部１４（第二手段）が、仮想マシン２１が新たに利用可能となりユーザ端末３０に割り当てることが可能となる見込み状況を調べ、かかる見込み状況を待ち行列１９に登録したユーザのユーザ端末３０に対して通知する。本実施形態では、算出部１４は、仮想化マシン２１が新たに割り当て可能となる見込み状況として、仮想マシンが新たに利用可能となるまでの待ち時間を算出し、当該算出した待ち時間をユーザ端末３０に通知する。具体的に、算出部１４は、更新プログラムの適用が必要であるために割り当て不可となっている仮想マシン２１については、必要とされる更新プログラムの適用にかかる適用時間を算出し、当該適用時間を待ち時間としてユーザ端末３０に通知する。なお、算出部１４は、例えば、待ち時間を以下のようにして算出する。
【００２６】
まず、管理サーバ１０の計測部１３（第三手段）は、上述した待ち時間を算出するために利用する情報として、任意の仮想マシン２１に更新プログラム（特定のプログラム）を適用したときに、当該更新プログラムの適用（実装）にかかる時間である適用時間を計測する。このとき、計測部１３は、更新プログラムが複数種類存在する場合には、更新プログラム毎に、適用にかかる適用時間を計測する。そして、計測部１３は、更新テーブル１５に、更新プログラム毎の実際の適用時間を記憶する。なお、図６は、更新テーブル１５の一例を示しており、更新プログラム毎（更新プログラムＩＤ毎）に、計測された適用時間が対応付けられて記憶される。なお、同一の更新プログラムについて複数回にわたって適用時間が計測された場合には、その平均時間や最長時間を、適用時間として記憶してもよい。
【００２７】
そして、算出部１４は、割り当て不可である仮想マシン２１について、当該仮想マシン２１が適用を必要とする更新プログラムと、更新テーブル１５に記憶されている更新プログラム毎の適用時間と、に基づいて待ち時間を算出する。例えば、図５の仮想マシン情報１８の例では、「仮想マシンＩＤ：ＶＭ０３」の仮想マシン２１については、「更新プログラム：ＡＡＡ」の適用時間を待ち時間として算出する。また、図５の「仮想マシンＩＤ：ＶＭ０２」の仮想マシン２１については、「更新プログラム：ＡＡＡ」と「更新プログラム：ＢＢＢ」との適用時間に基づいて待ち時間を算出する。このように複数の更新プログラムの適用が必要な場合には、それぞれの更新プログラムの適用時間の和を待ち時間としてもよく、これらのうち最長の適用時間を待ち時間としてもよい。
【００２８】
上述したように、割り当て不可である仮想マシン２１の待ち時間を算出した算出部１４は、当該待ち時間を、待ち行列１９に登録されたユーザのユーザ端末３０に対して通知する。このとき、待ち行列１９に登録されたユーザ端末３０が１つである場合には、割り当て不可である仮想マシン２１の待ち時間のうち、最短の待ち時間をユーザ端末に３０に通知する。待ち行列１９に登録されたユーザ端末３０が複数である場合には、待ち行列１９に登録されているユーザ端末３０の登録順序が早い順に、割り当て不可である仮想マシン２１の待ち時間のうち短い待ち時間から、それぞれユーザ端末に３０に通知する。例えば、待ち行列１９に１番目に登録されているユーザ端末３０に対しては、割り当て不可である仮想マシン２１の待ち時間のうち最も短い待ち時間が通知され、待ち行列１９に２番目に登録されているユーザ端末３０に対しては、割り当て不可である仮想マシン２１の待ち時間のうち２番目に短い待ち時間が通知されることとなる。
【００２９】
なお、算出部１４は、仮想化マシン２１が新たに利用可能となる見込み状況として、上述した待ち時間に限らず、他の状況を調べてユーザ端末３０に通知してもよい。一例として、算出部１４は、ユーザ端末３０に割り当てられている仮想マシン２１の利用時間を調べ、過去のユーザ端末３０の利用時間に基づいて、仮想マシン２１の利用が終了すると予想される時刻までの時間を待ち時間として算出して通知してよい。
【００３０】
また、上記割当部１２は、待ち行列１９に登録されているユーザ端末３０に対する仮想マシン２１の割り当てを行う。具体的に、割当部１２は、一定の時間間隔で仮想マシン２１のユーザ端末３０に対する割り当て状況や更新プログラムの適用状況を調べ、割り当て不可から新たに割り当て可能となった仮想マシン２１が生じたか否かを調べる。そして、割当部１２は、他のユーザ端末３０に対する割り当てが終了したり、必要な更新プログラムの適用が完了することによって、新たに割り当て可能となった仮想マシン２１が生じたことを検出すると、かかる仮想マシン２１を待ち行列１９の登録されているユーザ端末３０に割り当てる。このとき、割当部１２は、待ち行列１９に登録されているユーザ端末３０のうち順序が先のものから、割り当て可能となった仮想マシン２１を順次割り当てる。
【００３１】
［動作］
次に、上述した仮想マシン割当システムによる動作を、主に図７乃至９のフローチャートを参照して説明する。まず、図７を参照して、各更新プログラムの適用にかかる時間である適用時間を計測して記憶する動作を説明する。管理サーバ１０は、仮想マシン２１に更新プログラムの適用が開始されると（図７のステップＳ１）、その開始時刻を記録し（図７のステップＳ２）、更新プログラムの適用が終了するまでの時間である適用時間を計測する（図７のステップＳ３）。更新プログラムの適用が完了すると、計測した適用時間を、その更新プログラムの適用にかかる時間として、図６に示すように計測テーブル１５に記憶して保存する（図７のステップＳ４）。
【００３２】
次に、図８を参照して、ログインしてきたユーザ端末３０に仮想マシン２１を割り当てる動作を説明する。管理サーバ１０は、ユーザ端末３０からのログイン要求を受けると、ユーザ情報１７に基づいてユーザ認証を行う。管理サーバ１０は、ユーザ認証が成功すると、ユーザ端末３０のログインを許可する（図８のステップＳ１１）。
【００３３】
続いて、管理サーバ１０は、待ち行列１９が空であるか否かを調べる（図８のステップＳ１２）。つまり、管理サーバ１０は、待ち行列１９に仮想マシン２１の割り当て待ちをしているユーザが既に存在しているかを確認する。待ち行列１９が空であり、待ち行列１９に登録されているユーザが存在しない場合には（図８のステップＳ１２でＹｅｓ）、仮想マシン情報１８を調べ、割り当て可能な仮想マシン２１が存在するか否かを調べる（図８のステップＳ１３）。そして、他のユーザ端末３０に割り当てられておらず、更新プログラムの適用が完了していることで割り当て可能となっている仮想マシン２１が存在する場合には（図８のステップＳ１４でＹｅｓ）、その仮想マシン２１をユーザ端末３０に割り当てる（図８のステップＳ１５）。これにより、ユーザ端末３０にて仮想マシン２１が利用可能となる。
【００３４】
また、管理サーバ１０は、ユーザ端末３０のログインを許可した後（図８のステップＳ１１）に、待ち行列１９が空ではなく、１人以上のユーザが既に登録されている場合には（図８のステップＳ１２でＮｏ）、待ち行列１９に、ログインしたユーザ端末３０を追加して登録する（図８のステップＳ１６）。このとき、管理サーバ１０は、現在登録されている最後の順序のユーザ端末３０の次に、ログインしたユーザ端末３０を追加して登録する。
【００３５】
また、管理サーバ１０は、待ち行列１９が空であっても（図８のステップＳ１２でＹｅｓ）、割り当て可能となっている仮想マシン２１が存在しない場合には（図８のステップＳ１４でＮｏ）、待ち行列１９にログインしたユーザ端末３０を追加して登録する（図８のステップＳ１６）。このとき、管理サーバ１０は、現在登録されている最後の順序のユーザ端末３０の次に、ログインしたユーザ端末３０を追加して登録する。
【００３６】
そして、管理サーバ１０は、待ち行列１９にユーザを追加登録した後に（図８のステップＳ１６）、仮想マシン２１の割り当てが行われるまでの待ち時間を算出し（図８のステップＳ１７）、かかる待ち時間を、待ち行列１９に追加したユーザのユーザ端末３０に表示して通知する（図８のステップＳ１８）。このとき、管理サーバ１０は、更新プログラムの適用が必要であるために割り当て不可となっている仮想マシン２１について、必要とされる更新プログラムの適用にかかる適用時間を計測テーブル１５に記憶された情報に基づいて算出し、当該適用時間を待ち時間としてユーザ端末３０に通知する。なお、待ち行列１９に登録されたユーザが複数である場合には、登録されているユーザ端末３０の登録順序が早い順に、割り当て不可である仮想マシン２１の待ち時間のうち短い待ち時間から対応付けて、それぞれユーザ端末に３０に通知する。
【００３７】
次に、図９を参照して、待ち行列１９に登録されているユーザのユーザ端末３０に仮想マシン２１を割り当てる動作を説明する。管理サーバ１０は、一定の時間間隔で待ち行列１９が空であるか否かを確認する（図９のステップＳ２１）。待ち行列１９が空である場合には（図９のステップＳ２１でＹｅｓ）、一定時間スリープし（図９のステップＳ２５）、再度、待ち行列１９の確認を行う（図９のステップＳ２１）。
【００３８】
管理サーバ１０は、待ち行列１９にユーザが登録されている場合には（図９のステップＳ２１でＮｏ）、そのユーザのユーザ端末３０に割り当て可能な仮想マシン２１を探索する（図９のステップＳ２２）。つまり、仮想マシン情報１８を調べ、他のユーザ端末３０に対する割り当てが終了したり、必要な更新プログラムの適用が完了することによって、新たに割り当て可能となった仮想マシン２１が生じたか否かを調べる。そして、管理サーバ１０は、割り当て可能な仮想マシン２１が生じると（図９のステップＳ２３でＹｅｓ）、かかる仮想マシン２１を待ち行列１９の登録されているユーザのユーザ端末３０に割り当てる（図９のステップＳ２４）。このとき、割当部１２は、待ち行列１９に登録されているユーザ端末３０のうち順序が先のものから、割り当て可能となった仮想マシン２１を順次割り当てる。なお、割り当て可能な仮想マシン２１が存在しない場合には（図９のステップＳ２３でＮｏ）、一定時間スリープして（図９のステップＳ２５）、上述した処理を繰り返す。
【００３９】
以上のように、本発明では、ユーザ端末３０に割り当てる仮想マシン２１が不足した場合には、ユーザを待ち行列１９に登録し、後に割り当て可能となった仮想マシン２１の割り当てを行う。これにより、ユーザは、仮想マシン２１の割り当て要求を何度も行う必要がないため、仮想マシンを利用するユーザの利便性の向上を図ることができる。
【００４０】
また、本発明では、待ち行列１９に登録されるユーザには、過去の更新プログラムの適用時間を考慮して、仮想マシンに更新プログラムの適用が完了して割り当て可能となるまでの待ち時間を算出して、割り当ての見込み状況を表示している。これにより、ユーザは待ち時間など割り当ての見込み状況を知ることができ、さらにユーザの利便性の向上を図ることができる。
【００４１】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１０乃至図１２を参照して説明する。図１０は、本実施形態における仮想マシン割当方法を示すフローチャートである。図１１は、本実施形態における仮想マシン割当装置の構成を示すブロック図である。図１２は、本実施形態における仮想マシン割当システムの構成を示すブロック図である。なお、本実施形態では、実施形態１で説明した仮想マシン割当方法、仮想マシン割当システムの構成及び動作の概略を示している。
【００４２】
図１０に示すように、本実施形態おける仮想マシン割当方法は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ（ステップＳ１０１）、
利用可能な仮想マシンが存在する場合に（ステップＳ１０１でＹｅｓ）、当該利用可能な仮想マシンをユーザに対して割り当て（ステップＳ１０２）、
利用可能な仮想マシンが存在しない場合に（ステップＳ１０１でＮｏ）、ユーザを待ち行列に登録し（ステップＳ１０３）、新たに利用可能な仮想マシンが生じた際に（ステップＳ１０４でＹｅｓ）、当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる（ステップＳ１０５）、
という構成を有する。
【００４３】
そして、上記仮想マシン割当方法は、図１１に示すように、仮想マシン割当装置１００がプログラムを実行することで構築された第一手段１０１によって実現される。
【００４４】
さらに、上記仮想マシン割当方法は、図１２に示すように、
仮想マシン２０１を構築する仮想マシンサーバ２００と、
前記仮想マシンサーバ２００に構築された仮想マシン２０１をユーザに割り当てる仮想マシン割当装置１００と、を備え、
前記仮想マシン割当装置１００は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段１０１を備えた、
仮想マシン割当システムによっても実現される。
【００４５】
上記発明によると、ユーザに割り当てる仮想マシンが不足した場合には、ユーザを待ち行列に登録し、後に割り当て可能となった仮想マシンの割り当てを行う。これにより、ユーザは、仮想マシンの割り当て要求を何度も行う必要がないため、仮想マシンを利用するユーザの利便性の向上を図ることができる。
【００４６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における仮想マシン割当方法、プログラム、仮想マシン割当装置、仮想マシン割当システムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００４７】
（付記１）
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、
利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、
利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる、
仮想マシン割当方法。
【００４８】
（付記２）
付記１に記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンの利用を要求してきた順番でユーザを前記待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されている順番でユーザに対して割り当てる、
仮想マシン割当方法。
【００４９】
（付記３）
付記１又は２に記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンが新たに利用可能となる見込み状況を調べ、当該調べた見込み状況を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【００５０】
（付記４）
付記１乃至３のいずれかに記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【００５１】
（付記５）
付記４に記載の仮想マシン割当方法であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンに特定のプログラムを適用するために必要な時間に基づいて、前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【００５２】
（付記６）
付記５に記載の仮想マシン割当方法であって、
仮想マシンに前記特定のプログラムを適用したときにかかった時間を計測して記憶し、
利用可能な仮想マシンが存在しない場合に、前記記憶された時間に基づいて、前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【００５３】
（付記７）
付記５又は６に記載の仮想マシン割当方法であって、
複数種類の前記特定のプログラム毎の、当該特定のプログラムを仮想マシンに適用するために必要な時間に基づいて、複数種類の前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当方法。
【００５４】
（付記８）
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、
利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、
利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる、
処理を情報処理装置に実行させるためのプログラム。
【００５５】
（付記９）
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段、
を備えた仮想マシン割当装置。
【００５６】
（付記９．１）
付記９に記載の仮想マシン割当装置であって、
前記第一手段は、利用可能な仮想マシンが存在しない場合に、仮想マシンの利用を要求してきた順番でユーザを前記待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されている順番でユーザに対して割り当てる、
仮想マシン割当装置。
【００５７】
（付記９．２）
付記９又は９．１に記載の仮想マシン割当装置であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンが新たに利用可能となる見込み状況を調べ、当該調べた見込み状況を前記待ち行列に登録されているユーザに対して通知する第二手段を備えた、
仮想マシン割当装置。
【００５８】
（付記９．３）
付記９又は９．１に記載の仮想マシン割当装置であって、
利用可能な仮想マシンが存在しない場合に、仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する第二手段を備えた、
仮想マシン割当装置。
【００５９】
（付記９．４）
付記９．３に記載の仮想マシン割当装置であって、
前記第二手段は、利用可能な仮想マシンが存在しない場合に、仮想マシンに特定のプログラムを適用するために必要な時間に基づいて、前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当装置。
【００６０】
（付記９．５）
付記９．４に記載の仮想マシン割当装置であって、
仮想マシンに前記特定のプログラムを適用したときにかかった時間を計測して記憶する第三手段を備え、
前記第二手段は、利用可能な仮想マシンが存在しない場合に、前記記憶された時間に基づいて、前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当装置。
【００６１】
（付記９．６）
付記９．４又は９．５に記載の仮想マシン割当装置であって、
前記第二手段は、複数種類の前記特定のプログラム毎の、当該特定のプログラムを仮想マシンに適用するために必要な時間に基づいて、複数種類の前記特定のプログラムが適用されていないことにより利用不可能である仮想マシンが新たに利用可能となるまでの時間を算出し、当該算出した時間を前記待ち行列に登録されているユーザに対して通知する、
仮想マシン割当装置。
【００６２】
（付記１０）
仮想マシンを構築する仮想マシンサーバと、
前記仮想マシンサーバに構築された仮想マシンをユーザに割り当てる仮想マシン割当装置と、を備え、
前記仮想マシン割当装置は、
予め定めた基準により利用可能な仮想マシンが存在するか否かを調べ、利用可能な仮想マシンが存在する場合に、当該利用可能な仮想マシンをユーザに対して割り当て、利用可能な仮想マシンが存在しない場合に、ユーザを待ち行列に登録し、新たに利用可能な仮想マシンが生じた際に当該仮想マシンを前記待ち行列に登録されているユーザに対して割り当てる第一手段を備えた、
仮想マシン割当システム。
【００６３】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６４】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００６５】
１０  管理サーバ
１１  仮想マシン管理部
１２  割当部
１３  計測部
１４  算出部
１５  計測テーブル
１６  コネクションブローカー
１７  ユーザ情報
１８  仮想マシン情報
１９  待ち行列
２０  仮想マシンサーバ
２１  仮想マシン
３０  ユーザ端末
１００  仮想マシン割当装置
１０１  第一手段
２００  仮想マシンサーバ
２０１  仮想マシン
【図１】
2020119027.tif 000003
【図２】
2020119027.tif 000004
【図３】
2020119027.tif 000005
【図４】
2020119027.tif 000006
【図５】
2020119027.tif 000007
【図６】
2020119027.tif 000008
【図７】
2020119027.tif 000009
【図８】
2020119027.tif 000010
【図９】
2020119027.tif 000011
【図１０】
2020119027.tif 000012
【図１１】
2020119027.tif 000013
【図１２】
2020119027.tif 000014