(57)【要約】【課題】  電子ファイルの第１および第２のバージョンを管理するための方法を提供すること。【解決手段】  本方法では、電子ファイルの第１および第２のバージョンが認識され、同期イベントが開始される。アプリケーションプログラムインタフェースが、第１のバージョンと第２のバージョンにアクセスし、それぞれに関連付けられた情報を比較し、結果を生成し、その結果を第１のソフトウェアアプリケーションにレポートする。第２のソフトウェアアプリケーションは、第２のソフトウェアアプリケーションの機能に従ってユーザインタフェースを生成し、ここで電子ファイルは第２のソフトウェアアプリケーションに関連付けられており、ユーザインタフェースがディスプレイデバイス上で表示される。【選択図】  図３
2004265420.tif 000002
【特許請求の範囲】
【請求項１】
電子ファイルの第１および第２のバージョンを管理するための方法であって、
第１のコンピュータ上で動作する第１のソフトウェアアプリケーションを使用して、前記第１のコンピュータ上の前記第１のバージョンを前記第２のバージョンと同期するために同期イベントを開始するステップと、
アプリケーションプログラムインタフェースに前記第１および第２のバージョンへアクセスさせるステップと、
前記第１および第２のバージョンのそれぞれに関連付けられた情報を比較し、結果を生成するステップと、
前記第１のソフトウェアアプリケーションに前記比較の前記結果をレポートするステップと、
第２のソフトウェアアプリケーションに、該第２のソフトウェアアプリケーションの機能に従ってユーザインタフェースを生成させるステップであって、前記電子ファイルが前記第２のソフトウェアアプリケーションに関連付けられているステップと、
前記ユーザインタフェースをディスプレイデバイス上で表示するステップと
を備えることを特徴とする方法。
【請求項２】
前記第１および第２のソフトウェアアプリケーションは同じアプリケーションである
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記比較するステップの前記結果は、前記第１および第２のバージョンの同期ステータスである
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記第２のバージョンが第２のコンピュータに記憶され、前記第１および第２のコンピュータが通信ネットワークによって動作可能に接続される
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記比較の前記結果が、前記電子ファイルの前記第１および第２のバージョンが同期されていないことを示しているとき、前記生成するステップは、前記第２のソフトウェアアプリケーションを使用して同期オプションを提示するステップをさらに含む
ことを特徴とする請求項１に記載の方法。
【請求項６】
同期オプションを提示する前記ステップは、
前記第２のソフトウェアアプリケーションによって同期オプションを生成するステップと、
前記同期オプションを、前記ユーザインタフェースによって提示させ、前記ディスプレイデバイス上で表示させるステップと、
オプション選択を受け取るステップと、
前記オプション選択に従って前記電子ファイルの前記第１および第２のバージョンを同期するステップと
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記第１および第２のバージョンを同期する前記ステップは、前記電子ファイルの前記第１のバージョンを前記電子ファイルの前記第２のバージョンで上書きするステップを含む
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記第１および第２のバージョンを同期する前記ステップは、前記第１および第２のバージョンを前記電子ファイルの第３のバージョンで上書きするステップを含み、前記第３のバージョンは、前記電子ファイルの前記第１のバージョンの一部分を含む
ことを特徴とする請求項６に記載の方法。
【請求項９】
前記第１および第２のバージョンを同期する前記ステップは、前記第１および第２のバージョンを前記電子ファイルの第３のバージョンで上書きするステップを含み、前記第３のバージョンは、前記電子ファイルの前記第２のバージョンの一部分を含む
ことを特徴とする請求項６に記載の方法。
【請求項１０】
前記第１および第２のバージョンを同期する前記ステップは、前記ユーザインタフェースから受け取った入力に従って前記第１および第２のバージョンを第３のバージョンにマージし、前記第１および第２のバージョンを前記第３のバージョンで上書きするステップを含む
ことを特徴とする請求項６に記載の方法。
【請求項１１】
前記第２のソフトウェアアプリケーションを使用して、前記第１および第２のバージョンを開くステップと、
前記第２のソフトウェアアプリケーションによって生成された同期オプションを、前記ユーザインタフェースを使用して提示するステップと、
前記ユーザインタフェースからユーザ入力を受け取るステップと、
前記第２のソフトウェアアプリケーションを使用して、前記ユーザ入力を処理するステップと、
前記ユーザ入力に従って前記第１および第２のバージョンを同期するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項１２】
同期オプションを提示する前記ステップは、前記第１および第２のバージョンを前記ユーザインタフェース内で表示するステップをさらに含む
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第１および第２のバージョンを同期する前記ステップは、ユーザ入力に従って前記第１および第２のバージョンを上書きするステップを含む
ことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが、前記電子ファイルの前記第２のバージョンを示す前記電子ファイルの前記第１のバージョンに関連付けられた情報を検出したことに応じて発生する
ことを特徴とする請求項１に記載の方法。
【請求項１５】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが前記電子ファイルの前記第１のバージョンを開いたことに応じて発生する
ことを特徴とする請求項１に記載の方法。
【請求項１６】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが前記第１のコンピュータの記憶デバイスに前記電子ファイルの前記第１のバージョンを保存したことに応じて発生する
ことを特徴とする請求項１に記載の方法。
【請求項１７】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが前記第１バージョンおよび第２のバージョンを認識したことに応じて発生する
ことを特徴とする請求項１に記載の方法。
【請求項１８】
電子ファイルの第１および第２のバージョンを管理するための方法であって、
前記第１および第２のバージョンにアクセスし比較するために、第１のソフトウェアアプリケーションから要求を受け取るステップと、
前記第１および第２のバージョンにアクセスするステップと、
前記第１および第２のバージョンのそれぞれに関連付けられた情報を比較するステップと、
前記第１および第２のバージョンが同期されているかどうか判定し、結果を生成するステップと、
前記第１のソフトウェアアプリケーションに前記比較の前記結果をレポートするステップと
を備えることを特徴とする方法。
【請求項１９】
要求を受け取る前記ステップは、前記第１および第２のバージョンに対応する識別情報を受け取るステップをさらに含む
ことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記第２のバージョンが第２のコンピュータに記憶され、前記第１および第２のコンピュータが通信ネットワークによって動作可能に接続される
ことを特徴とする請求項１８に記載の方法。
【請求項２１】
前記第１および第２のバージョンにアクセスするための、また前記第１および第２のバージョンに関連するタスクを実行するための第２の要求を前記第１のソフトウェアアプリケーションから受け取るステップと、
前記第１および第２のバージョンにアクセスし、前記タスクを実行するステップと
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２２】
第２のソフトウェアアプリケーションによって受け取られたユーザ入力に従って前記第１および第２のバージョンを上書きするために、前記電子ファイルに関連付けられた前記第２のソフトウェアアプリケーションから要求を受け取るステップと、
前記第１および第２のバージョンを上書きするステップと
をさらに備えることを特徴とする請求項１８に記載の方法。
【請求項２３】
前記第１および第２のソフトウェアアプリケーションは同じアプリケーションである
ことを特徴とする請求項１８に記載の方法。
【請求項２４】
電子ファイルの第１および第２のバージョンを管理するための方法を実行するコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体であって、前記方法は、
第１のコンピュータ上で動作する第１のソフトウェアアプリケーションを使用して、前記第１のコンピュータ上の前記第１のバージョンを前記第２のバージョンと同期するために同期イベントを開始するステップと、
アプリケーションプログラムインタフェースに前記第１および第２のバージョンへアクセスさせるステップと、
前記第１および第２のバージョンのそれぞれに関連付けられた情報を比較し、結果を生成するステップと、
前記第１のソフトウェアアプリケーションに前記比較の前記結果をレポートするステップと、
第２のソフトウェアアプリケーションに、前記第２のソフトウェアアプリケーションの機能に従ってユーザインタフェースを生成させるステップであって、前記電子ファイルが前記第２のソフトウェアアプリケーションに関連付けられているステップと、
前記ユーザインタフェースをディスプレイデバイス上で表示するステップと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２５】
前記第１および第２のソフトウェアアプリケーションは同じアプリケーションである
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項２６】
前記比較するステップの前記結果は、前記第１および第２のバージョンの同期ステータスである
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項２７】
前記第２のバージョンが第２のコンピュータに記憶され、前記第１および第２のコンピュータが通信ネットワークによって動作可能に接続される
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項２８】
前記比較の前記結果が、前記電子ファイルの前記第１および第２のバージョンが同期されていないことを示しているとき、前記生成するステップは、前記第２のソフトウェアアプリケーションを使用して同期オプションを提示するステップをさらに含む
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項２９】
同期オプションを提示する前記ステップは、
前記第２のソフトウェアアプリケーションによって同期オプションを生成するステップと、
前記同期オプションを、前記ユーザインタフェースによって提示させ、前記ディスプレイデバイス上で表示させるステップと、
オプション選択を受け取るステップと、
前記オプション選択に従って前記電子ファイルの前記第１および第２のバージョンを同期するステップと
をさらに含むことを特徴とする請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３０】
前記第１および第２のバージョンを同期する前記ステップは、前記電子ファイルの前記第１のバージョンを前記電子ファイルの前記第２のバージョンで上書きするステップを含む
ことを特徴とする請求項２９に記載のコンピュータ読み取り可能な記録媒体。
【請求項３１】
前記第１および第２のバージョンを同期する前記ステップは、前記第１および第２のバージョンを前記電子ファイルの第３のバージョンで上書きするステップを含み、前記第３のバージョンは、前記電子ファイルの前記第１のバージョンの一部分を含む
ことを特徴とする請求項２９に記載のコンピュータ読み取り可能な記録媒体。
【請求項３２】
前記第１および第２のバージョンを同期する前記ステップは、前記第１および第２のバージョンを前記電子ファイルの第３のバージョンで上書きするステップを含み、前記第３のバージョンは、前記電子ファイルの前記第２のバージョンの一部分を含む
ことを特徴とする請求項２９に記載のコンピュータ読み取り可能な記録媒体。
【請求項３３】
前記第１および第２のバージョンを同期する前記ステップは、前記ユーザインタフェースから受け取った入力に従って前記第１および第２のバージョンを第３のバージョンにマージし、前記第１および第２のバージョンを前記第３のバージョンで上書きするステップを含む
ことを特徴とする請求項２９に記載のコンピュータ読み取り可能な記録媒体。
【請求項３４】
前記方法は、
前記第２のソフトウェアアプリケーションを使用して、前記第１および第２のバージョンを開くステップと、
前記第２のソフトウェアアプリケーションによって生成された同期オプションを、前記ユーザインタフェースを使用して提示するステップと、
前記ユーザインタフェースからユーザ入力を受け取るステップと、
前記第２のソフトウェアアプリケーションを使用して、前記ユーザ入力を処理するステップと、
前記ユーザ入力に従って前記第１および第２のバージョンを同期するステップとをさらに含む
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項３５】
同期オプションを提示する前記ステップは、前記第１および第２のバージョンを前記ユーザインタフェース内で表示するステップをさらに含む
ことを特徴とする請求項３４に記載のコンピュータ読み取り可能な記録媒体。
【請求項３６】
前記第１および第２のバージョンを同期する前記ステップは、ユーザ入力に従って前記第１および第２のバージョンを上書きするステップを含む
ことを特徴とする請求項３４に記載のコンピュータ読み取り可能な記録媒体。
【請求項３７】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが、前記電子ファイルの前記第２のバージョンを示す前記電子ファイルの前記第１のバージョンに関連付けられた情報を検出したことに応じて発生する
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項３８】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが前記電子ファイルの前記第１のバージョンを開いたことに応じて発生する
ことを特徴とする請求項２４に記載の方法。
【請求項３９】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが前記第１のコンピュータの記憶デバイスに前記電子ファイルの前記第１のバージョンを保存したことに応じて発生する
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項４０】
前記同期イベントを開始する前記ステップは、前記第１のソフトウェアアプリケーションが前記第１バージョンおよび第２のバージョンを認識したことに応じて発生する
ことを特徴とする請求項２４に記載のコンピュータ読み取り可能な記録媒体。
【請求項４１】
電子ファイルの第１および第２のバージョンを管理するための方法を実行するコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体であって、前記方法は、
前記第１および第２のバージョンにアクセスし比較するために、第１のソフトウェアアプリケーションから要求を受け取るステップと、
前記第１および第２のバージョンにアクセスするステップと、
前記第１および第２のバージョンのそれぞれに関連付けられた情報を比較するステップと、
前記第１および第２のバージョンが同期されているかどうか判定し、結果を生成するステップと、
前記第１のソフトウェアアプリケーションに前記比較の前記結果をレポートするステップと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項４２】
要求を受け取る前記ステップは、前記第１および第２のバージョンに対応する識別情報を受け取るステップをさらに含む
ことを特徴とする請求項４１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４３】
前記第２のバージョンが第２のコンピュータに記憶され、前記第１および第２のコンピュータが通信ネットワークによって動作可能に接続される
ことを特徴とする請求項４１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４４】
前記方法は、
前記第１および第２のバージョンにアクセスするための、また前記第１および第２のバージョンに関連するタスクを実行するための第２の要求を前記第１のソフトウェアアプリケーションから受け取るステップと、
前記第１および第２のバージョンにアクセスし、前記タスクを実行するステップと
をさらに備えることを特徴とする請求項４１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４５】
前記方法は、
第２のソフトウェアアプリケーションによって受け取られたユーザ入力に従って前記第１および第２のバージョンを上書きするために、前記電子ファイルに関連付けられた前記第２のソフトウェアアプリケーションから要求を受け取るステップと、
前記第１および第２のバージョンを上書きするステップと
をさらに備えることを特徴とする請求項４１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４６】
前記第１および第２のソフトウェアアプリケーションは同じアプリケーションである
ことを特徴とする請求項４１に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ファイルのバージョンを管理するための方法に関する。より詳細には、本発明は、同期イベント中にファイルのバージョンを一致させるために関連するアプリケーション機能を使用する電子ファイルのバージョンを管理するための方法及び記録媒体に関する。
【背景技術】
【０００２】
ネットワーク化されたコンピュータ環境において、コンピュータユーザがネットワーク上の別のユーザと共に電子文書を共同制作することは日常茶飯事である。そのようなネットワークは、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネットなどとすることができる。そのような共同制作時には、各ユーザは、一般的なアプリケーションソフトウェア、または共同制作の対象であるファイルのタイプに合わせて特に設計されたソフトウェアなど、ソフトウェアアプリケーションを使用することによって電子ファイルを作成および編集することができる。
【０００３】
共同制作は、そのファイルを共同制作しているあらゆるユーザにとってアクセス可能であるロケーション内でマスターバージョンの電子ファイルを維持することによって可能にすることができる。従来のネットワーク化されたコンピュータ環境では、サーバコンピュータと、１つまたは複数のユーザコンピュータとが存在する可能性がある。サーバは、ユーザコンピュータ間で通信リンクを維持し、各ユーザコンピュータにとってアクセス可能であり、したがって、その諸ユーザによって共同制作されるファイルのマスターバージョンを記憶し、制御することができる。電子ファイルを共同制作するとき、ユーザは、まずサーバ上のそのファイルのマスターバージョンにアクセスし、次いでそのユーザのコンピュータにそのファイルを複写することができる。次いで、ユーザは、アプリケーションによってそのユーザに使用可能にされている任意の方法でファイルを改変することにより、そのファイルに対して作業することができる。たとえば、アプリケーションがワードプロセッサ、スプレッドシート、データベース、および／または類似物である場合には、アプリケーションは、編集、複写、削除、および／またはそのようなことなどのような、タスクを実行するための手段を提供することができる。任意の改変の完了時に、そのような改変をファイルに保持したいと望む場合には、ユーザは、そのユーザのコンピュータに記憶されているバージョンのファイルに変更を保存することができる。サーバコンピュータが存在しないシステムなど他のシステムでは、マスターバージョンをユーザコンピュータに記憶することができる。
【０００４】
サーバを介して他のユーザと共に共同制作するために、変更済みバージョンをユーザのコンピュータに記憶しているユーザは、そのコンピュータ上のバージョンのファイルをサーバ上のマスターバージョンのファイルと同期しなければならない。電子ファイルの複数のバージョンをその最も単純な形態で同期することにより、同期された後で、確実にすべてのバージョンが同一になる。このようにして、同期を実行するユーザは、共同制作に参加している他のユーザが、新たに改変されたファイルにアクセスするのを可能にすることになる。従来、同期は、同期ユーティリティによって実行される。同期ユーティリティは、一般にアプリケーションから別個であり、多くの場合、ユーザコンピュータのオペレーティングシステムの一部である。従来の同期ユーティリティは、所定の時間で、またはオペレーティングシステムによって要求されたとき同期を実行する。
【０００５】
従来の同期では、同期ユーティリティは、そのユーティリティが理解することが可能なコピーについてのどのような情報をも使用して、ユーザバージョンのファイルをマスターバージョンのファイルに比較することになる。典型的には、そのような情報は、各バージョンの最後の更新の日付および／または時刻に制限される。日付および／または時刻が同一である場合には、同期ユーティリティは両バージョンが同一であり、したがって同期されており、さらなる処置は必要とされないと判定する。しかし、日付および／または時刻の間に不一致があった場合には、同期ユーティリティは、同期イベントを駆動しているコンピュータに関連付けられたユーザにユーザインタフェースを提供する。ユーザインタフェースは、従来、不一致があることの手短な通知と、ファイルの各バージョンについてのそのような最後の更新の日付および／または時刻と、ファイルのどのコピーをユーザが保ちたいと望むかについてユーザから指示を求める要求とをユーザに提供する。ユーザがユーザバージョンを保つことを選んだ場合には、同期ユーティリティは、ユーザバージョンでマスターバージョンを上書きし、それにより、ユーザバージョンをサーバ上の新しいマスターバージョンにする。ユーザがマスターバージョンを保ちたいと望んでいる場合には、さらなる処置が行われない、またはユーザバージョンがマスターバージョンで上書きされる。いくつかのユーザインタフェースでは、どのバージョンをマスターバージョンにするか選択するのではなく、同期を打ち切るためのオプションがユーザに提示される。
【０００６】
上述の従来の同期は、重大な欠点を有する。従来の同期ユーティリティは、電子ファイルに関して機能が制限されているため、従来のユーティリティによって生成されるユーザインタフェースは、行動方針を選択するようにユーザを促すとき、ユーザに限られた量の情報を提示するだけである。したがって、そのような限られた量の情報は、どの行動方針をとるかについて、知識のない、おそらくは誤った判断をそのようなユーザにさせる可能性がある。たとえば、第１のユーザが以前同期されたユーザバージョンのファイルを改変する可能性があり、次いで、何らかの時点で従来の同期ユーティリティが同期イベントを開始する。ユーザは、従来のユーザインタフェースによって通知されたとき、ユーザバージョンがマスターバージョンより後で更新されたと理解し、したがって、マスターバージョンを上書きしようと決める可能性がある。しかし、従来のユーザインタフェースによって提示された情報では、そのユーザがユーザバージョンを改変し始めて以降マスターバージョンが変更されないままであるかどうかがそのユーザに伝えられない。これは、第２のユーザが別のユーザバージョンに改変を加え、次いで、第１のユーザの同期の前にそのユーザバージョンをマスターバージョンと同期している可能性があるという問題状況に通じる。第１のユーザのバージョンは、より新しく、より後で更新されたが、マスターバージョンは、第１のユーザが最初にファイルをサーバから複写したとき存在しなかった、第２のユーザによる改変を受けている。その結果、マスターバージョンに対する第２のユーザの改変は、第１のユーザが同期を完了した後で失われる。
【０００７】
上記の状況は、従来の同期ユーティリティが、そのファイルに関連するアプリケーションに固有の全範囲の機能を有してはおらず、そのため、ユーティリティが同期イベント中にその機能を使用できないことによって引き起こされる。したがって、ユーティリティは、電子ファイルの様々なバージョンに関して、たとえば、上記で論じたように各バージョンのファイルに対する最後の更新の日付および／または時刻など、非常に限られた量の情報をユーザに提供することができるにすぎない。
【０００８】
従来の同期ユーティリティの限られた機能によって引き起こされる別の欠点は、同期中にユーザにとって使用可能な複数の行動方針を欠いていることである。たとえば、上記で論じた例では、ユーザインタフェースは、マスターコピーをユーザコピーで更新するか、ユーザコピーをマスターコピーで更新するか、それとも打ち切るか、という３つのオプションを提示するだけである。
【０００９】
従来の同期ユーティリティの他の欠点は、そのようなユーティリティがそのようなアプリケーションと一体化されていないことに起因する。たとえば、上記で論じたように、従来の同期ユーティリティは、ユーザコンピュータまたはサーバコンピュータのオペレーティングシステムの一部である。したがって、従来、同期プロセスは、またどの適用可能なユーザインタフェースも、アプリケーションのユーザ体験の外で行われる。これは、アプリケーションに熟達しているかもしれないがオペレーティングシステムのユーティリティに熟達していないユーザの間で混乱を引き起こす可能性がある。さらに、一体化されていないことの結果として、同期は、そのようなイベントが発生するのに最適でないときに同期ユーティリティによって開始される可能性がある。従来の同期ユーティリティの他の欠点は、そのようなユーティリティをソフトウェアアプリケーションのコンポーネントとして使用することができないことである。たとえば、従来の方法を使用すると、コンピュータプログラマは、電子ファイルの複数のバージョンを一致させるために、その電子ファイルに適した第２のアプリケーションを使う能力を有する同期ユーティリティを使用する、第１のソフトウェアアプリケーションを作成することができない。したがって、同期中にファイルのコピー間の衝突を解決するために、関連するソフトウェアアプリケーション機能を使用する効率的な手段が求められている。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
【００１１】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、アプリケーション内でファイル複製を管理する電子ファイルのバージョンを管理するための方法を提供することにある。
【課題を解決するための手段】
【００１２】
前述に鑑みて、本発明は、アプリケーションプログラムインタフェースをソフトウェアアプリケーションと一体化し、アプリケーションのユーザ体験内にあるままで、アプリケーションがファイル同期プロセスを要求および制御することを可能にする方法を提供する。本発明は、電子ファイルの第１および第２のバージョンを管理するための方法を提供する。本方法では、電子ファイルの第１のバージョンと第２のバージョンが認識され、第１のコンピュータ上で動作する第１のソフトウェアアプリケーションを使用して同期イベントが開始される。アプリケーションプログラムインタフェースが、第１のバージョンと第２のバージョンにアクセスし、それぞれに関連付けられた情報を比較し、結果を生成し、その結果を第１のソフトウェアアプリケーションにレポートする。第２のソフトウェアアプリケーションは、第２のソフトウェアアプリケーションの機能に従ってユーザインタフェースを生成し、ここで電子ファイルは第２のソフトウェアアプリケーションに関連付けられ、ユーザインタフェースがディスプレイデバイス上で表示される。
【００１３】
本発明はまた、同期オプションを生成し、ユーザインタフェースと共にそのオプションを提示し、ユーザインタフェースをディスプレイデバイス上で表示するために第２のソフトウェアアプリケーションを提供する。第２のソフトウェアアプリケーションはまた、オプション選択を受け取ることができ、それに応じて電子ファイルの第１のバージョンと第２のバージョンを同期する。本発明はさらに、第１のソフトウェアアプリケーションと第２のソフトウェアアプリケーションとを同じソフトウェアアプリケーションとすることができることを定める。アプリケーションは、第１のバージョンと第２のバージョンに関してユーザに任意の量の情報を提供することができ、ユーザは、任意の数またはタイプの同期選択を入力することができる。一実施形態では、ユーザは、第１もしくは第２のバージョン、または両方の任意の部分を含む、あるいは含まない第３のバージョンを作成することができる。アプリケーションは、ユーザの要求時など任意の時点で同期を開始することができる。本発明の追加の特徴および利点が以下の説明の中で述べられている。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。前述の概要、ならびに以下の好ましい実施形態の詳細な説明は、添付の図面と併せ読めば、よりよく理解できる。本発明について例示するために、図面内で本発明の例示的な実施形態が示されているが、本発明は、開示されている特定の方法および手段に限定されない。
【００１５】
概要 
本発明は、アプリケーションプログラムインタフェースをソフトウェアアプリケーションと一体化し、アプリケーションのユーザ体験内にあるままで、アプリケーションがファイル同期プロセスを要求および制御することを可能にする方法を提供する。本発明は、電子ファイルの第１および第２のバージョンを管理するための方法を提供する。本方法では、電子ファイルの第１のバージョンと第２のバージョンが認識され、第１のコンピュータ上の第１のバージョンを第２のバージョンと同期するための同期イベントが、第１のコンピュータ上で動作する第１のソフトウェアアプリケーションを使用して開始される。アプリケーションプログラムインタフェースが第１のバージョンと第２のバージョンにアクセスし、第１のバージョンと第２のバージョンのそれぞれに関連付けられた情報が比較され、結果が生成される。比較の結果は、第１のソフトウェアアプリケーションにレポートされる。第２のソフトウェアアプリケーションは、第２のソフトウェアアプリケーションの機能に従ってユーザインタフェースを生成させられ、ここで電子ファイルは第２のソフトウェアアプリケーションに関連付けられ、ユーザインタフェースがディスプレイデバイス上で表示される。
【００１６】
本発明はまた、同期オプションを生成するために、また、同期オプションをユーザインタフェースによって提示させ、ディスプレイデバイス上で表示させるために第２のソフトウェアアプリケーションを提供する。第２のソフトウェアアプリケーションはまた、オプション選択を受け取り、オプション選択に従って電子ファイルの第１のバージョンと第２のバージョンを同期する。本発明はさらに、第１のソフトウェアアプリケーションと第２のソフトウェアアプリケーションを同じソフトウェアアプリケーションとすることができ、したがって、すべてのステップを単一のアプリケーションによって実行することができることを定める。
【００１７】
アプリケーションは、第１のバージョンと第２のバージョンに関してユーザに任意の量の情報を提供することができ、ユーザは、任意の数またはタイプの同期選択を入力することができる。一実施形態では、ユーザは、第１もしくは第２のバージョン、または両方の任意の部分を含む、あるいは含まない第３のバージョンを作成することができる。アプリケーションは、ユーザの要求時など任意の時点で同期を開始することができる。
【００１８】
例示的なコンピューティング環境 
図１は、本発明を実施することができる好適なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、好適なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどのような制限も示唆するものではに。コンピューティング環境１００は、例示的な動作環境に示されている構成要素のいずれか１つまたは組合せに関してどんな依存性も要件も有すると解釈すべきでない。
【００１９】
本発明は、多数の他の汎用または専用コンピューティングシステム環境または構成と共に動作可能である。本発明と共に使用するのに適している可能性のある周知のコンピューティングシステム、環境、および／または構成の例には、それだけには限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ（personal computer）、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００２０】
本発明について、コンピュータによって実行される、プログラムモジュールなどコンピュータ実行可能命令の一般的な状況で述べることができる。一般に、プログラムモジュールは、特定のタスクを実行する、あるいは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明はまた、通信ネットワークまたは他のデータ伝送媒体を介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境内で実施することができる。分散コンピューティング環境では、プログラムモジュールや他のデータは、メモリ記憶デバイスを含むローカルとリモート双方のコンピュータ記憶媒体内に置かれてもよい。
【００２１】
図１を参照すると、本発明を実施するための例示的なシステムが、コンピュータ１１０の形態で汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、それだけには限らないが、プロセッサ１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素をプロセッサ１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺機器バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例を挙げると、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、および（メザニンバスとしても知られる）ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００２２】
コンピュータ１１０は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体と不揮発性媒体、リムーバブルとリムーバブルノンリムーバブルの媒体を共に含む。限定ではなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含む。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、リムーバブルとリムーバブルノンリムーバブルの媒体が共に含まれる。コンピュータ記憶媒体には、それだけには限らないが、ＲＡＭ（random access memory）、ＲＯＭ（read only memory）、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用することができ、コンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構など変調データ信号に統合し、任意の情報送達媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するようにその特性の１つまたは複数が設定された、または変化した信号を意味する。限定ではなく例を挙げると、通信媒体は、有線ネットワークまたは直接配線接続など有線媒体と、音響、ＲＦ（radio frequencies）、赤外線および他の無線媒体など無線媒体とを含む。上記のいずれかの組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００２３】
システムメモリ１３０は、ＲＯＭ１３１およびＲＡＭ１３２など揮発性および／または不揮発性メモリの形態でコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（Basic Input/Output System）１３３は、一般にＲＯＭ１３１内に記憶されている。一般にＲＡＭ１３２は、プロセッサ１２０によって直ちにアクセス可能な、かつ／または現在動作されているデータおよび／またはプログラムモジュールを含む。限定ではなく例を挙げると、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７を示す。
【００２４】
コンピュータ１１０はまた、他のリムーバブル／リムーバブルノンリムーバブル、揮発性／不揮発性コンピュータ記憶媒体を含むことができる。例にすぎないが、図１は、リムーバブルノンリムーバブルの不揮発性磁気媒体との間で読出しまたは書込みをするハードディスクドライブ１４０、リムーバブルの不揮発性磁気ディスク１５２との間で読出しまたは書込みをする磁気ディスクドライブ１５１、ＣＤ−ＲＯＭまたは他の光媒体などリムーバブルの不揮発性光ディスク１５６との間で読出しまたは書込みをする光ディスクドライブ１５５を示す。例示的な動作環境内で使用することができる他のリムーバブル／リムーバブルノンリムーバブル、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。一般にハードディスクドライブ１４１は、インタフェース１４０などリムーバブルノンリムーバブルメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般に、インタフェース１５０などリムーバブルメモリインタフェースによってシステムバス１２１に接続される。
【００２５】
上記で論じ、図１に示されたドライブとその関連コンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータを記憶する。たとえば、図１では、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７を記憶して示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７と同じとすることも異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７は、最低でも異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード１６２、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１など、入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらの、また他の入力デバイスは、システムバスに結合されるユーザ入力インタフェース１６０を介してプロセッサ１２０に接続されることがしばしばであるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインタフェースおよびバス構造によって接続することができる。モニタ１９１または他のタイプのディスプレイデバイスもまた、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータはまた、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスを含むことができ、これらは、出力周辺機器インタフェース１９５を介して接続することができる。
【００２６】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータに対する論理接続を使用してネットワーク環境内で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードとすることができ、図１には、メモリ記憶デバイス１８１だけが示されているが、一般に、コンピュータ１１０に関して上述した要素の多数または全部を含む。図の論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１と広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、事務所、全社コンピュータネットワーク、イントラネット、インターネットで普通である。
【００２７】
コンピュータ１１０は、ＬＡＮネットワーク環境内で使用されるとき、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。コンピュータ１１０は、ＷＡＮネットワーク環境内で使用されるとき一般に、インターネットなどＷＡＮ１７３を介して通信を確立するためのモデム１７２または他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、パーソナルコンピュータ１１０に関して図示されたプログラムモジュール、またはその一部分を、リモートメモリ記憶デバイス内に記憶することができる。限定ではなく例を挙げると、図１は、メモリデバイス１８１に常駐するリモートアプリケーションプログラム１８５を示す。図１のネットワーク接続は例であり、コンピュータ間で通信リンクを確立する他の手段を使用することができることは理解されよう。
【００２８】
例示的な分散コンピューティングフレームワークまたはアーキテクチャ 
パーソナルコンピューティングとインターネットを集中させるという点から、様々な分散コンピューティングフレームワークが開発されており、また開発されつつある。個人も法人ユーザも平等に、アプリケーションとコンピューティングデバイス用にシームレスに相互動作可能な、ウェブによって使用可能にされるインタフェースを備え、コンピューティング活動をますますウェブブラウザ指向またはネットワーク指向にしている。
【００２９】
たとえば、ＭＩＣＲＯＳＯＦＴ（登録商標）の．ＮＥＴプラットフォームは、サーバと、ウェブをベースとするデータ記憶装置などビルディングブロックサービスと、ダウンロード可能なデバイスソフトウェアとを含む。一般的に言うと、．ＮＥＴプラットフォームは、（１）全範囲のコンピューティングデバイスを一緒に動作させ、また、それらすべてに対してユーザ情報を自動的に更新および同期させる能力、（２）ＨＴＭＬ（Hyper Text Markup Language）ではなくＸＭＬ（eXtensible [eXtended] Markup Language）をより多用することによって可能にされる、ウェブサイトのための対話性の高められた機能、（３）たとえば電子メールなど様々なアプリケーション、またはＯｆｆｉｃｅ．ＮＥＴなどソフトウェアを管理するための中央開始点からユーザへの製品およびサービスのカスタマイズされたアクセスおよび送達を特徴とするオンラインサービス、（４）情報へのアクセスの効率および手軽さ、ならびにユーザとデバイスの間での情報の同期性を高める集中データ記憶装置、（５）電子メール、ファックス、電話など様々な通信媒体を一体化する能力、（６）開発者に対し、再使用可能なモジュールを作成し、それによって生産性を高め、プログラミングの誤りの数を低減する能力、（７）さらに多数の他のプラットフォーム間一体化機能を提供する。
【００３０】
本明細書では、例示的な実施形態がコンピューティングデバイスに常駐するソフトウェアと共に述べられているが、本発明の１つまたは複数の部分はまた、．ＮＥＴの言語およびサービスすべてによって、またさらに他の分散コンピューティングフレームワーク内でサービスを実行し、．ＮＥＴの言語およびサービスすべてにおいて、またさらに他の分散コンピューティングフレームワーク内でサービスをサポートし、．ＮＥＴの言語およびサービスすべてを介して、またさらに他の分散コンピューティングフレームワーク内でサービスにアクセスすることができるように、オペレーティングシステム、ＡＰＩ（Application Programming Interface）、または、コプロセッサと要求元オブジェクトとの間の「仲介者」オブジェクトを介して実施することができる。
【００３１】
例示的な実施形態  
本発明によれば、電子ファイルが複数のバージョンの形に形成されたとき、そのファイルに関連付けられたソフトウェアアプリケーションが複数のバージョンを同期するプロセスを制御できるように、アプリケーションプログラムインタフェースを構成することができる。一実施形態では、アプリケーションは同期を自動的に開始することができ、一方、別の実施形態では、アプリケーションは、ユーザ入力に基づいて同期を開始することができる。別の実施形態では、アプリケーションは、アプリケーション機能によって提供された同期オプションをユーザに提示し、また、ユーザがオプションを選択し、アプリケーション機能を使用してタスクを実行することを可能にする。別の実施形態では、第１のアプリケーションが同期を開始し、一方、第２のアプリケーションが同期オプションをユーザに提示する。
【００３２】
次いで、図２を参照すると、第１のコンピュータ２１０は、記憶デバイス２１８と動作可能に通信する第１のプロセッサ２２０を備える。第１のコンピュータ２１０は、汎用デスクトップもしくはポータブルコンピュータ、ワークステーション、専門コンピューティングデバイスおよび／または類似物とすることができる。同様に、第１のプロセッサ２２０は、汎用コンピュータプロセッサ、専門プロセッサ、プロセッサ群のネットワークなどとすることができる。ディスプレイデバイス２３０が第１のコンピュータ２１０に動作可能に関連付けられている。ディスプレイデバイス２３０は、たとえばモニタ、スピーカなど、ユーザにオプションなどを提示するどの手段とすることもできる。任意の有線または無線接続手段により、第１のコンピュータ２１０にディスプレイデバイス２３０をそのように動作可能に関連付けることができる。図２では、ディスプレイデバイス２３０が第１のコンピュータ２１０内にあるように示されているが、ディスプレイデバイス２３０は、第１のプロセッサ２２０と動作可能に通信するどこにでも位置することができ、リモート地などを含む。
【００３３】
記憶デバイス２１８は、ハードドライブ、ＣＤ−ＲＯＭ、磁気ディスク、ＤＶＤ、ＲＡＭおよび／または類似物とすることができる。ディスプレイデバイス２３０と同様に、記憶デバイス２１８は、第１のプロセッサ２２０と動作可能に通信するどこにでも位置することができる。そのような状況における動作可能な通信は、有線、無線、またはその任意の組合せとすることができる。電子ファイルの第１のバージョン２１２が記憶デバイス２１８内に含まれている。そのような第１のバージョン２１２は、たとえば、ワードプロセッサ用文書、スプレッドシート、データベース、および／または類似物など、どのタイプの電子ファイルとすることもできる。
【００３４】
第１のアプリケーション２０８および第２のアプリケーション２１４は、記憶デバイス２１８内に記憶することができる。第１のアプリケーション２０８および第２のアプリケーション２１４は、たとえば、ワードプロセッサ、スプレッドシート、データベース、プログラムされたスクリプト、専門ソフトウェアなど、どのタイプのコンピュータ実行可能命令とすることもできる。以下で論じるように、第１のアプリケーション２０８と第２のアプリケーション２１４が共に存在する実施形態では、第２のアプリケーション２１４だけが電子ファイルに適合することを必要とする。別法として、やはり以下で論じるように、第１のアプリケーション２０８と第２のアプリケーション２１４を同じアプリケーションとすることができる。また、第１のアプリケーション２０８と第２のアプリケーション２１４の一方は、またはどちらも、記憶デバイス２１８の外に位置することができる。というのは、どちらのアプリケーションも、第１のコンピュータ２１０と動作可能に通信することを必要とするだけだからである。
【００３５】
アプリケーションプログラムインタフェース２１６は、同期するために電子ファイルの複数のコピーをチェックおよび比較するように適合された任意のタイプのコンピュータ実行可能命令であり、電子ファイルの複数のコピーを同期するために特に設計された独立ソフトウェア、別のアプリケーションのコンポーネントとして動作するソフトウェアユーティリティ、第１または第２のアプリケーション２０８、２１４の一体化コンポーネント、および／または類似物とすることができる。アプリケーションプログラムインタフェース２１６はまた、同期に関連することもしないこともある追加のタスクを実行することができる。第１のバージョン２１２、第１のアプリケーション２０８、第２のアプリケーション２１４、アプリケーションプログラムインタフェース２１６は、同じ記憶デバイス２１８内に、または、任意の数の様々な記憶デバイス２１８内で、もしくはそれらに渡って常駐することができる。
【００３６】
第２のコンピュータ２２２は、第２のプロセッサ２２４と、第１のバージョン２１２に関連して上記で論じた電子ファイルの第２のバージョン２２６を含む記憶デバイス２２８とを備える。上記で論じたように、記憶デバイス２２８は、第２のコンピュータ２２２と動作可能に通信するどこにでも位置することができ、リモート地などを含む。また、一実施形態では、記憶デバイス２２８と記憶デバイス２１８を同じ記憶デバイスとすることができる。ネットワーク２３８が第１および第２のコンピュータ２１０、２２２を動作可能に接続している。ネットワーク２３８は、たとえば、ＬＡＮ、ＷＡＮ、無線ネットワークなど、そのような動作可能な通信に適合されたどの通信ネットワークとすることもできる。理解できるように、任意の数の第１のコンピュータ２１０および第２のコンピュータ２２２をネットワーク２３８に動作可能に接続することができる。
【００３７】
次いで、図３に転じると、ステップ３１１で同期プロセスが始まる。一実施形態では、第１のアプリケーション２０８が同期プロセスを開始し、第２のアプリケーション２１４が同期プロセスを実施する。他の一実施形態では、第１のアプリケーション２０８と第２のアプリケーション２１４が単一のアプリケーションであり、その場合、単一のアプリケーションは、同期を開始し、また実施する。以下の図３の考察は、第１のアプリケーション２０８と第２のアプリケーション２１４を共に必要とするプロセスについて述べるが、単一のアプリケーションが、第１のアプリケーション２０８と第２のアプリケーション２１４によって実行されるステップのすべてを単独で実行することができることを理解されたい。
【００３８】
たとえば、第１のバージョン２１２を開く、閉じる、保存すること、もしくは類似のこと、電子ファイルの第１および第２のバージョンの認識時、ユーザ要求に応じて手動で開始すること、定期間隔で開始すること、システムへのユーザログイン時、および／または類似の時など、いくつかの状況により、第１のアプリケーション２０８が同期プロセスを開始する可能性がある。さらに、第１のアプリケーション２０８は、任意の追加条件を課すことができ、あるいは、たとえば、ある数のバージョンが存在するとき同期を開始するだけなど、代わりの条件を使用することができる。一実施形態で同期イベントを開始することに関連するより詳細は、図４に関連して以下に続く。このプロセスを開始するために、第１のアプリケーション２０８は、アプリケーションプログラムインタフェース２１６に第１のバージョン２１２と第２のバージョン２２６にアクセスさせる。第１のバージョン２１２と第２のバージョン２２６へのアクセスは、各バージョンに関連づけられた情報を見ること、探索機能を使用することによって各バージョンを見つけること、第１のアプリケーション２０８によって提供された識別情報を使用することによって各バージョンを突き止めることなど、どのコンピューティング手段によって実行することもできる。
【００３９】
第１のアプリケーション２０８は、たとえば、ファイル名、ロケーション、アドレス、および／または類似物など、第２のバージョン２２６に関する任意の量の識別情報をアプリケーションプログラムインタフェース２１６に提供することができる。アプリケーションプログラムインタフェース２１６は、第２のバージョン２２６を能動的に突き止めるように適合させることができ、あるいは、第１のアプリケーション２０８、第１のバージョン２１２などによって指定されたロケーションを見ることだけを可能にする制限された機能を有することができる。また、アプリケーションプログラムインタフェース２１６を、同期プロセスには関連していない可能性のある任意の数の追加タスクを実行するように構成することができる。ステップ３１３で、アプリケーションプログラムインタフェース２１６は、第２のバージョン２２６を突き止め、同期ステータスをチェックする。アプリケーションプログラムインタフェース２１６は、第１のバージョン２１２についての、たとえば最後の更新の時刻および／または日付などの情報を、第２のバージョン２２６と比較することによってステータスを判定する。同期ステータスはまた、上述の情報に追加の、または上述の情報に代えられた任意の基準によって判定することができる。その情報が、第１のアプリケーション２０８によって指定された情報および／または基準に合致した場合、第１および第２のバージョン２１２、２２６は、同期されたステータスを有する。情報が矛盾する場合、そのような矛盾は、そのようなバージョン２１２、２２６の一方に変更が加えられているかもしれない可能性を示すため、第１および第２のバージョン２１２、２２６は、同期されたステータスを有していない。あるいは、アプリケーションプログラムインタフェース２１６が、エラー、提供されていない条件、第１のアプリケーション２０８が同期を終了する原因と指定している条件などを検出した場合には、アプリケーションプログラムインタフェース２１６は、ステップ３３０に進む。ステップ３３０で、アプリケーションプログラムインタフェース２１６はその条件について第１のアプリケーション２０８に通知し、第１のアプリケーション２０８はそれに応じて進み、いずれかのタイプの処置、または何もしないことを含むことができる。
【００４０】
ステップ３１５で、アプリケーションプログラムインタフェース２１６は、ステップ３１３の同期判定の結果に応じて、２つの行動方針のうち１つを取ることができる。アプリケーションプログラムインタフェース２１６が、第１のバージョン２１２と第２のバージョン２２６が同期されていると判定した場合には、アプリケーションプログラムインタフェース２１６はステップ３２５に進む。ステップ３２５で、アプリケーションプログラムインタフェースは、第１のバージョン２１２と第２のバージョン２２６が同期されていることを第１のアプリケーション２０８にレポートする。そのようなレポートは、第１のバージョン２１２が電子ファイルの最新バージョンを含むため、現在、さらなる同期活動が必要でないことを第１のアプリケーション２０８に示す。このレポートはまた、ユーザが第１のアプリケーション２０８または第２のアプリケーション２１４を使用して第１のバージョン２１２を改変できることを示すことができる。
【００４１】
ステップ３２３で同期プロセスが終了する。このステップで、たとえば、そのような同期プロセスが、第１のアプリケーション２０８が電子文書の第１のバージョン２１２を閉じているとき実行された場合など、第１のアプリケーション２０８は機能をやめることができる。したがって、そのような状況では、同期が発生した後で、第１のアプリケーション２０８はそれ以上実行する機能がなく、ユーザによって手動で、または自動的に終了することができる。他の一実施形態では、第１のアプリケーション２０８が、第１のバージョン２１２を開いたとき同期プロセスを開始する。そのような状況では、アプリケーションは、そのような同期イベントの完了時に終了することにならず、第１のアプリケーション２０８の機能が使用可能であれば、それを使用してユーザが第１のバージョン２１２を改変し始めるのを可能にすることになる。
【００４２】
しかし、ステップ３１５で、アプリケーションプログラムインタフェース２１６が、第１のバージョン２１２と第２のバージョン２２６が同期されていないと判定した場合には、アプリケーションプログラムインタフェース２１６はステップ３１７に進む。ステップ３１７で、アプリケーションプログラムインタフェース２１６は、第１のバージョン２１２と第２のバージョン２２６が同期されていないことを第１のアプリケーション２０８および／または第２のアプリケーション２１４にレポートする。そのようなレポートは、ステップ３１９および３２１に関連して以下で論じるように、ユーザ入力と共に、第２のアプリケーション２１４に第１のバージョン２１２と第２のバージョン２２６の同期を開始させる。
【００４３】
ステップ３１９で、第２のアプリケーション２１４は、ディスプレイデバイス２３０上でユーザインタフェースを表示することによって、ユーザにユーザインタフェースを提示する。そのようなユーザインタフェースは、テキストおよび／もしくはグラフィックウィンドウ、オーディオプロンプト、ならびに／または類似物の形態にすることができ、ユーザインタフェースの任意のそのような構成は、本発明の一実施形態に等しく適合する。そのようなユーザインタフェースを提示する際に、第２のアプリケーション２１４は、第２のアプリケーション２１４の機能などを使用して、ユーザに１つまたは複数のオプションを提示することができる。たとえば、第２のアプリケーション２１４がワードプロセッサである場合、第２のアプリケーション２１４は、たとえば、そのような第１のバージョン２１２のページビューを有する編集ウィンドウおよび／または類似物など、第２のアプリケーション２１４のワードプロセッサ用ユーザ環境内でユーザに同期オプションを提示することができる。また、ユーザが同期判断をよりよくできるようにするために、第２のアプリケーション２１４は、色、音、グラフィックなどを使用して第１のバージョン２１２と第２のバージョン２２６の間の相違を強調することができる。第２のアプリケーション２１４はまた、たとえば、バージョン２１２、２２６のどちらかを改変した各ユーザの同一性など、追加情報を提供することができ、ユーザがセキュリティクリアランスなどの形態で改変するための許可を有する場合だけ、そのようなユーザがバージョン２１２、２２６を改変するのを許すことができる。第２のアプリケーション２１４は、変更を両バージョン２１２、２２６に組み込むために、ユーザが、たとえばバージョン２１２、２２６を第３のコピーの形にマージすることを可能にすることができる。追加オプションはまた、たとえば、推奨される行動方針など、第２のアプリケーション２１４の機能から導出されたガイダンスの形態とすることができる。理解できるように、オプションは、第１のバージョン２１２および第２のバージョン２２６に関連して、第２のアプリケーション２１４の機能を使用して第２のアプリケーション２１４によって生成し得るどのようなものとすることもできる。
【００４４】
ステップ３２１で、第２のアプリケーション２１４は、ユーザ入力を受け取り、処理する。そのようなユーザ入力は、そのような同期に関して任意の量の情報を含むことができる。たとえば、ユーザ入力により、そのユーザが保持したいと望む電子ファイルの第１のバージョン２１２か第２のバージョン２２６どちらかの特定の改変を選択することができる。他の一実施形態では、ユーザ入力は、ユーザが全体を保持したいと望む第１のバージョン２１２か第２のバージョン２２６どちらかの選択を含むことができる。他の一実施形態では、ユーザ入力は、完了したとき第１のバージョン２１２と第２のバージョン２２６が同期している第２のアプリケーション２１４の機能を使用する、第１および／または第２のバージョン２１２、２２６の編集を含むことができる。理解できるように、ユーザ入力は、ユーザによって選択または使用されるように第２のアプリケーション２１４によって使用可能にされる任意の入力を含むことができ、任意のそのような入力は、本発明の一実施形態に適合する。
【００４５】
やはり理解できるように、そのようなユーザインタフェースは、ユーザ入力に応じて再表示する、かつ／またはリフレッシュすることができるため、ステップ３１９および３２１は繰り返すことができる。たとえば、ユーザインタフェースを、ユーザ入力に基づいて、第２のアプリケーション２１４によって再構成することができる。そのような再構成は、たとえば、ユーザが第１のバージョン２１２と第２のバージョン２２６の間の複数の差違のうち１つを選択し、第２のアプリケーション２１４が、そのような選択を反映するために、ユーザにユーザインタフェースを再表示する場合に行われる可能性がある。ステップ３１９および３２１は、何回繰り返すことも、まったく繰り返さないこともでき、どちらのそのような状況も、本発明の一実施形態に等しく適合する。また、第２のアプリケーション２１４は、同期のどの結果も第１のアプリケーション２０８に、またはアプリケーションプログラムインタフェース２１６にレポートすることができる。第２のアプリケーション２１４によってレポートされる結果は、オプション選択、同期結果など、同期に関連づけられたどの情報とすることもできる。
【００４６】
第２のアプリケーション２１４は、トリガイベントが発生したとき、同期の終了であるステップ３２３に進むことができる。そのようなトリガイベントは、たとえば、ユーザが第１のバージョン２１２と第２のバージョン２２６の間の差違すべてを一致させるのを完了したとき、または、ユーザが、同期を完了することなしに同期プロセスを打ち切る、もしくは終了するように第２のアプリケーション２１４に指示したとき、または、所定の時間で、など、いつでも発生する可能性がある。ステップ３２３で、同期が終了する。次いで、ステップ３２５に関連して上述したように、第１のアプリケーション２０８または第２のアプリケーション２１４は、同期が発生する状況に適合するステップ３２３で任意の処置を行うことができる。
【００４７】
次いで、図４に転じると、本発明の一実施形態に従って、ステップ３１１の詳細な図が示されている。図３に関連して上記で論じたように、ステップ３１１で、第１のアプリケーション２０８は同期プロセスを開始する。図４は、そのような開始ステップの一実施形態をより具体的に示しており、ここで第１のアプリケーション２０８は、電子ファイルの第１のバージョン２１２を開いたのに応じて、そのような同期プロセスを開始する。上記で論じたように、第１のアプリケーション２０８は、たとえば、そのような第１のバージョン２１２を開き、保存し、もしくは閉じたとき、および／または、設定された、もしくは可変の間隔で、および／または、ユーザ入力時、および／または類似の時など、いつでも同期プロセスを開始することができる。
【００４８】
ステップ４１１で、第１のアプリケーション２０８は、電子ファイルの第１のバージョン２１２を開く。そのような開くことは、そのような第１のバージョン２１２を開くためのユーザ入力に応じて行われることになるのが最も一般的であるが、第１のバージョン２１２をそのように開くことを開始するためのどの手段も、本発明の一実施形態に適合する。ステップ４１３で、第１のアプリケーション２０８は、第１のバージョン２１２が関連の第２のバージョン２２６を有するかどうか判定する。第１のアプリケーション２０８は、ステップ４１１で第１のバージョン２１２を完全に開いたことに応じてステップ４１３に進むことができ、あるいは、たとえば、ステップ４１１で第１のバージョン２１２を開く前を含む、そのような開くプロセスの間の任意の時点でステップ４１３に進むことができる。また、第１のアプリケーション２０８がそのような判定をするのを可能にするために、どの方法を使用することもできる。たとえば、電子スタンプなどの情報をそのような第１のバージョン２１２に関連付け、それによって、第１のアプリケーション２０８がそのような判定をするのを可能にすることができる。一方、第１のアプリケーション２０８は、そのような判定のために、たとえば第２のコンピュータ２２２など、ネットワーク２３８に動作可能に接続されている任意の、またはすべてのコンピューティングデバイスを探索することができる。理解できるように、第１のアプリケーション２０８は、本発明の一実施形態に適合したままで、第２のバージョン２２６の存在を判定するどの方法を使用することもできる。
【００４９】
ステップ４１３で、第１のアプリケーション２０８が第２のバージョン２２６を見つけられなかった場合、第１のアプリケーション２０８は、第１のバージョン２１２がそのような電子ファイルの唯一のコピーであると判定し、ステップ４１７に進む。ステップ４１７で、第１のアプリケーション２０８は、第１のバージョン２１２を通常どおり処理する。そのような通常の処理は、第１のアプリケーション２０８が通常、おそらくは任意のユーザ入力に従って第１のバージョン２１２と同じ形式の電子ファイルに対して行うどのタイプの処理とすることもできる。たとえば、図４では、第１のアプリケーション２０８がステップ３１１に従ってそのような同期プロセスを開始したとき、第１のアプリケーション２０８は、第１のバージョン２１２を開くプロセスを行っていた。第２のバージョン２２６がないため、同期が必要ないとわかったことに応じて、第１のアプリケーション２０８は、第１のバージョン２１２を開くのを完了し、それに応じて進む。
【００５０】
ステップ４１３で、第１のアプリケーション２０８が第２のバージョン２２６を見つけた場合には、第１のアプリケーション２０８はステップ４１５に進む。ステップ４１５で、第１のアプリケーション２０８は、第１のバージョン２１２と第２のバージョン２２６の同期を開始するために、アプリケーションプログラムインタフェース２１６にコンタクトする。アプリケーションプログラムインタフェース２１６にコンタクトしたことに応じて、そのような同期プロセスは、図３に関連して上記で論じたように、ステップ３１３に進む。
【００５１】
以上、アプリケーション内でファイル複製を管理するための方法および装置を提示した。本発明について、様々な図の好ましい実施形態に関連して述べたが、本発明の同じ機能を実行するために、そこから逸脱することなしに他の同様な実施形態を使用し、または、修正および追加を上述の実施形態に加えることができることを理解されたい。たとえば、本願に述べられている本発明は、有線であろうと無線であろうと、どのコンピューティングデバイスまたは環境にも適用することができること、また、通信ネットワークを介して接続され、ネットワークを渡って相互作用する任意の数のそのようなコンピューティングデバイスに適用することができることを、当業者なら理解するであろう。さらに、特に無線ネットワーク化されたデバイスが増え続けているため、ハンドヘルドデバイス用オペレーティングシステムや他の応用分野特有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されていることを強調しておくべきである。さらに、本発明は、複数の処理用チップまたはデバイス内で、またはそれらに渡って実施することができ、同様に、記憶は複数のデバイスに渡って実施することができる。したがって、本発明は、どの単一の実施形態にも制限すべきでなく、添付の特許請求の範囲による広さと範囲内で解釈すべきである。
【図面の簡単な説明】
【００５２】
【図１】本発明を適用できる実施形態の例示的なコンピューティング環境を示すブロック図である。
【図２】本発明を適用できる実施形態の第１のコンピュータとネットワークと第２のコンピュータの間の関係の一例を示す機能図である。
【図３】本発明を適用できる実施形態の同期プロセスを示す流れ図である。
【図４】本発明を適用できる実施形態の同期プロセスを開始する方法を示す流れ図である。
【符号の説明】
【００５３】
２０８  第１のアプリケーション
２１０  第１のコンピュータ
２１２  ファイルの第１のコピー
２１４  第２のアプリケーション
２１８  記憶デバイス
２３８  ネットワーク
２２０  第１のプロセッサ
２２２  第２のコンピュータ
２２４  第２のプロセッサ
２２６  ファイルの第２のコピー
２２８  記憶デバイス
２３０  ディスプレイデバイス
【図１】
2004265420.tif 000003
【図２】
2004265420.tif 000004
【図３】
2004265420.tif 000005
【図４】
2004265420.tif 000006