(57)【特許請求の範囲】
【請求項１】
ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散する負荷分散方法であって、
上記ホストと通信するプリントサーバが、
グラフィックコマンドの処理方法の指示を求める要求を上記ホストから受信するステップと、
上記要求を受信するステップにて要求を受信するのに応じて、印刷ジョブに相当するグラフィックコマンドをラスタライズするラスタイメージ処理を、上記ホストの第１ラスタイメージ処理部、または、他の１または複数の第２ラスタイメージ処理部のいずれが実行するのがより効率的であるのかを、ラスタイメージ処理能力に影響を及ぼす１または複数の要因を評価することにより、決定するステップと、
上記決定するステップにて、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをラスタライズするよう指示するステップと、
上記決定するステップにて、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをページ記述言語データにレンダリングするよう指示するステップとを含み、
上記１または複数の要因は、ホストの処理能力、プリント装置の処理能力、プリントサーバの処理能力、他の１または複数のラスタイメージ処理部の状態、ラスタイメージ処理部の統計値、ネットワークの転送容量、ネットワークの転送性能、および、グラフィックコマンドの統計値のうち、少なくともいずれか１つを含み、
上記決定するステップでは、上記１または複数の要因のうち、少なくとも、上記印刷ジョブにおける上記グラフィックコマンドの統計値を評価して、
上記印刷ジョブに、互いに重なり合うグラフィックコマンドが複数含まれる場合には、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定し、
印刷ジョブがテキスト文字であれば、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定することを特徴とする負荷分散方法。
【請求項２】
上記決定するステップにて、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、さらに、
上記プリントサーバが、
上記ホストがラスタライズしたラスタデータを上記ホストから受信するステップと、
上記受信したラスタデータをプリント装置に送信するステップとを含むことを特徴とする請求項１に記載の負荷分散方法。
【請求項３】
上記決定するステップにて、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、さらに、
上記プリントサーバが、
上記ページ記述言語データを上記ホストから受信するステップと、
上記ページ記述言語データのラスタイメージ処理を、上記他の１または複数の第２ラスタイメージ処理部に分配するステップとを含むことを特徴とする請求項１に記載の負荷分散方法。
【請求項４】
上記ページ記述言語データのラスタイメージ処理を分配するステップは、
上記ページ記述言語データの少なくとも一部をラスタライズするようローカルのラスタイメージ処理部に指示するステップを含むことを特徴とする請求項３に記載の負荷分散方法。
【請求項５】
上記ページ記述言語データのラスタイメージ処理を分配するステップは、
ラスタイメージ処理のために、上記ページ記述言語データの少なくとも一部を１または複数の他のホストに送信するステップを含むことを特徴とする請求項３に記載の負荷分散方法。
【請求項６】
上記ページ記述言語データのラスタイメージ処理を分配するステップは、
ラスタイメージ処理のために、上記ページ記述言語データの少なくとも一部を１または複数の副サーバシステムに送信するステップを含むことを特徴とする請求項３に記載の負荷分散方法。
【請求項７】
上記ページ記述言語データのラスタイメージ処理を分配するステップは、
ラスタイメージ処理のために、上記ページ記述言語データの少なくとも一部をプリント装置に送信するステップを含むことを特徴とする請求項３に記載の負荷分散方法。
【請求項８】
上記各ステップは、上記印刷ジョブの複数のセグメントごとに、繰り返し実行されることを特徴とする請求項１に記載の負荷分散方法。
【請求項９】
上記各ステップは、印刷ジョブ全体に対して１度実行されることを特徴とする請求項１に記載の負荷分散方法。
【請求項１０】
上記決定するステップは、さらに、上記グラフィックコマンドとラスタライズを実行するソフトウェアとの組合せを評価して、いずれのラスタイメージ処理部が実行するのがより効率的であるのかを決定することを特徴とする請求項１に記載の負荷分散方法。
【請求項１１】
上記印刷ジョブは、上記ホストから生成されることを特徴とする請求項１に記載の負荷分散方法。
【請求項１２】
上記他の１または複数の第２ラスタイメージ処理部は、上記ホストに備えられていないことを特徴とする請求項１に記載の負荷分散方法。
【請求項１３】
上記他の１または複数の第２ラスタイメージ処理部のうち少なくとも１つは、上記プリントサーバに備えられていることを特徴とする請求項１に記載の負荷分散方法。
【請求項１４】
上記他の１または複数の第２ラスタイメージ処理部のうち少なくとも１つは、副サーバに備えられていることを特徴する請求項１に記載の負荷分散方法。
【請求項１５】
上記他の１または複数の第２ラスタイメージ処理部のうち少なくとも１つは、上記ホストとは異なるホストに備えられていることを特徴とする請求項１に記載の負荷分散方法。
【請求項１６】
ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散する負荷分散方法を実行するためのプリントサーバであって、
印刷ジョブに相当するグラフィックコマンドの処理方法の指示を求める要求を上記ホストから受信するのに応じて、上記グラフィックコマンドをラスタライズするラスタイメージ処理を、上記ホストの第１ラスタイメージ処理部、または、他の１または複数の第２ラスタイメージ処理部のいずれが実行するのがより効率的であるのかを決定する決定手段と、
上記決定手段が、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをラスタライズするよう指示するラスタライズ指示手段と、
上記決定手段が、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをページ記述言語にレンダリングするよう指示するレンダリング指示手段とを備え、
上記決定手段は、ラスタイメージ処理能力に影響を及ぼす１または複数の要因を評価することにより、上記いずれのラスタイメージ処理部がラスタイメージ処理を実行するのがより効率的であるのかを決定し、
上記決定手段が評価する上記１または複数の要因は、ホストの処理能力、プリント装置の処理能力、プリントサーバの処理能力、他の１または複数のラスタイメージ処理部の状態、ラスタイメージ処理部の統計値、ネットワークの転送容量、ネットワークの転送性能、および、グラフィックコマンドの統計値のうち、少なくともいずれか１つを含み、
上記決定手段は、上記１または複数の要因のうち、少なくとも、上記印刷ジョブにおける上記グラフィックコマンドの統計値を評価して、
上記印刷ジョブに、互いに重なり合うグラフィックコマンドが複数含まれる場合には、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定し、
印刷ジョブがテキスト文字であれば、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定することを特徴とするプリントサーバ。
【請求項１７】
上記決定手段は、さらに、上記グラフィックコマンドとラスタライズを実行するソフトウェアとの組合せを評価して、いずれのラスタイメージ処理部が実行するのがより効率的であるのかを決定することを特徴とする請求項１６に記載のプリントサーバ。
【請求項１８】
コンピュータを、請求項１６または１７に記載のプリントサーバの各手段として機能させるための制御プログラム。
【請求項１９】
請求項１８に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータおよびコンピュータ関連技術に関するものである。特に、本発明は、ホストによるラスタデータおよびページ記述言語の生成処理の負荷を分散する負荷分散システムおよび負荷分散方法に関するものである。
【背景技術】
【０００２】
今日では多種多様なコンピュータが使用されている。本願明細書では、「コンピュータシステム」とは、所望の結果を生成するために情報を処理する能力を有するあらゆる装置またはその組合せを指すものとする。コンピュータシステムの例としては、パーソナルコンピュータ、携帯型コンピュータ、携帯情報端末（ＰＤＡ）、サーバ、メインフレーム、スーパーコンピュータ、ミニコンピュータ、ワークステーション、マイクロコンピュータ、マイクロコントローラなどが挙げられる。
【０００３】
文書印刷は、多くのコンピュータユーザにとって親しみのある作業である。本願明細書では、「プリント装置」とは、紙などの出力媒体上にユーザが読み取り可能なテキストや画像を形成するあらゆる装置を指すものとする。プリント装置の例としては、コンピュータプリンタ、ファクシミリ装置、スキャナ、多機能周辺装置、複写機などが挙げられる。
【０００４】
状況によっては、コンピュータシステムのことをホストという。ホストとプリント装置との通信を容易にするために、ホストはプリント装置用のドライバを有する。特定のプリント装置用のドライバによって、ホスト上のアプリケーションは、上記プリント装置のハードウェアや内部言語についての詳細を知らずとも、上記プリント装置と通信することが可能となる。
【０００５】
１または複数のプリント装置がコンピュータネットワークに接続される。これにより、ネットワーク上の多様なコンピュータシステムがプリント装置（群）に印刷ジョブを送信することができる。印刷ジョブとは、印刷するためにプリント装置に対して投入された１つの文書または文書の集合である。
【０００６】
ラスタイメージ処理（ＲＩＰ；Raster image processing）とは、テキストおよび画像を、プリント装置で紙上に最終的に印刷することとなるピクセルの行列（ビットマップ）に変換する処理である。ＲＩＰ部（ラスタイメージ処理部）はラスタイメージ変換を実行するものである。ＲＩＰ部はハードウェアおよび／またはソフトウェアで実装される。「ラスタライズ」という単語は、ラスタイメージ処理を実行する処理を指す。
【０００７】
印刷ジョブがホスト上で生成されたら、ホストは印刷ジョブをラスタライズ（つまり、ラスタイメージ処理を実行）し、その結果、ラスタデータを生成する。そして、ホストはラスタデータをプリント装置に送信する。あるいは、ホストはページ記述言語（ＰＤＬ；page description language）を用いて印刷ジョブの記述を生成してもよい。ＰＤＬは、印刷ページの配置を記述するのに使用されるものである。ＰＤＬはプリンタ技術と無関係にページ要素を定義するので、ページの外見は、利用されたプリント装置の仕様に関わらず一貫性が保たれる。ＰＤＬの例としては、プリンタ制御言語（ＰＣＬ；Printer Control Language）、ポストスクリプト（PostScript）などが挙げられる。ホストが印刷ジョブをＰＤＬで記述した場合、プリント装置や専用ＲＩＰサーバなどのいずれかに配置されたＲＩＰ部により、ラスタイメージ処理が実行される。
【０００８】
ある状況下では、印刷ジョブ（またはその一部）をラスタライズし、プリント装置にラスタデータを送信する方がホストにとってより効率的な場合がある。しかしながら、別の状況下では、印刷ジョブをＰＤＬコマンドにレンダリングして、該ＰＤＬコマンドを、ラスタライズを実行するためのどこかに送信する方が、ホストにとってより効率的な場合がある。以上のことから、ホストにおけるラスタデータおよびページ記述言語データの生成処理の負荷が分散されるようにシステムおよび方法を改良することに利点があることがわかるであろう。
【０００９】
ホストの印刷処理の負荷を分散する技術としては、例えば、特許文献１には、印刷対象のオブジェクトが重複するか否かによって、オブジェクトのデータをラスタライズ処理したり、あるいは、ページ記述言語データに変換してプリンタに転送したりする印刷データ処理方法が開示されている。
【００１０】
また、特許文献２には、入力画像情報の処理を、画像を処理する複数の処理手段に分散して割り当てる管理手段を備えた画像処理装置が開示されている。より具体的には、上記管理手段は、各処理手段に対する割り当て状況、入力画像情報の形式、処理手段の機能などに応じて、割り当てを決定している。
【００１１】
さらに、特許文献３には、出力装置の状態または各画像処理装置の負荷に応じて条件を判定し、転送条件を満たす任意の転送先に、印刷ジョブを転送して負荷分散を図る複合画像処理システムが開示されている。
【特許文献１】特開平１０−４００２９（１９９８年２月１３日公開）
【特許文献２】特開平１０−２８９０６６（１９９８年１０月２７日公開）
【特許文献３】特開２００１−３４４２８（２００１年２月９日公開）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来の構成では、以下の問題を生じる。
【００１３】
具体的には、特許文献１に記載の方法では、オブジェクトの重複の有無に応じてホストの負荷をプリンタに分散させることができるのみである。また、特許文献２に記載の方法では、画像を並行して処理する複数の処理手段を有する１の画像処理装置における効率化が図れるのみである。
【００１４】
したがって、一つのプリンタに対して、複数のホスト（または、画像処理装置）が接続されているような印刷システム全体における処理効率の向上を図るための、他のホストの負荷をも考慮した負荷分散システムを構築することができないという問題を生じる。
【００１５】
また、特許文献３に記載の方法では、未処理ジョブの分散は、特定の画像処理装置（ホスト）に負荷が集中した状況や、印刷不可能な障害が発生した状況下で実行されるのみである。このため、上述ような状況が発生しない間は、未処理ジョブの分散は行われない。したがって、負荷の集中や障害の発生に関わらず、正常時も含めて、常に最適な処理効率を維持するということができないという問題を生じる。
【００１６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散して、常に最適な処理効率を維持する負荷分散方法、プリントサーバ、制御プログラム、および、記録媒体を実現することにある。
【課題を解決するための手段】
【００１７】
本発明の負荷分散方法は、上記課題を解決するために、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散する負荷分散方法であって、上記ホストと通信するプリントサーバが、印刷ジョブに相当するグラフィックコマンドをラスタライズするラスタイメージ処理を、上記ホストの第１ラスタイメージ処理部、または、他の１または複数の第２ラスタイメージ処理部のいずれが実行するのがより効率的であるのかを決定するステップと、上記決定するステップにて、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをラスタライズするよう指示するステップと、上記決定するステップにて、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをページ記述言語データにレンダリングするよう指示するステップとを含むことを特徴としている。
【００１８】
上記方法によれば、上記決定するステップにて、より効率的にグラフィックコマンドを処理できるラスタイメージ処理部が決定される。決定されたラスタイメージ処理部がホストのものであれば、上記ラスタライズを指示するステップにて、当該ラスタイメージ処理部が上記グラフィックコマンドをラスタライズするための指示がホストに送られる。
【００１９】
一方、決定されたラスタイメージ処理部が他の（例えば、上記ホスト以外の他の画像処理装置など）第２ラスタイメージ処理部であれば、他の装置の第２ラスタイメージ処理部がラスタライズの処理をできるように、上記グラフィックコマンドをページ記述言語データにレンダリングするための指示がホストに送られる。
【００２０】
これにより、常に、より効率的にグラフィックコマンドを処理するラスタイメージ処理部が決定され、決定されたラスタイメージ処理部がラスタライズを実行できるように、ラスタライズまたはレンダリングの指示がホストに送られる。以上のことから、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散して、常に最適な処理効率を維持することが可能となる。
【００２１】
上記負荷分散方法は、上記決定するステップにて、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、さらに、上記プリントサーバが、上記ホストがラスタライズしたラスタデータを上記ホストから受信するステップと、上記受信したラスタデータをプリント装置に送信するステップとを含むことが好ましい。
【００２２】
上記負荷分散方法は、上記決定するステップにて、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、さらに、上記プリントサーバが、上記ページ記述言語データを上記ホストから受信するステップと、上記ページ記述言語データのラスタイメージ処理を、上記他の１または複数の第２ラスタイメージ処理部に分配するステップとを含むことが好ましい。
【００２３】
上記負荷分散方法の上記ページ記述言語データのラスタイメージ処理を分配するステップは、上記ページ記述言語データの少なくとも一部をラスタライズするようローカルのラスタイメージ処理部に指示するステップを含むことが好ましい。
【００２４】
上記負荷分散方法の上記ページ記述言語データのラスタイメージ処理を分配するステップは、ラスタイメージ処理のために、上記ページ記述言語データの少なくとも一部を１または複数の他のホストに送信するステップを含むことが好ましい。
【００２５】
上記負荷分散方法の上記ページ記述言語データのラスタイメージ処理を分配するステップは、ラスタイメージ処理のために、上記ページ記述言語データの少なくとも一部を１または複数の副サーバシステムに送信するステップを含むことが好ましい。
【００２６】
上記負荷分散方法の上記ページ記述言語データのラスタイメージ処理を分配するステップは、ラスタイメージ処理のために、上記ページ記述言語データの少なくとも一部をプリント装置に送信するステップを含むことが好ましい。
【００２７】
なお、上記各ステップは、上記印刷ジョブの複数のセグメントごとに、繰り返し実行されてもよい。
【００２８】
あるいは、上記各ステップは、印刷ジョブ全体に対して１度実行されてもよい。
【００２９】
上記負荷分散方法は、さらに、上記プリントサーバが、上記グラフィックコマンドの処理方法の指示を求める要求を上記ホストから受信するステップを含むことが好ましい。
【００３０】
上記決定するステップは、上記要求を受信するステップにて要求を受信するのに応じて、実行されることが好ましい。
【００３１】
上記決定するステップは、ラスタイメージ処理能力に影響を及ぼす１または複数の要因を評価するステップを含むことが好ましい。
【００３２】
上記１または複数の要因は、ホストの処理能力、プリント装置の処理能力、プリントサーバの処理能力、他の１または複数のラスタイメージ処理部の状態、ラスタイメージ処理部の統計値、ネットワークの転送容量、ネットワークの転送性能、および、グラフィックコマンドの統計値のうち、少なくともいずれか１つを含むことが好ましい。
【００３３】
上記印刷ジョブは、上記ホストから生成されることが好ましい。
【００３４】
上記他の１または複数の第２ラスタイメージ処理部は、上記ホストに備えられていないことが好ましい。
【００３５】
上記他の１または複数の第２ラスタイメージ処理部のうち少なくとも１つは、上記プリントサーバに備えられていることが好ましい。
【００３６】
上記他の１または複数の第２ラスタイメージ処理部のうち少なくとも１つは、副サーバに備えられていることが好ましい。
【００３７】
上記他の１または複数の第２ラスタイメージ処理部のうち少なくとも１つは、上記ホストとは異なるホストに備えられていることが好ましい。
【００３８】
本発明のプリントサーバは、上記課題を解決するために、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散する負荷分散方法を実行するためのプリントサーバであって、印刷ジョブに相当するグラフィックコマンドをラスタライズするラスタイメージ処理を、上記ホストの第１ラスタイメージ処理部、または、他の１または複数の第２ラスタイメージ処理部のいずれが実行するのがより効率的であるのかを決定する決定手段と、上記決定手段が、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをラスタライズするよう指示するラスタライズ指示手段と、上記決定手段が、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをページ記述言語にレンダリングするよう指示するレンダリング指示手段とを備えていることを特徴としている。
【００３９】
上記決定手段は、ラスタイメージ処理能力に影響を及ぼす１または複数の要因を評価することにより、上記いずれのラスタイメージ処理部がラスタイメージ処理を実行するのがより効率的であるのかを決定することが好ましい。
【００４０】
上記決定手段が評価する上記１または複数の要因は、ホストの処理能力、プリント装置の処理能力、プリントサーバの処理能力、他の１または複数のラスタイメージ処理部の状態、ラスタイメージ処理部の統計値、ネットワークの転送容量、ネットワークの転送性能、および、グラフィックコマンドの統計値のうち、少なくともいずれか１つを含むことが好ましい。
【００４１】
なお、上記プリントサーバは、コンピュータによって実現してもよく、この場合には、コンピュータを上記各手段として動作させることにより上記プリントサーバをコンピュータにて実現させるプリントサーバの制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００４２】
本発明の負荷分散方法は、上記課題を解決するために、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散する負荷分散方法であって、上記ホストと通信するプリントサーバが、印刷ジョブに相当するグラフィックコマンドをラスタライズするラスタイメージ処理を、上記ホストの第１ラスタイメージ処理部、または、他の１または複数の第２ラスタイメージ処理部のいずれが実行するのがより効率的であるのかを決定するステップと、上記決定するステップにて、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをラスタライズするよう指示するステップと、上記決定するステップにて、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをページ記述言語データにレンダリングするよう指示するステップとを含むことを特徴としている。
【００４３】
本発明のプリントサーバは、上記課題を解決するために、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散する負荷分散方法を実行するためのプリントサーバであって、印刷ジョブに相当するグラフィックコマンドをラスタライズするラスタイメージ処理を、上記ホストの第１ラスタイメージ処理部、または、他の１または複数の第２ラスタイメージ処理部のいずれが実行するのがより効率的であるのかを決定する決定手段と、上記決定手段が、上記ホストの上記第１ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをラスタライズするよう指示するラスタライズ指示手段と、上記決定手段が、他の１または複数の上記第２ラスタイメージ処理部で上記ラスタイメージ処理を実行する方がより効率的であると決定した場合に、上記ホストに対して、上記グラフィックコマンドをページ記述言語にレンダリングするよう指示するレンダリング指示手段とを備えていることを特徴としている。
【００４４】
これにより、常に、より効率的にグラフィックコマンドを処理するラスタイメージ処理部が決定され、決定されたラスタイメージ処理部がラスタライズを実行できるように、ラスタライズまたはレンダリングの指示がホストに送られる。以上のことから、ホストによるラスタデータおよびページ記述言語データの生成処理の負荷を分散して、常に最適な処理効率を維持することが可能となる。
【発明を実施するための最良の形態】
【００４５】
本発明の一実施形態について、添付図面と併せて、以下の記載および添付の特許請求の範囲によって十分に明らかになるであろう。なお、添付図面は本発明の一実施形態を記載したに過ぎず、発明の範囲を限定するものではない。以下の添付図面を参照して、本発明の一実施形態の特徴および詳細をさらに説明する。
【００４６】
ホストによるラスタデータおよびページ記述言語の生成処理の負荷分散システムおよび方法について、以下に説明する。本実施形態において、プリントサーバは、ホストで生成された印刷ジョブに相当するグラフィックコマンドの処理方法についての指示要求を上記ホストから受信する。上記要求に応じて、プリントサーバはグラフィックコマンドのラスタイメージ処理をホスト上のＲＩＰ（ラスタイメージ処理）部、または、ホスト上にはない他の１または複数のＲＩＰ部のいずれが実行すれば効率がよいかを決定する。この決定処理には、ラスタイメージ処理能力に影響を及ぼす要因の評価処理が含まれていてもよい。例えば、要因としては、ホストの処理能力、プリント装置の処理能力、プリントサーバの処理能力、１または複数のＲＩＰ部の状態、ＲＩＰ部の統計値、ネットワークの転送容量、ネットワークの転送性能、および、グラフィックコマンドの統計値などが挙げられる。
【００４７】
ホスト上のＲＩＰ部でラスタイメージ処理を実行する方がより効率的であるとプリントサーバが決定した場合には、プリントサーバは、グラフィックコマンドをラスタライズする指示をホストに行う。そして、プリントサーバはホストからラスタデータを受信し、該ラスタデータをプリント装置に送信する。
【００４８】
他の１または複数のＲＩＰ部でラスタイメージ処理を実行する方がより効率的であるとプリントサーバが決定した場合には、プリントサーバは、グラフィックコマンドをページ記述言語にレンダリングする指示をホストに行う。そして、プリントサーバは、ホストからページ記述言語のデータを受信し、他の１または複数のＲＩＰ部に、ページ記述言語のラスタイメージ処理を分配する。
【００４９】
上記ページ記述言語のラスタイメージ処理を分配するステップには、ローカルのＲＩＰ部に対して、ページ記述言語の少なくとも一部をラスタライズするよう指示するステップが含まれていてもよい。あるいは（または、さらに）、上記ページ記述言語のラスタイメージ処理を分配するステップには、ラスタライズのために、１または複数の他のホストに対してページ記述言語の少なくとも一部を送信するステップが含まれていてもよい。あるいは（または、さらに）、上記ページ記述言語のラスタイメージ処理を分配するステップには、ラスタライズのために、１または複数の副サーバシステムに対してページ記述言語の少なくとも一部を送信するステップが含まれていてもよい。あるいは（または、さらに）、上記ページ記述言語のラスタイメージ処理を分配するステップには、ラスタライズのために、プリント装置に対してページ記述言語の少なくとも一部を送信するステップが含まれていてもよい。
【００５０】
上記各ステップの少なくともいくつかを、印刷ジョブの複数のセグメントごとに繰り返し実行してもよい。あるいは、上記各ステップを印刷ジョブ全体に対して１度だけ実行してもよい。
【００５１】
添付の図面を参照して本発明の様々な実施形態について説明する。なお、添付の各図において、同一機能を有する１の部材には、同一符号を付してある。本発明の本実施形態を添付図面において一般的に記載および図解しているが、本発明はこれに限らず様々な構成にすることができる。すなわち、図面に示す本発明のいくつかの典型的な実施形態の詳細な説明は、請求する発明の範囲を限定するものではなく、発明の実施形態を単に表したものに過ぎない。
【００５２】
なお、本願明細書でもっぱら使用される「典型的な（exemplary）」という単語は、「一例（または、一事例、実例）として開示する」ことを意味する。本願明細書で「典型例」として開示するいかなる実施形態についても、他の実施形態よりも好ましいとか優位であると解釈する必要は無い。実施形態の様々な側面が図示されているが、明確に示されている場合を除いて、必ずしも一定の縮尺で図示されているとは限らない。
【００５３】
本願明細書で開示する実施形態の特徴の多くは、コンピュータソフトウェア、電子ハードウェア、またはその両方により実装される。ハードウェアとソフトウェアとの互換性を明確に示すため、様々な構成要素がそれらの機能の観点で記載されている。その機能がハードウェアとソフトウェアのいずれで実装されるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者が特定のアプリケーションごとに、さまざまな方法で上述の機能を実装するが、このような実装の決定によって、本発明の範囲が逸脱することになると解釈するべきではない。
【００５４】
機能がコンピュータソフトウェアで実装されている場合、該ソフトウェアは、記憶装置に格納され、および／または、システムバスやネットワーク経由で電気信号として転送される、コンピュータの各種命令やコンピュータが実行可能な各種コードを含んでいる。本願明細書で記載する構成要素に関連付けられた機能を実装するソフトウェアは、単一または複数の命令から構成されていてもよく、さまざまなプログラムに対して、複数の記憶装置にまたがり、複数の異なるコードセグメントとして分配されてもよい。
【００５５】
図１は、本実施形態における、印刷ジョブのラスタイメージ処理を負荷分散するための負荷分散システム１００の要部構成を示すブロック図である。図１の負荷分散システム１００は、プリントサーバ１０４と電気通信するホスト１０２を含んでいる。プリントサーバ１０４は、コンピュータネットワーク上のプリント装置を管理する専用のコンピュータシステムである。プリントサーバ１０４は印刷要求を管理し、エンドユーザとネットワーク管理者とが利用可能なキューのステータス情報を生成する。
【００５６】
ホスト１０２上のアプリケーション１０６が、１または複数の文書を特定のプリント装置（図示せず）にて印刷するように、（例えは、ユーザやスケジュールタスクによって）指示された場合、アプリケーション１０６は、文書印刷のためのグラフィックコマンド１０８をプリント装置のドライバ１１０に渡す。Microsoft Windows（登録商標）環境おいては、アプリケーション１０６は、グラフィックデバイスインターフェース（ＧＤＩ；graphics device interface）コマンドをオペレーティングシステムに渡し、オペレーティングシステムがＤＤＩコマンドの形式でドライバ１１０に送信する。
【００５７】
ドライバ１１０はＲＩＰ部（第１ラスタイメージ処理部）１１４を含んでいる。ＲＩＰ部１１４はラスタイメージ処理を実行するよう構成されている。換言すると、ＲＩＰ部１１４は、グラフィックコマンド１０８を、ラスタデータ１２２に変換するよう構成されている。ラスタデータ１２２は、プリント装置により紙に最終的に印刷されるピクセルの行列（ビットマップ）である。
【００５８】
また、ドライバ１１０はＰＤＬ（ページ記述言語）部１１２を含んでいる。ＰＤＬ部１１２は、グラフィックコマンド１０８をＰＤＬデータ１２０に変換するよう構成されている。ＰＤＬデータ１２０は、印刷ジョブの様々な要素の配置を記述するものである。ＰＤＬデータ１２０は、PostScriptデータや印刷コマンド言語（ＰＤＬ；Printer Command Language）データなどである。
【００５９】
印刷ジョブに対応するグラフィックコマンド１０８を処理する前に、ドライバ１１０は、プリントサーバ１０４上のＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）１２４に対して、グラフィックコマンド１０８の処理方法の指示を求めて要求１１６を送信する。具体的には、ドライバ１１０は、ホスト１０２が、グラフィックコマンド１０８をラスタライズすべきか、あるいは、グラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングすべきかについて、ＲＩＰ制御部１２４が決定するよう要求する。
【００６０】
上記要求１１６に応じて、ＲＩＰ制御部１２４は、グラフィックコマンド１０８をラスタライズするのがより効率的なのは、ホスト１０２上のＲＩＰ部１１４であるか、または、どこかにある他のＲＩＰ部であるかを決定する。この決定に際して考慮すべきいくつかの要因については後述する。
【００６１】
ＲＩＰ制御部１２４は、ドライバ１１０からの要求１１６に対して、グラフィックコマンド１０８の処理方法を示す指示１１８により応答する。具体的には、グラフィックコマンド１０８をラスタライズするのがより効率的なのはホスト１０２上のＲＩＰ部１１４であるとＲＩＰ制御部１２４が決定した場合には、ＲＩＰ制御部１２４はドライバ１１０に対してグラフィックコマンド１０８をラスタライズする旨を指示する。この指示に応じて、ホスト１０２上のＲＩＰ部１１４はグラフィックコマンド１０８をラスタライズし、その結果、ラスタデータ１２２を生成する。そして、ラスタデータ１２２はプリントサーバ１０４へ送信される。
【００６２】
一方、グラフィックコマンド１０８をラスタライズするのがより効率的なのは他のＲＩＰ部であるとＲＩＰ制御部１２４が決定した場合には、ＲＩＰ制御部１２４はドライバ１１０に対してグラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングする旨を指示する。この指示１１８に応じて、ホスト１０２上のＰＤＬ部１１２はグラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングする。そして、ＰＤＬデータ１２０はプリントサーバ１０４へ送信される。
【００６３】
本実施形態では、上記処理を印刷ジョブ全体に対して１度実行してもよい。換言すると、ＲＩＰ制御部１２４は、印刷ジョブ全体がドライバ１１０によってどのように処理されるかを決定してもよい（例えば、ドライバ１１０がラスタデータ１２２を生成するのかまたは、ＰＤＬデータ１２０を生成するのかなど）。あるいは、上記処理を単一の印刷ジョブに対して複数回繰り返し実行してもよい。具体的には、ＲＩＰ制御部１２４は、印刷ジョブの異なるセグメントごとに、個別に上記決定の処理を実行してもよい。印刷ジョブのセグメントとは、例えば、ページやページ域などである。
【００６４】
図１に示す実施形態ではドライバ１１０が使用されているが、実施形態によっては代わりにプリントプロセッサを使用してもよい。そのような実施形態では、ドライバ１１０がＥＭＦ準拠であって、ＥＭＦを処理できるプリントプロセッサが含まれている場合に、アプリケーション１０６が印刷を実行すると、オペレーティングシステムが装置に依存しないグラフィックコマンドを生成してＥＭＦファイルに配置し、該ＥＭＦファイルの格納場所をプリントプロセッサに渡す。そしてプリントプロセッサは、ＥＭＦファイルを取得して即座に処理を開始する。次に、プリントプロセッサは、ドライバ１１０との接続において上述した方法と同様の方法により、ＲＩＰ制御部１２４と情報のやりとりを行う。
【００６５】
図２は、実施形態において、プリントサーバ２０４上のＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）２２４の動作を説明する図である。上述のように、ＲＩＰ制御部２２４は、ドライバ１１０（または、プリントプロセッサ）に対し、印刷ジョブに相当するグラフィックコマンド１０８をラスタライズするか、または、グラフィックコマンド１０８をＰＤＬデータ２２０にレンダリングするかを指示する。
【００６６】
ＲＩＰ制御部２２４が、グラフィックコマンド１０８をラスタライズすることをドライバ１１０に指示した場合、ＲＩＰ制御部２２４はホスト１０２からラスタデータ２２２を受信する。そして、ＲＩＰ制御部２２４はラスタデータ２２２をプリント装置２２６に送信する。
【００６７】
ＲＩＰ制御部２２４が、グラフィックコマンド１０８をＰＤＬデータ２２０にレンダリングすることをドライバ１１０に指示した場合、ＲＩＰ制御部２２４はホスト１０２からＰＤＬデータ２２０を受信する。この場合、ＲＩＰ制御部２２４はＰＤＬデータ２２０のラスタイメージ処理を、１または複数の使用可能なＲＩＰ部に分配する。図２に示す実施形態では、使用可能なＲＩＰ部が複数存在する。特に、プリントサーバ２０４はＲＩＰ部（第２ラスタイメージ処理部／ローカルのラスタイメージ処理部）２３２を含んでいる。さらに、プリントサーバ２０４は、１または複数の他のホスト群２２８（つまり、印刷ジョブを発したホスト１０２以外のホスト群２２８）と電気通信を行う。他のホスト群２２８には、１または複数のＲＩＰ部２３６が含まれている。さらに、プリントサーバ２０４は、１または複数の副サーバ群２３０と電気通信を行う。副サーバ群２３０には、１または複数のＲＩＰ部２３８が含まれている。さらに、プリント装置２２６はＲＩＰ部（第２ラスタイメージ処理部）２３４を含んでいる。
【００６８】
ある状況下では、ＲＩＰ制御部２２４は、ラスタライズするＰＤＬデータ２２０を、一つのＲＩＰ部に送信してもよい。例えば、ＲＩＰ制御部２２４はＰＤＬデータ２２０をローカルのＲＩＰ部２３２に送信してもよいし、他のホスト群２２８のうちの一つが備えるＲＩＰ部（第２ラスタイメージ処理部）２３６に送信してもよいし、副サーバ群２３０のうちの一つが備えるＲＩＰ部（第２ラスタイメージ処理部）２３８に送信してもよいし、あるいは、プリント装置２２６上のＲＩＰ部２３４に送信してもよい。
【００６９】
あるいは、ＲＩＰ制御部２２４は、ＰＤＬデータ２２０のさまざまな部分をさまざまな複数のＲＩＰ部にそれぞれ送信してもよい。例えば、ＲＩＰ制御部２２４は、ＰＤＬデータ２２０のある部分をローカルのＲＩＰ部２３２に送信し、ＰＤＬデータ２２０の上記と異なる部分を他のホスト群２２８上の１または複数のＲＩＰ部２３６に送信し、ＰＤＬデータ２２０の上記と異なる部分を副サーバ群２３０上の１または複数のＲＩＰ部２３８に送信し、そして、ＰＤＬデータ２２０の上記と異なる部分をプリント装置２２６上のＲＩＰ部２３４に送信してもよい。
【００７０】
上記（各）ＲＩＰ部がＰＤＬデータ２２０のラスタライズを完了すると、そのラスタデータ２２２は、プリント装置２２６に送信される。例えば、プリントサーバ２０４上のＲＩＰ部２３２、他のホスト群２２８上のＲＩＰ部２３６、および／または、副サーバ群２３０上のＲＩＰ部２３８は、ＲＩＰ制御部２２４にラスタデータ２２２を送信し、ＲＩＰ制御部２２４がプリント装置２２６にラスタデータ２２２を送信する。プリント装置２２６上のＲＩＰ部２３４は、ラスタデータ２２２の印刷に関係するプリント装置２２６上の他の構成要素に、自身が生成したラスタデータ２２２を提供する。
【００７１】
図３は、実施形態において、ＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）３２４に含まれる、および／または、使用される、構成要素および／または情報の典型例を示すブロック図である。上述のように、ＲＩＰ制御部３２４は、ドライバ１１０に対して、印刷ジョブに相当するグラフィックコマンド１０８をラスタライズするか、または、グラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングするかについて決定し、指示を送る。この決定を行うために、ＲＩＰ制御部３２４はラスタイメージ処理能力に影響を及ぼす各種要因を評価する決定部（決定手段）３５６を備える。
【００７２】
例えば、ＲＩＰ制御部３２４の決定部３５６は、ホストの処理能力３４０、プリント装置の処理能力３４２、プリントサーバの処理能力３４４を考慮する。他の装置の処理能力についても同様に考慮してもよい。例えば、使用可能な他のホスト（群）２２８や副サーバ（群）２３０の処理能力についても考慮してもよい。
【００７３】
また、ＲＩＰ制御部３２４は、他のＲＩＰ部の状態３４６に関する情報について、調査や要求を行ってもよい。またＲＩＰ制御部３２４は、例えばＣＰＵの型式、クロック速度、処理に使用できるメモリ量、ＮＩＣの速度などの、ＲＩＰ部の統計値３４８について考慮してもよい。
【００７４】
また、ＲＩＰ制御部３２４は、ネットワークの転送容量３５０と同様にネットワークの転送性能３５２についても考慮してもよい。ネットワークの転送容量３５０は初めから決まっているものであるが、ネットワークの負荷により実際のネットワークの転送性能はその転送容量からは大きく変動する。よって、ネットワークの転送性能３５２に関する情報も同様に使用する。
【００７５】
また、ＲＩＰ制御部３２４は、グラフィックコマンドの統計値３５４についても考慮してもよい。ドキュメント中に、互いに重なり合うグラフィックコマンド１０８が大量に含まれる場合、グラフィックコマンド１０８をプリントサーバ２０４に転送する負荷が非常に高くなる。この場合、ラスタイメージはより小さく、かつ、ホスト１０２上でラスタライズするのが最適である。逆に、テキスト文字であればＰＤＬデータ１２０として容易に送信できる。
【００７６】
実施形態によっては、上記要因のうちのいくつかのみがＲＩＰ制御部３２４にて考慮されていてもよい。さらに、上記で追加した要因以外についても考慮してもよい。例えば、実施形態において、使用中のグラフィックコマンド１０８とラスタライズを実行するソフトウェアとの組合せに関係する統計値を考慮してもよい。
【００７７】
図４は、実施形態においてホスト４２８の要部構成の典型例を示すブロック図である。上述のように、プリントサーバ４０４上のＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）４２４は、ラスタライズのために、印刷ジョブに相当するＰＤＬデータ４２０を他のホスト４２８に送信する。
【００７８】
ホスト４２８は、プリント装置２２６用のドライバ４１０を備える。ドライバ４１０はＲＩＰ部（第１ラスタイメージ処理部）４３６を含んでいる。さらに図４の実施形態では、要求受信部４５８が備えられている。要求受信部４５８は、ホスト４２８上のＲＩＰ部４３６へのアクセスを管理するよう構成されている。要求受信部４５８は、プリントサーバ４０４からのＰＤＬデータ４２０のラスタライズ要求を受信する。要求受信部４５８は、上述のような要求に応じて、ホスト４２８上のＲＩＰ部４３６によるＰＤＬデータ４２０のラスタライズの実施を許可するための１または複数の条件４６４を満足しているか否かを判定する。条件(群)４６４は、ホスト４２８のＣＰＵの利用限度に関連している。例えば、ホスト４２８が利用されていない場合や、ＣＰＵに負荷がかかる処理を実行していない場合には、ＲＩＰ部４３６をＰＤＬデータ４２０のラスタライズのために使用できる、などの条件が考えられる。
【００７９】
１または複数の条件４６４を満たす場合、要求受信部４５８はＲＩＰ部４３６に対してＰＤＬデータ４２０のラスタライズを指示する。しかしながら、１または複数の条件４６４を満たさない場合には、要求受信部４５８は、ＲＩＰ部４３６がＰＤＬデータ４２０のラスタライズに使用できない旨をプリントサーバ４０４に通知するための通知メッセージ４６２をプリントサーバ４０４に送信する。
【００８０】
図５は、本実施形態における、印刷ジョブ５６６に相当するグラフィックコマンド５０８（ａ〜ｃ・・・）の処理方法を説明する図である。上述のように、ＲＩＰ制御部５２４は、ドライバ１１０が印刷ジョブに相当するグラフィックコマンド５０８をラスタデータに変換すべきか、または、グラフィックコマンド５０８をＰＤＬデータ１２０にレンダリングするかについて、ドライバ１１０に指示する。
【００８１】
図５に示す印刷ジョブ５６６は、第一セグメント５６８ａと第二セグメント５６８ｂと第三セグメント５６８ｃとの３つのセグメントを含む。各セグメント５６８ａ〜ｃはページやページ域などに相当する。図示された本実施形態においては、ＲＩＰ制御部５２４は、印刷ジョブの各セグメントに対して、個別に決定処理を実施するものとする。すなわち、同じ印刷ジョブ５６６上の異なるセグメント５６８ａ〜ｃは、それぞれ別々に処理される。例えば、本実施形態においては、ＲＩＰ制御部５２４はドライバ５１０に対して、印刷ジョブ５６６上の第一セグメント５６８ａおよび第３セグメント５６８ｃにそれぞれ相当するグラフィックコマンド５０８ａおよび５０８ｃを、ＰＤＬデータ１２０にレンダリングする指示を行う。しかしながら、ＲＩＰ制御部５２４はドライバ５１０のＲＩＰ部（第１ラスタイメージ処理部）５１４に対して、印刷ジョブ５６６上の第二セグメント５６８ｂに相当するグラフィックコマンド５０８ｂをラスタライズする指示を行う。
【００８２】
図６は、ホスト１０２におけるラスタデータ生成処理およびページ記述言語データ生成処理の負荷を分散する負荷分散方法６００の処理の流れを示すフローチャートである。負荷分散方法６００は、プリントサーバ１０４上のＲＩＰ制御部１２４によって実行される。
【００８３】
負荷分散方法６００の処理は、印刷ジョブに相当するグラフィックコマンド１０８をどのように処理するかについて指示を受けるための要求１１６を、ＲＩＰ制御部１２４がホスト１０２のドライバ１１０から受信すると（ステップ６０２）、開始される。具体的には、ドライバ１１０は、ＲＩＰ制御部１２４に対して、ホスト１０２がグラフィックコマンド１０８をラスタライズするか、あるいは、グラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングするかいずれかを決定し、指示するよう要求する。ドライバ１１０は、印刷ジョブ５６６全体に対しての指示を要求してもよいし、あるいは、印刷ジョブ５６６のいくつかのセグメント（例えば、ページやページ域など）ごとに指示を要求してもよい。
【００８４】
上記要求１１６に応じて、ＲＩＰ制御部１２４は、グラフィックコマンド１０８のラスタライズをホスト１０２上のＲＩＰ部１１４で行う場合（Ａ）と、別に設置されている他のＲＩＰ部で行う場合（Ｂ）の、どちらがより効率的かを決定する（ステップ６０４）。ＲＩＰ制御部１２４は、グラフィックコマンド１０８をどのように処理するかを決定するに際して、ラスタイメージ処理能力に影響を及ぼす各種要因を評価する。例えば、ホストの処理能力３４０、プリント装置の処理能力３４２、プリントサーバの処理能力３４４、他のＲＩＰ部の状態３４６、ＲＩＰ部の統計値３４８、ネットワークの転送容量３５０、ネットワークの転送性能３５２、グラフィックコマンドの統計値３５４などである。
【００８５】
ＲＩＰ制御部１２４が、グラフィックコマンド１０８をラスタライズする処理をホスト１０２上のＲＩＰ部１１４で行う方がより効率的であると決定した場合（ステップ６０４においてＡ）、ＲＩＰ制御部１２４はホスト１０２に対してグラフィックコマンド１０８をラスタライズする指示を行う（ステップ６０８）。ステップ６０８の指示に応じて、ホスト１０２上のＲＩＰ部１１４は、グラフィックコマンド１０８をラスタライズし、その結果、ラスタデータ１２２が生成される。ＲＩＰ制御部１２４は、ホスト１０２からラスタデータ１２２を受信し（ステップ６１０）、プリント装置２２６にラスタデータ１２２を送信する（ステップ６１２）。
【００８６】
ＲＩＰ制御部１２４が、グラフィックコマンド１０８をラスタライズする処理を他のＲＩＰ部で行う方がより効率的であると決定した場合（ステップ６０４においてＢ）、ＲＩＰ制御部１２４はホスト１０２に対してグラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングする指示を行う（ステップ６１４）。ステップ６１４の指示に応じて、ホスト１０２のＰＤＬ部１１２はグラフィックコマンド１０８をＰＤＬデータ１２０にレンダリングし、ＲＩＰ制御部１２４にＰＤＬデータ１２０を送信する。ＲＩＰ制御部１２４は、ホスト１０２からＰＤＬデータ１２０を受信する（ステップ６１６）。そして、ＲＩＰ制御部１２４は、ＰＤＬデータ１２０のラスタイメージ処理を、利用可能な１または複数のＲＩＰ部に分配する（ステップ６１８）。この分配するステップ６１８は、ＰＤＬデータ１２０の全てまたは一部をローカルのＲＩＰ部２３２に送信するステップを含んでいてもよいし、他のホスト（群）２２８上の１または複数のＲＩＰ部２３６に送信するステップを含んでいてもよいし、副サーバ（群）２３０上の１または複数のＲＩＰ部２３８に送信するステップを含んでいてもよいし、プリント装置２２６上のＲＩＰ部２３４に送信するステップを含んでいてもよい。
【００８７】
実施形態によっては、負荷分散方法６００の各ステップは印刷ジョブ全体に対して一度だけ実行してもよい。あるいは、負荷分散方法６００の各ステップが一つの印刷ジョブに対して複数回繰り返されたり、印刷ジョブのセグメントごとに一回ずつ実行されたりしてもよい。
【００８８】
図７は、ホスト１０２のラスタデータ生成およびページ記述言語データ生成処理に対する負荷分散の処理を行うプリントサーバにおける、ホスト４２８のＲＩＰ部４３６へのアクセス管理方法７００の処理の流れを示すフローチャートである。アクセス管理方法７００は、ホスト４２８上のプリント装置ドライバ４１０内の要求受信部４５８により実行される。
【００８９】
アクセス管理方法７００は、要求受信部４５８が、ＰＤＬデータ４２０をラスタライズする要求を受信すると（ステップ７０２）、開始される。上記要求に応じて、要求受信部４５８は、ホスト４２８上のＲＩＰ部４３６がＰＤＬデータ４２０をラスタライズすることを許可するための１または複数の条件４６４を満たしているかどうかを判定する（ステップ７０４）。条件（群）４６４は、ホスト４２８のＣＰＵの利用限度に関連している。
【００９０】
条件（群）４６４が満たされる場合（ステップ７０４においてＹＥＳ）、要求受信部４５８は、ＲＩＰ部４３６に対してＰＤＬデータ４２０のラスタライズを指示する（ステップ７０６）。一方、条件（群）４６４が満たされない場合（ステップ７０４においてＮＯ）、要求受信部４５８は、ＲＩＰ部４３６を、ＰＤＬデータ４２０のラスタライズに使用できない旨をプリントサーバ４０４に通知する（ステップ７０８）。
【００９１】
図８は、コンピュータシステム（プリントサーバ）８０１において一般的に使用される主なハードウェア構成要素を示すブロック図である。図に示す構成要素は、物理的に同じ一つのシステム内に配置されていてもよいし、別のシステムや筐体に配置されていてもよい。
【００９２】
コンピュータシステム８０１はプロセッサ（決定手段／ラスタライズ指示手段／レンダリング指示手段）８０３とメモリ８０５とを備えている。プロセッサ８０３は、コンピュータシステム８０１の動作を制御するものであって、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ；digital signal processor）、その他、周知技術の装置によって実現される。プロセッサ８０３は、一般に、メモリ８０５に蓄積されているプログラム命令に基づき、論理演算および算術演算を実行する。
【００９３】
上記メモリ８０５とは、電子的情報を記憶できる電子部品と広義に定義されるものであって、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶装置、光学記憶装置、ＲＡＭ上のフラッシュメモリ装置、プロセッサ８０３内にあるオンボードメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタなどとして実装される。メモリ８０５は一般にプログラム命令と他のデータとを記憶するものである。プログラム命令は、上記で開示した方法のすべてまたは一部を実現するために、プロセッサ８０３によって実行される。
【００９４】
またコンピュータシステム８０１は、一般的には、他の電子デバイスと通信するための１または複数の通信インタフェース８０７を備えている。通信インタフェース８０７は、有線通信技術または無線通信技術、あるいは、その両方に基づいていてもよい。通信インタフェース８０７の例としては、シリアルポート、パラレルポート、ユニバーサルシリアルバス（ＵＳＢ）、イーサーネットアダプタ、ＩＥＥＥ１３９４バスインタフェース、小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）バスインタフェース、赤外線（ＩＲ）通信ポート、Bluetooth（登録商標）無線通信アダプタなどがある。
【００９５】
また、コンピュータシステム８０１は、一般的には、１または複数の入力装置８０９と出力装置８１１とを備えている。入力装置８０９の例としては、キーボード、マウス、マイク、リモート制御装置（リモコン）、ボタン、ジョイスティック、トラックボール、タッチパッド、ライトペンなどがある。出力装置８１１の例としては、スピーカ、プリンタなどがある。コンピュータシステムに含まれる出力装置の典型的な具体例は、ディスプレイ装置８１３である。上記で開示した実施形態で使用されるディスプレイ装置８１３は、例えば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、ガスプラズマ、電界発光などの適切な画像投影技術を利用したものである。ディスプレイ制御装置８１５は、メモリ８０５に蓄積されているデータを、ディスプレイ装置８１３に表示するためのテキスト、画像、動画像へと変換するためのものである。
【００９６】
もちろん図８はコンピュータシステム８０１の一形態にすぎない。様々な他のアーキテクチャや構成要素を使用してもよい。
【００９７】
情報や信号は様々な技術や技法により表現されるものである。例えば、上述したようなデータ、命令、コマンド、情報、信号、ビット、符号、チップは、電圧、電流、電磁波、磁場、磁性粒子、光（optical filed）、光粒子（optical particles）、またはその組合せによって表現される。
【００９８】
上述の各実施形態に関連して記載した様々な論理ブロック、モジュール、回路、アルゴリズム手順は、電気的ハードウェア、コンピュータソフトウェア、またはその両方で実現される。ハードウェアとソフトウェアの互換性を明確に示すために、構成要素、ブロック、モジュール、回路、手順について、上述では機能の観点で一般化して説明した。このような機能がハードウェアで実装されるかソフトウェアで実装されるかは、特定のアプリケーションおよびシステム全体に課せられる設計の制約に依存するものである。当業者が、特定のアプリケーションに対してさまざまな観点で上述の機能を実現するが、その決定された実現形態が本発明の範囲を逸脱することになると解釈されるべきではない。
【００９９】
上述した各実施形態に関連する論理ブロック、モジュール、回路は、上記機能を実行するよう設計された汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ；application specific integrated circuit）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ；filed programmable gate array）または他のプログラマブルロジックデバイス、個別ゲートロジック（discrete gate logic）、個別トランジスタロジック（discrete transistor logic）、個別ハードウェア部品（discrete hardware components）、または、これらの組合せにより実装あるいは実行される。汎用プロセッサはマイクロプロセッサであってもよいし、あるいは、上記プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、または、状態機械であってもよい。また、プロセッサは演算装置の組合せで実現してもよい。例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサの組合せ、ＤＳＰの核部分と連結する１または複数のマイクロプロセッサの組合せ、または、その他の構成が考えられる。
【０１００】
上述した各実施形態に関連する方法またはアルゴリズムの各ステップは、ハードウェアにより直接、あるいは、プロセッサにより実行されるソフトウェアモジュールにおいて、または、それらの組合せにより実行される。ソフトウェアモジュールは、ＲＡＭ、フラッシュメモリ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、レジスタ、ハードディスク、リムーバルディスク、ＣＤ−ＲＯＭ、または、その他周知の記録媒体に記録されていればよい。記録媒体は、一般的には、該記録媒体から情報を読み書きすることができるプロセッサとつながっている。つまり、プロセッサには記録媒体が必要不可欠である。プロセッサおよび記録媒体はＡＳＩＣ内に備わっている。ＡＳＩＣはユーザ端末に備わっている。つまり、プロセッサおよび記録媒体は、個別部品（discrete component）として、ユーザ端末に備わっている。
【０１０１】
本願明細書で開示した方法は、１または複数のステップまたは動作によって実現される。本発明の範囲を逸脱しない範囲で、各ステップおよび／または動作を相互に入れ替えてもよい。つまり、実施形態の適切な処理を行う上で、各ステップまたは動作の具体的な順序を固定する必要がなければ、各ステップおよび／または動作の順序は、本発明の範囲を逸脱しない範囲で、変更および／または省略してもよい。
【０１０２】
本発明の実施形態および応用例を図示および説明したが、本発明は、本願明細書で開示した構成や構成要素そのものに限定して解釈されるべきものではない。本発明の精神と範囲を逸脱しない範囲で、本願明細書に開示した本発明に係る方法およびシステムの設計、動作、および、詳細において、当業者にとって明らかな、様々な改良、変更、変形が施されてもよい。
【０１０３】
最後に、プリントサーバ１０４（２０４、４０４、５０４）の各ブロック、特にＲＩＰ制御部１２４（２２４、３２４、４２４、５２４）は、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０１０４】
すなわち、プリントサーバ１０４は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるプリントサーバ１０４の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記プリントサーバ１０４に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１０５】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０１０６】
また、プリントサーバ１０４を通信ネットワークと接続可能に構成し、上記プログラムコードを、通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【０１０７】
コピー機、多機能周辺機器（ＭＦＰ；multifunctional peripheral）、または、ファクシミリ装置、パーソナルコンピュータ、サーバなどのように、印刷ジョブを処理して印刷を行う印刷システムを構成する各装置に、本発明を適用することができる。
【図面の簡単な説明】
【０１０８】
【図１】ラスタイメージ処理（ＲＩＰ）制御部を備えるプリントサーバと電気通信するホストを含む、印刷ジョブのラスタイメージ処理を負荷分散するための負荷分散システムの要部構成を示すブロック図である。
【図２】ある実施形態におけるＲＩＰ制御部の動作を説明する図である。
【図３】ある実施形態におけるＲＩＰ制御部に含まれる、および／または、使用される、構成要素および／または情報の典型例を示すブロック図である。
【図４】ある実施形態におけるホストの要部構成の典型例を示すブロック図である。
【図５】ある実施形態における、印刷ジョブに相当するグラフィックコマンドの処理方法を説明する図である。
【図６】印刷ジョブのラスタイメージ処理に対する負荷分散の処理の流れを示すフローチャートである。
【図７】印刷ジョブのラスタイメージ処理に対する負荷分散の処理を行うプリントサーバにおける、ＲＩＰ部へのアクセス管理の処理の流れを示すフローチャートである。
【図８】コンピュータシステムにおいて一般的に使用される主なハードウェア構成要素を示すブロック図である。
【符号の説明】
【０１０９】
１００  負荷分散システム
１０２  ホスト
１０４  プリントサーバ
１０６  アプリケーション
１０８  グラフィックコマンド
１１０  ドライバ
１１２  ＰＤＬ部
１１４  ＲＩＰ部（第１ラスタイメージ処理部）
１２４  ＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）
２０４  プリントサーバ
２２４  ＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）
２２６  プリント装置
２２８  ホスト（群）
２３０  副サーバ（群）
２３２  ＲＩＰ部（第２ラスタイメージ処理部／ローカルのラスタイメージ処理部）
２３４  ＲＩＰ部（第２ラスタイメージ処理部）
２３６  ＲＩＰ部（第２ラスタイメージ処理部）
２３８  ＲＩＰ部（第２ラスタイメージ処理部）
３２４  ＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）
３５６  決定部（決定手段）
４０４  プリントサーバ
４１０  ドライバ
４２４  ＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）
４２８  ホスト
４３６  ＲＩＰ部（第１ラスタイメージ処理部）
４５８  要求受信部
４６４  条件
５０８  グラフィックコマンド
５１０  ドライバ
５１４  ＲＩＰ部（第１ラスタイメージ処理部）
５２４  ＲＩＰ制御部（決定手段／ラスタライズ指示手段／レンダリング指示手段）
５６６  印刷ジョブ
６００  負荷分散方法
７００  アクセス管理方法
８０１  コンピュータシステム（プリントサーバ）
８０３  プロセッサ（決定手段／ラスタライズ指示手段／レンダリング指示手段）
８０５  メモリ
８０７  通信インタフェース
８０９  入力装置
８１１  出力装置
８１３  ディスプレイ装置
８１５  ディスプレイ制御装置
【図１】
0004757753.tif 000002
【図２】
0004757753.tif 000003
【図３】
0004757753.tif 000004
【図４】
0004757753.tif 000005
【図５】
0004757753.tif 000006
【図６】
0004757753.tif 000007
【図７】
0004757753.tif 000008
【図８】
0004757753.tif 000009