(57)【特許請求の範囲】
【請求項１】
第１の処理手段が記憶手段の所定のディレクトリに出力したファイルの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出する第１のステップと、
この第１のステップで新規に作成されたファイル或いは更新されたファイルを検出したとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機するステップと、
この待機ステップにより待機した後、前記検出したファイルのデータ処理をさせるために第２の処理手段を起動するステップとを具備することを特徴とするファイル監視方法。
【請求項２】
前記第１の期間が前記第１の処理手段におけるファイルの最長出力所要時間であることを特徴とする請求項１記載のファイル監視方法。
【請求項３】
前記監視周期は前記ファイルの最長出力所要時間の２倍よりも大きいことを特徴とする請求項２記載のファイル監視方法。
【請求項４】
第１の処理手段が少なくともファイル出力の最短間隔をあけて記憶手段の所定のディレクトリに出力したファイルの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出する第１のステップと、
この第１のステップで新規に作成されたファイル或いは更新されたファイルが検出されたとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機するステップと、
この待機ステップにより待機した後、前記検出したファイルのデータ処理をさせるために第２の処理手段を起動することを特徴とするファイル監視方法。
【請求項５】
前記ファイル出力の最短間隔は前記監視周期よりも大きく、かつ前記第１の期間が第１の処理手段におけるファイルの最長出力所要時間であることを特徴とする請求項１記載のファイル監視方法。
【請求項６】
前記監視周期は前記ファイルの最長出力所要時間の２倍よりも大きいことを特徴とする請求項５記載のファイル監視方法。
【請求項７】
第１の処理手段が記憶手段の所定のディレクトリに出力したファイルの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出する第１の機能と、
この第１の機能で新規に作成されたファイル或いは更新されたファイルを検出したとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機する第２の機能と、
この第２の機能により待機した後、前記検出したファイルのデータ処理をさせるために第２の処理手段を起動する第３の機能とを具備することを特徴とするコンピュータで利用されるファイル監視プログラム。
【請求項８】
前記第１の期間が前記第１の処理手段におけるファイルの最長出力所要時間であることを特徴とする請求項７記載のファイル監視プログラム。
【請求項９】
前記監視周期は前記ファイルの最長出力所要時間の２倍よりも大きいことを特徴とする請求項８記載のファイル監視プログラム。
【請求項１０】
第１の処理手段が少なくともファイル出力の最短間隔をあけて記憶手段の所定のディレクトリに出力したファイルの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出する第１の機能と、
この第１の機能で新規に作成されたファイル或いは更新されたファイルが検出されたとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機する第２の機能と、
この第２の機能により待機した後、前記検出したファイルのデータ処理をさせるために第２の処理手段を起動する第３の機能とを具備することを特徴とするコンピュータで利用されるファイル監視プログラム。
【請求項１１】
前記ファイル出力の最短間隔は前記監視周期よりも大きく、かつ前記第１の期間が第１の処理手段におけるファイルの最長出力所要時間であることを特徴とする請求項１０記載のファイル監視プログラム。
【請求項１２】
前記監視周期は前記ファイルの最長出力所要時間の２倍よりも大きいことを特徴とする請求項１１記載のファイル監視プログラム。
【請求項１３】
記憶手段の所定のディレクトリにファイルを出力する第１の処理手段と、
この第１の処理手段が出力したファイルを処理する第２の処理手段と、
前記ディレクトリの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出するファイル検出手段と、
このファイル検出手段が新規に作成されたファイル或いは更新されたファイルを検出したとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機する待機手段と、
この待機手段により待機した後、前記検出したファイルのデータ処理をさせるために前記第２の処理手段を起動させる起動手段とを具備することを特徴とするコンピュータシステム。
【請求項１４】
前記第１の期間が前記第１の処理手段におけるファイルの最長出力所要時間であることを特徴とする請求項１３記載のコンピュータシステム。
【請求項１５】
前記監視周期は前記ファイルの最長出力所要時間の２倍よりも大きいことを特徴とする請求項１４記載のコンピュータシステム。
【請求項１６】
少なくともファイル出力の最短間隔をあけて記憶手段の所定のディレクトリにファイルを出力する第１の処理手段と、
この第１の処理手段が出力したファイルを処理する第２の処理手段と、
前記ディレクトリの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出するファイル検出手段と、
このファイル検出手段が新規に作成されたファイル或いは更新されたファイルを検出したとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機する待機手段と、
この待機手段により待機した後、前記検出したファイルのデータ処理をさせるために前記第２の処理手段を起動させる起動手段とを具備することを特徴とするコンピュータシステム。
【請求項１７】
前記ファイル出力の最短間隔は前記監視周期よりも大きく、かつ前記第１の期間が第１の処理手段におけるファイルの最長出力所要時間であることを特徴とする請求項１６記載のコンピュータシステム。
【請求項１８】
前記監視周期は前記ファイルの最長出力所要時間の２倍よりも大きいことを特徴とする請求項１７記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおいて、ファイル出力の監視方法の改良に関する。
【０００２】
【従来の技術】
インターネットやイントラネットの普及により、元来独立した機能として開発されたアプリケーション・ソフトウェア（以下、単にアプリケーションと呼ぶ）を統合して、各種業務処理の効率化や新たな業務サービスの創出に役立てたいとの要望が高まってきている。
【０００３】
このような場合、異なるアプリケーションを連結させるための手段として最も汎用性の有り確実な手法として、ファイルを介したデータ交換がある。しかし、多くのアプリケーションの実行環境では、ファイル更新をトリガーとして他のアプリケーションを起動するインタフェースは、標準的に提供されていない。
【０００４】
そこで、あるアプリケーションがデータをファイルに出力したとき、このファイルに出力されたデータの処理をする別なアプリケーション（以下、下流アプリケーションと呼ぶ）を自動的に起動させて上記データを処理させるためには、ファイル監視が必要になる。即ち、新たなファイルの作成や、ファイル更新を定期的に監視する必要がある。
【０００５】
従来、ファイル監視の手法には、次の２つがあった。１つ目は、単純周期監視方式である。これは、一定周期毎に、磁気ディスク装置などの二次記憶装置の監視対象のディレクトリにおいて、新たなファイルが作成されていないか、又は既に作成されているファイルの更新時刻が更新されていないかを調べ、このいずれかの状態が生じた場合には、アプリケーションからファイルの出力（ファイルの書き込み）がなされたと判断する手法である。又、２つ目の手法は、開始・終了フラグ方式である。これは、アプリケーションがファイル出力を開始するときに開始を示すフラグを設定し、ファイル出力が終了したときには終了フラグを設定する手法である。（例えば、特許文献１参照）この手法では、下流アプリケーションは、終了フラグが設定されたことを確認してそのフラグに対応付けられたファイルの処理を開始する。従って、この手法では、未完成のファイルを誤って処理してしまうことが回避できる。更にこの手法では、ファイル出力をするアプリケーションが開始フラグを設定しようとしたときに、既に開始フラグが設定状態であれば、その開始フラグが解除されるまで開始フラグの設定及びファイル出力が待たされる。開始フラグの解除は、下流アプリケーションが行う。従って、下流のアプリケーションがファイルの処理が終了するまでは、ファイルの上書きが行われることが回避できる。
【０００６】
【特許文献１】
特開平４−２９９７５０号公報
【０００７】
【発明が解決しようとする課題】
上記単純周期監視方式では、アプリケーションによるファイルの出力がファイル監視の周期よりも短いとの暗黙の前提が存在する。監視周期の設定にも依存するが、出力するファイルの容量が大きい場合には、ファイル出力に必要とする時間が監視周期よりも大きくなる場合が生じる。このような場合には、ファイル出力の完了前に、下流アプリケーションがそのファイルの処理を開始してしまうという欠点があった。
【０００８】
また、上記開始・終了フラグ方式では、アプリケーションが出力するファイルに対してフラグの設定をする処理を追加するためにソフトウェアの修正をする必要が生じるという欠点があった。
【０００９】
本発明は、このような従来の欠点を解決するためになされたもので、ソフトウェアを修正する必要なく既存のアプリケーションに簡単に適用でき、かつ下流のアプリケーションで不完全なファイルを処理することなく、更にファイルのデータの消失をすることないファイル監視方法、ファイル監視プログラム及びコンピュータシステムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明は、第１の処理手段が記憶手段の所定のディレクトリに出力したファイルの中から新規に作成されたファイル或いは更新されたファイルを所定の監視周期毎に検出する第１のステップと、
この第１のステップで新規に作成されたファイル或いは更新されたファイルを検出したとき、その検出したファイルのファイル更新時刻から少なくとも第１の期間待機するステップと、
この待機ステップにより待機した後、前記検出したファイルのデータ処理をさせるために第２の処理手段を起動するステップとを具備することを特徴とする。
【００１１】
この構成によれば、ソフトウェアを修正する必要なく既存のアプリケーションに簡単に適用できるファイル監視方法が実現できる。また、下流のアプリケーションで不完全なファイルを処理することがないファイル監視方法が実現できる。更に、ファイルのデータの消失をすることがないファイル監視方法が実現できる。
【００１２】
【発明の実施の形態】
（発明の概略の説明）
まず、実施形態の詳細を説明する前に、本発明の概略を説明する。初めに本発明を理解する上で重要な事項である監視周期Ｔｍ（秒）、ファイルの最長出力所要時間Ｔｕ（秒）、ファイル出力の最短間隔Ｔｘ（秒）について説明する。
監視周期Ｔｍは、監視対象のディレクトリにおいて新たに作成されたファイルの存在の有無とファイルの更新の有無とを調べる時間間隔（周期）を示すものである。
【００１３】
ファイルの最長出力所要時間Ｔｕは、アプリケーションの開発者がアプリケーションの仕様に基づいて、アプリケーションが１つのファイルを出力（書き込み）するときに必要とする時間の最大値を見積もった値である。換言すれば、アプリケーションがファイル出力する場合には、この最長出力所要時間Ｔｕ以上の時間は必要としないということである。一般に、ファイルを出力する場合は、複数回のデータの書き込みにより実施される。従って、ファイルを出力（書き込み）するときに必要とする時間とは、１回目のファイルの書き込みが開始されてから最後のファイルの書き込みが終了するまでの時間を示す。そして、その最大時間はアプリケーションの仕様に基づいて、開発者が見積もることができる。
【００１４】
ファイル出力の最短間隔Ｔｘは、そのアプリケーションにおいて、あるファイル出力を開始してから次のファイル出力を開始するまでの時間間隔の最短時間を示す。このファイル出力の最短間隔Ｔｘは、アプリケーションの開発者がアプリケーションの仕様として決める値である。換言すると、あるアプリケーションにおいて、あるファイルの書き込みが開始されてから少なくともこの最短間隔Ｔｘの間は、次のファイルの書き込みが開始されないことを保証することになる。従って、あるファイルの出力を開始した後、最短間隔Ｔｘを経過するまでは、同一ファイルの出力（上書き）が開始されないことも保証される。
【００１５】
次に本発明の動作原理及び前提条件を説明する。まず、ファイル出力が開始された直後にファイル監視手段が、このファイル出力を検出した場合を考える。図１に示すように、ファイル監視手段があるファイルＦの１回目のファイル出力Ｆ１が実行された直後の時刻Ｔ１にファイルＦのファイル出力を検出した場合を考える。ファイルＦの最後のファイル出力Ｆｅが実施されるのは、どんなに遅くともファイル出力Ｆ１が実行されてから最長出力所要時間Ｔｕを経過した後である。従って、ファイル監視手段は、検出したファイル出力Ｆ１のファイル更新時刻Ｔ２から最長出力所要時間Ｔｕを経過した時刻Ｔ３以後であれば、下流アプリケーションにそのファイルＦのデータを処理させることができる。この説明から明らかなように、ファイル監視手段がファイル出力を検出した場合、そのファイルのデータ処理を開始させるまでには、検出したファイルのファイル更新時刻から最長出力所要時間Ｔｕだけ待機する必要がある。
【００１６】
次に図２に示すように、ファイル監視手段が、あるファイルＦの最後のファイル出力Ｆｅが実施された後の時刻Ｔ４にファイルＦのファイル出力を検出した場合を考える。この場合、ファイル監視手段は、最後のファイル出力Ｆｅが実行された後にファイルＦのファイル出力を検出したとの認識はできない。従って、図１に示したような場合を考慮して、ファイル監視手段は、ファイル出力Ｆｅのファイル更新時刻Ｔ５から最長出力所要時間Ｔｕだけ待機した後の時刻Ｔ６に、その検出したファイルＦのデータ処理を開始させる必要がある。
【００１７】
このように図１及び図２を用いて説明した事項に基づいて、ファイル出力の最短間隔Ｔｘは、ファイルの最長出力所要時間Ｔｕの２倍以上であることが要求される。即ち、「Ｔｘ＞２Ｔｕ」である。
【００１８】
この「Ｔｘ＞２Ｔｕ」であるべきことは、図３を用いて説明する。図３に示すように時刻Ｔ７において、ファイルＦの１回目のファイル出力Ｆ１が実施され（即ち、ファイル出力Ｆ１のファイル更新時刻はＴ７である）、最後のファイル出力Ｆｅが時刻Ｔ７からファイルの最長出力所要時間Ｔｕ経過した時刻Ｔ８に実行されたとする（即ち、ファイル出力Ｆｅのファイル更新時刻はＴ８である）。そして、このファイルＦの出力をファイル監視手段が時刻Ｔ８の直後の時刻Ｔ９において検出したとする。この場合、図２で説明したとおり、ファイル監視手段は時刻Ｔ８から最長出力所要時間Ｔｕ経過した時刻Ｔ１０まで待機し、時刻Ｔ１０になったら、その検出したファイルＦのデータ処理を開始させることになる。しかし、このような場合に、もし「Ｔｘ＞２Ｔｕ」の条件を満たしていない、例えば「Ｔｘ＞１．５Ｔｕ」であると仮定すると、次のような問題が発生する。即ち、時刻Ｔ９で検出したファイルＦのデータ処理を時刻Ｔ１０で開始する前の時刻Ｔ１１（時刻Ｔ７から時間１．５Ｔｕ経過した時刻）において、同一のファイルＦの出力（上書き）がされてしまう場合がある。このような場合、時刻Ｔ８で出力（書き込み）が終了したファイルＦのデータ処理をすることなしに時刻Ｔ１１においてファイルが上書きされてしまうことになる。よって、時刻Ｔ８においてファイル出力の終了したデータが消失してしまうという問題が発生する。従って、「Ｔｘ＞２Ｔｕ」という条件が要求される。
【００１９】
一方、ファイル出力の最短間隔Ｔｘは、監視周期Ｔｍよりも長いことが要求される。即ち、「Ｔｘ＞Ｔｍ」であることが要求される。これは、最短間隔Ｔｘよりも監視周期Ｔｍが長いと、ファイルの上書きによりデータが消失する可能性があるからである。
【００２０】
このように最長出力所要時間Ｔｕを見積もること、「Ｔｘ＞２Ｔｕ」と「Ｔｘ＞Ｔｍ」の前提条件を設定することにより、「Ｔｍ＞２Ｔｕ」であれば、ファイル出力されたデータが消失するという事故が生ずることなく正しくファイル監視ができることになる。
【００２１】
（第１の実施形態）
以下、本発明の一実施形態を説明する。図４は、発明を実装したコンピュータシステムを示す図である。コンピュータ１０では、アプリケーションプログラムＡ２０、アプリケーションプログラムＢ４０及びファイル監視プログラム３０がインストールされ、実行されている。コンピュータ１０には、２次記憶装置としての磁気ディスク装置５０が接続されている。
【００２２】
アプリケーションプログラムＡ２０は、データ処理の結果として生成するファイルを磁気ディスク装置５０のディレクトリ５１内に書き込む（出力する）。アプリケーションプログラムＢ４０は、アプリケーションプログラムＡ２０が生成したファイルを受け取り、そのファイルのデータ処理をするものである。このアプリケーションプログラムＢ４０の具体例としては、印刷プログラム、ＸＭＬ（ Extensible Markup Language ）文書の作成プログラム等である。
【００２３】
ファイル監視プログラム３０は、アプリケーションプログラムＡ２０が磁気ディスク装置５０のディレクトリ５１に出力するファイルを監視するプログラムである。ファイル監視プログラム３０は、ディレクトリ５１に新しいファイルが書き込まれていないか、又は既に書き込まれているファイルが更新されていないかを定期的に監視する。ファイル監視プログラム３０は、ディレクトリ５１に新しいファイルが書き込まれたこと、又は既に書き込まれているファイルが更新されたことを検出すると、アプリケーションプログラムＢ４０を起動し、その検出したファイルのデータ処理をさせる。
【００２４】
図５は、ファイル監視プログラム３０の詳細を示す図である。ファイル監視プログラム３０は、ファイル出力監視制御部３１、ファイル出力監視部３２、プログラム起動部３３とから構成されている。ファイル出力監視制御部３１は、ファイル監視プログラム３０全体を制御するとともに、磁気ディスク装置５０に記録された監視処理方法定義テーブル５２に格納されているファイル監視方法の定義データに基づいて、ファイル出力監視部３２を起動するプログラムである。監視処理方法定義テーブル５２には、ユーザーがファイル監視方法を定義したデータ（定義データ）を格納する。この定義データの監視方法定義テーブル５２への登録方法の説明の詳細は省略するが、ファイル出力監視制御部３１に定義データの登録機能を持たせるか、又は別に設けた定義データ登録処理プログラムにより実現する。ファイル出力監視部３２は、ディスク装置５０のディレクトリー５１に記録されたファイルを監視するプログラムである。ファイル出力監視部３２は、その動作中に第１のファイルテーブル３２ａ、第２のファイルテーブル３２ｂ及び変化テーブル３２ｃを図示を省略したメモリ上に作成する。この３つのテーブルの詳細は、後述する。プログラム起動部３３は、ファイル出力監視部３２によるファイル出力監視の結果、アプリケーションプログラムＡ２０がディレクトリ５１に新規に作成されたファイル又は更新されたファイルの存在を検出したとき、アプリケーションプログラムＢ４０を起動し、その検出したファイルの処理をさせるプログラムである。
【００２５】
図６は、監視処理方法定義テーブル５２の構造を示す図である。監視方法定義テーブル５２の各エントリーは、対象ディレクトリ、ファイル名のパターン、監視周期Ｔｍ、最長出力所要時間Ｔｕ、起動プログラム名の５つのパラメーターのフィールドから構成されている。この各エントリーに登録されたパラメーターにより、ファイル監視の方法が定義される。この定義データの詳細を一番上のエントリーに登録された定義データに基づいて説明する。対象ディレクトリのフィールドに登録されたパスにより、ファイル監視をする対象のディレクトリが定義される。定義されたパス「／ａａａ／ｂｂ１」とは、ルートディレクトリの下に設定されたディレクトリ「ａａａ」の下に更に設定されたディレクトリ「ｂｂ１」が監視対象のディレクトリである。ファイル名のパターンのフィールドに登録された内容により、監視対象のファイル名のパターンが定義される。定義された「ａｌｐｈａ＊．ｏｕｔ」とは、ファイル名が文字列「ａｌｐｈａ」で始まり、その後に任意の桁数の任意の文字列が付与されたファイル名で、しかもその拡張子が「ｏｕｔ」であるファイルを監視対象のファイルと設定している。「＊」は、ワイルドカードを示す。監視周期Ｔｍ、最長出力所要時間Ｔｕの各フィールドに登録された数値は、ファイル監視時において使用される監視周期Ｔｍと最長出力所要時間Ｔｕの値であり、その意味は既に説明した通りであり、ここでの説明は省略する。また、起動プログラム名のフィールドに登録されたプログラム名は、監視対象のファイルにおいて新規に作成されたファイル又は更新されたファイルが検出されたとき、そのファイルのデータ処理をさせるために起動させるプログラム名を示す。
【００２６】
図７は、第１及び第２のファイルテーブル３２ａ、３２ｂの構造を示す図である。このファイルテーブルの各エントリーは、ファイル名とファイル更新時刻のフィールドから構成されている。図８は、変化ファイルテーブル３２ｃの構造を示す図である。変化ファイルテーブル３２ｃの各エントリーは、ファイル名とファイル更新時刻のフィールドから構成されている。
【００２７】
次に本発明の実施形態の動作の詳細を図９〜図１２に示したフローチャートに基づいて説明する。図９は、ファイル出力監視制御部３１の動作を説明するためのフローチャートである。図１０及び図１１は、ファイル出力監視部３２の動作を説明するためのフローチャートである。更に図１２は、プログラム起動部３３の動作を説明するためのフローチャートである。
【００２８】
先ず、ファイル監視プログラム３０が起動されるとファイル出力監視制御部３１が動作を開始する（図９を参照）。初めに出力監視制御部３１は、監視処理方法定義テーブル５２の１つのエントリーに登録された定義データを読み出す（ステップＳ１）。次に、この読み出した定義データにおいて、先に説明した「Ｔｍ＞２Ｔｕ」の条件を満たしているか否かを判定する（ステップＳ２）。即ち、監視周期Ｔｍが最長出力所要時間Ｔｕの２倍の時間よりも大きいか否かを判定する。
【００２９】
この条件を満たしている場合には、そのエントリーで定義された条件でファイルの出力監視をするファイル出力監視部３２を起動する（ステップＳ３）。図５において、ファイル出力監視部３２は、１つしか図示していないが、このファイル出力監視部３２は監視処理方法定義テーブル５２の各エントリーで定義された定義データ毎に対応してそれぞれ起動される。また、この条件を満たしていない場合には、警告メッセージをシステムログのファイルに書き込んでエラー表示する（ステップＳ４）。
【００３０】
次に監視処理方法定義テーブル５２に登録された全てのエントリーから定義データを読み出したか否かを判断する（ステップＳ５）。全てのエントリーの読み出しが終了していない場合には、ステップＳ１に戻り、ステップＳ１〜ステップＳ４の処理を継続する。全てのエントリの読み出しが終了した場合には、ステップＳ６に処理を進める。ステップＳ６では、ユーザーからファイル監視プログラム３０の処理の停止の指示がされたか否かを判定する。処理停止の指示がされていない場合には、その指示が出されるまで、ステップＳ６の判定を行い、その指示を待つ。処理停止の指示がされた場合には、ステップＳ７に処理進め、ステップＳ３で起動した全てのファイル出力監視部３２の起動を停止し、処理を終了させる。
【００３１】
次に図１０を参照して図９のステップＳ３で起動されたファイル出力監視部３２の動作を説明する。以後、各定義データに対応して複数のファイル出力監視部３２が起動され、その動作を開始するが、以下の説明では代表して１つのファイル出力監視部３２の動作を説明する。
【００３２】
先ず、定義データの「対象ディレクトリ」のフィールドに登録されたパスで指定されたディレクトリ、例えば磁気ディスク装置５０のディレクトリ５１をチェックして、現時点でそのディレクトリ内に存在するファイルのファイル名とファイル更新時刻とから構成される第１のファイルテーブル３２ａを作成する（ステップＵ１）。
【００３３】
次に現在時刻に監視周期Ｔｍを加算した数値を休止解除時刻として設定し（ステップＵ２）、その動作を休止する（ステップＵ３）。次のステップＵ４では、現在時刻が休止解除時刻、即ち次にファイル監視をする時刻になったか否かを判定し、次の休止解除時刻までその動作を休止する。現在時刻が休止解除時刻になった場合（次のファイル監視時刻になった場合）、次の休止解除時刻として現在時刻に監視周期Ｔｍを加算した数値を設定する（ステップＵ５）。
【００３４】
続いて、ファイルの監視対象のディレクトリをチェックして、現時点でそのディレクトリ内に存在するファイルのファイル名とファイル更新時刻とから構成される第２のファイルテーブル３２ｂを作成する（ステップＵ６）。次に変化テーブル３２ｃの登録内容をクリアーしてその登録内容を空にする（ステップＳ７）。
【００３５】
次に第１のファイルテーブル３２ａに登録されたファイル名及びファイル更新時刻と第２のファイルテーブル３２ｂに登録されたファイル名及びファイル更新時刻とを比較して、新規に作成されたファイルと更新されたファイルを検出する（ステップＵ８）。新規に作成されたファイル或いは更新されたファイルを検出した場合には、処理をステップＵ９へ進め、その検出したファイルのファイル名とファイル更新時刻とを変化テーブル３２ｃに登録する（ステップＵ９）。また、新規に作成されたファイル或いは更新されたファイルを検出しなかった場合には、ステップＵ３へ進めて次の休止解除時刻（次のファイル監視時刻）までその動作を休止する。
【００３６】
ステップＵ９に続きステップＵ１０では、ステップＵ９で変化テーブル３２ｃに登録したファイル名の各ファイルに対応してそれぞれファイル処理を実行するルーチンであるスレッドを起動する。この様に複数のスレッドを同時に起動するのは、マルチスレッドの技術に基づいて実現できる。このようにスレッドを起動した後、ファイル出力監視部３２の処理はステップＵ３へ進めて次の休止解除時刻（次のファイル監視時刻）までその動作を休止する。
【００３７】
一方、ステップＵ１０で起動した各スレッド（ファイル処理を実行するルーチン）の動作を図１１に示すフローチャートを用いて説明する。以後、複数起動されたスレッドが並行してファイル処理を実行するが、以下の説明では、１つのスレッドのファイル処理の動作を代表して説明する。尚、ステップＵ９にて変化テーブル３２ｃに登録されたファイルが１つの場合には、当然ステップＵ１０で起動されるスレッドは、１つである。
【００３８】
まず、この起動されたスレッドに対応付けられている変化テーブル３２ｃに登録されたファイル（以下、処理ファイルと呼ぶ）のファイル更新時刻から起算してファイルの最長出力所要時間Ｔｕだけ待機する（ステップＶ１）。この待機する意味は、先に説明した通り、処理ファイルのファイル出力が終了するのを待つことである。
【００３９】
次に、プログラム起動部３３を起動し、処理ファイルのファイル名とこの処理ファイルに対応付けられている定義データの「起動プログラム名」とを通知する（ステップＶ２）。この起動されたプログラム起動部３３の動作説明は、後述する。
【００４０】
続いて、プログラム起動部３３を起動したことの後処理としてステップＶ３とステップＶ４の処理を実行して、このスレッドの動作を終了する。ステップＶ３では、第１のファイルテーブル３２ａの登録内容を第２のファイルテーブル３２ｂに登録されている内容で置き換える。次にステップＶ４では、第２のファイルテーブル３２ｂに登録されている内容を削除して登録内容を空にする。
【００４１】
以下、図１２に示すフローチャートを用いて図１１のステップＶ２で起動されたプログラム起動部３３の動作を説明する。先ず、ファイル出力監視部３２の処理で起動されたスレッドにより図１１に示したステップＶ２にて通知されたファイル名と起動プログラム名とを受け取る（ステップＷ１）。
【００４２】
次に、ステップＷ１で受け取った起動プログラム名のプログラムを起動するとともに、この起動したプログラムに処理ファイルのファイル名を通知して、その処理をさせる（ステップＷ２）。この起動されたプログラムは、図４に図示したアプリケーションプログラムＢ４０のことである。以後、この起動されたアプリケーションプログラムＢ４０が通知を受けたファイル名のファイル処理をする。このステップＷ２の処理をした後、このプログラム起動部３３の処理が終了する。尚、全てのスレッドの処理が終わる時点（図１１のステップＶ４）では、まだファイル出力監視部３２の処理はステップＵ４にて次の休止解除時刻（次のファイル監視時刻）の判定動作をしている。
【００４３】
【発明の効果】
本発明によれば、ソフトウェアを修正する必要なく既存のアプリケーションに簡単に適用できるファイル監視方法が実現できる。また、下流のアプリケーションで不完全なファイルを処理することがないファイル監視方法が実現できる。更に、ファイルのデータの消失をすることがないファイル監視方法が実現できる。
【図面の簡単な説明】
【図１】本発明の概略を説明するための処理タイミングを示す図である。
【図２】本発明の概略を説明するための処理タイミングを示す図である。
【図３】本発明の概略を説明するための処理タイミングを示す図である。
【図４】発明を実装したコンピュータシステムを示す図である。
【図５】ファイル監視プログラム３０の詳細を示す図である。
【図６】監視処理方法定義テーブル５２の構造を示す図である。
【図７】第１及び第２のファイルテーブル３２ａ、３２ｂの構造を示す図である。
【図８】変化ファイルテーブル３２ｃの構造を示す図である。
【図９】ファイル出力監視制御部３１の動作を説明するためのフローチャートを示す図である。
【図１０】ファイル出力監視部３２の動作を説明するためのフローチャートを示す図である。
【図１１】ファイル出力監視部３２の動作を説明するためのフローチャートを示す図である。
【図１２】プログラム起動部３３の動作を説明するためのフローチャートを示す図である。
【符号の説明】
１０‥‥コンピュータ
２０‥‥アプリケーションプログラムＡ
３０‥‥ファイル監視プログラム
４０‥‥アプリケーションプログラムＢ
５１‥‥ディレクトリ
【図１】
0003727916.tif 000002
【図２】
0003727916.tif 000003
【図３】
0003727916.tif 000004
【図４】
0003727916.tif 000005
【図５】
0003727916.tif 000006
【図６】
0003727916.tif 000007
【図７】
0003727916.tif 000008
【図８】
0003727916.tif 000009
【図９】
0003727916.tif 000010
【図１０】
0003727916.tif 000011
【図１１】
0003727916.tif 000012
【図１２】
0003727916.tif 000013