説明

プリンタコントローラ

【課題】画像データを有する印刷ジョブを受け付け、その印刷ジョブが有する画像データを印刷用画像データに展開して出力するプリンタコントローラにおいて、比較的簡易な構成でハードウェアの利用効率を向上させ、印刷ジョブの処理効率を向上する。
【解決手段】共通のハードウェア21a〜21cを使用するとともに、それぞれ独立した処理を行う、仮想的に設けられた複数の画像展開用仮想マシン25,26を備え、複数の画像展開用仮想マシン25,26によって1または複数の印刷ジョブの画像データの展開を並列的に行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを有する印刷ジョブを受け付け、その印刷ジョブが有する画像データを印刷用画像データに展開して出力するプリンタコントローラに関するものである。
【背景技術】
【0002】
従来、LANや電話回線などのネットワークを介して、複数のクライアントPCと印刷装置とを接続し、クライアントPCから出力された印刷ジョブを印刷装置が有するプリンタコントローラにより受信し、その印刷ジョブが有する画像データを印刷用画像データへ展開処理した後、その印刷用画像データに基づいて印刷エンジンより印刷物を出力するプリンタシステムが多く用いられている。
【0003】
そして、従来、プリンタコントローラは1つのハードウェア(CPU)により構成されており、複数のクライアントPCから出力された印刷ジョブはプリンタコントローラによって順次受信されるが、1つのクライアントPCから出力された印刷ジョブの受信、展開処理および印刷エンジンへの出力の処理が終了した後、次に受信した印刷ジョブの展開処理および印刷エンジンへの出力を行うといった具合に、印刷ジョブの受信、展開処理および印刷エンジンへの出力の一連の処理を印刷ジョブを受け取った順番で行っていた(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−55793号公報
【非特許文献】
【0005】
【非特許文献1】「すべてわかる仮想化大全 実例に学ぶ構築・運用法2008」、日経BP社、2007年9月8日、P18−P23
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、同時期にクライアントPCから出力されてプリンタコントローラにより受信される印刷ジョブが少ない場合には、上記のような処理の流れで問題はないが、同時期に多数の印刷ジョブがプリンタコントローラにより受信されるような場合には、前の印刷ジョブの展開処理および印刷エンジンへの出力が終了するまで次の印刷ジョブの展開処理を行うことができないため、処理効率が著しく低下するという問題があった。
【0007】
そして、各印刷ジョブの展開処理を含めた全体の処理をアプリケーションレベルで並列処理化するにはメモリなどのリソースの管理やモジュール間のインターフェースが複雑化し、装置としての性能や品質の維持が困難であった。また、開発効率にも大きな影響を与えていた。
【0008】
一方、近年、CPUのマルチコア化やメモリ、ハードディスクなどの搭載量が増大し、ハードウェアの性能向上が顕著であり、環境配慮の観点からもハードウェアの利用効率の向上が望まれていた。また、ハードウェアの利用効率を向上させる一般的な手法として、仮想化技術が提案されている(たとえば、特許文献2参照)。
【0009】
本発明は、上記事情に鑑み、比較的簡易な構成でハードウェアの利用効率を向上させ、印刷ジョブの処理効率を向上することができるプリンタコントローラを提供することを目的とするものである。
【課題を解決するための手段】
【0010】
本発明のプリンタコントローラは、画像データを有する印刷ジョブを受け付ける印刷ジョブ受付部と、印刷ジョブ受付部により受け付けられた印刷ジョブが有する画像データを印刷用画像データに展開する画像データ展開部と、画像データ展開部より展開された印刷用画像データを画像形成装置に出力する画像データ出力部とを備えたプリンタコントローラにおいて、画像データ展開部が、共通のハードウェアを使用するとともに、それぞれ独立した処理を行う、仮想的に設けられた複数の画像展開用仮想マシンを備え、複数の画像展開用仮想マシンによって1または複数の印刷ジョブの画像データの展開を並列的に行なうものであることを特徴とする。
【0011】
また、上記本発明のプリンタコントローラにおいては、印刷ジョブ受付部を、優先印刷ジョブを受け付けるものとし、画像データ展開部を、優先印刷ジョブの画像データの展開を行う画像展開用仮想マシンの展開処理を優先して行うものとすることができる。
【0012】
また、複数の画像展開用仮想マシンのそれぞれに割り当てられるハードウェアの占有率を制御する、仮想的に設けられた特権仮想マシンをさらに設けるようにすることができる。
【0013】
また、複数の画像展開用仮想マシンのそれぞれに割り当てられるハードウェアの占有率を制御する、仮想的に設けられた特権仮想マシンをさらに設け、特権仮想マシンを、優先印刷ジョブの画像データの展開を行う画像展開用仮想マシンのハードウェアの占有率を他の画像展開用仮想マシンのハードウェアの占有率よりも大きくするものとすることができる。
【0014】
また、画像データ展開部を、複数の画像展開用仮想マシンによって複数の印刷ジョブの画像データの展開をそれぞれ行なうものとし、画像データ出力部を、複数の画像展開用仮想マシンによって展開された印刷用画像データを、印刷ジョブ受付部によって受け付けられた複数の印刷ジョブの順番で出力するものとすることができる。
【0015】
また、画像データ展開部を、複数の画像展開用仮想マシンによって複数の印刷ジョブの画像データの展開をそれぞれ行なうものとし、画像データ出力部を、複数の画像展開用仮想マシンによって展開された印刷用画像データを、その展開処理が終了した順番で出力するものとすることができる。
【0016】
また、印刷ジョブ受付部を、互いに異なる種類のページ記述言語からなる複数の印刷ジョブを受け付けるものとし、画像データ展開部における各画像展開用仮想マシンを、それぞれ異なる種類のページ記述言語からなる印刷ジョブの画像データの展開を行うものとすることができる。
【0017】
また、画像データ展開部を、複数の画像展開用仮想マシンによって1つの印刷ジョブのカラー画像データの各色の展開をそれぞれ行なうものとすることができる。
【0018】
また、画像データ展開部を、印刷ジョブ受付部により受け付けられた印刷ジョブの数に応じて画像展開用仮想マシンの数を増減させるものとすることができる。
【0019】
また、印刷ジョブ受付部を、共通のハードウェアを使用する、仮想的に設けられた印刷ジョブ受付用仮想マシンからなるものとすることができる。
【0020】
また、画像データ出力部を、共通のハードウェアを使用する、仮想的に設けられた画像データ出力用仮想マシンからなるものとすることができる。
【発明の効果】
【0021】
本発明のプリンタコントローラによれば、共通のハードウェアを使用するとともに、それぞれ独立した処理を行う、仮想的に設けられた複数の画像展開用仮想マシンを設け、複数の画像展開用仮想マシンによって1または複数の印刷ジョブの画像データの展開を並列的に行なうようにしたので、比較的簡易な構成でハードウェアの利用効率を向上させることができ、展開処理機能を複数の画像展開用仮想マシンに分散化して複数の印刷ジョブの画像データの展開処理を同時期に行うことができるので、印刷ジョブの処理効率を向上することができる。そして、各クライアントPCへのサービスを平準化することができ、ユーザ満足度を向上させることができる。また、印刷システム全体のコストパフォーマンスの向上を図ることができる。
【0022】
また、仮想化技術を利用することで、アプリケーションレベルでは仮想化を意識した単一のプリンタコントローラを開発するだけでよく、このプリンタコントローラをユーザの使用環境に応じて複数の仮想マシン上にインストールすることで分散処理や並列処理が比較的容易に実現できる。
【0023】
また、上記本発明のプリンタコントローラにおいて、優先印刷ジョブを受け付けた場合には、優先印刷ジョブの画像データの展開を行う画像展開用仮想マシンの展開処理を優先して行うようにした場合には、たとえば、優先的に印刷を行いたいものがある場合に、そのニーズに容易に対応することができる。
【0024】
また、複数の画像展開用仮想マシンのそれぞれに割り当てられるハードウェアの占有率を制御する、仮想的に設けられた特権仮想マシンをさらに設けるようにした場合には、たとえば、各画像展開用仮想マシンが受け付けている印刷ジョブの内容に応じて、各画像展開用仮想マシンに割り当てられるハードウェアの占有率を制御することによって、特にソフトウェアの変更などを行うことなく、各画像展開用仮想マシンの環境設定を最適な状態に設定することができ、より処理効率の向上を図ることができる。
【0025】
また、特権仮想マシンによって、優先印刷ジョブの画像データの展開を行う画像展開用仮想マシンのハードウェアの占有率を他の画像展開用仮想マシンのハードウェアの占有率よりも大きくするようにした場合には、優先印刷ジョブの処理をより高速に行うことができる。
【0026】
また、複数の画像展開用仮想マシンによって展開された印刷用画像データを、その展開処理が終了した順番で出力するようにした場合には、たとえば、前に受信した非常に画像データ量が大きい印刷ジョブの展開処理の途中であっても、後に受信した印刷ジョブの展開処理が終了した場合には、その印刷ジョブの印刷処理を先に行うことができるので、印刷システムの使用効率をさらに向上させることができる。
【0027】
また、互いに異なる種類のページ記述言語からなる複数の印刷ジョブを受け付け、各画像展開用仮想マシンによって、それぞれ異なる種類のページ記述言語からなる印刷ジョブの画像データの展開を行うようにした場合には、たとえば、各クライアントにおけるプリンタドライバが異なる種類のページ記述言語の印刷ジョブを出力するものであったり、プリンタドライバのバージョンが異なるものであったりした場合でも、これらに対応して適切に処理を行うことができ、各ページ記述言語専用のプリンタコントローラを設ける必要がないのでコストの削減を図ることができる。
【0028】
また、複数の画像展開用仮想マシンによって1つの印刷ジョブのカラー画像データの各色の展開をそれぞれ行なうようにした場合には、カラー画像データの展開処理をより高速に行うことができる。
【0029】
また、印刷ジョブ受付部により受け付けられた印刷ジョブの数に応じて画像展開用仮想マシンの数を増減させるようにした場合には、印刷ジョブの数が少ない場合には、画像展開用仮想マシンの数を減少させて各画像展開用仮想マシンに割り当てられるハードウェアの占有率を大きくし、印刷ジョブの数が多い場合には、画像展開用仮想マシンの数を増加させて各画像展開用仮想マシンに割り当てられるハードウェアの占有率を小さくすることでき、システムの使用状況に応じてより適切な処理を行うことができる。
【0030】
また、印刷ジョブ受付部や画像データ出力部についても、印刷ジョブ受付用仮想マシン
画像データ出力用仮想マシンにより実現するようにした場合には、CPUやメモリなどのリソースをさらに効率的に使用することができる。
【図面の簡単な説明】
【0031】
【図1】本発明のプリンタコントローラの一実施形態を用いた印刷システムの概略構成図
【図2】プリンタコントローラの概略構成図
【図3】プリンタコントローラの機能ブロック図
【図4】仮想マシンVM−Aの作用を説明するためのフローチャート
【図5】仮想マシンVM−B,VM−Cの作用を説明するためのフローチャート
【図6】仮想マシンVM−Dの作用を説明するためのフローチャート
【図7】仮想マシンVM−Eの作用を説明するためのフローチャート
【発明を実施するための形態】
【0032】
以下、図面を参照して本発明のプリンタコントローラの一実施形態を用いた印刷システムについて詳細に説明する。本印刷システムは、プリンタコントローラの構成に特徴を有するものであるが、まずは、印刷システムの全体の概略構成について説明する。
【0033】
本印刷システムは、図1に示すように、印刷対象の画像データを有する印刷ジョブを出力するクライアントPC10,11,12,13と、電話回線やLANなどのネットワーク1を介してクライアントPC10〜13に接続された印刷装置2とを備えている。
【0034】
クライアントPC10〜13は、画像データ編集用のソフトウェアと、そのソフトウェアにより編集された印刷対象の画像を表す画像データと印刷条件(用紙サイズ、片面印刷/両面印刷、縦/横、カラー/単色、部単位/ページ単位、部数、ページ数など)とに基づいて、所定のPDL(Page Discription Language)で記述された印刷ジョブを生成し、その印刷ジョブをネットワーク1に出力するプリンタドライバとがインストールされたものである。
【0035】
印刷装置2は、クライアントPC10〜13から出力された印刷ジョブを受け付け、その受け付けた印刷ジョブの画像データと印刷条件とに基づいて印刷用画像データに展開し、その印刷用画像データを印刷エンジンに出力するプリンタコントローラ20と、プリンタコントローラ20から出力された印刷用画像データに基づいて所定の記録媒体に画像を形成する印刷エンジン30と、原稿を読み取って画像データを生成する画像読取部40と、タッチパネルを有し、操作者による所定の操作指示を受け付ける操作パネル50とを備えている。
【0036】
プリンタコントローラ20は、図2に示すように、ハードウェアの構成としては、CPU21aと、ハードディスク21bと、一時記憶メモリ21cとを備えている。そして、これらのハードウェアを共通に使用するとともに、それぞれ独立した処理を行う、仮想的に設けられた複数の仮想マシン23〜28と、この仮想マシン23〜28とハードウェアと仲介する仮想マシンモニタ22とを備えている。
【0037】
仮想マシン23〜28は、上述したようにそれぞれが独立した処理を行うものであり、各仮想マシンに対してそれぞれ機能が設定される。各仮想マシン24〜28は、それぞれ設定された機能を実行する一般アプリケーションと一般アプリケーションを動作させるためのOS(オペレーティングシステム)とを備えている。
【0038】
また、仮想マシン23は、一般アプリケーションを有する各仮想マシン24〜28のそれぞれに割り当てられるハードウェアの占有率を制御し、各仮想マシン24〜28のハードウェアへのアクセスを制御する特権アプリケーションと特権アプリケーションを動作させるためのOS(オペレーティングシステム)とを備えている。なお、本実施形態においては、特権アプリケーションを実行する仮想マシンを別個に設けるようにしたが、これに限らず、特権アプリケーションと同等の機能を仮想マシンモニタに持たせるようにしてもよい。
【0039】
各仮想マシン23〜28に設定される機能を説明するための機能ブロック図を図3に示す。なお、以下、仮想マシン23をVM−X、仮想マシン24をVM−A、仮想マシン25をVM−B、仮想マシン26をVM−C、仮想マシン27をVM−D、仮想マシン28をVM−Eという。
【0040】
VM−Aは、各クライアントPC10〜13から出力された印刷ジョブをそれぞれ受け付けるソケットS0〜S3を有するソケットI/Fと、ソケットI/Fの各ソケットS0〜S3によって受け付けられた印刷ジョブを受信して一時的に保持する受信キューQ0〜Q3と、受信キューQ0〜Q3に保持された印刷ジョブに対してジョブID0〜ID3をそれぞれ付加して保存するジョブDBとを有するデータ受信およびジョブ管理機能が設定されている。
【0041】
VM−BおよびVM−Cは、展開メモリM1〜M3を有し、受信キューQ0〜Q3に保持された印刷ジョブに基づいて展開メモリM1〜M3上に印刷用画像データを展開する画像展開機能が設定されている。なお、各展開メモリM1〜M3には、ハードウェアのメモリ21c上の所定の領域がそれぞれ割り当てられる。
【0042】
VM−Dは、VM−BおよびVM−CのジョブDBから出力されたジョブID0〜ジョブID3を受け付けて保持するとともに、展開メモリM1〜M3上に展開された印刷用画像データを印刷エンジンに出力するエンジンI/Fを有するエンジンI/F制御機能が設定されている。
【0043】
VM−Eは、操作パネル50における表示内容を制御するとともに、操作パネル50において受け付けられた操作指示の内容を解析し、その解析結果に応じてその他の仮想マシンの機能を実行させるユーザI/F機能が設定されている。
【0044】
印刷エンジン30は、印刷用画像データを受け取って記録媒体上に画像を形成できるものであれば如何なるものでもよく、たとえば、インクジェットプリンター、レーザープリンターや孔版印刷装置などを利用することができる。
【0045】
次に、本発明のプリンタコントローラの一実施形態を用いた印刷システムの作用について説明する。
【0046】
まず、クライアントPC10〜13において画像データが編集されるとともに印刷条件が設定され、その画像データと印刷条件とに基づいてプリンタドライバにおいて所定のPDLで記述された印刷ジョブが生成される。そして、各クライアントPC10〜13からそれぞれ任意のタイミングで印刷ジョブがネットワーク1に出力される。
【0047】
そして、ネットワーク1に出力された各印刷ジョブはプリンタコントローラ20に入力される。以下、プリンタコントローラ20の作用について、図3および図4〜図6に示すフローチャートを参照しながら詳細に説明する。
【0048】
プリンタコントローラ20に印刷ジョブが入力されると、まず、VM−Aがこの印刷ジョブを処理する。具体的には、VM−Aは、図4のフローチャートに示すように、まず、クライアントPC10〜13からの印刷ジョブの受信の待状態となっている(ST10)。そして、クライアントPC10〜13からネットワーク1にそれぞれ印刷ジョブが出力されると、ソケットI/FのソケットS0〜S3を開いて印刷ジョブを受け付け、その受け付けた印刷ジョブをそれぞれ受信キューQ0〜Q3に保持する(ST12)。そして、VM−Aは、受信キューQ0〜Q3に保持された印刷ジョブに対し、それぞれ受信した順にジョブID0〜ジョブID3を付加し、このジョブID0〜ジョブID03をジョブDBに登録するとともに、そのジョブID0〜ジョブID3を付加された順にVM−Dに送信する(ST14、ST16)。なお、VM−Dは、ジョブID0〜ジョブID3を入力された順番で保持する。
【0049】
そして、次に、VM−Aは、受信キューQ0〜Q3に保持された印刷ジョブを展開するための仮想マシンを選択する(ST18)。なお、本実施形態では、画像展開機能を有する仮想マシンの代表としてVM−BとVM−Cの2つを挙げているが、実際には、画像展開機能を有する仮想マシンは2つ以上設定されており、それぞれが展開メモリを有するものとする。このときVM−Aは、画像展開処理を行っていない仮想マシンを優先して選択し、画像展開処理を行っていない仮想マシンが複数ある場合には、そのうちの一つを選択する。
【0050】
そして、VM−Aは、受信キューQ0〜Q3に保持された印刷ジョブをそれぞれ受信した順番で、順次選択した仮想マシンに出力する(ST20)。
【0051】
そして、VM−B、VM−Cおよびその他の画像展開機能を有する仮想マシン(以下、代表してVM−BおよびVM−Cという。)において、それぞれ印刷ジョブを受け付け次第、独立して並列に画像展開処理が行われる。具体的には、図5のフローチャートに示すように、まず、VM−BおよびVM−Cは、VM−Aから出力される印刷ジョブの待ち状態となっている(ST22)。そして、VM−Aから選択されて受信キューから出力された印刷ジョブを受け付けるとその印刷ジョブの解析を行う(ST24)。そして、印刷ジョブの解析することによって印刷ジョブに含まれる印刷条件を示す印刷パラメータを取得し(ST26)、その印刷パラメータに基づいて印刷ジョブに含まれる画像データを印刷用画像データに展開し、それぞれ展開メモリM1〜M3に保持する(ST28)。
【0052】
そして、VM−BおよびVM−Cの各仮想マシンは、印刷用画像データへの展開処理が終了次第、その画像展開処理対象の印刷ジョブに付加されたジョブIDと、画像展開処理が終了したことを示す展開終了信号と、印刷用画像データを展開した展開メモリ上の展開アドレスと、画像展開処理対象の印刷ジョブに含まれる印刷パラメータとをVM−Dに出力する(ST30)。
【0053】
そして、VM−Dは、図6のフローチャートに示すように、展開終了信号の待ち状態となっており(ST32)、この状態でVM−BおよびVM−Cのいずれかの仮想マシンからの展開終了信号を受信すると、その展開終了信号とともに入力されたジョブIDと展開アドレスとを保存する(ST34)。
【0054】
ここで、VM−Dは、上述したようにVM−Aから出力されたジョブID0〜ジョブID3を入力された順番で保持しており、この順番で各ジョブIDに対応する印刷用画像データを印刷エンジン30に対して出力するものである。
【0055】
したがって、ST34でジョブIDと展開アドレスを保存した後、その保存したジョブIDが、次に出力すべき印刷用画像データに対応するジョブIDであるか否かを確認する(ST36)。なお、本実施形態の説明では、VM−Aが、ジョブID0、ジョブID1、ジョブID2およびジョブID3をこの順番で出力し、VM−Dはこの順番でジョブIDを保持しているものとする。
【0056】
そして、ここでは、VM−BおよびVM−Cおいて、ジョブID3に対応する印刷ジョブ、ジョブID1に対応する印刷ジョブ、ジョブID0に対応する印刷ジョブ、ジョブID2に対応する印刷ジョブがこの順で画像展開処理が終了した場合について説明する。
【0057】
具体的には、VM−Dは、まず、ジョブID3に対応する印刷ジョブの画像展開処理が終了したことを示す展開終了信号を受信し(ST32)、その展開終了信号とともに入力されたジョブID3とその展開アドレスを保存する(ST34)。そして、そのジョブID3と次に出力すべきジョブID0とを比較する。
【0058】
そして、ジョブID3とジョブID0は一致していないので、ST36において次に出力すべきジョブIDではないと判断し、再びST32に戻り展開終了信号の待ち状態となる。
【0059】
そして、次にVM−Dは、ジョブID1に対応する印刷ジョブの画像展開処理が終了したことを示す展開終了信号を受信する(ST32)。
【0060】
そして、VM−Dは、展開終了信号を受信すると、その展開終了信号とともに入力されたジョブID1とその展開アドレスとを保存し(ST34)、再び、ジョブID1と次に出力すべきジョブID0とを比較する(ST36)。
【0061】
そして、ジョブID1とジョブID0は一致していないので、ST36において次に出力すべきジョブIDではないと判断し、再びST32に戻り展開終了信号の待ち状態となる。
【0062】
そして、次にVM−Dは、ジョブID0に対応する印刷ジョブの画像展開処理が終了したことを示す展開終了信号を受信する(ST32)。
【0063】
そして、VM−Dは、展開終了信号を受信すると、その展開終了信号とともに入力されたジョブID0とその展開アドレスとを保存し(ST34)、再び、ジョブID0と次に出力すべきジョブID0とを比較する(ST36)。
【0064】
そして、今度は、保存したジョブID0と次に出力されるべきジョブID0とが一致しているので、そのジョブID0とともに保存した展開アドレスに基づいて展開メモリから印刷用画像データを読み出し、その印刷用画像データを印刷パラメータとともに印刷エンジン30に出力する(ST38)。
【0065】
そして、次に、VM−Dは、ST38で印刷用画像データを出力したジョブID0とは別のジョブIDが既に保存されているか否かを確認する(ST40)。そして、既に保存されたジョブIDがない場合には、再びST32に戻り展開終了信号の待ち状態となる。一方、既に保存されたジョブIDがある場合には、既に保存している全てのジョブIDを取得する(ST42)。ここでは、上述したとおりジョブID3とジョブID1とが既に保存されているのでこれらを取得する。
【0066】
そして、再びST36に戻り、ST42で取得した全てのジョブIDと次に出力すべきジョブIDとが比較される(ST36)。具体的には、既に保存されているジョブID3およびジョブID1と次に出力されるべきジョブID1とを比較する。
【0067】
そして、既に保存したジョブID1と次に出力されるべきジョブID1とが一致しているので、そのジョブID1とともに保存した展開アドレスに基づいて展開メモリから印刷用画像データを読み出し、その印刷用画像データを印刷パラメータとともに印刷エンジン30に出力する(ST38)。なお、VM−Dは、印刷用画像データを出力したジョブIDについては、既に保存されたジョブIDのリストから削除されるものとする。
【0068】
そして、再び、VM−Dは、ST38で印刷用画像データを出力したジョブID1とは別のジョブIDが既に保存されているか否かを確認する(ST40)。そして、既に保存されたジョブIDがない場合には、再びST32に戻り展開終了信号の待ち状態となる。一方、既に保存されたジョブIDがある場合には、既に保存しているジョブIDを取得する(ST42)。ここでは、上述したとおりジョブID3が既に保存されているので、このジョブID3を取得する。
【0069】
そして、再びST36に戻り、ST42で取得したジョブIDが次に出力すべきジョブIDであるか否かを判断する(ST36)。具体的には、既に保存されているジョブID3と次に出力されるべきジョブID2とを比較する。
【0070】
そして、ジョブID3とジョブID2は一致していないので、ST36において次に出力すべきジョブIDではないと判断され、再びST32に戻り展開終了信号の待ち状態となる。
【0071】
そして、次にVM−Dは、ジョブID2に対応する印刷ジョブの画像展開処理が終了したことを示す展開終了信号を受信する(ST32)。
【0072】
そして、VM−Dは、展開終了信号を受信すると、その展開終了信号とともに入力されたジョブID2とその展開アドレスとを保存し(ST34)、再び、その入力されたジョブID2と次に出力すべきジョブID2とを比較する(ST36)。
【0073】
そして、今度は、保存したジョブID2と次に出力されるべきジョブID2とが一致しているので、そのジョブID2とともに保存した展開アドレスに基づいて展開メモリから印刷用画像データを読み出し、その印刷用画像データを印刷パラメータとともに印刷エンジン30に出力する。
【0074】
そして、次に、VM−Dは、ST38で印刷用画像データを出力したジョブID2とは別のジョブIDが既に保存されているか否かを確認する(ST40)。そして、既に保存されたジョブIDがない場合には、再びST32に戻り展開終了信号の待ち状態となる。一方、既に保存されたジョブIDがある場合には、既に保存している全てのジョブIDを取得する(ST42)。ここでは、上述したとおりジョブID3が既に保存されているのでこれを取得する。
【0075】
そして、再びST36に戻り、ST42で取得した全てのジョブIDと次に出力すべきジョブIDとが比較される(ST36)。具体的には、既に保存されているジョブID3と次に出力されるべきジョブID3とを比較する。
【0076】
そして、既に保存したジョブID3と次に出力されるべきジョブID3とが一致しているので、そのジョブID3とともに保存した展開アドレスに基づいて展開メモリから印刷用画像データを読み出し、その印刷用画像データを印刷パラメータとともに印刷エンジン30に出力する(ST38)。
【0077】
上記のようにしてVM−Dは、VM−Aか出力されたジョブIDの順番で、その各ジョブIDに対応する印刷用画像データと印刷パラメータとを印刷エンジン30に対して出力する。
【0078】
そして、印刷エンジン30は、VM−Dから出力された印刷用画像データと印刷パラメータとを順次受け付け、その受け付けた印刷用画像データと印刷パラメータとに基づいて画像形成を順次行って、各クライアントPC10〜13から出力された印刷ジョブに対応する印刷処理を順次行う。
【0079】
上記のような処理の流れが、本印刷システムの通常処理の流れである。
【0080】
ここで、上記のような通常処理を行っている過程において、たとえば、所定のクライアントPCにおいて優先的に印刷を行いたい印刷ジョブが設定され、その優先処理対象の印刷ジョブが出力された場合のプリンタコントローラ20の作用について説明する。
【0081】
所定のクライアントPCから出力された優先処理対象の印刷ジョブがプリンタコントローラ20に入力されると、通常処理の場合と同様に、まず、VM−AのソケットI/Fによりその印刷ジョブが受け付けられ、受信キューに保持されるとともに、ジョブDBにジョブIDが登録される。
【0082】
そして、優先処理対象の印刷ジョブが登録されると、特権アプリケーションを有するVM−Xは、画像展開機能を有する全ての仮想マシンの画像展開処理を中断させるとともに、その展開メモリに展開された印刷用画像データをハードディスク21bに移動させる。そして、VM−Aは、所定の画像展開機能を有する仮想マシンを選択し、その選択した仮想マシンに優先処理対象の印刷ジョブを出力する。
【0083】
そして、優先処理対象の印刷ジョブを受け付けた仮想マシンは、図5のフローチャートに示すステップで画像展開処理を行うが、このとき、VM−Xは、CPU21aの処理能力およびメモリ21cの領域の全てを優先処理対象の印刷ジョブを受け付けた仮想マシンに割り当てる。これにより優先処理対象の印刷ジョブの画像展開処理をより高速に行うことができる。なお、上記説明では、優先処理対象の印刷ジョブを受け付けた仮想マシン以外の仮想マシンについて、その画像展開処理を中断し、展開メモリを解放させるようにしたが、必ずしもこれに限らず、優先処理対象の印刷ジョブを受け付けた仮想マシン以外の少なくとも一部仮想マシンについても画像展開処理を継続するようにし、CPU21aの処理能力およびメモリ21cの領域の占有率を優先処理対象の印刷ジョブを受け付けた仮想マシン処理よりも小さくするようにしてもよい。
【0084】
そして、優先処理対象の印刷ジョブの画像展開処理が終了すると、優先処理対象の印刷ジョブに付加されたジョブIDと、画像展開処理が終了したことを示す展開終了信号と、印刷用画像データを展開した展開メモリ上の展開アドレスと、画像展開処理対象の印刷ジョブに含まれる印刷パラメータとがVM−Dに出力される。なお、優先処理対象の印刷ジョブの画像展開処理が終了すると、ハードディスク21bに移動させられていた印刷用画像データは再び展開メモリに戻され、各仮想マシンにおいて通常処理と同様の画像展開処理が再開される。
【0085】
そして、VM−Dは、優先処理対象の印刷ジョブの展開終了信号を受信すると、その展開終了信号とともに入力されたジョブIDと展開アドレスとを保存する。
【0086】
そして、その保存したジョブIDが、VM−Aにおいて優先処理対象の印刷ジョブに付加されたジョブIDであるか否かを確認し、優先処理対象の印刷ジョブのジョブIDである場合には、そのジョブIDとともに保存した展開アドレスに基づいて展開メモリから印刷用画像データを読み出し、その印刷用画像データを印刷パラメータとともに印刷エンジン30に出力する。一方、保存したジョブIDが、優先処理対象の印刷ジョブのジョブIDでない場合には、優先処理対象の印刷ジョブのジョブIDが確認されるまで、展開終了信号の受信からの処理を繰り返す。
【0087】
これによりVM−Dは、優先処理対象の印刷ジョブの印刷用画像データと印刷パラメータとを優先して印刷エンジン30に対して出力する。
【0088】
そして、印刷エンジン30は、VM−Dから出力された印刷用画像データと印刷パラメータとを受け付け、その受け付けた印刷用画像データと印刷パラメータとに基づいて画像形成を行って、優先処理対象の印刷ジョブに対応する印刷処理を優先的に行う。
【0089】
なお、上記説明では、VM−Xは、優先処理対象の印刷ジョブの展開処理をより高速に行うために、優先処理対象の印刷ジョブを受け付けた仮想マシンのハードウェアの占有率を高めるようにしたが、優先処理に限らず、VM−Xが、VM−Aによって受け付けられている印刷ジョブの内容に応じて、各仮想マシンのハードウェアの占有率を制御するようにしてもよい。たとえば、各仮想マシンが展開処理を行う印刷ジョブの画像データ量に応じて、画像データ量が大きいほど占有率を高めるように制御するようにしてもよい。
【0090】
また、ここで、ユーザI/F機能が設定されているVM−Eの動作について説明する。
【0091】
VM−Eは、上述したように、操作パネル50における表示内容を制御するとともに、操作パネル50において受け付けられた操作指示の内容を解析し、その解析結果に応じてその他の仮想マシンの機能を実行させるものである。操作パネル50に表示させる内容としては、印刷エンジンの稼働状況やジョブ管理の状況やクライアントPCからの受信データの状況などがある。具体的には、たとえば、VM−Aにより受け付けられた印刷ジョブのリストがある。そして、印刷ジョブリストを表示するようにすれば、操作者がこの印刷ジョブリストの中から優先処理対象の印刷ジョブを選択することができる。操作パネル50において操作者により優先処理対象の印刷ジョブが選択された場合には、その情報がVM−EからVM−Xに出力され、VM−Xによってその他の仮想マシンが制御されて上述したような優先処理が行われる。
【0092】
また、印刷ジョブリストを表示するようにすれば、操作者がこの印刷ジョブリストの中からキャンセル対象の印刷ジョブを選択することができる。操作パネル50において操作者によりキャンセル対象の印刷ジョブが選択された場合には、その情報がVM−EからVM−Xに出力され、VM−Xによって各仮想マシンが制御され、キャンセル対象の印刷ジョブ、ジョブID、および印刷用画像データなどが削除される。
【0093】
また、操作パネル50において受け付けられる操作指示の内容としては、たとえば、画像読取部40による原稿の読取指示などがある。操作パネル50において画像読取部40による読取指示が行われるとこれに応じて画像読取部40において原稿の読取りが行われ、その読み取られた画像データはVM−Aに出力される。そして、VM−AはVM−Eにおける読取指示に応じて、入力された画像データと操作パネル50において入力された印刷条件とを有する印刷ジョブを受け付けて、印刷ジョブの登録を行う。
【0094】
また、VM−Dにより印刷エンジン30の稼働状況を監視し、たとえば、印刷エンジン30においてジャムが生じた場合に、そのジャム情報をVM−DのエンジンI/Fを介してVM−Eに入力し、そのジャム情報を操作パネル50に表示するようにしてもよい。また、このときジャム情報をVM−Xにより受け付け、VM−Xが画像展開機能を有する仮想マシンの画像展開処理を中断させるとともに、VM−DのエンジンI/Fから印刷エンジンへの印刷用画像データの出力を中断させるようにしてもよい。なお、VM−Dにより監視する印刷エンジン30の稼働状況は、ジャムに限らず、その他の稼働状況を監視するようにしてもよい。
【0095】
また、上記実施形態の説明においては、VM−Dは、VM−Aにおいて受け付けられた印刷ジョブの順番で各印刷ジョブの印刷用画像データを印刷エンジン30へ出力するようにしたが、これに限らず、たとえば、VM−BおよびVM−Cにおいて画像展開処理が終了した印刷ジョブの印刷用画像データから順に印刷エンジン30へ出力するようにしてもよい。
【0096】
また、上記実施形態の説明においては、画像展開機能を有する仮想マシンの数を一定としたが、これに限らず、たとえば、VM−Aによって同時期に受け付けられた印刷ジョブの数や、ハードウェア20の使用状況に応じて画像展開機能を有する仮想マシンの数を増減させるようにしてもよい。たとえば、印刷ジョブの数が多いときにはできるだけ多くの印刷ジョブの画像展開処理を並列して行うことができるように仮想マシンの数を増やし、印刷ジョブの数が少ないときにはその数に応じて仮想マシンの数を減少させるとともに各仮想マシンのCPU21aの処理能力とメモリ21cの領域の占有率を高くし、より画像展開処理を高速に行うようにすることができる。また、たとえば、1つの仮想マシンが画像データ量が大きい非常に重たい処理を行っている場合には、仮想マシンの数を減らしたり、処理の軽い仮想マシンのリソースを減少させて、上記の重たい処理を行っている仮想マシンに対して、仮想マシンの数を追加したり、リソースをより多く振り分けたりしてもよい。
【0097】
また、上記実施形態の印刷システムにおいては、各クライアントPC10〜13におけるプリンタドライバが異なる種類のPDLの印刷ジョブを出力するものであったり、プリンタドライバのバージョンが異なるものであったりする場合がある。このような場合、各クライアントPC10〜13から出力される印刷ジョブに対して画像展開処理を施す際、それぞれの印刷ジョブに対応したアプリケーションが必要となる。そこで、異なる種類のPDLで記述された印刷ジョブや、バージョンが異なるプリンタドライバから出力された印刷ジョブに対応するアプリケーションを備えた画像展開機能を有する仮想マシンをそれぞれ設定するようにしてもよい。
【0098】
また、印刷エンジン30がカラー印刷を行うものであり、クライアントPCから出力された印刷ジョブが、たとえば、C、M、Y、Kのカラー画像データを有するものである場合には、その印刷ジョブの画像展開処理を行う際には、C、M、Y、Kの各色の画像データに対しそれぞれ異なる仮想マシンを割り当て、各色の画像データの画像展開処理を並列して行うようにしてもよい。
【0099】
また、上記実施形態の印刷システムにおいては、たとえば、VM−BおよびVM−Cなどの画像展開機能を有する仮想マシンのいずれかが画像展開処理中に何らかの異常でハングアップしてしまった場合には、その画像展開処理中の印刷ジョブについては、そのとき画像展開処理を行っていない空いた仮想マシンを割り当てて画像展開処理を行うようにすればよい。また、このような異常が生じた場合のときのために予備の仮想マシンを常に設定するようにしてもよい。また、このような異常が生じたときに新たに仮想マシンを設定し、その新しい仮想マシンで画像展開処理を継続して行うようにしてもよい。
【符号の説明】
【0100】
1 ネットワーク
2 印刷装置
10〜13 クライアントPC
20 プリンタ
30 印刷エンジン
40 画像読取部
50 操作パネル
23〜28 仮想マシン

【特許請求の範囲】
【請求項1】
画像データを有する印刷ジョブを受け付ける印刷ジョブ受付部と、該印刷ジョブ受付部により受け付けられた印刷ジョブが有する画像データを印刷用画像データに展開する画像データ展開部と、該画像データ展開部より展開された印刷用画像データを画像形成装置に出力する画像データ出力部とを備えたプリンタコントローラにおいて、
前記画像データ展開部が、共通のハードウェアを使用するとともに、それぞれ独立した処理を行う、仮想的に設けられた複数の画像展開用仮想マシンを備え、該複数の画像展開用仮想マシンによって1または複数の前記印刷ジョブの画像データの展開を並列的に行なうものであることを特徴とするプリンタコントローラ。
【請求項2】
前記印刷ジョブ受付部が、優先印刷ジョブを受け付けるものであり、
前記画像データ展開部が、前記優先印刷ジョブの画像データの展開を行う画像展開用仮想マシンの展開処理を優先して行なうものであることを特徴とする請求項1記載のプリンタコントローラ。
【請求項3】
前記複数の画像展開用仮想マシンのそれぞれに割り当てられる前記ハードウェアの占有率を制御する、仮想的に設けられた特権仮想マシンをさらに備えたことを特徴とする請求項1または2記載のプリンタコントローラ。
【請求項4】
前記複数の画像展開用仮想マシンのそれぞれに割り当てられる前記ハードウェアの占有率を制御する、仮想的に設けられた特権仮想マシンをさらに備え、
前記特権仮想マシンが、前記優先印刷ジョブの画像データの展開を行う画像展開用仮想マシンの前記ハードウェアの占有率を他の前記画像展開用仮想マシンの前記ハードウェアの占有率よりも大きくするものであることを特徴とする請求項2記載のプリンタコントローラ。
【請求項5】
前記画像データ展開部が、前記複数の画像展開用仮想マシンによって複数の前記印刷ジョブの画像データの展開をそれぞれ行なうものであり、
前記画像データ出力部が、前記複数の画像展開用仮想マシンによって展開された印刷用画像データを、前記印刷ジョブ受付部によって受け付けられた前記複数の印刷ジョブの順番で出力するものであることを特徴とする請求項1から4いずれか1項記載のプリンタコントローラ。
【請求項6】
前記画像データ展開部が、前記複数の画像展開用仮想マシンによって複数の前記印刷ジョブの画像データの展開をそれぞれ行なうものであり、
前記画像データ出力部が、前記複数の画像展開用仮想マシンによって展開された印刷用画像データを、該展開処理が終了した順番で出力するものであることを特徴とする請求項1から4いずれか1項記載のプリンタコントローラ。
【請求項7】
前記印刷ジョブ受付部が、互いに異なる種類のページ記述言語からなる複数の印刷ジョブを受け付けるものであり、
前記画像データ展開部における前記各画像展開用仮想マシンが、それぞれ異なる種類のページ記述言語からなる印刷ジョブの画像データの展開を行うものであることを特徴とする請求項1から6いずれか1項記載のプリンタコントローラ。
【請求項8】
前記画像データ展開部が、前記複数の画像展開用仮想マシンによって1つの前記印刷ジョブのカラー画像データの各色の展開をそれぞれ行なうものであることを特徴とする請求1から7いずれか1項記載のプリンタコントローラ。
【請求項9】
前記画像データ展開部が、前記印刷ジョブ受付部により受け付けられた印刷ジョブの数に応じて前記画像展開用仮想マシンの数を増減させるものであることを特徴とする請求項1から8いずれか1項記載のプリンタコントローラ。
【請求項10】
前記印刷ジョブ受付部が、前記共通のハードウェアを使用する、仮想的に設けられた印刷ジョブ受付用仮想マシンからなるものであることを特徴とする請求項1から9いずれか1項記載のプリンタコントローラ。
【請求項11】
前記画像データ出力部が、前記共通のハードウェアを使用する、仮想的に設けられた画像データ出力用仮想マシンからなるものであることを特徴とする請求項1から10いずれか1項記載のプリンタコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−173206(P2010−173206A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−19149(P2009−19149)
【出願日】平成21年1月30日(2009.1.30)
【出願人】(000250502)理想科学工業株式会社 (1,191)
【復代理人】
【識別番号】100128451
【弁理士】
【氏名又は名称】安田 隆一
【Fターム(参考)】