JP2006195972A - 共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム - Google Patents

共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム Download PDF

Info

Publication number
JP2006195972A
JP2006195972A JP2005359520A JP2005359520A JP2006195972A JP 2006195972 A JP2006195972 A JP 2006195972A JP 2005359520 A JP2005359520 A JP 2005359520A JP 2005359520 A JP2005359520 A JP 2005359520A JP 2006195972 A JP2006195972 A JP 2006195972A
Authority
JP
Japan
Prior art keywords
shared object
change
client
page
latest version
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.)
Granted
Application number
JP2005359520A
Other languages
English (en)
Other versions
JP4874640B2 (ja
JP2006195972A5 (ja
Inventor
Simon P Clarke
ピー.クラーク シモン
David Rasmussen
ラスミュッセン デビッド
Igor Kofman
コフマン イゴール
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 JP2006195972A publication Critical patent/JP2006195972A/ja
Publication of JP2006195972A5 publication Critical patent/JP2006195972A5/ja
Application granted granted Critical
Publication of JP4874640B2 publication Critical patent/JP4874640B2/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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Abstract

【課題】共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステムを提供する。
【解決手段】多くの異なるユーザが、いくつかの異なるトランスポートを介して、同一の共有オブジェクトに同時にアクセスし、変更を行い、更新を行うことができる。共有オブジェクトに対する変更は、すべてのユーザが、共有オブジェクトに対する変更を見ることができるように、自動的に同期される。競合する変更は、調停されて、共有オブジェクトの最新バージョンにマージされる。クライアントは、共有オブジェクトの最新バージョンがストアから入手可能でない場合、ストアから共有オブジェクトの最新バージョンを要求することができる。共有オブジェクトの最新バージョンは、ストアが、共有オブジェクトの最新バージョンを受け取った時点で、クライアントと同期させられる。
【選択図】図7

Description

本発明は、共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステムに関する。
ファイル共有アプリケーションは、数名の異なるユーザが、情報を集団で共有することを可能にする。多くのユーザが、同一のファイルに同時にアクセスすることができる。ユーザの全員が、そのファイルを見ることができるが、ファイルに最初にアクセスしたユーザだけが、編集特権を有する。ファイルにその後にアクセスするユーザらは、ファイルを編集することを阻止される。1名のユーザを除く全員にファイルの読み取り専用バージョンを供給することは、大きい共有ファイルに関して不都合である。これは、ユーザらが、オフラインで共有ファイルを処理することを所望する場合、特に悪化する。例えば、他のユーザらは、共有ファイルに最初にアクセスしたユーザが常に出張中である場合、長期間にわたってそのファイルから締め出される可能性がある。
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステムを提供することにある。
本発明は、共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステムを対象とする。オブジェクトは、ファイルとして、共有されることが可能な任意のエンティティであることが可能である。多くの異なるユーザが、いくつかの異なるトランスポートを介して、同一の共有オブジェクトに同時にアクセスし、変更を行い、更新を行うことができる。ユーザらは、別のユーザが、共有オブジェクトにアクセスを有する場合に、その共有オブジェクトにアクセスし、変更を行うことを阻止されない。あらゆる許可されたユーザが、共有オブジェクトを同時に変更することができる。ユーザらは、変更を行っている間、共有オブジェクトに接続されていることを要求されない。変更は、オブジェクトのローカルキャッシュされたバージョンにオフラインで行われることが可能である。次に、変更は、共有オブジェクトが利用可能になった際に、他のユーザ変更と同期させられる。共有オブジェクトに対する変更は、すべてのユーザが、共有オブジェクトに対する変更を見ることができるように、自動的に同期される。異なるユーザは、異なる時点で共有オブジェクトを変更することが可能であり、したがって、共有オブジェクトの複数のバージョンが並存することが可能である。共有オブジェクトの最新バージョンは、他の許可されたユーザらが利用できる最新の同期された変更を含むバージョンである。
2名のユーザが、共有オブジェクトの同一の部分を変更する場合、競合が生じる可能性がある。変更された部分は、同一の部分に対する別のユーザの変更と競合する場合、共有オブジェクトと同期させることができない。競合する変更を有する共有オブジェクトの部分は、競合ページ上で表示される。競合ページは、共有ファイルの最新バージョンの対応するマスタページと似通っているが、同期された変更の代わりに、競合する変更を有する共有オブジェクトの部分がハイライトされて、表示されることだけが異なっている。共有オブジェクトのマスタページ上で、競合インジケータが表示される。競合ページは、競合インジケータが選択された場合、マスタページと並んで表示される。ユーザには、マスタページの同期された状態と、対応する競合ページがともに提示される。ユーザは、競合する変更を調停して、マスタページにマージすることができる。重要でないと識別された、競合する変更は、パージされることが可能である。
本発明の一態様では、共有オブジェクトに対する変更が受け取られる。その変更が、共有オブジェクトのマスタページ上の同期された変更と競合するかどうかの判定が行われる。変更は、変更が、共有オブジェクトの最新バージョンに関連すると判定され、同期された変更と競合しないと判定された場合、共有オブジェクトと同期される。
本発明によれば、共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステムを提供することができる。
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
本発明は、共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステムを対象とする。オブジェクトは、ファイルとして、共有されることが可能なエンティティであることが可能である。多くの異なるユーザが、いくつかの異なるトランスポートを介して、同一の共有オブジェクトに同時にアクセスし、変更を行い、更新を行うことができる。ユーザらは、別のユーザが、共有オブジェクトにアクセスを有する場合に、その共有オブジェクトにアクセスし、変更を行うことを阻止されない。あらゆる許可されたユーザが、共有オブジェクトを同時に変更することができる。ユーザらは、変更を行っている間、共有オブジェクトに接続されていることを要求されない。変更は、オブジェクトのローカルキャッシュされたバージョンにオフラインで行われることが可能である。次に、変更は、共有オブジェクトが利用可能になった際に、他のユーザ変更と同期させられる。共有ファイルに対する変更は、すべてのユーザが、共有オブジェクトに対する変更を見ることができるように、自動的に同期される。異なるユーザは、異なる時点で共有オブジェクトを変更することが可能であり、したがって、共有オブジェクトの複数のバージョンが並存することが可能である。共有オブジェクトの最新バージョンは、他の許可されたユーザらが利用できる最新の同期された変更を含むバージョンである。
2名のユーザが、共有オブジェクトの同一の部分を変更する場合、競合が生じる可能性がある。変更された部分は、同一の部分に対する別のユーザの変更と競合する場合、共有オブジェクトと同期させることができない。競合する変更を有する共有オブジェクトの部分は、競合ページ上で表示される。競合ページは、共有オブジェクトの最新バージョンの対応するマスタページと似通っているが、同期された変更の代わりに、競合する変更を有するオブジェクトの部分がハイライトされて、表示されることだけが異なっている。共有ファイルのマスタページ上で、競合インジケータが表示される。競合ページは、競合インジケータが選択された場合、マスタページと並んで表示される。ユーザには、マスタページの同期された状態と、対応する競合ページがともに提示される。ユーザは、競合する変更を調停して、マスタページにマージすることができる。重要でないと識別された、競合する変更は、パージされることが可能である。
例示的な動作環境
図1を参照すると、本発明を実施するための1つの典型的なシステムが、コンピューティングデバイス100のようなコンピューティングデバイスを含む。コンピューティングデバイス100は、ネットワークベースの共同作業システムにおいてデータと対話する、クライアント、サーバ、移動デバイス、または他の任意のコンピューティングデバイスとして構成することができる。非常に基本的な構成では、コンピューティングデバイス100は、通常、少なくとも1つのプロセッサ102、およびシステムメモリ104を含む。コンピューティングデバイスの厳密な構成およびタイプに応じて、システムメモリ104は、揮発性(RAMのような)、不揮発性(ROM、フラッシュメモリなどのような)、またはこの2つの何らかの組み合わせであることが可能である。システムメモリ104は、通常、オペレーティングシステム105、1つまたは複数のアプリケーションプログラム106を含み、プログラムデータ107を含むことが可能である。以下に詳細に説明する、通信モード遷移モジュール108が、アプリケーション群106の中で実施される。
コンピューティングデバイス100は、追加の特徴または機能も有することが可能である。例えば、コンピューティングデバイス100は、例えば、磁気ディスク、光ディスク、またはテープのような、追加のデータ記憶装置(リムーバブル装置および/またはノンリムーバブル装置)も含むことが可能である。そのような追加のストレージを図1に、リムーバブルストレージ109およびノンリムーバブルストレージ110で示す。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するために任意の方法または技術で実装された、揮発性媒体および不揮発性媒体、リムーバブル媒体、およびノンリムーバブル媒体が含まれることが可能である。システムメモリ104、リムーバブルストレージ109、およびノンリムーバブルストレージ110はすべて、コンピュータ記憶媒体の実施例である。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピューティングデバイス100がアクセスすることができる他の任意の媒体が含まれるが、以上には限定されない。あらゆるそのようなコンピュータ記憶媒体が、デバイス100の一部であることが可能である。また、コンピューティングデバイス100は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス112も有することが可能である。また、ディスプレイ、スピーカ、プリンタなどの出力デバイス114も含まれることが可能である。
また、コンピューティングデバイス100は、デバイスが、ネットワークなどを介して、他のコンピューティングデバイス群118と通信することを可能にする通信接続116も含む。ネットワークには、ローカルエリアネットワークおよびワイドエリアネットワーク、ならびに、イントラネットおよびエクストラネットを含むが、以上には限定されない、他の大規模ネットワークが含まれる。通信接続116は、通信媒体の一実施例である。通信媒体は、通常、搬送波などの変調されたデータ信号内の、または他のトランスポート機構におけるコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって実現され、任意の情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号内に情報を符号化するような形で、特性の1つまたは複数が設定、または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの、無線媒体が含まれる。本明細書で使用するコンピュータ可読媒体という用語には、記憶媒体と通信媒体がともに含まれる。
共有ファイルに対する複数ユーザ変更を同期させること
図2は、共有オブジェクトに対する複数ユーザ変更を同期させるためのシステムのブロック図を示す。オブジェクトは、ファイルなどの、共有されることが可能な任意のエンティティであることが可能である。システムは、クライアント200、210、220、230、Exchangeサーバ240のようなファイル格納機能を有する電子メールサーバ、Webサーバ250、ピアツーピアネットワーク260、および電子メール添付ファイル270を含む。クライアント200、210は、Exchangeサーバ240に結合される。クライアント210、220は、Webサーバ250に結合される。また、クライアント210、220は、ピアツーピアネットワーク260を介してともに結合されもする。電子メール添付ファイル270は、Webサーバ250によってクライアント230への転送、およびクライアント230からの転送が行われるように構成される。クライアント200、210はともに、同一のユーザ(ユーザ1)に関連する。例えば、クライアント200は、自宅においてユーザ1にアクセスされ、クライアント210は、職場においてユーザ1にアクセスされる。クライアント220、230は、異なるユーザ(それぞれユーザ2およびユーザ3)に関連する。クライアント200、210、220、230はそれぞれ、共有オブジェクトをローカルで格納するためのキャッシュ202、212、222、232を含む。ピアツーピアネットワーク260は、クライアント210、220の間で共有オブジェクトを転送するための仮想サーバ262を含む。変更ファイル242および共有オブジェクト252、264、272が、Exchangeサーバ240、Webサーバ250、仮想サーバ262、および電子メール添付ファイル270の中にそれぞれ格納される。変更ファイル242および共有オブジェクト252、264、272は、ピアグループ識別子に関連することが可能である。ピアグループ識別子は、特定の共有オブジェクトにアクセスし、変更を行うことが許可されているユーザら(すなわち、ピアグループ)を識別する。一実施形態では、ピアグループ識別子は、任意のWebクライアントに解決することができるピアグループに対するユニフォームリソースロケータ(URL)である。共有オブジェクト252、264は、マニフェストファイル254、266にそれぞれ関連する。
多くの異なるユーザが、いくつかの異なるトランスポートを介して、同一の共有オブジェクトに同時にアクセスし、編集を行い、更新を行うことができる。例えば、クライアント210におけるユーザ1、およびクライアント220におけるユーザ2が、Webサーバ250から共有オブジェクト252にアクセスすることができる。共有オブジェクトは、対応するキャッシュ212、222の中にローカルで格納される。ユーザ1とユーザ2はともに、共有オブジェクト252を変更することができる。変更は、サーバ250上で共有オブジェクト252と同期されて、ユーザ1が、ユーザ2によって行われた変更を見ることができ、ユーザ2が、ユーザ1によって行われた変更を見ることができるようになる。
別の実施例では、ユーザ3が、電子メール添付ファイル270を介して、共有オブジェクト272のアクセスをユーザ2と共有することができる。ユーザ2は、ローカルで格納された共有オブジェクトを変更し、共有オブジェクト全体、または共有オブジェクトに対する変更だけが添付された電子メールメッセージを、ユーザ3に送信することができる。ユーザ2によって行われた変更は、Webサーバ250上で共有オブジェクト252と同期される。電子メールが、クライアント230において受信されると、ユーザ2によって行われた変更は、キャッシュ232内に格納されたローカル共有オブジェクトと自動的に同期される。次に、ユーザ3が、共有オブジェクト272にさらなる変更を行い、共有オブジェクト全体、または共有オブジェクトに対する変更だけを電子メール添付ファイル270として含まれて、ユーザ2に返信することができる。ユーザ3によって行われた変更は、Webサーバ250上で共有オブジェクト252と同期される。また、クライアント220における共有オブジェクトも、ユーザ3によって行われた変更を含むように更新される。
別の実施例では、ユーザ1が、Exchangeサーバ240を介して、自宅においてクライアント200上で、または職場においてクライアント210上で、共有オブジェクトにアクセスすることができる。Exchangeサーバは、しばしば、外部サーバへのアクセスが許されない、または利用可能でない場合に利用される。変更ファイル242が、共有オブジェクトへの変更を含む。変更ファイル242は、ユニバーサルシリアルバス(USB)ドライブ、電子メールアプリケーション、あるいは変更が転送されてやりとりされることを可能にする他の何らかの機構を介して、クライアント200、210の間で転送されることが可能である。変更は、キャッシュ202、212の中に格納されたローカル共有オブジェクトが更新されることが可能なように、クライアント200、210に適用される。
Exchangeサーバ240は、扱うことができるファイルのサイズに制限(例えば、最大2メガバイト)を有することが可能である。ユーザ1が、共有オブジェクトに対する任意の変更を含む変更ファイル242を、クライアント200からExchangeサーバ240にアップロードすることができる。変更ファイル242は、Exchangeサーバ240のサイズ限度を超える場合、クライアント200からクライアント210にサブセクションで転送することができる。ファイルプロトコルは、サブセクションを転送するための要求/フィル(fill)プロセスを可能にする。一実施形態では、Exchangeサーバ240は、電子メールアプリケーションに関連する。別のユーザ(ユーザ2)によって行われた変更が、Webサーバ250またはピアツーピアネットワーク260を介して、クライアント220からクライアント210に転送され、次に、ユーザ1に発行された電子メールアカウントを介して、クライアント200に転送されることが可能である。別の実施形態では、クライアント200が、最新の変更ファイルに関して、Exchangeサーバに定期的にポーリングを行う。
別の実施形態では、クライアント210、220からWebサーバ250への接続が失われた場合、またはユーザ1とユーザ2が、リアルタイムで直接に同期で通信することを選好する場合、クライアント210、220間でピアツーピアネットワーク260が確立されることが可能である。ユーザ1とユーザ2は、Webサーバ250を介するオブジェクト共有により、クライアント210において変更が行われた時点と、クライアント220において変更が利用可能な時点の間に遅れがもたらされる可能性があるため、ピアツーピアネットワーク260を介して通信することを選好する可能性がある。遅れは、大量のサーバトラフィックの結果であることが可能である。ピアツーピアネットワーク260は、共有オブジェクトに対する変更が、Webサーバ250を介してではなく、クライアント210、220間で直接に転送されることを可能にする。一実施形態では、ピアツーピアネットワーク260は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)直接ネットワークである。TCP/IP直接ネットワークは、変更の格納および取得が迅速に行われることを可能にする。
クライアント210、220はそれぞれ、Webサーバ250接続が中断された際、キャッシュ212、222の中に共有オブジェクト252のコピーをローカルで格納していることが可能である。共有オブジェクト252に関連するピアグループ識別子は、ユーザ1とユーザ2がともに、共有オブジェクトに同時にアクセスしていることを示す。ユーザらは、確立されたピアツーピアネットワークに両者がアクセスした(例えば、両方のユーザが、同一の航空機上で、ラップトップコンピュータで作業している)際に、互いに気付く。ピアツーピアネットワーク260は、ユーザ1とユーザ2が、仮想サーバ262上で共有オブジェクト264に対する変更に同時にアクセスし、さらなる変更を実施することを可能にする。変更は、クライアント210、220上で即時に複製されて、ユーザ1とユーザ2が、共有オブジェクト264に対して積極的に共同作業を行うことができるようになる。ピアツーピアネットワーク260は、ユーザ1とユーザ2が、もはや同一の近辺にいない(例えば、各ユーザが、それぞれのオフィスに戻った)場合、またはユーザ1とユーザ2が、もはやリアルタイムで通信することを所望しない場合、無効にされてもよい。その場合、共有オブジェクト252は、Webサーバ250からアクセスされることが可能である。ピアツーピアネットワーク260上で共有オブジェクト変更にアクセスすることと、Webサーバ250上で共有オブジェクト変更にアクセスすることの間の遷移は、自動的であり、シームレスである。
クライアント210、220は、Webサーバ250とピアツーピアネットワーク260の両方から、最新の変更を受信することができる。共有オブジェクトに行われた各変更は、グローバル一意識別子(GUID)およびタイムスタンプに関連する。タイムスタンプは、変更が行われた時刻を明らかにする。クライアント210は、Webサーバ250上で共有オブジェクト252を変更することができる。クライアント220は、キャッシュされたオブジェクトに関連するGUIDおよびタイムスタンプと、Webサーバ250上の共有オブジェクト252に関連するGUIDおよびタイムスタンプを比較することにより、キャッシュ222内の共有オブジェクトのローカルバージョンが最新であるかどうかを判定する。最新バージョンがローカルで格納されていない場合、キャッシュされたオブジェクトにおいて実施されていない最新の変更が、Webサーバ250からクライアント220にロードされ、ローカルファイルと同期される。このため、共有オブジェクトのローカルバージョンが更新するたびに、共有オブジェクト全体がクライアント220にロードされる必要はない。
一実施形態では、クライアント220は、変更に関連するGUIDおよびタイムスタンプから、同一の修正が、ピアツーピアネットワーク260から入手できると判定することが可能である。しかし、アクションは全くもたらされない。というのは、クライアント220は、その修正を既に実施しているからである。別の実施形態では、クライアント220は、変更に関連するGUIDおよびタイムスタンプから、同一の修正は、ピアツーピアネットワーク260から入手できないと判定することが可能である。このため、クライアント220は、変更をピアツーピアネットワーク260に送信して、ピアツーピアネットワーク260に接続されたその他のユーザらが、共有オブジェクトの最新バージョンと同期することができるようにする。
クライアント220が、ピアツーピアネットワーク260から別の変更を受信することが可能である。キャッシュ222内の共有オブジェクトが更新される。クライアント220は、変更に関連するGUIDおよびタイムスタンプを使用して、共有オブジェクトの最新の状態も、Webサーバ250上で入手できるかどうかを判定する。Webサーバ250上の共有オブジェクト252が、共有ドキュメントの最新の状態と同期されていない場合、クライアント220は、最新の変更をWebサーバ250に送信して、共有オブジェクト252を更新することができるようにする。
クライアントが、物理的サーバを介してシステムに接続されている間に、共有オブジェクトを変更する場合、非同期通信が行われる可能性がある。サーバの限界により、共有オブジェクト同期が、ユーザによって変更が行われた時点から遅延させられる可能性がある。一実施形態では、クライアントは、システムに接続されていない間に、共有オブジェクトのローカルでキャッシュされたバージョンを変更している可能性がある。クライアントによって行われたあらゆる変更が、クライアントが、サーバを介してシステムに再接続した際に、共有オブジェクトと同期されることが可能である。クライアントは、通信モードが変わったことにユーザが気付かないように、ローカルアクセス、同期通信、および非同期通信の間でシームレスに遷移することができる。ユーザは、ロケーションを変えることができ、任意の利用可能なデータ共有トランスポート(例えば、ピアツーピアネットワーク、サーバ)が、自動的に明らかにされる。このため、ユーザは、異なる機構を介して、共有オブジェクトにアクセスし、他の許可されたユーザと共同作業を行うことができる。
各共有オブジェクトは、マニフェストファイルに関連する。マニフェストファイルは、システム内で共有オブジェクトの他のバージョン、および他のインスタンスが格納されているロケーションを明らかにする。一実施形態では、マニフェストファイルは、拡張マークアップ言語(XML)ファイルである。別の実施形態では、マニフェストファイルは、複数の共有オブジェクトを明らかにする。別の実施形態では、マニフェストファイルは、クライアント間で共有されることが可能な任意のオブジェクトに関連することが可能である。例えば、マニフェストファイルは、共有オブジェクト全体、または共有オブジェクトの任意の部分(例えば、コンテンツコンテナ、セクション、ページ、アウトラインなど)に関連することが可能である。
マニフェストファイルは、システム内のどこにでも格納されることが可能である。図に示すとおり、マニフェストファイル254は、共有オブジェクト252に関連する。共有オブジェクト252とマニフェストファイル254はともに、Webサーバ250上に格納される。別の実施形態では、マニフェストファイルは、共有オブジェクトの中に格納される。さらに別の実施形態では、マニフェストファイルは、アクティブディレクトリの中に格納される。さらに別の実施形態では、マニフェストファイルは、システム内の複数のロケーションに格納される。マニフェストファイルは、一意ロケーション識別子によって明らかされるロケーションに格納される。一意ロケーション識別子により、ファイルサーバ、サーバの共有領域、Webサーバ、またはピアグループが明らかにされることが可能である。
共有オブジェクトは、キャッシュからローカルで、サーバを介して、またはピアツーピアネットワークを介してアクセスされることが可能である。クライアントは、対応する共有オブジェクトの中の一意ロケーション識別子によって明らかにされたロケーションから、マニフェストファイルを取得する。一実施形態では、クライアントは、マニフェストファイルを将来の参照のためにローカルで格納することができる。マニフェストファイルは、システム内の共有オブジェクトの他のバージョン、および他のインスタンスのロケーション(例えば、サブストアまたはピアグループの中)を示す。共有オブジェクトの別のバージョン/インスタンスが、ピアグループの中に格納されている場合、マニフェストファイルは、対応するピアグループ識別子を含むことが可能である。
一実施形態では、クライアント220が、Webサーバ250上で共有オブジェクト252にアクセスする。クライアント220は、共有オブジェクト252に同様にアクセスしている他のクライアント群(例えば、ピアグループ)に自動的に接続される。クライアント220は、共有オブジェクト252に関連するマニフェストファイル254を取得する。マニフェストファイル254は、共有オブジェクト252の異なるバージョン、および異なるインスタンスのロケーションを明らかにする。このため、クライアント220は、ピアグループ内の任意のクライアントが、マニフェストファイル254によって明らかにされる共有オブジェクト252のバージョン/インスタンスにアクセスする際、ピアグループ内の他の任意のクライアントに対してピアツーピアネットワークを確立することができる。次に、クライアント220は、Webサーバ250から切断して、ピアツーピアネットワーク上で共有オブジェクト252にアクセスすることを続けることができる。
別の実施形態では、クライアント210が、ピアツーピアネットワーク260から共有オブジェクト264にアクセスすることができる。クライアント210は、共有オブジェクト264に関連するマニフェストファイル266を取得する。クライアント210は、サーバに接続し、いずれのクライアントが、そのサーバに同様に接続されているかを判定することができる。接続されたクライアント群には、ピアツーピアネットワーク260が利用できない場合、サーバを介してアクセスすることができる。共有オブジェクト264(または252)、および関連するマニフェストファイル266(または254)により、クライアント210(またはクライアント220)が、非同期通信モードと同期通信モードの間で自動的に、シームレスに遷移することが可能になる。
ユーザらは、別のユーザが共有オブジェクトへのアクセスを有する場合に、その共有オブジェクトにアクセスし、変更を行うことをブロックされない。あらゆる許可されたユーザが、共有オブジェクトを同時に変更することができる。一実施形態では、変更トランザクションの整合性を確実にするように、ブロックの短いインスタンスが生じる可能性がある。例えば、ユーザが、サーバから切断されている間に、共有ドキュメントを大幅に変更する可能性がある。ユーザが、サーバに再接続すると、他のクライアント群は、ユーザの変更のすべてが共有オブジェクトにおいて実施されるまで、共有オブジェクトにアクセスすることを短い間、ブロックされることが可能である。
図3は、共有オブジェクトの相異なる部分を示すリンクされたノード群の階層グラフを示す。一実施形態では、共有オブジェクトは、数名のユーザの間で共有されるノートブックである。ノートブックノード300は、共有オブジェクト全体を表す。フォルダノード310が、ノートブックノード300内に含まれる。セクションノード320が、フォルダノード310内に含まれる。ページノード330、335が、セクションノード310内に含まれる。テーブルノード340、インクノード342、アウトラインノード344、およびイメージノード346が、ページノード330内に含まれる。アウトライン要素ノード350が、アウトラインノード344内に含まれる。テキストノード360が、アウトライン要素ノード350内に含まれる。相異なるノードが、コンテンツコンテナの中に一緒にグループ化されることが可能である。例えば、アウトラインノード344、アウトライン要素ノード350、およびテキストノード360が、コンテンツコンテナR0として一緒にグループ化されることが可能である。コンテンツコンテナR0には、GUID(例えば、GUID−0)が割り当てられる。GUIDは、コンテンツコンテナR0を一意に識別する。
コンテンツコンテナは、共有オブジェクトコンテンツ(例えば、語、文、段落、ページ、テーブル、ピクチャ、手書き入力(handwriting)、ユニフォームリソースロケータ、または共有オブジェクトの中に含まれるデータの任意の組み合わせ)を含む。コンテンツコンテナは、一緒にグループ化されたオブジェクトコンテンツのディメンション(dimension)を提供する。例えば、コンテンツコンテナは、行、段落、ページ、または特定のページ要素(例えば、特定のページ上のテーブルだけ)に対応することが可能である。
共有オブジェクトは、グラフの初期バージョンを格納する。次に、個々のコンテンツコンテナに対して、特定の操作が実行されることが可能である。例えば、ユーザが、コンテンツコンテナのデータを変更することが可能である。共有オブジェクトに対する変更は、コンテンツコンテナの状態として識別されることが可能である。共有オブジェクトは、グラフの変更されたコンテンツコンテナを格納する。コンテンツコンテナの最新の状態が、GUIDおよびタイムスタンプを使用して、前の状態と比較されて、コンテンツコンテナが変更されているかどうかの判定を行うことができるようになる。
例えば、2名の異なるユーザがそれぞれ、共有ドキュメントにアクセスして、コンテンツコンテナR0を変更する可能性がある。1名のユーザは、テキストノード360を削除することにより、コンテンツコンテナR0を変更することが可能である(変更R1に示す)。変更R1は、共有オブジェクトの中に格納される。変更R1に、変更されたコンテナを一意に識別するGUID(例えば、GUID−1)、ならびに変更R1が共有オブジェクトに書き込まれた時刻と日付を明らかにするタイムスタンプが割り当てられる。別のユーザが、テキストノード380をアウトライン要素ノード350に追加することにより、コンテンツコンテナR0を変更することができる(変更R2に示す)。変更R2は、共有オブジェクトの中に格納される。変更R2に、タイムスタンプ、ならびに変更されたコンテンツコンテナを一意に識別するGUID(例えば、GIUD−2)が割り当てられる。
異なるユーザが、異なる時点で共有オブジェクトを変更することができ、したがって、共有オブジェクトの複数のバージョンが並存することが可能である。しかし、共有オブジェクトの1つだけの最新バージョンが存在する。一実施形態では、共有オブジェクトの最新バージョンは、共有オブジェクトと同期され、他の許可されたユーザらに提供された最新の変更を含むバージョンである。
例えば、ユーザが、アウトライン要素ノード370をアウトラインノード344に追加することにより、変更R1として識別された共有オブジェクトのコンテンツコンテナを変更することが可能である(変更R3に示す)。変更R3は、共有オブジェクトの中に格納される。変更R3にも、タイムスタンプ、ならびに変更されたコンテンツコンテナを一意に識別するGUID(例えば、GUID−3)が割り当てられる。変更R3は、変更R1の拡張である。このため、変更R1は、ユーザが気付いていた共有オブジェクト(例えば、ローカルで格納されたバージョン)の最新バージョンである。共有オブジェクトは、共有オブジェクトの最新バージョンが、依然として、変更R1であるかどうかを判定するように検査される。一実施形態では、共有オブジェクトの最新バージョンは、異なるコンテンツコンテナのタイムスタンプおよびGUIDを比較することにより、特定することができる。共有オブジェクトの最新バージョンが、変更R1より新しいタイムスタンプに関連している場合、別のユーザ(例えば、変更R2を作成したユーザ)が、同一のコンテンツコンテナを後に修正している。
変更R1が、共有オブジェクトと同期されて以来、別のユーザが同一のコンテンツコンテナを修正している場合、後のあらゆる変更が共有オブジェクトと同期され、あらゆる競合する変更が解決され、マージされるまで、変更R1の拡張(例えば、変更R3)である、いずれの変更も、共有オブジェクトと同期させることができない。例えば、変更R2が、変更R1の後に、共有オブジェクトと同期される。このため、共有オブジェクトの最新バージョンは、変更R2を含む。変更R3が、共有オブジェクトと同期される前に、変更R3は、変更R2と比較されて、競合する変更が存在するかどうかが判定される。この比較が必要であるのは、変更R3が、共有オブジェクトの最新バージョンにもはや関連していない変更R1の拡張だからである。変更R3は、変更R2と競合しないと判定される。というのは、アウトライン要素ノード370は、変更R2を妨げることなしに、アウトラインノード344に追加することができるからである。
一実施形態では、共有オブジェクトは、共有オブジェクト内の1つのロケーションから別のロケーションにコンテンツコンテナを移動することによって変更される。例えば、テーブルノード340が、ページノード330からページノード335に移動されることが可能である。テーブルノード340が移動されたという判定が行われるが、新たなロケーションは、特定することができない。テーブルノード340の元のロケーションにおいて、プロキシノードが作成される。プロキシノードは、テーブルノード340の新たなロケーションが特定された場合、テーブルノード340のその新たなロケーションに実施される。新たなロケーションが特定される前にテーブルノード340が削除された場合、プロキシノードは、破棄される。
異なるユーザが、共有オブジェクトを同時に編集することが可能である。通常、ユーザらは、共有オブジェクトの相異なるコンテンツコンテナを変更している。このため、各ユーザの変更は、さらなる処理なしに、共有オブジェクトと同期されることが可能である。2名のユーザが、共有オブジェクトの同一のコンテンツコンテナ(例えば、同一のテーブル値、同一の文)を編集する場合、競合が生じる可能性がある。異なるユーザ変更間の競合は、非同期でもたらされる可能性がある。例えば、ユーザが、サーバに接続されていない間に、共有オブジェクトのローカルでキャッシュされたバージョンを変更する可能性がある。その変更は、ユーザが、サーバに再接続した際に、共有オブジェクトと同期される。しかし、その変更は、共有オブジェクトと既に同期されている他のバージョンと競合する可能性がある。
例えば、変更R4は、変更R3の拡張である。変更R4は、アウトラインノード344からアウトライン要素ノード350を削除する。共有オブジェクトの最新バージョンが、変更R2を含むと判定される。変更R2と変更R4の比較により、競合が明らかにされる。というのは、アウトライン要素ノード350が、変更R2の中に存在するが、変更R4の中で削除されているからである。
コンテンツコンテナのマスタバージョンと、コンテンツコンテナの2つの相違する2つのバージョンの間で3方マージ(three−way merge)が実行されて、競合が解決される。例えば、コンテンツコンテナR0(すなわち、マスタバージョン)、変更R2、および変更R4がマージされて、共有オブジェクトの最新バージョンが確立される。コンテンツコンテナのマスタバージョンは、サーバ上の共有オブジェクトと最後に同期されたバージョンであることが可能である。マスタバージョンは、競合しない変更を含む。
競合するコンテンツコンテナは、マージアルゴリズムによって確立された一組の規則に従って調停されて、共有オブジェクトにマージされる。マージアルゴリズムは、いずれの変更が、共有オブジェクトと同期されるかを判定する。例えば、異なるユーザが、優先順位に従ってランク付けされて、あるユーザの変更が、他のすべてのユーザに優先されるようになることが可能である(すなわち、1次編集)。より低い優先順位のユーザが、より高い優先順位のユーザによって既に編集されている共有オブジェクトのコンテンツコンテナを変更しようと試みた場合、そのユーザは、変更(2次編集)が、共有オブジェクトと同期されないという通知を受ける。このため、1次編集が、共有オブジェクトのマスタページ上に表示され、いずれの2次編集にも、共有オブジェクトと同期されないというフラグが付けられる。
別の実施例では、サーバ上の共有オブジェクトに対して行われた変更が、クライアント上においてローカルで行われた変更に優先される。共有オブジェクトのサーバコピーは、多くの異なるユーザが、サーバ上の共有オブジェクトにアクセスし、変更を行っている可能性があるため、マスタバージョンと考えられる。1名だけのユーザが、ローカルで格納されたバージョンにアクセスし、変更を行っている。共有オブジェクトと同期されていない、変更されたコンテンツコンテナ(例えば、2次編集)は、競合するものとして識別される。競合するコンテンツコンテナは、共有オブジェクトの対応するマスタページに関連する競合ページ上に格納されることによって保存される。
図4は、共有オブジェクトのマスタページ、および関連する競合ページを示す。マスタページ400は、コンテンツコンテナ410、420などの、競合しない変更を含む。マージされてない、あらゆる競合する変更は、マスタページ400上で、競合インジケータによって識別される。一実施形態では、競合インジケータは、ドロップダウンメニュー430である。ドロップダウンメニュー430の第1のエントリは、ユーザによって生成された最新の競合であることが可能である。ドロップダウンメニュー430のエントリは、ユーザの名前、および対応するタイムスタンプを含むことが可能である。ドロップダウンメニュー430内の別のエントリは、ユーザが生成したが、調停しなかった他の競合ページを含むことが可能である。ドロップダウンメニュー430内の他のエントリは、他のユーザらによって生成された競合ページに対応することが可能である。ドロップダウンメニュー430からエントリを選択することにより、対応する競合ページが表示されて、共有オブジェクトのマスタバージョンの中にマージされなかった変更にユーザの注意を引き付けるように、競合する変更がハイライトされる。このため、ユーザは、競合を調停して、マスタページ400とマージするか、または競合が重要でないと判断することができる。
別の実施形態では、競合インジケータは、タブである。マスタページは、タブ440に関連することが可能である。また、対応する競合ページも、タブ440とは異質のタブに関連することが可能である。例えば、競合ページタブは、タブ440に対してインデントされているか(indented)、またはタブ440の下にたたまれている(collapsed)ことが可能である。特定のユーザに関連する、マージされてない競合を含む競合ページは、その他のタブとは異質であるタブによって識別されて、ユーザの注意が、そのユーザによって生成された競合ページに引き付けられるようにすることが可能である。すると、ユーザは、そのタブを選択して、対応する競合ページに移動する(navigate)ことができる。
選択された競合ページは、共有オブジェクトの対応するマスタページと並んで表示されて、ユーザが、マージされた変更のために、競合する変更を調停し、マージすることができるようにすることが可能である。競合ページ450が、マスタページ400に関連する。競合ページ450は、マスタページ400と似通っているが、競合が解決されていないことを示すように、あらゆる競合するコンテンツコンテナがハイライトされていることが異なっている。例えば、コンテンツコンテナ460が、マージされてない競合にユーザの注意を引き付けるように、ハイライトされた背景で提示される。コンテンツコンテナ460は、ユーザが、コンテンツコンテナ460の中のデータを変更して、競合を生じさせる前に、削除され、共有オブジェクトと同期されていることが可能である。ユーザは、コンテンツコンテナ460を選択して、マスタページ400上でその変更をマージすることができる。
一実施形態では、競合ページは、1名の特定のユーザに関連する。このため、複数のユーザが、マージされることが可能でない変更をページ上で行った場合、複数の競合ページが、マスタページ400に関連することが可能である。すべての競合する変更が、共有オブジェクトにアクセスすることが許可された、すべてのユーザに関して格納される。競合ページにアクセスするユーザは、おそらく、そのユーザによって生成された競合に最も関心があり、したがって、ユーザは、それらの競合を調停することができる。例えば、ユーザ1には、ユーザ1が競合インジケータを選択した際に、ユーザ1の対応する競合ページが提示される。また、ユーザは、別のユーザに関連する競合ページを見ることもできる。例えば、ユーザ1は、タブ470を選択して、ユーザ2に関連する競合ページに移動することができる。
共有オブジェクトの1つのマスタページに関連する多くの競合ページが、時とともに蓄積する可能性がある。その期間中、ユーザは、いくつかの変更を、対応する競合ページを無視しながら、サーバ上に位置する共有オブジェクトのマスタバージョンと同期させる可能性がある。このため、ユーザが調停しなかった、より古い競合ページは、おそらく、もはや重要ではない。一実施形態では、重要でないと識別された競合ページは、所定の期間が経過した後、パージされることが可能であり、ユーザが、その期間中にページの変更を同期させている。例えば、あらゆるマスタページに関連する3つの最新の競合ページが保存され、他のいずれの関連する競合ページも、作成から1カ月後にパージされる。
一実施形態では、競合ページは、競合が、非同期通信中よりも頻繁に生じる可能性があるため、リアルタイム通信中には作成されない。代わりに、ユーザは、同一のコンテンツコンテナを共同作業で変更することができる。競合は、即時に処理されることが可能である。というのは、すべてのユーザが、ユーザの変更が実施されたかどうかを迅速に確認することができるからである。代替として、ユーザは、別のユーザが、特定のコンテンツコンテナを変更しているという通知を受ける。ユーザは、その別のユーザの変更が完了するまで、異なるコンテンツコンテナを変更するように促されることが可能である。
図5は、共有オブジェクトに対する複数ユーザ変更を同期させるためのシステムのブロック図を示す。システムは、クライアント500、510、540、550、およびサーバ520、530を含む。クライアント500は、サーバ520、530に結合される。クライアント510は、サーバ520に結合される。クライアント540、550は、サーバ530に結合される。クライアント540は、ストア542および子ストア544を含む。サーバ520は、ストア522および子ストア524、526を含む。サーバ530は、ストア532を含む。ストア532は、サブストア534、536を含む。
ストア522、532、子ストア524、526、およびサブストア534、536は、共有オブジェクトに関連する変更を格納することができる。ストア522、532、子ストア524、526、およびサブストア534、536は、階層型である。例えば、ストア522は、共有ノートブックドキュメント全体に関連することが可能である。子ストア524は、共有ノートブックドキュメントのセクションに関連することが可能である。子ストア526は、共有ノートブックドキュメントのページに関連することが可能である。一実施形態では、最上レベルの共有オブジェクトの最新バージョンだけが、ストア522の中に含まれる。ストア532は、最上レベルの共有オブジェクト全体を格納することが可能である。サブストア534、536は、共有オブジェクトの諸部分に関連する。例えば、サブストア534は、共有オブジェクトのあるセクションに関連することが可能であり、サブストア536は、共有オブジェクトの異なるセクションに関連することが可能である。
アプリケーションは、共有オブジェクトの特定のコンテンツコンテナの最新バージョンなしに、サーバ520またはサーバ530からクライアント500に共有オブジェクトをロードする可能性がある。例えば、クライアント500が、共有オブジェクトをストア522から要求する。共有オブジェクトの最新の利用可能なバージョンが、クライアント500において提示される。共有オブジェクトの最新の利用可能なバージョンは、共有オブジェクトの最新バージョンと一致しない可能性がある。というのは、最新の変更のデータが、対応する子ストア526の中で入手できないからである。クライアント500が、共有オブジェクトを更新するのに最新の変更データを要することを示すように、要求タグが、子ストア526に割り当てられる。また、子ストア526には、クライアント500が、子ストア526から変更データを要求した時刻と日付を明らかにするタイムスタンプも割り当てられることが可能である。また、子ストアには、データを要求したクライアント(例えば、クライアント500)を識別するGUIDも割り当てられることが可能である。要求タグ、タイムスタンプ、およびGUIDは、別のクライアントが子ストア526にアクセスした際、クライアント500に知らせるのに使用される。例えば、クライアント510が、最新の変更データで子ストア526にアクセスすることが可能である。このため、クライアント500は、共有オブジェクトの最新の変更データが、子ストア526の中で入手できることを知らされる。
クライアント500は、ユーザの自宅コンピュータであることが可能であり、クライアント540は、ユーザの職場コンピュータであることが可能である。サーバ530は、クライアント500、540の間で変更ファイルを転送するExchangeサーバであることが可能である。変更ファイルを使用して、クライアント500、550上に格納された共有オブジェクトを更新することができる。一実施形態では、クライアント500は、所定のサイズ(例えば、2メガバイト)より大きいファイルを扱うことを制限される。例えば、クライアント500は、受信されることが可能な電子メールメッセージのサイズを制限する電子メールアプリケーションを含むことが可能である。ストア542は、最上レベルの共有オブジェクトに関連する変更を含む。子ストア544は、共有オブジェクトのコンテンツコンテナに関連する変更を含む。
クライアント540が、サーバ530にポーリングを行って、別のクライアントがデータ変更要求を送信しているかどうかを判定することが可能である。クライアント540は、要求されたデータ変更の最新バージョンが、ストア542または子ストア544の中で入手できる場合、その要求を満たすことができる。クライアント540は、変更ファイルのサイズが、クライアント500によって扱われることが可能な限度より小さい場合、要求された変更全体をクライアント500に転送することができる。変更ファイルのサイズが限度より大きい場合、ファイルは、限度より小さいファイルに分割することができる。代替として、変更ファイルのサイズは、前の要求を削除することにより、小さくすることもできる。次に、その、より小さいファイル群が、サーバ530を介してクライアント540からクライアント500に転送される。
変更データを求める複数の要求が、サーバ上で待っていることが可能である。一実施形態では、要求は、異なるクライアント(例えば、クライアント500、550)から行われる可能性がある。各要求側クライアントは、異なるファイルサイズ限度に関連する可能性がある。例えば、クライアント500は、2メガバイト未満のファイルに制限され、クライアント550は、20メガバイトまでのファイルを扱うことができる。変更ファイルが、2メガバイトより大きい場合、両方の要求とも、1回の転送トランザクションを介して満たすことができない。一実施形態では、優先順位ビットが、各要求側クライアントに関連付けられて、要求が満たされる順序が確立される。
要求は、変更ファイルをクライアント500、550と同期させることによって満たされる。変更ファイルは、変更ファイルのサイズに応じて、1回のトランザクションで、または一連の複数回のトランザクションを介して、クライアント500、550と同期されることが可能である。各クライアント500、550は、変更ファイル全体が同期されると、要求が満たされたと判定する。クライアント540は、要求が満たされたため、要求されたデータをパージすることができる。クライアント540は、後にサーバ530にポーリングを行って、満たされるべき、さらなる要求が待っているかどうかを判定することができる。
図6は、共有オブジェクトに対する複数ユーザ変更を同期させるためのプロセスを示す動作流れ図を示す。プロセスは、多くのユーザが、共有オブジェクトに同時にアクセスし、変更を行うことを許可される(すなわち、ピアグループ)開始ブロックで始まる。オブジェクトは、ファイルとして共有されることが可能な任意のエンティティであることが可能である。ピアグループは、ピアグループ識別子によって識別されることが可能である。共有オブジェクトの異なるバージョンは、対応するGUIDおよびタイムスタンプによって識別される。タイムスタンプは、共有オブジェクトが最後に変更と同期された時刻を明らかにする。
ブロック600に進むと、ユーザが、共有オブジェクトを変更する。共有オブジェクトは、サーバ上で、ローカルキャッシュ内で、またはピアツーピアネットワーク上で変更されることが可能である。一実施形態では、変更は、変更ファイルとして格納される。ブロック610に進むと、変更は、GUIDおよびタイムスタンプに関連する。タイムスタンプは、ユーザが共有オブジェクトを変更した時刻を明らかにする。
ブロック620に進むと、共有オブジェクトの最新バージョンが探し出される。共有オブジェクトの最新バージョンは、共有オブジェクトと同期され、他の許可されたユーザに利用可能にされた最新の変更を含む、バージョンである。共有オブジェクトの最新バージョンは、共有オブジェクトの異なるバージョンに関連するタイムスタンプおよびGUIDから特定することができる。
判定ブロック630に移ると、競合する変更が存在するかどうかの判定が行われる。変更は、異なるユーザが、同一のコンテンツコンテナを変更した場合、競合する可能性がある。変更は、競合する変更が存在する場合、共有オブジェクトと同期させることができない。競合する変更が存在する場合、処理は、ブロック640に進み、競合する変更が調停されて、マージされる(図7に関連して説明するとおり)。競合する変更が全く存在しない場合、処理は、ブロック650に進み、変更は、共有オブジェクトと同期されて、他のユーザらが、その変更を見ることができるようになる。次に、処理は、終了ブロックで終了する。
図7は、共有オブジェクトに対する競合する複数ユーザ変更を調停して、マージするためのプロセスを示す動作流れ図を示す。プロセスは、開始ブロックで始まり、複数のユーザが、共有オブジェクトの中で同一のコンテンツコンテナを変更している。変更されたコンテンツコンテナの1つが、共有オブジェクトと同期されて、そのコンテンツコンテナに対する他のいずれの変更も、同期させることができないようになると、競合がもたらされる。
ブロック700に進むと、競合する変更が、競合ページ上で表示される。競合ページは、対応するマスタページと似通っているが、競合するバージョンが、同期された変更の代わりにハイライトされ、表示されることだけが異なっている。
ブロック710に進むと、共有オブジェクトのマスタページ上に競合インジケータが表示される。競合インジケータは、マスタページに関して競合ページが利用できることをユーザに知らせる、ドロップダウンメニュー、タブ、または他の任意の機構であることが可能である。特定のユーザに関連する競合ページに関する競合インジケータは、現在のユーザが、現在のユーザによって生成された競合ページを迅速に識別することができるように、他のユーザらに関連する競合ページに関する競合インジケータとは異質であることが可能である。
ブロック720に進むと、競合インジケータが選択されると、競合ページは、マスタページと並んで表示される。ユーザには、マスタページの同期された状態と、対応する競合ページがともに提示される。
ブロック730に移ると、ユーザは、競合する変更を調停して、マスタページにマージする。一実施形態では、ユーザは、コンテンツコンテナを選択して、そのコンテンツコンテナが、マスタページとマージされるようにすることができる。別の実施形態では、ユーザは、変更をマスタページ上に直接に実施することができる。さらに別の実施形態では、ユーザは、競合する変更を重要ではないと識別することが可能である。
ブロック740に進むと、重要ではないと識別された、競合する変更がパージされる。一実施形態では、競合する変更は、ユーザによって重要ではないと識別されることが可能である。別の実施形態では、競合する変更は、重要ではないと自動的に識別されることが可能である。例えば、ユーザが、いくつかの変更を、対応する競合ページを無視しながら、サーバ上に位置する共有オブジェクトのマスタバージョンと同期させることが可能である。ユーザが調停しなかった、より古い競合ページは、所定の期間が経過した後、重要ではないと識別される。次に、処理は、終了ブロックで終了する。
図8は、共有オブジェクトに対する複数ユーザ変更を同期させるためのプロセスを示す動作流れ図を示す。プロセスは、開始ブロックで始まり、共有オブジェクトの異なるバージョンが、システム全体の様々なロケーションに格納される。ブロック800に進むと、共有オブジェクトが、ストアからクライアントにダウンロードされる。
判定ブロック810に進むと、共有オブジェクトが、共有オブジェクトの最新バージョンであるかどうかの判定が行われる。共有オブジェクトが、共有オブジェクトの最新バージョンである場合、処理は、終了ブロックで終了する。共有オブジェクトが、共有オブジェクトの最新バージョンでない場合、処理は、ブロック820に進む。共有オブジェクトは、共有オブジェクトのコンテンツコンテナに対する最新の変更がストアから入手できないため、最新バージョンではない可能性がある。
ブロック820に進むと、クライアントが、共有オブジェクトを更新するのに最新の変更データを要することを示すように、要求タグおよびクライアント情報がストアに割り当てられる。クライアント情報は、要求側クライアントを識別するGUID、ならびに共有オブジェクトの最新バージョンをクライアントがストアから要求した時刻を明らかにするタイムスタンプを含むことが可能である。
ブロック830に移ると、共有オブジェクトの最新バージョンが、ストアにおいて受け取られる。ストアは、別のクライアントが、最新の変更データでストアにアクセスした際、共有オブジェクトの最新バージョンを受け取ることが可能である。要求側クライアントは、共有オブジェクトの最新バージョンが、ストアによって受け取られたことを知らされる。ブロック840に進むと、共有オブジェクトの最新バージョンが、要求側クライアントと同期される。次に、処理は、終了ブロックで終了する。
図9は、非同期通信モードから同期通信モードにシームレスに遷移するためのプロセスを示す動作流れ図を示す。プロセスは、開始ブロックで始まり、共有オブジェクトにアクセスすることが許可されているユーザらを明らかにするピアグループが確立される。
ブロック900に進むと、クライアントが、サーバ上の共有オブジェクトにアクセスする。クライアントは、その共有オブジェクトに同様にアクセスしている他のクライアント群(すなわち、ピアグループ)に自動的に接続される。共有オブジェクトは、マニフェストファイルに関連する。共有オブジェクトは、対応するマニフェストファイルがシステム内で格納されているロケーションを明らかにする一意ロケーション識別子を含む。
ブロック910に進むと、マニフェストファイルが、一意ロケーション識別子によって明らかにされたロケーションから取得される。マニフェストファイルは、システム内で、共有オブジェクトの他のバージョン、および他のインスタンスが格納されているロケーションを明らかにする。マニフェストファイルは、共有オブジェクトのバージョンが格納された、ピアグループに対するピアグループ識別子を含む。
ブロック920に進むと、ピアグループ内の他のいずれかのクライアントが、マニフェストファイルによって識別された共有オブジェクトのバージョンまたはインスタンスにアクセスした際、ピアツーピアネットワークが確立される。このため、クライアントは、サーバから切断し、ピアツーピアネットワーク上で共有ファイルにアクセスすることを続けることができる。次に、処理は、終了ブロックで終了する。
図10は、同期通信モードから非同期通信モードにシームレスに遷移するためのプロセスを示す動作流れ図を示す。プロセスは、開始ブロックで始まり、共有オブジェクトにアクセスすることが許可された、少なくとも2名のユーザ間でピアツーピアネットワークが確立される。
ブロック1000に進むと、クライアントが、ピアツーピアネットワーク上で共有オブジェクトにアクセスする。共有オブジェクトは、マニフェストファイルに関連する。共有オブジェクトは、システム内で、対応するマニフェストファイルが格納されているロケーションを明らかにする一意ロケーション識別子を含む。
ブロック1010に進むと、共有オブジェクトに関連するマニフェストファイルが、一意ロケーション識別子によって明らかにされたロケーションから取得される。マニフェストファイルは、システム内で、共有オブジェクトの他のバージョン、および他のインスタンスが格納されているロケーションを明らかにする。ブロック1020に進むと、クライアントは、サーバに接続する。クライアントは、他のいずれのクライアントが、そのサーバに同様に接続されているかを特定する。ブロック1030に移ると、クライアントは、ピアツーピアネットワークから、その共有オブジェクトにアクセスすることが許可されている他のクライアントを識別する。ブロック1040に進むと、クライアントは、ピアツーピアネットワークが利用できない場合、許可されたクライアントに接続する。次に、処理は、終了ブロックで終了する。
以上の明細、実施例、およびデータにより、本発明の構成の製造および用法の完全な説明が提供される。本発明の趣旨および範囲を逸脱することなく、本発明の多くの実施形態を実施することができるため、本発明は、添付の特許請求の範囲に存する。
本発明の典型的な実施形態に従って使用することができるコンピューティングデバイスを示す図である。 本発明による、共有オブジェクトに対する複数ユーザ変更を同期させるためのシステムを示すブロック図である。 本発明による、共有オブジェクトの相異なる部分を示すリンクされたノード群を示す階層グラフである。 本発明による、共有オブジェクトのマスタページ、および関連する競合ページを示す図である。 本発明による、共有オブジェクトに対する複数ユーザ変更を同期させるためのシステムを示すブロック図である。 本発明による、共有オブジェクトに対する複数ユーザ変更を同期させるためのプロセスを示す動作流れ図である。 本発明による、共有オブジェクトの、複数のユーザからの競合する変更を調停し、マージするためのプロセスを示す動作流れ図である。 本発明による、共有オブジェクトに対する複数ユーザ変更を同期させるためのプロセスを示す動作流れ図である。 本発明による、非同期通信モードから同期通信モードにシームレスに遷移するためのプロセスを示す動作流れ図である。 本発明による、同期通信モードから非同期通信モードにシームレスに遷移するためのプロセスを示す動作流れ図である。
符号の説明
100 コンピューティングデバイス
102 プロセッサ
104 システムメモリ
105 オペレーティングシステム
106 アプリケーション
107 プログラムデータ
108 通信モード遷移モジュール
109 リムーバブルなストレージ
110 リムーバブルでないストレージ
112 入力デバイス
114 出力デバイス
116 通信接続
118 他のコンピューティングデバイス群
200 ユーザ1(自宅)
202、212、222、232 キャッシュ
210 ユーザ1(職場)
220 ユーザ2
230 ユーザ3
240 EXCHANGEサーバ
242 変更ファイル
250 WEBサーバ
252、264、272 共有オブジェクト
254、266 マニフェストファイル
260 ピアツーピアネットワーク
262 仮想サーバ
270 電子メール添付ファイル

Claims (20)

  1. 共有オブジェクトに対する複数ユーザ変更を同期させるためのコンピュータによって実施される方法であって、
    前記共有オブジェクトに対する変更を受け取るステップと、
    前記変更が、前記共有オブジェクトのマスタページ上の同期された変更と競合するかどうかを判定するステップと、
    前記変更が、前記共有オブジェクトの最新バージョンに関連すると判定され、前記変更が、同期された変更と競合しないと判定された場合、前記変更を前記共有オブジェクトと同期させるステップと
    を備えることを特徴とする方法。
  2. 前記変更が、同期された変更と競合すると判定された場合、前記変更を前記マスタページに関連する競合ページ上で表示するステップと、
    前記マスタページが前記競合ページに関連することを示す競合インジケータを前記マスタページ上で表示するステップと、
    前記変更を前記共有オブジェクトにマージするステップと
    をさらに備えることを特徴とする請求項1に記載のコンピュータによって実施される方法。
  3. 前記変更を表示するステップは、
    前記同期された変更が前記マスタページ上で表示される位置に対応する位置で、前記競合ページ上に前記変更を表示するステップと、
    前記競合ページ上で前記変更をハイライトするステップと
    をさらに備えることを特徴とする請求項2に記載のコンピュータによって実施される方法。
  4. 前記競合インジケータが選択された場合、前記競合ページ、および前記関連するマスタページを表示するステップ
    をさらに備えることを特徴とする請求項2に記載のコンピュータによって実施される方法。
  5. 前記変更が重要ではないかどうかを判定するステップと、
    重要ではないと判定された前記変更をパージするステップと
    をさらに備えることを特徴とする請求項1に記載のコンピュータによって実施される方法。
  6. ストアにおいて前記共有オブジェクトの最新バージョンを求めるクライアント要求を受け取るステップと、
    前記ストアにおいて前記共有オブジェクトの前記最新バージョンを受け取るステップと、
    前記共有オブジェクトの前記最新バージョンを前記クライアントと同期させるステップと
    をさらに備えることを特徴とする請求項1に記載のコンピュータによって実施される方法。
  7. クライアント要求を受け取るステップは、前記ストアに要求タグおよびクライアント情報を割り当てるステップをさらに含むことを特徴とする請求項6に記載のコンピュータによって実施される方法。
  8. 前記共有オブジェクトの前記最新バージョンを受け取るステップは、別のクライアントが、前記共有オブジェクトの前記最新バージョンで前記ストアにアクセスした場合に、前記共有オブジェクトの前記最新バージョンを受け取るステップをさらに含むことを特徴とする請求項6に記載のコンピュータによって実施される方法。
  9. 共有オブジェクトに対する複数ユーザ変更を同期させるためのコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体であって、
    前記共有オブジェクトに対する変更を受け取るステップと、
    前記変更が、前記共有オブジェクトのマスタページ上の同期された変更と競合するかどうかを判定するステップと、
    前記変更が、前記共有オブジェクトの最新バージョンに関連すると判定され、前記変更が、同期されたバージョンと競合しないと判定された場合、前記変更を前記共有オブジェクトと同期させるステップと
    を備えることを特徴とする媒体。
  10. 前記変更が、同期された変更と競合すると判定された場合、前記変更を前記マスタページに関連する競合ページ上で表示するステップと、
    前記マスタページが前記競合ページに関連することを示す競合インジケータを前記マスタページ上で表示するステップと、
    前記変更を前記共有オブジェクトにマージするステップと
    をさらに備えることを特徴とする請求項9に記載のコンピュータ読み取り可能な記録媒体。
  11. 前記変更を表示するステップは、
    前記同期された変更が前記マスタページ上で表示される位置に対応する位置で、前記競合ページ上に前記変更を表示するステップと、
    前記競合ページ上で前記変更をハイライトするステップと
    をさらに備えることを特徴とする請求項10に記載のコンピュータ読み取り可能な記録媒体。
  12. 前記競合インジケータが選択された場合、前記競合ページ、および前記関連するマスタページを表示するステップ
    をさらに備えることを特徴とする請求項10に記載のコンピュータ読み取り可能な記録媒体。
  13. 前記変更が重要ではないかどうかを判定するステップと、
    重要ではないと判定された前記変更をパージするステップと
    をさらに備えることを特徴とする請求項9に記載のコンピュータ読み取り可能な記録媒体。
  14. 前記変更が、前記共有オブジェクトの最新バージョンに関連するかどうかを判定するステップをさらに備えることを特徴とする請求項9に記載のコンピュータ読み取り可能な記録媒体。
  15. ストアにおいて前記共有オブジェクトの最新バージョンを求めるクライアント要求を受け取るステップと、
    前記ストアにおいて前記共有オブジェクトの前記最新バージョンを受け取るステップと、
    前記共有オブジェクトの前記最新バージョンを前記クライアントと同期させるステップと
    をさらに備えることを特徴とする請求項14に記載のコンピュータ読み取り可能な記録媒体。
  16. 共有オブジェクトに対する複数ユーザ変更を同期させるためのシステムであって、
    前記共有オブジェクトに対する変更を受け取るための手段と、
    前記変更が、前記共有オブジェクトのマスタページ上の同期された変更と競合するかどうかを判定するための手段と、
    前記変更が、前記共有オブジェクトの最新バージョンに関連すると判定され、前記変更が、同期されたバージョンと競合しないと判定された場合、前記変更を前記共有オブジェクトと同期させるための手段と
    を備えたことを特徴とするシステム。
  17. ストアにおいて前記共有オブジェクトの最新バージョンを求めるクライアント要求を受け取るための手段と、
    前記ストアにおいて前記共有オブジェクトの前記最新バージョンを受け取るための手段と、
    前記共有オブジェクトの前記最新バージョンを前記クライアントと同期させるための手段と
    をさらに備えたことを特徴とする請求項16に記載のシステム。
  18. クライアント要求を受け取るための手段は、前記ストアに要求タグおよびクライアント情報を割り当てるための手段をさらに含むことを特徴とする請求項17に記載のシステム。
  19. 前記共有オブジェクトの前記最新バージョンを受け取るための手段は、別のクライアントが、前記共有オブジェクトの前記最新バージョンで前記ストアにアクセスした場合に、前記共有オブジェクトの前記最新バージョンを受け取るための手段をさらに含むことを特徴とする請求項17に記載のシステム。
  20. 前記変更が、前記共有オブジェクトの最新バージョンに関連するかどうかを判定するための手段をさらに備えたことを特徴とする請求項16に記載のシステム。
JP2005359520A 2005-01-14 2005-12-13 共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム Expired - Fee Related JP4874640B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/035,698 2005-01-14
US11/035,698 US7593943B2 (en) 2005-01-14 2005-01-14 Method and system for synchronizing multiple user revisions to a shared object

Publications (3)

Publication Number Publication Date
JP2006195972A true JP2006195972A (ja) 2006-07-27
JP2006195972A5 JP2006195972A5 (ja) 2009-02-26
JP4874640B2 JP4874640B2 (ja) 2012-02-15

Family

ID=35520225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005359520A Expired - Fee Related JP4874640B2 (ja) 2005-01-14 2005-12-13 共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム

Country Status (17)

Country Link
US (1) US7593943B2 (ja)
EP (1) EP1681652B1 (ja)
JP (1) JP4874640B2 (ja)
KR (1) KR101153052B1 (ja)
CN (1) CN100561473C (ja)
AU (1) AU2005234676B2 (ja)
BR (1) BRPI0505187A (ja)
CA (1) CA2528070C (ja)
IL (1) IL172571A (ja)
MX (1) MXPA05013617A (ja)
MY (1) MY144510A (ja)
NO (1) NO336905B1 (ja)
NZ (1) NZ544151A (ja)
RU (1) RU2404450C2 (ja)
SG (1) SG124349A1 (ja)
TW (1) TWI368171B (ja)
ZA (1) ZA200510084B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171039A (ja) * 2007-01-05 2008-07-24 Ants:Kk Webブラウザ上に表示されたオブジェクトをWebブラウザから取り出したように見せる方法及びプログラム
JP2011519105A (ja) * 2008-04-28 2011-06-30 マイクロソフト コーポレーション 競合の解決
JP2012525656A (ja) * 2009-05-01 2012-10-22 マイクロソフト コーポレーション 電子ノートブックにおける共有ジョブスケジューリング
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8990150B2 (en) 2007-11-09 2015-03-24 Microsoft Technology Licensing, Llc Collaborative authoring
JP2015527646A (ja) * 2012-06-27 2015-09-17 ドロップボックス, インコーポレイテッド 同期ファイル用の複数の修正バージョンから好適な修正バージョンの判定
JP2019133587A (ja) * 2018-02-02 2019-08-08 eXTEM Software Japan株式会社 複数のユーザにアクセスされるデータを処理する情報管理システム、情報管理方法、およびプログラム
JP6903247B1 (ja) * 2020-11-18 2021-07-14 三菱電機株式会社 監視画面作成支援装置、監視画面作成支援方法、および監視画面作成支援プログラム

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US7246356B1 (en) 2003-01-29 2007-07-17 Adobe Systems Incorporated Method and system for facilitating comunications between an interactive multimedia client and an interactive multimedia communication server
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7287256B1 (en) 2003-03-28 2007-10-23 Adobe Systems Incorporated Shared persistent objects
US7953794B2 (en) * 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
JP4696721B2 (ja) * 2005-06-27 2011-06-08 富士ゼロックス株式会社 文書管理サーバ、文書管理システム
US7925701B2 (en) * 2005-07-25 2011-04-12 Sony Ericsson Mobile Communications Ab Mobile communication terminal supporting information sharing
US8161159B1 (en) 2005-10-31 2012-04-17 Adobe Systems Incorporated Network configuration with smart edge servers
US7945615B1 (en) * 2005-10-31 2011-05-17 Adobe Systems Incorporated Distributed shared persistent objects
JP2007122609A (ja) * 2005-10-31 2007-05-17 Ricoh Co Ltd 構造化文書、コンテンツ配信サーバ装置及びコンテンツ配信システム
JP4876734B2 (ja) * 2006-06-22 2012-02-15 富士ゼロックス株式会社 文書利用管理システム及び方法、文書管理サーバ及びそのプログラム
JP4816281B2 (ja) * 2006-06-22 2011-11-16 富士ゼロックス株式会社 文書利用管理システム、文書管理サーバ及びそのプログラム
US8090944B2 (en) * 2006-07-05 2012-01-03 Rockstar Bidco Lp Method and apparatus for authenticating users of an emergency communication network
US20080103977A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Digital rights management for distributed devices
US20080104206A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US7966426B2 (en) * 2006-11-14 2011-06-21 Microsoft Corporation Offline synchronization capability for client application
JP5003131B2 (ja) * 2006-12-04 2012-08-15 富士ゼロックス株式会社 文書提供システム及び情報提供プログラム
US20080140732A1 (en) * 2006-12-11 2008-06-12 Bentley System, Inc. Method and system for sharing file based data
US7836429B2 (en) 2006-12-19 2010-11-16 International Business Machines Corporation Data synchronization mechanism for change-request-management repository interoperation
JP4305510B2 (ja) * 2006-12-28 2009-07-29 富士ゼロックス株式会社 情報処理システム、情報処理装置及びプログラム
US7954008B2 (en) * 2007-01-15 2011-05-31 Microsoft Corporation Objective assessment of application crashes from a customer environment
JP5082460B2 (ja) * 2007-01-19 2012-11-28 富士ゼロックス株式会社 情報処理装置及びプログラム及び情報処理システム
JP5023715B2 (ja) * 2007-01-25 2012-09-12 富士ゼロックス株式会社 情報処理システム、情報処理装置及びプログラム
US7620659B2 (en) * 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US8131670B2 (en) * 2007-02-22 2012-03-06 Microsoft Corporation Techniques to cross-synchronize data
US20080222508A1 (en) * 2007-03-08 2008-09-11 Huy Nguyen Method and system for comparing spreadsheets
US7949938B2 (en) * 2007-03-20 2011-05-24 International Business Machines Corporation Comparing and merging multiple documents
JP2008257317A (ja) * 2007-04-02 2008-10-23 Fuji Xerox Co Ltd 情報処理装置、情報処理システム及びプログラム
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
KR101546639B1 (ko) * 2007-05-15 2015-08-21 메리얼 리미티드 아릴로아졸-2-일 시아노에틸아미노 화합물, 이의 제조방법 및 이의 사용방법
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US8782527B2 (en) 2007-06-27 2014-07-15 Microsoft Corp. Collaborative phone-based file exchange
JP2009042856A (ja) * 2007-08-07 2009-02-26 Fuji Xerox Co Ltd 文書管理装置、文書管理システム及びプログラム
US7890472B2 (en) 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
JP5119840B2 (ja) * 2007-10-02 2013-01-16 富士ゼロックス株式会社 情報処理装置、情報処理システム、及びプログラム
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US9501453B2 (en) * 2007-12-23 2016-11-22 Salesforce.Com Inc. Method and system for a flexible-data column user interface
US8185495B2 (en) * 2008-02-01 2012-05-22 Microsoft Corporation Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8489566B2 (en) * 2008-04-08 2013-07-16 International Business Machines Corporation Optimistic locking in online and offline environments
US8347061B2 (en) * 2008-04-29 2013-01-01 International Business Machines Corporation Method for protecting user-managed memory using an exception
US7974948B2 (en) * 2008-05-05 2011-07-05 Microsoft Corporation Automatically capturing and maintaining versions of documents
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US9418054B2 (en) 2008-05-12 2016-08-16 Adobe Systems Incorporated Document comment management
US9176943B2 (en) 2008-05-12 2015-11-03 Adobe Systems Incorporated Comment presentation in electronic documents
US10055392B2 (en) * 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US8996621B2 (en) 2008-05-12 2015-03-31 Adobe Systems Incorporated Asynchronous comment updates
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US7945595B1 (en) 2008-05-12 2011-05-17 Adobe Systems Incorporated System and method for generating an item list in electronic content
US10417051B2 (en) * 2008-05-23 2019-09-17 International Business Machines Corporation Synchronizing shared resources in an order processing environment using a synchronization component
US7899883B2 (en) * 2008-06-13 2011-03-01 Microsoft Corporation Merging versions of documents using multiple masters
US8612520B2 (en) 2008-06-16 2013-12-17 Microsoft Corporation Online/offline proto link behavior and proto page conflict resolution
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
US9200901B2 (en) * 2008-06-19 2015-12-01 Microsoft Technology Licensing, Llc Predictive services for devices supporting dynamic direction information
US8467991B2 (en) 2008-06-20 2013-06-18 Microsoft Corporation Data services based on gesture and location information of device
US20090319166A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US20090315775A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8489999B2 (en) 2008-09-02 2013-07-16 Accenture Global Services Limited Shared user interface surface system
US20100064004A1 (en) * 2008-09-10 2010-03-11 International Business Machines Corporation Synchronizing documents by designating a local server
US20100082560A1 (en) * 2008-09-19 2010-04-01 Sony Computer Entertainment America Inc. Software change management, configuration substitution and remote administration of datacenters
US8051287B2 (en) 2008-10-15 2011-11-01 Adobe Systems Incorporated Imparting real-time priority-based network communications in an encrypted communication session
US8656290B1 (en) * 2009-01-08 2014-02-18 Google Inc. Realtime synchronized document editing by multiple users
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US8639762B2 (en) 2009-03-23 2014-01-28 Google Inc. Providing access to a conversation in a hosted conversation system
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8296338B2 (en) * 2009-05-05 2012-10-23 Entangled Media Corp. Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems
US9269102B2 (en) * 2009-05-21 2016-02-23 Nike, Inc. Collaborative activities in on-line commerce
US9298834B2 (en) 2009-05-26 2016-03-29 Adobe Systems Incorporated User presence data for web-based document collaboration
US8612380B2 (en) * 2009-05-26 2013-12-17 Adobe Systems Incorporated Web-based collaboration for editing electronic documents
US9602444B2 (en) 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US9021386B1 (en) 2009-05-28 2015-04-28 Google Inc. Enhanced user interface scrolling system
US8527602B1 (en) 2009-05-28 2013-09-03 Google Inc. Content upload system with preview and user demand based upload prioritization
US8872767B2 (en) 2009-07-07 2014-10-28 Microsoft Corporation System and method for converting gestures into digital graffiti
US9569254B2 (en) * 2009-07-28 2017-02-14 International Business Machines Corporation Automatic checkpointing and partial rollback in software transaction memory
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US8166191B1 (en) 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US8201094B2 (en) * 2009-09-25 2012-06-12 Nokia Corporation Method and apparatus for collaborative graphical creation
CA2684225A1 (en) * 2009-10-30 2011-04-30 Ibm Canada Limited - Ibm Canada Limitee Selective delta validation of a shared artifact
US8510399B1 (en) 2010-05-18 2013-08-13 Google Inc. Automated participants for hosted conversations
US8719845B2 (en) * 2010-05-19 2014-05-06 Microsoft Corporation Sharing and synchronization of objects
US9026935B1 (en) 2010-05-28 2015-05-05 Google Inc. Application user interface with an interactive overlay
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
CN103238150B (zh) 2010-11-02 2016-08-17 谷歌公司 由多个用户对博客的实时同步文档编辑
US20120136839A1 (en) * 2010-11-30 2012-05-31 Peter Eberlein User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation
US9165285B2 (en) 2010-12-08 2015-10-20 Microsoft Technology Licensing, Llc Shared attachments
US9009726B2 (en) * 2010-12-10 2015-04-14 Microsoft Technology Licensing, Llc Deterministic sharing of data among concurrent tasks using pre-defined deterministic conflict resolution policies
US9436502B2 (en) 2010-12-10 2016-09-06 Microsoft Technology Licensing, Llc Eventually consistent storage and transactions in cloud based environment
EP2793130B1 (en) 2010-12-27 2015-12-23 Amplidata NV Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable
CN102739703A (zh) * 2011-04-02 2012-10-17 中兴通讯股份有限公司 一种对等网络中数据迁移的方法及系统
US10552799B2 (en) 2011-04-28 2020-02-04 Microsoft Technology Licensing, Llc Upload of attachment and insertion of link into electronic messages
US9137185B2 (en) 2011-04-28 2015-09-15 Microsoft Technology Licensing, Llc Uploading attachment to shared location and replacing with a link
US11308449B2 (en) 2011-04-28 2022-04-19 Microsoft Technology Licensing, Llc Storing metadata inside file to reference shared version of file
US8682989B2 (en) 2011-04-28 2014-03-25 Microsoft Corporation Making document changes by replying to electronic messages
US10185932B2 (en) 2011-05-06 2019-01-22 Microsoft Technology Licensing, Llc Setting permissions for links forwarded in electronic messages
US8965983B2 (en) 2011-05-06 2015-02-24 Microsoft Technology Licensing, Llc Changes to documents are automatically summarized in electronic messages
US9378138B2 (en) 2011-06-29 2016-06-28 International Business Machines Corporation Conservative garbage collection and access protection
US9716744B2 (en) * 2011-10-27 2017-07-25 Microsoft Technology Licensing, Llc Remote access from mobile devices
CA2769773C (en) * 2011-11-04 2018-01-09 Gemcom Software International Inc. System and method for data communication over a network
US9355115B2 (en) * 2011-11-21 2016-05-31 Microsoft Technology Licensing, Llc Client application file access
US8825722B2 (en) * 2012-01-13 2014-09-02 Microsoft Corporation Calculation of properties of objects/shapes across versions of applications
KR101919008B1 (ko) 2012-02-24 2018-11-19 삼성전자주식회사 정보 제공 방법 및 이를 위한 이동 단말기
KR102008495B1 (ko) 2012-02-24 2019-08-08 삼성전자주식회사 데이터 공유 방법 및 이를 위한 이동 단말기
KR101894395B1 (ko) 2012-02-24 2018-09-04 삼성전자주식회사 캡쳐 데이터 제공 방법 및 이를 위한 이동 단말기
CN102629221B (zh) * 2012-02-28 2014-11-19 华为技术有限公司 用于分布式共享存储的任务同步方法、装置及系统
US20130238552A1 (en) * 2012-03-12 2013-09-12 Joseph Saib Systems and methods for synchronizing files in a networked communication system
US9519631B2 (en) 2012-03-30 2016-12-13 Microsoft Technology Licensing, Llc Semantic diff and automerge
US9286597B2 (en) 2012-03-30 2016-03-15 Microsoft Technology Licensing, Llc Tracking co-authoring conflicts using document comments
US10089323B2 (en) 2012-04-05 2018-10-02 Microsoft Technology Licensing, Llc Telemetry system for a cloud synchronization system
US8700569B1 (en) 2012-05-09 2014-04-15 Bertec Corporation System and method for the merging of databases
US8543540B1 (en) * 2012-05-09 2013-09-24 Bertec Corporation System and method for the merging of databases
US9043278B1 (en) 2012-05-09 2015-05-26 Bertec Corporation System and method for the merging of databases
FI20125700A (fi) * 2012-06-21 2013-12-22 Tekla Corp Yhteisdata suhdetiedolla
CN102946403B (zh) * 2012-07-20 2015-09-09 珠海金山办公软件有限公司 一种用于云存储系统的解决文件冲突的方法及装置
US9058311B1 (en) 2012-08-08 2015-06-16 Sprint Communications Company L.P. User timeframe selection for delivery of media resources
US9542177B1 (en) * 2012-10-30 2017-01-10 Amazon Technologies, Inc. Peer configuration analysis and enforcement
US20140136985A1 (en) * 2012-11-12 2014-05-15 Moondrop Entertainment, Llc Method and system for sharing content
TWI464580B (zh) * 2012-12-24 2014-12-11 Ind Tech Res Inst 資料儲存方法、採用此方法的資料儲存系統及需求節點
US9460073B2 (en) * 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US10635638B2 (en) 2013-03-13 2020-04-28 Ivanti Us Llc Systems, methods and media for deferred synchronization of files in cloud storage client device
US9544351B1 (en) * 2013-03-15 2017-01-10 Steven Sanghoon Lee Media sharing and consumption
US10642928B2 (en) * 2013-06-03 2020-05-05 International Business Machines Corporation Annotation collision detection in a question and answer system
CN103345482A (zh) * 2013-06-20 2013-10-09 上海爱数软件有限公司 一种网络存储系统及其文件访问冲突处理方法
CN104657358B (zh) * 2013-11-15 2018-11-23 腾讯科技(深圳)有限公司 实现网页程序离线缓存的方法和系统
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
US20160048548A1 (en) * 2014-08-13 2016-02-18 Microsoft Corporation Population of graph nodes
US9503402B2 (en) 2014-08-18 2016-11-22 Dropbox, Inc. Managing drafts of electronic documents across client devices
US20170031661A1 (en) 2015-04-15 2017-02-02 Alpha Software Corporation Systems and methods for transactional applications in an unreliable wireless network
US10218709B2 (en) * 2016-03-11 2019-02-26 Microsoft Technology Licensing, Llc Share permissions and organization of content in an application with multiple levels of organizational hierarchy
US10298656B2 (en) * 2016-06-08 2019-05-21 Western Digital Technologies, Inc. Extending representational state transfer application program interface (REST API) functionality
US10095674B2 (en) * 2016-07-08 2018-10-09 Google Llc Maintaining state of document concurrently edited by two computing systems by determining locations of edits based on inverse transformations
US10498741B2 (en) 2016-09-19 2019-12-03 Box, Inc. Sharing dynamically changing units of cloud-based content
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
CN106708521B (zh) * 2016-12-21 2020-07-17 金蝶软件(中国)有限公司 一种页面元数据的保存方法及装置
TWI735511B (zh) * 2017-01-19 2021-08-11 香港商斑馬智行網絡(香港)有限公司 代碼提交方法和設備
US11301431B2 (en) * 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US11016937B2 (en) * 2017-07-17 2021-05-25 Microsoft Technology Licensing, Llc Updateable distributed file framework
CN109408081A (zh) * 2017-08-17 2019-03-01 佳能企业股份有限公司 数据传输方法及通讯系统
CN109462661B (zh) * 2018-12-19 2021-08-10 深圳市卡牛科技有限公司 数据同步方法、装置、计算机设备和存储介质
CN111950981B (zh) * 2020-08-07 2023-07-18 中国联合网络通信集团有限公司 文档修订管理方法
US11880650B1 (en) * 2020-10-26 2024-01-23 Ironclad, Inc. Smart detection of and templates for contract edits in a workflow

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
JPH103417A (ja) * 1996-06-18 1998-01-06 Nec Corp ファイル変更履歴管理システム
JP2004326176A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Works Ltd 情報サーバ、情報サーバ用プログラムおよび情報システム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5806078A (en) * 1994-06-09 1998-09-08 Softool Corporation Version management system
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5890177A (en) * 1996-04-24 1999-03-30 International Business Machines Corporation Method and apparatus for consolidating edits made by multiple editors working on multiple document copies
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6226652B1 (en) 1997-09-05 2001-05-01 International Business Machines Corp. Method and system for automatically detecting collision and selecting updated versions of a set of files
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6058416A (en) * 1998-05-22 2000-05-02 International Business Machines Corportion Flexible state sharing and consistency mechanism for interactive applications
US6317754B1 (en) 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6212534B1 (en) * 1999-05-13 2001-04-03 X-Collaboration Software Corp. System and method for facilitating collaboration in connection with generating documents among a plurality of operators using networked computer systems
US6662212B1 (en) 1999-08-31 2003-12-09 Qualcomm Incorporated Synchronization of a virtual workspace using E-mail extensions
AU1450901A (en) 1999-11-01 2001-05-14 Mangosoft Corporation Internet-based shared file service with native pc client access and semantics
US20030112273A1 (en) * 2001-12-17 2003-06-19 Workshare Technology, Ltd. Document collaboration suite using a common database
AU2003228416A1 (en) 2002-04-02 2003-10-20 Collabo-Technology, Inc. Method and apparatus for synchronous project collaboration
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7366460B2 (en) 2003-01-23 2008-04-29 Dexterra, Inc. System and method for mobile data update
AU2003903994A0 (en) * 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US7296023B2 (en) 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
JPH103417A (ja) * 1996-06-18 1998-01-06 Nec Corp ファイル変更履歴管理システム
JP2004326176A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Works Ltd 情報サーバ、情報サーバ用プログラムおよび情報システム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171039A (ja) * 2007-01-05 2008-07-24 Ants:Kk Webブラウザ上に表示されたオブジェクトをWebブラウザから取り出したように見せる方法及びプログラム
US9547635B2 (en) 2007-11-09 2017-01-17 Microsoft Technology Licensing, Llc Collaborative authoring
US10394941B2 (en) 2007-11-09 2019-08-27 Microsoft Technology Licensing, Llc Collaborative authoring
US8990150B2 (en) 2007-11-09 2015-03-24 Microsoft Technology Licensing, Llc Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US20140373108A1 (en) 2007-12-14 2014-12-18 Microsoft Corporation Collaborative authoring modes
US10057226B2 (en) 2007-12-14 2018-08-21 Microsoft Technology Licensing, Llc Collaborative authoring modes
JP2011519105A (ja) * 2008-04-28 2011-06-30 マイクロソフト コーポレーション 競合の解決
US9760862B2 (en) 2008-04-28 2017-09-12 Microsoft Technology Licensing, Llc Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US9665413B2 (en) 2009-05-01 2017-05-30 Microsoft Technology Licensing, Llc Shared job scheduling in electronic notebook
JP2012525656A (ja) * 2009-05-01 2012-10-22 マイクロソフト コーポレーション 電子ノートブックにおける共有ジョブスケジューリング
US9348836B2 (en) 2012-06-27 2016-05-24 Dropbox, Inc. Determining a preferred modified version from among multiple modified versions for synchronized files
JP2015527646A (ja) * 2012-06-27 2015-09-17 ドロップボックス, インコーポレイテッド 同期ファイル用の複数の修正バージョンから好適な修正バージョンの判定
JP2019133587A (ja) * 2018-02-02 2019-08-08 eXTEM Software Japan株式会社 複数のユーザにアクセスされるデータを処理する情報管理システム、情報管理方法、およびプログラム
JP6903247B1 (ja) * 2020-11-18 2021-07-14 三菱電機株式会社 監視画面作成支援装置、監視画面作成支援方法、および監視画面作成支援プログラム
WO2022107248A1 (ja) * 2020-11-18 2022-05-27 三菱電機株式会社 監視画面作成支援装置、監視画面作成支援方法、および監視画面作成支援プログラム

Also Published As

Publication number Publication date
ZA200510084B (en) 2007-10-31
TW200630891A (en) 2006-09-01
EP1681652A2 (en) 2006-07-19
KR20060083118A (ko) 2006-07-20
CA2528070C (en) 2015-12-29
AU2005234676A1 (en) 2006-08-03
RU2005139140A (ru) 2007-06-20
RU2404450C2 (ru) 2010-11-20
CN1804836A (zh) 2006-07-19
MY144510A (en) 2011-09-30
JP4874640B2 (ja) 2012-02-15
NO20055422L (no) 2006-07-17
EP1681652B1 (en) 2020-11-18
US20060161516A1 (en) 2006-07-20
NZ544151A (en) 2009-01-31
AU2005234676B2 (en) 2010-10-28
IL172571A0 (en) 2006-04-10
NO336905B1 (no) 2015-11-23
CN100561473C (zh) 2009-11-18
MXPA05013617A (es) 2006-07-13
KR101153052B1 (ko) 2012-07-03
IL172571A (en) 2010-12-30
NO20055422D0 (no) 2005-11-16
CA2528070A1 (en) 2006-07-14
BRPI0505187A (pt) 2006-09-12
US7593943B2 (en) 2009-09-22
SG124349A1 (en) 2006-08-30
TWI368171B (en) 2012-07-11
EP1681652A3 (en) 2007-07-04

Similar Documents

Publication Publication Date Title
JP4874640B2 (ja) 共有オブジェクトに対する複数ユーザ変更を同期させるための方法およびシステム
JP4927395B2 (ja) 同期通信モードと非同期通信モードの間で遷移するための方法およびシステム
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
US9166939B2 (en) Systems and methods for uploading media content in an instant messaging conversation
KR101238574B1 (ko) 수정가능 문서를 다수의 클라이언트들과 동기화시키는방법, 시스템 및 컴퓨터 판독가능 매체
KR20200093606A (ko) 콘텐츠 아이템을 동기화하기 위한 커밋 프로토콜
US20140222924A1 (en) System and method for editing a conversation in a hosted conversation system
US10642787B1 (en) Pre-file-transfer update based on prioritized metadata
JP2005129018A (ja) オペレーション・システム・フォルダー式ファイル・システムにおけるコラボレーション・システムの属性を提供するための方法及び装置
JP2005521946A (ja) 異なるデータ記憶部にデータを記憶する手法に関して同期を取るための方法および装置
EP1422901A1 (en) Client driven synchronization of file and folder content in web publishing
KR101661789B1 (ko) 양방향 동기 중에 자기 참조 필드의 동기
JP4247975B2 (ja) データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111124

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4874640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees