(57)【特許請求の範囲】
【請求項１】
複数のノード及び記憶機構を備えるサーバクラスタ環境において、前記記憶機構のオーナーシップを存続させるため、前記複数のノードのうち前記記憶機構を所有する所有ノードによって実行される方法であって、
前記所有ノードが前記記憶機構を独占的に所有していることを表すオーナーキーを前記記憶機構のデータ構造に書込むことによって、前記オーナーキーを前記記憶機構に関連付けるステップと、
前記複数のノードのうち前記記憶機構を所有しない少なくとも１つの非所有ノードによる前記記憶機構に対する読取り又は書込みアクセスを、前記少なくとも１つの非所有ノードの共有キーが前記記憶機構のデータ構造に含まれるかどうかに基づいて許可するステップであって、各共有キーは、該共有キーを前記データ構造に挿入したノードの識別情報を含む、ステップと、
前記記憶機構を所有しない非所有ノードによる前記記憶機構のオーナーシップを取得しようとするチャレンジから、前記記憶機構のオーナーシップを防御するステップであって、前記非所有ノードによって、前記記憶機構のオーナーシップを取得するための予約キーが前記記憶機構の前記データ構造に登録されたかどうかを判定し、前記非所有ノードによって前記予約キーが前記記憶機構のデータ構造に登録された場合、前記所有ノードのオーナーキーを、当該予約キーに替えて前記記憶機構のデータ構造に書き込むことによって、前記オーナーシップを防御するステップと
を含む、方法。
【請求項２】
前記記憶機構のデータ構造は、複数の共有キーを含み、前記方法は、
前記読取り又は書込みアクセスを許可するステップの前に、前記複数のノードのうち前記サーバクラスタ環境において有効なノードを示すクラスタメンバーシップデータを取得するステップを含み、
前記読取り又は書込みアクセスを許可するステップは、前記識別情報と前記クラスタメンバーシップデータとに基づいて、前記記憶機構のデータ構造内の各共有キーが前記有効なノードの共有キーであるか判断することを含む、請求項１に記載の方法。
【請求項３】
前記読取り又は書込みアクセスを許可するステップは、前記有効なノードとして識別されなかったノードの共有キーを、前記記憶機構のデータ構造から削除することを含む、請求項２に記載の方法。
【請求項４】
記憶機構と、該記憶機構のオーナーシップを取得するよう試みる機構を含む複数のノードとを備えたサーバクラスタ環境において動作するシステムであって、
前記複数のノードのうち前記記憶機構のオーナーシップを所有する所有ノードを備え、
前記所有ノードは、前記記憶機構を独占的に所有していることを表すオーナーキーを前記記憶機構のデータ構造に書込むように構成され、
前記所有ノードは、前記複数のノードのうちのいずれかの他のノードによって行われる前記オーナーシップを所得しようとするチャレンジから、前記オーナーシップを防御することであって、前記他のノードによって、前記記憶機構のオーナーシップを取得するための予約キーが前記記憶機構のデータ構造に登録されたかどうかを判定し、前記他のノードによって前記予約キーが前記記憶機構のデータ構造に登録された場合、前記所有ノードのオーナーキーを、当該予約キーに替えて前記記憶機構のデータ構造に書き込むことによって、前記オーナーシップを防御し、
前記複数のノードのうち前記記憶機構のオーナーシップを所有していない非所有ノードは、該非所有ノードの共有キーを前記記憶機構のデータ構造に書込み、前記所有ノードは、非所有ノードによる前記記憶機構への読取り及び書込みアクセスを許可するかどうかを、前記非所有ノードの共有キーが前記データ構造内に含まれるかどうかに基づいて判断するように構成され、前記データ構造内の各共有キーは、該共有キーを前記データ構造に書き込んだ非所有ノードの識別情報を含む、システム。
【請求項５】
前記記憶機構のデータ構造は、複数の共有キーを含み、
前記所有ノードは、前記読取り及び書込みアクセスを許可するかどうかの判断の前に、前記複数のノードのうち前記サーバクラスタ環境において有効なノードを示すクラスタメンバーシップデータを取得し、
前記読取り及び書込みアクセスを許可するかどうかを判断することは、前記識別情報と前記クラスタメンバーシップデータとに基づいて、前記記憶機構のデータ構造内の各共有キーが前記有効なノードの共有キーであるかどうかを判断することを含み、前記有効なノードとして識別されなかったノードの共有キーは、前記データ構造から削除される、請求項４に記載のシステム。
【請求項６】
前記非所有ノードは、
前記複数のノードのうちのいずれかの他のノードが既に前記記憶機構のオーナーシップを有するかどうかを判定し、
前記複数のノードのうちのいずれかの他のノードが前記記憶機構のオーナーシップを有する場合、当該非所有ノードの予約キーを前記記憶機構のデータ構造に関連付け、
所定の時間の間に当該非所有ノードの予約キーが前記他のノードによって削除されなかった場合、前記他のノードから前記記憶機構のオーナーシップを取得する、請求項４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、永続予約を介する共有書込みアクセスのリソースアービトレーションに関する。
【背景技術】
【０００２】
サーバクラスタは、一般に、サーバ（ノード）のグループであり、そのサーバ（ノード）は、何れかのサーバが停止する場合、クラスタの他のサーバが停止したサーバの動作を透過的に引き継ぐ、すなわち、アプリケーションを再開して、重大な中断が発生することなく、クライアントに使用可能な状態を維持するように配置されている。このオペレーションはフェイルオーバー又はフェイルオーバークラスタリングと一般に称される。
【０００３】
クラスタにおいて、各記憶装置（ハードディスクドライブ）は、１つのノードによって所有されている。オーナーノードは、適切に動作している場合、他のノードによるオーナーシップのチャレンジに対して記憶装置のオーナーシップを防御するので、オーナーが停止する場合、別のノードがオーナーシップを引き継ぐことができる。
【０００４】
かかるチャレンジ−ディフェンスモデルを実装するために、米国特許第７，２７７，９５２号に開示されているように、永続予約オーナーシップアルゴリズムが使用されている。しかしながら、この永続予約オーナーシップアルゴリズムは、シェア‐ナッシングモデルを実装している。そのシェア‐ナッシングモデルにおいて、ディスクを所有しているノードは、独占的なオーナーシップとディスクに対する完全なアクセスをディスクに有し、一方、他のノードはリード‐オンリーアクセスを有する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
（関連する特許出願第１２／１４７，９５６号において記載された）クラスタ共有記憶ボリューム技術の１つの態様によれば、他の正常なクラスタノードは、共有されたクラスタディスクに対して同時に書込むことができる必要がある。その為、クラスタに適切に参加していないいかなるノードをも除きつつ、正常なノードに対する記憶装置のアクセスを許可する方法が必要とされている。
【課題を解決するための手段】
【０００６】
本発明の概要は、代表的な概念の選択を単純化した形態にて紹介するために提供されており、その単純化された形態は、以下に詳細な説明でさらに説明されている。本発明の概要は、特許請求の範囲に記載された発明の重要な特色若しくは本質的な特徴を特定するよう意図されていないし、又は、特許請求の範囲に記載された発明の範囲を限定するように用いられるよう意図されていない。
【０００７】
簡略して、本明細書に記載された発明の種々の態様は、サーバクラスタにおけるオーナーノードが、記憶機構（例えば、ディスク又は他の記憶装置）を独占的に所有し、さらに、非所有ノードが記憶機構に対する共有読取りアクセス及び書込みアクセスを有するよう許可する技術を指向している。１つの態様において、１つのノードは、永続予約機構を介して記憶機構のオーナーシップを保持するオーナーノードを含む。記憶機構は、記憶機構に関連付けられたレジスタテーブルにキーを関連づける（例えば、書込みをする）。非所有ノードは共有されたキーをレジスタテーブルに関連づける。オーナーノードは、クラスターメンバーシップデータに対する共有キーを有効化し、有効でないと判断された全てのキーを差し替える（例えば、削除する）ので、無効なノードは、もはや記憶機構に対するアクセス権を有さない。
【０００８】
１つの態様において、オーナーノードは、オーナーシップに対するチャレンジを防御する。非所有ノードは、チャレンジングキーを記憶機構に書込みし、ディフェンス時間の間、待機する。オーナーノードが適切に動作している場合、それはディフェンス時間中にチャレンジキーを検知し、それを差し替えて、オーナーシップを保持する。オーナーノードが適切に動作していない場合、オーナーノードがディフェンス時間中にチャレンジを防御することができないので、チャレンジングノードが新規なオーナーになる。
【０００９】
他の利点は、添付図面とともに考慮すると、以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１０】
本願発明は、実施例として図示されており、同様の参照番号は図面の同様の要素を示す添付図面に限定されない。
【図１Ａ】図１Ａは、共有ディスクを有するサーバクラスタ環境における例示的要素を表すブロック図である。
【図１Ｂ】図１Ｂは、共有ディスクを有するサーバクラスタ環境における例示的要素を表すブロック図である。
【図２】図２は、永続予約を介してリソースアービトレーション及び共有書込みディスクアクセスを達成する例示的要素を示すブロック図である。
【図３】図３は、クラスタ共有ボリュームを予約し及び／又はクラスタ共有ボリュームにアクセスするためになされる例示的ステップを示すフロー図である。
【図４】図４は、クラスタ共有ボリュームを予約し及び／又はクラスタ共有ボリュームにアクセスするためにＳＣＳＩ環境においてなされる例示的ステップを示すフロー図である。
【図５】図５は、クラスタ共有ボリュームを予約し及び／又はクラスタ共有ボリュームにアクセスするためにＳＣＳＩ環境においてなされる例示的ステップを示すフロー図である。
【図６】図６は、本願発明の様々な態様が組み入れられ得るコンピューティング環境の例示的実施例を示す図である。
【発明を実施するための形態】
【００１１】
本明細書に記載された技術の様々な態様が、読取りアクセス及び書込みアクセスを共有することを含み、クラスタノードが他のノードを用いて（例えば、記憶ボリュームとして構成された）ディスクに対するアクセスを共有するよう許可することに指向されている。一般に、（実際にディスクタイプの記憶装置であるかどうかに関わらず本明細書において「ディスク」又は「ハードディスク」とも称される）記憶装置は、単一のクラスタノードによって所有されている。しかしながら、本明細書に記載されているように、他のノードからの読取り及び書込み入出力（Ｉ／Ｏ）動作に対する限定は、除かれている。これにより、クラスタにおけるあらゆるノード上で駆動するクラスタ化されたアプリケーション及びサービスは、共有されたあらゆるボリューム上のデータにアクセスすることが可能となる。
【００１２】
１つの例示的実装において、かかる共有は、ノードがＳＣＳＩ永続予約（PR:Persistent Reservation）を所有されたディスクを用いて登録するよう許可することよって可能にされる。特に、オーナーノードは、独占的ＰＲキーを登録してそのオーナーシップを主張し、残りのノードの各々は、「共有された」ＰＲキーを登録する。「共有された」ＰＲキーは、そのノードの識別子として暗号化される。一般に、有効なノードの共有ＰＲは、別のノードによって所有されているとき、ディスクに対するそのノードの読取り及び書込みアクセスを許可する。共有ＰＲキーを登録したノードが、もはや有効でなくなる場合（例えば、停止するか又は無効と考えられる場合）、オーナーノードは、そのノードの共有ＰＲキーを消去するので、ディスクに対する無効なノードからの更なる入出力が防止される。
【００１３】
１つの例示的実装において、この技術は、マイクロソフト（登録商標）ＮＴＦＳをファイルシステムとして使用するマイクロソフト（登録商標）Ｗｉｎｄｏｗｓ（登録商標）サーバフェイルオーバクラスタリング及びＳＣＳＩディスクと共に動作する。しかしながら、これらは実施例にすぎないことが理解される。実際、他の環境、ファイルシステム及び／又は記憶技術が本明細書に記載された技術のうちの１つ以上の態様を実装するのに使用され得る。そういうものとして、本願発明は、本明細書に記載された特定のあらゆる実施例、態様、概念、構造、機能、又は、例示に限定されない。むしろ、本明細書に記載された実施例、態様、概念、構造、機能、又は、例示のいずれもが、非限定的であり、本発明は、一般的にコンピューティング、クラスタリング、及びデータアクセスにおいて利益及び利点を提供する様々な手法において実装され得る。
【００１４】
図１Ａにおいて、クラスタ環境の簡略化されたブロック図が示されている。クラスタ環境は、Ｎ０、Ｎ１、及びＮ２の３つのノードを含み、各々はディスク１００乃至１０２をそれぞれ所有している。クラスタノードは、ＳＣＳＩ、ファイバーチャネル、ＩＳＣＳＩ、又は、他の高速通信リンクを介してクラスタのディスクに通常接続されている。
【００１５】
尚、図１Ａは１つの可能な構成のみを示しており、１つのノードが１つのディスクを所有しなくてもよく、１つのノードは、１つより多いディスクを所有してもよい。例えば、図１Ｂにおいて、ノードＮ２は停止している（又は何らかの理由で通信していない）ので、ノードＮ０は、概略的に以下に説明するように、予約機構１１０を介してディスク１０２のオーナーシップを取得している。他のノードＮ１及びＮ２は、概ね同一の予約機構１１１及び１１２をそれぞれ有する。
【００１６】
ディスクを所有するノードが、そのディスクに対する共有アクセスを提供するようにするために、複数のクラスタノードからの並列アクセスを可能にする変更された予約体系が、提供され得る。このために、図２に概略的に示すように、（ノードＮ１等の）各ノードは、予約機構１１１を含むクラスタディスクドライバ２２０（例えば、カーネルドライバを含むクラスタディスクシステム）を含む。以下に説明するように、（例えば、ブロック２２２によって表された）別のノードの類似のクラスタディスクドライバは、予約機構／アルゴリズムに参加して、ディスク１０１にアクセスする。一方、所有ノードのクラスタディスクドライバＮ１は、予約機構／アルゴリズムに参加して、オーナーシップを保持し且つ保護する。例示されたクラスタディスクドライバ２２０は、以下で説明するように、クラスタサービス要素２２４と共に動作する。
【００１７】
背景技術として、米国特許第７，２７７，９５２号に開示されている従来の永続予約オーナーシップアルゴリズムは、シェア‐ナッシングモデルを実装する、すなわち、ディスクを所有しているノードは、独占的オーナーシップと完全なアクセスを有するものの、他のノードはリード‐オンリーアクセスを有する。オーナーシップは、（ＰＲキーと称される）予約キーをディスクの上のＰＲ予約テーブル内で使用して、書込み‐独占的レジスタント‐オンリー永続予約（Write-Exclusive, registrants-only persistent reservation）を設けることによって、オーナーノードによって主張される。所有ノードは、ＰＲレジスタテーブルを周期的（例えば、デフォルト設定で３秒毎に）にチェックすることによって、このオーナーシップを保持し／防御し、（所有ノードがクラッシュする場合には引き継ぐために）他のノードは、それら自身のキーをＰＲレジスタテーブルに登録することによってオーナーシップを取得しようと試みる。所有ノードが動作可能であり、それ自身のＰＲキーをテーブル内で見出す場合、動作を全く取る必要はない。しかしながら、それが、ＰＲレジスタテーブルにおけるそれ自身のキー以外のいずれかのキーを見出す場合には、所有ノードはそのキーを差し替える（すなわち、動作可能でない場合、それをテーブルから削除する。チャレンジングノードのキーは残存するので、現行のオーナーのＰＲ予約をそれ自身と差し替えることによって、オーナーシップを引き継ぐ）。安定的であり且つ機能的なクラスタの下では、ディスクのＰＲ予約テーブルは１つのキーを有し、そのＰＲレジスタテーブルはＭ個のキー（同じオーナーノードからのそれらのすべて）を有する。尚、Ｍは、ＭＰＩＯシステムのディスクに対する入出力パスの数であり、非ＭＰＩＯシステムに対しては、Ｍは１である。
【００１８】
クラスタ共有ボリュームに設けられたディスクに対して、この永続予約アルゴリズムは、本明細書に記載されるように変更されて、クラスタにおけるノードが安全な方法で読取り‐書込みモードにおいて実質的に同時的にディスクにアクセスすることができるよう許可する。クラスタの外部のマシンは、クラスタ共有ボリュームディスクに対するアクセスを有していない。
【００１９】
図２に概略的に示すように、物理的ディスクリソース２２６は、クラスタにおける共有ディスクを管理し、他の動作中に、クラスタ化されたディスクが安全にアクセスされ且つ不正行為から保護されるよう確実になし、さらに、同一の共有ディスクに対する実質的に同時のアクセスを円滑にする。これは、本明細書に記載されているように、共有永続予約（ＰＲ）キー及びクラスタメンバーシップの認識を使用することによって達成される。
【００２０】
クラスタ共有ボリュームディスク予約アルゴリズムに関して、１つの例示的実装において、（例えば、クラスタサービス２２４の）ディスク制御マネージャ２２８は、物理的ディスクリソース２２６に呼びかけして、クラスタ化されたディスク１０１に対して新規の予約ポリシを設定する。特に、クラスタ化されたディスク１０１は、オーナーシップの上述した概念に違反することなく、他のノードからの読取り‐書込み入出力を許可する必要がある。このために、オーナーノードはディスクの制御を維持し、しかし、共有ＰＲキー２３０を介して１ノードあたりのベースで入出力ポリシを緩和する。この共有ＰＲキー機構／予約アルゴリズム１１１の下では、Ｎ‐ノードクラスタにおけるクラスタ共有ボリュームディスク１０１は、そのレジスタテーブル２４０においてＮ＊Ｍ個のキーを有する。ここで、Ｍは、ＭＰＩＯ設定におけるノードからディスクに対する入出力パスの数であり、非ＭＰＩＯシステムに対しては、Ｍは１である。オーナーノードは、レジスタテーブル２３２においてＭ個のキーを有し、予約テーブル２４２において１つのキー、ＰＲキー２３１を有する。テーブルは、物理的に分離されている必要はなく、いかなる方法においても維持され得る、実際に、レジスタテーブルは、何らかの指示（例えば、フラグ又は順序付け）を含み得る。何らかの指示に関して、キーが（物理的に存在する必要がない）予約テーブル２４２“内”に存在する。
【００２１】
よって、１つの態様が、クラスタディスクに対するアクセスを制御するアルゴリズムを提供して、これにより、クラスタに参加するすべてのクラスタノードがそのディスクに対して読取り‐書込みアクセスを有する。尚、これにより、クラスタにおけるすべてのノードに対するクラスタディスク上の読取り‐書込みアクセスが許可される。そして、優良な他のクラスタノードに対する可読取り‐書込み入出力アクセスを許可しつつ、それは、現行のアルゴリズムの安全なプロパティを維持する。また、それにより、ライブネス及び性能プロパティ、並びに、ディスクが所有され且つ最大で１つのクラスタノードで制御される概念が維持される。
【００２２】
本明細書に記載されているように、非オーナーノードは、共有ＰＲキーをディスクＰＲレジスタテーブル２４０に挿入する。共有キーは、すべてのノードによって共有されているのではなく、むしろ、それは、このキーを挿入するノードがディスク１０１に対する読取り‐書込みアクセスを他のノードと共有することを表している。キーを挿入したノードの識別子（ＩＤ）は、キーに暗号化される。したがって、Ｎ‐ノードクラスタにおけるこのアルゴリズムによって仲裁されたディスク１０１は、レジスタテーブル２４０にＮ個の共有ＰＲキーを有するであろう。一実施例において、第１のキーは、オーナーノードによって挿入された独占的（ＰＲ）キー２３１である。残りのＮ−１個のキーは、非オーナーノードによって挿入された共有ＰＲキーである。
【００２３】
所有ノードは、ＰＲレジスタテーブル２４０に対し周期的にクエリを実行して、キーを評価する。キーが共有キーである場合、オーナーはキーを挿入したノードのＩＤをキーから抽出する。ノードが有効である場合（クラスタにおいて「優良な状態」である場合）、オーナーは、キーがレジスタテーブル２４０に残存することを許可する。ノードが優良な状態でない場合、オーナーはキーを差し替えて、それをレジスタテーブル２４０から削除する。
【００２４】
キーが共有キーでない場合、オーナーシップは取得しようとなされている。オーナーはかかるキーを差し替えるので、それをレジスタテーブル２４０から削除する。
【００２５】
図３は、例えば、図２の例示された要素を介して実装される１つのかかるアルゴリズムの例示的ステップを示す概要的フロー図である。ステップ３００を介して表されるような何れかの非オーナーノードに対しても、ディスク制御マネージャ２２８は、物理的ディスクリソース２２６を要求して、共有ＰＲキー２３０をレジスタテーブル２４０に挿入する（ステップ３０２）。このキーは、ノード間において共有されておらず、むしろ、それを表すノードがオーナーノード及び他のあらゆるノードと共にディスクに対する読取り‐書込みアクセスを共有していることを示している。ノードの識別子（例えば、Ｎｏｄｅｌｄ）は、この共有ＰＲキー２３０の一部である。
【００２６】
オーナーノード上において、例示的ステップ３００を介して区別されるように、ステップ３０４は、物理的ディスクリソース２２６にクラスタノードメンバーシップデータ２５４を知らせる。これは、物理的ディスクリソース２２６をクラスタにおいてアクティブなノードを表す単純なビットマスクを介して達成され得る（例えば、通常すべてのノードであるが、必ずしもすべてでない）。物理的ディスクリソース２２６は、このメンバーシップデータ２５４をクラスタディスクドライバ２２０に転送する。
【００２７】
ステップ３０６によって表されるように、オーナーノード上のクラスタディスクドライバ２２０が、レジスタテーブル２４０における（それ自身の独占的ＰＲキーを除く）１つ以上のスペアキーを参照するとき、クラスタディスクドライバ２２０は、ステップ３０８によって表されるように、クラスターメンバーシップデータ２５４に対してそれらキーの各々のＮｏｄｅｌｄを照合する。キーが有効である場合（ステップ３１０）、キーは、レジスタテーブル２４０に残存するよう許可され、そうでなければ、それは差し替えられる（ステップ３１２）。ステップ３１４は、他のキーの確認を繰り返す。各ノードが共有ボリュームアクセスに参加するＮ‐ノードクラスタとともに、Ｎ−１個のかかる共有ＰＲが存在する。
【００２８】
図４及び５は、ＳＣＳＩコマンド環境に関してさらに詳細に説明する例示的フロー図を含む。ステップ４０２及び４０４は、ノードの予約機構への入力であり、その入力は、（例えば、ランダムに作成された数を含む）ＰＲ＿キー及び（例えば３秒のデフォルト値を有する）ユーザ設定可能な間隔を含む。
【００２９】
ステップ４０６は、予約の前に実行される登録を試みることを表している。登録が成功した場合（ステップ４０８）、予約の試みが、ステップ４１０においてなされる。予約が成功した場合、プロセスは、図５に進み、以下で説明するように、予約を維持する。そうでなければ、プロセスは、ステップ４１４に分岐して、永続予約アービトレーションを実行する。
【００３０】
ステップ４１４はレジスタテーブルを読み取る。ＰＲ登録が一つだけ存在し且つ独占レジスタントオンリーのタイプである場合、このノードによって取得しようとする試みがなされるオーナーが存在する。機構は、オーナーシップを取得しようとする前に、２倍の間隔の間待機する。この間隔によって、オーナーノードはチャレンジを防御することを許可される。ステップ４２２は、チャレンジに対応する。
【００３１】
図５は、ステップ５０２及び５０４後にノードがレジスタテーブルにおいてＰＲキーを検知する場合の永続予約に関する様々な維持の態様を表している、リストアップされていない場合、それは、別のノードのキーに取り替えられて、別の時間に取得しようと試みる必要がある。他のキーが全くリストアップされてない場合（ステップ５０６）、防御する必要はなく、プロセスは終了する。そうでなければ、プロセスは、ステップ５１８に進み、以下で説明するように、予約を維持する。
【００３２】
ステップ５０８は、ステップ５０６で検知された他のキーが、有効なノードからの共有キーであるかどうかを評価する。そうでない場合、それは、ステップ５１０において差し替えられる。これにより、いずれかの無効なノードのディスクアクセス権利が削除される。ステップ５１２において成功しない場合、このプロセスを駆動するノードは、それを削除する能力を有しておらず、プロセスを終了せしめる。成功した場合、プロセスは、ステップ５１４に継続する。
【００３３】
ステップ５１４は、ノードがオンラインに留まっており動作を継続することになっているかどうかを評価することを表している。尚、オンラインにある状態で終了する要求は、ユーザモードディスクリソースからいかなる時間においても生じ得るし、ステップ５１４は１つの論理フローを表している。オフラインで動作する場合、ステップ５１６は、ノードの予約を削除するために実行される。
【００３４】
ステップ５１８は、特定の時間の間に待機した後に予約が残存することを確実にし、いかなるチャレンジング予約に対しても予約を防御するプロセスの通常の継続を表している。
【００３５】
例示的なオペレーティング環境
図６は、図１Ａ乃至５の実施例が実装され得る適切なコンピューティング及びネットワーク環境６００の実施例を図示している。コンピューティングシステム６００は好適なコンピューティング環境の１つの例にすぎない。本発明の使用又は機能性の範囲に関していかなる制限をも課すように意図されていない。コンピューティングシステム６００は、例示的オペレーティング環境６００に示された要素のうちいずれか１つ若しくは組合せに関連するいかなる依存関係又は要求をも有するものとして解釈されるべきでない。
【００３６】
本発明は、多数の汎用若しくは専用コンピューティングシステム環境又は構成を用いて動作可能である。本発明を用いて使用に好適であり得る周知のコンピューティングシステム、環境及び／又は構成の例は、パーソナルコンピュータ、サーバー・コンピュータ、携帯型若しくはラップトップデバイス、携帯情報端末、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステム若しくはデバイスのいずれをも含む分散コンピューティング環境等を含むがこれらに限定されない。
【００３７】
本発明は、コンピュータによって実行されるプログラムモジュール等のコンピュータ実行ファイル命令に関する一般的内容で説明され得る。一般に、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データを実装するルーチン、プログラム、オブジェクト、要素、データ構造等を含む。本発明の実施形態は、分散コンピューティング環境においても実行され得る。分散コンピューティング環境において、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される。分散コンピューティング環境においては、プログラムモジュールは、メモリ記憶装置を含むローカル記憶デバイス及びリモートメモリ記憶媒体に設けられ得る。
【００３８】
図６を参照すると、本発明の様々な態様を実装する例示的システムは、コンピュータ６１０の形態の汎用コンピューティングデバイスを含み得る。コンピュータ６１０の要素は、処理ユニット６２０、システムメモリ６３０、及び、システムメモリを含む様々なシステム要素を処理ユニット６２０に接続するシステムバス６２１を含み得るが、これらに限定されない。システムバス６２１は、メモリバス若しくはメモリコントローラ、周辺バス、及び種々のバスアーカテクチャのいずれをも使用するローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。限定ではなく、例として、かかるアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロチャンネルアーキテクチャ(MCA:Micro Channel Architecture)バス、エンハンストＩＳＡ(EISA:Enhanced ISA)バス、ビデオエレクトロニクス規格制定委員会(VESA:Video Electronics Standards Association)ローカルバス、及びメザニン・バスとしても知られるペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnect)バスを含む。
【００３９】
コンピュータ６１０は、種々のコンピュータ読取可能媒体を通常含む。コンピュータ読取可能媒体は、コンピュータ６１０によりアクセスされ得る全ての利用可能な媒体であり得るし、揮発性媒体及び不揮発性媒体、脱着可能媒体及び脱着不可能媒体の双方を含む。限定ではなく、例として、コンピュータ読取可能媒体はコンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、若しくは他のデータ等の情報を記憶する全ての方法若しくは技術において実装された揮発性若しくは不揮発性の脱着可能媒体及び脱着不可能媒体を含み得る。
コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、所望の情報を記憶するのに使用され且つコンピュータ６１０からアクセスされ得るあらゆる他の媒体を含むがこれらに限定されてない。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は伝送波若しくは他の転送機構等の変調されたデータ信号における他のデータを通常具現化し、いかなる情報配信媒体をも含む。「変調されたデータ信号」とい用語は、信号の情報をエンコードするような方法で設定され又は変化された特性のうち１つ以上を有する信号を意味している。限定ではなく、例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響媒体、ＲＦ媒体、赤外線媒体及び他の無線媒体等の無線媒体とを含む。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含まれ得る。
【００４０】
システムメモリ６３０は、読取専用メモリ（ＲＯＭ）６３１及びランダム・アクセス・メモリ（ＲＡＭ）６３２等の揮発性メモリの及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。基本ルーチンを含む基本入出力システム６３３（ＢＩＯＳ）は、例えば、スタートアップ時に、コンピュータ６１０内の要素間の情報を転送するのに役立ち、ＲＯＭ６３１内に通常記憶される。ＲＡＭ１３２は、データ及び／又プログラムモジュールを通常含む。そのデータ及び／又プログラムモジュールは、即座にアクセス可能であり、そして／又は、処理ユニット６２０によってオン動作されている。限定ではなく、例として、図６は、オペレーティングシステム６３４、アプリケーションプログラム６３５、他のプログラムモジュール６３６、及びプログラムデータ６３７を図示している。
【００４１】
コンピュータ６１０は、他の脱着可能／脱着不可能・揮発性／不揮発性コンピュータ記憶媒体をも含み得る。単に例として、図６は、脱着不可能不揮発性磁気媒体に対して読み取るか又は書き込むハードディスクドライブ６４１、脱着可能不揮発性磁気ディスク６５２に対して読み取るか或いは書き込む磁気ディスクドライブ６５１、及び、ＣＤ−ＲＯＭ又は他の光学媒体等の脱着可能不揮発性光ディスク６５６に対して読み取り又は書き込む光ディスクドライブ６５５を図示している。例示的な動作環境で使用可能である他の脱着可能／脱着不可能・揮発性／不揮発性コンピュータ記憶媒体は、磁気カセットテープ、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオ・テープ、ソリッドステートのＲＡＭ、ソリッドステートのＲＯＭ等を含むがこれらに限定されない。ハードディスクドライブ６４１は、インタフェース６４０等の脱着不可能なメモリインタフェースを介してシステムバス６２１に通常接続されており、磁気ディスクドライブ６５１及び光ディスクドライブ６５５は、インタフェース６５０等の脱着可能なメモリインタフェースによってシステムバス６２１に通常接続されている。
【００４２】
先に説明し且つ図６に示したドライブ及びそれらと関連付けられたコンピュータ記憶媒体は、コンピュータ６１０に対するコンピュータ読取可能な命令、データ構造、プログラムモジュール及び他のデータを記憶する。図６において、例えば、ハードディスクドライブ６４１は、オペレーティングシステム６４４、アプリケーションプログラム６４５、他のプログラムモジュール６４６、及びプログラムデータ６４７を記憶するものとして示されている。尚、これら要素は、オペレーティングシステム６３４、アプリケーションプログラム６３５、他のプログラムモジュール６３６、及びプログラムデータ６３７と同一又は異なり得る。オペレーティングシステム６４４、アプリケーションプログラム６４５、他のプログラムモジュール６４６、及びプログラムデータ６４７は、本明細書においては異なる数だけ与えられており、それらは異なるコピーであることを最小に示すためである。ユーザは、マウス、トラックボール若しくはタッチパッドと一般的に称されるタブレット若しくは電子ディジタイザ６６４、キーボード６６２及びポインティングデバイス６６１等の入力装置を介してコマンドと情報をコンピュータ６１０に入力し得る。図６に図示されていないが、他の入力装置は、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ等を含み得る。これら装置及び他の入力装置は、システムバスに結合されたユーザ入力インタフェース６６０を介して処理ユニット６２０に多くの場合には接続されているが、パラレルポート、ゲームポート若しくはユニバーサルシリアルバス（ＵＳＢ）等の他のインタフェース及びバス構造によって接続され得る。また、モニタ６９１又は他のタイプの表示デバイスがビデオインターフェース６９０等のインタフェースを介してシステムバス６２１に接続されている。また、モニタ６９１は、タッチスクリーンパネル等と集積化され得る。尚、モニタ及び／又はタッチスクリーンパネルは、コンピューティングデバイス６１０がタブレットタイプのパーソナルコンピュータ等に組み入れられたハウジングに物理的に接続され得る。さらに、コンピューティングデバイス６１０等のコンピュータは、周辺出力インタフェース６９４等を介して接続され得るスピーカ６９５及びプリンタ６９６等の他の周辺出力装置を含み得る。
【００４３】
コンピュータ６１０は、リモートコンピュータ６８０などの１つ以上のリモートコンピュータへの論理接続を使用して、ネットワークでつながれた環境において動作し得る。リモートコンピュータ６８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス又は他の共通ネットワークノードであり得る。ただし、図６にはメモリ記憶装置１８１だけが示されている。図６に示された論理接続は、１つ以上のローカルエリアネットワーク（ＬＡＮ）６７１及び１つ以上の広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークも含み得る。かかるネットワーク環境は、会社内ネットワーク、企業規模のコンピュータネットワーク、イントラネット、及びインターネットにおいては一般的である。
【００４４】
ＬＡＮネットワーク環境において用いられると、コンピュータ６１０は、ネットワークインタフェース又はアダプター６７０を介してＬＡＮ６７１に接続されている。ＷＡＮネットワーク環境において用いられると、コンピュータ６１０は、インターネット等のＷＡＮ６７３上で通信を確立するモデム６７２又は他の手段を通常は含む。内臓の又は外付けのモデム１７２が、ユーザ入力インタフェース６６０又は他の適切な機構を介してシステムバス６２１に接続され得る。インタフェース及びアンテナを含むような無線のネットワーク要素６７４が、アクセスポイント若しくはピアコンピュータ等の適切なデバイスを介してＷＡＮ又はＬＡＮに接続され得る。ネットワーク化された環境においては、コンピュータ６１０に対して示されたプログラムモジュール又はその部分は、リモートメモリ／記憶装置に記憶され得る。限定ではなく、例として、図６は、リモートアプリケーションプログラム６８５をメモリデバイス６８１上に常駐するものとして示している。図示されたネットワーク接続は例示的であり且つコンピュータ間の通信リンクを確立する他の手段が使用され得ることが十分理解され得る。
【００４５】
（例えば、コンテンツの補助ディスプレイのための）補助サブシステム６９９は、ユーザインタフェース６６０を介して接続されて、コンピュータシステムの主要部分が低出力状態にある場合であっても、プログラムコンテンツ、システムステータス及びイベント通知等のデータがユーザに提供されるよう許可し得る。補助サブシステム６９９は、モデム６７２及び／又はネットワークインタフェース６７０に接続されて、主要処理装置６２０が低出力状態にある間、これらのシステム間の通信を可能になし得る。
【００４６】
むすび
本発明は様々な変更及び代替的構成を受けられ得るものの、特定の図示された実施形態が、図面に示され且つ詳細に上述された。しかしながら、本発明を開示された特定の形態に制限する意図は全くなく、逆に、発明の精神及び範囲内にあるすべての変更、代替的構成及び均等物を含むよう意図されていることが理解されるべきである。
【図１Ａ】
0005734855.tif 000002
【図１Ｂ】
0005734855.tif 000003
【図２】
0005734855.tif 000004
【図３】
0005734855.tif 000005
【図４】
0005734855.tif 000006
【図５】
0005734855.tif 000007
【図６】
0005734855.tif 000008