JP5280583B2 - サーバ記憶モデルを利用したファイルパーティションの同期 - Google Patents

サーバ記憶モデルを利用したファイルパーティションの同期 Download PDF

Info

Publication number
JP5280583B2
JP5280583B2 JP2012514057A JP2012514057A JP5280583B2 JP 5280583 B2 JP5280583 B2 JP 5280583B2 JP 2012514057 A JP2012514057 A JP 2012514057A JP 2012514057 A JP2012514057 A JP 2012514057A JP 5280583 B2 JP5280583 B2 JP 5280583B2
Authority
JP
Japan
Prior art keywords
partition
computer
client computer
electronic document
server computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012514057A
Other languages
English (en)
Other versions
JP2012529118A5 (ja
JP2012529118A (ja
Inventor
ピーター クラーク シモン
アーナブ エス.ボーズ ミコ
ソン シュエレイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012529118A publication Critical patent/JP2012529118A/ja
Publication of JP2012529118A5 publication Critical patent/JP2012529118A5/ja
Application granted granted Critical
Publication of JP5280583B2 publication Critical patent/JP5280583B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1062Editing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、クライアント−サーバコンピュータネットワークにおけるファイルパーティションの同期に関する。
クライアント−サーバコンピュータネットワークでは、電子ドキュメントファイルを、複数のユーザによって異なるクライアントコンピュータから編集することができる。電子ドキュメントファイルには、主ドキュメントファイルのコンテンツとは異なり、かつそのコンテンツから独立した関連する編集セッションデータ(例えば、メタデータ(metadata))が含まれ得る。電子ドキュメントファイルは、その電子ドキュメントファイルに対して加えられたいかなる編集も記憶するように、クライアントコンピュータと中央サーバとの間で同期させ、こうした編集は、その後ネットワーク内の他のクライアントコンピュータのユーザが見ることができる。既存の同期方法では、関連するいかなるメタデータも、電子ドキュメントファイルに対して加えられた編集と共に同期させなければならない。特に、マークアップ言語、またはOLE(object linking and embedding)複合ドキュメントでは、メタデータは、拡張ファイル形式として、同期させることができる。同期の結果、電子ドキュメントファイルに関連するメタデータは、その電子ドキュメントファイルを同期させているユーザがそのメタデータを他のユーザに見られる、または(電子ドキュメントファイル内に)ダウンロードされることを望まない場合であっても、サーバ上で自動的にエクスポーズされることになる。本発明の様々な実施形態は、上記およびその他の考慮すべき点に関してなされた。
米国特許出願第12/113,975号明細書
この概要は、以下の詳細な説明でさらに説明する概念の抜粋を簡略な形で提示するものである。この概要は、特許請求する主題の重要な特徴、または本質的な特徴を特定するものでも、特許請求する主題の範囲を決定する一助となるものでもない。
クライアント−サーバコンピュータネットワークにおいて、サーバ記憶モデルを利用してファイルパーティションを同期させる実施形態を示す。電子ドキュメントのコンテンツに対する編集は、クライアントコンピュータで受信することができる。このコンテンツは、サーバコンピュータに記憶されたファイルの第1のパーティション内に含めることができる。第1のパーティションは、電子ドキュメントコンテンツを含む第1のストリームを含むことができる。ファイルは、複数のパーティションを含むことができ、各パーティションは、1つまたは複数のストリームを含むことができる。クライアントコンピュータは、ファイルの第2のパーティション内で、メタデータを生成することができる。メタデータは、第1のパーティション内の電子ドキュメントコンテンツに対する編集と関連付けることができる。次いで、第2のパーティションをサーバコンピュータと個別に同期させて、メタデータを記憶することができる。次いで、第1のパーティションをサーバコンピュータと個別に同期させて、電子ドキュメントコンテンツに対して加えられた編集を記憶することができる。
上記およびその他の特徴ならびに利点は、以下の詳細な説明を読み、関連する図面を参照すると明白となるであろう。前述の概要、および以下の詳細な説明はどちらも、単なる例示にすぎず、特許請求する本発明を限定するものではないことを理解されたい。
様々な実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させることができるクライアント−サーバネットワークアーキテクチャを示すブロック図である。 様々な実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させることができるクライアントコンピューティング環境を示すブロック図である。 ある実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させるルーチンを示す流れ図である。 図3に記載の実施形態に従い、サーバ記憶モデルを利用して単一のファイルパーティションを同期させるルーチンを示す流れ図である。 図3に記載の実施形態に従い、サーバ記憶モデルを利用してもう1つのファイルパーティションを同期させるルーチンを示す流れ図である。 別の実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させるルーチンを示す流れ図である。 図6に記載の実施形態に従い、サーバ記憶モデルを利用して第2のクライアントコンピュータのファイルパーティションを同期させるルーチンを示す流れ図である。
クライアント−サーバコンピュータネットワークにおいて、サーバ記憶モデルを利用してファイルパーティションを同期させる実施形態を示す。電子ドキュメントのコンテンツに対する編集は、クライアントコンピュータで受信することができる。このコンテンツは、サーバコンピュータに記憶されたファイルの第1のパーティション内に含めることができる。第1のパーティションは、電子ドキュメントコンテンツを含む第1のストリームを含むことができる。ファイルは、複数のパーティションを含むことができ、各パーティションは、1つまたは複数のストリームを含むことができる。クライアントコンピュータは、ファイルの第2のパーティション内で、メタデータを生成することができる。メタデータは、第1のパーティション内の電子ドキュメントコンテンツに対する編集と関連付けることができる。次いで、第2のパーティションをサーバコンピュータと個別に同期させて、メタデータを記憶することができる。次いで、第1のパーティションをサーバコンピュータと個別に同期させて、電子ドキュメントコンテンツに対して加えられた編集を記憶することができる。
以下の詳細な説明では、本明細書の一部を成す添付の図面を参照するが、これらの図面は特定の実施形態または実施例を例によって示すものである。本発明の趣旨または範囲から逸脱することなく、これらの実施形態を組み合わせること、他の実施形態を利用すること、および構造に変更を行うことができる。したがって、以下の詳細な説明は、限定的な意味で解釈すべきではなく、本発明の範囲は、添付の特許請求の範囲、およびその均等物によって規定されるものである。
次に、図面を参照しながら本発明の様々な態様を説明するが、図面は、いくつかの図を通して同じ符号は同じ要素を示す。図1は、様々な実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させることができるクライアント−サーバネットワークアーキテクチャを示すブロック図である。このネットワークアーキテクチャは、クライアントコンピュータ2およびクライアントコンピュータ6を含み、どちらもネットワーク4を介してサーバコンピュータ70と通信する。ネットワーク4には、ローカルネットワークまたは広域ネットワーク(例えば、インターネット)が含まれ得る。
クライアントコンピュータ2は、生産性アプリケーション30を記憶することができ、このアプリケーション30を用いて、電子ドキュメントファイル40(やはりクライアントコンピュータ2に記憶されている)を編集することができる。様々な実施形態によれば、生産性アプリケーション30は、ワシントン州レドモンドのMICROSOFT CORPORATION製のWORD文書作成ソフトウェア、POWERPOINTプレゼンテーショングラフィクスプログラム、およびGROOVEソフトウェアを備えることができる。しかし、本明細書に記載の様々な実施形態によれば、他の製造者製の他の生産性プログラムまたはアプリケーションプログラムも使用することができることを理解されたい。
電子ドキュメントファイル40は、ネットワーク4を介してサーバコンピュータ70からダウンロード操作することによって、クライアントコンピュータ2で受信することができ、または、電子ドキュメントファイル40は、クライアントコンピュータ2の生産性アプリケーション30によって生成することができる。電子ドキュメントファイル40は、パーティション50を含むことができる。パーティション50は、ストリーム52および56を含むことができる。ストリーム52は、コンテンツ54A(すなわち電子ドキュメントコンテンツ)をさらに含むことができる。電子ドキュメントファイル40はまた、パーティション60を含むことができる。パーティション60は、ストリーム62および68を含むことができる。ストリーム62は、メタデータ64Aをさらに含むことができる。ある実施形態によれば、メタデータ64Aは、パーティション50内に記憶されたコンテンツ54Aと関連付けることができる。特に、メタデータ64Aは、コンテンツ54Aの1人または複数人の作成者を記載した作成者リスト67Aと、電子ドキュメントファイル40の現在のユーザ(例えば、現在コンテンツ54Aを編集しているユーザ)を記載したドキュメントロック66Aとを含むことができる。
様々な実施形態によれば、「パーティション」は、ファイル(電子ドキュメントファイル40など)内の「ファイル」として定義され、1つまたは複数のストリームを含むことができる。パーティション内に含まれる「ストリーム」は、電子ドキュメントファイルに関連するデータ(コンテンツ54Aまたはメタデータ64Aなど)を含む。ファイル内の各パーティションは、互いに独立に、かつ異なる同期速度で同期させることができる(すなわち、単一のファイル内のパーティションを、異なる時間で同期させることができる)ことを理解されたい。さらに、同じパーティション内の複数のストリームは、互いに関連するが、異なるパーティション内のストリーム間では関連がなくともよい。例えば、ストリーム56は、電子ドキュメントコンテンツに関連する(したがって、ストリーム52に関連する)データを含むが、電子ドキュメントファイル40に関連するメタデータは含まなくともよい。さらに、所与のパーティション内の複数のストリームを同時に同期させ、それによって同じパーティション内のストリーム間で整合性を保証する。
クライアントコンピュータ6は、生産性アプリケーション30を記憶することができ、このアプリケーション30をやはり用いて、電子ドキュメントファイル40(やはりクライアントコンピュータ6に記憶されている)を編集することができる。電子ドキュメントファイル40は、ネットワーク4を介してサーバコンピュータ70からダウンロード操作することによって、クライアントコンピュータ6で受信することができ、または、電子ドキュメントファイル40は、クライアントコンピュータ6の生産性アプリケーション30によって生成することができる。電子ドキュメントファイル40は、パーティション50を含むことができる。パーティション50は、ストリーム52および56を含むことができる。ストリーム52は、コンテンツ54B(すなわち電子ドキュメントコンテンツ)をさらに含むことができる。電子ドキュメントファイル40はまた、パーティション60を含むことができる。パーティション60は、ストリーム62および68を含むことができる。ストリーム62は、メタデータ64Bをさらに含むことができる。様々な実施形態によれば、「メタデータ」は、パーティション内のストリームに含まれるコンテンツを表すことを理解されたい。ある実施形態によれば、メタデータ64Bは、パーティション50内に記憶されたコンテンツ54Bと関連付けることができる。特に、メタデータ64Bは、コンテンツ54Bの1人または複数人の作成者を記載した作成者リスト67Bと、電子ドキュメントファイル40の現在のユーザ(例えば、現在コンテンツ54Bを編集しているユーザ)を記載したドキュメントロック66Bとを含むことができる。
サーバコンピュータ70は、サーバアプリケーション42を記憶することができる。様々な実施形態によれば、サーバコンピュータ70は、クライアントコンピュータ2および6で作成された電子ファイル用のドキュメント記憶システムとして機能することができる。サーバアプリケーション42は、MICROSOFT CORPORATION製のSHAREPOINT SERVERサービスアプリケーションなどの共用サービスアプリケーションプログラムを備えることができる。当業者には知られているように、SHAREPOINTサービス技術によって、ユーザは共用環境を構築し、維持し、提示して情報を共有することが可能となる。この技術を使用すると、ユーザまたは組織は、1つまたは複数のウェブサイトを構築して、そのウェブサイトに関連する他のユーザに情報(例えば、ウェブサーバまたはウェブフォルダ上のドキュメントなど)を供給し、そうした情報を共有することができる。本明細書に記載の実施形態は、SHAREPOINTサービス技術に限られるものとして解釈すべきでなく、他の開発者および/または製造者製の他の共用サービス技術もやはり使用することができることを理解されたい。
サーバコンピュータ70はまた、電子ドキュメントファイル40を記憶することができる。電子ドキュメントファイル40は、パーティション50を含むことができる。パーティション50は、ストリーム52および56を含むことができる。ストリーム52は、コンテンツ54(すなわち電子ドキュメントコンテンツ)をさらに含むことができる。電子ドキュメントファイル40はまた、パーティション60を含むことができる。パーティション60は、ストリーム62および68を含むことができる。ストリーム62は、メタデータ64をさらに含むことができる。ある実施形態によれば、メタデータ64は、パーティション50内に記憶されたコンテンツ54と関連付けることができる。特に、メタデータ64は、コンテンツ54の1人または複数人の作成者を記載した作成者リスト67と、電子ドキュメントファイル40の現在のユーザ(例えば、現在コンテンツ54を編集しているユーザ)を記載したドキュメントロック66とを含むことができる。ある実施形態によれば、電子ドキュメントファイル40は、サーバコンピュータ70からクライアントコンピュータ2および6にダウンロードして編集することができ、それによって、サーバコンピュータ70に同期を戻す前に変更が行われた場合に、電子ドキュメントファイル40内のコンテンツ54およびメタデータ64に、異なるバージョンが作成される可能性があることを理解されたい。したがって、本明細書の詳細な説明では、コンテンツ54およびメタデータ64のクライアントコンピュータ2および6におけるバージョンを、それらのファイル要素を表す参照番号の後に文字「A」および「B」を付すことによって識別している。
様々な実施形態によれば、また図3〜7に関して以下でより詳細に説明するように、サーバアプリケーション42、および生産性アプリケーション30は、クライアントコンピュータ2および6のパーティション50および60の、サーバコンピュータ70との同期を容易にするように構成することができる。ある実施形態によれば、サーバアプリケーション42は、(それだけに限られるものではないが、ステートレスプロトコル(stateless protocol)を含めた)プロトコルを利用して、ドキュメントの増分同期を容易にし、かつサーバファイルが、複数の独立データストリーム、または従属データストリームをエクスポーズする一助となるように構成することができる。したがって、電子ファイル内の各パーティションは、互いに独立に、かつ異なる同期速度で同期させることができる(すなわち、単一のファイル内のパーティションを、異なる時間で同期させることができる)。例えば、サーバアプリケーション42は、生産性アプリケーション30と共に、クライアントコンピュータ2の(メタデータ64を含む)パーティション60を、(コンテンツ54Aを含む)パーティション50よりも先にサーバコンピュータ70と同期させるように構成することができる。異なる速度でパーティションを同期させることによって、ネットワーク4を介してサーバコンピュータ70に通信されるデータ量が減少し、それによってサーバのスケーラビリティが向上することを理解されたい。様々な実施形態に従って利用することができる例示のステートレスプロトコルが、2008年5月2日出願の関連の特許文献1、名称「Document Synchronization over Stateless Protocols」に記載され、その開示を全体として参照により本明細書に組み込む。
クライアントコンピュータ2および6、ならびにサーバコンピュータ70に関して論じた様々なパーティションおよびストリームは、単なる例にすぎず、様々な実施形態による電子ドキュメントファイル内に含まれるパーティションまたはストリームの数に限定されるものではないことを理解されたい。例えば、ある実施形態によれば、電子ドキュメントファイルは、単一のパーティション、および単一のストリームしか含まなくともよく、他の実施形態によれば、電子ドキュメントファイルは、複数のパーティション、および複数のストリームを含んでもよい。様々な実施形態によれば、クライアントコンピュータ2および6、ならびにサーバコンピュータ70の電子ドキュメントファイル内に含まれたストリームのコンテンツは、メタデータに限られるものではなく、汎用データ(すなわち、電子ドキュメントファイルパーティション内に記憶されたコンテンツに関連しないデータ)も同様に含むことができることをさらに理解されたい。本明細書に記載の実施形態は、前述のソフトウェアアプリケーションに限られるものとして解釈すべきではなく、他の開発者および/または製造者製の他のソフトウェアアプリケーションもやはり使用することができることをさらに理解されたい。図1のネットワークアーキテクチャ、およびその構成要素は、他のコンピューティング装置、通信装置、および/または他のシステムと通信する機能性を含み、本明細書に記載の実施形態および実施例に限定されるものではないことをさらに理解されたい。したがって、例えば、様々な実施形態によれば、図1のネットワークアーキテクチャは、サーバコンピュータ70と通信している追加のクライアントコンピュータを含むことができる。
例示的な動作環境
次に、図2を参照すると、以下の考察は、様々な例示の実施形態を実施することができる適切なコンピューティング環境の簡略な概要を示すものである。様々な実施形態について、パーソナルコンピュータのオペレーティングシステムで実行するプログラムモジュールと共に実行するプログラムモジュールの一般的な例をとって説明するが、これらの様々な実施形態はまた、他のタイプのコンピュータシステムおよびプログラムモジュールと組み合わせて実施することもできることが、当業者には認識されよう。
一般に、プログラムモジュールには、特定のタスクを実施する、または特定の抽象データ型を実施するルーチン、プログラム、構成要素、データ構造、および他のタイプの構造が含まれる。さらに、様々な実施形態は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの消費者向け電子機器、またはプログラム可能な消費者向け電子機器、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成を用いても実施できることが当業者には理解されよう。様々な実施形態はまた、通信ネットワークを介してリンクしているリモート処理装置によってタスクが実施される分散コンピューティング環境でも実行することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置、およびリモートメモリ記憶装置の両方に配置することができる。
図2は、1つまたは複数のアプリケーションプログラムを実行することが可能な、汎用デスクトップ、ラップトップ、ハンドヘルド、タブレット、または他のタイプのコンピュータが含まれ得るクライアントコンピュータ2を示す。クライアントコンピュータ2は、少なくとも1つのCPU8(中央処理装置)、RAM18(ランダムアクセスメモリ)、およびROM20(読み取り専用メモリ)を含むシステムメモリ12、ならびにメモリをCPU8に結合するシステムバス10を含む。スタートアップ中など、コンピュータ内の要素間で情報を転送する助けとなる基本ルーチンを含む基本入出力システムが、ROM20内に記憶されている。クライアントコンピュータ2は、オペレーティングシステム32、生産性アプリケーション30、ならびに図1に関して上述したパーティション50、ストリーム52、56、62、および68、コンテンツ54A、メタデータ64A、作成者リスト67A、およびドキュメントロック66Aを含む電子ドキュメントファイル40を記憶する大容量記憶装置14をさらに含む。
様々な実施形態によれば、オペレーティングシステム32は、ワシントン州レドモンドのMICROSOFT CORPORATION製のWINDOWS(登録商標)オペレーティングシステムなど、ネットワーク化されたパーソナルコンピュータの動作を制御するのに適したものでよい。大容量記憶装置14は、バス10に接続された大容量記憶装置制御器(図示せず)を介してCPU8に接続されている。大容量記憶装置14、およびそれに付随するコンピュータ可読媒体が、クライアントコンピュータ2用の不揮発性記憶装置となる。本明細書に含まれるコンピュータ可読媒体の説明は、ハードディスクまたはCD−ROMドライブなどの大容量記憶装置を指しているが、コンピュータ可読媒体は、クライアントコンピュータ2によってアクセスまたは利用することができる、利用可能ないかなる媒体でもよいことを当業者には理解されたい。例として、それだけに限られるものではないが、コンピュータ可読媒体には、コンピュータ記憶媒体、および通信媒体が含まれ得る。
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶する任意の物理的方法または技術で実施される、揮発性および不揮発性の、取り外し可能、および取り外し不可能なハードウェア記憶媒体が含まれる。コンピュータ記憶媒体には、それだけに限られるものではないが、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、または他の固体メモリ技術、CD−ROM、DVD(デジタル多用途ディスク)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置が含まれ、これらのコンピュータ記憶媒体を用いて、所望の情報を記憶することができ、かつこれらのコンピュータ記憶媒体は、クライアントコンピュータ2によってアクセスすることができる。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波もしくは他の搬送機構などの変調されたデータ信号で実施し、通信媒体には、いかなる情報送達媒体も含まれる。用語「変調されたデータ信号」とは、情報を信号内で符号化するようにその特性の1つまたは複数が設定または変更された信号を意味する。例として、それだけに限られるものではないが、通信媒体には、有線ネットワーク、もしくは直接有線接続などの有線媒体、ならびに音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せもやはり、コンピュータ可読媒体の範囲内に含まれるものである。コンピュータ可読媒体はまた、コンピュータプログラム製品と呼ぶこともできる。
様々な実施形態によれば、クライアントコンピュータ2は、例えば、ローカルネットワークまたは広域ネットワーク(例えばインターネット)が含まれ得るネットワーク4を介した、リモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。クライアントコンピュータ2は、バス10に接続されたネットワークインターフェイスユニット16を介してネットワーク4に接続することができる。ネットワークインターフェイスユニット16をやはり利用して、他のタイプのネットワーク、およびリモートコンピューティングシステムに接続することができることを理解されたい。クライアントコンピュータ2はまた、キーボード、マウス、ペン、スタイラス、指、および/または他の手段を含めて、いくつかの入力タイプからの入力を受信し、処理する入出力制御器22を含むことができる。同様に、入出力制御器22は、表示装置82、プリンタ、または他のタイプの出力装置に出力を供給することができる。さらに、タッチスクリーンを入出力機構として働かせてもよい。図1に示すクライアントコンピュータ6およびサーバコンピュータ70は、図2のクライアントコンピュータ2に関して示した従来の構成要素を多数含み得ることを理解されたい。
図3は、ある実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させるルーチン300を示す流れ図である。本明細書に記載のルーチンに関する考察を読めば、本発明の様々な実施形態の論理演算は、(1)コンピューティングシステムで実行され、コンピュータによって実施される一連の行為もしくはプログラムモジュールとして、かつ/または(2)コンピューティングシステム内で相互接続された機械論理回路、もしくは回路モジュールとして実施されることが理解されよう。その実施は、本発明を実施するコンピューティングシステムの性能要件に依存した選択事項である。したがって、図3〜7に示し、かつ本明細書に記載の様々な実施形態を構築する論理演算は、操作、構造装置、行為、またはモジュールとして様々に称される。これらの操作、構造装置、行為、およびモジュールは、本明細書に記載の特許請求の範囲に記載の本発明の趣旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的デジタル論理、およびそれらのいかなる組合せにおいても実施することができることが当業者には認識されよう。
ルーチン300は、操作305から開始し、ここでクライアントコンピュータ2で実行されている生産性アプリケーション30は、電子ドキュメントファイル40のパーティション50内の(ストリーム52内に含まれた)電子ドキュメントコンテンツに対する編集を受信する。ある実施形態によれば、電子ドキュメントファイル40は、その中に含まれたパーティションおよびストリームを全て含めて、サーバコンピュータ70からダウンロードすることができる。次いで、パーティション50は、その中に含まれたコンテンツ54を編集するために開き、それによってコンテンツ54Aを作成することができる。
ルーチン300は、操作305から操作310に続き、ここで生産性アプリケーション30は、電子ドキュメントファイル40のパーティション60内でメタデータ64Aを生成する。特に、生産性アプリケーション30は、電子ドキュメントファイル40のパーティション60内の作成者リスト67を更新して、クライアントコンピュータ2のユーザを作成者として追加するメタデータを生成することができる(それによって、作成者リスト67Aを生成する)。生産性アプリケーション30はまた、電子ドキュメントファイル40のパーティション60にドキュメントロック66Aを追加して、電子ドキュメントファイル40が、現在クライアントコンピュータ2のユーザによって編集されていることを示すメタデータを生成することができる。
ルーチン300は、操作310から操作315に続き、ここで生産性アプリケーション30は、メタデータ64に対して加えられた変更(すなわち、作成者リスト67Aおよびドキュメントロック66Aを含むメタデータ64A)をサーバコンピュータ70に保存するために、パーティション60をサーバコンピュータ70と同期させる要求をサーバアプリケーション42に送信する。パーティション60は、変更されたメタデータ64Aだけがサーバコンピュータ70に保存されるように、パーティション50とは独立に同期させることができることを理解されたい。パーティション60をサーバコンピュータと同期させる例示のルーチンについて、図4に関して以下でより詳細に説明する。
ルーチン300は、操作315から操作320に続き、ここで生産性アプリケーション30は、編集済みのコンテンツ54Aをサーバコンピュータ70に保存するために、パーティション50をサーバコンピュータ70と同期させる要求をサーバアプリケーション42に送信する。パーティション50は、編集済みコンテンツ54Aだけがサーバコンピュータ70に保存されるように、パーティション60とは独立に同期させることができることを理解されたい。パーティション60および50を同期させる順序は逆でもよく、したがってパーティション50を、パーティション60よりも先に、サーバコンピュータ70と独立に同期させてもよいことをさらに理解されたい。パーティション50をサーバコンピュータ70と同期させる例示のルーチンについて、図5に関して以下でより詳細に説明する。ルーチン300は、操作320から操作325に続き、ここでルーチン300は終了する。上記で論じた操作310〜320はまた、ある実施形態によれば、クライアントコンピュータ6で実行されている生産性アプリケーション30によって実施することができることを理解されたい。
図4は、図3に記載の実施形態に従い、サーバ記憶モデルを利用して単一のファイルパーティションを同期させるルーチン400を示す流れ図である。ルーチン400は、図3の操作315から開始し、操作405に続き、ここでサーバアプリケーション42は、クライアントコンピュータ2のパーティション60をサーバコンピュータ70と同期させるのに競合(conflict)があるか判定する。特に、ある実施形態によれば、サーバアプリケーション42は、クライアントコンピュータ2のパーティション60内に記憶されたメタデータ64Aを、サーバコンピュータ70に記憶されたメタデータ64と比較して、何らかの差があるか判定することができる。メタデータ64Aとメタデータ64とが異なる場合、サーバアプリケーション42は、競合があると判定し、ルーチン400は操作410に続く。メタデータ64Aとメタデータ64との間に差がない場合、ルーチン400は図3の操作320に戻る。
操作410で、サーバアプリケーション42は、クライアントコンピュータ2のパーティション60内のメタデータ64Aの方が、サーバコンピュータ70に記憶されたメタデータ64よりも新しいかに基づいて、競合を解決する手法を決定する。特にパーティション60を同期させる生産性アプリケーション30からの要求は、メタデータ64Aがクライアントコンピュータ2のパーティション60内に記憶された時期を示すタイムスタンプ(timestamp)を含むことができる。サーバアプリケーション42は、そのタイムスタンプを、メタデータ64がサーバコンピュータ70のパーティション60内に記憶された時期を示すタイムスタンプと比較することができる。メタデータ64Aがメタデータ64よりも新しいと判定された場合、ルーチン400は操作415に続く。メタデータ64がメタデータ64Aよりも新しいと判定された場合、ルーチン400は操作420に分岐する。別の実施形態によれば、パーティション60を同期させる生産性アプリケーション30からの要求は、競合を識別する(かつ解決する)HTTP(ハイパーテキストマークアップ言語)ETAG(エンティティタグ)を含むことができることを当業者には理解されたい。
操作415で、サーバアプリケーション42は、クライアントコンピュータ2のパーティション60をサーバコンピュータ70と自動的に同期させ、クライアントコンピュータ2にある最新のメタデータ64Aを優先して競合を解決する。したがって、サーバアプリケーション42は、サーバコンピュータ70のパーティション60内のメタデータ64を、メタデータ64Aで更新することができる。ルーチン400は、操作415から図3の操作320に戻る。
操作420で、サーバアプリケーション42は、メタデータ64Aよりも新しいメタデータ64を優先して競合を解決するように、クライアントコンピュータ2のパーティション60のサーバコンピュータ70との同期を自動的に失敗させる。したがって、サーバアプリケーション42は、サーバコンピュータ70のパーティション60内のメタデータ64を維持することができる。ルーチン400は、操作420から図3の操作320に戻る。
図5は、図3に記載の実施形態に従い、サーバ記憶モデルを利用してもう1つのファイルパーティションを同期させるルーチン500を示す流れ図である。ルーチン500は、図3の操作320から開始し、操作505に続き、ここでサーバアプリケーション42は、クライアントコンピュータ2のパーティション50をサーバコンピュータ70と同期させるのに競合があるか判定する。特に、ある実施形態によれば、サーバアプリケーション42は、クライアントコンピュータ2のパーティション50内に記憶されたコンテンツ54Aを、サーバコンピュータ70のパーティション50内に記憶されたコンテンツ54と比較することができる。コンテンツ54が、クライアントコンピュータ2のパーティション50内の編集済みコンテンツ54Aにはない編集を含む場合、サーバコンピュータ70は、競合があると判定し、ルーチン500は操作510に続く。コンテンツ54が編集を全く含まない場合、ルーチン500は操作515に続く。
操作510で、サーバアプリケーション42は、クライアントコンピュータ2のユーザ向けに競合エラーメッセージを生成する。例えば、サーバアプリケーション42がクライアントコンピュータ2に対して生成する競合エラーメッセージには、サーバ70に先にアップロードされた、コンテンツ54に対する(例えば、クライアントコンピュータ6のユーザによって行われた)未知の編集が含まれ得る。競合エラーメッセージに応答して、クライアントコンピュータ2のユーザは、編集済みコンテンツ54Aを、コンテンツ54に対する編集とマージすることによって、あるいは、コンテンツ54に対する先の編集を、サーバ70で変更しないまま維持することによって、手動で競合を解決することができる。ルーチン500は、操作510から図3の操作325に戻る。
操作515で、サーバアプリケーション42は、パーティション50内の編集済みコンテンツ54Aをサーバ70と同期させて、サーバ70のコンテンツ54を編集済みコンテンツ54Aで更新する。ルーチン500は、操作515から図3の操作325に戻る。
図6は、別の実施形態に従い、サーバ記憶モデルを利用してファイルパーティションを同期させるルーチン600を示す流れ図である。ルーチン600は、操作605から開始し、ここでクライアントコンピュータ2で実行されている生産性アプリケーション30は、電子ドキュメントファイル40のパーティション50内の(ストリーム52内に含まれた)電子ドキュメントコンテンツに対する編集を受信する。ある実施形態によれば、電子ドキュメントファイル40は、その中に含まれたパーティションおよびストリームを全て含めて、サーバコンピュータ70からダウンロードすることができる。次いで、パーティション50は、その中に含まれたコンテンツ54を編集するために開き、それによってコンテンツ54Aを作成することができる。
ルーチン600は、操作605から操作610に続き、ここで生産性アプリケーション30は、電子ドキュメントファイル40のパーティション60内で、パーティション50内のコンテンツ54Aの編集者を識別するメタデータ64Aを生成する。特に、生産性アプリケーション30は、電子ドキュメントファイル40のパーティション60内の作成者リスト67に、コンテンツ54Aの編集者の名前を追加するメタデータを生成することができる(それによって、作成者リスト67Aを生成する)。
ルーチン600は、操作610から操作615に続き、ここで生産性アプリケーション30は、メタデータ64に対して加えられた変更(すなわち、作成者リスト67Aを含むメタデータ64A)をサーバコンピュータ70に保存するために、パーティション60をサーバコンピュータ70と同期させる要求をサーバアプリケーション42に送信する。パーティション60は、変更されたメタデータ64Aだけがサーバコンピュータ70に保存されるように、パーティション50とは独立に同期させることができることを理解されたい。
ルーチン600は、操作615から操作620に続き、ここでクライアントコンピュータ6で実行されている生産性アプリケーション30は、電子ファイル40をダウンロードすることによって、サーバコンピュータ70からファイルパーティション50および60を(その中に含まれたストリーム42、56、62、および68を含めて)受信する。クライアントコンピュータ6は、ファイルパーティション60を受信する際に、クライアントコンピュータ2のコンテンツ54Aの編集者を識別するメタデータ64Aもやはり受信し、このメタデータ64Aは、操作615でクライアントコンピュータ2のパーティション60をサーバコンピュータ70と同期させた結果として生じたものであることを理解されたい。したがって、クライアントコンピュータ6のユーザは、クライアントコンピュータ2のユーザもやはり、サーバコンピュータ70からコンテンツ54をダウンロードして編集を行ったと判断することができる。
ルーチン600は、操作620から操作625に続き、ここでクライアントコンピュータ6で実行されているアプリケーション30は、電子ドキュメントファイル40のパーティション50内の(ストリーム52内に含まれた)電子ドキュメントコンテンツに対する編集を受信する。次いで、パーティション50は、その中に含まれたコンテンツ54を編集するために開き、それによってコンテンツ54Bを作成することができる。編集済みのコンテンツ54Bには、クライアントコンピュータ2で行われた編集(すなわち、編集済みコンテンツ54A)は含まれないことを理解されたい。
ルーチン600は、操作625から操作630に続き、ここでクライアントコンピュータ6で実行されている生産性アプリケーション30は、メタデータ64に対して加えられた変更(すなわち、作成者リスト67Bを含むメタデータ64B)をサーバコンピュータ70に保存するために、パーティション60をサーバコンピュータ70と同期させる要求をサーバアプリケーション42に送信する。パーティション60は、変更されたメタデータ64Bだけがサーバコンピュータ70に保存されるように、パーティション50とは独立に同期させることができることを理解されたい。
ルーチン600は、操作630から操作635に続き、ここでクライアントコンピュータ2は、クライアントコンピュータ6からのコンテンツ54Bの編集者を識別するメタデータ64Bを受信し、このメタデータ64Bは、操作630でパーティション60をサーバコンピュータ70と同期させた結果として生じたものである。特に、クライアントコンピュータ2で実行されている生産性アプリケーション30は、クライアントコンピュータ6からのメタデータ64Bで先に更新されたパーティション60をサーバコンピュータ70からダウンロードすることができる。したがって、クライアントコンピュータ2のユーザは、クライアントコンピュータ6のユーザもやはり、サーバコンピュータ70からコンテンツ54をダウンロードして編集を行ったと判断することができる。
ルーチン600は、操作635から操作640に続き、ここでクライアントコンピュータ2で実行されている生産性アプリケーション30は、編集済みコンテンツ54Aをサーバコンピュータ70に保存するために、パーティション50をサーバコンピュータ70と同期させる要求をサーバアプリケーション42に送信する。パーティション50は編集済みコンテンツ54Aだけがサーバコンピュータ70に保存されるように、パーティション60とは独立に同期させることができることを理解されたい。パーティション60および50を同期させる順序は逆でもよく、したがってパーティション50を、パーティション60よりも先に、サーバコンピュータ70と独立に同期させてもよいことをさらに理解されたい。
ルーチン600は、操作640から操作645に続き、ここでクライアントコンピュータ6で実行されている生産性アプリケーション30は、編集済みコンテンツ54Bをサーバコンピュータ70に保存するために、パーティション50をサーバコンピュータ70と同期させる要求をサーバアプリケーション42に送信する。パーティション50は、編集済みコンテンツ54Bだけがサーバコンピュータ70に保存されるように、パーティション60とは独立に同期させることができることを理解されたい。パーティション60および50を同期させる順序は逆でもよく、したがってパーティション50を、パーティション60よりも先に、サーバコンピュータ70と独立に同期させてもよいことをさらに理解されたい。パーティション50をサーバコンピュータ70と同期させる例示のルーチンについて、図7に関して以下でより詳細に説明する。ルーチン600は、操作645から操作650に続き、ここでルーチン600は終了する。
図7は、図6に記載の実施形態に従い、サーバ記憶モデルを利用して第2のクライアントコンピュータのファイルパーティションを同期させるルーチン700を示す流れ図である。ルーチン700は、図6の操作645から開始し、操作705に続き、ここでクライアントコンピュータ6で実行されている生産性アプリケーション30は、パーティション50に何らかの更新が行われているかサーバコンピュータ70とチェックする。特に、生産性アプリケーション30は、サーバコンピュータ70のパーティション60内のコンテンツ54がクライアントコンピュータ2によって更新されたかについて、サーバアプリケーション42にクエリを送信することができる。図6の操作620で上述したように、クライアントコンピュータ6のユーザは、サーバコンピュータ70からダウンロードした電子ファイル40内のファイルパーティション50および60を受信する際に、サーバコンピュータ70のパーティション50内のコンテンツ54がクライアントコンピュータ2で別のユーザによって編集されていることを知ることができる。
ルーチン700は、操作705から操作710に続き、ここでクライアントコンピュータ6は、サーバコンピュータ70のパーティション50が更新された(すなわち、クライアントコンピュータ2によって)ことの確認をサーバアプリケーション42から受信し、したがって、クライアントコンピュータ2からの編集済みコンテンツ54Aを、クライアントコンピュータ6のパーティション50内の編集済みコンテンツ54Bとマージして利用することが可能となる。ルーチン700は、操作710から操作715に続き、ここでクライアントコンピュータ6は、サーバコンピュータ70から編集済みコンテンツ54Aを受信する。
ルーチン700は、操作715から操作720に続き、ここでクライアントコンピュータ6で実行されている生産性アプリケーション30は、パーティション50を、(クライアントコンピュータ2からの)編集済みコンテンツ54A、および(クライアントコンピュータ6からの)編集済みコンテンツ54Bで更新するように、サーバコンピュータ70のサーバアプリケーション42に要求する。ルーチン700は、操作720から図6の操作650に戻る。
様々な例示の実施形態に関して本発明を説明してきたが、以下の特許請求の範囲内でこれらの実施形態に数多くの改変を行うことができることが当業者には理解されよう。したがって、本発明の範囲は、上記の説明によっていかなる形にも限定されるものではなく、以下の特許請求の範囲を参照することによって完全に決定されるものである。

Claims (14)

  1. クライアント−サーバコンピュータネットワークにおいて、サーバ記憶モデルを利用してファイルパーティションを同期させる方法であって、
    クライアントコンピュータで、電子ドキュメントのコンテンツに対する編集を受信するステップであって、前記コンテンツは、ファイル内に第1のパーティションの第1のストリームを含み、前記ファイルは、前記第1のパーティションおよび第2のパーティションを含み、前記第1のパーティションおよび前記第2のパーティションはそれぞれ、少なくとも1つのストリームを含む、ステップと、
    前記クライアントコンピュータの前記第2のパーティション内で、前記第1のパーティション内の前記電子ドキュメントコンテンツに対する前記編集に関連するメタデータを生成するステップと、
    前記クライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記ファイルの前記第2のパーティション内に、前記メタデータを記憶するステップであって、
    前記クライアントコンピュータの前記第2のパーティション内で生成された前記メタデータを、前記サーバコンピュータに記憶された前記ファイルの前記第2のパーティション内に記憶されたメタデータと比較するステップと、
    前記クライアントコンピュータの前記第2のパーティション内で生成された前記メタデータが、前記サーバコンピュータの前記ファイルの前記第2のパーティション内に記憶された前記メタデータと異なる場合、競合を判定するステップと、
    前記クライアントコンピュータの前記第2のパーティション内の前記メタデータが、前記サーバコンピュータの前記ファイルの前記第2のパーティション内に記憶された前記メタデータよりも新しい場合、前記クライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと自動的に同期させて、前記競合を解決するステップと、
    前記サーバコンピュータに記憶された前記ファイルの前記第2のパーティション内に記憶された前記メタデータが、前記クライアントコンピュータの前記第2のパーティション内に記憶された前記メタデータよりも新しい場合、前記クライアントコンピュータの前記第2のパーティションの前記サーバコンピュータとの前記同期を自動的に失敗させて、前記競合を解決するステップと
    を含むステップと、
    前記クライアントコンピュータの前記第1のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記ファイルの第1のパーティション内に、前記電子ドキュメントコンテンツに対して加えられた前記編集を記憶するステップ
    を含むことを特徴とする方法。
  2. 前記クライアントコンピュータの前記第1のパーティションを、前記サーバコンピュータと同期させて、前記サーバコンピュータの前記ファイルの第1のパーティション内に、前記電子ドキュメントコンテンツに対して加えられた前記編集を記憶するステップは、
    前記クライアントコンピュータの前記第1のパーティション内の編集済みの前記電子ドキュメントコンテンツを、前記サーバコンピュータに記憶された前記ファイルの前記第1のパーティション内に記憶された電子ドキュメントコンテンツと比較するステップと、
    前記サーバコンピュータに記憶された前記ファイルの前記第1のパーティション内に記憶された前記電子ドキュメントコンテンツが、前記クライアントコンピュータの前記第1のパーティション内の前記編集済み電子ドキュメントコンテンツ内にはない編集を含む場合、競合を判定するステップと
    を含むことを特徴とする請求項1に記載の方法。
  3. 前記クライアントコンピュータと前記サーバコンピュータとの間の前記第1のパーティションの前記同期を失敗させるステップと、
    前記クライアントコンピュータ上で競合エラーメッセージを生成するステップと
    をさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記クライアントコンピュータの前記第2のパーティション内で、前記第1のパーティション内の前記電子ドキュメントコンテンツに対する前記編集に関連するメタデータを生成するステップは、前記第2のパーティションのストリーム内で、前記電子ドキュメントコンテンツのドキュメント作成者のリストを含むメタデータを生成するステップを含むことを特徴とする請求項1に記載の方法。
  5. コンピュータで実行されたとき、サーバ記憶モデルを利用して、ファイルパーティションを同期させる方法を前記コンピュータに実施させるコンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、
    クライアントコンピュータで、電子ドキュメントのコンテンツに対する編集を受信するステップであって、前記コンテンツは、ファイル内に第1のパーティションの第1のストリームを含み、前記ファイルは、少なくとも1つの前記第1のパーティションおよび第2のパーティションを含み、前記少なくとも1つの第1のパーティションおよび第2のパーティションはそれぞれ、少なくとも1つのストリームを含むステップと、
    前記クライアントコンピュータの前記第2のパーティション内で、前記第1のパーティション内の前記電子ドキュメントコンテンツに対する前記編集に関連するメタデータを生成するステップと、
    前記クライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記ファイルの第2のパーティション内に、前記データを記憶するステップであって、
    前記クライアントコンピュータの前記第2のパーティション内で生成された前記メタデータを、前記サーバコンピュータに記憶された前記ファイルの前記第2のパーティション内に記憶されたメタデータと比較するステップと、
    前記クライアントコンピュータの前記第2のパーティション内で生成された前記メタデータが、前記サーバコンピュータの前記ファイルの前記第2のパーティション内に記憶された前記メタデータと異なる場合、競合を判定するステップと、
    前記クライアントコンピュータの前記第2のパーティション内の前記メタデータが、前記サーバコンピュータの前記ファイルの前記第2のパーティション内に記憶された前記メタデータよりも新しい場合、前記クライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと自動的に同期させて、前記競合を解決するステップと、
    前記サーバコンピュータに記憶された前記ファイルの前記第2のパーティション内に記憶された前記メタデータが、前記クライアントコンピュータの前記第2のパーティション内に記憶された前記メタデータよりも新しい場合、前記クライアントコンピュータの前記第2のパーティションの前記サーバコンピュータとの前記同期を自動的に失敗させて、前記競合を解決するステップと
    を含むステップと、
    前記クライアントコンピュータの前記第1のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記ファイルの第1のパーティション内に、前記電子ドキュメントコンテンツに対して加えられた前記編集を記憶するステップと
    を含むことを特徴とするコンピュータ可読記憶媒体。
  6. 前記クライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記ファイルの第2のパーティション内に、前記データを記憶するステップは、
    前記クライアントコンピュータの前記第2のパーティション内で生成された前記メタデータを、前記サーバコンピュータに記憶された前記ファイルの前記第2のパーティション内に記憶されたメタデータと比較するステップと、
    前記クライアントコンピュータの前記第2のパーティション内で生成された前記メタデータが、前記サーバコンピュータの前記ファイルの前記第2のパーティション内に記憶された前記メタデータと異なる場合、競合を判定するステップと
    を含むことを特徴とする請求項5に記載のコンピュータ可読記憶媒体。
  7. 前記クライアントコンピュータの前記第2のパーティション内で、前記第1のパーティション内の前記電子ドキュメントコンテンツに対する前記編集に関連するメタデータを生成するステップは、前記電子ドキュメントコンテンツのドキュメント作成者のリストを含むメタデータを生成するステップを含むことを特徴とする請求項5に記載のコンピュータ可読記憶媒体。
  8. クライアント−サーバコンピュータネットワークにおいて、サーバ記憶モデルを利用してファイルパーティションを同期させる方法であって、
    第1のクライアントコンピュータで、電子ドキュメントのコンテンツに対する編集を受信するステップであって、前記コンテンツは、ファイル内に第1のパーティションの第1のストリームを含み、前記ファイルは、少なくとも第1のパーティションおよび第2のパーティションを含み、前記第1のパーティションおよび前記第2のパーティションはそれぞれ、少なくとも1つのストリームを含むステップと、
    前記第1のクライアントコンピュータの前記第2のパーティションのストリーム内で、前記第1のクライアントコンピュータの前記第1のパーティション内の前記電子ドキュメントコンテンツの編集者を識別するデータを生成するステップと、
    前記第1のクライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータに、前記データを記憶するステップと、
    第2のクライアントコンピュータで、少なくとも前記第1のパーティション、および前記第2のパーティションを含む、前記サーバコンピュータに記憶された前記ファイルを受信するステップであって、前記第2のパーティションは、前記第1のクライアントコンピュータの前記電子ドキュメントコンテンツの前記編集者を識別し、前記第1のパーティションの前記電子ドキュメントコンテンツが編集のために前記第1のクライアントコンピュータで現在ダウンロードされていることを識別するデータを備えるステップと、
    前記第2のクライアントコンピュータで、前記第1のパーティション内の前記電子ドキュメントコンテンツに対する編集を受信するステップであって、前記第2のクライアントコンピュータで受信された、前記電子ドキュメントコンテンツに対する前記編集には、前記第1のクライアントコンピュータで受信された前記電子ドキュメントコンテンツに対する前記編集が含まれないステップと、
    前記第1のクライアントコンピュータの前記第1のパーティションを、前記サーバコンピュータと同期させて、前記電子ドキュメントコンテンツに対して加えられた前記編集を前記サーバコンピュータに記憶するステップと
    を含むことを特徴とする方法。
  9. 前記第1のクライアントコンピュータの前記第2のパーティションのストリーム内で、前記第1のクライアントコンピュータの前記第1のパーティション内の前記電子ドキュメントコンテンツの編集者を識別するデータを生成するステップは、前記第1のクライアントコンピュータの第2のパーティションのストリーム内で、前記第1のクライアントコンピュータの前記第1のパーティション内の前記電子ドキュメントコンテンツの前記編集者を識別するメタデータを生成するステップを含むことを特徴とする請求項8に記載の方法。
  10. 前記第1のクライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータに、前記データを記憶するステップは、前記第1のクライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータに前記メタデータを記憶することを特徴とする請求項9に記載の方法。
  11. 前記第2のクライアントコンピュータの前記第2のパーティションを前記サーバコンピュータと同期させて、前記第1のクライアントコンピュータの前記電子ドキュメントコンテンツの前記編集者を識別する前記メタデータを、前記第2のクライアントコンピュータの前記電子ドキュメントコンテンツの前記編集者の前記識別で更新するステップをさらに含むことを特徴とする請求項10に記載の方法。
  12. 前記第2のクライアントコンピュータの前記第1のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記第1のパーティションに、前記第2のクライアントコンピュータで前記電子ドキュメントコンテンツに対して加えられた前記編集を、前記第1のクライアントコンピュータで前記電子ドキュメントに対して加えられた前記編集に追加するステップをさらに含むことを特徴とする請求項8に記載の方法。
  13. 前記第2のクライアントコンピュータの前記第1のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記第1のパーティションに、前記第2のクライアントコンピュータで前記電子ドキュメントコンテンツに対して加えられた前記編集を、前記第1のクライアントコンピュータで前記電子ドキュメントに対して加えられた前記編集に追加するステップは、
    前記第1のパーティションに対する更新について、前記サーバコンピュータをチェックするステップと、
    前記サーバコンピュータから、前記第1のパーティションが更新されたことの確認を受信するステップ
    を含むことを特徴とする請求項12に記載の方法。
  14. 前記第2のクライアントコンピュータの前記第1のパーティションを前記サーバコンピュータと同期させて、前記サーバコンピュータの前記第1のパーティションに、前記第2のクライアントコンピュータで前記電子ドキュメントコンテンツに対して加えられた前記編集を、前記第1のクライアントコンピュータで前記電子ドキュメントに対して加えられた前記編集に追加するステップは、
    前記サーバコンピュータから、前記第1のクライアントコンピュータで前記電子ドキュメントコンテンツに対して加えられた前記編集を受信するステップと、
    前記サーバコンピュータの前記第1のパーティションを、前記第2のクライアントコンピュータおよび前記第1のクライアントコンピュータで前記電子ドキュメントコンテンツに対して加えられた前記編集で更新するステップをさらに含むことを特徴とする請求項12に記載の方法。
JP2012514057A 2009-06-05 2010-06-01 サーバ記憶モデルを利用したファイルパーティションの同期 Expired - Fee Related JP5280583B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/479,189 2009-06-05
US12/479,189 US8219526B2 (en) 2009-06-05 2009-06-05 Synchronizing file partitions utilizing a server storage model
PCT/US2010/036968 WO2010141517A2 (en) 2009-06-05 2010-06-01 Synchronizing file partitions utilizing a server storage model

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013108070A Division JP5646686B2 (ja) 2009-06-05 2013-05-22 サーバ記憶モデルを利用したファイルパーティションの同期

Publications (3)

Publication Number Publication Date
JP2012529118A JP2012529118A (ja) 2012-11-15
JP2012529118A5 JP2012529118A5 (ja) 2013-04-04
JP5280583B2 true JP5280583B2 (ja) 2013-09-04

Family

ID=43298457

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012514057A Expired - Fee Related JP5280583B2 (ja) 2009-06-05 2010-06-01 サーバ記憶モデルを利用したファイルパーティションの同期
JP2013108070A Expired - Fee Related JP5646686B2 (ja) 2009-06-05 2013-05-22 サーバ記憶モデルを利用したファイルパーティションの同期

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013108070A Expired - Fee Related JP5646686B2 (ja) 2009-06-05 2013-05-22 サーバ記憶モデルを利用したファイルパーティションの同期

Country Status (16)

Country Link
US (2) US8219526B2 (ja)
EP (1) EP2438526A4 (ja)
JP (2) JP5280583B2 (ja)
KR (2) KR101740207B1 (ja)
CN (1) CN102460409A (ja)
AU (1) AU2010256703B2 (ja)
BR (1) BRPI1011684A2 (ja)
CA (1) CA2761165C (ja)
CL (1) CL2011003047A1 (ja)
IL (2) IL216022A (ja)
MX (1) MX2011012937A (ja)
MY (1) MY163754A (ja)
RU (1) RU2554845C2 (ja)
SG (1) SG175387A1 (ja)
WO (1) WO2010141517A2 (ja)
ZA (1) ZA201107867B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US9396279B1 (en) * 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
EP2302509B1 (en) * 2009-09-29 2012-09-26 Citrix Systems, Inc. Synchronization of server-side cookies with client-side cookies
KR101994163B1 (ko) 2012-08-24 2019-09-30 삼성전자 주식회사 압축 컨텐츠 파일의 자동 동기화 방법 및 장치 그리고 동기화 시스템
US9430491B2 (en) 2013-01-11 2016-08-30 Commvault Systems, Inc. Request-based data synchronization management
US10318492B2 (en) * 2013-02-25 2019-06-11 Amazon Technologies, Inc. Predictive storage service
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US9952934B2 (en) * 2015-01-20 2018-04-24 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
RU2609081C2 (ru) * 2015-06-29 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и система (варианты) обработки документа в распределенной архитектуре
US10503699B2 (en) 2016-04-25 2019-12-10 Sap Se Metadata synchronization in a distrubuted database
US10152284B2 (en) 2016-10-26 2018-12-11 Ricoh Company, Ltd. Synchronizing metadata with alterations to a portable document format print job
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774868A (en) 1994-12-23 1998-06-30 International Business And Machines Corporation Automatic sales promotion selection system and method
US5924092A (en) 1997-02-07 1999-07-13 International Business Machines Corporation Computer system and method which sort array elements to optimize array modifications
JPH10301828A (ja) * 1997-04-23 1998-11-13 Fujitsu Ltd データベース管理方法
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
CA2420418C (en) 2000-08-29 2013-01-29 Eloquent Tool for collaborative edit/search of dynamic objects
AU2002312508B2 (en) 2000-09-11 2008-01-17 Agami Systems, Inc. Storage system having partitioned migratable metadata
JP2002251350A (ja) 2001-02-22 2002-09-06 Sony Corp 送信装置、受信装置、送受信装置、送信方法および受信方法
JP4270771B2 (ja) 2001-05-29 2009-06-03 富士通株式会社 表示プログラム、表示方法、および記録媒体
US7389201B2 (en) 2001-05-30 2008-06-17 Microsoft Corporation System and process for automatically providing fast recommendations using local probability distributions
US7702563B2 (en) 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
US6928458B2 (en) 2001-06-27 2005-08-09 Microsoft Corporation System and method for translating synchronization information between two networks based on different synchronization protocols
TW579463B (en) * 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
CN1307580C (zh) 2001-09-26 2007-03-28 Emc公司 大文件的有效管理
US7058664B1 (en) 2002-04-29 2006-06-06 Sprint Communications Company L.P. Method and system for data recovery
US6925467B2 (en) 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7096311B2 (en) 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7138998B2 (en) 2002-11-14 2006-11-21 Intel Corporation Multi-resolution spatial partitioning
US7325202B2 (en) 2003-03-31 2008-01-29 Sun Microsystems, Inc. Method and system for selectively retrieving updated information from one or more websites
US7750908B2 (en) 2003-04-04 2010-07-06 Agilent Technologies, Inc. Focus plus context viewing and manipulation of large collections of graphs
US7299404B2 (en) 2003-05-06 2007-11-20 International Business Machines Corporation Dynamic maintenance of web indices using landmarks
US7406499B2 (en) * 2003-05-09 2008-07-29 Microsoft Corporation Architecture for partition computation and propagation of changes in data replication
US20040230903A1 (en) * 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with associated business logic
US20050010576A1 (en) 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
JP2005092583A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> メタデータ保存方法及び装置並びにプログラム、メタデータ保存プログラムを記録した記録媒体
US7203708B2 (en) * 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US20050289152A1 (en) 2004-06-10 2005-12-29 Earl William J Method and apparatus for implementing a file system
US7313575B2 (en) 2004-06-14 2007-12-25 Hewlett-Packard Development Company, L.P. Data services handler
US7873669B2 (en) 2004-07-09 2011-01-18 Microsoft Corporation Direct write back systems and methodologies
US7613787B2 (en) 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US7401192B2 (en) 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file
US7933868B2 (en) 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
US7711706B2 (en) 2004-11-08 2010-05-04 Innopath Software, Inc. Reorganizing images in static file system differencing and updating
US7480654B2 (en) 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US7519579B2 (en) 2004-12-20 2009-04-14 Microsoft Corporation Method and system for updating a summary page of a document
US7953794B2 (en) 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
US7720890B2 (en) * 2005-02-22 2010-05-18 Microsoft Corporation Ghosted synchronization
US7680835B2 (en) * 2005-02-28 2010-03-16 Microsoft Corporation Online storage with metadata-based retrieval
WO2006113597A2 (en) 2005-04-14 2006-10-26 The Regents Of The University Of California Method for information retrieval
US20060242204A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Sync manager conflict resolution
KR100733054B1 (ko) 2005-07-27 2007-06-27 주식회사 유텍 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법
US7606812B2 (en) 2005-11-04 2009-10-20 Sun Microsystems, Inc. Dynamic intent log
WO2007062254A2 (en) 2005-11-28 2007-05-31 Commvault Systems, Inc. Systems and methods for data management
CN101005428A (zh) * 2006-01-19 2007-07-25 华为技术有限公司 一种检测与解决数据同步冲突的实现方法
US20070198659A1 (en) 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
JP5590881B2 (ja) 2006-05-03 2014-09-17 テレフオンアクチーボラゲット エル エム エリクソン(パブル) メディア表現からメディアを再構成する方法及び装置
US20080059539A1 (en) 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
JP2008077485A (ja) * 2006-09-22 2008-04-03 Sharp Corp 通信端末装置および制御プログラム
JP2008165299A (ja) * 2006-12-27 2008-07-17 Update It Inc ドキュメント作成システム
US20080163056A1 (en) 2006-12-28 2008-07-03 Thibaut Lamadon Method and apparatus for providing a graphical representation of content
US7933952B2 (en) 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
US20090144654A1 (en) 2007-10-03 2009-06-04 Robert Brouwer Methods and apparatus for facilitating content consumption
US20090106454A1 (en) * 2007-10-17 2009-04-23 Girle David A Independent synchronization of meta-data between devices
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US9436927B2 (en) 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US9262764B2 (en) 2008-04-30 2016-02-16 Yahoo! Inc. Modification of content representation by a brand engine in a social network
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model

Also Published As

Publication number Publication date
IL244625A0 (en) 2016-04-21
KR101740207B1 (ko) 2017-05-25
IL216022A (en) 2016-03-31
WO2010141517A3 (en) 2011-02-17
MX2011012937A (es) 2012-01-27
EP2438526A4 (en) 2012-11-28
RU2554845C2 (ru) 2015-06-27
US20100312758A1 (en) 2010-12-09
IL216022A0 (en) 2012-01-31
AU2010256703B2 (en) 2014-07-17
JP5646686B2 (ja) 2014-12-24
BRPI1011684A2 (pt) 2016-03-22
US8219526B2 (en) 2012-07-10
US8572030B2 (en) 2013-10-29
CA2761165A1 (en) 2010-12-09
AU2010256703A1 (en) 2011-11-17
CN102460409A (zh) 2012-05-16
KR20120017442A (ko) 2012-02-28
JP2012529118A (ja) 2012-11-15
KR20160106774A (ko) 2016-09-12
RU2011149273A (ru) 2013-06-10
KR101655497B1 (ko) 2016-09-07
US20120246117A1 (en) 2012-09-27
MY163754A (en) 2017-10-17
CA2761165C (en) 2017-02-28
ZA201107867B (en) 2013-01-30
EP2438526A2 (en) 2012-04-11
JP2013211036A (ja) 2013-10-10
CL2011003047A1 (es) 2012-06-15
IL244625A (en) 2017-04-30
WO2010141517A2 (en) 2010-12-09
SG175387A1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
JP5280583B2 (ja) サーバ記憶モデルを利用したファイルパーティションの同期
US11740891B2 (en) Providing access to a hybrid application offline
US7966426B2 (en) Offline synchronization capability for client application
US8239345B2 (en) Asynchronous replication
US8346869B2 (en) Granular data synchronization for editing multiple data objects
JP2012525640A (ja) レガシー文書向け高速マージサポート

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130207

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130207

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130522

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5280583

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees