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

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

Info

Publication number
JP5646686B2
JP5646686B2 JP2013108070A JP2013108070A JP5646686B2 JP 5646686 B2 JP5646686 B2 JP 5646686B2 JP 2013108070 A JP2013108070 A JP 2013108070A JP 2013108070 A JP2013108070 A JP 2013108070A JP 5646686 B2 JP5646686 B2 JP 5646686B2
Authority
JP
Japan
Prior art keywords
partition
client
server
computer
content
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
JP2013108070A
Other languages
English (en)
Other versions
JP2013211036A (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 JP2013211036A publication Critical patent/JP2013211036A/ja
Application granted granted Critical
Publication of JP5646686B2 publication Critical patent/JP5646686B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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 (20)

  1. クライアント−サーバコンピュータネットワークにおいて、サーバ記憶モデルを利用してファイルパーティションを同期させる方法であって、
    クライアントコンピュータから、電子ドキュメントのコンテンツに対する編集を同期させる要求を受信するステップであって、前記コンテンツはファイルに関連し、前記ファイルは、
    前記コンテンツに対する編集を含む第1のパーティションであって、前記クライアントコンピュータにクライアント第1パーティションとして記憶され、サーバコンピュータにサーバ第1パーティションとして記憶される第1のパーティションと、
    前記コンテンツに対する前記編集に関連するメタデータを含む第2のパーティションであって、前記第2のパーティションは、前記クライアントコンピュータにクライアント第2パーティションとして記憶され、前記サーバコンピュータにサーバ第2パーティションとして記憶され、前記メタデータは、前記コンテンツの編集者およびドキュメントロックのうちの少なくとも1つを含む、第2のパーティションとを含むステップと、
    前記クライアント第2パーティション内の前記メタデータを前記サーバコンピュータに記憶するために、前記第2のパーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させるステップであって、
    前記クライアント第2パーティション内に記憶されたメタデータを、前記サーバ第2パーティション内に記憶されたメタデータと比較するステップと、
    前記クライアント第2パーティション内に記憶された前記メタデータが、前記サーバ第2パーティション内に記憶された前記メタデータとは異なる場合に、第1の競合があるかどうか判定するステップと、
    前記第1の競合があると判定されると、前記クライアント第2パーティション内に記憶された前記メタデータが、前記サーバ第2パーティション内に記憶された前記メタデータよりも新しいかどうか判定するステップと、
    前記クライアント第2パーティション内に記憶された前記メタデータがより新しいと判定されると、前記クライアント第2パーティションを前記サーバ第2パーティションと同期させ、前記第1の競合を解決するステップとを含む、ステップと、
    前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記第2のパーティションを同期させる前記ステップとは独立して、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させるステップと
    を含むことを特徴とする方法。
  2. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記クライアント第1パーティション内に記憶された前記コンテンツに対する編集を、前記サーバ第1パーティション内に記憶された前記コンテンツに対する編集と比較するステップと、
    前記サーバ第1パーティション内に記憶された前記コンテンツに対する前記編集が、前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集とは異なる場合に、第2の競合があるかどうかを判定するステップと
    を含むことを特徴とする請求項1に記載の方法。
  3. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記第2の競合があると判定されると、前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集より新しいかどうか判定するステップと、
    前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、より新しくないと判定されると、前記クライアント第1パーティションを前記サーバ第1パーティションと同期させ、前記第2の競合を解決するステップと
    を含むことを特徴とする請求項2に記載の方法。
  4. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、より新しいと判定されると、前記クライアントコンピュータおよび前記サーバコンピュータとの間の前記クライアント第1パーティションの前記同期を失敗させるステップと、
    前記クライアントコンピュータに、エラーの指示を送信するステップと
    を含むことを特徴とする請求項3に記載の方法。
  5. 前記コンテンツの前記編集者は、前記電子ドキュメントを現在編集している作成者を示すことを特徴とする請求項1に記載の方法。
  6. 前記ドキュメントロックは、前記電子ドキュメントが現在編集されていることを示すことを特徴とする請求項1に記載の方法。
  7. 前記サーバ第2パーティションは、前記メタデータが前記サーバ第2パーティション内に記憶された時期を示す第1のタイムスタンプを含み、前記コンテンツに対する編集を同期させる前記要求は、前記メタデータが前記クライアント第2パーティション内に記憶された時期を示す第2のタイムスタンプをさらに含み、前記クライアント第2パーティション内に記憶されたメタデータを前記サーバ第2パーティション内に記憶されたメタデータと比較するステップは、前記第1のタイムスタンプと前記第2のタイムスタンプを比較するステップを含むことを特徴とする請求項1に記載の方法。
  8. 前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集に関連する前記メタデータは、前記クライアント第2パーティションのストリーム内で生成されることを特徴とする請求項1に記載の方法。
  9. コンピュータ実行可能命令を記憶したコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータ上で実行されると、前記コンピュータに、サーバ記憶モデルを利用してファイルパーティションを同期する方法を実行させ、前記方法は、
    クライアントコンピュータから、電子ドキュメントのコンテンツに対する編集を同期させる要求を受信するステップであって、前記コンテンツはファイルに関連し、前記ファイルは、
    前記コンテンツに対する編集を含む第1のパーティションであって、前記クライアントコンピュータにクライアント第1パーティションとして記憶され、サーバコンピュータにサーバ第1パーティションとして記憶される第1のパーティションと、
    前記コンテンツに対する前記編集に関連するメタデータを含む第2のパーティションであって、前記第2のパーティションは、前記クライアントコンピュータにクライアント第2パーティションとして記憶され、前記サーバコンピュータにサーバ第2パーティションとして記憶され、前記メタデータは、前記コンテンツの編集者およびドキュメントロックのうちの少なくとも1つを含む、第2のパーティションとを含むステップと、
    前記クライアント第2パーティション内の前記メタデータを前記サーバコンピュータに記憶するために、前記第2のパーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させるステップであって、
    前記クライアント第2パーティション内に記憶されたメタデータを、前記サーバ第2パーティション内に記憶されたメタデータと比較するステップと、
    前記クライアント第2パーティション内に記憶された前記メタデータが、前記サーバ第2パーティション内に記憶された前記メタデータとは異なる場合に、第1の競合があるかどうか判定するステップと、
    前記第1の競合があると判定されると、前記クライアント第2パーティション内に記憶された前記メタデータが、前記サーバ第2パーティション内に記憶された前記メタデータよりも新しいかどうか判定するステップと、
    前記クライアント第2パーティション内に記憶された前記メタデータがより新しいと判定されると、前記クライアント第2パーティションを前記サーバ第2パーティションと同期させ、前記第1の競合を解決するステップとを含む、ステップと、
    前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記第2のパーティションを同期させる前記ステップとは独立して、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させるステップと
    を含むことを特徴とするコンピュータ可読記憶媒体。
  10. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記クライアント第1パーティション内に記憶された前記コンテンツに対する編集を、前記サーバ第1パーティション内に記憶された前記コンテンツに対する編集と比較するステップと、
    前記サーバ第1パーティション内に記憶された前記コンテンツに対する前記編集が、前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集とは異なる場合に、第2の競合があるかどうかを判定するステップと
    を含むことを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  11. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記第2の競合があると判定されると、前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集より新しいかどうか判定するステップと、
    前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、より新しくないと判定されると、前記クライアント第1パーティションを前記サーバ第1パーティションと同期させ、前記第2の競合を解決するステップと
    を含むことを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
  12. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、より新しいと判定されると、前記クライアントコンピュータおよび前記サーバコンピュータとの間の前記クライアント第1パーティションの前記同期を失敗させるステップと、
    前記クライアントコンピュータに、エラーの指示を送信するステップと
    を含むことを特徴とする請求項11に記載のコンピュータ可読記憶媒体。
  13. 前記コンテンツの前記編集者は、前記電子ドキュメントを現在編集している作成者を示すことを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  14. 前記ドキュメントロックは、前記電子ドキュメントが現在編集されていることを示すことを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
  15. コンピュータシステムであって、
    少なくとも1つの処理装置と、
    コンピュータ実行可能命令を記憶し、前記少なくとも1つの処理装置に接続された少なくとも1つのメモリであって、前記コンピュータ実行可能命令は、前記少なくとも1つの処理装置によって実行されると、前記コンピュータシステムに、クライアント−サーバコンピュータネットワークにおいて、サーバ記憶モデルを利用してファイルパーティションを同期させる方法を実行させ、前記方法は、
    クライアントコンピュータから、電子ドキュメントのコンテンツに対する編集を同期させる要求を受信するステップであって、前記コンテンツはファイルに関連し、前記ファイルは、
    前記コンテンツに対する編集を含む第1のパーティションであって、前記クライアントコンピュータにクライアント第1パーティションとして記憶され、サーバコンピュータにサーバ第1パーティションとして記憶される第1のパーティションと、
    前記コンテンツに対する前記編集に関連するメタデータを含む第2のパーティションであって、前記第2のパーティションは、前記クライアントコンピュータにクライアント第2パーティションとして記憶され、前記サーバコンピュータにサーバ第2パーティションとして記憶され、前記メタデータは、前記コンテンツの編集者およびドキュメントロックのうちの少なくとも1つを含む、第2のパーティションとを含むステップと、
    前記クライアント第2パーティション内の前記メタデータを前記サーバコンピュータに記憶するために、前記第2のパーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させるステップであって、
    前記クライアント第2パーティション内に記憶されたメタデータを、前記サーバ第2パーティション内に記憶されたメタデータと比較するステップと、
    前記クライアント第2パーティション内に記憶された前記メタデータが、前記サーバ第2パーティション内に記憶された前記メタデータとは異なる場合に、第1の競合があるかどうか判定するステップと、
    前記第1の競合があると判定されると、前記クライアント第2パーティション内に記憶された前記メタデータが、前記サーバ第2パーティション内に記憶された前記メタデータよりも新しいかどうか判定するステップと、
    前記クライアント第2パーティション内に記憶された前記メタデータがより新しいと判定されると、前記クライアント第2パーティションを前記サーバ第2パーティションと同期させ、前記第1の競合を解決するステップとを含む、ステップと、
    前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記第2のパーティションを同期させる前記ステップとは独立して、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させるステップと
    を含むことを特徴とするコンピュータシステム。
  16. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記クライアント第1パーティション内に記憶された前記コンテンツに対する編集を、前記サーバ第1パーティション内に記憶された前記コンテンツに対する編集と比較するステップと、
    前記サーバ第1パーティション内に記憶された前記コンテンツに対する前記編集が、前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集とは異なる場合に、第2の競合があるかどうかを判定するステップと
    を含むことを特徴とする請求項15に記載のコンピュータシステム。
  17. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記第2の競合があると判定されると、前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、前記クライアント第1パーティション内に記憶された前記コンテンツに対する前記編集より新しいかどうか判定するステップと、
    前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、より新しくないと判定されると、前記クライアント第1パーティションを前記サーバ第1パーティションと同期させ、前記第2の競合を解決するステップと
    を含むことを特徴とする請求項16に記載のコンピュータシステム。
  18. 前記コンテンツに対してなされた前記編集を前記サーバコンピュータに記憶するために、前記クライアント第1パーティションを前記クライアントコンピュータと前記サーバコンピュータとの間で同期させる前記ステップが、
    前記サーバ第2パーティション内に記憶された前記コンテンツに対する前記編集が、より新しいと判定されると、前記クライアントコンピュータおよび前記サーバコンピュータとの間の前記クライアント第1パーティションの前記同期を失敗させるステップと、
    前記クライアントコンピュータに、エラーの指示を送信するステップと
    を含むことを特徴とする請求項17に記載のコンピュータシステム。
  19. 前記コンテンツの前記編集者は、前記電子ドキュメントを現在編集している作成者を示すことを特徴とする請求項15に記載のコンピュータシステム。
  20. 前記ドキュメントロックは、前記電子ドキュメントが現在編集されていることを示すことを特徴とする請求項15に記載のコンピュータシステム。
JP2013108070A 2009-06-05 2013-05-22 サーバ記憶モデルを利用したファイルパーティションの同期 Expired - Fee Related JP5646686B2 (ja)

Applications Claiming Priority (2)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2013211036A JP2013211036A (ja) 2013-10-10
JP5646686B2 true JP5646686B2 (ja) 2014-12-24

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 Before (1)

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

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 삼성전자 주식회사 압축 컨텐츠 파일의 자동 동기화 방법 및 장치 그리고 동기화 시스템
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-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
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9952934B2 (en) * 2015-01-20 2018-04-24 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
US7627810B2 (en) 2000-08-29 2009-12-01 Open Text Corporation Model for creating, inputting, storing and tracking multimedia objects
WO2003107219A1 (en) 2000-09-11 2003-12-24 Zambeel, 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
CA2461025A1 (en) 2001-09-26 2003-04-03 Mark Saake Efficient mangement of large files
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
US7849401B2 (en) * 2003-05-16 2010-12-07 Justsystems Canada Inc. Method and system for enabling collaborative authoring of hierarchical documents with locking
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
WO2006052904A2 (en) 2004-11-08 2006-05-18 Innopath Software, Inc. Updating compressed read-only memory file system (cramfs) images
US7519579B2 (en) 2004-12-20 2009-04-14 Microsoft Corporation Method and system for updating a summary page of a document
US7480654B2 (en) 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
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
US7801864B2 (en) 2005-11-28 2010-09-21 Commvault Systems, Inc. Systems and methods for using metadata to enhance data identification operations
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
WO2007126381A2 (en) 2006-05-03 2007-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for re-constructing media from a media representation
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
JP2012529118A (ja) 2012-11-15
CN102460409A (zh) 2012-05-16
ZA201107867B (en) 2013-01-30
AU2010256703B2 (en) 2014-07-17
JP5280583B2 (ja) 2013-09-04
EP2438526A4 (en) 2012-11-28
EP2438526A2 (en) 2012-04-11
KR20160106774A (ko) 2016-09-12
KR101740207B1 (ko) 2017-05-25
WO2010141517A3 (en) 2011-02-17
CA2761165C (en) 2017-02-28
KR20120017442A (ko) 2012-02-28
CA2761165A1 (en) 2010-12-09
IL216022A0 (en) 2012-01-31
JP2013211036A (ja) 2013-10-10
KR101655497B1 (ko) 2016-09-07
IL216022A (en) 2016-03-31
RU2554845C2 (ru) 2015-06-27
IL244625A (en) 2017-04-30
IL244625A0 (en) 2016-04-21
AU2010256703A1 (en) 2011-11-17
BRPI1011684A2 (pt) 2016-03-22
RU2011149273A (ru) 2013-06-10
MX2011012937A (es) 2012-01-27
US8219526B2 (en) 2012-07-10
CL2011003047A1 (es) 2012-06-15
MY163754A (en) 2017-10-17
US20100312758A1 (en) 2010-12-09
SG175387A1 (en) 2011-12-29
US20120246117A1 (en) 2012-09-27
US8572030B2 (en) 2013-10-29
WO2010141517A2 (en) 2010-12-09

Similar Documents

Publication Publication Date Title
JP5646686B2 (ja) サーバ記憶モデルを利用したファイルパーティションの同期
EP3408744B1 (en) Providing access to a hybrid application offline
US7966426B2 (en) Offline synchronization capability for client application
US11132420B2 (en) Utilizing server pre-processing to deploy renditions of electronic documents in a computer network
KR101574816B1 (ko) 비동기 복제
US8346869B2 (en) Granular data synchronization for editing multiple data objects

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130722

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140918

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: 20141006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141105

R150 Certificate of patent or registration of utility model

Ref document number: 5646686

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

LAPS Cancellation because of no payment of annual fees