(57)【特許請求の範囲】
【請求項１】
コンピュータを、
各々が、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理と、を実行可能な１以上の処理部について、各処理部におけるデータ処理の実行状況の情報を保持する状況情報保持手段、
ユーザから受けた接続要求を、データ処理を実行していない処理部よりもデータ処理を実行中の処理部に対して優先的に割り当てる接続要求割り当て手段、
接続処理もデータ処理も実行していない処理部を停止させる停止手段、
として機能させるためのプログラムであって、
前記接続要求割り当て手段は、前記処理部のうち現在実行中のデータ処理の完了までの時間が、あらかじめ設定されている情報処理装置に対するユーザの平均接続時間よりも長いと判定される処理部に対して前記接続要求を割り当てる、
ことを特徴とするプログラム。
【請求項２】
前記コンピュータを、
受け取ったデータ処理要求を、いずれかの処理部に割り当てられるまで受け取り順と対応づけて保持する処理要求保持手段、として更に機能させると共に、
前記接続要求割り当て手段は、前記処理要求保持手段内にある各データ処理要求を、データ処理を実行中のいずれかの処理部に対してあらかじめ定められた規則に従って割り当てた場合の、割り当てられたデータ処理要求に応じたデータ処理の実行が終了するタイミングが遅い処理部ほど優先的に、前記接続要求を割り当てる、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
各々が、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理と、を実行可能な１以上の処理部について、各処理部におけるデータ処理の実行状況の情報を保持する状況情報保持手段と、
ユーザから受けた接続要求を、データ処理を実行していない処理部よりもデータ処理を実行中の処理部に対して優先的に割り当てる接続要求割り当て手段と、
接続処理もデータ処理も実行していない処理部を停止させる停止手段と、
を含み、
前記接続要求割り当て手段は、前記処理部のうち現在実行中のデータ処理の完了までの時間が、あらかじめ設定されている情報処理装置に対するユーザの平均接続時間よりも長いと判定される処理部に対して前記接続要求を割り当てる、
ことを特徴とする情報処理装置。
【請求項４】
各々が、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理と、を実行可能な１以上の処理部について、各処理部におけるデータ処理の実行状況の情報を保持する状況情報保持手段を設けるステップと、
接続要求割り当て手段が、ユーザから受けた接続要求を、データ処理を実行していない処理部よりもデータ処理を実行中の処理部に対して優先的に割り当てるステップと、
停止手段が、接続処理もデータ処理も実行していない処理部を停止させるステップと、
を含み、
前記接続要求割り当て手段は、前記処理部のうち現在実行中のデータ処理の完了までの時間が、あらかじめ設定されている情報処理装置に対するユーザの平均接続時間よりも長いと判定される処理部に対して前記接続要求を割り当てる、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングサービスのように、サービス提供者の有するプロセッサやメモリ等の計算リソースをユーザに対して例えば課金方式等の形で利用させるシステムが普及しつつある。このようなサービスは、一般に、ユーザのための処理に用いる計算リソースを必要に応じて自動的に増減する、いわゆるオートスケーリング機能を有する。例えばＡｍａｚｏｎ  ＥＣ２ (Elastic Compute Cloud)というクラウドサービスでは、ユーザに対してＥＣ２インスタンスと呼ぶ仮想マシンを割り当てるが、処理負荷に応じてそのインスタンスの数を自動的に増減する。一般的に、インスタンスの数を増加させることを「スケールアウト」、減少させることを「スケールイン」と呼んでいる。例えば、サービスの利用料金が使用するリソースの量に応じて定められている場合、処理負荷が低下したときに使用リソースの量を自動的に減らすことで、利用料金が節約される。
【０００３】
特許文献１に開示された発明は、負荷分散装置が、サービス要求パケットのヘッダ情報から当該サービス要求がサーバに与える負荷の大きさを見積もる手段と、見積もり値を、振り分けられたサーバ毎に管理する手段とを有することにより、サーバのリアルタイムな負荷状態に基づく負荷分散を可能とする。また、予め、負荷見積もりを行うための負荷見積もりテーブル生成手段を備えることにより、サーバ・システム稼動時には余計な通信や負荷監視処理が発生せず、サーバ・システム全体を高い性能に保つことができる。
【０００４】
特許文献２に開示された負荷分散システムは、複数のサーバのそれぞれの情報を格納する情報テーブルと、要求による処理状況に対する複数のサーバのそれぞれのサービスレベルを保つための閾値を保持する閾値保持部と、複数のサーバの稼動状況を監視管理するサーバ管理部と、複数のサーバへの要求の割り当ての際、複数のサーバの優先度に従い、優先度の高いサーバから、閾値に達するまで要求を割り当てる転送先判定部と、複数のサーバのそれぞれの要求に対する処理状況に応じて、複数のサーバの電源制御を行う電源制御部とを備える。このように特許文献２には、サービスレベルを保つためにサーバ間で負荷分散を行う点、及び、それらサーバの電源制御を行う点が示されている。
【０００５】
特許文献３には、各サーバの負荷を予測し、その予測に従ってスケールアウト又はスケールインを行うことが示されている。すなわちこの文献に開示されたシステムでは、負荷情報収集部は、物理サーバと仮想サーバの負荷を収集して、各負荷を採取した時間に対応づけて、負荷情報として負荷情報テーブルに格納し、類似負荷情報選択部は、管理対象の負荷がスケールアウト閾値またはスケールイン閾値から外れたときに、現在時刻の負荷に類似する過去の負荷情報を負荷情報テーブルから選択し、スケールアウト判断部またはスケールイン判断部は、選択された負荷情報に従って管理対象の負荷が変化すると仮定して、管理対象の負荷が、その後も、いずれかの閾値から外れると予測したときには、スケールアウトまたはスケールインを実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−０９１９３６号公報
【特許文献２】特開２０１１−０１５１９６号公報
【特許文献３】特開２０１１−１１８５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数の処理部で負荷分散を行う場合、新たな処理要求は負荷の少ない処理部に割り当てることが一般的である。しかし、このようは割り当て方式では、各処理部には常に何らかの処理が割り当てられている可能性が高いので、全体の負荷が少なくなっていても処理部を停止して起動中の処理部の数を減らす（スケールイン）することが難しい。
【０００８】
本発明は、ユーザからの接続要求を処理する接続処理を負荷の少ない処理部に割り当てる方式と比べて、処理部を停止させやすくできる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、コンピュータを、各々が、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理と、を実行可能な１以上の処理部について、各処理部におけるデータ処理の実行状況の情報を保持する状況情報保持手段、ユーザから受けた接続要求を、データ処理を実行していない処理部よりもデータ処理を実行中の処理部に対して優先的に割り当てる接続要求割り当て手段、接続処理もデータ処理も実行していない処理部を停止させる停止手段、として機能させるためのプログラムであって、前記接続要求割り当て手段は、前記処理部のうち現在実行中のデータ処理の完了までの時間が、あらかじめ設定されている情報処理装置に対するユーザの平均接続時間よりも長いと判定される処理部に対して前記接続要求を割り当てる、ことを特徴とするプログラムである。
【００１０】
請求項２に係る発明は、前記コンピュータを、受け取ったデータ処理要求を、いずれかの処理部に割り当てられるまで受け取り順と対応づけて保持する処理要求保持手段、として更に機能させると共に、前記接続要求割り当て手段は、前記処理要求保持手段内にある各データ処理要求を、データ処理を実行中のいずれかの処理部に対してあらかじめ定められた規則に従って割り当てた場合の、割り当てられたデータ処理要求に応じたデータ処理の実行が終了するタイミングが遅い処理部ほど優先的に、前記接続要求を割り当てる、ことを特徴とする請求項１に記載のプログラムである。
【００１２】
請求項３に係る発明は、各々が、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理と、を実行可能な１以上の処理部について、各処理部におけるデータ処理の実行状況の情報を保持する状況情報保持手段と、ユーザから受けた接続要求を、データ処理を実行していない処理部よりもデータ処理を実行中の処理部に対して優先的に割り当てる接続要求割り当て手段と、接続処理もデータ処理も実行していない処理部を停止させる停止手段と、を含み、前記接続要求割り当て手段は、前記処理部のうち現在実行中のデータ処理の完了までの時間が、あらかじめ設定されている情報処理装置に対するユーザの平均接続時間よりも長いと判定される処理部に対して前記接続要求を割り当てる、ことを特徴とする情報処理装置である。
【００１３】
請求項４に係る発明は、各々が、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理と、を実行可能な１以上の処理部について、各処理部におけるデータ処理の実行状況の情報を保持する状況情報保持手段を設けるステップと、接続要求割り当て手段が、ユーザから受けた接続要求を、データ処理を実行していない処理部よりもデータ処理を実行中の処理部に対して優先的に割り当てるステップと、停止手段が、接続処理もデータ処理も実行していない処理部を停止させるステップと、を含み、前記接続要求割り当て手段は、前記処理部のうち現在実行中のデータ処理の完了までの時間が、あらかじめ設定されている情報処理装置に対するユーザの平均接続時間よりも長いと判定される処理部に対して前記接続要求を割り当てる、
ことを特徴とする情報処理方法である。
【発明の効果】
【００１４】
請求項１、３又は４に係る発明によれば、ユーザからの接続要求を処理する接続処理を負荷の少ない処理部に割り当てる方式と比べて、処理部を停止させやすくすることができると共に、ユーザが接続していると考えられる時間よりジョブが早く終了する処理部を、停止しやすくすることができる。
【００１５】
請求項２に係る発明によれば、規則に従って割り当てられるデータ処理の実行が終了するタイミングが早い処理部ほど停止しやすくすることができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態のシステム構成の一例を示す図である。
【図２】ＶＭ（仮想マシン）情報のデータ内容の一例を示す図である。
【図３】ＶＭの状態遷移を説明するための図である。
【図４】ジョブ情報のデータ内容の一例を示す図である。
【図５】オートスケール制御の手順の例を示す図である。
【図６】ユーザ振り分け処理の全体的な手順の例を示す図である。
【図７】ログイン先決定処理の手順の例を示す図である。
【図８】起動状態のＶＭの中からログイン先を選択する手順の第１の例を示す図である。
【図９】起動状態のＶＭの中からログイン先を選択する手順の第２の例を示す図である。
【図１０】起動状態のＶＭの中からログイン先を選択する手順の第３の例を示す図である。
【発明を実施するための形態】
【００１８】
図１を参照して、実施形態のシステム構成の例を説明する。
【００１９】
図１に示すジョブ処理システム１０は、ＰＣ（パーソナルコンピュータ）やモバイル端末等のクライアント３０を操作するユーザに対して、印刷ジョブを実行するというサービスを提供する。印刷ジョブ（以下単に「ジョブ」とも呼ぶ）とは、ユーザが指定した印刷対象の文書データをプリンタで印刷するために行うデータ処理である。ジョブ処理システム１０は、図示しないネットワークを介してクライアント３０から文書データを受け取り、その文書データをプリンタ（図示省略）で取扱可能なデータ形式の印刷データに変換し、変換結果の印刷データをネットワーク経由でプリンタに提供して印刷を実行させる。
【００２０】
ジョブ処理システム１０は、０以上のＶＭ（Virtual Machine：仮想マシン）１２を有しており、それらＶＭ１２がそれぞれユーザからの印刷指示に対応するジョブを実行する。ＶＭ１２は、例えば、ＩａａＳ（Infrastructure as a Service）プロバイダから提供されるインフラ上に構築されるものであってよい。なお同様に、後述するＶＭ管理装置１４、ユーザ振り分け装置１６も、そのインフラ上に構築される仮想マシン上に構築されたものであってよく、共有ストレージ２０はそのインフラ上のストレージであってよい。
【００２１】
ＶＭ１２が実行するジョブ処理は、文書データを印刷データに変換する処理や、変換結果の印刷データをユーザから指定されたプリンタに送信する処理や、文書データを画像に変換して画像から情報を抽出する処理や、処理結果を他のサーバへ転送する処理を含む。
【００２２】
個々のＶＭ１２は、割り当てられたジョブの処理の他に、ユーザからの要求を処理するユーザインタフェース処理も実行する。ユーザインタフェース処理には、ジョブ処理システム１０に対するユーザの接続（ログイン）の可否を判定するログイン処理、ジョブについてのパラメータ（例えば印刷部数等の印刷属性）の設定を受け付ける処理、ジョブの実行開始要求を受け付ける処理、ジョブの状態確認の要求を受け付けてジョブの状態情報をユーザに提供する処理等が含まれる。
【００２３】
この例では、ＶＭ１２がユーザ（クライアント３０）から受け付ける処理要求には、ログイン要求、ジョブ実行要求、ジョブ状態確認要求の３種類が含まれる。
【００２４】
クライアント３０からログイン要求を受けると、ユーザ振り分け装置１６からそのログイン要求を割り当てられたＶＭ１２が、クライアント３０から受け取ったパスワード等のユーザ認証情報を用いてユーザのログインを認めるか否かを判定する。ログインが認められると、ユーザはジョブ処理システム１０に対してログインしている状態となる。ログイン状態のユーザからの要求は、ログインを受け付けたＶＭ１２が受け取って処理する。すなわち、ユーザは、そのＶＭ１２にログインしたと捉えることもできる。
【００２５】
ログイン状態において、例えば、ユーザ（クライアント３０）からそのＶＭ１２に印刷データや印刷パラメータの入力が行われる。すると、ＶＭ１２は一意なジョブ識別子を発行し、それら入力された情報をそのジョブ識別子に対応づけて共有ストレージ２０に保存する（ジョブ情報２４）。その後クライアント３０からそのＶＭ１２にジョブ実行要求が入力されると、ＶＭ１２は、そのジョブ識別子をキュー（印刷待ち行列：図示省略）の末尾に追加する。各ＶＭ１２は、それぞれ次のジョブを受け入れ可能になると、そのキューの先頭のジョブを受け入れる。したがって、ログイン要求やジョブ実行要求を受けたＶＭ１２が、その要求に係るジョブを実行するとは限らない。
【００２６】
ユーザは、キューに入れられたジョブの状態を確認したい場合、ジョブ状態の確認を要求する。これに応じて、クライアント３０からジョブ処理システム１０にジョブ状態確認要求が送られる。この要求を受け取ったシステム１０内のＶＭ１２は、その要求の対象であるジョブの現在の状態を示す情報をクライアント３０に返す。
【００２７】
ユーザが明示的にログアウトを要求した場合、または操作をしない状態が所定時間続いてタイムアウトとなった場合、ユーザのログイン状態は解除される。ログイン解除の後、ユーザがジョブ処理システム１０に対して要求を行う場合は、再度ログインを行う必要がある。例えば、ユーザがログインしてジョブを投入し、ジョブ実行要求を行った後、ログインが解除され、その後そのユーザがそのジョブの状態を知りたいと思った場合、そのユーザは再びログイン要求を行ってシステム１０にログインした上で、ジョブ状態確認要求を行う。
【００２８】
ＶＭ管理装置１４は、ＶＭ１２の管理を行う装置であり、例えば停止状態のＶＭ１２を起動したり、起動状態（すなわち稼働状態）のＶＭ１２を停止させたりする。例えばジョブ処理システム１０の運営者とＩａａＳプロバイダとの契約により、ジョブ処理システム１０内で起動状態のＶＭ１２の上限数が決まっている。起動状態のＶＭ１２だけでは負荷に十分対応できなくなった場合でも、起動状態のＶＭ数がその上限数に達していない場合には、停止状態のＶＭ１２を起動することでシステムの処理能力を高めることができる（スケールアウト）。また、システムの負荷が低下してきた場合、起動状態のＶＭ１２を停止させる（スケールイン）ことで、起動状態のＶＭ１２の数に応じたＩａａＳプロバイダの従量制課金を抑制できる。
【００２９】
ユーザ振り分け装置１６は、ユーザ（クライアント３０）からの要求をいずれかのＶＭ１２に振り分ける（割り当てる）。ログイン要求の振り分け先の決定手順については、後で具体例を挙げて説明する。ログイン後の要求（例えばジョブ実行要求やジョブ状態確認要求）については、従来からあるセッション維持技術を用いて、ログイン処理を行ったＶＭ１２に振り分けることで、セッション情報をＶＭ１２間で受け渡すためのオーバーヘッドをなくすようにしてもよい。
【００３０】
共有ストレージ２０は、ＶＭ１２群、ＶＭ管理装置１４及びユーザ振り分け装置１６の間で共有される記憶装置である。共有ストレージ２０にはＶＭ情報２２とジョブ情報２４が記憶されており、ＶＭ１２群、ＶＭ管理装置１４及びユーザ振り分け装置１６はこれらの情報を参照しながら処理を進める。
【００３１】
図２にＶＭ情報２２のデータ内容の一例を示す。この例では、ＶＭ情報２２には、ＶＭ１２ごとに、そのＶＭ１２を一意に識別する「ＶＭ識別子」、そのＶＭ１２の「状態」、そのＶＭ１２が同時に受付可能な「最大ユーザ数」、そのＶＭ１２に現在ログインしているユーザ数（「ログインユーザ数」）、現在ログインしているユーザのユーザ識別子のリスト（「ログインユーザ」）、そのＶＭ１２が並列的に実行可能な「最大ジョブ数」、そのＶＭ１２が現在実行しているジョブのジョブ識別子のリスト（「実行中ジョブ」）が登録されている。図２に示したテーブルの１つの行が、その行に対応するＶＭ１２の管理情報である。
【００３２】
「最大ジョブ数」及び「最大ユーザ数」は、個々のＶＭ１２の処理能力に応じてあらかじめ定められた値である。図示例ではこれらの値は全てのＶＭ１２で同じ値になっているが、ＶＭ１２毎に能力が異なる場合には、それらの値もＶＭ１２毎に異なってくる。
【００３３】
ＶＭ１２の「状態」として、前述の「起動」及び「停止」という状態の他に、「アイドル」状態を設けてもよい。「起動」状態とは、ＶＭ１２が起動済みである状態、すなわちジョブやユーザインタフェース処理を実行可能な状態である。「停止」状態とは、ＶＭ１２が停止している状態である。ＶＭ情報２２内には「停止」状態のＶＭ１２の管理情報は存在するが、クラウドコンピューティングのインフラ上にはそのＶＭ１２は既に存在していない。「停止」状態のＶＭ１２（管理情報としてのみ存在）がジョブやユーザインタフェース処理（ユーザからの要求の受付等）を実行可能になるには、そのＶＭ１２を起動する起動処理が必要であり、この起動処理にはある程度の時間がかかる。「アイドル」状態とは、「起動」状態と「停止」状態の中間の状態であり、いわば「停止」の準備段階である。この状態ではＶＭ１２はまだ停止していないが、新たなジョブは受け入れないし、ユーザインタフェース処理も実行しない。これらのことを実行するには、ＶＭ１２は「起動」状態に復帰する必要がある。ただし、「アイドル」状態のＶＭ１２は、まだ停止していないので、起動処理を行わなくてもほぼ即座に「起動」状態に復帰し、新たなジョブやユーザインタフェース処理を実行することができる。
【００３４】
ＶＭ情報２２の内容は、ＶＭ管理装置１４、ユーザ振り分け装置１６、及び各ＶＭ１２により随時更新される。例えばＶＭ管理装置１４がＶＭ１２の状態を遷移させた場合、ＶＭ情報２２内のそのＶＭ１２の「状態」が遷移後の値に更新される。また、ユーザ振り分け装置１６がユーザからのログイン要求をいずれかのＶＭ１２に振り分けた場合、ＶＭ情報２２内のそのＶＭ１２の「ログインユーザ数」に１が加算される。また、ＶＭ１２がログイン処理を実行してユーザを認証した場合、そのユーザ識別子が「ログインユーザ」の欄に追加される。また、ＶＭ１２にログイン中のユーザがログアウトした場合、そのＶＭ１２の「ログインユーザ数」が１減算され、「ログインユーザ」の欄からそのユーザのユーザ識別子が削除される。また、ＶＭ１２がキューから新たなジョブを取得して実行を開始すると、「実行中ジョブ」の欄にそのジョブのジョブ識別子が追加される。そして、ＶＭ１２がジョブの実行を完了すると、「実行中ジョブ」の欄からそのジョブのジョブ識別子が削除される。
【００３５】
図３に、この例における「停止」、「起動」、「アイドル」の３状態間の状態遷移を示す。まず、「停止」から「起動」への遷移は、ジョブ処理システム１０の初期起動時又はＶＭ管理装置１４の管理下でのスケールアウト時に起こる。初期起動時は、あらかじめ定めた待機ＶＭの下限数のＶＭ１２が起動されて「起動」状態となる。この例では、ジョブ処理システム１０は、少なくともその下限数のＶＭ１２は常に「起動」（又は「アイドル」）状態としておくことで、ある程度の要求には即座に応えることができるようにしている。「起動」状態のＶＭ１２は、典型的には、ジョブ又はユーザインタフェース処理等を実行している。「起動」状態のＶＭ１２に対してログインしているユーザが無くなり、かつ、そのＶＭ１２に割り当てるべき次のジョブがキュー内にない場合に、そのＶＭ２は「アイドル」状態に遷移する。「アイドル」状態のＶＭ１２は、ＶＭ管理装置１４からのアイドル解除指示に応じて「起動」状態に戻る。アイドル解除指示は、「起動」状態のＶＭ１２群の上限負荷（最大ユーザ数又は最大ジョブ数）を超える場合に発行される。また「アイドル」状態に遷移してから、アイドル解除指示を受けないまま、あらかじめ定めた時間が経過すると、ＶＭ１２は「停止」状態に遷移する。ただし、そのＶＭ１２を「停止」させると、「起動」又は「アイドル」のＶＭ数が待機ＶＭの下限数を下回ってしまう場合は、「停止」させずに「アイドル」状態を維持する。
【００３６】
図４に、ジョブ情報２４のデータ内容の一例を示す。ジョブ情報２４には、ジョブ毎に、そのジョブを一意に識別する「ジョブ識別子」、そのジョブを投入したユーザのユーザ識別子（「ユーザ」）、そのジョブの印刷画質設定（「設定」）、そのジョブでの印刷対象の印刷データの格納場所（「入力」）、そのジョブの処理負荷の総量（言い換えれば、ＶＭ１２がそのジョブを処理するのに要する時間）を示す情報（「総ページ」）、そのジョブの現在の「状況」、及びそのジョブの処理済み量を示す情報（「完了ページ」）の各項目が含まれる。この例でＶＭ１２が実行するジョブ処理の負荷は、大略的には印刷する画像のサイズ（用紙サイズ）に比例し、また当然ながらページ数にも比例する。このため、ジョブの処理負荷の総量や処理済み量は用紙サイズとページ数の組で表現している。例えば、図４の例では、ジョブ「Job1」の総処理負荷は、Ａ４サイズ１０ページ分であり、現時点ではそのうちのＡ４サイズ４ページの処理が完了している。
【００３７】
ジョブ情報２４の内容は、各ＶＭ１２により随時更新される。例えばＶＭ１２がユーザからジョブ実行要求を受けた場合、一意なジョブ識別子が生成され、そのジョブ識別子に対応するエントリがジョブ情報２４内に作成され、そのエントリ内に、その要求を発した「ユーザ」、そのジョブについての「設定」（実行要求の発行前にユーザが入力済み）、そのジョブの印刷データの格納場所を示す「入力」、そのジョブの「総ページ」の値が登録される。このとき、そのジョブは「実行待ち」状態となり、実行要求の受付順にキューに入れられている。また、いずれかのＶＭ１２がキュー内のジョブを取得して実行を開始すると、ジョブ情報２４内のそのジョブの「状況」が「（そのＶＭ１２で）実行中」に変更され、そのＶＭ１２がそのジョブの処理（例えば印刷可能なデータ形式への変換）を１ページ終える毎に、そのジョブの「完了ページ」のページ数に１が加算される。
【００３８】
次に図５を参照して、ＶＭ管理装置１４が実行するオートスケール制御の例を説明する。なお、オートスケール制御とは、ＶＭ１２を起動させることにより「起動」状態のＶＭ１２の数を増やしたり（スケールアウト）、ＶＭ１２を停止させることで「起動」又は「アイドル」状態のＶＭ１２の数を減らしたり（スケールイン）する制御のことである。
【００３９】
ＶＭ管理装置１４は、図５の処理を定期的に繰り返す。この処理では、まず前回の処理時と比べた場合の、実行中のジョブとキュー内（処理待ち状態）のジョブとの合計数の変化を判定する（Ｓ１０）。その合計数が前回より増加した場合、その合計数が実行可能ジョブ数についての閾値以下であるかどうかを判定する（Ｓ１２）。この閾値は、ジョブ処理システム１０が同時に実行可能なジョブの総数に応じて定められる閾値である。その総数は、「起動」状態のＶＭ１２の「最大ジョブ数」の総和である。例えばこの総和の値そのものをその閾値としてもよいし、その総数にあらかじめ定めた係数をかけた値をその閾値としてもよい。Ｓ１２の判定結果がＹｅｓの場合、現在ジョブ処理システム１０が有するジョブ群は「起動」中のＶＭ１２群によりサービスの質を落とさずに処理可能なので、ＶＭ１２の数の増減は不要である。この場合は、図５の処理は何も行わず終了する。
【００４０】
Ｓ１２の判定結果がＮｏの場合、現在ジョブ処理システム１０が有するジョブ群は「起動」中のＶＭ１２群だけではサービスの質を落とさずに処理することが困難である。この場合、ＶＭ管理装置１４は、ＶＭ情報２２から、「アイドル」状態のＶＭ１２を探す（Ｓ１４）。「アイドル」状態のＶＭ１２が存在する場合（Ｓ１４の判定結果がＹｅｓ）、そのＶＭ１２の「アイドル」状態を解除する（Ｓ１６）。これによりそのＶＭ１２は「起動」状態となり、新たなジョブを受け入れて処理することができる「起動」状態のＶＭ１２の数が増える。「アイドル」状態を解除されたＶＭ１２は、起動処理が不要のためほぼ即座に「起動」状態に復帰し、キューからジョブを取得して処理する。
【００４１】
「アイドル」状態のＶＭ１２が複数存在する場合には、あらかじめ設定されている選択基準に従ってその中から１つ（又はあらかじめ定めた数）を選択して「アイドル」解除を行う。選択基準としては、例えば、（ａ）ＶＭ識別子が小さい順に選択するという基準、（ｂ）起動されたタイミングが早い順に選択するという基準、（ｃ）起動されたタイミングが遅い順に選択するという基準等がある。これらの基準は、「アイドル」状態のＶＭ１２がスケールイン可能になるタイミングを考慮に入れない、簡便な選択基準である。これに対し、スケールイン可能になるタイミングを考慮に入れた選択基準の例として、「アイドル」状態に遷移してからの経過時間が短いものほど優先的に選択するという基準がある。経過時間が長いものは「アイドル」状態が維持されやすいので、もう少しでスケールインできるＶＭ１２が「起動」状態に戻ってしまうという事態が生じにくい。また選択基準の別の例として、「アイドル」のＶＭ１２のうち、実行しているジョブの処理が終了するまでの残り時間が長いＶＭ１２ほど優先的に選択するという基準もある。その残り時間が長いほどスケールイン（「停止」状態への遷移）が可能になるタイミングが遅いので、この基準によれば、スケールインしやすい（残り時間が短い）ＶＭ１２が「起動」状態に戻るという事態が起こりにくい。ここで残り時間の長さを示す値としては、ＶＭ情報２２及びジョブ情報２４から、「アイドル」のＶＭ１２が実行中のジョブの「総ページ数」から「完了ページ」を引き算した結果の値を用いればよい。このとき、「総ページ数」及び「完了ページ」は、基準とする用紙サイズでのページ数に換算した上で上述の引き算を行う。
【００４２】
Ｓ１４の判定結果がＮｏ（すなわち「アイドル」のＶＭが存在しない）の場合、ＶＭ管理装置１４は、「起動」状態のＶＭ１２の総数が、契約等で定められた起動できるＶＭ１２の上限数に達しているか、否（上限数未満）かを判定する（Ｓ１８）。この判定の結果がＮｏ（上限数未満）である場合、ＶＭ管理装置１４は、「停止」状態のＶＭ１２を１つ（又はあらかじめ定めた数だけ）起動する（スケールアウト）（Ｓ２０）。この結果そのＶＭ１２の起動処理が実行され、起動処理に必要な時間が経過した後、そのＶＭ１２は「起動」状態となり、新たなジョブを受け入れて実行する。
【００４３】
Ｓ１０の判定で、前回と今回でジョブの数に変化が無いと判定した場合、ＶＭ管理装置１４は、更にジョブ処理システム１０にログインしているユーザの数（図２の「ログインユーザ数」を全ＶＭにわたる総和）と、ログイン待ち（ログイン要求を行ったがまだログインが認められていない）のユーザの数との合計数について、前回からの変化を判定する（Ｓ２２）。Ｓ２２で、その合計数が前回よりも増加したと判定した場合、ＶＭ管理装置１４は、その合計数がジョブ処理システム１０の受け入れ可能なユーザ数についての閾値を上回っているかどうかを判定する（Ｓ２４）。この閾値は、ジョブ処理システム１０が同時に受け入れ可能なログインユーザ数の総数に応じて定められる閾値である。その総数は、「起動」状態のＶＭ１２の「最大ユーザ数」の総和である。例えばこの総和の値そのものをその閾値としてもよいし、その総数にあらかじめ定めた係数をかけた値をその閾値としてもよい。Ｓ２４の判定結果がＮｏの場合、現在ログイン中又はログイン待ちのユーザ群は「起動」中のＶＭ１２群によりサービスの質を落とさずに受け入れ可能なので、ＶＭ１２の数の増減は不要である。この場合は、図５の処理は何も行わず終了する。
【００４４】
Ｓ２４の判定結果がＹｅｓの場合、現在ログイン中又はログイン待ちのユーザ群は「起動」中のＶＭ１２群によりサービスの質を落とさずに受け入れることができない。この場合、ＶＭ管理装置１４は、前述したＳ１４〜Ｓ２０の処理により、「起動」状態のＶＭ１２を増加させることを試みる。
【００４５】
Ｓ２２で、ログイン中とログイン待ちのユーザの合計数が前回から減少又は前回と同じと判定した場合、ＶＭ管理装置１４は、「起動」状態のＶＭ１２の中に、次に実行するジョブが無く、かつログイン中のユーザがいないものが有るかどうかを判定する（Ｓ２６）。該当するＶＭ１２がない場合は、処理を終了する。該当するＶＭ１２がある（判定結果がＹｅｓ）場合、ＶＭ管理装置１４は、そのＶＭ１２の状態を「起動」から「アイドル」に遷移させ、そのＶＭ１２に対応づけたタイマーにあらかじめ定めた待ち時間をセットし、計時（カウントダウン）を開始させる（Ｓ２８）。このタイマーは、そのＶＭ１２が「起動」状態に戻されるとリセットされる。そのタイマーの残り時間が０になると、ＶＭ管理装置１４はそのＶＭ１２を「停止」状態に遷移させる。
【００４６】
次に、図６を参照して、ユーザ振り分け装置１６が実行する処理の例を説明する。この処理は、ユーザがクライアント３０上のウェブブラウザを操作して、ジョブ処理システム１０に接続した場合に開始される。この場合、ユーザ振り分け装置１６は、接続してきたユーザがログイン済みであるかどうかを、例えばＶＭ情報２２（図２）を参照して、あるいはＣｏｏｋｉｅ等の一般的なセッション管理手法を用いて調べる（Ｓ３２）。この調査の結果、そのユーザがログイン済み（すなわちいずれかのＶＭ１２にログイン中）であると判定した場合（Ｓ３４の判定結果がＹｅｓ）、ユーザ振り分け情報を参照して、そのユーザが現在ログイン中のＶＭ１２を特定し（Ｓ３６）、特定したＶＭ１２に対し、そのユーザからの接続に対する処理を振り分ける（Ｓ３８）。ユーザ振り分け情報は、ログイン済みのユーザがログインしたＶＭ１２を表す情報である。この手順では、ログイン済みのユーザからの接続要求は、ユーザ振り分け情報を用いて、そのユーザがログインしたＶＭ１２に割り振る（すなわちセッションを維持する）。
【００４７】
ここで参照するユーザ振り分け情報は、１つの例では、ＶＭ情報２２（図２）中の「ＶＭ識別子」と「ログインユーザ」の対応関係の情報である。
【００４８】
また、別の例として、Ｃｏｏｋｉｅ等の一般的なセッション維持手法を用いてもよい。Ｃｏｏｋｉｅを用いたセッション維持の場合、ジョブ処理システム１０は、ログイン時のレスポンスとして、セッションＩＤを含んだＣｏｏｋｉｅ情報をウェブブラウザに返す。ウェブブラウザは、次回のＨＴＴＰリクエストの際にそのＣｏｏｋｉｅ情報をジョブ処理システム１０に送ってくる。そのセッションＩＤとログイン先のＶＭ１２のＶＭ識別子との対応関係をユーザ振り分け情報として保存しておけばよい。そして、ウェブブラウザからの接続（ＨＴＴＰリクエスト）にＣｏｏｋｉｅ情報が付随している場合、そのＣｏｏｋｉｅ情報中のセッションＩＤに対応するＶＭ識別子をユーザ振り分け情報から求め、そのＶＭ識別子に対応するＶＭ１２にその接続を振り分ければよい。また、ウェブブラウザがＣｏｏｋｉｅを送ってこない場合は、そのＣｏｏｋｉｅの有効期限が切れたということであり、ユーザのログイン状態がタイムアウトした、すなわち現在ユーザはログインしていない（ログイン済みで無い）と判定できる。
【００４９】
Ｓ３４で、接続してきたユーザがログイン済みで無い（すなわち未ログイン）と判定した場合、ユーザ振り分け装置１６は、ログイン先決定処理（Ｓ４０。詳細は後述）を実行することで、ログイン先のＶＭ１２を決定し、決定したＶＭ１２にその接続を振り分ける（Ｓ３８）。
【００５０】
次に図７を参照してログイン先決定処理の手順の例を説明する。この手順では、「アイドル」状態のＶＭ１２よりも「起動」状態のＶＭ１２を優先的にログイン先に決定する。
【００５１】
この手順では、まずユーザ振り分け装置１６は、ＶＭ情報２２を参照して、「起動」状態でありかつ「ログインユーザ数」が「最大ユーザ数」に達していないＶＭ１２を、ログイン先の候補である候補ＶＭとして抽出する（Ｓ４２）。候補ＶＭが１以上抽出できたか否かを判定し（Ｓ４４）、１以上抽出できた場合は、それら候補ＶＭの中からユーザのログイン先を選択する（Ｓ４６）。Ｓ４６の選択処理については、後で具体例をいくつか説明する。
【００５２】
Ｓ４４で候補ＶＭが１つもないと判定した場合、ユーザ振り分け装置１６は、「アイドル」状態のＶＭ１２があるか否かを判定する（Ｓ４８）。「アイドル」状態のＶＭ１２がある場合、その中からユーザのログイン先を選択する（Ｓ５０）。この選択は、Ｓ１６で「アイドル」状態の複数のＶＭ１２から「アイドル」状態の解除対象を選択する際と同様の選択基準に従って行えばよい。ログイン先とする「アイドル」状態のＶＭ１２が選択された場合、その選択されたＶＭ１２の「アイドル」状態の解除が行われ、これにより「起動」状態に復帰したそのＶＭ１２に対してユーザ振り分け装置１６がそのユーザからの接続要求に対する処理を割り振る。
【００５３】
Ｓ４８で「アイドル」状態のＶＭ１２が無いと判定した場合、ユーザ振り分け装置１６は、ＶＭ情報２２内に「停止」状態のＶＭ１２があるか否かを判定する（Ｓ５２）。「停止」状態のＶＭ１２があるということは、「起動」状態のＶＭ１２の数が契約等により定められたＶＭ１２の上限数に達していないということである。この場合、ユーザ振り分け装置１６は、ＶＭ識別子が小さい順に選択する、過去に起動されていれば停止されたタイミングが早い順に選択する、停止されたタイミングが遅い順に選択する、等といった選択基準に従い、「停止」中のＶＭ１２の中からログイン先を選択する。そして、選択したＶＭ１２の起動処理を開始する（スケールアウト）。起動処理にはある程度の時間を要するので、ユーザに待機を促すメッセージを送る等の起動待ち処理を実行する（Ｓ５４）。そして、起動処理が完了すると、そのＶＭ１２にそのユーザの接続要求を処理させる。Ｓ５２で「停止」中のＶＭ１２もないことが判明した場合、「起動」状態のＶＭ１２の数が契約等により定められたＶＭ１２の上限数に達しているということであり、これ以上スケールアウトすることができない。この場合、そのユーザの接続が受け入れられないので、受け入れ不可のレスポンスをクライアント３０に返す（Ｓ５６）。
【００５４】
次に、Ｓ４６における候補ＶＭの中からユーザのログイン先を決定する処理の具体例を説明する。ログイン先の選択の方針は、まずその選択の時点でジョブを実行している候補ＶＭと、ジョブを実行していない候補ＶＭがあった場合、前者を優先的にログイン先に選ぶというものである。ジョブを実行している候補ＶＭが複数存在する場合、更なる方針として、それら複数のうち、ジョブの実行が終了するタイミングが最も遅いものをログイン先に選択する方針を用いてもよい。ジョブの実行が終了するタイミングとしては、その時点で実行中のジョブの終了タイミングとしてもよいし、キュー内にあるジョブ群をそれらジョブ実行中の候補ＶＭ群に順に割り当てたと仮定して、各候補ジョブがそれぞれ割り当てられた全てのジョブの実行を終了するタイミングとしてもよい。また、ユーザがＶＭ１２にログインしている時間の推測値（後述の平均ログイン時間Ｌ）を考慮に入れてもよい。以下、具体例をいくつか説明する。
【００５５】
まず第１の例として図８に示す処理手順を説明する。この処理手順は、最も後までジョブを実行していると推測される候補ＶＭをログイン先に選択するものである。
【００５６】
この手順では、まずユーザ振り分け装置１６は、候補ＶＭ（「起動」状態かつ最大ユーザ数未満のＶＭ１２）の中にジョブを実行中のＶＭ１２があるかどうかを判定し（Ｓ６０）、ないと判定した場合には、予め設定されている選択基準に従ってそのユーザのログイン先を決定する（Ｓ６２）。ここで用いる選択基準としては、例えば、候補ＶＭのうち他のユーザがログインしているＶＭ１２（ただしログインユーザ数が最大ユーザ数未満のものに限る）があれば、それを選択するという基準がある。この基準によれば、ユーザがログインしていない候補ＶＭ（このＶＭ１２はジョブも実行していない）に新たなログイン処理が割り当てられることが無いので、そのＶＭ１２が「アイドル」状態に遷移する（ひいては「停止」する）という方向性が妨げられにくい。なお、ログイン処理等のユーザインタフェース処理はジョブ実行よりも一般に負荷が低いので、最大ユーザ数以内であればユーザが集中しても処理速度等のサービスの質の劣化は生じにくい。また別の選択基準として、上述した基準（ａ）、（ｂ）、又は（ｃ）等の他の基準を用いてもよい。
【００５７】
Ｓ６０の判定結果がＹｅｓの場合、ジョブ実行中の候補ＶＭ毎に、変数「合算時間」に対して、その実行中のジョブの残り時間（すなわち現時点からそのジョブの処理が完了するまでの時間）をセットする（Ｓ６４）。変数「合算時間」は、その判定の時点でキュー内にあるジョブを、あらかじめ設定されているジョブ分配の規則に従って、ジョブ実行中の各候補ＶＭに対して分配したと仮定した場合の、それら各候補ＶＭが分配された全てのジョブの処理を終えるまでに要する時間を示すための変数である。図８の例は、ＶＭ１２が１つのジョブの処理を終え次のジョブを受け入れ可能になるとキューから次のジョブを取得する、というジョブ分配規則を用いた場合の例である。なお、候補ＶＭであってもジョブを実行していないものは、早晩「アイドル」状態に移行するので、キューにジョブを取りに行かないと仮定する。また実行中のジョブの残り時間は、ＶＭ情報２２及びジョブ情報２４を参照し、当該候補ＶＭが実行中のジョブの「総ページ」から「完了ページ」を引き算することで求めればよい（前者及び後者を基準のページサイズでのページ数に換算の上、引き算）。ジョブの実行に要する所要時間は、用紙（ページ）サイズにほぼ比例し、且つページ数にほぼ比例するので、基準ページサイズ換算でのジョブの残りページ数（「総ページ」−「完了ページ」）は、そのジョブ完了までの残り時間にほぼ比例する。したがって、基準ページサイズ換算での残りページ数をジョブの残り時間の指標値として用いる。
【００５８】
次にキュー内のジョブ（実行待ちジョブ）の中に未計算（すなわちＳ６８〜Ｓ７２の計算がまだ試されていない）のものが無くなるまで、Ｓ６８〜Ｓ７２の計算処理を繰り返す（Ｓ６６）。
【００５９】
Ｓ６８では、キュー内の未計算の先頭のジョブの所要時間Ｒを見積もる。この見積もりでは、当該ジョブの「総ページ」を基準のページサイズでのページ数に換算し、その換算結果を所要時間の指標値Ｒとすればよい。次にＳ７０でジョブ実行中の候補ＶＭのうち合算時間が最も短いＶＭを選択する。選択したＶＭは、そのＳ７０の時点でキュー内の未計算の先頭ジョブを取得する（分配される）と推測されるＶＭである。そして、Ｓ７２でその選択したＶＭの合算時間に対しＳ６８で推定した所要時間Ｒを加算する。これにより、ジョブの分配がシミュレートされる。
【００６０】
そして、キュー内の最後のジョブの分配のシミュレートが終了すると、Ｓ６６の判定結果がＮｏとなり、ユーザ振り分け装置１６は、合算時間が最も長いＶＭ１２を今回のログイン処理の振り分け先に選択する（Ｓ７４）。
【００６１】
図８の処理によれば、最も後までジョブを実行していると推測される候補ＶＭが今回のユーザのログイン先に選ばれる。このように最後までジョブを実行している可能性が高いＶＭ１２にログイン処理（ひいてはその後に続く他のユーザインタフェース処理）を集中させることで、起動状態であってもジョブを実行していないＶＭ１２は、ユーザインタフェース処理が割り当てられにくいので、アイドル状態に移行しやすくなり、ひいては停止しやすくなる。また、ジョブを実行しているＶＭ１２でも、割り当てられるジョブ群が早く終了するＶＭ１２は、遅く終了するＶＭ１２よりもユーザインタフェース処理が割り当てられにくいので、そのようなＶＭ１２も相対的にアイドル状態に移行しやすくなる。
【００６２】
次に、Ｓ４６（ログイン先選択）の処理の別の例を、図９を参照して説明する。この例では、ユーザ振り分け装置１６は、各候補ＶＭが実行中のジョブの実行残り時間Ｒを求め、その残り時間が最も長い候補ＶＭ（便宜上、ＶＭ−Ｒと呼ぶ）を選ぶ（Ｓ８０）。次に、選んだ候補ＶＭのジョブ実行残り時間Ｒがユーザの平均ログイン時間Ｌよりも長いかどうかを判定する（Ｓ８２）。平均ログイン時間Ｌは、様々なユーザがジョブ処理システム１０（すなわちいずれかのＶＭ１２）にログインしてから、明示的又は無操作によるタイムアウトによりログアウトするまでの時間の平均値であり、ジョブ処理システム１０の運用側が経験的に知っている値である。Ｓ８２の判定結果がＹｅｓの場合、Ｓ８０で選んだ候補ＶＭ−Ｒをログイン先に選択する（Ｓ８４）。そうでない場合は図８の手順のＳ６２で用いた選択基準と同様の基準に従ってログイン先を選択する（Ｓ８６）。
【００６３】
このように図９の処理手順では、今回振り分けようとしているユーザがログインしていると考えられる間（すなわち平均ログイン時間Ｌ）に、実行中のジョブが終了しないと考えられる候補ＶＭにそのユーザが振り分けられることになる。したがって、ジョブを実行中であっても、ユーザがログインしている間にその実行が終わる可能性が高い候補ＶＭにはユーザが振り分けられにくいので、そのような候補ＶＭはアイドル状態（ひいては停止状態）に移行しやすくなる。候補ＶＭ以外のＶＭは、アイドル状態への移行や停止状態への移行が更にしやすくなる。
【００６４】
次に、Ｓ４６（ログイン先選択）の処理の更に別の例を、図１０を参照して説明する。この例では、ユーザ振り分け装置１６は、候補ＶＭの中にジョブを実行中のものがあるかどうかを調べ（Ｓ９０）、そのような候補ＶＭがあれば、そのうち現在実行中のジョブの実行残り時間Ｒが最も長い候補ＶＭ−Ｒを求め、求めたＶＭ−Ｒをログイン先に選択する（Ｓ９２）。ジョブ実行中の候補ＶＭがない場合は、図８の手順のＳ６２で用いた選択基準と同様の基準に従ってログイン先を選択する（Ｓ９４）。
【００６５】
このように図１０の処理手順では、現在実行中のジョブに終了が最も遅い候補ＶＭにユーザが振り分けられることになる。したがって、ジョブを実行中であっても、現在実行中のジョブがＶＭ−Ｒよりも早く終わると考えられる候補ＶＭにはユーザが振り分けられにくいので、そのような候補ＶＭはアイドル状態（ひいては停止状態）に移行しやすくなる。ジョブを実行していないＶＭや候補ＶＭ以外のＶＭは、アイドル状態への移行や停止状態への移行が更にしやすくなる。
以上、本発明の実施形態を説明した。ジョブを実行していないＶＭ１２にログイン処理（やそれに続くユーザインタフェース処理）が割り当てられると、そのＶＭ１２は停止（スケールイン）できなくなるが、本実施形態では、ジョブを実行中のＶＭ１２を優先的にログイン先に選択するので、ジョブを実行していないＶＭ１２がスケールインしやすくなる。また、本実施形態では、ジョブを最も遅くまで実行していると推定できるＶＭ１２から順にログイン先に選択するので、それより早くジョブを終了するＶＭ１２がスケールインしやすくなる。
【００６６】
以上では、ジョブ処理システム１０が印刷ジョブの実行サービスをユーザに提供する例を説明したが、ジョブ処理システム１０は、スキャンした画像に対するデータ処理や画像の転送処理等の他のジョブを実行するものであってもよい。この場合クライアント３０は、スキャナ、ファクシミリ装置、複合機（プリンタ、スキャナ、コピー機、ファクシミリ装置等の機能を併せ持つ装置）等であってもよい。
【００６７】
また、仮想マシンではなく物理的なコンピュータでジョブ処理やユーザインタフェース処理を分散して実行するシステムにおいても、上記実施形態の手法を用いてそれらコンピュータの起動（スケールアウト）や停止（スケールイン）を制御することができる。
【００６８】
以上に例示したＶＭ１２、ＶＭ管理装置１４、ユーザ振り分け装置１６は、例えば、汎用のコンピュータにそれら各装置の処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【符号の説明】
【００６９】
１０  ジョブ処理システム、１２  ＶＭ（仮想マシン）、１４  ＶＭ管理装置、１６  ユーザ振り分け装置、２０  共有ストレージ、２２  ＶＭ情報、２４  ジョブ情報、３０  クライアント。
【図１】
0006477081.tif 000002
【図２】
0006477081.tif 000003
【図３】
0006477081.tif 000004
【図４】
0006477081.tif 000005
【図５】
0006477081.tif 000006
【図６】
0006477081.tif 000007
【図７】
0006477081.tif 000008
【図８】
0006477081.tif 000009
【図９】
0006477081.tif 000010
【図１０】
0006477081.tif 000011