(57)【特許請求の範囲】
【請求項１】
所定の記憶領域に格納された各ファイルを処理するためのジョブが登録されたジョブリストを記憶する記憶手段と、
間欠的に、前記記憶領域に格納されている各ファイルについてのみ、当該ファイルを処理するジョブが前記ジョブリストに登録されるように当該ジョブリストを更新するジョブリスト更新手段と、
前記ジョブリストに登録されたジョブを順次実行するジョブ実行手段とを有し、
前記ジョブリスト更新手段は、
ジョブリストに登録されたジョブに対応するファイルのファイル識別子を所定の基準に従ってソートして登録したジョブインデックスと、前記記憶領域に格納されたファイルのファイル識別子を前記基準に従ってソートして登録したカレントインデックスとを作成するソート手段と、
ジョブインデックスに登録されたファイル識別子を、ジョブインデックスにカレントインデックスに最後に登録されているファイル識別子と一致するファイル識別子が存在する場合には先頭のファイル識別子から少なくとも前記一致するファイル識別子まで、ジョブインデックスに登録された順番に、順次着目ファイル識別子として選択し、着目ファイル識別子を選択した各回について、カレントインデックスに登録されたファイル識別子のうち、今回に先行する回において着目ファイル識別子と一致したファイル識別子が存在する場合には今回に先行する直近の回において着目ファイル識別子と一致したファイル識別子より後にカレントインデックスに登録されている各ファイル識別子を、他の場合にはカレントインデックスに登録されている各ファイル識別子を、少なくとも、今回の着目ファイル識別子と一致するファイル識別子がカレントインデックスの存在する場合には当該一致するファイル識別子まで、他の場合には最後のファイル識別子まで、カレントインデックスに登録された順番に順次検証ファイル識別子としながら、今回の着目ファイル識別子と各検証ファイル識別子とを比較し、当該着目ファイル識別子と検証ファイル識別子が一致した場合に、当該一致した検証ファイル識別子を除く他の今回検証ファイル識別子とした各ファイル識別子のファイルを処理するジョブをジョブリストに追加し、当該着目ファイル識別子と一致する検証ファイル識別子が存在しなかった場合に、当該着目ファイル識別子としたファイル識別子のファイルのジョブをジョブリストから削除するジョブ登録処理手段を有することを特徴とするジョブ処理装置。
【請求項２】
請求項１記載のジョブ処理装置であって、
前記ジョブ登録処理手段は、
ジョブインデックスに最後に登録されたファイル識別子を着目ファイル識別子として選択した回について、当該着目ファイル識別子と検証ファイル識別子が一致し、かつ、当該一致した検証ファイル識別子としたファイル識別子より後にカレントインデックスに登録されているファイル識別子が存在する場合には、当該存在するファイル識別子のファイルを処理するジョブをジョブリストに追加し、当該着目ファイル識別子と一致する検証ファイル識別子が存在しなかった場合に、当該着目ファイル識別子としたファイル識別子のファイルのジョブをジョブリストから削除し、今回検証ファイル識別子とした各ファイル識別子のファイルを処理するジョブをジョブリストに追加することを特徴とするジョブ処理装置。
【請求項３】
請求項１または２記載のジョブ処理装置であって、
前記ジョブ登録処理手段は、
カレントインデックスに最後に登録されたファイル識別子である検証ファイル識別子が着目ファイル識別子と一致し、当該着目ファイル識別子として選択されたファイル識別子より後にジョブインデックスに登録されたファイル識別子が存在する場合には、当該存在するファイル識別子のファイルを処理するジョブをジョブリストから削除し、当該着目ファイル識別子として選択されたファイル識別子より後にジョブインデックスに登録されたファイル識別子を着目ファイル識別子として選択しないことを特徴とするジョブ処理装置。
【請求項４】
請求項１、２または３記載のジョブ処理装置であって、
前記記憶領域はフォルダであって、前記ファイル識別子はファイル名であって、前記ジョブは前記ファイルの処理としてファイルを印刷処理を行うものであることを特徴とするジョブ処理装置。
【請求項５】
コンピュータシステムにおいてジョブリストにジョブを登録し、前記ジョブリストに登録されたジョブを実行するジョブ処理方法であって、
間欠的に、所定の条件を満たす各データについてのみ、当該データを処理するジョブがジョブリストに登録されるように当該ジョブリストを更新するジョブリスト更新ステップと、
前記ジョブリストに登録されたジョブを順次実行するジョブ実行ステップとを有し、
前記ジョブリスト更新ステップは、
ジョブリストに登録されたジョブに対応するデータのデータ識別子を所定の基準に従ってソートして登録したジョブインデックスと、前記記憶領域に格納されたデータのデータ識別子を前記基準に従ってソートして登録したカレントインデックスとを作成するステップと、
ジョブインデックスに登録された各データ識別子を、ジョブインデックスにカレントインデックスに最後に登録されているデータ識別子と一致するデータ識別子が存在する場合には先頭のデータ識別子から少なくとも前記一致するデータ識別子まで、ジョブインデックスに登録された順番に、順次着目データ識別子として選択し、着目データ識別子を選択した各回について、カレントインデックスに登録されたデータ識別子のうち、今回に先行する回において着目データ識別子と一致したデータ識別子が存在する場合には今回に先行する直近の回において着目データ識別子と一致したデータ識別子より後にカレントインデックスに登録されているデータ識別子を、他の場合にはカレントインデックスに登録されている各データ識別子を、少なくとも、今回の着目データ識別子と一致するデータ識別子がカレントインデックスの存在する場合には当該一致するデータ識別子まで、他の場合には最後のデータ識別子まで、カレントインデックスに登録された順番に順次検証データ識別子としながら、今回の着目データ識別子と検証データ識別子とを比較し、当該着目データ識別子と検証データ識別子が一致した場合に、当該一致した検証データ識別子を除く他の今回検証データ識別子とした各データ識別子のデータを処理するジョブをジョブリストに追加し、当該着目データ識別子と一致する検証データ識別子が存在しなかった場合に、当該着目データ識別子としたデータ識別子のデータのジョブをジョブリストから削除するステップとを有することを特徴とするジョブ処理方法。
【請求項６】
コンピュータによって読み取られ実行されるコンピュータプログラムであって、
前記コンピュータプログラムは、前記コンピュータに
間欠的に、前記コンピュータ上の所定の条件を満たす各データについてのみ、当該データを処理するジョブがジョブリストに登録されるように当該ジョブリストを更新するジョブリスト更新ステップと、
前記ジョブリストに登録されたジョブを順次実行するジョブ実行ステップとを実行させ、
前記ジョブリスト更新ステップは、
ジョブリストに登録されたジョブに対応するデータのデータ識別子を所定の基準に従ってソートして登録したジョブインデックスと、前記記憶領域に格納されたデータのデータ識別子を前記基準に従ってソートして登録したカレントインデックスとを作成するステップと、
ジョブインデックスに登録された各データ識別子を、ジョブインデックスにカレントインデックスに最後に登録されているデータ識別子と一致するデータ識別子が存在する場合には先頭のデータ識別子から少なくとも前記一致するデータ識別子まで、ジョブインデックスに登録された順番に、順次着目データ識別子として選択し、着目データ識別子を選択した各回について、カレントインデックスに登録されたデータ識別子のうち、今回に先行する回において着目データ識別子と一致したデータ識別子が存在する場合には今回に先行する直近の回において着目データ識別子と一致したデータ識別子より後にカレントインデックスに登録されているデータ識別子を、他の場合にはカレントインデックスに登録されている各データ識別子を、少なくとも、今回の着目データ識別子と一致するデータ識別子がカレントインデックスの存在する場合には当該一致するデータ識別子まで、他の場合には最後のデータ識別子まで、カレントインデックスに登録された順番に順次検証データ識別子としながら、今回の着目データ識別子と各検証データ識別子とを比較し、当該着目データ識別子と検証データ識別子が一致した場合に、当該一致した検証データ識別子を除く他の今回検証データ識別子とした各データ識別子のデータを処理するジョブをジョブリストに追加し、当該着目データ識別子と一致する検証データ識別子が存在しなかった場合に、当該着目データ識別子としたデータ識別子のデータのジョブをジョブリストから削除するステップとを有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステム等においてジョブを処理する技術に関し、特に、ホットフォルダに格納されたドキュメントファイルの印刷をジョブとして登録し、これを処理する印刷制御システムに関するものである。
【０００２】
【従来の技術】
コンピュータシステム等においてジョブを処理する技術としては、たとえば、特開２０００−１１８０９５号公報に記載された、ホットフォルダに格納されたファイルの印刷をジョブとして登録し、これを処理する技術が知られている。
【０００３】
この技術は、定期的にホットフォルダへのドキュメントファイルの格納を監視し、新たにホットフォルダに格納されたドキュメントファイルが検出されたならば、検出されたドキュメントファイルの印刷ジョブをジョブリストに登録すると共に、ジョブリストに登録された印刷ジョブを逐次実行することにより、ホットフォルダに格納された各ドキュメントファイルの印刷を実現するものである。
【０００４】
このような技術によれば、ユーザは、ドキュメントファイルを印刷したいときに、そのドキュメントファイルをホットフォルダへ移動／格納するだけで、その印刷を行うことができるようになる。
【０００５】
【発明が解決しようとする課題】
前記従来の技術は、定期的に、ホットフォルダに新規に格納されたドキュメントファイルの印刷ジョブを登録するものである。したがって、印刷ジョブの登録のためには、ホットフォルダに格納されたドキュメントファイルのうち、どれが新規にホットフォルダに格納されたドキュメントファイルであり、どれが既に印刷ジョブを登録したドキュメントファイルであるのかの識別を行う必要がある。また、印刷ジョブの実行前にホットフォルダから消去／移動されたドキュメントファイルについては、そのドキュメントファイルについての印刷ジョブの登録をキャンセルする必要がある。
【０００６】
そして、このために、ホットフォルダに格納されたドキュメントファイルの数が増大するに従い、定期的に行われる印刷ジョブ登録の処理の処理量が増大し、システムリソースを多く消費してしまうという問題が生じる。
そこで、本発明は、ジョブの対象となるデータの存在に基づいて行うジョブ登録の処理を効率化することを課題とする。
【０００７】
【課題を解決するための手段】
前記課題達成のために、本発明は、前記課題達成のために、たとえば、ジョブリストにジョブを登録し、前記ジョブリストに登録されたジョブを実行するジョブ処理方法であって、
間欠的に、所定の条件を満たす各データについてのみ、当該データを処理するジョブがジョブリストに登録されるように当該ジョブリストを更新するジョブリスト更新ステップと、
前記ジョブリストに登録されたジョブを順次実行するジョブ実行ステップとを有し、
前記ジョブリスト更新ステップは、
ジョブリストに登録されたジョブに対応するデータのデータ識別子を所定の基準に従ってソートして登録したジョブインデックスと、前記記憶領域に格納されたデータのデータ識別子を前記基準に従ってソートして登録したカレントインデックスとを作成するステップと、
ジョブインデックスに登録された各データ識別子を、ジョブインデックスにカレントインデックスに最後に登録されているデータ識別子と一致するデータ識別子が存在する場合には先頭のデータ識別子から少なくとも前記一致するデータ識別子まで、ジョブインデックスに登録された順番に、順次着目データ識別子として選択し、着目データ識別子を選択した各回について、カレントインデックスに登録されたデータ識別子のうち、今回に先行する回において着目データ識別子と一致したデータ識別子が存在する場合には今回に先行する直近の回において着目データ識別子と一致したデータ識別子より後にカレントインデックスに登録されているデータ識別子を、他の場合にはカレントインデックスに登録されている各データ識別子を、少なくとも、今回の着目データ識別子と一致するデータ識別子がカレントインデックスの存在する場合には当該一致するデータ識別子まで、他の場合には最後のデータ識別子まで、カレントインデックスに登録された順番に順次検証データ識別子としながら、今回の着目データ識別子と検証データ識別子とを比較し、当該着目データ識別子と検証データ識別子が一致した場合に、当該一致した検証データ識別子を除く他の今回検証データ識別子とした各データ識別子のデータを処理するジョブをジョブリストに追加し、当該着目データ識別子と一致する検証データ識別子が存在しなかった場合に、当該着目データ識別子としたデータ識別子のデータのジョブをジョブリストから削除するステップとを有することを特徴とするジョブ処理方法を提供する。
【０００８】
このようなジョブ処理方法によれば、以下の実施形態において、その一例を詳細に説明するように、ジョブに対応するファイルが前記記憶領域から削除されていないかどうかを調べるために、ジョブリストに登録されたジョブに対応するファイルのファイル識別子のそれぞれについて、前記記憶領域に格納されたファイルのファイル識別子のそれぞれと比較したり、新たにジョブを生成すべきファイルが前記記憶領域に追加されていないかどうかを調べるために、前記記憶領域に格納されたファイルのファイル識別子のそれぞれについて、ジョブリストに登録された各ジョブに対応するファイルのファイル識別子のそれぞれと比較する場合に比べ、より少ない比較回数で、前記記憶領域から削除されたファイルに対応するジョブのファイル識別子や前記記憶領域に新たに追加されたファイルのファイル識別子を算出することができるようになる。
【０００９】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図１に、本実施形態に係るコンピュータシステムの構成を示す。
図示するように本コンピュータシステムは、コンピュータ１とプリンタ２が接続されたシステムであり、コンピュータ１の上ではプリンタ２の印刷動作を制御するプリンタドライバ１１１が組み込まれたオペレーティングシステム１１と、複数のアプリケーション１２〜１４が稼働している。
【００１０】
また、これらアプリケーションのうち、アプリケーション１２は、ドキュメントファイルの印刷処理を行う印刷処理サーバであり、ジョブ実行制御部１２１とジョブ監視部１２２とを有する。また、他のアプリケーションはたとえば、ドキュメントファイルを編集、生成するアプリケーションなどである。
【００１１】
ここで、コンピュータ１は、ハードウエア的には、ＣＰＵや、主記憶や、ハードディスク装置等の外部記憶装置や、キーボードやポインティングデバイスなどの入力装置や、表示装置などを備えた、一般的な構成を有するコンピュータ１であり。この場合、コンピュータ１の以上の各部は、ＣＰＵが主記憶にロードされたプログラムを実行することによりコンピュータに具現化されるとして実現される。また、以上のコンピュータ１の機能は、ネットワーク上に分散配置されたものであってもかまわない。
【００１２】
以下、このようなコンピュータシステムにおける印刷処理サーバ１２の動作について説明する。
図２に示すように、印刷処理サーバ１２は、オペレーティングシステム１１のファイルシステムが管理するディレクトリの一種であるホットフォルダに格納されたドキュメントファイルを印刷を行うものである。
この印刷動作は、大きく分けて、ジョブ監視部１２２によって定期的に行われる、ホットフォルダのドキュメントファイル格納状態に応じたジョブリストの登録ジョブの更新と、ジョブ実行制御部１２１によるジョブリストの登録ジョブの逐次実行とよりなる。
【００１３】
ここで、ジョブ監視部１２２によってジョブリストに登録される各ジョブは、ホットフォルダ内の一つのドキュメントファイルの印刷を要求するものであり、ジョブ実行制御部１２１によるジョブリストの登録ジョブの実行とは、そのジョブが要求するドキュメントファイルのプリンタ２による印刷を、オペレーティングシステム１１とプリンタドライバ１１１を介して制御するものである。
【００１４】
さて、ジョブリストには、各ジョブの情報として、当該ジョブが要求するドキュメントファイルのファイル名（Ｆｉｌｅｎａｍｅ）と当該ジョブがジョブリストに登録された日時（Ｄａｔｅ）との組が登録される。一方、ジョブ監視部１２２は、このようなジョブリストの登録ジョブの更新を、登録ファイルインデックスとカレントファイルインデックスと呼ぶ、二つの変数テーブルを用いながら行う。そして、登録ファイルインデックスは、ファイル名（Ｆｉｌｅｎａｍｅ）と削除フラグ（ｄｅｌｅｔｅ）の組が記述されるエントリを複数もつことができ、カレントファイルインデックスはファイル名（Ｆｉｌｅｎａｍｅ）と新規フラグ（ｎｅｗ）の組が記述されるエントリを複数もつことができる。
【００１５】
以下、このジョブ監視部１２２の動作について説明する。
図３に、ジョブ監視部１２２の行うジョブリスト更新処理の手順を示す。
図示するように、ジョブ監視部１２２は、起動されると、まず、登録ファイルインデックスを生成する（ステップ３０２）。すなわち、ジョブリストに格納されているファイル名を、ファイル名をソートキーとしてソートし、各ファイル名を、ソート後の順番に従って、登録ファイルインデックスに、そのファイル名を記述するエントリを作成して登録する。ファイル名のソートは、たとえば、ファイル名を、アルファベット順や文字コード順に並べるなどの手法などにより行う。ただし、このようなソートキーは、ある一定のルールにより一意にファイル名に順番づけを行えるものであれば任意のキーによって良い。また、ここでは、登録ファイルインデックスに登録した各ファイル名のエントリの削除フラグは、全てオフとする。
【００１６】
次に、ジョブ監視部１２２は、カレントファイルインデックスを作成する（ステップ３０４）。すなわち、ホットフォルダに格納されているファイル名をオペレーティングシステム１１を介して入手し、入手したファイル名を、ファイル名をソートキーとしてソートし、各ファイル名を、ソート後の順番に従って、カレントファイルファイルインデックスに、そのファイル名を記述するエントリを作成して登録する。ファイル名のソートは、前記登録ファイルインデックスと同じルールにより行う。また、ここでは、カレントファイルインデックスに登録した各ファイル名のエントリの新規フラグは、全てオフとする。
【００１７】
次に、登録ファイルインデックスに登録されたファイル名の数をＭＡＸｊ、カレントファイルインデックスに登録されたファイル名の数をＭＡＸｃとする（ステップ３０６）。そして、着目登録ファイル番号ｊを１に、比較ファイル番号ｃを１に、比較回数ｔを０に初期化する（ステップ３０８）。
【００１８】
そして、登録ファイルインデックスのｊ番目のファイル名とカレントファイルインデックスのｃ番目のファイル名の比較を（ステップ３１０）、両者が一致するか（ステップ３１２）、両者が一致しないままカレントファイルインデックスの最後（ＭＡＸｃ番目）のファイル名との比較が終了するまで（ステップ３３２）、比較ファイル番号ｃと、比較回数ｔを１増加しながら（ステップ３４０）行う。
【００１９】
そして、もし、両者が一致しないまま、カレントファイルインデックスの最後（ＭＡＸｃ番目）のファイル名との比較が終了したならば（ステップ３３２）、登録ファイルインデックスのｊ番目のファイル名のエントリの削除フラグをオンに設定する（ステップ３３４）。そして、着目登録ファイル番号ｊが、登録ファイルインデックスのファイル名数ＭＡＸｊと一致するかどうかを調べ（ステップ３３６）、そうでなければ、着目登録ファイル番号ｊを１増加し、比較ファイル番号ｃをＣ−ｔとし、ｔを０とし（ステップ３４２）、ステップ３１０に戻って、登録ファイルインデックスに次に登録されたファイル名の処理を行う。
【００２０】
一方、着目登録ファイル番号ｊが、登録ファイルインデックスのファイル名数ＭＡＸｊと一致する場合には（ステップ３３６）、カレントファイルインデックスのＣ−ｔ番目からＭＡＸｃ番目までのファイル名のエントリの新規フラグをオンに設定し（ステップ３３８）、ステップ３２４に進む。
【００２１】
さて、ステップ３１２において、登録ファイルインデックスのｊ番目のファイル名とカレントファイルインデックスのｃ番目のファイル名が一致した場合には、次のように処理を行う。
すなわち、比較回数ｔが０かどうかを調べ（ステップ３１４）、０でなければ、カレントファイルインデックスのｃ−ｔ番目からｃ−１番目までのファイル名のエントリの新規フラグをオンに設定し（ステップ３１６）、ステップ３１８に進む。一方、比較回数ｔが０であれば、そのままステップ３１８に進む。
【００２２】
ステップ３１８では、比較ファイル番号ｃがＭＡＸｃと一致するかどうかを調べ、一致すれば、登録ファイルインデックスのｊ＋１番目からＭＡＸｊ番目のファイル名のエントリの削除フラグをオンに設定し（ステップ３４４）、ステップ３２４に進む。一方、比較ファイル番号ｃがＭＡＸｃと一致しない場合には（ステップ３１８）、さらに着目登録ファイル番号ｊがＭＡＸｊと一致するかどうかを調べ（ステップ３２０）、一致する場合には、カレントファイルインデックスのｃ＋１番目からＭＡＸｃ番目のファイル名のエントリの新規フラグをオンに設定し（ステップ３２２）、ステップ３２４に進む。そして、ステップ３２０で、着目登録ファイル番号ｊがＭＡＸｊと一致しなかった場合には、着目登録ファイル番号ｊと比較ファイル番号ｃを１増加し、ｔを０とし（ステップ３４６）、ステップ３１０に戻って、登録ファイルインデックスに次に登録されたファイル名の処理を行う。
【００２３】
さて、ステップ３２４では、登録ファイルインデックスの削除フラグがオンに設定されているエントリのファイル名と一致するファイル名のエントリをジョブリストから削除する。そして、ステップ３２６において、カレントファイルインデックスの新規フラグがオンに設定されているエントリのファイル名を、順次、ジョブリストにエントリを作成して追加し、各エントリの日時に現在日時を設定する。
【００２４】
そして、タイマを設定し（ステップ３２８）、タイマがタイムアウトしたならば（ステップ３３０）、以上の処理を再度行う。すなわち、ステップ３０２〜ステップ３２６の処理は定期的に行われる。
ここで、以上の処理によって、どのようにホットフォルダのドキュメントファイルの格納状態に応じてジョブリストの内容が更新されていくかを、その例によって説明する。
いま、図４ａに示すように、ステップ３０２で、その時点のジョブリストの内容に基づき登録ファイルインデックスにＥ、Ｆ、Ｊのファイル名のエントリが当該順番で作成され、ステップ３０４で、その時点のホットフォルダに格納されたドキュメントファイルに基づき、カレントファイルインデックスにＡ〜Ｅ、Ｇ〜Ｋのファイル名のエントリが当該順番で作成された場合を例にとる。
【００２５】
すなわち、この例は、前回のジョブリストの更新後に、ドキュメントファイルＦがホットフォルダから削除され、かつ、前回のジョブリストの更新後に、Ａ〜Ｄ、Ｇ〜Ｉ、Ｋのドキュメントファイルがホットフォルダに追加された場合についてのものである。
【００２６】
この場合、まず、登録ファイルインデックスの最初のファイル名Ｅがｊ＝１のファイル名として選択され、ステップ３１０で、カレントファイルインデックスの先頭（ｃ＝１）から登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。
【００２７】
そして、ｃ＝５、ｔ＝４となった時点で、登録ファイルインデックスの最初のファイル名Ｅと、カレントファイルインデックスの５番目のファイル名Ｅが一致する（ステップ３１２）ので、ステップ３１６で、カレントファイルインデックスのｃ−ｔ＝５−４＝１番目のファイル名Ａのエントリからｃ−１＝５−１＝４番目のファイル名Ｄまでのエントリの新規フラグがオンに設定される。
【００２８】
すなわち、以上の処理では、カレントファイルインデックスに登録されたファイル名のうち、登録ファイルインデックスに登録された最初のファイル名と一致するファイル名より、前のファイル名は全て新規にホットフォルダに格納されたドキュメントフォルダのものであるので、その新規フラグをオンに設定する。
【００２９】
なお、比較回数ｔは、登録ファイルインデックスのｊ番目のファイル名につき行われた、ファイル名が一致しなかった比較の回数を表すようになっている。比較ファイル番号ｃは、登録ファイルインデックスのｊ番目のファイル名と比較するファイル名のカレントファイルインデックス中の順番を表すようになっている。
【００３０】
次に、ステップ３４６でｊが１増加されて２、ｃが１増加されて６、ｔ＝０とされて、登録ファイルインデックスの２番目のファイル名Ｆがｊ＝２のファイル名として選択され、カレントファイルインデックスのｃ（＝６）番目のファイル名Ｇから登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。なお、ここでｃとｊを１増加するのは、増加前のｃとｊについて、登録ファイルインデックスの先頭からｊ番目のファイル名まで対応するドキュメントファイルがホットフォルダから削除されていないかどうかが判定済みであり、カレントファイルインデックスの先頭からｃ番目のファイル名まで対応するドキュメントファイルがホットフォルダに新規に追加されたものである判定済みであり、以降の処理では、これら判定済みのファイル名は処理の対象から除外するためである。
【００３１】
さて、ｊ＝２では、登録ファイルインデックスに登録されたファイル名Ｆのドキュメンファイルが既にホットフォルダから削除されているので、ステップ３４６の比較が一致することはなく、カレントファイルインデックスのＭＡＸｃ（＝１０）番目のファイル名Ｋとの比較が終了する。この時点で、ファイル名が一致しなかった比較回数を表す比較回数はｔ＝４となっている。すると、ステップ３３２の判定に従って、ステップ３３４へ処理が分岐され、登録ファイルインデックスのｊ（＝２）番目のファイル名Ｆのエントリの削除フラグがオンに設定される。
【００３２】
すなわち、登録ファイルインデックスに登録されたファイル名のうち、カレントファイルインデックスに登録された最後のファイル名まで比較しても一致するファイル名が存在しないファイル名は、ホットフォルダから削除された対応するドキュメントファイルのものであるので、削除フラグをオンに設定する。
【００３３】
そして、ステップ３４２で、ｊが１増加されて３、ｃがｃ−ｔ＝１０−４＝５とされて６、ｔ＝０とされて、登録ファイルインデックスの３番目のファイル名Ｊがｊ＝２のファイル名として選択され、カレントファイルインデックスのｃ（＝６）番目のファイル名Ｇから登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。
【００３４】
ここで、先程と異なり、ｃをｃ−ｔとするのは、更新前のｊとｃについて、登録ファイルインデックスのｊ番目のファイル名と一致するファイル名がカレントファイルインデックスに登録されていなかったために、登録ファイルインデックスのｊ番目のファイル名との比較を開始したｃ−ｔ番目のファイル名からｃ番目のファイル名まで、それが新規ホットフォルダに追加されたドキュメントファイルであるかどうか判定できなかったためである。
【００３５】
さて、登録ファイルインデックスの３番目のファイル名Ｊは、ｃ＝９、ｔ＝３となった時点で、カレントファイルインデックスに９番目に登録されたファイル名Ｊと一致する。そこで、ステップ３１６で、カレントファイルインデックスのｃ−ｔ＝９−３＝６番目のファイル名Ｇのエントリからｃ−１＝９−１＝８番目のファイル名Ｉまでのエントリの新規フラグがオンに設定される。
【００３６】
すなわち、カレントファイルインデックスに登録されたファイル名のうち、カレントファイルインデックスのファイル名のうち、登録ファイルインデックスに登録されたｊ番目のファイル名との比較を開始したファイル名から、当該ｊ番目のファイル名と一致するファイル名の前のファイル名までの間のファイル名は全て新規にホットフォルダに格納されたドキュメントフォルダのものであるので、その新規フラグをオンに設定する。
【００３７】
次に、この時、ｊ＝ＭＡＸｊ＝３となるので、ステップ３２０により、処理はステップ３２２に分岐され、カレントファイルインデックスのｃ＋１＝１０番目のファイル名Ｋのエントリ〜ＭＡＸｃ＝１０番目のファイル名Ｋのエントリまでのエントリの新規フラグがオンに設定され、ステップ３２４へ処理が進む。すなわち、カレントファイルインデックスのファイル名のうち、登録ファイルの最後のファイル名と一致したファイル名より後のファイル名は、全て新規にホットフォルダに格納されたドキュメントフォルダのものであるので、その新規フラグをオンに設定する。
【００３８】
さて、この時点では、以上の処理により登録ファイルインデックスのファイル名Ｆのエントリの削除フラグがオンに設定され、カレントファイルインデックスのファイル名Ａ〜Ｄ、Ｇ〜Ｉ、Ｋのエントリの新規フラグがオンに設定されている。
【００３９】
したがって、ステップ３２４ではジョブリストのファイル名Ｆのジョブが削除され、ステップ３２６ではファイル名Ａ〜Ｄ、Ｇ〜Ｉ、Ｋのジョブがジョブリストに追加されることになる。
次に、図４ｂに、他の処理例を示す。
この例では、ステップ３０２で、その時点のジョブリストの内容に基づき登録ファイルインデックスにＥ、Ｈ、Ｊ、Ｌのファイル名のエントリが当該順番で作成され、ステップ３０４で、その時点のホットフォルダに格納されたドキュメントファイルに基づき、カレントファイルインデックスにＡ〜Ｅ、Ｇ、Ｈのファイル名のエントリが当該順番で作成された場合を例にとる。
【００４０】
すなわち、この例は、前回のジョブリストの更新後に、ドキュメントファイルＪとＬがホットフォルダから削除され、かつ、前回のジョブリストの更新後に、Ａ〜Ｄ、Ｇのドキュメントファイルがホットフォルダに追加された場合についてのものである。
【００４１】
この場合、図４ａの例の場合と同様に、まず、登録ファイルインデックスの最初のファイル名Ｅがｊ＝１のファイル名として選択され、ステップ３１０で、カレントファイルインデックスの先頭（ｃ＝１）から登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。
【００４２】
そして、ｃ＝５、ｔ＝４となった時点で、登録ファイルインデックスの最初のファイル名Ｅと、カレントファイルインデックスの５番目のファイル名Ｅが一致する（ステップ３１２）ので、ステップ３１６で、カレントファイルインデックスのｃ−ｔ＝５−４＝１番目のファイル名Ａのエントリからｃ−１＝５−１＝４番目のファイル名Ｄまでのエントリの新規フラグがオンに設定される。
【００４３】
次に、ステップ３４６でｊが１増加されて２、ｃが１増加されて６、ｔ＝０とされて、登録ファイルインデックスの２番目のファイル名Ｈがｊ＝２のファイル名として選択され、カレントファイルインデックスのｃ（＝６）番目のファイル名Ｇから登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。
【００４４】
そして、ｃ＝７、ｔ＝１となった時点で、カレントファイルインデックスに７番目に登録されたファイル名Ｈと一致する。そこで、ステップ３１６で、カレントファイルインデックスのｃ−ｔ＝７−１＝６番目のファイル名Ｇのエントリからｃ−１＝７−１＝６番目のファイル名Ｇまでのエントリの新規フラグがオンに設定される。
【００４５】
次に、この時、ｃ＝ＭＡＸｃ＝７となるので、ステップ３１８により、処理はステップ３４４に分岐され、登録ファイルインデックスのｊ＋１＝３番目のファイル名Ｊのエントリ〜ＭＡＸｊ＝４番目のファイル名Ｌエントリまでのエントリの削除フラグがオンに設定され、ステップ３２４へ処理が進む。
【００４６】
すなわち、登録ファイルインデックスに登録されたファイル名のうち、カレントファイルインデックスの最後のファイル名と一致するファイル名より後に登録されたファイル名は、全てホットフォルダから削除されたドキュメントファイルのものであるので、削除フラグをオンに設定する。
【００４７】
さて、この時点では、以上の処理により登録ファイルインデックスのファイル名Ｊ、Ｌのエントリの削除フラグがオンに設定され、カレントファイルインデックスのファイル名Ａ〜Ｄ、Ｇのエントリの新規フラグがオンに設定されている。したがって、ステップ３２４ではジョブリストのファイル名Ｊ、Ｌのジョブが削除され、ステップ３２６ではファイル名Ａ〜Ｄ、Ｇのジョブがジョブリストに追加されることになる。
次に、図４ｃに他の処理例を示す。
すなわち、この例は、前回のジョブリストの更新後に、ドキュメントファイルＨがホットフォルダから削除され、かつ、前回のジョブリストの更新後に、Ａ〜Ｄ、Ｇ、Ｊ、Ｋのドキュメントファイルがホットフォルダに追加された場合についてのものである。
【００４８】
この場合、図４ａの例の場合と同様に、まず、登録ファイルインデックスの最初のファイル名Ｅがｊ＝１のファイル名として選択され、ステップ３１０で、カレントファイルインデックスの先頭（ｃ＝１）から登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。
【００４９】
そして、ｃ＝５、ｔ＝４となった時点で、登録ファイルインデックスの最初のファイル名Ｅと、カレントファイルインデックスの５番目のファイル名Ｅが一致する（ステップ３１２）ので、ステップ３１６で、カレントファイルインデックスのｃ−ｔ＝５−４＝１番目のファイル名Ａのエントリからｃ−１＝５−１＝４番目のファイル名Ｄまでのエントリの新規フラグがオンに設定される。
【００５０】
そして、次に、ステップ３４６でｊが１増加されて２、ｃが１増加されて６、ｔ＝０とされて、登録ファイルインデックスの２番目のファイル名Ｈがｊ＝２のファイル名として選択され、カレントファイルインデックスのｃ（＝６）番目のファイル名Ｇから登録順に（ステップ３４０）、カレントファイルインデックスに登録されたファイル名と比較されていく。
【００５１】
今回は、登録ファイルインデックスに登録されたファイル名Ｈのドキュメンファイルが既にホットフォルダから削除されているので、ステップ３４６の比較が一致することはなく、カレントファイルインデックスのＭＡＸｃ（＝８）番目のファイル名Ｋとの比較が終了する。この時点で、ファイル名が一致しなかった比較回数を表す比較回数はｔ＝２となっている。すると、ステップ３３２の判定に従って、ステップ３３４へ処理が分岐され、登録ファイルインデックスのｊ（＝２）番目のファイル名Ｈのエントリの削除フラグがオンに設定される。また、この場合は、ｊ＝ＭＡＸｊ＝２となっているので、ステップ３３６の判定に従ってステップ３３８に処理が分岐され、カレントファイルのｃ−ｔ＝８−２＝６番目のファイル名ＧのエントリからＭＡＸｃ＝８番目のファイル名Ｋのエントリまでの各エントリの新規フラグがオンに設定され、ステップ３２４に処理が進む。
【００５２】
すなわち、登録ファイルインデックスに登録された最後のファイル名が、カレントファイルインデックスの最後のファイル名と一致しなかった場合には、カレントファイルインデックスのファイル名のうち、登録ファイルインデックスに登録された最後のファイル名との比較を開始したファイル名より以降のファイル名は、全てホットフォルダに新規に格納されたドキュメントファイルのものであるので、新規フラグを設定する。
【００５３】
さて、この時点では、以上の処理により登録ファイルインデックスのファイル名Ｈのエントリの削除フラグがオンに設定され、カレントファイルインデックスのファイル名Ａ〜Ｄ、Ｇ〜Ｋのエントリの新規フラグがオンに設定されている。したがって、ステップ３２４ではジョブリストのファイル名Ｈのジョブが削除され、ステップ３２６ではファイル名Ａ〜Ｄ、Ｇ〜Ｋのジョブがジョブリストに追加されることになる。
以上、ジョブ監視部１２２の動作について説明した。
次に、ジョブ実行制御部１２１の動作について説明する。
ジョブ実行制御部１２１は、処理を開始すると、図５に示すジョブ実行処理を行う。
このジョブ実行処理では、図示するようにジョブリストにジョブが登録されているかどうかを監視し（ステップ５０２）、ジョブが登録されていれば、ジョブリストの先頭のジョブを取り出し、取り出したジョブのエントリに記述されているドキュメントファイルをホットフォルダから読み出して（ステップ５０４）、オペレーティングシステム１１／プリンタドライバ１１１を介して、ドキュメントフォルダのプリンタ２における印刷を制御する（ステップ５０６）。
【００５４】
そして、印刷が正常に終了したならば（ステップ５０８）、印刷を終了したジョブをジョブリストから削除し（ステップ５１０）、オペレーティングシステム１１に要請し、印刷したドキュメントファイルを、ホットフォルダから予め用意された処理済みフォルダに移動する（ステップ５１２）。
【００５５】
以上、本発明の実施形態について説明した。
ところで、以上では、ドキュメントファイルをジョブで処理する対象として、ジョブをドキュメントファイルを印刷するジョブとして説明したが、以上のジョブリストの更新の処理は、任意のキーによりソートすることができるデータを対象として、任意の処理を行うジョブについて同様に適用可能である。たとえば、メールフォルダに格納されたメールデータを対象として、メール送信を行うジョブや、その他のジョブのジョブリストの更新に同様に適用可能である。また、ジョブの処理の対象とするデータは、必ずしも一つのフォルダに格納されたものとする必要はなく、任意の条件で選定されるデータをジョブの処理の対象とするようにして良い。
【００５６】
【発明の効果】
以上のように、本発明によれば、ジョブの対象となるデータの存在に基づいて行うジョブ登録の処理を効率化することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るコンピュータシステムの構成を示すブロック図である。
【図２】本発明の実施形態に係る印刷処理サーバ１２とホットフォルダの関係を示す図である。
【図３】本発明の実施形態に係るジョブリスト更新処理の手順を示すフローチャートである。
【図４】本発明の実施形態に係るジョブリスト更新処理の具体例を示す図である。
【図５】本発明の実施形態に係るジョブ実行処理の手順を示すフローチャートである。
【符号の説明】
１：コンピュータ、２：プリンタ、１１：オペレーティングシステム、１２：印刷処理サーバ、１３〜１４：アプリケーション、１１１：プリンタドライバ、１２１：ジョブ実行制御部、１２２：ジョブ監視部。
【図１】
0004065715.tif 000002
【図２】
0004065715.tif 000003
【図３】
0004065715.tif 000004
【図４】
0004065715.tif 000005
【図５】
0004065715.tif 000006