(57)【要約】      （修正有）【課題】ファイルの上書き保存システムにおいて、バージョン管理システムを利用せずに、矛盾なくファイルを上書きする技術を提供する。【解決手段】他のユーザがファイルを開いているため、ファイルの上書き保存ができない場合、ファイルに対して上書き保存予約を行う。その後、他のユーザがファイルを閉じて、ファイルに対して上書き保存ができるようになると、元ファイルが更新されているか否かを判定し、更新されていなければ自動的にファイルの上書き保存を実施する。元ファイルが更新されている場合、上書き保存できない旨の通知を行う。【選択図】図５
2020095551.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された、
第１の情報処理端末と、
第２の情報処理端末と、を有し、
ファイルの管理機能を備える情報処理システムであって、
第１のファイルに対して前記第１の情報処理端末において上書き保存が可能な状態であるか否かを判定する判定手段と、
上書き保存が可能な状態でないと前記判定手段が判定した場合、前記第１のファイルを第２のファイルで上書き保存することを予約する予約手段と、
上書き保存が可能な状態でないと前記判定手段が判定した場合、前記第１のファイルに対して前記第１の情報処理端末において上書き保存が可能な状態となったか否かを監視する監視手段と、
上書き保存が可能な状態になったと前記監視手段が検知した場合、予約された前記第２のファイルで前記第１のファイルの上書き保存を実施する実施手段と、を有する
ことを特徴とする情報処理システム。
【請求項２】
前記第１のファイルが前記第２の情報処理端末において開かれている場合、前記判定手段は、第１のファイルに対して前記第１の情報処理端末において上書き保存が可能な状態でないと判定する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第１のファイルが前記第２の情報処理端末において閉じられた場合、前記監視手段は、第１のファイルに対して前記第１の情報処理端末において上書き保存が可能な状態になったと検知する
ことを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記第１のファイルに対して前記第１の情報処理端末において編集された場合、前記第１の情報処理端末は、編集された前記第１のファイルを前記第２のファイルとして保存する
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記第１のファイルに対して前記第２の情報処理端末において編集された場合、前記実施手段は、予約された前記第２のファイルで前記第１のファイルの上書き保存を実施しない
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
前記第１のファイルに対して前記第２の情報処理端末において編集されたことにより、前記実施手段が、予約された前記第２のファイルで前記第１のファイルの上書き保存を実施しない場合、前記第２のファイルで前記第１のファイルの上書き保存を実施しない旨を通知する通知手段を有する
ことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記予約手段が前記第１のファイルを第２のファイルで上書き保存することを予約すると、予約情報が保存される
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理システム。
【請求項８】
予約された前記第２のファイルで前記第１のファイルの上書き保存を前記実施手段が実施した後、保存されていた前記予約情報が削除される
ことを特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記第１の情報処理端末が、前記実施手段を有する
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理システム。
【請求項１０】
前記第１の情報処理端末が起動された際に前記予約手段が前記第１のファイルを第２のファイルで上書き保存することを予約していた場合、前記実施手段は、前記第２のファイルで前記第１のファイルの上書き保存を実施する
ことを特徴とする請求項１乃至９のいずれか１項に記載の情報処理システム。
【請求項１１】
前記第２の情報処理端末が前記実施手段を有する
ことを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理システム。
【請求項１２】
前記ネットワークに接続される第３の情報処理装置を有し、
前記第３の情報処理装置が前記第１のファイルを保存する
ことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理システム。
【請求項１３】
前記第１の情報処理端末が、前記判定手段及び前記監視手段を有する
ことを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理システム。
【請求項１４】
前記第１の情報処理端末が、前記予約手段を有する
ことを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理システム。
【請求項１５】
ファイルの管理機能を備える情報処理方法であって、
第１のファイルに対して上書き保存が可能な状態であるか否かを判定する判定ステップと、
上書き保存が可能な状態でないと前記判定ステップにおいて判定された場合、前記第１のファイルを第２のファイルで上書き保存することを予約する予約ステップと、
上書き保存が可能な状態でないと前記判定ステップにおいて判定された場合、前記第１のファイルに対して上書き保存が可能な状態となったか否かを監視する監視ステップと、
上書き保存が可能な状態になったと前記監視ステップにおいて検知された場合、予約された前記第２のファイルで前記第１のファイルの上書き保存を実施する実施ステップと、を有する
ことを特徴とする情報処理方法。
【請求項１６】
請求項１５の情報処理方法をコンピュータにより実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの管理機能を有する情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
企業などの組織内などにおいては、ネットワーク上にファイルサーバを設置して、複数人でネットワークフォルダ上のファイルを共有して使用することが多く行われる。そのような場合、複数人でネットワークフォルダ内の同一のファイルを開くと、後からファイルを開いた人は読み取り専用でファイルを開くことになるため、開いたファイルを編集しても上書き保存をすることができない。
【０００３】
このような場合、後からファイルを開いた人は、ファイルを編集した後合、編集したファイルを別名で保存するか、別のフォルダへ保存するなど、上書き保存以外の方法でファイルを保存することが一般的である。その後、元となったファイル（オリジナルファイル）に対して編集した情報を反映させる場合、別の方法で保存していたファイルをオリジナルファイルに上書き保存する必要がある。
【０００４】
公知の技術として、先にファイルを開いていた人がファイルを閉じることにより、オリジナルファイルに対して上書き保存ができるようになった時点で、その旨をユーザへ通知するソフトウェアが存在する。この技術を利用すると、後からファイルを開いたユーザは編集中のファイルを開き、オリジナルファイルに対して上書き保存ができるようになった時点で通知を受けることが可能になる。
【０００５】
また、特許文献１には、複数人が同一のファイルを同時に編集することを可能としながら、ファイルの整合性を確保するために、ファイルの変更部分を容易に把握可能なバージョン管理システムを提供する技術が開示されている。このバージョン管理システムを利用すると、ネットワークフォルダ上に存在する同一のファイルを複数人が上書き保存の可能な状態で開いて使用することが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２７７４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１のようなバージョン管理システムを利用する場合、システム環境の構築や運用にコストがかかるという問題がある。一方、バージョン管理システムを利用しない場合、ファイルの上書き保存ができるようになったことをユーザに通知する必要がある。さらに、通知後にユーザが手動でファイルの上書き保存を行わなければならないため、作業に無駄が多くなるという問題がある。また、上書き保存ができるようになったことを通知するために、編集中のファイルをユーザが開いておく必要があるという問題がある。
【０００８】
本発明は、バージョン管理システムのようなコストがかかるシステムを用いることなく、ファイルの上書き保存ができるようになると、自動的にファイルの上書き保存を行うシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ネットワークに接続された、第１の情報処理端末と、第２の情報処理端末と、を有し、ファイルの管理機能を備える情報処理システムであって、第１のファイルに対して前記第１の情報処理端末において上書き保存が可能な状態であるか否かを判定する判定手段と、上書き保存が可能な状態でないと前記判定手段が判定した場合、前記第１のファイルを第２のファイルで上書き保存することを予約する予約手段と、上書き保存が可能な状態でないと前記判定手段が判定した場合、前記第１のファイルに対して前記第１の情報処理端末において上書き保存が可能な状態となったか否かを監視する監視手段と、上書き保存が可能な状態になったと前記監視手段が検知した場合、予約された前記第２のファイルで前記第１のファイルの上書き保存を実施する実施手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、バージョン管理システムのようなコストがかかるシステムを用いることなく、ファイルの上書き保存ができるようになると、ユーザに通知する必要なく、自動的にファイルの上書き保存を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムのシステム構成を示す図である。
【図２】ＰＣ及びサーバのハードウェア構成を示す図である。
【図３】ＰＣ及びサーバのソフトウェア構成を示す図である。
【図４】上書き保存予約情報の一例である。
【図５】上書き保存処理を示すフローチャートである（実施例１）。
【図６】上書き保存処理を示すフローチャートである（実施例２）。
【図７】上書き保存処理を示すフローチャートである（実施例３）。
【図８】表示部に表示されるメッセージの例である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１３】
＜実施例１＞
＜システム構成＞
図１は、本発明の実施例における情報処理システム１０の構成例を示す図である。図１において、情報処理システム１０は、２つ以上の情報処理装置（コンピュータ）がネットワークを介して接続され、通信可能とされている。
図１において、１００Ａ及び１００Ｂは、クライアントコンピュータである。本実施例では、クライアントコンピュータ１００Ａ及び１００ＢはＰＣ（Personal Computer）から構成されるため、以下では、それぞれ、「ＰＣ１００Ａ」及び「ＰＣ１００Ｂ」という。ただし、本発明においては、クライアントコンピュータは、ＰＣに限られるものではなく、例えば、モバイル端末などの他の情報処理端末であってもよい。
【００１４】
また、１２０は、ファイルを管理するファイルサーバであり、以下では、「サーバ１２０」という。サーバ１２０も、コンピュータなどの情報処理装置から構成される。
ＬＡＮ（Local Area Network）１１０は、コンピュータに接続されているネットワークである。ＰＣ１００Ａ、ＰＣ１００Ｂ、サーバ１２０は、ＬＡＮ１１０を介して相互に情報の通信を行うことができる。
【００１５】
図１の情報処理システム１０において、ＰＣ１００Ａ及びＰＣ１００Ｂは、サーバ１２０が管理するファイルにアクセスし、ファイルの閲覧、編集、保存といった操作が可能であるように構成されている。
なお、本発明の情報処理システム１０において、ＰＣ１００Ａ、ＰＣ１００Ｂ、サーバ１２０は、例えば、無線のネットワークなど、ＬＡＮ１１０以外の任意のネットワークで相互に接続されてもよい。
【００１６】
＜ハードウェア構成＞
図２は、ＰＣ１００Ａのハードウェア構成例を示す図である。なお、ＰＣ１００Ｂ及びサーバ１２０のハードウェア構成についても同様である。
ＰＣ１００Ａは、ユーザの操作入力を受け付ける入力デバイスであるキーボード２０５とポインティングデバイス２０６を備えている。
キーボード２０５は、ＰＣ１００Ａに対して文字や数字などの情報を入力する装置である。キーボード２０５は、例えば、仮名や英文字などを入力するキーや、数字を入力するためのテンキー、各種機能キー、カーソルキー及びその他のキーを備える。
【００１７】
ポインティングデバイス２０６は、例えば、マウスからなる。ユーザは、ＧＵＩ（Graphical User Interface）などを用いてＰＣ１００Ａを操作する場合、表示部２０２上に表示されたボタンやアイコンなどをマウスでクリックすることにより、所望の情報の入力を行うことができる。例えば、ＰＣ１００Ａが、インストールされたソフトウェアを表すアイコンを表示部２０２上に表示している場合、ユーザがアイコンをマウスでクリックすることに応じて、ＣＰＵ２０１がソフトウェアを起動する。
【００１８】
表示部２０２は、ユーザに視覚的な出力情報フィードバックを与える手段である。表示部２０２は、例えば、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ、プラズマディスプレイなどからなる画面上に各種情報を表示する。表示部２０２には、キーボード２０５やポインティングデバイス２０６からの入力結果や、ソフトウェアが提供する画面（例えば、ユーザインターフェース）などが表示される。
【００１９】
さらに、ＰＣ１００Ａは、ＣＰＵ２０１、ＲＡＭ２０３、ＲＯＭ２０４、ＨＤＤ２０７を備える。ＣＰＵ２０１は、ＰＣ１００Ａにおいて、図３で説明するソフトウェア３００、表示部３０１、制御部３０２の動作を制御する。また、ＣＰＵ２０１は、ＰＣ１００Ａにインストールされたソフトウェア３００を実行し、所定のプログラムに従って、各種の演算、情報処理、ＰＣ１００Ａ全体の制御を行う。
【００２０】
ＲＡＭ２０３、ＲＯＭ２０４、ＨＤＤ２０７は、それぞれ、各種プログラムやプログラムの実行により得られた情報を保存する。また、ＣＤ−ＲＯＭドライバ２０８は、ＣＤに記録されたデータを読み出すために設けられている。
ＲＡＭ２０３からは、ＣＰＵ２０１によりＯＳ（Operating System）や制御プログラムがロードされ、実行される。また、ＲＡＭ２０３は、制御プログラムを実行するために用いられる各種作業領域、一時待避領域として機能する。ＲＡＭ２０３には、ＣＰＵ２０１がソフトウェアの起動やシステム内部の処理などを行うための作業領域が確保されている。
ＲＯＭ２０４は、ＣＰＵ２０１の各種制御を実行する各種制御プログラム、データ及びパラメータなどを記憶する記憶装置である。
【００２１】
ＨＤＤ２０７は、ハードディスクを備えるローカルディスクであり、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータを読み書きするための駆動装置を備える。ＨＤＤ２０７が備える記憶媒体は、光磁気ディスク、磁気ディスク、半導体メモリなどであってもよい。ＨＤＤ２０７には、図３で説明するソフトウェア３００が記憶されている。また、ＨＤＤ２０７には、インターフェイスデバイスであるＩ／Ｏ２０９を制御し、ネットワークを介した通信を行うための通信プログラムが記憶されている。また、ＨＤＤ２０７には、メモリ管理やファイル入出力管理などのクライアントを動作させるための基本ソフトウェアであるＯＳなどが記憶されている。
【００２２】
さらに、ＰＣ１００Ａは、外部機器との通信を行うインターフェイスデバイスであるＩ／Ｏ２０９を備える。なお、外部機器との接続形態は、有線／無線を問わない。インターフェイスデバイスであるＩ／Ｏ２０９は、ネットワーク（例えば、ＬＡＮやインターネット）を介して、外部機器である他の端末（Ｗｅｂサーバ、メールサーバなど）に接続する。インターネットを介した通信を行う場合には、例えば、ＴＣＰ／ＩＰなどのプロトコルが用いられる。
なお、本実施例において行われる処理は、ＲＯＭ２０４やＨＤＤ２０７などに保存されたプログラムを、ＣＰＵ２０１がＲＡＭ２０３にロードし、実行することによって実現される。
【００２３】
＜ソフトウェア構成＞
図３は、ＰＣ１００Ａ（ＰＣ１００Ｂ）やサーバ１２０のソフトウェア構成例を示す図である。図３で示されるソフトウェア構成を用いて、本実施例におけるファイルの上書き保存予約処理が行われる。
【００２４】
まず、ＰＣ１００Ａのソフトウェア構成例について説明する。なお、ＰＣ１００Ｂのソフトウェア構成も、ＰＣ１００Ａと同様である。
ＰＣ１００Ａは、ファイル管理ソフトウェア３００（以下、「ソフトウェア３００」ともいう）、記憶部３０３を備える。ソフトウェア３００は、表示部３０１、制御部３０２を備える。
図３に示す例では、ＰＣ１００Ａには不図示のインストーラによってソフトウェア３００がインストールされているものとする。また、ＰＣ１００Ａは、ＯＳが有するファイル管理機能（例えば、エクスプローラー）として、あらかじめソフトウェア３００と同等あるいいは類似する構成を備えるようにしてもよい。
【００２５】
ソフトウェア３００は、例えば、ファイル管理ソフト、画像編集ソフト、エディタソフト、ワードプロセッサソフト、表計算ソフト、データベースソフト、ガジェットなどからなる任意のソフトウェアである。本実施例において、ソフトウェア３００は、選択したフォルダやファイルの操作や、アプリケーションの起動などを行うことができるＧＵＩを備える。
【００２６】
表示部３０１は、ソフトウェア３００のユーザインターフェース（ＧＵＩ）の構築を行う。また、表示部３０１は、ＧＵＩを介して、ユーザからの各種入力操作の受け付けを処理する。
制御部３０２は、ソフトウェア制御に関する処理全般の機能を備える。制御部３０２は、例えば、ＯＳが発行するイベントを検知し、検知した情報に基づいて表示部３０１へソフトウェアの表示変更を指示する。
記憶部３０３は、ソフトウェアの各種設定（図４を参照）を保存する保存先である。また、記憶部３０３は、ソフトウェア３００が処理や作業の都合上、一時的に必要なファイルを保存しておくための保存先（一時フォルダ）である。
【００２７】
なお、本実施例においては、クライアントコンピュータはＰＣ１００Ａ及びＰＣ１００Ｂの２台が備えられているため、以下では、それぞれのソフトウェア３００を、ソフトウェア３００Ａ及びソフトウェア３００Ｂということもある。表示部３０１、制御部３０２、記憶部３０３についても、同様である。
【００２８】
次に、サーバ１２０のソフトウェア構成例について説明する。
サーバ１２０は、ファイルサーバとしてファイルを共有するために設置されるサーバである。サーバ１２０に保存されているファイルは複数のクライアントコンピュータ（ＰＣ１００Ａ、ＰＣ１００Ｂ）によって共有することができるため、サーバ１２０によるファイル管理を効率的に行うことが可能となる。
【００２９】
制御部３１０は、ファイルサーバ制御に関する処理全般を行う機能を備える。
記憶部３１１は、ファイルを保存する保存先である。
なお、本実施例において行われる処理は、ＲＯＭ２０４やＨＤＤ２０７などに保存されたプログラムを、ＣＰＵ２０１がＲＡＭ２０３にロードし、実行することによって実現される。
【００３０】
＜上書き保存予約情報＞
図４は、上書き保存予約を実行するために必要な設定情報である上書き保存予約情報の一例を示している。ここでの上書き保存予約とは、別のユーザＢによって閲覧中のファイルをユーザＡが開いて編集した場合、ユーザＢがファイルを閉じた後にユーザＡによる編集結果を該当のファイルに反映するための事前処理である。
上書き保存予約情報４００は、ファイルの上書き保存予約に関する情報を定義する各設定値４０１〜４０４を保持する。本実施例において、上書き保存予約情報４００のファイルフォーマットはＸＭＬ（Extensible Markup Language）である。なお、上書き保存予約情報４００の形態はファイル以外（例えば、レジストリ）であってもよい。
【００３１】
次に、各設定値４０１〜４０４について説明する。
オリジナルファイルパス４０１は、サーバ１２０に保存されているファイルのパスを指す。
オリジナルフォルダパス４０２は、オリジナルファイルパス４０１が保存されているフォルダのパスを指す。
オリジナルファイル更新日時４０３は、オリジナルファイルパス４０１のファイルの更新日時を指す。
上書き保存予約ファイルパス４０４は、上書き保存を実行した際に一時的なフォルダ（例えば、ＰＣ１００Ａの記憶部３０３Ａ）に保存した一時ファイルのパスを指す。
【００３２】
設定値４０１〜４０４は、１つのファイルの上書き保存予約に応じて１セットで定義される。例えば、２つのファイルの上書き保存予約が実行された場合は、ソフトウェア３００は２セットの設定値４０１〜４０４を管理する。
本実施例においては、１つの上書き保存予約ごとに１つのＸＭＬファイルが生成される。ＸＭＬファイルは、上書き保存予約ファイルパス４０４のファイルパスと同じフォルダに保存される。また、設定値４０１〜４０４は、後述するファイルの上書き保存予約処理（ステップＳ１００３）において保存される。
【００３３】
＜上書き保存予約処理＞
ＰＣ１００Ｂにおいて、サーバ１２０のネットワークフォルダに保存されているファイルが開かれているとする。このときに、ＰＣ１００Ａにおいて同一のファイルに対して開く、編集、保存といった操作が行われた場合、ＰＣ１００Ａ上ではファイルの上書き保存ができないという課題がある。
そこで、このような課題を解決するための、ファイルの上書き保存予約処理について説明する。
【００３４】
図５は、ソフトウェア３００Ａにより実施される、ファイルの上書き保存予約処理のフローチャートである。ここでは、ユーザＢが操作するＰＣ１００Ｂにおいて開かれているオリジナルファイルに対して、ＰＣ１００Ａを操作するユーザＡが編集を行い、上書き保存予約処理を行う例について説明する。
【００３５】
ネットワークフォルダ上のファイル（オリジナルファイル）に対する上書き保存処理の要求を検知すると、ソフトウェア３００Ａは、図５（ａ）のフローチャートを開始する。
まず、ステップＳ１００１において、ソフトウェア３００Ａの制御部３０２Ａは、他のユーザ（ここでは、ＰＣ１００Ｂを操作するユーザＢ）によってオリジナルファイルが開かれているか否かを判定する。
【００３６】
ステップＳ１００１でＹＥＳ（ファイルが開かれている）の場合、ステップＳ１００２へ進む。ＮＯ（ファイルが開かれていない）の場合、オリジナルファイルを上書き保存し、図５のフローチャートの処理を終了する。
ここで、オリジナルファイルが他のユーザによって開かれているか否かの判定について説明する。制御部３０２Ａは、ユーザＢによって開かれているファイルを開く処理を実施した場合、他のユーザ（ユーザＢ）によって開かれているファイルであるというエラーメッセージをＯＳから取得する。制御部３０２Ａは、そのエラーメッセージに基づいてオリジナルファイルが他のユーザによって開かれているか否かを判定する。
【００３７】
次に、ファイルの上書き保存予約情報４００を保存する処理（ステップＳ１００２〜ステップＳ１００３）について説明する。
ステップＳ１００１でＹＥＳ（ファイルが開かれている）の場合、オリジナルファイルを上書き保存することはできない。そのため、まず、ステップＳ１００２において、制御部３０２Ａは、ユーザＡによって生成されたが、上書き保存できなかったファイルを、一時ファイルとしてＰＣ１００Ａ上の一時フォルダに保存する。ここで、一時フォルダとは、処理や作業の都合上、一時的に必要なファイル（一時ファイル）を一時保存しておくためのフォルダを指す。
【００３８】
次に、ステップＳ１００３において、制御部３０２Ａは、ソフトウェア３００Ａの上書き保存予約情報４００に各設定値４０１〜４０４を保存する。この時、制御部３０２Ａは、オリジナルファイルから、オリジナルファイルパス４０１、オリジナルフォルダパス４０２、オリジナルファイル更新日時４０３の各値を取得する。また、制御部３０２Ａは、ステップＳ１００２で一時フォルダに保存した一時ファイルから上書き保存予約ファイルパス４０４の値を取得する。
【００３９】
次に、ユーザＢがＰＣ１００Ｂにおいて開いているオリジナルファイルを閉じたことを、ユーザＡのＰＣ１００Ａが検知するための処理（ステップＳ１００４〜ステップＳ１００５）について説明する。
【００４０】
まず、ステップＳ１００４において、制御部３０２Ａはオリジナルファイルに対する監視処理を開始する。本実施例では、制御部３０２Ａは、定期的にオリジナルファイルをポーリングすることにより監視処理を行う。
【００４１】
次に、ステップＳ１００５において、制御部３０２Ａは、監視しているオリジナルファイルがユーザＢ（ＰＣ１００Ｂ）によって閉じられたか否かを判定する。
ステップＳ１００５でＹＥＳ（ファイルが閉じられた）の場合、制御部はオリジナルファイルの監視処理を終了し、ステップＳ１００６へ進む。ＮＯ（ファイルが閉じられていない）の場合、制御部３０２Ａがオリジナルファイルの監視処理を継続するために、ステップＳ１００５へ戻る。
【００４２】
なお、ユーザＢ（ＰＣ１００Ｂ）が開いているオリジナルファイルが閉じられたことをＰＣ１００Ａにおいて検知するための手法は、ポーリングに限られるものではない。
例えば、ＰＣ１００Ｂのソフトウェア３００Ｂがネットワークフォルダ上のファイルを開いた場合、ネットワークフォルダにファイルが開かれている旨を示すための一時ファイルを作成および削除する手法がある。ＰＣ１００Ａは、サーバ１２０のＯＳが発行する一時ファイルに対する削除イベントを監視し、削除イベントを検知した場合にオリジナルファイルが閉じられた、と判定することができる。
また、その他の手法として、ＰＣ１００Ａが、サーバ１２０のＯＳが発行するオリジナルファイルの閉じるイベントを監視し、閉じるイベントを検知した場合にオリジナルファイルが閉じられた、と判定することもできる。
【００４３】
次に、ステップＳ１００６において、制御部３０２Ａは、上書き保存予約されていたファイルに対する上書き保存処理を行うサブルーチンを実行する。図５（ｂ）のフローチャートを用いて、上書き保存予約されていたファイルに対する上書き保存処理を行うサブルーチン（ステップＳ１１０１〜１１０６）について説明する。
【００４４】
まず、ステップＳ１１０１において、制御部３０２Ａは、ステップＳ１００４で監視していたオリジナルファイルが更新されたか否かを判定する。
ＹＥＳ（更新された）の場合、ステップＳ１１０３へ進む。ＮＯ（更新されていない）の場合、ステップＳ１１０２へ進む。
【００４５】
ここで、監視していたオリジナルファイルが更新されたかを判定する手法について説明する。
制御部３０２Ａは、ステップＳ１１０１時点のオリジナルファイルパス４０１の更新日時を取得し、その更新日時とオリジナルファイル更新日時４０３とを比較する。２つの更新日時が同じであれば、監視していたオリジナルファイルは更新されていない（オリジナルファイルは閲覧されていただけ）と判定する。２つの更新日時が異なっていれば、監視していたオリジナルファイルは更新されたと判定する。
【００４６】
ステップＳ１１０１でＮＯ（オリジナルファイルが更新されていない）の場合、ステップＳ１１０２において、制御部３０２は、一時フォルダに保存していた一時ファイルをオリジナルファイルに上書き保存する。
【００４７】
ステップＳ１１０１でＹＥＳの場合、オリジナルファイルが更新されているために、オリジナルファイルを上書き保存することはできない。そこで、ステップＳ１１０３において、表示部３０１Ａは、一時フォルダに保存していた一時ファイルによる上書き保存をしない旨のメッセージ（図８（ａ）のメッセージ８００）を表示する。
【００４８】
次に、ステップＳ１１０４において、制御部３０２Ａは、オリジナルフォルダパス４０２に上書き保存予約ファイルパス４０４の設定値を保存する。なお、保存時はオリジナルファイルのファイル名とは異なるファイル名で保存する。例えば、オリジナルファイルのファイル名が「sample.xlsx」である場合、フォイル名を「sample_(1).xlsx」として保存する。その後、ステップＳ１１０５に進む。
【００４９】
ステップＳ１１０２で一時ファイルをオリジナルファイルに上書き保存すると、次に、ステップＳ１１０５において、制御部３０２Ａは、上書き保存予約情報４００が存在するかを判定する。
ＹＥＳ（存在する）の場合、ステップＳ１１０６へ進む。ＮＯ（存在しない）の場合、図５のフローチャートの処理を終了する。
【００５０】
ステップＳ１１０５で上書き保存予約情報４００が存在する場合、ステップＳ１１０６において、制御部３０２は上書き保存予約情報４００を削除し、図５のフローチャートの処理を終了する。
【００５１】
以上のとおり、実施例１によれば、ネットワークフォルダ上のオリジナルファイルの状態に応じてファイルの上書き保存予約を実施する。
これにより、他のユーザがファイルを開いているためにファイルの上書き保存ができなかった場合、他のユーザがファイルを閉じることにより上書き保存ができるようになったことをユーザに通知する必要なく、自動的にファイルの上書き保存が実施される。また、上書き保存ができるようになった旨の通知を受けるために、ユーザがファイルを開き続けておく必要もない。
また、本実施例によれば、クライアントコンピュータ（ＰＣ１００Ａ）に存在するファイル管理ソフトウェア（例えば、ＯＳ標準機能のエクスプローラーからなるソフトウェア３００Ａ）が上書き保存予約を制御する。このため、サーバ１２０上にファイル管理システムを用意することが不要となる。さらに、サーバ１２０上にファイルを編集、保存するための各ソフトウェアを実装する必要もなくなる。
【００５２】
＜実施例２＞
実施例１では、他のユーザがファイルを開いているためにファイルの上書き保存ができない場合に、上書き保存予約処理を行う例について説明した。
しかしながら、実施例１では、上書き保存予約していたファイルの上書き保存処理が実施実行される前に、ユーザがＰＣを終了させた場合は、上書き保存予約していたファイルがオリジナルファイルに上書き保存されない。
【００５３】
そこで、実施例２では、上書き保存予約を行ったＰＣをユーザが終了させた場合、再びＰＣを起動させた時点において、予約されていたファイルの上書き保存予約処理を実施する。これにより、上書き保存予約処理が実施される前にユーザがＰＣを終了させたとしても、再びＰＣを起動させた時点において、確実に上書き保存予約処理が実施される。
なお、実施例２において、システムのハードウェア構成などは実施例１と同様であるため、これらについては説明を省略する。
【００５４】
＜上書き保存予約処理＞
図６は、実施例２において、ソフトウェア３００Ａにより実施される、ファイルの上書き保存予約処理のフローチャートである。ここでは、実施例１と同様に、ユーザＢが操作するＰＣ１００Ｂにおいて開かれているオリジナルファイルに対して、ＰＣ１００Ａを操作するユーザＡが編集を行い、上書き保存予約処理を行う例について説明する。
なお、本実施例におけるソフトウェア３００Ａは、ＯＳのブート時に自動起動するものとする。また、本フローチャートは、上書き保存予約を行ってからユーザＡがＰＣ１００Ａを終了し、その後に再びＰＣ１００Ａを起動した時点から開始する。
【００５５】
ユーザＡがＰＣ１００Ａを起動すると、ソフトウェア３００Ａが自動起動を開始し、ステップＳ２００１において、制御部３０２Ａは上書き保存予約情報４００が存在するか否かを判定する。
ＹＥＳ（存在する）の場合、ステップＳ２００２へ進む。ＮＯ（存在しない）の場合、図６のフローチャートの処理を終了する。
【００５６】
上書き保存予約情報４００が存在する場合、ステップＳ２００２において、制御部３０２Ａは上書き保存予約対象のオリジナルファイルが更新されたか否かを判定する。
ＹＥＳ（更新された）の場合、ステップＳ１１０３へ進む。ＮＯ（更新されていない）の場合、ステップＳ２００３へ進む。
【００５７】
オリジナルファイルが更新されていない場合、ステップＳ２００３において、制御部３０２Ａは、ＰＣ１００Ｂを操作するユーザＢによってオリジナルファイルが開かれているか否かを判定する。
ＹＥＳ（ファイルが開かれている）の場合、ステップＳ１００４へ進む。ＮＯ（ファイルが開かれていない）の場合、ステップＳ１００６へ進む。
これ以降の処理は、実施例１と同様である。
【００５８】
以上のとおり、実施例２では、ファイルの上書き保存予約を行ったＰＣを終了させた場合、その後に再びＰＣを起動した時点においてファイルの上書き保存予約処理を実施する。
これにより、上書き保存予約されているファイルの上書き保存処理が実行される前にＰＣを終了した場合でも、ＰＣの再起動後に、予約していたファイルの上書き保存を実施することができる。
【００５９】
＜実施例３＞
実施例２では、上書き保存予約していたファイルの上書き保存処理が実行される前に、ユーザがＰＣを終了させた場合に、上書き保存予約していたファイルをオリジナルファイルに上書き保存する処理について説明した。
しかしながら、実施例２では、ソフトウェア３００Ａが再び起動された際に、上書き保存予約していたファイルの上書き保存処理を実行することはできるが、ユーザがＰＣを再び起動しない限り、ファイルの上書き保存は行われない。例えば、ユーザが、ファイルの上書き保存予約をしてからＰＣを終了させた後、ＰＣを再び起動することなく１週間出張に行ってしまった場合などは、少なくとも１週間はファイルの上書き保存が実行されないという問題が発生する。
【００６０】
そこで、実施例３では、ファイルの上書き保存予約が行われたＰＣではなく、オリジナルファイルを開いているＰＣにおいて、ファイルの上書き保存予約処理を実施する。これにより、ファイルの上書き保存予約が行われたＰＣが再起動されることを待つことなく、予約していたファイルの上書き保存を実施することができる。
なお、実施例３においても、システムのハードウェア構成などは実施例１や実施例２と同様であるため、これらについては説明を省略する。
【００６１】
＜上書き保存予約処理＞
図７は、ソフトウェア３００Ａ，３００Ｂにより実施される、ファイルの上書き保存予約処理のフローチャートである。ここでは、ユーザＢが操作するＰＣ１００Ｂにおいて開かれているオリジナルファイルに対して、ＰＣ１００Ａを操作するユーザＡが編集を行い、上書き保存予約処理を行う例について説明する。
本実施例では、オリジナルファイルに対してＰＣ１００Ａで行われた上書き保存予約情報が存在する場合において、オリジナルファイルを開いているＰＣ１００Ｂにおいファイルの上書き保存予約処理が実施される。なお、図７（ａ）はＰＣ１００Ａにおいて実施される処理を示すフローチャートであり、図７（ｂ）はＰＣ１００Ｂにおいて実施される処理を示すフローチャートである。
【００６２】
まず、図７（ａ）を用いて、ユーザＡが操作するＰＣ１００Ａにおいて行われる処理について説明する。
ユーザＡがＰＣ１００Ａにおいてオリジナルファイルを開くと、ステップＳ３００１において、制御部３０２Ａは、他のユーザ（ここでは、ＰＣ１００Ｂを操作するユーザＢ）によってオリジナルファイルが開かれているか否かを判定する。
ＹＥＳ（ファイルが開かれている）の場合、ステップＳ３００２へ進む。ＮＯ（ファイルが開かれていない）の場合、図７（ａ）のフローチャートの処理を終了する。
【００６３】
オリジナルファイルが開かれている場合、ステップＳ３００２において、制御部３０２Ａは上書き保存予約情報４００が存在するか否かを判定する。
ＹＥＳ（存在する）の場合、ステップＳ３００５へ進む。ＮＯ（存在しない）の場合、ステップＳ３００３へ進む。
【００６４】
上書き保存予約情報４００が存在する場合、オリジナルファイルはユーザＡ及びユーザＢ以外の他のユーザによって上書き保存予約されている。そのため、ステップＳ３００５において、表示部３０１は、ユーザＡによる上書き保存予約をしない旨のメッセージ（図８（ｂ）のメッセージ８１０）を表示し、図７（ａ）のフローチャートの処理を終了する。
【００６５】
ステップＳ３００２で上書き保存予約情報４００が存在しなかった場合、ステップＳ３００３において、制御部３０２Ａは上書き保存できなかったファイルをネットワーク上の一時フォルダに保存する。
【００６６】
次に、ステップＳ３００４において、制御部３０２Ａは、上書き保存予約情報４００に各設定値４０１〜４０４を設定し、ネットワークフォルダに保存する。この時、制御部３０２Ａは、オリジナルファイルから、オリジナルファイルパス４０１、オリジナルフォルダパス４０２、オリジナルファイル更新日時４０３の各値を取得する。また、制御部３０２Ａは、ステップＳ３００３でネットワークフォルダに保存した一時ファイルから上書き保存予約ファイルパス４０４の値を取得する。
これで、図７（ａ）のフローチャートの処理を終了する。
【００６７】
次に、図７（ｂ）を用いて、ユーザＢが操作するＰＣ１００Ｂにおいて行われるファイルの上書き保存処理について説明する。
なお、本実施例においては、図７（ｂ）のフローチャートが開始する前、オリジナルファイルはＰＣ１００Ｂにおいて開かれている状態であるとする。
【００６８】
ユーザＢによりオリジナルファイルが閉じられると、ステップＳ３１０１において、制御部３０２Ｂは、上書き保存予約情報４００が存在するか否かを判定する。
ＹＥＳ（存在する）の場合、ステップＳ３１０２へ進む。ＮＯ（存在しない）の場合、図７（ｂ）のフローチャートの処理を終了する。
【００６９】
上書き保存予約情報４００が存在する場合、ステップＳ３１０２において、制御部３０２Ｂは、ステップＳ１００４で監視していたオリジナルファイルが更新されたかを判定する。
ＹＥＳ（更新された）の場合、図７（ｂ）のフローチャートの処理を終了する。ＮＯ（更新されていない）の場合、ステップＳ３１０３へ進む。
【００７０】
オリジナルファイルが更新されていない場合、ステップＳ３１０３において、制御部３０２Ｂは、ステップＳ３００３でネットワーク上の一時フォルダに保存していた一時ファイルをオリジナルファイルに上書き保存する。
次に、ステップＳ３１０４において、制御部３０２Ｂは上書き保存予約情報４００を削除する。これで、図７（ｂ）のフローチャートの処理を終了する。
【００７１】
以上のとおり、実施例３では、ファイルの上書き保存予約を行ったＰＣではなく、オリジナルファイルを開いているＰＣにおいて、ファイルの上書き保存を実施する。これにより、上書き保存予約を実施したＰＣが起動されなくても、ファイルの上書き保存が実施される。
【００７２】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上述の実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。すなわち、上述した各実施例及びその変形例を組み合わせた構成もすべて本発明に含まれるものである。
【符号の説明】
【００７３】
１０          情報処理システム
１００Ａ      クライアントコンピュータ（ＰＣ）
１００Ｂ      クライアントコンピュータ（ＰＣ）
１２０        ファイルサーバ（サーバ）
【図１】
2020095551.tif 000003
【図２】
2020095551.tif 000004
【図３】
2020095551.tif 000005
【図４】
2020095551.tif 000006
【図５】
2020095551.tif 000007
【図６】
2020095551.tif 000008
【図７】
2020095551.tif 000009
【図８】
2020095551.tif 000010