(57)【特許請求の範囲】
【請求項１】
ドキュメントサーバのドキュメントファイルへのアクセスを制御するためのシステムであって、前記システムは、
ドキュメントサーバに格納された１つ以上のドキュメントファイルであって、前記ドキュメントファイルのうちの少なくとも１つが前記ドキュメントサーバに格納されたファイルロックを参照し、前記ファイルロックは、第１のファイルロックおよび第２のファイルロックを含み、前記第１のファイルロックは共有ロックであり、少なくとも１つのドキュメントファイルへの複数のソフトウェアアプリケーションによる書き込みアクセスを許可し、前記第２のファイルロックは排他的ロックであり、少なくとも１つのドキュメントファイルへの単一のソフトウェアアプリケーションによる排他的書き込みアクセスを許可する、ドキュメントファイルと、
ドキュメントアクセス処理モジュールであって、
前記ドキュメントファイルへのアクセスを要求するクライアントコンピュータのソフトウェアアプリケーションのコオーサリングステータスを判断するファイル共有処理モジュールであって、前記コオーサリングステータスは前記ソフトウェアアプリケーションがコオーサリングをサポートしているか否かを示す、ファイル共有処理モジュールと、
１つ以上のファイルロックを格納し、ファイルロックのセッティングとリセッティングを制御し、前記ドキュメントファイルの前記ファイルロックを示すファイルロックステータスを判断する、ファイルロック処理モジュールとを含むドキュメントアクセス処理モジュールとを備え、
前記ドキュメントアクセス処理モジュールは、前記ソフトウェアアプリケーションの前記コオーサリングステータスと前記ドキュメントファイルの前記ファイルロックステータスを使用して、前記ソフトウェアアプリケーションが前記ドキュメントファイルに書き込みアクセスすることを許可されているかを判断し、前記ソフトウェアアプリケーションがコオーサリングをサポートし、前記少なくとも１つのドキュメントファイルがコオーサリングをサポートしないフィーチャを含んでいる場合、前記ドキュメントアクセス処理モジュールは、前記第１のファイルロックを前記第２のファイルロックにリセットすることを特徴とするシステム。
【請求項２】
前記第１のファイルロックは、タイムアウト値を持っていることを特徴とする請求項１に記載のシステム。
【請求項３】
前記ドキュメントアクセス処理モジュールは、前記タイムアウト値に達したとき前記第１のファイルロックをリセットすることを特徴とする請求項２に記載のシステム。
【請求項４】
第３のファイルロックは、共有アクセス用に前記ドキュメントファイルをロックする特定の要求が受信されたことを表し、前記要求は前記ドキュメントファイルがクローズされたとき行なわれ、前記要求は、前記ドキュメントファイルにアクセスするためのソフトウェアアプリケーションによる要求と独立して行なわれることを特徴とする請求項１に記載のシステム。
【請求項５】
前記ドキュメントアクセス処理モジュールは、前記第１のファイルロックがセットされて、コオーサリングをサポートする１つ以上のソフトウェアアプリケーションが前記ドキュメントファイルへのアクセスを要求した場合に、前記ドキュメントファイルへの書き込みアクセスを許可することを特徴とする請求項４に記載のシステム。
【請求項６】
前記ドキュメントアクセス処理モジュールは、前記第２のファイルロックがセットされて、コオーサリングをサポートする１つ以上のソフトウェアアプリケーションが前記ドキュメントファイルへのアクセスを要求した場合に、前記ドキュメントファイルへの書き込みアクセスを拒否することを特徴とする請求項５に記載のシステム。
【請求項７】
前記ドキュメントアクセス処理モジュールは、前記第３のファイルロックがセットされて、コオーサリングをサポートする１つ以上のソフトウェアアプリケーションが前記ドキュメントファイルへのアクセスを要求した場合に、前記ドキュメントファイルへの書き込みアクセスを許可することを特徴とする請求項６に記載のシステム。
【請求項８】
前記ドキュメントアクセス処理モジュールは、前記第１のファイルロック、前記第２のファイルロックおよび前記第３のファイルロックのいずれかがセットされて、前記ソフトウェアアプリケーションがコオーサリングをサポートしない場合に、前記ドキュメントファイルへの書き込みアクセスを拒否することを特徴とする請求項４に記載のシステム。
【請求項９】
前記ドキュメントアクセス処理モジュールは、前記第３のファイルロックをリセットする明示的要求を受けて前記第３のファイルロックをリセットすることを特徴とする請求項４に記載のシステム。
【請求項１０】
前記ドキュメントアクセス処理モジュールは、前記ドキュメントファイルがコオーサリングをサポートしない場合に、１つのソフトウェアアプリケーションが前記ドキュメントファイルに書き込みアクセスすることだけを許可することを特徴とする請求項１に記載のシステム。
【請求項１１】
ドキュメントファイルへのアクセスを制御するための方法であって、前記方法は、
サーバのドキュメントファイルにアクセスする要求をソフトウェアアプリケーションから受信するステップと、
前記ソフトウェアアプリケーションのコオーサリングステータスを判断するステップであって、前記コオーサリングステータスは前記ソフトウェアアプリケーションがコオーサリングをサポートしているか否かを示す、判断するステップと、
前記ドキュメントファイルのファイルロックを示すファイルロックステータスを判断するステップであって、前記ファイルロックは、第１のファイルロックおよび第２のファイルロックを含み、前記第１のファイルロックは共有ロックであり、少なくとも１つのドキュメントファイルへの複数のソフトウェアアプリケーションによる書き込みアクセスを許可し、前記第２のファイルロックは排他的ロックであり、少なくとも１つのドキュメントファイルへの単一のソフトウェアアプリケーションによる排他的書き込みアクセスを許可する、判断するステップと、
前記ソフトウェアアプリケーションがコオーサリングをサポートし、前記ファイルロックステータスがコオーサリングを許可する場合に、前記ドキュメントファイルへの書き込みアクセスを許可するステップと、
前記ファイルロックステータスがコオーサリングを許可するが、前記ソフトウェアアプリケーションがコオーサリングを許可しない場合に、前記ドキュメントファイルへの書き込みアクセスを拒否するステップと、
前記ソフトウェアアプリケーションがコオーサリングをサポートし、前記少なくとも１つのドキュメントファイルがコオーサリングをサポートしないフィーチャを含んでいる場合、前記第１のファイルロックを前記第２のファイルロックにリセットするステップと
を備えることを特徴とする方法。
【請求項１２】
前記ドキュメントファイルへの排他的アクセスのための要求を受信するステップと、
コオーサリングステータスまたは排他的ステータスがすでに別のユーザに与えられていた場合に、前記ドキュメントファイルへの排他的アクセスを拒否するステップとを、さらに備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
ドキュメントサーバに格納されたドキュメントファイルへのアクセスを制御するための方法であって、前記方法は、
ドキュメントファイルを共有アクセス用に指定するロックをセットする要求をドキュメントサーバで受信するステップであって、前記要求は、前記ドキュメントファイルがクローズされるときに行なわれ、前記要求は、前記ドキュメントファイルにアクセスするためのソフトウェアアプリケーションによる要求と独立して行なわれるステップと、
前記ドキュメントファイルに対して第１のロックをセットするステップであって、前記第１のロックは、コオーサリングをサポートしないソフトウェアアプリケーションが前記ドキュメントファイルに書き込むのを禁止するステップと、
前記ドキュメントファイルにアクセスする要求を第１のソフトウェアアプリケーションから受信するステップと、
前記第１のソフトウェアアプリケーションがコオーサリングを許可するかを判断するステップと、
前記第１のソフトウェアアプリケーションがコオーサリングを許可する場合に、前記ドキュメントファイルへの書き込みアクセスを許可するステップと、
前記第１のソフトウェアアプリケーションがコオーサリングを許可する場合に、前記ドキュメントファイルに対し第２のロックをセットするステップであって、前記第２のロックは、コオーサリングをサポートする追加のソフトウェアアプリケーションが前記ドキュメントファイルに書き込みアクセスすることを許可するステップと、
前記第１のソフトウェアアプリケーションがコオーサリングをサポートしない場合に、前記ドキュメントファイルへの書き込みアクセスを拒否するステップと、
前記ソフトウェアアプリケーションがコオーサリングをサポートし、前記少なくとも１つのドキュメントファイルがコオーサリングをサポートしないフィーチャを含んでいる場合、ドキュメントファイルを共有アクセス用に指定するロックをドキュメントファイルを排他アクセス用に指定するロックにリセットするステップと
を備えることを特徴とする方法。
【請求項１４】
コオーサリングをサポートする第２のソフトウェアアプリケーションから前記ドキュメントファイルへの排他的アクセスの要求を受信するステップと、
前記第１のロックがセットされている場合に、排他的アクセスの前記要求を拒否するステップとを、さらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
コオーサリングをサポートしない第２のソフトウェアアプリケーションから前記ドキュメントファイルへの排他的アクセスの要求を受信するステップと、
前記第１のロックがセットされている場合に、排他的アクセスの前記要求を拒否するステップとを、さらに備えることを特徴とする請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のユーザがドキュメントファイルをコオーサリング(coauthor)するのを許可されていることが望ましいことがよくある。
【背景技術】
【０００２】
しかし、すべてのソフトウェアアプリケーションがコオーサリングをサポートするとは限らない。よくあることであるが、ソフトウェアアプリケーションのあるバージョン、代表例として最新のバージョンは、コオーサリングを許可することがあり、ソフトウェアアプリケーションのレガシバージョン(legacy version)は許可しないことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
最新のソフトウェアアプリケーションがドキュメントファイルへのアクセスを共有できること、レガシソフトウェアアプリケーションもドキュメントファイルにアクセスできること、およびレガシアプリケーションがコオーサリングデータまたはコオーサリングプロセスを不注意に壊さないことを確実にするために、コオーサリングシステムにある程度の逆方向互換性を持たせることが望ましい。
【課題を解決するための手段】
【０００４】
本明細書の開示事項は、サーバに格納されたドキュメントファイルへのアクセスを制御するためのシステムおよび方法に関する。
【０００５】
ある態様によれば、ドキュメントサーバのドキュメントファイルへのアクセスを制御するためのシステムは、ドキュメントサーバに格納された１つ以上のドキュメントファイルであって、そのドキュメントファイルのうちの少なくとも１つがドキュメントサーバに格納されたファイルロック(file lock)を参照するドキュメントファイル、およびドキュメントアクセス処理モジュール(document access processing module)を含んでいる。ドキュメントアクセス処理モジュールは、ドキュメントファイルへのアクセスを要求するクライアントコンピュータのソフトウェアアプリケーションのコオーサリングステータス(coauthoring status)を判断するファイル共有処理モジュール(file sharing processing module)、および１つ以上のファイルロックを格納していて、ファイルロックのセッティングおよびリセッティングを制御するファイルロック処理モジュール(file lock processing module)を含んでいる。ドキュメントアクセス処理モジュールは、ソフトウェアアプリケーションのコオーサリングステータスおよびドキュメントファイルのファイルロックステータスを使用して、ソフトウェアアプリケーションがドキュメントファイルに書き込みアクセスすることを許可されているかを判断する。
【０００６】
別の態様によれば、ドキュメントファイルへのアクセスを制御するための方法は、サーバのドキュメントファイルにアクセスするための要求をソフトウェアアプリケーションから受信するステップと、ソフトウェアアプリケーションのコオーサリングステータスを判断するステップと、ドキュメントファイルのファイルロックステータスを判断するステップと、ソフトウェアアプリケーションがコオーサリングをサポートしていて、ファイルロックステータスがコオーサリングを許可する場合に、ドキュメントファイルへの書き込みアクセスを許可するステップと、ファイルロックステータスはコオーサリングを許可するが、ソフトウェアアプリケーションがコオーサリングを許可しない場合に、ドキュメントファイルへの書き込みアクセスを拒否するステップと、を含んでいる。
【０００７】
さらに別の態様によれば、ドキュメントサーバに格納されたドキュメントファイルへのアクセスを制御するための方法は、共有アクセス用にドキュメントファイルを指定するロックをセットするための要求であって、その要求がドキュメントファイルがクローズされるときに行なわれ、ドキュメントファイルにアクセスするためにソフトウェアアプリケーションによる要求と独立して行なわれる要求をドキュメントサーバで受信するステップと、ドキュメントファイルに対して第１のロックであって、コオーサリングをサポートしないソフトウェアアプリケーションがドキュメントファイルに書き込むのを禁止する第１のロックをセットするステップと、ドキュメントファイルにアクセスするための要求を第１のソフトウェアアプリケーションから受信するステップと、第１のソフトウェアアプリケーションがコオーサリングを許可するかを判断するステップと、第１のソフトウェアアプリケーションがコオーサリングを許可する場合に、ドキュメントファイルに対して第２のロックであって、コオーサリングを許可する追加ソフトウェアアプリケーションがドキュメントファイルに書き込みアクセスすることを許可する第２のロックをセットするステップと、第１のソフトウェアアプリケーションがコオーサリングを許可しない場合に、ドキュメントファイルへの書き込みアクセスを拒否するステップと、を含んでいる。
【０００８】
この概要説明は、詳細説明の個所に詳しく下述されている概念を選んで簡略に紹介したものである。この概要説明は、請求項に記載の主題のキーとなる特徴または基本的な特徴を特定するものではなく、請求項に記載の主題の範囲を限定するために使用されるものでもない。
【図面の簡単な説明】
【０００９】
本明細書に組み込まれ、その一部を形成する添付図面は、本明細書の開示事項のいくつかの態様を例示し、本明細書の記載と一緒に使用されて開示事項の原理を解説するものである。添付図面において、
【００１０】
【図１】ドキュメントファイルへのアクセスを制御するためのシステムの一例を示す図である。
【図２】レガシアプリケーションと非レガシアプリケーションの双方を含むクライアントの一例を示す図である。
【図３】ドキュメントアクセス処理モジュールとドキュメントファイルを含むドキュメントサーバの一例を示す図である。
【図４】ファイル共有処理モジュールとファイルロック処理モジュールを含むドキュメントアクセス処理モジュールの一例を示す図である。
【図５】コオーサリング可能なサーバドキュメントファイルへのアクセスを制御するための方法の一例を示す図である。
【図６】コオーサリング可能なサーバドキュメントファイルへのアクセスを制御するための方法の別の一例を示す図である。
【発明を実施するための形態】
【００１１】
本出願は、ドキュメントファイルへのアクセスを制御するためのシステムおよび方法の提示を目的とする。本明細書に記載されている例において、システムおよび方法は、ドキュメントファイルによって参照されたファイルロック(file lock)を使用して、コオーサリング許可が与えられるべきか、およびコオーサリング許可がいつ与えられるべきかを判断する。システムは、コオーサリングをサポートするソフトウェアアプリケーションによるドキュメントファイルのアクセス要求およびコオーサリングファイルロックを要求する特定のユーザアクションによるドキュメントのアクセス要求に基づいて、必要に応じてファイルロックをセットし、リセットする。さらに、システムおよび方法は、ファイルロックを使用して、コオーサリングをサポートしないレガシアプリケーション(legacy application)がドキュメントファイルにアクセスするのを許可する。
【００１２】
本明細書の中で用いられている「コオーサリング(coauthoring)」の用語は、複数のユーザがドキュメントファイルを同時に編集できる能力のことである。また、本明細書の中で用いられている「ドキュメントファイル(document file)」の用語は、アプリケーションプログラムを使用して作成された自己完結した(self-contained)作品のことである。
【００１３】
ドキュメントファイルは、クライアントのソフトウェアアプリケーションがアクセスできるファイルならば、どのようなファイルでもよい。例えば、ドキュメントファイルは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄのようなワードプロセッシングアプリケーションを使用して作成されたファイル、マイクロソフト社提供のＥＸＣＥＬ（登録商標）スプレッドシートソフトウェアのようなスプレッドシートアプリケーションを使用して作成されたスプレッドシートドキュメント、またはマイクロソフト社提供のＰＯＷＥＲＰＯＩＮＴ（登録商標）プレゼンテーショングラフィックスプログラムのようなプレゼンテーションアプリケーションを使用して作成されたプレゼンテーションドキュメントにすることができる。そのために、ドキュメントファイルは、リスト、テーブル、グラフィックスオブジェクトなどを含むことができる。これらは単なる例であり、他のタイプのドキュメントを使用することもできる。
【００１４】
図１は、ドキュメントファイルのコオーサリングをサポートする例示のシステム１００を示す。このシステムは、クライアント１０１、１０２と１つ以上のドキュメントサーバ１０４を含んでいる。使用されるクライアントとドキュメントサーバはもっと多くすることも、少なくすることもできる。
【００１５】
クライアント１０１，１０２は、ドキュメントファイルを作成し、編集するために使用されるソフトウェアアプリケーション、例えば、ワードプロセッシングプログラムを含んでいる。例示の実施形態において、クライアント１０１、１０２は、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデータアシスタント（ＰＤＡ）、またはセルラデバイスのようなコンピューティングデバイスである。クライアント１０２は、入出力デバイス、中央処理ユニット（ＣＰＵ）、データストレージデバイス、およびネットワークデバイスを含むことができる。代表的な入出力デバイスとしては、キーボード、マウス、ディスプレイ、マイクロホン、スピーカ、ディスクドライブ、ＣＤ−ＲＯＭドライブ、およびフラッシュドライブがある。データストレージデバイスのようなコンピュータ可読媒体は、データを保存しておくものである。例を挙げると、コンピュータ可読媒体として可能なものには、コンピュータ記憶媒体および通信媒体がある。コンピュータ記憶媒体としては、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するために、なんらかの方法またはテクノロジで実現された揮発性および不揮発性で、取り外し可能および固定の媒体がある。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを搬送波(carrier wave)またはその他のトランスポートメカニズムのような変調データ信号に具現化しているのが代表的である。「変調データ信号(modulated data signal)」の用語は、その特性の１つ以上が、信号の中の情報を符号化するような形でセットまたは変更されている信号を意味する。データストレージデバイスに格納された複数の情報の中には、クライアントオペレーティングシステム（ＯＳ）とクライアントアプリケーションがある。クライアントＯＳは、クライアントシステムのハードウェアリソースとソフトウェアリソースを管理するプログラムである。クライアントアプリケーションは、クライアント１０１、１０２のリソースを利用して、ユーザによって指定されたタスクを直接に実行する。ネットワークデバイスは、クライアント１０１、１０２がサーバ１０４との間でデータを送受信するのを可能にする。クライアント１０１、１０２としては、他の構成も可能である。
【００１６】
ドキュメントサーバ１０４は、ＬＡＮまたはインターネットのようなネットワーク内でアクセス可能なファイルサーバである。ドキュメントサーバ１０４は、複数のファイルを格納する。これらのファイルとして可能なものには、以下に詳しく説明されているように、ソフトウェアアプリケーションファイルとドキュメントファイルの両方がある。ドキュメントサーバ１０４は、そこに格納されたドキュメントファイルへのアクセスを制御する。例示の実施形態において、ドキュメントサーバ１０４は、組織内に置いておくことも、インターネットベース共有ドキュメントシステム(Internet-based shared document system)の一部にすることもできる。例示のインターネットベース共有ドキュメントシステムは、マイクロソフト社（ワシントン州レッドモンド）提供のＳＨＡＲＥＰＯＩＮＴ（登録商標）チームサービスポータルサーバサービスである。例示の共有ドキュメントサーバは、マイクロソフト社（ワシントン州レッドモンド）提供のＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ  ＳｈａｒｅＰｏｉｎｔ  Ｓｅｒｖｅｒ  ２００７である。他の構成を使用することもできる。
【００１７】
図２は、例示のクライアント１０２を示す詳細図である。クライアント１０２は、コオーサリングをサポートする非レガシアプリケーション２０２とコオーサリングをサポートしないレガシアプリケーション２０４の両方を含んでいる。例えば、ワードプロセッシングプログラムの新バージョン、例えば、本件特許出願人（ワシントン州レッドモンド）提供のＭｉｃｒｏｓｏｆｔ Ｗｏｒｄは、複数のユーザがドキュメントファイルを同時にオープンし、これらのドキュメントファイルを編集し、その共有される結果をシームレスにマージするのを可能にする機能を含んでいてもよい。ワードプロセッシングプログラムの旧バージョンは、この機能のすべてを含んでいなくてもよい。例えば、レガシアプリケーションは、シングルユーザだけがドキュメントファイルを一度にオープンし、編集するのを可能にしてもよい。しかし、新バージョンとレガシバージョンは、どちらも、同一ドキュメントファイルをドキュメントサーバ１０４からアクセスする必要があってもよい。
【００１８】
図３は、例示のドキュメントサーバ１０４を示す詳細図である。ドキュメントサーバ１０４は、例示のドキュメントアクセス処理モジュール３０２とドキュメントファイル３０４を含んでいる。
【００１９】
例示のドキュメントアクセス処理モジュール３０２は、ドキュメントファイル３０４へのアクセスを制御する。例えば、ドキュメントアクセス処理モジュール２０３は、ソフトウェアアプリケーションが完全読み書きアクセス(full read-write access)でファイルをオープンして編集できるか、読み専用アクセスでファイルをオープンできるか、またはファイルにどのアクセスもできないかを判断することができる。例示のドキュメントアクセス処理モジュール３０２は、あるソフトウェアアプリケーションがドキュメントファイルをコオーサリングする許可を得ている他のソフトウェアアプリケーションとドキュメントファイルを共有することがあるかも判断する。
【００２０】
次に図４を参照して説明すると、例示のドキュメントアクセス処理モジュール３０２は、ファイル共有処理モジュール４０２とファイルロック処理モジュール４０４を含んでいる。
【００２１】
例示のファイル共有処理モジュール４０２は、ソフトウェアアプリケーションがコオーサリングをサポートするかを判断する。例示のファイル共有処理モジュール４０２は、ソフトウェアアプリケーションによってアクセスされているドキュメントファイルがコオーサリングをサポートするかも判断する。ドキュメントファイルがコオーサリングをサポートするかの判断は、そのドキュメントファイルに関連するメタデータ(meta date)を評価することによって行なわれるのが代表的である。例えば、ある実施形態では、各ドキュメントファイルに関連するメタデータは、特定のファイルがコオーサリングをサポートするか否かを示すフィールドを含んでいる。
【００２２】
例示のファイルロック処理モジュール４０４は、ドキュメントサーバに格納されたファイルロックのセッティング、リセッティングおよび処理を制御する。ファイルロックは、ドキュメントファイルへの書き込みアクセスを制御するために使用される。ファイルロックは、メタデータに格納され、ドキュメントファイルによって参照されるのが代表的である。ある実施形態において、ファイルロックのメタデータは、ドキュメントサーバのデータベースに格納されていてもよい。他の実施形態において、ファイルロックのメタデータは、ドキュメントファイルに格納されていてもよい。ドキュメントファイルは、１つ以上のファイルロックを参照してもよい。ドキュメントアクセス処理モジュール３０２は、ソフトウェアアプリケーションのコオーサリングステータスおよびドキュメントファイルのファイルロックステータスを使用して、ソフトウェアアプリケーションがドキュメントファイルに書き込みアクセスすることを許可されているかを判断する。
【００２３】
本明細書に記載の例において、ドキュメントアクセス処理モジュール３０２は、１つ以上の異なるタイプのファイルロックを処理するようにプログラムされている。例えば、ある実施形態において、３つの例示のタイプのファイルロックは、短期共有ロック(short-term shared lock)、短期排他的ロック(short-term exclusive lock)、および長期共有ロック(long-term shared lock)である。
【００２４】
例示の短期共有ロックは、コオーサリングをサポートするソフトウェアアプリケーションがドキュメントファイルへのアクセスを要求したときドキュメントサーバでセットされる。短期共有ロックを使用すると、ソフトウェアアプリケーションは、ファイルへの完全読み書き許可が得られる。同じくコオーサリングをサポートする第２のソフトウェアアプリケーションが同じドキュメントファイルへのアクセスを要求する場合に、その第２のソフトウェアアプリケーションにもファイルへの完全読み書き許可が与えられるので、第１のソフトウェアアプリケーションと同時にファイルを編集することが許可される。コオーサリングをサポートする追加ソフトウェアアプリケーションにも、同じようにファイルへの完全読み書き許可が与えられる。しかし、コオーサリングをサポートしないソフトウェアアプリケーションが短期共有ロックをもつドキュメントファイルへのアクセスを要求する場合に、完全読み書きアクセスの要求は、ドキュメントアクセス処理モジュール３０２によって拒否され、そのソフトウェアアプリケーションにはドキュメントファイルへの読み取りアクセスだけが許可される。
【００２５】
例示の短期排他的ロックは、ソフトウェアアプリケーションがドキュメントファイルへの排他的書き込みアクセスを必要とするときドキュメントサーバでセットされる。短期排他的ロックは、コオーサリングをサポートするソフトウェアアプリケーションとコオーサリングをサポートしないレガシアプリケーションの両方に対して与えることができる。ファイルロック処理モジュール４０４は、あるユーザによって要求され、他のどのユーザもドキュメントファイルに対して短期共有ロックまたは短期排他的ロックを持っていないとき短期排他的ロックをセットする。あるユーザが短期排他的ロックを要求し、短期ロック（短期共有ロックまたは短期排他的ロックのどちらか）がドキュメントファイルに対してすでに存在する場合は、その要求は拒否される。要求が拒否された場合、ソフトウェアアプリケーションは、読み取り専用でドキュメントファイルを見ることができるが、その編集を行なうことはできない。いったん短期排他的ロックがセットされたあとで、別のユーザがコオーサリングのための短期共有ロックを要求した場合に、その要求は拒否される。
【００２６】
短期共有ロックは、コオーサリングクライアントがドキュメントファイルにコオーサリング不能フィーチャ(non-coauthorable feature)を見つけたとき、またはユーザが他の場合にコオーサリング可能なドキュメントファイル内にコオーサリング不能フィーチャを作成したときは、短期排他的ロックに移行することもできる。フィーチャがコオーサリング不能であるかの判断は、ソフトウェアアプリケーションによって行なわれる。代表例として、フィーチャがマージ可能でない場合（すなわち、そのフィーチャがソフトウェアアプリケーションのマージエンジン(merge engine)によってサポートされない場合）には、そのフィーチャはコオーサリング不能である。コオーサリング不能フィーチャの一例として、暗号化テキストがある。
【００２７】
短期共有ロックと短期排他的ロックは、各々にタイムアウト値が関連付けられている。ドキュメントファイルが読み取りまたは書き込みのいずれかでアクセスされるとき、タイムアウト値はリフレッシュされる。例示のファイルロックモード処理モジュール４０４は、短期共有ロックのタイムアウト値に達したとき（ドキュメントファイルがアクティブでないために）またはドキュメントファイルがクローズされたとき短期共有ロックをリセットする。同様に、例示のファイルロック処理モジュール４０４は、短期排他的ロックのタイムアウト値に達したとき、短期排他的ロックを要求したソフトウェアアプリケーションがクローズしたときまたはドキュメントファイルがクローズされたとき、短期排他的ロックをリセットする。短期共有ロックおよび短期排他的ロックをクローズするための他の条件も可能である。
【００２８】
例示の長期共有ロックは、コオーサリングユーザによって、代表例としてユーザインタフェースを通して明示的に要求されたときドキュメントファイルに対してセットされる。長期共有ロックに関連付けられたタイムアウト値はないが、長期共有ロックはドキュメントサーバ１０４のアドミニストレータによって除去することも、長期共有ロックを要求したユーザの明示的アクションによって除去することもできる。
【００２９】
長期共有ロックがあるドキュメントファイルに対してセットされたとき、例示のファイルロック処理モジュール４０４は、そのファイルへの共有アクセスがコオーサリングクライアントによって要求されたときはドキュメントサーバの短期共有ロックをセットしたままである。しかし、コオーサリングをサポートしないレガシアプリケーションは、ドキュメントファイルへの完全アクセスが拒否され、読み取り専用モードでファイルを見ることだけができる。ドキュメントファイルが編集中でなく、短期共有ロックを持っていない場合でも、レガシアプリケーションは、ドキュメントファイルへの完全アクセスが拒否される。さらに、短期排他的ロックを要求するといったように、ファイルへの排他的権利の要求は、その要求がコオーサリングをサポートするソフトウェアアプリケーションによって行なわれたか、コオーサリングをサポートしないレガシアプリケーションによって行なわれたかに関係なく、いずれも拒否される。
【００３０】
代替の実施形態では、他のタイプのロックを使用することもできる。例えば、ある実施形態は、長期排他的ロックを含んでいてもよい。長期排他的ロックによると、一人のユーザだけがファイルを編集することができるので、長期排他的ロックに関連付けられたタイムアウト値はない。
【００３１】
図５は、サーバドキュメントファイルへのアクセスを制御するための例示の方法５００を示すフロー図である。オペレーション５０２において、ドキュメントサーバに格納されたドキュメントファイルにアクセスする要求がドキュメントサーバによって受信される。この要求は、クライアントデバイスのソフトウェアアプリケーションのユーザがそのソフトウェアアプリケーションでドキュメントファイルのオープンを試みたとき生成されるのが代表的である。この目的のために使用される１つの例示のソフトウェアアプリケーションは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄのようなワードプロセッシングプログラムである。このワードプロセッシングプログラムは、ドキュメントのコオーサリングを許可するバージョンであってもよいし、コオーサリングを許可しないレガシプログラムであってもよい。ワードプロセッシングプログラムにコオーサリング能力があるかの判断は、オペレーション５０４で行なわれる。
【００３２】
ドキュメントファイルのファイルロックステータスは、オペレーション５０６で判断される。このファイルロックは、代表例としてメタデータ(meta data)を通してドキュメントサーバに格納され、ドキュメントファイルのコオーサリングステータスを表す。複数のファイルロックを格納しておくことができる。例示のファイルロックとしては、１）コオーサリングをサポートするソフトウェアアプリケーションが、代表例として読み書きモードでドキュメントファイルをオープンすることによって、そこに書き込む意図でドキュメントファイルにアクセスしたことを表す短期共有ロック、２）ソフトウェアアプリケーションがドキュメントファイルに排他的アクセスをすることを表す短期排他的ロック、および３）代表例としてユーザインタフェースを通してユーザが特定の要求を行ない、ドキュメントファイルがファイル共有に利用できるものとして指定していることを表す長期共有ロックがある。例示の長期共有ロックに対する要求は、ドキュメントファイルをオープンすることから独立して行なわれる明示的要求である。他のファイルロックも可能である。
【００３３】
オペレーション５０８において、ソフトウェアアプリケーションは、ソフトウェアアプリケーションがコオーサリングの能力を有するかが判断するために評価される。ソフトウェアアプリケーションがコオーサリングを許可する場合には、コントロールがオペレーション５１０に渡される。オペレーション５１０において、ファイルロックステータスが短期排他的アクセスを示す場合、つまり、ドキュメントファイルが排他的アクセスとして別のユーザに割り当てられている場合に、ドキュメントファイルへの書き込みアクセスは、オペレーション５１２で拒否される。このケースでは、ソフトウェアアプリケーションは読み取り専用でドキュメントファイルを見ることを許可されるが、ドキュメントファイルを編集することは許可されない。ファイルロックステータスが短期排他的アクセスを示さない場合は、オペレーション５１４において、ソフトウェアアプリケーションはドキュメントファイルへの書き込みアクセスを許可される。さらに、ファイルロックが共有ステータスとしてまだセットされていない場合に、オペレーション５１６において、ファイルロックは、短期共有ステータスにセットされる。
【００３４】
オペレーション５０８に戻って説明すると、ソフトウェアアプリケーションがコオーサリングをサポートしない場合に、コントロールがオペレーション５２０に渡され、そこで共有ファイルロックが存在するかを判断するために、ファイルロックステータスが評価される。短期共有ロック、短期排他的ロック、またはドキュメントファイルにすでにセットされた長期共有ロックが存在する場合に、ソフトウェアアプリケーションは、オペレーション５２２においてドキュメントファイルへの書き込みアクセスが拒否される。しかし、短期共有ロック、短期排他的ロック、またはドキュメントファイルにすでにセットされている長期共有ロックが存在しない場合に、ソフトウェアアプリケーションは、オペレーション５２４においてドキュメントファイルへの書き込みアクセスが許可される。
【００３５】
図６は、サーバドキュメントファイルへのアクセスを制御するための別の例示の方法６００を示すフロー図である。この例示の方法６００では、長期共有ロックが使用される。最初に、オペレーション６０２において、ドキュメントファイルに対して長期共有ロックをセットする要求がドキュメントサーバで受信される。この要求は、代表例としてクライアントのユーザインタフェースを通してクライアントによって開始される。オペレーション６０４において、サーバはドキュメントファイルに対してドキュメントサーバの長期共有ロックをセットする。長期共有ロックは、ドキュメントファイルにアクセスを試みるソフトウェアアプリケーションとは関係なく、ドキュメントファイルに共有コオーサリングステータスをセットするために使用される。このようにして、ソフトウェアアプリケーションがドキュメントファイルにアクセスを試みるときに、コオーサリングステータスは、ドキュメントファイルに対してすでにセットされている。
【００３６】
オペレーション６０６において、ドキュメントファイルにアクセスする要求がソフトウェアアプリケーションから受信される。オペレーション６０８において、ソフトウェアアプリケーションがコオーサリングをサポートするかを判断するためにソフトウェアアプリケーションがチェックされる。オペレーション６１０においてコオーサリングがサポートされる場合は、オペレーション６１２において、ソフトウェアアプリケーションに書き込みアクセスが与えられる。しかし、ドキュメントファイルが長期共有ロックを持っているためにコオーサリングがサポートされない場合に、ソフトウェアアプリケーションは、ドキュメントファイルへの書き込みアクセスが拒否され、読み取り専用ステータスの下でドキュメントファイルを見ることだけが許可される。長期共有ロックは、ロックをリセットする要求がサーバで受信されるまで効力を持っている。
【００３７】
以上、構造上の特徴および/または方法上のアクトに特有な表現で主題を説明してきたが、当然に理解されるように、請求項に定義された主題は上述した特定の特徴またはアクトに必ずしも限定されない。むしろ、上述した特定の特徴およびアクトは請求項の実施形態の例として開示されたものである。
【図１】
0005453397.tif 000002
【図２】
0005453397.tif 000003
【図３】
0005453397.tif 000004
【図４】
0005453397.tif 000005
【図５】
0005453397.tif 000006
【図６】
0005453397.tif 000007