(57)【要約】      （修正有）【課題】異なるリソースで非同期、かつ、並列に印刷データ生成処理を行う場合に、印刷データの生成タイミングのズレに関わらず、指定された順序に従った印刷を可能とする。【解決手段】ネットワークを介して外部から送信される指示に従って、印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成、生成された印刷データを、生成された順にサーバ装置のストレージに格納、ストレージに印刷データが格納されているか否かを定期的に問い合わせ、印刷データのいずれかがサーバ装置のストレージに格納されている場合に印刷データの格納場所を含む文書を生成、生成された文書をサーバ装置から受け取って文書に記載された情報を解析、解析された印刷データの先頭のページ番号と、既に印刷装置が取得した印刷データの末尾のページ番号とが連続している場合に、解析された格納場所から印刷データを取得して印刷する。【選択図】図７
2012033113.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と、前記サーバ装置とネットワークを介して接続された印刷装置とを備える印刷システムであって、
ネットワークを介して外部から送信される指示に従って、印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する、前記サーバ装置が備える複数の印刷データ生成手段と、
前記複数の印刷データ生成手段のそれぞれで生成された印刷データを、生成された順に前記サーバ装置のストレージに格納する、前記サーバ装置が備える格納手段と、
前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる、前記印刷装置が備える問い合わせ手段と、
前記問い合わせ手段により問い合わせがあった場合であって、前記印刷データのいずれかが前記サーバ装置のストレージに格納されている場合に前記印刷データの格納場所を含む文書を生成する、前記サーバ装置が備える文書生成手段と、
前記文書生成手段で生成された文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する、前記印刷装置が備える解析手段と、
前記解析手段で解析された印刷データの先頭のページ番号と、既に前記印刷装置が取得した印刷データの末尾のページ番号とが連続している場合に、前記解析手段で解析された前記格納場所から印刷データを取得して印刷する、前記印刷装置が備える印刷制御手段と、
を備えることを特徴とする印刷システム。
【請求項２】
前記印刷制御手段は、既に印刷された印刷データの末尾のページ番号と、前記解析手段で解析された印刷データの先頭のページ番号とが連続していない場合に印刷を行わないことを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記印刷制御手段は、既に印刷された印刷データの末尾のページ番号と、前記解析手段で解析された印刷データの先頭のページ番号とが連続していない場合であって、その間の印刷データと、前記解析手段で解析された印刷データとを前記印刷装置のストレージに格納可能である場合に、前記解析手段で解析された印刷データを前記格納場所から取得する一方で印刷を行わないことを特徴とする請求項２に記載の印刷システム。
【請求項４】
前記印刷制御手段は、既に印刷された印刷データの末尾のページ番号と、前記解析手段で解析された印刷データの先頭のページ番号とが連続していない場合であって、その間の印刷データと、前記解析手段で解析された印刷データとを前記印刷装置のストレージに格納可能でない場合に、前記解析手段で解析された印刷データを取得しないことを特徴とする請求項３に記載の印刷システム。
【請求項５】
前記複数の印刷データ生成手段は、生成すべき印刷データのフォーマットに応じて、印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成することを特徴とする請求項１に記載の印刷システム。
【請求項６】
前記サーバ装置は、前記ネットワークを介して外部から送信される指示に従って、印刷元データとしてのコンテンツを前記印刷装置とは異なる外部装置から取得するコンテンツ取得手段を更に備え、
前記複数の印刷データ生成手段は、前記コンテンツ取得手段により取得されたコンテンツを分担して非同期かつ並列に印刷データを生成することを特徴とする請求項１に記載の印刷システム。
【請求項７】
前記印刷装置は、ユーザからの指示を受け付けるための操作画面を表示するＷｅｂブラウザを備えることを特徴とする請求項１に記載の印刷システム。
【請求項８】
印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する印刷データ生成手段を備えるサーバ装置とネットワークを介して接続された印刷装置であって、
前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる問い合わせ手段と、
前記サーバ装置のストレージに印刷データが格納されている場合に、前記印刷データの格納場所を含む文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する解析手段と、
前記解析手段で解析された印刷データの先頭のページ番号と、既に印刷された印刷データの末尾のページ番号とが連続している場合に、前記解析手段で解析された前記格納場所から印刷データを取得して印刷する印刷制御手段と、
を備えることを特徴とする印刷装置。
【請求項９】
サーバ装置と、前記サーバ装置とネットワークを介して接続された印刷装置とを備える印刷システムの制御方法であって、
前記サーバ装置が備える複数の印刷データ生成手段が、ネットワークを介して外部から送信される指示に従って、印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する印刷データ生成工程と、
前記サーバ装置が備える格納手段が、前記印刷データ生成工程で生成された印刷データを、生成された順に前記サーバ装置のストレージに格納する格納工程と、
前記印刷装置が備える問い合わせ手段が、前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる問い合わせ工程と、
前記サーバ装置が備える文書生成手段が、前記印刷装置から問い合わせがあった場合であって、前記印刷データのいずれかが前記サーバ装置のストレージに格納されている場合に前記印刷データの格納場所を含む文書を生成する文書生成工程と、
前記サーバ装置が備える解析手段が、前記文書生成工程で生成された文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する解析工程と、
前記サーバ装置が備える印刷制御手段が、前記解析工程で解析された印刷データの先頭のページ番号と、既に前記印刷装置が取得した印刷データの末尾のページ番号とが連続している場合に、前記解析工程で解析された前記格納場所から印刷データを取得して印刷する印刷制御工程と、
を備えることを特徴とする制御方法。
【請求項１０】
印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する印刷データ生成手段を備えるサーバ装置とネットワークを介して接続された印刷装置の制御方法であって、
前記印刷装置が備える問い合わせ手段が、前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる問い合わせ工程と、
前記印刷装置が備える解析手段が、前記サーバ装置のストレージに印刷データが格納されている場合に、前記印刷データの格納場所を含む文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する解析工程と、
前記印刷装置が備える印刷制御手段が、前記解析工程で解析された印刷データの先頭のページ番号と、既に印刷された印刷データの末尾のページ番号とが連続している場合に、前記解析工程で解析された前記格納場所から印刷データを取得して印刷する印刷制御工程と、
を備えることを特徴とする制御方法。
【請求項１１】
コンピュータを、
サーバ装置と、前記サーバ装置とネットワークを介して接続された印刷装置とを備える印刷システムにおける、
ネットワークを介して外部から送信される指示に従って、印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する、前記サーバ装置が備える複数の印刷データ生成手段、
前記複数の印刷データ生成手段のそれぞれで生成された印刷データを、生成された順に前記サーバ装置のストレージに格納する、前記サーバ装置が備える格納手段、
前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる、前記印刷装置が備える問い合わせ手段、
前記問い合わせ手段により問い合わせがあった場合であって、前記印刷データのいずれかが前記サーバ装置のストレージに格納されている場合に前記印刷データの格納場所を含む文書を生成する、前記サーバ装置が備える文書生成手段、
前記文書生成手段で生成された文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する、前記印刷装置が備える解析手段、
前記解析手段で解析された印刷データの先頭のページ番号と、既に印刷された印刷データの末尾のページ番号とが連続している場合に、前記解析手段で解析された前記格納場所から印刷データを取得して印刷する、前記印刷装置が備える印刷制御手段、
として機能させるためのプログラム。
【請求項１２】
コンピュータを、
印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する印刷データ生成手段を備えるサーバ装置とネットワークを介して接続された印刷装置における、
前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる問い合わせ手段、
前記サーバ装置のストレージに印刷データが格納されている場合に、前記印刷データの格納場所を含む文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する解析手段、
前記解析手段で解析された印刷データの先頭のページ番号と、既に印刷された印刷データの末尾のページ番号とが連続している場合に、前記解析手段で解析された前記格納場所から印刷データを取得して印刷する印刷制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システム、印刷装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来のＲＳＳ利用の印刷システムにおいて、ジョブ管理装置が複数の出力装置に対してジョブ情報リストを配信し、出力装置が上記ジョブ情報リストから自装置のジョブを判断して当該ジョブの送信要求を送信し、ジョブ管理装置が上記出力装置からのジョブ送信要求に従って該当ジョブを送信するといった方式を施したものがある（例えば、特許文献１参照）。
【０００３】
また、ジョブ管理装置としてインターネット上のいわゆるクラウドサーバを採用し、その上で走るクラウドアプリケーションによりジョブに付随する印刷データを生成してクライアントに提供する印刷システムがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０９７５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、クラウドアプリケーションにおいて、異なるリソースをまとめて一つのドキュメントにする際、リソース毎（ページ毎）に処理時間が異なる場合がある。例えば、１０ページの文書を印刷する際、３−４ページ、１−２ページ、５−１０ページといったように印刷データが出来上がる場合が考えられる。また、複数の印刷データ処理エンジン（例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＡｚｕｒｅのＷｏｒｋｅｒ  Ｒｏｌｅ）で文書を処理する場合、個々の印刷データ処理エンジンのストールや処理速度の違いなどにより、非同期に印刷出力が作られる可能性がある。この場合には、プリンターは、一文書の全ページを効率良く順番通りに印刷できないという課題がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係る印刷システムは、サーバ装置と、前記サーバ装置とネットワークを介して接続された印刷装置とを備える印刷システムであって、ネットワークを介して外部から送信される指示に従って、印刷元データとしてのコンテンツを分担して非同期かつ並列に印刷データを生成する、前記サーバ装置が備える複数の印刷データ生成手段と、前記複数の印刷データ生成手段のそれぞれで生成された印刷データを、生成された順に前記サーバ装置のストレージに格納する、前記サーバ装置が備える格納手段と、前記サーバ装置のストレージに印刷データが格納されているか否かを定期的に問い合わせる、前記印刷装置が備える問い合わせ手段と、前記問い合わせ手段により問い合わせがあった場合であって、前記印刷データのいずれかが前記サーバ装置のストレージに格納されている場合に前記印刷データの格納場所を含む文書を生成する、前記サーバ装置が備える文書生成手段と、前記文書生成手段で生成された文書を前記サーバ装置から受け取って前記文書に記載された情報を解析する、前記印刷装置が備える解析手段と、前記解析手段で解析された印刷データの先頭のページ番号と、既に前記印刷装置が取得した印刷データの末尾のページ番号とが連続している場合に、前記解析手段で解析された前記格納場所から印刷データを取得して印刷する、前記印刷装置が備える印刷制御手段と、を備える。
【発明の効果】
【０００７】
本発明によれば、異なるリソースで非同期、かつ、並列に印刷データ生成処理を行う場合に、印刷データの生成タイミングのズレに関わらず、指定された順序に従った印刷を可能とすることができる。
【図面の簡単な説明】
【０００８】
【図１】印刷システムを構成している各装置とネットワークの構成
【図２】印刷装置１０４及びクライアントコンピュータ１０５の内部構成
【図３】印刷システムにおける各装置の機能ブロック図
【図４】サーバーコンピュータ群１０２のプラットフォームシステム
【図５】キューメッセージの一例
【図６】キュー管理テーブル６００及び処理確認テーブル６１０の一例
【図７】印刷システムを用いた印刷の手順のフローチャート
【図８】要求受信部４０１１の印刷データ生成手順のフローチャート
【図９】印刷サービスの印刷データ生成手順のフローチャート
【図１０】４０２１が動作した場合の４０１１が行う処理のフローチャート
【図１１】Ｓ４０４の結果出力されたＡｔｏｍフィード文書の例
【図１２】Ｓ４０４の結果出力されたＡｔｏｍフィード文書の例
【図１３】３０３におけるＡｔｏｍフィード文書、印刷データ取得処理を示したフローチャート
【発明を実施するための形態】
【０００９】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。始めに、本発明の各実施例で使用される用語の定義について説明する。
【００１０】
ポーリングとは、クライアントがホストに要求をした処理の経過や完了を確認するために、クライアントが一定間隔でホストに処理の経過状況を問い合わせる処理のことである。
【００１１】
印刷データ処理とは、例えば、ユーザーが印刷元データとしてのコンテンツを、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）やプリンタと言った印刷装置が印刷できるようなデータへ変換する処理のことを指す。
【００１２】
コンテンツとは、例えば、文書データや画像データを組み合わせた電子データを指す。
【００１３】
コンテンツＩＤとは、例えば、各コンテンツを一意に定めるためにコンテンツ毎に割り振られた固有情報を指す。この場合、コンテンツが異なればコンテンツＩＤは異なる。
【００１４】
印刷データとは、例えば、コンテンツを印刷データ処理によって変換処理したデータのことであり、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、ラスタイメージ等がある。
【００１５】
識別情報とは、各デバイスを一意に定めるためにデバイス毎に割り振られた固有情報である。デバイスが異なれば識別情報は異なる。なお、本発明の各実施例において、デバイスの一例として印刷装置を取り上げている。但し、識別情報はこれに限定されるものではない。
【００１６】
（実施例１）
＜全体構成（図１）＞
実施例１の印刷システムを構成している各装置について、図１を参照して詳細に説明する。図１には、印刷システムを構成している各装置がネットワーク１００を介して接続されている様子が示されている。印刷システムを構成している各装置とは、サーバーコンピュータ群１０２、文書サーバー１０３、印刷装置１０４、クライアントコンピュータ１０５である。
【００１７】
ネットワーク１００は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット１０１は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット１０１により、サーバーコンピュータ群１０２と文書サーバー１０３が属するネットワーク１００と、印刷装置１０４とクライアントコンピュータ１０５が属するネットワーク１００とは、ファイアウォールを越えて通信が可能である。ネットワーク１００、インターネット１０１は、例えば、ＴＣＰ／ＩＰプロトコルなどをサポートする通信回線網であり有線・無線は問わない。実施例１の図１において、サーバーコンピュータ群１０２は、１台のサーバーとして示されているが複数台のサーバーコンピュータで構成されている。
【００１８】
＜各装置の内部構成（図２）＞
次に、図１の印刷システムを構成している各装置の内部構成について詳細に説明する。
【００１９】
［印刷装置の内部構成（図２（ａ））］
始めに、印刷装置１０４の内部構成について図２（ａ）を用いて説明する。図２（ａ）は、印刷装置１０４の内部構成を例示するブロック図である。
【００２０】
印刷装置１０４は、画像処理ユニット１０４１、および印刷ユニット１０４２から構成される。画像処理ユニット１０４１は、ＣＰＵ１０４３、直接記憶部１０４４、間接記憶部１０４５、ユーザーインターフェース１０４７、外部インターフェース１０４８から構成されている。
【００２１】
ＣＰＵ１０４３は、所定のプログラムを実行し、印刷装置１０４の各種制御を指示するユニットである。ＣＰＵ１０４３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）により実現される。直接記憶部１０４４は、ＣＰＵ１０４３がプログラムを実行する際に使用するワークメモリであり、ＣＰＵ１０４３が実行するプログラムは直接記憶部１０４４にロードされる。直接記憶部１０４４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により実現される。間接記憶部１０４５は、アプリケーションプログラム、およびプラットフォームプログラムを含む各種プログラムが記憶されている。間接記憶部１０４５に記憶されている各種プログラムは、ＣＰＵ１０４３がプログラムを実行する際に直接記憶部１０４４へ移動する。間接記憶部１０４５は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、または、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）により実現される。なお、ＣＰＵ１０４３はマルチプロセッサでも良い。
【００２２】
ここで、プラットフォームについて詳細に説明する。プラットフォームとは、アプリケーションの実行環境となる基盤であり、プラットフォームプログラムにより実現される。プラットフォームの実現により、ユーザーが独自に開発した新しいアプリケーションを印刷装置１０４上で実行できる他、印刷装置１０４の操作画面をカスタマイズすることが可能になる。
【００２３】
プラットフォームの実現方法について説明する。ＣＰＵ１０４３は、間接記憶部１０４５に記憶されたプラットフォームプログラムを直接記憶部１０４４に移動する。移動が完了するとＣＰＵ１０４３は、プラットフォームプログラムを実行することができる状態になる。本発明の実施例１では、ＣＰＵ１０４３がプラットフォームプログラムを実行することを、プラットフォームが起動すると称する。なお、プラットフォームは、印刷装置１０４のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。一例を挙げれば、アプリケーションをＪＡＶＡ（登録商標）で記述する場合、プラットフォームプログラムとしてＪＲＥ（Ｊａｖａ（登録商標）  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ）を用いる。もちろん、これは一例にすぎず、その他のプラットフォームを用いることもできる。
【００２４】
プラットフォーム上でアプリケーションプログラムを実行する方法について詳細に説明する。アプリケーションの実行指示をきっかけとして起動したプラットフォームは、間接記憶部１０４５に記憶されたアプリケーションプログラムを直接記憶部１０４４に移動する。移動が完了すると、プラットフォームはアプリケーションプログラムを実行することができる状態になる。そして、プラットフォームはアプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本発明の実施例１ではプラットフォームアプリケーションと呼ぶ。さらに、プラットフォームは、本発明の実施例１で開示するフローチャートの各処理の一部を行うことが可能である。本発明の実施例１において、プラットフォーム上には、アプリケーションプログラムとして印刷要求を受け付ける印刷ソフトウェアが動作している。印刷ソフトウェアは、ネットワークを介して接続されているデバイスから、例えば、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）と言った通信プロトコルによって印刷データを受信できる。印刷ソフトウェアは、受信した印刷データをファームウェアに送信し、印刷データを受信したファームウェアは印刷データ処理を開始する。なお、印刷データが処理をせずに印刷できるようなものであれば、ファームウェアは印刷データ処理を省く。このように、プラットフォームでアプリケーションプログラムを実行することによって、印刷装置１０４の制御を実現することができる。なお、ファームウェアとは、ハードウェアと一体的に提供されるプログラムであり、ここでは、印刷装置に予め組み込まれ、アプリケーションに対して予め定めた機能を提供するプログラムを指す。
【００２５】
ユーザーインターフェース１０４７は、ユーザーからの処理依頼を受け付けるために必要なユニットである。例えば、キーボード、マウス等を通してユーザーが入力した指示に応じた信号を受け付ける。外部インターフェース１０４８は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けＨＤＤや外付けＵＳＢメモリ等の外付け記憶装置、またはネットワークを介して接続された別体のホストコンピュータや印刷装置等の別体装置が含まれる。印刷装置１０４は、ネットワーク１００、およびインターネット１０１を介して、クライアントコンピュータ１０５、サーバーコンピュータ群１０２等と通信可能である。
【００２６】
［クライアントコンピュータの内部構成（図２（ｂ））］
２番目に、クライアントコンピュータ１０５の内部構成について図２（ｂ）を用いて説明する。図２（ｂ）は、クライアントコンピュータ１０５の内部構成を例示するブロック図である。クライアントコンピュータ１０５は、ユーザーインターフェース１０５１、ＣＰＵ１０５２、直接記憶部１０５３、間接記憶部１０５４、外部インターフェース１０５５から構成されている。
【００２７】
ユーザーインターフェース１０５１は、ユーザーからの処理依頼を受け付けるために必要なユニットである。例えば、キーボード、マウス等を通してユーザーが入力した指示に応じた信号を受け付ける。
【００２８】
ＣＰＵ１０５２は、所定のプログラムを実行しクライアントコンピュータ１０５の各種制御を指示するユニットである。ＣＰＵ１０５２は、ＣＰＵにより実現される。直接記憶部１０５３は、ＣＰＵ１０５２がプログラムを実行する際に使用するワークメモリであり、ＣＰＵ１０５２が実行するプログラムは直接記憶部１０５３にロードされる。直接記憶部１０５３は、ＲＡＭで構成されている。間接記憶部１０５４は、アプリケーションプログラム、およびＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を含む各種プログラムが記憶されている。間接記憶部１０５４に記憶されている各種プログラムは、ＣＰＵ１０５２がプログラムを実行する際に直接記憶部１０５３へ移動する。間接記憶部１０５４は、ＲＯＭ、または、ＨＤＤで構成されている。外部インターフェース１０５５は、ネットワーク１００に接続されており、ネットワーク１００に接続されている他の装置と通信が可能となる。なお、規模や性能、実行するプログラム等に相違はあるが、サーバも図２（ｂ）のようなＨＷ構成を有する。
【００２９】
＜各装置の機能的構成（図３）＞
次に、実施例１の印刷システムにおける各装置が持つ機能について図３を参照しながら詳細に説明する。図３は、印刷システムにおける各装置の機能ブロック図である。
【００３０】
始めに、サーバーコンピュータ群１０２の機能について説明する。サーバーコンピュータ群１０２には、要求受信部４０１１、バックエンド処理部４０２１、キューサービス４０５、ストレージサービス４０６の機能がある。本発明の実施例１では、要求受信部４０１１を持つサーバーコンピュータが少なくとも１台以上は存在する。また、バックエンド処理部４０２１を持つサーバーコンピュータが少なくとも１台以上は存在する。また、キューサービス４０５とストレージサービス４０６の両方の機能を持つサーバーコンピュータが少なくとも１台存在する。これら機能毎のユニットは、サーバコンピュータが実行するプログラムにより実現される。
【００３１】
要求受信部４０１１は、クライアントコンピュータ１０５、または印刷装置１０４から送られてきた処理依頼を受け付ける機能を持つ。バックエンド処理部４０２１は、処理プログラムを用いて処理依頼に対する処理を行う機能を持つ。具体的には、バックエンド処理部４０２１は、バックエンド処理部４０２１を実行しているサーバーコンピュータのメモリに処理プログラムをロードし処理を行う。要求受信部４０１１、およびバックエンド処理部４０２１は、図２（ｂ）の間接記憶部１０５４に保存されている要求受信プログラム、またはバックエンド処理プログラムが、直接記憶部１０５３にロードされて、ＣＰＵ１０５２により実行されることで実現される。
【００３２】
キューサービス４０５は、次のような機能を持つ。１つ目は、要求受信部４０１１とバックエンド処理部４０２１とが非同期でデータ通信するための機能を持つ。２つ目は、キューに追加されているキューメッセージを不可視、または可視にする機能を持つ。
【００３３】
１つ目の機能について説明する。要求受信部４０１１とバックエンド処理部４０２１は次のような方法で通信する。始めに、ユーザーからの処理依頼を受けた要求受信部４０１１は、ユーザーからの処理依頼に応じたキューメッセージと呼ばれるチケットを作成する。この際、キューメッセージに対応した受付ＩＤも作成する。なお、キューメッセージと受付ＩＤについては後述する。キューメッセージは要求受信部４０１１によってキューに格納される。バックエンド処理部４０２１はキューからキューメッセージを取得する。バックエンド処理部４０２１は、キューメッセージを取得し、キューメッセージを参照してユーザーからの処理依頼を処理する。これにより、ユーザーからの処理依頼を解決することになる。このように、キューサービス４０５を利用することで要求受信部４０１１とバックエンド処理部４０２１は非同期で通信を行うことが可能になる。１つ目の機能のさらに詳細な説明と２つ目の機能の説明については後述する。なお、キューサービス４０５は、図２（ｂ）の間接記憶部１０５４に保存されているキューサービスプログラムが、直接記憶部１０５３にロードされて、ＣＰＵ１０５２により実行されることで実現される。また、キューは間接記憶部１０５４によって実現される。
【００３４】
ストレージサービス４０６は、バックエンド処理部４０２１により処理された実行結果のデータを始めとする各種データを保存しておく機能を持つ。ストレージサービス４０６は図２（ｂ）の間接記憶部１０５４によって実現される。以上がサーバーコンピュータ群１０２の機能の説明になるが、さらに詳細な説明については後述する。
【００３５】
次に、文書サーバー１０３の機能について説明する。文書サーバー１０３は、文書リポジトリ３０１の機能を持つ。文書リポジトリ３０１は、図２（ｂ）の間接記憶部１０５４によって実現される。例えば、文書リポジトリ３０１には、ユーザーがクライアントコンピュータ１０５、または印刷装置１０４から印刷指示したコンテンツが保存されている。文書リポジトリ３０１に保存されているコンテンツは、予め保存されているコンテンツの他に次のようなコンテンツも保存されている。
【００３６】
そのコンテンツとは、ユーザーが後述するブラウザ３０４を介してサーバーコンピュータ群１０２上のアプリケーションで作成したコンテンツである。これにより、サーバーコンピュータ群１０２上のアプリケーションを用いて作成したコンテンツであっても、クライアントコンピュータ１０５にアプリケーションをインストールすることなく容易に印刷できる。なお、上述のサーバーコンピュータ群１０２上のアプリケーションとは、文書作成アプリケーション、画像作成アプリケーション、帳票管理アプリケーション等を始めとする各種アプリケーションのことである。これらのアプリケーションは図２（ｂ）の間接記憶部１０５４に保持されており、実行が指示されると直接記憶部１０５３にロードされ、ＣＰＵ１０５２により実行される。
【００３７】
次に、印刷装置１０４について詳細に説明する。印刷装置１０４には、デバイスブラウザ３０２、プラットフォームアプリケーション３０３の機能がある。デバイスブラウザ３０２は、ネットワーク１００を介して接続されているデバイス内に保存されているデータや情報をユーザーが閲覧することができる機能を持つ。デバイスブラウザ３０２は、図２（ａ）の直接記憶部１０４４に保存されているデバイスブラウザプログラムが、間接記憶部１０４５にロードされ、ＣＰＵ１０４３により実行されることで実現される。また、ユーザーは、デバイスブラウザ３０２を用いてコンテンツの印刷指示を出すことができる。デバイスブラウザ３０２は、例えば、ＨＴＭＬデータで記述されたデータを解釈してユーザからの指示を受け付けるための操作画面を表示するＷｅｂブラウザである。
【００３８】
プラットフォームアプリケーション３０３は、各種サービスを提供する機能を持つ。プラットフォームアプリケーション３０３は、プラットフォーム上で動作するアプリケーションプログラムによって実現される。本発明の実施例１において、プラットフォームアプリケーション３０３は印刷ソフトウェアのサービスを提供する。またプラットフォームアプリケーション３０３は、Ａｔｏｍ（あるいはＲＳＳ）フィードリーダーの機能を持ち、特定ＵＲＬに対してポーリングを行い、Ａｔｏｍフィード文書（あるいはＲＳＳ文書）を参照する機能を持つ。上述の様に、このサービスは受信した印刷データをファームウェアに送信することができる。また、このサービスは要求受信部４０１１に対して印刷データの生成が終了したかどうかの確認をＡｔｏｍ（あるいはＲＳＳプロトコル）を用いて行う。その際、このサービスは要求受信部４０１１（文書生成手段）が作成したＡｔｏｍフィード文書（あるいはＲＳＳ文書でもよい）を基に生成確認を行う。
【００３９】
最後に、クライアントコンピュータ１０５について詳細に説明する。クライアントコンピュータ１０５は、ブラウザ３０４の機能を持つ。ブラウザ３０４は、ネットワーク１００を介して接続されているデバイス内に保存されているデータや情報をユーザーが閲覧することができる機能を持つ。図２（ｂ）の間接記憶部１０５４に保存されているブラウザプログラムが、直接記憶部１０５３にロードされて、ＣＰＵ１０５２により実行されることで実現される。ブラウザ３０４は、例えば、Ｗｅｂブラウザである。以上が、実施例１の印刷システムにおける各装置が持つ機能の説明になる。
【００４０】
＜プラットフォームシステム（図４）＞
次に、サーバーコンピュータ群１０２のプラットフォームシステムについて図４を参照しながら詳細に説明する。図４は、サーバーコンピュータ群１０２内の各種機能を示した図である。図４において、サーバーコンピュータ群１０２内にある物理ハードウェア・リソースは、サーバーコンピュータ群１０２のプラットフォームシステムに使用される。サーバーコンピュータ群１０２のプラットフォームシステムの利用者は、このサーバーコンピュータ群１０２内にある物理ハードウェア・リソースをコンピューティング・リソースとして使用できる。
【００４１】
サーバーコンピュータ群１０２のプラットフォームシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、次のような機能を持つ。ヴァーチャルマシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅｓ）４０１、４０２、ファブリックコントローラ（Ｆａｂｒｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）４０３、ロードバランサー（Ｌｏａｄ  Ｂａｌａｎｃｅｒ）４０４、キューサービス（Ｑｕｅｕｅ）４０５、ストレージサービス（Ｓｔｏｒａｇｅ）４０６、及び管理者用ヴァーチャルマシン４０７である。
【００４２】
サーバーコンピュータ群１０２上で動作するプラットフォームシステムの内部には、ヴァーチャルマシン４０１、４０２がそれぞれ複数存在する。ヴァーチャルマシンとは、仮想化技術によって物理的なサーバーコンピュータ群１０２を論理的なコンピュータに分割し、分割された中で独立したオペレーティングシステムをもって動作する論理的なコンピュータのことである。この論理的なコンピュータの単位は、インスタンスとして数えられる。本発明の実施例１では、インスタンス数１つ、すなわち、１つのバーチャルコンピュータは、サーバーコンピュータ群１０２内の１台のサーバーコンピュータ上で動作する。
【００４３】
ヴァーチャルマシン４０１は、要求受信部（Ｗｅｂ  Ｒｏｌｅ  Ｉｎｓｔａｎｃｅ）４０１１、要求受信部エージェント（Ａｇｅｎｔ）４０１２で構成される。要求受信部４０１１は、後述するロードバランサ−４０４を介してユーザーからの処理依頼を受信する。また、要求受信部４０１１は、キューサービス４０５を介してバックエンド処理部４０２１への処理依頼を送信する。
【００４４】
要求受信部４０１１の高い可用性を確保するために、外部ネットワークからの要求（ここではＨＴＴＰによる通信）は、ヴァーチャルマシン４０１の外部にあるロードバランサー４０４を通じて行われる。ロードバランサー４０４は、外部ネットワークからの要求を一元的に管理し、同等な要求受信部の機能を有する複数のヴァーチャルマシンに対し、選択的に要求を転送するものである。要求受信部エージェント４０１２は、ヴァーチャルマシン４０１の使用状況、要求受信部４０１１の稼動状態、ヴァーチャルマシン４０１のリソースの使用状況、および要求受信部４０１１のエラーを含む各種情報を収集し、ファブリックコントローラ４０３に定期的に送信する。
【００４５】
要求受信部４０１１、バックエンド処理部４０２１の各インスタンスは、ファブリックコントローラ４０３によって管理されている。そのため、各インスタンスの拡張性と可用性が保証される。例えば、要求受信部４０１１、またはバックエンド処理部４０２１において、ある特定のインスタンスがサーバーの故障によって停止したとする。この場合、ファブリックコントローラ４０３は、要求受信部エージェント４０１２、またはバックエンド処理部エージェント４０２２から定期通知を受け取れなくなる。定期通知を受け取らなくなったファブリックコントローラ４０３は、当該インスタンスに割り当てた処理が、新しいインスタンスに委譲されるようにヴァーチャルマシンに指示を出す。結果、処理を実行しているインスタンス数が一定に保たれるため、処理の遅延を抑えることができる。
【００４６】
ヴァーチャルマシン４０２は、バックエンド処理部（Ｗｏｒｋｅｒ  Ｒｏｌｅ  Ｉｎｓｔａｎｃｅ）４０２１、バックエンド処理部エージェント（Ａｇｅｎｔ）４０２２で構成される。バックエンド処理部４０２１は、キューサービス４０５を介して要求受信部４０１１からの処理依頼を受信する。バックエンド処理部４０２１は、キューサービス４０５を介して要求受信部４０１１から受信した処理依頼を実行する。また、バックエンド処理部４０２１は、スケールアウトする。スケールアウトとは、ヴァーチャルマシン４０２が増加し、バックエンド処理部４０２１のインスタンスが増加すること指す。バックエンド処理部４０２１のインスタンスが増加すると、バックエンド処理部１つ当たりのデータ処理量が減少する。これにより、ユーザーからの処理依頼に対する結果をより早く返すことができる。
【００４７】
キューサービス４０５は、要求受信部４０１１とバックエンド処理部４０２１とが非同期でデータ通信するためのサービスを提供する。要求受信部４０１１、およびバックエンド処理部４０２１は、キューサービス４０５に対し各種指示を出すことで、非同期でデータ通信する。これについて、具体的に説明する。要求受信部４０１１がキューサービス４０５に対して行う指示とは、キューメッセージのキューへの追加指示である。バックエンド処理部４０２１がキューサービス４０５に対して行う指示とは、キューメッセージのキューからの取得指示、キューメッセージの削除指示である。
【００４８】
要求受信部４０１１とバックエンド処理部４０２１が非同期でデータ通信する一連の動作について説明する。要求受信部４０１１は、ユーザーからの処理依頼に応じたキューメッセージを作成し、キューメッセージをキューに追加するようにキューサービス４０５に追加指示を送信する。追加指示を受信したキューサービス４０５は、キューにキューメッセージを追加する。
【００４９】
このとき、前記ユーザーからの処理依頼が一文書に対してであっても、前記一文書に複数のコンテンツが含まれる場合、前記要求受信部４０１１は、前記コンテンツの数に対応した複数キューメッセージを追加することになる。例えば１０ページの文書において、３−５ページ目が外部リンクとなっているような、外部リンクを含むハイパーテキスト文書などの場合である。
【００５０】
バックエンド処理部４０２１は、キューメッセージを取得するために、キューサービス４０５に取得指示を出す。取得指示を受けたキューサービス４０５は、キューメッセージと、キューメッセージ毎に固有に割り振られたキューＩＤと、受付ＩＤとを取得指示に対するレスポンスとしてバックエンド処理部４０２１に返す。キューＩＤとは、キューメッセージを一意に定めるためにキューメッセージごとに割り振られた固有の情報である。受付ＩＤは、処理が終了したバックエンド処理部４０２１がキューメッセージを削除指示する際に使用する。キューメッセージと、キューＩＤと、受付ＩＤは、互いに関連付けされて保存されることになる。なお、本実施形態では、キューメッセージの取得によって当該キューメッセージは、キューから削除されない。削除のためには改めて削除指示を行う必要がある。
【００５１】
バックエンド処理部４０２１は、処理依頼に対する処理を完了すると、受付ＩＤに対応するキューメッセージの削除指示をキューサービス４０５に対して行う。削除指示を受けたキューサービス４０５は、バックエンド処理部４０２１が指示した受付ＩＤに対応するキューメッセージをキューから削除する。
【００５２】
また、キューサービス４０５は、キューに追加されているキューメッセージを不可視、または可視にする機能を持つ。不可視とは、バックエンド処理部４０２１がキューに追加されているキューメッセージの取得要求をした場合に、キューサービス４０５はバックエンド処理部４０２１に対してキューメッセージを渡さないことを指す。バックエンド処理部４０２１がキューからキューメッセージを取得すると、取得されたキューメッセージはキューサービス４０５によって不可視になる。可視とは、バックエンド処理部４０２１がキューに追加されているキューメッセージの取得要求した場合に、キューサービス４０５がバックエンド処理部４０２１に対してキューメッセージを渡すことを指す。バックエンド処理部４０２１に取得され不可視になっているキューメッセージは、処理を行っているバックエンド処理部４０２１から処理結果が一定時間返ってこない場合にキューサービス４０５によって可視になる。これにより、最初に取得指示を出したバックエンド処理部４０２１以外のバックエンド処理部４０２１が同じキューメッセージを重複して処理するという冗長な処理を防ぐことができる。
【００５３】
ストレージサービス４０６は、データ保存に利用されるストレージを提供する。バイナリデータの集合を保存する機能を提供する。また、後述する処理確認テーブル６１０、およびキュー管理テーブル６００を保持する機能も提供する。
【００５４】
管理者用ヴァーチャルマシン４０７は、要求受信部４０１１、要求受信部エージェント４０１２で構成される。ヴァーチャルマシン４０１との違いは、管理ユーザーのみが利用できる要求受信部４０１１のインスタンスを持つヴァーチャルマシンということである。このヴァーチャルマシンの要求受信部４０１１により管理ユーザーは、キュー管理テーブル６００を操作することができる。
【００５５】
＜キューメッセージの一例（図５）＞
次に、本発明の実施例１におけるキューメッセージについて説明する。図５は、キューメッセージの一例を示した図である。キューメッセージは、要求受信部４０１１がバックエンド処理部４０２１に依頼する処理の内容を記述したものである。
【００５６】
５０１は、キューメッセージを追加するキューの場所を示している。５０２は、タイムアウト時間を示している。５０２のＶｉｓｉｂｉｌｉｔｙ  Ｔｉｍｅｏｕｔ＝３０と言うのは、次のような意味がある。バックエンド処理部４０２１がキューメッセージを取得してから３０秒を経過しても、キューメッセージを取得したバックエンド処理部４０２１からレスポンスがない場合に、キューサービス４０５がキューメッセージを不可視から可視にする。５０３のｍｅｓｓａｇｅｔｔｌ＝３６００と言うのは、次のような意味がある。３６００秒経過してもバックエンド処理部４０２１がキューメッセージの削除指示を出していない場合に、キューメッセージがバックエンド処理部４０２１に処理されていなくてもキューサービス４０５がそのキューメッセージを削除する。５０４は、キューメッセージが作成された日付を意味する。
【００５７】
次に、キューメッセージのメッセージデータコンテンツ部分について説明する。メッセージデータコンテンツ部分は、ユーザーからの処理依頼に応じて決定される。５０５は、受付ＩＤを示している。図５の場合、受付ＩＤは０００１である。受付ＩＤは、ユーザーからの処理依頼に応じて作成される一意な情報である。５０６は、コンテンツＩＤを示している。図５の場合、コンテンツＩＤはｄ＿００００１である。５０７は、文書リポジトリ３０１に保存されているコンテンツの格納場所を示している。５０８は、本実施例により生成された印刷データの出力先を示す、後述する図１１、１２で具体的に示されるＡｔｏｍフィード文書を示すＵＲＬである。
【００５８】
＜各種テーブル（図６）＞
次に、各種テーブルについて図６を参照しながら説明する。これらのテーブルは、ストレージサービス４０６に格納され、バックエンド処理部４０２１からも、要求受信部４０１１からもアクセス可能である。
【００５９】
［キュー管理テーブル（図６（ａ））］
キュー管理テーブル６００について図６（ａ）を参照しながら説明する。６０１は、キューＩＤ（Ｑｕｅｕｅ  ＩＤ）を示し、キューの固有情報を意味する。６０２は、デバイスＩＤ（Ｄｅｖｉｃｅ  ＩＤ）を示し、デバイスを識別するための識別情報を意味する。本発明の実施例１において、キューＩＤとデバイスＩＤとは一対一対応である。即ち、印刷装置１台に対してキューが１つ割り当てられている。６０３は、デバイス機種（Ｄｅｖｉｃｅ  ｍｏｄｅｌ）を示す。同じ種類に分類される印刷装置同士は、デバイス機種６０３の値が同じになる。６０４は、インスタンス上限値（Ｎｕｍｂｅｒ  ｏｆ  Ｉｎｓｔａｎｃｅ）を示し、キューＩＤ毎に設定されているインスタンスの利用上限値を意味する。これについては詳細に説明する。
【００６０】
上述したように、複数のヴァーチャルマシン上で複数のバックエンド処理部４０２１が稼動しており、このヴァーチャルマシンは、「スケールアウト」と呼ばれる技術を使うことでインスタンス数を増加させることができる。しかし、無闇にスケールアウトを行えばサーバーコンピュータ群１０２に負担がかかる。そこで、デバイスに合わせてバックエンド処理部４０２１のインスタンス数を決定する。これにより、デバイスの能力に合った処理が行われる。
【００６１】
６０５は、キューメッセージ数の標準値（Ｑｕｅｕｅ  Ｌｅｎｇｔｈ）を示し、キューに格納するキューメッセージの数の標準値を意味する。キューに格納されているキューメッセージの数が標準値６０５を超えた場合に、要求受信部４０１１はスケールアウトを指示するか否かの判断を行う。なぜなら、キューに格納されているキューメッセージの数が標準値６０５を超えた場合、バックエンド処理部４０２１の処理が遅れていることを意味するからである。なお、本発明の実施例１では、キューに格納されているキューメッセージの数を長さで表現する。
【００６２】
ここで、キュー管理テーブル６００の設定について詳細に説明する。印刷システムの管理者は、管理者用の要求受信部４０１１にクライアントコンピュータ１０５からアクセスする。管理者は、管理者情報を入力し認証を行う。要求受信部４０１１は、管理者情報が正規であることに応じて管理者用の操作画面をクライアントコンピュータ１０５に送信する。管理者は、上述の操作画面を用いてキュー管理テーブル６００の設定を行う。管理者から設定された情報を基に、管理者用ヴァーチャルマシン４０７の要求受信部４０１１はキュー管理テーブル６００を更新する。
【００６３】
ここで、管理者が行うキュー管理テーブル６００の設定の一例を示す。例えば、管理者は印刷速度の低い印刷装置にＮｕｍｂｅｒ  ｏｆ  Ｉｎｓｔａｎｃｅの値を低く設定する。なぜなら、印刷速度の低い印刷装置に対する処理依頼を早く処理したとしても、印刷速度が遅いため、印刷データがストレージに溜まっていってしまうからである。これにより、サーバーコンピュータ群１０２のストレージを圧迫する可能性がある。
【００６４】
また、キューテーブルの設定のその他の例として、管理者は印刷速度の速い印刷装置にＱｕｅｕｅ  Ｌｅｎｇｔｈの値を低く設定する。なぜなら、印刷速度の速い印刷装置は印刷が早いため多くの印刷データを処理することができるからである。ゆえに、印刷速度の速い印刷装置に対応するキューに追加されるキューメッセージは、より多くのインスタンス数を持つバックエンド処理部４０２１に処理される方が良い。Ｑｕｅｕｅ  Ｌｅｎｇｔｈの値を低くすることで、要求受信部４０１１によるスケールアウトを行うかどうかの判断のタイミングをより早めることができる。結果、印刷システムの印刷処理の高速化を図ることができる。
【００６５】
［処理確認テーブル（図６（ｂ））］
次に、処理確認テーブル６１０について図６（ｂ）を参照しながら説明する。処理確認テーブル６１０は、処理依頼が完了したかを確認するために用いるものである。６０６は、受付ＩＤ（ｒｅｑｕｅｓｔ  ＩＤ）を示す。６０７は、コンテンツＩＤ（ｄｏｃｕｍｅｎｔ  ＩＤ）を示す。６０８は、印刷データ格納場所（ｒｅｓｕｌｔ＿ｓｔｏｒｅｄＵＲＩ）を示し、バックエンド処理部４０２１が処理した結果が格納されている場所を意味する。
【００６６】
ここで、処理依頼が完了したかを確認する方法の一例を示す。印刷装置１０４のプラットフォームアプリケーション３０３が確認を行う。このプラットフォームアプリケーション３０３は、要求受信部４０１１に処理依頼をした際に、処理依頼に対応する受付ＩＤ６０６を要求受信部４０１１から受信する。プラットフォームアプリケーション３０３は、受付ＩＤに対応した処理が終了したかどうかを要求受信部４０１１に対してポーリングで問い合わせる。問い合わせを受けた要求受信部４０１１は、ストレージサービス４０６が提供するストレージに保存されている処理確認テーブル６１０の受付ＩＤ６０６を確認する。具体的には、問い合わせを受けた要求受信部４０１１は、問い合わせを受けた受付ＩＤ６０６に対応する印刷データ格納場所６０８の欄に格納場所が記載されているかどうかを確認する。記載されている場合、要求受信部４０１１は処理結果の確認を行っているプラットフォームアプリケーション３０３に格納場所を送信する。記載されていない場合、要求受信部４０１１はプラットフォームアプリケーション３０３に終了していない旨を送信する。これにより、プラットフォームアプリケーション３０３は処理結果の確認を行うことができる。
【００６７】
なお、処理確認テーブル６１０のエントリーは次の２つのタイミングで加えられる。キューメッセージをキューサービス４０５に追加指示する際、要求受信部４０１１はストレージサービス４０６が提供するストレージに保存されている処理確認テーブル６１０に受付ＩＤ６０６とコンテンツＩＤ６０７とを新たに加える。一例としては、図６（ｂ）で示すように、受付ＩＤ６０６が０００１であり、コンテンツＩＤ６０７がｄ＿００００１である。処理依頼を処理し終えたバックエンド処理部４０２１は、処理した受付ＩＤ６０６に対応する印刷データ格納場所６０８の欄に格納場所を加える。一例としては、印刷データ格納場所６０８の欄のｈｔｔｐ：／／ｐｒｉｎｔ−ｓｖ．ｂｌｏｂ．ｎｅｔ／ｄｅｖ＿０００１／ａｔｏｍ．ｘｍｌである。
【００６８】
＜印刷システムの印刷手順（図７）＞
次に、本発明の実施例における印刷システムを用いた印刷の手順について、図７を参照しながら詳細に説明する。図７は、本発明の実施例１における印刷システムが行う処理の流れを示している。また、本発明の実施例１のバックエンド処理部４０２１は印刷データ処理を行う。なお、印刷データ処理を行うバックエンド処理部４０２１の一例を印刷サービスと呼称する。
【００６９】
始めに、ユーザーは、デバイスブラウザを用いてコンテンツの印刷要求を指示する。デバイスブラウザは、ユーザから印刷指示を受けたコンテンツのコンテンツＩＤと、デバイスＩＤとを印刷要求として要求受信部４０１１に送信する（Ｓ１０１）。Ｓ１０１において、印刷要求を受信した要求受信部４０１１は、印刷要求に対するキューメッセージと受付ＩＤとを作成し、作成した受付ＩＤをデバイスブラウザ３０２へ送信する。また、要求受信部４０１１は、Ｓ１０１で受信したコンテンツＩＤをコンテンツ取得要求として文書リポジトリ３０１に送信する（Ｓ１０２）。
【００７０】
Ｓ１０２において、受付ＩＤを受信したデバイスブラウザ３０２は、受付ＩＤをプラットフォームアプリケーション３０３に送信する。また、文書リポジトリ３０１にコンテンツの取得を要求した要求受信部４０１１は、文書リポジトリ３０１からコンテンツを取得する（Ｓ１０３）。
【００７１】
Ｓ１０３以降、プラットフォームアプリケーション３０３は、受信した受付ＩＤに対応する印刷データ処理が完了するのを確認するまで要求受信部４０１１に対してポーリングを行う。Ｓ１０３において、コンテンツを取得した要求受信部４０１１は、コンテンツをストレージサービス４０６が提供するストレージに格納する（Ｓ１０４）。
【００７２】
Ｓ１０４において、コンテンツをストレージサービス４０６が提供するストレージに格納した要求受信部４０１１は、コンテンツの格納場所を記載したキューメッセージをキューに追加するようキューサービス４０５に追加指示を出す（Ｓ１０５）。この後、処理中のコンテンツに係る受付ＩＤとコンテンツＩＤとを処理確認テーブル６１０に追加する。印刷サービスは自身が処理を担当しているキューにキューメッセージが存在するかどうかをポーリングにより確認している。要求受信部４０１１によりキューにキューメッセージが追加された場合、印刷サービスはキューサービス４０５にキューメッセージの取得指示を出す（Ｓ１０６）。Ｓ１０６において、取得指示を出してキューメッセージを取得した印刷サービスは、キューメッセージに記述されているコンテンツの格納場所を基にストレージサービス４０６が提供するストレージからコンテンツを取得する（Ｓ１０７）。
【００７３】
Ｓ１０７において、コンテンツを取得した印刷サービスは、取得したコンテンツを印刷データへ変換する印刷データ処理を実行する。この際、印刷サービスはドライバプログラムをメモリにロードして印刷データ処理を実行する。印刷データ処理を実行した印刷サービスは、実行結果である印刷データをストレージサービス４０６が提供するストレージに格納する（Ｓ１０８）。Ｓ１０８において、印刷データを格納した印刷サービスは、印刷データの格納場所が受付ＩＤと関連付くように処理確認テーブル６１０に記載する。なお、印刷サービスは取得したキューメッセージから受付ＩＤを確認、すなわち、読み取ることができる。印刷サービスは、処理を行ったキューメッセージの削除指示をキューサービス４０５へ出す（Ｓ１０９）。
【００７４】
プラットフォームアプリケーション３０３は、印刷データの格納場所を、受付ＩＤを基に、要求受信部４０１１を介して処理確認テーブル６１０に確認する（Ｓ１１０）。すなわち、受付ＩＤに対応する印刷データの格納場所をストレージサービス４０６に要求し、応答として格納場所を示す情報を得る。Ｓ１１０において、印刷データの格納場所を確認したプラットフォームアプリケーション３０３は、ストレージサービス４０６が提供するストレージから印刷データを取得する（Ｓ１１１）。Ｓ１１１において、印刷データを取得したプラットフォームアプリケーション３０３は、印刷装置１０４が印刷データの印刷が行えるよう処理を行う（Ｓ１１２）。以上が、本発明の実施例１における印刷システムを用いた印刷の手順になる。
【００７５】
＜サーバコンピュータ群の処理手順（図８、図９）＞
次に、本発明の実施例１におけるサーバーコンピュータ群１０２の動作について図８、図９を参照しながら詳細に説明する。なお、ジョブとはユーザーからの処理依頼のことを指しており、本発明の実施例１における処理依頼は印刷要求である。また、本説明における印刷サービスと図７の印刷サービスとは同じである。
【００７６】
［要求受信部の処理（図８）］
始めに、図８を参照しながら要求受信部４０１１の詳細な処理について説明する。図８は、図７に示した要求受信部４０１１の処理手順の詳細を示す。要求受信部は、ユーザーから印刷要求されたコンテンツのコンテンツＩＤと、デバイスＩＤとを受信する（Ｓ２０１）。
【００７７】
Ｓ２０１において、コンテンツＩＤとデバイスＩＤとを受信した要求受信部は、文書リポジトリからコンテンツＩＤに対応するコンテンツを取得する（Ｓ２０２）。
【００７８】
Ｓ２０２において、コンテンツを取得した要求受信部は、ストレージにコンテンツを保存する（Ｓ２０３）。
【００７９】
Ｓ２０３において、コンテンツを保存した要求受信部は、Ｓ２０１で受信したデバイスＩＤに合致するデバイスＩＤがキュー管理テーブル６００に存在するかどうか検索する（Ｓ２０４）。検索した結果、デバイスＩＤが存在していない場合、Ｓ２０５へ処理を進める。検索した結果、デバイスＩＤが存在している場合、Ｓ２０６へ処理を進める。
【００８０】
Ｓ２０５において、要求受信部はエラー処理を行う。エラー処理としては、要求受信部がデバイスブラウザ３０２に対してエラーである旨を送信する処理である。エラーである旨を受信したデバイスブラウザ３０２は処理を中止する。一方、エラー処理を行った場合、要求受信部は処理を停止させる。
【００８１】
Ｓ２０６において、受信したデバイスＩＤに対応するキューの長さ及びその既定値を取得する。即ち、キューに格納されているジョブの数を取得する。
【００８２】
そして、要求受信部は、取得したキューの長さが、取得したキューの長さの既定値以上かどうかを判断する（Ｓ２０７）。判断の結果、取得したキューの長さの方が大きい場合、要求受信部はＳ２０８へ処理を進める。取得したキューの長さの方が小さい場合、要求受信部はＳ２１０へ処理を進める。
【００８３】
Ｓ２０８へ処理を進めた要求受信部は、受信したデバイスＩＤに対応するキューに対し、幾つ印刷サービスが設定されているか（割り当てられているか）を確認する。確認した数とキュー管理テーブル６００において設定されている印刷サービスを使用できる既定値６０４とを比較する。比較の結果、確認した数の方が既定値よりも少なかった場合、要求受信部は、Ｓ２０９へ処理を進める。確認した数の方が既定値よりも多かった場合、要求受信部は、Ｓ２１０へ処理を進める。
【００８４】
なお、例えば、キューに割り当てた印刷サービスのインスタンスの数は、要求受信部４０１１が印刷サービスのスケールアウトを主導していることから、要求受信部４０１１で数えておくことができる。
【００８５】
Ｓ２０９において、要求受信部は、印刷サービスに対しインスタンスの数を１つ増加するよう指示をする。この際、要求受信部が、インスタンスの数を記憶しているならば、その数を更新しておく必要もある。
【００８６】
Ｓ２１０において、要求受信部は、ジョブに応じたキューメッセージを作成する。このキューメッセージには、コンテンツの格納場所を示す情報を含む。
【００８７】
Ｓ２１０において、キューメッセージを作成した要求受信部は、キューサービス４０５にキューメッセージを追加するよう指示する（Ｓ２１１）。Ｓ２１１において、キューメッセージ追加を指示した要求受信部は、追加したキューメッセージに対応するコンテンツのコンテンツＩＤを、ストレージサービス３０６が提供するストレージに保存されている処理確認テーブル６１０に追加する（Ｓ２１２）。以上が要求受信部の処理である。
【００８８】
［印刷サービスの処理（図９）］
次に、図９を参照しながら、バックエンド処理部（印刷サービス）の処理について説明する。図９は、図７に示したバックエンド処理部４０２１による処理手順の詳細である。
【００８９】
印刷サービスは、キューサービス４０５にキューメッセージの取得指示を出す（Ｓ３０１）。Ｓ３０１において、キューメッセージの取得指示を出した印刷サービスは、未処理のキューメッセージがあるかどうかを確認する（Ｓ３０２）。Ｓ３０２において、キューメッセージがないと確認された場合、キューにキューメッセージがあるかどうかを再度確認する（ポーリング）。キューにキューメッセージがあると確認された場合、キューサービス４０５は、取得指示されたキューメッセージを不可視にする。つまり、Ｓ３０２で確認したキューメッセージを、キューメッセージを取得した印刷サービス以外の印刷サービスが参照できないようにする。この処理は、印刷サービスではなくキューサービス４０５が行う。
【００９０】
Ｓ３０２において、キューメッセージを確認した印刷サービスは、キューメッセージの解読を行う（Ｓ３０３）。キューサービス４０５は、キューメッセージの解読を行うことでコンテンツの保存場所を特定する。
【００９１】
Ｓ３０３において、コンテンツの保存場所を特定した印刷サービスは、ストレージサービス４０６が提供するストレージ内の保存場所からコンテンツを取得する（Ｓ３０４）。Ｓ３０４において、コンテンツを取得した印刷サービスは、取得したコンテンツに対し印刷データ処理を行う（Ｓ３０５）。
【００９２】
この際、キューサービス４０５は、キューメッセージに記載されていたＶｉｓｉｂｉｌｉｔｙ  Ｔｉｍｅｏｕｔに設定されているタイムアウト時間内に印刷データ処理が完了できたかどうかを確認している（Ｓ３０６）。完了できた場合にはＳ３０７へ処理を進め、完了できなかった場合にはＳ３１１へ処理を進める。
【００９３】
Ｓ３０７へ処理を進めた印刷サービスは、ストレージサービス４０６が提供するストレージに印刷データを保存する（Ｓ３０７）。Ｓ３０８において、ストレージに印刷データを保存した印刷サービスは、印刷データを格納したストレージ内の保存場所を、ストレージ内の処理確認テーブル６１０に追加する（Ｓ３０８）。
【００９４】
Ｓ３０８において、印刷データの保存場所を処理確認テーブル６１０に追加した印刷サービスは、正常に印刷処理が完了したかどうかを確認する（Ｓ３０９）。Ｓ３０９において、正常に印刷処理が完了したと判断された場合、印刷サービスはキューサービス４０５に対しキューメッセージの削除指示を出す（Ｓ３１０）。正常に印刷処理が完了したと判断されなかった場合、印刷サービスはキューサービスに対しキューメッセージを可視状態に戻すべき旨の要求を行う（Ｓ３１１）。可視にすることで、印刷サービスは再度キューからキューメッセージを取得し、取得したキューメッセージに対応するコンテンツの印刷データ処理が行えるようになる。
【００９５】
Ｓ３１１によりキューメッセージを可視にした後、印刷サービスは、印刷データ作成処理の終了したコンテンツに対応して、後述する図１１、あるいは図１２のようなＡｔｏｍフィード文書を作成、あるいは追加する。
【００９６】
ここで、上記図８、９の処理は、並行して動作することが可能である。
【００９７】
前記図４で示したように、要求受信部４０１１やバックエンド処理部４０２１は、各々複数起動することができる。特に印刷指示内容に複数のコンテンツからなる一文書が指定された際、一つの要求受信部４０１１からの一文書の印刷出力生成に、複数のバックエンド処理部４０２１が動作する可能性がある。上記複数のバックエンド処理部４０２１が動作した場合、図９のフローチャートで示した処理が同時並行に複数走ることになる。例えば本実施例の場合、１−２ページはＰＤＦフォーマット、３−５はＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄフォーマット、６−１０はＴＩＦＦフォーマットである場合、前記バックエンド処理部４０２１は、ＰＤＦフォーマットから印刷データを生成するものと、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄフォーマットから印刷データを生成するものと、ＴＩＦＦフォーマットから印刷データを生成するものの３つの処理部が、非同期かつ並列に処理を行う。
【００９８】
［複数のバックエンド処理部の処理（図１０）］
次に、図１０を参照しながら複数のバックエンド処理部４０２１が動作した場合の手順について説明する。図１０は、要求受信部４０１１が行う処理である。なお、本説明における印刷サービスと図７の印刷サービスとは同じである。また、この処理は、プラットフォームアプリケーション３０３が処理依頼の確認をポーリングで問い合わせている状態から開始される（Ｓ４０１）。すなわち、図７のＳ１１０に対する応答として印刷データの格納場所を得てから実行される。
【００９９】
要求受信部は、印刷データが生成されたかどうかを、受付ＩＤを基にストレージサービス４０６が提供するストレージ内の処理確認テーブル６１０から確認する（Ｓ４０２）。Ｓ４０２において、印刷データの生成確認をした要求受信部は、ストレージサービス４０６が提供するストレージ内に印刷データが生成されているかどうかを判定する（Ｓ４０３）。Ｓ４０３において、印刷データが生成されていると判断された場合、Ｓ４０４に処理を進める。印刷データが生成されていないと判断された場合、Ｓ４０１から再び処理を開始する。
【０１００】
Ｓ４０４に処理を進めた要求受信部は、Ａｔｏｍ  Ｓｙｎｄｉｃａｔｉｏｎ  Ｆｏｒｍａｔに従ったＸＭＬ文書を作成し、処理を終了する。
【０１０１】
図１１、１２は、本実施例において前記図１０に示した前記要求受信部４０１１のフローチャートの、Ｓ４０４の結果出力されたＡｔｏｍフィード文書である。前記図１１、１２のＡｔｏｍフィード文書は、ＩＥＴＦにおいてＲＦＣ４２８７として公開されているＡｔｏｍ  Ｓｙｎｄｉｃａｔｉｏｎ  Ｆｏｒｍａｔ仕様に従う。
【０１０２】
図１１は、１−２ページ、６−１０ページの印刷データが生成されたことを示し、図１２は、１−２ページ、３−５ページ、６−１０ページの印刷データが生成されたことを示す。本実施例では、１−２ページと３−５ページと６−１０ページが各々別のバックエンド処理部４０２１で処理を、生成すべき印刷データのフォーマット等に応じて分担した上で、非同期かつ並列に処理が行われる。ここでバックエンド処理部４０２１は、印刷データ毎に異なる処理を行う。例えば本実施例の場合、１−２ページはＰＤＦフォーマット、３−５はＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄフォーマット、６−１０はＴＩＦＦフォーマットである場合、前記バックエンド処理部４０２１は、ＰＤＦフォーマットから印刷データを生成するものと、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄフォーマットから印刷データを生成するものと、ＴＩＦＦフォーマットから印刷データを生成するものの３つの処理部が、非同期かつ並列に処理を行う。
【０１０３】
その際前記並行動作するバックエンド処理部４０２１が、前記図９でしめしたフローにより１−２ページ、６−１０ページの印刷データ生成処理を先に完了する。そして、前記要求受信部４０１１が、前記図１０のフローの前記Ｓ４０４により図１１のＡｔｏｍフィード文書を生成する。Ａｔｏｍ Ｓｙｎｄｉｃａｔｉｏｎ Ｆｏｒｍａｔは、定義上すべてのフィードとエントリーに、以下３つの要素を含んでいる必要がある。すなわち、一意識別子＜ｉｄ＞要素、人間が読める形式のエントリーの短い件名（空の文字列でもよい）であるタイトル＜ｔｉｔｌｅ＞要素、最終更新日時を示すタイムスタンプ＜ｕｐｄａｔｅｄ＞要素である。
また各々のエントリーには、該エントリーの代替版（本実施例の場合、印刷データの説明となるｒｅａｄｍｅ．ｈｔｍｌページ）を識別する＜ｌｉｎｋ ｒｅｌ＝”ａｌｔｅｒｎａｔｅ”…＞要素と、該エントリー自体のコンテンツを表す＜ｃｏｎｔｅｎｔｓ＞要素が含まれる。＜ｃｏｎｔｅｎｔｓ＞要素のタイプは ＜ｃｏｎｔｅｎｔｓ ｔｙｐｅ＝”ａｐｐｌｉｃａｔｉｏｎ／Ｘ−ｉｒａｄｖ”＞で、ＭＦＰが解釈できる印刷データであることを表す。上記の各要素を含むＡｔｏｍフィード文書は、＜ｆｅｅｄ＞要素の＜ｔｉｔｌｅ＞は固定、＜ｉｄ＞は印刷データを出力するデバイスのモデルＩＤ、＜ｌｉｎｋ＞要素は出力先デバイスを示すＵＲＩが、前記要求受信部４０１１により生成される。また＜ｅｎｔｒｙ＞要素は印刷データが生成されるたびにそのＩＤ、＜ｔｉｔｌｅ＞はＡｔｏｍ文書の最終更新日付が、前記要求受信部４０１１により生成される。
【０１０４】
図１１のＡｔｏｍフィード文書が生成された後、前記バックエンド処理部４０２１が３−５ページの処理を完了し、前記要求受信部４０１１が、前記図１０のフローの前記Ｓ４０４により図１２のＡｔｏｍフィード文書を生成する。
【０１０５】
［プラットフォームアプリケーションの処理（図１３）］
図１３は、前記印刷装置１０４の、前記プラットフォームアプリケーション３０３におけるＡｔｏｍフィード文書の処理、印刷データ取得処理を示したフローチャートである。前記印刷装置１０４は、前記プラットフォームアプリケーション３０３のＡｔｏｍ（あるいはＲＳＳ）フィードリーダー機能により、前記要求受信部４０１１のＡｔｏｍフィードＵＲＬを定期的に参照し、Ａｔｏｍフィード文書を取得する。ＡｔｏｍフィードＵＲＬは、印刷データの出力先を示すＡｔｏｍフィード文書のＵＲＬ（５０８）である。
【０１０６】
まず、プラットフォームアプリケーション３０３は、要求受信部４０１１からＡｔｏｍフィード文書を受け取る（Ｓ５０１）。Ａｔｏｍフィード文書を受け取ると、プラットフォームアプリケーション３０３は、Ａｔｏｍフィード文書内のｅｎｔｒｙを順番に解析する（Ｓ５０２）。例えば、図１１のＡｔｏｍフィード文書を受け取った場合には、プラットフォームアプリケーション３０３は、ｅｎｔｒｙの記述内容からｃｏｎｔｅｎｔｓタグを参照して生成済みの印刷データの内容を確認する。つまり、ｃｏｎｔｅｎｔｓタグの内容から、プラットフォームアプリケーション３０３は、生成済みの印刷データが印刷依頼を出した文書の１−２ページを示すｐｄｌ０００１＿１−２．ｚｉｐと、６−１０ページを示すｐｄｌ０００１＿６−１０．ｚｉｐであることが分かる。なお、生成済み印刷データは、通信帯域を有効に活用するため、圧縮されているものとする。
【０１０７】
プラットフォームアプリケーション３０３は、解析中のｅｎｔｒｙに含まれる印刷データをストレージサービス４０６が提供するストレージから既に取得済み（ダウンロード済み）であるか否かを判定する（Ｓ５０３）。既に取得済みである場合には、プラットフォームアプリケーション３０３は、全てのｅｎｔｒｙの解析が終了しているか否かを判定する（Ｓ５０４）。全てのｅｎｔｒｙの解析が終了している場合には、新たなＡｔｏｍフィード文書を受け取るまで待機する（Ｓ５０１）。一方、他のｅｎｔｒｙの解析が終了していない場合には、プラットフォームアプリケーション３０３は、次のｅｎｔｒｙの解析処理（Ｓ５０２）に戻る。
【０１０８】
一方、解析中のｅｎｔｒｙの印刷データを未だに取得していない場合には、プラットフォームアプリケーション３０３は、その時点で印刷済みの印刷データの末尾のページ番号Ｐ１を印刷ユニット１０４２に問い合わせる（Ｓ５０５）。ただし、未だに印刷を行っていない場合には、ページ番号は０である。そして、プラットフォームアプリケーション３０３は、解析中のｅｎｔｒｙの印刷データの先頭のページ番号Ｐ２がＰ１＋１であるか否かを判定する（Ｓ５０６）。つまり、この判定は、既に印刷済みの印刷データと、これから取得され得る印刷データとのページの連続性があるか否かを判定するものである。
【０１０９】
Ｐ２＝Ｐ１＋１である場合（つまり、ページの連続性がある場合）には、プラットフォームアプリケーション３０３（印刷制御手段）は、解析中のｅｎｔｒｙの印刷データの取得要求を要求受信部４０１１に対して行い、印刷データを取得（ダウンロード）する（Ｓ５０７）。つまり、Ａｔｏｍ（又はＲＳＳ）フィードリーダ機能により、Ｓ５０１で受け取ったＡｔｏｍフィード文書のうち、印刷データの格納場所を示すＵＲＬ（図５の５０８）を参照し、ストレージサービス４０６に印刷データ取得要求を送信する。そして、プラットフォームアプリケーション３０３（印刷制御手段）は、印刷ユニット１０４２に、取得した印刷データに従った印刷を依頼する（Ｓ５０８）。
【０１１０】
一方、Ｐ２＝Ｐ１＋１でない場合（つまり、ページの連続性がない場合）には、プラットフォームアプリケーション３０３は、画像処理ユニット１０４１から間接記憶部１０４５（ストレージ）の空き容量を取得する（Ｓ５０９）。そして、プラットフォームアプリケーション３０３は、取得した空き容量に基づいて、Ｐ１＋１のページから解析中のｅｎｔｒｙの末尾のページまでの印刷データを間接記憶部１０４５（ストレージ）に格納可能であるか否かを判定する（Ｓ５１０）。つまり、ここで解析中のｅｎｔｒｙの印刷データを間接記憶部１０４５に格納しておいたとしても、印刷済みのｅｎｔｒｙと解析中のｅｎｔｒｙとの間のｅｎｔｒｙ（中間ｅｎｔｒｙと呼ぶ）の印刷データを更に間接記憶部１０４５に格納することができなければ、結局のところ、解析中のｅｎｔｒｙの印刷データを消去した上で、当該中間ｅｎｔｒｙの印刷データを格納しなければならない。このような不要な処理を回避するために当該判定処理を行う。もし格納不可能である場合には、プラットフォームアプリケーション３０３は適切なタイムアウト時間（例えば５分）を経過したか否かを判定し（Ｓ５１２）、タイムアウト時間を経過した場合はエラー終了を表示（Ｓ５１３）してアプリケーションを終了する。
【０１１１】
格納可能である場合には、プラットフォームアプリケーション３０３は、解析中のｅｎｔｒｙの印刷データの取得要求を行う（Ｓ５１１）。Ｓ５１１に続いて印刷依頼を行ってしまうと、ページを指定された順序に従って印刷できないため、印刷依頼を行うことなく、次のｅｎｔｒｙの解析処理（Ｓ５０２）に戻る。一方、格納不可能である場合には、解析中のｅｎｔｒｙの印刷データを取得することなく、プラットフォームアプリケーション３０３は、次のｅｎｔｒｙの解析処理（Ｓ５０２）に戻る。
【０１１２】
以上述べた通り、本実施例によれば、異なるリソースで非同期、かつ、並列に印刷データ生成処理を行う場合に、印刷データの生成タイミングのズレに関わらず、指定された順序に従った印刷を可能とすることができる。
【０１１３】
また、本発明の各実施例では、印刷装置１０４、およびクライアントコンピュータ１０５は、夫々１台ずつであった。しかし、各装置とも複数台の構成であっても構わない。
【０１１４】
また、本発明の各実施例では、サーバーコンピュータ群１０２が印刷データ処理をしてプリンタへ送るものであった。しかし、サーバーコンピュータ群１０２が印刷データ処理以外に、印刷データをラスタイメージへと変換する処理を行っても良い。
【０１１５】
また、本発明の各実施例では、サーバーコンピュータ群１０２上のアプリケーションソフトウェアで作成されたコンテンツは、文書リポジトリに一旦保存されるものであった。しかし、文書リポジトリに一旦保存されなくても良い。この場合、印刷システムを利用した印刷は次のようになる。ユーザーはデバイスブラウザを通じて、アプリケーションソフトウェアに印刷指示を送る。アプリケーションソフトウェアは、作成されたコンテンツをサーバーコンピュータ群１０２内の何れかのハードウェア・リソースに格納する。
【０１１６】
また、本発明の各実施例では、識別情報は印刷装置毎に固有に割り振られたデバイスＩＤであった。しかし、識別情報を固有の情報としなくても良い。この場合、例えば、同じサービス機能を提供する印刷装置毎に１つのグループとみなし、１つのグループに１つの識別情報を割り当てる。これにより、同じグループに属する印刷装置の識別情報は全て同じになる。これに応じて、印刷装置毎に１つずつ割り当てられていたキューは、同じグループに対して１つのキューが割り当てられることになる。結果、同じグループに属する印刷装置は、１つのキューを共有することになる。
【０１１７】
また、本発明の各実施例では、１つのインスタンスに対し、１台のサーバーコンピュータで動作するものであった。しかし、複数のインスタンスが１台のサーバーコンピュータ上で動作していても良い。例えば、マルチコアのＣＰＵにおいて、ＣＰＵ内の１つのコアに対して１つのインスタンスを割り当てても良く、または２つのコアに対して１つのインスタンスを割り当てても良い。このように、１つのインスタンスの割り当て方に特に制限はない。
【０１１８】
また、本発明の各実施例では、サーバーコンピュータ群１０２の持つ機能を次のように分離した。要求受信部の機能を持つサーバーコンピュータ、バックエンド処理部の機能を持つサーバーコンピュータ、キューとストレージの両方の機能を持つサーバーコンピュータである。しかし、サーバーコンピュータが持つ機能を上述の様な組み合わせにしなくても良い。例えば、要求受信部とバックエンド処理部の両方の機能を持つサーバーコンピュータ、キューとストレージの両方の機能を持つサーバーコンピュータのようにしても良い。または、要求受信部とキューの機能を持つサーバーコンピュータ、バックエンド処理部とストレージの機能を持つサーバーコンピュータのようにしても良い。このように、各機能を実現するために、どのサーバーコンピュータに機能を実現するかについて制限はない。
【０１１９】
また、本発明の各実施例では、ユーザーからの処理依頼を印刷装置１０４のデバイスブラウザから行った。しかし、クライアントコンピュータ１０５のデバイスブラウザから処理依頼を送っても良い。この場合、クライアントコンピュータ１０５は、印刷装置１０４を指定する形態が考えられる（例えば、処理依頼と共に印刷装置１０４のＩＰアドレスを送信する）。ＩＰアドレスが分かれば、要求受信部は、指定された印刷装置１０４のプラットフォームアプリケーションに対してポーリングを行うように指示を送ることができる。
【０１２０】
（他の実施形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【０１２１】
また、印刷装置から処理要求されたジョブの種別に応じて、処理要求に対応するキューメッセージを挿入するためのキューを変更しても良い。例えば、印刷装置からの処理要求が印刷処理に関する処理であれば、印刷処理を実行するバックエンド処理部がキューメッセージの取得要求を出すキューにキューメッセージを挿入すれば良い。また、印刷装置からの処理要求がスキャン処理に関する処理であれば、スキャン処理を実行するバックエンド処理部がキューメッセージの取得要求を出すキューにキューメッセージを挿入すれば良い。このように印刷装置から処理要求された処理の内容に応じてキューを切り換えると次のような効果がある。即ち、バックエンド処理部をスケールアウトする際に、適切なバックエンド処理部をスケールアウトすることができる。例えば、印刷処理を実行するバックエンド処理部が多数の処理を抱えている場合、スキャン処理を実行するバックエンド処理部をスケールアウトせずに、印刷処理を実行するバックエンド処理部をスケールアウトすれば良い。これにより、効率的なスケールアウトを実現できる。
【図１】
2012033113.tif 000003
【図２】
2012033113.tif 000004
【図３】
2012033113.tif 000005
【図４】
2012033113.tif 000006
【図５】
2012033113.tif 000007
【図６】
2012033113.tif 000008
【図７】
2012033113.tif 000009
【図８】
2012033113.tif 000010
【図９】
2012033113.tif 000011
【図１０】
2012033113.tif 000012
【図１１】
2012033113.tif 000013
【図１２】
2012033113.tif 000014
【図１３】
2012033113.tif 000015