(57)【特許請求の範囲】
【請求項１】
印刷ジョブ要求のターゲットである少なくとも一のリモートファイルを特定するロケーション情報を含む該印刷ジョブ要求を受信する工程と、
前記少なくとも一のリモートファイルのロケーション情報を抽出するために、前記印刷ジョブ要求を構文解析する工程と、
前記印刷ジョブ要求に対応し、前記少なくとも一のリモートファイルのロケーション情報と関連付けられた少なくとも一のキューエントリを、印刷ジョブキューに追加する工程と、
前記少なくとも一のキューエントリが前記印刷ジョブキュー内の所定の位置に到達するまで、前記少なくとも一のリモートファイルの検索を遅延させる工程と、
を備え、
前記方法は、利用可能なネットワーク帯域幅が所定の閾値を下回る場合に、前記印刷ジョブ要求を受信すると実行される、
プロセッサによって実現される印刷ジョブ要求を処理する方法。
【請求項２】
コンピュータによって実行されるプログラム指示を含むコンピュータ可読媒体であって、前記プログラム指示は印刷ジョブ要求を処理する方法における工程を行うものであり、前記工程は、
印刷ジョブ要求のターゲットである少なくとも一のリモートファイルを特定するロケーション情報を含む該印刷ジョブ要求を受信する工程と、
前記少なくとも一のリモートファイルのロケーション情報を抽出するために、前記印刷ジョブ要求を構文解析する工程と、
前記印刷ジョブ要求に対応し、前記少なくとも一のリモートファイルのロケーション情報と関連付けられた少なくとも一のキューエントリを、印刷ジョブキューに追加する工程と、
前記少なくとも一のキューエントリが前記印刷ジョブキュー内の所定の位置に到達するまで、前記少なくとも一のリモートファイルの検索を遅延させる工程と、
を含み、
前記方法は、利用可能なネットワーク帯域幅が所定の閾値を下回る場合に、前記印刷ジョブ要求を受信すると実行される、コンピュータ可読媒体。
【請求項３】
コンピュータによって実行されるプログラム指示を含むコンピュータ可読メモリであって、前記プログラム指示は印刷ジョブ要求を処理する方法における工程を行うものであり、前記工程は、
印刷ジョブ要求のターゲットである少なくとも一のリモートファイルを特定するロケーション情報を含む該印刷ジョブ要求を受信する工程と、
前記少なくとも一のリモートファイルのロケーション情報を抽出するために、前記印刷ジョブ要求を構文解析する工程と、
前記印刷ジョブ要求に対応し、前記少なくとも一のリモートファイルのロケーション情報と関連付けられた少なくとも一のキューエントリを、印刷ジョブキューに追加する工程と、
前記少なくとも一のキューエントリが前記印刷ジョブキュー内の所定の位置に到達するまで、前記少なくとも一のリモートファイルの検索を遅延させる工程と、
を含み、
前記方法は、利用可能なネットワーク帯域幅が所定の閾値を下回る場合に、前記印刷ジョブ要求を受信すると実行される、コンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷分野に関し、特に、印刷ジョブスケジューリングのシステム及び方法に関する。
【背景技術】
【０００２】
現代組織においてユビキタスなコンピュータ用プリンタは、保存された文書を短時間で印刷することができる。ユーザによって文書の印刷が要求されると、該文書は印刷可能な形式に変換され、該文書に関係する印刷ジョブ要求が適切なプリンタ又は印刷コントローラに送信される。多くの場合、印刷ジョブ要求はジョブデフィニションフォーマット（ＪＤＦ）チケットの形式をとる。ＪＤＦは、指示及びジョブパラメータの交換フォーマットである。ＪＤＦは、ジョブ記述、パラメータ及び指示を伝達するために使用される。またＪＤＦは、各生産プロセスや、ジョブを完了するために必要なマテリアル又は他のプロセス入力の観点からジョブを記述する際にも使用される。ＪＤＦは、ＪＤＦのファイルを使用しての通信及び／又はジョブメッセージングフォーマット（ＪＭＦ）のネットワークメッセージを使用しての通信を可能にする。ＪＭＦはエクステンシブルマークアップ言語（ＸＭＬ）ベースである。ＪＤＦファイルやＪＭＦメッセージは情報を含み、プリンタは該情報によって、入力ファイル、該入力ファイルのロケーション及び実行される動作を判定する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
プリンタは、ＪＤＦファイル又はＪＭＦメッセージを受信すると、該ＪＤＦファイル又はＪＭＦメッセージ内の情報を用いて印刷対象であるリモート文書を直ちに検索し、検索された文書をローカルに保存し、該文書を印刷ジョブキューに追加する。これはスプーリングとよばれるプロセスである。しかし、スプーリングにはいくつかデメリットがある。例えば、低コストのプリンタはジョブを記憶する能力が低い場合がある。記憶容量の大きいハイエンドモデルのプリンタであっても、追加ジョブのスプーリングが困難な期間に直面することがある。また、印刷ジョブのパラメータが提出時から印刷時までの間に変化して、最初に提出（及び検索）されたジョブが既に使用不可能な場合もある。そのため、スプーリングが非実用的又は利用不可能な状況において印刷ジョブのスケジューリングを容易にするシステム及び方法が必要である。
【課題を解決するための手段】
【０００４】
開示の実施形態に係る印刷ジョブスケジューリングのシステム及び方法を説明する。いくつかの実施形態においては、プロセッサによって実現される印刷ジョブ要求を処理する方法は、印刷ジョブ要求のターゲットである少なくとも一のリモートファイルを特定するロケーション情報を含む該印刷ジョブ要求を受信する工程と、前記少なくとも一のリモートファイルのロケーション情報を抽出するために、前記印刷ジョブ要求を構文解析する工程と、前記印刷ジョブ要求に対応し、前記少なくとも一のリモートファイルのロケーション情報と関連付けられた少なくとも一のキューエントリを、印刷ジョブキューに追加する工程と、前記少なくとも一のキューエントリが前記印刷ジョブキュー内の所定の位置に到達するまで、前記少なくとも一のリモートファイルの検索を遅延させる工程と、を備え、前記方法は、利用可能なネットワーク帯域幅が所定の閾値を下回る場合に、前記印刷ジョブ要求を受信すると実行される。
【０００５】
また実施形態は、コンピュータ可読媒体又はコンピュータ可読メモリを使用し、プロセッサによって生成、記憶、アクセス又は改良されるソフトウェア、ファームウェア及びプログラム指示にも関する。以下、上記の実施形態及び他の実施形態について、添付の図面を参照して更に説明する。
【図面の簡単な説明】
【０００６】
【図１】印刷スケジューリングのシステムの一例の高レベルブロック図である。
【図２】ＪＤＦファイルの一例を示す。
【図３】ＪＤＦ印刷ジョブを処理する従来の方法を示すフローチャートである。
【図４】本発明の実施形態に係るＪＤＦ印刷ジョブを処理する方法の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
開示の実施形態に係る印刷ジョブスケジューリングのシステム及び方法を説明する。
【０００８】
図１は、印刷スケジューリングのシステムの一例の高レベルブロック図である。一般的に、印刷スケジューリングのコンピュータソフトウェアアプリケーションは、コンピュータ１１０、プリンタ１７０及び／又は印刷コントローラ１７５を備えるネットワーク上に展開される。コンピュータ１１０、プリンタ１７０及び／又は印刷コントローラ１７５は通信リンクを介して接続され、従来の通信プロトコル及び／又はデータポートインターフェースを用いて情報交換する。
【０００９】
図１に示すように、システム１００は、コンピュータ又はコンピュータデバイス１１０、プリンタ１７０及び印刷コントローラ１７５を含む。ネットワーク１４０は、サブネット、ローカルエリアネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）を含む。またネットワーク１４０は、モデム、ルータ、リピータ及びその他の通信デバイス（図示なし）を更に含み、ネットワーク１４０に接続されたデバイスは、ネットワーク管理者が設定したポリシーに従って、有線接続又は無線接続で他のデバイスと通信可能となる。
【００１０】
一般的に、コンピュータデバイス１１０は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス又はネットワーク環境で使用可能な他のモバイルコンピュータデバイスである。コンピュータデバイス１１０、プリンタ１７０及び／又は印刷コントローラ１７５は、開示の実施形態に係る印刷ジョブスケジューリングを容易にするソフトウェア（図示なし）を実行することができる。
【００１１】
コンピュータデバイス１１０、プリンタ１７０及び印刷コントローラ１７５は、リムーバブルメディアドライブ１５０を含む。リムーバブルメディアドライブ１５０は、例えば、３．５インチフロッピドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ、ＣＤ±ＲＷドライブ、ＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、メモリスティック（登録商標）、セキュアデジタルハイキャパシティ（ＳＤＨＣ）カード及び／又は本発明の実施形態に係る他のリムーバルメディアドライブを含む。ソフトウェアアプリケーションの一部はリムーバルメディアに常駐し、リムーバルメディアドライブ１５０を用いてコンピュータデバイス１１０によって読み出され実行される。いくつかの実施形態においては、アプリケーションによって作成される中間結果及び／又は中間レポート並びに最終結果及び／又は最終レポートも、リムーバブルメディアに保存される。
【００１２】
プリンタ１７０（プリンタ１７０−１〜プリンタ１７０−５など）はレーザプリンタ、インクジェットプリンタ、ＬＥＤプリンタ、プロッタ、その他多様な種類のプリンタなどである。プリンタ１７０は、機能的には、コンピュータ用プリンタ、ファクシミリ装置、デジタルコピー機、複合機及び／又は文書印刷可能なその他の多様なデバイスの形態を取る。
【００１３】
接続部１２０は、コンピュータデバイス１１０、印刷コントローラ１７５及びプリンタ１７０を、ネットワーク１４０に接続する。接続部１２０は、適切な従来の通信プロトコル及び／又はデータポートインターフェースを用いて、有線接続又は無線接続として実現される。一般的に、接続部１２０は、デバイス間でのデータ送信を可能にする任意の通信チャネルである。一実施形態においては、デバイスには、適切な接続部１２０を介してデータ送信を行うために、ＵＳＢ（登録商標）ポート、ＳＣＳＩポート、ファイヤーワイヤー（登録商標）ポート及び／又はＢＮＣポートなどのデータポートが設けられている。通信リンクは、コンピュータデバイス１１０、印刷コントローラ１７５、プリンタ１７０間の通信を可能にするものであれば、無線リンク、有線リンク又はこれらの組み合わせでもよい。
【００１４】
プリンタ１７０は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせによって制御される。プリンタ１７０は、印刷コントローラ１７５などの一以上の印刷コントローラボード１７５を含む。プリンタ１７０に外付け又は内蔵される印刷コントローラ１７５は、プリンタ１７０の動作を制御し、印刷ジョブ要求並びにプリンタ１７０のケイパビリティ要求及びステータス要求を受信して実行し、要求元デバイスに応答を送信することが可能である。いくつかの実施形態においては、プリンタ１７０は、印刷コントローラ１７５内のメモリデバイスに常駐するファームウェアやソフトウェアによって制御される。印刷コントローラ１７５も、コンピュータデバイス１１０及び／又はサーバ１３０上で実行されているソフトウェアによって一部制御される。ソフトウェアには、印刷サーバ、プリンタドライバ又はその他のソフトウェアが含まれる。
【００１５】
印刷ジョブスケジューリングのコンピュータソフトウェアアプリケーションは、図1に示されるように、コンピュータ１１０、印刷コントローラ１７５及び／又はプリンタ１７０の一つ以上において展開される。例えば、プリンタ１７０はソフトウェア又はファームウェアを実行し、開示の実施形態に応じた印刷ジョブスケジューリングを行う。他の例では、印刷ジョブスケジューリングのアプリケーションは、コンピュータ１１０及び／又は印刷コントローラ１７５に常駐し、プリンタ１７０上で動作する。一般的に、アプリケーションは、システム内の一以上のコンピュータ１１０、印刷コントローラ１７５及び／又はプリンタ１７０上で、全体又は一部実行される。上述の実施形態は例であり、当業者にとって他の実施形態及び実現は明らかである。
【００１６】
プリンタ１７０はバス１７４を含む。バス１７４は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入出力（Ｉ／Ｏ）モジュール１８１、印刷エンジン１７７及び二次記憶装置１７３を接続する。プリンタ１７０は、印刷ジョブスケジューリングのアプリケーションを部分的に実行することができる他の特定用途向け集積回路（ＡＳＩＣ）及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８も含む。いくつかの実施形態においては、プリンタ１７０は、プリンタオペレーティングシステム、ジョブスケジューリングルーチン、ＪＤＦ及びＪＭＦ処理ルーチン、構文解析及び変換ルーチン、データベース管理ソフトウェア、印刷ジョブ要求を処理するソフトウェア、プリンタステータス要求、プリンタ構成ソフトウェア並びにその他適切なアプリケーションソフトウェアを含むソフトウェアを実行することができる。  
【００１７】
Ｉ／Ｏモジュール１８１は、ネットワーク１４０上でコンピュータ１１０と通信可能である。コンピュータ１１０及び／又は印刷コントローラ１７５から受信した情報は、Ｉ／Ｏモジュール１８１によって処理され、メモリ１７２に記憶される。またＩ／Ｏモジュール１８１は、通信をＣＰＵ１７６に通知する。通信には、使用されているプロトコルに応じた、データ、コマンド、ＪＤＦ及びＪＭＦ要求を含む印刷ジョブ要求、ケイパビリティ要求、ステータス要求、応答及び／又は受信通知が含まれる。ＣＰＵ１７６はメモリ１７２に記憶された情報を検索し、検索された情報に更なる処理を施す。
【００１８】
ＣＰＵ１７６は、汎用プロセッサ、専用プロセッサ又は組み込みプロセッサである。ＣＰＵ１７６は、メモリ１７２及び／又はファームウェア１７１と、制御情報や指示を含むデータのやり取りをすることができる。メモリ１７２は、任意の種類のダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり、例えば、ＳＤＲＡＭ又はＲＤＲＡＭであるが、これらに限られるものではない。ファームウェア１７１は指示及びデータを保持する。指示及びデータには、ブートアップシーケンス、所定のルーチン、その他コードが含まれ、所定のルーチンには、ジョブスケジューリング、ＪＤＦ及びＪＭＦ要求の処理、受信した要求及びメッセージの処理、並びに、送信する応答及びメッセージの作成のルーチン、また、構成管理のルーチン、文書処理のルーチンが含まれるが、これらに限られるものではない。いくつかの実施形態においては、ファームウェア１７１内のコード及びデータは、ＣＰＵ１７６によって実行される前に、メモリ１７２にコピーされる。ファームウェア１７１内のデータ及び指示は、コンピュータ１１０、ネットワーク１４０、プリンタ１７０に接続されたリムーバブルメディア及び／又は二次記憶装置１７３のうちの一つ以上を用いて更新することができる。
【００１９】
ＣＰＵ１７６は、指示及びデータを実行し、ＡＳＩＣ／ＦＰＧＡ１７８及び印刷エンジン１７７に制御及びデータを提供し、印刷文書を作成させる。ＡＳＩＣ／ＦＰＧＡ１７８も印刷エンジン１７７に制御及びデータを提供する。ＡＳＩＣ／ＦＰＧＡ１７８は、構成管理、メッセージ処理、その他印刷に関連するアルゴリズムのうち、いずれか一つを実現する。一以上のプリンタ１７０に関連する、中間及び最終印刷可能データ、メッセージ、プリンタステータス及び構成情報が、メモリ１７２又は二次記憶装置１７３に記憶される。
【００２０】
様々な方法やプロトコルを使用して、プリンタ１７０との印刷ジョブに関する通信が行われる。例えば、ジョブ状態関連情報を取得するためにプリンタジョブ言語（ＰＪＬ）が使用される。その他使用されるプロトコルとしては、多様なＸＭＬベースのプロトコルが含まれるが、これらに限られるものではない。例えばＪＤＦがその一例である。ＪＤＦは情報交換を簡略化するために設計された業界標準である。ＪＤＦはＪＭＦを含む。ＪＭＦはＪＤＦエージェントとコントローラ間の通信に用いられる言語である。ＪＭＦによって、コントローラはＪＤＦ管理情報システム又はワークフロー情報システムと通信し、プリンタ状態関連情報を取得する。なお、多くのプリンタ製造業者は、サーバ１３０や他のデバイスにプリンタ状態関連情報やジョブ状態関連情報を取得させるために、著作権を所有するシステムやデファクトスタンダードを用いることがある。例えば、マイクロソフト（登録商標）は、ＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｄｅｖｉｃｅｓ）プロトコルを提供している。ＷＳＤプロトコルも、サーバ１３０がプリンタ状態関連情報にアクセスするために用いられる。一般的に、サーバ１３０は、各プリンタ１７０に対応しているプロトコルに従って、多様な利用可能メカニズムのうち一以上のメカニズムを用いて、ジョブをプリンタに送信し、プリンタ状態関連情報を取得する。当業者であれば、上述の方法を他の基準やプロトコルに拡張することは容易である。
【００２１】
図２はＪＤＦファイル２００の一例を示す。図２に示されるように、ＪＤＦファイル２００は、ヘッダ部２１０及びコマンド部２３０を含む。なお、これら特定された部は例であり、説明のためにのみ特定されたものである。ヘッダ部２１０によって、ＸＭＬバージョン、ＪＤＦスキーマバージョン、ＪＤＦインスタンス、ＪＤＦ要求の送信者を識別する送信者情報、並びに、年月日（ＹＹＹＹＭＭＤＤ）、時間（ＨＨＳＳ）及び協定世界時間（ＵＴＣ）オフセット（±ＸＸ：ＹＹ）情報を備えるタイムスタンプを識別することができる。ヘッダ部２１０の情報は、ＪＤＦファイル２００の構文解析用の情報を取得するために、プリンタ１７０及び／又は印刷コントローラ１７５におけるルーチンで使用される。ヘッダ部２１０の情報は送信者ＩＤも含む。送信者ＩＤはＪＤＦ要求の送信者のネットワーク名などである。例えば、ヘッダ部２１０はＪＤＦファイル２００の送信者を「ＪＤＦテスタ」として識別する。
【００２２】
コマンド部２３０は、コマンド識別子及びその他の情報を含む。その他の情報としては、印刷対象であるファイルのロケーション情報などがある。例えば、ユニフォームリソースロケータ（ＵＲＬ）は印刷中のファイルのロケーションを特定する。ＵＲＬは識別されたファイルの入手可能な場所及びそのファイルを検索するためのメカニズムを特定する。図２に示されるように、ファイル「ｂａｌｌｏｏｎｓ．ｐｄｆ」のロケーションは、ＵＲＬ「ｆｉｌｅ：／／ｔｅｓｔｓ／ｕｓ／ｐｄｆ／ｍｅｌａｎｇｅ／ｂａｌｌｏｏｎｓ．ｐｄｆ」によって特定される。
【００２３】
図３はＪＤＦ印刷ジョブを処理する従来の方法３００を示すフローチャートである。ステップ３１０において該方法が開始される。ステップ３１５において印刷ジョブキューが調べられる。印刷ジョブキューが空である場合（ステップ３１５；Ｙ）、ステップ３２０において、印刷スプーラはデータを受信するまで待機する。該データはネットワークソケットを用いて配信される。ステップ３２５において受信データがある場合、ステップ３３０において該データが構文解析される。例えば、ＪＤＦファイル２００又はＪＭＦメッセージがステップ３３０において構文解析される。
【００２４】
ＪＤＦファイル２００又はＪＭＦメッセージが印刷ジョブ要求のターゲットであるファイルのロケーション情報（ＵＲＬなど）を含む場合、ステップ３３５においてキュー要求が印刷スプーラに提出される（ステップ３３５；Ｙ）。ステップ３３５においてキュー要求が印刷スプーラに提出されない場合（ステップ３３５；Ｎ）、ステップ３４５においてＪＤＦファイル２００又はＪＭＦメッセージは適切な処理を施され、アルゴリズムはステップ３１５に戻り、その後のステップを繰り返す。ステップ３４０において（ステップ３３５で提出された）キュー要求が処理され、ＵＲＬによって特定されるターゲットであるリモートファイルが検索される。印刷ジョブ要求のターゲットである検索されたファイルはステップ３５０においてディスクに保存され、アルゴリズムはステップ３１５に戻り、その後のステップを繰り返す。
【００２５】
ステップ３１５において印刷ジョブキューが空でない場合（ステップ３１５；Ｎ）、印刷対象である（事前に検索されローカルに保存された）ファイルが、ステップ３３５において、プリンタ１７０、印刷コントローラ１７５又はコンピュータ１１０のローカルにアクセス可能なディスクから検出される。ステップ３６０において、ターゲットであるファイルは処理され印刷される。そしてステップ３６５において、印刷ジョブキューは更新される。例えば、ターゲットであるファイルが問題なく印刷された場合、該ファイルに対応するキューエントリは印刷ジョブキューから削除され、該ファイルはローカルディスクから消去される。一方、ターゲットであるファイルが印刷できない場合、適切な修正動作が実行される。更新された印刷ジョブキューはステップ３７０においてディスクに保存され、アルゴリズムはステップ３１５へ戻り、その後のステップを繰り返す。
【００２６】
ステップを説明した従来の方法３００にはいくつか問題点がある。例えば、低コストのプリンタは記憶容量が小さいため、ジョブを記憶する能力が限られている。それに伴って、印刷ジョブキューのサイズも制限される。記憶容量の大きいハイエンドプリンタであっても、新たな印刷ジョブのスプーリングが困難又は不可能な期間に直面することがある。例えば、多くのジョブが短時間に提出されたり、提出されたジョブの組み合わせが大きなファイルをいくつか含んでいたりする場合、プリンタ１７０は関連するファイルを検索して保存する容量を有し得ない。また、印刷ジョブのパラメータが提出時から印刷時までの間に変化し、最初に提出（及び検索）されたジョブが既に使用できないこともある。そのため、従来のスキームでは、一以上の印刷ジョブの再提出や再検索が必要となることがある。
【００２７】
図４は開示の実施形態に係るＪＤＦ印刷ジョブを処理する方法４００を示すフローチャートである。いくつかの実施形態においては、方法４００は、プリンタ１７０、印刷コントローラ１７５及び／又はコンピュータ１１０上で実現される。いくつかの実施形態においては、ステップ４１０において該方法が開始される。ステップ４１５においてプリンタ１７０の印刷ジョブキューが調べられる。プリンタ１７０の印刷ジョブキューが空である場合（ステップ４１５；Ｙ）、ステップ４２０において、印刷スプーラはデータ（ファイル又はメッセージ）受信まで待機する。該データはネットワークソケットを用いて配信される。ステップ４２５において受信データがある場合、ステップ４３０において該受信データが構文解析される。例えば、ＪＤＦファイル２００又はＪＭＦメッセージがステップ４３０において構文解析され、該ファイル又はメッセージから情報が抽出される。
【００２８】
ＪＤＦファイル２００又はＪＭＦメッセージが印刷ジョブ要求のターゲットであるリモートファイルのロケーション情報（ＵＲＬなど）を含む場合、ステップ４３５においてキュー要求が印刷スプーラに提出される（ステップ４３５；Ｙ）。ステップ４３５においてキュー要求が印刷スプーラに提出されない場合（ステップ４３５；Ｎ）、ステップ４４５においてＪＤＦファイル２００又はＪＭＦメッセージは適切な処理を施され、アルゴリズムはステップ４１５に戻り、その後のステップを繰り返す。
【００２９】
一実施形態においては、ステップ４４０において（ステップ４３５で提出された）キュー要求が処理され、印刷ジョブ要求のターゲットであるリモートファイルのＵＲＬはキューエントリと関連付けられ、アルゴリズムはステップ４１５へ戻り、その後のステップを繰り返す。ステップ４１５においてプリンタ１７０の印刷ジョブキューが空でない場合（ステップ４１５；Ｎ）、ステップ４５５において、プリンタ１７０の印刷ジョブキュー内の次のキューエントリが処理される。処理は、前記次のキューエントリと関連付けられたロケーション情報を用いて、ターゲットであるリモートファイルを検索することによって行われる。一実施形態においては、ターゲットであるリモートファイルは、キューエントリに関連付けられたＵＲＬを用いて、該ＵＲＬによって示されたロケーションから検索される。その後ステップ４６０において、検索されたターゲットであるリモートファイルは処理され印刷される。そしてステップ４６５において、印刷ジョブキューは更新される。例えば、ターゲットであるファイルが問題なく検索され印刷された場合、該ファイルに対応するキューエントリは印刷ジョブキューから削除される。一方、ターゲットであるファイルが印刷できない場合、適切な修正動作が実行される。例えば、ソースロケーションが一時的にアクセス不可であるためにファイルの検索ができない場合、そのキューエントリは印刷ジョブキューの後方に回され、後で処理される。更新されたキューはステップ３７０においてディスクに保存され、アルゴリズムはステップ３１５へ戻り、その後のステップを繰り返す。
【００３０】
いくつかの実施形態においては、方法４００は方法３００と共に用いられる。例えば、ディスク記憶容量不足のため、もしくは、ディスク記憶容量が所定の閾値を下回るためにプリンタ１７０がファイルを検索できない場合に、方法４００が呼び出され、ＵＲＬをキューエントリとして追加し、ファイル検索を遅延させる。いくつかの実施形態においては、印刷ジョブに関連付けられたファイルは検索されローカルに保存されたか否か、または、検索は遅延されたか否かを判定するために、多様なパラメータを使用することができる。パラメータには、利用可能なネットワーク帯域幅、印刷ジョブに利用可能な記憶スペース、印刷ジョブが処理可能になる推定所要時間及び／又はその他多様なパラメータがある。例えば、ＪＤＦファイル２００が構文解析される際に利用可能なネットワーク帯域幅が低い場合、印刷ジョブは印刷ジョブキューに追加され、印刷対象であるファイルのＵＲＬがキューエントリと関連付けられる。いくつかの実施形態においては、ジョブは既に検索済みか否か、または、検索はキューエントリの処理時に実行されるのか否かを示すために、フラッグが用いられる。
【００３１】
いくつかの実施形態においては、印刷ジョブと関連付けられたＵＲＬによって特定されるファイルの検索は、印刷ジョブキューの先頭とキューエントリの相対的な位置関係に基づいて実行される。例えば、印刷ジョブ要求を受信すると、最初の５つのキューエントリに関連するファイルが検索されローカルに保存される。その一方で、６番目のキューエントリに関連するファイルの検索は遅延させられる。
【００３２】
いくつかの実施形態においては、アルゴリズムを説明した方法４００の工程を実現するためのプログラムを、コンピュータ可読媒体１５０又はコンピュータ可読メモリに記録することができる。コンピュータ可読媒体１５０又はコンピュータ可読メモリには、リードオンリーメモリ（ＲＯＭ）、プログラマブルリードオンリーメモリ（ＰＲＯＭ）、フラッシュメモリ、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、デジタルメモリカードがあり、デジタルメモリカードには、セキュアデジタル（ＳＤ）メモリカード、コンパクトフラッシュ（登録商標）、スマートメディア（登録商標）、メモリスティック（登録商標）があるが、これらに限られるものではない。いくつかの実施形態においては、一以上の種類のコンピュータ可読媒体がプリンタ１７０に接続される。また、ある実施形態においては、開示されたシステム、方法及び構成を実現するプログラムの一部は、ネットワーク１４０上で配信される。
【００３３】
本明細書及び開示された実施形態の実施に鑑みれば、本発明の他の実施形態は当業者にとって明らかである。本明細書及び開示された実施形態はひとえに例示的なものとしてみなされるべきであり、その真なる範囲及び趣旨は以下の特許請求の範囲によって示されることを意図している。
【図１】
0005933929.tif 000002
【図２】
0005933929.tif 000003
【図３】
0005933929.tif 000004
【図４】
0005933929.tif 000005