(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
ネットワーク上のコンピューティング環境において第１クラスタで起動しているサービスの第１インスタンスからアーティファクトをコピーするステップであって、
前記第１クラスタが、前記サービスの第１インスタンスを起動するために第１グループの仮想マシンを含み、
前記サービスの第１インスタンスを起動するための第１グループの仮想マシンが、起動状態にある複数の第１部分を含み、ＩＰアドレスに関連付けられる、
ステップと、
前記サービスの第１インスタンスからコピーされた前記アーティファクトを用いて、前記ネットワーク上の前記コンピューティング環境の第２クラスタにおいて、前記サービスの第２インスタンスを、第２クラスタにおける１つ以上のノードを選択し、且つ前記サービスの第２インスタンスを起動するために第２グループの仮想マシンを構成することによって、生成するステップであって、
前記サービスの第２インスタンスを起動するための第２グループの仮想マシンが、起動していない状態にある複数の第２部分を含み、
該複数の第２部分のそれぞれが、前記複数の第１部分の内１つに対応して、前記ＩＰアドレスにも関連付けられる、ステップと、
前記第１クラスタにおける前記サービスの第１インスタンスに対し、前記複数の第１部分の内の１つの第１部分を停止するステップであって、その結果、該複数の第１部分の内の該１つの第１部分が前記起動していない状態となる、ステップと、
前記第２クラスタにおける前記サービスの第２インスタンスに対し、前記複数の第２部分の内の対応する部分を開始するステップであって、その結果、該複数の第２部分の内の該対応する部分が前記起動状態となる、ステップと、
前記起動状態にある前記複数の第１部分および前記複数の第２部分の内の前記部分のみへのアクセスを提供するために、前記ネットワークを更新するステップと、
前記複数の第１部分の内の全ての部分が前記起動していない状態となるまで、且つ、前記複数の第２部分の内の全ての対応する部分が前記起動状態となるまで、前記停止するステップ、前記開始するステップ、および前記更新するステップを２回以上実行するステップと、
前記第１クラスタにおいて前記サービスの第１インスタンスを削除するステップと、
を含み、
前記コピーしたアーティファクトが少なくとも証明書を含む、方法。
【請求項２】
請求項１に記載の方法であって、更に、
前記サービスの前記第１インスタンスおよび前記第２インスタンスにＩＰアドレスを割り当てるステップと、
前記ＩＰアドレスを使用して、前記第１クラスタおよび前記第２クラスタの両方において同時に前記サービスをサポートするステップと、
を含む、方法。
【請求項３】
請求項１または２に記載の方法であって、更に、
前記第２クラスタにおいて前記サービスの第２インスタンスを生成した後に前記サービスの第２インスタンスをステージングするステップであって、その結果、前記サービスの第２インスタンスが前記第２クラスタにおいて前記起動状態になる準備ができているが、前記起動状態ではない、方法。
【請求項４】
請求項１から３の何れか一項に記載の方法において、前記コピーしたアーティファクトが、更に、コードおよびモデルの内の１つ以上を含む、方法。
【請求項５】
請求項１から４の何れか一項に記載の方法において、テナント移行器が、前記第１部分を停止し、前記対応する部分を開始するのを管理する、方法。
【請求項６】
請求項１から５の何れか一項に記載の方法において、前記第１クラスタおよび前記第２クラスタがデータセンタに位置する、方法。
【請求項７】
プロセッサと該プロセッサ上に具体化されるコンピュータ実行可能命令を有するメモリとを含むシステムであって、前記プロセッサによって実行されると、ネットワークのデータセンタ内において第１クラスタから第２クラスタにサービスを移行する方法を実施し、当該システムが、
サービスの第１インスタンスを起動するように構成される第１グループの仮想マシンを含む、データセンタの第１クラスタであって、前記サービスの第１クラスタを起動するための第１グループの仮想マシンが、起動状態にある複数の第１部分を含むように構成され、更にＩＰアドレスに関連付けるように構成される、第１クラスタと、
複数の仮想マシンを備える、前記データセンタの第２クラスタと、
テナント移行器であって、
前記データセンタの第２クラスタに移すために、前記データセンタの第１クラスタにおける前記サービスの第１インスタンスを特定し、
前記サービスに関連付けられるアーティファクトを、前記第１クラスタから前記第２クラスタへコピーし、
前記第２クラスタにおける１つ以上のノードを選択することによって、前記第２クラスタにおいて前記サービスの第２インスタンスを生成し、
前記サービスの第２インスタンスを起動するように構成される第２グループの仮想マシンを構成し、前記サービスの第２インスタンスを起動するための第２グループの仮想マシンが、起動していない状態にある複数の第２部分を含むように構成され、前記ＩＰアドレスに関連付けられるように更に構成され、
前記第１クラスタにおける前記サービスの第１インスタンスに対し、前記複数の第１部分の内の１つの第１部分を停止し、その結果、該複数の第１部分の内の該１つの第１部分が前記起動していない状態となり、
前記第２クラスタにおける前記サービスの第２インスタンスに対し、前記複数の第２部分の内の対応する部分を開始し、その結果、該複数の第２部分の内の該対応する部分が前記起動状態となり、
前記起動状態にある前記複数の第１部分および前記複数の第２部分の内の前記部分のみへのアクセスを提供するために、前記ネットワークを更新し、
前記複数の第１部分の内の全ての部分が前記起動していない状態となるまで、且つ、前記複数の第２部分の内の全ての対応する部分が前記起動状態となるまで、前記停止および前記開始のステップを２回以上実施し、
前記第１クラスタにおいて前記サービスの第１インスタンスを削除する、
ように構成されるテナント移行器と、
を備え、
前記サービスに関連付けられる前記アーティファクトが、少なくとも証明書を含む、システム。
【請求項８】
請求項７記載のシステムにおいて、前記テナント移行器が、更に、
前記サービスの第２インスタンスをステージングし、その結果、前記サービスの第２インスタンスが前記第２クラスタにおいて前記起動状態に変更されるように構成されるが、前記起動状態ではない、
ように構成される、システム。
【請求項９】
請求項７または８に記載のシステムにおいて、前記サービスに関連付けられる前記アーティファクトが、更に、コードおよびモデルの内１つ以上を含む、システム。
【発明の詳細な説明】
【従来技術】
【０００１】
大規模なデータセンタは、通例、ウェブ・サーバやデータベース・サーバ等のようなソフトウェア・パッケージの集合を起動させるハードウェア・マシンについて組織したクラスタを備える。故障耐性および管理上の理由により、データセンタ内のマシンは、通例、複数のクラスタに分割される。複数のクラスタは、ソフトウェア・アプリケーションのリソースを調整するフレームワークによって独立して監視および管理される。一実施形態では、フレームワークは、例えば、ＷｉｎｄｏｗｓＡｚｕｒｅ（登録商標）のファブリック・コントローラとしてもよい。当該ファブリック・コントローラは、データセンタをメイクアップする仮想マシン（ＶＭ）および物理サーバを提供、サポート、監視および命令を行う。
【０００２】
既存のデータセンタでは、各テナントは、その全ライフサイクルの間、単一のクラスタに配備され、テナントの配備が単一のフレームワークによって管理されるのを可能にする。しなしながら、単一のクラスタ内ではマシンの拡張性が制限されるため、上記構成はテナントの増設を制限する可能性がある。テナントおよびクラスタ間の密接な結合は、そのクラスタに配備するテナントの潜在的な将来の要件を満たすレベルで、データセンタの運用業者がクラスタのキャパシティを維持することを要する。このことは、しばしば結果として、見込まれる将来のニーズの予測時に、現在の低い利用レートでクラスタを動作させることになる。過剰なキャパシティが維持される場合であっても、このことは、テナントの将来のニーズをサポートすることになるという可能性を向上させるに過ぎない。テナント・スケール要求が、予約したキャパシティに制限されることになるという保証はなく、それ故、必要とされるキャパシティをテナントが入手できない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
サービスを１つのクラスタに制限することにより、また、当該サービスの故障について単一ポイントが生成される。当該クラスタを制御するフレームワークが故障した場合は、全クラスタが故障することになり、また、クラスタ上でサポートされる全サービスが利用不可能ということになる。
【課題を解決するための手段】
【０００４】
本摘要は、以下の詳細な説明で更に説明する簡略化した形態での概念の選択を導入するために設けたものである。本摘要は、特許請求する主題のキーとなる特徴点または必須の特徴点を特定することを意図せず、また、特許請求する主題の範囲を限定するために用いることを意図するものでもない。
【０００５】
本発明の実施形態は、テナントのサービスが、休止時間(downtime)を有するか、または有しないかのいずれかによって複数のクラスタ間を移動することを可能にする。サービスは、クラスタ上の特定のＩＰアドレスと関連付けられる。ユーザは、ドメイン・ネーム・システム（ＤＮＳ）または他のネットワーク位置サービスによってＩＰアドレスに変換されるドメイン名を用いて、サービスにアクセスする。サービスのＩＰアドレスは、サービスがクラスタ間で移動するときに、変更してもよいし、または変更しなくてもよい。
【０００６】
サービスは、新規のクラスタにおいてサービスの新規インスタンスをステージングし、新規のクラスタが準備されるのを待機し、次いで、元のインスタンスを停止し、そして、新規クラスタにサービスの新規の配備に対応するＩＰアドレスをサービスのＤＮＳ名にポイントさせることによって、休止時間と共に移行することができる。
【０００７】
代替として、サービスは、ダウンタイムと共に新規クラスタに移行して、元のＩＰアドレスを維持してもよい。このことは、ＤＮＳおよび関連する遅延についての再プログラミングする必要性を回避することになる一方、ＤＮＳのキャッシュが再配置される。
【０００８】
サービスを移行することの更なる代替として、サービスを１つ１つ移動することによって、休止時間なしで当該移行を実行する。その結果、サービスは、移行を通じてクラスタの一方または双方で常に起動している。
【０００９】
本発明の実施形態についての上記および他の利点および特徴点を更に明確にするために、本発明の実施形態についてより特定した説明を添付の図面を参照しながら行う。これらの図面は本発明の典型的な実施形態を描いたに過ぎず、従って本発明の範囲を限定するものとみなすべきではないことが認められる。本発明は、添付の図面を用いることにより、付加的な特性や詳細によって記載および説明されることになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、異なるクラスタを横断してサービスを移すために用いるテナント移行器について示すブロック図である。
【図２】図２は、サービス休止時間を有し、ＤＮＳ再プログラミングを必要とするサービス移行について示す。
【図３】図３は、サービス休止時間を有するものの、サービスのＩＰアドレスを維持するサービス移行について示す。
【図４】図４は、サービス休止時間を排除し、サービスのＩＰアドレスを維持するサービス移行について示す。
【図５】図５は、テナント移行のための適切なコンピューティング環境およびネットワーク環境の実施例について示す。
【発明を実施するための形態】
【００１１】
図１は、テナント移行器１１を示すブロック図である。テナント移行器１１は、異なるクラスタ１２，１３を横断してサービスを移すために使用される。テナント移行器１１は、データセンタの全クラスタに接続する。例えば、利用をバランスするために、またはテナントの需要に応じるために、データセンタの運用業者がクラスタ間でサービスを移すと一旦判断すると、テナント移行器１１は、当該サービスについて正しい宛先クラスタを識別する。宛先クラスタの選択は、潜在的な宛先クラスタの利用、サービスによって生じる現在の需要等のような要因に基づく。一旦宛先クラスタが識別されると、テナント移行器１１は、元のクラスタおよび新規のクラスタ上のＶＭ１４，１５上のインスタンスを生成／削除することによってサービスを移す。
【００１２】
テナント移行器１１は、移行が、運用業者によって選択された休止時間を用いてまたはこれを用いずに実行するかについて制御する。テナント移行器１１は、新規ＩＰアドレスがサービスに割り当てられる場合、ＤＮＳレコードに更新を要求することができる。または、テナント移行器１１は、サービスが同一のアドレスを維持する場合、ＩＰアドレスを新規クラスタに移すことができる。サービスの存在は、移行の間は相互に排他的である。例えば、サービスが移行すると、テナント移行器は、サービスの２つのインスタンスが、顧客の視点から両方が起動しているということはないことを確実にする。
【００１３】
図２は、一実施形態により、サービス休止時間を有し、ＤＮＳ再プログラムを要求するサービス移行について示す。テナント移行器２１は、クラスタ２３へ移されることになる、クラスタ２２上で起動しているサービスを識別している。旧サービスには、クラスタ２２上で旧ＩＰアドレスが割り当てられている。ステップ２０１では、テナント移行器２１は、クラスタ２２からコード、ビット、証明書、モデル等のようなサービス・アーティファクトを識別し、またコピーする。これらアーティファクトを用いて、ステップ２０２では、新規サービスがクラスタ２３上で生成されるものの、サービスは開始されない。
【００１４】
テナント移行器２１は、ステップ２０３で、新規サービスをステージングするように新規クラスタ２３に指示する。クラスタ２３は、ステップ２０４で、適切なノードを選択し、サービスを起動するＶＭをセットアップする。クラスタ２３上の新規ＩＰアドレスは、新規サービスに割り当てられる。クラスタ２３は、この時点ではサービスを開始しない。テナント移行器２１は、ステップ２０６において、サービスが新規クラスタ上でステージングされることになるのを待機する。これは、ステップ２０５で例えば指し示される。
【００１５】
一旦新規サービスがステージングされると、テナント移行器２１は、ステップ２０７で旧サービスを停止し、次いで、ステップ２０８で、新規サービスを開始する。旧サービスは、ステップ２０９で、クラスタ２２から削除される。そして、拡張し、または追加されるために、当該クラスタ上で起動する他のサービスについてのルームをオープンする。
【００１６】
テナント移行器は次いで、ステップ２１０で、中央のＤＮＳレコードを更新する。その結果、サービスのためのドメイン名は適切な新規ＩＰアドレスにポイントすることができる。ＤＮＳレコードの更新は、ステップ２０７，２０８で同時に実行してもよい一方で、旧サービスが停止され、新規サービスが開始される。
【００１７】
ステップ２０７での旧サービスの停止とステップ２０８での新規サービスの開始の間には、サービスがユーザには利用可能とはならない期間がある。また、ユーザがドメイン名を用いてサービスにアクセスする場合は追加の遅延があり、その間で、ＤＮＳレコードが、サービスのドメイン名について旧ＩＰアドレスから新規ＩＰアドレスに更新される。ＤＮＳがインターネット全体に配布される多くのローカル・キャッシュをサポートするので、これらキャッシュの全てを更新するのに時間を要する。一旦、中央のＤＮＳレコードが更新されると、ローカルＤＮＳキャッシュはクリアされ、新規ＩＰアドレスによって更新される。これら更新が発生するまで、ユーザは旧クラスタ２２に向けられる。旧クラスタ２２はもはやサービスを起動しておらず、それ故、サービスを使用する試行は失敗することになる。
【００１８】
図３は、一実施形態により、サービス休止時間を有するが、サービスのＩＰアドレスを維持するサービス移行について示す。テナント移行器３１は、クラスタ３３へ移されることになる、クラスタ３２上で起動しているサービスを識別している。旧サービスには、クラスタ３２上でＩＰアドレスが割り当てられている。ステップ３０１では、テナント移行器３１は、クラスタ２２からコード、ビット、証明書、モデル等のようなサービス・アーティファクトを識別し、またコピーする。これらアーティファクトを用いて、ステップ３０２では、新規サービスがクラスタ３３上で生成されるものの、サービスは開始されない。
【００１９】
テナント移行器３１は、ステップ３０３で、新規サービスをステージングするように新規クラスタ３３に指示する。クラスタ３３は、ステップ３０４で、適切なノードを選択し、サービスを起動するＶＭをセットアップする。クラスタ３３は、この時点ではサービスを開始しない。テナント移行器３１は、ステップ３０６において、サービスが新規クラスタ上でステージングされるのを待機する。これは、ステップ２０５で例えば指し示される。
【００２０】
一旦新規サービスがステージングされると、テナント移行器３１は、ステップ３０７で旧サービスを停止する。ステップ３０８では、サービスのためのＩＰアドレスは、クラスタ３２から削除される。
【００２１】
サービスのためのＩＰアドレスはス、テップ３０９でクラスタ３３に追加される。そして、ステップ３１０で、クラスタ３３上の新規サービスが開始される。
【００２２】
最後に、旧サービスは、ステップ３１１で、クラスタ３２から削除される。そして、拡張し、または追加されるために、当該クラスタ上で起動する他のサービスについてのルームをオープンする。
【００２３】
サービスのＩＰアドレスは変更されないので、テナント移行器は、図２に示したプロセスで必要とされたＤＮＳレコードを更新する必要はない。したがって、ステップ３０７で旧サービスを停止するのと、ステップ３１０で新規サービスが開始する間には、サービスがユーザに利用可能でない期間がある。しかしながら、一旦新規サービスが開始されると、ユーザは、如何なるＤＮＳレコードの更新の遅延を待機することなく、ドメイン名を用いてサービスに尚もアクセスすることができる。ローカルＤＮＳキャッシュは正確である。何故ならば、サービスのドメイン名は、サービスの同一ＩＰアドレスに尚も関連付けられることになるからである。
【００２４】
図４は、一実施形態により、サービス休止時間を排除し、サービスのＩＰアドレスを維持するサービス移行について示す。テナント移行器４１は、クラスタ４３へ移されることになる、クラスタ４２上で起動しているサービスを識別している。旧サービスには、クラスタ４２上で旧ＩＰアドレスが割り当てられている。ステップ４０１では、テナント移行器４１は、クラスタ４２からコード、ビット、証明書、モデル等のようなサービス・アーティファクトを識別し、またコピーする。これらアーティファクトを用いて、ステップ４０２では、新規サービスがクラスタ４３上で生成されるものの、サービスは開始されない。
【００２５】
テナント移行器４１は、ステップ４０３で、新規サービスをステージングするように新規クラスタ４３に指示する。クラスタ４３は、ステップ４０４で、適切なノードを選択し、サービスを起動するＶＭをセットアップする。同一のＩＰアドレスがサービスに対しクラスタ４２およびクラスタ４３の両方上で使用される。テナント移行器４１は、ステップ４０６において、サービスが新規クラスタ上でステージングされるのを待機する。これは、ステップ４０５で例えば指し示される
一旦新規サービスがステージングされると、テナント移行器４１は、ステップ４０７で旧サービスの一部を停止する。テナント移行器４１は、次いで、ステップ４０８で、新規サービスの対応する一部を開始する。ネットワークは、ステップ４０８で、必要に応じて更新され、旧サービスおよび新規サービスの開始済みの部分を、負荷バランサおよび他のルーティング・コンポーネントと同様に接続して、それらがクラスタ４２，４３にわたり開始済みのサービスにポイントするのを許可する。図２および図３で示したプロセスとは異なり、サービスの一部のみ（例えば、選択された数のＶＭまたはインスタンス）が、ステップ４０７で停止され、次いで、ステップ４０８で開始される。テナント移行器は、ステップ４０９で、新規クラスタ上で開始された部分が使用のために準備されるのを待機する。
【００２６】
ステップ４０９で一旦新規部分の準備がされると、テナント移行器は、ステップ４１０でサービスの次の部分のためにステップ４０７から４０９を繰り返す。旧クラスタ４２から新規クラスタ４３まで断片的にサービスの全部が移されるまで、ステップ４１０でこれらステップを継続する。一実施形態では、サービスに足る(worth)１つの更新ドメインは、ループ４１０を通じてそれぞれ通される間に、一度に移される。テナントは、サービスへの更新の間、更新ドメインを失う用意があり、つまり、これらセグメントは、内部クラスタ移行のためにサービスを割り当てるのに使用することができる。
【００２７】
サービスの全ての部分がループ４１０に移された後に、ステップ４１１で、旧サービスはクラスタ４２から削除される。
【００２８】
サービスのためのＩＰアドレスが変更されなかったので、テナント移行器は、図２に図示したプロセスにおいて行われたＤＮＳレコードを更新する必要はない。サービスが両方のクラスタ上で停止される期間はない。したがって、サービスは、常に休止時間なしでユーザに利用可能となる。
【００２９】
図５は、図１から図４の実施例を実施することができる適切なコンピューティング環境およびネットワーク環境の例を示す。例えば、テナント移行器１１および／またはＶＭ１４，１５は、１つ以上のコンピュータ・システム５００上にホストされることができる。コンピューティング・システム環境５００は、適切なコンピューティング環境の１つの例にすぎず、本発明の使用または機能の範囲に関し、如何なる限定も意図するものではない。このような複数のコンピューティング・システム５００は、例えばデータセンタ内でクラスタ１１，１２をサポートするようにグループ化してもよい。本発明は、多数の他の汎用目的または特定目的のコンピューティング・システム環境または構成と共に動作可能である。公知のコンピューティング・システム、環境、および／または本発明での使用に適切な構成の例は、これに限定されないが、以下のものを含む。即ち、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド若しくはラップトップ・デバイス、タブレット・デバイス、マイクロプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能コンシューマ・エレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などである。
【００３０】
本発明は、コンピュータによって実行される、プログラム・モジュールのようなコンピュータ実行可能命令の一般的な文脈で説明することができる。一般的に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。そして、特定のタスクを実行するか、または特定の抽象データ型を実装する。本発明はまた、リモートの処理デバイスによってタスクが実行される分散コンピューティング環境で実施してもよい。リモートの処理デバイスは通信ネットワークを通じてリンクされる。分散コンピューティング環境では、プログラム・モジュールは、ローカルに配置され、および／またはメモリ・ストレージ・デバイスを含むリモート・コンピュータのストレージ媒体に配置してもよい。
【００３１】
図５を参照すると、本発明の様々な態様を実施するための例示のシステムがコンピュータ５００の形態の汎用コンピュータを含むことができる。コンポーネントは、これに限定されないが、処理ユニット５０１のような様々なハードウェア・コンポーネント、システム・メモリのようなデータ・ストレージ５０２、およびシステム・バス５０３を含む。システム・バス５０３は、データ・ストレージ５０２を含む様々なシステム・コンポーネントを処理ユニット５０１に結合する。システム・バス５０３は、様々な種別のバス構造の何れのものとしてよく、メモリ・バスまたはメモリ・コントローラ、周辺バス、および様々な何れのバス・アーキテクチャを用いたローカル・バスを含む。例えば、これに限定されないが、このようなアーキテクチャは、ＩｎｄｕｓｔｒｙＳｔａｎｄａｒｄ Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ＥｎｈａｎｃｅｄＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ ＥｌｅｃｔｒｏｎｉｃｓＳｔａｎｄａｒｄｓ Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バスおよびＰｅｒｉｐｈｅｒａｌＣｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス（別名Ｍｅｚｚａｎｉｎｅバス）を含む。
【００３２】
コンピュータ５００は通例、様々なコンピュータ可読媒体５０４を含む。コンピュータ可読媒体５０４は、コンピュータ５００によってアクセスすることができる如何なる利用可能な媒体とすることができ、揮発性および不揮発性媒体、並びに着脱可能および着脱不能媒体の両方含むが、伝達された信号を除去する。例えば、これに限定されないが、コンピュータ可読媒体５０４は、コンピュータ・ストレージ媒体および通信媒体を備えてもよい。コンピュータ・ストレージ媒体は、如何なる方法でも実装される、または、コンピュータ可読命令、データ構造およびプログラム・モジュールなどのような、情報を記憶するための技術で実施される、揮発性および不揮発性な媒体または着脱可能および着脱不能な媒体を含む。コンピュータ・ストレージ媒体は、これに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光学的ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または所望の情報を格納するのに使用することができ、コンピュータ５００によってアクセスすることができる如何なる他の媒体を含む。通信媒体は通例、コンピュータ可読命令、データ構造、プログラム・モジュール、または搬送波若しくは他の運搬機構のような変調データ信号内の他のデータを例示し、如何なる情報配信媒体をも含む。「変調データ信号」なる用語は、情報を信号にコード化する手法で設定または変更される信号特性の１つ以上を有する信号のことを意味する。例えば、これに限定されないが、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体、および音響、ＲＦ、赤外線および他の無線媒体のような無線媒体を含む。上記の何れの組み合わせも、コンピュータ可読媒体の範囲内に含めてもよい。コンピュータ可読媒体は、コンピュータ・ストレージ媒体に格納されるソフトウェアのようなコンピュータ・プログラム製品として実施することができる。
【００３３】
データ・ストレージまたはシステム・メモリ５０２は、読出し専用メモリ（ＲＯＭ）およびランダム・アクセス・メモリ（ＲＡＭ）のような、揮発性および／または不揮発性メモリの形態のコンピュータ・ストレージ媒体を含む。基本入出力システム（ＢＩＯＳ）は、コンピュータ５００内の構成要素間で、スタート・アップの間のように情報を転送するのを補助する基本ルーチンを収容し、通例はＲＯＭ内に格納される。ＲＡＭは通例、データおよび／またはプログラム・モジュールを収容し、処理ユニット５０１に即時にアクセス可能であり、および／または処理ユニット５０１によって現在動作中である。例えば、これに限定されないが、データ・ストレージ５０２は、オペレーティング・システム、アプリケーション・プログラム、並びに他のプログラム・モジュールおよびプログラムデータを保持する。
【００３４】
データ・ストレージ５０２はまた、他の着脱可能／着脱不能、揮発性／不揮発性のコンピュータ・ストレージ媒体を含んでもよい。例示の目的のみでは、データ・ストレージ５０２は、着脱不能で不揮発性の磁気ディスクとの間で読み書きするハード・ディスク・ドライブ、着脱可能で不揮発性の磁気ディスクとの間で読み書きする磁気ディスク・ドライブ、ＣＤ−ＲＯＭまたは他の光学媒体のような着脱可能で不揮発性の光学ディスクとの間で読み書きする光学ディスク・ドライブとしてもよい。例示の動作環境で使用することができる他の着脱可能／着脱不能で、揮発性／不揮発性のコンピュータ・ストレージ媒体は、これに限定されないが、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、およびソリッド・ステートＲＯＭなどを含む。先に説明し、図５に例示したドライブおよびそれらに付随するコンピュータ・ストレージ媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、および他のデータについての記憶をコンピュータ５００に供する。
【００３５】
ユーザは、ユーザ・インタフェース５０５、或いは、タブレット・電子デジタイザ、マイクロホン、キーボード、および／または一般にマウス、トラックボール若しくはタッチパッド称されるポインティング・デバイスのような他の入力デバイスを通じて命令または情報を入力することができる。他の入力デバイスは、ジョイスティック、ゲーム・パッド、衛星アンテナ、スキャナ等を含んでもよい。加えて、音声入力、手若しくは指を用いたジェスチャ入力、または他のナチュラル・ユーザ・インタフェース（ＮＵＩ）がまた、マイクロホン、カメラ、タブレット、タッチパッド、グローブ、若しくは他のセンサのような適切な入力デバイスと共に使用することができる。これらの、そして他の入力デバイスは、しばしば、システム・バス５０３に結合されるユーザ入力インタフェース５０５を通じて処理ユニット５０１に接続されるが、パラレル・ポート、ゲーム・ポートまたは汎用シリアル・バス（ＵＳＢ）のような他のインタフェースおよびバス構造によって接続されてもよい。モニタ５０６または他の種別の表示装置がまた、ビデオ・インタフェースのようなインタフェースを介して、システム・バス５０３に接続される。モニタ５０６はまた、タッチ・スクリーン・パネル等と統合されてもよい。なお、モニタおよび／またはタッチ・スクリーン・パネルは物理的にハウジングに結合することができ、コンピューティング・デバイス５００はタブレット型のパーソナル・コンピュータに組み込まれる。加えて、コンピューティング・デバイス５００のようなコンピュータは、スピーカおよびプリンタのような他の周辺機器出力デバイスも含んでよく、出力周辺機器インタフェース等を通じて接続してもよい。
【００３６】
コンピュータ５００は、リモート・コンピュータのような１つ以上のリモート・デバイスへの論理接続５０７を用いて、ネットワーク化された環境、即ちクラウド・コンピューティング環境で動作してもよい。リモート・コンピュータは、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、または他の一般のネットワーク・ノードとしてもよく、通例は、コンピュータ５００と関して先に説明した構成要素の多数または全てを含む。図５に説明した論理接続は、１つ以上のローカル・エリア・ネットワーク（ＬＡＮ）および１つ以上のワイド・エリア・ネットワーク（ＷＡＮ）を含むが、更に他のネットワークを含んでもよい。このようなネットワーク環境は、オフィス、エンタプライズ・ワイド・コンピュータ・ネットワーク、イントラネット、およびインターネットにおいてはよくある。
【００３７】
ネットワーク化された環境、即ちクラウド・コンピューティング環境において用いられる場合は、コンピュータ５００は、ネットワーク・インターフェースまたはアダプタ５０７を通じてパブリック・ネットワークまたはプライベート・ネットワークに接続することができる。実施形態の中には、モデム、またはネットワークにわたり通信を確立のための他の手段とするものもある。モデムは、内蔵しても外付けでもよく、ネットワーク・インターフェース５０７または他の適切な機構を介してシステム・バス５０３に接続することができる。インタフェースおよびアンテナを備えるような無線ネットワーク・コンポーネントは、ネットワークへのアクセス・ポイントまたはピア・コンピュータのような適切なデバイスを通じて結合することができる。ネットワーク化された環境では、コンピュータ５００またはその部分と関して記述されるプログラム・モジュールは、リモートのメモリ・ストレージ・デバイス内に格納することができる。示されるネットワーク接続は例示的な者で有り、コンピュータ間の通信リンクを確立する他の手段を用いてもよいことを認めることができる。
【００３８】
本主題について、構造上の特徴および／または方法論的な行為に特化した言語で記載してきたが、添付した請求の範囲において定める主題が先に説明した特定の特徴または行為に必ずしも限定されないことが理解されるべきである。寧ろ、先に説明した特定の特徴および行為は、請求項を実施する例示の形態として開示されるものである。
【図１】
0006739938.tif 000002
【図２】
0006739938.tif 000003
【図３】
0006739938.tif 000004
【図４】
0006739938.tif 000005
【図５】
0006739938.tif 000006