(57)【要約】【課題】仮想プリンタに設定された処理速度についての保証値が、同じ情報処理装置上に配置された保証値なしの仮想プリンタの影響で保証できなくなりそうになった場合に、仮想プリンタ群の再配置によりその保証値が保証できるようにする。【解決手段】データ記憶装置１０２には、各サーバ１００Ａ、１００Ｂの最大処理レート、各仮想プリンタ（論理プリンタ１１２、物理プリンタ１１４）の処理レートの保証の有無及び保証値、並びに各仮想プリンタの処理レートの実績値が記憶されている。帯域保証判定装置１０５は、各仮想プリンタの処理レートの実績値と保証値の比較から、保証値の保証が失敗しそうな兆候を検出する。兆候の検出に応じ、配置管理装置１０４は、同一サーバ上の保証値ありの仮想プリンタの保証値と保証値無しの仮想プリンタの実績値との合計がそのサーバの最大処理レートを超えないよう、各サーバ１００に対して各仮想プリンタを再配置する。【選択図】図１
2015179478.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ１以上の仮想プリンタが配置可能な複数の情報処理装置の各々について、当該情報処理装置が達成可能な印刷指示の処理速度の最大値を示す最大処理速度を記憶する手段と、
対応する実プリンタに印刷を実行させるための印刷制御処理を実行する複数の仮想プリンタが、前記複数の情報処理装置のそれぞれいずれに配置されているかを記憶する手段と、
処理速度についての保証値が設定された仮想プリンタについて、その保証値を記憶する手段と、
各仮想プリンタの処理速度の実績値を取得する手段と、
各仮想プリンタについて、処理速度の実績値と保証値との比較に基づき、当該仮想プリンタが保証値を保証できなくなる兆候があるかどうかを判定する手段と、
保証値を保証できなくなる兆候がある仮想プリンタが検出された場合に、同一の情報処理装置に配置される保証値が設定された各仮想プリンタの保証値と保証値が設定されていない各仮想プリンタの実績値との合計が、当該情報処理装置の最大処理速度を超えないという条件を満たすよう、複数の情報処理装置に対して複数の仮想プリンタを再配置する再配置手段と、
を有する印刷制御システム。
【請求項２】
前記保証値が設定された仮想プリンタが使用されない期間に入ったと判定される場合に、前記保証値が設定された仮想プリンタの前記保証値を、あらかじめ定められた仮想プリンタ不使用時の値へと自動的に低減する手段、
を更に備える請求項１に記載の印刷制御システム。
【請求項３】
前記再配置手段は、前記保証値が設定された各仮想プリンタについて前記保証値と前記実績値のうち大きい方を選択し、前記条件に代えて、同一の情報処理装置に配置される、前記保証値が設定された各仮想プリンタについての選択した前記大きい方の値と、保証値が設定されていない各仮想プリンタの実績値と、の合計が当該情報処理装置の最大処理速度を超えないという第２の条件、を満たすよう、複数の情報処理装置に対して複数の仮想プリンタを再配置する、ことを特徴とする請求項１又は２に記載の印刷制御システム。
【請求項４】
コンピュータを、
それぞれ１以上の仮想プリンタが配置可能な複数の情報処理装置の各々について、当該情報処理装置が達成可能な印刷指示の処理速度の最大値を示す最大処理速度を記憶する手段、
対応する実プリンタに印刷を実行させるための印刷制御処理を実行する複数の仮想プリンタが、前記複数の情報処理装置のそれぞれいずれに配置されているかを記憶する手段、
処理速度についての保証値が設定された仮想プリンタについて、その保証値を記憶する手段、
各仮想プリンタの処理速度の実績値を取得する手段、
各仮想プリンタについて、処理速度の実績値と保証値との比較に基づき、当該仮想プリンタが保証値を保証できなくなる兆候があるかどうかを判定する手段、
保証値を保証できなくなる兆候がある仮想プリンタが検出された場合に、同一の情報処理装置に配置される保証値が設定された仮想プリンタの保証値と保証値が設定されていない仮想プリンタの実績値との合計が、当該情報処理装置の最大処理速度を超えないという条件を満たすよう、複数の情報処理装置に対して複数の仮想プリンタを再配置する再配置手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御システム及びプログラムに関する。
【背景技術】
【０００２】
複数の印刷装置を１つの印刷制御装置で集中管理するシステムでは、対応可能な印刷装置の数に限りがある。そのため、印刷制御装置を複数設けることで、より多くの印刷装置を管理可能なシステムが開発されている。この種のシステムでは、一部の印刷制御装置に付加が集中することがないよう、負荷分散を図ることが必要である。
【０００３】
プリンタやサーバの負荷分散に関する従来技術として、特許文献１及び２に開示されるものがある。
【０００４】
特許文献１に開示されたプリンタ管理システムでは、ジョブ毎、ユーザ毎、又はホストコンピュータ毎に、プリンタ使用の優先度を割り当て、優先度が高いものが優先的にプリンタを利用する。
【０００５】
特許文献２に開示された負荷分散システムは、サーバの負荷分散のパターンが書き込まれたテーブルを有し、このテーブルに従って負荷が分散される。また、このシステムは、ウェブサーバの障害を監視する手段を有し、障害が発生したときどのサーバが代替サーバになるかが書き込まれたテーブルを有する。
【０００６】
企業内で行われる印刷において、基幹システムからの帳票や図面等の基幹データの印刷と、オフィス等での一般的な事務文書の印刷とが要求される場合が想定される。この場合、前者はミッションクリティカルであり、予定通り出力が完了しないと下流の工程に影響が出るのに対し、後者にはそれほどの厳密性、緊急性はない。また、出力が集中するタイミングも予測しがたい。このため、従来は、基幹出力専用の印刷サーバを設け、事務文書等の一般的な出力が基幹出力の処理に影響を与えないようにしていた。しかし、基幹出力専用のサーバを用意するのには、コストがかかる。
【０００７】
１台のサーバに基幹出力と一般出力の両方を担当させ、基幹出力のジョブに一般出力よりも高い優先度を付与して優先度制御を行えば、基幹出力を保護することは一応可能である。しかし、優先度制御が可能なのは、１つのキュー（処理待ち行列）内にあるジョブ同士の間のみである。１つのサーバ上に、基幹出力用のキューと一般出力用のキューを別々に設けた場合、１つのキュー内のジョブ群の実行優先度を制御する従来の優先度制御方式では、それら複数のキューにまたがるジョブ同士の間での実行優先度を制御することはできない。
【０００８】
ところで、１つのサーバ上で１以上の仮想プリンタを実行し、各仮想プリンタでそれぞれ別々の実プリンタ（用紙に対する印刷を担う印刷装置）を制御させる形のシステムも知られている。また、そのようなサーバを複数設けることで、一企業全体といった大規模な組織にある膨大な数の印刷装置に対する膨大な数のユーザからの印刷ジョブを管理することも考えられる。また、サーバとしてクラウドサービスが提供する仮想マシンを利用すれば、システムの規模をスケーラブルとすることもできる。すなわち、仮想マシン上で仮想プリンタを実行することとすれば、システムが制御する印刷装置の数やシステムに対して依頼される印刷処理の負荷の増減に応じて仮想マシンの数を容易に増減することができる。
【０００９】
この種のシステムの場合、個々の仮想プリンタは印刷指示受け付け用のキューをそれぞれ個別に有する。１つの仮想プリンタ内でジョブの実行優先度制御を行うという煩雑さを避ける場合、基幹出力用の仮想プリンタと一般出力用の仮想プリンタを別々に用意することとなる。
【００１０】
大規模組織のためのシステムの場合、そのような大規模組織の基幹出力のための処理を１台のサーバでまかなうのは現実的ではなく、複数のサーバによる分散処理の方が現実的である。一般出力の場合も同様である。したがって、大規模システムの場合、基幹用の仮想プリンタと一般用の仮想プリンタをそれぞれ多数用意する必要があり、それら多数の仮想プリンタを、多数のサーバに分散配置することとなる。この場合、１つのサーバ上に複数の仮想プリンタが配置されるケースも当然出てくる。基幹用の仮想プリンタと一般用の仮想プリンタが同じサーバ上に配置された場合、一般用の仮想プリンタの処理負荷の増大により基幹用の仮想プリンタの処理能力が圧迫される可能性がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１０−４００４４号公報
【特許文献２】特開２００８−２２５７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、仮想プリンタに対して設定された処理速度についての保証値が、同じ情報処理装置上に配置された保証値なしの仮想プリンタの影響で保証できなくなりそうになった場合に、その保証値が保証しやすくなるよう仮想プリンタ群を再配置する仕組みを提供する。
【課題を解決するための手段】
【００１３】
請求項１に係る発明は、それぞれ１以上の仮想プリンタが配置可能な複数の情報処理装置の各々について、当該情報処理装置が達成可能な印刷指示の処理速度の最大値を示す最大処理速度を記憶する手段と、対応する実プリンタに印刷を実行させるための印刷制御処理を実行する複数の仮想プリンタが、前記複数の情報処理装置のそれぞれいずれに配置されているかを記憶する手段と、処理速度についての保証値が設定された仮想プリンタについて、その保証値を記憶する手段と、各仮想プリンタの処理速度の実績値を取得する手段と、各仮想プリンタについて、処理速度の実績値と保証値との比較に基づき、当該仮想プリンタが保証値を保証できなくなる兆候があるかどうかを判定する手段と、保証値を保証できなくなる兆候がある仮想プリンタが検出された場合に、同一の情報処理装置に配置される保証値が設定された各仮想プリンタの保証値と保証値が設定されていない各仮想プリンタの実績値との合計が、当該情報処理装置の最大処理速度を超えないという条件を満たすよう、複数の情報処理装置に対して複数の仮想プリンタを再配置する再配置手段と、を有する印刷制御システムである。
【００１４】
請求項２に係る発明は、前記保証値が設定された仮想プリンタが使用されない期間に入ったと判定される場合に、前記保証値が設定された仮想プリンタの前記保証値を、あらかじめ定められた仮想プリンタ不使用時の値へと自動的に低減する手段、を更に備える請求項１に記載の印刷制御システムである。
【００１５】
請求項３に係る発明は、前記再配置手段は、前記保証値が設定された各仮想プリンタについて前記保証値と前記実績値のうち大きい方を選択し、前記条件に代えて、同一の情報処理装置に配置される、前記保証値が設定された各仮想プリンタについての選択した前記大きい方の値と、保証値が設定されていない各仮想プリンタの実績値と、の合計が当該情報処理装置の最大処理速度を超えないという第２の条件、を満たすよう、複数の情報処理装置に対して複数の仮想プリンタを再配置する、ことを特徴とする請求項１又は２に記載の印刷制御システムである。
【００１６】
請求項４に係る発明は、コンピュータを、それぞれ１以上の仮想プリンタが配置可能な複数の情報処理装置の各々について、当該情報処理装置が達成可能な印刷指示の処理速度の最大値を示す最大処理速度を記憶する手段、対応する実プリンタに印刷を実行させるための印刷制御処理を実行する複数の仮想プリンタが、前記複数の情報処理装置のそれぞれいずれに配置されているかを記憶する手段、処理速度についての保証値が設定された仮想プリンタについて、その保証値を記憶する手段、各仮想プリンタの処理速度の実績値を取得する手段、各仮想プリンタについて、処理速度の実績値と保証値との比較に基づき、当該仮想プリンタが保証値を保証できなくなる兆候があるかどうかを判定する手段、保証値を保証できなくなる兆候がある仮想プリンタが検出された場合に、同一の情報処理装置に配置される保証値が設定された仮想プリンタの保証値と保証値が設定されていない仮想プリンタの実績値との合計が、当該情報処理装置の最大処理速度を超えないという条件を満たすよう、複数の情報処理装置に対して複数の仮想プリンタを再配置する再配置手段、として機能させるためのプログラムである。
【発明の効果】
【００１７】
請求項１又は４に係る発明によれば、仮想プリンタに対して設定された処理速度についての保証値が、同じ情報処理装置上に配置された保証値なしの仮想プリンタの影響で保証できなくなりそうになった場合に、その保証値が保証しやすくなるよう仮想プリンタ群を再配置することができる。
【００１８】
請求項２に係る発明によれば、保証値が設定された仮想プリンタが使用されない期間に、保証値が設定されていない仮想プリンタの処理速度を向上させることができる。
【００１９】
請求項３に係る発明によれば、同じ情報処理装置上に配置された保証値ありの仮想プリンタと保証値なしの仮想プリンタの両方を考慮に入れて、保証値が保証しやすくなるよう仮想プリンタ群を再配置することができる。
【図面の簡単な説明】
【００２０】
【図１】実施形態のシステム構成の一例を示す図である。
【図２】印刷サービス及びデータ記憶装置の内部構成の例を示す図である。
【図３】論理プリンタ及び物理プリンタの処理レート（実績値）の計測を説明するための図である。
【図４】論理プリンタテーブルのデータ内容の一例を示す図である。
【図５】物理プリンタテーブルのデータ内容の一例を示す図である。
【図６】対応づけテーブルのデータ内容の一例を示す図である。
【図７】サーバテーブルのデータ内容の一例を示す図である。
【図８】配置テーブルのデータ内容の一例を示す図である。
【図９】処理レート履歴テーブルのデータ内容の一例を示す図である。
【図１０】帯域保証失敗リスク低減処理の手順の一例を示す図である。
【図１１】仮想プリンタの再配置計算処理の全体的な手順の一例を示す図である。
【図１２】帯域保証ありの仮想プリンタの再配置計算の手順の一例を示す図である。
【図１３】帯域保証なしの仮想プリンタの再配置計算の手順の一部を示す図である。
【図１４】帯域保証なしの仮想プリンタの再配置計算の手順の残りの部分を示す図である。
【図１５】物理プリンタ、論理プリンタの再配置決定の具体例を説明する図である。
【図１６】帯域保証ありの仮想プリンタの再配置計算の別の手順の一部を示す図である。
【図１７】帯域保証ありの仮想プリンタの再配置計算の別の手順の残りの部分を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、本発明の実施形態を説明する。
【００２２】
図１に、実施形態の印刷制御システムの一例を示す。図１に例示するシステムは、複数のサーバ１００Ａ，１００Ｂ，・・・、データ記憶装置１０２、配置管理装置１０４、帯域保証判定装置１０５、ロードバランサ１０６、及び複数の実プリンタ１０８，・・・を有する。
【００２３】
サーバ１００Ａ，１００Ｂ，・・・（以下、区別の必要がない場合は「サーバ１００」と総称）は、プログラムを実行可能なコンピュータである。ここでいうコンピュータは、物理的に存在する装置に限定されるものではなく、仮想マシンであってもよい。例えば、サーバ１００は、クラウドコンピューティングサービス（以下単に「クラウド」と呼ぶ）が提供する仮想マシン（ＶＭ：Virtual Machine）であってもよい。以下では、サーバ１００がクラウド上の仮想マシンである場合を代表例にとって説明する。ただし、本実施形態の仕組みは、サーバ１００が物理的に実在する装置である場合にも適用可能である。
【００２４】
サーバ１００は、ユーザ（クライアント）に対して印刷サービスを提供するプログラムを実行する。サーバ１００Ａ，１００Ｂ、・・・がこのプログラムを実行することにより実現される装置を、図１では印刷サービス１１０として示している。
【００２５】
図示の例では、印刷サービス１１０は、１以上の論理プリンタ１１２及び１以上の物理プリンタ１１４を生成し、動作させることが可能である。論理プリンタ１１２及び物理プリンタ１１４は、印刷システムの業界標準の１つであるＤＰＡ（Document Printing Application）（ISO/IEC 10175）に規定された仮想プリンタのオブジェクトである。これら２種類のプリンタ・オブジェクトにより印刷のための制御処理を分担する。大略的には、論理プリンタ１１２はユーザからの印刷指示の受付処理を行い、物理プリンタ１１４は、その印刷指示に応じた印刷のために実プリンタ１０８を制御する。実プリンタ１０８は用紙等の媒体に対して実際に印刷を行う、物理的に実在するプリンタである。論理プリンタ１１２と物理プリンタ１１４の機能分担は、実施形態の制御にとって本質的なことではないので、これ以上の説明は省略する。なお、以下では、論理プリンタ１１２と物理プリンタ１１４の区別の必要がない場合は、それらを仮想プリンタと総称する。
【００２６】
物理プリンタ１１４は、１以上の実プリンタ１０８に対応づけられており、それら対応する１以上の実プリンタ１０８に印刷データを送信し、実プリインタ１０８において印刷処理を実現する。図示例では各物理プリンタ１１４はそれぞれ１つの実プリンタ１０８に対応づけられているが、これはあくまで一例にすぎない。
【００２７】
論理プリンタ１１２は、１以上の物理プリンタ１１４に対応づけられている。図１では、互いに対応する論理プリンタ１１２と物理プリンタ１１４との間を線で結ぶことで、その対応関係を示している。ここでいう「対応関係」は、一方が他方を制御又は管理するといった主従関係があることまでは要求しない（もちろんそのような主従関係がある実装形態も考え得る）。この「対応関係」は、論理プリンタ１１２が受け付けた印刷指示に応じた印刷処理をその論理プリンタ１１２と線でつながる物理プリンタ１１４が担当するという、同じ印刷指示についてのジョブを担当するという意味での対応関係である。なお、ここでいうジョブとは、印刷制御システム又はその各構成要素が、クライアントから受けた印刷指示に応じて行う処理のことである。
【００２８】
個々の仮想プリンタ（すなわち論理プリンタ１１２、物理プリンタ１１４）は、それぞれ基幹用と一般用に分類される。基幹用は基幹システムのデータの印刷のために用いられ、一般用は一般的な事務文書の印刷のために用いられる。各仮想プリンタは、パスワード認証やアクセス制御リスト等を用いたアクセス制御技術によりアクセス制限を課すことが可能である。アクセス制御技術により基幹用の仮想プリンタが一般のユーザから利用されることを防止する。また、一般用の仮想プリンタについても、例えば会社内の部署毎の課金管理のために部署毎に別々の仮想プリンタを設けるような場合があり、そのような場合には、一般用の仮想プリンタに対しても、対応する部署からのアクセスしか認めないといったアクセス制御を行う。
【００２９】
本実施形態のシステムは、基幹用の論理プリンタ１１２及び物理プリンタ１１４には「帯域」保証を行い、一般用のそれには帯域保証を行わない。
【００３０】
ここでいう「帯域」は、論理プリンタ１１２及び物理プリンタ１１４のそれぞれがジョブ群を処理する速度のことを、データ通信の速度を意味する「帯域」のアナロジーとして表したものである。「帯域保証」とは、あらかじめ設定された「帯域」以上の速度でジョブ処理を実行することをシステム側が保証することである。
【００３１】
なお、以下では「帯域」と同じくジョブを処理する速度という意味で「処理レート」（又は単に「レート」）という用語も用いる。「帯域」は「帯域保証」の文脈で用い、「処理レート」又は「レート」はそれを包含したより一般的な意味で用いる。
【００３２】
以下の例では、「帯域」、「処理レート」として、単位時間あたりに実行するジョブの数を用いる。また、「帯域」及び「処理レート」の単位の具体例として「Ｊ／Ｈ」を用いる。Ｊはジョブ数であり、Ｈは１時間である。すなわち、Ｊ／Ｈという単位は、論理プリンタ１１２又は物理プリンタ１１４が１時間あたりに実行するジョブの数を示す。なお、帯域等における「単位時間」は１時間に限られるわけではなく、１分など他の長さを用いてもよい。
【００３３】
なお、「帯域」及び「処理レート」を図る単位はジョブに限られるわけではなく、ページなどと言った別の処理単位であってもよい。例えば、１分あたりに処理するページ数で帯域を表す等でもよい。
【００３４】
互いに対応づけられている論理プリンタ１１２及び物理プリンタ１１４は１つのグループ（図では破線で囲んで示している）を形成する。図示例では、論理プリンタ１１２及び物理プリンタ１１４をそれぞれ１つずつ含むグループが例示されているが、これに限られるわけではない。例えば、１つの論理プリンタ１１２に対して複数の物理プリンタ１１４が対応づけられている場合、それら１つの論理プリンタ１１２と複数の物理プリンタ１１４が１つのグループとなる。
【００３５】
図１に例示するグループ１１１ａ、１１１ｃは、基幹用の論理プリンタ１１２及び物理プリンタ１１４からなる基幹用のグループである。一方、グループ１１１ｂは、一般用の論理プリンタ１１２及び物理プリンタ１１４からなる一般用のグループである。１つの論理プリンタ１１２が基幹用グループと一般用グループの両方に属することはない。物理プリンタ１１４についても同様である。
【００３６】
以上の例では、仮想プリンタを基幹用と一般用に分類したが、この分類は企業内での印刷制御システムの運用法に沿って分かりやすく説明するためのものにすぎない。本質的な区別は、帯域保証が適用されるか否かである。
【００３７】
なお、印刷サービス１１０は、図１に示した論理プリンタ１１２及び物理プリンタ１１４の他に、論理プリンタ１１２及び物理プリンタ１１４による印刷制御処理を管理するための各種機能を有するが、これについては後で説明する。
【００３８】
データ記憶装置１０２は、サーバ１００Ａ，１００Ｂ，・・・上の印刷サービス１１０、１１０、・・・によって共用される記憶装置である。各印刷サービス１１０（及び当該サービスが管理する論理プリンタ１１２，物理プリンタ１１４等のオブジェクト）は、クライアントからの印刷指示に応じた印刷を実現するために必要なデータをデータ記憶装置１０２に格納する。また各印刷サービス１１０は、データ記憶装置１０２に記憶されたデータを必要に応じて参照し、印刷を実現するための処理を実行する。
【００３９】
データ記憶装置１０２に記憶されるデータには、各論理プリンタ１１２や各物理プリンタ１１４を定義する定義情報（後述するプリンタテーブル）が含まれる。
【００４０】
また、論理プリンタ１１２や物理プリンタ１１４が実行しているジョブの処理情報をデータ記憶装置１０２に記憶してもよい。ジョブの処理情報とは、論理プリンタ１１２又は物理プリンタ１１４が当該ジョブのための一連の処理の中で処理の対象とする情報、処理の途中又は最終の結果として出力する情報、及びそれら一連の処理の管理のための情報等の総称である。なお、一連の処理の途中の処理結果は、その一連の処理の中の後の処理での処理対象となる場合もある。
【００４１】
例えば、クライアントから印刷指示に付随して受け取った印刷データ（印刷すべき文書をＰＤＬ等で記述したデータ）は、ジョブにおける処理の対象となるデータであり、ジョブの処理情報に含まれる。なお、ＰＤＬとはPage Description Languageの略であり、ページ記述言語を意味する。ＰＤＦ（Portable Document Format）もＰＤＬの一種として用いられる。
【００４２】
また、印刷サービス１１０がＰＤＬで記述された印刷データを解釈することにより生成する印刷可能データは、ジョブの一連の処理のうちの解釈処理の結果のデータであると共に、実プリンタ１０８での印刷処理の対象となるデータであり、ジョブの処理情報に含まれる。この印刷可能データは、実プリンタ１０８で印刷処理が可能なデータ形式であればよく、実プリンタ１０８で解釈可能なＰＤＬ形式のデータやラスター画像データ等のデータである。また、印刷サービス１１０がＰＤＬの印刷データをいったん中間形式のデータに変換し、その中間形式データを印刷可能データに変換する方式を採用している場合、中間形式データもジョブの処理情報の一例である。なお、中間形式とは、印刷対象の文書をＰＤＬとラスター画像の中間の粒度で表現するデータ形式であり、例えばディスプレイリストがその一例である。
【００４３】
また、クライアントから印刷指示に伴って受け取った印刷属性（印刷部数、用紙サイズ、片面印刷か両面印刷か、カラー印刷かモノクロ印刷か等）及びその印刷指示のためのジョブに付与した一意なジョブＩＤ（識別情報）等を含むジョブの管理情報も、データ記憶装置１０２に記憶される処理情報の一例である。
【００４４】
データ記憶装置１０２に記憶されるジョブの処理情報は、ジョブの進捗に合わせて更新されるようにしてもよい。データ記憶装置１０２内のジョブの処理情報の更新は、例えば、別のサーバ１００へと移動（配置換え）されるために論理プリンタ１１２や物理プリンタ１１４等の仮想プリンタが停止される際に実行される。例えば、仮想プリンタが上位の管理装置（例えば配置管理装置１０４）からの命令に応じて停止する場合に、それまで実行していた処理の結果のデータ（例えば停止指示を受けた時点でＰＤＬデータを中間形式データへ変換し終わっていればその中間形式のデータ）をデータ記憶装置１０２に格納する等である。
【００４５】
また、ジョブを構成する各処理が完了するごとに、完了した処理の処理結果を反映するようデータ記憶装置１０２内の当該ジョブの処理情報を更新するという方式も可能である。例えば、クライアントからをＰＤＬデータを受け付ける処理が完了した段階、ＰＤＬデータを中間形式データに変換する処理が完了した段階、及び中間形式データを（またはＰＤＬデータを直接）印刷可能データに変換する処理が完了した段階等といった段階ごとに、データ記憶装置１０２に対してそれら各段階の処理結果のデータ（ＰＤＬ、中間形式、印刷可能データなど）を格納する等である。また、既に受付済みのジョブについての印刷属性の変更指示をクライアントから受け取った場合に、その指示に応じて、データ記憶装置１０２内の当該ジョブの管理情報を変更するようにしてもよい。
【００４６】
データ記憶装置１０２は、１つの例では、クラウド上のＶＭ（仮想マシン）又は、クラウド上のストレージサービスとして実現される。また、データ記憶装置１０２は、物理的に実在する装置であってももちろんよい。データ記憶装置１０２としては、冗長化技術等により高い故障耐性を持つものを用いてもよい。
【００４７】
配置管理装置１０４は、各サーバ１００に対する仮想プリンタ（すなわち論理プリンタ１１２及び物理プリンタ１１４）の配置を管理する。例えば、配置管理装置１０４は、帯域保証の対象である仮想プリンタについて、帯域保証が実現できていないことを検知した場合、又は帯域保証が実現できなくなりそうな兆候がある場合に、その仮想プリンタを含む仮想プリンタ群のサーバ１００群への配置換えを行う。帯域保証ができていないことやその兆候は、帯域保証判定装置１０５が検出する。また、配置管理装置１０４は、各サーバ１００の稼働状況（稼働しているか否か）や負荷状況を監視し、停止したサーバ１００や過負荷が懸念されるサーバ１００を検知した場合に、そのサーバ１００上で動作する仮想プリンタを、過負荷の懸念がない別のサーバ１００に移動させる処理を行ってもよい。
【００４８】
また、配置管理装置１０４は、各仮想プリンタがどのサーバ１００上に存在するのかの問合せに応答する機能を有していてもよい。
【００４９】
帯域保証判定装置１０５は、各仮想プリンタの処理レートの実績値の帯域保証レート等に基づいて、帯域保証の対象となっている各仮想プリンタの帯域保証レートが達成できているかどうかを判定する。判定材料である各仮想プリンタの処理レートの実績値の帯域保証レート等の情報は、例えばデータ記憶装置１０２に記憶されている。このうち各仮想プリンタの処理レートの実績値は、時間の経過に従って随時更新される。
【００５０】
配置管理装置１０４及び帯域保証判定装置１０５は、それぞれ、各サーバ１００とは独立したＶＭ（仮想マシン）上に構成してもよいし、それらサーバ１００のいずれかに同居させてもよい。また、配置管理装置１０４及び帯域保証判定装置１０５は、物理的に実在する装置であってももちろんよい。
【００５１】
配置管理装置１０４及び帯域保証判定装置１０５が協働して行う帯域保証のための仮想プリンタ群の再配置処理の内容については、後で詳しく説明する。
【００５２】
ロードバランサ１０６は、クライアントから本システムに対して到来する各種の要求を、本システム内の複数の印刷サービス１１０に振り分けることで、それら複数の印刷サービス１１０（ひいてはそれら印刷サービス１１０をホストするサーバ１００）の間の負荷分散を実現する。ロードバランサ１０６が用いる振り分け方式には、特に限定はない。ラウンドロビン方式等の単純な方式を用いてもよいし、より高度な方式を用いてもよい。
【００５３】
例えば、クラウドサービスが提供する一般的なロードバランサは、クラウド上に実現される個別のアプリケーションシステム（本実施形態では、印刷制御システム）に依存しない振り分け方式を採用している。すなわち、そのような一般的なロードバランサは、アプリケーションシステムにおいてやりとりされる要求の中身を考慮せずに、ラウンドロビン等の単純な方式で振り分けを行う。例えば、クライアントから到来する印刷指示のデータは、その指示の宛先である論理プリンタ１１２を特定する情報を含んでいるが、そのような一般的なロードバランサは、印刷指示の中身である宛先の情報を見ず、その宛先情報とは無関係にその印刷指示の転送先を決定する。したがって、印刷サービス１１０（又はその中の論理プリンタ１１２等の要素）が受け取った要求が自分宛ではなく、他の印刷サービス１１０等に宛てたものである場合もある。自分宛でない要求を受け取った印刷サービス１１０は、配置管理装置１０４への問合せによりその要求の宛先が存在するサーバ１００を特定し、特定したサーバ１００に対してその要求を転送する。
【００５４】
次に、図２を参照して、印刷サービス１１０及びデータ記憶装置１０２の内部構成の一例を説明する。
【００５５】
印刷サービス１１０は、論理プリンタ管理部１１０２、論理プリンタ１１２、物理プリンタ管理部１１０４、物理プリンタ１１４、ジョブ管理部１１０６、ジョブスケジューリング部１１０８、イベント通知部１１１０、サーバ間通信制御部１１１２、及びクライアント通信部１１１４を有する。
【００５６】
論理プリンタ管理部１１０２は、個々の論理プリンタ１１２の実体化処理、解放処理を行うと共に、それら論理プリンタ１１２を管理する。論理プリンタ管理部１１０２は、データ記憶装置１０２に記憶されている論理プリンタテーブル１０２１に従い、各サーバ１００（印刷サービス１１０）上の各論理プリンタ１１２を管理する。  論理プリンタ管理部１１０２に実体化された各論理プリンタ１１２は、例えば、ジョブの受付処理を行う。すなわち、クライアントから送られてくる印刷指示は、宛先の論理プリンタ１１２の指定を含んでおり、宛先の論理プリンタ１１２は、その印刷指示を受け取り、その印刷指示に対応するジョブを生成する。ジョブの生成では、ジョブ管理部１１０６と協働して、そのジョブのＩＤや印刷属性などを含むジョブの管理情報を生成してデータ記憶装置１０２に格納し、その管理情報がこの印刷制御システム内（他の印刷サービスも含む）の様々な要素（当該論理プリンタ１１２自身や、関連する物理プリンタ１１４、ジョブ管理部１１０６等）から参照できるようにする。
【００５７】
物理プリンタ管理部１１０４は、個々の物理プリンタ１１４の実体化処理、解放処理を行うと共に、それら物理プリンタ１１４を管理する。物理プリンタ管理部１１０４はデータ記憶装置１０２に記憶されている物理プリンタテーブル１０２２に従い、各サーバ１００上の各物理プリンタ１１４を管理する。
【００５８】
物理プリンタ管理部１１０４により実体化された各物理プリンタ１１４は、この例では、対応する実プリンタ１０８の状態の監視、その実プリンタ１０８の制御、印刷対象のＰＤＬデータの中間データや印刷可能データへの変換、ジョブの状態管理等を行う。
【００５９】
ジョブ管理部１１０６は、ジョブＩＤを発行したり、クライアントからの更新指示に応じてジョブ管理情報を更新したり、削除指示に応じてジョブを削除したりする等、ジョブ全般に関する管理を行う。
【００６０】
論理プリンタ管理部１１０２及び物理プリンタ管理部１１０４は、処理レート計測部１１０３及び１１０５をそれぞれ有する。処理レート計測部１１０３は、論理プリンタ管理部１１０２が管理する各論理プリンタ１１２について、論理プリンタ１１２が実行しているジョブ群の処理の処理レートを計測する。また、処理レート計測部１１０３は、それら各論理プリンタの処理待ちジョブ数を更に計測してもよい。同様に、処理レート計測部１１０５は、物理プリンタ管理部１１０４が管理する各物理プリンタ１１４の処理レートを計測する。また処理レート計測部１１０５は、それら各物理プリンタ１１４の処理待ちジョブ数を更に計測してもよい。
【００６１】
図３に示すように、処理レート計測部１１０３は、１分間の間に論理プリンタ(LP: Logical Printer)１１２が処理（例えばジョブの受付処理）を完了したジョブの数をカウントし、このカウント値を処理レート計算の単位時間（例えば単位Ｊ／Ｈを用いる場合は１時間）あたりに換算することで、その論理プリンタ１１２の処理レートを算出する。図３に示すＪ０、Ｊ１、・・・、Ｊ４はジョブであり、その中の数字はジョブの入力順序を示す。処理レート計測部１１０３は、更に、論理プリンタ１１２の前段に設けられている受付キュー内にあるジョブの数を、「処理待ちジョブ数」として取得してもよい。処理レート計測部１１０３は、管理下にある各論理プリンタ１１２について、あらかじめ定められた時間間隔毎に上述の処理レートの計算（及び処理待ちジョブ数の取得）を行い、処理レート（及び処理待ちジョブ数）をデータ記憶装置内の処理レート履歴テーブル１０２７に記録する。
【００６２】
同様に、処理レート計測部１１０５は、１分間の間に物理プリンタ(PP: Physical Printer)１１４が処理を完了（すなわち実プリンタ１０８へのジョブの画像データの送信を完了）したジョブの数をカウントし、このカウント値を単位時間あたりに換算することで、その物理プリンタ１１４の処理レートを算出する。また、処理レート計測部１１０５は、物理プリンタ１１４の前段のバッファ内にある処理待ちジョブ（論理プリンタ１１２による処理は完了しているが、物理プリンタ１１４による処理がまだ行われていないジョブ）の数を、処理待ちジョブ数として取得してもよい。処理レート計測部１１０５は、管理下にある各物理プリンタ１１３について、あらかじめ定められた時間間隔毎に処理レートの計算（と処理待ちジョブ数の取得）を行い、その処理レート（及び処理待ちジョブ数）をデータ記憶装置内の処理レート履歴テーブル１０２７に記録する。
【００６３】
図２の説明に戻ると、ジョブスケジューリング部１１０８は、物理プリンタ１１４が印刷可能となった時に、データ記憶装置１０２内のジョブ情報１０２６に登録されているジョブ群から、物理プリンタ１１４に対してジョブを割り当てる。物理プリンタ１１４にジョブを割り当てるのは、その物理プリンタ１１４が管理する実プリンタ１０８が次のジョブを印刷可能な状態であり、かつそのジョブが割り当て待ち状態である時である。
【００６４】
イベント通知部１１１０は、印刷サービス１１０の内部で発生したイベントを、サーバ間通信制御部１１１２を介して、他のサーバ１００内の印刷サービス１１０に通知する。イベントの通知先とするサーバ１００の範囲は、イベントの種類に応じて決まる。
【００６５】
サーバ間通信制御部１１１２は、サーバ１００間、及び、サーバ１００と配置管理装置１０４その他の情報処理装置との間、の通信（メッセージング）を制御する。
【００６６】
クライアント通信部１１１４は、クライアントからの各種指示、例えば印刷指示、印刷状態取得指示、サーバ制御指示等、をネットワーク経由で受け付け、プロトコル解析を行う。クライアントから受け付ける指示データは、LPR/IPP等の一般的な印刷プロトコルや、独自の管理プロトコルに従ったものでよい。クライアント通信部１１１４は、プロトコル解析の結果に従い、サーバ１００（印刷サービス１１０）内の各要素に対して指示を割り当てる。
【００６７】
データ記憶装置１０２は、論理プリンタテーブル１０２１、物理プリンタテーブル１０２２、対応づけテーブル１０２３、サーバテーブル１０２４、配置テーブル１０２５、ジョブ情報１０２６、及び処理レート履歴テーブル１０２７を記憶している。以下、図４〜図９を参照して、それら各テーブルの具体例を説明する。
【００６８】
論理プリンタテーブル１０２１は、印刷制御システム内の各論理プリンタ１１２の定義情報を保持する表である。図４に論理プリンタテーブル１０２１のデータ内容の一例を示す。図４に示すように、論理プリンタテーブル１０２１には、論理プリンタごとに、その論理プリンタのプリンタＩＤ、プリンタ名、エンドポイント、プロトコル、アクセス制御情報、及び帯域保証レートといった項目が登録される。項目「プリンタＩＤ」は、当該論理プリンタの識別情報である。項目「プリンタ名」は、システム管理者やユーザ等が当該論理プリンタに付けた名称である。項目「エンドポイント」は、当該論理プリンタ１１２と通信するための通信エンドポイントを示す情報であり、例えば、当該論理プリンタが用いる「プロトコル」に応じた形式で記述される。例えば、IPP（Internet Printing Protocol）に対応する論理プリンタのエンドポイントはＵＲＬで記述され、LPR（Line PRinter daemon protocol）に対応する論理プリンタのエンドポイントはＩＰアドレスの形で記述される。項目「プロトコル」は、その論理プリンタが対応しているプロトコルを示す情報である。なお、１つの論理プリンタが対応するプロトコルは１つに限られるものではなく、複数であってもよい。項目「アクセス制御情報」は、その論理プリンタに対するユーザからのアクセスを制御するために用いる情報である。アクセス制御情報としては様々な形の情報を用いることができる。例えばその論理プリンタを利用可能なユーザやグループの識別情報（ＩＤ）のリスト（アクセス制御リスト）であってもよいし、その論理プリンタにアクセス可能なユーザを認証する認証方法（例えばパスワード認証）を規定する情報であってもよい。図示例におけるプリンタＩＤ「１」に対応するアクセス制御情報「Group A」は、「Group A」というグループに属するユーザからの利用を認めることを意味する。またプリンタＩＤ「２」に対応するアクセス制御情報「basic」はHTTP（HyperText Transfer Protocol）のベーシック認証により認証が成功したユーザからの利用を認めることを意味する。項目「帯域保証レート」は、当該論理プリンタに対して設定された帯域保証レートである。図示例では、帯域保証レートは単位Ｊ／Ｈで表現されている。なお帯域保証レート「−１」は、当該論理プリンタ１１２が帯域保証の対象でないこと（すなわち「基幹用」でないこと）を意味する。帯域保証レートの値は、例えば基幹用の各仮想プリンタを使用する部署等が要求する処理速度やそれら部署の印刷量の実績等を踏まえ、システム管理者が設定すればよい。
【００６９】
物理プリンタテーブル１０２２は、印刷制御システム内の各物理プリンタ１１４の定義情報を保持する表である。図５に物理プリンタテーブル１０２２のデータ内容の一例を示す。図５に示すように、物理プリンタテーブル１０２２には、物理プリンタごとに、その物理プリンタのプリンタＩＤ、プリンタ名、実プリンタ、エンドポイント、プロトコル、アクセス制御情報及び帯域保証レートといった項目が登録される。項目「実プリンタ」は、その物理プリンタが管理している実プリンタ１０８を特定する情報である。図示例では、実プリンタ１０８を特定する情報として、その実プリンタ１０８のＩＰアドレスが用いられている。物理プリンタが複数の実プリンタ１０８を管理する場合、項目「実プリンタ」には、それら複数の実プリンタの情報が登録される。その他の項目は、論理プリンタの定義情報における同名の項目と同じである。
【００７０】
対応づけテーブル１０２３は、論理プリンタ１１２と物理プリンタ１１４の対応関係の情報を保持する。対応付けテーブル１０２３のデータ内容の一例を図６に示す。図に例示した対応付けテーブル１０２３には、論理プリンタ１１２のプリンタ名（又はプリンタＩＤ）に対応づけて、その論理プリンタ１１２に対応づけられた物理プリンタ１１４のリストが登録されている。論理プリンタ１１２と物理プリンタ１１４との対応関係は一対一対応に限らない。１つの論理プリンタ１１２に対して複数の物理プリンタ１１４が対応づけられる場合もあるし、その逆もある。ジョブスケジューリング部１１０８は、対応付けテーブル１０２３を参照し、論理プリンタ１１２が受け付けた印刷ジョブを、その論理プリンタ１１２に対応する物理プリンタ１１４に割り当てる。
【００７１】
サーバテーブル１０２４は、本システム内のサーバ１００の情報を管理するテーブルである。図７に示すように、サーバテーブル１０２４には、サーバ１００毎に、そのサーバの識別情報（サーバＩＤ）、ＩＰアドレス、状態、ＣＰＵ性能、メインメモリ容量、及び最大処理レートの各項目が登録されている。
【００７２】
ＩＰアドレスの情報は、サーバ１００間での通信を行う場合に利用される。ＩＰアドレスは、そのサーバと通信するために用いられる情報の一例であり、同様の役割を果たす別の情報に代えてもよい。項目「状態」は、当該サーバの現在の状態を示す情報である。サーバの状態としては、例えば「稼働中」、「停止中」がある。ＣＰＵ性能の項目は、当該サーバが有するＣＰＵの性能（例えばクロック数、コア数）を示す。メインメモリ容量の項目は、当該サーバが持つメインメモリの容量を示す。ＣＰＵ性能及びメインメモリ容量は、当該サーバの処理能力を表す指標値の一例である。配置管理装置１０４にて論理プリンタ１１２や物理プリンタ１１４の再配置が計算される際、これら処理能力の情報が利用される。ＣＰＵ性能及びメインメモリ容量に代えて、サーバの処理能力を示す別の種類の情報を用いてもよい。例えばＩａａＳ（Infrastructure as a Service）タイプのクラウドサービスが提供する仮想マシン（ＶＭ）をサーバ１００として用いる場合、クラウドサービスが設定している仮想マシンの性能レベルの情報を用いることもできる。仮想マシンの性能レベルに応じて課金が設定されている場合には、性能レベルの情報は、印刷制御システムを構成するための仮想マシン群のコストを計算するのに用いたり、処理負荷の増減に応じてどの性能レベルの仮想マシンを追加又は削除（停止）するかを判定するのに用いたりすることもできる。最大処理レートは、当該サーバ１００が達成可能なジョブの処理レートの最大値である。最大処理レートの値は、実験やシミュレーションにより求めたり、当該サーバの性能（ＣＰＵやメモリ量等）から推定したりして設定する。
【００７３】
配置テーブル１０２５は、仮想プリンタ（論理プリンタ１１２及び物理プリンタ１１４）がどのサーバ１００に配置されているかを管理するテーブルである。配置テーブル１０２５のデータ内容の一例を図８に示す。図に例示した配置テーブル１０２５には、プリンタタイプ、プリンタ名（又はＩＤ）及びサーバＩＤの項目がある。プリンタタイプは、当該仮想プリンタが論理プリンタ、物理プリンタのどちらのタイプであるかを示す。プリンタ名は、当該仮想プリンタの名前（又はＩＤ）である。サーバＩＤは、当該仮想プリンタが配置されているサーバの識別情報である。配置テーブル１０２５は、後述する配置管理装置１０４によるサーバ配置の決定に従って更新される。なお、この配置テーブル１０２５の更新に合わせて、論理プリンタテーブル１０２１及び物理プリンタテーブル１０２２における配置先サーバの情報も更新される。
【００７４】
ジョブ情報１０２６は、印刷指示に応じて生成されたジョブの管理情報及び実体情報からなる。ジョブの管理情報は、ジョブＩＤ、ジョブ名、状態、当該ジョブを受け付けた仮想プリンタ、印刷属性（部数、ステープル、カラー等）などの項目を含んでいる。ジョブの実体情報は、当該ジョブで印刷する画像を表す印刷データである。印刷データは、例えば、クライアントから印刷指示と共に受け取ったＰＤＬデータである。また、物理プリンタ１１４によるＰＤＬデータの中間形式データや印刷可能データへの変換が行われる毎に、データ記憶装置１０２に記憶される印刷データをその変換結果のデータ（中間形式又はラスター形式等の印刷可能データ）に置き換えてもよい。また、このように置き換える代わりに、各段階の変換結果のデータをデータ記憶装置１０２に追加記憶してもよい。
【００７５】
処理レート履歴テーブル１０２７には、各サーバ１００上の処理レート計測部１１０３及び１１０５が計測した各仮想プリンタの処理レートの実績値が記録される。処理レート計測部１１０３及び１１０５は、仮想プリンタの処理レートを計測する毎に、その処理レートを、その仮想プリンタのプリンタＩＤ及びその計測の日時（項目「記録日時」）と対応づけて、処理レート履歴テーブル１０２７に記録する。これら記録される情報の組を履歴レコードと呼ぶ。帯域保証判定装置１０５の判定で仮想プリンタの処理待ちジョブ数も用いる場合には、処理レート計測部１１０３及び１１０５は仮想プリンタの処理レートと共に処理待ちジョブ数も求め、これらを履歴レコードに組み込む。また、帯域保証の判定において更に別の計測値を用いる場合には、履歴レコードにはその計測値も組み込まれる。処理レート計測部１１０３及び１１０５が各仮想プリンタの処理レート（及び処理待ちジョブ数等）を定期的に計測する毎に、その計測結果を含んだ履歴レコードが処理レート履歴テーブル１０２７に追加されていく。
【００７６】
以上、データ記憶装置１０２内に記憶される情報の例について説明した。印刷サービス１１０や配置管理装置１０４等のシステム構成要素は、データ記憶装置１０２及びその中の各情報の所在場所を示す情報（ＩＰアドレスやＵＲＬ等）を有しており、処理を進める際、必要に応じてデータ記憶装置１０２内の情報を参照したり、データ記憶装置１０２内の情報を更新したり、データ記憶装置１０２内に新規情報を登録したりする。
【００７７】
図２の例では、論理プリンタテーブル１０２１〜処理レート履歴テーブル１０２７のすべての情報が１つのデータ記憶装置１０２に記憶されているが、これは必須のことではない。それら各情報が印刷サービス１１０や配置管理装置１０４により共有されている形であれば、それら個々の情報がネットワーク又はクラウド内の別々の場所に格納されていてもよい。
【００７８】
次に、図１０を参照して、帯域保証判定装置１０５及び配置管理装置１０４の連携による、帯域保証のための仮想プリンタの配置制御の全体的な処理手順を説明する。
【００７９】
帯域保証判定装置１０５は、所定時間毎の判定タイミングが到来すると、論理プリンタテーブル１０２１及び物理プリンタテーブル１０２２から各論理プリンタ１１２及び各物理プリンタ１１４に設定されている帯域保証レートを取得（Ｓ１０）すると共に、処理レート履歴テーブル１０２７から各仮想プリンタの履歴レコード（処理レート、処理待ちジョブ数等）を取得する（Ｓ１２）。Ｓ１２では、１つの仮想プリンタにつき、最新の履歴レコードから時間を遡る順に、あらかじめ定められた個数のレコードを取得する。そして帯域保証判定装置１０５は、帯域保証の対象である（すなわち正の値の帯域保証レートが設定されている）仮想プリンタ毎に、その仮想プリンタの帯域保証に失敗しているか、あるいはその兆候があるかどうかを判定する（Ｓ１４）。
【００８０】
この判定は、Ｓ１０、Ｓ１２で取得した帯域保証レートと履歴レコードとに基づき行う。例えば、取得した直近の所定数の履歴レコードの処理レート（実績値）の全て又はその代表値（例えば平均）が、取得した帯域保証レートを下回っている場合に、帯域保証に失敗していると判定する。処理レートと比較する対象を帯域保証レートそのものではなく、それに１以上の安全率を乗じた値とすることで、失敗の兆候を検出するようにしてもよい。すなわち、処理レート（又はそれらの代表値）が、帯域保証レートに対して安全率を乗じた値を下回った場合に、帯域保証の失敗の兆候がある（失敗の可能性が無視できない程度にある）と判定するようにしてもよい。
【００８１】
また、帯域保証の失敗又はその兆候の判定の際に、取得した個々の履歴レコードの処理待ちジョブ数又はそれらの代表値（例えば平均）を考慮に入れてもよい。この場合、例えば、処理待ちジョブ数の全て又はそれらの代表値が、あらかじめ定められた閾値以上であることを、帯域保証の失敗又はその兆候の必要条件とする。すなわち、処理待ちジョブ数の全て又はそれらの代表値がその閾値以上でない場合は、たとえ処理レート（又はそれらの代表値）が帯域保証レート（又はこれに安全率を乗じたもの）を下回っても、帯域保証が失敗した（又はその兆候がある）とは判定しない。例えば極端な例としてジョブが全く来ない状態がしばらく続いた場合を考えると分かるように、そもそも入力されるジョブ自体の数が少ない場合は処理レートが低くなるのは当然であり、そのような場合に帯域保証の失敗等と判定するのは不合理だからである。なお、ここで用いる閾値としては、例えば、ジョブが処理待ち状態から処理開始となるまでの遷移時間を考慮し、常に処理待ち状態のジョブが存在していると判断できる数（例えば１０ジョブ）を用いる。
【００８２】
また、帯域保証の失敗又はその兆候があると判定するための必要条件として、更に、Ｓ１２で取得した直近複数回の中で処理レートが増加していない（あるいは減少傾向である）という条件を加えてもよい。
【００８３】
Ｓ１４で帯域保証の失敗の兆候がないと判定した場合、帯域保証判定装置１０５はあらかじめ定めた時間だけスリープし（Ｓ１６）、その後、Ｓ１０に戻って次回の判定を実行する。
【００８４】
Ｓ１４で帯域保証が失敗、又はその兆候があると判定した場合、帯域保証判定装置１０５は、保証失敗兆候イベントを配置管理装置１０４に対して通知する（Ｓ１８）。
【００８５】
配置管理装置１０４は、保証失敗兆候イベントの通知を受け取ると、本システム内の仮想プリンタ群の再配置を計算する（Ｓ２０）。この再配置の計算の仕方については、後で説明する。再配置の計算では、現在利用可能（すなわち稼働中）なサーバ１００群の中での仮想プリンタの配置換えで全ての仮想プリンタの帯域保証が実現できる再配置が計算できる場合もあれば、それら既存のサーバ１００群だけでは帯域保証が実現できず、帯域保証の実現のためには新たなサーバ１００（例えばＶＭ）の追加が必要と判定される場合もある。
【００８６】
配置管理装置１０４は、再配置の計算の結果、既存のサーバ１００群のみで帯域保証が可能な再配置のパターンを見つけた場合（Ｓ２２の判定結果がＮｏ）、その再配置のパターンに従って仮想プリンタ群をサーバ１００間で移動させる（Ｓ２４）。すなわち、計算した再配置パターンにおける配置先のサーバ１００が、現在の配置先のサーバ１００と異なっている仮想プリンタがあれば、その仮想プリンタを再配置パターンにおける配置先へと移動させる。
【００８７】
配置管理装置１０４は、再配置の計算の結果、帯域保証のためにサーバの追加が必要であると判定した場合（Ｓ２２の判定結果がＹｅｓ）、システム管理者にその旨を通知する（Ｓ２６）。システム管理者は、その通知に応じてシステムの状況を確認し、新たなサーバ１００の追加が必要と判断した場合は、追加のための作業を行う。サーバ１００がＶＭならば、クラウドサービスにＶＭの追加の手続を行えばよい。このような通知の代わりに、配置管理装置１０４が、新たなサーバ１００（ＶＭ）を追加してもよい。
新たなサーバ１００の追加の後、再びＳ２０にて再配置を計算し、Ｓ２２の検査を行う。Ｓ２２の判定結果がＮｏとなるまで、新たなサーバの追加（Ｓ２６）と再配置の計算（Ｓ２０）が繰り返される。
【００８８】
次に、Ｓ２０における再配置の計算処理の例を、図１１〜図１４を参照して説明する。図１１に示すように、配置管理装置１０４は、まず「帯域保証あり」（すなわち帯域保証レートが正の値）の「物理」プリンタの再配置を計算し（Ｓ３０）、次に「帯域保証なし」（すなわち帯域保証レートが「−１」）の「物理」プリンタの再配置を計算する（Ｓ３２）。そして、「帯域保証あり」の「論理」プリンタの再配置を計算し（Ｓ３４）、次に「帯域保証なし」の「論理」プリンタの再配置を計算する（Ｓ３６）。
【００８９】
このように、本実施形態では、物理プリンタ１１４群の再配置を先に決定し、その後、論理プリンタ１１２群の再配置を決定している。これは、論理プリンタ１１２はジョブの受付という軽い処理を担うのに比較して、物理プリンタ１１４はＰＤＬデータを印刷可能データに変換する等のはるかに重い処理を担うからである。すなわち、処理負荷がはるかに重い物理プリンタ１１４の配置を優先的に決定するのである。
【００９０】
「帯域保証あり」の仮想プリンタ（物理プリンタ及び論理プリンタ）の再配置の計算（Ｓ３０及びＳ３４）は、図１２の手順に従って行う。以下では、そのあとに続く図１３及び図１４の手順の説明も含め、「物理」プリンタの再配置を主たる例にとって説明を進める。その説明の中の「物理」を「論理」に入れ替えれば、ほぼ「論理」プリンタの再配置の説明となる。「論理」プリンタ特有の事項があれば特記する。
【００９１】
配置管理装置１０４は、物理プリンタテーブル１０２２から、「帯域保証あり」に該当する物理プリンタを抽出し、その物理プリンタを帯域保証レートが高い順にソートする（Ｓ４０）。次に、利用可能な各サーバ１００の「処理可能レート」を取得する（Ｓ４２）。サーバ１００の最大処理レートをそのサーバ１００の「最大容量」に例えると、サーバ１００の「処理可能レート」とはそのサーバ１００の残り容量にあたる。そのサーバ１００に１つずつ仮想プリンタを配置していく毎に、残り容量にあたる「処理可能レート」は、その仮想プリンタの処理レートだけ減る。Ｓ４２では、この手順の開始にあたり、処理可能レートを初期化する。この手順の適用対象が物理プリンタの場合は、サーバテーブル１０２４から取得した各サーバ１００の最大処理レートを、そのサーバ１００の処理可能レートに設定する。一方、この手順の適用対象が論理プリンタの場合は、Ｓ４２では、既に済んでいる物理プリンタの再配置の結果を反映した、各サーバ１００の処理可能レートを取得する。
【００９２】
次に配置管理装置１０４は、帯域保証レートが高い順に、帯域保証ありのすべての物理プリンタ１１４についてＳ４４〜Ｓ５０の処理を繰り返す。図１２において、変数PRTは、個々の繰り返しにおける処理対象の物理プリンタ１１４を表す。配置管理装置１０４は、変数SVに、その時点で処理可能レートが最大のサーバ１００の識別情報をセットする（Ｓ４４）。次に、処理対象の物理プリンタ１１４（PRT）の帯域保証レートが、SVが指し示すサーバ１００の処理可能レートより低いかどうかを判定する（Ｓ４６）。PRTの帯域保証レートがSVの処理可能レートより低い場合、そのサーバSVの配置リストにその物理プリンタPRTを追加する（Ｓ４８）。ここで、配置リストは、配置管理装置１０４がサーバ１００毎に用意するリストであり、当該サーバ１００に対して配置する物理プリンタ及び論理プリンタ（の識別情報）を保持する。そして、配置管理装置１０４は、SVの処理可能レートをPRTの帯域保証レートだけ減らす（Ｓ５０）。
【００９３】
これにより、帯域保証ありの１つの物理プリンタ１１４の配置先のサーバ１００が決定されたことになる。配置管理装置１０４は、ソート順でその物理プリンタ１１４の次の物理プリンタ１１４を処理対象の物理プリンタPRTにセットし、Ｓ４４〜Ｓ５０の処理を繰り返す。以上のようにして、帯域保証レートが高い物理プリンタ１１４から順に配置先のサーバ１００が決定されていく。
【００９４】
以上の処理の繰り返しの中で、Ｓ４６の判定結果がＮｏとなった場合、その判定の時点で対象の物理プリンタPRTの帯域保証レート以上の処理可能レートを有するサーバ１００は存在しない。この場合、配置管理装置１０４は、配置不能エラーとする（Ｓ５２）。配置不能エラーは、現在利用可能なサーバ１００群だけでは、帯域保証を満たしつつ仮想プリンタ群をそれらサーバ１００群に配置することが実質上不可能であることを示す。逆に言えば、配置不能エラーは、帯域保証を満たすには、本システムに新たなサーバ１００を追加することが必要であることを示す。このエラーが生じた場合、図１０の全体手順におけるＳ２２の判定結果がＹｅｓとなり、システム管理者にサーバ追加の必要性を示す通知が送られることになる。配置不能エラーが生じた場合、図１２の手順は中止される。
【００９５】
「帯域保証なし」の仮想プリンタの再配置の計算（Ｓ３２及びＳ３６）は、図１３及び図１４の手順に従って行う。図１２の場合と同様、物理プリンタ１１４の再配置の場合を主たる例にとって説明する。
【００９６】
この手順では、配置管理装置１０４は、物理プリンタテーブル１０２２を参照して帯域保証レートが「−１」である物理プリンタ１１４を抽出し、抽出した各物理プリンタ１１４の直近の１以上の所定数個の実績レート、すなわち処理レートの実績値を、処理レート履歴テーブル１０２７から取得する（Ｓ６０）。１つの物理プリンタ１１４に対して直近の１つの実績レートを取得する場合、その実績レートがその物理プリンタ１１４の現在（すなわち図１３の処理の実行時点）の処理レート（ジョブ群の処理速度）であるとみなす。１つの物理プリンタ１１４に対して直近の複数の処理レートを取得する場合は、それら複数の処理レートの平均等の代表値を、当該物理プリンタ１１４の、図１３及び図１４の処理の実行時点での処理レートとみなす。なお、用いる平均処理は単純平均でもよいし、日時の新しい処理レートほど大きい重みを与える加重平均であってもよい。次に、配置管理装置１０４は、それら物理プリンタ１１４を、Ｓ６０で求めた処理レートの高い順にソートする（Ｓ６２）。
【００９７】
次に配置管理装置１０４は、帯域保証なしのすべての物理プリンタ１１４について、S６０で求めた処理レートが高い順に、Ｓ６６〜Ｓ６９の処理を繰り返す。図１２の場合と同様、個々の繰り返しの開始時点で、変数PRTに対し、ソート順で次の物理プリンタ１１４の識別情報をセットする。また配置管理装置１０４は、変数SVに、その時点で処理可能レートが最大のサーバ１００の識別情報をセットする（Ｓ６４）。次に、PRTの処理レートが、SVの処理可能レートより低いかどうかを判定する（Ｓ６６）。PRTの処理レートがSVの処理可能レートより低い場合、SVの配置リストにPRTを追加する（Ｓ６８）。この配置リストは、図１２の処理から引き継いだものである。そして、配置管理装置１０４は、SVの処理可能レートをPRTの処理レートだけ減らす（Ｓ６９）。
【００９８】
これにより、帯域保証なしの１つの物理プリンタ１１４の配置先のサーバ１００が決定されたことになる。配置管理装置１０４は、ソート順でその物理プリンタ１１４の次の物理プリンタ１１４を処理対象の物理プリンタPRTにセットし、Ｓ６４〜Ｓ６９の処理を繰り返す。以上のようにして、処理レートが高い物理プリンタ１１４から順に配置先のサーバ１００が決定されていく。
【００９９】
以上の処理の繰り返しの中で、Ｓ６６の判定結果がＮｏとなった場合、図１４の手順に進む。この手順では、配置管理装置１０４は、SVの配置リストの中に「帯域保証あり」の仮想プリンタが含まれているか否かを判定する（Ｓ７０）。含まれていないと判定した場合（判定結果がＮｏ）、そのサーバSVには、今回の再配置の計算の中でまだ１つも仮想プリンタが配置されていないか、又は「帯域保証なし」の仮想プリンタしか配置されていない。したがって、当該物理プリンタPRTをそのサーバSVに追加したとしても、「帯域保証あり」の仮想プリンタの帯域保証を脅かすことはない。そこで、配置管理装置１０４は、図１３のＳ６８に進み、SVの配置リストにPRTを追加する。
【０１００】
Ｓ７０で、SVの配置リストに「帯域保証あり」の仮想プリンタがあると判明した場合、PRTをSVに配置すると、その「帯域保証あり」の仮想プリンタの帯域保証ができなくなる可能性が高い。そこで、この場合は、配置管理装置１０４は、PRTをSVに配置することは取りやめる。そして、別のサーバ１００にPRTが配置できないか試す。すなわち、配置管理装置１０４は、処理可能レートがSVの次に大きいサーバ１００（次点のサーバ）が存在するか否かを判定し（Ｓ７２）、存在すれば、その「次点のサーバ」を変数SVにセットし（Ｓ７４）、図１３のＳ６６に戻る。
【０１０１】
Ｓ７２で「次点のサーバ」が存在しないことが判明した場合、PRTをどのサーバ１００に配置したとしても、他の仮想プリンタの帯域保証を脅かすことを意味する。この場合、配置管理装置１０４は、配置不能エラーを発する（Ｓ７６）。これにより図１０の全体手順におけるＳ２２の判定結果がＹｅｓとなり、システム管理者にサーバ追加の必要性を示す通知が送られることになる。配置不能エラーが生じた場合、図１３及び図１４の手順は中止される。
【０１０２】
物理プリンタについて図１２並びに図１３及び図１４の処理が、配置不能エラーが生じることなく完了すると、すべて（すなわち帯域保証ありと帯域保証なしの両方）の物理プリンタ１１４の配置先が決定されたことになる。すると今度は、各サーバ１００の処理可能レート及び配置リストを引き継いだうえで、論理プリンタ１１２群を対象として図１２並びに図１３及び図１４の処理を行う。前述のとおり論理プリンタ１１２群の配置先決定の処理は、物理プリンタ１１４の場合とほぼ同様なので、説明を省略する。
【０１０３】
図１２〜図１４の手順による仮想プリンタ群の配置先決定の流れの具体例を、図１５を参照して説明する。
【０１０４】
図１５は、１５００Ｊ／Ｈの帯域保証レートが設定された２つの物理プリンタＰＰ１及びＰＰ２と、帯域保証なしの８つの物理プリンタＰＰ３〜ＰＰ１０の、合計１０個の物理プリンタを、最大処理レートが２０００、２０００、及び１５００Ｊ／Ｈの３台のサーバ１〜３に配置していく場合の例を示している。物理プリンタＰＰ３〜ＰＰ１０の処理レート（実績）は、順に、６００、５００、５００、４００、２００、２００、１００、１００であるとする。
【０１０５】
この場合、（１）まず帯域保証レートが最も高い物理プリンタＰＰ１（ＰＰ１とＰＰ２の帯域保証レートは同じなので、番号が若い順に配置先を決めていくものとする）が、処理可能レートが最も高いサーバ１に配置され、これによりサーバ１の処理可能レートが５００Ｊ／Ｈまで減る。なお、処理可能レートが最大のサーバが複数存在する場合は、あらかじめ定められた番号の順に配置先に選ばれていくものとする。（２）次に帯域保証レートが次に高い物理プリンタＰＰ２が、その時点で処理可能レートが最も高いサーバ２に配置され、これによりサーバ２の処理可能レートが５００Ｊ／Ｈに減る。以上で、帯域保証ありの物理プリンタの配置先の決定が完了する。（３）次に帯域保証なしのうち処理レートが最も高い物理プリンタＰＰ３が、その時点で処理可能レートが最も高いサーバ３に配置され、これによりサーバ３の処理可能レートが９００Ｊ／Ｈに減る。（４）処理レートがその次に高い物理プリンタＰＰ４が、その時点で処理可能レートが最も高いサーバ３に配置され、これによりサーバ３の処理可能レートが４００Ｊ／Ｈに減る。（５）処理レートがその次に高い物理プリンタＰＰ５が、その時点で処理可能レートが最も高いサーバ１に配置され、これによりサーバ１の処理可能レートが０Ｊ／Ｈに減る。（６）処理レートがその次に高い物理プリンタＰＰ６が、その時点で処理可能レートが最も高いサーバ２に配置され、これによりサーバ２の処理可能レートが０Ｊ／Ｈに減る。（７）処理レートがその次に高い物理プリンタＰＰ７が、その時点で処理可能レートが最も高いサーバ３に配置され、これによりサーバ３の処理可能レートが２００Ｊ／Ｈに減る。（８）処理レートがその次に高い物理プリンタＰＰ８が、その時点で処理可能レートが最も高いサーバ３に配置され、これによりサーバ３の処理可能レートが０Ｊ／Ｈに減る。これで、すべてのサーバの処理可能レート（残容量）が０になった。処理レートがその次に高い物理プリンタＰＰ９を配置し得るかを、サーバ番号が若いサーバから順に試すが、サーバ１も２も帯域保証ありの物理プリンタＰＰ１又はＰＰ２がすでに配置済みなので、それらサーバ１又は２の処理可能レート（０Ｊ／Ｈ）を超える処理レート１００を有する物理プリンタＰＰ９は配置できない。（９）結局、物理プリンタＰＰ９は、サーバ２の次点の、帯域保証ありの仮想プリンタが１つも配置されていないサーバ３に配置され、これによりサーバ３の処理可能レートが−１００Ｊ／Ｈに減る。サーバ３は、帯域保証なしの仮想プリンタしか配置されていないので、処理可能レートが負の値になっても、帯域保証の観点では問題ない。（１０）最後の物理プリンタＰＰ１０も、帯域保証ありの物理プリンタの配置先となっているサーバ１、２には配置できないので、結局サーバ３に配置されることになる。
【０１０６】
以上に説明した実施形態によれば、帯域保証ありの仮想プリンタに割り当てられるべき帯域が、同じサーバ内の帯域保証なしの仮想プリンタの処理負荷により圧迫される可能性を低減することが可能になる。
【０１０７】
例えば基幹用の印刷は一般に定型の大量のジョブを印刷し続けることが多く、帯域保証ありの仮想プリンタは、帯域保証レートに近い処理レートで安定して処理を続けると想定できる場合が多い。このような場合、帯域保証ありの仮想プリンタの帯域保証を脅かすのは、印刷指示の数や印刷対象の文書が一定しない一般出力のジョブであり、これら一般ジョブを処理する帯域保証なしの仮想プリンタの処理レートの急激な増大である。そこで、上記の再配置処理では、帯域保証ありの仮想プリンタが配置されるサーバには、それら帯域保証ありの仮想プリンタの帯域保証レートと、帯域保証なしの仮想プリンタの処理レートの直近の実績値との合計がそのサーバの最大処理レートを超えないように、そのサーバに配置する帯域保証なしの仮想プリンタを選択する。このように、帯域保証なしの仮想プリンタの直近の実績処理レートを考慮して再配置を決めるため、帯域保証ありの仮想プリンタの帯域保証が、同じサーバに同居する帯域保証なしの仮想プリンタの処理負荷の変化により脅かされる可能性が低くなる。
【０１０８】
さて、帯域保証ありの仮想プリンタの帯域保証が、同じサーバに同居する別の帯域保証「あり」の仮想プリンタの処理負荷の増大により脅かされる場合をさらに考慮してもよい。この場合、例えば、図１０のＳ１４で帯域保証失敗の兆候を検知したサーバ１００に帯域保証ありの仮想プリンタが複数あるかどうかをチェックし、複数ある場合には、それら複数の仮想プリンタの組を記憶する。そして、帯域保証ありの仮想プリンタを図１２の手順に従って再配置する際、記憶した組の仮想プリンタを同じサーバ１００に配置しないよう、再配置を求める。より具体的には、例えば、図１２の手順のＳ４４の後、処理可能レートが最大のサーバSVの配置リストに、配置対象の仮想プリンタPRTと同じ組（失敗兆候検知時に記憶していたもの）に属する帯域保証ありの仮想プリンタがすでにあるかを判定する。「ある」と判定した場合は、SVを処理可能レートが次点のサーバに変更して同じ判定を繰り返し、その判定で「ない」と判定された場合に、Ｓ４６に進む。
【０１０９】
帯域保証ありの仮想プリンタの配置を求める際に同じサーバに配置が決定されている別の帯域保証ありの仮想プリンタを考慮する別の例として、図１６及び図１７に示す手順がある。この手順は、図１２の手順の代替となる手順であり、図１２の手順のステップと同様のステップには同一符号を付して重複説明を省略する。
【０１１０】
図１６の手順では、配置管理装置１０４は、図１２の手順と同じＳ４０〜Ｓ４４の処理を行った後、処理可能レートが最大のサーバSVの配置リストに帯域保証ありの仮想プリンタが既に存在するか否かを判定する（Ｓ８０）。存在しない場合は、Ｓ４６に進み、図１２と同様の処理を行う。
【０１１１】
Ｓ８０で「存在する」と判定した場合、配置管理装置１０４は、図１７に示すように、現在の処理対象の仮想プリンタPRTと配置リスト内の全ての仮想プリンタの各々について、それぞれその仮想プリンタの帯域保証レートと処理レート（実績値）のうち大きい方を選択する（Ｓ８２）。そして、それら選択した方のレートをそれら全ての仮想プリンタにわたって総和し、その総和がSVの最大処理レート以下であるかどうかを判定する（Ｓ８４）。その総和がSVの最大処理レート以下であれば、その帯域保証ありの仮想プリンタPRTの配置先をそのサーバSVにしたとしても、そのサーバSVに配置される帯域保証ありの仮想プリンタはPRTも含め、すべて帯域が保証される。そこでこの場合、図１６のＳ４８に進み、PRTをSVの配置リストに追加する。
【０１１２】
Ｓ８４で、前述の総和がSVの最大処理レートを上回ることが分かった場合、配置管理装置１０４は、処理可能レートがSVの次に大きいサーバ１００（次点のサーバ）が存在するか否かを判定し（Ｓ８６）、存在すれば、その「次点のサーバ」を変数SVにセットし（Ｓ８８）、図１６のＳ８０に戻る。Ｓ８６で処理可能レートがSVの次点のサーバ１００が存在しないことが判明した場合、配置管理装置１０４は、図１６のＳ５２に進み、配置不能エラーを発する。この場合、PRTをどのサーバ１００に配置しても、いずれかの仮想プリンタの帯域保証が脅かされることになるからである。
【０１１３】
以上、実施形態のシステム構成及び処理手順について説明した。以上の例では、各仮想プリンタの帯域保証レートは、ユーザ側からの要求に従ってシステム管理者が設定する固定値であるものとして説明した。しかし、別の例として、各仮想プリンタの帯域保証レートを、システムの運用状況の変化に応じて自動的に変更する機能を（例えば配置管理装置１０４に）設けてもよい。
【０１１４】
例えば、帯域保証ありの仮想プリンタが実質的に使用されない期間に入ったと判定される場合に、その仮想プリンタの帯域保証レートを通常時の値よりも低い所定の値まで自動的に低減してもよい。
【０１１５】
例えば基幹出力用の仮想プリンタの場合、業務時間外には使用されないことが多いと考えられる。このようにあらかじめ定められた業務時間外には使用されないことがわかっている場合には、業務の終了時間が過ぎた時点でその仮想プリンタの帯域保証レートを通常時の値から０又はそれに近い低い値に切り替え、次の業務時間の開始とともにその仮想プリンタの帯域保証レートを通常時の値に戻す。
【０１１６】
このような定時切り替えが不適切な場合には、例えば帯域保証ありの仮想プリンタに対し、その仮想プリンタが「使用されない期間である」ことを判定する処理レートの閾値を定め、この閾値を用いて制御を行ってもよい。この制御では、その仮想プリンタの処理レートがその閾値より高い状況から、閾値を下回ったことを検知したら、その仮想プリンタの帯域保証レートを通常時の値から、それより低いあらかじめ定めた値（例えばその閾値）へと切り替える。そして、その後その仮想プリンタの処理レートが閾値を上回ったことを検知したら、帯域保証レートを通常時の値に戻す。
【０１１７】
また、さらに別の例として、帯域保証ありの仮想プリンタに対応する実プリンタ１０８が電源オフ等により停止したことを検知すると、その仮想プリンタが使用されない期間に入ったと判定し、その仮想プリンタの帯域保証レートを自動的に０に切り替えるようにしてもよい。そして、その後、対応する実プリンタ１０８のすべてが稼働状態になったことを検知すると、帯域保証レートを通常時の値に戻す。
【０１１８】
以上のように仮想プリンタの帯域保証レートを低減すれば、その分だけ、同じサーバ１００上に配置された帯域保証なしの仮想プリンタの処理レートを高くすることが可能になる。また、帯域保証レートを低減した場合に、仮想プリンタの再配置（図１２〜図１４の処理）を行うことで、通常時には帯域保証ありの仮想プリンタがないサーバ１００に詰め込まれていた帯域保証なしの仮想プリンタが、帯域保証ありの仮想プリンタのあるサーバ１００にも分散されるので、帯域保証なしの仮想プリンタの処理レートが向上する。
【０１１９】
以上の例では、仮想プリンタが論理プリンタ１１２と物理プリンタ１１４とに機能分割されていたが、それら両者の機能を併せ持つ仮想プリンタを用いる場合にも、上述の帯域保証のための再配置処理方式は適用可能である。
【０１２０】
以上に例示した印刷サービス１１０、データ記憶装置１０２、配置管理装置１０４及び帯域保証判定装置１０５は、例えば、汎用のコンピュータに当該装置の各機能モジュールの処理を表すプログラムを実行させることにより実現してもよい。ここで言うコンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）やＳＳＤ（ソリッドステートドライブ）、フラッシュメモリ等の二次記憶を制御する二次記憶コントローラ、各種Ｉ／Ｏ（入出力）インタフェース、無線又は有線のネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤ、ブルーレイディスクなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、フラッシュメモリ等の二次記憶装置に保存され、コンピュータにインストールされる。二次記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。また、コンピュータは、仮想マシンであってもよい。
【符号の説明】
【０１２１】
１００，１００Ａ，１００Ｂ  サーバ、１０２  データ記憶装置、１０４  配置管理装置、１０５  帯域保証判定装置、１０６  ロードバランサ、１０８  実プリンタ、１１０  印刷サービス、１１１ａ，１１１ｃ  基幹用仮想プリンタ、１１１ｂ  一般用仮想プリンタ、１１２  論理プリンタ、１１４  物理プリンタ、１０２１  論理プリンタテーブル、１０２２  物理プリンタテーブル、１０２３  対応づけテーブル、１０２４  サーバテーブル、１０２５  配置テーブル、１０２６  ジョブ情報、１０２７  処理レート履歴テーブル、１１０２  論理プリンタ管理部、１１０３，１１０５  処理レート計測部、１１０４  物理プリンタ管理部、１１０６  ジョブ管理部、１１０８  ジョブスケジューリング部、１１１０  イベント通知部、１１１２  サーバ間通信制御部、１１１４  クライアント通信部。
【図１】
2015179478.tif 000003
【図２】
2015179478.tif 000004
【図３】
2015179478.tif 000005
【図４】
2015179478.tif 000006
【図５】
2015179478.tif 000007
【図６】
2015179478.tif 000008
【図７】
2015179478.tif 000009
【図８】
2015179478.tif 000010
【図９】
2015179478.tif 000011
【図１０】
2015179478.tif 000012
【図１１】
2015179478.tif 000013
【図１２】
2015179478.tif 000014
【図１３】
2015179478.tif 000015
【図１４】
2015179478.tif 000016
【図１５】
2015179478.tif 000017
【図１６】
2015179478.tif 000018
【図１７】
2015179478.tif 000019