(57)【特許請求の範囲】
【請求項１】
クライアントコンピュータと通信可能な１台以上のサーバコンピュータを有するネットワークシステムであって、
前記クライアントコンピュータから送信されるリクエストを受け付けて該リクエストを処理するためのジョブを記憶手段に登録する１又は複数の第１処理手段と、
前記記憶手段へのジョブの登録とは非同期で前記記憶手段から前記ジョブを取得して処理する１又は複数の第２処理手段とを有し、
前記第１処理手段は、前記記憶手段に登録したジョブの前記第２処理手段による処理完了を待つことなく、前記リクエストに対応するジョブの処理結果を取得するための認証情報を前記クライアントコンピュータに送信し、
また、前記第１処理手段は、前記クライアントコンピュータから新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能かどうかを判断し、即時実行可能でない場合には、前記クライアントコンピュータから新たなリクエストを受け付けないように制御し、即時実行可能な場合には、前記クライアントコンピュータから新たなリクエストを受け付け可能に制御するものであって、
前記第１処理手段は、前記第２処理手段の総数と、ジョブの処理を実行中の前記第２処理手段の数とを比較し、前記第２処理手段の総数が前記ジョブの処理を実行中の前記第２処理手段の数を超えない場合には、前記新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能でないと判断し、前記第２処理手段の総数が前記ジョブの処理を実行中の前記第２処理手段の数を超える場合には、前記新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能であると判断することを特徴とするネットワークシステム。
【請求項２】
前記認証情報は、前記ジョブを識別する識別情報であることを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記第２処理手段は、前記１台以上のサーバコンピュータから利用可能な１又は複数のコンピュータリソースを用いて前記ジョブの処理を実行することを特徴とする請求項１または２に記載のネットワークシステム。
【請求項４】
前記１又は複数のコンピュータリソースは、文書データを画像形成装置が印刷可能なデータ形式の印刷データに変換するコンピュータリソースと、前記印刷データを保持するコンピュータリソースとを含み、
前記第１処理手段は、画像形成装置から送信される前記認証情報に応じて前記コンピュータリソースに保持される印刷データを前記画像形成装置に送信することを特徴とする請求項３に記載のネットワークシステム。
【請求項５】
前記リクエストは、前記クライアントコンピュータから当該ネットワークシステムにアップロードされる文書データを画像形成装置が印刷可能なデータ形式の印刷データに変換し、該印刷データをコンピュータリソースに格納する処理の依頼を含むことを特徴とする請求項１乃至４のいずれか１項に記載のネットワークシステム。
【請求項６】
クライアントコンピュータと通信可能な１台以上のサーバコンピュータを有するネットワークシステムの制御方法であって、
当該ネットワークシステムの１又は複数の第１処理手段が、前記クライアントコンピュータから送信されるリクエストを受け付けて該リクエストを処理するためのジョブを記憶手段に登録する受け付けステップと、
当該ネットワークシステムの１又は複数の第２処理手段が、前記記憶手段へのジョブの登録とは非同期で前記記憶手段から前記ジョブを取得して処理する処理ステップと、
前記第１処理手段が、前記処理ステップの完了を待つことなく、前記リクエストに対応するジョブの処理結果を取得するための認証情報を前記クライアントコンピュータに送信する送信ステップと、
前記第１処理手段が、前記クライアントコンピュータから新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能かどうかを判断する判断ステップと、
前記第１処理手段が、即時実行可能でないと判断した場合には、前記クライアントコンピュータから新たなリクエストを受け付けないように制御し、即時実行可能と判断した場合には、前記クライアントコンピュータから新たなリクエストを受け付け可能に制御する制御ステップと、を有し、
前記第１処理手段は、前記第２処理手段の総数と、ジョブの処理を実行中の前記第２処理手段の数とを比較し、前記第２処理手段の総数が前記ジョブの処理を実行中の前記第２処理手段の数を超えない場合には、前記新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能でないと判断し、前記第２処理手段の総数が前記ジョブの処理を実行中の前記第２処理手段の数を超える場合には、前記新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能であると判断することを特徴とするネットワークシステムの制御方法。
【請求項７】
請求項６に記載されたネットワークシステムの制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントコンピュータと通信可能な１台以上のサーバコンピュータを有するネットワークシステムの制御に関するものである。
【背景技術】
【０００２】
インターネット技術を利用したコンテンツ管理システムが普及してきている。ユーザは、クライアントコンピュータからインターネットを介してサーバコンピュータが開設しているＷｅｂページにアクセスし、そのＷｅｂページ上で閲覧したいコンテンツを選択する。コンテンツ管理システムは、選択されたコンテンツをサーバコンピュータに送信し、サーバコンピュータは受信したコンテンツをユーザ側に表示されるよう処理をする。
【０００３】
特許文献１には、ユーザがクライアントで閲覧したコンテンツをプリンタで印刷する方法が開示されている。この方法は、ユーザが閲覧したコンテンツをサーバコンピュータがプリンタで印刷できるようなデータに変換し、変換したデータをプリンタに送信する。プリンタは受信したデータを印刷する。
【０００４】
また、近年、サーバコンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやＳａａＳ（Ｓｏｆｔｗａｒｅ ａｓ ａ Ｓｅｒｖｉｃｅ）という技術が利用され始めている。
クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３０４２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、クライアント端末からサーバに文書を登録してクライアント端末とは異なる印刷装置から同一のサーバに接続して文書を取得して印刷を行うネットワークプリントシステムが考えられている。
クラウドコンピューティングの普及に伴い、同様の構成をもったネットワークプリントシステムにおける各処理をクラウドコンピューティングの技術を用いて実行することが考えられる。
【０００７】
しかし、通常ネットワークプリントシステムにおいて、クライアント端末からサーバへの文書の登録処理は、処理の完了までの実行時間を要する処理である。
サーバへの文書の登録処理は、具体的には、クライアントからサーバへのデータのアップロード処理、サーバでの文書データから印刷データへの変換処理、サーバの任意の記憶領域への保存処理等によって一般的には構成される。そして、この一連の処理の結果がサーバからクライアントへ返送される。ユーザは、この一連の処理の結果として、アップロードした文書を実際に印刷装置で印刷する際に必要な認証情報を取得するまで、ネットワークシステムとの接続を解除して新たな文書のアップロードを開始することができない。
【０００８】
クラウドコンピューティングにおいては、前記のような処理の完了までに実行時間を要する処理は、ウェブアプリケーションのような同期処理ではなく、サーバ内でユーザのリクエストとは非同期で実行されるバックエンド処理によって実行されるのが一般的である。
【０００９】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的の１つは、クライアントコンピュータからのリクエストに対する処理の完了を待たずに、クライアントコンピュータとネットワークシステムとの接続を解除可能とし、ユーザビリティを向上させることができる仕組を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、クライアントコンピュータと通信可能な１台以上のサーバコンピュータを有するネットワークシステムであって、前記クライアントコンピュータから送信されるリクエストを受け付けて該リクエストを処理するためのジョブを記憶手段に登録する１又は複数の第１処理手段と、前記記憶手段へのジョブの登録とは非同期で前記記憶手段から前記ジョブを取得して処理する１又は複数の第２処理手段とを有し、前記第１処理手段は、前記記憶手段に登録したジョブの前記第２処理手段による処理完了を待つことなく、前記リクエストに対応するジョブの処理結果を取得するための認証情報を前記クライアントコンピュータに送信し、また、前記第１処理手段は、前記クライアントコンピュータから新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能かどうかを判断し、即時実行可能でない場合には、前記クライアントコンピュータから新たなリクエストを受け付けないように制御し、即時実行可能な場合には、前記クライアントコンピュータから新たなリクエストを受け付け可能に制御するものであって、前記第１処理手段は、前記第２処理手段の総数と、ジョブの処理を実行中の前記第２処理手段の数とを比較し、前記第２処理手段の総数が前記ジョブの処理を実行中の前記第２処理手段の数を超えない場合には、前記新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能でないと判断し、前記第２処理手段の総数が前記ジョブの処理を実行中の前記第２処理手段の数を超える場合には、前記新たに送信されるリクエストに対応するジョブの処理を前記第２処理手段により即時実行可能であると判断することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、クライアントコンピュータからのリクエストに対するネットワークシステム側の処理が完了するのを待たずに、クライアントコンピュータとネットワークシステムとの接続を解除することが可能となり、ユーザビリティを向上させることができる。その結果、クライアントコンピュータ側では、先行して送信したリクエストに対するネットワークシステム側での処理完了を待つことなく、次のリクエストをネットワークシステムに送信すること等が可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明のネットワークシステムの一実施例を示すネットワークプリントシステムの構成の一例を示す図である。
【図２】画像形成装置の内部構成を例示するブロック図である。
【図３】情報処理装置の内部構成を例示するブロック図である。
【図４】プリントシステムにおける各装置の機能ブロック図である。
【図５】サーバコンピュータ群内の各種機能を示す図である。
【図６】本実施例のキューメッセージの一例を示す図である。
【図７】ジョブ管理テーブルの一例を示す図である。
【図８】サービステーブルの一例を示す図である。
【図９】サービスシーケンステーブルの一例を示す図である。
【図１０】ネットワークプリントシステムにおいて想定される一般的なネットワークプリントシステム全体の処理の流れを示すシーケンス図である。
【図１１】文書データアップロード画面の一例を示す図である。
【図１２】文書データアップロード成功画面の一例を示す図である。
【図１３】問合わせＩＤテーブルの一例を示す図である。
【図１４】文書データ印刷画面の一例である。
【図１５】本発明のネットワークプリントシステム全体の処理の流れを示すシーケンス図である。
【図１６】本発明におけるユーザの印刷対象文書データの登録オペレーションを詳細に示すフローチャートである。
【図１７】テーブルストレージサービスで管理されているバックエンド処理状況テーブルの一例を示す図である。
【図１８】サーバコンピュータ群で稼働しているバックエンド処理部のインスタンスの総数を定義する情報（設定ファイル）の一例を示す図である。
【図１９】本発明の実施例におけるバックエンド処理部が起動及び終了時にバックエンド処理状況テーブルを更新する一連の処理の流れを示すフローチャートである。
【図２０】文書データアップロード成功画面の一例を示す図である。
【図２１】文書アップロード待機画面の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１４】
本発明のネットワークシステムの一実施例としてのネットワークプリントシステムの構成について、図１を参照して詳細に説明する。
図１は、本発明のネットワークシステムの一実施例を示すネットワークプリントシステムの構成の一例を示す図である。
図１に示すように、本実施例のネットワークプリントシステムでは、ネットワークプリントシステムを構成している各装置が、ネットワーク１００を介して接続されている。ネットワークシステムを構成している各装置とは、サーバコンピュータ群１０２、文書サーバ１０３、画像形成装置１０４、クライアントコンピュータ１０５、文書取り出しサーバ１０７、文書変換サーバ１０８、印刷サーバ１０９である。
【００１５】
ネットワーク１００は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット１０１は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット１０１により、画像形成装置１０４とクライアントコンピュータ１０５が属するネットワーク１００からは、サーバコンピュータ群１０２などが属するネットワーク１００と、ファイアウォールを越えて通信が可能である。ネットワーク１００、インターネット１０１は、例えば、ＴＣＰ／ＩＰプロトコルなどをサポートする通信回線網であり有線・無線は問わない。
【００１６】
図１において、サーバコンピュータ群１０２は、１台のサーバとして示されているが１台以上のサーバコンピュータで構成されている。また、ネットワークプリントシステムを構成している文書サーバ１０３、文書取り出しサーバ１０７、文書変換サーバ１０８、印刷サーバ１０９は、必ずしもサーバコンピュータ群１０２とは物理的に異なるサーバに存在するとは限らない。これらは、それぞれのサーバが物理的に同一のコンピュータ上に存在することも可能である。サーバコンピュータ群１０２は、文書サーバ１０３、文書取り出しサーバ１０７、文書変換サーバ１０８、印刷サーバ１０９等のコンピュータリソースを利用可能であり、これらのコンピュータリソースを用いて各種処理を実行可能である。サーバコンピュータ群１０２から利用可能なコンピュータリソースは、文書サーバ１０３、画像形成装置１０４、文書取り出しサーバ１０７、文書変換サーバ１０８、印刷サーバ１０９に限定されるものではなく、他の機能を有するサーバが含まれていてもよい。
【００１７】
以下、図１のプリントシステムを構成している各装置の内部構成について詳細に説明する。
まず、画像形成装置１０４の内部構成について図２を用いて説明する。
図２は、画像形成装置１０４の内部構成を例示するブロック図である。
図２（ａ）に示すように、画像形成装置１０４は、画像処理ユニット２０１、印刷ユニット２０２、及び読み込みユニット２０３を有する構成となっている。画像処理ユニット２０１は、ＣＰＵ２０４、直接記憶部２０５、間接記憶部２０６、ユーザインタフェース２０７、外部インタフェース２０８から構成されている。
【００１８】
ＣＰＵ２０４は、所定のプログラムを実行し、画像形成装置１０４の各種制御を指示するユニットである。ＣＰＵ２０４は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）により実現される。
【００１９】
直接記憶部２０５は、ＣＰＵ２０４がプログラムを実行する際に使用するワークメモリであり、ＣＰＵ２０４が実行するプログラムは直接記憶部２０５にロードされる。間接記憶部２０５は、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）により実現される。
【００２０】
間接記憶部２０６は、アプリケーションプログラム、及び、後述するプラットフォームプログラムを含む各種プログラムが記憶されている。間接記憶部２０６に記憶されている各種プログラムは、ＣＰＵ２０４がプログラムを実行する際に直接記憶部２０５へ移動する。間接記憶部２０６は、ＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）、又はＨＤＤ（Ｈａｒｄ Ｄｉｓｃ Ｄｒｉｖｅ）により実現される。なお、ＣＰＵ２０４はマルチプロセッサでも良い。
【００２１】
ここで、図２（ｂ）を用いて、プラットフォームについて詳細に説明する。プラットフォームの実現により、ユーザが独自に開発した新しいアプリケーションを画像形成装置１０４上で実行できる他、画像形成装置１０４の操作画面をカスタマイズすることが可能になる。
【００２２】
プラットフォームの実現方法について説明する。ＣＰＵ２０４は、間接記憶部２０６に記憶されたプラットフォームプログラムを直接記憶部２０５に移動する。移動が完了するとＣＰＵ２０４は、プラットフォームプログラムを実行することができる状態になる。本発明の実施例では、ＣＰＵ２０４がプラットフォームプログラムを実行することを、プラットフォームが起動すると称する。
【００２３】
プラットフォームは、図２（ｂ）に示すように、画像形成装置１０４のファームウェア上で動作することになる。なお、ファームウェアは、間接記憶部２０６に保存されているファームウェアプログラムが、直接記憶部２０５にロードされ、ＣＰＵ２０４により実行されることで実現される。
【００２４】
プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。以下、プラットフォーム上でアプリケーションプログラムを実行する方法について詳細に説明する。
【００２５】
本発明の実施例において、プラットフォーム上には、アプリケーションプログラムとして、印刷要求を受け付ける印刷ソフトウェアが動作している。印刷ソフトウェアは、ネットワークを介して接続されているデバイスから、例えば、ＨＴＴＰ（Ｈｙｐｅｒ Ｔｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）と言った通信プロトコルによって印刷データを受信できる。
【００２６】
印刷ソフトウェアは、受信した印刷データをファームウェアに送信し、印刷データを受信したファームウェアは印刷データ処理を開始する。なお、印刷データが処理をせずに印刷できるようなものであれば、ファームウェアは印刷データ処理を省く。このように、プラットフォームでアプリケーションプログラム（印刷ソフトウェア）を実行することによって、画像形成装置１０４の制御を実現することができる。
【００２７】
アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部２０６に記憶されたアプリケーションプログラムを直接記憶部２０５に移動する。移動が完了すると、プラットフォームは、アプリケーションプログラムを実行することができる状態になる。そして、プラットフォームは、アプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本発明の実施例ではプラットフォームアプリケーションと呼ぶ。さらに、プラットフォームは、本発明の実施例で開示するフローチャートの各処理の一部を行うことが可能である。
【００２８】
また、画像形成装置１０４のファームウェア上では、デバイスブラウザが動作する。デバイスブラウザは、ネットワーク１００を介して接続されているデバイス内に保存されているデータや情報をユーザが閲覧することができる機能を持つ。デバイスブラウザは、間接記憶部２０６に保存されているデバイスブラウザプログラムが、直接記憶部２０５にロードされ、ＣＰＵ２０４により実行されることで実現される。
【００２９】
ユーザインタフェース２０７は、ユーザからの処理依頼を受け付けるために必要なユニットである。例えば、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。
【００３０】
外部インタフェース２０８は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けＨＤＤや外付けＵＳＢメモリ等の外付け記憶装置、又はネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。画像形成装置１０４は、ネットワーク１００、及び、インターネット１０１を介して、クライアントコンピュータ１０５、サーバコンピュータ群１０２等と通信可能である。
【００３１】
次に、サーバコンピュータ群１０２、文書サーバ１０３、クライアントコンピュータ１０５を実現するために用いられる情報処理装置の内部構成について図３を用いて説明する。
図３は、情報処理装置の内部構成を例示するブロック図である。
図３において、３００は、サーバコンピュータ群１０２、文書サーバ１０３、クライアントコンピュータ１０５を実現するために用いられる情報処理装置である。情報処理装置３００は、ユーザインタフェース３０４、ＣＰＵ３０１、直接記憶部３０２、間接記憶部３０３、外部インタフェース３０５を有する構成となっている。
【００３２】
ユーザインタフェース３０４は、ユーザからの処理依頼を受け付けるために必要なユニットである。ユーザインタフェース３０４は、例えば、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。
【００３３】
ＣＰＵ３０１は、所定のプログラムを実行し情報処理装置３００の各種制御を指示するユニットである。ＣＰＵ３０１は、ＣＰＵにより実現される。直接記憶部３０２は、ＣＰＵ３０１がプログラムを実行する際に使用するワークメモリであり、ＣＰＵ３０１が実行するプログラムは直接記憶部３０２にロードされる。直接記憶部３０２は、ＲＡＭで構成されている。
【００３４】
間接記憶部３０３は、アプリケーションプログラム、及び、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）を含む各種プログラムが記憶されている。間接記憶部３０３に記憶されている各種プログラムは、ＣＰＵ３０１がプログラムを実行する際に直接記憶部３０２へ移動する。間接記憶部３０３は、ＲＯＭ、又はＨＤＤで構成されている。外部インタフェース３０５は、ネットワーク１００に接続されており、ネットワーク１００に接続されている他の装置と通信が可能となる。
【００３５】
次に、本実施例のプリントシステムにおける各装置が持つ機能について図４を参照しながら詳細に説明する。
図４は、プリントシステムにおける各装置の機能ブロック図である。
始めに、サーバコンピュータ群１０２の機能について説明する。サーバコンピュータ群１０２には、要求処理部４０１（第１処理部）、バックエンド処理部４０２（第２処理部）、テーブルストレージサービス４０３、ブロブストレージサービス４０４、キューストレージサービス４０５の機能がある。
【００３６】
本実施例では、要求処理部４０１を持つサーバコンピュータが少なくとも１台以上は存在する。また、バックエンド処理部４０２を持つサーバコンピュータが少なくとも１台以上は存在する。また、テーブルストレージサービス４０３、ブロブストレージサービス４０４、キューストレージサービス４０５の各機能を持つサーバコンピュータが少なくとも１台存在する。
【００３７】
要求処理部４０１は、クライアントコンピュータ１０５、又は画像形成装置１０４から送られてきた処理依頼（リクエスト）を受け付ける機能を持つ。バックエンド処理部４０２は、処理プログラムを用いて処理依頼に対する処理を行う機能を持つ。具体的には、バックエンド処理部４０２は、バックエンド処理部４０２を実行しているサーバコンピュータのメモリに処理プログラムをロードし処理依頼に対する処理を行う。
【００３８】
要求処理部４０１は、サーバコンピュータ群１０２を実現する情報処理装置（図３）の間接記憶部３０３に保存されている要求受信プログラムが直接記憶部３０２にロードされてＣＰＵ３０１により実行されることで実現される。また、バックエンド処理部４０２は、サーバコンピュータ群１０２を実現する情報処理装置（図３）の間接記憶部３０３に保存されているバックエンド処理プログラムが直接記憶部３０２にロードされてＣＰＵ３０１により実行されることで実現される。
【００３９】
テーブルストレージサービス４０３は、バックエンド処理部４０２で実行する処理の処理状況のステータスといったデータの格納を行う機能を持つ。テーブルストレージサービス４０３は、サーバコンピュータ群１０２を実現する情報処理装置の間接記憶部３０３に保存されているテーブルストレージサービスプログラムが、直接記憶部３０２にロードされて、ＣＰＵ３０１により実行されることで実現される。また、テーブルストレージサービス４０３で格納したデータは間接記憶部３０３によって保管される。
【００４０】
ブロブストレージサービス４０４は、バックエンド処理部４０２により処理された実行結果のデータを始めとする各種データを保存しておく機能を持つ。ブロブストレージサービス４０４は、サーバコンピュータ群１０２を実現する情報処理装置の間接記憶部３０３に保存されているブロブストレージサービスプログラムが、直接記憶部３０２にロードされて、ＣＰＵ３０１により実行されることで実現される。また、ブロブストレージサービス４０４で保存されるデータは間接記憶部３０３によって保管される。
【００４１】
キューストレージサービス４０５は、次のような機能を持つ。１つ目の機能は、要求処理部４０１とバックエンド処理部４０２とが非同期でデータ通信するための機能を持つ。２つ目の機能は、キューに追加されているキューメッセージを不可視、又は可視にする機能を持つ。
【００４２】
上記１つ目の機能について説明する。要求処理部４０１とバックエンド処理部４０２は次のような方法で通信する。始めに、ユーザからの処理依頼を受けた要求処理部４０１は、ユーザからの処理依頼に応じたキューメッセージと呼ばれるチケットを作成する。キューメッセージは要求処理部４０１によって、キューストレージサービス４０５が提供するキューに格納される。バックエンド処理部４０２は、キューストレージサービス４０５のキューからキューメッセージを取得する。バックエンド処理部４０２は、キューメッセージを取得し、キューメッセージを参照してユーザからの処理依頼を処理する。これにより、ユーザからの処理依頼を解決することになる。このように、キューストレージサービス４０５を利用することで要求処理部４０１とバックエンド処理部４０２は非同期で通信を行うことが可能になる。１つ目の機能のさらに詳細な説明と２つ目の機能の説明については後述する。
【００４３】
なお、キューストレージサービス４０５は、サーバコンピュータ群１０２を実現する情報処理装置の間接記憶部３０３に保存されているキューストレージサービスプログラムが、直接記憶部３０２にロードされて、ＣＰＵ３０１により実行されることで実現される。また、キューストレージサービス４０５が保持するデータ（メッセージ等）は間接記憶部３０３によって保管される。
以上がサーバコンピュータ群１０２の機能の説明になるが、さらに詳細な説明については後述する。
【００４４】
次に、文書サーバ１０３の機能について説明する。文書サーバ１０３は、文書リポジトリ４０６の機能を持つ。文書リポジトリ４０６は、文書サーバ１０３を実現する情報処理装置（図３）の間接記憶部３０３によって実現される。例えば、文書リポジトリ４０６には、ユーザがクライアントコンピュータ１０５、又は画像形成装置１０４から印刷指示したコンテンツが保存されている。文書リポジトリ４０６に保存されているコンテンツは、予め保存されているコンテンツの他に次のようなコンテンツも保存されている。
【００４５】
例えば、ユーザが後述するブラウザ４０７を介してサーバコンピュータ群１０２上のアプリケーションで作成したコンテンツが、文書リポジトリ４０６に保存される。これにより、サーバコンピュータ群１０２上のアプリケーションを用いて作成したコンテンツであっても、クライアントコンピュータ１０５にアプリケーションをインストールすることなく容易に印刷できる。
【００４６】
なお、上述のサーバコンピュータ群１０２上のアプリケーションとは、文書作成アプリケーション、画像作成アプリケーション、帳票管理アプリケーション等を始めとする各種アプリケーションのことである。これらのアプリケーションは、図３の間接記憶部３０３に保持されており、実行が指示されると直接記憶部３０２にロードされ、ＣＰＵ３０１により実行される。
【００４７】
次に、画像形成装置１０４について詳細に説明する。画像形成装置１０４には、デバイスブラウザ４０９、プラットフォームアプリケーション４０８の機能がある。デバイスブラウザ４０９は、ネットワーク１００を介して接続されているデバイス内に保存されているデータや情報をユーザが閲覧することができる機能を持つ。また、ユーザは、デバイスブラウザ４０９を用いてコンテンツの印刷指示を出すことができる。デバイスブラウザ４０９は、例えば、Ｗｅｂブラウザである。
【００４８】
プラットフォームアプリケーション４０８は、各種サービスを提供する機能を持つ。プラットフォームアプリケーション４０８は、プラットフォーム上で動作するアプリケーションプログラムによって実現される。本発明の実施例において、プラットフォームアプリケーション４０８は、印刷ソフトウェアのサービスを提供する。上述の様に、このサービスは、受信した印刷データをファームウェアに送信することができる。また、このサービスは、要求処理部４０１に対して印刷データの生成が終了したかどうかの確認を行う。その際、このサービスは、要求処理部４０１が作成したジョブＩＤを基に生成確認を行う。
【００４９】
次に、クライアントコンピュータ１０５について詳細に説明する。クライアントコンピュータ１０５は、ブラウザ４０７の機能を持つ。ブラウザ４０７は、ネットワーク１００を介して接続されているデバイス内に保存されているデータや情報をユーザが閲覧することができる機能を持つ。ブラウザ４０７は、クライアントコンピュータ１０５を実現する情報処理装置の間接記憶部３０３に保存されているブラウザプログラムが、直接記憶部３０２にロードされて、ＣＰＵ３０１により実行されることで実現される。ブラウザ４０７は、例えば、Ｗｅｂブラウザである。
【００５０】
次に、文書取り出しサーバ１０７の機能について説明する。文書取り出しサーバ１０７は、文書取り出しサービス４１０の機能を持つ。文書取り出しサービス４１０は、文書取り出しサーバ１０７を実現する情報処理装置（図３）の間接記憶部３０３にプログラムとして記録されており、ＣＰＵ３０１が直接記憶部３０２に読み出して実行することにより実現される。文書取り出しサービス４１０は、外部インタフェース３０５を通して受信した文書取り出し指示に従って、文書サーバ１０３にアクセスし、文書リポジトリ４０６に保存されているコンテンツを取得する機能を有する。
【００５１】
次に、文書変換サーバ１０８の機能について説明する。文書変換サーバ１０８は、文書変換サービス４１１の機能を持つ。文書変換サービス４１１は、文書変換サーバ１０８を実現する情報処理装置の間接記憶部３０３にプログラムとして記録されており、ＣＰＵ３０１が直接記憶部３０２に読みだして実行することにより実現される。文書変換サービス４１１は、外部インタフェース３０５を通して受信した文書変換指示に従って、指示されたデータを所定のデータ形式に変換する機能を有する。
【００５２】
最後に、印刷サーバ１０９の機能について説明する。印刷サーバ１０９は、スプールサービス４１２の機能を持つ。スプールサービス４１２は、印刷サーバ１０９を実現する情報処理装置の間接記憶部３０３にプログラムとして記録されており、ＣＰＵ３０１が直接記憶部３０２に読みだして実行することにより実現される。スプールサービス４１２は、外部インタフェース３０５を通して受信した指示に従って、指示されたデータを印刷させるために必要な属性（印刷優先度や、色味情報など）を生成する機能を有する。
以上が、実施例のプリントシステムにおける各装置が持つ機能の説明になる。
【００５３】
次に、サーバコンピュータ群１０２のプラットフォームシステムについて図５を参照しながら詳細に説明する。
図５は、サーバコンピュータ群１０２内の各種機能を示す図である。
図５において、サーバコンピュータ群１０２内にある物理ハードウェア・リソースは、サーバコンピュータ群１０２のプラットフォームに使用される。サーバコンピュータ群１０２のプラットフォーム利用者は、このサーバコンピュータ群１０２内にある物理ハードウェア・リソースをコンピューティング・リソースとして使用できる。
【００５４】
サーバコンピュータ群１０２のプラットフォームシステム（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）は、５０１〜５０７に示すような機能を持つ。５０１及び５０２は、ヴァーチャルマシン（Ｖｉｒｔｕａｌ Ｍａｃｈｉｎｅｓ）である。５０３は、ファブリックコントローラ（Ｆａｂｒｉｃ Ｃｏｎｔｒｏｌｌｅｒ）である。５０４は、ロードバランサー（Ｌｏａｄ Ｂａｌａｎｃｅｒ）である。５０５は、キューストレージサービス（Ｑｕｅｕｅ）である。５０６は、テーブルストレージサービス（Ｔａｂｌｅ）である。５０７は、ブロブストレージサービス（Ｂｌｏｂ）である。
【００５５】
サーバコンピュータ群１０２上で動作するプラットフォームシステムの内部には、ヴァーチャルマシン５０１、５０２が複数存在する。ヴァーチャルマシンとは、仮想化技術によって物理的なサーバコンピュータ群１０２を論理的なコンピュータに分割し、分割された中で独立したオペレーティングシステムをもって動作する論理的なコンピュータのことである。この論理的なコンピュータの単位は、インスタンスとして数えられる。なお、本発明の実施例では、１つのインスタンスは、サーバコンピュータ群１０２内の１台のサーバコンピュータ上で動作する。
【００５６】
ヴァーチャルマシン５０１は、要求処理部（Ｗｅｂ Ｒｏｌｅ Ｉｎｓｔａｎｃｅ）５０９、要求処理部エージェント（Ａｇｅｎｔ）５１０で構成される。なお、要求処理部５０９は、図４の要求処理部４０１に対応する。要求処理部５０９は、後述するロードバランサー５０４を介してユーザからの処理依頼を受信する。また、要求処理部５０９は、キューストレージサービス５０５を介してバックエンド処理部５１１への処理依頼を送信する。
【００５７】
要求処理部５０９の高い可用性を確保するために、外部ネットワークからの要求（ここではＨＴＴＰによる通信）は、ヴァーチャルマシン５０１の外部にあるロードバランサー５０４を通じて行われる。ロードバランサー５０４は、外部ネットワークからの要求を一元的に管理し、同等な要求処理部の機能を有する複数のヴァーチャルマシンに対し、選択的に要求を転送するものである。なお、要求処理部エージェント５１０は、ヴァーチャルマシン５０１の使用状況、要求処理部５０９の稼動状態、ヴァーチャルマシン５０１のリソースの使用状況、及び要求処理部５０９のエラーを含む各種情報を収集し、ファブリックコントローラ５０３に定期的に送信する。
【００５８】
要求処理部５０９、バックエンド処理部５１１の各インスタンスは、ファブリックコントローラ５０３によって管理されている。そのため、各インスタンスの拡張性と可用性が保証される。例えば、要求処理部５０９、又はバックエンド処理部５１１において、ある特定のインスタンスがサーバの故障によって停止したとする。この場合、ファブリックコントローラ５０３は、要求処理部エージェント５１０、又はバックエンド処理部エージェント５１２から定期通知を受け取れなくなる。定期通知を受け取らなくなったファブリックコントローラ５０３は、新しいインスタンスに処理が委譲されるようにヴァーチャルマシンに指示を出す。結果、処理を実行しているインスタンス数が一定に保たれるため、処理の遅延を抑えることができる。
【００５９】
ヴァーチャルマシン５０２は、バックエンド処理部（Ｗｏｒｋｅｒ Ｒｏｌｅ Ｉｎｓｔａｎｃｅ）５１１、バックエンド処理部エージェント（Ａｇｅｎｔ）５１２で構成される。なお、バックエンド処理部５１１は、図４のバックエンド処理部４０２に対応する。
【００６０】
バックエンド処理部５１１は、キューストレージサービス５０５を介して要求処理部５０９からの処理依頼を受信する。バックエンド処理部５１１は、キューストレージサービス５０５を介して要求処理部５０９から受信した処理依頼を実行する。また、バックエンド処理部５１１は、スケールアウトする。スケールアウトとは、ヴァーチャルマシン５０２が増加し、バックエンド処理部５１１のインスタンスが増加することを指す。バックエンド処理部５１１のインスタンスが増加すると、バックエンド処理部１つ当たりのデータ処理量が減少する。これにより、ユーザからの処理依頼に対する結果をより早く返すことができる。
【００６１】
キューストレージサービス５０５は、要求処理部５０９とバックエンド処理部５１１とが非同期でデータ通信するためのサービスを提供する。なお、キューストレージサービス５０５は、図４のキューストレージサービス５０５に対応する。要求処理部５０９、及びバックエンド処理部５１１は、キューストレージサービス５０５に対し、各種指示を出すことで、非同期でデータ通信する。これについて、具体的に説明する。要求処理部５０９がキューストレージサービス５０５に対して行う指示とは、キューメッセージの追加指示である。バックエンド処理部５１１がキューストレージサービス５０５に対して行う指示とは、キューメッセージの取得指示、キューメッセージの削除指示である。
【００６２】
要求処理部５０９とバックエンド処理部５１１が非同期でデータ通信する一連の動作について説明する。要求処理部５０９は、ユーザからの処理依頼に応じたキューメッセージを作成し、キューメッセージをキューに追加するようにキューストレージサービス５０５に追加指示を送信する。追加指示を受信したキューストレージサービス５０５は、キューにキューメッセージを追加する。バックエンド処理部５１１は、キューメッセージを取得するために、キューストレージサービス５０５に取得指示を出す。取得指示を受けたキューストレージサービス４０５は、キューメッセージと、キューメッセージ毎に固有に割り振られたメッセージＩＤと、ジョブＩＤとを取得指示に対するレスポンスとしてバックエンド処理部５１１に返す。メッセージＩＤとは、キューメッセージを一意に定めるためにキューメッセージごとに割り振られた固有の情報であり、処理が終了したバックエンド処理部５１１がキューメッセージを削除指示する際に使用する。ジョブＩＤは、実際に処理する内容を一意に決定するＩＤ（ジョブを識別する識別情報）である。バックエンド処理部５１１は、処理依頼を完了すると、メッセージＩＤに対応するキューメッセージの削除指示をキューストレージサービス５０５に対して行う。削除指示を受けたキューストレージサービス５０５は、バックエンド処理部５１１が指示したメッセージＩＤに対応するキュースメッセージをキューから削除する。これにより、削除指示を出したバックエンド処理部５１１以外のバックエンド処理部５１１が同じキューメッセージを処理するという冗長な処理を防ぐことができる。
【００６３】
また、キューストレージサービス５０５は、キューに追加されているキューメッセージを不可視、又は可視にする機能を持つ。不可視とは、バックエンド処理部５１１がキューに追加されているキューメッセージの取得要求をした場合に、キューストレージサービス５０５はバックエンド処理部５１１に対してキューメッセージを渡さないことを指す。バックエンド処理部５１１がキューからキューメッセージを取得すると、取得されたキューメッセージはキューストレージサービス５０５によって不可視になる。可視とは、バックエンド処理部５１１がキューに追加されているキューメッセージの取得要求した場合に、キューストレージサービス５０５がバックエンド処理部５１１に対してキューメッセージを渡すことを指す。バックエンド処理部５１１に取得され不可視になっているキューメッセージは、処理を行っているバックエンド処理部５１１から処理結果が一定時間返ってこない場合にキューストレージサービス４０５によって可視になる。これにより、バックエンド処理部５１１が異常終了し処理を継続できない場合でも自動的に処理がリトライされることになる。
【００６４】
テーブルストレージサービス５０６は、データ保存に利用されるストレージを提供する。テーブルストレージサービス５０６では、データを、エンティティと型情報のプロパティを組み合わせた単純な形式で保管する。なお、テーブルストレージサービス５０６は、図４のテーブルストレージサービス４０３に対応する。
【００６５】
ブロブストレージサービス５０７は、データ保存に利用されるストレージを提供する。ブロブストレージサービス５０７は、バイナリデータの集合を保存する機能を提供する。なお、ブロブストレージサービス５０７は、図４のブロブストレージサービス４０４に対応する。
【００６６】
次に、本発明の実施例におけるキューメッセージについて図６を用いて説明する。
図６は、本実施例のキューメッセージの一例を示す図である。なお、キューメッセージは、要求処理部５０９がバックエンド処理部５１１に依頼する処理の内容を記述したものである。
図６において、リクエスト６０１は、キューメッセージを追加するキューストレージサービスの場所を示している。ヘッダ６０２は、キューストレージサービスへアクセスするための認証情報等を送信するためのものである。
次に、キューメッセージのメッセージデータコンテンツ部分について説明する。メッセージデータコンテンツ部分は、ユーザからの処理依頼に応じて決定される。＜ＭｅｓｓｇａＴｅｘｔ＞６０３は、ジョブＩＤを示している。図６の場合、ジョブＩＤは“ｐｋ０１｜ｊｏｂ０１”である。ジョブＩＤは、ユーザからの処理依頼に応じて作成される一意な情報である。
【００６７】
次に、図７を用いて、本発明の実施例におけるジョブ管理テーブルについて説明する。ジョブ管理テーブルでは、バックエンド処理部５１１にて実施する一連の処理をジョブとして管理し、それらジョブの内容や処理状況等のデータを保持する。ジョブ管理テーブルは、テーブルストレージサービス５０６にて保持される。
図７は、テーブルストレージサービス５０６にて保持されるジョブ管理テーブルの一例を示す図である。
図７において、ＥＴａｇ７０１は、テーブルストレージサービス５０６が自動的に設定する値で、列データが更新された際に一意の値が書き込まれる。テーブルより取得したデータを更新する際に、データ取得時のＥＴａｇ７０１の値と、データ更新時のＥＴａｇ７０１の値が異なる場合、他の処理プロセスによりテーブルが更新されたことが識別できる。
【００６８】
ＰａｒｔｉｔｉｏｎＫｅｙ７０２とＲｏｗＫｅｙ７０３は、テーブルの列を一意に識別するＩＤを構成する情報である。ジョブ管理テーブルでは、これら二つの値をジョブＩＤとして管理する。
ＳｔａｒｔＴｉｍｅ７０４にはジョブの開始日時、ＥｎｄＴｉｍｅ７０５にはジョブの終了日時が登録される。ジョブの開始前や終了前は初期値が設定される。
【００６９】
Ｓｔａｔｕｓ７０６には、ジョブ全体のステータスが保持される。ジョブのステータスは、ジョブの処理状況に応じて、Ｒｅａｄｙ（準備完了）、Ｐｒｏｃｅｓｓｉｎｇ（処理中）、Ｓｕｃｃｅｓｓ（成功）、Ｆａｉｌｕｒｅ（失敗）で管理される。
ＤａｔａＩＤ７０７には、ジョブに関連付いたデータのＩＤが設定される。データはブロブストレージサービス５０７にて保存されており、このデータのＩＤはブロブストレージサービス５０７内で一意の値となる。
【００７０】
ＬａｓｔＴａｓｋ７０８には、実行が完了したタスクの番号が記録される。ジョブは複数のタスクを順次処理することで成り立っている。例えば、１番目のタスクとして、文書サーバからファイルを取得するタスク、２番目のタスクとしてデータをプリントスプーラサービスに投入するタスクといった組み合わせでジョブが構成され、それらが順次実行されることでジョブは処理される。文書サーバからファイルを取得するタスクまで実行が終了すると、ＬａｓｔＴａｓｋ７０８には「１」が記録される。なお、タスクが何も実行完了していないときはＬａｓｔＴａｓｋ７０８に「０」が記録される。
【００７１】
ＬａｓｔＴａｓｋＲｅｓｕｌｔ７０９には、最後に実行したタスクの処理結果が保持される。タスクの処理結果は、Ｎｏｎｅ（タスク終了前の状態）、Ｓｕｃｃｅｓｓ（成功）、ＦａｉｌｕｒｅＲｅｔｒｙ（リトライ可能な失敗）、Ｆａｉｌｕｒｅ（失敗）で管理され、タスクは処理の結果を必ずいずれかの値で返す必要がある。
【００７２】
ＬａｓｔＴａｓｋＴｒｙＣｏｕｎｔ７１０には、最後に実行したタスクを何度実行したかを示す情報が記録される。タスクがＦａｉｌｕｅｒＲｅｔｒｙ（リトライ可能な失敗）の処理結果で終了した場合にはそのタスクを再実行するが、その再実行の回数がＬａｓｔＴａｓｋＴｒｙＣｏｕｎｔ７１０に記録される。ＬａｓｔＴａｓｋＴｒｙＣｏｕｎｔ７１０が一定回数以上の数値になったら、つまり繰り返しタスクの実行を再試行しても成功しない場合には、そのタスクをエラーとするための制御にＬａｓｔＴａｓｋＴｒｙＣｏｕｎｔ７１０が利用される。
【００７３】
ＭａｘＴａｓｋ７１１には、そのジョブにタスクが何個含まれるかを示す情報が記録される。本実施例では「１」〜「２０」のタスクをジョブに含むことができるものとする。
Ｔａｓｋ１ＳｅｒｖｉｃｅＩＤ７１２からＴａｓｋ２０Ｐａｒａｍｅｔｅｒ７１７までの情報は、ジョブに含まれるタスクに関する情報を管理するためのものである。Ｔａｓｋ１ＳｅｒｖｉｃｅＩＤ７１２には、１番目に実行されるタスクを提供するサービスのＩＤが保持される。Ｔａｓｋ１Ｐａｒａｍｅｔｅｒ７１３には、タスク１を実行する際にタスクに渡されるパラメータが保持される。以降、同様にＴａｓｋ２ＳｅｒｖｉｃｅＩＤ７１４とＴａｓｋ２Ｐａｒａｍｅｔｅｒ７１５には２番目に実行するタスクに関する情報（データのＩＤとパラメータ）が保持され、・・・、Ｔａｓｋ２０ＳｅｒｖｉｃｅＩＤ７１６とＴａｓｋ２０Ｐａｒａｍｅｔｅｒ７１７には２０番目に実行するタスクに関する情報（データのＩＤとパラメータ）が保持される。本実施例のジョブ管理テーブルでは、２０個分のタスク情報を保持可能である。なお、本実施例では、タスク数の上限を「２０」としたがタスク数の上限に関しては別の値でも良い。
【００７４】
次に、図８を用いて、本実施例におけるサービステーブルについて説明する。サービステーブルでは、タスクを提供するサービスの管理を行う。サービステーブルは、テーブルストレージサービス５０６にて保持される。
図８は、テーブルストレージサービス５０６にて保持されるサービステーブルの一例を示す図である。
図８において、ＥＴａｇ８０１は、ＥＴａｇ７０１（図７）と同様である。ＰａｒｔｉｔｉｏｎＫｅｙ８０２とＲｏｗＫｅｙ８０３は、テーブルの列を一意に識別するＩＤを構成する情報である。サービステーブルでは、ＰａｒｔｉｔｉｏｎＫｅｙ８０２はｓｅｒｖｉｃｅで固定値となり、ＲｏｗＫｅｙ８０３がサービスＩＤとして管理される。
【００７５】
ＵＲＩ８０４には、サービスが提供されているＷｅｂＳｅｒｖｉｃｅのＵＲＩが保持される。ここで管理（保持）されているＵＲＩに対してアクセスすることで、そのサービスを利用することが可能である。なお、本実施例では、サービスがＷｅｂＳｅｒｖｉｃｅで提供されており、提供されているアドレスをＵＲＩという形で管理しているが、サービスの提供方法はその他の方法でもよい。例えば、ＷｅｂＳｅｒｖｉｃｅではなく、ＲＥＳＴのＩ／Ｆでサービスが提供されても良いし、ＤＬＬのようなモジュールで提供されても良い。
【００７６】
Ｔｙｐｅ８０５には、サービスタイプが保持される。サービスタイプには、Ｉｎ（入力サービス）、Ｐｉｐｅ（パイプサービス）、Ｏｕｔ（出力サービス）がある。入力サービスは、文書サーバからデータを取得するといった処理を行うサービスで、外部システムからデータを入力するサービスである。パイプサービスは、文書データを印刷データに変換するといった処理を行うサービスで、データを加工するサービスである。出力サービスは、データを印刷サーバに投入するといった処理を行うサービスで、外部システムにデータを出力するサービスである。
【００７７】
Ａｔｔｒｉｂｕｔｅ８０６には、サービスの属性情報が保持される。サービスの属性情報は、サービス毎に独自に定義された情報として登録される。例えば、文書サーバからデータを取得するサービスでは、文書サーバのＵＲＩの情報が属性情報としてＡｔｔｒｉｂｕｔｅ８０６に保持される。また、印刷サーバにジョブを投入するサービスでは、印刷サーバのＵＲＩの情報が属性情報としてＡｔｔｒｉｂｕｔｅ８０６に保持される。
【００７８】
次に、図９を用いて、本発明の実施例におけるサービスシーケンステーブルについて説明する。サービスシーケンステーブルでは、サービスの処理順序の管理を行う。サービスシーケンステーブルは、テーブルストレージサービス５０６にて保持される。
図９は、テーブルストレージサービス５０６にて保持されるサービスシーケンステーブルの一例を示す図である。
図９において、Ｅｔａｇ９０１は、ＥＴａｇ７０１（図７）と同様である。ＰａｒｔｉｔｉｏｎＫｅｙ９０２とＲｏｗＫｅｙ９０３は、テーブルの列を一意に識別するＩＤを構成する情報である。サービスシーケンステーブルでは、ＰａｒｔｉｔｉｏｎＫｅｙ９０２は、ｓｅｑｕｅｎｃｅで固定値となり、ＲｏｗＫｅｙ９０３がシーケンスＩＤとして管理される。
【００７９】
ＭａｘＴａｓｋ９０４では、そのシーケンスに含まれるタスクの数が定義されている。本実施例では、「１」〜「２０」のタスクをシーケンスに含むことができる。
Ｔａｓｋ１（９０５）〜Ｔａｓｋ２（９０９）では、シーケンスに含まれるタスクに関する情報が管理される。Ｔａｓｋ１（９０５）には、１番目に実行されるタスクを提供するサービスのＩＤが保持される。以降、同様にＴａｓｋ２（９０６）には２番目に実行するタスクに関する情報が保持され、・・・、Ｔａｓｋ２０（９０９）には２０番目に実行するタスクに関する情報が保持される。本実施例のサービスシーケンステーブルでは、２０個分のタスク情報を保持可能である。なお、本実施例ではタスク数の上限を「２０」としたがタスク数の上限に関しては別の値でも良い。
以上が、本実施例におけるシステム構成に関しての説明である。続いては、本実施例におけるシステムの全体の処理の流れの説明を行う。
【００８０】
まず、図１０を用いて、図１〜図９で示したシステム構成のネットワークプリントシステムにおいて想定される一般的なネットワークプリントシステム全体の処理の流れを示す。
図１０は、図１〜図９で示したシステム構成のネットワークプリントシステムにおいて想定される一般的なネットワークプリントシステム全体の処理の流れを示すシーケンス図である。なお、図中、Ｓ１００１〜Ｓ１０６３は各ステップを示す。
なお、ネットワークプリントシステムの全体オペレーションは、印刷対象文書データの登録オペレーション、印刷対象文書データから印刷データへの変換オペレーション、印刷データの印刷オペレーションで構成される。全体オペレーションの内、印刷対象文書データの登録オペレーション、及び、印刷データの印刷オペレーションはユーザ操作を含むオペレーションである。また、印刷対象文書データから印刷データへの変換オペレーションはサーバコンピュータ群１０２により実行されるオペレーションである。
【００８１】
まず、印刷対象文書データの登録オペレーションから説明する。印刷対象文書データの登録オペレーションは、ユーザがクライアントコンピュータ１０５のブラウザ４０７にて操作を開始するところから一連の処理が行われる。この操作により、ブラウザ４０７は、要求処理部４０１にて動作する文書データアップロードアプリケーションと通信して、文書アップロード画面取得要求を行う。なお、文書データアップロードアプリケーションは、サーバコンピュータ群１０２を実現する情報処理装置（図３）の間接記憶部３０３に保存されている要求受信プログラムが直接記憶部３０２にロードされてＣＰＵ３０１により実行されることで実現される。
【００８２】
要求処理部４０１は、ブラウザ４０７からの文書アップロード画面取得要求（Ｓ１００１）を受信すると、文書データアップロードアプリケーションが文書データアップロード画面（図１１）を生成する。
【００８３】
図１１は、ブラウザ４０７に表示される文書データアップロード画面の一例を示す図である。
図１１の文書データアップロード画面は、図１０のステップＳ１００１において、要求処理部４０１がブラウザ４０７からの文書アップロード画面取得要求を受信した際に、文書データアップロードアプリケーションにより生成される。文書データアップロードアプリケーションが生成した文書データアップロード画面は、ステップＳ１００２において、要求処理部４０１がブラウザ４０７に送信する。
【００８４】
文書データアップロード画面（図１１）において、アップロード先１１０１は、ユーザが現在通信を行っている文書データアップロードアプリケーションが実行されているサーバを示す情報を表示する。対象文書１１０２は、ユーザが選択した文書データのクライアントコンピュータ１０５での保存場所を示す情報を表示する。ユーザは、ブラウザ４０７の操作によって、参照ボタン１１０３を押下することで、クライアントコンピュータ１０５に保存されている文書データを選択する。文書データアップロードアプリケーションにアップロードする文書データの選択が完了すると、ユーザはブラウザ４０７の操作によって、アップロードボタン１１０４を押下して、アップロード処理を開始する。
【００８５】
図１１の例では、クライアントコンピュータ１０５の「ｆｏｌｄｅｒ／ｆｉｌｅ．ｐｄｆ」という文書が、文書データアップロードアプリケーションにアップロードされることになる。また、アップロードボタン１１０４がユーザによって、押下されると要求処理部４０１が予め定義されたアップロードシーケンスを実行するよう、指示が行われる。具体的には、アップロードボタン１１０４には、図９のシーケンステーブルで定義されるアップロードシーケンスに対応する行のＲｏｗＫｅｙ９０３に格納されたシーケンスＩＤが割り当てられている。
【００８６】
ステップＳ１００３において、ユーザがアップロードボタン１１０４を押下すると、対象文書１１０２に入力された文書データとシーケンスＩＤをパラメータとする、文書アップロード要求がブラウザ４０７から要求処理部４０１に送信される。なお、この文書アップロード要求は、ブラウザ４０７から当該ネットワークプリントシステムにアップロードされる文書データを画像形成装置１０４が印刷可能なデータ形式の印刷データに変換し、該印刷データをネットワークプリントシステム内のコンピュータリソース（本実施例では印刷サーバ１０９のスプールサービス４１２）に登録し、画像形成装置１０４から取得可能にする処理の依頼を含む処理要求（リクエスト）である。
【００８７】
ステップＳ１００４において、要求処理部４０１は、ブラウザ４０７から文書アップロード要求を受け付ける。そして、要求処理部４０１は、文書アップロード要求のパラメータとして受信した文書データをブロブストレージサービス４０４に保存する。ブロブストレージサービス４０４は、文書データの保存を完了すると、要求処理部４０１に対して保存場所情報（ＤａｔａＩＤ）を返す。
【００８８】
次に、ステップＳ１００５において、要求処理部４０１は、テーブルストレージサービス４０３のサービスシーケンステーブル（図９）に対して、シーケンス取得要求を行う。このシーケンス取得要求では、上記Ｓ１００４でブラウザ４０７から受信したシーケンスＩＤをパラメータとして送信する。
【００８９】
ステップＳ１００６において、テーブルストレージサービス４０３は、要求処理部４０１から受信したシーケンスＩＤに該当するＲｏｗＫｅｙ９０３を有するシーケンスデータをサービスシーケンステーブル（図９）から取得して要求処理部４０１に送信する。
【００９０】
ステップＳ１００７において、要求処理部４０１は、テーブルストレージサービス４０３のジョブ管理テーブル（図７）に対して、ジョブ追加要求を行う。このジョブ追加要求では、上記Ｓ１００６において取得したシーケンスデータと上記Ｓ１００４で取得した文書データの保存場所情報（ＤａｔａＩＤ）等をパラメータとして送信する。
【００９１】
ジョブ追加要求を受けると、ステップＳ１００８において、テーブルストレージサービス４０３は、ジョブ追加要求で受信したパラメータを用いてジョブの生成追加処理を行い、生成したジョブをジョブ管理テーブルに追加する。さらに、テーブルストレージサービス４０３は、前記生成したジョブのジョブＩＤ（ＰａｒｔｉｔｉｏｎＫｅｙ７０２とＲｏｗＫｅｙ７０３）を要求処理部４０１に送信する。
【００９２】
ステップＳ１００９において、要求処理部４０１は、キューストレージサービス４０５に対して、メッセージ追加要求を行う。このメッセージ追加要求では、上記Ｓ１００８で受信したジョブＩＤ（ＰａｒｔｉｔｉｏｎＫｅｙ７０２とＲｏｗＫｅｙ７０３）を含むキューメッセージ（図６に示したような）をパラメータとして送信する。これにより、キューストレージサービス４０５は、メッセージの追加処理を行う。詳細には、キューストレージサービス４０５は、メッセージ追加要求のパラメータとして受け取ったキューメッセージをキューストレージサービス４０５内のキューに格納する。
【００９３】
また、要求処理部４０１がテーブルストレージサービス４０３からジョブＩＤを受信した際に、要求処理部４０１で動作する文書データアップロードアプリケーションが文書データアップロード成功画面１２００（図１２）を生成する。生成された文書データアップロード成功画面１２００（図１２）は、ステップＳ１０１０において、要求処理部４０１によりブラウザ４０７に送信される。ブラウザ４０７は、要求処理部４０１から送信された文書データアップロード成功画面（図１２）を受信して画面に表示する。
【００９４】
図１２は、ブラウザ４０７に表示される文書データアップロード成功画面の一例を示す図である。
文書データアップロード成功画面１２００において、アップロード完了メッセージ領域１２０１には、ユーザに対して文書のアップロードが正常に終了したこと、及び、文書データから印刷データへの変換処理が実行中であることを示すメッセージが表示される。
【００９５】
認証情報表示領域１２０２には、後述するステップＳ１０６０において、ユーザがデバイスブラウザ４０９を操作して、要求処理部４０１に印刷データ要求を送信する際に必要となる認証情報（パスコード）が表示されることになる。この認証情報（パスコード）には、本実施例では、要求処理部４０１がテーブルストレージサービス４０３から受信したジョブＩＤが利用される。ジョブＩＤは、後述するステップＳ１０３０〜Ｓ１０４１の印刷データ変換処理が終了するまでは認証情報表示領域１２０２には表示されない。その場合には、印刷データ変換処理が実行中であることを示すメッセージ（例えば「現在登録中です。」）が表示される。
【００９６】
印刷データ変換処理が終了したかどうかを確認するために、ステップＳ１０２０において、ユーザはブラウザ４０７の操作によって、更新ボタン１２０３を押下する。更新ボタン１２０３には、要求処理部４０１が文書データアップロード成功画面１２００と共に生成した問い合わせＩＤが割り当てられており、ブラウザ４０７は、該問い合わせＩＤをパラメータとする、ジョブＩＤ要求を要求処理部４０１に対して送信する。
【００９７】
上記問い合わせＩＤは、要求処理部４０１により文書データアップロード成功画面１２００と共に生成され、上記Ｓ１００８で取得されたジョブＩＤとともにテーブルストレージサービス４０３に送信される。なお、図示しないが、上記Ｓ１０１０では、要求処理部４０１は、上記問合わせＩＤと上記Ｓ１００８で取得したジョブＩＤを、テーブルストレージサービス４０３に送信して、問合わせＩＤテーブル（図１３）に格納するように要求する処理も行う。テーブルストレージサービス４０３では、要求処理部４０１から取得した問合わせＩＤとジョブＩＤを問合わせＩＤテーブル（図１３）に格納し管理する。
【００９８】
図１３は、テーブルストレージサービス４０３で管理される問合わせＩＤテーブルの一例を示す図である。
図１３において、ＥＴａｇ１３０１は、テーブルストレージサービス４０３が自動的に設定する値で、列データが更新された際に一意の値が書き込まれる。ＰａｒｔｉｔｉｏｎＫｅｙ１３０２とＲｏｗＫｅｙ１３０３にてテーブルの列を一意に識別するＩＤとなる。これらの値は上記Ｓ１００８で要求処理部４０１が受信したジョブＩＤの値であり、図７のジョブ管理テーブルと同様の管理方法により二つの値として管理される。ＲｅｑｕｅｓｔＩＤ１３０４は問い合わせＩＤであり、要求処理部４０１が文書データアップロード成功画面を生成する際に、同時に生成される一意の値である。
【００９９】
ステップＳ１０２１において、要求処理部４０１は、ジョブＩＤ要求とともに送信された問い合わせＩＤをパラメータとする、シーケンス確認要求をテーブルストレージサービス４０３に対して行う。テーブルストレージサービス４０３は、受け取った問合わせＩＤに対応するジョブＩＤを問合わせＩＤテーブル（図１３）から取得し、該取得したジョブＩＤに対応するジョブのステータス７０６をジョブ管理テーブル（図７）から取得し、要求処理部４０１に送る。
【０１００】
要求処理部４０１は、受け取ったステータス７０６の値が「Ｓｕｃｃｅｓｓ（成功）」の場合には、ジョブＩＤを認証情報表示領域１２０２に表示した文書データアップロード成功画面１２００を生成し、ブラウザ４０７に送信する。ステップＳ１０５６がこれに該当する。しかし、受け取ったステータス７０６の値が「Ｓｕｃｃｅｓｓ（成功）」以外の場合には、要求処理部４０１は、ジョブＩＤの通知は行わない。ステップＳ１０２２がこれに該当する。
【０１０１】
なお、ジョブＩＤ要求（Ｓ１０２０及びＳ１０５５）は、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ等のＨＴＭＬ技術を用いて、自動的にブラウザ４０７が要求処理部４０１にジョブＩＤ要求を行うことで実現することも可能である。Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ１２０４（図１２）は、自動的に文書データアップロード成功画面がジョブＩＤ要求を行う場合のスクリプトの一例である。
【０１０２】
また、ジョブＩＤ要求（Ｓ１０２０及びＳ１０５５）は、要求処理部４０１が後述するバックエンド処理終了通知（Ｓ１０５４）を受信して、ジョブＩＤをブラウザ４０７に通知（Ｓ１０５６）を行うまで、繰り返し行われるものとする。
【０１０３】
ステップＳ１０５６において、ブラウザ４０７がジョブＩＤ通知を受信して、該ジョブＩＤを文書データアップロード成功画面１２００の認証情報表示領域１２０２に認証情報（パスコード）として表示する。ユーザは、ブラウザ４０７の文書データアップロード成功画面１２００の認証情報表示領域１２０２に表示される認証情報（パスコード）としてのジョブＩＤを取得することができる。以上により、ユーザの印刷対象文書データの登録オペレーションは完了する。
【０１０４】
次に、印刷データの印刷オペレーションについて説明する。
ステップＳ１０６０において、ユーザは、印刷対象文書データの登録オペレーションで登録した文書データを画像形成装置１０４で印刷するために、デバイスブラウザ４０９を操作する。これにより、デバイスブラウザ４０９は、要求処理部４０１にて動作する文書データ印刷アプリケーションと通信する。
【０１０５】
図１４は、デバイスブラウザ４０９に表示される文書データ印刷画面の一例である。
図１４に示す文書データ印刷画面は、ステップＳ１０６０において、要求処理部４０１がデバイスブラウザ４０９からの文書データ印刷画面取得要求を受信した際に、文書データ印刷アプリケーションが生成する。
文書データ印刷画面（図１４）において、認証情報入力フィールド１４０１は、ユーザがステップＳ１０５１で取得したジョブＩＤ（認証情報（パスコード））を入力するフィールドである。ユーザがこの認証情報入力フィールド１４０１にジョブＩＤを入力し、印刷ボタン１４０２を押下すると、デバイスブラウザ４０９から要求処理部４０１に印刷データ要求が送信される。なお、印刷ボタン１４０２が押下されると、デバイスブラウザ４０９により、認証情報入力フィールド１４０１に入力されたジョブＩＤが印刷データ要求のパラメータとして要求処理部４０１に送信される
ステップＳ１０６１において、要求処理部４０１は、デバイスブラウザ４０９から受信したジョブＩＤをパラメータとして、スプールサービス４１２に印刷データ取得要求を送信する。
【０１０６】
ステップＳ１０６２において、スプールサービス４１２は、要求処理部４０１から受信したジョブＩＤに該当する印刷データをブロブストレージサービスから取得して、要求処理部４０１に送信する。
【０１０７】
ステップＳ１０６３において、要求処理部４０１は、デバイスブラウザ４０９にスプールサービス４１２から受信した印刷データを送信する。画像形成装置１０４では、デバイスブラウザ４０９が要求処理部４０１からの印刷データ受信処理を完了すると、ファームウェア（図２（ｂ））が該受信した印刷データの印刷を開始する。以上で、印刷データの印刷オペレーションは完了する。
【０１０８】
次に、印刷対象文書データから印刷データへの変換オペレーションについて説明する。
印刷対象文書データから印刷データへの変換オペレーションは、図１０に示すステップＳ１０３０〜Ｓ１０４２の文書変換シーケンスと、ステップＳ１０４３〜Ｓ１０５３のスプール登録シーケンスに分かれる。なお、本オペレーションは、ユーザがブラウザ４０７及びデバイスブラウザ４０９を操作して行うオペレーションとは非同期でサーバコンピュータ群１０２が実行する。
【０１０９】
まず、文書変換シーケンスから説明する。
ステップＳ１０３０において、バックエンド処理部４０２は、キューストレージサービス４０５に対して定期的にメッセージ取得要求を行う。ステップＳ１０３１にて、バックエンド処理部４０２は、キューよりメッセージが取得できたら、メッセージ内の＜ＭｅｓｓａｇｅＴｅｘｔ＞６０３（図６）よりジョブＩＤを取り出す。
【０１１０】
ステップＳ１０３２において、バックエンド処理部４０２は、Ｓ１０３１で取得したジョブＩＤをパラメータとして、テーブルストレージサービス４０３に対してジョブ・サービス情報取得要求を行い、ステップＳ１０３３にて、ジョブ・サービス情報の応答を得る。本処理では、バックエンド処理部４０２は、まずジョブ管理テーブル（図７）よりジョブＩＤに対応したジョブの情報を取得する。次に、バックエンド処理部４０２は、取得したジョブ情報より次に実行するタスクを提供するサービスのＩＤを取得し、該サービスＩＤに対応したサービス情報をサービステーブル（図８）より取得する。
【０１１１】
次に、ステップＳ１０３４において、バックエンド処理部４０２は、上記Ｓ１０３３にて取得したジョブ・サービス情報内のＤａｔａＩＤ７０７をキーとして、ブロブストレージサービス４０４から上記Ｓ１００４で保存された文書データを取得する。
【０１１２】
次に、ステップＳ１０３５において、バックエンド処理部４０２は、上記Ｓ１０３３にて取得したジョブ情報・サービス情報を元にタスクを実行する。タスクの実行時には、ジョブ情報・サービス情報（特にジョブ管理テーブル（図７）で管理されているパラメータ）及び上記Ｓ１０３４において取得した文書データを引数として渡す。なお、本シーケンスの例では、Ｓ１０３５にて実行されるタスクは、文書変換サービス４１１にて提供されるものである。文書変換サービス４１１は、文書データから画像形成装置１０４が印刷可能な形式の印刷データへの変換処理を実行する。文書変換サービス４１１は、印刷データの変換処理が終了すると、ステップＳ１０３６において、バックエンド処理部４０２にタスク終了の応答を行う。
【０１１３】
ステップＳ１０３７において、バックエンド処理部４０２は、文書変換サービス４１１に対して結果取得要求を行う。ステップＳ１０３８において、文書変換サービス４１１は、結果の応答として印刷データ（変換済み）とタスクの実行結果を返す。
【０１１４】
ステップＳ１０３９において、バックエンド処理部４０２は、上記Ｓ１０３８で取得した印刷データ（変換済み）をブロブストレージサービス４０４に格納する。ステップＳ１０４０において、バックエンド処理部４０２は、テーブルストレージサービス４０３のジョブ管理テーブル（図７）に対してタスクの実行結果を保存する。例えば、ジョブ管理テーブル（図７）内の対応するタスク（処理したジョブＩＤで特定可能）のステータス７０６の値を「Ｓｕｃｃｅｓｓ（成功）」に変更する。
【０１１５】
以上で、文書データを印刷データに変換するタスクの処理が終了する。一連のタスク処理が終了したところで、バックエンド処理部４０２は、次のタスクを実行するためにキューに対してメッセージの追加と削除を行う。
【０１１６】
ステップＳ１０４１において、バックエンド処理部４０２は、キューストレージサービス４０５に上記Ｓ１０３０〜Ｓ１０４０で処理したジョブＩＤのメッセージを追加する。これにより、次に処理すべき（後述するＳ１０４３〜Ｓ１０５３で処理すべき）タスクの処理依頼が行われたことになる。
【０１１７】
次に、ステップＳ１０４２において、バックエンド処理部４０２は、キューストレージサービスより上記Ｓ１０３０〜Ｓ１０４０で処理したメッセージを削除する。これにより、上記Ｓ１０３０〜Ｓ１０４０で処理したタスクに対応したメッセージがキューより削除されタイムアウトによる再実行処理が行われなくなる。
【０１１８】
次に、スプール登録シーケンスを説明する。次の例は、印刷サーバ１０９に印刷データを追加するまでのタスクの流れとなる。
ステップＳ１０４３〜Ｓ１０４６は、上述したステップＳ１０３０〜Ｓ１０３３と同様の処理であるので説明は省略する。
【０１１９】
次に、ステップＳ１０４７において、バックエンド処理部４０２は、Ｓ１０４６にて取得したジョブ情報・サービス情報を元に（内のＤａｔａＩＤ７０７をキーにして）、ブロブストレージサービス４０４から、上記Ｓ１０３９で保存された印刷データの取得を行う。
【０１２０】
次に、ステップＳ１０４８において、バックエンド処理部４０２は、上記Ｓ１０４６にて取得したジョブ情報・サービス情報を元にタスクを実行する。タスクの実行時には、ジョブ情報・サービス情報（特にジョブ管理テーブル（図７）で管理されているパラメータ）及び上記Ｓ１０４７において取得した文書データを引数として渡す。なお、本シーケンスの例では、Ｓ１０４７にて実行されるタスクは、スプールサービス４１２にて提供されるものである。ステップＳ１０４８において実行されたスプールサービス４１２は、与えられたパラメータと印刷データを元に、スプールサービス４１２に印刷データを追加する。本実施例では、スプールサービス４１２は、ジョブＩＤをパラメータとして受け取り、それらの値に関連づけて印刷データを管理する。スプールサービス４１２は、処理が終了すると、ステップＳ１０４９において、バックエンド処理部４０２にタスク終了の応答を行う。
【０１２１】
ステップＳ１０５０において、バックエンド処理部４０２は、スプールサービス４１２に対して結果取得要求を行う。そして、ステップＳ１０５１において、スプールサービス４１２は、バックエンド処理部４０２にタスクの実行結果を返す。
【０１２２】
ステップＳ１０５２において、バックエンド処理部４０２は、テーブルストレージサービス４０３のジョブ管理テーブル（図７）に対してタスクの実行結果を保存する。例えば、ジョブ管理テーブル（図７）内の対応するタスク（処理したジョブＩＤで特定可能）のステータス７０６の値を「Ｓｕｃｃｅｓｓ（成功）」に変更する。
【０１２３】
以上で、スプールサービス４１２に印刷データを追加するタスクの処理が終了する。本例では、印刷データの追加によりジョブが終了するため一連のタスク処理が終了したところで、バックエンド処理部４０２は、キューに対してメッセージの削除を行う。
【０１２４】
ステップＳ１０５３において、バックエンド処理部４０２は、キューストレージサービス４０５より、上記Ｓ１０４３〜Ｓ１０５２で処理したメッセージを削除する。これにより、上記Ｓ１０４３〜Ｓ１０５２で処理したタスクに対応したメッセージがキューより削除され、ジョブが終了する。
【０１２５】
ジョブが終了すると、ステップＳ１０５４において、バックエンド処理部４０２は、終了したジョブのジョブＩＤをバックエンド処理終了通知として、要求処理部４０１に送信する。要求処理部４０１は、要求処理部４０１にバックエンド処理終了通知が送信されることで、ブラウザ４０７からのジョブＩＤ要求に対して、ジョブＩＤを返す準備が完了する。即ち、上記バックエンド処理終了通知（Ｓ１０５４）を受信した後に、ブラウザ４０７からジョブＩＤ要求（Ｓ１０５５）を受けると、要求処理部４０１は、ジョブＩＤをブラウザ４０７に通知する（Ｓ１０５６）。
以上、図１〜図９で示したシステム構成のネットワークプリントシステムにおいて想定される一般的なネットワークプリントシステム全体の処理の流れを説明した。
【０１２６】
図１０に示されるように、ユーザが指示した文書データの印刷要求の結果は、Ｓ１００３で文書データのアップロードが開始されてから、Ｓ１０４８で印刷データがスプールサービス４１２が完了するまで、ユーザが操作するブラウザ４０７に返ってこない。また、サーバコンピュータ群１０２が実行するステップＳ１０３０〜Ｓ１０４２の文書変換シーケンスと、ステップＳ１０４３〜Ｓ１０５３までのスプール登録シーケンスは、非同期で実行される。そのため、ユーザが指示した文書データの印刷要求の結果がいつ返ってくるのか、その時間は保証されていない。その時間は、ユーザが文書データの印刷要求を行った時点での、タスク実行中のバックエンド処理部４０２のインスタンスの数（又はキューストレージサービス４０５に保存されたメッセージの数）、及びバックエンド処理部４０２のインスタンスの総数に依存する。つまり、ユーザが文書データの印刷要求を行った時点での、タスク実行中のバックエンド処理部４０２のインスタンスの数（又は、メッセージの数）、及び、バックエンド処理部４０２のインスタンスの総数によっては、すぐに印刷要求が処理される可能性もあるが、延々と印刷要求の処理の開始をユーザが待たなければならない可能性もある。即ち、図１０に示されるクラウドコンピューティングの技術を用いたネットワークプリントシステムには、このような課題がある。
【０１２７】
以下、図１０に示されるクラウドコンピューティングの技術を用いたネットワークプリントシステムの課題を解決する本発明におけるネットワークプリントシステム全体の処理の流れを説明する。
図１５は、本発明におけるネットワークプリントシステム全体の処理（バックエンド処理部を先行して動作させる一連の処理）の流れを示すシーケンス図である。
図１５と図１０との差異は、印刷対象文書データの登録オペレーションにある。ユーザがクライアントコンピュータ１０５のブラウザ４０７にて操作を開始するところから一連の処理が行われるのは図１０と同様である。ブラウザ４０７は要求処理部４０１にて動作する文書データアップロードアプリケーションと通信する。
【０１２８】
ステップＳ１５０１において、ブラウザ４０７は要求処理部４０１に文書アップロード画面取得要求を送信する。
要求処理部４０１は、ブラウザ４０７からの文書アップロード画面取得要求を受信すると、ステップＳ１５０２において、サーバコンピュータ群１０２で稼働しているバックエンド処理部４０２のインスタンス総数を取得する。同時に、要求処理部４０１は、テーブルストレージサービス４０３で管理されているバックエンド処理状況テーブル（後述する図１７）を参照して、現在タスクを実行中のバックエンド処理部４０２のインスタンスの数を取得する。
【０１２９】
サーバコンピュータ群１０２で稼働しているバックエンド処理部４０２のインスタンス総数に対して、現在タスクを実行中のバックエンド処理部４０２のインスタンスが少ない場合には、現在タスクを実行中でないバックエンド処理部４０２が存在することとなる。このため、新たに送信されてくるリクエストに対応するジョブの処理が、バックエンド処理部４０２により即時実行可能となる。よって、要求処理部４０１は、その結果と共に、予め定義された印刷対象文書データの登録オペレーションのシーケンスに該当するシーケンスＩＤをテーブルストレージサービス４０３に送信する。シーケンスＩＤは、上記Ｓ１５０１で受信した文書アップロード画面取得要求に対応して予め定められているものであり、シーケンステーブル（図９）で定義されるＲｏｗＫｅｙ９０３に格納された値となるのは図１０のシーケンスと同様である。
【０１３０】
ステップＳ１５０３において、要求処理部４０１は、テーブルストレージサービス４０３のサービスシーケンステーブル（図９）に対して、シーケンス取得要求を行う。このシーケンス取得要求では、Ｓ１５０１で受信した文書アップロード画面取得要求に対応するシーケンスＩＤがパラメータとして送信される。
そして、ステップＳ１５０４において、テーブルストレージサービス４０３は、要求処理部４０１から受信したシーケンスＩＤに該当するシーケンスデータを要求処理部４０１に送信する。
【０１３１】
ステップＳ１５０５において、要求処理部４０１は、テーブルストレージサービス４０３のジョブ管理テーブル（図７）に対して、ジョブ追加要求を行う。このジョブ追加要求では、上記Ｓ１５０４において取得したシーケンスデータ等をパラメータとして送信する。
【０１３２】
ジョブ追加要求を受けると、ステップＳ１５０６において、テーブルストレージサービス４０３は、ジョブ追加要求で受信したパラメータを用いてジョブの生成追加処理を行い、生成したジョブをジョブ管理テーブルに追加する。さらに、テーブルストレージサービス４０３は、前記生成したジョブのジョブＩＤ（ＰａｒｔｉｔｉｏｎＫｅｙ７０２とＲｏｗＫｅｙ７０３）を要求処理部４０１に送信する。
【０１３３】
そして、要求処理部４０１は、テーブルストレージサービス４０３からジョブＩＤを受信すると、要求処理部４０１にて動作する文書データアップロードアプリケーションが、文書データアップロード画面（図１１）を生成する。
【０１３４】
ステップＳ１５０７において、要求処理部４０１は、文書データアップロードアプリケーションが生成した文書データアップロード画面（図１１）を、ブラウザ４０７に送信する。なお、このとき文書データアップロード画面（図１１）のアップロードボタン１１０４にはシーケンスＩＤは関連付けられていない。
【０１３５】
ステップＳ１５０８において、文書データアップロード画面（図１１）のアップロードボタン１１０４をユーザが押下すると、対象文書１１０２に入力された文書データとシーケンスＩＤをパラメータとする、文書アップロード要求がブラウザ４０７から要求処理部４０１に送信される。
【０１３６】
ステップＳ１５０９において、要求処理部４０１は、ブラウザ４０７から文書アップロード要求を受け付ける。そして、要求処理部４０１は、文書アップロード要求のパラメータとして受信した文書データをブロブストレージサービス４０４に保存する。ブロブストレージサービス４０４は、文書データの保存を完了すると、要求処理部４０１に対して保存場所情報（ＤａｔａＩＤ）を返す。
【０１３７】
次に、ステップＳ１５１０において、要求処理部４０１は、テーブルストレージサービス４０３のジョブ管理テーブル（図７）に対して、ステップＳ１５０６で取得したジョブＩＤに対するジョブ情報を更新する。このジョブ情報の更新の際には、ステップＳ１５０９においてブロブストレージサービス４０４に保存した文書データの保存場所情報（ＤａｔａＩＤ）等をパラメータとして送信する。
【０１３８】
ステップＳ１５１１において、要求処理部４０１は、キューストレージサービス４０５に対して、メッセージ追加要求を行う。このメッセージ追加要求では、上記Ｓ１５０６で受信したジョブＩＤ（ＰａｒｔｉｔｉｏｎＫｅｙ７０２とＲｏｗＫｅｙ７０３）を含むキューメッセージ（図６に示したような）をパラメータとして送信する。これにより、キューストレージサービス４０５は、メッセージの追加処理を行う。詳細には、キューストレージサービス４０５は、メッセージ追加要求のパラメータとして受け取ったキューメッセージをキューストレージサービス４０５内のキューに格納する。
【０１３９】
そして、要求処理部４０１で動作する文書データアップロードアプリケーションは、上記ジョブＩＤを用いて、文書データアップロード成功画面（図２０）を生成する。生成された文書データアップロード成功画面（図２０）は、ステップＳ１５１２において、要求処理部４０１によりブラウザ４０７に送信される。ブラウザ４０７は、要求処理部４０１から送信された文書データアップロード成功画面（図２０）を受信して画面に表示する。
【０１４０】
図２０は、図１５に示すシーケンスにおいて、ブラウザ４０７に表示される文書データアップロード成功画面の一例を示す図である。
文書データアップロード成功画面（図２０）において、アップロード完了メッセージ領域２００１には、ユーザに対して文書のアップロードが正常に終了したことを示すメッセージが表示されている。
【０１４１】
認証情報表示領域２００２には、後述するステップＳ１５５０において、ユーザがデバイスブラウザ４０９を操作して、要求処理部４０１に印刷データ要求を送信する際に必要となる認証情報（パスコード）が表示されている。この認証情報（パスコード）には、本実施例では、上記Ｓ１５０６にて要求処理部４０１がテーブルストレージサービス４０３から受信したジョブＩＤが利用される。文書データアップロード成功画面（図２０）は、図１１で示した文書データアップロード成功画面とは異なり、はじめから認証情報表示領域２００２にジョブＩＤが表示されている。また、文書データアップロード成功画面（図２０）には、更新ボタン１２０３は存在しない。
【０１４２】
本発明では、ユーザは、ブラウザ４０７に文書データアップロード成功画面（図２０）が表示された時点で、認証情報表示領域２００２に表示される認証情報（パスコード）としてのジョブＩＤを取得することができる。以上により、ユーザの印刷対象文書データの登録オペレーションは完了する。
【０１４３】
ここで、図１６を参照して、本発明におけるユーザの印刷対象文書データの登録オペレーションをより詳細に説明する。
図１６は、本発明の実施例におけるユーザの印刷対象文書データの登録オペレーションを詳細に示すフローチャートである。
ステップＳ１６０１において、ブラウザ４０７は要求処理部４０１に文書アップロード画面取得要求を送信する。本処理は図１５のＳ１５０１に該当する。
ステップＳ１６０２において、要求処理部４０１は、サーバコンピュータ群１０２で稼働しているバックエンド処理部４０２のインスタンスの中でタスク実行中（即ちジョブの処理を実行中）のインスタンスの数を確認するために、テーブルストレージサービス４０３で保存されているバックエンド処理状況テーブル（図１７）に登録されているデータの件数を取得する。
【０１４４】
図１７は、テーブルストレージサービス４０３で管理されているバックエンド処理状況テーブルの一例を示す図である。
バックエンド処理状況テーブル（図１７）において、ＥＴａｇ１７０１は、テーブルストレージサービス４０３が自動的に設定する値で、列データが更新された際に一意の値が書き込まれる。ＰａｒｔｉｔｉｏｎＫｅｙ１７０２とＲｏｗＫｅｙ１７０３は、テーブルの列を一意に識別するＩＤを構成する情報である。バックエンド処理状況テーブルでは、これら二つの値をＩＤとして管理する。これら１７０２と１７０３の値は、図１５のＳ１５０６で要求処理部４０１が受信したジョブＩＤの値（即ち、図１５のＳ１５１１で要求処理部４０１がメッセージ追加要求を行った際のジョブＩＤの値）であり、図７のジョブ管理テーブルと同様の管理方法により二つの値として管理される。
登録時間１７０４は、バックエンド処理部４０２がバックエンド処理状況テーブルに情報を追加した時刻をテーブルストレージサービス４０３が自動的に設定する。
【０１４５】
また、ステップＳ１６０３において、要求処理部４０１は、サーバコンピュータ群１０２で稼働しているバックエンド処理部４０２のインスタンスの総数を取得する。
図１８は、サーバコンピュータ群１０２で稼働しているバックエンド処理部４０２のインスタンスの総数を定義する情報（設定ファイル）の一例を示す図である。
図１８においては、情報をＸＭＬファイルの形式で定義している。情報定義ＸＭＬファイル１８０１は、インスタンス数定義情報１８０２を含む。この情報定義ＸＭＬファイル１８０１は、サーバコンピュータ群１０２を構成するそれぞれのサーバコンピュータの間接記憶部３０３にそれぞれ保存されている。即ち、サーバコンピュータ群１０２を構成するサーバコンピュータの数だけ、情報定義ＸＭＬファイル１８０１（同一内容のファイル）が存在することになる。
【０１４６】
図１６のＳ１６０３では、要求処理部４０１は、サーバコンピュータ群１０２内を構成するいずれかのサーバコンピュータの間接記憶部３０３に保存されている情報定義ＸＭＬファイル１８０１のインスタンス数定義情報１８０２に記載された数値を読み取って、バックエンド処理部４０２のインスタンス総数を解釈する。
【０１４７】
次に、ステップＳ１６０４において、要求処理部４０１は、上記Ｓ１６０２で取得したタスク実行中のインスタンスの数と、上記Ｓ１６０３で取得したインスタンス総数を比較する。この比較結果に応じて、要求処理部４０１は、ユーザがこれから文書データをアップロードに対してバックエンド処理部４０２で実行される予定のタスク（新たなリクエストに対応するジョブの処理）が即時実行可能かどうかを判断する。
【０１４８】
なお、インスタンス総数がタスク実行中のインスタンスの数を超えていない（タスク実行中でない（ジョブの処理を実行中でない）インスタンスが存在しない）場合（Ｓ１６０４でＮｏ）、要求処理部４０１は、バックエンド処理部４０２がタスク（即ち、リクエストに対応するジョブの処理）を即時実行可能な状態ではないと判断する。一方、インスタンス総数がタスク実行中のインスタンスの数を超えている（タスク実行中でないインスタンスが存在する）場合（Ｓ１６０４でＹｅｓ）、要求処理部４０１は、バックエンド処理部４０２がタスクを即時実行可能な状態であると判断する。
【０１４９】
ステップＳ１６０４において、バックエンド処理部４０２がタスクを即時実行可能な状態ではないと要求処理部４０１が判断した場合には、ステップＳ１６０８において、要求処理部４０１は文書アップロード待機画面（後述する図２１）を生成する。即ち、要求処理部４０１は、ブラウザ４０７から新たなリクエストを受け付けないように制御する。
【０１５０】
一方、ステップＳ１６０４において、バックエンド処理部４０２がタスクを即時実行可能な状態であると要求処理部４０１が判断した場合には、要求処理部４０１は、ステップＳ１６０５に処理を進める。ステップＳ１６０５では、要求処理部４０１は、テーブルストレージサービス４０３のサービスシーケンステーブルに対して、シーケンス取得要求を行う。これらステップＳ１６０２〜Ｓ１６０４の処理が図１５のＳ１５０２に該当する。即ち、要求処理部４０１は、ブラウザ４０７から新たなリクエストを受け付け可能とするように制御する。
【０１５１】
ステップＳ１６０５の処理は、ステップＳ１５０３、Ｓ１５０４の処理と同様である。ステップＳ１６０６の処理は、ステップＳ１５０５、Ｓ１５０６の処理と同様である。これらの処理についての説明は省略する。
【０１５２】
次に、ステップＳ１６０７において、要求処理部４０１は、文書アップロード画面（図１１）を生成する。
【０１５３】
ステップＳ１６０９において、要求処理部４０１は、ブラウザ４０７にステップＳ１６０７において生成した文書アップロード画面（図１１）、もしくは、ステップＳ１６０８において生成した文書アップロード待機画面（後述する図２１）を送信する。これにより、ブラウザ４０７は要求処理部４０１から送信された画面を受信する。
【０１５４】
ステップＳ１６１０において、ブラウザ４０７は要求処理部４０１から受信した画面を取得して、該取得した画面を表示する。本処理は図１５のＳ１５０７と同様の処理であるので詳細な説明は省略する。
【０１５５】
図２１は、ブラウザ４０７に表示される文書アップロード待機画面の一例を示す図である。
文書アップロード待機画面（図２１）において、２１０１は、アップロード待機メッセージ領域である。アップロード待機メッセージ領域２１０１には、ユーザに対して、バックエンド処理部４０２がタスクを即時実行可能な状態ではないため、待機した後、文書のアップロード画面要求を再実行してもらうことを示すメッセージが表示される。
【０１５６】
次に、ステップＳ１６１１において、ブラウザ４０７は、上記Ｓ１６１０で受信した画面が上記Ｓ１６０８で生成された文書アップロード待機画面（図２１）であった場合には、ブラウザ４０７は、一連の処理を終了する。
【０１５７】
一方、ステップＳ１６１１において、ブラウザ４０７が受信した画面がＳ１６０７で生成した文書アップロード画面（図１１）であった場合には、ブラウザ４０７は、ステップＳ１６１２に処理を進める。ステップＳ１６１２では、ブラウザ４０７は、文書アップロード画面（図１１）にてユーザからの文書アップロードを受け付け、ステップＳ１６１２に処理を進める。ステップＳ１６１２の処理は、図１５のＳ１５０８と同様の処理であるので説明は省略する。
【０１５８】
ステップＳ１６１３において、要求処理部４０１は、ブラウザ４０７から文書データを受信し、Ｓ１６１４に処理を進める。ステップＳ１６１４の処理は、図１５のＳ１５０９と同様の処理である。ステップＳ１６１５の処理は、図１５のＳ１５１０、Ｓ１５１１と同様の処理である。ステップＳ１６１６の処理は、図１５のＳ１５１２と同様の処理である。これらの処理については説明は省略する。
【０１５９】
次に、ステップＳ１６１７において、ブラウザ４０７は、文書データアップロード成功画面（図２０）を表示する。文書データアップロード成功画面の認証情報表示領域２００２には、予め上記Ｓ１６０６（図１５のＳ１５０６）で取得したジョブＩＤが表示される。また、文書データアップロード成功画面（図２０）には、図１２に示した文書データアップロード成功画面１２００とは異なり、更新ボタン１２０３も表示されない。以上により、ユーザの印刷対象文書データの登録オペレーションは完了する。
【０１６０】
図１５のステップＳ１５２０〜Ｓ１５４３の印刷対象文書データから印刷データへの変換オペレーションは、図１０に示されるステップＳ１０３０〜Ｓ１０５３と同様の処理である。ただし、メッセージ取得要求を行うステップＳ１５２０、Ｓ１５３３、及び、メッセージ削除要求を行うステップＳ１５３２、Ｓ１５４３のみ、図１０のシーケンスとは異なり、バックエンド処理部４０２がバックエンド処理状況テーブル（図１７）への情報の追加及び削除を行う。その際のフローチャートを図１９に示す。
【０１６１】
図１９は、本発明の実施例におけるバックエンド処理部が起動及び終了時にバックエンド処理状況テーブルを更新する一連の処理の流れを示すフローチャートである。
ステップＳ１９０１において、バックエンド処理部４０２は、キューストレージサービス４０５に対して定期的にメッセージ取得要求を行う。
メッセージ取得要求を受けると、キューストレージサービス４０５は、ステップＳ１９０２において、キューよりメッセージ（例えば図６）の取得を試み、メッセージが取得できたら、＜ＭｅｓｓａｇｅＴｅｘｔ＞６０３よりジョブＩＤを取り出し、バックエンド処理部に送信する。これにより、バックエンド処理部４０２は、ジョブＩＤを受信する。
【０１６２】
キューストレージサービス４０５からジョブＩＤを受信すると、バックエンド処理部４０２は、ステップＳ１９０３において、テーブルストレージサービス４０３に、バックエンド処理状況テーブル（図１７）への起動情報追加要求を行い、上記Ｓ１９０２で取得したジョブＩＤを送信する。
起動情報追加要求を受けると、テーブルストレージサービス４０３は、ステップＳ１９０４において、バックエンド処理状況テーブル（図１７）へ受信したジョブＩＤを登録する。
【０１６３】
次に、ステップＳ１９０５において、バックエンド処理部４０２は、テーブルストレージサービス４０３に対してジョブ・サービス情報取得要求を行い、上記１９０２で取得したジョブＩＤを送信する。
【０１６４】
ジョブ・サービス情報取得要求を受けると、テーブルストレージサービス４０３は、ステップＳ１９０６において、まずジョブ管理テーブル（図７）よりジョブＩＤ（７０２，７０３）に対応したジョブの情報を取得する。次に、テーブルストレージサービス４０３は、上記取得したジョブ情報より次に実行するタスクを提供するサービスのＩＤ（ＬａｓｔＴａｓｋ７０８の次のタスクに対応するタスクのサービスＩＤ）を取得する。さらに、テーブルストレージサービス４０３は、サービステーブル（図８）よりサービスＩＤ（８０３）に対応したサービス情報を取得する。さらに、テーブルストレージサービス４０３は、上記取得したジョブ情報及びサービス情報（ジョブ情報・サービス情報）をバックエンド処理部４０２に送信する。これにより、バックエンド処理部４０２は、ジョブ情報・サービス情報を受信する。
ステップＳ１９０７において、バックエンド処理部４０２は、取得したジョブ情報・サービス情報を元にタスクを実行する。
【０１６５】
ステップＳ１９０８にて、バックエンド処理部４０２は、タスクの実行の終了を確認すると、テーブルストレージサービス４０３に、バックエンド処理状況テーブル（図１７）への起動情報削除要求を行い、上記Ｓ１９０２において取得したジョブＩＤを送信する。
【０１６６】
起動情報削除要求を受けると、テーブルストレージサービス４０３は、ステップＳ１９０９において、バックエンド処理状況テーブル（図１７）に登録されている情報の中で、受信した起動情報削除要求に含まれるジョブＩＤに該当する情報を削除する。
以上により、バックエンド処理部４０２がタスクを実行する前後で図１９に示すフローチャートの処理を行うことで、テーブルストレージサービス４０３が管理するバックエンド処理状況テーブル（図１７）への情報の追加、及び削除が行われる。これにより、要求処理部４０１は、図１６のＳ１６０２の処理を実行することが可能となる。
【０１６７】
以上の処理により、ユーザの文書データの印刷要求を行った時点での、タスク実行中のバックエンド処理部４０２のインスタンスの数、及び、バックエンド処理のインスタンスの総数で、ユーザからの文書データの印刷要求が即時に実行可能かを判断できる。
【０１６８】
なお、図１６のＳ１６０２〜Ｓ１６０４では、タスク実行中のバックエンド処理部４０２のインスタンスの数と、バックエンド処理のインスタンスの総数を比較し、バックエンド処理のインスタンスの総数がタスク実行中のバックエンド処理部４０２のインスタンスの数を超える場合には、新たなリクエストを即時実行可能であると判断し、一方、バックエンド処理のインスタンスの総数がタスク実行中のバックエンド処理部４０２のインスタンスの数を超えない場合には、新たなリクエストを即時実行可能でないと判断する構成について示した。
【０１６９】
しかし、ユーザの文書データの印刷要求を行った時点での、タスク実行中のバックエンド処理部４０２のインスタンスの数の代わりに、ユーザの文書データの印刷要求を行った時点での、キューストレージサービス４０５に保存されたメッセージの数、又は、ジョブ管理テーブルに保持された未終了のジョブの数を用いてもよい。なお、未終了のジョブとは、Ｓｔａｔｕｓ７０６が、Ｒｅａｄｙ（準備完了）、Ｐｒｏｃｅｓｓｉｎｇ（処理中）のジョブを示す。
【０１７０】
この構成では、図１６のＳ１６０２〜Ｓ１６０４は次のようになる。
要求処理部４０１は、図１６のＳ１６０２において、キューストレージサービス４０５に保存されているメッセージの数（又は、ジョブ管理テーブルに保持された未終了のジョブの数）を取得する。また、要求処理部４０１は、Ｓ１６０３において、バックエンド処理のインスタンスの総数を取得する。さらに、要求処理部４０１は、Ｓ１６０４において、メッセージの数（又は、未終了のジョブの数）と、バックエンド処理のインスタンスの総数を比較する。そして、要求処理部４０１は、バックエンド処理のインスタンスの総数がメッセージの数（又は、未終了のジョブの数）を超える場合には、新たなリクエストを即時実行可能であると判断する。一方、要求処理部４０１は、バックエンド処理のインスタンスの総数がメッセージの数（又は、未終了のジョブの数）を超えない場合には、新たなリクエストを即時実行可能でないと判断する。このように構成してもよい。
【０１７１】
以上の構成により、ユーザの文書データの印刷要求を行った時点での、キューストレージサービス４０５に保存されているメッセージの数（又は、ジョブ管理テーブルに保持された未終了のジョブの数）、及び、バックエンド処理のインスタンスの総数で、ユーザからの文書データの印刷要求が即時に実行可能かを判断することができる。
【０１７２】
以上示したように、本実施例のネットワークプリントシステムでは、ユーザがアップロードした文書のサーバ処理が完了するのを待たずに、ユーザとネットワークプリントシステムとの接続を解除することで、ユーザビリティを向上させることができる。即ち、クライアント端末からの文書のアップロードに対するサーバ側の処理の完了を待つことなく、クライアント端末に対して画像形成装置での印刷処理時に必要となる認証情報を返すことが可能となる。
以上、本発明のネットワークシステムの一実施例としてのネットワークプリントシステムについて説明した。
【０１７３】
なお、本発明のネットワークシステムは、上述のような、ネットワークプリントシステムに限定されるものではない。
例えば、サーバコンピュータ群１０２から利用可能なコンピュータリソースは、文書サーバ１０３、画像形成装置１０４、文書取り出しサーバ１０７、文書変換サーバ１０８、印刷サーバ１０９に限定されるものではない。サーバコンピュータ群１０２のバックエンド処理部４０２の指示により、処理を実行するコンピュータリソースであればどのような処理を実行するサーバ等であってもよい。例えば、データの解析処理や統計処理のようなデータ処理を行うデータ処理サーバや、データ処理結果を保持するデータサーバであってもよい。そして、ブラウザ４０７から要求処理部４０１に送信されるリクエストは、ブラウザ４０７からアップロードされるデータをデータ処理（解析処理や統計処理等）し、データ処理結果をデータサーバに格納する処理の依頼（データ処理依頼）であってもよい。
【０１７４】
このデータ処理依頼を要求処理部４０１が受け付けると、該受け付けと非同期で、バックエンド処理部４０２が前記データ処理依頼に対応するジョブを処理する。即ち、バックエンド処理部４０２は、前記データ処理依頼に対応するデータのデータ処理をデータ処理サーバを用いて実行し、また、データ処理結果をデータサーバに格納し、データ処理依頼に対応するジョブの処理を完了する。なお、この例の場合でも、要求処理部４０１は、図１５に示したように、前記データ処理依頼に対応するジョブの処理完了を待つことなく、前記データ処理依頼に対応するジョブの処理結果（データ処理結果）を取得するための認証情報をブラウザ４０７に送信する。また、要求処理部４０１は、図１６に示したように、データ処理依頼を受け付ける前に、データ処理依頼に対応するジョブの処理をバックエンド処理部４０２により即時実行可能かどうかを判断する。そして、即時実行可能でない場合には、前記データ処理依頼を受け付けないように制御し、一方、即時実行可能な場合には、前記データ処理依頼を受け付け可能に制御する。
【０１７５】
以上示したように、本発明によれば、クライアントコンピュータからのリクエストに対するネットワークシステム側の処理が完了するのを待たずに、クライアントコンピュータとネットワークシステムとの接続を解除することが可能となる。これにより、ユーザビリティを向上させることができる。この結果、クライアントコンピュータ側では、先行して送信したリクエストに対するネットワークシステム側での処理完了を待つことなく、次のリクエストをネットワークシステムに送信すること等が可能となる。
【０１７６】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１７７】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１７８】
１００    ネットワーク
１０１    インターネット
１０２    サーバコンピュータ群
１０４    画像形成装置
１０５    クラインとコンピュータ
１０８    文書変換サーバ
１０９    印刷サーバ
４０１    要求処理部
４０２    バックエンド処理部
４０３    テーブルストレージサービス
４０４    ブロブストレージサービス
４０５    キューストレージサービス
４１１    文書変換サービス
４１２    スプールサービス
【図１】
0005586985.tif 000002
【図２】
0005586985.tif 000003
【図３】
0005586985.tif 000004
【図４】
0005586985.tif 000005
【図５】
0005586985.tif 000006
【図７】
0005586985.tif 000007
【図８】
0005586985.tif 000008
【図９】
0005586985.tif 000009
【図１１】
0005586985.tif 000010
【図１２】
0005586985.tif 000011
【図１３】
0005586985.tif 000012
【図１４】
0005586985.tif 000013
【図１６】
0005586985.tif 000014
【図１７】
0005586985.tif 000015
【図１９】
0005586985.tif 000016
【図２０】
0005586985.tif 000017
【図２１】
0005586985.tif 000018
【図６】
0005586985.tif 000019
【図１０】
0005586985.tif 000020
【図１５】
0005586985.tif 000021
【図１８】
0005586985.tif 000022