(57)【特許請求の範囲】
【請求項１】
第１のコンピュータデバイスの第１のユーザと、少なくとも１人の他のユーザと、の間で文書の共同編集を容易にする方法であって、
前記第１のコンピュータデバイスにおいて文書のユーザコピーにアクセスするステップであって、文書のコンテンツにアクセスするステップと、文書に関連するメタデータにアクセスするステップと、を含み、前記文書のコンテンツが、ユニットのデータに編成されるステップと、
メタデータ更新を記憶装置から周期的に受け取るステップと、
前記受け取られたメタデータ更新を自動的にインスタンス化するステップと、
コンテンツ更新を前記記憶装置から周期的に受け取るステップであって、前記コンテンツ更新が、他のユーザにより前記文書のコンテンツに対してなされた任意の修正を含む、ステップと、
前記コンテンツ更新を受け取るステップの後に、前記第１のユーザに対して前記コンテンツ更新を表示するための命令が、前記第１のユーザから受信されたかどうかを判定するステップと、
前記第１のユーザに対して前記コンテンツ更新を表示するための命令が、前記第１のユーザから受信されたと判定されたときには、前記命令に含まれる前記第１のユーザ選択に基づいて、前記第１のユーザに対して前記コンテンツ更新を表示するステップであって、前記第１のユーザ選択は、前記他のユーザにより前記文書の前記コンテンツになされたいずれかの修正を含む前記コンテンツ更新が前記文書の前記ユーザコピーに注釈が付けられるかどうか、或いは、前記文書の前記ユーザコピーにマージされるかどうかを判定するものである、ステップと
を含み、
前記第１のコンピュータデバイスにおいて文書のユーザコピーにアクセスするステップが、
前記記憶装置から文書のマスタの状態を示す文書のダウンロードコピーを取得するステップと、
前記ダウンロードコピーに基づき、文書の基本コピーと、ユーザコピーとを生成するステップと、
前記記憶装置から文書に関連するメタデータをダウンロードするステップと、
前記第１のコンピュータデバイス上にメタデータを記憶するステップと
を含むことを特徴とする方法。
【請求項２】
前記コンテンツ更新をユーザコンピュータデバイスから周期的に受け取るステップが、
文書のダウンロードコピーを前記記憶装置から回収するステップを含み、ダウンロードコピーが文書のマスタの状態を示すことを特徴とする請求項１に記載の方法。
【請求項３】
前記受け取られたコンテンツ更新を、前記第１のユーザにより命令されるときのみインスタンス化するステップであって、文書の回収されたダウンロードコピーを文書のユーザコピーにマージするステップを含む、ステップをさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記第１のコンピュータデバイス上に記憶されるメタデータを更新して、前記第１のユーザにより編集されている前記ユニットのデータをロックするステップであって、前記ユニットのデータをロックすることにより前記ユニットのデータを前記第１のユーザに関連付ける、ステップと、
前記第１のコンピュータデバイスに記憶される、更新されたメタデータに基づき、前記記憶装置にメタデータ更新を自動的に伝送するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のユーザにより編集された前記ユニットのデータに対してなされた修正を示すコンテンツ更新が、前記コンテンツ更新を伝送せよという命令が前記第１のユーザから受け取られるときのみ、前記記憶装置に伝送されるステップ
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記コンテンツ更新を前記記憶装置に伝送せよという命令を、前記第１のユーザから受け取るステップが、前記第１のコンピュータデバイス上に文書を記憶せよという命令を、前記第１のユーザから受け取るステップを含むことを特徴とする請求項５に記載の方法。
【請求項７】
メタデータ更新を前記記憶装置から周期的に受け取るステップが、文書にアクセスするユーザと、前記文書に関連するメタデータに記憶されるロックに関連するユーザと、から成る群から選択される、他のユーザの識別を示すプレゼンス情報を受け取るステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
第１のコンピュータデバイス上に実装されて、ユーザ間で文書を共同オーサリングすることを可能にするオーサリング環境を達成するデバイスであって、前記第１のコンピュータデバイスが、少なくとも１つの記憶装置と通信するよう構成され、前記共同オーサリング環境を達成するデバイスが、
ａ．文書の基本コピー、文書のダウンロードコピー、文書のアップロードコピー、および文書の作業用コピーを記憶するよう構成される、キャッシュと、
ｂ．文書の作業用コピーを操作するよう構成され、前記作業用コピーのコンテンツを操作するステップと、前記作業用コピーのメタデータを操作するステップと、を含む、オーサリングアプリケーションと、
ｃ．前記オーサリングアプリケーションと前記キャッシュとの間のインターフェースを提供するレイヤオブジェクトであって、前記レイヤオブジェクトは、前記オーサリングアプリケーションが前記作業用コピーのメタデータを操作するときに、前記キャッシュを、更新されたメタデータと共に自動的に更新するよう構成され、前記レイヤオブジェクトはまた、アップロードコピーを生成せよという命令が、前記オーサリングアプリケーションから受け取られる時に、前記文書の作業用コピーに基づき、前記文書のアップロードコピーを生成するよう構成され、それにおいて、前記アップロードコピーが、前記文書のダウンロードコピーからコンテンツ更新を取得する、レイヤオブジェクトと、
ｄ．前記キャッシュと記憶装置との間の相互作用を管理するよう構成される同期化マネジャであって、前記同期化マネジャが、さらに、任意の更新されたダウンロードコピーを前記記憶装置から周期的に取得するよう、かつ、更新されたダウンロードコピーを前記第１のコンピュータデバイスの前記キャッシュに記憶するよう構成され、更新されたダウンロードコピーが他のユーザにより生成された前記コンテンツ更新を含み、前記オーサリングアプリケーションが、更新されたダウンロードコピーに含有される任意のコンテンツ更新を閲覧せよという命令を、前記オーサリングアプリケーションのユーザから受け取るよう構成され、前記命令は、ユーザ選択を含み、前記オーサリングアプリケーションは、前記命令に含まれるユーザ選択に基づいて、前記コンテンツ更新を表示するように構成され、前記ユーザ選択は、前記他のユーザにより前記文書の前記コンテンツになされた任意の修正を含む、前記コンテンツ更新が前記文書の前記作業用コピーに注釈が付けられるかどうか、或いは前記文書の前記作業用コピーにマージされるかどうかを判定し、前記オーサリングアプリケーションが、更新されたダウンロードコピーが前記第１のコンピュータデバイスにおいて閲覧可能であることを示す警告、を与えることを特徴とする同期化マネジャと
を備え、
前記オーサリングアプリケーションが、ワードプロセシングアプリケーションを含むことを特徴とするオーサリング環境を達成するデバイス。
【請求項９】
コンピュータデバイスにより実行されるときに、文書をオーサリングする方法を実行する、コンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体であって、
前記方法が、
第１のオーサリングアプリケーションにおいて、第１のオーサリングアプリケーションにより編集されている文書の第１のユニットのデータを操作せよという命令を受け取るステップであって、前記第１のオーサリングアプリケーションが、第１のユーザにより利用され、かつ、第１のコンピュータデバイス上で実装される、ステップと、
操作せよという命令に従って、前記第１のオーサリングアプリケーションで前記文書の第１のユニットのデータを操作するステップと、
コンテンツ更新を前記第１のオーサリングアプリケーションで受け取るステップであって、前記コンテンツ更新が、第２のユーザにより前記文書のコンテンツに対してなされた任意の修正を含む、ステップと、
前記コンテンツ更新を受け取るステップの後に、前記第１のユーザに対して前記コンテンツ更新を表示するかどうかを判定するステップと、
前記第１のユーザに対して前記コンテンツ更新を表示するかどうかの判定に応答して、ユーザ選択に基づいて、前記コンテンツ更新を表示するステップであって、前記ユーザ選択は、前記第２のユーザにより前記文書の前記コンテンツになされた任意の修正を含む、前記コンテンツ更新が前記文書に注釈が付けられるかどうか、或いは、前記文書にマージされるかどうかを判定する、ステップと
を含み、
前記オーサリングアプリケーションが、更新されたダウンロードコピーが前記第１のコンピュータデバイスにおいて閲覧可能であることを示す、警告を与えることを特徴とするコンピュータ可読記憶媒体。
【請求項１０】
前記コンテンツ更新を、前記第１のユーザにより命令されるときのみインスタンス化するステップであって、文書の回収されたダウンロードコピーを文書のユーザコピーにマージするステップを含むことを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共同オーサリングに関する。
【背景技術】
【０００２】
従来の共同編集は、逐次的に行われる傾向がある。ユーザは、交代で文書にアクセスし、その文書を編集し、それぞれの編集を格納する。アクセスするユーザは、文書の編集中は、他のユーザがその文書を編集するのを防ぐためにファイルにロックをかけ得る。繰り返しの編集処理が行われると、各ユーザがその文書の編集する順番を待つことになるため遅れを生じさせ得る。加えて、繰り返しの編集処理は、管理するのが難しいかもしれない。例えば、各ユーザが、誰がその文書のどの部分を編集しているのか、文書のどのバージョンが最新であるのか、および、自分の順番はいつなのか、について把握する必要があり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
他のタイプの従来の共同編集において、各ユーザは、文書の異なるコピーを編集することが可能である。その後、全ての編集済みのコピーが単一の文書にマージされ得る。この大規模なマージもまた、遅れを生じさせ、多数の編集の矛盾を招き、および／または管理するのが難しいということになり得る。例えば、文書をマージする責任があるユーザが、文書間の関係を把握することを要求され得る。ユーザにはまた、２つまたはそれ以上の編集済みのコピー間の矛盾を解消する責任があり得る。
【０００４】
本開示は、これらのおよび他の考察に対してなされたものである。
【課題を解決するための手段】
【０００５】
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を特定することを意図しておらず、請求の主題の範囲を決定する際の助けとして使用されることも意図していない。
【０００６】
共同オーサリングアプリケーションは、２人またはそれ以上のユーザが同時に文書を編集できるオーサリング環境を提供する。各ユーザは、文書のコピーを編集し、周期的に更新を文書のマスタコピーに送り、かつ、周期的に文書のマスタコピーから更新を受け取る。オーサリング環境は一般に、ユーザが、矛盾する編集指示を文書のマスタコピーに与えることを防ぐ。他の実施形態において、オーサリング環境は、ユーザが異なる時間に文書を編集する場合に、編集の矛盾を防ぐことが可能である。
【０００７】
本開示の態様によると、オーサリング中の各文書を、１つまたは複数のデータユニットに分割することが可能である。各ユーザは、１つまたは複数のデータユニットについてコンテンツロックを生成することが可能である。データユニットについてコンテンツロックを生成することにより、ロックされたデータユニットを他のユーザが編集することを防ぐ。一実施形態において、コンテンツロックは、ユーザが文書を編集するのにつれて、自動的に増大および／または縮小することが可能である。
【０００８】
本開示の他の態様によると、オーサリング環境は、文書のユーザのコピーとマスタコピーとの間のコンテンツおよびメタデータの両方を同期させる。一般に、オーサリング環境は、メタデータを自動的に同期させ、かつ、ユーザの１人の要求のみでコンテンツを同期させる。一実施形態において、メタデータは、コンテンツロックを含む。
【０００９】
これらのおよび他の特徴ならびに利点は、以下の発明を実施するための形態を読むこと、および関連する図面を検討することにより、明らかになるであろう。前述の一般的説明および以下の発明を実施するための形態の双方が、単なる例示であり、かつ、請求される態様を制限するものではないことが、理解されよう。
【図面の簡単な説明】
【００１０】
【図１】本開示の発明の態様の例である特徴を有する一例のオーサリングシステムを例示する概略ブロック図である。
【図２】第１のコンピュータデバイス上に記憶される文書が、コンテンツおよびメタデータを含むことができる、本開示の原理に従う、図１のオーサリングシステムを例示する概略ブロック図である。
【図３】オーサリングシステムが、ユーザコンピュータデバイス上に記憶される文書のコピーをその文書のマスタコピーに同期させることが可能である、本開示の原理に従う、例示の同期化処理を例示するフローチャートである。
【図４】５個のユニットのデータを有する文書であって第２のユニットがロックされている文書の、本開示の原理に従う、概略ブロック図である。
【図５】コンテンツロックが第３のデータユニットに追加された、本開示の原理に従う、図４の文書の概略ブロック図である。
【図６】第２および第３のデータユニットのコンテンツロックが解除され、かつ、新しいコンテンツロックが第５のデータユニットに追加された、本開示の原理に従う、図４の文書の概略ブロック図である。
【図７】本開示の原理に従う、ロックテーブルの概略ブロック図である。
【図８】オーサリングアプリケーションであって、そのオーサリングアプリケーションのユーザによりなされる更新を他のユーザと共有するオーサリングアプリケーション、により実装される、本開示の原理に従う、例示の同期化処理を例示するフローチャートである。
【図９】オーサリングアプリケーションであって、他のユーザによりなされる更新をそのオーサリングアプリケーションで編集されている文書にインスタンス化するオーサリングアプリケーション、により実装される、本開示の原理に従う、別の例示の同期化処理を例示するフローチャートである。
【図１０】本開示の原理に従う、オーサリングされるべき文書のマスタコピーが記憶される、第１のコンピュータデバイスを含むオーサリング環境の概略ブロック図である。
【図１１】本開示の原理に従う、オーサリング環境を実装するよう構成されるユーザコンピュータシステムの概略ブロック図である。
【図１２】本開示の原理に従う、ユーザコンピュータデバイス上のオーサリングアプリケーションにより実装される同期化サイクルを例示するオーサリングシステムの概略ブロック図である。
【図１３】ユーザコンピュータシステムが、文書の編集中に、更新を送信および受信することが可能である、本開示の原理に従う、別の例示の同期化処理の動作フローを例示するフローチャートである。
【図１４】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図１５】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図１６】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図１７】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図１８】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図１９】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２０】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２１】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２２】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２３】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２４】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２５】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２６】第１のコンピュータデバイス、第１のユーザコンピュータデバイス、および第２のユーザコンピュータデバイス上に、第１および第２のユーザコンピュータデバイスの第１のユーザおよび第２のユーザが同時に文書を編集する共同オーサリングセッション中の、異なる時点において記憶されるキャッシュの、本開示の原理に従う、概略ブロック図である。
【図２７】本開示の原理に従う、第１のユーザおよび第２のユーザが共同して文書を編集するのに追随する、第１のオーサリングアプリケーションの例示のユーザインターフェースに対する変化を例示する図である。
【図２８】本開示の原理に従う、第１のユーザおよび第２のユーザが共同して文書を編集するのに追随する、第１のオーサリングアプリケーションの例示のユーザインターフェースに対する変化を例示する図である。
【図２９】本開示の原理に従う、第１のユーザおよび第２のユーザが共同して文書を編集するのに追随する、第１のオーサリングアプリケーションの例示のユーザインターフェースに対する変化を例示する図である。
【図３０】本開示の原理に従う、第１のユーザおよび第２のユーザが共同して文書を編集するのに追随する、第１のオーサリングアプリケーションの例示のユーザインターフェースに対する変化を例示する図である。
【図３１】本開示の原理に従う、第１のユーザおよび第２のユーザが共同して文書を編集するのに追随する、第１のオーサリングアプリケーションの例示のユーザインターフェースに対する変化を例示する図である。
【発明を実施するための形態】
【００１１】
以下の発明を実施するための形態において、その一部を形成する添付の図面が参照され、それにおいて具体的な実施形態または例が例示として示される。本開示が、コンピュータシステムのオペレーティングシステム上で稼働するアプリケーションプログラムと連動して実行するプログラムモジュールの一般的コンテキストにおいて記載される一方、当業者は、本開示がまた、他のプログラムモジュールと組み合わせて実装され得ることを認識するであろう。本明細書に記載される実施形態は、組み合わせられ得、また、他の実施形態は、本開示の精神または範囲から逸脱することなく利用され得る。以下の発明を実施するための形態は、従って、限定する意味で捉えられるべきではなく、本発明の範囲は添付の請求項およびその等価物により定義される。
【００１２】
本開示の実施形態は、多数のユーザが、共同して文書をオーサリングすることが可能な環境を提供する。図１は、本開示の発明の態様の例である特徴を有する一例のオーサリングシステム１００を例示する。オーサリングシステム１００は、文書１５０のマスタコピーを記憶する記憶装置１２０を含む。一実施形態において、記憶装置１２０は、コンピュータデバイスを含むことが可能である。別の実施形態において、記憶装置１２０は、１つまたは複数の記憶装置（例えば、コンピュータデバイスのネットワーク）を含むことが可能である。
【００１３】
オーサリングシステム１００はまた、記憶装置１２０に通信可能に連結される少なくとも１つのユーザコンピュータデバイス１１０を含む。各ユーザコンピュータデバイス１１０は、文書１５０のユーザコピー１５５を作成し、かつ、ユーザコピー１５５を編集することにより、文書１５０を編集することが可能である。ユーザコンピュータデバイス１１０が、記憶装置１２０に他のユーザコンピュータデバイスと共有されるべき更新を周期的に送信し、記憶装置１２０から、他のユーザコンピュータデバイスからの更新を周期的に取得するときに、文書１５０のユーザコピー１５５が同期化される。
【００１４】
本明細書において使用されるとき、用語ユーザコンピュータデバイス１１０は、オーサリングする文書のユーザコピーをその文書のマスタコピーから取得する、任意のコンピュータデバイスを含む。ユーザコンピュータデバイス１１０は、記憶装置１２０とは異なるものとすることが可能であり、または、記憶装置１２０上に実装される異なるユーザアカウントを含むことが可能である。一実施形態において、ある文書の記憶装置１２０としての役割を果たすコンピュータデバイスが、異なる文書のユーザコンピュータデバイス１１０として役割を果たし得、その逆も同様である。
【００１５】
図示の例において、４つのユーザコンピュータデバイス１１０Ａ、１１０Ｂ、１１０Ｃ、および１１０Ｄが、通信可能に記憶装置１２０に連結される。しかし、他の実施形態において、任意の数のコンピュータデバイス１１０が、記憶装置１２０に連結され得る。図示の例において、各ユーザコンピュータデバイス１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄは、ユーザコンピュータデバイスのユーザにより生成される更新を記憶装置１２０に送信することが可能であり、他のユーザコンピュータデバイスのユーザにより生成された更新を記憶装置１２０に要求することが可能である。一実施形態において、記憶装置１２０を、サーバコンピュータデバイスとすることが可能であり、ユーザコンピュータデバイス１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄを、クライアントコンピュータデバイスとすることが可能である。
【００１６】
図２に示すように、記憶装置１２０上に記憶される文書１５０には、コンテンツ１５２およびメタデータ１５４が含まれる。ユーザコンピュータデバイス１１０上のオーサリングアプリケーション１３０は、文書１５０のユーザコピー１５５のコンテンツおよびメタデータを処理および操作する。いくつかの実施形態において、メタデータ１５４は、コンテンツ１５２とは別個に記憶することが可能である。例えば、コンテンツ１５２は、文書１５０内に記憶することが可能であり、メタデータ１５４は、文書１５０とは別個にテーブル内に（図７参照）記憶することが可能である。しかし、他の実施形態において、メタデータ１５４は、文書１５０内に記憶することが可能である。
【００１７】
一般に、ユーザコンピュータデバイス１１０は、コンテンツ１５２に対する更新を、メタデータ１５４に対する更新とは別個に同期させることが可能である。一般に、メタデータ更新１５４は、記憶装置１２０とユーザコンピュータデバイス１１０との間で自動的に同期され、一方、各ユーザコンピュータデバイス１１０からのコンテンツ更新１５２は、それぞれのユーザの要求時に同期される。
【００１８】
図３は、オーサリングシステム１００が、ユーザコンピュータデバイス１１０上に記憶される文書のコピー１５５を記憶装置１２０上に記憶されるその文書のマスタコピー１５０に同期させることが可能である、例示の同期化処理３００を例示するフローチャートである。同期化処理３００は、スタートモジュール３０２にて初期化および開始し、第１の更新操作３０４に進む。
【００１９】
第１の更新操作３０４は、ユーザとの任意の相互作用を要求することなく、コピー１５５のメタデータを文書１５０のメタデータに同期させる。例えば、第１の更新操作３０４は、周期的な時間間隔で記憶装置１２０とユーザコンピュータデバイス１１０との間でメタデータの交換を提供することが可能である。一実施形態において、第１の更新操作３０４は、メタデータの交換を数秒ごとに提供する。しかし、他の実施形態において、第１の更新操作３０４は、メタデータの交換をより短いまたは長い時間間隔で起こるように提供することが可能である。
【００２０】
要求モジュール３０６は、コンテンツを同期させよという要求が受け取られたかどうかを判定する。例えば、要求モジュール３０６は、ユーザコンピュータデバイス１１０のうちの１つのユーザが、コンテンツ変更を他のユーザと共有することを要求したかどうかを判定することが可能である。別の実施形態において、要求モジュール３０６は、ユーザコンピュータデバイス１１０のうちの１つのユーザが、他のユーザによりなされたコンテンツ変更を閲覧することを要求したかどうかを判定することが可能である。
【００２１】
要求モジュール３０６が、コンテンツを同期させよという要求がなされていないと判定した場合は、同期化処理３００は、第１の更新操作３０４に戻り、再度開始する。しかし、要求モジュール３０６が、コンテンツを同期させよという要求が受け取られたと判定した場合、同期化処理３００は、第２の更新操作３０８に進み、そこでは、記憶装置１２０とユーザコンピュータデバイス１１０との間のコンテンツの交換が提供される。同期化処理３００は、ストップモジュール３１０にて完了および終了する。
【００２２】
本明細書において使用されるとき、用語コンテンツ更新１５２は、文書の実質的なコンテンツに対してなされる任意の追加、削除、および／または修正に言及する。例えば、ワープロ文書のコンテンツ更新には、追加の段落（すなわち、またはその章）、削除された段落（すなわち、またはその章）、および／または修正された段落（すなわち、またはその章）が含まれ得る。別の実施形態において、プレゼンテーション文書のコンテンツ更新には、追加、削除および／または修正された画像、テキスト、アニメーション、音声および他のそのようなデータオブジェクトが含まれ得る。
【００２３】
本明細書において使用されるとき、用語メタデータ更新１５４は、文書のメタデータに対してなされる任意の追加、削除、および／または修正に言及する。文書メタデータの非限定例には、コンテンツロック、プレゼンス情報、および他のそのようなデータが含まれ得る。本明細書において検討されるように、コンテンツロックは、ロックを所有しないユーザが、ロック内のコンテンツを編集することを禁じる。プレゼンス情報は、本明細書においてより詳細に検討するように、どのユーザが文書を編集する意思を示したかを示す。
【００２４】
図４から９を参照すると、コンテンツロックは、文書のどの部分が他のユーザにより請求されたかを示すことにより、編集の矛盾を阻止する。いくつかの実施形態において、コンテンツロックは、ユーザが他のユーザにより請求された文書の部分を編集することを防ぐ（すなわち、妨げる）ことが可能である。しかし、他の実施形態において、ユーザは、コンテンツロックを破りその文書の部分を編集する、という選択をすることが可能である。そのような場合、ロックは、ロックされた部分を編集する際に矛盾が生じるかもしれないことを、ユーザに警告することが可能である。
【００２５】
例えば、図４は、５個のユニットのデータ４１０、４２０、４３０、４４０、４５０を有する文書４００の概略ブロック図である。一実施形態において、文書４００は、ワープロ文書であり、データのユニット４１０から４５０は、テキストの段落である。別の実施形態において、文書４００は、プレゼンテーション文書であり、第１のユニットのデータ４１０は、表題または件名標目であり、第２のユニットのデータ４２０は、画像または他のデータオブジェクトであり、残りのユニットのデータ４３０、４４０、４５０は、テキストのブロックである。
【００２６】
第１のユーザは、文書４００の１つまたは複数のユニットのデータ４１０から４５０についてのロックを生成することが可能である。図４の図示の例において、第２のユニットのデータ４２０が、網掛けして示されるように、第１のユーザによりロックされている。コンテンツロックを生成することにより、第１のユーザは、第１のユーザがユニットのデータ４２０を編集する意思があることを示した。例えば、ユーザは、ユーザが、ユニットのデータ４２０を積極的に編集しているときに、ロックを生成することが可能である。別の実施形態において、ユーザは、ロックを生成してから、後の時間にユニットのデータ４２０を編集することが可能である。上記で触れたように、文書４００を管理するオーサリングアプリケーションは、第１のユーザ以外のユーザがロックされたデータユニット４２０を編集することを防ぐことができる。
【００２７】
一般に、第１のユーザにより生成されたコンテンツロックは、ロックされた期間中に文書にアクセスする全ての他のユーザに対して表示される。一実施形態において、第１のユーザはまた、コンテンツロックを閲覧することが可能である。ロックは、異なるタイプのインディシアを使用して表示することが可能である。例えば、一実施形態において、ロックされたユニットのデータの背景に、色をつける、影をつける、または模様をつける（例えば、図４のデータユニット４２０参照）ことができる。別の実施形態において、ロックされたユニットのコンテンツ（例えば、テキスト、画像、外形、または他のデータオブジェクト）に、色をつける、影をつける、または模様をつけることができる。さらに別の実施形態において、ロックされたユニットのデータに近接してボックス、ブラケット、またはシンボルを表示して、ロックを示すことが可能である。
【００２８】
コンテンツロックは、文書内の１つまたは複数のユニットのデータ周辺に生成され得る。いくつかの実施形態において、コンテンツロックは、ユーザからの明示の命令がなくとも黙示的に生成することが可能である。例えば、オーサリングアプリケーションは、ユーザが、カーソルをデータユニットの中に位置付ける、データユニットを、ハイライトするまたは選択するときに、データユニットについてのコンテンツロックを生成し得る。別の実施形態において、オーサリングアプリケーションは、ユーザがデータユニットの編集を開始するときに、データユニットについてのコンテンツロックを生成し得る。別の実施形態において、オーサリングアプリケーションは、ユーザがデータユニットに対してなされた編集を保存するときに、データユニットについてのコンテンツロックを生成し得る。いくつかの実施形態において、オーサリングアプリケーションは、データユニットのうちの１つのみがユーザにより請求されても、文書内の多数の相互依存するデータユニットの周辺に、コンテンツロックを生成し得る。他の実施形態において、ユーザは、１つまたは複数のデータユニットについてのコンテンツロックを明示的に定義し得る。
【００２９】
いくつかの実施形態において、コンテンツロックは、拡大して文書内の追加のユニットのデータを含むこと、および／または、縮小して文書内の１つまたは複数のユニットのデータを解除することが可能である。一実施形態において、コンテンツロックは、増大して隣接するユニットのデータのみを含むことが可能である。例えば、図５に示すように、ユーザが第３のデータユニット４３０を選択または編集する場合、第２のデータユニット４２０の周辺のコンテンツロック（例えば、網掛け部分を参照）は、拡大して第３のデータユニット４３０を含むことが可能である。コンテンツロックまたはその部分は一般に、コンテンツロックを生成したユーザの裁量で排除することが可能である。いくつかの実施形態において、コンテンツロックを生成したユーザは、別のデータユニットを選択または編集することによりコンテンツロックを解除する。
【００３０】
一実施形態において、ユーザは、オーサリングアプリケーションがロックを解除する前に、ユーザがデータユニットの編集を終了したことを示さなければならない。例えば、オーサリングアプリケーションは、ユーザが文書を保存する命令を与えたあとのみ、ロックを解除し得る。別の実施形態において、オーサリングアプリケーションは、ユーザが図６の第５のデータユニット４５０等の離れたデータユニットの編集を選択または開始した後に、ロックを解除し得る。別の実施形態において、オーサリングアプリケーションは、非隣接のデータユニットへの移動および終了動作（例えば、文書を保存する命令）の両方の後に、ロックの解除のみする。他の実施形態において、コンテンツロックを、管理者または別のユーザが明示的に解除することが可能である。
【００３１】
図７を参照すると、ロックメタデータが、様々な異なるフォーマットで記憶され得る。例えば、図７のロックメタデータは、テーブルのフォーマット５００で記憶される。図７のロックテーブル５００は、ユーザのリストを含み、その各ユーザは、ユーザに一意的に割り当てられるユーザ識別子（例えば、識別番号）で識別される。ロックされるデータユニットは、文書内の各データユニットに一意的に割り当てられるユニット識別子（例えば、識別番号）で識別される。ロックテーブル５００は、ロックされる１つまたは複数のデータユニットのユニット識別子を、ロックを所有するユーザのユーザ識別子と関連付ける。
【００３２】
例えば、ロックテーブル５００において、データユニット５１２および５１４は、第１のユーザ５１０と関連付けられる。従って他のユーザは、データユニット５１２および５１４を編集することが禁じられる。データユニット５２２は、ユーザ５２０と関連付けられる。従って、第１のユーザ５１０を含む他のユーザが、データユニット５２２を編集することが禁じられる。第４のユーザ５４０は、文書の任意の部分をロックしておらず、従って、任意のユニット識別子に関連付けされない。しかし、他の実施形態において、ロックメタデータを、異なるフォーマットで、または文書に、記憶することが可能である。例えば、ロックテーブル５００を、ユーザ識別子の代わりにユニット識別子により配置することが可能である。
【００３３】
プレゼンスメタデータはまた、様々なフォーマットで記憶することが可能である。例えば、プレゼンスメタデータは、図７のロックテーブル５００内に記憶することが可能である。しかし、別の実施形態において、プレゼンスメタデータは、別個のテーブル内に、または異なるフォーマットで記憶することが可能である。プレゼンスメタデータは、現在文書にアクセスしている、または、文書のデータユニットに請求を主張した（例えば、コンテンツロックを生成した）、各ユーザのユーザ識別子を含む。例えば、ロックテーブル５００等のメタデータテーブルは、文書の少なくとも１つのデータユニットに対して請求を有する各ユーザのユーザ識別子を記憶することが可能である。ロックメタデータのように、プレゼンスメタデータは、自動的に同期化され得る。
【００３４】
図８および９は、コンテンツおよびロックが多数のコンピュータデバイス間で同期化が可能な、例示の同期化処理６００、７００を例示するフローチャートである。第１の同期化処理６００は、オーサリングアプリケーションにより実装されて、第１のユーザによりオーサリングアプリケーションでなされる更新を他のユーザと共有する。第２の同期化処理７００は、オーサリングアプリケーションにより実装されて、他のユーザによりなされる更新を、オーサリングアプリケーションで編集されている文書にインスタンス化する。
【００３５】
図８の第１の同期化処理６００は、スタートモジュール６０２にて初期化および開始し、受信操作６０４に進む。受信操作６０４は、第１のユーザから命令を受け取って、文書内の１つまたは複数のデータユニットに対して編集操作を実行する。編集操作の非制限例には、データユニット（例えば、テキスト、図面、画像、外形、見出し等）またはその部分の追加、編集、および／または削除、データユニットのフォーマット設定の追加および／または削除、データユニットの順番の再編成、および、他のそのような操作が含まれる。
【００３６】
第１の判定モジュール６０６は、編集操作が実行されるべきデータユニットがロックされているかどうかをチェックする。例えば、第１の判定モジュール６０６が、図７のロックテーブル５００等のロックテーブルにアクセスして、データユニットに割り当てられたユニット識別子が任意のユーザと関連するかどうかを判定することが可能である。別の実施形態において、第１の判定モジュール６０６は、別の方法でデータユニットがロックされているかどうかを判定することが可能である。
【００３７】
第１の判定モジュール６０６が、データユニットがロックされていないと判定した場合、生成操作６０８が、データユニット上にコンテンツロックを作成する。例えば、一実施形態において、生成操作６０８は、データユニットのユニット識別子を第１のユーザのユーザ識別子に関連付ける図７のロックテーブル５００に、エントリを追加することが可能である。伝送操作６１０は、新しく生成されたロックの存在を示すロックメタデータを、文書のマスタコピーを記憶するデバイスに送る。例えば、伝送操作６１０は、ロックメタデータを、図１のコンピュータデバイス１１０Ａ等のユーザコンピュータデバイスから、記憶装置１２０等の記憶装置に送ることが可能である。一実施形態において、ロックメタデータには、ロックメタデータに対する増分の編集（例えば、微小な差分）を記載する命令を含まれる。実行操作６１４は、データユニットに対して編集操作を実行する。
【００３８】
あるいは、第１の判定モジュール６０６が、データユニットがロックされていると判定した場合、第２の判定モジュール６１２が、ロックの所有権情報を取得する。一実施形態において、第２の判定モジュール６１２が、ロックが別のユーザにより所有されると判定した場合、同期化処理６００は、編集操作を実行せずにストップモジュール６２０にて完了および終了する。別の実施形態（図示せず）において、同期化処理６００は、第１のユーザがロックを破り生成操作６０８に進むことを選択することを、可能にし得る。しかし、第２の判定モジュール６１２が、ロックが第１のユーザにより所有されると判定した場合、同期化処理６００は、上記で検討した実行操作６１４に進む。別の実施形態（図示せず）において、同期化処理６００は、任意のデータユニット上のロックが解除されるべきかどうかを判定することが可能である。
【００３９】
第３の判定操作６１６が、第１のユーザが、編集操作を実行することにより得られるデータユニットに、コンテンツ変更を共有せよという命令を（明示的または黙示的に）与えたかどうかを判定する。例えば、第３の判定操作６１６は、第１のユーザが、文書を記憶せよという命令を与えたかどうかを判定し得る。別の実施形態において、第３の判定操作６１６は、第１のユーザが、「変更共有」ボタンまたは他のそのようなインディシアを選択したかどうかを判定し得る。別の実施形態において、第３の判定操作６１６は、自動保存の機能がアプリケーションにより実行されたかどうかを判定し得る。第３の判定操作６１６が、共有の命令が与えられていないと判定した場合、同期化処理６００は、受信操作６０４に戻り、再度開始する。
【００４０】
しかし、判定操作６１６が、共有の命令が与えられたと判定した場合、同期化処理６００は、伝送操作６１８に進み、そこでは、コンテンツ更新が文書のマスタコピーを記憶するデバイスに送られる。コンテンツ更新は、編集操作により文書のコンテンツに対してなされた変更を示す。例えば、伝送操作６１８は、コンテンツ更新を、図１のユーザコンピュータデバイス１１０Ａから記憶装置１２０へ送ることが可能である。一実施形態において、コンテンツ更新には、文書の新しく生成されたバージョンが含まれる。別の実施形態において、コンテンツ更新は、文書の現在のユーザコピーと文書のマスタコピーとの間の、コンテンツに対する増分の編集（例えば、微小な差分）を示す。同期化処理６００は、上記で検討したように、ストップモジュール６２０にて完了および終了する。
【００４１】
図９の第２の同期化処理７００は、スタートモジュール７０２にて初期化および開始し、受信操作７０４に進む。受信操作７０４は、他のユーザにより文書に対してなされた変更に基づく更新を受け取る。更新には、文書のコンテンツおよび／またはメタデータに対する変更が含まれ得る。一実施形態において、受信操作７０４は、文書のマスタコピーを記憶するデバイスをポーリングし、更新を要求することが可能である。別の実施形態において、マスタコピーを記憶するデバイスは、オーサリングアプリケーションに対して変更をプッシュ配信することが可能である。
【００４２】
第１の判定モジュール７０６は、更新に、文書のメタデータに対する任意の変更が含まれるかどうかを判定する。例えば、第１の判定モジュール７０６は、任意の他のユーザが、新しいロックを確立したかどうか、またはデータユニット上のロックを解除したかどうかを判定することが可能である。別の実施形態において、第１の判定モジュール７０６は、別のユーザが文書にアクセスしたかどうかを判定することが可能である。
【００４３】
第１の判定モジュール７０６が、メタデータの更新が受け取られたと判定した場合、実行操作７０８は、受け取られたメタデータの更新を、自動的にインスタンス化する。例えば、実行操作７０８は、オーサリングアプリケーションに、メタデータの更新に基づき図７のロックテーブル５００等のロックテーブルを更新させることが可能である。しかし、第１の判定モジュール７０６が、メタデータの更新が受け取られなかったと判定した場合、第２の同期化処理７００は、第２の判定モジュール７１０に進む。
【００４４】
第２の判定モジュール７１０は、更新に、文書のコンテンツに対する任意の変更が含まれるかどうかを判定する。例えば、第２の判定モジュール７１０は、任意のデータユニットが、追加、削除、修正または移動されたかどうかを判定することが可能である。第２の判定モジュール７１０が、コンテンツ更新が受け取られなかったと判定した場合、第２の同期化処理７００は、受信操作７０４に戻り、再度開始する。しかし、第２の判定モジュール７１０が、コンテンツ更新が受け取られたと判定した場合、第２の同期化処理７００は、標示操作７１２に進む。
【００４５】
標示操作７１２は、コンテンツ更新が閲覧可能であることを、第１のユーザに警告する。例えば、標示操作７１２は、グラフィック、テキストボックス、数値インディシア、またはコンテンツ更新の可用性を示す他のメッセージを表示することが可能である。一実施形態において、標示操作７１２は、いくつの更新が利用可能であるかを示す情報をユーザに与える。更新についての他の情報（例えば、更新したユーザ、タイムスタンプ等）もまた、示され得る。
【００４６】
第３の判定モジュール７１４は、オーサリングアプリケーションが、コンテンツ更新を閲覧、および／またはインスタンス化するという命令を第１のユーザから（明示的または黙示的に）受け取ったかどうかを判定する。例えば、第３の判定モジュール７１４は、ユーザがオーサリングアプリケーションの閲覧オプションを（例えば、ボタン、メニュー、または他のインターフェースツールを介して）選択したかどうかを判定することが可能である。別の実施形態において、第３の判定モジュール７１４は、ユーザが自動インスタンス化オプションを選択したかどうかを選択し得る。第３の判定モジュール７１４が、オーサリングアプリケーションが第１のユーザからそのような命令を受け取らなかったと判定した場合、第２の同期化処理７００は、受信操作７０４に戻り、再度開始する。
【００４７】
第３の判定モジュール７１４が、オーサリングアプリケーションが第１のユーザから命令を受け取ったと判定した場合、インスタンス化操作７１６は、コンテンツ更新を第１のユーザに対して表示する。例えば、一実施形態において、インスタンス化操作７１６は、利用可能なコンテンツ更新をマージして、第１のユーザの文書のコピーとすることが可能である。別の実施形態において、インスタンス化操作７１６は、第１のユーザの文書のコピーに注釈を付けて、どのコンテンツが変更されたかを示すことが可能である。追加の注釈は、どのユーザがどの変更を行ったかを示すことが可能である。一実施形態において、インスタンス化操作７１６は、ユーザコピーと更新との間の矛盾解消を実行する。第２の同期化処理７００は、ストップモジュール７１８にて完了し終了する。
【００４８】
図１０から１２は、文書のユーザコピーとマスタコピーとの間の同期を、ユーザコンピュータデバイスによりどのように実行するかについて、さらに詳細に説明する。図１０は、オーサリングされるべき文書のマスタコピーが記憶される記憶装置８２０を含む、オーサリングシステム８００の概略ブロック図である。オーサリングシステム８００はまた、記憶装置８２０に通信可能に連結される、少なくとも１つのユーザコンピュータデバイス８１０を含む。
【００４９】
ユーザコンピュータデバイス８１０には、ユーザがオーサリングされるべき文書を作成および／または操作することが可能であるオーサリング環境を提供するよう構成される、オーサリングアプリケーション８１２が含まれる。ユーザコンピュータデバイス８１０にはまた、キャッシュ８１４、レイヤオブジェクト（「ＬＯ」）８１６、および同期化マネジャ８１８が含まれる。キャッシュ８１４は、オーサリングされるべき文書のユーザコピーを記憶する。キャッシュ８１４はまた、メタデータを記憶し、ロックおよびプレゼンスメタデータを含み、文書に関連付けられる。文書のコンテンツおよびメタデータに対する更新はまた、キャッシュ８１４内に記憶され得る。
【００５０】
レイヤオブジェクト８１６は、オーサリングアプリケーション８１２とキャッシュ８１４との間のインターフェースを提供する。レイヤオブジェクト８１６はまた、オーサリングアプリケーション８１２と同期化マネジャ８１８との間のインターフェースを提供する。同期化マネジャ８１８は、記憶装置８２０と通信し、記憶装置８２０とキャッシュ８１４との間のインターフェースを提供する。例えば、同期化マネジャ８１８は、記憶装置８２０およびキャッシュ８１４に更新を送り、記憶装置８２０およびキャッシュ８１４から更新を取得することが可能である。
【００５１】
一般に、本開示の原理に従う発明の態様の例である特徴を有するオーサリング環境は、ユーザコンピュータデバイス（例えば、パーソナルコンピュータ、サーバコンピュータ、ノートブックコンピュータ、ＰＤＡ、スマートフォン、または任意の他のそのようなコンピュータデバイス）上で実装され得る。オーサリング環境を実装するよう構成されるユーザコンピュータシステム９００の非限定の実施形態は、図１１を参照して本明細書において記載される。
【００５２】
図１１において、本開示の原理を実装する例示のコンピュータシステム９００には、ユーザコンピュータデバイス９１０等のユーザコンピュータデバイスが含まれる。基本の構成において、ユーザコンピュータデバイス９１０は典型的には、システムメモリ９２０内に記憶されるアプリケーションおよびプログラムを実行するための、少なくとも１つのプロセシングユニット９１５が含まれる。的確な構成およびタイプのコンピュータデバイス９１０に依存して、システムメモリ９２０には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または他のメモリ技術、が含まれ得るが、これに限定されない。
【００５３】
システムメモリ９２０は典型的には、ワシントン州レドモンドのマイクロソフト社のウィンドウズ（登録商標）オペレーティングシステム等、コンピュータデバイス９１０の操作の制御に適した、オペレーティングシステム９２２を記憶する。システムメモリ９２０にはまた、文書のユーザコピー９２７を記憶することが可能である文書キャッシュ９２６が含まれ得る。文書のメタデータ９２９はまた、ユーザキャッシュ９２６内に記憶され得る。
【００５４】
システムメモリ９２０はまた、文書を作成および編集するためのオーサリングアプリケーション９２４等の１つまたは複数のソフトウェアアプリケーションを記憶し得る。本開示の原理に従う文書のオーサリングに適したオーサリングアプリケーション９２４の１つの非限定例は、ワシントン州レドモンドのマイクロソフト社のマイクロソフト（登録商標）オフィスワードオーサリングソフトウェアである。オーサリングアプリケーションの他の非限定例には、パワーポイント（登録商標）プレゼンテーションソフトウェア、およびビジオ（登録商標）描画・作図ソフトウェアが含まれ、双方ともまた、ワシントン州レドモンドのマイクロソフト社のものである。
【００５５】
コンピュータデバイス９１０はまた、データを入力および操作するためのキーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等の入力デバイス（複数可）９３０を有する。ディスプレイスクリーン、スピーカ、プリンタ等の出力デバイス（複数可）９３５もまた、含まれ得る。これらの出力デバイス９３５は、従来技術において周知であり、本明細書において長々と検討する必要はない。
【００５６】
コンピュータデバイス９１０はまた、デバイス９１０が、他のコンピュータデバイス、例えば、図１０の記憶装置８２０と、分散コンピュータ環境におけるネットワーク（例えば、イントラネットまたはインターネット）上で通信することを可能にする、通信接続９４０を含有し得る。限定ではなく例として、通信デバイス媒体９４０には、有線ネットワークまたは直接の有線接続等の有線媒体、ならびに、音響、高周波、赤外線および他の無線媒体等の無線媒体が含まれる。
【００５７】
図１２は、ユーザコンピュータデバイス上のオーサリングアプリケーションにより実装される同期化サイクルを例示するオーサリングシステム１０００の概略ブロック図である。オーサリングシステム１０００には、オーサリングされるべき文書が記憶される記憶装置１０２０、およびユーザコンピュータデバイス１０１０が含まれる。ユーザコンピュータデバイス１０１０には、オーサリングアプリケーション１０１２、キャッシュ１０１４、レイヤオブジェクト１０１６、および同期化マネジャ１０１８が含まれる。ユーザコンピュータデバイス１０１０のキャッシュ１０１４は、オーサリングされるべき文書の基本コピー１０１３、作業用コピー１０１５、アップロードコピー１０１７，およびダウンロードコピー１０１９を記憶するよう構成される。キャッシュ１０１４はまた、文書のメタデータ１０１１を記憶するよう構成される。
【００５８】
図１３は、ユーザコンピュータデバイス１０１０等のユーザコンピュータシステムが、文書のオーサリング中に、更新を送信および受信することが可能である、例示の同期化処理１１００の動作フローを例示するフローチャートである。同期化処理１１００は、スタートモジュール１１０２にて初期化および開始し、取得操作１１０４に進む。取得操作１１０４は、ユーザコンピュータデバイス１０１０の同期化マネジャ１０１８に、オーサリングされるべき文書のダウンロードコピー１０１７を記憶装置１０２０から取得させる。文書のダウンロードコピー１０１７は、文書が記憶装置１０２０から取得されるときの、文書のマスタコピーの状態を反映する。例えば、取得操作１１０４は、同期化マネジャ１０１８に、文書のマスタコピーの最新のバージョンのコピーを記憶装置１０２０からプル配信させることが可能である。
【００５９】
生成操作１１０６は、ダウンロードコピー１０１７に基づき、文書の基本コピー１０１３および作業用コピー１０１５を作成する。文書の作業用コピー１０１５は、オーサリングアプリケーション１０１２により操作され、ユーザが文書を編集することを可能にすることができる。従って、作業用コピー１０１５は、文書の現在の状態をオーサリングアプリケーション１０１２のユーザにより編集されるもののように反映する。基本のコピー１０１３は、ユーザが文書の編集を開始する直前の文書の状態を反映する。一実施形態において、レイヤオブジェクト１０１６は、文書の基本のコピー１０１３および作業用コピー１０１５を生成し、作業用コピー１０１５をオーサリングアプリケーション１０１２に提供する。
【００６０】
他のユーザにより生成されたコンテンツ更新を取得するために、ポーリング操作１１０８は、同期化マネジャ１０１８に、記憶装置１０２０に周期的に接触してオーサリングされている文書の更新されたダウンロードコピー１０１７を取得する。ダウンロードコピー１０１７は、ダウンロード時の文書のマスタコピーの状態を反映する。基本コピー１０１３が生成されたため、マスタコピーは、記憶装置１０２０上に記憶され、他のユーザによりなされた変更を含み得る。同期化マネジャ１０１８は、文書の任意の更新されたダウンロードコピー１０１７をキャッシュ１０１４内に記憶する。
【００６１】
編集操作１１１０は、ユーザによりオーサリングアプリケーション１０１２に与えられた任意の命令を受け取って、文書上で編集操作を実行する。アプリケーション１０１２は、文書１０１５の作業用コピーに対して編集を行う。オーサリングアプリケーション１０１２はまた、編集操作を実行するときに、必要に応じてメタデータの変更を行う。
【００６２】
第１の判定モジュール１１１２にて、レイヤオブジェクト１０１６は、キャッシュ１０１４をチェックして、ポーリング操作１１０８中に任意の更新が受け取られたどうかを（すなわち、更新されたダウンロードコピー１０１７がキャッシュ１０１４において利用可能かどうかを）判定する。一実施形態において、ユーザが文書の作業用コピーを編集したかどうかにかかわらず、第１の判定モジュール１１１２が周期的時間間隔で実行される。異なる実施形態において、第１の判定モジュール１１１２が、例えば、数秒、数ミリ秒、または、数分ごとに実行され得る。
【００６３】
レイヤオブジェクト１０１６が、新しいダウンロードコピー１０１７が利用可能でないと判定した場合、同期化処理１１００は、第２の判定モジュール１１１６に進むが、これについては以下でより詳細に検討する。しかし、レイヤオブジェクト１０１６が、新しいダウンロードコピー１０１７が利用可能であると判定した場合、同期化処理１１００は、同期化操作１１１４に進む。一実施形態において、同期化操作１１１４は、オーサリングアプリケーション１０１２のユーザとの任意の相互作用を要求することなく、ダウンロードコピー１０１７において見出される任意のメタデータの更新を自動的にインスタンス化する。例えば、レイヤオブジェクト１０１６は、ダウンロードコピー１０１７において反映される任意のロックメタデータを、文書の作業用コピー１０１５に自動的にインスタンス化し得る。
【００６４】
いくつかの実施形態において、同期化操作１１１４は、ダウンロードコピー１０１７からの任意のコンテンツ更新を作業用コピー１０１５に自動的にインスタンス化はしない。むしろ、同期化操作１１１４は、オーサリングアプリケーション１０１２のユーザが、コンテンツ更新を統合せよという命令を与えるときに、コンテンツ更新をインスタンス化するのみである。しかし、他の実施形態において、同期化操作１１１４は、コンテンツ更新を自動的にインスタンス化する。一実施形態において、同期化操作１１１４は、統合せよという命令が与えられるときに、レイヤオブジェクト１０１６に、更新されたダウンロードコピー１０１７を作業用コピー１０１５にマージさせる。一実施形態において、同期化操作１１１４は、図９に示す第２の同期化処理７００と同じである。しかし、他の実施形態において、他の同期化処理を使用して、更新を文書の作業用コピー１０１５と統合することが可能である。同期化処理１１００は、同期化操作１１１４から第２の判定モジュール１１１６へ進む。
【００６５】
第２の判定モジュール１１１６は、ユーザが、編集操作１１１０中に、文書の作業用コピー１０１５または文書のメタデータ１０１１に対する任意の変更を行ったかどうかを判定する。第２の判定モジュール１１１６が、編集が行われなかった（すなわち、コンテンツもメタデータも編集されなかった）と判定した場合、同期化処理１１００は、ポーリング操作１１０８に戻り、再度開始する。しかし、第２の判定モジュール１１１６が、ユーザがコンテンツの編集（例えば、文書のデータユニットの修正）および／またはメタデータの編集（例えば、文書のデータユニットのロック）を行ったと判定した場合、共有操作１１１８が、編集を記憶装置１０２０と同期させる。
【００６６】
共有操作１１１８は、オーサリングアプリケーション１０１２のユーザからの任意の相互作用を要求することなく、ユーザコンピュータデバイス１０１０の同期化マネジャ１０１８に、文書のメタデータに対する任意の変更を記憶装置１０２０に自動的に送らせる。一実施形態において、共有操作１１１８は、同期化マネジャ１０１８に、コンテンツ更新を記憶装置１０２０に自動的に送らせることをしない。むしろ、同期化マネジャ１０１８は、レイヤオブジェクト１０１６によりそうするよう命令される時に、コンテンツ更新を記憶装置１０２０に送るのみである。メタデータのみを自動的にプッシュ配信することで、更新効率を増大させることによるユーザエクスペリエンスが向上し、ネットワーク帯域幅使用が減少し、コンテンツの自動同期化を要求することなく矛盾を阻止し得る。しかし、他の実施形態において、共有操作１１１８は、メタデータに加えてコンテンツも自動的にプッシュ配信する。一実施形態において、共有操作１１１８は、図８の第１の同期化処理６００と同じである。しかし、他の実施形態において、他の同期化処理が利用可能である。
【００６７】
例えば、ユーザが、ユーザによりなされたコンテンツの修正を共有したいとき、ユーザは、オーサリングアプリケーション１０１２に命令して、文書のマスタコピーと統合するために修正を記憶装置１０２０に送らせる。一実施形態において、オーサリングアプリケーション１０１２は、レイヤオブジェクト１０１６に命令して、文書のアップロードコピー１０１９を生成させる。一般に、レイヤオブジェクト１０１６は、作業用コピー１０１５に基づき、アップロードコピー１０１９を生成する。同期化マネジャ１０１８は、アップロードコピー１０１９を記憶装置１０２０にプッシュ配信することを試みる。同期化処理１１００は、ストップモジュール１１２０にて完了し終了する。
【００６８】
いくつかの実施形態において、共有操作１１１８は、記憶装置１０２０から受け取られた全ての以前のコンテンツ更新が文書の作業用コピー１０１５にインスタンス化されるまで、コンテンツ更新を記憶装置１０２０に送ることができない。そのような実施形態において、アップロードコピー１０１９が、文書の作業用コピー１０１５を最も最近に取得されたダウンロードコピー１０１７にマージすることにより、生成され得る。一実施形態において、同期化マネジャ１０１８は、レイヤオブジェクト１０１６がアップロードコピー１０１９の生成を試みるときに、更新されたダウンロードコピー１０１７の記憶装置１０２０をポーリングする。
【００６９】
同期化マネジャ１０１８が、アップロードコピー１０１９を記憶装置１０２０にプッシュ配信できない場合（例えば、アップロードコピー１０１９が、マスタコピーにインスタンス化された最新の変更を反映しない場合）、同期化マネジャ１０１８は、修正された更新文書１０１９で再試行する。例えば、同期化マネジャ１０１８は、新しいダウンロードコピー１０１７を記憶装置１０２０から取得し得、レイヤオブジェクト１０１６は、作業用コピーおよび新しいダウンロードコピー１０１７から、新しいアップロードコピーを生成し得る。一実施形態において、同期化マネジャ１０１８は、アップロードコピー１０１９を修正し記憶装置１０２０にプッシュ配信することを成功するまで続ける。
【００７０】
図１４から３１を参照すると、いくつかの例のアプリケーションを検証することにより、本開示の原理がより良く理解できるであろう。図１４から２６は、第１のユーザおよび第２のユーザが文書を同時に編集する共同オーサリングセッション中に、記憶装置のキャッシュ、第１のユーザコンピュータデバイスのキャッシュ１２１４、および第２のユーザコンピュータデバイスのキャッシュ１２３４に対してなされた変更を表す。しかし、他の実施形態において、第１および第２のユーザは、異なる時に同じ処理を使用して文書を編集することが可能である。
【００７１】
図１４において、第１のユーザは、文書を作成し、文書の最初の草稿をマスタコピー１２５０として記憶装置に保存した。あるいは、第１のユーザは、既存の文書のマスタコピー１２５０にアクセスし得た。第２のユーザは、まだ文書にアクセスしていない。
【００７２】
文書のマスタコピー１２５０は、対応するマスタロックテーブルを有する。便宜上、図１４から２６に示す例において、マスタロックテーブルは、マスタコピー１２５０の一部として表示される。しかし、他の実施形態において、マスタロックテーブルを、文書のマスタコピー１２５０とは別個に記憶することが可能である。同様に、理解を容易にするため、ユーザキャッシュ１２１４、１２３４上に記憶される文書の各コピー（例えば、基本コピー、作業用コピー、ダウンロードコピー、およびアップロードコピー）に関連するロックは、図１４から２６においてコピーの一部として示される。しかし、他の実施形態において、メタデータは、各文書コピーまたは各ユーザごとに別個に記憶され得る。
【００７３】
文書のマスタコピー１２５０には、テキスト「Ｈｅｌｌｏ  Ｗｏｒｌｄ」を含有する第１のデータユニットおよび第１のデータユニット上のロックＥｌが含まれる。ロックＥｌは、第１のユーザに所有される（すなわち、割り当てられる）。マスタコピー１２５０のコンテンツおよびメタデータは、第１のユーザのキャッシュ１２１４内に記憶される基本コピーおよびダウンロードコピーにおいて反映される。第１のユーザが、文書の最初の草稿を記憶装置に送ったため、キャッシュ１２１４内に記憶されるアップロードコピーもまた、マスタコピー１２５０のコンテンツおよびメタデータを反映する。
【００７４】
最初の草稿を記憶装置に送ったので、第１のユーザは、文書の作業用コピーを編集して、テキスト「Ｔｅｓｔｉｎｇ」を含有する第２のデータユニットが含まれるようにした。第２のロックＥ２が、第２のデータユニットについて追加された。一実施形態において、第２のロックＥ２は、ユーザに割り当てられた新しいロックである。別の実施形態において、第２のロックＥ２は、第１のロックＥｌの拡張である。例えば、新しいユニット識別子を、第１のユーザのキャッシュ１２１４内に記憶されるメタデータテーブルにおける第１のユーザに割り当てることが可能である。一実施形態において、第１のユーザは、カーソルを移動して新しいデータユニット（例えば、段落）をスタートし、「Ｔｅｓｔｉｎｇ」とタイプすることにより、第２のロックＥ２を作成する。第１のユーザが、第１のデータユニット上の編集が終了したことを（例えば、カーソルを移動後保存することにより）、まだ示していないため、第１のロックＥｌが、まだ解除されない。
【００７５】
図１５において、第２のユーザが、記憶装置上に記憶される文書のマスタコピー１２５０にアクセスする。第２のユーザは、文書のダウンロードコピーを取得し、ダウンロードコピーを第２のユーザのキャッシュ１２３４に記憶する。ダウンロードコピーには、マスタコピー１２５０のコンテンツおよびメタデータが含まれる。ダウンロードコピーには、第１のユーザの作業用コピー内に含有される最新のコンテンツおよびメタデータが含まれない。第２のユーザのレイヤオブジェクトが、ダウンロードコピーに基づき、文書の基本コピーおよび作業用コピーを生成する。第２のユーザにより利用されるオーサリングアプリケーションが、作業用コピーのコンテンツおよび任意のロックを第２のユーザに対して表示する。
【００７６】
いくつかの実施形態において、第２のユーザは、共同オーサリングセッションが完全に確立される前（すなわち、第１および第２のユーザコンピュータデバイスが他のユーザの存在を知る前）でも、文書を編集することが可能である。例えば、第２のユーザは、第１および第２のユーザコンピュータデバイスが挨拶を交わす（すなわち、ハンドシェイク）間に、文書の第２の作業用コピーを編集することを許可される。典型的には、メタデータは、第１および第２のコンピュータデバイスがお互いの存在を知る前に、自動的に交換されることはない。
【００７７】
図１６において、第１および第２のコンピュータデバイスはそれぞれ、他の存在を発見した。従って、第１および第２のコンピュータデバイスのそれぞれは、メタデータ更新の自動的な伝送をお互いに対して開始した。図１６に示すように、第１のオーサリングアプリケーションが、更新されたロックメタデータ（例えば、第２のロック）を、第１のユーザのロックテーブルから記憶装置１２２０に（例えば、レイヤオブジェクトおよび同期化マネジャを介して）提供する。しかし、オーサリングアプリケーションは、コンテンツ更新を共有せよという命令を第１のユーザから受け取っていないため、更新されたコンテンツ情報は記憶装置１２２０に提供しない。
【００７８】
図１７において、記憶装置が、更新されたロックメタデータ（例えば、第２のロックＥ２）をマスタコピー１２５０のマスタメタデータテーブルに統合した。ロックメタデータは、まだ第２のユーザコンピュータデバイスにより取得されていない。図１８において、第２のユーザコンピュータデバイスは、記憶装置をポーリングし、マスタコピー１２５０の新しいダウンロードコピーを取得した。新しいダウンロードコピーはまた、アップロードコピーに基づき、（例えば、レイヤオブジェクトを介して）第１のキャッシュ１２１４上に生成された。別の実施形態において、第１のユーザコンピュータデバイスはまた、記憶装置をポーリングし、マスタコピー１２５０の新しいダウンロードコピーを取得し得る。両方の新しいダウンロードコピーは、第１のユーザの作業用コピーから、更新されたロック情報（例えば、ロックＥ２）を反映する。
【００７９】
図１９において、第２のコンピュータデバイスが、新しいダウンロードコピーに基づき、新しい作業用コピーを（例えば、レイヤオブジェクトを介して）生成する。従って、第２のコンピュータデバイスの新しい作業用コピーは、第２のデータユニット上に第２のロックＥ２を含有する。しかし、新しい作業用コピーには、第２のデータユニット自体は含まれない。一実施形態において、第２のユーザコンピュータデバイスの作業用コピーが、ブランク／空のデータユニットを表示し、ブランク／空のデータユニットがロックされることを示す。別の実施形態において、作業用コピーが、第２のデータユニットを全く表示せず、第２のデータユニットが第２のユーザに見えるようになるまでは、ロックＥ２が第２のユーザに対して示されない。
【００８０】
図２０において、第２のユーザが、第３のデータユニットを文書に、第３のロックＥ３を第３のデータユニット周辺に（例えば、オーサリングアプリケーションのメモリ内に）追加する。第３のデータユニットは、テキスト「Ｇｏｏｄｂｙｅ  Ｗｏｒｌｄ」を含有する。第２のオーサリングアプリケーションが、第３のデータユニットおよび第３のロックＥ３を含む文書の作業用コピーを（例えば、レイヤオブジェクトを介して）生成する。第２のオーサリングアプリケーションはまた、第３のロックＥ３を（例えば、同期化マネジャを介して）記憶装置に自動的に提供する。しかし、第２のオーサリングアプリケーションは、第３のデータユニットを記憶装置に提供しない。
【００８１】
また、図２０において、第１のユーザが第１のデータユニットの編集を終了したことを第１のユーザが示した後、第１のユーザは第１のロックＥｌを解除する。例えば、第１のユーザのカーソルが第２のデータユニット内に位置付けられるとき、第１のユーザは、文書を記憶せよという命令を与えることが可能である。一実施形態において、第２のデータユニットは、第１のデータユニットから離れて配置され得る。図示の例において、第１のユーザが与える終了の標示は、第１のユーザが第１のユーザによりなされたコンテンツ変更を共有したいということを示さない。従って、第１のオーサリングアプリケーションは、記憶装置に分散するためのコンテンツ変更を含有するアップロードコピーを（例えば、レイヤオブジェクトを介して）生成しない。
【００８２】
図２１において、第３のロックＥ３が、記憶装置上の文書のマスタコピー１２５０のマスタロックテーブル内に記憶された。第１のユーザコンピュータデバイスは、続いて（例えば、同期化マネジャを介して）記憶装置をポーリングして、更新をチェックする。第１のユーザコンピュータデバイスは、マスタコピー１２５０に基づき、文書の新しいダウンロードコピーを記憶装置から（例えば、同期化マネジャを介して）取得した。新しいダウンロードコピーは、第３のＥ３を含有する。第１のオーサリングアプリケーションは、第３のロックＥ３を第１のオーサリングアプリケーションの作業用コピーに（例えば、レイヤオブジェクトを介して）自動的にインスタンス化する。上記で触れたように、第３のロックＥ３が第１のオーサリングアプリケーションのユーザインターフェースを使用して、第１のユーザに対して選択的に表示され得る。
【００８３】
図２２において、第２のユーザが、第２のユーザが第３のデータユニットの編集を終了したことを示す時に、第２のユーザは、第３のロックＥ３を解除する。第３のロックＥ３は、第２のユーザのメタデータテーブルから削除される。図２２に示される例のブロック図において、第３のロックＥ３が、第２のオーサリングアプリケーションの作業用コピーに対応するメタデータテーブルから削除される。
【００８４】
図２２に示す例において、第２のユーザが与える終了の標示は、第２のユーザがコンテンツ変更を他のユーザと共有したいということを示す。例えば、第２のユーザは、カーソルを第３のデータユニットから除去し、文書を記憶せよという命令を与え得る。従って、第２のオーサリングアプリケーションは、作業用コピーに基づき、コンテンツ変更を含有するアップロードコピーを生成し得る。一実施形態において、アップロードコピーはまた、まだ作業用コピーにインスタンス化されていないダウンロードコピー内に見出された（例えば、この場合には無い）任意のコンテンツ更新に基づき得る。図示の例において、アップロードコピーには、フレーズ「Ｇｏｏｄｂｙｅ  Ｗｏｒｌｄ」を含む第３のデータユニットが含まれる。
【００８５】
図２３において、記憶装置が、第２のユーザコンピュータデバイスのアップロードコピーから第３のデータユニットを取得し、第３のデータユニットを記憶装置のマスタコピー１２５０にマージする。マスタコピー１２５０に関連するロックテーブルは、第３のロックＥ３が解除されたことを示す。図２４に示すように、記憶装置へのプッシュ配信が成功すると、第２のオーサリングアプリケーションが、アップロードコピーをダウンロードコピーおよび第２のキャッシュ１２３４の基本コピーに（例えば、レイヤオブジェクトを介して）コピーする。
【００８６】
図２５において、第１のユーザコンピュータデバイスが、文書のマスタコピー１２５０の新しいダウンロードコピーを（例えば、同期化マネジャを介して）取得する。第１のオーサリングアプリケーションは、新しいダウンロードコピーが取得されたことを（例えば、レイヤオブジェクトを介して）判定し、新しいダウンロードコピーがコンテンツ変更を含むことを判定する。オーサリングアプリケーションは、任意の新しいロック（この場合には無い）をキャッシュ１２１４の作業用コピーに自動的にマージする。第１のオーサリングアプリケーションのユーザインターフェースは、コンテンツ更新が閲覧可能であることを示し得る。
【００８７】
図２６において、第１のユーザが、キャッシュ１２１４において利用可能なコンテンツ更新を文書の作業用コピーにインスタンス化することを選択する。従って、オーサリングアプリケーションは、キャッシュ１２１４内に記憶されるダウンロードコピーを第１のオーサリングアプリケーションの作業用コピーにマージする。第３のデータユニットが、第１のオーサリングアプリケーションの作業用コピーに追加され、第１のユーザに対して表示される。第３のロックＥ３が、第１のオーサリングアプリケーションの作業用コピーに関連するメタデータテーブルにおいて解除される。第１のユーザは従って、第１のオーサリングアプリケーションに命令して第３のデータユニットを編集させ得る。
【００８８】
ここで図２７から３１を参照すると、共同オーサリングセッション中のユーザエクスペリエンスが、以下に詳細に記載される。図２７から３１は、第１のユーザおよび第２のユーザが文書２０１０を共同してオーサリングするため、第１のオーサリングアプリケーションの例示のユーザインターフェース２０００に対する変更を例示する。第１のユーザＪａｎｅ  Ｄｏｅが、第１のオーサリングアプリケーションを使用して文書２０１０を編集し、第２のユーザＪｏｈｎ  Ｄｏｅが、異なるオーサリングアプリケーションを使用して文書２０１０を編集する。
【００８９】
文書２０１０には、第１のデータユニット２０１２、第２のデータユニット２０１４、第３のデータユニット２０１６、および第４のデータユニット２０１８が含まれる。第１のユーザは、コンテンツロック２０２２を第１のデータユニット２０１２周辺に配置する。例えば、一実施形態において、第１のユーザは、自分のカーソル２０１５を第１のデータユニット２０１２に移動させ得る。別の実施形態において、第１のユーザは、１つまたは複数の編集操作を第１のデータユニット２０１２に対して実行せよという命令を与え得る。
【００９０】
図２８において、第１のユーザが、テキストを第１のデータユニット２０１２に追加した。第１のデータユニット上のロックが、第２のユーザが第１のデータユニット２０１２を編集することを禁じる。一実施形態において、第１のロック２０２２が、第２のユーザが第１のデータユニット２０１２を編集することを防ぐ。別の実施形態において、第１のロック２０２２が、第１のデータユニット２０１２を編集することに対して第２のユーザに警告するが、第２のユーザが編集するのを妨げない。さらに別の実施形態において、第１のロック２０２２は、第１のユーザが第１のデータユニット２０１２を編集する意思を示したことを、単に示す。
【００９１】
図２９において、第２のユーザが、第３のデータユニット２０１６についてコンテンツロック２０２４を配置した。第２のユーザが自分の変更を共有しないことを選択したため、第２のロックが、第１のオーサリングアプリケーションのユーザインターフェース２０００上で見えるようにされ得るが、第２のユーザにより第３のデータユニット２０１６に対してなされた任意の変更は、まだ見えない。図示の例において、第２のロック２０２４が、第２のロック２０２４の範囲を示すブラケットを表示することにより、ユーザインターフェース２０００によって示される。第２のロック２０２４はまた、第２のロック２０２４の所有者を示すネームタグを含むことが可能である。図２９において、ネームタグには、第２のユーザを識別するテキストおよびアイコンが含まれる。アイコンは、色、シンボルまたは他のグラフィックによりユーザをさらに識別することが可能である。
【００９２】
図３０において、第１のオーサリングアプリケーションが、文書２０１０のコンテンツ更新を受け取る。第２のユーザが、コンテンツ変更を他のユーザと共有することを選択し、従って、コンテンツ更新を（例えば、上述の同期化処理のうちの１つを介して）文書２０１０のマスタコピーにマージした。第１のオーサリングアプリケーションの同期化マネジャが、マスタコピーを記憶するデバイスをポーリングすることにより、文書２０１０のマスタコピーから更新を取得した。
【００９３】
第１のオーサリングアプリケーションのユーザインターフェース２０００が、コンテンツ更新の可用性を示す第１のユーザに対して警告２０３０を表示する。図示の例において、テキストボックス２０３０が、ユーザインターフェース２０００に現れる。別の実施形態において、第２のロックまたは第２のロック内のテキストは、色、模様、フォーマット設定を変更することが可能である。別の実施形態において、それぞれの新しい更新が利用可能にされるときに、更新カウンタがインクリメントされる。
【００９４】
第１のユーザは、第２のユーザによりなされた変更を閲覧／インスタンス化すること、または、コンテンツ更新を無視することを選択することが可能である。第１のユーザは、コンテンツ更新を無視しつつ、文書２０１０内の任意のロックされていないデータユニットの編集を続けることが可能である。一実施形態において、第１のユーザは、自分の更新をマスタコピーにマージする前にコンテンツ更新をインスタンス化しなければならない。図３１において、第１のユーザが、第１のオーサリングアプリケーションに命令して、コンテンツ更新を第１のオーサリングアプリケーションのユーザインターフェース２０００により表示される文書２０１０にインスタンス化させる。第２のユーザによりなされたコンテンツ変更は、ここで第１のユーザに見えるようにされる。
【００９５】
本開示の実施形態が、コンピュータプロセス（方法）、コンピュータシステムとして、または、コンピュータプログラム製品もしくはコンピュータ可読媒体等の製造品として、実装され得る。プロセス（プログラム）は、本文書に記載される構造を含む、任意の数の方法で実装され得る。１つのそのような方法は、本文書に記載されるタイプのデバイスの機器操作による。別の選択的方法は、操作のうちのいくつかを実行する１人または複数の人のオペレータと連動してコンピュータデバイス上で実行される方法の、１つまたは複数の個々の操作のためのものである。これらの人のオペレータは、お互いに一緒に作業する必要はなく、それぞれは、プログラムの一部を実行する機器のみで作業することが可能である。
【００９６】
コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムをエンコードする、コンピュータ記憶媒体であり得る。コンピュータプログラム製品はまた、コンピュータシステムにより読み取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムをエンコードする、搬送波上に伝播される信号であり得る。本明細書で使用されるとき、用語コンピュータ可読媒体には、記憶媒体および通信媒体の両方が含まれる。
【００９７】
当業者は、本開示が、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサ系のまたはプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成で実践され得ることを理解するであろう。本開示はまた、通信ネットワークを介してリンクされるリモート処理デバイスによりタスクが実行される、分散コンピュータ環境において、実践され得る。分散コンピュータ環境において、プログラムモジュールは、ローカルおよびリモートのメモリ記憶装置の両方に配置され得る。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造、および、特定のタスクを実行する、または、特定の抽象データ型を実装する、他のタイプの構造、が含まれる。
【図１】
0005468547.tif 000002
【図２】
0005468547.tif 000003
【図３】
0005468547.tif 000004
【図４】
0005468547.tif 000005
【図５】
0005468547.tif 000006
【図６】
0005468547.tif 000007
【図７】
0005468547.tif 000008
【図８】
0005468547.tif 000009
【図９】
0005468547.tif 000010
【図１０】
0005468547.tif 000011
【図１１】
0005468547.tif 000012
【図１２】
0005468547.tif 000013
【図１３】
0005468547.tif 000014
【図１４】
0005468547.tif 000015
【図１５】
0005468547.tif 000016
【図１６】
0005468547.tif 000017
【図１７】
0005468547.tif 000018
【図１８】
0005468547.tif 000019
【図１９】
0005468547.tif 000020
【図２０】
0005468547.tif 000021
【図２１】
0005468547.tif 000022
【図２２】
0005468547.tif 000023
【図２３】
0005468547.tif 000024
【図２４】
0005468547.tif 000025
【図２５】
0005468547.tif 000026
【図２６】
0005468547.tif 000027
【図２７】
0005468547.tif 000028
【図２８】
0005468547.tif 000029
【図２９】
0005468547.tif 000030
【図３０】
0005468547.tif 000031
【図３１】
0005468547.tif 000032