(57)【特許請求の範囲】
【請求項１】
それぞれデータを処理して出力装置に出力する１又は複数の処理手段と、
クライアント装置から受け付けたデータを、前記１又は複数の処理手段のいずれかに振り分ける振り分け手段と、
前記振り分け手段により前記１又は複数の処理手段のいずれかに振り分けられたデータが格納される格納手段と、
前記１又は複数の処理手段の状態を監視する監視手段と、
前記監視手段により監視される前記１又は複数の処理手段の状態、及び前記格納手段に格納されたデータの状態に基づいて、前記１又は複数の処理手段の数を増減させる手段と、を含み、
前記振り分け手段により前記データを振り分けられた処理手段が、前記データを前記格納手段に格納し、
前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記出力装置に出力する
ことを特徴とする情報処理システム。
【請求項２】
前記データの出力先の出力装置が処理可能状態となった場合に、前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記出力装置に出力する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
複数の出力装置のそれぞれの状態を監視する手段と、
前記複数の出力装置のそれぞれの状態に基づいて、前記複数の出力装置の中から前記データの出力先の出力装置を選択する選択手段と、をさらに含み、
前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記選択手段により選択された出力装置に出力する
ことを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記増減させる手段が、前記１又は複数の処理手段の数を減じる場合には、当該１又は複数の処理手段の中から減じる対象の処理手段を決定する手段と、
前記振り分け手段による前記減じる対象の処理手段へのデータの振り分けを停止させた後に、当該減じる対象の処理手段を削除する手段と、さらに含む
ことを特徴とする請求項１乃至３のいずれかに記載の情報処理システム。
【請求項５】
それぞれデータを処理して出力装置に出力する１又は複数の処理手段と、
クライアント装置から受け付けたデータを、前記１又は複数の処理手段のいずれかに振り分ける振り分け手段と、
前記振り分け手段により前記１又は複数の処理手段のいずれかに振り分けられたデータが格納される格納手段と、
前記１又は複数の処理手段の状態を監視する監視手段と、
前記監視手段により監視される前記１又は複数の処理手段の状態、及び前記格納手段に格納されたデータの状態に基づいて、前記１又は複数の処理手段の数を増減させる手段としてコンピュータを機能させるためのプログラムであって、
前記振り分け手段により前記データを振り分けられた処理手段が、前記データを前記格納手段に格納し、
前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記出力装置に出力する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及びプログラムに関する。
【背景技術】
【０００２】
インターネット等のネットワーク側（クラウド側）にデバイスを管理するサーバを設け、クライアント装置はサーバに処理を要求することでデバイスに処理を実行させるシステム（クラウドサービス）がある。こうしたクラウドサービスでは、クライアント装置に提供するサービスにそれぞれリソースを割り当てて処理している。
【０００３】
クライアント装置からの処理要求が増加したり減少したりすると、クライアント装置に割り当てたリソースの処理能力が不足したり逆に過剰となったりすることがある。これに対し、クライアント装置から受け付けた印刷要求をプリントサーバが蓄積し、プリントサーバが処理可能なタイミングでデータを処理しプリンタに出力する場合には、リソースの割り当てを動的に変化させても、一旦プリントサーバが受け付けた印刷要求については処理が分散しないため、リソースの割り当ての変化による効果が即時に得られないことがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−９５８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、クライアント装置からの要求を処理するリソースの割り当てを動的に変化させた場合の効果を即時に得ることにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に記載の発明は、それぞれデータを処理して出力装置に出力する１又は複数の処理手段と、クライアント装置から受け付けたデータを、前記１又は複数の処理手段のいずれかに振り分ける振り分け手段と、前記振り分け手段により前記１又は複数の処理手段の１つに振り分けられたデータを格納する格納手段と、前記１又は複数の処理手段の状態を監視する監視手段と、前記監視手段により監視される前記１又は複数の処理手段の状態、及び前記格納手段に格納されたデータの状態に基づいて、前記１又は複数の処理手段の数を増減させる手段と、を含み、前記振り分け手段により前記データを振り分けられた処理手段が、前記データを前記格納手段に格納し、前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記出力装置に出力することを特徴とする情報処理システムである。
【０００７】
また、請求項２に記載の発明は、前記データの出力先の出力装置が処理可能状態となった場合に、前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記出力装置に出力することを特徴とする請求項１に記載の情報処理システムである。
【０００８】
また、請求項３に記載の発明は、複数の出力装置のそれぞれの状態を監視する手段と、前記複数の出力装置のそれぞれの状態に基づいて、前記複数の出力装置の中から前記データの出力先の出力装置を選択する選択手段と、をさらに含み、前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記選択手段により選択された出力装置に出力することを特徴とする請求項１又は２に記載の情報処理システムである。
【０００９】
また、請求項４に記載の発明は、前記増減させる手段が、前記１又は複数の処理手段の数を減じる場合には、当該１又は複数の処理手段の中から減じる対象の処理手段を決定する手段と、前記振り分け手段による前記減じる対象の処理手段へのデータの振り分けを停止させた後に、当該減じる対象の処理手段を削除する手段と、さらに含むことを特徴とする請求項１乃至３のいずれかに記載の情報処理システムである。
【００１０】
また、請求項５に記載の発明は、それぞれデータを処理して出力装置に出力する１又は複数の処理手段と、クライアント装置から受け付けたデータを、前記１又は複数の処理手段のいずれかに振り分ける振り分け手段と、前記振り分け手段により前記１又は複数の処理手段の１つに振り分けられたデータを格納手段に格納する手段と、前記１又は複数の処理手段の状態を監視する監視手段と、前記監視手段により監視される前記１又は複数の処理手段の状態、及び前記格納手段に格納されたデータの状態に基づいて、前記１又は複数の処理手段の数を増減させる手段としてコンピュータを機能させるためのプログラムであって、前記振り分け手段により前記データを振り分けられた処理手段が、前記データを前記格納手段に格納し、前記１又は複数の処理手段のうち処理を実行可能な状態となった処理手段のいずれかが、前記格納手段に格納されたデータを処理して前記出力装置に出力することを特徴とするプログラムである。
【発明の効果】
【００１１】
請求項１及び５に記載の発明によれば、本構成を有さない場合と比較して、クライアント装置からの要求を処理するリソースの割り当てを動的に変化させた場合の効果を即時に得ることができる。
【００１２】
請求項２に記載の発明によれば、本構成を有さない場合と比較して、クライアント装置からの要求を定められた出力装置に出力する処理を効率良く実行できる。
【００１３】
請求項３に記載の発明によれば、本構成を有さない場合と比較して、クライアント装置からの要求を任意の出力装置に出力する処理を効率良く実行できる。
【００１４】
請求項４に記載の発明によれば、本構成を有さない場合と比較して、クライアント装置からの要求を処理するリソースの割り当てを減じる場合の効果を即時に得ることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係るクラウド印刷システムのシステム構成図である。
【図２】共有データベースの構成の一例を示す図である。
【図３】インスタンスリストテーブルの一例を示す図である。
【図４】インスタンス状態管理テーブルの一例を示す図である。
【図５】印刷ジョブ状態管理テーブルの一例を示す図である。
【図６】プリントサーバのインスタンスの追加／停止を判断する際の基準データの一例を示す図である。
【図７】停止させるインスタンスを選択する際の基準データの一例を示す図である。
【図８】印刷ジョブの受付時の処理に関するシーケンス図である。
【図９】プリントサーバのインスタンスを増減させる制御処理のシーケンス図である。
【図１０】管理対象のプリンタのステータス情報を更新する処理のシーケンス図である。
【図１１】印刷ジョブをプリンタに出力する処理のシーケンス図である。
【図１２】第２の実施形態に係る印刷システムのシステム構成図である。
【図１３】印刷ジョブをプリンタに出力する処理のシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための実施の形態（以下、実施形態という）を、図面に従って説明する。
【００１７】
［１．システム構成（第１の実施形態）］
図１には、本実施形態に係るクラウド印刷システム１のシステム構成図を示した。図１に示されるように、クラウド印刷システム１は、クライアント装置１０、プリンタ２０、印刷管理システム１００を含み、クライアント装置１０、プリンタ２０、印刷管理システム１００はそれぞれインターネット等のネットワーク３０を介して相互にデータ通信可能に接続されている。
【００１８】
クライアント装置１０は、ユーザにより操作されるパーソナルコンピュータ、携帯電話機、ＰＤＡ、タブレット端末等のコンピュータである。
【００１９】
プリンタ２０は、ネットワーク機能を有し、ネットワーク３０を介して印刷管理システム１００と通信し、印刷管理システム１００から受信したデータに基づいて画像形成処理を行う装置である。なお、印刷管理システム１００には、プリンタ２０のアドレス、プリンタ２０の状態、プリンタドライバの情報を含むプリンタオブジェクト（論理プリンタ情報）が登録されている。
【００２０】
印刷管理システム１００は、クライアント装置１０にネットワーク３０を介した印刷サービスを提供するシステムである。例えば、本実施形態では、印刷管理システム１００は、印刷管理システム１００内のハードウェアリソースを印刷サービスに動的に割り当てて、ロードバランサ１１０、プリントサーバ１２０、共有データベース１３０、パフォーマンスモニタ１４０のそれぞれのインスタンスを構築することとするが、各インスタンスをそれぞれ物理デバイスにより構成しても構わない。
【００２１】
ロードバランサ１１０は、ネットワーク３０を介してクライアント装置１０やプリンタ２０からの処理要求を受け付け、受け付けた処理要求を、複数のプリントサーバ１２０のいずれかに振り分ける機能を有する。
【００２２】
プリントサーバ１２０は、ロードバランサ１１０から振り分けられた処理要求を受け付け、受け付けた処理要求に基づく処理を実行する機能を有する。プリントサーバ１２０は、例えば、クライアント装置１０から印刷ジョブを受け付けた場合に、印刷ジョブを共有データベース１３０に登録する処理、出力先のプリンタ２０が出力可能な状態となったか否かを判断する処理、出力先のプリンタ２０に出力するデータ（印刷データ）を生成する処理、出力先のプリンタ２０に印刷データを送信する処理等を実行する。また、プリントサーバ１２０は、予め定められたタイミングで（例えば予め定められた時間ごとに）、自らのパフォーマンスデータを共有データベース１３０に書き込む処理も実行する。
【００２３】
共有データベース１３０は、ロードバランサ１１０、プリントサーバ１２０、パフォーマンスモニタ１４０のそれぞれにより共有される記憶部である。
【００２４】
図２には、共有データベース１３０の構成の一例を示した。図２に示されるように、共有データベース１３０には、メッセージキュー格納部１３２、制御データ格納部１３４、印刷データ格納部１３６が含まれる。
【００２５】
メッセージキュー格納部１３２は、複数のプリントサーバ１２０により共有されるメッセージキューが格納される。複数のプリントサーバ１２０はそれぞれ、次に実行すべき処理をメッセージキュー格納部１３２に格納されたメッセージキューから選択し（例えばメッセージキュー格納部１３２への登録が古い順に選択し）、選択した処理を実行する。なお、複数のプリントサーバ１２０はそれぞれ、自らの処理により次に実行すべき処理が生じた場合には、当該生じた処理をメッセージキュー格納部１３２に格納することとしてよい。
【００２６】
制御データ格納部１３４は、プリントサーバ１２０のインスタンスのリストを表すデータ、プリントサーバ１２０のそれぞれのパフォーマンスを表すデータ、受け付けたジョブの状態を表すデータ、プリンタ２０の状態を表すデータ、ユーザのデータ等の各種の制御データを格納する。以下、制御データ格納部１３４に格納されるデータの一例について説明する。
【００２７】
図３には、制御データ格納部１３４に格納されるインスタンスリストテーブルの一例を示した。インスタンスリストテーブルには、起動しているプリントサーバ１２０のインスタンスの一覧が格納される。図３に示されるインスタンスリストテーブルには、プリントサーバ１２０のインスタンスを識別するインスタンスＩＤ、プリントサーバ１２０のインスタンスのアドレス（ホスト名）、振り分けの可否を示す振り分けフラグ（Ｔが可、Ｆが不可）が関連付けて記憶される。例えば、ロードバランサ１１０は、インスタンスリストテーブルにおいて振り分けフラグがＴ（可）であるインスタンスＩＤの中から１つをランダムに選択し、選択した１つのアドレスに処理要求を振り分けることとしてよい。
【００２８】
図４には、制御データ格納部１３４に格納されるインスタンス状態管理テーブルの一例を示した。インスタンス状態管理テーブルには、プリントサーバ１２０のインスタンスごとの状態が格納される。図４に示されるインスタンス状態管理テーブルには、プリントサーバ１２０のインスタンスを識別するインスタンスＩＤ、インスタンスのメモリ使用量、インスタンスの起動開始からの経過時間、情報の更新日時が関連付けて記憶される。インスタンス状態管理テーブルは、プリントサーバ１２０の各インスタンスが定期的に更新することとしてもよいし、パフォーマンスモニタ１４０がプリントサーバ１２０の各インスタンスの状態を確認し、インスタンス状態管理テーブルに書き込むこととしてもよい。
【００２９】
図５には、制御データ格納部１３４に格納される印刷ジョブ状態管理テーブルの一例を示した。印刷ジョブ状態管理テーブルには、プリントサーバ１２０が受け付けた印刷ジョブごとの情報が格納される。図５に示される印刷ジョブ状態管理テーブルには、印刷ジョブを識別するジョブＩＤ、印刷ジョブの処理対象として受け付けたデータの格納先、処理するデータ量、印刷ジョブの状態（ステータス）、情報の更新日時が関連付けて記憶される。プリントサーバ１２０が印刷ジョブを受け付けた後に、受け付けた印刷ジョブについて印刷ジョブ状態管理テーブルにレコードを追加し、プリントサーバ１２０が印刷ジョブについての処理を実行した後に、処理した印刷ジョブに関する印刷ジョブ状態管理テーブルのステータスを更新することとしてよい。例えば、印刷ジョブのステータスは、受付処理中、プリント待ち、印刷前処理、印刷中、完了の状態を含むこととしてよい。
【００３０】
印刷データ格納部１３６は、印刷ジョブに係る処理データを格納する。
【００３１】
パフォーマンスモニタ１４０は、共有データベース１３０を参照して、プリントサーバ１２０のインスタンスの個別及び全体のパフォーマンスデータを取得し、取得したパフォーマンスデータに基づき、プリントサーバ１２０のインスタンスの追加の要否、削除の要否を判断する。例えば、パフォーマンスモニタ１４０は、起動しているプリントサーバ１２０のインスタンスによる処理能力が不足している場合には、プリントサーバ１２０のインスタンスを追加し、起動しているプリントサーバ１２０のインスタンスの処理能力が余剰である場合には、起動しているプリントサーバ１２０のインスタンスの中から停止するインスタンスを選択し、選択したインスタンスを停止・削除する。
【００３２】
また、パフォーマンスモニタ１４０が取得するパフォーマンスデータには、例えば、メッセージキュー格納部１３２からキュー長、キュー処理速度、制御データ格納部１３４からプリントサーバ１２０の各インスタンスのメモリ使用量、起動経過時間、印刷ジョブのうちステータスが「受付処理中」であるジョブ数（受付処理中ジョブ数）、印刷ジョブのうちステータスが「プリント待ち」であるジョブ数（プリント待ちジョブ数）、印刷ジョブのうちステータスが「印刷前処理」であるジョブ数（印刷前処理ジョブ数）、印刷データ格納部１３６から印刷データ量を含むこととしてよい。
【００３３】
図６には、パフォーマンスモニタ１４０によるプリントサーバ１２０のインスタンスの追加／停止を判断する際の基準データの一例を示した。図６には、プリントサーバ１２０のインスタンスが受け付けた印刷ジョブのうち、受付処理中ジョブ数が上限閾値以上（又はより大きい）の場合に、プリントサーバ１２０のインスタンスを追加し、受付処理中ジョブ数が下限閾値以下（又はより小さい）の場合に、プリントサーバ１２０のインスタンスの一部の利用を停止する基準と、印刷前処理ジョブ数が上限閾値以上（又はより大きい）の場合に、プリントサーバ１２０のインスタンスを追加し、印刷前処理ジョブ数が下限閾値以下（又はより小さい）の場合に、プリントサーバ１２０のインスタンスの一部の利用を停止する基準の例が示されているが、他の基準を採用しても構わない。なお、受付処理中ジョブ数や、印刷前処理ジョブ数は、共有データベース１３０に記憶される印刷ジョブ状態管理テーブルを参照して取得することとしてよい。
【００３４】
図７には、パフォーマンスモニタ１４０によりプリントサーバ１２０のインスタンスの停止が判断された場合に、停止させるインスタンスを選択する際の基準データの一例を示した。図７には、プリントサーバ１２０のインスタンスのうち、メモリ使用量が最大のものを停止対象に選択する基準（優先順位１）と、起動経過時間が最大のものを停止対象に選択する基準（優先順位２）の例が示されているが、他の基準を採用しても構わない。なお、優先順位１の基準で選択したインスタンスが複数ある場合に、優先順位２の基準で停止させるインスタンスを選択することとしてよい。
【００３５】
なお、印刷管理システム１００で構築される上記の各インスタンスは、ＣＰＵ等の制御手段、メモリ等の記憶手段、外部デバイスとデータを送受信する入出力手段等を備えたコンピュータが、コンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によってコンピュータに供給されてもよいし、インターネット等のデータ通信網を介してコンピュータに供給されてもよい。
【００３６】
［２．シーケンス］
次に、第１の実施形態において行われる処理のシーケンス例について図８〜１１を参照しながら説明する。
【００３７】
［２．１．印刷ジョブの受付時の処理］
図８には、印刷ジョブの受付時の処理に関するシーケンス図を示した。図８に示されるように、クライアント装置１０がユーザから印刷指示を受け付けると（Ｓ１００１）、受け付けた印刷指示に基づく印刷ジョブの処理を印刷管理システム１００に要求（ロードバランサ１１０に送信）する（Ｓ１００２）。ここでは、印刷指示には処理データ、出力先のプリンタ２０が指定されていることとする。
【００３８】
ロードバランサ１１０は、クライアント装置１０から受け付けた印刷ジョブを、インスタンスリストテーブルで起動しているプリントサーバ１２０のインスタンスのいずれかに振り分けを決定し（Ｓ１００３）、振り分けるプリントサーバ１２０のインスタンスに印刷ジョブを転送する（Ｓ１００４）。
【００３９】
プリントサーバ１２０のインスタンスは、ロードバランサ１１０から振り分けられた印刷ジョブを解析し（Ｓ１００５）、印刷ジョブの処理データを共有データベース１３０に書き込む（Ｓ１００６）。例えば、プリントサーバ１２０のインスタンスは、印刷ジョブ状態管理テーブルに、印刷ジョブのステータス情報を書き込むとともに、印刷ジョブの処理データを印刷データ格納部１３６に格納する。
【００４０】
そして、プリントサーバ１２０のインスタンスは、クライアント装置１０に印刷ジョブが受け付けられた旨を通知する（Ｓ１００７）。
【００４１】
印刷システムでは、以上の処理を、クライアント装置１０から印刷ジョブを受け付けるごとに行うこととしてよい。
【００４２】
［２．２．インスタンスの増減処理］
次に、プリントサーバ１２０のインスタンスを増減させる制御処理について図９のシーケンス図を参照しながら説明する。
【００４３】
図９に示されるように、プリントサーバ１２０の各インスタンスは、パフォーマンスデータの書き込みタイミングが到来したか否か（例えば定期的なタイミングとしてよい）を判断し（Ｓ２００１）、到来していない場合には（Ｓ２００１：Ｎ）、待機し、到来した場合には（Ｓ２００１：Ｙ）、パフォーマンスデータを共有データベース１３０（インスタンス状態管理テーブル）に書き込む（Ｓ２００２）。
【００４４】
また、パフォーマンスモニタ１４０は、パフォーマンスデータの取得タイミングが到来したか否か（例えば定期的なタイミングとしてよい）を判断し（Ｓ２００３）、到来していない場合には（Ｓ２００３：Ｎ）、待機し、到来した場合には（Ｓ２００３：Ｙ）、パフォーマンスデータを共有データベース１３０から取得する（Ｓ２００４）。
【００４５】
パフォーマンスモニタ１４０は、取得したパフォーマンスデータに基づき、起動中のプリントサーバ１２０のインスタンスを削除（停止）するか否かを判断し（Ｓ２００５）、削除（停止）する場合には（Ｓ２００５：Ｙ）、起動中のインスタンスの中から削除するインスタンス（削除対象インスタンス）を選択する（Ｓ２００６）。そして、パフォーマンスモニタ１４０は、削除対象インスタンスへの処理の振り分けの停止をロードバランサ１１０に要求する（Ｓ２００７）。
【００４６】
ロードバランサ１１０は、振り分け停止要求に係る削除対象インスタンスについて、インスタンスリストテーブルに記憶される振り分けフラグを不可（Ｆ）に更新して、削除対象インスタンスへの振り分けを停止させる（Ｓ２００８）。なお、振り分けフラグの更新は、パフォーマンスモニタ１４０が行ってもよい。
【００４７】
パフォーマンスモニタ１４０は、削除対象インスタンスのステータス情報を共有データベース１３０から取得し（Ｓ２００９）、取得したステータス情報に基づいて、削除対象インスタンスが削除可能か否か（例えば実行すべき処理が全て完了したか否か）を判断する（Ｓ２０１０）。パフォーマンスモニタ１４０は、Ｓ２０１０で削除可能でない場合には（Ｓ２０１０：Ｎ）、Ｓ２００９に戻り、削除可能である場合には（Ｓ２０１０：Ｙ）、削除対象インスタンスを削除して（Ｓ２０１１）、削除対象インスタンスを削除した旨をロードバランサ１１０に通知する（Ｓ２０１２）。
【００４８】
ロードバランサ１１０は、通知を受けた削除対象インスタンスをインスタンスリストテーブルから削除して、起動しているインスタンスリストを更新する（Ｓ２０１３）。
【００４９】
また、パフォーマンスモニタ１４０は、Ｓ２００５で削除しない場合には（Ｓ２００５：Ｎ）、Ｓ２００４で取得したパフォーマンスデータに基づき、起動中のプリントサーバ１２０のインスタンスにインスタンスを追加するか否かを判断し（Ｓ２０１４）、追加する場合には（Ｓ２０１４：Ｙ）、インスタンスを新たに追加し（Ｓ２０１５）、新たに追加したインスタンス（追加インスタンス）の情報をロードバランサ１１０に通知する（Ｓ２０１６）。
【００５０】
ロードバランサ１１０は、通知を受けた追加インスタンスをインスタンスリストテーブルに新たに追加して、インスタンスリストを更新する（Ｓ２０１３）。
【００５１】
以上の処理により、プリントサーバ１２０のインスタンスの処理能力が不足している場合にはインスタンス数が増加し、処理能力が余っている場合にはインスタンス数が減少するようになる。
【００５２】
［２．３．プリンタ２０のステータス更新処理］
次に、管理対象のプリンタ２０のステータス情報を更新する処理について、図１０のシーケンス図を参照しながら説明する。
【００５３】
図１０に示されるように、管理対象のプリンタ２０は、ステータスデータの送信タイミングが到来したか否か（例えば定期的なタイミングとしてよい）を判断し（Ｓ３００１）、到来していない場合には（Ｓ３００１：Ｎ）、待機し、到来した場合には（Ｓ３００１：Ｙ）、ステータスデータを印刷管理システム１００（ロードバランサ１１０）に送信する（Ｓ３００２）。
【００５４】
ロードバランサ１１０は、プリンタ２０から受け付けたステースデータの書き込みジョブを、インスタンスリストテーブルで起動しているプリントサーバ１２０のインスタンスのいずれかに振り分けを決定し（Ｓ３００３）、振り分けるプリントサーバ１２０のインスタンスにステータスデータを転送する（Ｓ３００４）。
【００５５】
プリントサーバ１２０のインスタンスは、ロードバランサ１１０から振り分けられたステータスデータを共有データベース１３０に書き込む（Ｓ３００５）。
【００５６】
印刷システムでは、以上の処理を、プリンタ２０からステータスデータを受け付けるごとに行うこととしてよい。
【００５７】
［２．４．印刷ジョブの出力処理］
次に、受け付けた印刷ジョブをプリンタ２０に出力する処理について、図１１のシーケンス図を参照しながら説明する。
【００５８】
図１１に示されるように、プリントサーバ１２０のインスタンスが、次のジョブを処理する状態になった場合には（Ｓ４００１：Ｙ）、メッセージキュー格納部１３２に格納されるメッセージキューを参照し、メッセージキューに示される印刷ジョブのデータを印刷データ格納部１３６から取得する（Ｓ４００２）。
【００５９】
プリントサーバ１２０のインスタンスは、取得した印刷ジョブのデータと、出力先のプリンタ２０の処理可能なデータ形式に基づいて、出力先用の印刷データを生成する（Ｓ４００３）。
【００６０】
プリントサーバ１２０のインスタンスは、共有データベース１３０から出力先のプリンタ２０のステータス情報を取得し（Ｓ４００４）、取得したステータス情報に基づいて出力可能なタイミングとなったか否かを判定する（Ｓ４００５）。ここで、プリントサーバ１２０のインスタンスは、出力可能なタイミングでない場合には（Ｓ４００５：Ｎ）、待機し、出力可能なタイミングとなった場合には（Ｓ４００５：Ｙ）、出力先のプリンタ２０にＳ４００３で生成された印刷データを送信する（Ｓ４００６）。
【００６１】
プリンタ２０は、プリントサーバ１２０のインスタンスから送信された印刷データを受信し、受信した印刷データに基づいて印刷処理を実行する（Ｓ４００７）。なお、プリントサーバ１２０のインスタンスは、印刷データの処理が完了した場合に、印刷データ格納部１３６から印刷ジョブの処理データを削除することとしてよい。
【００６２】
以上が、第１の実施形態におけるシーケンスの一例である。
【００６３】
［３．システム構成（第２の実施形態）］
次に、本発明の第２の実施形態について説明する。図１２には、第２の実施形態に係る印刷システムのシステム構成図を示した。図１２に示されるように、第２の実施形態は、複数のプリンタ２０が印刷管理システム１００側のネットワーク３０に接続されている点で第１の実施形態とは異なっているが、ロードバランサ１１０、プリントサーバ１２０、共有データベース１３０、パフォーマンスモニタ１４０の構成は第１の実施形態と同様である。また、第２の実施形態では、クライアント装置１０からは出力先のプリンタ２０の指定がなく、複数のプリンタ２０のいずれで出力してもよいものとする。
【００６４】
なお、第２の実施形態においても、図８に示した印刷ジョブの受付時の処理、図９に示したプリントサーバ１２０のインスタンスを増減させる制御処理については同様に適用できる。以下では、第１の実施形態とは異なる処理について説明する。
【００６５】
［４．１．印刷ジョブの出力処理］
図１３には、受け付けた印刷ジョブをプリンタ２０に出力する処理のシーケンスを示した。
【００６６】
図１３に示されるように、プリントサーバ１２０のインスタンスが、次のジョブを処理する状態になった場合には（Ｓ５００１：Ｙ）、メッセージキュー格納部１３２に格納されるメッセージキューを参照し、メッセージキューに示される印刷ジョブのデータを印刷データ格納部１３６から取得する（Ｓ５００２）。
【００６７】
プリントサーバ１２０のインスタンスは、複数のプリンタ２０のそれぞれからステータス情報を取得し（Ｓ５００３）、取得したステータス情報に基づいて出力先のプリンタ２０を選択する（Ｓ５００４）。出力先のプリンタ２０は、例えばスプールされているジョブの数が最も少ないプリンタ２０を選択することとしてよい。
【００６８】
プリントサーバ１２０のインスタンスは、取得した印刷ジョブのデータと、出力先のプリンタ２０の処理可能なデータ形式に基づいて、出力先用の印刷データを生成する（Ｓ５００５）。
【００６９】
プリントサーバ１２０のインスタンスは、出力先のプリンタ２０のステータス情報を取得し（Ｓ５００６）、取得したステータス情報に基づいて出力可能なタイミングとなったか否かを判定する（Ｓ５００７）。ここで、プリントサーバ１２０のインスタンスは、出力可能なタイミングでない場合には（Ｓ５００７：Ｎ）、待機し、出力可能なタイミングとなった場合には（Ｓ５００７：Ｙ）、出力先のプリンタ２０にＳ５００５で生成された印刷データを送信する（Ｓ５００８）。
【００７０】
プリンタ２０は、プリントサーバ１２０のインスタンスから送信された印刷データを受信し、受信した印刷データに基づいて印刷処理を実行する（Ｓ５００９）。なお、プリントサーバ１２０のインスタンスは、印刷データの処理が完了した場合に、印刷データ格納部１３６から印刷ジョブの処理データを削除することとしてよい。
【００７１】
以上が、第２の実施形態におけるシーケンスの一例である。
【００７２】
本発明は、以上説明した実施形態に限定されるものではない。例えば、上記の実施形態では、本発明を印刷ジョブの処理に適用した例を説明したが、本発明は印刷ジョブ以外の処理要求に対しても同様に適用可能である。
【符号の説明】
【００７３】
１  クラウド印刷システム、１０  クライアント装置、２０  プリンタ、３０  ネットワーク、１００  印刷管理システム、１１０  ロードバランサ、１２０  プリントサーバ、１３０  共有データベース、１３２  メッセージキュー格納部、１３４  制御データ格納部、１３６  印刷データ格納部、１４０  パフォーマンスモニタ。
【図１】
0005919938.tif 000002
【図２】
0005919938.tif 000003
【図３】
0005919938.tif 000004
【図４】
0005919938.tif 000005
【図５】
0005919938.tif 000006
【図６】
0005919938.tif 000007
【図７】
0005919938.tif 000008
【図８】
0005919938.tif 000009
【図９】
0005919938.tif 000010
【図１０】
0005919938.tif 000011
【図１１】
0005919938.tif 000012
【図１２】
0005919938.tif 000013
【図１３】
0005919938.tif 000014