ジョブ処理装置、ジョブ処理装置の制御方法及びプログラム
【課題】 ジョブ処理装置における処理対象の同一グループ内の複数のジョブ間にグループ外の他のジョブが割り込むことを防ぐと共に、同一グループ内の複数のジョブ毎に管理することを可能にする
【解決手段】 ジョブ処理装置は、グループを識別するグループ識別情報を含んだジョブの実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する。そして、処理された複数のジョブをそれぞれ別のジョブとして管理する。
【解決手段】 ジョブ処理装置は、グループを識別するグループ識別情報を含んだジョブの実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する。そして、処理された複数のジョブをそれぞれ別のジョブとして管理する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信したジョブを処理するジョブ処理装置、ジョブ処理装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
従来から画像形成装置等のジョブ処理装置がネットワークに接続され、ネットワーク上に存在する複数のコンピュータから利用されるようになっている。一般に、印刷ジョブを処理するジョブ処理装置としての画像形成装置で印刷を行う場合、画像形成装置は、コンピュータから送信された印刷ジョブを受け付けた順に印刷を行っている。一方、コンピュータは、印刷対象となる複数の文書を夫々異なる印刷ジョブとして発行するため、複数の文書をまとめて印刷したい場合であっても、印刷対象の文書の間に他のコンピュータから送信された印刷ジョブが割り込んで実行されてしまう場合がある。このような場合、印刷出力された複数の文書の間に他のユーザが依頼した印刷文書が混在してしまうという問題点があった。
そこで、このような問題に対し、コンピュータ側で複数の印刷ジョブを1つにまとめたグループ印刷ジョブを生成し、画像形成装置における印刷ジョブの割込みを防ぐ仕組みが提案されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−182878号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記背景技術で説明した仕組みを使えば、画像形成装置における印刷ジョブの割込みを防ぐことができる。しかしながら、上記背景技術の方法は、複数の印刷ジョブを一つにまとめたグループ印刷ジョブという新たなジョブを生成するものであり、グループ印刷ジョブは画像形成装置において一つのジョブとして管理される。従って、例えばグループ印刷ジョブに含まれる複数の文書毎にジョブ終了通知を通知することができなかった。
【0005】
本発明はこの問題に対してなされたものであり、ジョブ処理装置における処理対象の同一グループ内の複数のジョブ間にグループ外の他のジョブが割り込むことを防ぐと共に、同一グループ内の複数のジョブ毎に管理することを可能にする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本願発明のジョブ処理装置は、グループを識別するグループ識別情報を含んだジョブの実行指示を受信する受信手段と、前記受信手段によって実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する処理手段と、前記処理手段によって処理された複数のジョブをそれぞれ別のジョブとして管理する管理手段とを備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、ジョブ処理装置における処理対象の同一グループ内の複数のジョブ間にグループ外の他のジョブが割り込むことを防ぐと共に、同一グループ内の複数のジョブ毎に管理することを可能にする。
【図面の簡単な説明】
【0008】
【図1】本実施例の印刷システムのシステム構成図
【図2】画像形成装置のハードウェア構成を示すブロック図
【図3】クライアントコンピュータ、プリントサーバのハードウェア構成を示すブロック図
【図4】画像形成装置のソフトウェア構成を示すブロック図
【図5】クライアントコンピュータのソフトウェア構成を示すブロック図
【図6】プリントサーバのソフトウェア構成を示すブロック図
【図7】プリントサーバに格納される文書の一覧を表示した画面の例
【図8】本実施例の印刷処理のシーケンス図
【図9】画像形成装置が送受信するメッセージの例
【図10】画像形成装置において実行される処理のフローチャート
【図11】画像形成装置において実行される処理のフローチャート
【図12】画像形成装置が管理するジョブ管理テーブルの例
【図13】画像形成装置が管理するグループ管理テーブルの例
【図14】印刷ジョブを印刷キューに投入する流れを模式的に示した図
【図15】第2の実施例における印刷システムのシステム構成図
【図16】第2の実施例における印刷システムの印刷処理のシーケンス図
【図17】第2の実施例における画像形成装置が送受信するメッセージの例
【発明を実施するための形態】
【0009】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例1】
【0010】
図1は、本発明を適用した印刷システムのシステム構成図である。
【0011】
図1の印刷システムでは、LAN120上に存在する画像形成装置101及びクライアントコンピュータ102(以下、コンピュータ102と呼ぶ)が、インターネット110を介してプリントサーバ103(以下、サバ103と呼ぶ)と接続されている。本実施例では、ジョブを受信して処理するジョブ処理装置の一例として、画像形成ジョブ(例えば印刷ジョブ)を処理する画像形成装置を例に説明する。また、クライアント装置の一例としてクライアントコンピュータ、サーバ装置の一例としてプリントサーバを用いて説明する。
【0012】
画像形成装置101は、コンピュータ102やサーバ103と通信可能であり、コンピュータ102やサーバ103から送信された印刷データを受信して印刷する機能を持つ。コンピュータ102は、画像形成装置101やサーバ103と通信可能であり、画像形成装置101に対して印刷処理の実行を指示する端末である。サーバ103は、画像形成装置101やコンピュータ102と通信可能であり、コンピュータ102からの印刷要求に対する処理、印刷ジョブの管理、画像形成装置101の管理等の処理を行う。また、本実施例においては、サーバ103はユーザごとに文書を管理する文書管理サーバとしての機能も備えている。尚、サーバ103は機能毎に複数のサーバに分離していてもよい。
【0013】
本実施例における図1の印刷システムでは、コンピュータ102が保持する印刷データをコンピュータ102が画像形成装置101へ送信して印刷処理を実行させる所謂プッシュプリント機能を実行可能である。加えて、サーバ103が保持する文書(印刷データ)を画像形成装置101が自ら取得して印刷処理を実行する所謂プルプリント機能も実行可能である。以下の説明では、これらのプリント機能のうち、プルプリント機能を実行する場合を例に説明する。
【0014】
尚、図1の例におけるLAN102は、有線のネットワークに限らず、無線ネットワークによっても実現可能であり、それらの組み合わせやその他の任意の通信方法によって実現されてもよい。また、LAN120やインターネット110に存在する端末は、図1に示した装置のみではなく、その他の装置が存在していてもよい。また、図1の印刷システムでは、画像形成装置101とコンピュータ102はLAN120を介して接続されているため、相互に通信可能である。一方で、LAN120とインターネット110との間にはファイアーウォール(不図示)が存在し、インターネット110からLAN120への通信を制限している。従って、画像形成装置101からサーバ103への通信、及びコンピュータ102からサーバ103への通信は許可されているが、サーバ103から画像形成装置101への通信、及びサーバ103からコンピュータ102への通信は制限されている。これらの通信が許可されるのは、サーバ103が画像形成装置101からのリクエストに応答する場合、又はサーバ103がコンピュータ102からのリクエストに応答する場合に限られている。
【0015】
図2は画像形成装置101のハードウェア構成を示すブロック図である。
【0016】
図2の画像形成装置101において、201はCPUである。CPU201は、ROM203のプログラム用ROMまたは外部記憶装置211に記憶された制御プログラムに基づいて各種処理を実行し、システムバス204に接続される各種のデバイスとのアクセスを総括的に制御する。また、印刷インターフェース207を介して接続される印刷部(プリンタエンジン)210を制御し印刷部に画像信号を出力したり、読取インターフェース212を介して接続される読取部(スキャナ)213を制御し、画像信号を入力する。また、このROM203のプログラム用ROMには、CPU201が実行可能な制御プログラム等が記憶される。さらに、ROM203のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ(アウトラインフォントデータを含む)等が記憶され、ROM203のデータ用ROMには、コンピュータ102上で利用される情報等が記憶されている。CPU201はLANコントローラ部206を介してネットワーク上のコンピュータ102や他の画像形成装置、サーバ103との通信処理が可能となっている。
【0017】
202はRAMで、主としてCPU201の主メモリ,ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM202は、PDLデータをビットマップデータに展開するための領域等に用いられる。ハードディスク(HDD)、Solid State Drive(SSD)等の外部記憶装置211は、ディスクコントローラ(DKC)208によりアクセスが制御される。外部記憶装置211は、アプリケーションプログラム、フォントデータ、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。またさらに、スキャナ213から読み取った画像データや印刷ジョブの画像データをBOXデータとして保持するBOXデータ格納領域としても使用される。BOXデータは、ネットワークを介してコンピュータ102から参照したり、印刷を行うことができる。205は操作パネルで、タッチパネルによって構成される表示部と各種ハードキーによって構成される。表示部には、各種ソフトウェアキーが表示され、ユーザはソフトウェアキーから各種情報を入力することが可能である。前述した外部記憶装置は、1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード,言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。209は不揮発性メモリであり、操作パネル205から設定される各種設定情報を記憶している。
【0018】
また、図示していないが、画像形成装置101にはさらにオプションで、ステープルやソート機能を行うフィニッシャや、両面印刷機能を実現するための両面装置など各種拡張装置を装着することが可能となっており、それらの動作はCPU201によって制御される。尚、画像形成装置のハードウェア構成は、図2の例に限定されず、少なくとも印刷機能を備える構成であればどのような構成であってもよい。
【0019】
図3はクライアントコンピュータ102、プリントサーバ103のハードウェア構成を示すブロック図である。
【0020】
図3において、301はCPUである。CPU301は、ROM302または外部記憶装置312に記憶された制御プログラムに基づいて各種処理を実行し、システムバス304に接続された各種デバイスの制御を行う。302はBIOSやブートプログラムを記憶するROM、303はCPU301の主記憶装置として使用されるRAMである。305はキーボードコントローラ(KBC)であり、マウス等のポインティングデバイス309、キーボード310からの情報などの入力に係る処理を行う。306は表示制御部(CRTC)であり、内部にビデオメモリを有し、CPU301からの指示に従ってそのビデオメモリに描画すると共に、ビデオメモリに描画されたイメージデータをビデオ信号としてCRT(表示装置)311に出力する。なお、図3において表示装置としてCRTを例示しているが、液晶表示装置等、表示装置の種類は問わない。307はディスクコントローラ(DKC)であり、ハードディスク(HDD)、Solid State Drive(SSD)等の外部記憶装置312へのアクセスを行う。308はネットワークインタフェースカード(NIC)であって、ネットワークに接続し、ネットワークを介しての情報通信を行うものである。なお、外部記憶装置312には、OSやOS上で動作する各種アプリケーションプログラム等が格納される。上記構成において、本装置の電源がONになると、CPU301はROM302に格納されたブートプログラムに従って、外部記憶装置312からOSをRAM303に読み込み、情報処理装置として機能するようになる。
【0021】
図4は、画像形成装置101のソフトウェア構成を示すブロック図である。
【0022】
印刷要求受信部401は、コンピュータ102から印刷ジョブ生成要求、プルプリント要求をLANコントローラ206を介して受信し、プルプリント要求に含まれるURLをジョブ管理テーブルに保存する。このURLは、画像形成装置101が印刷する対象となる印刷データを取得するために用いられ、印刷データを特定する特定情報の一例である。更に印刷要求受信部401は、外部記憶装置211又はRAM202内のジョブ管理テーブルに保存された印刷ジョブをRAM202内の印刷キューに投入する処理を行う。印刷処理部403は、印刷ジョブを印刷キューから取得し、印刷データを取得するためのURLを印刷データ取得部402に渡す。URLは通常、印刷データを蓄積している端末(本実施例ではサーバ103)を示すアドレスと、その端末内での印刷データの格納先を示すパスからなる。印刷データ取得部402は、渡されたURLに対して印刷データ取得要求を送信し、その応答として印刷データを受信し、印刷処理部403に渡す。印刷処理部403は、印刷データを解析してビットマップに展開し、印刷インターフェース207を介してプリントエンジン210に送信し、用紙への印刷を行う。イベント通知部404は、ジョブ終了等の印刷ジョブの状態をサーバ103に通知する。尚、イベント通知部404において通知される印刷ジョブの状態は、ジョブの終了のみならず、ジョブの開始の通知や、ジョブの中断の通知、エラー発生の通知等、その他の状態であってもよい。また、イベント通知部404の通知方法は、サーバ103等の外部装置への送信に限らず、画像形成装置101の表示部へ表示する等の方法によって通知してもよい。
【0023】
図5は、コンピュータ102のソフトウェア構成を示すブロック図である。
【0024】
本実施例におけるコンピュータ102は、少なくともWebブラウザ部501を備えていればよい。ユーザはWebブラウザ部501を使用してNIC308を介してサーバ103に接続し、サーバ103に格納されている文書の確認や所望の文書を指定した印刷指示を行うことができる。また、Webブラウザ部501は、サーバ103から印刷ジョブ生成要求、プルプリント要求を受信し、画像形成装置101にリダイレクトして送信する。
【0025】
図6は、サーバ103のソフトウェア構成を示すブロック図である。
【0026】
Webサーバ部601は、コンピュータ102に対するUIを提供する。このUIは例えば、文書管理部602がユーザごとに外部記憶装置312において管理している文書の情報を示すUIである。具体的には、Webサーバ部601は、コンピュータ102のWebブラウザ部501からのリクエストに応答して、HTMLやXML等のページ記述言語で記述されたファイルをNIC308を介してコンピュータ102に送信する。このファイルは、コンピュータ102のWebブラウザ部501で解釈され、コンピュータ102に表示されるUIが生成される。また、Webサーバ部601は印刷指示をNIC308を介して受信する。Webサーバ部601が印刷指示を受信すると、印刷制御部603は、印刷指示により指定された画像形成装置に適した印刷データを生成し一時的に蓄積する。画像形成装置に適した印刷データとは、例えば画像形成装置が処理可能なフォーマットの画像データや、画像形成装置に対応するプリンタドライバによって生成されたPDLデータである。印刷要求送信部604は、複数の印刷ジョブの固まり(グループ)を識別するためのグループ識別情報としてのGroupIdと、GroupIdに含まれる印刷ジョブの数を示すGroupSizeを生成する。そして、コンピュータ102へGroupIdとGroupSizeを含む印刷ジョブ生成要求を送信する。また、コンピュータ102へプルプリント要求を送信する。印刷データ取得要求処理部605は、画像形成装置101から印刷データ取得要求を受信し、指定された印刷データを画像形成装置101に送信する。イベント受信部606は、画像形成装置101から印刷ジョブの状態の通知を受信する。
【0027】
次に、本実施例の印刷システムにおける印刷実行の流れを説明する。図7は、コンピュータ102のWebブラウザ501において、サーバ103の外部記憶装置312に格納されている文書の一覧を表示した画面である。図7の例では、サーバ103にログインしたユーザがアクセス可能な文書のリストが、文書名701、日付702、ページ数703、サイズ704といった各種情報と共に表示される。ユーザがこの画面から所望の文書のチェックボックス705をチェックし、印刷ボタン706を押下すると、印刷が実行される。チェックボックス705は複数の文書を同時に選択することができ、本実施例では、同時に選択された複数の文書はその間に別の文書が割り込まれることなく、一まとまりで印刷される。また、1つの文書はそれぞれ1つのジョブとして印刷処理される。
【0028】
図8は、本実施例の印刷システムにおける1つのジョブの印刷処理のシーケンスである。
【0029】
本シーケンスに係る画像形成装置101のプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。またサーバ103、コンピュータ102の各プログラムは、各機器の外部記憶装置312又はROM302に格納されており、RAM303に読み出されCPU301によって実行される。
【0030】
コンピュータ102は、S801において、ユーザの入力を受け付け、文書の印刷要求をサーバ103に送信する。サーバ103は、S802において、指定された画像形成装置に適した印刷データを生成し一時的に蓄積する。その後、プリントサーバ103は、S802において、図9(a)のような印刷ジョブ生成要求をコンピュータ102に送信する。印刷ジョブ生成要求は、サーバ103によって生成される要求であり、画像形成装置101に印刷ジョブを生成させるための要求である。本実施例の印刷システムでは、画像形成装置にジョブを送信する装置は、一旦、ジョブ生成要求を画像形成装置に送信し、画像形成装置においてジョブIDを生成してもらう必要がある。画像形成装置においてJobIDが生成され、ジョブを送信する装置にそのJobIDが通知されると、ジョブを送信する装置は、そのJobIDを指定してジョブを送信する。従って、図9(a)の印刷ジョブ生成要求は最終的に画像形成装置101に送信されなければならない。しかし、上述したように、本実施例(図1)の印刷システムでは、サーバ103から画像形成装置101への通信はファイアウォールによって制限されている。従って、サーバ103はジョブ生成要求をコンピュータ102からの印刷要求に対する応答としてコンピュータに送信し、コンピュータにそのジョブ生成要求を画像形成装置101宛てにリダイレクトさせる方法を用いる。コンピュータ102は、S803において、サーバ103から受信した印刷ジョブ生成要求をリダイレクトして、画像形成装置101に送信する。画像形成装置101は、コンピュータ102から印刷ジョブ生成要求を受信すると、印刷ジョブを識別するジョブ識別情報としてのJobIdを含む印刷ジョブを生成する。画像形成装置101は、S804において、コンピュータに図9(b)のような印刷ジョブ生成要求応答を送信する。印刷ジョブ生成要求応答には、JobIdが含まれており、サーバ103が印刷ジョブを識別するために用いられる。コンピュータ102は、S805において、受信した印刷ジョブ生成要求をリダイレクトして、サーバ103に送信する。サーバ103は、印刷ジョブ生成要求応答に含まれるJobIdで印刷ジョブの識別を行う。そして、プリントサーバ103は、S806において、図9(c)のようなプルプリント要求をコンピュータ102に送信する。プルプリント要求は、サーバ103によって生成される要求であり、画像形成装置102に印刷データを取得するためのURLを通知するための要求である。また、プルプリント要求は、印刷ジョブ生成要求に従って生成されたジョブの実行を指示するための実行指示でもある。従ってこの要求は最終的に画像形成装置101に送信される。上述したように、サーバ103から画像形成装置101への通信はファイアウォールによって制限されている。そのためサーバ103は、プルプリント要求を画像形成装置101へ送信せずに、印刷ジョブ生成要求応答に対する応答として、コンピュータに送信し、コンピュータにそのプルプリント要求を画像形成装置101宛てにリダイレクトさせる。コンピュータ102は、S807において、サーバ103から受信したプルプリント要求をリダイレクトして、画像形成装置101に送信する。画像形成装置101は、S808において、コンピュータ102から受信したプルプリント要求に含まれるURLを抽出し、そのURLに基づいてサーバ103に対して印刷データ取得要求を送信する。サーバ103は、S809において、プルプリント要求に含まれたURLによって特定する印刷データを、画像形成装置101に送信する。画像形成装置101は、S810において、サーバ103から受信した印刷データを処理して印刷を行う。印刷が終了すると、画像形成装置101は、S811において、コンピュータ102にS807の応答としてプルプリント要求応答を送信する。コンピュータ102は、S812において、画像形成装置101から受信したプルプリント要求応答をリダイレクトして、サーバ103に送信する。画像形成装置101は、S813において、ジョブ終了通知をプリントサーバ103に送信する。ジョブ終了通知は、印刷処理が終了したことを通知するために、画像形成装置101からサーバ103へ送信される。また、ジョブ終了通知は、1つのジョブが終了する毎に送信されるため、1つの文書毎に印刷ジョブを生成する本実施例によれば、一つの文書の印刷が終了する毎に送信される。サーバ103に文書毎にジョブ終了通知が通知されると、サーバ103は、画像形成装置101へ送信した文書毎の終了を知ることができる。また、サーバ103の内部では、この通知に従って各文書の処理状況が管理される。また、コンピュータ102が備えるWebブラウザを用いてサーバ103にアクセスすることにより、コンピュータ102を操作するユーザも、文書毎に処理状況を知ることができる。尚、図8では、上述したように、S802の印刷ジョブ生成要求やS806のプルプリント要求等をサーバ103が直接画像形成装置101へ送信せずに一旦コンピュータ102に送信する。そしてコンピュータ102がリダイレクトすることによって画像形成装置101へ送信している。これは、図1で説明したように、コンピュータ102や画像形成装置101が存在するLANとサーバ103が存在するインターネット間にファイアウォールが存在し、サーバ103からのアクセスが制限されているからである。本実施例によれば、このようなシステム構成においても、コンピュータ102のリダイレクト処理を利用することによって、プルプリント機能を実現することができるようになっている。
【0031】
図9(a)はサーバ103によって生成される印刷ジョブ生成要求の例である。図9(a)の例では、XMLによって記述されている。
【0032】
901は印刷ジョブ生成要求であることを示す<CreatePrintJobRequest>タグである。902はGroupIdを示す<GroupId>タグであり、GroupIdの値が記述される。本実施例では、複数の印刷ジョブ生成要求が同じGroupIdの値を持つことができ、同じGroupIdの値を持つ印刷ジョブを印刷処理中は、そのGroupIdの値を持たない他の印刷ジョブが割り込みされることはないように制御される。903はGroupSizeを示す<GroupSize>タグであり、GroupId毎のジョブ数を示す値が記述される。なお、同じGroupIdの値を持つ印刷ジョブ生成要求は同じGroupSizeの値を持つ。
【0033】
なお、<GroupId>タグ902と<GroupSize>タグ903が存在しない印刷ジョブ生成要求は、単独ジョブの印刷ジョブ生成要求である。また、<GroupId>タグ902と、1の値を持つ<GroupSize>タグ903の印刷ジョブ生成要求は、単独ジョブの印刷ジョブ生成要求である。
【0034】
図9(b)は画像形成装置101によって生成される印刷ジョブ生成要求応答の例である。図9(b)の例では、XMLによって記述されている。
【0035】
911は印刷ジョブ生成要求応答であることを示す<CreatePrintJobResponse>タグである。912はJobIdを示す<JobId>タグである。
【0036】
図9(c)はサーバ103によって生成されるプルプリント要求の例である。図9(c)の例では、XMLによって記述されている。
【0037】
921はプルプリント要求を示す<AddDocumentRequest>タグである。922はJobIdを示す<JobId>タグであり、912のJobIdと対応している。923は印刷データを特定するためのURLを示す<DocumentUrl>タグである。画像形成装置101はこのURLに対して印刷ジョブ取得要求を送信する。
【0038】
図10は、画像形成装置101の印刷要求受信部401に対応するプログラムが実行されたときの画像形成装置101の処理を示すフローチャートである。
【0039】
本フローに係る印刷要求受信部401に対応するプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。
【0040】
まず、CPU201は、コンピュータ102からメッセージを受信する(S1001)。CPU201は受信したメッセージを解析し、受信したメッセージが印刷ジョブ生成要求である場合は、受信した印刷ジョブ生成要求にGroupIdとGroupSizeが含まれるかどうかを判断する(S1002)。GroupIdとGroupSizeが含まれる場合は、CPU201は、GroupIdとGroupSizeを図13に示すグループ管理テーブル1301のGroupId1302とGroupSize1303に保存する(S1003)。その後CPU201は、JobIdを生成し、印刷ジョブ生成要求に含まれるGroupIdと共に図12に示すジョブ管理テーブル1201のJobId1202とGroupId1203に保存する(S1004)。その後、CPU201は、印刷ジョブ生成要求応答をコンピュータ102に送信する(S1005)。S1002において、受信した印刷ジョブ生成要求にGroupIdとGroupSizeが含まれていない場合は、CPU201は、単独ジョブと判断してS1004に進む。そして、CPU201はJobIdを生成し、GroupIdを空にして、ジョブ管理テーブル1201のJobId1202とGroupId1203にそれぞれ保存する。
【0041】
S1001において、受信したメッセージがプルプリント要求である場合は、S1006に進む。プルプリント要求にはJobIdと印刷データを特定するためのURLが含まれる。CPU201は、受信したプルプリント要求に含まれるURLをジョブ管理テーブル1201の該当するJobIdと対応付けて保存する(S1006)。そして、受信したプルプリント要求に記述されたJobIdに対して、ジョブ管理テーブル1201において、GroupIdが保存されているかどうかを判断する(S1007)。その結果、GroupIdがジョブ管理テーブル1101に保存されている場合は、CPU201は、グループ管理テーブル1301の該当するGroupIdのプルプリント要求受信数1304を1つインクリメントする(S1008)。その後CPU201は、GroupSize分のプルプリント要求を受信したかを判断する(S1009)。具体的には、グループ管理テーブル1301において、プルプリント要求に含まれるGroupIDのプルプリント受信数1304の値、即ちそのGroupIdのプルプリント要求を受信した回数がGroupSize1303の値に達したか否かを判断する。S1009における判断の結果、GroupSize分のプルプリント要求を受信したと判断した場合は、S1010に進む。一方、GroupSize分のプルプリント要求を受信したと判断されなかった場合には、S1010の処理を行わずにS1011へと進む。S1010において、CPU201は、プルプリント要求のJobIdが属するGroupIdの値と同じGroupIdに属する他のJobIdを特定し、ジョブ管理テーブル1201中のこれらのジョブに関する情報をまとめて、印刷キューに投入する。その後、S1011において、CPU201はプルプリント要求応答を生成し、コンピュータ102に送信する。
【0042】
S1007において、GroupIdがジョブ管理テーブル1101に含まれていない場合(図12の場合、JobId7のジョブ)は、単独ジョブと判断して、S1012に進み、当該ジョブに関する情報を印刷キューに投入する。
【0043】
図11は画像形成装置101の印刷処理部403に対応するプログラムが実行されたときの画像形成装置101の処理を示すフローチャートである。
【0044】
本フローに係る印刷処理部403に対応するプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。
【0045】
まずCPU201は、印刷キューにジョブが存在するか確認する(S1101)。印刷キューにジョブが存在すると判断された場合は、CPU201は印刷キューからジョブを受信する(S1102)。具体的には、印刷キューには、ジョブ情報として印刷データを特定するためのURLが存在している。S1102の処理では、印刷キューに存在するジョブのジョブ情報から、少なくともURLを取得する。そして、CPU201は、S1102で取得したURLを用いてサーバ103にアクセスし、そのURLで特定される印刷データをサーバ103から取得する(S1103)。その後、CPU201は、取得した印刷データに基づいて印刷処理を実行する(S1104)。印刷処理が終了すると、CPU201はジョブ終了通知をサーバ103に送信する(S1105)。その後、再びS1105において、印刷キューにジョブが存在するかを確認する。サーバ103に文書毎にジョブ終了通知が通知されると、サーバ103は、画像形成装置101へ送信した文書毎の終了を知ることができる。また、サーバ103の内部では、この通知に従って各文書の処理状況が管理される。また、コンピュータ102が備えるWebブラウザを用いてサーバ103にアクセスすることにより、コンピュータ102を操作するユーザも、文書毎に処理状況を知ることができる。
【0046】
図11のフローチャートは、印刷キューに存在するジョブ毎に実行される。また、一つのジョブは一つの文書のみを含む。従ってユーザは、複数の文書を含んだグループを生成した場合であっても、そのグループに含まれる個々の文書毎に印刷処理の終了通知を得ることができるようになる。
【0047】
図12は画像形成装置101に保持されるジョブ管理テーブル1201の例である。
【0048】
1202はJobIdであり、画像形成装置101が印刷ジョブ生成要求を受信したときに画像形成装置101において生成される識別情報である。JobIdは、画像形成装置101において保持しているジョブを一意に特定するために各ジョブに割り当てられる情報であり、例えば任意の数字である。1203はGroupIdであり、受信した印刷ジョブ生成要求に含まれている情報である。1204は印刷対象となる印刷データを特定するためのURLであり、受信したプルプリント要求に含まれている。ジョブ管理テーブル1201では、少なくともこれらJobId,GroupId,URLといった3つの情報を、ジョブ毎に関連付けて管理している。
【0049】
図13は画像形成装置101に保持されるグループ管理テーブル1301の例である。
1302はGroupIdであり、図12の1203と同じ情報である。1303はGroupSizeであり、一つのGroupに含まれるジョブの数(文書の数)を示す値である。画像形成装置101は、GroupSizeの数だけプルプリント要求を受信した後、そのジョブを印刷キューに投入する。1304はプルプリント要求受信数であり、GroupId毎にそれまでにプルプリント要求を受信した数を示す値である。グループ管理テーブル1301では、少なくともこれらGroupId,GroupSize,プルプリント要求受信数といった3つの情報を、グループ毎に関連付けて管理している。
【0050】
図14(a)、(b)、(c)はジョブ管理テーブル1201で管理しているジョブを印刷キューに投入するまでの様子を模式的に示した図である。
【0051】
図14(a)は、印刷キューにGroupId1を構成するJobId1、JobId2が投入されていることを示している。印刷処理部403は、印刷キューに投入された順に印刷ジョブを取得し、印刷処理を実行する。図14(a)において、ジョブ管理テーブル1201は、GroupId2を構成するJobId3と、GroupId3を構成するJobId5に対するプルプリント要求を受信した状態である。また、GroupId2を構成するJobId4と、GroupId3を構成するJobId6と、単独ジョブのJobId7についてはジョブ生成要求を受信したもののプルプリント要求は未だ受信していない状態である。従って、GroupId2のジョブとGroupId3のジョブとは、グループに含まれる全てのジョブのプルプリント要求をまだ受信していないため、印刷キューには投入されず、印刷の実行を待機している状態である。また、単独ジョブに関しても、プルプリント要求がまだ受信していないため、印刷の実行を待機している状態である。このとき、JobId7を含む単独ジョブのプルプリント要求を受信すると、図14(b)に移行する。図14(b)では、JobId7を含む単独ジョブのプルプリント要求を受信した後、ジョブ管理テーブル1201でGroupIdが存在しないこと(単独ジョブであること)を確認し、印刷ジョブを印刷キューへ投入する。この状態では、GroupId2のジョブとGroupId3のジョブとは、グループに含まれる全てのジョブのプルプリント要求をまだ受信していないため、印刷キューには投入されず、未だに印刷の実行を待機している状態である。次に、JobId6を含むプルプリント要求を受信すると、図14(c)に移行する。図14(c)では、JobId6を含むプルプリント要求を受信した後、ジョブ管理テーブル1201でGroupId3であることを確認する。そして、グループ管理テーブル1301のGrouId3のプルプリント要求受信数1304を1つインクリメントし、GroupSizeの分だけプルプリント要求を受信したことを確認する。その後、GroupId3のJobId5、JobId6をまとめてジョブ管理テーブル1101から印刷キューへ投入している。この状態は、GroupId3に関しては、そのグループに含まれる全てのジョブのプルプリント要求が受信されたので、印刷キューに投入され、ジョブの処理が開始される状態である。一方、GroupId2のジョブは、そのグループに含まれる全てのジョブのプルプリント要求をまだ受信していないため、印刷キューには投入されず、未だに印刷の実行を待機している状態である。
【0052】
図14に示す処理と並行して、図11で説明した印刷処理部のフローが実行されており、印刷キューに投入されたジョブはその順番通りに順次処理されていく。つまり、複数のジョブから成るグループは、グループ内の全てのジョブが揃った状態で印刷キューに投入されており、且つ印刷キューの順番通りに印刷ジョブが処理されていくから、グループ内の複数のジョブの間にグループ外の他のジョブが割り込まれることはない。
【0053】
上記説明したように、本実施例の構成によれば、GroupIdを用いて複数のジョブを一まとまりのグループとして管理し、グループ内のジョブの間にはグループ外の他のジョブが割り込んで実行されないようにすることができる。また、一つの文書につき一つのジョブとしているので、同じグループに属する複数の文書間にグループ外の他の文書が割り込んでしまうことを防ぐことができる。また、グループ内の個々のジョブ毎に管理を行うことが可能となる。例えば、ジョブ毎にジョブ終了通知を送信するので、ユーザは、グループ内の各文書に対して個々に印刷処理の終了を知ることができる。
【実施例2】
【0054】
次に第二の実施例について説明する。
【0055】
第一の実施例においては、図1に示したように、サーバ103がインターネット上に存在する場合を想定していたため、サーバ103からLAN120上の装置へのアクセスは、LAN120上の装置からの要求に対する応答に制限されていた。これに対して第二の実施例では、画像形成装置101、コンピュータ102、サーバ103が同じLAN上に存在し、互いに自由に通信可能な場合を想定する。
【0056】
図15は、本実施例における印刷システムのシステム構成図である。
【0057】
図15では、画像形成装置101とコンピュータ102とサーバ103とが、同じLAN120上に接続されている。図1の印刷システムと異なる点は、サーバ103から画像形成装置101へのアクセス、サーバ103からコンピュータ102へのアクセスがファイアウォールによって制限されていない点であり、その他の点は図1で説明したものと同じである。また、各装置のハードウェア構成及びソフトウェア構成は、第1の実施例と同じであるため説明を省略する。
【0058】
図16は、本実施例の印刷システムにおける1つのジョブの印刷処理のシーケンスである。
【0059】
本シーケンスに係る画像形成装置101のプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。またサーバ103、コンピュータ102の各プログラムは、各機器の外部記憶装置312又はROM302に格納されており、RAM303に読み出されCPU301によって実行される。
【0060】
コンピュータ102は、S1601において、ユーザの入力を受け付け、文書の印刷要求をサーバ103に送信する。サーバ103は、S1602において、図9(a)のような印刷ジョブ生成要求を画像形成装置101に送信する。印刷ジョブ生成要求は画像形成装置101に印刷ジョブを生成させるための要求である。画像形成装置101は、印刷ジョブ生成要求を受信すると、印刷ジョブを識別するジョブ識別情報としてのJobIdを含む印刷ジョブを生成する。画像形成装置101は、S1603において、サーバ103に図9(b)のような印刷ジョブ生成要求応答を送信する。印刷ジョブ生成要求応答には、JobIdが含まれており、サーバ103が印刷ジョブを識別するために用いられる。サーバ103は、印刷ジョブ生成要求応答に含まれるJobIdで印刷ジョブの識別を行う。そして、サーバ103は、S1604において、図17のようなプッシュプリント要求を画像形成装置101に送信する。プッシュプリント要求は、サーバ103が画像形成装置102に印刷データのバイナリデータを送信するために送信される。また、プッシュプリント要求は、印刷ジョブ生成要求に従って生成されたジョブの実行を指示するための実行指示として送信される。画像形成装置101は、S1605において、受信した印刷データの印刷を行う。印刷が終了すると、画像形成装置101は、S1606において、サーバ103にS1604の応答としてプッシュプリント要求応答を送信する。画像形成装置101は、S1607において、ジョブ終了通知をプリントサーバ103に送信する。ジョブ終了通知は、画像形成装置101がサーバ103に、印刷処理が終了したことを通知するために送信される。また、ジョブ終了通知は、1つのジョブが終了する毎に送信されるため、1つの文書毎に印刷ジョブを生成する本実施例によれば、一つの文書の印刷が終了する毎に送信される。
【0061】
図17はサーバ103が画像形成装置101に送信するプッシュプリント要求の例である。
【0062】
1701はプッシュプリント要求を示す<SendDocumentRequest>タグである。1702はJobIdを示す<JobId>タグである。1703は印刷対象となる文書を示す<DocumentData>タグであり、[Data]は印刷対象となる文書のバイナリデータである。画像形成装置101はこのバイナリデータを受信して処理することによって印刷処理を実行する。
【0063】
次に、本実施例の画像形成装置101において、印刷要求受信部及び印刷処理部に対応するプログラムが実行されたときの処理について説明する。
【0064】
まず、印刷要求受信部に対応するプログラムが実行されたとき、画像形成装置101は、基本的に図10のフローチャートと同様の処理を行う。図10と異なるのは、図10のS1001では、受信したメッセージが印刷ジョブ生成要求かプルプリント要求かによって分岐しているのに対して、本実施例では、印刷ジョブ生成要求かプッシュプリント要求かによって分岐する点である。つまり、図10のプルプリント要求の代わりに、本実施例ではプッシュプリント要求が存在する。その結果、本実施例では、図10のS1006の代わりに、受信した印刷データ(プッシュプリント要求に含まれているバイナリデータ)を記憶部(例えば外部記憶装置211)に格納する処理が行われる。それ以外の各ステップは、図10と同じため、説明を省略する。
【0065】
次に、印刷処理部に対応するプログラムが実行されたとき、画像形成装置101は、基本的に図11のフローチャートと同様の処理を行う。図11と異なるのは、S1103の処理である。図11の例では、プルプリントを実行していたため、サーバ103から印刷データを取得していた。一方、本実施例では、プルプリントではなく、サーバ103から送信された印刷データは、画像形成装置101の記憶部に既に格納されている。従って、本実施例では、図11のS1103の代わりに、記憶部に格納された印刷データを取得するという処理が行われる。それ以外の各ステップは、図11と同じため、説明を省略する。
【0066】
以上説明したように、本実施例の構成によれば、画像形成装置とクライアントコンピュータとプリントサーバとが、同じLAN上に存在していた場合であっても、第1の実施例で得られた効果と同様の効果を得ることができる。即ち、同じグループに属する複数の文書間にグループ外の他の文書が割り込んでしまうことを防ぐことができる。また、グループ内の個々のジョブ毎に管理を行うことが可能となる。例えば、ジョブ毎にジョブ終了通知を送信するので、ユーザは、グループ内の各文書に対して個々に印刷処理の終了を知ることができる。
【0067】
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0068】
101 画像形成装置
102 クライアントコンピュータ
103 プリントサーバ
201 CPU
202 RAM
203 ROM
【技術分野】
【0001】
本発明は、受信したジョブを処理するジョブ処理装置、ジョブ処理装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
従来から画像形成装置等のジョブ処理装置がネットワークに接続され、ネットワーク上に存在する複数のコンピュータから利用されるようになっている。一般に、印刷ジョブを処理するジョブ処理装置としての画像形成装置で印刷を行う場合、画像形成装置は、コンピュータから送信された印刷ジョブを受け付けた順に印刷を行っている。一方、コンピュータは、印刷対象となる複数の文書を夫々異なる印刷ジョブとして発行するため、複数の文書をまとめて印刷したい場合であっても、印刷対象の文書の間に他のコンピュータから送信された印刷ジョブが割り込んで実行されてしまう場合がある。このような場合、印刷出力された複数の文書の間に他のユーザが依頼した印刷文書が混在してしまうという問題点があった。
そこで、このような問題に対し、コンピュータ側で複数の印刷ジョブを1つにまとめたグループ印刷ジョブを生成し、画像形成装置における印刷ジョブの割込みを防ぐ仕組みが提案されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−182878号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記背景技術で説明した仕組みを使えば、画像形成装置における印刷ジョブの割込みを防ぐことができる。しかしながら、上記背景技術の方法は、複数の印刷ジョブを一つにまとめたグループ印刷ジョブという新たなジョブを生成するものであり、グループ印刷ジョブは画像形成装置において一つのジョブとして管理される。従って、例えばグループ印刷ジョブに含まれる複数の文書毎にジョブ終了通知を通知することができなかった。
【0005】
本発明はこの問題に対してなされたものであり、ジョブ処理装置における処理対象の同一グループ内の複数のジョブ間にグループ外の他のジョブが割り込むことを防ぐと共に、同一グループ内の複数のジョブ毎に管理することを可能にする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本願発明のジョブ処理装置は、グループを識別するグループ識別情報を含んだジョブの実行指示を受信する受信手段と、前記受信手段によって実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する処理手段と、前記処理手段によって処理された複数のジョブをそれぞれ別のジョブとして管理する管理手段とを備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、ジョブ処理装置における処理対象の同一グループ内の複数のジョブ間にグループ外の他のジョブが割り込むことを防ぐと共に、同一グループ内の複数のジョブ毎に管理することを可能にする。
【図面の簡単な説明】
【0008】
【図1】本実施例の印刷システムのシステム構成図
【図2】画像形成装置のハードウェア構成を示すブロック図
【図3】クライアントコンピュータ、プリントサーバのハードウェア構成を示すブロック図
【図4】画像形成装置のソフトウェア構成を示すブロック図
【図5】クライアントコンピュータのソフトウェア構成を示すブロック図
【図6】プリントサーバのソフトウェア構成を示すブロック図
【図7】プリントサーバに格納される文書の一覧を表示した画面の例
【図8】本実施例の印刷処理のシーケンス図
【図9】画像形成装置が送受信するメッセージの例
【図10】画像形成装置において実行される処理のフローチャート
【図11】画像形成装置において実行される処理のフローチャート
【図12】画像形成装置が管理するジョブ管理テーブルの例
【図13】画像形成装置が管理するグループ管理テーブルの例
【図14】印刷ジョブを印刷キューに投入する流れを模式的に示した図
【図15】第2の実施例における印刷システムのシステム構成図
【図16】第2の実施例における印刷システムの印刷処理のシーケンス図
【図17】第2の実施例における画像形成装置が送受信するメッセージの例
【発明を実施するための形態】
【0009】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例1】
【0010】
図1は、本発明を適用した印刷システムのシステム構成図である。
【0011】
図1の印刷システムでは、LAN120上に存在する画像形成装置101及びクライアントコンピュータ102(以下、コンピュータ102と呼ぶ)が、インターネット110を介してプリントサーバ103(以下、サバ103と呼ぶ)と接続されている。本実施例では、ジョブを受信して処理するジョブ処理装置の一例として、画像形成ジョブ(例えば印刷ジョブ)を処理する画像形成装置を例に説明する。また、クライアント装置の一例としてクライアントコンピュータ、サーバ装置の一例としてプリントサーバを用いて説明する。
【0012】
画像形成装置101は、コンピュータ102やサーバ103と通信可能であり、コンピュータ102やサーバ103から送信された印刷データを受信して印刷する機能を持つ。コンピュータ102は、画像形成装置101やサーバ103と通信可能であり、画像形成装置101に対して印刷処理の実行を指示する端末である。サーバ103は、画像形成装置101やコンピュータ102と通信可能であり、コンピュータ102からの印刷要求に対する処理、印刷ジョブの管理、画像形成装置101の管理等の処理を行う。また、本実施例においては、サーバ103はユーザごとに文書を管理する文書管理サーバとしての機能も備えている。尚、サーバ103は機能毎に複数のサーバに分離していてもよい。
【0013】
本実施例における図1の印刷システムでは、コンピュータ102が保持する印刷データをコンピュータ102が画像形成装置101へ送信して印刷処理を実行させる所謂プッシュプリント機能を実行可能である。加えて、サーバ103が保持する文書(印刷データ)を画像形成装置101が自ら取得して印刷処理を実行する所謂プルプリント機能も実行可能である。以下の説明では、これらのプリント機能のうち、プルプリント機能を実行する場合を例に説明する。
【0014】
尚、図1の例におけるLAN102は、有線のネットワークに限らず、無線ネットワークによっても実現可能であり、それらの組み合わせやその他の任意の通信方法によって実現されてもよい。また、LAN120やインターネット110に存在する端末は、図1に示した装置のみではなく、その他の装置が存在していてもよい。また、図1の印刷システムでは、画像形成装置101とコンピュータ102はLAN120を介して接続されているため、相互に通信可能である。一方で、LAN120とインターネット110との間にはファイアーウォール(不図示)が存在し、インターネット110からLAN120への通信を制限している。従って、画像形成装置101からサーバ103への通信、及びコンピュータ102からサーバ103への通信は許可されているが、サーバ103から画像形成装置101への通信、及びサーバ103からコンピュータ102への通信は制限されている。これらの通信が許可されるのは、サーバ103が画像形成装置101からのリクエストに応答する場合、又はサーバ103がコンピュータ102からのリクエストに応答する場合に限られている。
【0015】
図2は画像形成装置101のハードウェア構成を示すブロック図である。
【0016】
図2の画像形成装置101において、201はCPUである。CPU201は、ROM203のプログラム用ROMまたは外部記憶装置211に記憶された制御プログラムに基づいて各種処理を実行し、システムバス204に接続される各種のデバイスとのアクセスを総括的に制御する。また、印刷インターフェース207を介して接続される印刷部(プリンタエンジン)210を制御し印刷部に画像信号を出力したり、読取インターフェース212を介して接続される読取部(スキャナ)213を制御し、画像信号を入力する。また、このROM203のプログラム用ROMには、CPU201が実行可能な制御プログラム等が記憶される。さらに、ROM203のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ(アウトラインフォントデータを含む)等が記憶され、ROM203のデータ用ROMには、コンピュータ102上で利用される情報等が記憶されている。CPU201はLANコントローラ部206を介してネットワーク上のコンピュータ102や他の画像形成装置、サーバ103との通信処理が可能となっている。
【0017】
202はRAMで、主としてCPU201の主メモリ,ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM202は、PDLデータをビットマップデータに展開するための領域等に用いられる。ハードディスク(HDD)、Solid State Drive(SSD)等の外部記憶装置211は、ディスクコントローラ(DKC)208によりアクセスが制御される。外部記憶装置211は、アプリケーションプログラム、フォントデータ、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。またさらに、スキャナ213から読み取った画像データや印刷ジョブの画像データをBOXデータとして保持するBOXデータ格納領域としても使用される。BOXデータは、ネットワークを介してコンピュータ102から参照したり、印刷を行うことができる。205は操作パネルで、タッチパネルによって構成される表示部と各種ハードキーによって構成される。表示部には、各種ソフトウェアキーが表示され、ユーザはソフトウェアキーから各種情報を入力することが可能である。前述した外部記憶装置は、1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード,言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。209は不揮発性メモリであり、操作パネル205から設定される各種設定情報を記憶している。
【0018】
また、図示していないが、画像形成装置101にはさらにオプションで、ステープルやソート機能を行うフィニッシャや、両面印刷機能を実現するための両面装置など各種拡張装置を装着することが可能となっており、それらの動作はCPU201によって制御される。尚、画像形成装置のハードウェア構成は、図2の例に限定されず、少なくとも印刷機能を備える構成であればどのような構成であってもよい。
【0019】
図3はクライアントコンピュータ102、プリントサーバ103のハードウェア構成を示すブロック図である。
【0020】
図3において、301はCPUである。CPU301は、ROM302または外部記憶装置312に記憶された制御プログラムに基づいて各種処理を実行し、システムバス304に接続された各種デバイスの制御を行う。302はBIOSやブートプログラムを記憶するROM、303はCPU301の主記憶装置として使用されるRAMである。305はキーボードコントローラ(KBC)であり、マウス等のポインティングデバイス309、キーボード310からの情報などの入力に係る処理を行う。306は表示制御部(CRTC)であり、内部にビデオメモリを有し、CPU301からの指示に従ってそのビデオメモリに描画すると共に、ビデオメモリに描画されたイメージデータをビデオ信号としてCRT(表示装置)311に出力する。なお、図3において表示装置としてCRTを例示しているが、液晶表示装置等、表示装置の種類は問わない。307はディスクコントローラ(DKC)であり、ハードディスク(HDD)、Solid State Drive(SSD)等の外部記憶装置312へのアクセスを行う。308はネットワークインタフェースカード(NIC)であって、ネットワークに接続し、ネットワークを介しての情報通信を行うものである。なお、外部記憶装置312には、OSやOS上で動作する各種アプリケーションプログラム等が格納される。上記構成において、本装置の電源がONになると、CPU301はROM302に格納されたブートプログラムに従って、外部記憶装置312からOSをRAM303に読み込み、情報処理装置として機能するようになる。
【0021】
図4は、画像形成装置101のソフトウェア構成を示すブロック図である。
【0022】
印刷要求受信部401は、コンピュータ102から印刷ジョブ生成要求、プルプリント要求をLANコントローラ206を介して受信し、プルプリント要求に含まれるURLをジョブ管理テーブルに保存する。このURLは、画像形成装置101が印刷する対象となる印刷データを取得するために用いられ、印刷データを特定する特定情報の一例である。更に印刷要求受信部401は、外部記憶装置211又はRAM202内のジョブ管理テーブルに保存された印刷ジョブをRAM202内の印刷キューに投入する処理を行う。印刷処理部403は、印刷ジョブを印刷キューから取得し、印刷データを取得するためのURLを印刷データ取得部402に渡す。URLは通常、印刷データを蓄積している端末(本実施例ではサーバ103)を示すアドレスと、その端末内での印刷データの格納先を示すパスからなる。印刷データ取得部402は、渡されたURLに対して印刷データ取得要求を送信し、その応答として印刷データを受信し、印刷処理部403に渡す。印刷処理部403は、印刷データを解析してビットマップに展開し、印刷インターフェース207を介してプリントエンジン210に送信し、用紙への印刷を行う。イベント通知部404は、ジョブ終了等の印刷ジョブの状態をサーバ103に通知する。尚、イベント通知部404において通知される印刷ジョブの状態は、ジョブの終了のみならず、ジョブの開始の通知や、ジョブの中断の通知、エラー発生の通知等、その他の状態であってもよい。また、イベント通知部404の通知方法は、サーバ103等の外部装置への送信に限らず、画像形成装置101の表示部へ表示する等の方法によって通知してもよい。
【0023】
図5は、コンピュータ102のソフトウェア構成を示すブロック図である。
【0024】
本実施例におけるコンピュータ102は、少なくともWebブラウザ部501を備えていればよい。ユーザはWebブラウザ部501を使用してNIC308を介してサーバ103に接続し、サーバ103に格納されている文書の確認や所望の文書を指定した印刷指示を行うことができる。また、Webブラウザ部501は、サーバ103から印刷ジョブ生成要求、プルプリント要求を受信し、画像形成装置101にリダイレクトして送信する。
【0025】
図6は、サーバ103のソフトウェア構成を示すブロック図である。
【0026】
Webサーバ部601は、コンピュータ102に対するUIを提供する。このUIは例えば、文書管理部602がユーザごとに外部記憶装置312において管理している文書の情報を示すUIである。具体的には、Webサーバ部601は、コンピュータ102のWebブラウザ部501からのリクエストに応答して、HTMLやXML等のページ記述言語で記述されたファイルをNIC308を介してコンピュータ102に送信する。このファイルは、コンピュータ102のWebブラウザ部501で解釈され、コンピュータ102に表示されるUIが生成される。また、Webサーバ部601は印刷指示をNIC308を介して受信する。Webサーバ部601が印刷指示を受信すると、印刷制御部603は、印刷指示により指定された画像形成装置に適した印刷データを生成し一時的に蓄積する。画像形成装置に適した印刷データとは、例えば画像形成装置が処理可能なフォーマットの画像データや、画像形成装置に対応するプリンタドライバによって生成されたPDLデータである。印刷要求送信部604は、複数の印刷ジョブの固まり(グループ)を識別するためのグループ識別情報としてのGroupIdと、GroupIdに含まれる印刷ジョブの数を示すGroupSizeを生成する。そして、コンピュータ102へGroupIdとGroupSizeを含む印刷ジョブ生成要求を送信する。また、コンピュータ102へプルプリント要求を送信する。印刷データ取得要求処理部605は、画像形成装置101から印刷データ取得要求を受信し、指定された印刷データを画像形成装置101に送信する。イベント受信部606は、画像形成装置101から印刷ジョブの状態の通知を受信する。
【0027】
次に、本実施例の印刷システムにおける印刷実行の流れを説明する。図7は、コンピュータ102のWebブラウザ501において、サーバ103の外部記憶装置312に格納されている文書の一覧を表示した画面である。図7の例では、サーバ103にログインしたユーザがアクセス可能な文書のリストが、文書名701、日付702、ページ数703、サイズ704といった各種情報と共に表示される。ユーザがこの画面から所望の文書のチェックボックス705をチェックし、印刷ボタン706を押下すると、印刷が実行される。チェックボックス705は複数の文書を同時に選択することができ、本実施例では、同時に選択された複数の文書はその間に別の文書が割り込まれることなく、一まとまりで印刷される。また、1つの文書はそれぞれ1つのジョブとして印刷処理される。
【0028】
図8は、本実施例の印刷システムにおける1つのジョブの印刷処理のシーケンスである。
【0029】
本シーケンスに係る画像形成装置101のプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。またサーバ103、コンピュータ102の各プログラムは、各機器の外部記憶装置312又はROM302に格納されており、RAM303に読み出されCPU301によって実行される。
【0030】
コンピュータ102は、S801において、ユーザの入力を受け付け、文書の印刷要求をサーバ103に送信する。サーバ103は、S802において、指定された画像形成装置に適した印刷データを生成し一時的に蓄積する。その後、プリントサーバ103は、S802において、図9(a)のような印刷ジョブ生成要求をコンピュータ102に送信する。印刷ジョブ生成要求は、サーバ103によって生成される要求であり、画像形成装置101に印刷ジョブを生成させるための要求である。本実施例の印刷システムでは、画像形成装置にジョブを送信する装置は、一旦、ジョブ生成要求を画像形成装置に送信し、画像形成装置においてジョブIDを生成してもらう必要がある。画像形成装置においてJobIDが生成され、ジョブを送信する装置にそのJobIDが通知されると、ジョブを送信する装置は、そのJobIDを指定してジョブを送信する。従って、図9(a)の印刷ジョブ生成要求は最終的に画像形成装置101に送信されなければならない。しかし、上述したように、本実施例(図1)の印刷システムでは、サーバ103から画像形成装置101への通信はファイアウォールによって制限されている。従って、サーバ103はジョブ生成要求をコンピュータ102からの印刷要求に対する応答としてコンピュータに送信し、コンピュータにそのジョブ生成要求を画像形成装置101宛てにリダイレクトさせる方法を用いる。コンピュータ102は、S803において、サーバ103から受信した印刷ジョブ生成要求をリダイレクトして、画像形成装置101に送信する。画像形成装置101は、コンピュータ102から印刷ジョブ生成要求を受信すると、印刷ジョブを識別するジョブ識別情報としてのJobIdを含む印刷ジョブを生成する。画像形成装置101は、S804において、コンピュータに図9(b)のような印刷ジョブ生成要求応答を送信する。印刷ジョブ生成要求応答には、JobIdが含まれており、サーバ103が印刷ジョブを識別するために用いられる。コンピュータ102は、S805において、受信した印刷ジョブ生成要求をリダイレクトして、サーバ103に送信する。サーバ103は、印刷ジョブ生成要求応答に含まれるJobIdで印刷ジョブの識別を行う。そして、プリントサーバ103は、S806において、図9(c)のようなプルプリント要求をコンピュータ102に送信する。プルプリント要求は、サーバ103によって生成される要求であり、画像形成装置102に印刷データを取得するためのURLを通知するための要求である。また、プルプリント要求は、印刷ジョブ生成要求に従って生成されたジョブの実行を指示するための実行指示でもある。従ってこの要求は最終的に画像形成装置101に送信される。上述したように、サーバ103から画像形成装置101への通信はファイアウォールによって制限されている。そのためサーバ103は、プルプリント要求を画像形成装置101へ送信せずに、印刷ジョブ生成要求応答に対する応答として、コンピュータに送信し、コンピュータにそのプルプリント要求を画像形成装置101宛てにリダイレクトさせる。コンピュータ102は、S807において、サーバ103から受信したプルプリント要求をリダイレクトして、画像形成装置101に送信する。画像形成装置101は、S808において、コンピュータ102から受信したプルプリント要求に含まれるURLを抽出し、そのURLに基づいてサーバ103に対して印刷データ取得要求を送信する。サーバ103は、S809において、プルプリント要求に含まれたURLによって特定する印刷データを、画像形成装置101に送信する。画像形成装置101は、S810において、サーバ103から受信した印刷データを処理して印刷を行う。印刷が終了すると、画像形成装置101は、S811において、コンピュータ102にS807の応答としてプルプリント要求応答を送信する。コンピュータ102は、S812において、画像形成装置101から受信したプルプリント要求応答をリダイレクトして、サーバ103に送信する。画像形成装置101は、S813において、ジョブ終了通知をプリントサーバ103に送信する。ジョブ終了通知は、印刷処理が終了したことを通知するために、画像形成装置101からサーバ103へ送信される。また、ジョブ終了通知は、1つのジョブが終了する毎に送信されるため、1つの文書毎に印刷ジョブを生成する本実施例によれば、一つの文書の印刷が終了する毎に送信される。サーバ103に文書毎にジョブ終了通知が通知されると、サーバ103は、画像形成装置101へ送信した文書毎の終了を知ることができる。また、サーバ103の内部では、この通知に従って各文書の処理状況が管理される。また、コンピュータ102が備えるWebブラウザを用いてサーバ103にアクセスすることにより、コンピュータ102を操作するユーザも、文書毎に処理状況を知ることができる。尚、図8では、上述したように、S802の印刷ジョブ生成要求やS806のプルプリント要求等をサーバ103が直接画像形成装置101へ送信せずに一旦コンピュータ102に送信する。そしてコンピュータ102がリダイレクトすることによって画像形成装置101へ送信している。これは、図1で説明したように、コンピュータ102や画像形成装置101が存在するLANとサーバ103が存在するインターネット間にファイアウォールが存在し、サーバ103からのアクセスが制限されているからである。本実施例によれば、このようなシステム構成においても、コンピュータ102のリダイレクト処理を利用することによって、プルプリント機能を実現することができるようになっている。
【0031】
図9(a)はサーバ103によって生成される印刷ジョブ生成要求の例である。図9(a)の例では、XMLによって記述されている。
【0032】
901は印刷ジョブ生成要求であることを示す<CreatePrintJobRequest>タグである。902はGroupIdを示す<GroupId>タグであり、GroupIdの値が記述される。本実施例では、複数の印刷ジョブ生成要求が同じGroupIdの値を持つことができ、同じGroupIdの値を持つ印刷ジョブを印刷処理中は、そのGroupIdの値を持たない他の印刷ジョブが割り込みされることはないように制御される。903はGroupSizeを示す<GroupSize>タグであり、GroupId毎のジョブ数を示す値が記述される。なお、同じGroupIdの値を持つ印刷ジョブ生成要求は同じGroupSizeの値を持つ。
【0033】
なお、<GroupId>タグ902と<GroupSize>タグ903が存在しない印刷ジョブ生成要求は、単独ジョブの印刷ジョブ生成要求である。また、<GroupId>タグ902と、1の値を持つ<GroupSize>タグ903の印刷ジョブ生成要求は、単独ジョブの印刷ジョブ生成要求である。
【0034】
図9(b)は画像形成装置101によって生成される印刷ジョブ生成要求応答の例である。図9(b)の例では、XMLによって記述されている。
【0035】
911は印刷ジョブ生成要求応答であることを示す<CreatePrintJobResponse>タグである。912はJobIdを示す<JobId>タグである。
【0036】
図9(c)はサーバ103によって生成されるプルプリント要求の例である。図9(c)の例では、XMLによって記述されている。
【0037】
921はプルプリント要求を示す<AddDocumentRequest>タグである。922はJobIdを示す<JobId>タグであり、912のJobIdと対応している。923は印刷データを特定するためのURLを示す<DocumentUrl>タグである。画像形成装置101はこのURLに対して印刷ジョブ取得要求を送信する。
【0038】
図10は、画像形成装置101の印刷要求受信部401に対応するプログラムが実行されたときの画像形成装置101の処理を示すフローチャートである。
【0039】
本フローに係る印刷要求受信部401に対応するプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。
【0040】
まず、CPU201は、コンピュータ102からメッセージを受信する(S1001)。CPU201は受信したメッセージを解析し、受信したメッセージが印刷ジョブ生成要求である場合は、受信した印刷ジョブ生成要求にGroupIdとGroupSizeが含まれるかどうかを判断する(S1002)。GroupIdとGroupSizeが含まれる場合は、CPU201は、GroupIdとGroupSizeを図13に示すグループ管理テーブル1301のGroupId1302とGroupSize1303に保存する(S1003)。その後CPU201は、JobIdを生成し、印刷ジョブ生成要求に含まれるGroupIdと共に図12に示すジョブ管理テーブル1201のJobId1202とGroupId1203に保存する(S1004)。その後、CPU201は、印刷ジョブ生成要求応答をコンピュータ102に送信する(S1005)。S1002において、受信した印刷ジョブ生成要求にGroupIdとGroupSizeが含まれていない場合は、CPU201は、単独ジョブと判断してS1004に進む。そして、CPU201はJobIdを生成し、GroupIdを空にして、ジョブ管理テーブル1201のJobId1202とGroupId1203にそれぞれ保存する。
【0041】
S1001において、受信したメッセージがプルプリント要求である場合は、S1006に進む。プルプリント要求にはJobIdと印刷データを特定するためのURLが含まれる。CPU201は、受信したプルプリント要求に含まれるURLをジョブ管理テーブル1201の該当するJobIdと対応付けて保存する(S1006)。そして、受信したプルプリント要求に記述されたJobIdに対して、ジョブ管理テーブル1201において、GroupIdが保存されているかどうかを判断する(S1007)。その結果、GroupIdがジョブ管理テーブル1101に保存されている場合は、CPU201は、グループ管理テーブル1301の該当するGroupIdのプルプリント要求受信数1304を1つインクリメントする(S1008)。その後CPU201は、GroupSize分のプルプリント要求を受信したかを判断する(S1009)。具体的には、グループ管理テーブル1301において、プルプリント要求に含まれるGroupIDのプルプリント受信数1304の値、即ちそのGroupIdのプルプリント要求を受信した回数がGroupSize1303の値に達したか否かを判断する。S1009における判断の結果、GroupSize分のプルプリント要求を受信したと判断した場合は、S1010に進む。一方、GroupSize分のプルプリント要求を受信したと判断されなかった場合には、S1010の処理を行わずにS1011へと進む。S1010において、CPU201は、プルプリント要求のJobIdが属するGroupIdの値と同じGroupIdに属する他のJobIdを特定し、ジョブ管理テーブル1201中のこれらのジョブに関する情報をまとめて、印刷キューに投入する。その後、S1011において、CPU201はプルプリント要求応答を生成し、コンピュータ102に送信する。
【0042】
S1007において、GroupIdがジョブ管理テーブル1101に含まれていない場合(図12の場合、JobId7のジョブ)は、単独ジョブと判断して、S1012に進み、当該ジョブに関する情報を印刷キューに投入する。
【0043】
図11は画像形成装置101の印刷処理部403に対応するプログラムが実行されたときの画像形成装置101の処理を示すフローチャートである。
【0044】
本フローに係る印刷処理部403に対応するプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。
【0045】
まずCPU201は、印刷キューにジョブが存在するか確認する(S1101)。印刷キューにジョブが存在すると判断された場合は、CPU201は印刷キューからジョブを受信する(S1102)。具体的には、印刷キューには、ジョブ情報として印刷データを特定するためのURLが存在している。S1102の処理では、印刷キューに存在するジョブのジョブ情報から、少なくともURLを取得する。そして、CPU201は、S1102で取得したURLを用いてサーバ103にアクセスし、そのURLで特定される印刷データをサーバ103から取得する(S1103)。その後、CPU201は、取得した印刷データに基づいて印刷処理を実行する(S1104)。印刷処理が終了すると、CPU201はジョブ終了通知をサーバ103に送信する(S1105)。その後、再びS1105において、印刷キューにジョブが存在するかを確認する。サーバ103に文書毎にジョブ終了通知が通知されると、サーバ103は、画像形成装置101へ送信した文書毎の終了を知ることができる。また、サーバ103の内部では、この通知に従って各文書の処理状況が管理される。また、コンピュータ102が備えるWebブラウザを用いてサーバ103にアクセスすることにより、コンピュータ102を操作するユーザも、文書毎に処理状況を知ることができる。
【0046】
図11のフローチャートは、印刷キューに存在するジョブ毎に実行される。また、一つのジョブは一つの文書のみを含む。従ってユーザは、複数の文書を含んだグループを生成した場合であっても、そのグループに含まれる個々の文書毎に印刷処理の終了通知を得ることができるようになる。
【0047】
図12は画像形成装置101に保持されるジョブ管理テーブル1201の例である。
【0048】
1202はJobIdであり、画像形成装置101が印刷ジョブ生成要求を受信したときに画像形成装置101において生成される識別情報である。JobIdは、画像形成装置101において保持しているジョブを一意に特定するために各ジョブに割り当てられる情報であり、例えば任意の数字である。1203はGroupIdであり、受信した印刷ジョブ生成要求に含まれている情報である。1204は印刷対象となる印刷データを特定するためのURLであり、受信したプルプリント要求に含まれている。ジョブ管理テーブル1201では、少なくともこれらJobId,GroupId,URLといった3つの情報を、ジョブ毎に関連付けて管理している。
【0049】
図13は画像形成装置101に保持されるグループ管理テーブル1301の例である。
1302はGroupIdであり、図12の1203と同じ情報である。1303はGroupSizeであり、一つのGroupに含まれるジョブの数(文書の数)を示す値である。画像形成装置101は、GroupSizeの数だけプルプリント要求を受信した後、そのジョブを印刷キューに投入する。1304はプルプリント要求受信数であり、GroupId毎にそれまでにプルプリント要求を受信した数を示す値である。グループ管理テーブル1301では、少なくともこれらGroupId,GroupSize,プルプリント要求受信数といった3つの情報を、グループ毎に関連付けて管理している。
【0050】
図14(a)、(b)、(c)はジョブ管理テーブル1201で管理しているジョブを印刷キューに投入するまでの様子を模式的に示した図である。
【0051】
図14(a)は、印刷キューにGroupId1を構成するJobId1、JobId2が投入されていることを示している。印刷処理部403は、印刷キューに投入された順に印刷ジョブを取得し、印刷処理を実行する。図14(a)において、ジョブ管理テーブル1201は、GroupId2を構成するJobId3と、GroupId3を構成するJobId5に対するプルプリント要求を受信した状態である。また、GroupId2を構成するJobId4と、GroupId3を構成するJobId6と、単独ジョブのJobId7についてはジョブ生成要求を受信したもののプルプリント要求は未だ受信していない状態である。従って、GroupId2のジョブとGroupId3のジョブとは、グループに含まれる全てのジョブのプルプリント要求をまだ受信していないため、印刷キューには投入されず、印刷の実行を待機している状態である。また、単独ジョブに関しても、プルプリント要求がまだ受信していないため、印刷の実行を待機している状態である。このとき、JobId7を含む単独ジョブのプルプリント要求を受信すると、図14(b)に移行する。図14(b)では、JobId7を含む単独ジョブのプルプリント要求を受信した後、ジョブ管理テーブル1201でGroupIdが存在しないこと(単独ジョブであること)を確認し、印刷ジョブを印刷キューへ投入する。この状態では、GroupId2のジョブとGroupId3のジョブとは、グループに含まれる全てのジョブのプルプリント要求をまだ受信していないため、印刷キューには投入されず、未だに印刷の実行を待機している状態である。次に、JobId6を含むプルプリント要求を受信すると、図14(c)に移行する。図14(c)では、JobId6を含むプルプリント要求を受信した後、ジョブ管理テーブル1201でGroupId3であることを確認する。そして、グループ管理テーブル1301のGrouId3のプルプリント要求受信数1304を1つインクリメントし、GroupSizeの分だけプルプリント要求を受信したことを確認する。その後、GroupId3のJobId5、JobId6をまとめてジョブ管理テーブル1101から印刷キューへ投入している。この状態は、GroupId3に関しては、そのグループに含まれる全てのジョブのプルプリント要求が受信されたので、印刷キューに投入され、ジョブの処理が開始される状態である。一方、GroupId2のジョブは、そのグループに含まれる全てのジョブのプルプリント要求をまだ受信していないため、印刷キューには投入されず、未だに印刷の実行を待機している状態である。
【0052】
図14に示す処理と並行して、図11で説明した印刷処理部のフローが実行されており、印刷キューに投入されたジョブはその順番通りに順次処理されていく。つまり、複数のジョブから成るグループは、グループ内の全てのジョブが揃った状態で印刷キューに投入されており、且つ印刷キューの順番通りに印刷ジョブが処理されていくから、グループ内の複数のジョブの間にグループ外の他のジョブが割り込まれることはない。
【0053】
上記説明したように、本実施例の構成によれば、GroupIdを用いて複数のジョブを一まとまりのグループとして管理し、グループ内のジョブの間にはグループ外の他のジョブが割り込んで実行されないようにすることができる。また、一つの文書につき一つのジョブとしているので、同じグループに属する複数の文書間にグループ外の他の文書が割り込んでしまうことを防ぐことができる。また、グループ内の個々のジョブ毎に管理を行うことが可能となる。例えば、ジョブ毎にジョブ終了通知を送信するので、ユーザは、グループ内の各文書に対して個々に印刷処理の終了を知ることができる。
【実施例2】
【0054】
次に第二の実施例について説明する。
【0055】
第一の実施例においては、図1に示したように、サーバ103がインターネット上に存在する場合を想定していたため、サーバ103からLAN120上の装置へのアクセスは、LAN120上の装置からの要求に対する応答に制限されていた。これに対して第二の実施例では、画像形成装置101、コンピュータ102、サーバ103が同じLAN上に存在し、互いに自由に通信可能な場合を想定する。
【0056】
図15は、本実施例における印刷システムのシステム構成図である。
【0057】
図15では、画像形成装置101とコンピュータ102とサーバ103とが、同じLAN120上に接続されている。図1の印刷システムと異なる点は、サーバ103から画像形成装置101へのアクセス、サーバ103からコンピュータ102へのアクセスがファイアウォールによって制限されていない点であり、その他の点は図1で説明したものと同じである。また、各装置のハードウェア構成及びソフトウェア構成は、第1の実施例と同じであるため説明を省略する。
【0058】
図16は、本実施例の印刷システムにおける1つのジョブの印刷処理のシーケンスである。
【0059】
本シーケンスに係る画像形成装置101のプログラムは、画像形成装置101の外部記憶装置211又はROM203に格納されており、RAM202に読み出されCPU201によって実行される。またサーバ103、コンピュータ102の各プログラムは、各機器の外部記憶装置312又はROM302に格納されており、RAM303に読み出されCPU301によって実行される。
【0060】
コンピュータ102は、S1601において、ユーザの入力を受け付け、文書の印刷要求をサーバ103に送信する。サーバ103は、S1602において、図9(a)のような印刷ジョブ生成要求を画像形成装置101に送信する。印刷ジョブ生成要求は画像形成装置101に印刷ジョブを生成させるための要求である。画像形成装置101は、印刷ジョブ生成要求を受信すると、印刷ジョブを識別するジョブ識別情報としてのJobIdを含む印刷ジョブを生成する。画像形成装置101は、S1603において、サーバ103に図9(b)のような印刷ジョブ生成要求応答を送信する。印刷ジョブ生成要求応答には、JobIdが含まれており、サーバ103が印刷ジョブを識別するために用いられる。サーバ103は、印刷ジョブ生成要求応答に含まれるJobIdで印刷ジョブの識別を行う。そして、サーバ103は、S1604において、図17のようなプッシュプリント要求を画像形成装置101に送信する。プッシュプリント要求は、サーバ103が画像形成装置102に印刷データのバイナリデータを送信するために送信される。また、プッシュプリント要求は、印刷ジョブ生成要求に従って生成されたジョブの実行を指示するための実行指示として送信される。画像形成装置101は、S1605において、受信した印刷データの印刷を行う。印刷が終了すると、画像形成装置101は、S1606において、サーバ103にS1604の応答としてプッシュプリント要求応答を送信する。画像形成装置101は、S1607において、ジョブ終了通知をプリントサーバ103に送信する。ジョブ終了通知は、画像形成装置101がサーバ103に、印刷処理が終了したことを通知するために送信される。また、ジョブ終了通知は、1つのジョブが終了する毎に送信されるため、1つの文書毎に印刷ジョブを生成する本実施例によれば、一つの文書の印刷が終了する毎に送信される。
【0061】
図17はサーバ103が画像形成装置101に送信するプッシュプリント要求の例である。
【0062】
1701はプッシュプリント要求を示す<SendDocumentRequest>タグである。1702はJobIdを示す<JobId>タグである。1703は印刷対象となる文書を示す<DocumentData>タグであり、[Data]は印刷対象となる文書のバイナリデータである。画像形成装置101はこのバイナリデータを受信して処理することによって印刷処理を実行する。
【0063】
次に、本実施例の画像形成装置101において、印刷要求受信部及び印刷処理部に対応するプログラムが実行されたときの処理について説明する。
【0064】
まず、印刷要求受信部に対応するプログラムが実行されたとき、画像形成装置101は、基本的に図10のフローチャートと同様の処理を行う。図10と異なるのは、図10のS1001では、受信したメッセージが印刷ジョブ生成要求かプルプリント要求かによって分岐しているのに対して、本実施例では、印刷ジョブ生成要求かプッシュプリント要求かによって分岐する点である。つまり、図10のプルプリント要求の代わりに、本実施例ではプッシュプリント要求が存在する。その結果、本実施例では、図10のS1006の代わりに、受信した印刷データ(プッシュプリント要求に含まれているバイナリデータ)を記憶部(例えば外部記憶装置211)に格納する処理が行われる。それ以外の各ステップは、図10と同じため、説明を省略する。
【0065】
次に、印刷処理部に対応するプログラムが実行されたとき、画像形成装置101は、基本的に図11のフローチャートと同様の処理を行う。図11と異なるのは、S1103の処理である。図11の例では、プルプリントを実行していたため、サーバ103から印刷データを取得していた。一方、本実施例では、プルプリントではなく、サーバ103から送信された印刷データは、画像形成装置101の記憶部に既に格納されている。従って、本実施例では、図11のS1103の代わりに、記憶部に格納された印刷データを取得するという処理が行われる。それ以外の各ステップは、図11と同じため、説明を省略する。
【0066】
以上説明したように、本実施例の構成によれば、画像形成装置とクライアントコンピュータとプリントサーバとが、同じLAN上に存在していた場合であっても、第1の実施例で得られた効果と同様の効果を得ることができる。即ち、同じグループに属する複数の文書間にグループ外の他の文書が割り込んでしまうことを防ぐことができる。また、グループ内の個々のジョブ毎に管理を行うことが可能となる。例えば、ジョブ毎にジョブ終了通知を送信するので、ユーザは、グループ内の各文書に対して個々に印刷処理の終了を知ることができる。
【0067】
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0068】
101 画像形成装置
102 クライアントコンピュータ
103 プリントサーバ
201 CPU
202 RAM
203 ROM
【特許請求の範囲】
【請求項1】
グループを識別するグループ識別情報を含んだジョブの実行指示を受信する受信手段と、
前記受信手段によって実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する処理手段と、
前記処理手段によって処理された複数のジョブをそれぞれ別のジョブとして管理する管理手段と、
を備えることを特徴とするジョブ処理装置。
【請求項2】
処理手段は、前記実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブの全てに対する実行指示が受信されるまでの間は当該グループに属する複数のジョブの処理を待機し、当該複数のジョブの全てに対する事項指示が受信されたことに従って当該複数のジョブの処理を開始することを特徴とする請求項1記載のジョブ処理装置。
【請求項3】
前記管理手段は、前記処理手段によって処理された複数のジョブそれぞれに対するジョブの状態を通知することを特徴とする請求項1又は2に記載のジョブ処理装置。
【請求項4】
前記受信手段によってジョブの実行指示が受信された場合、前記グループに含まれる全てのジョブに対する実行指示が受信されたか否かを判断する判断手段を更に有し、
前記処理手段は、前記判断手段による判断の結果に従って、ジョブの処理を待機又は開始することを特徴とする請求項1乃至3の何れか一項に記載のジョブ処理装置。
【請求項5】
前記第1の受信手段は、グループ識別情報によって識別されるグループに含まれるジョブの数を示す情報を受信し、
前記判断手段は、これまでに前記第2の受信手段によって受信されたジョブの実行指示の回数が、前記第1の受信手段によって受信されたジョブの数に達したか否かを確認することによって、前記グループに含まれる全てのジョブに対する実行指示が受信されたか否かを判断することを特徴とする請求項4記載のジョブ処理装置。
【請求項6】
前記受信手段によって受信されるジョブの実行指示は、処理の対象となるデータを特定するための特定情報を含み、前記処理手段は、当該ジョブを開始すると当該特定情報に基づいてデータを取得して処理することを特徴とする請求項1乃至5の何れか一項に記載のジョブ処理装置。
【請求項7】
クライアント装置及びサーバ装置と通信する通信手段を更に有し、
前記受信手段は、前記サーバ装置において生成された実行指示を前記クライアント装置から受信し、
前記処理手段は、前記特定情報に基づいて前記サーバ装置からデータを取得して処理することを特徴とする請求項6記載のジョブ処理装置。
【請求項8】
前記受信手段によって受信されるジョブの実行指示は、処理の対象となるデータを含み、前記処理手段は、当該ジョブを開始すると当該データを処理することを特徴とする請求項1乃至5の何れか一項に記載のジョブ処理装置。
【請求項9】
前記ジョブは印刷ジョブであり、前記一つのジョブに対して印刷対象となる一つの文書が対応付けられることを特徴とする請求項1乃至8の何れか一項に記載のジョブ処理装置。
【請求項10】
ジョブ処理装置の制御方法であって、
グループを識別するグループ識別情報を含んだジョブの実行指示を受信する受信ステップと、
前記受信ステップによって実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する処理ステップと、
前記処理手段によって処理された複数のジョブをそれぞれ別のジョブとして管理する管理ステップと、
を備えることを特徴とする制御方法。
【請求項11】
請求項10に記載の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項1】
グループを識別するグループ識別情報を含んだジョブの実行指示を受信する受信手段と、
前記受信手段によって実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する処理手段と、
前記処理手段によって処理された複数のジョブをそれぞれ別のジョブとして管理する管理手段と、
を備えることを特徴とするジョブ処理装置。
【請求項2】
処理手段は、前記実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブの全てに対する実行指示が受信されるまでの間は当該グループに属する複数のジョブの処理を待機し、当該複数のジョブの全てに対する事項指示が受信されたことに従って当該複数のジョブの処理を開始することを特徴とする請求項1記載のジョブ処理装置。
【請求項3】
前記管理手段は、前記処理手段によって処理された複数のジョブそれぞれに対するジョブの状態を通知することを特徴とする請求項1又は2に記載のジョブ処理装置。
【請求項4】
前記受信手段によってジョブの実行指示が受信された場合、前記グループに含まれる全てのジョブに対する実行指示が受信されたか否かを判断する判断手段を更に有し、
前記処理手段は、前記判断手段による判断の結果に従って、ジョブの処理を待機又は開始することを特徴とする請求項1乃至3の何れか一項に記載のジョブ処理装置。
【請求項5】
前記第1の受信手段は、グループ識別情報によって識別されるグループに含まれるジョブの数を示す情報を受信し、
前記判断手段は、これまでに前記第2の受信手段によって受信されたジョブの実行指示の回数が、前記第1の受信手段によって受信されたジョブの数に達したか否かを確認することによって、前記グループに含まれる全てのジョブに対する実行指示が受信されたか否かを判断することを特徴とする請求項4記載のジョブ処理装置。
【請求項6】
前記受信手段によって受信されるジョブの実行指示は、処理の対象となるデータを特定するための特定情報を含み、前記処理手段は、当該ジョブを開始すると当該特定情報に基づいてデータを取得して処理することを特徴とする請求項1乃至5の何れか一項に記載のジョブ処理装置。
【請求項7】
クライアント装置及びサーバ装置と通信する通信手段を更に有し、
前記受信手段は、前記サーバ装置において生成された実行指示を前記クライアント装置から受信し、
前記処理手段は、前記特定情報に基づいて前記サーバ装置からデータを取得して処理することを特徴とする請求項6記載のジョブ処理装置。
【請求項8】
前記受信手段によって受信されるジョブの実行指示は、処理の対象となるデータを含み、前記処理手段は、当該ジョブを開始すると当該データを処理することを特徴とする請求項1乃至5の何れか一項に記載のジョブ処理装置。
【請求項9】
前記ジョブは印刷ジョブであり、前記一つのジョブに対して印刷対象となる一つの文書が対応付けられることを特徴とする請求項1乃至8の何れか一項に記載のジョブ処理装置。
【請求項10】
ジョブ処理装置の制御方法であって、
グループを識別するグループ識別情報を含んだジョブの実行指示を受信する受信ステップと、
前記受信ステップによって実行指示を受信すると、前記グループ識別情報によって識別されるグループに属する複数のジョブを、当該複数のジョブの間に他のグループに属するジョブが割り込まないように連続して処理する処理ステップと、
前記処理手段によって処理された複数のジョブをそれぞれ別のジョブとして管理する管理ステップと、
を備えることを特徴とする制御方法。
【請求項11】
請求項10に記載の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2013−14021(P2013−14021A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−146504(P2011−146504)
【出願日】平成23年6月30日(2011.6.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成23年6月30日(2011.6.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]