(57)【特許請求の範囲】
【請求項１】
クライアントコンピュータにおけるメタデータ一貫性処理の方法であって、
サーバコンピュータからドキュメントを取得するステップと、
前記ドキュメントを開くステップと、
前記サーバコンピュータから第１の通信路を通じて第１のメッセージを受信するステップであって、前記第１のメッセージは、前記ドキュメントに関する第１のメタデータを含み、前記第１のメタデータは、前記ドキュメントの１つまたは複数の領域をロックするためのロック作成メタデータを含み、前記第１の通信路は、前記ドキュメントに関するロックメタデータを通信するための通信路であることと、
ロックされていない前記ドキュメントの第１の領域を編集し始めると、当該第１の領域に対してロック作成メタデータが作成され、当該ロック作成メタデータを前記第１の通信路でサーバコンピュータに送信するステップと、
前記サーバコンピュータから前記第１の通信路を通じて第２のメタデータを含む第２のメッセージを受信するステップと、
前記第２のメタデータがロック削除メタデータを含むか否かを判定するステップと、
前記第２のメタデータがロック削除メタデータを含むと判定すると、前記ロック削除メタデータが、ロックされている前記ドキュメントの１つまたは複数の領域に対するロックの識別子と一致する識別子を含むか否かを判定するステップと、
前記ロック削除メタデータが、ロックされている前記ドキュメントの１つまたは複数の領域のロックの識別子に一致する識別子を含むと判定すると、前記ロック削除メタデータに含まれる前記識別子に対応するロックを削除するステップと、
前記第２のメタデータが、作成する各ロックの識別子を含むロック作成メタデータを含むか否かを判定するステップと、
前記第２のメタデータがロック作成メタデータを含むと判定すると、前記第２のメタデータが、前記ロック作成メタデータに含まれる前記識別子に一致する識別子を含むロック解除メタデータを含むか否かを判定するステップと、
前記第２のメタデータがロック解除データを含まないと判定すると、または、前記第２のメタデータがロック解除データを含むが、前記ロック解除メタデータが前記ロック作成メタデータに含まれる前記識別子に一致する識別子を含まないと判定すると、前記ロック作成メタデータに含まれる前記識別子に対応するロックを適用するステップと、
前記サーバコンピュータから第２の通信路を通じて第３のメッセージを受信するステップであって、前記第３のメッセージは、前記ドキュメントの内容情報と第３のメタデータを含み、前記第２の通信路は、前記ドキュメントに関する内容情報と前記ロックメタデータを通信するための通信路であることと、
前記第３のメタデータがロック解除メタデータを含むか否かを判定するステップと、
前記第３のメタデータがロック解除メタデータを含むと判定すると、前記ロック解除メタデータが、ロックされている前記ドキュメントの１つまたは複数の領域のロックの識別子に一致する識別子を含むか否かを判定するステップと、
前記ロック解除メタデータが、ロックされている前記ドキュメントの１つまたは複数の領域のロックの識別子に一致する識別子を含むと判定すると、前記ロック解除メタデータに含まれる前記識別子に対応するロックを解除するステップと
を備えることを特徴とする方法。
【請求項２】
前記第３のメタデータが、作成する各ロックの識別子を含むロック作成メタデータを含むか否かを判定するステップと、
前記第３のメタデータがロック作成メタデータを含むと判定すると、前記第３のメタデータが、前記第３のメタデータ内の前記ロック作成メタデータに含まれる前記識別子に一致する識別子を含むロック解除メタデータを含むか否かを判定するステップと、
前記第３のメタデータが、ロック解除メタデータを含まないと判定すると、または、前記第３のメタデータがロック解除メタデータを含むが、前記ロック解除メタデータが前記第３のメタデータ内の前記ロック作成メタデータに含まれる前記識別子に一致する識別子を含まないと判定すると、前記第３のメタデータ内の前記ロック作成メタデータに含まれる前記識別子に対応するロックを適用するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のメタデータ、前記第２のメタデータおよび前記第３のメタデータは、前記ドキュメントに対するロックの適用、ロックの解除およびロックの削除の履歴を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ロック作成メタデータ、前記ロック解除メタデータ、および、前記ロック削除メタデータに含まれる識別子は、ロックの適用、ロックの解除、ロックの削除を開始した共同オーサリングのユーザの識別子を含むことを特徴とする請求項１に記載の方法。
【請求項５】
処理装置と前記処理装置に結合されたシステムメモリとを備えるコンピュータ装置であって、
前記処理装置は、
ドキュメント内容の作成と編集の処理を行い、
前記ドキュメントのメタデータを生成、監視、記憶し、
ユーザが前記ドキュメントの一部の編集を開始すると作成される新しいロックに関する情報を含むロック作成メタデータと、ロック解除に関する情報を含むロック解除メタデータと、ロック削除に関する情報を含むロック削除メタデータとを生成し、
第１の通信路と、第２の通信路の両方を通じて前記ロック作成メタデータをサーバコンピュータに送信し、前記第１の通信路は、前記ドキュメントに関する前記ロックメタデータを通信するための通信路であり、前記第２の通信路は、前記ドキュメントに関する内容情報とロックメタデータを通信するための通信路であり、
前記第１の通信路及び前記第２の通信路を通じて前記ロック解除メタデータを前記サーバコンピュータに送信し、
前記第１の通信路を通じて前記ロック削除メタデータを前記サーバコンピュータに送信し、
前記ロック作成メタデータの各々、前記ロック解除メタデータの各々および前記ロック削除メタデータの各々に識別子を割り当て、
前記ロック作成および前記ロック解除メタデータにはペアで識別子を割り当て、少なくとも１つの前記ロック解除メタデータの識別子は、少なくとも１つの前記ロック作成メタデータの識別子と同一である
ように構成されたことを特徴とするコンピュータ装置。
【請求項６】
前記処理装置は、保存するドキュメントの編集の終了を示す保存操作の後、ロック解除メタデータを前記第２の通信路を通じて前記サーバコンピュータに送信するようにさらに構成され、前記ロック解除メタデータは、前記保存操作中に保存された変更された内容に対応していることを特徴とする請求項５に記載のコンピュータ装置。
【請求項７】
前記処理装置は、前記ドキュメントに対する編集が保存されると、前記第１の通信路と前記第２の通信路の両方を通じてロック作成メタデータを前記サーバコンピュータに送信するようにさらに構成されたことを特徴とする請求項５に記載のコンピュータ装置。
【請求項８】
前記処理装置は、前記コンピュータ装置のタイムアウト後、または、前記コンピュータ装置でユーザによるロック削除要求の入力がされたとき、ロック削除メタデータを前記第１の通信路を介して前記サーバコンピュータに送信するようにさらに構成されたことを特徴とする請求項５に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共同オーサリングのチャネル横断の一貫性に関する。
【背景技術】
【０００２】
ネットワークベースのドキュメントコラボレーションシステムによって、複数のユーザが、あるドキュメントに同時にアクセスし、共同でオーサリングを行うことが可能になった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
複数のユーザがドキュメントを共同でオーサリングすることが可能になったが、コンフリクトを避けるために、ネットワークベースのドキュメントコラボレーションシステムは、ドキュメントにおいて各ユーザが編集できる領域を制限することができる。この制限に関する情報が、他の共同オーサリングのユーザに通信されなければ、ドキュメントのコピーをまとめる時に変更に関するコンフリクトが発生する可能性が増す。
【課題を解決するための手段】
【０００４】
開示の実施形態は、処理装置と、命令を有するシステムメモリと、を備えるコンピュータ装置に関し、処理装置がその命令を実行すると、処理装置は、ドキュメントの内容を作成と編集の処理を行うドキュメント処理モジュールと、メタデータ処理モジュールとを作成する。メタデータ処理モジュールは、コンピュータ装置で、ドキュメントを生成、監視、記憶する。また、メタデータ処理モジュールは、ユーザがドキュメントの一部の編集を開始すると作成される新しいロックに関する情報を含むロック作成メタデータと、ロックの解除に関する情報を含むロック解除メタデータと、ロック削除に関する情報を含むロック削除メタデータと、を生成する。また、メタデータ処理モジュールは、ロック作成メタデータを、データチャネルと、別個のメタデータチャネルの両方に書き込む。データチャネルは、コンピュータ装置とサーバコンピュータとの間の第１の通信路で、この第１の通信路を通して、ドキュメントに関する内容とロックメタデータが通信される。メタデータチャネルは、コンピュータ装置とサーバコンピュータの間の第２の通信路で、この第２の通信路を通って、ドキュメントに関するロックメタデータが通信される。また、メタデータ処理モジュールは、ロック解除メタデータをデータチャネルに書き込み、ロック削除メタデータをメタデータチャネルに書き込む。
【０００５】
１つまたは複数の技術の詳細を、添付の図面と共に、下記に述べる。この技術の他の特徴、目的、利点は、説明、図面、請求項より明らかとなろう。
【図面の簡単な説明】
【０００６】
【図１】共同オーサリングにチャネル横断の一貫性を持たせるシステムの例を示す図である。
【図２】共同オーサリングにチャネル横断の一貫性をもたせる機能を実施する、図１に例示したクライアントコンピュータのモジュールの例を示す図である。
【図３】クライアントコンピュータでメタデータをドキュメントに適用する方法のフローチャートの第１の部分を示す図である。
【図４】クライアントコンピュータでメタデータをドキュメントに適用する方法のフローチャートの第２の部分を示す図である。
【図５】クライアントコンピュータでメタデータをドキュメントに適用する方法のフローチャートの第３の部分を示す図である。
【図６】図２のクライアントコンピュータの構成要素の例を示す図である。
【発明を実施するための形態】
【０００７】
本願は、ネットワークベースのドキュメントコラボレーションシステムで、ドキュメントデータをまとめる時に、チャネル横断で一貫した情報を提供するシステムおよび方法に関する。開示するシステムおよび方法においては、ドキュメントの領域に対する例えばロックのメタデータは、メタデータチャネル上で送信され、ドキュメントの内容とメタデータの両方は、データチャネルで送信される。システムと方法は、メタデータがドキュメントに適切に適用されるべき時を指定する優先順位付け規則を開示する。
【０００８】
図１は、メタデータをドキュメントに適用する時、チャネル横断の一貫性をサポートするシステム１００の例を示す。システム１００は、クライアント１０２、１０４、サーバ１０６、および、ネットワーク１０８を含む。クライアントとサーバの数は、これより多くても少なくてもよい。この開示においては、クライアントとクライアントコンピュータという用語は互いに置き換えて使うことができ、サーバとサーバコンピュータという用語も互いに置き換えて使うことができる。
【０００９】
クライアント１０２、１０４に記憶された複数の情報の中には、クライアントオペレーティングシステム（「ＯＳ」）と、クライアントアプリケーションがある。クライアントＯＳは、クライアントシステムのハードウェアリソースとソフトウェアリソースを管理するプログラムである。クライアントアプリケーションは、クライアント１０２、１０４のリソースを利用して、ユーザが指定したタスクを直接行う。例えば、クライアント１０２、１０４は、ドキュメントファイルを作成、編集するのに使われる文書処理プログラムなどの、１つまたは複数のソフトウェアアプリケーションを含む。このようなアプリケーションの一例は、ワシントン州レドモンドのマイクロソフト社製のＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄである。このようなアプリケーションの他の例も適用可能である。
【００１０】
サーバ１０６は、ネットワークを通してアクセス可能なファイルサーバである。サーバ１０６は、複数のファイルを記憶する。これらのファイルは、本明細書でさらに述べるように、ソフトウェアアプリケーションとドキュメントの両方を含むことができる。サーバ１０６は、サーバ１０６が記憶するドキュメントへのアクセスを制御する。
【００１１】
例示の実施形態においては、サーバ１０６は、ある組織内に配置してもよく、ドキュメントコラボレーションシステムの一部であってもよい。例示のドキュメントコラボレーションシステムは、マイクロソフト社提供のポータルサーバサービスであるＳＨＡＲＥＰＯＩＮＴ（登録商標）チームサービスである。例示の共有ドキュメントサーバは、マイクロソフト社提供のＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ  ＳｈａｒｅＰｏｉｎｔ  Ｓｅｒｖｅｒ  ２００７である。他の構成も用いることができる。
【００１２】
メタデータは、データに関する情報である。典型的なメタデータの例としては、ドキュメント名、作成日または最終編集日、現在ドキュメントの編集を行っている著者（オーサ）、現在ドキュメントを閲覧している著者（オーサ）、段落識別子、段落ロックなどがある。他の種類のドキュメントメタデータも可能である。この開示においては、メタデータは、共同オーサリングを行う複数のユーザがドキュメントの同じ領域を同時に編集するのを防ぐためにドキュメント領域に適用されるロックを含む。そのドキュメント領域は、典型的には段落であるが、段落のヘッディング、表、文などを含んでもよい。また、メタデータは、ロックを作成するためのメタデータ、ロックを解除するためのメタデータ、ロックを削除するためのメタデータを含む。
【００１３】
例示の実施形態においては、メタデータは、メタデータチャネル１１１を通して送信される。例示の実施形態においては、チャネル横断の一貫性を提供するために、メタデータは、データチャネル１１３でも送信される。データチャネル１１３は、ドキュメントの内容情報をサーバコンピュータ１０６に送受信するのにも使われる。
【００１４】
ロックを作成するためのメタデータは、ロック作成メタデータと称され、共同オーサリングのユーザが、例えば、段落に文字をタイプすることによって、または、書式の設定を変更することによって、ドキュメントの領域の内容を変更すると、メタデータチャネル１１１に書き込まれる。ロック作成メタデータは、他の全ての共同オーサリングのユーザに対して、その段落に対するロックを適用し、他の共同オーサリングのユーザがドキュメントの同じ領域を編集できないようにする。下記に詳細に説明するように、チャネル横断の一貫性をもたせるためには、ドキュメントを保存する時、ロック作成メタデータもデータチャネル１１３に含まれる。
【００１５】
ロックを解除するためのメタデータは、ロック解除メタデータと称され、共同オーサリングのユーザが、ドキュメント領域、典型的には、段落の編集を終えると、データチャネル１１３に書き込まれる。ロック解除メタデータがデータチャネル１１３に書き込まれて、ロック解除と内容の更新が同期される。共同オーサリングのユーザは、ドキュメントの領域の編集を終えると、典型的には、保存操作を行う。保存操作中に、ドキュメントの内容は、データチャネル１１３に書き込まれ、サーバ１０６に送信される。ロック解除メタデータをドキュメントの内容と共にデータチャネル１１３に書き込むことによって、ドキュメントの編集された領域に対するロックを解除するメタデータがドキュメントの内容と同時に受信されることを確実にする。こうして、更新された内容を受信する前にロックが解除され、ユーザが、最新の内容ではないドキュメントの領域を編集するという潜在的な問題を防ぐことができる。
【００１６】
ロックを削除するためのメタデータは、ロック削除メタデータと称され、例えば、ロック削除ボタンを作動させる、または、タイムアウトによって、ロックを明示的に削除すると、メタデータチャネル１１１に書き込まれる。ロックは、様々な理由で明示的に削除してよい。例えば、ユーザは、ドキュメント領域の編集を始め、その領域に対するロックを作成し、その後、保存することなしにキャンセルする場合がある。ロックを明示的に削除する方法がなければ、ロックは有効なままになる。別の例としては、ユーザは、ドキュメント領域の編集を始め、その領域に対するロックを作成し、その後、長時間、その場を離れる、または、長時間、ネットワーク１０８との接続を切る場合がある。この場合には、ドキュメントコラボレーションシステムは、特定の時間が経つと、共同オーサリングのユーザに対する全てロックを期限切れとするタイムアウトを実施してよい。この例に関しては、タイムアウトによって、ロック削除メタデータが、編集中のドキュメント領域に対するメタデータチャネル１１１に書き込まれる。
【００１７】
ロックメタデータの各単位は、その単位に関連付けられた識別子を有する。この例において、識別子は、後述するように、ロックを識別し、かつロックの対象となっているドキュメントの部分を識別する数を含む。ロックは、ロックの作成、解除、または削除を開始したユーザの識別子も含んでよい。識別子は、ロック作成時にロックに割り当てられ、そのロックが削除または解除されるときは、同じ識別子が用いられる。従って、常に、あるロックには、ロック作成とロック削除／解除のペアが関連付けられている。
【００１８】
ドキュメントの領域が編集中で、ロックが作成され、保存操作が行われて、ロックが解除され、その後、ドキュメントの同じ領域が再び編集されると、ドキュメントのその領域に対して新しいロックが作成される。新しいロックは、たとえドキュメントの同じ部分が編集されていても、新しい識別子が割り当てられる。下記に記載するように、そのロック識別子は、チャネル横断の一貫性を強化する追加の手段として用いられる。
【００１９】
例示のドキュメントコラボレーションシステムは、ロック作成、ロック削除、ロック解除の各々の履歴を保持する。履歴は、メタデータチャネル１１１に保持される。下記にさらに記載するように、ロック作成、ロック削除およびロック解除の履歴は、チャネル横断の一貫性を強化するさらなる手段として用いられる。
【００２０】
図２は、クライアントコンピュータ１０２の論理モジュールの詳細な図を示す。クライアントコンピュータ１０２は、例示のドキュメント処理モジュール２０２と例示のメタデータ処理モジュール２０４を含む。
【００２１】
例示のドキュメント処理モジュール２０２は、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄなどのワードプロセッサの処理を行う。例示のドキュメント処理モジュール２０２によって、ドキュメントを作成または開くこと、変更、および、保存することが可能になる。例示のドキュメント処理モジュール２０２は、データチャネル１１３を用いて、ドキュメントの内容をサーバ１０６に保存する。ドキュメントを保存するとき、ドキュメント全体の内容をサーバ１０６に送信するので、データチャネル１１３は、比較的速度の遅いチャネルである。
【００２２】
例示の実施形態においては、クライアント１０２とクライアント１０４の共同オーサリングのユーザは、同じドキュメントを編集することができる。クライアント１０２の共同オーサリングのユーザが、最初に、ドキュメントを開いた場合、例示のドキュメント処理モジュール２０２は、サーバ１０６からドキュメントのコピーを取得し、クライアント１０２でドキュメントを開く。クライアント１０４の共同オーサリングのユーザがそのドキュメントを開くと、例示のドキュメント処理モジュール２０２は、サーバ１０６からドキュメントのコピーを取得し、クライアント１０４で、そのドキュメントを開く。クライアント１０２の共同オーサリングのユーザが、クライアント１０４の共同オーサリングのユーザがドキュメントを開く前に、そのドキュメントを変更したにもかかわらず、変更を保存していない場合、クライアント１０４の共同オーサリングのユーザは、ドキュメントを開いたとき、その変更が見えない。
【００２３】
例示の実施形態においては、第２の共同オーサリングのユーザは、第１および第２の共同オーサリングの両方のユーザが変更をドキュメントに保存するまで、第１の共同オーサリングのユーザがドキュメントに行った変更が見えない。例えば、クライアント１０２の共同オーサリングのユーザが、クライアント１０２で開いたドキュメントへの変更を保存すると、クライアント１０４の共同オーサリングのユーザは、自分がクライアント１０４で開いたそのドキュメントへの変更を保存するまで、その変更が見えない。クライアント１０２の共同オーサリングのユーザが、クライアント１０２で開いたドキュメントへの変更を保存した後、クライアント１０４の共同オーサリングのユーザが、クライアント１０４で開いたそのドキュメントへの変更を保存すると、クライアント１０２でドキュメントに加えた変更は、クライアント１０４で開かれたドキュメントに統合される。
【００２４】
例示のメタデータ処理モジュール２０４は、例示のドキュメントコラボレーションシステムで開かれたドキュメントのメタデータを処理する。クライアント１０２の共同オーサリングのユーザがドキュメントを開いて、例えば、ドキュメントの段落に文字をタイプして、そのドキュメントの内容を変更すると、クライアント１０２の例示のメタデータ処理モジュールは、その段落に対してロックを作成する。ロックは、ドキュメントのロックされている段落を識別する段落識別子を含むメタデータである。ロックメタデータは、そのドキュメントを編集する共同オーサリングのユーザに対する識別子も含み、ロックに対する識別子も含む。
【００２５】
段落ロックに関するさらなる詳細は、２００８年６月２５日出願の米国特許出願公開第１２／１４５，５３６号に記載されており、その全体を参照によりここに組み込むものとする。
【００２６】
例示の実施形態においては、全てのロックは、ロックを識別するロック識別子を有する。ロック識別子は、ロックを作成する例示のメタデータ処理モジュール２０４が生成する乱数である。新しいロックが作成される度に、たとえその新しいロックが以前のロックと同じ段落に対して作成されても、そのロックに対して新しいロック識別子が生成される。ロック識別子を用いて、ロックが適用された時、ロックがドキュメントから解除または削除された時を判断する。
【００２７】
ロックが作成されると、そのロックは、例示のメタデータチャネル１１１に書き込まれ、サーバコンピュータ１０６に送信される。メタデータチャネル１１１は、データチャネル１１３とは別個の、速度の速いチャネルである。メタデータチャネル１１１は、典型的には、データチャネル１１３と比較して、より迅速に（「速く」）更新される。なぜならば、典型的に、メタデータチャネル１１１で送信される情報はデータチャネル１１３で送信される情報よりより少ないので、その情報は、データチャネル１１３で送信される情報より速くサーバ１０６に送信されるからである。ロック伝搬にメタデータチャネル１１１を使用して、共同オーサリングのユーザたちに、別の共同オーサリングのユーザがドキュメント領域を編集していると迅速に知らせ、編集を行っているユーザ以外の共同オーサリングのユーザたちが、ドキュメントの同じ領域を編集する可能性を最小限にすることは、有益である。
【００２８】
例示の実施形態において、例示のメタデータチャネル１１１の最初のメタデータは、すぐにサーバ１０６に送信されるが、その後、追加のメタデータは、例えば、５秒毎、１０秒毎、３０秒毎、４５秒毎、１分毎、５分毎、１０分毎などの定期的な間隔でサーバ１０６に送信される。追加のメタデータは、例えば、サーバ１０６の負荷を減らすなどの性能上の理由で、すぐにではなく、定期的にサーバ１０６に送信される。クライアント１０２で共同オーサリングを行っている者が、例えば、クライアント１０２で開いているドキュメントの段落１を編集し始めると、段落１に対してロックが作成され、メタデータチャネル１１１でサーバ１０６に送信される。クライアント１０４でロックが受信されると、そのロックは、クライアント１０４の共同オーサリングのユーザがドキュメントの段落１を編集するのを防ぐ。
【００２９】
ここで、例示のクライアント１０２の共同オーサリングのユーザが、段落８を編集する場合、段落８に対するロックが作成されるが、そのロックは、定期的な間隔が終了するまで、メタデータチャネル１１１を通してサーバ１０６に送信されない。例えば、定期的な間隔が３０秒で、クライアント１０２の共同オーサリングのユーザが、段落１のロックがサーバ１０６に送信されてから３秒後に、段落８に文字をタイプした場合、段落８のロックは、その後２７秒間、メタデータチャネル１１１を通してサーバ１０６に送信されない。この例においては、クライアント１０２の共同オーサリングのユーザが、２７秒が経過する前に保存操作を行うと、段落８のロックがメタデータチャネル１１１を通して到着する前に、段落８の内容情報が、クライアント１０４に到達する可能性がある。
【００３０】
このため、例示のメタデータ処理モジュール２０４が、段落のロックを作成し、そのロックをメタデータチャネル１１１に書き込むと、例示のメタデータ処理モジュール２０４は、そのロックをデータチャネル１１３にも書き込む。そうすると、クライアント１０２の共同オーサリングのユーザが、クライアント１０２で開いたドキュメントに行っている編集に対して保存操作を行うと、その段落に対するロックが、段落の内容変更がデータチャネル１１３を通してサーバ１０６に送信されるのと同時に、データチャネル１１３を通してサーバ１０６に送信される。
【００３１】
メタデータチャネル１１１とデータチャネル１１３の両方を通すロック作成メタデータの供給は、上述した、メタデータチャネル１１１の更新に関する定期性に関する待ち時間の問題を最小限にするのに役立つ。メタデータチャネル１１１を通して、ロックが、保存操作前に、クライアント１０４に到達する場合、そのロックは、クライアント１０４の共同オーサリングのユーザが、段落を編集するのを防ぐ。クライアント１０２で保存操作が行われ、メタデータチャネル１１１を通してロックが到達する前に、その保存操作によって、内容変更がデータチャネル１１３を通してクライアント１０４に到達する場合、データチャネル１１３を通したロックは、内容変更と共にクライアント１０４に到達する。データチャネル１１３のロックは、クライアント１０４の共同オーサリングのユーザが、段落を編集するのを防ぐ。
【００３２】
ロック解除は、典型的には保存操作の結果として、データチャネル１１３を介して生じる。ドキュメントコラボレーションシステムにおいては、少なくとも２種類の異なった保存操作が可能である。保存操作の一例においては、内容データはサーバ１０６に保存されるが、内容情報は共有に指定されない。この例では、共同オーサリングのユーザは、編集した内容をサーバ１０６に保管するために、保存するが、その内容は、他のユーザと快適に共有できる状態にはなっていない。保存操作の別の例においては、共同オーサリングのユーザは、共有の内容を指定する。この開示においては、保存操作は、２番目の例に従う。つまり、保存操作は、他の共同オーサリングのユーザと共有するための保存内容を指定する。
【００３３】
保存操作は、典型的に、共同オーサリングのユーザが、保存するドキュメントの段落の編集を終了したことを示すので、ロック解除は、データチャネル１１３を介して生じる。共同オーサリングのユーザが、１つまたは複数の段落の編集を続けたい場合、共同オーサリングのユーザが編集する各段落に対して、新しいロック識別子を有する新しいロックが作成される。
【００３４】
ロック解除メタデータは、データチャネル１１３に書き込まれて、ロック解除メタデータが、サーバ１０６で内容変更と同時に受信されるのを確実にする。これによって、例えば、例示のクライアント１０４の共同オーサリングのユーザなど、別の共同オーサリングのユーザが、ロック解除メタデータを受信して、ロックされている段落を編集することが可能となり、クライアント１０４で開かれたドキュメントも最新の内容に更新される。これによって、ロック解除メタデータに対応するロックが解除されて、クライアント１０４の共同オーサリングのユーザは、更新された内容を編集することを、確実にする。
【００３５】
ロック解除が起こると、ロック解除メタデータのデータチャネル１１３への書き込みに加えて、ロック解除メタデータは、メタデータチャネル１１１にも書き込まれる。メタデータチャネル１１１からのロック解除メタデータは、典型的には、データチャネル１１３からのロック解除メタデータがサーバ１０６に到達する前に、サーバ１０６に到達する。サーバ１０６は、ロック解除メタデータを受信すると、ドキュメントの他の共同オーサリングのユーザに対して、ロックされた段落のロックの種類を変更する。新しいロック種類は、ロックされた段落がもう編集中でないことを示す。これによって、その段落の編集が可能であることを、例えば、クライアント１０４の共同オーサリングのユーザなどのユーザに知らせる。しかしながら、その段落は、まだ、クライアント１０４の共同オーサリングのユーザに対してロックされている。クライアント１０４の共同オーサリングのユーザが、保存操作を行うと、サーバ１０６は、段落への更新された内容変更でクライアント１０４を更新し、段落のロックを解除する。
【００３６】
ロック削除メタデータは、メタデータチャネル１１１を通してサーバ１０６に送信される。ロック削除メタデータは、ロック解除メタデータとは区別される。ロック解除メタデータは、ユーザが、もはやドキュメント領域の編集を行っていないときに生成される。ロック削除メタデータは、共同オーサリングのユーザによる明示的な行動で、または、ドキュメントコラボレーションシステムの明示的な行動によって生じる。例えば、上述のように、ユーザが、１つまたは複数の段落の編集を開始し、保存することなしに、編集のキャンセルを決める場合がある。共同オーサリングのユーザが段落に文字をタイプすると、ロック作成メタデータが、メタデータチャネル１１１とデータチャネル１１３の両方に書き込まれるので、共同オーサリングのユーザは、例示のドキュメント処理モジュール２０２に関連付けられた削除キーを押すことができる。この例示の削除キーを押すと、ロック削除メタデータがメタデータチャネル１１１に書き込まれる。
【００３７】
下記に記載のように、ロック削除メタデータは、ロック作成メタデータより優先順位が高い。結果として、メタデータチャネル１１１からのメタデータがクライアント１０４で処理されると、ロック削除メタデータは、ロック削除メタデータのロック識別子を有するロックを、クライアント１０４で開いているドキュメントから取り除く。 
【００３８】
ロック削除メタデータは、特定の条件の下で、ドキュメントコラボレーションシステムによって明示的にも生成される。例えば、ユーザがドキュメントの１つまたは複数の段落を編集し、変更を保存せず、ドキュメントを閉じずに、夜帰宅した場合、ユーザが編集した全ての段落に対するロックは、アクティブなままである。これらのロックによって、他の共同オーサリングのユーザがその段落を編集するのを防ぐ。メタデータ処理モジュール１１１は、所定の期間が経過するとロックをタイムアウトし、そのロックに対するロック削除メタデータを生成して、この状況に対処する。
【００３９】
クライアント１０４が、例えば、クライアント１０２が生成したメタデータなどのメタデータを受信すると、クライアント１０４の優先順位付け規則が、そのメタデータを、クライアント１０４で開いているドキュメントにどのように適用するかを判断する。クライアント１０４の共同オーサリングのユーザが、サーバ１０６からドキュメントを取得して、クライアント１０４でドキュメントを開くと、メタデータチャネル１１１を通してそのドキュメントのメタデータが取得される。そのメタデータが、ドキュメントの１つまたは複数の段落に対する１つまたは複数のロックを含む場合、クライアント１０４は、そのメタデータが、１つまたは複数のロックと同じロック識別子を有する１つまたは複数のロック解除を含むか否かを判断する。メタデータが、メタデータに含まれるロックと同じロック識別子を有するロック解除を含む場合、そのロックはドキュメントに適用されない。その理由は、ロック解除は常にロック作成後に起こるので、ロック解除の方が最近起こっているからである。しかしながら、メタデータが、メタデータに含まれるロックと同じロック識別子を有するロック解除を含まない場合、ロックメタデータに指定されたドキュメントの段落に、ロックが適用される。ロックによって、クライアント１０４の共同オーサリングのユーザが、ドキュメントを編集するのを防ぐ。
【００４０】
クライアント１０４のドキュメントが開かれ、最初のメタデータが、上述のようにドキュメントに適用されると、例示の実施形態においては、追加のメタデータは、典型的には３０秒の定期的間隔で、ドキュメントに適用される。さらに、例示の実施形態においては、ドキュメントへの追加の内容更新は、クライアント１０４で保存操作が行われたとき、ドキュメントに適用されるのみである。次の定期的な間隔の際、メタデータは、メタデータチャネル１１１を介してサーバ１０６から取得される。メタデータは、優先規則に従ってドキュメントに適用される。クライアント１０４の例示のメタデータ処理モジュール２０４は、まず、メタデータがロック削除を含むか否かを判断する。メタデータチャネル１１１のロック削除は、最も優先順位の高いメタデータで、ロックを明示的に取り除くことを意味している。
【００４１】
クライアント１０４の例示のメタデータ処理モジュール２０４は、次に、サーバ１０６から取得されたメタデータがロック作成を含むか否かを判断する。メタデータが１つまたは複数のロック作成を含む場合、メタデータが、１つまたは複数のロック作成のロック識別子に一致するロック解除も含むか否かを判断する。ロック作成が同じロック識別子を有する対応するロック解除を有さない場合、ロック作成に対応するロックが、ロック作成で識別されたドキュメントの段落に適用される。しかし、ロック作成が、同じロック識別子を有する対応するロック解除を有する場合、ロック作成に対応するロックは、ロック作成で識別されたドキュメントの段落に適用されない。これは、ロック解除は常にロック作成後に生じので、ロック解除とロック作成が同じ識別子を有する場合、ロックはキャンセルされているからである。 
【００４２】
クライアント１０４の共同オーサリングのユーザが、保存操作を行うと、ドキュメントの更新された内容が、サーバ１０６から取得される。更新された内容には、クライアント１０４で最後に保存操作をした後に、内容変更をサーバ１０６に保存した他の共同オーサリングのユーザが行ったドキュメントへの変更が反映されている。更新された内容は、データチャネル１１３を通してサーバ１０６からクライアント１０４に送信される。クライアント１０４は、更新された内容をサーバ１０６から受信すると、サーバ１０６から受信した最新のメタデータがロック解除を含むか否かを判断する。サーバ１０６から受信した最新のメタデータが、ロック解除を含む場合、ロック解除が識別したロックが、ロック解除が識別したドキュメントの段落から取り除かれる。内容更新が起こるまでロック解除が行われない理由は、ロックが解除されて、共同オーサリングのユーザがロックされた段落の編集を開始したとき、共同オーサリングのユーザが、サーバ１０６に保存されているドキュメントの最新の内容を編集することを確実にするためである。
【００４３】
図３から図５は、ドキュメントにメタデータを適用して、情報のチャネル横断の一貫性を与える方法のフローチャート３００の例を示す。操作３０２で、共同オーサリングを指定されたドキュメントが、サーバコンピュータ１０６から取得される。操作３０４で、そのドキュメントを、クライアント１０４の共同オーサリングのユーザが開く。操作３０６で、クライアント１０４は、ドキュメントの第１のメタデータを含む第１のメッセージをサーバコンピュータ１０６から受信する。サーバコンピュータ１０６は、ドキュメントがクライアント１０４で開かれると、クライアント１０４に第１のメタデータを送信する。第１のメタデータは、メタデータチャネル１１１を通して送信される。第１のメタデータは、ドキュメントに対する１つまたは複数のロックを含む。ロックは、例えば、クライアント１０２の共同オーサリングのユーザなどの、一人または複数の共同オーサリングのユーザが、ドキュメントの１つまたは複数の領域を変更したことを示している。
【００４４】
操作３０８で、クライアント１０４は、第２のメッセージを、ドキュメントの第２のメタデータを含むサーバコンピュータ１０６から受信する。第２のメタデータも、メタデータチャネル１１１を通して受信される。操作３１０で、第２のメタデータが１つまたは複数のロック削除を含むか否かが判断される。第２のメタデータが１つまたは複数のロック削除を含むと判断されれば、操作３１２で、１つまたは複数のロック削除が、ドキュメントに適用されたロックに一致するか否かが判断される。各ロック削除は識別子を有し、各ロックは識別子を有する。ロック削除の識別子が、ドキュメントのロックの識別子と一致すると判断されれば、操作３１４で、ドキュメントのロックは削除される。
【００４５】
操作３１６で、第２のメタデータがロック作成を含むか否かが判断される。第２のメタデータがロック作成を含むと判断されると、操作３１８で、第２のメタデータがロック解除を含むか否かが判断される。第２のメタデータがロック解除を含むと判断されると、操作３２０で、ロック解除の識別子がロック作成の識別子と一致するか否かが判断される。ロック解除がないと判断されると、または、ロック解除はあるが、ロック解除のどれもロック作成と一致しないと判断されると、操作３２２で、第２のメタデータのロック作成に対応するロックが、ドキュメントに適用される。ロック作成が、一致するロック解除を有する場合、ロック作成のためにロックはドキュメントに適用されない。ロック解除は、ロック作成の後に生じるので、ロック解除は、ロック作成に対応するドキュメントの領域は、もうロックする必要がないということ意味する。
【００４６】
操作３２４で、クライアント１０４は、第３のメッセージをサーバコンピュータ２０６から受信する。第３のメッセージは、ドキュメントの内容を含み、かつ、第３のメタデータも含む。第３のメッセージは、典型的には、クライアント１０４の共同オーサリングのユーザが保存操作を行ってクライアント１０４で開かれたドキュメントの内容を保存した後、受信される。第３のメッセージに含まれるドキュメントの内容は、例えば、クライアント１０２の共同オーサリングのユーザなどの他の共同オーサリングのユーザからの、更新されたドキュメントの内容である。第３のメッセージは、データチャネル１１３を通して受信される。第３のメッセージは、データチャネル１１３を通して受信されて、更新されたドキュメントの内容と同時にロック解除が受信されることを確実にする。ロックが解除されると、ロックが解除されたドキュメントの領域が最新の内容を有することが確実になる。
【００４７】
操作３２６で、第３のメタデータがロック解除を含むか否かを判断する。第３のメタデータが１つまたは複数のロック解除を含むと判断されると、操作３１２で、１つまたは複数のロック解除が、ドキュメントに適用されたロックと一致するか否かを判断する。各ロック解除は識別子を有し、各ロックは識別子を有する。ロック解除の識別子が、ドキュメントのロックの識別子と一致すると判断されると、操作３１４で、ドキュメントのロックが解除される。
【００４８】
チャネル横断の共同オーサリングの一貫性に関する上記説明は、２人の共同オーサリングのユーザについて述べている。他の例示の実施形態においては、３人以上の共同オーサリングのユーザが、同じドキュメントを編集してよい。同じメタデータ統合操作が、３人以上の共同オーサリングのユーザを有する実施形態に適用される。
【００４９】
図６を参照してクライアント１０２の構成要素の例を示す。例示の実施形態においては、クライアント１０２は、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデータアシスタント、または、セルラーデバイス等のコンピュータ装置である。クライアント１０２は、入出力装置、中央処理装置(「ＣＰＵ」)、データ記憶装置、およびネットワーク装置を含むことができる。
【００５０】
基本的な構成においては、コンピュータ装置１０２は、典型的に、少なくとも１つの処理装置４０２とシステムメモリ４０４を含む。コンピュータ装置の具体的な構成と種類に応じて、システムメモリ４０４は、揮発性（例えば、ＲＡＭ）、不揮発性(例えば、ＲＯＭ、フラッシュメモリなど)、または、それらの組み合わせであってよい。システムメモリ４０４は、典型的には、ワシントン州レドモンドのマイクロソフト社製のＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどのネットワーク化されたパーソナルコンピュータ、または、ワシントン州レドモンドのマイクロソフト社製のＷｉｎｄｏｗｓ  ＳｈａｒｅＰｏｉｎｔ  Ｓｅｒｖｅｒ ２００７などのサーバの操作を制御するのに適切なオペレーティングシステム４０６を含む。システムメモリ４０４は、１つまたは複数のソフトウェアアプリケーション４０８を含んでもよく、プログラムデータを含んでもよい。
【００５１】
コンピュータ装置１０２は、追加の特徴または機能を有してよい。例えば、コンピュータ装置１０２は、例えば、磁気ディスク、光ディスク、またはテープなどの追加のデータ記憶装置(取り外し可能および／または取り外し不可能)を含んでよい。そのような追加の記憶装置は、取り外し可能記憶装置４１０および取り外し不可能記憶装置４１２として、図６に示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶する方法または技術で実装される、揮発性媒体、不揮発性媒体、取り外し可能媒体、および、取り外し不可能媒体を含んでよい。システムメモリ４０４、取り外し可能記憶装置４１０、および、取り外し不可能記憶装置４１２は、全てコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）などの光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置など磁気記憶装置、または、所望の情報を記憶するのに用いることができ、かつ、コンピュータ装置１０２によってアクセス可能な、他の任意の媒体を含むが、これらに限定されない。このようなコンピュータ記憶媒体のいずれかが、装置１０２の一部であってよい。コンピュータ装置１０２は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、などの入力装置（複数可）４１４を有してもよい。ディスプレイ、スピーカ、プリンタなどの出力装置(複数可)４１６も含んでよい。これらの装置は、この技術分野でよく知られており、ここでこれ以上説明する必要はない。 
【００５２】
コンピュータ装置１０２は、例えばイントラネットやインターネットなどの分散コンピュータ環境でのネットワークを介して、コンピュータ装置１０２が他のコンピュータ装置４２０と通信するのを可能にする通信接続４１８を含んでもよい。通信接続４１８は、通信媒体の一例である。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波や他の搬送機構などの変調データ信号の形の他のデータによって具現されてよく、任意の情報配信媒体を含む。「変調データ信号」とういう用語は、信号に情報を符号化するように、信号の特性の１つまたは複数をセットし変化させた信号を意味する。通信媒体の例としては、有線ネットワークまたは直接有線接続などの有線媒体、音響媒体、ＲＦ媒体、赤外線媒体などの無線媒体を含むが、これらに限定されない。本明細書で用いられるコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含む。
【００５３】
上記の様々な実施形態は、一例としてのみ記載したもので、それらの実施形態に限定されるものではない。本開示の精神および範囲を逸脱することなしに、上記実施形態に様々な修正および変更を加えてよい。
【図１】
0005926176.tif 000002
【図２】
0005926176.tif 000003
【図３】
0005926176.tif 000004
【図４】
0005926176.tif 000005
【図５】
0005926176.tif 000006
【図６】
0005926176.tif 000007