(58)【調査した分野】(Int.Cl.,DB名)
前記ヒストリ・データベースを更新するステップが、前記テナント・データのバックアップに対応するバックアップ・データのストレージ位置を格納するステップを含む、請求項1記載の方法。
請求項5記載の方法において、前記バックアップ・データが、前記テナント・データのフル・バックアップ、前記テナント・データのインクリメント式バックアップ、および前記テナント・データのトランザクション・ログ・バックアップを含む、方法。
テナントの移行にわたるテナント・データをリカバリするためのコンピューター実行可能命令を格納するコンピューター可読ストレージ媒体であって、該コンピューター実行可能命令が、
テナント・バックアップ・データを生成するために、バックアップ動作を前記テナント・データに対して実行するステップと、
前記テナント・データのヒストリ・データベースを保持するステップであって、前記ヒストリ・データベースが、前記テナント・データおよび対応する前記テナントのバックアップ・データについての第1ストレージ位置を少なくとも含む、ステップと、
前記第1ストレージ位置を、異なる第2ストレージ位置に変更する動作を判断するステップと、
前記動作に応じて、前記ヒストリ・データベースを更新するステップであって、
前記第1ストレージ位置を変更し、
前記第1ストレージ位置の変更に関連する時間を追加し、
前記第2ストレージ位置を追加する
ことを含む、ステップと、
要求されたときに、前記テナント・データの第1ストレージ位置を判断するために、前記ヒストリ・データベースにアクセスするステップと、
前記第1ストレージ位置に格納された前記テナント・データを用いて前記テナント・データをリストアするステップと
を含み、前記第1ストレージ位置および前記第2ストレージ位置がそれぞれ、前記テナント・データのコンテンツ位置と、対応する前記テナントのバックアップ・データのバックアップ位置との組を含む、コンピューター可読ストレージ媒体。
請求項9記載のコンピューター可読ストレージ媒体において、前記ヒストリ・データベースが、テナント・データおよびバックアップ・データの内少なくとも1つへの負荷バランシング、テナントの移行、並びにファーム・アップグレードの内少なくとも1つに応じて更新される、コンピューター可読ストレージ媒体。
前記コンピューター実行可能命令が、前記要求に応じてテナント・データのバックアップの各ストレージ位置を設けるステップを更に含む、請求項9記載のコンピューター可読ストレージ媒体。
前記バックアップ・データが、前記テナント・データのフル・バックアップ、前記テナント・データのインクリメント式バックアップ、および前記テナントのデータのトランザクション・ログ・バックアップを含む、請求項11記載のコンピューター可読ストレージ媒体。
【発明を実施するための形態】
【0005】
[0009] これより図面を参照する。類似の符号は類似の構成要素を表し、様々な実施形態を説明することになる。特に、
図1および対応の説明は、複数の実施形態が実装される適切なコンピューティング環境についての簡潔且つ一般的な説明を供することを意図している。
【0006】
[0010] 通常、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行し、または特定の抽象データ・タイプを実装する他のタイプの構造を含む。他のコンピューター・システム構成はまた、ハンド・ヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能なコンシューマ・エレクトロニクス、ミニコンピューター、メインフレーム・コンピュータなどを含んで使用することもできる。分散コンピューティング環境をまた用いることができ、タスクは、通信ネットワークを通じてリンクされる遠隔処理デバイスが実行する。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよび遠隔のメモリ・ストレージ・デバイス双方に位置してもよい。
【0007】
[0011] これより
図1を参照して、様々な実施形態において利用されるコンピューター100のための例示のコンピューター環境について説明する。
図1に示すコンピューター環境は、複数のコンピューティング・デバイスを含み、各々がモバイル・コンピューティング・デバイス(例えば、電話、タブレット、ネット・ブック、ラップトップ)、サーバ、デスクトップまたは他のタイプのコンピューターとして構成することができる。また、このコンピューター環境は、中央演算処理装置5(「CPU」)、ランダム・アクセス・メモリ9(「RAM」)およびリードオンリ・メモリ(「ROM」)10を含むシステム・メモリ7、並びにメモリを中央演算処理装置(「CPU」)5に結合するシステム・バス12を含む。
【0008】
[0012] 基本ルーチンを収容する基本入出力システムは、スタートアップの間といった、コンピューター内のエレメント間での情報の移送を支援し、ROM10に格納される。コンピューター100は更に、オペレーティング・システム16、アプリケーション(1つまたは複数)24、ウェブ・ブラウザー25およびバックアップ・マネージャー26を格納するための大容量ストレージ・デバイス14を含み、これより以下に詳細に説明する。
【0009】
[0013] 大容量ストレージ・デバイス14は、バス12に接続される大容量記憶コントローラー(図示せず)を通じてCPU5に接続される。大容量ストレージ・デバイス14および付随するコンピューター可読媒体は、不揮発性ストレージをコンピューター100に設ける。本明細書では、コンピューター可読媒体について、例えばハード・ディスクやCD-ROMドライブのような大容量ストレージ・デバイスと称する。このコンピューター可読媒体は、コンピューター100によってアクセスできる如何なる利用可能媒体とすることができる。
【0010】
[0014] 例えば、この例には限定しないが、コンピューター可読媒体は、コンピューター・ストレージ媒体および通信媒体を含むことができる。コンピューター・ストレージ媒体は、コンピューター可読命令、データ構造、プログラム・モジュールまたは他のデータのような情報の記憶について任意の方法または技術で実装される揮発性および不揮発性のもので、取り外し可能および取り外し不能な媒体を含む。コンピューター・ストレージ媒体は、これに限定されないが、RAM、ROM、消去可能プログラム可能リードオンリ・メモリ(「EPOM」;Erasable Programmable Read Only Memory)、電気的消去可能プログラム可能リードオンリ・メモリ(「EEPROM」;Electrically Erasable Programmable Read Only Memory)、フラッシュ・メモリ、若しくは他の固体メモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、若しくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または所望の情報を格納するのに用いることができ、且つコンピューター100がアクセス可能な他の任意の媒体を含む。
【0011】
[0015] コンピューター100は、インターネットのようなネットワーク18を通じ、遠隔コンピューターへの論理接続を用いたネットワーク化された環境において動作する。コンピューター100は、バス12に接続されるネットワーク・インターフェース・ユニット20を通じてネットワーク18に接続してもよい。ネットワーク接続は、無線および/または有線としてもよい。ネットワーク・インターフェース・ユニット20はまた、他のタイプのネットワークおよび遠隔コンピューター・システムに接続するために利用してもよい。コンピューター100はまた、キーボード、マウスまたは電子ペン(
図1には図示せず)を含む数多くの他のデバイスからの入力を受信および処理するための入出力用コントローラー22を含むこともできる。同様に、入出力用コントローラー22は、ディスプレイ・スクリーン23、プリンタ、または他のタイプの出力デバイスに入力/出力を提供してもよい。
【0012】
[0016] 先に簡潔に言及したように、多くのプログラム・モジュールおよびデータ・ファイルは、コンピューター100が有する大容量ストレージ・デバイス14およびRAM9に格納することができる。これらは、ワシントン州のレドモンドにあるマイクロソフト社による、WINDOWS 7(登録商標)、WINDOWS SERVER(登録商標)、WINDOWS PHONE(登録商標)におけるオペレーティング・システムのような、コンピューターの動作を制御するのに適したオペレーティング・システム16を含む。大容量ストレージ・デバイス14およびRAM9はまた、1つ以上のプログラム・モジュールを格納することもできる。特に、大容量ストレージ・デバイス14およびRAM9は、1つ以上のアプリケーション・プログラムを格納することができ、これは、1つ以上のアプリケーション24およびウェブ・ブラウザー25を含む。一実施形態によれば、アプリケーション24は、異なるテナントに複数のサービスを提供するソリューション・サービスのビジネス・ポイントのような、オンライン・サービスと相互作用するように構成される。他のアプリケーションも使用することができる。例えば、アプリケーション24は、データと相互作用するように構成されるクライアント・アプリケーションとすることができる。アプリケーションは、限定ではないが、ドキュメント、スプレッドシート、スライド、ノート等を含む多くの異なるデータ・タイプと相互作用するように構成することができる。
【0013】
[0017] ネットワーク・ストア27は、テナントについてのテナント・データを格納するように構成される。ネットワーク・ストア27は、IPネットワーク18を介して1以上のコンピューター/ユーザーにアクセス可能である。例えば、ネットワーク・ストア27は、オンライン・サービス17のようなオンライン・サービスに対し1つ以上のテナントについてのテナント・データを格納することができる。他のネットワーク・ストアがまた、テナントについてデータを格納するように構成することもできる。テナント・データはまた、ネットワーク・ストアからの別のネットワーク・ストアに移行することもできる。
【0014】
[0018] バックアップ・マネージャー26は、ヒストリ21のような履歴内にテナント・データの位置を保持するように構成される。バックアップ・マネージャー26は、オンライン・サービス17のようなオンライン・サービスの一部とすることができ、また、バックアップ・マネージャー26から提供される全て/幾つかの機能性は、アプリケーションから内部的に/外部的に位置させることができる。テナント・データは、テナントによって現在使用されているデータおよび対応するバックアップ・データを含む。テナントのデータが1つの位置から別の位置に変更されると、位置および時間がヒストリ21内に格納される。ヒストリ21は、特定の時間においてテナントのデータにおける位置を決定するのにアクセスすることができる。異なる動作が、ヒストリ内の位置/時間の格納をトリガする。通常、テナントのデータの位置を変更する動作(例えば、ファームの更新、テナントの移動、テナントの追加、データの負荷バランスなど)は、ヒストリ内の位置の格納をトリガする。テナント・データが、ある動作(例えば、リストア)に必要とされる際、そのヒストリはデータの位置を決定するのにアクセスされることができる。バックアップ・マネージャーに関するより多くの詳細について以下に開示する。
【0015】
[0019]
図2は、テナントの移行にわたるテナント・データの位置を保持するためのシステムを示す。図示のように、システム200は、サービス210、データ・ストア220、データ・ストア230およびコンピューティング・デバイス240を含む。
【0016】
[0020] 使用するコンピューティング・デバイスは、当該コンピューティング・デバイスの使用に関連する動作を実行するように構成される任意のタイプのデバイスとすることができる。例えば、コンピューティング・デバイスの幾らかは、以下のようにすることができる。すなわち、モバイル・コンピューティング・デバイス(例えば携帯電話、タブレット、スマートフォン、ラップトップなど)、また幾らかはデスクトップ・コンピューターでも、サーバとして構成される他のコンピューティング・デバイスでもよい。幾らかのコンピューティング・デバイスは、オンラインのクラウド・ベースのサービス(例えば、サービス210)を提供するように配置し、幾らかは、データ・ストレージ・サービスを提供するデータ・シェアとして配置し、また幾らかは、インターネットを通じてアクセス可能なようにネットワークに配置する等としてもよい。
【0017】
[0021] コンピューティング・デバイスは、ネットワーク18によって結合される。ネットワーク18は、多くの異なるタイプのネットワークとしてもよい。例えば、ネットワーク18は、IPネットワーク、セルラー通信のためのキャリア・ネットワーク等としてもよい。通常、ネットワーク18は、コンピューティング・デバイス240、データ・ストア220、データ・ストア230、およびサービス210のようなコンピューティング・デバイス間においてデータを送信するために使用される。
【0018】
[0022] コンピューティング・デバイス240は、アプリケーション242、ウェブ・ブラウザー244およびユーザー・インターフェース246を含む。図示のように、コンピューティング・デバイス240は、ユーザーに使用されて、サービス210のようなサービスと相互作用する。一実施形態によれば、サービス210は、マルチ・テナント性のサービスである。一般的に、マルチ・テナント性(multi-tenancy)とは、バックアップを含むデータの分離(isolation)、使用(usage)、およびカスタマ間の管理(administration)に関するものである。換言すれば、1つのカスタマ(テナント1)からのデータは、たとえ、各テナントからのデータが同一のデータ・ストア内で同一のデータベース内に格納することができる場合であっても、他のカスタマ(テナント2)によりアクセス可能ではない。
【0019】
[0023] ユーザー・インターフェース(UI)246は、様々なアプリケーションと相互作用するために用いられる。これらアプリケーションは、コンピューティング・デバイス240に対しローカル/非ローカルとしてもよい。1つ以上のタイプの1つ以上のユーザー・インターフェースを、ドキュメントと相互作用するために用いてもよい。例えば、UI246は、コンテキスト・メニュー、メニューバー内のメニュー、リボン・ユーザー・インターフェースから選択されるメニュー項目、グラフィック・メニューなどの使用を含んでもよい。通常UI246は、ユーザーがアプリケーションの機能性と容易に相互作用できるように構成される。例えば、ユーザーは、UI246内で単に選択肢を単に選択してもよく、その結果、サービス210によって保持されるテナント・データをリストアするように選択する。
【0020】
[0024] データ・ストア220およびデータ・ストア230は、テナント・データを格納するように構成される。データ・ストアは、様々なコンピューティング・デバイスによりアクセス可能である。例えば、ネットワーク・ストアは、ソリューション・サービスのオンライン・ビジネス・ポイントをサポートするオンライン・サービスに付随してもよい。例えば、オンライン・サービスは、データ・サービス、文書処理サービス、スプレッドシート・サービスなどを提供してもよい。
【0021】
[0025] 図示のように、データ・ストア220は、N個の異なるテナントについて、対応するバックアップ・データを含んだテナント・データを含む。データ・ストアは、テナントのデータの全部/一部を格納することができる。例えば、幾らかのテナントが2つ以上のデータ・ストアを使用することがある一方で、他のテナントは、他の多くのテナントとデータ・ストアを共有することがある。テナントについて対応するバックアップ・データが同一のデータ・ストア内に示されているが、このバックアップ・データは他の位置に格納することもある。例えば、1つのデータ・ストアがテナント・データを格納するために使用されることがあり、また、1つ以上の他のデータ・ストアが対応するバックアップ・データを格納するために使用されることもある。
【0022】
[0026] データ・ストア230は、異なるデータ・ストアから変更されているテナント・データおよびバックアップ・データの位置を示す。この例では、テナント・データ2および対応するバックアップ・データが、データ・ストア220からデータ・ストア230に変更されている。テナント3のバックアップ・データが、データ・ストア220からデータ・ストア230に変更されている。テナント・データ8は、データ・ストア220からデータ・ストア230に変更されている。位置の変更は、様々な理由のために生じることがある。例えば、テナントにとってより多くの空間が必要になり、データ・ストアは負荷バランシングされ、テナントが位置するファームがアップグレードされ、データ・ストアが故障し、データベースが移行/更新されること等があり得る。他の多くのシナリオが、テナントのデータを変更させることがある。この例からも分かるように、テナントのデータは、1つのデータ・ストアに格納することができ、また、対応するバックアップ・データは、他のデータ・ストアに格納することができる。
【0023】
[0027] サービス210は、バックアップ・マネージャー26、ヒストリ212およびウェブ・アプリケーション216を含み、ウェブ・アプリケーション216はウェブ・レンダラー216を構成する。サービス210は、オンライン・サービスとして構成され、複数のテナントからのデータとの相互作用を表示するのに付随するサービスを提供する。サービス210は、複数のテナントに共有したインフラストラクチャを提供する。一実施形態によれば、サービス210は、マイクロソフト社のSHAREPOINT ONLINEサービスである。異なるテナントは、サービス210を使用しているテナントのウェブ・アプリケーション/サイト・コレクションの収集をホストしてもよい。テナントはまた、専用アローンでも、またはサービス210によって提供されるサービスとの組み合わせを使用してもよい。ウェブ・アプリケーション214は、データに関連する要求を受け取り、また応答するように構成される。例えば、サービス210は、ネットワーク・ストア220および/またはネットワーク・ストア230に格納されたテナントのデータにアクセスしてもよい。ウェブ・アプリケーション214は、コンピューティング・デバイス240のようなコンピューティング・デバイスのユーザーにインターフェースを提供し、ネットワーク18を介してアクセス可能なデータと相互作用するように動作する。ウェブ・アプリケーション214は、サービスに関連する動作を実行するために使用される他のサーバと通信することができる。
【0024】
[0028] サービス210は、コンピューティング・デバイス240のようなコンピューティング・デバイスから要求を受ける。コンピューティング・デバイスは、ドキュメントおよび/または他のデータと相互作用するために、要求をサービス210に送信する。このような要求に応答して、ウェブ・アプリケーション214は、ネットワーク・シェア230のような位置からデータを取得する。表示に対するデータは、ISO/IEC 29500フォーマットのようなマークアップ言語フォーマットに変換される。データは、サービス210によって、または、1つ以上の他のコンピューティング・デバイスによって変換することができる。一旦ウェブ・アプリケーション214がデータについてマークアップ言語表現を受け取ると、サービスは、ウェブ・レンダラーを利用して、当該マークアップ言語フォーマットのドキュメントを、コンピューティング・デバイス240上のウェブ・ブラウザーのようなウェブ・ブラウザー・アプリケーションによってレンダリングされるデータ表現へと変換することができる。レンダリングされたデータは、同一のデータをビューするのに利用される際の、対応のデスクトップ・アプリケーションにおける出力と実質的に同じである。一旦ウェブ・レンダラーがファイルのレンダリングを完了すると、ファイルはサービス210によって、要求元のコンピューティング・デバイスに戻され、そこではウェブ・ブラウザー244によってレンダリングされることができる。
【0025】
[0029] ウェブ・レンダラー216はまた、コンピューティング・デバイス240のようなコンピューティング・デバイスのユーザーがウェブ・ブラウザー244のコンテキスト内のデータと相互作用するのを可能にするために、1つ以上のスクリプトをマークアップ言語ファイルにレンダリングするようにも構成される。ウェブ・レンダラー216は、ウェブ・ブラウザー・アプリケーション244によって実行可能なスクリプト・コードを返される(returned)ウェブ・ページにレンダリングするように動作する。スクリプトは、例えばユーザーがデータ・セクションを変更でき、および/またはそのデータに関連する値を修正できるような機能性を提供することができる。特定タイプのユーザー入力に応答して、スクリプトが実行されることができる。スクリプトが実行されると、ドキュメントが作用(act upon)されたことを示す応答をサービス210に送信することができ、行われた相互作用のタイプを識別し、更に、データに実行されるべき機能を、ウェブ・アプリケーション214に対して識別することができる。
【0026】
[0030] テナントのデータについて位置の変更の要因となった動作に応じて、バックアップ・マネージャー26は、エントリをヒストリ212に置く(place)。ヒストリ212は、テナントのデータおよび対応するバックアップ・データの位置のレコードを保持する。一実施形態によれば、ヒストリ212は、テナントのデータを格納するのに用いるデータベース名および位置、テナントのデータのバックアップ位置についての名前および位置、およびその位置にデータを格納した時間を格納する。(
図3および関連の記載を参照のこと。)ヒストリ情報は、様々な方法で格納することができる。例えば、テナントごとのヒストリ・レコードをデータベース内に格納することができ、ヒストリ情報がデータ・ファイル内に格納されることができる等である。
【0027】
[0031] 一実施形態によれば、バックアップ・マネージャー26は、テナント・データについてフル・バックアップやインクリメント式バックアップ、およびフル・バックアップの時間内でのトランザクション・ログ入力を実行するように構成される。フル・バックアップのスケジューリングは、設定可能である。一実施形態によれば、フル・バックアップは週次で実行され、インクリメント式バックアップは日次で実行される。また、トランザクションは5分毎に格納される。他のスケジュールをまた使用することができ、これもまた設定可能である。異なるバックアップを、同一の位置および/または異なる位置に格納してもよい。例えば、フル・バックアップは、第1の位置に格納することができ、インクリメント式バックアップおよびトランザクション・ログは異なる位置に格納してもよい。
【0028】
[0032]
図3は、テナント・データ位置変更についてのレコードを含むヒストリを示す。ヒストリ300は、管理されているテナントごとにレコードを含んでいる。例示の目的で、ヒストリ300は、テナント1(310)、テナント2(320)およびテナント3(330)を示す。
【0029】
[0033] 図示のように、ヒストリのレコード310は、付与されているテナント1に応答して作成されたものである。一実施形態によれば、ヒストリ・レコードは、コンテンツ位置、時間、バックアップ位置、および時間についてのフィールドを含む。コンテンツ位置は、テナントのコンテンツがどこに格納されたかについての情報(例えば、データベース名、コンテンツ位置へのURL等)を提供する。時間1フィールドは、テナントのデータが特定の位置にあった最新の時間を示す。一実施形態によれば、時間1フィールドが空(empty)であるときに、時間2の値がそのレコードのために用いられる。時間1フィールドおよび時間2フィールドが共に空であるときは、データは、そのコンテンツ位置およびレコードにリストされたバックアップ位置に更に位置する。バックアップ位置フィールドは、そのコンテンツに対しバックアップがどこに位置されるかの位置を特定する。時間2は、テナントのバックアップ・データが特定の位置にあった最新の時間を特定する。
【0030】
[0034] テナント1のヒストリ(310)を参照すると、テナント1のデータはコンテンツ位置「コンテンツ12」(例えばデータベース名)に位置し、テナント1のデータのバックアップ・データが「backups\ds220\Content 12」に位置することが見てとれる。この場合、テナント1付与されたために、テナント1のデータは変更してない。
【0031】
[0035] テナント2のデータは、「コンテンツ12」から「コンテンツ56」に、そして「コンテンツ79」にその位置が変更している。2010年3月4日の午前10時より前で、2010年1月2日の午前1時4分よりも後の時間では、データは「Content 56」に格納され、対応のバックアップ・データが「backups\ds220\Content 56」に格納されている。2010年1月2日の午前1時4分よりも前の時間では、データは「コンテンツ12」に格納されており、対応のバックアップ・データは"backups\ds220\Content 12"に格納されている。
【0032】
[0036] テナント3のデータは、「コンテンツ12」から「コンテンツ15」にその位置が変更している。対応のバックアップ・データは、「backups\ds220\Content 12」から「backups\ds220\Content 15」に、そして「backups\ds230\Content 79」に変更されている。テナント3のデータは2010年3月12日午前7時35分より後の時間に「コンテンツ15」に格納されている。2010年3月24日午前1時22分より前で、2010年3月12日7時35分より後の時間では、対応のバックアップ・データが「backups\ds220\Content 15」に格納されている。2010年3月12日7時35分より前では、データは、「コンテンツ12」に格納され、対応のバックアップ・データが「backups\ds220\Content 12」に格納されている。この例では、テナント3でのバックアップ・データの位置を変更しているが、テナント・データの位置は「コンテンツ15」からは変更していない。
【0033】
[0037] 他の多くの方法が、テナント・データの位置に関連する情報を格納するために用いることができる。例えば、時間フィールドは、開始時間および終了時間を含む、開始時間を含むが終了時間を含まない、または終了時間を含むが開始時間を含まないとすることができるであろう。位置は、名前、識別子、URL等として特定することができる。他のフィールドも含むことができ、例えばサイズ・フィールド、レコード数フィールド、最新アクセス・フィールドなどを含むことができる。
【0034】
[0038]
図4および
図5は、テナント移行にわたりテナント・データをリカバリするプロセスを示す。本明細書において提示するルーチンに関しての考察を読む際には、様々な実施形態の論理動作が、(1)コンピューティング・システム上でランする、コンピューターで実装したアクションまたはプログラム・モジュールのシーケンスとして、および/または(2)コンピューティング・システム内で相互接続したマシン論理回路または回路モジュールとして実施されることが理解されるべきである。本実施は、本発明を実施するコンピューター・システムの性能要件に依存した選択の問題である。したがって、例示の論理動作および本明細書に説明した実施形態の製造(making up)は、動作、構造上のデバイス、アクション、またはモジュールとして様々なものに関連する。これら動作、構造デバイス、アクションおよびモジュールは、ソフトウェア、ファームウェア、特定目的のデジタル・ロジック、およびこれら如何なる組み合わせにおいて実装されることもある。
【0035】
[0039]
図4は、テナントのデータの位置変更のヒストリを更新するためのプロセスを示す。
[0040] 開始ブロックの後、プロセス400は動作410に移る。ここでは、動作がテナント・データの位置を変更したことの判定がなされる。変更は、全部/一部のテナントのデータに関連することもある。多くの別の動作が、テナント・データの位置の変更の要因となることもある。例えば、テナントの追加、ファームのアップグレード、テナント移行、テナントのデータの負荷バランシング、対応のバックアップ・データの負荷バランシング、保守動作、故障等がある。通常は、テナントのデータおよび/または対応のバックアップ・データの位置変更の要因となる任意の動作は規定される。
【0036】
[0041] 動作420に移り、データが位置を変更しているテナントについてヒストリにアクセスする。このヒストリは、ローカル・データ・ストア、共有データ・ストア、および/または他のメモリ位置内にアクセスされることもある。
【0037】
[0042] 動作430へ移り、テナントのヒストリが更新されて、当該テナントのデータについて現在のステータスおよび任意の以前のステータスを反映する。一実施形態によれば、各テナントは、その対応するヒストリを示すテーブルを含む。ヒストリは、多くの異なるタイプの構造を用いて多くの異なる方法を使用して格納することができる。例えば、ヒストリは、メモリ、ファイル、スプレッドシート、データベース等に格納することができる。ヒストリ・レコードは、リストやスプレッドシート等のようなデータ・ストア内で混在させることもできる。一実施形態によれば、ヒストリ・レコードは、コンテンツ位置、時間、バックアップ位置およびバックアップ時間のフィールドを備える。コンテンツ位置は、テナントのコンテンツが格納されるところに情報を供給する(例えば、データベース名、コンテンツ位置へのURLなど)。時間1フィールドは、テナントのデータが特定の位置あった最新の時間を示す。一実施形態によれば、時間1フィールドが空であるときに、時間1の値は時間2フィールドのものと同一となる。時間1フィールドおよび時間2フィールドが空であるときは、データは現在のコンテンツ位置およびバックアップ位置に更にある。バックアップ位置フィールドは、コンテンツのバックアップがどこに位置するかについてその位置を特定する。時間2フィールドは、テナントのバックアップ・データが特定の位置にあった最新の時間を特定する。
【0038】
[0043] 次いで、本プロセスは、終了ブロックに移り、他のアクションの処理に戻る。
[0044]
図5は、直前の位置からテナント・データをリストアするための要求を処理するためのプロセスを示す。
【0039】
[0045] 開始ブロックの後、本プロセスは動作510に移り、ここでは要求を受け取ってテナント・データをリストアする。例えば、テナントは、リストアしたいデータを偶然削除してしまった場合もある。一実施形態によれば、この要求は、データを削除したと考えたかを示す時間を含む。別の実施形態によれば、時間レンジが付与される。更に別の実施形態によれば、テナントのヒストリ内の各位置は、要求内の時間を供給することなくデータを検索してもよい。
【0040】
[0046] 動作520に移って、テナントのヒストリについて、データがどこに位置するかを決定するためにアクセスする。先に述べたように、ヒストリはテナント・データおよび対応のバックアップ・データの現在の位置、並びにそのデータの直前の各位置を含む。
【0041】
[0047] 動作530に移って、テナントのデータは、テナントの現在のデータは所望でない直前のデータで上書きされないよう、一時的な位置にリストアされる。
[0048] 動作540に移行して、要求されたデータは、一時的な位置から抽出され、そしてテナントのデータの現在の位置にリストアされる。一時的な位置にあったデータを消去してもよい。
【0042】
[0049] プロセスは、次いで、終了ブロックに移り、他のアクションの処理に戻る。
[0050] 上記の明細書、例示およびデータは、本発明の構成物を製造および使用することについて完全な説明を提供するものである。本発明の多くの実施形態が本発明の趣旨および範囲を逸脱することなく為され得るために、本発明は、添付の特許請求の範囲に帰するものとなる。