(57)【要約】オンライン・サービスのための第１場所での、期間が一時的である障害（一時的障害）の間、リクエストは、オンライン・サービスのために、第１場所から第２場所へと一時的に切り換えられる。一時的障害は、多くの様々な理由で生じる（例えば、電源異常、計画されたメンテナンスなど）。第２場所は、一時的障害の間はリード・オンリとして構成することができ、それにより、データに対しての変更が行われないようにして、その一時的な間に、ユーザーがユーザーのデータへアクセスできるようにする。オンライン・サービスの第１場所へのリクエストは、第２場所により扱われるように、自動的にリダイレクトされる。一時的障害が止むと、リクエストは、第１場所へ戻すように自動的に切り換えられる。
2015506112.tif 000002
【特許請求の範囲】
【請求項１】
一時的障害の間にリクエストを第１場所から第２場所へリダイレクトする方法であって、
オンライン・サービスの第１場所に影響を及ぼす一時的障害が発生したときを決定するステップと、
前記一時的障害の間に前記オンライン・サービスへアクセスするリクエストを受信するステップと、
前記一時的障害の間、前記リクエストを、前記オンライン・サービスの前記第１場所に代えて第２場所をアクセスするようにリダイレクトするステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記一時的障害の間、前記リクエストを、前記オンライン・サービスの前記第１場所に代えて第２場所をアクセスするようにリダイレクトする前記ステップは、ＤＮＳ（ドメイン・ネーム・システム）エントリーを、前記オンライン・サービスのために、第１ネットワーク・アドレスから前記第２場所の第２ネットワーク・アドレスへと変更するステップを含む、方法。
【請求項３】
請求項１に記載の方法であって、前記オンライン・サービスの前記第２場所をリード・オンリ・モードに置くステップ、および前記一時的障害の前に、前記第１場所から得られるコンテンツによる前記第２場所の更新を継続するステップを更に含む方法。
【請求項４】
請求項１に記載の方法であって、一時的障害が発生したときを決定する前記ステップは、前記オンライン・サービスの前記第１場所へのアクセスに影響を及ぼす計画されたメンテナンスが行われるときを決定するステップと、前記オンライン・サービスの前記第１場所へのアクセスに影響を及ぼす電源異常が発生するときを決定するステップとのうちの少なくとも一方のステップを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記一時的障害が終わり、前記オンライン・サービスの前記第１場所が再び使用可能になるときを決定するステップを更に含む方法。
【請求項６】
請求項１に記載の方法であって、前記オンライン・サービスの前記第２場所は、実質的に前記オンライン・サービスの前記第１場所のミラーであり、前記第２場所は、前記第１場所のコンテンツを実質的に含み、前記一時的障害の前および後にアクセス可能な状態にとどまり、一日を通して周期的に、前記第１場所に対して行われた変更により更新される、方法。
【請求項７】
一時的障害の間にリクエストを第１場所から第２場所へリダイレクトするためのコンピューター実行可能命令を格納するコンピューター読取可能記録媒体であって、
オンライン・サービスの第１場所に影響を及ぼす一時的障害が発生したときを決定することと、
前記一時的障害の間に前記オンライン・サービスへアクセスするリクエストを受信することと、
前記一時的障害の間、前記リクエストを、前記オンライン・サービスの前記第１場所に代えて第２場所をアクセスするようにリダイレクトすることと、
前記一時的障害の間、前記オンライン・サービスの前記第２場所のコンテンツが変更されずに残るように、前記オンライン・サービスの前記第２場所をリード・オンリ・モードに置くことと、
前記一時的障害が発生したときを決定することに応答して、ＤＮＳ（ドメイン・ネーム・システム）エントリーを、前記オンライン・サービスのために、前記第１場所の第１ネットワーク・アドレスから前記第２場所の第２ネットワーク・アドレスへと変更することと、
前記一時的障害が終わったときに、前記第１場所をアクセスするよう前記リクエストを送ることと
のコンピューター実行可能命令を含む、
コンピューター読取可能媒体。
【請求項８】
一時的障害の間にリクエストを第１場所から第２場所へリダイレクトするためのシステムであって、
ネットワークへ接続するように構成されるネットワーク接続と、
処理装置、メモリ、およびコンピューター読取可能ストレージ媒体と、
前記コンピューター読取可能ストレージ媒体に格納され、前記処理装置により実行される動作環境と、
様々なテナントと関連するテナント・データを格納するためのデータ・ストアと、
アクションを行うように構成される障害マネージャーと
を含み、前記アクションは、
オンライン・サービスの第１場所に影響を及ぼす一時的障害が発生したときを決定することと、
前記一時的障害の間に前記オンライン・サービスへアクセスするリクエストを受信することと、
前記一時的障害の間、前記リクエストを、前記オンライン・サービスの前記第１場所に代えて第２場所をアクセスするようにリダイレクトすることと、
前記一時的障害が終わったときに、前記第１場所をアクセスするよう前記リクエストを送ることと
を含む、
システム。
【請求項９】
請求項８に記載のシステムであって、前記一時的障害が発生したときを決定することに応答して、ＤＮＳ（ドメイン・ネーム・システム）エントリーを、前記オンライン・サービスのために、前記第１場所の第１ネットワーク・アドレスから前記第２場所の第２ネットワーク・アドレスへと変更することを更に含むシステム。
【請求項１０】
請求項８に記載のシステムであって、前記一時的障害の間、前記オンライン・サービスの前記第２場所のコンテンツが変更されずに残るように、前記オンライン・サービスの前記第２場所をリード・オンリ・モードに置くことを更に含み、前記オンライン・サービスの前記第２場所は、実質的に前記オンライン・サービスの前記第１場所のミラーであり、前記第２場所は、前記第１場所のコンテンツを実質的に含み、前記一時的障害の前および後にアクセス可能な状態にとどまる、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  ウェブ・ベースのアプリケーションは、データベースに格納されたデータと共に、ウェブ・サーバーに位置するファイルを含む。例えば、ネットワーク・サービスへ向けられたトラフィックを処理するための多数のサーバーがある。これらのネットワークは、信頼性の低い通信や信頼性の低いコンピューターおよびソフトウェアを有することが多く、それらによりネットワーク・サービスが失敗（failure）に終わることがある。失敗を扱うためのフェールオーバー遷移プロセスは、完了するためにコストのかかる動作であり、時間もかかり得る。
【発明の概要】
【０００２】
[0002]  この概要は、以下の詳細な説明で更に説明するものを簡素化した形で、選択した概念を紹介するものである。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
【０００３】
[0003]  オンライン・サービスのための第１場所での、期間が一時的である障害（一時的障害（temporary outage））の間、リクエストは、オンライン・サービスのために、第１場所から第２場所へと一時的に切り換えられる。一時的障害は、多くの様々な理由で生じる（例えば、電源異常、計画されたメンテナンスなど）。第２場所は、一時的障害の間はリード・オンリとして構成することができ、それにより、データに対しての変更が行われないようにして、その一時的な間に、ユーザーがユーザーのデータへアクセスできるようにする。オンライン・サービスの第１場所へのリクエストは、第２場所により扱われるように、自動的にリダイレクトされる。一時的障害が止むと、リクエストは、第１場所へ戻すように自動的に切り換えられる。
【図面の簡単な説明】
【０００４】
【図１】図１は、例示的なコンピューティング環境を示す。
【図２】図２は、一時的障害の間にオンライン・サービスの第２場所へリクエストをリダイレクトするためのシステムを示す。
【図３】図３は、一時的障害の間の第２場所へのリクエストのリダイレクトを構成するためのプロセスを示す。
【図４】図４は、一時的障害の間に受信したリクエストを処理するためのプロセスを示す。
【発明を実施するための形態】
【０００５】
[0008]  図面では同じ番号は同じエレメントを示しており、それらの図面を参照して様々な実施形態について説明する。特に、図１および図１に対応する検討は、実施形態を実装できる適切なコンピューティング環境の簡単な一般的な説明を提供することを意図している。
【０００６】
[0009]  一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを行ったり特定の抽象データ型を実施したりする他のタイプの構造を含む。他のコンピューター・システム構成（configuration）も使用することができ、それらは、手持ち型デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブルの消費者用電子機器、マイクロコンピューター、メインフレーム・コンピューターなどを含む。分散型コンピューティング環境を使用することもでき、その場合、タスクは、通信ネットワークを通じてリンクされるリモート・プロセッシング・デバイスにより行われる。分散型コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモートの双方のメモリ・ストレージ・デバイスに配されることができる。
【０００７】
[0010]  ここで図１を参照すると、様々な実施形態で使用されるコンピューター１００のための例示的なコンピューター環境が記載されている。図１に示すコンピューター環境はコンピューティング・デバイスを含み、コンピューティング・デバイスは、それぞれがモバイル・コンピューティング・デバイス（例えば、電話機、タブレット、ネット・ブック、ラップトップ）、サーバー、デスクトップ、または他のタイプのコンピューティング・デバイスとして構成され得るものであり、中央処理装置（ＣＰＵ）５と、ランダム・アクセス・メモリ（ＲＡＭ）９およびリード・オンリ・メモリ（ＲＯＭ）１０を含むシステム・メモリ７と、メモリと中央処理装置（ＣＰＵ）５とを結合するシステム・バス１２とを含む。
【０００８】
[0011]  スタートアップのときなどにコンピューター内のエレメント間での情報の転送を手助けする基本ルーチンを含むベーシック入出力システムは、ＲＯＭ１０に格納される。コンピューター１００は、更に、オペレーティング・システム１６を格納する大容量記憶装置１４と、アプリケーション（１以上）２４と、ウェブ・ブラウザー２５と、以下で更に説明する障害マネージャー２６とを含む。
【０００９】
[0012]  大容量記憶装置１４は、バス１２へ接続された大容量記憶装置コントローラー（示さず）を介してＣＰＵ５と接続される。大容量記憶装置１４およびそれと関連するコンピューター読取可能媒体は、コンピューター１００のための不揮発性ストレージを提供する。ここに含まれるコンピューター読取可能媒体の説明は、ハード・ディスクやＣＤ−ＲＯＭなどのような大容量記憶装置に言及するが、コンピューター読取可能媒体は、コンピューター１００がアクセスできる任意の使用可能な媒体とすることができる。
【００１０】
[0013]  限定ではなく、コンピューター読取可能媒体は、例えば、コンピューター・ストレージ媒体および通信媒体を含むことができる。コンピューター・ストレージ媒体は、コンピューター読取可能命令やデータ構造やプログラム・モジュールや他のデータなどのような情報を格納するための、任意の方法や技術で実現される揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピューター・ストレージ媒体は、ＲＡＭ、ＲＯＭ、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル・リード・オンリ・メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリまたは他のソリッド・ステート・メモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、または望まれる情報を記憶するために使用でき且つコンピュータ１００によりアクセスできる他の任意の媒体を含むが、これらには限定されない。
【００１１】
[0014]  コンピューター１００は、ネットワーク化された環境において、インターネットなどのようなネットワーク１８を通じてのリモート・コンピューターへの論理接続を用いて動作することができる。コンピューター１００は、バス１２と接続されたネットワーク・インターフェイス・ユニット２０を通じて、ネットワーク１８へ接続することができる。ネットワーク接続は、無線および／または有線とすることができる。また、ネットワーク・インターフェイス・ユニット２０は、他のタイプのネットワークやリモート・コンピューター・システムへ接続するために使用されることもできる。また、コンピューター１００は、キーボードやマウスや電子スタイラス（図１に示さず）を含む多数の他のデバイスからの入力を受信および処理するための入力／出力コントローラー２２を含む。同様に、入力／出力コントローラー２２は、ディスプレイ・スクリーン２３やプリンターや他のタイプの出力デバイスへ、出力を提供することができる。
【００１２】
[0015]  上記で簡単に述べたように、多数のプログラム・モジュールやデータ・ファイルを、コンピューター１００の大容量記憶装置１４およびＲＡＭ９に格納することができ、格納されるものには、コンピューターの動作の制御に適切なオペレーティング・システム１６、例えば、ワシントン州レドモンドのマイクロソフト（登録商標）・コーポレーションのＷＩＮＤＯＷＳ（登録商標）７や、ＷＩＮＤＯＷＳ（登録商標）ＳＥＲＶＥＲや、ＷＩＮＤＯＷＳ（登録商標）Ｐｈｏｎｅ７オペレーティング・システムが含まれる。また、大容量記憶装置１４およびＲＡＭ９は、１以上のプログラム・モジュールを格納する。特に、大容量記憶装置１４およびＲＡＭ９は、１以上のアプリケーション２４およびウェブ・ブラウザー２５を含む１以上のアプリケーション・プログラムを格納する。１つの実施形態によると、アプリケーション２４は、様々なテナントに対するサービスを提供するビジネス・ポイント・オブ・ソリューション（business point of solution）などのようなオンライン・サービスと対話するように構成されるアプリケーションである。また、他のアプリケーションを用いることもできる。例えば、アプリケーション２４は、データと対話するように構成されるクライアント・アプリケーションとすることができる。アプリケーションは、限定ではないが、文書、スプレッドシート、スライド、ノートなどを含む多くの様々なタイプのデータと対話するように構成することができる。
【００１３】
[0016]  ネットワーク・ストア２７は、テナントに対するテナント・データなどのようなデータを格納するように構成される。ネットワーク・ストア２７は、ＩＰネットワーク１８を通じて、１以上のコンピューティング・デバイス／ユーザへアクセス可能である。例えば、ネットワーク・ストア２７は、オンライン・サービス１７などのようなオンライン・サービスのための１以上のテナントに対するテナント・データを格納することができる。また、他のネットワーク・ストアも、テナントに対するデータを格納するように構成することができる。また、テナント・データは、或るネットワーク・ストアから別のネットワーク・ストアへ移動させることもできる。示されているように、オンライン・サービスは、第１場所１７および第２場所１７’を含む。１つの実施形態によると、第２場所１７’は、第１オンライン・サービス１７のミラーである。一般に、第２場所１７’は、第１オンライン・サービス１７により提供されるサービスおよびデータのコピーを提供する。正常動作の間、オンライン・サービスへのリクエストは、第１場所１７へ送られる。第１場所がアクティブであるとき、第１ネットワークで生じるコンテンツの変更およびアクションは、第２場所においてミラーされる。このようにして、第１場所と第２場所とは、同じ様式で構成され同じコンテンツを含むように維持される。
【００１４】
[0017]  障害マネージャー２６は、一時的障害の間にオンライン・サービスの第１場所へ送られたリクエストをオンライン・サービスの第２場所へ自動的にリダイレクトするように構成される。障害マネージャー２６は、オンライン・サービス１７などのようなオンライン・サービスの一部とすることができ、障害マネージャー２６により提供される機能の全て／一部は、アプリケーションの内部／外部に配することができる。
【００１５】
[0018]  期間が一時的な、第１場所１７に影響を及ぼす障害（一時的障害）の間、ユーザー・リクエストは、オンライン・サービスの第１場所１７から第２場所１７’へと一時的に切り換えられる。一時的障害の時間的長さは様々であり得る（例えば、１０分、３０分、１時間、２時間など）。一般に、一時的障害は、分かっているある程度の時間内に解決可能な障害であると考えられている。一時的障害が生じる理由は様々である（例えば、電源異常、計画されたメンテナンスなど）。１つの実施形態によると、第２場所１７’は、一時的障害の間はリード・オンリとして構成することができ、それにより、ユーザーが、一時的障害の期間の間は第２場所においてユーザーのデータへアクセスできるようにする。一時的障害の間、オンライン・サービスへのリクエストは、リクエストをオンライン・サービスの第２場所のネットワーク・アドレスへリダイレクトするＤＮＳ（ドメイン・ネーム・システム（Domain Name System））エントリーを変更することにより、第２場所へリダイレクトされる。一時的障害が解決されると、リクエストは、第１場所をアドレスするようにＤＮＳエントリーを戻すように変更することにより、第１場所へ戻すように自動的に切り換えられる。以下では、障害マネージャーについて更に詳細に説明する。
【００１６】
[0019]  図２は、一時的障害の間にオンライン・サービスの第２場所へリクエストをリダイレクトするためのシステムを示す。示されているように、システム２００は、第１サービス２１０、第２サービス２２０、データ・ストア２３０、およびコンピューティング・デバイス（１以上）２４０を含む。
【００１７】
[0020]  使用されるコンピューティング・デバイスは、コンピューティング・デバイスの使用と関連する動作を行うように構成された任意のタイプのコンピューティング・デバイスとすることができる。例えば、幾つかのコンピューティング・デバイスとしてモバイル・コンピューティング・デバイス（例えば、セルラ電話機、タブレット、スマートフォン、ラップトップなど）があり、幾つかはデスクトップ・コンピューティング・デバイスとすることができ、別のコンピューティング・デバイスはサーバーとして構成することができる。幾つかのコンピューティング・デバイスは、オンラインのクラウド・ベースのサービス（例えば、サービス２１０およびサービス２２０）を提供するように配することができ、幾つかは、データ・ストレージ・サービスを提供するデータ・シェアとして配することができ、幾つかは、ローカル・ネットワークに配することができ、幾つかは、インターネットなどを通じてアクセスできるネットワークに配することができる。
【００１８】
[0021]  コンピューティング・デバイスはネットワーク１８を通じて結合される。ネットワーク１８は、様々な異なるタイプのネットワークとすることができる。例えば、ネットワーク１８は、ＩＰネットワーク、セルラー通信のキャリア・ネットワークなどとすることができる。一般に、ネットワーク１８は、サービス２１０、サービス２２０、データ・ストア２３０、およびコンピューティング・デバイス（１以上）２４０などのようなコンピューティング・デバイス間でデータを送るために用いられる。
【００１９】
[0022]  コンピューティング・デバイス（１以上）２４０は、アプリケーション２４２、ウェブ・ブラウザー２４４、およびユーザー・インターフェイス２４６を含む。示されているように、コンピューティング・デバイス２４０は、サービス２１０などのようなオンライン・サービスと対話するために、ユーザにより使用される。１つの実施形態によると、サービス２１０およびサービス２２０は、マルチテナント・サービスである。一般に、マルチテナントは、顧客間でのデータ（バックアップを含む）、使用、および管理（administration）の分離と関連している。言い換えると、たとえそれぞれのテナントからのデータが同じデータ・ストア内の同じデータベース内に格納されているとしても、１つの顧客（テナント１）からのデータに、別の顧客（テナント２）はアクセスできない。
【００２０】
[0023]  ユーザー・インターフェイス（ＵＩ）２４６は、コンピューティング・デバイス２４０から見てローカルのおよび／またはローカルではない様々なアプリケーションと対話するために用いられる。１以上のタイプの１以上のユーザー・インターフェイスを用いて、コンテンツと対話することができる。例えば、ＵＩ２４６は、コンテキスト・メニュー、メニュー・バー内のメニュー、リボン・ユーザー・インターフェイスから選択されたメニュー・アイテム、グラフィカル・メニューなどの使用を含むことができる。一般に、ＵＩ２４６は、ユーザーがアプリケーションの機能と容易に対話できるように構成される。例えば、ユーザーは、サービス２１０により維持されているコンテンツの検索などのようなオペレーションを行うために、単に、ＵＩ２４６内のオプションを選択する。
【００２１】
[0024]  データ・ストア２３０は、テナント・データを格納するように構成される。データ・ストアは、様々なコンピューティング・デバイスによりアクセス可能である。例えば、ネットワーク・ストアは、オンラインのビジネス・ポイント・オブ・ソリューションのサービスをサポートするオンライン・サービスと関連する。例えば、オンライン・サービスは、データ・サービス、ワード・プロセッシング・サービス、スプレッドシート・サービスなどを提供することができる。
【００２２】
[0025]  示されているように、データ・ストア２３０は、Ｎ個の異なるテナントのテナント・データを含み、テナント・データは、対応するバックアップ・データを含む。データ・ストアは、テナントのデータの全部／一部を格納することができる。例えば、幾つかのテナントは、１より多くのデータ・ストアを使用し、別の幾つかのテナントは、多くの他のテナントとデータ・ストアを共有する。テナントに関しての対応するバックアップ・データが同じデータ・ストア内に示されているが、バックアップ・データは、別の場所に格納することもできる。例えば、１つのデータ・ストアを、テナント・データを格納するために用い、１以上の別のデータ・ストアを、対応するバックアップ・データを格納するたに用いることができる。また、データ・ストア２３０は、サービス（例えば、サービス２１０、サービス２２０）のオペレーションと関連するデータを含むことができる。また、１以上のデータ・ストアを、オンライン・サービスのネットワーク内に格納することもできる（例えば、第１サービス２１０のためのデータ・ストア２１２および第２サービス２２０のためのデータ・ストア２１２’）。一般に、データ・ストア２１２’内のデータはデータ・ストア２１２内のデータのミラーである。第１サービス２１０と関連するデータ（即ち、管理用の変更およびテナント・データと関連するデータ）に対して行われた変更は、第２サービス２２０へミラーされる。１つの実施形態によると、行われた変更を維持する際に、完全バックアップ（例えば、週毎）、増分型バックアップ（例えば、時間毎、日毎）、およびトランザクション・ログが用いられる。１つの実施形態によると、第１サービスに対してなされた変更は第２サービスへコピーされ、第２サービスは第１サービスと実質的に同期した状態にとどまる（例えば、５分内、１０分内）。周期的に、第２サービスへコピーされたデータは検証され、この検証は、そのデータが正しくコピーされたことを保証する助けとなる。検証を行うために様々な方法（例えば、チェックサム、ハッシュ関数など）を用いることができる。
【００２３】
[0026]  サービス２１０および２２０は、データ・ストア２１２および２１２’と、ウェブ・レンダラー２１６および２１６’を含むウェブ・アプリケーション２１４および２１４’とを含む。サービス２１０は、複数のテナントからのデータとの対話を表示することに関連するサービスを提供するように構成されるオンライン・サービスとして、構成される。サービス２１０は、複数のテナントのための共有インフラストラクチャーを提供する。１つの実施形態によると、サービス２１０は、マイクロソフト（登録商標）のＳＨＡＲＥＰＯＩＮＴ  ＯＮＬＩＮＥサービスである。様々なテナントが、サービス２１０を用いて、それらのウェブ・アプリケーション／サイト・コレクションをホストすることができる。また、テナントは、専用の単独のものを用いるか、またはサービス２１０により提供されるサービスと組み合わせて用いる。ウェブ・アプリケーション２１４は、データと関連するリクエストの受信およびそれらのリクエストに対する応答を行うように構成される。ウェブ・アプリケーション２１４は、コンピューティング・デバイス２４０などのようなコンピューティング・デバイスのユーザーに対して、ネットワーク１８を介してアクセス可能なデータと対話するためのインターフェイスを提供するように動作する。ウェブ・アプリケーション２１４は、サービスと関連するオペレーションを行うために使用される他のサーバーと、通信することができる。コンピューティング・デバイスは、文書と対話するためのリクエストや、サービス２１０と関連する他のデータを送ることができる。
【００２４】
[0027]  ＤＮＳ２０５は、コンピューティング・デバイス２４０へサービスのアドレスを提供し、そのアドレスは、サービスへアクセスするために使用される。一時的障害が発生しているとき、ＤＮＳ２０５は第２サービス２２０のアドレスを提供し、それにより、コンピューティング・デバイス２４０からのオンライン・サービスへのリクエストに対して、ユーザーのデータへのアクセスにおける僅かな中断のみでまたは中断無しで、なおもサービスを受けられるようにする。一時的障害を検出したとき（または、知られている一時的障害および／または計画されたイベントの場合には、スケジュールされた時間に）、障害マネージャー２６（または他の許可されたユーザー）は、その一時的障害の期間の間、第１サービス２１０に対するエントリーを、第２サービス２２０をアドレスするように切り換える。
【００２５】
[0028]  サービスにおいてのリクエストの受信に応答して、ウェブ・アプリケーション２１４は、ネットワーク・シェア２３０および／または他のデータ・ストアなどのような場所から、データを得る。表示するデータは、ＩＳＯ／ＩＣＥ２９５００フォーマットなどのようなマークアップ言語フォーマットへと変換される。データは、サービス２１０により、または１以上の他のコンピューティング・デバイスにより変換することができる。ウェブ・アプリケーション２１４がデータのマークアップ言語表現を受け取ると、サービスは、ウェブ・レンダラー２１６を用いて、マークアップ言語フォーマットとされた文書を、コンピューティング・デバイス２４０上のウェブ・ブラウザー２４４などのようなウェブ・ブラウザー・アプリケーションによりレンダリングされ得るデータの表現へと変換する。レンダリングされたデータは、同じデータを見るために使用されたときの対応するデスクトップ・アプリケーションの出力と実質的に類似に見える。ウェブ・レンダラー２１６がファイルのレンダリングを完了すると、サービス２１０により、ファイルはリクエストを行ったコンピューティング・デバイスへ戻され、そこでファイルはウェブ・ブラウザー２４４によりレンダリングされ得る。
【００２６】
[0029]  また、ウェブ・レンダラー２１６は、１以上のスクリプトをマークアップ言語ファイルへとレンダリングするように構成され、それにより、コンピューティング・デバイス２４０などのようなコンピューティング・デバイスのユーザーが、ウェブ・ブラウザー２４４のコンテキスト内のデータと対話することを可能とする。ウェブ・レンダラー２１６は、ウェブ・ブラウザー・アプリケーション２４４により実行可能なスクリプト・コードを、戻されたウェブ・ページへとレンダリングするように動作する。スクリプトは、例えば、ユーザによりデータの一部を変更することおよび／またはデータと関連する値を変更することを可能とする機能を、提供することができる。特定のタイプのユーザー入力に応答して、スクリプトは実行される。スクリプトが実行されると、応答がサービス２１０へ送られて、文書に対する動作が行われていることを示し、それにより、行われた対話のタイプを識別し、ウェブ・アプリケーション２１４に対して、データに対して行うべき機能を更に識別する。
【００２７】
[0030]  １つの実施形態によると、第２サービス２２０は、リクエストを受信していないときでもリード・オンリ・モードでアクティブな状態にとどまり、一時的障害が生じてリクエストが自動的に第２サービス２２０へ送られたときに、サービス・リクエストに対して第２サービス２２０が直ちに使用可能であるようにする。
【００２８】
[0031]  図３および図４は、一時的障害の間にリクエストを第２場所へ一時的にリダイレクトするための例示的なプロセスを示す。ここで提示するルーチンの説明を読むとき、様々な実施形態の論理演算は、（１）コンピューターで実施される行為のシーケンスまたはコンピューティング・システムで実行されるプログラム・モジュールとして、および／または（２）コンピューティング・システム内の相互接続されたマシン・ロジック回路または回路モジュールとして実施されることを、理解すべきである。実装は、本発明を実装するコンピューティング・システムの性能の要求に応じた選択の問題である。従って、例示され、ここで説明される実施形態を構成する論理演算は、オペレーション、構造デバイス、行為、モジュールなどのように様々に呼ばれる。これらのオペレーション、構造デバイス、行為、およびモジュールは、ソフトウェア、ファームウェア、特定用途向けデジタル・ロジック、およびこれらの任意の組み合わせにより実装できる。
【００２９】
[0032]  図３は、一時的障害の間における第２場所へのリクエストのリダイレクトを構成するためのプロセスを示す。
[0033]  スタート・ブロックの後、プロセス３００はオペレーション３１０へ進み、オペレーション３１０において、一時的障害の発生のときに関する決定が行われる。一時的障害は、計画されて発生するものおよび／または計画無しに発生するものである。例えば、特定の時間および少なくとも推定される期間において電源異常が発生することが、知られている場合がある。同様に、第１場所において性能に関するメンテナンスを行うために、計画された障害がスケジュールされ得る。幾つかの場合、完全な障害と考慮されない一時的障害が、第１場所で生じる。例えば、雷雨が、第１場所の電力に対して一時的に影響を及ぼすことがあるが、その電力は或る期間（例えば、１時間、２時間、・・・）の前に回復することが期待されている。
【００３０】
[0034]  オペレーション３２０へと続き、オンライン・サービスの第２場所は、リード・オンリ・モードに置かれるか、または既にリード・オンリ・モードにある。１つの実施形態によると、第２場所はリード・オンリ・モードに置かれない。一時的障害の間に第２場所をリード・オンリ・モードに置くことは、一時的障害の期間の間に第１場所が第２場所へミラーされた状態にとどまることを確実にすることの、助けとなる。ユーザーは、一時的障害の間、なおも、第１場所にあったユーザーのコンテンツへ、第２場所からアクセスすることができる。第２場所において、最初にはコンテンツの小部分が使用できないこともあり、それは、第１場所に対して行われた最近（例えば、第１場所に対して行われたコンテンツ変更の最後の５分や１０分）の変更をコピーするための十分な時間や、変更を第２場所へ適用するための十分な時間がなかった場合である。幾つかの場合、コンテンツは、一時的障害の前に第２場所へコピーされているが、適用されていない。この状況において、第２場所は、一時的障害の間に、コンテンツを更新することを継続し、数分（例えば、５分、１０分）後に第２場所が第１場所をミラーするようにする。
【００３１】
[0035]  オペレーション３３０へ進み、第１場所に対するＤＮＳエントリーが、第２場所をアドレスするように切り換えられる。ＤＮＳエントリーを第１場所から第２場所へ切り換えることは、エンド・ユーザーにはシームレスに見える高速の動作である。
【００３２】
[0036]  オペレーション３４０へ移り、一時的障害が終わったときに関する決定が行われる。この決定は、様々なファクタ（例えば、第１場所がオンラインに戻るとき、予め定めたスケジュールされた時間となるとき、および／または許可されたユーザーが、第１場所が使用可能であることを示すとき）に基づいて行うことができる。
【００３３】
[0037]  オペレーション３５０へ進み、ＤＮＳエントリーは、第１場所へ戻すように切り換えられる。これで、ユーザーは、オンライン・サービスの大きい混乱を経験することなく、ユーザーのコンテンツ（リード／ライト）の全てにアクセスすることができる。一時的障害の間に第２場所がリード・オンリ・モードに置かれるとき、第１場所に対しての変更は行われない。従って、第１場所は、一時的障害が無かったかのように、サービスを再開する。
【００３４】
[0038]  次に、プロセスはエンド・ブロックへ進み、他のアクションの処理に戻る。
[0039]  図４は、一時的障害の間に受信したリクエストを処理するためのプロセスを示す。
【００３５】
[0040]  スタート・ブロックの後、プロセスはオペレーション４１０へ進み、オペレーション４１０において、オンライン・サービス向けられたリクエストを受信する。
[0041]  オペレーション４２０へ進み、受信したリクエストは、一時的障害の期間の間は、第２場所へ送られる。受信したリクエストは第２場所へ自動的に送られ、第２場所が第１場所であるかのように、オンライン・サービスのクライアントが第２場所へアクセスするようにする。
【００３６】
[0042]  オペレーション４３０へ進み、一時的障害の期間の間、第１場所に代えて第２場所により、リクエストに対してサービスが行われる。１つの実施形態によると、第２場所はリード・オンリ・モードに置かれ、それにより、クライアントは、クライアントのコンテンツの全てを読み出せるがコンテンツを変更できないようにされる。
【００３７】
[0043]  次に、プロセスはエンド・ブロックへ進み、他のアクションの処理に戻る。
[0044]  上記の仕様、例、およびデータは、本発明の構成物の製造および使用のための完全な説明を提供する。本発明の精神および範囲から離れずに本発明の多くの実施形態を作成することができ、本発明は添付の特許請求の範囲の中にある。
【図１】
2015506112.tif 000003
【図２】
2015506112.tif 000004
【図３】
2015506112.tif 000005
【図４】
2015506112.tif 000006
【国際調査報告】
2015506112.tif 000007
2015506112.tif 000008