(57)【要約】  サーバファイルの、対応するサーバファイルのローカルに記憶したコピーへのマッピングと、アプリケーションのサーバファイルまたは対応するサーバファイルのローカルコピーへのリダイレクトとを提供して、最新及び／または最も信頼できるバージョンの所望のファイルを開く。
2009525523.tif 000002
【特許請求の範囲】
【請求項１】
サーバファイルを、ローカルに記憶した前記サーバファイルのコピーにマッピングする方法であって、
前記方法は、
サーバファイルを、前記サーバファイルを含むサーバから離れたローカルコンピューティング装置に対して開く選択を受信するステップと、
前記サーバファイルのローカルコピーを前記ローカルコンピューティング装置に記憶するステップと、
前記サーバの前記サーバファイルから前記ローカルコンピューティング装置の前記ローカルコピーへのマッピングを生成するステップと、
前記マッピングの生成後に、前記サーバファイルまたは前記サーバファイルの前記ローカルコピーのいずれかを開く選択を受信するステップと、
前記サーバファイルまたは前記サーバファイルの前記ローカルコピーのいずれかを開く前記選択の受信に応答して、前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能であるかどうかを判定するステップと、
前記サーバファイルから前記サーバファイルのローカルコピーへのマッピングが利用可能である場合、前記マッピング経由で前記ローカルコンピューティング装置の前記ローカルコピーを取り出し、前記ローカルコピーを開くステップと
を含むことを特徴とする方法。
【請求項２】
前記マッピングを生成するステップは、
前記サーバの前記サーバファイルへのパスを判定するステップと、
前記ローカルコンピューティング装置の前記ローカルコピーへのパスを判定するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記マッピングを生成するステップは、前記ローカルコンピューティング装置に前記ローカルコピーを記憶する前に、前記サーバの前記サーバファイルに加えた任意の変更に対する最終書き込み時刻を判定するステップをさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記マッピングを生成するステップに加えて、前記ローカルコピーを記憶した前記ローカルコンピューティング装置の記憶位置に関わらず、前記ローカルコピーを要求アプリケーションが発見できるように、前記ローカルコピーが関連付けられる前記サーバファイルを要求アプリケーションに通知するプロパティを、前記ローカルコピーとともに記憶するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記マッピングを前記ローカルコンピューティング装置に記憶するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記ローカルコンピューティング装置に前記マッピングを記憶するステップは、前記ローカルコンビューティング装置のオペレーティングシステムのレジストリに前記マッピングを記憶するステップをさらに含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能でない場合、前記サーバファイルを前記サーバから取り出し、前記サーバファイルを開くステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記サーバファイルを開く場合、前記サーバファイルのローカルコピーではなく前記サーバファイルが開かれているという警告を、要求ユーザに与えるステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ローカルコンピューティング装置で前記ローカルコピーを取り出す前に、前記ローカルコピーが利用可能であるかどうかを判定するために、前記マッピングを解析して、前記ローカルコンピューティング装置の前記ローカルコピーへのパスを辿るステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記ローカルコピーが利用可能でない場合、前記サーバから前記サーバファイルを取り出し、前記サーバファイルを開くステップをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記ローカルコピーを前記ローカルコンピューティング装置に記憶してから、前記サーバファイルに変更が加えられているかどうかを判定するステップをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記ローカルコピーを前記ローカルコンピューティング装置に記憶してから前記サーバファイルに変更が加えられている場合、前記サーバから前記サーバファイルを取り出し、前記サーバファイルを開くステップをさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ローカルコピーを前記ローカルコンピューティング装置に記憶してから前記サーバファイルに変更が加えられているかどうかを判定するステップは、日付／時刻スタンプに対する前記マッピングを解析するステップを含み、前記日付／時刻スタンプは、前記ローカルコンピューティング装置に前記ローカルコピーを記憶する前の、前記サーバファイルに対する任意の変更の最終書き込み時刻からなる日付／時刻を示すことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記サーバに問い合わせて、前記最終書き込み時刻より後に前記サーバファイルに任意の変更が加えられたかどうかを判定するステップをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ローカルコピーが利用可能である場合、前記ローカルコピーが別のユーザにチェックアウトされているかどうかを判定し、前記ローカルコピーが別のユーザにチェックアウトされている場合、前記サーバから前記サーバファイルを取り出し、前記サーバファイルを開くことを特徴とする請求項９に記載の方法。
【請求項１６】
コンピュータによる実行時に、サーバファイルをローカルに記憶した前記サーバファイルのコピーにマッピングする方法を実施するコンピュータ実行可能命令を含むコンピュータ読み取り可能な記録媒体であって、
前記方法は
サーバファイルを、前記サーバファイルを含むサーバから離れたローカルコンピューティング装置に対して開く選択を受信するステップと、
前記サーバファイルのローカルコピーを前記ローカルコンピューティング装置に記憶するステップと、
前記サーバの前記サーバファイルから前記ローカルコンピューティング装置の前記ローカルコピーへのマッピングを生成するステップと、
前記マッピングの生成後に、前記サーバファイルまたは前記サーバファイルの前記ローカルコピーのいずれかを開く選択を受信するステップと、
前記サーバファイルまたは前記サーバファイルの前記ローカルコピーのいずれかを開く前記選択の受信に応答して、前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能であるかどうかを判定するステップと、
前記サーバファイルから前記サーバファイルのローカルコピーへのマッピングが利用可能である場合、前記マッピング経由で前記ローカルコンピューティング装置の前記ローカルコピーを取り出し、前記ローカルコピーを開くステップと
を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記マッピングを生成するステップは、
前記サーバの前記サーバファイルへのパスを判定するステップと、
前記ローカルコンピューティング装置の前記ローカルコピーへのパスを判定するステップと、
前記ローカルコンピューティング装置の前記ローカルコピーを記憶する前の、前記サーバの前記サーバファイルに加えられる任意の変更に対する最終書き込み時刻を判定するステップと、
前記ローカルコンピューティング装置に前記マッピングを記憶するステップと
を含むことを特徴とする請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能でない場合、前記サーバファイルを前記サーバから取り出し、前記サーバファイルを開くステップを含むことを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
コンピュータによる実行時に、サーバファイルをローカルに記憶した前記サーバファイルのコピーにマッピングする方法を実施するコンピュータ実行可能命令を含むコンピュータ読み取り可能な記録媒体であって、
前記方法は
サーバファイルを、前記サーバファイルを含むサーバから離れたローカルコンピューティング装置に対して開く選択を受信するステップと、
前記サーバファイルのローカルコピーを前記ローカルコンピューティング装置に記憶するステップと、
前記サーバの前記サーバファイルから前記ローカルコンピューティング装置の前記ローカルコピーへのマッピングを生成するステップと、
前記マッピングの生成後に、前記サーバファイルまたは前記サーバファイルの前記ローカルコピーのいずれかを開く選択を受信するステップと、
前記サーバファイルまたは前記サーバファイルの前記ローカルコピーのいずれかを開く前記選択の受信に応答して、前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能であるかどうかを判定するステップと、
前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能であり、前記ローカルコンピューティング装置に前記ローカルコピーが記憶されてから前記サーバファイルに変更が加えられていない場合、前記マッピング経由で前記ローカルコンピューティング装置の前記ローカルコピーを取り出し、前記ローカルコピーを開くステップと
を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記サーバファイルから前記サーバファイルの前記ローカルコピーへのマッピングが利用可能でない場合、前記サーバファイルのローカルコピーではなく前記サーバファイルが開かれているという警告を要求ユーザに与え、前記サーバから前記サーバファイルを取り出し、前記サーバファイルを開くステップをさらに含むことを特徴とする請求項１９に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバに記憶したファイルをローカルに記憶したサーバファイルのコピーにマッピングすることに関する。
【背景技術】
【０００２】
インターネット及びイントラネットなどの分散コンピューティング環境の出現により、ワードプロセッサドキュメント、スプレッドシートドキュメント、スライドプレゼンテーションドキュメント、データベースファイル等の様々な電子ファイルをサーバに記憶することが一般的となった。多数のユーザが当該サーバへのアクセスを行って、記憶したファイルを使用することができる。協調的な作業環境を可能とするサーバシステムが開発されている。そのサーバシステムでは、様々なユーザがチームとして所与の１つまたは複数のファイル上で作業することができる。当該システムの下では、所与のユーザはドキュメントを「チェックアウト（check out）」して、そのドキュメントを編集することができる。編集しているユーザによりドキュメントがチェックアウトされている間、他のユーザはそのドキュメントがチェックアウトされていることを通知され、第１のユーザがドキュメントをサーバにチェックインし戻すまでドキュメントを編集することができない。このように、ドキュメントに対する編集の競合（conflict）が防止される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
先行技術のシステムによると、チェックアウトされたドキュメントは、編集中はサーバ上に残っている。すなわち、編集しているユーザはオフラインセッション中にそのドキュメントを編集するために、自身のローカルコンピュータにそのドキュメントをチェックアウトできない。オフラインセッションでドキュメントを編集するために、ユーザはそのドキュメントをローカルコンピュータにコピーし、所望の編集を行い、次いで編集したドキュメントを手動でサーバに保存し直さなければならない。不都合なことに、編集したドキュメントをサーバに手動で保存するには、ユーザはオフラインセッション中にドキュメントに加えた変更が、オフラインセッション中にサーバのコピーに加えた変更と競合しないことを保証する必要がある。さらに、編集を行うユーザがサーバに手動で保存したドキュメントは、オフラインセッション中に他人が編集した可能性があり、以前サーバに保存したバージョンとバージョンが異なる可能性がある。上記のプロセスは、協調的な作業環境の利点を完全に消し去ることはないにしても、大幅に減らすものである。
【０００４】
これらのこと、及び他のことも考慮して本発明を行った。
【課題を解決するための手段】
【０００５】
本要約は、選択した概念を簡潔な形で導入するために示される。これらの概念は以下の「発明を実施するための最良の形態」でさらに説明する。本要約は、特許請求の範囲の主要な特徴または本質的な特徴を特定するようには意図しておらず、特許請求の範囲を判定するための支援としても意図していない。
【０００６】
本発明の実施形態は、サーバファイルをサーバファイルに対応するローカルに記憶したコピーにマッピングすること、及びアプリケーションをサーバコピーまたは対応するローカルコピーにリダイレクトして、最新または最も信頼できるバージョンの所望のファイルを開くことにより、上述及び他の問題を解決する。一実施形態によると、サーバベースドキュメントを「チェックアウト」してローカルコンピュータに保存し、オフラインセッション中に編集することができる。ドキュメントをローカルコンピュータにチェックアウトするとき、サーバファイルへのパスをローカルコピーへのパスに関連付けるマッピングを生成する。加えて、将来、ローカルコピーと比較するため、サーバファイルに書き込んだ最後の編集に対する日付／時刻スタンプを生成する。一実施形態によると、最適化のためマッピング及び日付／時刻スタンプのデータをローカルコンピュータに記憶することができる。
【０００７】
サーバファイルまたはそのサーバファイルのローカルコピーのいずれかを開く後続の試行（attempt）を受信すると、ローカルコピーに対してマッピングが存在するかどうかを判定する。マッピングが存在しない場合、サーバコピーを開く。ローカルコピーに対するマッピングが存在するが対応するローカルコピーが利用可能でない場合、サーバファイルを開く。ローカルコピーに対するマッピングが存在してそのローカルコピーが利用可能であるが、上記試行を要求したユーザにそのローカルコピーがチェックアウトされていない場合、サーバファイルを開く。ローカルコピーに対するマッピングが存在してローカルコピーが利用可能であるが、サーバファイルへの最後の書き込み編集に対する日付／時刻スタンプを検討することにより、ローカルコピーをローカルコンピュータに記憶してからサーバファイルが変更されたことが示される場合、サーバファイルを開く。ローカルコピーに対するマッピングが存在し、ローカルコピーが利用可能で、ローカルコピーをローカルコンピュータに記憶してからサーバファイルが変更されていない場合、ファイルオープン要求をローカルコピーに向け、そのローカルコピーを開く。一実施形態によると、ローカルコピーも利用可能であるが上述のように開かれていないときにサーバファイルを開く場合、要求ユーザに警告を与えることができる。
【０００８】
別の実施形態によると、ローカルコピーにプロパティを設定して要求アプリケーションにそのローカルコピーを関連付けたサーバファイルを通知し、その結果、ローカルコピーを記憶したローカルコンピュータ上の記憶位置に関わらず要求アプリケーションはそのローカルコピーを発見することができる。
【０００９】
これら及び他の特徴及び利点は、以下の詳細な説明を読み、添付図面を検討することで明らかになるであろう。前述の一般的な説明及び以下の詳細な説明は例に過ぎず、特許請求の範囲に記載する本発明を限定しないことは理解されるべきである。
【発明を実施するための最良の形態】
【００１０】
上で簡潔に説明したように、本発明の実施形態は、サーバベースファイルを対応するローカルに記憶したファイルコピーにマッピングすること、及び要求アプリケーションをサーバファイルまたは対応するサーバファイルのローカルコピーに向けて最新もしくは最も信頼できるバージョンの所望のファイルを開くことに関する。以下の詳細な説明では、その一部を形成する添付図面を参照し、図面においては例示として具体的な実施形態または例を示してある。これらの実施形態を組み合わせること、他の実施形態を利用すること、及び本発明の要旨または範囲から逸脱せずに構造的な変更を加えることができる。以下の詳細な説明は、限定的な意味で捉えるべきではなく、本発明の範囲を特許請求の範囲及びその均等物により定義する。
【００１１】
次に、図面を参照する。図面では、同じ参照番号は幾つかの図面を通して同じ構成要素を示し、本発明の態様及び例示的なコンピューティング動作環境を説明する。図１及び以下の議論は、本発明の実装に適したコンピューティング環境の簡潔で一般的な説明を提供することを意図している。本発明を、パーソナルコンピュータ上のオペレーティングシステムで動くアプリケーションプログラムと関連して実行されるプログラムモジュールの一般的なコンテキストで説明するが、当業者には本発明を他のプログラムモジュールと組み合わせて実行しても可能であることは理解されよう。
【００１２】
一般に、プログラムモジュールにはルーチン、プログラム、コンポーネント、データ構造、及び特定のタスクを実施するか、または特定の抽象データ型を実装する他種の構造が含まれる。さらに、当業者は、本発明を他のコンピュータシステム構成で実践できることが理解されよう。そのコンピュータシステム構成には、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能消費家電、ミニコンピュータ、メインフレームコンピュータ、等が含まれる。本発明を、通信ネットワークを通して接続したリモート処理装置によりタスクが実施される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールをローカル及びリモートメモリ記憶装置の両方に置くことができる。
【００１３】
本発明の実施形態をコンピュータプロセス（方法）、コンピューティングシステムとして、またはコンピュータプログラム製品もしくはコンピュータ可読媒体のような製造品として実装することができる。コンピュータプログラム製品はコンピュータ記憶媒体で可能であり、そのコンピュータ記憶媒体はコンピュータシステムにより読み出すことができ、かつコンピュータプロセスを実行する命令からなるコンピュータプログラムを符号化する。コンピュータプログラム製品は搬送波上の伝播信号でも可能であり、その伝播信号はコンピューティングシステムにより読み出すことができ、かつコンピュータプロセスを実行する命令からなるコンピュータプログラムを符号化する。
【００１４】
図１を参照する。本発明を実装する１つの例示的なシステムはコンピューティング装置１００のようなコンピューティング装置を含む。基本的な構成では、コンピューティング装置１００には一般に少なくとも１つの処理ユニット１０２及びシステムメモリ１０４が含まれる。コンピューティング装置の厳密な構成及び種類に依存して、システムメモリ１０４は、（ＲＡＭなどの）揮発性、（ＲＯＭ、フラッシュメモリなどの）不揮発性またはその２つの何らかの組み合わせで可能である。システムメモリ１０４は、一般に、ワシントン州レドモンド在の本件特許出願人のＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのような、ネットワーク接続されたパーソナルコンピュータの動作の制御に適したオペレーティングシステム１０５を含む。システムメモリ１０４は１つまたは複数のソフトウェアアプリケーション１０６、及びプログラムデータ１０７を含むことができる。この基本的な構成を、図１の破線１０８内部のコンポーネントにより示す。
【００１５】
本発明の実施形態によると、アプリケーション１０６は、電子メールプログラム、カレンダプログラム、インターネット閲覧プログラム、等のような多種のソフトウェアアプリケーションを含むことができる。上記プログラムの例には本件特許出願人が制作したＯＵＴＬＯＯＫ（登録商標）がある。アプリケーション１０６は多数の他種のソフトウェアアプリケーションを含むことができる。そのアプリケーションには、多数の他種の機能性を提供する多機能性ソフトウェアアプリケーションが含まれる。この多機能性アプリケーションは、ワードプロセッサプログラム、スプレッドシートプログラム、スライドプレゼンテーションプログラム、データベースプログラム、等のような多数のプログラムモジュールを含むことができる。この多機能性アプリケーションの例には本件特許出願人が制作したＯＦＦＩＣＥ（商標）がある。本発明の実施形態によると、アプリケーション１０６は、本明細書で説明した本発明の実施形態に従って、サーバファイルまたはサーバファイルのローカルコピーのオープンを要求するよう動作する任意のソフトウェアアプリケーションを示す。
【００１６】
コンピューティング装置１００は追加の特徴または機能性を有することができる。例えば、コンピューティング装置１００は追加のデータ記憶装置（取り外し可能及び／または取り外し不可能）を含むこともできる。そのデータ記憶装置としては、例えば、磁気ディスク、光ディスク、またはテープがある。上記の追加の記憶装置を、図１に取り外し可能記憶装置１０９及び取り外し不可能記憶装置１１０により示す。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶する任意の方法または技術で実装した、揮発性及び不揮発性、取り外し可能及び取り外し不可能媒体を含むことができる。システムメモリ１０４、取り外し可能記憶装置１０９及び取り外し不可能記憶装置１１０は、コンピュータ記憶媒体の全ての例である。コンピュータ記憶媒体にはＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤもしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報の記憶に使用でき、コンピューティング装置１００によりアクセス可能な任意の他の媒体が含まれるがこれらに限定されない。任意の上記のコンピュータ記憶媒体は、装置１００の一部である場合がある。コンピューティング装置１００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等のような１つまたは複数の入力装置１１２を有することもできる。ディスプレイ、スピーカ、プリンタ等のような１つまたは複数の出力装置１１４を含めることもできる。これらの装置は当業界で公知であり、ここでは詳細に議論する必要はないであろう。
【００１７】
コンピューティング装置１００は、また通信接続１１６を含むこともできる。その通信接続１１６によりコンピューティング装置１００は、例えばイントラネットまたはインターネットのような分散コンピューティング環境内のネットワーク上で、他のコンピューティング装置１１８と通信することができる。通信接続１１６は通信媒体の１つの例である。通信媒体は一般にコンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の伝送メカニズムのような変調データ信号の他のデータにより具現化することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、１つまたは複数のその特性集合を有するか、または信号内の情報を符号化するよう変化した信号を意味する。限定ではなく例として、通信媒体は有線ネットワークまたは直接配線接続のような有線媒体、ならびに音響、ＲＦ、赤外線及び他の無線媒体のような無線媒体を含む。本明細書で使用するコンピュータ可読媒体は記憶媒体と通信媒体の両方を含む。
【００１８】
次に図２を参照すると、分散コンピューティング環境が示されている。サーバコンピュータ２００を、分散コンピューティング環境２１０を介したローカルコンピュータ１００との間の２方向通信について示す。サーバデータストア２０５は、サーバ２００に記憶したデータが維持されるメモリ位置を示す。実施形態によると、分散コンピューティング環境２１０はインターネットであるか、または組織イントラネット、ＬＡＮ、ＷＡＮ等のような１つもしくは複数の分散コンピューティングネットワークで可能である。簡潔に上述したように、例えばワードプロセッサドキュメント、スプレッドシートドキュメント、スライドプレゼンテーションドキュメント、データベースファイル、デスクトップパブリッシングドキュメント、等のような様々な電子ドキュメントをサーバ２００に記憶して、分散コンピューティング環境２１０を介してローカルコンピュータ１００の１人または複数人のユーザにより使用することができる。
【００１９】
一実施形態によると、サーバ２００に記憶したドキュメントをデータベースに記憶する。そのデータベースは、協調的な作業環境で操作する１人または複数人のユーザがドキュメントにアクセスし、そのドキュメントを利用できるように動作する。協調的な作業環境を可能とするデータベースの例には、マイクロソフト社が製作したＳＨＡＲＥＰＯＩＮＴ（登録商標）がある。例えば、企業の部署による次回プロジェクト向けの企業提案を含むワードプロセッサドキュメントをサーバ２００に記憶することができる。作業チームの様々なメンバは時々そのドキュメントにアクセスして、そのドキュメントに変更を加えること、または情報を追加することができる。本発明の実施形態によると、所定のユーザがサーバ２００上の所定のドキュメントの編集を望むとき、そのユーザはそのドキュメントを「チェックアウト」でき、その結果、そのドキュメントがその要求ユーザにチェックアウトされている間は、その要求ユーザはそのドキュメントを編集すること、またはそのドキュメントに他の変更を加えることができる。すなわち、ドキュメントが要求ユーザによりチェックアウトされている間は、他のユーザはそのドキュメントを開くことができず、そのドキュメントを編集すること、及びそのドキュメントに他の変更を加えることができない。それにより、別のユーザによるドキュメントへの、競合を引き起こす編集または変更が防止される。
【００２０】
ユーザが、チェックアウトしたドキュメントに対する自身の所望の編集または他の変更を全て完了すると、そのユーザはそのドキュメントをサーバにチェックインし戻すことができ、次にそのチェックインしたドキュメントを他のユーザが編集することができる。以下で詳述するように、サーバ２００上で維持されるファイルは要求ユーザによりチェックアウトでき、ローカルコンピュータ１００に記憶することができる。ローカルコンピュータ１００を用いて、要求ユーザはローカルに記憶したファイルをオフライン編集セッション中に編集できる。すなわち、要求ユーザは所望のファイルをサーバ２００からチェックアウトして、ローカルコンピュータをサーバ２００から切断した後、オフライン編集セッション中にローカルコンピュータ１００を用いて、そのファイルで操作することができる。ユーザが自身のローカルコンピュータ１００をサーバ２００に再接続するとき、以前にチェックアウトしたドキュメントをサーバ２００にチェックインし戻すことができ、オフラインセッション中にローカルコンピュータ１００でドキュメントに加えた編集または他の変更をサーバ２００に発行することができる。
【００２１】
本発明の実施形態によると、上述のようにドキュメントをサーバ２００からローカルコンピュータ１００にチェックアウトするとき、チェックアウトしたファイルのコピーをローカルコンピュータ１００のローカルデータストア２１５に記憶する。一実施形態によると、ローカルに記憶したファイルのコピーをローカルデータストアの「ドラフト」フォルダに保存して、ローカルに記憶したファイルを発見及び編集する効率的な方法をユーザに提供する。ファイルのローカルコピーをローカルコンピュータ１００に記憶するとき、サーバファイルへのパスをファイルのローカルコピーのパスへマップするためのマッピングを生成する。実施形態によると、記憶したファイルに対して生成したマッピングは、要求アプリケーションをそれぞれの記憶したファイルに向けるためのデータを含む。サーバパスをそのマッピングデータに含めるが、そのサーバパスは、例えばワードプロセッサアプリケーションのような要求アプリケーションが利用できる、サーバファイルをサーバ２００で発見するための値を含む。例えばサーバパスは、要求アプリケーションをサーバ２００のサーバファイルに向けるための、サーバファイルに対するＵＲＬ（uniform resource locator）アドレスとすることが可能である。
【００２２】
ローカルコピーパスはマッピングに含まれるが、そのパスは、要求アプリケーションが利用できる、サーバファイルのローカルコピーをローカルコンピュータ１００で発見するための値を含む。最終書込み時刻の値をサーバファイルに対するマッピングデータに含める。サーバファイルの「最終書込み時刻」は、サーバファイルをローカルコンピュータ１００にチェックアウトした日付及び時刻より前の、最後の編集または変更をサーバファイルに加えた日付及び時刻に関連付けた日付／時刻のスタンプである。実施形態によると、サーバファイルに対する最終書込み時刻は記録されて、要求アプリケーションにより、サーバファイルのローカルコピーをローカルコンピュータ１００に記憶した後に、サーバファイルに変更を加えたかどうかを判定するための参照ポイントとして利用される。
【００２３】
サーバファイルまたはローカルコピーのいずれかを開く後続の試行が行われる場合、後述のように、ファイルのローカルコピーをローカルコンピュータ１００に記憶した後に、サーバファイルに変更を加えたかどうかに関する判定を行うことができる。ファイルのローカルコピーをローカルコンピュータ１００に記憶してからサーバファイルが変更された場合、ファイルオープン要求に応じてファイルのサーバコピーを開くことができ、その結果、サーバに記憶した最新バージョンのサーバファイルを要求ユーザに提供する。後述するように、上記の場合、ファイルのローカルコピーは、ファイルのローカルコピーをローカルコンピュータ１００に記憶した後に、サーバファイルに加えた変更と競合する編集または他の変更を含む恐れがあるが、この状況下でサーバファイルを提供することは、協調的な作業環境に対して維持されるサーバファイルの状態に関する混乱を防ぐために必要である。
【００２４】
一実施形態によると、サーバファイルのローカルコピーをローカルコンピュータ１００に記憶するとき、ローカルコピーが関連付けられるサーバファイルを識別するためのプロパティをファイルのローカルコピーに設定する。従って、後続の要求アプリケーションは、ファイルのローカルコピーが記憶されるローカルデータストア２１５の特定の位置に関わらず、ファイルのローカルコピーをローカルコンピュータ１００のローカルデータストア２１５で発見することができる。
【００２５】
サーバファイルからローカルコピーへのマッピングを生成した後、上述のように、マッピングに対する記憶をローカルコンピュータ１００で確立する。一実施形態によると、ローカルコンピュータ１００のオペレーティングシステムのレジストリを利用することができる。後述するように、サーバファイルパスをレジストリキーとして記憶することができ、ローカルコピーのパスをそのレジストリキーに対するデフォルト値として記憶することができる。その結果、サーバファイルまたはローカルコピーのいずれかに対する後続の要求は、サーバファイルを開かなければならないと判定する前にローカルコピーへのパスの存在を先ず判定するために、デフォルトでローカルコピーへのパスに向けられる。上述のように、サーバファイルに対する最後の編集の日付／時刻を、ローカルコピーを記憶した後に加えられる可能性があるサーバファイルの編集の日付／時刻と比較するために、サーバファイルに対する最終書込み時刻をレジストリ内の文字列値として記憶することができる。理解されるべきものとして、最適化のためマッピングデータをオペレーティングシステムのレジストリに記憶することができ、または、マッピングデータを任意数の他のローカルデータストア２１５に、サーバファイルもしくは対応するローカルコピーに向けられた要求アプリケーションが、ファイルオープン動作中にアクセスするために記憶できる。別の実施形態によると、マッピングは関連ファイルにも記憶される。従って、本明細書で説明するように、ユーザがファイルをローカルコンピュータ１００上の別のメモリ位置に移す場合、マッピングデータはそのファイルで、要求アプリケーションをそのマッピング経由でサーバに向けるような利用が常に可能である。
【００２６】
図３を参照して、本発明の実施形態の例示的な動作である論理フローを説明する。ルーチン３００は開始動作３０５で開始し、チェックアウト動作３１０に進む。チェックアウト動作３１０で、ユーザは上述のようにドキュメントをサーバ２００から自身のローカルコンピュータ１００にチェックアウトする。例えば、ユーザはワードプロセッサドキュメントをチェックアウトできる。そのワードプロセッサドキュメントは、ユーザが自らの組織における作業チームの４人の他のメンバとともに協調的な作業環境で作業しているメモを含む。上述のように、要求ユーザによりドキュメントをチェックアウトすることで、ユーザはドキュメントに変更を加えることができ、要求ユーザがそのドキュメントを編集用にチェックアウトしている間、ユーザのチームの他のメンバがドキュメントに変更を加えるために同じドキュメントをチェックアウトするのを防ぐ。
【００２７】
所望のドキュメントをチェックアウトするとき、ドキュメントを上述のようにローカルコンピュータ１００に記憶する。ドキュメントのローカルコピーをローカルコンピュータ１００に記憶するとき、ローカルコピーにプロパティを設定する。そのプロパティにより、例えばワードプロセッサアプリケーション、スプレッドシートアプリケーション、等のような後続の要求アプリケーションは、ローカルコピーを記憶したローカルデータストア２１５の特定な位置に関わらず、ドキュメントのローカルに記憶したコピーを発見できる。
【００２８】
マッピング動作３１５で、要求ドキュメントのローカルコピーに対するサーバベースドキュメントのマッピングを生成する。上述のように、マッピングを含むデータは、サーバファイルへのパス、ローカルに記憶したコピーへのパス、及びドキュメントのサーバコピーの「最終書込み時刻」に対する日付／時刻スタンプを含む。
【００２９】
動作３２０で、ローカルコンピュータ１００、例えばローカルデータストア２１５での記憶位置を定義して、動作３１５で生成したマッピングデータを記憶する。上述のように、本発明の一実施形態によると、最適化の目的でマッピングデータに対する記憶位置をローカルコンピュータ１００のオペレーティングシステムレジストリに定義する。すなわち、マッピングデータをオペレーティングシステムのレジストリに記憶することで、要求時に、マッピングデータを要求アプリケーションにより効率的かつ迅速に取り出すことができる。マッピング記憶動作３２５で、ローカルに記憶したドキュメントのコピーに対して生成したマッピングデータを記憶する。
【００３０】
サーバベースドキュメントのローカルコピーを記憶し、マッピングを生成して記憶すると、要求ユーザは、サーバ２００とのオンラインセッションにおいて、ローカルに記憶したドキュメントで作業することができる。すなわち、ドキュメントを現在のユーザによりローカルコンピュータ１００にチェックアウトしている間に、ローカルコピーに加えた編集または他の変更を自動的にサーバ２００に発行することができる。本発明の実施形態によると、ユーザはオフライン編集セッション中に、ローカルに記憶したドキュメントで操作することもできる。例えば、ユーザはローカルドキュメントをラップトップコンピュータ１００に記憶して、ある位置から別の位置への飛行中にドキュメントを編集することを望むかもしれない。上述のように、ユーザが自身のコンピュータ１００をサーバ２００に分散コンピューティング環境２１０経由で再接続すると、ローカルに記憶したドキュメントをサーバ２００に「チェックイン」することで、ユーザはローカルに記憶したドキュメントを任意の編集または変更とともにサーバ２００に同期させることができる。
【００３１】
オフライン編集セッション後にユーザが自身のコンピュータをサーバ２００に再接続すると、サーバファイルまたはサーバファイルのローカルに記憶したコピーのいずれかに対する要求を要求アプリケーションにより受信することができる。例えば、ドキュメントのローカルコピーを自身のローカルコンピュータに最初に記憶したユーザ、または他のユーザは、対象のドキュメントをサーバ２００からチェックアウトすることを試みることができ、またはそのユーザは対象のドキュメントを自身のローカルコンピュータ１００から開くことができる。例えば、ユーザは、ワードプロセッサアプリケーション、スプレッドシートアプリケーション、スライドプレゼンテーションアプリケーション等のような要求アプリケーション経由で対象のドキュメントの起動を試みることができる。
【００３２】
ドキュメント要求動作３３０で、対象のドキュメントに対する要求を要求アプリケーション経由で、サーバ２００またはローカルコンピュータ１００で受信する。マッピング取り出し動作３３５で、要求アプリケーションは所望のドキュメントを、サーバ２００の要求ドキュメントに対するパス経由で要求する。すなわち、要求アプリケーションは、要求ドキュメントに対するサーバパス経由でアクセス可能なメモリ位置で要求ドキュメントを開くことを試みる。要求アプリケーションが要求ドキュメントのためのサーバパス経由で要求ドキュメントを取り出し、開くことを試みるとき、要求ドキュメントが以前にチェックアウトされてローカルコンピュータ１００で編集された可能性がある場合は、要求アプリケーションを要求ドキュメントに対するマッピングデータにリダイレクトすることになる。
【００３３】
動作３３８で、要求アプリケーションは所望のドキュメントに対するサーバパスを辿る。上述のように、所望のドキュメントのためのサーバパスをその所望のドキュメントのためのローカルコピーのパスへマップするマッピングをその所望のドキュメントに対して生成した場合、要求アプリケーションをデフォルトのパスとしてローカルコピーのパスにリダイレクトすることになる。しかしながら、要求ドキュメントに対して利用可能なマッピングがない場合、これは要求ドキュメントがローカルコンピュータ１００にチェックアウトされていないことを意味し、ルーチンはファイルオープン動作３４０に直接進み、要求アプリケーションは要求ドキュメントに対するサーバファイルを開く。
【００３４】
動作３４２を参照する。要求アプリケーションが要求ドキュメントに対するサーバパスを辿り、マッピングが要求ドキュメントに対して利用可能であると判定する場合、上述のように要求アプリケーションをドキュメントのローカルコピーに対するパスにリダイレクトする。要求アプリケーションがローカルコピーへのパスを辿るとき、ローカルコピーが利用可能であるかどうかに関する判定が行なわれる。そのドキュメントのローカルコピーが利用可能でない場合、例えば、ローカルコピーが移動、削除、別の位置へチェックアウト等されている場合、ルーチンは動作３４４に進み、警告を要求ユーザに与えることができる。例えば、ダイアログボックスを要求ユーザに提示して、ドキュメントのローカルコピーがチェックアウトされてローカルに記憶されているが、要求アプリケーションはそのローカルコピーが開けられないことをユーザに知らせることができる。
【００３５】
一実施形態によると、警告ダイアログ経由でユーザに追加の選択肢を提供することができる。例えば、ユーザはローカルコピーのオープンを再試行でき、ユーザはファイルオープン要求を中止でき、またはユーザがドキュメントのサーバコピーを開くように向けることができる。デフォルトの動作として、この状況では、ルーチンは動作３４６に進み、サーバコピーをファイルオープン要求に応じて開く。
【００３６】
動作３４８を参照する。マッピングが利用可能であると要求アプリケーションが判定し、ローカルに記憶したコピーへのパスを辿る際にローカルコピーが利用可能であると判定する場合、要求アプリケーションは、次いでローカルコピーがチェックアウトされるか否かを判定する。例えば、第１のユーザが要求ドキュメントを自身のローカルコンピュータ１００にチェックアウトし、次いで第１のユーザが職場を長期間不在にし、その間第１のユーザがサーバ２００に再接続してローカルに記憶したドキュメントをサーバにチェックインし戻さない場合、後続の要求ユーザがそのドキュメントを開くことを試みることができる。後続の要求ユーザは、第１のユーザが長期間ドキュメントから離れていることを判定する場合、後続の要求ユーザは、システムを上書きして第２の要求ユーザがドキュメントのサーバベースコピーをチェックアウトできるようにすることで、ファイルチェックアウトシステムを崩すことを決定できる。
【００３７】
本発明の実施形態によると、以前に記憶したローカルコピーに対するマッピングデータを更新することにより、チェックアウトシステムが崩されていること、及び対象のドキュメントが第２の要求ユーザによりチェックアウトされていることを示すことができる。従って、第１のユーザが長期の留守から戻り、以前に記憶したローカルドキュメントのコピーにアクセスすることを試みる場合、動作３４８で、マッピングが利用可能であってローカルコピーが利用可能であるが、ドキュメントが別のユーザによりチェックアウトされていることをユーザに通知する。警告を動作３５０で要求ユーザに与えた後、ドキュメントのサーバコピーをその要求ユーザに提供する。従って、第１のユーザの長期チェックアウトセッション中に第１のユーザがローカルに記憶したドキュメントに編集または他の変更を加えた場合でも、第１のユーザは、現在最新で最も信頼できるコピーであるサーバコピーを開いて利用するよう要求される。なぜならば、サーバベースのコピーが第２のユーザにより編集または変更されている可能性があるからである。
【００３８】
動作３５４を参照する。ファイルオープン要求の結果、ローカルコピーに対するマッピングが利用可能であり、そのドキュメントのローカルコピーが利用可能であるが、ローカルコピーに関してサーバコピーが変更されていることが判定される場合、警告動作３５６で警告をユーザに与える。上述のように、サーバドキュメントのローカルコピーをローカルコンピュータ１００に記憶する時点で、ドキュメントをローカルに記憶する前にサーバドキュメントに加えた最後の編集または変更に関連付けた最終書き込み時刻に対する日付／時刻スタンプを、他のマッピングデータとともに記憶する。本明細書で説明するように、要求アプリケーションを要求ドキュメントに対するマッピングデータに向けるとき、以前に記憶した最終書き込み時刻をサーバドキュメントに対する推定最終書き込み時刻と見なす。次いで要求アプリケーションはサーバパスを辿ってサーバベースドキュメントに戻り、要求ドキュメントに対する現在の最終書き込み時刻を取り出す。次いで、要求ドキュメントに対する以前に記憶した最終書き込み時刻または推定最終書き込み時刻と、要求ドキュメントに対する現在の最終書き込み時刻とを比較する。サーバドキュメントに対する現在の最終書き込み時刻が以前に記憶した最終書き込み時刻または推定最終書き込み時刻より後である場合、サーバベースドキュメントのローカルコピーをローカルコンピュータ１００にチェックアウトした後に、後続のユーザによりサーバベースドキュメントが変更されたと判定される。要求ドキュメントのサーバベースコピーは、ドキュメントのローカルコピーをローカルコンピュータ１００に記憶したときにドキュメントに含まれなかった編集または他の変更を含むので、ルーチンはファイルオープン動作３５８に進み、要求アプリケーションによりサーバベースコピーを最新バージョンのドキュメントとして開く。従って、ドキュメントのローカルに記憶したコピーに加えた要求ユーザによる任意の編集または他の変更は、要求ユーザが動作３５８でドキュメントのローカルサーバコピーをチェックアウトした後に、ドキュメントの開いたサーバコピーに加えなければならない。
【００３９】
動作３６０を参照する。ファイルオープン動作中に、サーバファイルからローカルコピーへのマッピングが利用可能で、ローカルコピーが利用可能であり、ドキュメントが別のユーザによりチェックアウトされておらず、サーバコピーが変更されていないと判定する場合、ルーチンは動作３６２に進み、ドキュメントのローカルに記憶したコピーをファイルオープン要求に応じて起動する。
【００４０】
本明細書で説明したように、本発明の実施形態は、サーバファイルの対応するローカルに記憶したコピーへのサーバファイルのマッピングに関し、及びアプリケーションをサーバファイルまたは対応するローカルコピーへリダイレクトして、最新もしくは最も信頼できるバージョンの所望のファイルを開くことに関する。本発明の範囲または要旨から逸脱せずに、様々な修正または変形を本発明において加えうることは、当業者には明らかであろう。本発明の他の実施形態は、本明細書で開示した本発明の仕様及び実践を考慮すると、当業者には明らかであろう。
【図面の簡単な説明】
【００４１】
【図１】例示的なコンピューティング動作環境を示す図である。
【図２】サーバとローカルコンピュータ間の関係を示す簡潔なブロック図である。
【図３】ファイルオープン動作の論理フローを示すフロー図である。
【図１】
2009525523.tif 000003
【図２】
2009525523.tif 000004
【図３】
2009525523.tif 000005
【国際調査報告】
2009525523.tif 000006
2009525523.tif 000007