(57)【要約】【課題】仮想マシンの起動待ち時間を低減すること。【解決手段】起動制御装置１０は、複数の仮想マシンの稼働実績情報を参照して、複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、特定した時間に基づき、仮想マシンの起動順序を決定し、決定した起動順序にしたがって、複数の仮想マシンの起動を制御する。【選択図】図２
2018060378.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、
特定した前記時間に基づき、前記仮想マシンの起動順序を決定し、
決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する処理と、
をコンピュータに実行させることを特徴とする起動制御プログラム。
【請求項２】
前記決定する処理は、特定した前記時間が短くなるにしたがって高い起動順序を決定することを特徴とする請求項１に記載の起動制御プログラム。
【請求項３】
前記決定する処理は、日、週、月または曜日ごとに前記仮想マシンの起動順序を決定することを特徴とする請求項１に記載の起動制御プログラム。
【請求項４】
複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、
特定した前記時間に基づき、前記仮想マシンの起動順序を決定し、
決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する
処理をコンピュータが実行することを特徴とする起動制御方法。
【請求項５】
複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定する特定部と、
特定した前記時間に基づき、前記仮想マシンの起動順序を決定する決定部と、
決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する起動制御部と、
を有することを特徴とする起動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動制御プログラム、起動制御方法及び起動制御装置に関する。
【背景技術】
【０００２】
クラウドサービスの一形態として、プライベートクラウドと呼ばれるものがある。例えば、プライベートクラウドでは、企業に所属する関係者等のユーザのデスクトップ環境等が仮想マシンにより実現される場合がある。
【０００３】
ところが、プライベートクラウドでは、コンピュータリソースの割り当てが企業内に閉じられるので、仮想マシンが起動される時間が特定の時間、例えば始業時間等に集中する場合がある。
【０００４】
このような負荷に対応するために、一例として、起動停止の傾向を参照して負荷が上昇しにくいホストに仮想マシンを配備したり、あるいは起動時に負荷が小さいホストに仮想マシンを移動してから起動したりすることが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３０１７９７号公報
【特許文献２】特開２０１４−０１０７７２号公報
【特許文献３】特開平５−２８２１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、仮想マシンが起動するまでの待ち時間が発生する場合がある。
【０００７】
すなわち、上記の従来技術では、同一のホストに対する仮想マシンの起動命令が同一の時間に重なるのを抑制しようとするものであるが、これを完全に抑制するのは現実的に困難な場合がある。そして、同一のホストに対する仮想マシンの起動命令が同一の時間に重なる場合、複数の仮想マシンの間には起動される順序に差が生じる。例えば、起動された段階では直ちにユーザにより使用されない仮想マシンが先に起動されたり、あるいは起動された段階でユーザにより使用される仮想マシンが後に起動されたりするケースが起こり得る。このように仮想マシンの起動命令が行われた時間から仮想マシンが起動されるまでに待ち時間が発生する場合がある。
【０００８】
１つの側面では、本発明は、仮想マシンの起動待ち時間を低減できる起動制御プログラム、起動制御方法及び起動制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、特定した前記時間に基づき、前記仮想マシンの起動順序を決定し、決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する処理と、をコンピュータに実行させる。
【発明の効果】
【００１０】
仮想マシンの起動待ち時間を低減できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るクラウドシステムの構成例を示す図である。
【図２】図２は、実施例１に係る起動制御装置の機能的構成の一例を示すブロック図である。
【図３】図３は、起動設定データの一例を示す図である。
【図４】図４は、起動履歴データの一例を示す図である。
【図５】図５は、時間差と日加算値の対応関係の一例を示す図である。
【図６】図６は、ポイントの算出結果の一例を示す図である。
【図７】図７は、実施例１に係る履歴登録処理の手順を示すフローチャートである。
【図８】図８は、実施例１に係る優先度更新処理の手順を示すフローチャートである。
【図９】図９は、実施例１に係る起動制御処理の手順を示すフローチャートである。
【図１０】図１０は、実施例１及び実施例２に係る起動制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る起動制御プログラム、起動制御方法及び起動制御装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システム構成］
図１は、実施例１に係るクラウドシステムの構成例を示す図である。図１に示すクラウドシステム１は、クライアント端末３０Ａ〜３０Ｃに対し、情報処理装置２０が実行するサーバの仮想化を通じてＩａａＳ（Infrastructure  as  a  Service）などのクラウドサービス、いわゆるプライベートクラウドを提供するものである。
【００１４】
図１に示すクラウドシステム１には、起動制御装置１０と、情報処理装置２０と、クライアント端末３０Ａ〜３０Ｃとが収容される。なお、図１には、説明の便宜上、３つのクライアント端末を図示したが、これはあくまで例示であり、クラウドシステム１が任意の数のクライアント端末を収容できるのは言うまでもない。なお、以下では、クライアント端末３０Ａ〜３０Ｃの各装置を総称する場合には「クライアント端末３０」と記載する場合がある。
【００１５】
これら起動制御装置１０及びクライアント端末３０の間は、ネットワークＮＷを介して相互に通信可能に接続される。このネットワークＮＷには、有線または無線を問わず、インターネット（Internet）を始め、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。
【００１６】
クライアント端末３０は、ユーザによって使用される端末装置である。ここで言う「ユーザ」とは、クラウドシステム１を運用する企業等の組織に所属する関係者全般を指し、例えば、サーバの仮想化によって実現される仮想マシンが提供する機能、例えばデスクトップ環境等を利用する者が挙げられる。
【００１７】
一実施形態として、クライアント端末３０には、パーソナルコンピュータを採用できる他、各種の携帯端末装置をクライアント端末３０として採用することもできる。例えば、携帯端末装置には、スマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。このように任意の種類の情報処理装置を採用できるクライアント端末３０は、一例として、シンクライアントやゼロクライアントとして実装される。
【００１８】
情報処理装置２０は、クライアント端末３０にＩａａＳ等のサービスを提供するコンピュータである。
【００１９】
一実施形態として、情報処理装置２０は、１つ以上のホストマシンを含んで構築される。さらに、情報処理装置２０には、コンピュータの仮想化を実現する仮想化ソフトウェア、例えばハイパーバイザ等のソフトウェアが実装される。このような実装の下、情報処理装置２０は、起動制御装置１０から仮想マシンの起動命令を受け付けた場合、当該仮想マシンに対し、ＩＣＴ（Information  and  Communication  Technology）リソースがプール化されたリソースプールから各種のリソースを割り当てる。例えば、情報処理装置２０は、起動命令が受け付けられた仮想マシンに設定されたテンプレート、例えばＣＰＵ（Central  Processing  Unit）の性能やディスクの容量などのタイプに対応するＣＰＵ、メモリやディスクの使用率を割り当てる。この他、情報処理装置２０は、上記の仮想マシンにネットワークのリソース、例えばＮＩＣ（Network  Interface  Card）を割り当てる。これらリソースの割り当ての後、情報処理装置２０は、仮想マシンのディスクイメージを作成し、当該ディスクイメージを用いて仮想マシンを起動する。
【００２０】
起動制御装置１０は、上記のプライベートクラウドの一環として、クライアント端末３０が利用する仮想マシンを手動または自動により起動させる起動制御サービスを提供するコンピュータである。
【００２１】
一実施形態として、起動制御装置１０は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の起動制御サービスに関する機能を実現する起動制御プログラムを所望のコンピュータにインストールさせることによって実装できる。ここでは、図１には、説明の便宜上、上記の起動制御サービスに関する機能が抜粋された起動制御装置１０が情報処理装置２０とは別に実装される場合を例示するが、当該機能が情報処理装置２０に実装されることとしてもかまわない。その場合、一例として、情報処理装置２０上で仮想化ソフトウェアのゲストＯＳ（Operating  System）の１つとして実行されるＩａａＳ管理用のソフトウェアに上記の起動制御サービスに関する機能をアドオンさせることができる。
【００２２】
なお、クラウドシステム１は、インフラ２が企業等の当事者により運営されるオンプレミス型として実装されることとしてもよいし、また、インフラ２がクラウド事業者等の第三者により運営されるホステッド型として実装されることとしてもかまわない。
【００２３】
［起動制御装置１０の構成］
図２は、実施例１に係る起動制御装置１０の機能的構成の一例を示すブロック図である。図２に示すように、起動制御装置１０は、通信Ｉ／Ｆ（InterFace）部１１と、記憶部１３と、制御部１５とを有する。なお、図２には、データの授受の関係を表す実線が示されているが、図２には、説明の便宜上、最小限の部分が示されているに過ぎない。すなわち、各処理部に対するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることを妨げない。
【００２４】
通信Ｉ／Ｆ部１１は、他の装置、例えば情報処理装置２０やクライアント端末３０との間で通信制御を行うインタフェースである。
【００２５】
一実施形態として、通信Ｉ／Ｆ部１１には、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。例えば、通信Ｉ／Ｆ部１１は、クライアント端末３０から各種の指示入力を受け付けることができる。このような入力の一例として、仮想マシンの起動要求の他、情報処理装置２０上で動作する仮想マシンに対する各種の操作などが挙げられる。また、通信Ｉ／Ｆ部１１は、情報処理装置２０上で動作する仮想マシンの出力をクライアント端末３０に出力することができる。このような出力の一例として、クライアント端末３０からの指示入力または仮想マシンが実行中であるアプリケーションプログラム等にしたがって更新されるデスクトップ画面の表示データもしくは更新前後の差分の表示データなどが挙げられる。
【００２６】
記憶部１３は、制御部１５で実行されるＯＳを始め、上記の起動制御サービスに関する機能を実現するアプリケーションプログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
【００２７】
一実施形態として、記憶部１３は、起動制御装置１０における補助記憶装置として実装することができる。例えば、記憶部１３には、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などを採用できる。なお、記憶部１３は、必ずしも補助記憶装置として実装されずともよく、起動制御装置１０における主記憶装置として実装することもできる。この場合、記憶部１３には、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory)やフラッシュメモリを採用できる。
【００２８】
記憶部１３は、制御部１５で実行されるプログラムに用いられるデータの一例として、起動設定データ１３ａと、起動履歴データ１３ｂと、起動優先度データ１３ｃとを記憶する。これらのデータ以外にも、次のようなデータを記憶することもできる。例えば、記憶部１３は、ユーザに付与されたアカウント情報やクライアント端末３０のネットワークアドレスなどの情報も併せて記憶することもできる。
【００２９】
起動設定データ１３ａは、仮想マシンを起動する設定に関するデータである。
【００３０】
一実施形態として、起動設定データ１３ａには、仮想マシンごとに仮想マシンを自動的に起動する設定時刻が対応付けられたデータを採用できる。図３は、起動設定データ１３ａの一例を示す図である。図３には、Ｕｓｅｒ００１〜Ｕｓｅｒ００３の仮想マシン名で識別される仮想マシンに関する３つのレコードが抜粋して示されている。図３に示すように、３つの仮想マシンは、いずれも土曜日および日曜日を休日とし、起動が自動的に行われない設定が行われている点は共通する。これら３つのレコードのうち、上から１番目に示す仮想マシン「Ｕｓｅｒ００１」のレコードは、月曜日から金曜日までの平日のいずれの曜日においても、仮想マシンが９時００分に自動起動される設定がなされていることを意味する。また、上から２番目に示す仮想マシン「Ｕｓｅｒ００２」のレコードは、火曜日および木曜日には自動起動が設定されていない一方で、月曜日、水曜日および金曜日には仮想マシンが８時３０分に自動起動される設定がなされていることを意味する。さらに、上から３番目に示す仮想マシン「Ｕｓｅｒ００３」のレコードは、水曜日および木曜日に自動起動が設定されていない一方で、月曜日および火曜日には仮想マシンが９時００分に自動起動され、金曜日には仮想マシンが１０時００分に自動起動される設定がなされていることを意味する。なお、ここでは、曜日ごとに仮想マシンの自動起動が設定される場合を例示したが、仮想マシンの自動起動が設定される単位は必ずしも曜日や週次に限定されない。例えば、１つの設定時刻が日ごとに繰り返し用いられることとしてもよいし、日付ごとに設定時刻を記憶することとしてもよいし、第１週、第２週・・・などの週ごとに設定時刻を記憶することもできるし、１月、２月・・・などの月ごとに設定時刻を記憶することもできるし、２０１５年、２０１６年などの年ごとに設定時刻を記憶することとしてもかまわない。
【００３１】
起動履歴データ１３ｂは、仮想マシンが起動された履歴に関するデータである。起動履歴データは、起動実績情報の一例である。
【００３２】
一実施形態として、起動履歴データ１３ｂには、仮想マシンごとに仮想マシンが起動された時刻および仮想マシンに対するアクセスが開始された時刻が対応付けられたデータを採用できる。図４は、起動履歴データ１３ｂの一例を示す図である。図４には、Ｕｓｅｒ００１及びＵｓｅｒ００２の仮想マシン名で識別される仮想マシンに関する２つのレコードが抜粋して示されている。例えば、上から１番目のレコードは、仮想マシン「Ｕｓｅｒ００１」が２０１６年１月４日の８時００分に起動された後、２０１６年１月４日の８時１０分に最初のアクセス、例えばログイン操作等を始めとするユーザ操作が行われたことを意味する。このようなレコードが履歴として保存されることにより、コンピュータは、起動時刻とアクセス開始時刻の時間差が１０分間であることを識別することができる。また、上から２番目のレコードは、仮想マシン「Ｕｓｅｒ００２」が２０１６年１月４日の９時００分に起動された後、２０１６年１月４日の１２時００分に最初のアクセスが行われたことを意味する。このようなレコードが履歴として保存されることにより、コンピュータは、起動時刻とアクセス開始時刻の時間差が３時間であることを識別することができる。
【００３３】
ここで、図４には、説明の便宜上、１つの仮想マシンにつき１つの起動時刻およびアクセス開始時刻の履歴を示したが、履歴の保存方法はこれに限定されない。例えば、記憶部１３は、起動履歴データ１３ｂとして、日、週、月および曜日ごとに各仮想マシンの履歴を記憶することもできるし、日、週、月および曜日ごとの履歴を複数の世代にわたって累積して記憶することもできるし、また、起動時刻およびアクセス開始時刻の代わりに両者の時間差を記憶することもできる。
【００３４】
なお、図３及び図４には、起動設定データ１３ａ及び起動履歴データ１３ｂがテーブル形式で記憶部１３に格納される場合を例示したが、これに限定されない。例えば、起動設定データ１３ａは、ＸＭＬ（Extensible  Markup  Language）などのマークアップ言語によりタグ形式で記述されるデータであってもよいし、ＣＳＶ（Comma-Separated  Values）などのようにカンマや改行により記述されるデータであってもかまわない。
【００３５】
起動優先度データ１３ｃは、仮想マシンを起動させる優先度に関するデータである。
【００３６】
ここで言う「優先度」とは、仮想マシンの起動が優先される度合いを指し、例えば、ポイントの多寡により表現することができる。例えば、ポイントは、起動時刻およびアクセス開始時刻の時間差によって日、週、月および曜日などのカレンダ属性ごとに定めることができる。詳細は後述するが、ポイントの算出式には、下記の式（１）を用いることができる。下記の式（１）における「加算値」は、起動時刻およびアクセス開始時刻の時間差の多寡により定まる値であり、例えば、時間差が短いほど大きい値を設定し、時間差が長いほど小さい値を設定することができる。このようにポイントの算出に１つ前のポイントを反映するのは、１つの時間断面で優先度を定めるのではなく、履歴の推移により優先度を定めるためである。なお、下記の式（１）における「重み」は、１つ前のポイントに乗算される係数であり、例えば、０よりも大きくかつ１以下となる定数を設定しておくことができる。
【００３７】
最新のポイント＝１つ前のポイント＊重み＋加算値・・・（１）
【００３８】
一実施形態として、起動優先度データ１３ｃには、仮想マシンごとに優先度、例えば上記のポイントが対応付けられたデータを採用できる。ここで、ポイントが日、週、月および曜日などの異なる粒度で算出される場合、記憶部１３には、日ポイント、週ポイント、月ポイント、曜日ポイントおよびこれらの総合ポイントが仮想マシンごとに対応付けられたデータが起動優先度データ１３ｃとして記憶される。ここで言う「総合ポイント」とは、日ポイント、週ポイント、月ポイントおよび曜日ポイントに所定の統計処理、例えば合計、相加平均や加重平均などが行われることにより１つに総合されたポイントを指す。なお、ここでは、ポイントが日、週、月および曜日などの異なる粒度で算出される場合を説明したが、必ずしも複数の粒度でポイントが算出されずともよく、日ポイント、週ポイント、月ポイント及び曜日ポイントのうち少なくとも１つを記憶することとしてもかまわない。
【００３９】
制御部１５は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって各種の処理を実行するものである。
【００４０】
一実施形態として、制御部１５は、中央処理装置、いわゆるＣＰＵとして実装される。なお、制御部１５は、必ずしも中央処理装置として実装されずともよく、ＭＰＵ（Micro  Processing  Unit）として実装されることとしてもよい。また、制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００４１】
制御部１５は、図示しない主記憶装置として実装されるＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）などのＲＡＭのワークエリア上に、上記の起動制御プログラムをプロセスとして展開することにより、下記の処理部を仮想的に実現する。
【００４２】
例えば、制御部１５は、図２に示すように、監視部１５ａと、登録部１５ｂと、算出部１５ｃと、更新部１５ｄと、起動開始部１５ｅと、起動制御部１５ｆとを有する。
【００４３】
監視部１５ａは、仮想マシンに対するアクセスを監視する処理部である。
【００４４】
一実施形態として、監視部１５ａは、後述の起動制御部１５ｆの起動命令にしたがって情報処理装置２０上で仮想マシンが自動起動された場合、当該仮想マシンに対するクライアント端末３０のアクセスの監視を開始する。ここでは、あくまで一例として、仮想マシンを通じてデスクトップ環境がクライアント端末３０に提供される場合を想定する。この場合、監視部１５ａは、ネットワークＮＷに収容されるネットワーク機器、例えばルータやスイッチなどから、ＲＤＰ（Remote  Desktop  Protocol）、ＳＳＨ（Secure  SHell）、ＶＮＣ（Virtual  Network  Computing）などのプロトコルで行われる通信のアクセスログを収集する。このアクセスログを用いて、監視部１５ａは、クライアント端末３０及び仮想マシンの間で通信が行われたか否かを監視する。
【００４５】
登録部１５ｂは、仮想マシンに関する起動履歴を登録する処理部である。
【００４６】
一実施形態として、登録部１５ｂは、後述の起動制御部１５ｆの起動命令にしたがって情報処理装置２０上で仮想マシンが自動起動された場合、次のような処理を実行する。すなわち、登録部１５ｂは、図示しないＯＳ等から起動時刻を取得する。その後、監視部１５ａにより当該仮想マシンに対するアクセスが検知された場合、登録部１５ｂは、ＯＳ等からアクセス開始時刻を取得する。その上で、登録部１５ｂは、記憶部１３に記憶された起動履歴データ１３ｂに新規エントリを作成し、当該新規エントリに仮想マシン、起動時刻およびアクセス開始時刻を対応付けて登録する。なお、ここでは、起動履歴データ１３ｂに対する起動履歴の登録について説明したが、古くなった起動履歴の削除を併せて行うこともできる。
【００４７】
算出部１５ｃは、上記の優先度を算出する処理部である。ここでは、一例として、日ポイントの算出方法について説明し、週ポイント、月ポイント、曜日ポイントの算出方法については図６を用いて後述する。なお、算出部１５ｃは、特定部の一例である。
【００４８】
一側面として、算出部１５ｃは、記憶部１３に記憶された起動履歴データ１３ｂを監視する。そして、算出部１５ｃは、起動履歴データ１３ｂに新規エントリが追加される度に、当該新規エントリが追加された日付の翌日の起動順序制御に用いる日ポイントの算出を開始する。以下では、説明の便宜上、日ポイントの算出が実行される本日の日付を「ｄ」と表記し、その前日の日付を「ｄ−１」と表記する一方で、その翌日の日付を「ｄ＋１」と表記する場合がある。すなわち、算出部１５ｃは、上記の起動履歴データ１３ｂの新規エントリに含まれる起動時刻およびアクセス開始時刻の時間差を算出する。続いて、算出部１５ｃは、起動時刻およびアクセス開始時刻の時間差から上記の式（１）における加算値、ここでは「日加算値」を導出する。このように日加算値が導出される場合、一例として、図５に示す時間差と日加算値の対応関係を利用することができる。
【００４９】
図５は、時間差と日加算値の対応関係の一例を示す図である。例えば、時間差が１０分以内である場合、日加算値は「１０」と導出される。また、時間差が１０分以降２０分以内である場合、日加算値は「６」と導出される。このように時間差が長くなるにしたがって小さい値が日加算値として導出される。そして、時間差が５０分以降６０分以内である場合、日加算値は「０」と導出される。これを境界に時間差が６０分以降に拡大すると、日加算値には負の値が導出される。例えば、時間差が６０分以降１２０分以内である場合、日加算値は「−１」と導出される。そして、時間差が３６０分以降４８０以内まで拡大すると、日加算値として導出される値は「−６」まで小さくなる。
【００５０】
このように日加算値が導出された後、算出部１５ｃは、上記の式（１）にしたがって翌日「ｄ＋１」の起動順序制御に用いる日ポイントを算出する。すなわち、算出部１５ｃは、先に導出された日加算値を上記の式（１）に記載の「加算値」の項に代入する。さらに、算出部１５ｃは、起動優先度データ１３ｃのエントリに含まれる日ポイントのうち、起動履歴データ１３ｂに新規エントリが追加された仮想マシンと同一の仮想マシンに対応付けられた日ポイントを抽出する。このようにして起動優先度データ１３ｃから抽出される日ポイントは、前日「ｄ−１」に算出されていた日ポイントであって本日「ｄ」の起動順序制御に用いられた日ポイントに対応し、これが上記の式（１）に記載の「１つ前のポイント」の項に代入される。これら日加算値および本日「ｄ」の起動順序制御に用いられた日ポイントが上記の式（１）に代入されることにより、翌日「ｄ＋１」の起動順序制御に用いる日ポイントが算出されることになる。
【００５１】
他の側面として、算出部１５ｃは、ＯＳ等から参照されたカレンダ時刻の日付が変わる度に、起動設定データ１３ａを参照して、日付が変わった本日の曜日において自動起動が設定されていない仮想マシンを識別する。その上で、算出部１５ｃは、先に識別された仮想マシンごとに、上記の式（１）に記載の「加算値」の項に代入する日加算値の値をゼロとし、これ以外は上述と同様にして翌日「ｄ＋１」の起動順序制御に用いる日ポイントを算出する。このように、算出部１５ｃは、仮想マシンに自動起動が設定されていない日にも日ポイントの算出を行う。
【００５２】
更新部１５ｄは、仮想マシンの起動に関する優先度を更新する処理部である。なお、更新部１５ｄは、決定部の一例である。
【００５３】
一実施形態として、更新部１５ｄは、算出部１５ｃにより翌日「ｄ＋１」の起動順序制御に用いる日ポイントが算出された場合、次のような処理を実行する。すなわち、更新部１５ｄは、記憶部１３に記憶された起動優先度データ１３ｃのエントリのうち、算出部１５ｃにより日ポイントの算出が行われた仮想マシンに対応するエントリ内の日ポイントを本日「ｄ」の日ポイントから翌日「ｄ＋１」の日ポイントへ上書き更新する。なお、ここでは、起動優先度データ１３ｃの日ポイントを上書き更新する場合を例示したが、仮想マシン及び日ポイントに日付をさらに対応付けて保存することにより、古くなった日ポイントを削除せずに保存しておくこともできる。
【００５４】
起動開始部１５ｅは、仮想マシンの起動を開始する処理部である。
【００５５】
一実施形態として、起動開始部１５ｅは、記憶部１３に記憶された起動設定データ１３ａを監視する。すなわち、起動開始部１５ｅは、起動設定データ１３ａのエントリの中にＯＳ等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在するか否かを所定の周期で監視する。ここで、ＯＳ等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在する場合、当該エントリに含まれる仮想マシンを自動起動するタイミングであることが判別できる。この場合、自動起動が設定された仮想マシンの起動が開始される。
【００５６】
起動制御部１５ｆは、仮想マシンの起動を制御する処理部である。
【００５７】
一実施形態として、起動制御部１５ｆは、仮想マシンの自動起動が開始された場合、自動起動が設定された仮想マシンが複数であるか否かを判定する。このとき、自動起動が設定された仮想マシンが複数でない場合、起動制御部１５ｆは、自動起動が設定された仮想マシンの起動命令を情報処理装置２０へ送信する。一方、自動起動が設定された仮想マシンが複数である場合、起動制御部１５ｆは、複数の仮想マシンの中に情報処理装置２０内の同一のホストで起動される仮想マシンが存在するか否かをさらに判定する。
【００５８】
このとき、複数の仮想マシンが情報処理装置２０内の同一のホストで起動されない場合、複数の仮想マシンが異なるホストで起動されるので、ホストマシンで仮想マシンの起動の多重度が上昇しないことを判別できる。この場合、起動制御部１５ｆは、各仮想マシンの起動命令を情報処理装置２０へ送信する。
【００５９】
ここで、複数の仮想マシンが情報処理装置２０内の同一のホストで起動される場合、当該ホストで仮想マシンの起動の多重度が上昇することがわかる。この場合、起動制御部１５ｆは、記憶部１３に記憶された起動優先度データ１３ｃを参照して、複数の仮想マシンごとに日ポイントを読み出す。そして、起動制御部１５ｆは、複数の仮想マシンを所定のポイント、例えば日ポイントや総合ポイントなどの各種ポイントのうちいずれかのポイントが高いものから降順にソートすることにより、各仮想マシンの起動順序を設定する。その上で、起動制御部１５ｆは、起動順序にしたがって各仮想マシンの起動命令を情報処理装置２０へ送信する。
【００６０】
［具体例］
次に、図６を用いて、ポイントの算出方法および仮想マシンの起動制御の具体例について説明する。図６は、ポイントの算出結果の一例を示す図である。図６には、仮想マシンＡ、仮想マシンＢ、仮想マシンＣの３つの仮想マシンに関する日ポイント、週ポイント、月ポイント、曜日ポイント、総合ポイント、日加算値、週加算値、月加算値および曜日加算値の推移が１１月１日（日）〜１１月１５日（日）の１５日間にわたって示されている。さらに、図６には、図５に示した時間差および日加算値の対応関係にしたがって日加算値が導出されると共に上記の式（１）に記載の「重み」の一例として０．８が設定されている条件の下で算出されるポイントが示されている。
【００６１】
ここで、ポイントの算出方法は、いずれの日付であっても同様であるので、以下では、１１月１日（日）〜１１月１５日（日）の１５日間を代表して１１月９日（月）における仮想マシンＡのポイントが日、週、月および曜日のカレンダ属性ごとに算出される場合を例示する。
【００６２】
（１）日ポイント
例えば、１１月９日（月）における仮想マシンＡの日ポイントは、ＯＳ等から取得されるカレンダ時刻が１１月８日（日）に変わった段階で算出される。すなわち、１１月８日（日）には、仮想マシンＡの自動起動は設定されていない。それ故、上記の式（１）に記載の「加算値」の項には、日加算値としてゼロが代入される。これと共に、上記の式（１）に記載の「１つ前のポイント」の項には、１１月７日（土）に算出されていた日ポイントであって１１月８日（日）の日ポイント「28.23498」が代入される。このため、上記の式（１）により「28.23498*0.8＋0」の計算が行われる結果、１１月９日（月）における仮想マシンＡの日ポイントは、「22.58798」と算出される。
【００６３】
また、１１月１０日（火）における仮想マシンＡの日ポイントは、起動履歴データ１３ｂに１１月９日（月）における仮想マシンＡの起動時刻及びアクセス開始時刻のエントリが登録された段階で算出される。図６には、上述の通り、仮想マシンＡは休暇などの理由により起動されなかった例が示されているので、起動時刻およびアクセス開始時刻の時間差が４８０分以上となり、最小値である「-6」が日加算値として導出される。この場合、上記の式（１）に記載の「加算値」の項には、日加算値として「-6」が代入される。これと共に、上記の式（１）に記載の「１つ前のポイント」の項には、１１月８日（日）に算出されていた日ポイントであって１１月９日（月）の日ポイント「22.58798」が代入される。このため、上記の式（１）により「22.58798*0.8＋(-6)」の計算が行われる結果、１１月１０日（火）における仮想マシンＡの日ポイントは、「12.07039」と算出される。なお、ここでは、仮想マシンＡの日ポイントの算出方法について説明したが、仮想マシンＢ及び仮想マシンＣについても同様にして日ポイントを算出することができる。
【００６４】
（２）週ポイント
例えば、１１月８日（日）〜１１月１４日（土）の１週間における仮想マシンＡの週ポイントは、その前の週、すなわち１１月１日（日）〜１１月７日（土）の１週間が経過して日加算値が確定した段階で算出される。このように１１月１日（日）〜１１月７日（土）の１週間における日加算値が確定すると、各日加算値に所定の統計処理、例えば平均値の算出、最頻値の抽出などが行われることにより、１１月１日（日）〜１１月７日（土）の１週間における週加算値が算出される。例えば、上記の統計処理の一例として各日加算値の平均値が算出されるとしたとき、１１月１日（日）〜１１月７日（土）の１週間における週加算値は、「(10+10+10+10+10)／5」の計算により「10」と導出される。その後、上記の式（１）に記載の「加算値」の項には、週加算値として「10」が代入される。これと共に、上記の式（１）に記載の「１つ前のポイント」の項には、１０月２５日（日）〜１０月３１日（土）の週が経過した段階で算出されていた週ポイントであって１１月１日（日）〜１１月７日（土）の１週間の週ポイント「10」が代入される。このため、上記の式（１）により「10*0.8＋10」の計算が行われる結果、１１月１日（日）〜１１月７日（土）における仮想マシンＡの週ポイントは「18」と算出される。なお、ここでは、仮想マシンＡの週ポイントの算出方法について説明したが、仮想マシンＢ及び仮想マシンＣについても同様にして週ポイントを算出することができる。
【００６５】
（３）月ポイント
例えば、１１月における仮想マシンＡの月ポイントは、その前の月、すなわち１０月の１ヶ月間が経過して日加算値が確定した段階で算出される。このように１０月の１ヶ月間における日加算値が確定すると、各日加算値に所定の統計処理、例えば平均値の算出、最頻値の抽出などが行われることにより、１０月の１ヶ月間における月加算値が算出される。例えば、上記の統計処理の一例として各日加算値の平均値が算出されるとしたとき、１０月の１ヶ月間における月加算値が「10」であれば（不図示）、上記の式（１）に記載の「加算値」の項には、月加算値として「10」が代入される。これと共に、上記の式（１）に記載の「１つ前のポイント」の項には、９月の月が経過した段階で算出されていた月ポイントであって１０月の１ヶ月間の月ポイントが「12.5」であれば（不図示）、その月ポイント「12.5」が代入される。このため、上記の式（１）により「12.5*0.8＋10」の計算が行われる結果、１１月における仮想マシンＡの月ポイントは「10」と算出される。なお、ここでは、仮想マシンＡの月ポイントの算出方法について説明したが、仮想マシンＢ及び仮想マシンＣについても同様にして月ポイントを算出することができる。
【００６６】
（４）曜日ポイント
例えば、１１月９日（月）における仮想マシンＡの曜日ポイントは、起動履歴データ１３ｂに１１月９日（月）の１週間前である１１月２日（月）における仮想マシンＡの起動時刻及びアクセス開始時刻のエントリが登録された段階で算出される。すなわち、図６に示すように、１１月２日（月）における仮想マシンＡの起動時刻及びアクセス開始時刻の時間差から導出された最高値である「10」が曜日加算値として導出される。この場合、上記の式（１）に記載の「加算値」の項には、曜日加算値として「10」が代入される。これと共に、上記の式（１）に記載の「１つ前のポイント」の項には、１０月２６日（月）に算出されていた曜日ポイントであって１１月２日（月）の曜日ポイント「10」が代入される。このため、上記の式（１）により「10*0.8＋10」の計算が行われる結果、１１月９日（月）における仮想マシンＡの曜日ポイントは、「18」と算出される。なお、ここでは、仮想マシンＡの曜日ポイントの算出方法について説明したが、仮想マシンＢ及び仮想マシンＣについても同様にして曜日ポイントを算出することができる。
【００６７】
（５）総合ポイント
総合ポイントは、カレンダ属性の中で最も粒度が細かい日ポイントが算出された段階で算出される。例えば、１１月９日（月）における仮想マシンＡの総合ポイントは、１１月９日（月）における仮想マシンＡの日ポイントが算出された段階で算出できる。すなわち、１１月９日（月）における仮想マシンＡの日ポイント、週ポイント、月ポイント及び曜日ポイントに所定の統計処理、例えば合計、相加平均や加重平均などの処理を行うことにより算出される。例えば、合計により総合ポイントが算出されるとしたとき、総計ポイントは、「22.58798+18+10+18」の計算により「68.58798」と算出される。なお、ここでは、仮想マシンＡの総合ポイントの算出方法について説明したが、仮想マシンＢ及び仮想マシンＣについても同様にして総合ポイントを算出することができる。
【００６８】
（６）仮想マシンの起動制御
ここでは、以下の条件の下、１１月９日、１１月１０日および１１月１１日における仮想マシンＡ、仮想マシンＢ及び仮想マシンＣの起動順序制御について説明する。すなわち、仮想マシンＡ、仮想マシンＢ及び仮想マシンＣの間で土曜日および日曜日の休日以外の営業日における自動起動の設定時刻が同一であり、かつ仮想マシンＡ、仮想マシンＢ及び仮想マシンＣが起動されるホストも同一である場合を想定する。
【００６９】
さらに、仮想マシンＡのユーザ、仮想マシンＢのユーザ及び仮想マシンＣのユーザの利用傾向が次の通りであることとする。すなわち、図６に示すように、仮想マシンＡのユーザは、普段は起動後すぐに利用し（傾向１）、仮想マシンＢのユーザは、仮想マシンＡのユーザよりも起動後の利用は遅く（傾向２）、仮想マシンＣのユーザは、月曜日および水曜日だけ起動後の利用が仮想マシンＢのユーザよりも早い（傾向３）。
【００７０】
これらの傾向がある場合、傾向から外れる多少のイレギュラーがあったとしても、傾向１〜傾向３にしたがって月曜日及び水曜日は仮想マシンＡ→仮想マシンＣ→仮想マシンＢの順に起動し、それ以外は仮想マシンＡ→仮想マシンＢ→仮想マシンＣの順に起動する起動順序を設定する再現性を高める方がイレギュラーに過敏に反応するよりも、仮想マシンＡ、仮想マシンＢ及び仮想マシンＣの起動待ち時間をトータルで低減できることが期待できる。
【００７１】
ここで、図６に示す通り、次のようなイレギュラーが発生する場合を想定する。例えば、仮想マシンＡのユーザが１１月９日および１１月１０日の２日間にわたって休暇などの理由により仮想マシンＡを利用しなかった場合（イレギュラー１）、さらに、仮想マシンＢのユーザが１１月１０日だけ利用傾向が違った場合（イレギュラー２）を想定する。
【００７２】
例えば、１１月９日（月）では、日ポイントまたは総合ポイントが降順となるように仮想マシンＡ、仮想マシンＢ及び仮想マシンＣをソートすることにより、上記のイレギュラー１が発生しても、月曜日に相応しい起動順序「仮想マシンＡ→仮想マシンＣ→仮想マシンＢ」を設定できる。また、１１月１０日（火）では、日ポイントまたは総合ポイントが降順となるように仮想マシンＡ、仮想マシンＢ及び仮想マシンＣをソートすることにより、上記のイレギュラー１及びイレギュラー２が発生しても、月曜日及び水曜日以外に相応しい起動順序「仮想マシンＡ→仮想マシンＢ→仮想マシンＣ」を設定できる。さらに、１１月１１日（水）では、日ポイントまたは総合ポイントが降順となるように仮想マシンＡ、仮想マシンＢ及び仮想マシンＣをソートすることにより、上記のイレギュラー１の影響により仮想マシンＡの起動順序は遅くなっているが、仮想マシンＢよりも水曜日の利用が早い仮想マシンＣの起動が優先された起動順序「仮想マシンＣ→仮想マシンＢ→仮想マシンＡ」を設定できる。
【００７３】
［処理の流れ］
次に、本実施例に係る起動制御装置１０の処理の流れについて説明する。なお、以下では、起動制御装置１０により実行される（１）履歴登録処理、（２）優先度更新処理、（３）起動制御処理の順に説明することとする。
【００７４】
（１）履歴登録処理
図７は、実施例１に係る履歴登録処理の手順を示すフローチャートである。この処理は、一例として、情報処理装置２０上で自動起動された仮想マシンごとに並列して実行される。図７に示すように、情報処理装置２０上で仮想マシンが自動起動された場合（ステップＳ１０１Ｙｅｓ）、登録部１５ｂは、ＯＳ等から起動時刻を取得する（ステップＳ１０２）。
【００７５】
その後、監視部１５ａは、当該仮想マシンに対するクライアント端末３０のアクセスを監視する（ステップＳ１０３）。そして、当該仮想マシンに対するアクセスが検知された場合（ステップＳ１０４Ｙｅｓ）、登録部１５ｂは、ＯＳ等からアクセス開始時刻を取得した上で記憶部１３に記憶された起動履歴データ１３ｂに新規エントリを作成し、当該新規エントリに仮想マシン、起動時刻およびアクセス開始時刻を対応付けて登録し（ステップＳ１０５）、処理を終了する。
【００７６】
（２）優先度更新処理
図８は、実施例１に係る優先度更新処理の手順を示すフローチャートである。この処理は、一例として、起動履歴データ１３ｂに新規エントリが追加される度に繰り返し実行される。図８に示すように、起動履歴データ１３ｂに新規エントリが追加された場合（ステップＳ３０１Ｙｅｓ）、算出部１５ｃは、上記の起動履歴データ１３ｂの新規エントリに含まれる起動時刻およびアクセス開始時刻の時間差を算出する（ステップＳ３０２）。
【００７７】
続いて、算出部１５ｃは、起動時刻およびアクセス開始時刻の時間差から上記の式（１）にしたがって起動履歴データ１３ｂに新規エントリが追加された仮想マシンのポイントを算出する（ステップＳ３０３）。
【００７８】
その後、更新部１５ｄは、記憶部１３に記憶された起動優先度データ１３ｃのエントリのうち、ステップＳ３０３の算出が行われた仮想マシンに対応するエントリ内の日ポイントをステップＳ３０３で算出されたポイントへ上書き更新し（ステップＳ３０４）、ステップＳ３０１の処理へ戻る。
【００７９】
（３）起動制御処理
図９は、実施例１に係る起動制御処理の手順を示すフローチャートである。図９に示すように、起動設定データ１３ａのエントリの中にＯＳ等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在する場合（ステップＳ５０１Ｙｅｓ）に自動起動が設定された仮想マシンの起動が開始される。この場合、起動制御部１５ｆは、自動起動が設定された仮想マシンが複数であるか否かを判定する（ステップＳ５０２）。
【００８０】
このとき、自動起動が設定された仮想マシンが複数である場合（ステップＳ５０２Ｙｅｓ）、起動制御部１５ｆは、複数の仮想マシンの中に情報処理装置２０内の同一のホストで起動される仮想マシンが存在するか否かをさらに判定する（ステップＳ５０３）。
【００８１】
ここで、複数の仮想マシンが情報処理装置２０内の同一のホストで起動される場合（ステップＳ５０３Ｙｅｓ）、当該ホストで仮想マシンの起動の多重度が上昇することがわかる。この場合、起動制御部１５ｆは、記憶部１３に記憶された起動優先度データ１３ｃを参照して、複数の仮想マシンごとに日ポイントを読み出す（ステップＳ５０４）。なお、ここでは、あくまで一例として、日ポイントを用いて起動順序を設定する場合を例示するが、この他の種類のポイント、週ポイント、月ポイント、曜日ポイントおよびこれらの総合ポイントを用いて起動順序を設定することとしてもかまわない。
【００８２】
そして、起動制御部１５ｆは、複数の仮想マシンを日ポイントが高いものから降順にソートすることにより、各仮想マシンの起動順序を設定する（ステップＳ５０５）。その上で、起動制御部１５ｆは、起動順序にしたがって各仮想マシンの起動命令を情報処理装置２０へ送信し（ステップＳ５０６）、処理を終了する。
【００８３】
一方、複数の仮想マシンが情報処理装置２０内の同一のホストで起動されない場合（ステップＳ５０３Ｎｏ）、複数の仮想マシンが異なるホストで起動されるので、ホストマシンで仮想マシンの起動の多重度が上昇しないことを判別できる。この場合、起動制御部１５ｆは、各仮想マシンの起動命令を情報処理装置２０へ送信し（ステップＳ５０７）、処理を終了する。
【００８４】
なお、自動起動が設定された仮想マシンが複数でない場合（ステップＳ５０２Ｎｏ）、起動制御部１５ｆは、自動起動が設定された仮想マシンの起動命令を情報処理装置２０へ送信し（ステップＳ５０８）、処理を終了する。
【００８５】
［効果の一側面］
上述してきたように、本実施例に係る起動制御装置１０は、仮想マシンが起動されてからアクセスが開始されるまでの時間差に基づいて設定された仮想マシンの起動順序にしたがって複数の仮想マシンの起動を制御する。このため、起動された段階では直ちにユーザにより使用されない仮想マシンが先に起動されたり、あるいは起動された段階でユーザにより使用される仮想マシンが後に起動されたりるケースを低減できる。したがって、本実施例によれば、仮想マシンの起動待ち時間を低減できる。
【実施例２】
【００８６】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００８７】
［起動の手動設定］
上記の実施例１では、仮想マシンが自動起動される場合について説明を行ったが、仮想マシンが手動起動される場合にも、起動優先度を更新することができる。例えば、仮想マシンの手動起動が行われた場合、日ポイント、週ポイント、月ポイント、曜日ポイント及び総合ポイントのうち負の値であるものが存在する場合、負の値をとるポイントを「０」に設定することもできる。
【００８８】
［仮想マシンの応用例］
上記の実施例１では、デスクトップ環境を提供する仮想マシンを例示したが、これ以外の仮想マシンが情報処理装置２０上で起動される場合にも適用できる。例えば、Ｗｅｂサーバの機能を提供する仮想マシンが情報処理装置２０上で起動される場合、ＨＴＴＰ（HyperText  Transfer  Protocol）のプロトコルの通信を監視することにより、Ｗｅｂサーバが起動されてからＷｅｂサーバが提供するサービスが利用されるまでの時間差を算出することができる。
【００８９】
［起動制御プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１０を用いて、上記の実施例と同様の機能を有する起動制御プログラムを実行するコンピュータの一例について説明する。
【００９０】
図１０は、実施例１及び実施例２に係る起動制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１０に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００９１】
ＨＤＤ１７０には、図１０に示すように、上記の実施例１で示した監視部１５ａ、登録部１５ｂ、算出部１５ｃ、更新部１５ｄ、起動開始部１５ｅ及び起動制御部１５ｆと同様の機能を発揮する起動制御プログラム１７０ａが記憶される。この起動制御プログラム１７０ａは、図２に示した監視部１５ａ、登録部１５ｂ、算出部１５ｃ、更新部１５ｄ、起動開始部１５ｅ及び起動制御部１５ｆの各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【００９２】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から起動制御プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、起動制御プログラム１７０ａは、図１０に示すように、起動制御プロセス１８０ａとして機能する。この起動制御プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち起動制御プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、起動制御プロセス１８０ａが実行する処理の一例として、図７〜図９に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【００９３】
なお、上記の起動制御プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に起動制御プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から起動制御プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに起動制御プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから起動制御プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【００９４】
１    クラウドシステム
１０    起動制御装置
１１    通信Ｉ／Ｆ部
１３    記憶部
１３ａ  起動設定データ
１３ｂ  起動履歴データ
１３ｃ  起動優先度データ
１５    制御部
１５ａ  監視部
１５ｂ  登録部
１５ｃ  算出部
１５ｄ  更新部
１５ｅ  起動開始部
１５ｆ  起動制御部
２０    情報処理装置
３０Ａ，３０Ｂ，３０Ｃ    クライアント端末
【図１】
2018060378.tif 000003
【図２】
2018060378.tif 000004
【図３】
2018060378.tif 000005
【図４】
2018060378.tif 000006
【図５】
2018060378.tif 000007
【図６】
2018060378.tif 000008
【図７】
2018060378.tif 000009
【図８】
2018060378.tif 000010
【図９】
2018060378.tif 000011
【図１０】
2018060378.tif 000012