(57)【要約】  共同オーサリングアプリケーションは、２人以上のユーザがドキュメントを同時に編集することができるオーサリング環境を提供する。各ユーザは、ドキュメントの原稿を編集し、ドキュメントの原本に対して更新を送信し、ドキュメントの原本から更新を受信する。オーサリング環境は、コンテンツとメタデータが自動的に同期される公的モード動作、またはメタデータが自動的に同期されコンテンツがユーザの要求でのみ同期される私的モード動作に構成可能である。オーサリングアプリケーションは公的または私的モードでオフラインドキュメントを編集可能である。
2011507100.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ装置（１１０、６１０、８１０、２０１０）上のドキュメントのユーザ原稿（１５５、６５５、８５５、２０５５）を編集するためのオーサリングシステムであって、前記ユーザ原稿がドキュメントの原本（１５０）に基づいて生成されている前記オーサリングシステムは、
前記ユーザ装置上に格納されたローカルキャッシュ（４２６、６３５、８３５、２０３５）であって、前記ローカルキャッシュは、格納キャッシュ（２０３１）およびアップロードキャッシュ（２０３３）を含む前記ローカルキャッシュと、
前記ユーザ装置上で実行するように構成されたオーサリングアプリケーション（１３０、４２４、１１３０、２０３０）であって、前記オーサリングアプリケーションはドキュメントの前記ユーザ原稿を編集するように構成され、前記オーサリングアプリケーションは、公的動作モードと私的動作モードとから成るグループから選ばれた動作モードに選択的に構成されることに適応しており、前記オーサリングアプリケーションは前記ドキュメントの前記ユーザ原稿に対してなされた編集に基づいたメタデータ更新を生成し、前記ドキュメントの前記ユーザ原稿に対してなされた編集に基づいたコンテンツ更新を生成するように構成されている前記オーサリングアプリケーションと、
前記オーサリングアプリケーションが構成される前記動作モードにかかわらず前記ドキュメントの前記ユーザ原稿と前記ドキュメントの前記原本との間の前記メタデータ更新を同期させるように構成されたメタデータ同期モジュール（６３９、８３９、２０３９）と、
保護モジュールが前記ドキュメントを格納する命令を受信する場合に、前記ローカルキャッシュの格納コンテンツキャッシュに生成されたコンテンツ更新を格納するように構成された前記保護モジュール（６３４、８３４）であって、前記保護モジュールは前記オーサリングアプリケーションが前記公的動作モードに構成されると、前記生成されたコンテンツ更新が前記格納キャッシュに格納される場合に、前記生成されたコンテンツ更新を前記アップロードキャッシュに格納するようにさらに構成されている前記保護モジュールと、
前記ドキュメントの前記原本と前記アップロードキャッシュ内に格納された前記コンテンツ更新とを共有するように構成された発行モジュール（６３２と８３２）と
を備え、
前記ドキュメントの前記原本と前記コンテンツ更新を共有することは前記原本へのコンテンツ更新を統合することを特徴とするオーサリングシステム。
【請求項２】
前記オーサリングアプリケーションが構成される前記動作モードにかかわらず前記ドキュメントの前記原本からの外部コンテンツ更新を取得するように構成された取得モジュールであって、前記外部コンテンツ更新は１つ以上の他のオーサリングアプリケーションによって生成される前記取得モジュールと、
前記取得モジュールが前記原本から得られた前記外部コンテンツ更新を格納する取得キャッシュと
をさらに備えることを特徴とする請求項１に記載のオーサリングシステム。
【請求項３】
前記オーサリングアプリケーションは前記取得モジュールが前記第２のコンテンツキャッシュ内の前記外部コンテンツ更新を格納した場合に、前記外部コンテンツ更新が有効であるという表示を与えるように構成され、前記オーサリングアプリケーションは前記ドキュメントの前記ユーザ原稿への前記外部コンテンツ更新の１つ以上をインスタンス化するように構成されることを特徴とする請求項２に記載のオーサリングシステム。
【請求項４】
前記オーサリングアプリケーションが前記私的動作モードにおいて構成され、前記保護モジュールが、前記コンテンツ更新を共有する命令を受信したら、前記生成されたコンテンツ更新が前記格納キャッシュへ格納される場合、前記保護モジュールは前記生成されたコンテンツ更新も前記アップロードキャッシュ内へ格納することを特徴とする請求項１に記載のオーサリングシステム。
【請求項５】
ネットワークへの接続を介して前記ドキュメントの前記原本にアクセスするように、オーサリングアプリケーションは構成されることを特徴とする請求項１に記載のオーサリングシステム。
【請求項６】
前記オーサリングアプリケーションが前記ネットワークに接続されない場合に、前記ドキュメントの前記ユーザ原稿の編集を可能にするように、前記オーサリングアプリケーションは構成されることを特徴とする請求項５に記載のオーサリングシステム。
【請求項７】
前記オーサリングアプリケーションが前記ネットワークに接続されない場合に警告を与えるように、前記オーサリングアプリケーションは構成され、前記警告は前記オーサリングアプリケーションが前記原本と前記ユーザ原稿とを同期させることができないことを示すことを特徴とする請求項５に記載のオーサリングシステム。
【請求項８】
前記メタデータ更新は編集されている前記ドキュメントの少なくとも１つのデータユニットのまわりに前記オーサリングアプリケーションによって生成される少なくとも１つのロックを含み、前記ロックは他のオーサリングアプリケーションが前記ドキュメントのそれぞれのユーザ原稿上の前記データユニットを編集することを禁じることを特徴とする請求項１に記載のオーサリングシステム。
【請求項９】
ドキュメントの原本と前記ドキュメントのユーザ原稿とを同期させる、コンピュータ実施方法であって、前記ドキュメントの前記ユーザ原稿はユーザ装置（１１０、６１０、８１０、２０１０）上に格納されており、前記ドキュメントの前記原本（１５０）は前記ユーザ装置に通信でつながれるように構成される記憶装置（１２０、６２０、８２０、１１２０）上に格納されており、前記方法は、
前記記憶装置に前記ユーザ装置（１１０、６１０、８１０、２０１０）を接続するステップと、
オーサリングアプリケーション（１３０、４２４、１１３０、２０３０）に対して私的モード動作を選択するステップと、
前記ユーザ装置にて、少なくとも第１のコンテンツ更新を生成するために前記オーサリングアプリケーションで前記ドキュメントの前記ユーザ原稿（１５５、６５５、８５５、２０５５）を編集するステップと、
前記ドキュメントの前記ユーザ原稿の編集により生成される任意のメタデータ更新を前記記憶装置に定期的にユーザ装置から伝送するステップであって、前記メタデータ更新は前記記憶装置上に格納された前記原本（１５０）にインスタンス化されるステップと、
前記ユーザ装置にて、前記ドキュメントの前記ユーザ原稿の編集により生成される前記コンテンツ更新を格納するステップと、
前記原本が前記外部メタデータ更新を含めるように更新された場合に、前記ユーザ装置にて前記ドキュメントの前記原本から前記外部メタデータ更新を定期的に受信するステップと、
前記ドキュメントの前記原本から受信された前記外部メタデータ更新を前記ドキュメントの前記ユーザ原稿にインスタンス化するステップと、
前記原本が前記外部コンテンツ更新を含めるために更新された場合に、前記ドキュメントの前記原本から前記ユーザ装置にて前記外部コンテンツ更新を定期的に受信するステップと
を含むことを特徴とする方法。
【請求項１０】
インスタンス化命令を受信するステップと、
インスタンス化命令に従って前記ドキュメントの前記ユーザ原稿に前記外部コンテンツ更新をインスタンス化するステップと
をさらに含むことを特徴とする請求項９に記載のコンピュータで実施される方法。
【請求項１１】
前記オーサリングアプリケーション内の前記外部コンテンツ更新の有効性の示度を与えるステップと、
前記オーサリングアプリケーション内の前記外部コンテンツ更新を閲覧する命令を受信するステップと、
前記ドキュメントの前記ユーザ原稿内の前記外部コンテンツ更新をインスタンス化するためのオプションを与えるステップと、
前記ドキュメントの前記ユーザ原稿内の前記外部コンテンツ更新をインスタンス化するための選択されたオプションを実施するステップと
をさらに含むことを特徴とする請求項９に記載のコンピュータ実施方法。
【請求項１２】
公的モード動作に前記オーサリングアプリケーションを構成する命令を受信するステップと、
前記公的モード動作に前記オーサリングアプリケーションをトグルするステップと、
前記ユーザ装置にて格納された前記コンテンツ更新と前記ドキュメントの前記原本とを共有するステップと
をさらに含むことを特徴とする請求項９に記載のコンピュータ実施方法。
【請求項１３】
前記記憶装置から前記ユーザ装置を切断するステップと、
前記オーサリングアプリケーションで前記ドキュメントの前記ユーザ原稿の編集を続けるステップと、
前記記憶装置から前記ユーザ装置を切断した後に前記オーサリングアプリケーションによって生成された任意のコンテンツ更新を前記ユーザ装置にて格納するステップと、
前記ユーザ装置が前記記憶装置に再度接続される時、前記ユーザ装置にて格納された前記コンテンツ更新を共有するするステップと
をさらに含むことを特徴とする請求項１２に記載のコンピュータ実施方法。
【請求項１４】
前記記憶装置から前記ユーザ装置を切断するステップと、
前記オーサリングアプリケーションで前記ドキュメントの前記ユーザ原稿の編集を続けるステップと、
前記記憶装置から前記ユーザ装置を切断した後に前記オーサリングアプリケーションによって生成された任意のコンテンツ更新を前記ユーザ装置にて格納するステップと
をさらに含み、
前記ユーザ装置が前記記憶装置に再度接続される場合、前記オーサリングアプリケーションが前記公的モード動作にトグルされるまで、前記ユーザ装置にて格納された前記コンテンツ更新は前記記憶装置と共有されないことを特徴とする請求項９に記載のコンピュータ実施方法。
【請求項１５】
コンピューティング装置によって実行される時ユーザ装置（１１０、６１０、８１０、２０１０）上に格納されたドキュメントのユーザ原稿（１５５、６５５、８５５、２０５５）をオーサリングする方法を実行するコンピュータ実行命令を格納するコンピュータ可読記憶媒体であって、前記方法は、
公的モード動作にオーサリングアプリケーション（１３０、４２４、１１３０、２０３０）を構成するステップであって、前記オーサリングアプリケーションは前記ドキュメントの前記ユーザ原稿（１５５、６５５、８５５、２０５５）をオーサリングするために前記ユーザ装置（１１０、６１０、８１０、２０１０）によって実行されるように構成され、前記ユーザ装置はオフラインであるステップと、
複数のコンテンツ更新を生成するために前記オーサリングアプリケーションで前記ドキュメントの前記ユーザ原稿を編集するステップと、
前記オーサリングアプリケーションによって生成される任意のメタデータを前記ユーザ装置にて格納するステップと、
前記オーサリングアプリケーションによって生成された前記コンテンツ更新をユーザ装置にてキュー（２０３１）内に格納するステップと、
前記記憶装置に前記ユーザ装置を接続するステップと、
前記ユーザ装置が接続される前に前記オーサリングアプリケーションが閉じられていても、前記ユーザ装置が前記記憶装置に接続される場合に、前記ドキュメントの原本（１５０）と前記メタデータとを共有するステップと
を含むことを特徴とする方法。
【請求項１６】
前記ユーザ装置が接続される前に前記オーサリングアプリケーションが閉じられていても、前記ユーザ装置が前記記憶装置に接続される場合に、前記キュー内に格納された前記コンテンツ更新を共有するステップ
をさらに含むこと請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記記憶装置に前記ユーザ装置を接続した後に前記ドキュメントの前記原本から外部メタデータ更新を取得するステップと、
前記ドキュメントの前記ユーザ原稿へ前記メタデータ更新を自動的にインスタンス化するステップと
をさらに含むこと請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記オーサリングアプリケーションによって生成された前記コンテンツ更新を前記ユーザ装置にて前記キュー内に格納するステップは、前記オーサリングアプリケーションが前記ユーザから最終処理命令を受信する場合に、前記キュー内に前記コンテンツ更新を格納するステップを含むことを特徴とする請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記オーサリングアプリケーションが前記公的モードに構成される場合に最終処理命令の受信は前記コンテンツ更新を共有することの引き金となることを特徴とする請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記オーサリングアプリケーションが私的モードに構成される場合に最終処理命令の受信は前記コンテンツ更新を共有することの引き金とはならないことを特徴とする請求項１８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
従来の共同オーサリングは、連続的に実行される傾向がある。ユーザは交代でドキュメントにアクセスし、ドキュメントを編集し、それらの編集を格納する。アクセスしているユーザがドキュメントを編集している時に、他のユーザにドキュメントを編集させないようにするために、そのアクセスしているユーザはファイル上にロックを設けることができる。ユーザは各ドキュメントの編集で順番を待つ可能性もあるので、そのような繰り返しの編集処理は遅延を引き起こす場合がある。その上、繰り返しの編集処理を管理することは困難であるかもしれない。例えば、各ユーザは、誰がドキュメントのどこの一部を編集しているか、どれが最も新しいドキュメントのバージョンであるか、いつユーザが順番を有するかについて跡を追う必要があるかもしれない。
【０００２】
他のタイプの従来の共同編集において、ユーザは、同一のドキュメントの共有の原稿を編集することができる。例えば、米国ワシントン州レドモンドのマイクロソフト社により供給されるＯＮＥＮＯＴＥ「登録商標」メモ作成（ｎｏｔｅ−ｔａｋｉｎｇ）プログラムにおいて、複数ユーザは、共有のノートブック・スタイル・ドキュメントにオブジェクトを同時に追加、移動、削除することができる。当該製品において、ドキュメントへの変更は、リアルタイムまたはほぼリアルタイムでユーザに利用可能な傾向がある。
【０００３】
これらおよび他の考察に関して本開示がなされる。
【発明の概要】
【０００４】
本発明の概要は、以下の「発明を実施するための形態」でさらに記載される簡易化された形式の概念の選択を紹介するために提供される。本発明の概要は、請求項の内容の主要な機能または基本的な機能を同定するようには意図されないし、本発明の請求の範囲の確定における支援としても意図されていない。
【０００５】
一般に、共同オーサリングアプリケーションは、２人以上のユーザがドキュメントを同時に編集することができるオーサリング環境を提供する。オーサリングアプリケーションは、各々のユーザの編集が自由に共有される公的モード動作または各々のユーザの編集が非公開にしておいてもよい私的モード動作に、選択的に構成されることに適応する。
【０００６】
態様によれば、メタデータ更新は、選択された動作モードにかかわらず各々のユーザ原稿とドキュメントの原本との間で自動的に同期される。但し、コンテンツ更新の有効性は、オーサリングアプリケーションが構成される動作モードに依存する。
【０００７】
１つの実施形態において、公的動作モードにおいて構成されたオーサリングアプリケーションは、原本とオーサリングアプリケーションによって生成されたコンテンツおよびメタデータ更新の両方とを定期的に共有する。別の実施形態において、私的動作モードで構成されたオーサリングアプリケーションは、原本とオーサリングアプリケーションによって生成されたメタデータ更新のみとを定期的に共有する。
【０００８】
他の態様によれば、オーサリングアプリケーションがドキュメントの原本とコンテンツまたはメタデータとを同期させることができない場合（例えば、オーサリングアプリケーションがオフラインである場合）でさえ、オーサリングアプリケーションは、ドキュメントのユーザ原稿を編集できる。１つの実施形態において、オーサリングアプリケーションがオフラインである場合、オーサリングアプリケーションは、公的または私的モード動作に構成されてもよい。
【０００９】
これらおよび他の機能および有利性は、以下の詳細な説明の解釈および関連づけられた図面の概観から明らかになる。前述の概要および以下の詳細な説明の両方が単に説明であり、クレームされるような態様に限定的ではないことは理解されるべきである。
【図面の簡単な説明】
【００１０】
【図１】本開示の独創的な態様の具体例である機能を有するオーサリングシステムの具体例を示す概略ブロック図である。
【図２】第１のコンピューティング装置上に格納されたドキュメントがコンテンツとメタデータを含むことができる、本開示の原理による図１のオーサリングシステムを示す概略ブロック図である。
【図３】５つのユニットのデータ（第２のユニットはロックされている）を有する、本開示の原理によるドキュメントの概略ブロック図である。
【図４】本開示の原理による、オーサリング環境を実行するように構成されたユーザコンピューティングシステムの概略ブロック図である。
【図５】本開示の原理による、ドキュメントの原本とドキュメントのユーザ原稿とを同期させることができる同期処理の具体例の動作フローを示すフローチャートである。
【図６】本開示の原理による、公的動作モードにオーサリングアプリケーションを構成するオーサリングシステムの概略ブロック図である。
【図７】オーサリングアプリケーションを公的動作モードに構成する場合に、オーサリングアプリケーションがドキュメントの原本とドキュメントのユーザ原稿とを同期することができる、本開示の原理による典型的な公的モードの同期処理の動作フローを示すフローチャートである。
【図８】本開示の原理による、私的動作モードにオーサリングアプリケーションを構成するオーサリングシステムの概略ブロック図である。
【図９】オーサリングアプリケーションを私的動作モードに構成する場合に、オーサリングアプリケーションがドキュメントの原本とドキュメントのユーザ原稿とを同期することができる、本開示の原理による具体的な私的モードの同期処理の動作フローを示すフローチャートである。
【図１０】異なる動作モードにオーサリングアプリケーションを構成することができる、本開示の原理による典型的なトグル処理の動作フローを示すフローチャートである。
【図１１】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１２】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１３】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１４】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１５】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１６】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１７】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１８】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図１９】本開示の原理による、第１と第２ユーザコンピューティング装置の第１のユーザおよび第２のユーザがドキュメントを同時に編集する共同オーサリングセッション中の時間内に、相違箇所にある記憶装置、第１のユーザコンピューティング装置および第２のユーザコンピューティング装置上にそれぞれ格納されたキャッシュの概略ブロック図である。
【図２０】本開示の原理による、独創的な態様の具体例である機能を有するユーザコンピューティング装置を示すオーサリングシステムの概略ブロック図である。
【図２１】本開示の原理による、ユーザコンピューティング装置がドキュメントの原本とドキュメントのユーザ原稿を同期できる典型的なオーサリング処理の動作フローを示すフローチャートである。
【図２２】本開示の原理による、ユーザ原稿をオフラインで編集した後に、ユーザコンピューティング装置がドキュメントの原本とドキュメントのユーザ原稿とを同期させることができる典型的な移行処理の動作フローを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下の詳細な説明において、これに関する一部分を形成する添付の図面が参照され、実例として具体的な実施形態または具体例が示される。本開示はコンピューティングシステム上のオペレーティングシステム上で作動するアプリケーションプログラムと共に実行するプログラムモジュールの一般的なコンテキストに記載されるが、当業者は本開示が他のプログラムモジュールと組み合わせてさらに実施されてもよいことを認識するであろう。本明細書に記述された実施形態は組み合わせてもよいし、他の実施形態が本開示の精神または範囲から外れずに利用されてもよい。したがって、以下の詳細な説明は限定的な意味にとらえるべきではなく、本発明の範囲は添付された請求項およびそれらの等価物によって規定される。
【００１２】
本開示の実施形態は、複数ユーザが共同して1つのドキュメントをオーサリングできる環境を提供する。図１は、本開示の独創的な態様の具体例である機能を有するオーサリングシステム１００の具体例を示している。オーサリングシステム１００は、ドキュメント１５０の原本を格納する記憶装置１２０を含む。１つの実施形態において、記憶装置１２０はコンピューティング装置を含んでもよい。別の実施形態において、記憶装置１２０は１つ以上の記憶装置（例えば、サーバコンピューティング装置のネットワーク）を含むことができる。
【００１３】
オーサリングシステム１００は、さらに記憶装置１２０に対して通信でつながることができる少なくとも１つのユーザコンピューティング装置１１０を含む。各ユーザコンピューティング装置１１０は、ドキュメント１５０のユーザ原稿１５５の生成およびユーザ原稿１５５の編集により、ドキュメント１５０を編集できる。ユーザコンピューティング装置１１０が、他のユーザコンピューティング装置と共有される更新を記憶装置１２０に定期的に送信し、かつ他のユーザコンピューティング装置からの更新を定期的に記憶装置１２０から取得する場合、ドキュメント１５０のユーザ原稿１５５は同期される。
【００１４】
本明細書で用いられる用語として、ユーザコンピューティング装置１１０は、オーサリングされるユーザ原稿ドキュメントを原本ドキュメントから取得するように構成されるあらゆるコンピューティング装置を含む。ユーザコンピューティング装置１１０は、記憶装置１２０とは異なることができる、または、記憶装置１２０上で実施される別途のユーザアカウントを含むことができる。１つの実施形態において、１つのドキュメントのための記憶装置１２０として役割をするコンピューティング装置は、異なるドキュメントのためのユーザコンピューティング装置１１０として役割をしてもよいし、逆もまた同様である。
【００１５】
図１に示される具体例において、４つのユーザコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃおよび１１０Ｄは、記憶装置１２０に通信でつながれる。但し、他の実施形態において、任意の数のコンピューティング装置１１０が記憶装置１２０に連結されてもよい。示された具体例において、各ユーザコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃおよび１１０Ｄは、ユーザコンピューティング装置のユーザによって生成された更新を記憶装置１２０に送信することができ、他のユーザコンピューティング装置のユーザによって生成された更新を記憶装置１２０から要求することができる。１つの実施形態において、記憶装置１２０は、サーバコンピューティング装置になりえ、ユーザコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃおよび１１０Ｄは、クライアントコンピューティング装置になりえる。
【００１６】
図２に示されるように、記憶装置１２０上に格納されたドキュメント１５０の原本は、コンテンツ１５２およびメタデータ１５４を含むことができる。ある実施形態において、メタデータ１５４は、コンテンツ１５２とは別々に格納することができる。例えば、コンテンツ１５２はドキュメント１５０内に格納することができ、メタデータ１５４はドキュメント１５０とは別に表（図示せず）内に保存することができる。但し、他の実施形態において、メタデータ１５４はドキュメント１５０内に格納することができる。
【００１７】
ユーザコンピューティング装置１１０上のオーサリングアプリケーション１３０は、ドキュメント１５０のユーザ原稿１５５の対応するコンテンツおよびメタデータを処理し操作する。一般に、オーサリングアプリケーション１３０は、コンテンツ１５２に対する更新をメタデータ１５４に対する更新とは別々に同期させることができる。例えば、メタデータ更新１５４は、記憶装置１２０およびユーザコンピューティング装置１１０中で自動的に同期されてもよい。しかし、各ユーザコンピューティング装置１１０からのコンテンツ更新１５２は、それぞれのユーザの要求で同期されてもよい。
【００１８】
本明細書で用いられる用語として、メタデータ更新は、オーサリングされるドキュメントのメタデータ１５４に対してなされるあらゆる追加、削除および／または修正を表す。ドキュメントメタデータの非限定的な具体例は、コンテンツロック、プレゼンス情報および他のそのようなデータを含む。本明細書で論じられるように、コンテンツロックは、ロックを所有しないユーザによるロック内のコンテンツの編集を禁じる。プレゼンス情報は、オーサリングされるドキュメントを編集する意志を示したユーザを示す。
【００１９】
ある実施形態においては、メタデータは、周期間隔で記憶装置１２０とユーザコンピューティング装置１１０との間で交換されることができる。１つの実施形態において、メタデータは数秒おきに交換されてもよい。但し、メタデータの交換は、より短時間またはより長時間の区間で発生してもよい。他の実施形態において、ユーザが最終処理の行為（例えば、ドキュメントの保存）を実行する場合に、メタデータが交換されてもよい。
【００２０】
本明細書で用いられる用語として、コンテンツ更新は、オーサリングされるドキュメントの本質的なコンテンツ１５２に対してされるあらゆる追加、削除および／または修正を表す。例えば、ワープロ文書のためのコンテンツ更新は、追加パラグラフ（すなわち、またはそのセクション）、削除パラグラフ（すなわち、またはそのセクション）および／または修正パラグラフ（すなわち、またはそのセクション）を含んでもよい。別の実施形態において、プレゼンテーションドキュメントのためのコンテンツ更新は、追加、削除および／または修正された画像、テキスト、アニメーション、音声および他のそのようなデータ対象物を含むことができる。
【００２１】
ある実施形態において、コンテンツはユーザの要求でのみ交換される。例えば、１つの実施形態において、ユーザコンピューティング装置１１０の１ユーザは、他のユーザとコンテンツ変更を共有することを要求してもよい。別の実施形態において、ユーザコンピューティング装置１１０の１ユーザは、他のユーザによるコンテンツ変更の閲覧を要求してもよい。但し、他の実施形態において、コンテンツは自動的に交換されてもよい。
【００２２】
図３を参照すると、コンテンツロックは、ドキュメントの一部が別のユーザによって要求されたことを示すことにより、編集の矛盾を禁じている。ある実施形態において、コンテンツロックは、ユーザが別のユーザによって要求されたドキュメントの一部を編集するのを防ぐことができる。但し、他の実施形態において、ユーザは、コンテンツロックを中断し、ドキュメントの一部を編集することを選択することができる。そのような場合、ロックされたセクションを編集する場合、ロックは、矛盾が生じる可能性をユーザに警告することができる。
【００２３】
図３は、５つのユニットのデータ２１０、２２０、２３０、２４０および２５０を有するドキュメント２００の概略ブロック図である。１つの実施形態において、ドキュメント２００はワープロ文書であり、データ２１０〜２５０のユニットはテキストのパラグラフである。別の実施形態においては、ドキュメント２００はプレゼンテーションドキュメントであり、データ２１０の第１のユニットはタイトルまたは題目であり、データ２２０の第２のユニットは画像または他のデータ対象物であり、残りのユニットであるデータ２３０、２４０および２５０はテキストのブロックである。
【００２４】
第１のユーザは、ドキュメント２００のデータ２１０〜２５０であるユニットの１つ以上のまわりにロックを生成することができる。図３に示される具体例において、クロスハッチングによって示されるように、第１のユーザはデータ２２０の第２のユニットをロックしている。コンテンツロックの生成により、第１のユーザは、第１のユーザがデータ２２０の第２のユニットを編集するつもりであることを示している。例えば、第１のユーザが積極的にデータ２２０のユニットを編集している場合、第１のユーザはロックを生成することができる。別の実施形態において、第１のユーザはロックを生成し、その後、後でデータ２２０のユニットを編集することができる。他の実施形態において、第１のユーザがドキュメントを編集する場合、ロックは自動的に生成される。上で言及されるように、ドキュメント２００を管理するオーサリングアプリケーションは、第１のユーザ以外のユーザが、ロックされたデータユニット２２０を編集することを妨げてもよい。
【００２５】
一般に、第１のユーザによって生成されたコンテンツロックは、ロックの存続の間、ドキュメントにアクセスする他のすべてのユーザに対して表示される。１つの実施形態において、第１のユーザもコンテンツロックを閲覧することができる。ロックは、異なるタイプのしるしを用いて表示することができる。例えば、１つの実施形態において、データのロックされたユニットの背景が、着色、ぼかし、またはパターン化されてもよい（例えば、図３のデータユニット２２０を参照）。別の実施形態において、ロックされたユニットのコンテンツ（例えば、テキスト、画像、形状または他のデータ対象物）が、着色、ぼかし、またはパターン化されてもよい。さらに別の実施形態においては、ロックを示すデータのロックされたユニットに隣接した位置にボックス、ブラケットまたはシンボルを表示することができる。
【００２６】
ロックメタデータは、様々な異なるフォーマットで格納することができる。例えば、ロックメタデータは表形式で格納されてもよい。さらにプレゼンスメタデータは、様々なフォーマットで格納することができる。例えば、プレゼンスメタデータは表で格納することができる。但し、別の実施形態において、ロックおよびプレゼンスメタデータは、異なるフォーマットで格納することができる。
【００２７】
一般に、本開示の原理による独創的な態様の具体例である機能を有するオーサリング環境は、ユーザコンピューティング装置（例えば、パーソナルコンピュータ、サーバコンピュータ、ノート型コンピュータ、ＰＤＡ、スマートフォンまたは他のそのようなコンピューティング装置）上で実行することができる。オーサリング環境を実行するように構成されたユーザコンピューティングシステム４００の非限定的な実施形態は、図４に関連して本明細書に記述される。
【００２８】
図４において、本開示の原理を実施するための典型的なコンピューティングシステム４００は、ユーザコンピューティング装置４１０などのようなユーザコンピューティング装置を含む。基本構成において、ユーザコンピューティング装置４１０は、システムメモリ４２０内に格納されたアプリケーションとプログラムを実行するために典型的には少なくとも１つの処理装置４１５を含む。コンピューティング装置４１０の精密な構成およびタイプに依存して、システムメモリ４２０は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋｓ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または他のメモリ技術を含んでもよいが限定的でない。
【００２９】
システムメモリ４２０は、典型的にはコンピューティング装置４１０の動作を制御するのに適している、米国ワシントン州、レドモンドのマイクロソフト社からのＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどのようなオペレーティングシステム４２２を格納する。システムメモリ４２０は、さらにドキュメントのユーザ原稿４２７を格納することができるドキュメントキャッシュ４２６を含んでもよい。さらにドキュメントのメタデータ４２９は、ユーザキャッシュ４２６内に格納することができる。
【００３０】
システムメモリ４２０は、さらにドキュメントを生成し編集するためのオーサリングアプリケーション４２４などのような１つ以上のソフトウェアアプリケーションを格納してもよい。本開示の原理によるドキュメントをオーサリングするのに適しているオーサリングアプリケーション４２４の非限定的な具体例は、米国ワシントン州、レドモンドのマイクロソフト社からのマイクロソフト「登録商標」ＯＦＦＩＣＥ  ＷＯＲＤオーサリングソフトウェアである。オーサリングアプリケーションの他の非限定的な具体例は、ＰＯＷＥＲＰＯＩＮＴ「登録商標」プレゼンテーションソフトウェア、およびＶＩＳＩＯ「登録商標」描画作図ソフトウェアを含み、両方とも米国ワシントン州、レドモンドのマイクロソフト社からのものである。
【００３１】
コンピューティング装置４１０は、さらにデータの入力および操作のために、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などのような入力装置４３０を有していてもよい。表示画面、スピーカ、プリンタなどのような出力装置４３５も含まれていてもよい。これらの出力装置４３５は、技術的によく知られており、詳細を本明細書で論じる必要はない。
【００３２】
コンピューティング装置４１０は、さらに他のコンピューティング装置（例えば、図１の記憶装置１２０）と装置４１０とが通信し合うことを分散コンピューティング環境（例えば、イントラネットまたはインターネット）のネットワークを通して可能にする通信結合４４０を包含してもよい。限定ではなく具体例として、通信装置媒体４４０は、有線ネットワークまたは直接有線接続などのような有線媒体、および音響、ＲＦ、赤外線および他の無線媒体などのような無線媒体を含む。
【００３３】
図５〜図１９を参照して、オーサリングアプリケーションがコンテンツとメタデータを記憶装置と交換する同期処理は、オーサリングアプリケーションのユーザによって選択された私的モードに依存して異なってもよい。図５は、ユーザコンピューティング装置１１０上で実行されたオーサリングシステム１００が、記憶装置１２０に格納されたドキュメントの原本１５０でオーサリングされるドキュメントのユーザ原稿１５５を同期させることができる、典型的な同期処理５００を示すフローチャートである。同期処理５００は、開始モジュール５０２において初期化して開始し、第１の更新動作５０４に移る。
【００３４】
第１の更新動作５０４は、原本１５０のメタデータとユーザ原稿１５５のメタデータとを同期させる。ある実施形態において、第１の更新動作５０４は、ユーザとの対話を必要とせずに、メタデータを同期させる。例えば、第１の更新動作５０４は、周期間隔で記憶装置１２０とユーザコンピューティング装置１１０との間のメタデータの交換を提供してもよい。１つの実施形態において、第１の更新動作５０４は、数秒おきにメタデータの交換を提供する。但し、他の実施形態において、第１の更新動作５０４は、より短時間またはより長時間の区間においてメタデータの交換が発生するように提供してもよい。
【００３５】
取得動作５０６は、他のユーザからの任意のコンテンツ更新が有効か否かを判断するために、記憶装置１２０の記憶装置キャッシュ１２５を定期的にチェックする。当該コンテンツ更新が有効な場合、取得動作５０６はコンテンツ更新を取得する。１つの実施形態において、取得動作５０６は、ユーザ装置１１０に記憶装置１２０をポーリングさせ、記憶装置キャッシュ１２５から任意のコンテンツ更新を引き出させる。別の実施形態において、取得動作５０６は、要求に応じて記憶装置１２０にユーザ装置１１０に対してコンテンツ更新を送信させる。但し、他の実施形態において、記憶装置１２０は、ユーザ装置１１０からの催促なしに、ユーザ装置１１０に対して任意の有効なコンテンツ更新を送信する。
【００３６】
判定モジュール５０８は、オーサリングアプリケーション１３０が構成される動作モード（例えば、公的または私的）を判定する。例えば、判定モジュール５０８は、オーサリングアプリケーションが公的モード動作で構成されると判定してもよい。一般に、オーサリングアプリケーション１３０が公的モードで動作する場合、オーサリングアプリケーション１３０は一般に記憶装置１２０とコンテンツ更新を共有する。１つの実施形態において、公的モードにおいて動作するオーサリングアプリケーション１３０は、最終処理の行為（例えば、ユーザはドキュメントを保存する、自動保存機能がアクティブになるなど）の実行に際して記憶装置１２０に対してコンテンツ更新を伝送する。
【００３７】
別の実施形態において、判定モジュール５０８は、オーサリングアプリケーション１３０が私的モード動作で構成されると判定してもよい。一般に、私的モードで一般に動作するオーサリングアプリケーション１３０は、記憶装置１２０とコンテンツ更新を共有しない。１つの実施形態において、私的モードで動作するオーサリングアプリケーション１３０は、最終処理の行為（例えば、ユーザはドキュメントを保存する、オートセーブ機能がアクティブになるなど）の実行に際してでさえ、記憶装置１２０に対してコンテンツ更新を伝送しない。当該実施形態において、ユーザが公的モード動作に対してトグルする場合のみ、オーサリングアプリケーション１３０によって生成されたコンテンツ更新は、記憶装置１２０へ送信される。
【００３８】
従って、オーサリングアプリケーション１３０が公的モード動作に構成されると判定モジュール５０８が判定する場合、送信動作５１０は、オーサリングアプリケーション１３０によって生成されたコンテンツ更新を記憶装置１２０に対して送信する。同期処理５００は、停止モジュール５１２で完結されて終了する。但し、オーサリングアプリケーション１３０が私的モード動作で構成されると判定モジュール５０８が判定した場合、同期処理５００は、送信動作５１０を実施せずに、停止モジュール５１２に移る。
【００３９】
図６は、公的モード同期サイクルを実施するように構成されたオーサリングシステム６００の概略ブロック図である。オーサリングシステム６００は、一般に記憶装置６２０および１つ以上のユーザ装置６１０を含む。オーサリングされるドキュメントのコンテンツ６５２およびメタデータ６５４は、記憶装置６２０のメモリ６２５内に格納される。図６に示される具体例において、第１のユーザ装置６１０Ａおよび第２のユーザ装置６１０Ｂの両方は、記憶装置６２０に格納されたコンテンツ６５２およびメタデータ６５４にアクセスする。各ユーザコンピューティング装置６１０Ａおよび６１０Ｂは、ローカルキャッシュ６３５Ａおよび６３５Ｂをそれぞれ含み、オーサリングされるドキュメントのユーザ原稿６５５Ａおよび６５５Ｂをそれぞれ含む。
【００４０】
各ユーザコンピューティング装置６１０のローカルキャッシュ６３５は、発行モジュール６３２、保護モジュール６３４、取得モジュール６３６、統合モジュール６３８およびメタデータ同期モジュール６３９を格納するように構成される。保護モジュール６３４はローカルキャッシュ６３５に対するコンテンツ変更を格納するように構成される。１つの実施形態において、保護モジュール６３４は、発行モジュール６３２起動の引き金となる。発行モジュール６３２は、記憶装置６２０の格納メモリ６２５にローカルキャッシュ６３５からのコンテンツ更新を提供する（例えば、配信する、伝送するなど）ように構成される。１つの実施形態において、発行モジュール６３２は、記憶装置６２０に対する伝送のために、ローカルキャッシュ６３５内のユーザ原稿６５５によって生成されたコンテンツ更新をキューに入れるように構成される。
【００４１】
取得モジュール６３６は、記憶装置６２０の格納メモリ６２５からのコンテンツ更新を取得する（例えば、取り出す、受信するなど）ように構成される。１つの実施形態において、取得モジュール６３６は、ユーザ装置６１０のローカルキャッシュ６３５内の格納メモリ６２５から得られたコンテンツ更新をキューに入れるように構成される。統合モジュール６３８は、ドキュメントのユーザ原稿６５５へのコンテンツ変更をインスタンス化するように構成される。１つの実施形態において、統合モジュール６３８は、コンテンツ更新の有効性を示し、かつ変更を検討、無視、またはインスタンス化するユーザ選択を受信するように構成される。
【００４２】
メタデータ同期モジュール６３９は、オーサリングされるドキュメントのユーザ原稿６５５と、記憶装置６２０に格納された原本との間のメタデータ更新を同期させる。１つの実施形態において、メタデータ同期モジュール６３９は、規定時間間隔で記憶装置６２０とユーザ装置６１０との間のメタデータ更新を伝送する。別の実施形態において、メタデータ更新が有効になるように、メタデータ同期モジュール６３９はメタデータ更新を伝送する。メタデータ更新が記憶装置６２０およびユーザ装置６１０内で規則的に共有されるので、ユーザ装置６１０のローカルキャッシュ６３５に格納されたメタデータは、典型的にはオーサリングされるドキュメント原本のメタデータの現在状態を反映する。
【００４３】
図７は、ドキュメントの原本を備えたオーサリングアプリケーションによって編集されているドキュメントを、オーサリングアプリケーションが同期させることができる公的モード同期処理７００のための動作フローの具体例を示すフローチャートである。公的モード同期処理７００は、開始モジュール７０２にて初期化して開始し、ユーザの命令に従ってドキュメントを編集するオーサリング動作７０４に移る。例えば、オーサリング動作７０４は、ユーザによって実行されたキーボードストロークを確認し、対応する編集命令を実施してもよい。別の実施形態において、オーサリング動作７０４は、ユーザによって実行されたマウスクリックを確認し、対応する編集命令を実施してもよい。
【００４４】
第１の格納動作７０６は、定期的に任意のメタデータ更新を収集し、ユーザ装置のローカルキャッシュに対してそれらを保存する。従って、オーサリングアプリケーションが制御不能になったり、そうでなければ誤動作をしたりする場合でも、メタデータ更新は保護される。１つの実施形態において、ユーザがドキュメントへの変更を保存する命令を与える場合、第１の格納動作７０６はメタデータを保存する。別の実施形態において、自動的な保存機能がアクティブである場合、第１の格納動作７０６はメタデータを格納する。別の実施形態において、第１の格納動作７０６は、ユーザとの対話処理にかかわらず規定時間間隔で（例えば、数ミリ秒、秒、分、等おきに）メタデータを保存する。
【００４５】
第１の発行動作７０８は、ローカルキャッシュに格納された任意のメタデータ更新も定期的に記憶装置に送信する。一般に、第１の発行動作７０８は、ユーザとのどのような対話も必要とせずに、メタデータ更新を自動的に送信する。例えば、第１の発行動作７０８は、規定時間間隔（例えば、数ミリ秒、秒、分、等おき）にメタデータ（例えば、ソフトウェア差分（ｄｅｌｔａｓ））に対する変更を伝送してもよい。別の実施形態において、当該メタデータ更新がローカルキャッシュにおいて有効な場合、第１の発行動作７０８は記憶装置に対してメタデータ更新を伝送する。別の実施形態において、第１の発行動作７０８は記憶装置の要求でメタデータ更新を伝送する。
【００４６】
第２の格納動作７１０は、定期的にユーザ装置のローカルキャッシュに対する任意のコンテンツ更新も保存する。従って、オーサリングアプリケーションが制御不能になったり、そうでなければ誤動作をしたりした場合でも、コンテンツ更新は保護される。１つの実施形態において、第１の格納動作７０６がメタデータ更新を格納する場合、第２の格納動作７１０はコンテンツ更新を保存する。但し、他の実施形態において、第２の格納動作７１０は、第１の格納動作７０６がメタデータ更新を格納するのとは異なる時にローカルキャッシュに対するコンテンツ変更を保存してもよい。１つの実施形態において、コンテンツ更新をそれらが生成された順序で続いて伝送されることを可能にするために、第２の格納動作７１０は、キューまたは他の順序付けられたリストでコンテンツに対する変更を保存してもよい。
【００４７】
第２の発行動作７１２は記憶装置へコンテンツ更新を送信する。１つの実施形態において、共有すべき命令がユーザによって与えられる場合（例えば、ユーザは明示的に発行行為を実行する、オーサリングアプリケーションの自動保存機能が実施される、など）、第２の発行動作７１２は、記憶装置に対してコンテンツ更新を伝送する。別の実施形態において、当該コンテンツ更新がオーサリングアプリケーションから有効な場合、第２の発行動作７１２はコンテンツ更新を伝送する。別の実施形態において、第２の発行動作７１２は、ユーザにどのような対話も要求せずに、コンテンツ更新を自動的に送信する。さらに別の実施形態において、第２の発行動作７１２は、記憶装置の要求でコンテンツ更新を送信してもよい。
【００４８】
第１のインスタンス動作７１４は、定期的に記憶装置からのメタデータ更新を取得し、オーサリングアプリケーションによってオーサリングされているドキュメントへ自動的にメタデータ更新をインスタンス化する。例えば、第１のインスタンス動作７１４は、規定時間間隔で（例えば、数ミリ秒、秒、分、等おきに）他のユーザによって生成されたメタデータ更新を取得してもよい。別の実施形態において、当該メタデータ更新が有効な場合、第１のインスタンス動作７１４はメタデータ更新を取得する。典型的には、メタデータ更新をインスタンス化するよう要求されるユーザとの対話は全くない。例えば、メタデータ更新が取得される場合、任意の新しく生成されたロックがユーザに対して自動的に表示される。
【００４９】
第２のインスタンス動作７１６は、定期的に記憶装置からのコンテンツ更新を取得し、閲覧および／またはインスタンス化のためにコンテンツ更新をユーザに利用可能にする。例えば、第２のインスタンス動作７１６は、規定時間間隔で（例えば、数ミリ秒、秒、分、等おきに）他のユーザによって生成されたコンテンツ更新を取得してもよい。別の実施形態において、当該コンテンツ更新が有効な場合、第２のインスタンス動作７１６はコンテンツ更新を取得する。典型的には、オーサリングアプリケーションは、コンテンツ更新が有効であることをユーザに対して示し、ユーザがコンテンツ更新を検討するべきか、インスタンス化するべきか、無視するべきか否かを選択することを可能にする。公的モード同期処理７００は停止モジュール７１８で完結し終了する。
【００５０】
図８は、私的モード同期サイクルを実施するように構成されたオーサリングシステム８００の概略ブロック図である。オーサリングシステム８００は、一般に記憶装置８２０および１つ以上のユーザ装置８１０を含む。オーサリングされるドキュメントのコンテンツ８５２およびメタデータ８５４は、記憶装置８２０のメモリ８２５内に格納される。図８に示される具体例において、第１のユーザ装置８１０Ａおよび第２のユーザ装置８１０Ｂは、記憶装置８２０に格納されたコンテンツ８５２およびメタデータ８５４に同時にアクセスする。ユーザコンピューティング装置８１０Ａおよび８１０Ｂは、ローカルキャッシュ８３５Ａおよび８３５Ｂと、オーサリングされるドキュメントのユーザ原稿８５５Ａおよび８５５Ｂとを含む。
【００５１】
ユーザコンピューティング装置８１０のローカルキャッシュ８３５は、発行モジュール８３２、保護モジュール８３４、取得モジュール８３６、統合モジュール８３８およびメタデータ同期モジュール８３９を格納するように構成される。保護モジュール８３４は、記憶装置８２０の格納メモリ８２５に対する後の伝送のために、ユーザ原稿８５５からローカルキャッシュ８３５にコンテンツ更新を格納するように構成される。１つの実施形態において、保護モジュール８３４は、更新が生成される順序に従って、コンテンツ更新を格納するように構成される。例えば、保護モジュール８３４は、記憶装置８２０に対する伝送のために、ローカルキャッシュ８３５内のユーザ原稿８５５によって生成されたコンテンツ更新をキューに入れるように構成される。
【００５２】
発行モジュール８３２は、ローカルキャッシュ内に格納されたコンテンツ変更を記憶装置８２０に送信するように構成される。一般に、コンテンツ変更を発行する命令を受ける場合、発行モジュール８３２はコンテンツ変更を共有する。例えば、ユーザがオーサリングアプリケーションのユーザインタフェースを介して発行オプションを選択すれば、発行モジュール８３２は記憶装置８２０にコンテンツ変更を送信することができる。保護モジュール８３４は、自動的に発行モジュール８３２の引き金とはならない。
【００５３】
取得モジュール８３６は、記憶装置８２０の格納メモリ８２５からのコンテンツ更新を取得する（例えば、取り出す、受信するなど）ように構成されてもよい。１つの実施形態において、取得モジュール８３６は、オーサリングされるドキュメントのユーザ原稿８５５への、後のインスタンス化のためにローカルキャッシュ８３５内で格納メモリ８２５から得られたコンテンツ更新をキューに入れるように構成される。統合モジュール８３８は、ドキュメントのユーザ原稿８５５へのコンテンツ変更のインスタンス化を容易にするように構成される。例えば、統合モジュール８３８は、新規のコンテンツ更新がインスタンス化に対して利用可能であることをユーザに対して示すように構成されてもよい。別の実施形態において、統合モジュール８３８は、オーサリングされるドキュメントのユーザ原稿８５５へのコンテンツ更新を自動的にインスタンス化するように構成されてもよい。
【００５４】
メタデータ同期モジュール８３９は、オーサリングされるドキュメントのユーザ原稿８５５と、記憶装置８２０に格納された原本との間のメタデータ更新を同期させる。１つの実施形態において、メタデータ同期モジュール８３９は、図６に関連して上述された、メタデータ同期モジュール６３９と同様である。但し、他の実施形態において、メタデータ同期モジュール８３９は、ユーザ装置８１０と記憶装置８２０との間のメタデータを同期させるように他の方法で構成されてもよい。
【００５５】
図９は、ドキュメントの原本を備えたオーサリングアプリケーションによって編集されているドキュメントを、オーサリングアプリケーションが同期できる私的モード同期処理９００のための動作フローの具体例を示すフローチャートである。私的モード同期処理９００は、開始モジュール９０２にて初期化して開始し、ユーザの命令に従って、オーサリングされるドキュメントを編集するオーサリング動作９０４に移る。例えば、オーサリング動作９０４は、図７に関連して上述されたオーサリングアプリケーション７０４と同様としてよい。
【００５６】
第１の格納動作９０６は、オーサリング動作９０４が実施される時に生成される任意のメタデータ更新を定期的にローカルキャッシュに保存する。１つの実施形態において、第１の格納動作９０６は、図７に関して上述された公的モード同期処理７００の第１の格納動作７０６と同様である。但し、他の実施形態において、様々な処理がメタデータ更新を格納するために用いられてもよい。第１の発行動作９０８は、定期的にローカルキャッシュから記憶装置にメタデータ更新を送信する。１つの実施形態において、第１の発行動作９０８は、図７に関して上述された、公的モード同期処理７００の第１の発行動作７０８と同様である。但し、他の実施形態において、メタデータ更新を共有するために様々な処理が用いられてもよい。
【００５７】
第２の格納動作９１０は、オーサリング動作９０４がユーザ装置上で実施される時に生成された任意のコンテンツ更新を、ユーザ装置のローカルキャッシュに定期的に保存する。一般に、ユーザがデータ保護行為を（例えば、ドキュメントを保存することを選択して）実行する場合、第２の格納動作９１０が生じる。１つの実施形態において、第２の格納動作９１０は、図７に関して上述された、公的モード同期処理７００の第２の格納動作７１０と同様である。但し、他の実施形態において、コンテンツ更新を格納するために様々な処理が用いられてもよい。
【００５８】
判定モジュール９１２は、記憶装置に対してコンテンツ更新をアップロードするべきか否かを判断する。１つの実施形態において、判定モジュール９１２は、コンテンツ変更を共有する命令をユーザが与えたか否かを判断する。例えば、判定モジュール９１２は、ユーザがオーサリングアプリケーションのユーザインタフェース上の「発行」ボタンを選択したか否かを判断してもよい。ユーザがコンテンツ変更を共有する命令を与えたと判定モジュール９１２が判定する場合、第２の発行動作９１４は記憶装置にコンテンツ変更を送信する。但し、ユーザがコンテンツを共有する命令を与えたと判定モジュール９１２が判定する場合、私的な同期処理９００は第２の発行動作９１４をスキップし、第１のインスタンス動作９１６に移る。
【００５９】
第１のインスタンス動作９１６は、定期的に記憶装置からのメタデータ更新を取得し、オーサリングアプリケーションによってオーサリングされているドキュメントに自動的にメタデータ更新をインスタンス化する。例えば、第１のインスタンス動作９１６は、図７に関して上述された公的モード同期処理７００の第１のインスタンス動作７１４と同様であってもよい。但し、他の実施形態において、記憶装置からメタデータを取得するために他の処理が利用されてもよい。
【００６０】
第２のインスタンス動作９１８は、記憶装置からコンテンツ更新を定期的に取得し、閲覧および/またはインスタンス化のためにコンテンツ更新をユーザに利用可能にする。例えば、第２のインスタンス動作９１８は、図７に関して上述された公的モード同期処理７００の第２のインスタンス動作７１６と同様であってもよい。但し、他の実施形態において、記憶装置からのコンテンツを取得するために他の処理が利用されてもよい。私的モード同期処理９００は停止モジュール９２０で完結し終了する。
【００６１】
図１０は、公的モード動作または私的モード動作へオーサリングアプリケーションが選択的に構成されることができるトグル処理１０００のための動作フローを示すフローチャートである。トグル処理１０００は、開始モジュール１００２にて初期化して開始し、受信動作１００４に移る。受信動作１００４は、特定の動作モードの選択を取得する。１つの実施形態において、受信動作１００４は、ユーザーインターフェイスツールを介してモード選択を確認してもよい。例えば、受信動作１００４は、オーサリングアプリケーション・ユーザインタフェースのユーザインタフェースのトグルボタンをユーザがクリックしたと判定してもよい。
【００６２】
トグル動作１００６は、選択された動作モードにオーサリングアプリケーションを設定する。例えば、トグル動作１００６は、私的動作モードで目下構成されているオーサリングアプリケーションを公的動作モードに設定してもよい。当該実施形態において、格納されたコンテンツ変更は、ドキュメントの原本と自動的に共有されてもよい。他の実施形態において、トグル動作１００６は、私的動作モードで目下構成されているオーサリングアプリケーションを公的動作モードに構成してもよい。当該実施形態において、オーサリングアプリケーションは、原本からのコンテンツ変更の保留を開始する。１つの実施形態において、オーサリングアプリケーションは、ローカルキャッシュメモリ内のコンテンツ変更の格納を開始する。
【００６３】
表示動作１００８は、ユーザに選択された動作モードを示すために、オーサリングアプリケーションのユーザインタフェースを構成する。例えば、ユーザが公的モードでオーサリングアプリケーションを作動することを選択したならば、表示動作１００８はコンテンツ変更が他のユーザと共有されていることをユーザに対して示してもよい。ユーザが私的モードでオーサリングアプリケーションを作動することを選択したならば、表示動作１００８はコンテンツ変更が他のユーザと共有されていないことをユーザに対して示してもよい。トグル処理１０００は、停止モジュール１０１０にて完結して終了する。
【００６４】
図１１〜図１９を参照しながら、アプリケーション例を通じて読んでいくことにより、本開示の原理は一層よく理解される。図１１〜図１９は、記憶装置１１２０に格納されたドキュメントの原本、第１のオーサリングアプリケーション１１３０Ａによって編集されているドキュメントの第１のユーザ原稿、および第２のオーサリングアプリケーション１１３０Ｂによって編集されている第２のユーザ原稿に対する共同オーサリングセッション中に行なわれた変更を表わす。ユーザコンピューティング装置のそれぞれのローカルキャッシュ１１３５Ａおよび１１３５Ｂ内に格納されたコンテンツとメタデータの更新がさらに示される。１つの実施形態において、第１のオーサリングアプリケーション１１３０Ａおよび第２のオーサリングアプリケーション１１３０Ｂは、ドキュメントを同時に編集する。但し、他の実施形態において、第１および第２のオーサリングアプリケーション１１３０Ａ、１１３０Ｂは、同一の処理を用いて、異なる時にドキュメントを編集（すなわちアクセス）することができる。
【００６５】
図１１において、第１のオーサリングアプリケーション１１３０Ａは、公的モード動作で構成され、第２のオーサリングアプリケーション１１３０Ｂは、私的モード動作で構成される。但し、他の実施形態において、各オーサリングアプリケーション１１３０は、任意の希望モード動作で構成することができる。第１のオーサリングアプリケーション１１３０Ａが公的モードで動作しているので、第１のオーサリングアプリケーション１１３０Ａは一般に図７に関して上述された公的モード同期処理７００を追随する。第２のオーサリングアプリケーション１１３０Ｂが私的モードで動作しているので、第２のオーサリングアプリケーション１１３０Ｂは一般に図９に関して上述された私的モード同期処理９００を追随する。
【００６６】
ドキュメントの原本には対応するマスタロックテーブルがある。便宜のために、図１１〜図１９に示される具体例において、マスタロックテーブルはドキュメントの原本の一部として表示される。但し、他の実施形態において、マスタロックテーブルは、ドキュメントの原本とは別に格納することができる。同様に、容易に理解できるように、ドキュメントの各ユーザ原稿に関連づけたロックは、ユーザ原稿の一部として図１１〜図１９に示される。但し、他の実施形態において、メタデータは、各ユーザ原稿とは別に格納されてもよい。
【００６７】
示された具体例において、原本のコンテンツは、テキスト「Ｈｅｌｌｏ  Ｗｏｒｌｄ」を含む第１のデータユニットを含み、原本のメタデータは、第１のデータユニットのまわりに第１のロックＥ１を含む。第１のロックＥ１は、第１のオーサリングアプリケーション１１３０Ａの第１のユーザに割り当てられる。従って、第１のオーサリングアプリケーション１１３０Ａは、第１のデータユニットを編集可能である。第２のオーサリングアプリケーション１１３０Ｂなどのような他のオーサリングアプリケーションは、第１のデータユニットの編集を禁じられる。原本のコンテンツおよびメタデータは、ユーザ装置のローカルキャッシュ１１３５Ａ、１１３５Ｂに反映される。
【００６８】
図１１において、第１のオーサリングアプリケーション１１３０Ａおよび第２のオーサリングアプリケーション１１３０Ｂのそれぞれは、ドキュメントの原本にアクセスし、編集を開始する。第１のオーサリングアプリケーション１１３０Ａは、取り消し線注釈によって示されるように用語「Ｈｅｌｌｏ」を削除するために、ドキュメントの第１のユーザ原稿を編集する（図７のオーサリング動作７０４を参照）。第２のオーサリングアプリケーション１１３０Ｂは、テキスト「Ｇｏｏｄｂｙｅ  Ｗｏｒｌｄ」を含む第２のデータユニットを追加するために、ドキュメントの第２のユーザ原稿を編集する（図９のオーサリング動作９０４を参照）。第２のユーザに割り当てられた第２のロックＥ２は、第２のデータユニットのまわりに生成される。
【００６９】
図１２は、公的モード同期処理７００および私的モード同期処理９００の第１の格納動作７０６および９０６の効果をそれぞれ図示する。各オーサリングアプリケーション１１３０Ａ、１１３０Ｂは、記憶装置１１２０に伝送するためのそれぞれのローカルキャッシュ１１３５Ａ、１１３５Ｂに対するドキュメントのそれぞれのユーザ原稿において生成された任意のメタデータ変更を保存する。示された具体例において、第１のオーサリングアプリケーション１１３０Ａは新規のロックを追加していない、または第１のロックＥ１をリリースしている。従って、メタデータに対するどの変更も、図１２のローカルキャッシュ１１３５Ａには格納されない。但し、第２のオーサリングアプリケーション１１３０Ｂは、新規のデータユニットのまわりに第２のロックＥ２を追加している。従って、第２のロックＥ２は、ローカルキャッシュ１１３５Ｂのメタデータテーブルに格納される。
【００７０】
図１３は、公的モード同期処理７００および私的モード同期処理９００の第１の発行動作７０８および９０８の効果をそれぞれ示す。それぞれのローカルキャッシュ１１３５Ａ、１１３５Ｂは、各々格納されたメタデータを記憶装置１１２０に伝送する。示された具体例において、第２のローカルキャッシュ１１３５Ｂは、記憶装置１１２０に新規のロックＥ２を送信する。但し、第１のローカルキャッシュ１１３５Ａは、記憶装置１１２０に送信するためのメタデータ変更を有していない。
【００７１】
公的モード同期処理７００の第２の格納動作７１０に従って、コンテンツを格納する命令がユーザによって与えられる場合（すなわち、明示的にまたは暗黙的に）、第１のオーサリングアプリケーション１１３０Ａは、記憶装置１１２０への伝送のためにローカルキャッシュ１１３５Ａに対する任意のコンテンツ変更を保存する。公的モード同期処理７００の第２の発行動作７１２に従って、コンテンツを格納する命令は、記憶装置１１２０へのコンテンツ更新を発行するため、ローカルキャッシュ１１３５Ａを始動させる。示された具体例において、用語「Ｈｅｌｌｏ」の削除は、図１２の第１のデータユニットからローカルキャッシュ１１３５Ａに格納され、図１３の記憶装置１１２０に伝送される。
【００７２】
対照的に、私的モード同期処理９００の第２の格納動作９１０に従って、第２のオーサリングアプリケーション１１３０Ｂは、任意のコンテンツ変更をローカルキャッシュ１１３５Ｂに保存する。図１２に示される具体例において、第２のデータユニット（「Ｇｏｏｄｂｙｅ  Ｗｏｒｌｄ」）の追加は、ローカルキャッシュ１１３５Ｂ内に反映されている。但し、私的モード同期処理９００の判定モジュール９１２に従って、発行命令がユーザによって与えられる時、ローカルキャッシュ１１３５Ｂは記憶装置１１２０へ更新コンテンツのみを送信する。図１３に示される具体例において、発行命令は与えられないし、第２のデータユニットは記憶装置１１２０に伝送されない。
【００７３】
図１４および図１５は、公的モード同期処理７００および私的モード同期処理９００の第１のインスタンス動作７１４および９１６の効果をそれぞれ示す。各オーサリングアプリケーション１１３０Ａおよび１１３０Ｂは、記憶装置１１２０からメタデータ更新を取得し、ドキュメントのそれぞれのユーザ原稿へ自動的にメタデータ更新をインスタンス化する。示された具体例において、第２のロックＥ２は、記憶装置１１２０上のドキュメントの原本から取り出され、図１４に示されるような第１のユーザ装置の第１のローカルキャッシュ１１３５Ａに保存される。第１のオーサリングアプリケーション１１３０Ａは、図１５のドキュメントの第１のユーザ原稿へ第２のロックＥ２を自動的にインスタンス化する。但し、第１のオーサリングアプリケーション１１３０Ａが第１のユーザ原稿のメタデータに対して変更を加えなかったので、メタデータがドキュメントの原本と関連づけたメタデータに既に反映しているように、第２のユーザ原稿および第２のローカルキャッシュ１１３５Ｂと関連づけたメタデータに対して変更は行なわれない。
【００７４】
さらに、公的モード同期処理７００および私的モード同期処理９００の第２のインスタンス動作７１６および９１８の効果は、それぞれ、図１４および図１５に示されている。各オーサリングアプリケーション１１３０Ａおよび１１３０Ｂは、記憶装置１１２０からのコンテンツ更新を取得し、閲覧および／またはインスタンス化のためにコンテンツ更新をユーザに利用可能にする。示された具体例において、第２のローカルキャッシュ１１３５Ｂは記憶装置１１２０にコンテンツ変更を転送していない。従って、第１のローカルキャッシュ１１３５Ａおよび第１のオーサリングアプリケーション１１３０Ａは、図１４および図１５の記憶装置１１２０からコンテンツ更新を取得しない。
【００７５】
但し、第１のオーサリングアプリケーション１１３０Ａがコンテンツ変更を共有しているので、第２のローカルキャッシュ１１３５Ｂは、第１のデータユニットからの用語（「Ｈｅｌｌｏ」）を削除するコンテンツ更新を記憶装置１１２０から取得する（図１４を参照）。第２のオーサリングアプリケーション１１３０Ｂは、図１５のドキュメントのユーザ原稿内へローカルキャッシュ１１３５Ｂからのコンテンツ更新をインスタンス化する。１つの実施形態において、第２のオーサリングアプリケーション１１３０Ｂのユーザインタフェースは、ドキュメントの第２のユーザ原稿へコンテンツ更新を自動的にインスタンス化する（図１５を参照）。但し、別の実施形態において、第２のオーサリングアプリケーション１１３０Ｂは、コンテンツ更新が有効であることを第２のユーザに対して示す。当該実施形態において、第２のユーザがインスタンス化するべき命令を与える場合、第２のオーサリングアプリケーション１１３０Ｂはコンテンツ更新をインスタンス化する。
【００７６】
図１６において、第２のユーザは公的モード構成へ第２のオーサリングアプリケーション１１３０Ｂをトグルする。１つの実施形態において、第２のユーザは、第２のオーサリング装置１１３０Ｂの動作モードをトグルするために、第２のオーサリングアプリケーション１１３０Ｂのユーザインタフェース上のボタンを選択する。但し、他の実施形態において、第２のユーザは、他の方法で公的モード動作にトグルするように、第２のオーサリングアプリケーション１１３０Ｂを促してもよい。動作モードをトグルした後に、第２のオーサリングアプリケーション１１３０Ｂは、図７に関して上述された公的モード同期処理７００を追随し始めてもよい。例えば、第２のオーサリングアプリケーション１１３０Ｂは、メタデータ更新だけでなくコンテンツ更新も共有し始めてもよい。１つの実施形態においては、あらかじめ格納されたコンテンツ更新も共有される。
【００７７】
ある実施形態において、私的動作モードから公的動作モードに対してオーサリングアプリケーションをトグルすると、あらかじめ格納されたコンテンツは、記憶装置と自動的には共有されない。より正確に言えば、オーサリングアプリケーション１１３０のモードのトグルは、いずれはローカルキャッシュ１１３５の前進する動きを変更する。例えば、オーサリングアプリケーション１１３０が公的モードへ構成されている間にドキュメントを「保存する」ことをユーザが選択する時、コンテンツ変更は記憶装置１１２０へ自動的に送信される。１つの実施形態において、任意のあらかじめ格納された変更も、新規のコンテンツ変更を伴い送信される。但し、他の実施形態において、付加的なユーザとの対話処理を必要とせずに、オーサリングアプリケーション１１３０が公的動作モードへトグルされる場合、あらかじめ格納された変更は、記憶装置１１２０へ自動的に送信されてもよい。
【００７８】
図１６に示される具体例において、第２のオーサリングアプリケーション１１３０Ｂは、公的モードへトグルされている。ユーザは、オーサリングアプリケーション１１３０Ｂをトグルした後に、まだコンテンツ変更を格納することを選択していない。従って、第２のデータユニットは、記憶装置１１２０へまだ送信されていない。図１７に示される具体例において、第２のローカルキャッシュ１１３５Ｂは、ユーザから記憶命令を受けて、図７の公的モード同期処理７００の第２の発行動作７１２に従って記憶装置１１２０に対してテキスト（「Ｇｏｏｄｂｙｅ  Ｗｏｒｌｄ」）を含む第２のデータを伝送する。第１のローカルキャッシュ１１３５Ａは、図１８の記憶装置１１２０からコンテンツ更新を取得し、オーサリングアプリケーション１１３０Ａは、図１９のドキュメントの第１のユーザ原稿内のコンテンツ更新をインスタンス化する。
【００７９】
ここで図２０〜図２２を参照して、オーサリングアプリケーションがドキュメントの原本を格納する任意の記憶装置から切断される場合でさえ、ユーザは、本開示の原理に従って独創的な態様の例である機能を有するオーサリングシステム２０００によって、ドキュメントのユーザ原稿をオーサリングすることが可能である。オーサリングシステム２０００は、ドキュメントのユーザ原稿２０５５をオーサリングするために、オーサリングアプリケーション２０３０を実行するユーザ装置２０１０を含む。示された具体例において、ユーザ装置２０１０は、オフラインである（例えば、ネットワーク２０６０から切断されている）。従って、ユーザ装置２０１０は、ネットワーク２０６０に接続されるまで、ドキュメントのユーザ原稿２０５５をオーサリングする時に生成されたコンテンツまたはメタデータ変更のいずれも共有しない。
【００８０】
ユーザ装置２０１０は、さらにドキュメントのユーザ原稿２０５５に関係するメタデータ２０３９が格納されるローカルキャッシュ２０３５を含む。１つの実施形態において、メタデータ２０３９は、ドキュメントのローカル原稿２０５５に対して行なわれた変更を反映するために定期的に更新されてもよい。別の実施形態において、メタデータ２０３９は、各オーサリングセッションの末端において更新される。ローカルキャッシュ２０３５は、さらに格納キャッシュ２０３１、アップロードキャッシュ２０３３および取得キャッシュ２０３７を含む。
【００８１】
オーサリングアプリケーション２０３０は、定期的に格納キャッシュ２０３１にコンテンツ変更を保存する。ある実施形態において、コンテンツ更新は、オーサリング処理（例えば、自動的な保存機能を介して）の全体にわたって格納キャッシュ２０３１に時間間隔をおいて格納される。他の実施形態において、ユーザがドキュメントを保存する命令を与える場合、オーサリングアプリケーション２０３０はコンテンツ変更を格納してもよい。１つの実施形態において、格納キャッシュ２０３１は、更新が生成された順序に従って複数のコンテンツ更新を格納する。但し、別の実施形態において、コンテンツ更新は、オーサリングセッションの末端における格納キャッシュ２０３１に格納される。例えば、ドキュメントのユーザ原稿２０５５とドキュメントの初期の原稿（図示せず）とを比較してもよいし、その差を格納キャッシュ２０３１内に格納してもよい。
【００８２】
ローカルキャッシュ２０３５は、ユーザ装置２０１０がネットワーク２０６０に接続される時、アップロードキャッシュ２０３３内に格納された任意のコンテンツ変更を、ネットワーク２０６０を介して記憶装置（図示せず）に送信する。例えば、ローカルキャッシュ２０３５は、ユーザ装置２０１０がネットワーク２０６０に接続されるとすぐに、アップロードキャッシュ２０３３に格納されたコンテンツ更新を共有してもよい。１つの実施形態において、オーサリングアプリケーションが、ユーザ装置２０１０がネットワーク２０６０に接続される前に実行を中止したとしても、ローカルキャッシュ２０３５は、アップロードキャッシュ２０３３に格納されたコンテンツ更新を共有できる。
【００８３】
一般に、オーサリングアプリケーション２０３０が構成される動作モードは、コンテンツ更新がアップロードキャッシュ２０３３にいつ配列されるかを判定する。オーサリングアプリケーション２０３０が公的モード動作に構成される場合、ローカルキャッシュ２０３５はネットワーク２０６０への後の伝送のためにアップロードキャッシュ２０３３にコンテンツ変更を自動的に格納してもよい。１つの実施形態において、ローカルキャッシュ２０３５は、格納キャッシュ２０３１からアップロードキャッシュ２０３３にコンテンツ更新をコピーする。
【００８４】
但し、オーサリングアプリケーション２０３０が私的モード動作に構成される場合、ローカルキャッシュ２０３５はアップロードキャッシュ２０３３にコンテンツ変更を自動的には保存しない。例えば、１つの実施形態において、オーサリングアプリケーション２０３０が公的モードにトグルされる場合、コンテンツ変更はアップロードキャッシュ２０３３に格納されてもよい。別の実施形態において、ユーザがオーサリングアプリケーション２０３０の動作モードにかかわらずコンテンツ変更を共有する命令を与える場合、コンテンツ変更はアップロードキャッシュ２０３３に格納されてもよい。
【００８５】
第１のユーザ原稿２０５５にまだインスタンス化されていない、あらかじめ取得されたコンテンツ更新は、取得キャッシュ２０３７に格納されてもよい。これらのコンテンツ更新は、ユーザ装置２０１０がネットワーク２０６０に接続されるかどうかにかかわらず、いつでもユーザ原稿２０５５にインスタンス化可能である。１つの実施形態において、取得キャッシュ２０３７は、ユーザ原稿２０５５で統合されるコンテンツ更新の順序付きリストを格納する。それらがドキュメントのユーザ原稿２０５５にインスタンス化されるように、コンテンツ更新は取得キャッシュ２０３７から取り除かれてもよい。ある実施形態において、ユーザは、取得キャッシュ２０３７からのコンテンツ更新のインスタンス化を「元に戻す」ことを選択してもよい。１つの当該実施形態において、ユーザがインスタンス化を元に戻す場合、コンテンツ更新は取得キャッシュ２０３７へ戻って追加されてもよい。
【００８６】
図２１は、オーサリングアプリケーション２０３０がオフラインである場合、オーサリングアプリケーション２０３０などのようなオーサリングアプリケーションが、ユーザ原稿２０５５などのようなドキュメントのユーザ原稿を編集できるオーサリング処理２１００のための動作フローを示している。オーサリング処理２１００は、開始モジュール２１０２で初期化して開始し、取得動作２１０４に移る。取得動作２１０４は、ドキュメントのユーザ原稿２０５５上で実施されるべき編集命令を受信する。典型的には、取得動作２１０４は、ユーザ原稿２０５５内の１つ以上のデータユニット上で実施される編集命令を受信する。
【００８７】
第１の判定モジュール２１０６は、編集されるデータユニットがロックされるか否かをチェックする。例えば、第１の判定モジュール２１０６は、外部ロック（すなわち、別のユーザに関連づけられたロック）が編集されるデータユニットに関連づけられるか否かを判定するために、第１のユーザ装置２０１０のローカルキャッシュ２０３５に格納されたメタデータ２０３９をチェックしてもよい。編集されるデータユニットが別のユーザによってロックされていると第１の判定モジュール２１０６が判定する場合、エラー動作２１０８はデータユニットの編集を禁じる。例えば、１つの実施形態において、エラー動作２１０８は、データユニットが編集されるべきでないことを、オーサリングアプリケーション２０３０のユーザに通知することができる。別の実施形態において、エラー動作２１０８は、データユニットを編集することができないことを、オーサリングアプリケーション２０３０のユーザに通知してもよい。オーサリング処理２１００は、再び始める取得動作２１０４へ戻り繰り返す。
【００８８】
但し、編集されるデータユニットがロックされていないと第１の判定モジュール２１０６が判定する場合、リクエスト操作２１１４は、ローカルキャッシュ２０３５内に格納されたメタデータ２０３９にロックの要求を追加する。但し、要求がドキュメントの原本と同期することができないので、リクエスト操作２１１４は実際にデータユニットにロックを割り当てない。ロックを要求する前に、オプションの警告動作２１１０は、オーサリングアプリケーション２０３０のユーザに対する警告を発っしてもよい。例えば、警告動作２１１０は、オーサリングアプリケーション２０３０がオフラインであることをユーザに対して示してもよいし、従って、ユーザ原稿２０５５に対して行なわれた変更は、ドキュメントの原本と同期することができない。警告動作２１１０は、さらに変更を同期することができない場合に、矛盾がドキュメントのユーザ原稿２０５５を編集することから起因しているかもしれないことをユーザに気づかせてもよい。
【００８９】
警告動作２１１０が実行される場合、第２の判定モジュール２１１２は、オーサリングアプリケーション２０３０が編集命令を実施し続けるべきか否かを判定する。例えば、第２の判定モジュール２１１２は、ユーザに対して提示されたユーザーインターフェイスツールを用いて、オーサリングアプリケーション２０３０のユーザからの選択を受信してもよい。編集命令が実施されるべきでないと第２の判定モジュール２１１２が判定する場合、オーサリング処理２１００は再び始めるため取得動作２１０４へ戻るように導かれる。
【００９０】
但し、編集命令が実行されるべきであると第２の判定モジュール２１１２が判定する場合、オーサリング処理２１００は上述されたリクエスト動作２１１４に移る。実行動作２１１６は、編集命令に従ってユーザ原稿２０５５を編集する。第３の判定モジュール２１１８は、ドキュメントがローカルキャッシュ２０３５に格納されるべきか否かを判断する。１つの実施形態において、第３の判定モジュール２１１８は、ドキュメントを保存する命令がユーザから受信されたのか否かを判断する。別の実施形態において、第３の判定ドキュメントは、自動保存機能がアクティブであるか否かを判定する。
【００９１】
ドキュメントが保存されるべきでないと第３の判定モジュール２１１８が判定する場合、オーサリング処理２１００は取得動作２１０４へ戻り繰り返されて、再び開始する。但し、ドキュメントが保存されるべきであると第３の判定モジュール２１１８が判定する場合、格納動作２１２０はローカルキャッシュ２０３５の格納キャッシュ２０３１への編集命令の実施から起因するドキュメントの変化の示度を追加する。例えば、格納動作２１２０は、格納キャッシュ２０３１に編集命令自体を追加してもよい。別の実施形態において、格納動作２１２０は、格納キャッシュ２０３１にコンテンツ差分（ｄｅｌｔａ）（例えば、編集命令の実施によりもたらされたユーザ原稿の差の示度）を追加してもよい。
【００９２】
第４の判定モジュール２１２２は、公的モード動作または私的モード動作にオーサリングアプリケーション２０３０が構成されるか否かを判定する。オーサリングアプリケーション２０３０が公的モード動作で構成されると第３の判定モジュール２１２０が判定する場合、発行動作２１２４は、コンテンツ更新を記憶装置と共有する。例えば、ローカルキャッシュ２０３５は、格納キャッシュ２０３１に保存されたコンテンツ更新をアップロードキャッシュ２０３３にコピーし、記憶装置に対してアップロードキャッシュ２０３３を伝送してもよい。１つの実施形態において、第１のユーザ装置がネットワーク２０６０に接続される場合、発行動作２１２４は、変更および／または編集命令がドキュメントの原本へインスタンス化されるべき順序を示す。オーサリング処理２１００は、停止モジュール２１２８で完結して終了する。
【００９３】
但し、オーサリングアプリケーション２０３０が私的モード動作において構成されると第４の判定モジュール２１２２が判定する場合、第５の判定モジュール２１２６は、コンテンツ変更をアップロードする命令がユーザによって明らかに与えられたか否かを判定する。コンテンツ変更をアップロードする命令が明らかに与えられている場合、オーサリング処理２１００は、発行動作２１２４に移る。但し、コンテンツ変更をアップロードする命令が与えられていない場合、オーサリング処理２１００は、上述されるような停止モジュール２１２２で完結して終了する。
【００９４】
一般に、ネットワーク２０６０などのようなネットワークを介して記憶装置に接続された時、ユーザ装置２０１０などのようなユーザ装置は、少なくともメタデータを同期させる。１つの実施形態においては、オーサリングアプリケーションが実行していない場合でさえ、ユーザ装置はメタデータを同期させる。ユーザ装置がコンテンツを同期させるか否かは、公的モード動作または私的モード動作にオーサリングアプリケーションが構成されるか否かに依存してもよい。ユーザ装置がネットワークに接続される場合、オーサリングアプリケーションが実行していなくても、オーサリングアプリケーションが構成される動作モードは関連していてもよい。
【００９５】
図２２は、ユーザ装置がネットワーク２０６０などのようなネットワークを介して記憶装置に接続される場合、ユーザ装置２０１０などのようなユーザ装置によって実施することができる遷移工程２２００のための動作フローを示している。遷移工程２２００は、開始モジュール２２０２で初期化して開始され、ネットワーク２０６０にユーザ装置２０１０を通信でつなぐ接続動作２２０４に移る。ユーザ装置２０１０は、ネットワーク２０６０を介してドキュメントの原本を格納する記憶装置に通信で接続してもよい。
【００９６】
取得動作２２０６は、原本とユーザ原稿２０５５との同期を開始させるために、コンテンツとメタデータを含むドキュメントの原本の更新版を取り出す。１つの実施形態において、取得動作２２０６は、原本の最新バージョンのための記憶装置をポーリングする。別の実施形態において、接続がなされる場合、取得動作２２０６は、記憶装置から最新バージョンを自動的に受信する。１つの実施形態において、オーサリングアプリケーション２０３０が実行していない場合でさえ、取得動作２２０６は実行される。
【００９７】
比較動作２２０８は、取得された原本とユーザ原稿２０５５の間の任意の差を判定する。例えば、比較動作２２０８は、メタデータの任意の差分および／またはコンテンツの任意の差も判定する。第１の判定モジュール２２１０は、比較に基づいたユーザ原稿２０５５と取得された原本の間にいずれかの矛盾が存在するかどうか判定する。例えば、第１の判定モジュール２２１０は、オーサリングアプリケーション２０３０が、ユーザ装置２０１０がオフラインなった時に続いて原本上でロックされおよび／または編集されたデータユニットを編集したか否かを判定してもよい。１つの実施形態において、オーサリングアプリケーション２０３０が実行しているかどうかにかかわらず、ユーザ装置２０１０がネットワーク２０６０に接続する場合、比較動作２２０８および第１の判定モジュール２２１０は実施される。
【００９８】
矛盾が存在しないと第１の判定モジュール２２１０が判定する場合、遷移工程２２００は、ドキュメントのユーザ原稿から原本にメタデータ更新を伝送する第１の共有動作２２１４に移る。例えば、第１の共有動作２２１４は、オーサリングアプリケーション２０３０によって編集されたデータユニットのための原本ロック要求に対して送信可能である。但し、矛盾が存在すると第１の判定モジュール２２１０が判定する場合、矛盾が解決されるまで、解決動作２２１２は編集をさらに禁じる。
【００９９】
一般に、解決動作２２１２は、矛盾が存在するオーサリングアプリケーション２０３０のユーザに対して通知する。１つの実施形態において、オーサリングアプリケーション２０３０がアクセスされる場合、解決動作２２１２は通知する。別の実施形態において、オーサリングアプリケーション２０３０がドキュメントのユーザ原稿２０５５にアクセスする場合、解決動作２２１２は通知する。１つの実施形態において、解決動作２２１２は、ユーザに対する矛盾を表示し、ユーザが矛盾を修正できるようにする。別の実施形態において、解決動作２２１２は、ユーザに各々の矛盾に対する一連の解決法を与える。矛盾が解決された場合、遷移工程２２００は、上述されるような第１の共有動作２２１４に移り実行する。
【０１００】
第２の判定動作２２１６は、オーサリングアプリケーション２０３０の動作モード（例えば公的モードまたは私的モード）を確認する。オーサリングアプリケーション２０３０が公的モードで動作していると第２の判定動作２２１６が判定する場合、第２の共有動作２２２２は、ドキュメントの原本への統合のため、記憶装置にコンテンツ更新を伝送する。１つの実施形態において、第２の共有動作２２２２は、ローカルキャッシュ２０３５のアップロードキャッシュ２０３３（図２１）に格納されたコンテンツ変更をすべて伝送する。遷移工程２２００は、停止モジュール２２２４で完結して終了する。
【０１０１】
但し、オーサリングアプリケーション２０３０が私的モードで動作していると第２の判定動作２２１６が判定する場合、第３の判定モジュール２２２０はユーザがコンテンツ更新を共有する命令を与えたか否かを判定する。例えば、私的動作モードに構成されているオーサリングアプリケーション２０３０であるにもかかわらず、変更を共有するために第３の判定モジュール２２１８は、オーサリングアプリケーション２０３０のユーザインタフェースを介して命令を受信してもよい。１つの実施形態において、第３の判定モジュール２２１８は、オーサリングアプリケーション２０３０のユーザインタフェースを介して与えられるユーザーコマンドを確認する。
【０１０２】
コンテンツを共有する命令が与えられたと第３の判定モジュール２２１８が判定する場合、遷移工程２２００は、コンテンツ更新が記憶装置への伝送のために用意されているキュー動作２２２０に移る。例えば、コンテンツ更新は、更新キャッシュ２０３３（図２０）などのような更新キャッシュに格納されてもよい。遷移工程２２００は、上述されるような第２の共有動作２２２２に移り実行する。
【０１０３】
本開示の実施形態は、コンピュータ処理（方法）、コンピューティングシステム、またはコンピュータプログラムプロダクトもしくはコンピュータ可読媒体などのような製品として実施されてもよい。その処理（プログラム）は、本明細書に記載されている構成を含む任意数の方法で実施することができる。当該１つの方法は、本明細書に記載されている型の装置の機械動作によるものである。別のオプションの方法は、動作のいくつかを実行する１人以上の人間のオペレータに関連してコンピューティング装置上で実行される方法の１つ以上の単独操作に対するものである。これら人間のオペレータが互いに共同作業をする必要はなく、各々は、プログラムの一部を実行する機械とのみで作業が可能である。
【０１０４】
コンピュータプログラムプロダクトは、コンピュータシステムにより可読であり、コンピュータプロセスを実行するための命令のコンピュータプログラムをコード化しているコンピュータ記憶装置媒体であってもよい。コンピュータプログラムプロダクトは、さらにコンピューティングシステムにより可読で、コンピュータプロセスを実行するための命令のコンピュータプログラムをコード化している媒介上の伝播された信号であってもよい。本明細書で使用された用語「コンピュータ可読媒体」は、記憶媒体と通信媒体の両方を含む。
【０１０５】
当業者は、携帯端末、マルチプロセッサシステム、マイクロプロセサに基づくまたはプログラミング可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で、本開示が実施されてもよいことを十分に理解するであろう。本開示は、さらにタスクが通信ネットワークを介してリンクされるリモート処理装置により実行される分散コンピューティング環境で実践されてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルおよびリモートメモリ記憶装置の両方で配置してもよい。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスク実行または特定の抽象データ型を実施する他のタイプの構成を含む。
【図１】
2011507100.tif 000003
【図２】
2011507100.tif 000004
【図３】
2011507100.tif 000005
【図４】
2011507100.tif 000006
【図５】
2011507100.tif 000007
【図６】
2011507100.tif 000008
【図７】
2011507100.tif 000009
【図８】
2011507100.tif 000010
【図９】
2011507100.tif 000011
【図１０】
2011507100.tif 000012
【図１１】
2011507100.tif 000013
【図１２】
2011507100.tif 000014
【図１３】
2011507100.tif 000015
【図１４】
2011507100.tif 000016
【図１５】
2011507100.tif 000017
【図１６】
2011507100.tif 000018
【図１７】
2011507100.tif 000019
【図１８】
2011507100.tif 000020
【図１９】
2011507100.tif 000021
【図２０】
2011507100.tif 000022
【図２１】
2011507100.tif 000023
【図２２】
2011507100.tif 000024
【国際調査報告】
2011507100.tif 000025
2011507100.tif 000026