ポーリングとは、クライアントがホストに要求をした処理の経過や完了を確認するために、クライアントが一定間隔でホストに処理の経過状況を問い合わせる処理のことである。
印刷データ処理とは、例えば、ユーザーが印刷したいコンテンツを、MFP(Multi Function Peripheral)やプリンタと言った画像形成装置が印刷できるようなデータへ変換する処理のことを指す。
コンテンツIDとは、例えば、各コンテンツを一意に定めるためにコンテンツ毎に割り振られた固有情報を指す。この場合、コンテンツが異なればコンテンツIDは異なる。
印刷データとは、例えば、コンテンツを印刷データ処理によって変換処理したデータのことであり、PDL(Page Description Language)、PDF(Portable Document Format)、ラスタイメージ等がある。
実施例1のプリントシステムを構成している各装置について、図1を参照して詳細に説明する。図1には、プリントシステムを構成している各装置がネットワーク100を介して接続されている様子が示されている。プリントシステムを構成している各装置とは、サーバーコンピュータ群102、文書サーバー103、画像形成装置104、クライアントコンピュータ105である。
ネットワーク100は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット101は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット101により、サーバーコンピュータ群102と文書サーバー103が属するネットワーク100と、画像形成装置104とクライアントコンピュータ105が属するネットワーク100とは、ファイアウォールを越えて通信が可能である。ネットワーク100、インターネット101は、例えば、TCP/IPプロトコルなどをサポートする通信回線網であり有線・無線は問わない。実施例1の図1において、サーバーコンピュータ群102は、1台のサーバーとして示されているが複数台のサーバーコンピュータで構成されている。
次に、図1のプリントシステムを構成している各装置の内部構成について詳細に説明する。始めに、画像形成装置104の内部構成について図2(a)を用いて説明する。図2(a)は、画像形成装置104の内部構成を例示するブロック図である。なお、本発明の実施例1のデバイスは、画像形成装置104となる。
画像形成装置104は、画像処理ユニット1041、および印刷ユニット1042から構成される。画像処理ユニット1041は、CPU1043、直接記憶部1044、間接記憶部1045、ユーザーインターフェース1047、外部インターフェース1048から構成されている。
CPU1043は、所定のプログラムを実行し、画像処理装置104の各種制御を指示するユニットである。CPU1043は、CPU(Central Processing Unit)により実現される。直接記憶部1044は、CPU1043がプログラムを実行する際に使用するワークメモリであり、CPU1043が実行するプログラムは直接記憶部1044にロードされる。直接記憶部1044は、RAM(Random Access Memory)により実現される。間接記憶部1045は、アプリケーションプログラム、およびプラットフォームプログラムを含む各種プログラムが記憶されている。間接記憶部1045に記憶されている各種プログラムは、CPU1043がプログラムを実行する際に直接記憶部1044へ移動する。間接記憶部1045は、SSD(Solid State Drive)、または、HDD(Hard Disc Drive)により実現される。なお、CPU1043はマルチプロセッサでも良い。
ここで、プラットフォームについて詳細に説明する。プラットフォームの実現により、ユーザーが独自に開発した新しいアプリケーションを画像形成装置102上で実行できる他、画像形成装置104の操作画面をカスタマイズすることが可能になる。
プラットフォームの実現方法について説明する。CPU1043は、間接記憶部1045に記憶されたプラットフォームプログラムを直接記憶部1044に移動する。移動が完了するとCPU1043は、プラットフォームプログラムを実行することができる状態になる。本発明の実施例1では、CPU1043がプラットフォームプログラムを実行することを、プラットフォームが起動すると称する。なお、プラットフォームは、画像形成装置104のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。
プラットフォーム上でアプリケーションプログラムを実行する方法について詳細に説明する。本発明の実施例1において、プラットフォーム上には、印刷要求を受け付ける印刷ソフトウェアが動作している。印刷ソフトウェアは、ネットワーク100、またはインターネット101を介して接続されているデバイスから、例えば、HTTP(Hyper Text Transfer Protocol)と言った通信プロトコルによって印刷データを受信できる。印刷ソフトウェアは、受信した印刷データをファームウェアに送信し、印刷データを受信したファームウェアは印刷データの描画処理を開始する。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置104の制御を実現することができる。
アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部1045に記憶されたアプリケーションプログラムを直接記憶部1044に移動する。移動が完了すると、プラットフォームはアプリケーションプログラムを実行することができる状態になる。そして、プラットフォームはアプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本発明の実施例1ではプラットフォームアプリケーションと呼ぶ。さらに、プラットフォームは、本発明の実施例1で開示するフローチャートの各処理の一部を行うことが可能である。
ユーザーインターフェース1047は、ユーザーからの処理依頼を受け付けるために必要なユニットである。例えば、キーボード、マウス等を通してユーザーが入力した指示に応じた信号を受け付ける。外部インターフェース1048は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリ等の外付け記憶装置、またはネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。画像形成装置104は、ネットワーク100、およびインターネット101を介して、クライアントコンピュータ105、サーバーコンピュータ群102等と通信可能である。
2番目に、サーバーコンピュータ群102、文書サーバー103、クライアントコンピュータ105を含む情報処理装置の内部構成について図2(b)を用いて説明する。図2(b)は、情報処理装置106の内部構成を例示するブロック図である。情報処理装置106は、ユーザーインターフェース1061、CPU1062、直接記憶部1063、間接記憶部1064、外部インターフェース1065から構成されている。
ユーザーインターフェース1061は、ユーザーからの処理依頼を受け付けるために必要なユニットである。例えば、キーボード、マウス等を通してユーザーが入力した指示に応じた信号を受け付ける。
CPU1062は、所定のプログラムを実行し情報処理装置106の各種制御を指示するユニットである。CPU1062は、CPUにより実現される。直接記憶部1063は、CPU1062がプログラムを実行する際に使用するワークメモリであり、CPU1062が実行するプログラムは直接記憶部1063にロードされる。直接記憶部1063は、RAMで構成されている。間接記憶部1064は、アプリケーションプログラム、およびOS(Operating System)を含む各種プログラムが記憶されている。間接記憶部1064に記憶されている各種プログラムは、CPU1062がプログラムを実行する際に直接記憶部1063へ移動する。間接記憶部1064は、ROM、または、HDDで構成されている。外部インターフェース1065は、ネットワーク100に接続されており、ネットワーク100に接続されている他の装置と通信が可能となる。
次に、実施例1のプリントシステムにおける各装置が持つ機能について図3を参照しながら詳細に説明する。図3は、プリントシステムにおける各装置の機能ブロック図である。
始めに、サーバーコンピュータ群102の機能について説明する。サーバーコンピュータ群102には、要求受信部4011、バックエンド処理部4021、キューサービス405、ストレージ406の機能がある。本発明の実施例1では、要求受信部4011を持つサーバーコンピュータが少なくとも1台以上は存在する。また、バックエンド処理部4021を持つサーバーコンピュータが少なくとも1台以上は存在する。また、キューサービス405とストレージ406の両方の機能を持つサーバーコンピュータが少なくとも1台存在する。なお、サーバーコンピュータ群102を情報処理システムと呼び、本発明の各実施例は情報処理システム制御方法の実施例でもある。
要求受信部4011は、クライアントコンピュータ105、または画像形成装置104から送られてきた処理依頼を受け付ける機能を持つ。バックエンド処理部4021は、処理プログラムを用いて処理依頼に対する処理を行う機能を持つ。具体的には、バックエンド処理部4021は、バックエンド処理部4021を実行しているサーバーコンピュータのメモリに処理プログラムをロードし処理を行う。要求受信部4011、およびバックエンド処理部4021は、図2(b)の間接記憶部1064に保存されている要求受信プログラム、またはバックエンド処理プログラムが、直接記憶部1063にロードされて、CPU1062により実行されることで実現される。
キューサービス405は、次のような機能を持つ。1つ目は、要求受信部4011とバックエンド処理部4021とが非同期でデータ通信するための機能を持つ。2つ目は、キューに追加されているキューメッセージを不可視、または可視にする機能を持つ。
1つ目の機能について説明する。要求受信部4011とバックエンド処理部4021は次のような方法で通信する。始めに、ユーザーからの処理依頼を受けた要求受信部4011は、ユーザーからの処理依頼に応じたキューメッセージと呼ばれるチケットを作成する。この際、キューメッセージに対応した受付IDも作成する。なお、キューメッセージと受付IDについては後述する。キューメッセージは要求受信部4011によってキューに格納される。バックエンド処理部4021はキューからキューメッセージを取得する。バックエンド処理部4021は、キューメッセージを取得し、キューメッセージを参照してユーザーからの処理依頼を処理する。これにより、ユーザーからの処理依頼を解決することになる。このように、キューサービス405を利用することで要求受信部4011とバックエンド処理部4021は非同期で通信を行うことが可能になる。1つ目の機能のさらに詳細な説明と2つ目の機能の説明については後述する。なお、キューサービス405は、図2(b)の間接記憶部1064に保存されているキューサービスプログラムが、直接記憶部1063にロードされて、CPU1062により実行されることで実現される。また、キューは間接記憶部1064によって実現される。
ストレージ406は、バックエンド処理部4021により処理された実行結果のデータを始めとする各種データを保存しておく機能を持つ。ストレージ406は図2(b)の間接記憶部1046によって実現される。以上がサーバーコンピュータ群102の機能の説明になるが、さらに詳細な説明については後述する。
次に、文書サーバー103の機能について説明する。文書サーバー103は、文書リポジトリ301の機能を持つ。文書リポジトリ301は、図2(b)の間接記憶部1046によって実現される。例えば、文書リポジトリ301には、ユーザーがクライアントコンピュータ105、または画像形成装置104から印刷指示したコンテンツが保存されている。文書リポジトリ301に保存されているコンテンツは、予め保存されているコンテンツの他に次のようなコンテンツも保存されている。
そのコンテンツとは、ユーザーが後述するブラウザ304を介してサーバーコンピュータ群102上のアプリケーションで作成したコンテンツである。これにより、サーバーコンピュータ群102上のアプリケーションを用いて作成したコンテンツであっても、画像形成装置104、またはクライアントコンピュータ105にアプリケーションをインストールすることなく容易に印刷できる。なお、上述のサーバーコンピュータ群102上のアプリケーションとは、文書作成アプリケーション、画像作成アプリケーション、帳票管理アプリケーション等を始めとする各種アプリケーションのことである。これらのアプリケーションは図2(b)の間接記憶部1064に保持されており、実行が指示されると直接記憶部1063にロードされ、CPU1062により実行される。
次に、画像形成装置104について詳細に説明する。画像形成装置104には、デバイスブラウザ302、プラットフォームアプリケーション303の機能がある。デバイスブラウザ302は、ネットワーク100を介して接続されているデバイス内に保存されているデータや情報をユーザーが閲覧することができる機能を持つ。デバイスブラウザ302は、図2(a)の直接記憶部1045に保存されているデバイスブラウザプログラムが、間接記憶部1045にロードされ、CPU1043により実行されることで実現される。また、ユーザーは、デバイスブラウザ302を用いてコンテンツの印刷指示を出すことができる。デバイスブラウザ302は、例えば、Webブラウザである。
プラットフォームアプリケーション303は、各種サービスを提供する機能を持つ。プラットフォームアプリケーション303は、プラットフォーム上で動作するアプリケーションプログラムによって実現される。本発明の実施例1において、プラットフォームアプリケーション303は印刷ソフトウェアのサービスを提供する。上述の様に、このサービスは受信した印刷データをファームウェアに送信することができる。また、このサービスは要求受信部4011に対して印刷データの生成が終了したかどうかの確認を行う。その際、このサービスは要求受信部4011が作成した受付IDを基に生成確認を行う。
最後に、クライアントコンピュータ105について詳細に説明する。クライアントコンピュータ105は、ブラウザ304の機能を持つ。ブラウザ304は、ネットワーク100を介して接続されているデバイス内に保存されているデータや情報をユーザーが閲覧することができる機能を持つ。図2(b)の間接記憶部1064に保存されているブラウザプログラムが、直接記憶部1063にロードされて、CPU1062により実行されることで実現される。ブラウザ304は、例えば、Webブラウザである。以上が、実施例1のプリントシステムにおける各装置が持つ機能の説明になる。
次に、サーバーコンピュータ群102のプラットフォームシステムについて図4を参照しながら詳細に説明する。図4は、サーバーコンピュータ群102内の各種機能を示した図である。図4において、サーバーコンピュータ群102内にある物理ハードウェア・リソースは、サーバーコンピュータ群102のプラットフォームシステムに使用される。サーバーコンピュータ群102のプラットフォームシステム利用者は、このサーバーコンピュータ群102内にある物理ハードウェア・リソースをコンピューティング・リソースとして使用できる。
サーバーコンピュータ群102のプラットフォームシステム(Operating System)は、次のような機能を持つ。ヴァーチャルマシン(Virtual Machines)401、および402。ファブリックコントローラ(Fabric Controller)403。ロードバランサー(Load Balancer)404。キューサービス(Queue)405。ストレージ(Storage)406。管理ヴァーチャルマシン407である。
サーバーコンピュータ群102上で動作するプラットフォームシステムの内部には、ヴァーチャルマシン401、402が複数存在する。ヴァーチャルマシンとは、仮想化技術によって物理的なサーバーコンピュータ群102を論理的なコンピュータに分割し、分割された中で独立したオペレーティングシステムをもって動作する論理的なコンピュータのことである。この論理的なコンピュータの単位は、インスタンスとして数えられる。本発明の実施例1では、インスタンス数1つに対し、サーバーコンピュータ群102内の1台のサーバーコンピュータ上で動作する。
ヴァーチャルマシン401は、要求受信部(Web Role Instance)4011、要求受信部エージェント(Agent)4012で構成される。要求受信部4011は、後述するロードバランサ−404を介してユーザーからの処理依頼を受信する。また、要求受信部4011は、キューサービス405を介してバックエンド処理部402への処理依頼を送信する。
要求受信部4011の高い可用性を確保するために、外部ネットワークからの要求(ここではHTTPによる通信)は、ヴァーチャルマシン401の外部にあるロードバランサー404を通じて行われる。ロードバランサー404は、外部ネットワークからの要求を一元的に管理し、要求受信部を有する複数のヴァーチャルマシンに対し、選択的に要求を転送するものである。これにより、要求受信部により確実に処理依頼が送信される。要求受信部エージェント4012は、ヴァーチャルマシン401の使用状況、要求受信部4011の稼動状態、ヴァーチャルマシン401のリソースの使用状況、および要求受信部4011のエラーを含む各種情報を収集する。要求受信部エージェント4012は、収集した各種情報をファブリックコントローラ403に定期的に送信する。
要求受信部4011、バックエンド処理部4021の各インスタンスは、ファブリックコントローラ403によって管理されている。そのため、各インスタンスの拡張性と可用性が保証される。例えば、要求受信部4011、またはバックエンド処理部4021において、ある特定のインスタンスがサーバーの故障によって停止したとする。この場合、ファブリックコントローラ403は、要求受信部エージェント4012、またはバックエンド処理部エージェント4022から定期通知を受け取れなくなる。定期通知を受け取らなくなったファブリックコントローラ403は、新しいインスタンスに処理が委譲されるようにヴァーチャルマシンに指示を出す。結果、処理を実行しているインスタンス数が一定に保たれるため、処理の遅延を抑えることができる。
ヴァーチャルマシン402は、バックエンド処理部(Worker Role Instance)4021、バックエンド処理部エージェント(Agent)4022で構成される。バックエンド処理部4021は、キューサービス405を介して要求受信部4011からの処理依頼を受信する。バックエンド処理部4021は、キューサービス405を介して要求受信部4011から受信した処理依頼を実行する。また、バックエンド処理部4021は、スケールアウトする。スケールアウトとは、ヴァーチャルマシン402が増加し、バックエンド処理部4021のインスタンスが増加すること指す。バックエンド処理部4021のインスタンスが増加すると、バックエンド処理部1つ当たりのデータ処理量が減少する。これにより、ユーザーからの処理依頼に対する結果をより早く返すことができる。
キューサービス405は、要求受信部4011とバックエンド処理部4021とが非同期でデータ通信するためのサービスを提供する。要求受信部4011、およびバックエンド処理部4021は、キューサービス405に対し各種指示を出すことで、非同期でデータ通信する。これについて、具体的に説明する。要求受信部4011がキューサービス405に対して行う指示とは、キューメッセージの追加指示である。バックエンド処理部4021がキューサービス405に対して行う指示とは、キューメッセージの取得指示、キューメッセージの削除指示である。
要求受信部4011とバックエンド処理部4021が非同期でデータ通信する一連の動作について説明する。要求受信部4011は、ユーザーからの処理依頼に応じたキューメッセージを作成し、キューメッセージをキューに追加するようにキューサービス405に追加指示を送信する。追加指示を受信したキューサービス405は、キューにキューメッセージを追加する。バックエンド処理部4021は、キューメッセージを取得するために、キューサービス405に取得指示を出す。取得指示を受けたキューサービス405は、キューメッセージと、キューメッセージ毎に固有に割り振られたメッセージIDと、受取IDとを取得指示に対するレスポンスとしてバックエンド処理部4021に返す。メッセージIDとは、キューメッセージを一意に定めるためにキューメッセージごとに割り振られた固有の情報である。受取IDは、処理が終了したバックエンド処理部4021がキューメッセージを削除指示する際に使用する。キューメッセージと、メッセージIDと、受取IDは、関連付けされて保存されることになる。バックエンド処理部4021は、処理依頼を完了すると、受取IDに対応するキューメッセージの削除指示をキューサービス405に対して行う。削除指示を受けたキューサービス405は、バックエンド処理部4021が指示した受取IDに対応するキューメッセージをキューから削除する。これにより、削除指示を出したバックエンド処理部4021以外のバックエンド処理部4021が同じキューメッセージを処理するという冗長な処理を防ぐことができる。
また、キューサービス405は、キューに追加されているキューメッセージを不可視、または可視にする機能を持つ。不可視とは、バックエンド処理部4021がキューに追加されているキューメッセージの取得要求をした場合に、キューサービス405はバックエンド処理部4021に対してキューメッセージを渡さないことを指す。バックエンド処理部4021がキューからキューメッセージを取得すると、取得されたキューメッセージはキューサービス405によって不可視になる。可視とは、バックエンド処理部4021がキューに追加されているキューメッセージの取得要求した場合に、キューサービス405がバックエンド処理部4021に対してキューメッセージを渡すことを指す。バックエンド処理部4021に取得され不可視になっているキューメッセージは、処理を行っているバックエンド処理部4021から処理結果が一定時間返ってこない場合にキューサービス405によって可視になる。
ストレージ406は、データ保存に利用されるストレージを提供する。バイナリデータの集合を保存する機能を提供する。また、後述する処理確認テーブル、およびキュー管理テーブルを保持する機能も提供する。
ヴァーチャルマシン407は、要求受信部4011、要求受信部エージェント4012で構成される。ヴァーチャルマシン401との違いは、管理ユーザーのみが利用できる要求受信部4011のインスタンスを持つヴァーチャルマシンということである。このヴァーチャルマシンの要求受信部4011により管理ユーザーは、キュー管理テーブルを操作することができる。
次に、本発明の実施例1におけるキューメッセージについて説明する。図5は、キューメッセージの一例を示した図である。キューメッセージは、要求受信部4011がバックエンド処理部4021に依頼する処理の内容を記述したものである。
501は、キューメッセージを追加するキューの場所を示している。502は、タイムアウト時間を示している。502のVisibility Timeout=30と言うのは、次のような意味がある。バックエンド処理部4021がキューメッセージを取得してから30秒を経過しても、キューメッセージを取得したバックエンド処理部4021からレスポンスがない場合に、キューサービス405がキューメッセージを不可視から可視にする。503のmessagettl=3600と言うのは、次のような意味がある。3600秒経過してもバックエンド処理部4021がキューメッセージの削除指示を出していない場合に、キューメッセージがバックエンド処理部4021に処理されていなくてもキューサービス405がそのキューメッセージを削除する。504は、キューメッセージが作成された日付を意味する。
次に、キューメッセージのメッセージデータコンテンツ部分について説明する。メッセージデータコンテンツ部分は、ユーザーからの処理依頼に応じて決定される。505は、受付IDを示している。図5の場合、受付IDは0001である。受付IDは、ユーザーからの処理依頼に応じて作成される一意な情報である。506は、コンテンツIDを示している。図5の場合、コンテンツIDはd_00001である。507は、文書リポジトリ301に保存されているコンテンツの格納場所を示している。なお、508に関しては後述する。
次に、各種テーブルについて図6を参照しながら説明する。図6(a)はキュー管理テーブルを示しており、図6(b)は処理確認テーブルを示している。
始めに、キュー管理テーブルについて図6(a)を参照しながら説明する。601のQueue IDはキューの固有情報を示しており、602のDevice IDは識別情報を示している。識別情報とは、各デバイスを一意に定めるためにデバイス毎に割り振られた固有情報である。デバイスが異なれば識別情報は異なる。本発明の実施例1において、Queue IDとDevice IDは一対一対応である。即ち、画像形成装置1台に対してキューが1つ割り当てられている。
603のDevice modelは、デバイスの製造メーカーと機種を示している。以降、この情報をデバイス情報と呼称する。同じ種類に分類される画像形成装置同士は、デバイス情報の値が同じになる。なお、デバイス情報には、メーカー名と機種モデル名が記載されている。よって、デバイス情報から分かる情報は、どこのメーカーであるのか、ということと、どの機種であるのかという2つの情報である。詳細を説明する。図6(a)のデバイス情報が“1”のテーブルのDevice_idは“abc_0001”と記載されている。“abc”という部分がメーカー名を表している。“0001”という部分が機種モデル名を表している。
604のNumber of Instanceは、Queue ID毎に設定されているインスタンスの利用上限値を示しおり、キューに設定されている印刷サービスの所定値である。これについて詳細に説明する。上述したように、複数のヴァーチャルマシン上で複数のバックエンド処理部4021が稼動しており、このヴァーチャルマシンは、スケールアウトと呼ばれる技術を使うことでインスタンス数を増加させることができる。しかし、無闇にスケールアウトを行えばサーバーコンピュータ群102に負担がかかる。そこで、デバイスに合わせてバックエンド処理部4021のインスタンス数を決定する。これにより、デバイスの能力に合った処理が行われる。このように、夫々のキューにはNumber of Instanceと呼ばれる値が設定されている。
605のQueue Lengthは、キューに格納するキューメッセージの数の所定値を示しており、キューに設定されているキューメッセージの所定値である。キューに格納されているキューメッセージの数がQueue Lengthの値を超えた場合に、要求受信部4011はスケールアウトを指示するか否かの判断を行う。なぜなら、キューに格納されているキューメッセージの数が、そのキューの所定値であるQueue Lengthの値を超えた場合、バックエンド処理部4021の処理が遅れていることを意味するからである。このように、夫々のキューにはQueue Lengthと呼ばれる値が設定されている。
ここで、キュー管理テーブルの設定について詳細に説明する。プリントシステムの管理者は、管理者用の要求受信部4011にクライアントコンピュータ105からアクセスする。管理者は、管理者情報を入力し認証を行う。要求受信部4011は、管理者情報が正規であることに応じて管理者用の操作画面をクライアントコンピュータ105に送信する。管理者は、上述の操作画面を用いてキュー管理テーブルの設定を行う。管理者から設定された情報を基に、管理者用ヴァーチャルマシン407の要求受信部4011はキュー管理テーブルを更新する。
ここで、管理者が行うキューテーブルの設定の一例を示す。例えば、管理者は印刷速度の低い画像形成装置にNumber of Instanceの値を低く設定する。なぜなら、印刷速度の低い画像形成装置に対する処理依頼を早く処理したとしても、印刷速度が遅いため印刷データがストレージに溜まっていってしまうからである。これにより、サーバーコンピュータ群102のストレージを圧迫する可能性がある。また、キューテーブルの設定のその他の例として、管理者は印刷速度の速い画像形成装置に対しQueue Lengthの値を低く設定する。なぜなら、印刷速度の速い画像形成装置は印刷が早いため多くの印刷データを処理することができるからである。ゆえに、印刷速度の速い画像形成装置に対応するキューに追加されるキューメッセージは、より多くのインスタンス数を持つバックエンド処理部4021に処理される方が良い。Queue Lengthの値を低くすることで、要求受信部4011によるスケールアウトを行うかどうかの判断のタイミングをより早めることができる。結果、プリントシステムの印刷処理の高速化を図ることができる。ただし、いずれの設定もこの効果を望まないのであれば上述のように設定しなくても良いことは言うまでもない。
次に、処理確認テーブルについて図6(b)を参照しながら説明する。処理確認テーブルは、処理依頼が完了したかを確認するために用いるものである。606のrequest IDは、受付IDを示している。607document IDは、コンテンツIDを示している。608のresult_storedURIは、バックエンド処理部4021が処理した結果が格納されている場所を示している。
ここで、処理依頼が完了したかを確認する方法の一例を示す。画像形成装置104のプラットフォームアプリケーション303が確認を行う。このプラットフォームアプリケーション303は、要求受信部4011に処理依頼をした際に、処理依頼に対応する受付IDを要求受信部4011から受信する。プラットフォームアプリケーション303は、受付IDに対応した処理が終了したかどうかを要求受信部4011に対してポーリングで問い合わせる。問い合わせを受けた要求受信部4011は、ストレージ406に保存されている処理確認テーブルの受付IDを確認する。具体的には、問い合わせを受けた要求受信部4011は、問い合わせを受けた受付IDに対応するresult_storedURIの欄に格納場所が記載されているかどうかを確認する。記載されている場合、要求受信部4011は処理結果の確認を行っているプラットフォームアプリケーション303に格納場所を送信する。記載されていない場合、要求受信部4011はプラットフォームアプリケーション303に終了していない旨を送信する。これにより、プラットフォームアプリケーション303は処理結果の確認を行うことができる。
なお、処理確認テーブルのエントリーは次の2つのタイミングで加えられる。キューメッセージをキューサービス405に追加指示する際、要求受信部4011はストレージ406に保存されている処理確認テーブルに受付IDと識別情報を新たに加える。一例としては、図6(b)の606の受付ID0001と607の識別情報d_00001である。処理依頼を処理し終えたバックエンド処理部4021は、処理した受付IDに対応する608の欄に格納場所を加える。一例としては、608の欄のhttp:://print−sv.blob.net/dev_0001/printdata/pdl_0001である。
次に、本発明の実施例1におけるプリントシステムを用いた印刷の手順について、図7を参照しながら詳細に説明する。図7は、本発明の実施例1におけるプリントシステムが行う処理の流れを示している。また、本発明の実施例1のバックエンド処理部4021は印刷データ処理を行う。なお、印刷データ処理を行うバックエンド処理部4021の一例を印刷サービスと呼称する。
始めに、ユーザーは、デバイスブラウザを用いてコンテンツの印刷要求を指示する。デバイスブラウザは、印刷指示されたコンテンツのコンテンツID、および識別情報、および印刷要求を要求受信部4011に送信する(S7001)。S7001において、コンテンツID、および識別情報、および印刷要求を受信した要求受信部4011は、印刷要求に対するキューメッセージと受付IDを作成し、作成した受付IDをデバイスブラウザ302へ送信する。また、要求受信部4011は、受信したコンテンツIDに対応したコンテンツの取得を文書リポジトリ301に要求する(S7002)。
S7002において、受付IDを受信したデバイスブラウザ302は、受付IDをプラットフォームアプリケーション303に送信する。また、文書リポジトリ301にコンテンツの取得を要求した要求受信部4011は、文書リポジトリ301からコンテンツを取得する(S7003)。S7003以降、プラットフォームアプリケーション303は受信した受付IDに対応する印刷データ処理が完了するのを確認するまで要求受信部4011に対してポーリングを行う。S7003において、コンテンツを取得した要求受信部4011は、コンテンツをストレージ406に格納する(S7004)。
S7004において、コンテンツをストレージ406に格納した要求受信部4011は、コンテンツが格納されている場所を記載したキューメッセージをキューに追加するようキューサービス405に追加指示を出す(S7005)。印刷サービスは自身が処理を担当しているキューにキューメッセージが存在するかどうかをポーリングにより確認している。要求受信部4011によりキューにキューメッセージが追加された場合、印刷サービスはキューサービス405に取得指示を出す(S7006)。S7006において、取得指示を出してキューメッセージを取得した印刷サービスは、キューメッセージに記述されているコンテンツの格納場所を基にストレージ406からコンテンツを取得する(S7007)。
S7007において、コンテンツを取得した印刷サービスは、取得したコンテンツを印刷データへ変換する印刷データ処理を実行する。この際、印刷サービスはドライバプログラムをメモリにロードして印刷データ処理を実行する。印刷データ処理を実行した印刷サービスは、実行結果である印刷データをストレージ406に格納する(S7008)。S7008において、印刷データを格納した印刷サービスは、印刷データの格納場所が受付IDと関連付くように処理確認テーブルに記載する。なお、印刷サービスは取得したキューメッセージから受付IDを確認できる。印刷サービスは、処理を行ったキューメッセージの削除指示をキューサービスへ出す(S7009)。
プラットフォームアプリケーション303は、S7009において印刷データの格納場所が追記された処理確認テーブルに対し受付IDを基に要求受信部4011を介して確認する(S7010)。S7010において、印刷データの格納場所を確認したプラットフォームアプリケーション303は、ストレージ306から印刷データを取得する(S7011)。S7011において、印刷データを取得したプラットフォームアプリケーション303は、画像形成装置104が印刷データの印刷が行えるよう処理を行う(S7012)。以上が、本発明の実施例1におけるプリントシステムを用いた印刷の手順になる。
次に、本発明の実施例1におけるサーバーコンピュータ群102の動作について図8、図9を参照しながら詳細に説明する。図8は、要求受信部4011の印刷データ生成フローチャートを示している。図9は、印刷サービスの印刷データ生成フローチャートを示している。なお、ジョブとはユーザーからの処理依頼を基に作成されるキューメッセージのことを指しており、本発明の実施例1における処理依頼は印刷要求である。また、本説明における印刷サービスと図7の印刷サービスとは同じである。
始めに、図8を参照しながら要求受信部4011の印刷データ生成手順について説明する。なお、この要求受信部4011は管理者用のヴァーチャルマシンの要求受信部4011ではない。要求受信部は、ユーザーから印刷要求されたコンテンツのコンテンツIDと、識別情報を受信する(S8001)。
S8001において、コンテンツIDと識別情報を受信した要求受信部は、文書リポジトリからコンテンツIDに対応するコンテンツを取得する(S8002)。
S8002において、コンテンツを取得した要求受信部は、ストレージにコンテンツを保存する(S8003)。
S8003において、コンテンツを保存した要求受信部は、受信した識別情報に割り当てられているキューを特定し、特定したキューに格納されているキューメッセージの数を取得する(S8004)。
S8004において、キューに格納されているキューメッセージの数を取得した要求受信部は、受信した識別情報に合致する識別情報がキュー管理テーブルに存在するかどうか検索する(S8005)。検索した結果、識別情報が存在していない場合、S8006へ処理を進める。検索した結果、識別情報が存在している場合、S8007へ処理を進める。
S8006において、要求受信部はエラー処理を行う。エラー処理としては、要求受信部がデバイスブラウザ302に対してエラーである旨を送信する処理である。エラーである旨を受信したデバイスブラウザ302は処理を中止する。一方、エラー処理を行った場合、受信要求部は“A”へ処理を進める。“A”へ処理を進めた場合、プリントシステムの処理を停止させる。
S8007において、要求受信部は、受信した識別情報に対応するキューに格納されるキューメッセージの所定値をキュー管理テーブルから確認する。そして、要求受信部は、取得したキューに格納されているキューメッセージの数が、特定したキューに設定されているキューメッセージの所定値以上かどうかを判断する(S8007)。判断の結果、取得したキューに格納されているキューメッセージの数の方が大きい場合、要求受信部はS8008へ処理を進める。取得したキューに格納されているキューメッセージの数の方が小さい場合、要求受信部はS8010へ処理を進める。
S8008へ処理を進めた要求受信部は、受信した識別情報に対応するキューに対し、幾つ印刷サービスが設定されているか(割り当てられているか)を確認する。確認した数とキュー管理テーブルにおいて設定されている印刷サービスを使用できる所定値とを比較する。比較の結果、確認した数の方が所定値よりも少なかった場合、要求受信部は、S8009へ処理を進める。確認した数の方が所定値よりも多かった場合、要求受信部は、S8010へ処理を進める。
S8009において、要求受信部は、印刷サービスに対しインスタンスの数を1つ増加するよう指示をする。即ち、要求受信部4011は、印刷サービスの数を調整する。
S8010において、要求受信部は、ジョブに応じたキューメッセージを作成する。
S8010において、キューメッセージを作成した要求受信部は、キューサービス405にキューメッセージを追加するよう指示する(S8011)。S8011において、キューメッセージ追加を指示した要求受信部は、追加したキューメッセージに対応するコンテンツのコンテンツIDを、ストレージ306に保存されている処理確認テーブルに追加する(S8012)。以上が要求受信部の印刷データ生成手順の説明となる。
次に、図9を参照しながら印刷サービスの印刷データ生成手順について説明する。
印刷サービスは、キューサービス405に取得指示を出す(S9001)。S9001において、キューメッセージの取得指示を出した印刷サービスは、キューメッセージがあるかどうかを確認する(S9002)。S9002において、キューメッセージがないと確認された場合、キューにキューメッセージがあるかどうかを再度確認する(ポーリング)。キューにキューメッセージがあると確認された場合、印刷サービスはS9003へと処理を進める。なお、S9003に処理を進めた場合、キューサービス405は取得指示されたキューメッセージを不可視にする。
S9003において、S9002で確認したキューメッセージを、キューメッセージを取得した印刷サービス以外の印刷サービスが参照できないようにする。この処理は、印刷サービスではなくキューサービス405が行う(S9003)。
S9002において、キューメッセージを確認した印刷サービスは、キューメッセージの解読を行う(S9004)。キューサービス405は、キューメッセージの解読を行うことでコンテンツの保存場所を特定する。
S9004において、コンテンツの保存場所を特定した印刷サービスは、ストレージ内の保存場所からコンテンツを取得する(S9005)。S9005において、コンテンツを取得した印刷サービスは、取得したコンテンツに対し印刷データ処理を行う(S9006)。
この際、キューサービス405は、キューメッセージに記載されていたVisibility Timeoutに設定されているタイムアウト期間内に印刷データ処理が完了できたかどうかを確認している(S9007)。完了できなかった場合、“B”へ処理を進め、完了できた場合、S9008へ処理を進める。“B”へ処理を進めた場合、S9011の手前のBから処理を実行する。
S9007へ処理を進めた印刷サービスは、ストレージ406に印刷データを保存する(S9008)。S9008において、ストレージ406に印刷データを保存した印刷サービスは、印刷データを格納したストレージ406内の保存場所を、ストレージ406内の処理確認テーブルに追加する(S9009)。
S9009において、印刷データの保存場所を処理確認テーブルに追加した印刷サービスは、正常に印刷処理が完了したかどうかを確認する(S9010)。S9010において、正常に印刷処理が完了したと判断された場合、印刷サービスはキューサービス405に対しキューメッセージの削除指示を出す(S9011)。正常に印刷処理が完了したと判断されなかった場合、キューサービス405はキューメッセージを可視にする(S9012)。可視にすることで、印刷サービスは再度キューからキューメッセージを取得し、取得したキューメッセージに対応するコンテンツの印刷データ処理が行えるようになる。
次に、図10を参照しながら印刷サービスのインスタンス数を減らす手順について説明する。図10は、要求受信部4011が行う処理である。なお、本説明における印刷サービスと図7の印刷サービスとは同じである。また、この処理は、プラットフォームアプリケーション303が処理依頼の確認をポーリングで問い合わせている状態から開始される。
要求受信部は、印刷データが生成されたかどうかを、受付IDを基にストレージ406内の処理確認テーブルから確認する(S10001)。S10001において、印刷データの生成確認をした要求受信部は、ストレージ406内に印刷データがあるかどうかを判定する(S10002)。S10002において、印刷データがあると判断された場合、S10003に処理を進める。印刷データがないと判断された場合、S10001から再び処理を開始する。
S10003に処理を進めた要求受信部は、処理確認テーブルに記載されている印刷データ格納場所を画像形成装置104へ送信する。S10003において、印刷データ格納場所を送信した要求受信部は、印刷データの格納場所を送信したデバイスに対応するキューに格納されているキューメッセージの数を取得する(S10004)。S10004において、キューに格納されているキューメッセージの数を取得した要求受信部は、受信した識別情報に対応するキューに設定されているキューメッセージの所定値をキュー管理テーブルから確認する。そして、要求受信部は、取得したキューに格納されているキューメッセージの数が特定したキューに設定されているキューメッセージの所定値以下かどうかを判断する(S10005)。判断の結果、取得したキューに格納されているキューメッセージ(ジョブ)の数の方が小さい場合、要求受信部は、S10006へ処理を進める。取得したキューに格納されているキューメッセージの数の方が大きい場合、要求受信部は、処理を終了する。
S10006へ処理を進めた要求受信部は、印刷データの格納場所を送信したデバイスに対応するキューに対し、幾つ印刷サービスが設定されているか(割り当てられているか)を確認する。確認した数とキュー管理テーブルにおいて設定されている印刷サービスを使用できる所定値とを比較する。比較の結果、確認した数の方が所定値よりも多かった場合、要求受信部は、S10007へ処理を進める。確認した数の方が所定値よりも少なかった場合、要求受信部は処理を終了する。S10007へ処理を進めた要求受信部は、印刷サービスのインスタンス数を1つ減少させるよう指示する。即ち、要求受信部4011は、印刷サービスの数を調整する。
以上、説明した方法により、サーバーコンピュータ群102の資源を適正に利用できる。
次に、本発明の実施例2では、プリントシステムを用いた印刷において、本発明の実施例1とは別の手法を説明する。本発明の実施例2では、ユーザーはプリントシステムを利用する前に事前に登録を行わなくてはならない。そして、その登録した内容に応じてサーバーコンピュータ群102の資源を利用できる度合いが変わるというものである。始めに、本発明の実施例1とは異なる部分について説明する。
本発明の実施例2における識別情報は、画像形成装置毎に割り振られた固有なものではない。本発明の実施例2における識別情報は、登録情報と呼ばれる情報である。登録情報について説明する。本発明の実施例2では、プリントシステムを利用する際に登録が必要になる。登録の内容の一例としては、プリントシステム利用者のID、そのIDに対応するパスワード、ライセンス等がある。ユーザーは、例えば、デバイスブラウザ302を用いて登録内容を入力する。なお、ライセンスの詳細に関しては後述する。登録は、ユーザーがプリントシステムを利用する前に行われ、登録が行われると入力された情報を基に登録情報が作成される。登録情報の作成は、管理用ヴァーチャルマシン407により行われる。ユーザーはこの登録情報を基にサーバーコンピュータ群102に認証を行い、プリントシステムを利用することになる。なお、後述するが登録されていない登録情報に対応するユーザーからアクセスがあった場合は、エラーとして処理される。また、1つの登録情報に対して複数のプリントシステム利用者のIDを登録することもでき、グループ単位で登録情報を一元化することもできる。
登録情報の登場により、キュー管理テーブルは図11(a)のように変わる。Device idとDevice modelが削除される。さらに、ストレージ406にライセンス管理テーブルが保存される。なお、キュー管理テーブルの614は601と同じQueue IDである。615は604と同じNumber of Instanceである。616は605と同じQueue Lengthである。
ライセンス管理テーブルについて図11(b)を参照しながら説明する。612のRegisterは、登録情報を示している。613のLicenseは、ライセンスを示している。ここで、ライセンスについて説明する。
登録の際に、ユーザーはプリントシステムの利用に課金を行うかどうかを設定できる。これにより、例えば、次のような設定を行うことができる。課金を多く行ったユーザーは、サーバーコンピュータ群102の資源をより多く利用できる。課金を少なく行ったユーザーは、課金を多く行ったユーザーよりもサーバーコンピュータ102の資源を多く使えない。また、課金を行わなかったユーザーは、課金を少なく行ったユーザーよりもさらにサーバーコンピュータ102の資源を使えない。課金のレベル、有無を判断する指標として上述のライセンスが存在する。
本発明の実施例2では、ライセンスを次のように定めている。613のLicenseが“A”というのは、課金を多く行ったユーザーに与えられる。613のLicenseが“B”というのは、課金を少なく行ったユーザーに与えられる。613のLicenseが“No”というのは、課金を行わなかったユーザーに与えられる。
キュー管理テーブルとライセンス管理テーブルの関係について説明する。登録情報を取得した要求受信部4011は、ライセンス管理テーブルを参照し、取得した登録情報が存在するかどうかを判断する。存在していると判断した場合、要求受信部4011は、ライセンス管理テーブルに登録されているライセンスを確認する。要求受信部4011は、ライセンスに対応したキューIDを特定する。一例を用いて具体的に説明する。図11(b)の612のRegisterの値が“user_a”の登録情報は、613のLicenseの値が“A”である。613のLicenseの値が“A”である場合、609のQueue IDの値が“1”のキューが割り当てられる。同様に、図11(b)の612のRegisterの値が“user_b”の登録情報は、613のLicenseの値が“B”である。613のLicenseの値が“B”である場合、609のQueue IDの値が“2”のキューが割り当てられる。また、613のLicenseの値が“No”の登録情報に対しては、609のQueue IDの値が“100”から“103”の間のキューが1つ割り当てられる。どのキューが割り当てられるかについては後述する。
また、613のLicenseの値が“A”である登録情報が“user_a”以外にさらに存在する場合、Queue idが“1”と同様のインスタンスの所定値と所定値を持つ別のキューを割り当てることが一例として考えられる。これにより、課金を行っている登録情報を用いた印刷には、登録情報毎にキューが割り当てられる。課金を行っていない登録情報を用いた印刷には、登録情報毎にキューが割り当てられず、特定のグループ毎に共通で使用されるキューが割り当てられるというサービスの違いをつけられる。なお、登録情報ごとに割り当てられるキューを固有キュー、特定のグループ毎に共通で使用されるキューを共通キューと呼ぶ。
なお、本発明の実施例1と同様に、キュー管理テーブルは管理用ヴァーチャルマシン407を用いて操作可能である。また、ライセンス管理テーブルも管理用ヴァーチャルマシン407を用いて操作可能である。その他説明をしなかった部分については、本発明の実施例1と同じである。具体的には、プリントシステムの構成、各装置の内部構成等である。
次に、登録情報のライセンスに応じて、登録情報に割り当てるキューを変更する処理について図12、図13を参照しながら説明する。図12は、登録情報に応じた各種設定処理の流れを示す図である。図13は、課金を行っていない登録情報に応じたキュー割り当て処理を示す図である。
始めに、ユーザーは画像形成装置104のデバイスブラウザを介して、登録内容を管理者用ヴァーチャルマシン407に送信する。管理者用ヴァーチャルマシン407はユーザーが入力した登録内容に応じた登録情報を作成し、ユーザーに登録情報を送信する。管理者は管理者用ヴァーチャルマシン407を用いて、登録内容に応じてキュー管理テーブルを更新する。なお、管理者が手動で更新するのではなく、管理者用ヴァーチャルマシン407が自動で更新しても良い。
プリントシステムを利用して印刷を行いたいユーザーは、この登録情報を管理者用ではないヴァーチャルマシン401に送信する。この際、画像形成装置104はデバイス情報も送信する。また、ユーザーは登録情報と共にプリントシステム利用者のIDとパスワードも送信するようにしても良い。これにより、送信した登録情報を使用しているユーザーが正規なユーザーであるかを、プリントシステム利用者のIDとそのIDに対応するパスワードによってより保証することができる。
要求受信部4011は、デバイス情報と登録情報を取得する(S1201)。S1201において、デバイス情報と登録情報を取得した要求受信部4011は、ライセンス管理テーブルに取得した登録情報と同じ登録情報が存在するか判断する(S1202)。S1202において、存在しないと判断された場合、S1203へ処理を進めエラー処理を行い処理を中止する。S1202において、存在すると判断された場合、S1204へ処理を進める。S1204において、要求受信部4011はライセンス管理テーブルを基に、取得した登録情報は課金されているかどうかを判断する。即ち、登録情報が課金対象であるかどうかを判断する。課金されていない場合、“C“へ処理を進める。課金されている場合、S1205へ処理を進める。
ここで、“C”へ処理を進めた要求受信部4011の処理について説明する。要求受信部4011は、デバイス情報を基に画像形成装置104がカラー対応しているかどうかを判断する(S1301)。これは、デバイス情報に記載の製造メーカー名と機種モデル名から判断することになる。S1301において、カラーであると判断された場合、S1302へ処理を進める。カラーでないと判断された場合、S1305へ処理を進める。
S1302へ処理を進めた要求受信部4011は、デバイス情報を基に画像形成装置104がMFP(Multi Function Peripheral)であるかどうかを判断する。MFPであると判断された場合、S1303の処理を実行する。即ち、取得した登録情報に対しカラーMFPのキューを割り当てる(S1303)。カラーMFPのキューとは図11(a)のQueue IDが“100”のテーブルのキューである。MFPでないと判断された場合、カラーSFP(Single Function Peripheral)のキューを割り当てる(S1304)。カラーSFPのキューとは図11(a)のQueue IDが“101”のテーブルのキューである。
S1305へ処理を進めた要求受信部4011は、デバイス情報を基に画像形成装置がMFP(Multi Function Peripheral)であるかどうかを判断する。MFPであると判断された場合、S1306の処理を実行する。即ち、取得した登録情報に対しモノクロMFPのキューを割り当てる(S1306)。モノクロMFPのキューとは図11(a)のQueue IDが“102”のテーブルのキューである。MFPでないと判断された場合、モノクロSFP(Single Function Peripheral)のキューを割り当てる(S1307)。モノクロSFPのキューとは図11(a)のQueue IDが“103”のテーブルのキューである。S1303、S1304、S1306、S1307の処理を終えた要求受信部4011は、“D”へ処理を進め、S1206から処理を実行する。
S1205へ処理を進めた要求受信部4011は、登録情報に応じた所定のキューを、登録情報に割り当てる。このキューは、所定のキュー以外のキューであるカラーMFPのキューやモノクロSFPのキュー等とは異なり、登録情報固有のキューである。次に、要求受信部4011は、S1206へ処理を進める。
S1206において、要求受信部4011はデバイス情報を基に所定のメーカーであるかどうかを判断する。所定のメーカーというのは、管理者が予め定めたメーカーである。管理者が所定のメーカーを指定する理由は、印刷させようとしている画像形成装置104が十分な品質で印刷できるかどうかを判定する必要があるからである。所定のメーカーであると判定された場合、要求受信部4011はバックエンド処理部4021に所定のドライバとして固有ドライバプログラムをロードするように指示を出す(S1207)。所定のメーカーでないと判定された場合、要求受信部4011はバックエンド処理部4021に所定のドライバ以外のドライバとして共通ドライバプログラムをロードするように指示を出す(S1208)。
ここで、固有ドライバプログラムと共通ドライバプログラムについて説明する。固有ドライバプログラムは、指定された印刷設定を十分に満たすことができるドライバプログラムである。一方、共通プログラムドライバは、一部の印刷設定のみしか満たすことの出来ないドライバプログラムである。例えば、共通ドライバは、用紙サイズ、または、印刷用紙の給紙口の設定は可能であるが、ステイプルやパンチと言った仕上げ設定、または、製本印刷等の面付け設定は出来ない。
このように所定の画像形成装置に応じて差別化するのには、次のような理由がある。それは、機能を保証することができない画像形成装置に対して、保証できないサービスをクラウドが提供した場合、ユーザーは自分の意図する印刷が出来ない可能性があるからである。結果、ユーザーとしてみれば、印刷のやり直しの手間がかかり、また、印刷代を支払っているのであれば印刷代、および画像形成装置の消耗品の無駄となる。また、クラウドサービスを提供している側としてみれば、クラウド資源を無駄に消費したことになる。そこで、上述の様に、例えば、メーカーに応じて提供するサービスを変更するという処置を取る。なお、本発明の実施例2では、メーカーで判断を行ったが、機種モデル名も考慮して判断を行っても良い。または、機種モデル名のみで判断を行っても良い。
次に、実施例1の要求受信部4011が処理する図8の処理と異なる部分について説明する。図8のS8001において、要求受信部4011はデバイスIDを取得しない。S8004において、要求受信部4011がキューに格納されているキューメッセージの数を取得する際は、要求受信部4011は登録情報を基にキューを特定し格納されているキューメッセージの数を取得する。S8005、およびS8006の処理は行われない。S8007、およびS8008において、キュー管理テーブルを参照しキューを特定する際には、要求受信部4011は登録情報を基にキューを特定する。
以上、説明した方法により、サーバーコンピュータ群102の資源を適正に利用できる。
(その他の実施例)
また、本発明の各実施例では、画像形成装置104、およびクライアントコンピュータ105は、夫々1台ずつであった。しかし、各装置とも複数台の構成であっても構わない。
また、本発明の各実施例では、サーバーコンピュータ群102が印刷データ処理をしてプリンタへ送るものであった。しかし、サーバーコンピュータ群102が印刷データ処理以外に、印刷データをラスタイメージへと変換する処理を行っても良い。
また、本発明の各実施例では、サーバーコンピュータ群102上のアプリケーションソフトウェアで作成されたコンテンツは、文書リポジトリに一旦保存されるものであった。しかし、文書リポジトリに一旦保存されなくても良い。この場合、プリントシステムを利用した印刷は次のようになる。ユーザーはデバイスブラウザを通じて、アプリケーションソフトウェアに印刷指示を送る。アプリケーションソフトウェアは、作成されたコンテンツをサーバーコンピュータ群102内の何れかのハードウェア・リソースに格納する。
また、本発明の各実施例では、1つのインスタンスに対し、1台のサーバーコンピュータで動作するものであった。しかし、複数のインスタンスが1台のサーバーコンピュータ上で動作していても良い。例えば、マルチコアのCPUにおいて、CPU内の1つのコアに対して1つのインスタンスを割り当てても良く、または2つのコアに対して1つのインスタンスを割り当てても良い。このように、1つのインスタンスの割り当て方に特に制限はない。
また、本発明の各実施例では、サーバーコンピュータ群102の持つ機能を次のように分離した。要求受信部4011の機能を持つサーバーコンピュータ、バックエンド処理部4021の機能を持つサーバーコンピュータ、キューサービス405とストレージ406の両方の機能を持つサーバーコンピュータである。しかし、サーバーコンピュータが持つ機能を上述の様な組み合わせにしなくても良い。例えば、要求受信部4011とバックエンド処理部4021の両方の機能を持つサーバーコンピュータ、キューサービス405とストレージ406の両方の機能を持つサーバーコンピュータのようにしても良い。または、要求受信部4011とキューサービス405の機能を持つサーバーコンピュータ、バックエンド処理部4021とストレージ406の機能を持つサーバーコンピュータのようにしても良い。このように、各機能を実現するために、どのサーバーコンピュータに機能を実現するかについて制限はない。
また、本発明の各実施例では、ユーザーからの処理依頼を画像形成装置104のデバイスブラウザから行った。しかし、クライアントコンピュータ105のデバイスブラウザから処理依頼を送っても良い。この場合、クライアントコンピュータ105は、画像形成装置104を指定する形態が考えられる。クライアントコンピュータ105は、画像形成装置104に対し、要求受信部4011にポーリングするように指示を行う。
また、本発明の各実施例では、インスタンス数を増減する際に、インスタンスを1つずつ増減させた。しかし、1つずつではなく複数個ずつインスタンス数を増減させても良い(例えば、1回の処理で2個ずつ増やし、1回の処理で3個ずつ減らす)。
また、本発明の各実施例では、図5のキューメッセージで示されている508を利用しなかった。しかし、これを利用した方法も考えられる。この場合、処理確認テーブルは不要になる。要求受信部4011は、キューメッセージを作成する際に、バックエンド処理部4021が処理した結果を格納する場所を指定する。バックエンド処理部4021は、キューメッセージを確認して、処理した結果を指定された場所へ保存することになる。
また、本発明の各実施例では、1つのヴァーチャルマシンに対し、要求受信部4011、バックエンド処理部4021は夫々1つずつ割り当てられていた。しかし、1つのヴァーチャルマシンに対し、要求受信部4011、バックエンド処理部4021は複数存在していても良い。例えば、ヴァーチャルマシン407に要求受信部4011が2つ存在している状態である。