(57)【要約】【課題】メタデータと生データとを有するデータベースを同期させるためのシステムおよび方法を提供すること。【解決手段】メタデータは、２つのシステム間で完全に同期させることができ、両方のシステムにコピーが記憶される。生データは選択的に同期させることができるので、クライアントシステムはすべての生データをローカルに記憶する必要はない。切断時、クライアントシステムは、ローカルに記憶すべき生データの特定部分を識別することができ、このようなデータは、サーバシステムに再接続されたときに同期させることができる。【選択図】図１
2006236350.tif 000002
【特許請求の範囲】
【請求項１】
第１のファイルグループ、
第１のアイテムグループであって、前記アイテムの少なくとも１つは、前記第１のファイルグループのうちの関連する一ファイルから導出されたメタデータを備えるファイル支援アイテムである第１のアイテムグループ、
前記ファイルと前記第１のアイテムグループとを備える第１のデータストアを有する第１のシステム、および、
第２のデータストアを有する第２のシステムであって、
前記第１のシステムと接続されている間に、前記第１のデータストアと前記第２のデータストアとの間で前記アイテムグループを同期させ、前記第１のファイルグループのうちで前に識別されたサブセットを同期させるように適合され、
前記第１のシステムと切断されている間に、前記第１のファイルグループのうちの同期させるべき少なくとも１つを識別するように適合され、前記第１のファイルグループの前記少なくとも１つは前記サブセットのメンバではなく、
後に前記第１のシステムに接続されたときに、前記第１のファイルグループの前記少なくとも１つを同期させるように適合された第２のシステム
を備えたことを特徴とするシステム。
【請求項２】
前記ファイルグループのすべてのファイルには、少なくとも１つのファイル支援アイテムが関連することを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１のシステムは、
前記第１のファイルグループのうちの前記一ファイルのファイルタイプを決定して、前記ファイルタイプに基づいて所定のアイテムのメタデータ値を決定することによって、前記ファイル支援アイテムに関するメタデータを導出するように適合されたことを特徴とする請求項１に記載のシステム。
【請求項４】
前記第１のシステムは、
前記第１のファイルグループのうちの前記一ファイルのファイルタイプを決定して、前記第１のファイルグループのうちの前記一ファイルに含まれるデータの少なくとも一部を要約してメタデータ値を決定することによって、前記ファイル支援アイテムに関するメタデータを導出するように適合されたことを特徴とする請求項１に記載のシステム。
【請求項５】
前記第１のファイルグループの前記少なくとも１つを同期させることは、
前記ファイル支援アイテムに関連する前記ファイルに対する変更を識別すること、および、
前記ファイル支援アイテム中の前記メタデータに前記変更を反映すること
を備えたことを特徴とする請求項１に記載のシステム。
【請求項６】
前記第１のファイルグループの前記少なくとも１つを同期させることは、
前記ファイル支援アイテム中の前記メタデータに対する変更を識別すること、および、
前記ファイル支援アイテムに関連する前記ファイルに前記変更を反映すること
を備えたことを特徴とする請求項５に記載のシステム。
【請求項７】
前記第１のシステムはサーバコンピュータであることを特徴とする請求項１に記載のシステム。
【請求項８】
前記第２のシステムはクライアントコンピュータであることを特徴とする請求項１に記載のシステム。
【請求項９】
前記第２のシステムはモバイルデバイスであることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記第２のシステムは、切断されている間に、前記アイテムを使用して、前記第１のファイルグループのうちの同期させるべき前記一ファイルを識別するようにさらに適合されたことを特徴とする請求項１に記載のシステム。
【請求項１１】
前記第２のシステムは、切断されている間に、前記第１のファイルグループのうちの同期から除外すべき少なくとも１つを識別するようにさらに適合されたことを特徴とする請求項１に記載のシステム。
【請求項１２】
前記アイテムグループを同期させることは、
第１のバージョンを有するアイテムを前記第１のシステム上で見つけ、第２のバージョンを有する対応アイテムを前記第２のシステム上で見つけ、
前記第１のバージョンと前記第２のバージョンのどちらが保持されるバージョンとなるかを識別し、および、
前記第１のデータストアと前記第２のデータストアの両方が前記保持されるバージョンを含むように前記保持されるバージョンをコピーする
方法を備えたことを特徴とする請求項１に記載のシステム。
【請求項１３】
前記識別することは、
更新インジケータを調べて、前記第１のバージョンと前記第２のバージョンの一方が前回の同期の後で変化したと判定することを備えたことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記更新インジケータはタイムスタンプであることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記更新インジケータはフラグであることを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記更新インジケータはバージョン番号であることを特徴とする請求項１３に記載のシステム。
【請求項１７】
第１のシステム上の第１のファイルストアにファイルを記憶するステップ、
前記ファイルに関係するメタデータを前記第１のシステム上のアイテムストア中に作成するステップであって、前記メタデータは前記ファイルの内容から導出され、ファイル支援アイテムに含まれるステップ、
第２のファイルストアと第２のアイテムストアとを有する第２のシステムを前記第１のシステムに接続し、接続されている間に前記第１のアイテムストアを前記第２のアイテムストアと同期させるステップ、
前記第２のシステムを前記第１のシステムから切断し、切断されている間に、再接続時に同期させるため前記ファイルを識別するステップ、および、
前記第２のシステムを前記第１のシステムに再接続し、接続されている間に前記ファイルを前記第１のファイルストアから前記第２のファイルストアに同期させるステップ
を備えたことを特徴とする方法。
【請求項１８】
前記第１のアイテムストアを前記第２のアイテムストアと同期させる前記ステップは、
第１のバージョンを有するアイテムを前記第１のシステム上で見つけ、第２のバージョンを有する対応アイテムを前記第２のシステム上で見つけるステップ、
前記第１のバージョンと前記第２のバージョンのいずれかを保持されるバージョンと識別するステップ、および、
前記第１のアイテムストアと前記第２のアイテムストアの両方が前記保持されるバージョンを含むように、前記保持されるバージョンをコピーするステップ
を備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記識別するステップは、
更新インジケータを調べて、前記第１のバージョンと前記第２のバージョンの一方が前回の同期の後で変化したと判定するステップを備えたことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記更新インジケータはタイムスタンプであることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記更新インジケータはフラグであることを特徴とする請求項１９に記載の方法。
【請求項２２】
前記更新インジケータはバージョン番号であることを特徴とする請求項１９に記載の方法。
【請求項２３】
前記ファイルのファイルタイプを決定するステップ、および、
前記ファイルタイプに基づいて所定のアイテムのメタデータ値を決定するステップ
を備えた方法によって、メタデータが導出されることを特徴とする請求項１７に記載の方法。
【請求項２４】
前記ファイルのファイルタイプを決定するステップ、および、
前記ファイルに含まれるデータの少なくとも一部を要約してメタデータ値を決定するステップ
を備えた方法によって、メタデータが導出されることを特徴とする請求項１７に記載の方法。
【請求項２５】
前記ファイル支援アイテムに関連する前記ファイルに対する変更を識別するステップ、および、
前記ファイル支援アイテム中の前記メタデータに前記変更を反映するステップ
をさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項２６】
前記ファイル支援アイテム中の前記メタデータに対する変更を識別するステップ、および、
前記ファイル支援アイテムに関連する前記ファイルに前記変更を反映するステップ
をさらに備えたことを特徴とする請求項２５に記載の方法。
【請求項２７】
請求項１７に記載のステップを実施するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータデータベースに関し、より詳細にはデータベースの同期に関する。
【背景技術】
【０００２】
同期されたデータベースは、別々に使用できるが相互に対して時々更新できるデータベースである。例えば、ポータブルコンピュータ上のファイルシステムが、オフィスでサーバのファイルシステムと接続される場合がある。ポータブルコンピュータがオフィス外で使用されるとき、ユーザが作業を継続できるように所定のデータをポータブルコンピュータに記憶することができる。一部のファイルは、ポータブルコンピュータ上で変更および更新されることがあり、サーバ上でも同様である。
【０００３】
ポータブルコンピュータが再びオフィスに持ち込まれたとき、ポータブルコンピュータ上とサーバ上のファイル構造を同期させることができる。ポータブルコンピュータからの更新済みファイルをサーバに転送することができ、同様にサーバからの更新済みファイルをポータブルコンピュータに転送することができる。ファイル構造が非常に多くのデータを含むときは、同期するのに非常に長い時間かかることがあり、ポータブルコンピュータ上とサーバコンピュータ上の両方で多量のストレージ空間を必要とすることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、長時間かかり空間を消費する同期を必要とせずに、接続状況と非接続状況で有用な作業をデータベースに対して実施することのできる、システムおよび方法を提供することが有効である。
【課題を解決するための手段】
【０００５】
本発明は、メタデータと生データとを有するデータベースを同期させるためのシステムおよび方法を提供する。メタデータは、２つのシステム間で完全に同期させることができ、両方のシステムにコピーが記憶される。生データは選択的に同期させることができ、したがって、クライアントシステムはすべての生データをローカルに記憶する必要はない。切断時、クライアントシステムは、ローカルに記憶すべき生データの所定部分を識別することができ、このようなデータは、サーバシステムに再接続されたときに同期させることができる。メタデータは、生データに関連する様々なアイテムを含むことができる。したがって、これらのメタデータは、生データがないときでも、様々な有用な機能をクライアントシステムに提供することができる。生データを操作する、または、生データの変更を生じさせる一部の機能を含むメタデータの操作は、「オフライン」で、生データなしで実施することができる。後続の再同期イベントが発生したとき、これらの変更を生データに反映することができる。
【発明を実施するための最良の形態】
【０００６】
本発明は様々な修正および代替形態が可能であるが、本発明の特定の実施形態を図面に例示し、本明細書で詳細に説明する。しかし、本発明を開示される特定の実施形態に限定する意図はなく、反対に、本発明は、特許請求の範囲によって定義される本発明の趣旨および範囲内に含まれるすべての変更形態、均等形態、および代替形態に及ぶことを理解されたい。一般に、これらの実施形態は、本発明の具体的な発明的態様または特徴を強調するために選択されたものである。
【０００７】
本明細書全体を通じて、同一の参照番号は、図の記述全体を通して同一の要素を表す。
【０００８】
要素が「接続」または「結合」されるものとして言及されるとき、これらの要素は、相互と直接に接続または結合されてもよく、あるいは１つまたは複数の介在要素があってもよい。
【０００９】
本発明は、デバイス、システム、方法、および／またはコンピュータプログラム製品として具体化することができる。したがって、本発明の一部またはすべては、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、ステートマシン、ゲートアレイなどを含む）に組み入れることができる。さらに、本発明は、コンピュータによって使用可能な、またはコンピュータ可読の記憶媒体上のコンピュータプログラム製品の形態をとることができ、この媒体には、命令実行システムによって、または命令実行システムと共に使用される、コンピュータによって使用可能な、またはコンピュータ可読のプログラムコードが組み入れられる。本明細書のコンテキストでは、コンピュータによって使用可能な、またはコンピュータ可読の媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれらと共に使用されるプログラムを、収録する、記憶する、通信する、伝搬する、または搬送することのできる、任意の媒体とすることができる。
【００１０】
コンピュータによって使用可能な、またはコンピュータ可読の媒体は、例えば、電子、磁気、光学、電磁、赤外線、または半導体の、システム、装置、デバイス、または伝搬媒体とすることができるが、これらに限定されるものではない。コンピュータ可読媒体には、例として、コンピュータ記憶媒体および通信媒体を含めることができるが、これらに限定されるものではない。
【００１１】
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、着脱可能および着脱不能の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、または他の磁気記憶装置、あるいは、所望の情報を記憶するのに使用でき命令実行システムからアクセスできるその他の任意の媒体が含まれるが、これらに限定されるものではない。プログラムは、例えば紙媒体または他の媒体を光学的に走査することによって電子的に取り込んでから、必要ならば適切な方式でコンパイル、解釈、または他の方法で処理し、次いでコンピュータメモリに記憶することができるので、コンピュータによって使用可能な、またはコンピュータ可読の媒体は、プログラムが印刷された紙媒体または別の適切な媒体であってもよいことに留意されたい。
【００１２】
通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の移送機構などの被変調データ信号に組み入れるものであり、通信媒体には任意の情報伝達媒体が含まれる。用語「被変調データ信号」は、信号中の情報が符号化される形で１つまたは複数の特性が設定または変更される信号を意味する。例えば、通信媒体には、有線ネットワークや直接有線接続などの有線媒体と、音響、ＲＦ、赤外線などの無線媒体およびその他の無線媒体とが含まれるが、これらに限定されるものではない。上記のいずれかの組合せもコンピュータ可読媒体の範囲内に含まれる。
【００１３】
本発明がコンピュータ実行可能命令の一般的なコンテキストで具体化されるとき、この実施形態は、１つまたは複数のシステム、コンピュータ、またはその他のデバイスによって実行されるプログラムモジュールを含むことができる。一般に、プログラムモジュールは、特定のタスクを実施するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態で望まれるように結合または分散させることができる。
【００１４】
図１に、同期されるデータベースシステムを示す本発明の一実施形態１００を例示する。サーバシステム１０２とクライアントシステム１０４とが、通信パス１０６で接続される。
【００１５】
サーバシステム１０２は、アイテムリポジトリ１１０を含むストレージシステム１０８を有する。アイテム１１２、１１４、および１１６は、それぞれ、パラメータ１１８、１２２、および１２４からなる。アイテム１１２はファイル１２０に関係する。同様に、アイテム１１６はファイル１２６に関係する。
【００１６】
クライアントシステム１０４は、アイテムリポジトリ１３０を含むストレージシステム１２８を有する。アイテム１３２、１３４、および１３６は、それぞれ、パラメータ１３８、１４２、および１４４からなる。アイテム１３２は、ゴースト化されたファイル（ghosted file）１４０に関係する。アイテム１３６は、同期されたファイル１４６に関係する。
【００１７】
サーバシステム１０２およびクライアントシステム１０４は、データを記憶および操作することのできるコンピュータシステムまたはその他の任意のデバイスとすることができる。一実施形態では、サーバシステム１０２はサーバコンピュータであってよく、クライアントシステム１０４はポータブルラップトップコンピュータなどのクライアントシステムであってよい。他の実施形態では、クライアントシステム１０４はポータブルメディアプレーヤ、パーソナル情報マネージャ、または、少なくとも何らかのデータ記憶装置を有するその他のデバイスであってよい。
【００１８】
通信パス１０６は、サーバ１０２とクライアント１０４とが通信できるための任意のタイプの通信機構とすることができる。例として、イーサネット（登録商標）、トークンリング、シリアルまたはパラレル通信などの様々な有線通信プロトコル、様々な無線プロトコル、電話、あるいはその他の任意の通信媒体が挙げられるが、これらに限定されるものではない。クライアントシステム１０４がラップトップコンピュータである実施例では、通信パス１０６はインターネット接続とすることができる。場合によっては、様々な暗号化プロトコルを使用することもできる。
【００１９】
ストレージデバイス１０８および１２８は、ハードディスクストレージシステムとすることができ、あるいは、フラッシュメモリなどの固体メモリを含めたその他の任意のタイプの記憶媒体とすることができる。場合によっては、記憶媒体は不揮発性メモリとすることができ、このような場合以外では、揮発性メモリを使用することができる。任意のタイプのデータ記憶媒体を使用することができる。
【００２０】
アイテム１１２、１１４、および１１６は、様々なアプリケーションにとって有用なメタデータおよびデータを含むことができる。典型的な汎用コンピュータシステムの実施例では、様々なアイテムは、コンピュータシステム上で動作可能なアプリケーションによって使用できる任意のタイプのデータに関係することができる。例えば、電話帳（phone contacts）、カレンダ上のイベント、実施すべき作業などに関係する情報を記憶するために、アイテムを作成することができる。
【００２１】
各アイテムは様々なパラメータを含み、これらのパラメータは、そのタイプのアイテムに特有の値とすることができる。例えば、電話帳アイテムは、相手の名前、会社、住所、および電話番号を記憶するパラメータを含むことができる。アイテムの目的および機能に応じて、種々のタイプのアイテムが種々のパラメータを有することができる。
【００２２】
他のアイテムは、特定の生データファイルに関係することができ、これは例えばアイテム１１２および１１６がそれぞれファイル１２０および１２６と関係を有するなどである。このような場合、アイテムのパラメータの一部またはすべては、ファイルから導出することができる。このようなアイテムは、ファイル支援アイテム（file backed item）と呼ぶことができる。例えば、オーディオ録音を含むファイルは、アーティスト、トラック名、録音の長さ、およびその他のパラメータなどのメタデータを含むファイル支援アイテムを有することができる。同様に、ワードプロセッサ文書を含むファイルは、文書の題名、作成者の名前、主題、およびその他の分類パラメータを含む、関連のファイル支援アイテムを有することができる。
【００２３】
ファイル支援アイテムは、関係するファイルを有し、このファイルに関する様々なメタデータを含むことができる。これらのメタデータは、ファイルディレクトリを分析することによって確認できる導出データに加えて、非導出データを含むことができる。導出データは、生データファイルから特定の情報を選別して様々なパラメータ値を決定する分析ルーチンを実行することによって作成することができる。このようなルーチンは、様々なファイルのタイプごとに異なる場合がある。例えば、ワードプロセッサ文書に関連するファイル支援アイテムは、文書を走査して、題名、目次、キーワード、作成者、またはその他のパラメータを決定することによって作成することができる。これらのメタデータは、生データ内に直接含まれる。
【００２４】
場合によっては、情報を生データファイルから選別して、または外部データベースに対して照会して、または他の方法で処理して、適切なパラメータ値を決定することができる。例えば、オーディオ録音は、アーティスト、曲名、アルバム、ジャンル、および元の発行日を決定できるように、オンラインデータベースに対して照合することができる識別子を有することができる。このようなメタデータは、生データ自体に導出メタデータが含まれていなくても、生データの内容に基づいて導出される。
【００２５】
一部の実施形態では、データベース中の各ファイルが、１つの関係するファイル支援アイテムを有することができる。他の実施形態では、単一のファイル支援アイテムが複数の生データファイルに関係することができ、あるいは、単一の生データファイルが複数の関連するファイル支援アイテムを有することができる。
【００２６】
非導出データは、生データ自体からは導出されない他の情報を含むことができる。例えば、オーディオ録音に関係するパラメータは、録音に対するユーザの評価、または録音が再生された回数を含むことができる。
【００２７】
このシステムは、導出メタデータと生データファイルの一方に対する変更が、他方に反映（propagate）されるように構成することができる。例えば、ワードプロセッサ文書が編集されているときに文書の題名に変更が施された場合、後にこの題名変更を、関連するファイル支援アイテムのメタデータ中で更新することができる。同様に、ファイル支援アイテムが新しい題名変更で更新された場合、この文書の題名を、逆に生データファイルに反映することができる。
【００２８】
本明細書の目的上、ファイル支援アイテムという用語は、アイテムという総称用語のサブセットを示している。ファイル支援アイテムに関するすべての記述および制限は、すべてのアイテムに当てはまるべきであり、総称的なアイテムに関する記述および制限のすべてではないが、その一部は、ファイル支援アイテムという用語に当てはまる場合がある。ファイル支援アイテムという用語は、少なくとも１つの関連ファイルの生データから何らかの方式で導出される少なくとも一部のメタデータを含むアイテムを指すべきである。
【００２９】
クライアントシステム１０４は、サーバシステム１０２と同期される。同期されるとき、サーバのアイテムリポジトリ１１０がクライアントのアイテムリポジトリ１３０と同期される。最初の同期時は、サーバシステム１０２は単に、アイテムリポジトリ１１０全体をクライアントシステム１０４にコピーすればよい。
【００３０】
後続の同期イベントは、前回の同期イベントの後にどのアイテムが更新または変更されたかを検出することを含むことができる。アイテムが更新されているが、反対のシステム上の対応するアイテムは前回の同期から変更されていない場合は、更新されたアイテムを反対のシステムにコピーすることができる。アイテムと、反対のシステム上の対応するアイテムとが両方とも更新されている場合は、一方または他方のアイテムを選択する決定を行わなければならない。一部の実施形態では、どちらのアイテムを保持するかを決定するための規則を使用することができ、他の実施形態では、ユーザに照会することができる。ファイルの同期も、アイテムの同期と同じ方法に従うことができる。
【００３１】
一部の実施形態では、同期の際に、各メタデータアイテムまたは生データファイルにインジケータを割り当てることができる。インジケータを使用して、アイテムまたは生データが更新されているか否かを判定することができる。一部の実施形態では、インクリメンタルなカウンタをバージョン識別子として使用することができる。メタデータまたは生データが更新されるごとにカウンタをインクリメントすることができ、それにより、同期イベントが発生したとき、サーバおよびクライアントのメタデータまたは生データのバージョン識別子を比較して、同期の後で更新が行われたかどうかを判定することができる。
【００３２】
他の実施形態では、タイムスタンプをバージョンインジケータとして使用することができる。タイムスタンプは、日付および時刻を含むことができ、あるいは、コード化された時間信号など別の時間インジケータとすることもできる。さらに他の実施形態では、単純なフラグが、アイテムまたは生データのセットが更新されているか否かを示すことができる。
【００３３】
図１において、アイテム１１２、１１４、および１１６はそれぞれアイテム１３２、１３４、および１３６と同期される。同様に、ファイル１２６はファイル１４６と同期される。
【００３４】
ファイル１４０は、ファイル１２０と同期されないが、「ゴースト化」されているものとして示されている。ファイル１４０は、ディレクトリシステム中のプレースホルダ（placeholder）など、ファイルの属性の一部を有することができるが、ファイル１４０の基礎をなす生データは、クライアントシステム１０４上で利用可能とすることができない。クライアントシステム１０４がサーバシステム１０２から切断されているとき、ファイル１４０に関係するアイテム１３２は利用可能とすることができるが、ファイル１４０中の生データは利用可能とすることができない。
【００３５】
ファイル１４０に関連するメタデータはファイル支援アイテム１３２に含まれているので、一部の機能および操作は、クライアントシステム１０４のユーザに利用可能とすることができる。ファイル１４０に含まれるオーディオファイルの例を用いると、クライアントシステム１０４は、アイテム１３２に含まれるメタデータのみを使用して、様々なオーディオトラックを表示でき、個々のトラックを評価でき、トラックをプレイリストまたは他の有用なグループに分類でき、その他の操作を実施できる。
【００３６】
加えて、アイテム１３２に含まれるメタデータを使用して、ファイル１４０の様々な側面を操作することができる。例えば、アイテム１３２を使用して、ファイル１４０がゴースト化されるのではなく同期されるべきであることを示すことができる。このような指示により、次の同期イベント時にファイル１２０がファイル１４０にコピーされるようにすることができる。別の例では、アイテム１３２を使用して、ファイル１４０を異なるディレクトリまたは階層構造に移動することができる。同様に、アイテム１３２を使用して、ファイル１４０が削除されるべきであることを示すことができる。
【００３７】
アクションを行う対象となるデータと、後の実行のために記憶できるアクションを実行する一機構との両方としてアイテム１３２を使用することにより、その他多くのアクションを示すことができる。オーディオ録音の例を用いると、あるジャンルの音楽に関する照会の結果として、アイテム１３２を表示することができる。ユーザは、データベースから削除するためにアイテム１３２を選択することができる。ファイル１４０は単にゴースト化されているだけで、生データファイルではないので、対応するアイテム１１２およびファイル１２０の削除は、次の同期までは行えない。したがって、削除操作は、次の同期が行われるまでパラメータとしてアイテム１３２に記憶しておくことができる。
【００３８】
ファイル１４０などのファイルをゴースト化することの実際的な利点の１つは、多くの生データファイルを有する大きなデータベースが、クライアントストレージ１２８が保持できるよりもずっと大きくなれることである。しかし、アイテムリポジトリ１３０に記憶された様々なアイテムにはメタデータが含まれているので、データの有用性の多くは依然として存在する。
【００３９】
一部の実施形態では、ファイル１２０および１２６に含まれる生データは、特に知る必要があるときにだけ同期される機密扱いの、または秘密の生データファイルとすることができる。ファイルに関係するメタデータは、非機密扱い、または生データよりも低いレベルの機密扱いとすることができる。例えば、競合的な機密情報、秘密軍事情報、またはその他の機密情報を含む生データファイルをサーバシステム１０２上で保持し、必要でない限りクライアントシステム１０４に転送されないようにすることができる。
【００４０】
他の実施形態では、生データは、サーバシステム１０２とクライアントシステム１０４との間で転送するのに長時間を要する場合のある、並外れて大きいファイルであることがある。例えば、生データファイルが、ギガバイト単位のサイズであるほんの少数の動画ファイルであった場合、ムービーライブラリの同期は、とりわけ通信パス１０６のスループットに応じて、数分間も、さらには数時間もかかることがある。
【００４１】
アイテムリポジトリ１１０および１３０は、メタデータおよび他のデータを記憶するのに有用な任意のタイプのデータストレージとすることができる。一部の実施形態では、アイテムリポジトリ１１０および１３０は、１つのディレクトリ中の単一ファイルであってもよく、あるいは複数ディレクトリ中の複数ファイルであってもよい。他の実施形態では、アイテムリポジトリ１１０および１３０は、その他の任意のタイプのデータ記憶方式で生データと共に記憶することができる。
【００４２】
図２は、ファイルからメタデータを生成することのできる方法の例示的な一実施形態２００のフローチャートである。プロセスはブロック２０２で開始する。ブロック２０４で、ファイルがファイルシステムに記憶される。ブロック２０６で、ファイルに関係するアイテムが作成される。ブロック２０８でファイルが特別なタイプである場合は、ブロック２１０で、分析プログラムを実行してメタデータが生成される。ブロック２１２で、メタデータはアイテムに記憶される。ブロック２０８でファイルが特別なタイプでない場合、またはブロック２１２でメタデータがアイテムに記憶されたときは、ブロック２１４で、アイテムはリポジトリに記憶される。ブロック２１６でプロセスは終了する。
【００４３】
実施形態２００は、生データからメタデータを生成することのできる一方法を例示している。実施形態２００では、生データは、コンピュータシステム中のファイルの形態をとることができる。ファイルが所定のタイプである場合、生データを分析することによって、１つまたは複数のメタデータパラメータ値を決定することができる。これらのパラメータはアイテムに記憶される。
【００４４】
実施形態２００は、一アプリケーションが生データファイルを作成したときに有用だが、メタデータは第２のアプリケーションで有用となり得る。例えば、生データファイルがワードプロセッシングプログラムによって作成された場合、作成者、題名、主題などの様々なメタデータパラメータを生データから抽出することができる。このメタデータは、文書管理アプリケーションが、文書に関係する様々なパラメータを照会、表示、および操作するのに使用することができる。
【００４５】
別の実施形態では、テスト装置によって、数値テストデータを含む生データファイルを作成することができる。ブロック２１０で、分析プログラムが動作して、最大値および最小値などの測定要約パラメータ（measurement summary parameter）をデータから抽出することができる。テスト装置、テスト主題、サンプルサイズ、またはその他のメタデータを識別するパラメータなど、追加のメタデータを別個にアイテムに加えることもできる。
【００４６】
図３は、同期シーケンスの一実施形態３００の図表現である。このプロセスは、初期接続３０１と、システムが切断されている期間３２５と、再接続時３２６のアクションとを示す。
【００４７】
初期接続３０１で、サーバ３０２とクライアント３０４が接続される。サーバ３０２は、アイテムリポジトリ３１０中のアイテム３０８を含むストレージシステム３０６を有する。アイテム３０８の一部は、関係するファイル３１２および３１４を有する。初期接続３０１の間、クライアントストレージ３１６は、サーバ３０２からのアイテム３０８のコピーであるアイテム３２０を含む同期されたアイテムリポジトリ３１８でポピュレートされる。２つのサーバ参照ファイル（server referenced file）３１２および３１４は、クライアント３０４上ではファイル３２２および３２４としてゴースト化される。
【００４８】
初期接続３０１の間、アイテムリポジトリ３１０と３１８が同期され、生データファイル３１２および３１４は、クライアント上ではゴースト化ファイル３２２および３２４としてゴースト化される。
【００４９】
ブロック３２５は、接続が断たれているときのシステムの状態を示す。サーバ３０２はストレージ３０６を維持する。クライアント３０４は、様々なメタデータおよび他の機能を実施できるようにするアイテムリポジトリ３１８を含むストレージ３１６を有する。切断されている間、ゴースト化ファイル３２４を、後に同期するために選択することができる。
【００５０】
ブロック３２６は、再接続時のシステムを示す。サーバ３０２とクライアント３０４は再接続される。ストレージシステム３０６と３１６との間で、アイテムリポジトリ３１０および３１８が同期される。同期ルーチンの一部として、ファイル３２４の生データを切断時でも利用可能とすることができるように、ゴースト化ファイル３２４をファイル３１４に置き換える。
【００５１】
実施形態３００は、ゴースト化ファイルを完全に使用可能なファイルに切り替える一方法を例示している。実施形態３００では、ゴースト化ファイルは、「非ゴースト化」されるように、または次の同期時に完全に機能するファイルとなるように選択することができる。生データファイルに関係するアイテムおよびメタデータは、ブロック３２５に示すオフラインモードで利用可能である。これらのアイテムおよびメタデータは、特定の生データファイルをオフラインで利用可能にするために選択することを含めて、多くの様々な機能に使用することができる。
【００５２】
図４は、ゴースト化ファイルを同期させる方法の例示的な一実施形態４００のフローチャートである。ブロック４０２で、クライアントとサーバが接続される。ブロック４０４で、クライアントとサーバとの間の変更が同期される。接続されている間、ブロック４０６でクライアントは、サーバ上で直接的にアイテムを操作、編集、追加、および削除することができ、さらにサーバ上で直接的に生データファイルにアクセスすることができる。ブロック４０８で、クライアントは、リモートで使用する生データファイルを識別することができ、ブロック４１０で、これらの生データファイルはクライアントに同期される。
【００５３】
ブロック４１２でクライアントとサーバが切断されると、ブロック４１４で、クライアントは、アイテムリポジトリのローカルコピーを使用してアイテムを操作、編集、追加、および削除することができ、さらに、同期された生データファイルにローカルでアクセスすることができる。ブロック４１６で、クライアントはまた、ゴースト化された生データファイルをリモートで使用するために識別することもできる。さらに、ブロック４１８で、クライアントは、生データファイルを同期から除外することもできる。このアクションは、ブロック４１８で生データを実際にクライアントデータストアから削除することを含むことができる。
【００５４】
ブロック４０２でクライアントとサーバが再接続されると、ブロック４０４で、アイテムに対する変更があればそれらの変更は同期され、さらに、前に同期された生データファイルに対する変更があればそれらの変更も同期される。「非ゴースト化」されたファイル、またはオフライン利用可能としてタグ付けされたファイルがあれば、ブロック４０４でそれらのファイルもまた同期させることができる。
【００５５】
生データおよびメタデータを含むデータベースは、２段階で同期される。第１段階では、メタデータがサーバとクライアントとの間で同期され、生データはサーバシステム上に保持される。クライアントシステムは、接続または切断されているとき、クライアントシステム上で利用可能となるべき１つまたは複数の生データファイルを選択することを含めてどのような目的でもメタデータを使用および操作することができる。同期の第２段階は、選択された生データをクライアントシステムに同期させることである。同期された生データは、切断されているときにクライアントシステム上で操作、変更、および使用することができる。再接続時、メタデータまたは生データに施された変更があれば、それらの変更はシステム間で同期される。
【００５６】
実施形態３００および４００の一実施例は、音楽ファイルのためのファイル構造を含むことができる。ファイル３１２および３１４は、ＭＰ３フォーマットまたはその他のデジタルフォーマットなど、デジタル化されたオーディオファイルとすることができる。各オーディオファイルについてのアイテム３０８は、アーティスト、トラック名、および録音の長さを含むことができる。アイテムは、アイテムリポジトリ３１０に記憶することができ、アイテムリポジトリ３１８と完全に同期させることができる。
【００５７】
図３に示された状態３２５のように接続が断たれた後、クライアントシステム３０４のユーザは、リポジトリ３１８中のアイテムを閲覧、操作、および変更することができる。例えばユーザは、アイテムをアーティストごとにソートしたり、一部のアイテムを選択したり、アイテムをオーディオプレイリストに配置したりすることができる。オーディオファイルがデータストア３１６内になくても、ユーザは、オーディオファイルを使用する多くの様々な作業を実施することができる。ユーザはさらに、同期されるようにファイル３２４にフラグを立てることもできる。
【００５８】
システムが状態３２５で切断されている間、ファイル３２２および３２４のためにプレースホルダを使用することができる。ファイルは「ゴースト化」され、ディレクトリ構造内で見えていてもよいし、見えなくてもよい。例えば、ゴースト化ファイルは、灰色に消されて表示されてもよいし、または半透明に表示されてもよい。
【００５９】
状態３２６で接続が復元されると、アイテムリポジトリ３１０および３１８に対する変更があればそれらの変更は同期され、次いで、ファイル３２４など、フラグが立てられたゴースト化ファイルがあればそれらのファイルも同期される。完全に同期されたファイル３２４は、次いでクライアント３０４に転送され、クライアント３０４がサーバ３０２から切断されたときでも使用可能である。
【００６０】
図５は、ファイル支援アイテムを有する同期されるシステムを処理する方法の例示的な一実施形態５００のフローチャートである。ブロック５０２で、データストアが同期され、次いでブロック５０４で、クライアントとサーバが切断される。ブロック５０６で、サーバはファイル支援アイテムについてメタデータと生データファイルの両方を含むので、サーバ上では両方に対して変更を施すことができる。ブロック５０８で、クライアントシステムはファイル支援アイテムのメタデータ部分しか有さないので、クライアント上ではメタデータに対する変更しかできない。ブロック５１０で、クライアントとサーバが再接続されたとき、すべての変更が同期される。ブロック５１２で各ファイルにつき、ブロック５１４でファイルが更新されている場合は、ブロック５１６で変更をメタデータに反映する。ブロック５１８で各メタデータにつき、ブロック５２０でメタデータが更新されている場合は、ブロック５２２で変更を生データファイルに反映する。すべての変更が反映された後、ブロック５２４で、操作は接続された状態で再開する。
【００６１】
実施形態５００は、ファイル支援アイテムに対する変更、またはファイル支援アイテムに関連する生データに対する変更を最新に維持することができる一方法である。ファイル支援アイテムの生データと関連メタデータの一方に対する変更を使用して、他方が更新される。
【００６２】
例えば、複数のワードプロセッシング文書ファイルがそれぞれ、ファイル支援アイテムに関連する場合がある。生データファイルから、章題、題名、キーワード、作成者などのパラメータを導出して、ファイル支援アイテム中のメタデータとして記憶することができる。データストアが同期されるとき、クライアントシステムには、メタデータを有するファイル支援アイテムが記憶され、サーバには、ファイル支援アイテムと生データの両方が記憶される。
【００６３】
クライアントとサーバが切断されているとき、サーバ上では、ワードプロセッサ文書を直接的に編集することによって生データファイルに変更を施すことができる。さらに、ファイル支援アイテムを編集することによってメタデータに変更を施すこともできる。クライアント側では、生データは利用できないので、メタデータに対する変更しかできない。この例では、サーバ上で、１つのワードプロセッサ文書を編集して、新しい章を文書に追加することができる。生データファイルから章題を導出して、ファイル支援アイテムのメタデータに追加することができる。同様に、クライアントシステム上で、別のファイル支援アイテム中の作成者パラメータを変更することができる。
【００６４】
クライアントとサーバが再接続されたとき、サーバ上のファイルに加えられた追加の章などの生データファイルに対する変更が、関連するファイル支援アイテムのメタデータに反映される。場合によっては、変更は、サーバ上では変更が行われたときに反映することができるが、クライアントには再接続まで反映されないようにすることができる。
【００６５】
同様に、上記の例における作成者変更などのクライアント上のメタデータに対する変更は、クライアントとサーバが再接続されたときにサーバ上の生データファイル中に反映されることになる。ワードプロセッサ文書が開かれ、ワードプロセッサ文書は生データファイルの中で作成者の値を含む部分を見つけ、古い値を新しい値で上書きすることができる。
【００６６】
本発明に関する上記の記載は、例示および説明の目的のために提示されている。この記載は、網羅的なものではなく、開示した正確な形態に本発明を限定するものでもなく、以上の教示に鑑みて他の変更形態および変形形態も可能である。本発明の原理およびその実際的な適用例を最も適切に説明して、それにより、企図される特定の使用に適する様々な実施形態および様々な変更形態において当業者が本発明を最もよく利用できるようにするために、各実施形態は選択および記載されている。添付の特許請求の範囲は、従来技術によって制限される場合を除き、本発明の他の代替形態を含むように解釈されることが意図されている。
【図面の簡単な説明】
【００６７】
【図１】同期されるデータベースシステムを示す一実施形態のブロック図である。
【図２】ファイルに関係するアイテムを作成する方法を示す一実施形態を例示するフローチャート図である。
【図３】ゴースト化ファイルを同期させるためのイベントシーケンスを示す一実施形態のブロック図である。
【図４】ゴースト化ファイルを同期させる方法を示す一実施形態のフローチャート図である。
【図５】生データファイルおよびメタデータに対する変更を同期させる方法を示す一実施形態のフローチャート図である。
【符号の説明】
【００６８】
１１２、１１４、１１６、１３２、１３４、１３６  アイテム
１１８、１２２、１２４、１３８、１４２、１４４  パラメータ
１２０、１２６  ファイル
１４０  ゴースト化ファイル
１４６  同期されたファイル
３０８、３２０  アイテム
３１２、３１４  ファイル
３２２  ゴースト化ファイル
３２４  同期されるように選択されたゴースト化ファイル
【図１】
2006236350.tif 000003
【図２】
2006236350.tif 000004
【図３】
2006236350.tif 000005
【図４】
2006236350.tif 000006
【図５】
2006236350.tif 000007