(57)【特許請求の範囲】
【請求項１】
コンテンツプロバイダによってホストされている少なくとも１つのデータベースに格納されたデータに対する複数のデータ要求を受信し管理する、ネットワークを介して前記コンテンツプロバイダと前記データの消費者との間に通信可能に接続された管理ユニットによって実施される方法であって、
前記複数のデータ要求への応答に関連した応答性能の特性評価を決定するステップと、
前記応答性能の特性評価に関連したリソース要求を前記コンテンツプロバイダへ送信するステップであって、前記リソース要求を含んだAPI(Application Programming Interface)コールを前記コンテンツプロバイダに送信するステップを含む、ステップと、
前記コンテンツプロバイダから、前記データを提供するための前記コンテンツプロバイダによって割り当てられた１つまたは複数の追加リソースに関する１つまたは複数の位置を特定する応答を受信するステップと、
を含む方法。
【請求項２】
前記割り当てられた１つまたは複数の追加リソースは複製データベースを含む、請求項１に記載の方法。
【請求項３】
前記コンテンツプロバイダからスケーラビリティインターフェースを介してスケーラビリティ入力を受信するステップであって、前記割り当てられた１つまたは複数の追加リソースに関連した命令を前記コンテンツプロバイダから受信することを含むステップをさらに含む、請求項１に記載の方法。
【請求項４】
コンテンツプロバイダによってホストされているコンテンツプロバイダデータを示すデータ使用状況を決定するステップであって、前記データ使用状況は前記コンテンツプロバイダデータに対する複数の要求に基づくものであり、前記複数の要求は、ネットワークを介して前記コンテンツプロバイダと前記コンテンツプロバイダデータの消費者との間に通信可能に接続された管理ユニットによって受信され管理される、ステップと、
前記データ使用状況の少なくとも１つの態様を前記コンテンツプロバイダに表示するスケーラビリティインターフェースを介して、前記コンテンツプロバイダからの入力を受信するステップであって、前記コンテンツプロバイダからビジネス指標を受信するステップを含む、ステップと、
前記ビジネス指標をスケーラビリティ指標に変換するステップと、
前記入力に応答して前記コンテンツプロバイダデータを提供するための１つまたは複数の追加のデータ可用性リソースを割り当てるステップであって、前記スケーラビリティ指標に基づいて前記１つまたは複数の追加のデータ可用性リソースを割り当てるステップを含む、ステップと、
前記割り当てられた１つまたは複数の追加のデータ可用性リソースに関する１つまたは複数の位置の特定を前記管理ユニットに提供するステップと、
を含む方法。
【請求項５】
前記ビジネス指標を受信するステップは、前記コンテンツプロバイダデータに関連した需要と、スケールされた量の前記コンテンツプロバイダデータをホストするコストとのうちの少なくとも１つに関連した指標を受信するステップを含み、
前記変換するステップは、前記ビジネス指標を、単位時間あたりのクエリ数または単位時間あたりのデータトランズアクション数を処理する能力に関連した能力指標に変換するステップを含む、
請求項４に記載の方法。
【請求項６】
前記入力を受信するステップは、所与のビジネス指標の乗数を受信するステップを含み、
前記変換するステップは、前記乗数に基づいて前記スケーラビリティ指標を変換するステップを含む、
請求項４に記載の方法。
【請求項７】
前記スケーラビリティインターフェースを介して前記入力を受信するステップは、前記スケーラビリティインターフェースの可変乗数ユーザインターフェース要素を介して、前記コンテンツプロバイダからの入力を受信するステップを含む、請求項６に記載の方法。
【請求項８】
前記スケーラビリティインターフェースを介して前記入力を受信するステップは、前記スケーラビリティインターフェースを介して前記データ使用状況の少なくとも１つの態様のグラフィカル表現との対話から入力を受信するステップを含む、請求項４に記載の方法。
【請求項９】
コンテンツプロバイダによってホストされている少なくとも１つのデータベースに格納されたデータに対する複数のデータ使用要求を受信し管理する、ネットワークを介して前記コンテンツプロバイダと前記データの消費者との間に通信可能に接続された管理ユニットによって実施され、情報のスケーラブルな可用性を促進する方法であって、
前記データ使用要求への応答に関連した応答性能の特性評価に基づいてAPI(Application Programming Interface)コールを生成するステップと、
前記APIコールを前記コンテンツプロバイダに送信するステップと、
前記データをホストするためのリソースのスケールが前記応答性能の特性評価に基づいて実行されたか否かを示すとともに、さらに前記データを提供するための前記コンテンツプロバイダによって割り当てられた１つまたは複数の追加リソースに関する１つまたは複数の位置を示す前記APIコールへの応答を、前記コンテンツプロバイダから受信するステップと、
を含む方法。
【請求項１０】
前記生成するステップは、複数の階層化された性能閾値に基づく前記応答性能の階層化された特性評価に従って前記APIコールを生成するステップを含む、請求項９に記載の方法。
【請求項１１】
警告閾値のトリガを検出するステップをさらに含み、
前記APIコールを送信するステップは、前記応答性能の前記特性評価に関連した警告メッセージを送信するステップを含む、請求項１０に記載の方法。
【請求項１２】
強制スケール閾値のトリガを検出するステップをさらに含み、
前記APIコールを送信するステップは、前記応答性能の前記特性評価に関連した強制スケールメッセージを送信するステップを含む、請求項１０に記載の方法。
【請求項１３】
前記APIコールを送信するステップは、前記データの複製の現在の数、前記強制スケール閾値の前記トリガに関連した応答時間、または平均応答時間のうち少なくとも１つの表示のうち、少なくとも１つを送信するステップを含む、請求項１２に記載の方法。
【請求項１４】
前記応答は、前記データの複製の新たな数、またはスケール処理手順の状況のうち少なくとも１つをさらに示す、請求項１２に記載の方法。
【請求項１５】
ポリシ修正閾値のトリガを検出するステップをさらに含み、
前記データ使用要求を処理するステップは、前記データ使用要求に関連したキャッシュポリシを修正するステップを含む、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、IaaS(Information as a Service)の提供に関連してデータの可用性を促進するためにリソースをスケールする参照データサービスのための可用性管理に関し、より詳細にはデータ使用要求への応答に関連した応答性能を監視し、応答性能の特性評価を確定し、特性評価に基づいてリソースのスケールを促進する参照データサービスのための可用性管理に関する。
【背景技術】
【０００２】
幾つかの従来型のシステムに関わる背景として、伝統的に、コンピューティング装置は、情報、関連したアプリケーションおよびデータサービスを装置に対してローカルに格納していた。しかし、オンラインとクラウドサービスの発展とともに、情報はますます、装置の代わりに、サービスを実施しないかまたはサービスの一部または全部を実施する、ネットワークプロバイダに移されつつある。テラバイトのデータ（将来はペタバイト、エクサバイト等のデータになる可能性がある）を格納できるネットワークストレージファームの発展により、主装置と外部ストレージとを分離して、ローカルでのシナリオをクラウドで模倣する機会がもたらされた。
【０００３】
しかしながら、どのクラウドサービスまたはネットワークストレージプロバイダでも、関与する全ての関係者に対して追跡し監査できるように、発行者、開発者および消費者があらゆる種類のデータを容易に発行し、あらゆる種類のデータをアプリケーションに特化させ、あらゆる種類のデータを使用できるように、Iaasを任意のプラットフォーム上で効果的に提供することはできない。加えて、今日では、異なるコンテンツプロバイダおよび、典型的データを定義するための独占的な枠組みがあり、異なるコンテンツプロバイダは、クラウドへの自己の発行行動をお互いに調整しないので、このような無数の発行行動の結集力を利用する機会がほとんどない。
【０００４】
ウェブサービスは典型的にある特定の顧客数を想定して構築されており、データサービスをホストして利用可能にするデータセンタ／情報基盤が、これらの目標を想定して構築され、調達されている。しかしながら、ウェブサービスがより人気になると、処理容量の増大により読み取るべき要求があまりに多くなり、その結果サービスが停止するおそれがある。即ち、要求の増加に適切に応答するためのリソースが不十分な場合がある。同様に、データ処理容量が減少する状況において、コンテンツプロバイダがリソースを過度に割り当てることがあり、その結果、コンテンツプロバイダが未使用のリソースへの料金を不必要に支払うこととなる。結果として、今日では、ウェブサービスでのデータの顕著な需要の増加または減少を取り扱うことは、共通解のない断片化された問題である。
【０００５】
今日の装置およびデータサービスの上述した欠点は、単に、従来型のシステムの問題の一部の概要を提供しようとするものであり、包括的であることを意図するものではない。
最先端技術に関する他の問題、および様々な非限定的な実施形態の一部の対応する利点は、下記の発明を実施するための形態を検討すればさらに明らかになろう。
【発明の概要】
【０００６】
ここでは、簡潔な概要を提供して、より詳細な説明および添付図面に従う例示的で非限定的な諸実施形態の様々な態様の基本的または一般的な理解を可能にするよう支援する。しかしながら、この概要は、広範囲な概要として意図したものでも包括的な概要として意図したものでもない。寧ろ、この概要の唯一の目的は、幾つかの例示的で非限定的な実施形態に関する幾つかの概念を、下記の様々な実施形態のより詳細な説明に対する前置きとして簡潔な形で提示することである。
【０００７】
１つまたは複数の実施形態と対応する開示に従って、様々な非限定的な態様を、任意のプラットフォームからIaasを提供することと関連して説明する。一態様においては、情報のスケーラブルな可用性を促進する方法を提供する。方法は、コンテンツプロバイダに関連したデータの消費に対する複数の要求を受信することを含む。本実施形態はさらに、複数の要求への応答に関連した応答性能を監視すること、ならびに、応答性能の特性評価を決定することを含むことができる。そして、データに割り当てられたリソースのスケールを、特性評価に基づいて促進する。
【０００８】
別の態様において、情報のスケーラブルな可用性を促進するための方法を提供する。コンテンツプロバイダとサーバとの間の通信を確立し、データ使用状況を確定する。ここで、データ使用状況とは、サーバを経由して使用されたコンテンツプロバイダのデータを示すものである。方法はさらに、コンテンツプロバイダにスケーラビリティインターフェースを提供することを含むことができる。本実施形態では、スケーラビリティインターフェースは、データ使用状況の少なくとも一態様をコンテンツプロバイダに対して表示し、また、コンテンツプロバイダから入力を受信する。次に、コンテンツプロバイダに関連したデータ可用性リソースの割り当てを入力に応答して修正する。
【０００９】
さらに別の態様では、情報のスケーラブルな可用性を促進する追加の方法を提供する。本実施形態は、データ使用要求への応答に関連した応答性能を監視することを含む。ここで、データ使用要求とは、コンテンツプロバイダによってホストされるデータに対する要求である。方法はさらに、応答性能の特性評価に基づいてAPI(Application Programming Interface)コールを生成すること、および当該APIコールをコンテンツプロバイダに送信することを含む。次いで、APIレスポンスをコンテンツプロバイダから受信する。当該APIレスポンスは、データをホストするためにリソースのスケーリングが実行されたか否かを示すものであり、その結果、データ使用要求の処理がリソースのスケーリングに従って修正される。
【００１０】
他の実施形態および様々な非限定的な例、シナリオ、および実装形態については下記でより詳細に説明する。
【図面の簡単な説明】
【００１１】
【図１】一実施形態にかかる、リソースのスケーリングを促進する例示的なシステムを示す図である。
【図２】一実施形態にかかる、リソースのスケーリングを促進する例示的なリソース管理ユニットを示すブロック図である。
【図３】一実施形態にかかる、リソースのスケーリングのための例示的で非限定的な実施形態を示すフローチャートである。
【図４】一実施形態にかかる、リソースのスケーリングを促進する例示的なインターフェースを示す図である。
【図５】一実施形態にかかる、リソースのスケーリングを促進する例示的なスケーラビリティインターフェースを示すプロック図である。
【図６】一実施形態にかかる、リソースのスケーリングを促進するインターフェースを提供するための例示的で非限定的な実施形態を示すフローチャートである。
【図７】一実施形態にかかる、リソースの外部的なスケーリングを促進する例示的なシステムを示す図である。
【図８】一実施形態にかかる、リソースのスケーリングを促進する例示的なAPI(Application Programming Interface)ユニットを示すブロック図である。
【図９】一実施形態における、リソースをスケーリングするための例示的で非限定的な実施形態を示すフローチャートである。
【図１０】任意のプラットフォームから提供されるIaaSに対する非限定的な情報基盤のための例示的なシーケンスを示すフローチャートである。
【図１１】任意のプラットフォームから提供されるIaaSに対する例示的で非限定的な情報基盤を示すブロック図である。
【図１２】任意のプラットフォームから提供されるIaaSに対する情報基盤のための例示的で非限定的な一組の実装形態の具体的な詳細を示すブロック図である。
【図１３】任意のプラットフォームから提供されるIaaSに対する例示的な情報基盤からの例示的なデータ使用を示す図である。
【図１４】本明細書で説明する様々な実施形態を実装できる例示的で非限定的なネットワーク環境を表すブロック図である。
【図１５】本明細書で説明する様々な実施形態の１つまたは複数の態様を実装できる例示的で非限定的なコンピューティングステムまたは動作環境を表すブロック図である。
【発明を実施するための形態】
【００１２】
概要
背景技術で論じたように、ウェブサービスは典型的に所定の顧客数を想定して構築されており、データサービスをホストして利用可能にするデータセンタ／情報基盤がこれらの目標を想定して構築され、提供されている。しかしながら、ウェブサービスがより人気になると、処理容量の増大により読み取るべき要求があまりに多くなり、その結果サービスが停止するおそれがあり、この場合、応答を処理するためのリソースが不十分であるか、または、他の予測不可能な変動が生じる可能性がある。グローバルな情報市場が望まれる場合、このような市場のアーキテクチャにとっては、データが管理システムの内部でホストされているか外部でホストされているかに関わらず、データセンタを必要に応じてスケールアップまたはスケールダウンするための方法をコンテンツプロバイダに提供することにより、これらの制約を克服することが望ましいはずである。
【００１３】
本明細書で開示される様々な実施形態は、スケールアウトシステムおよび方法、ならびに、コンテンツプロバイダと通信してこのようなリソースのスケールを促進するために使用されるインターフェース、ならびにこのようなシステム、方法、およびインターフェースに付随する通信に関する。
【００１４】
リソーススケーリングシステム
図１は、任意のプラットフォームから提供されるIaasに関連したリソースのスケールを促進する例示的なシステムを図示する。図示したように、システム１００は、リソース管理ユニット１２０、消費者１３０、およびコンテンツプロバイダ１４０を含むことができ、これらはネットワーク１１０を介して通信可能に接続される。リソース管理ユニット１２０は、コンテンツプロバイダ１４０に関連付けられたデータに対する利用者１３０からのデータ使用要求を管理するように構成されている。さらに、リソース管理ユニット１２０は、特定のコンテンツプロバイダに対応するデータ使用要求の量および／または使用要求の状況を監視することができ、次いでかかるデータに割り当てられたリソースを適切にスケールすることができる。例えば、コンテンツプロバイダのデータをリソース管理ユニット１２０によりホストする場合は、内部のスケール動作を実施することができ、スケーラブルデータベース１２２は適切に削除および／または複製される。しかしながら、使用されるデータがコンテンツプロバイダ１４０および／またはサードパーティによりホストされる場合は、リソース管理ユニット１２０はコンテンツプロバイダ１４０に応答時間の低下および／または急増を通知し、コンテンツプロバイダ１４０がそれに応じてデータベースを削除および／または複製、例えば、追加のデータベースインスタンスを生成できるようにすることができる。
【００１５】
次に図２を参照すると、一実施形態にかかる、情報のスケーラブルな可用性を促進する例示的なリソース管理ユニットのブロック図が提供されている。示されているように、リソース管理ユニット２００は、プロセッサコンポーネント２１０、メモリコンポーネント２２０、通信コンポーネント２３０、監視コンポーネント２４０、評価コンポーネント２５０、スケーリングコンポーネント２６０、生成コンポーネント２７０、および課金コンポーネント２８０を含むことができる。
【００１６】
一態様においては、プロセッサコンポーネント２１０は、複数の機能のうち何れかを実施することに関するコンピュータ読取可能命令を実行するように構成されている。プロセッサコンポーネント２１０は、リソース管理ユニット２００から通信される情報を分析し、ならびに／あるいはメモリコンポーネント２２０、通信コンポーネント２３０、監視コンポーネント２４０、評価コンポーネント２５０、スケーリングコンポーネント２６０、生成コンポーネント２７０、および／または課金コンポーネント２８０によって利用可能な情報を生成するのに特化した、単一のプロセッサまたは複数のプロセッサでとすることができる。追加または代替として、プロセッサコンポーネント２１０を、リソース管理ユニット２００の１つまたは複数のコンポーネントを制御するように構成することができる。
【００１７】
別の態様においては、メモリコンポーネント２２０は、プロセッサコンポーネント２１０に接続され、およびプロセッサコンポーネント２１０が実行するコンピュータ読取可能命令を格納するように構成される。メモリコンポーネント２２０は、通信コンポーネント２３０、監視コンポーネント２４０、評価コンポーネント２５０、スケーリングコンポーネント２６０、生成コンポーネント２７０、および／または課金コンポーネント２８０のうち何れかによって生成されたデータを含め、複数の他の種類のデータのうち何れかを格納するように構成されることもある。メモリコンポーネント２２０は、ランダムアクセスメモリ、バッテリバックアップメモリ、ハードディスク、磁気テープ等を含め、幾つかの異なる態様で構成されることができる。圧縮自動バックアップ、例えばRAID(Redundant Array of Independent Drives)構成の利用といった様々な機能を、メモリコンポーネント２２０に実装することもできる。
【００１８】
さらに別の態様では、リソース管理ユニット２００は通信コンポーネント２３０を含み、通信コンポーネント２３０は、プロセッサコンポーネント２１０に接続され、リソース管理ユニット２００と外部エンティティとのインターフェースとなるように構成される。例えば、通信コンポーネント２３０は、特定のコンテンツプロバイダに関連したデータのデータ使用要求を受信するように構成されることができる。
【００１９】
図示したように、リソース管理ユニット２００はさらに、監視コンポーネント２４０および評価コンポーネント２５０を備えることができる。このような実施形態において、監視コンポーネント２４０はデータ消費要求への応答に関連した応答性能を監視するように構成され、一方、評価コンポーネント２５０は応答性能の特性評価を確定するように構成される。
【００２０】
リソース管理ユニット２００はまた、スケーリングコンポーネント２６０を含むこともでき、スケーリングコンポーネント２６０は、上記特性評価に基づいてデータに割り当てられたリソースのスケーリングを促進するように構成される。この目的のため、スケーリングコンポーネント２６０は、複数の方法のうち何れかでこのようなスケーリングを促進するように構成できることに留意されたい。例えば、スケーリングコンポーネント２６０を、リソース管理ユニット２００の外部で実施されるリソースのスケールを促進するように構成できることが想定されている。実際、コンテンツプロバイダ自身が自己のデータをホストできることが想定されているので、スケーリングコンポーネント２６０は、応答性能状況メッセージを生成するように構成されることができ、当該応答性能状況メッセージは、通信コンポーネント２３０を介してコンテンツプロバイダに送信される。特定の実施形態においては、生成コンポーネント２７０が含まれることがあり、生成コンポーネント２７０は、コンテンツプロバイダに対するAPI(Application Programming Interface)コールを生成するように構成されることができる。APIコールは、応答性能の少なくとも１つの態様に関連した要求、例えば、警告メッセージ、強制スケールメッセージ等を含む。次いで、要求に対するAPIレスポンスをコンテンツプロバイダから受信することができ、当該APIレスポンスは、例えば、コンテンツプロバイダによって割り当てられた追加のデータベースの位置など、データに関連したスケールされた位置のセットを特定する。
【００２１】
スケーリングコンポーネント２６０は、しかしながら、リソース管理ユニット２００内部で実施されるリソースのスケールを促進するように構成されることもできる。このような実施形態では、スケーリングコンポーネント２６０が、複製のデータベースを削除および／または追加することでリソースをスケールするよう構成されるように、リソース管理ユニット２００は、コンテンツプロバイダのデータを一組の複製されたデータベース内でホストする。コンテンツプロバイダに割り当てられたリソースのスケールに関連した命令を、コンテンツプロバイダから受信することを促進するために、スケーラビリティインターフェースをコンテンツプロバイダに提供することもできる。
【００２２】
さらなる別の態様においては、リソース管理ユニット２００は課金コンポーネント２８０を含む。このような実施形態では、課金コンポーネント２８０は、コンテンツプロバイダに割り当てられたリソースのスケーリングを収益化するように構成することができる。さらに、リソースをスケールアップまたはスケールダウンすることに関連したコストを自動的に定量化できることが想定されている。したがって、リソースのスケーリングに関連した実際のおよび／または仮定的なコストを、課金コンポーネント２８０を介して容易に利用可能とすることができる。
【００２３】
図３は、一実施形態にかかる、リソースのスケーリングのための例示的で非限定的な実施形態を示すフローチャートである。３００において、コンテンツプロバイダに関連したデータの使用に対する要求を受信する。次に、３１０において、要求への応答に関連した応答性能を監視し、次いで３２０において、応答性能の特性評価を行う。次に３３０において、特性評価に基づいて、データに割り当てられたリソースのスケーリングを促進する。
【００２４】
図４は、一実施形態にかかる、リソースのスケールを促進する例示的なインターフェースを図示する。図示されるように、インターフェース４００はディスプレイ４１０、制御パネル４２０、およびスケール調整４３０を含むことができる。この特定の実施形態では、インターフェース４００をコンテンツプロバイダに提供して、その結果、コンテンツプロバイダが必要に応じてリソースをシームレスにスケールすることができると想定されている。この目的のため、ディスプレイ４１０を、現在、将来、または過去のいずれかに、データ使用要求を処理することに関連した様々な態様のうち何れかを表示するように構成することができる。例えば、図示されているように、時間に対する受信したデータ要求数のグラフィカル表現を表示することができる。次に、制御パネル４２０を使用して、例えば、異なるビジネス指標（例えば、データ要求数ではなく、時間に対するコスト）および／または異なるディスプレイタイプ（例えば、様々なグラフタイプ）を含め、異なるパラメータを切り替えることができる。
【００２５】
図示されたように、インターフェース４００はスケールリング調整４３０も含むことができる。ここで、コンテンツプロバイダは、例えばコスト、要求数等のビジネス指標の観点からリソースをスケールすることを好み得るので、スケーリング調整４３０を含めることができ、この場合、コンテンツプロバイダは必要に応じて、単に乗数つまみ４３４をスケーリング調整４３０上でスライドさせる。例えば、ベースラインインジケータ４３２を提供することができ、この場合、乗数つまみ４３４を右にスライドするとビジネス指標乗数が増大、例えばリソースがスケールアップし、乗数つまみ４３４を左にスライドするとビジネス指標乗数が減少、例えばリソースがスケールダウンする。
【００２６】
次に図５を参照すると、図５に係るブロック図は、様々な態様に従ってリソースのスケーリングを促進する例示的なスケーラビリティインターフェースを図示する。図示されたように、スケーラビリティインターフェース５００は、プロセッサコンポーネント５１０、メモリコンポーネント５２０、ステータスコンポーネント５３０、ディスプレイコンポーネント５４０、入力コンポーネント５５０、修正コンポーネント５６０、および変換コンポーネント５７０を含むことができる。
【００２７】
リソース管理ユニット２００におけるプロセッサコンポーネント２１０と同様、プロセッサコンポーネント５１０は、複数の機能のうち何れかの実施に関するコンピュータ読取可能命令を実行するように構成されている。プロセッサコンポーネント５１０は、スケーラビリティインターフェース５００から通信される情報を分析し、ならびに／あるいはメモリコンポーネント５２０、ステータスコンポーネント５３０、ディスプレイコンポーネント５４０、入力コンポーネント５５０、修正コンポーネント５６０、および／または変換コンポーネント５７０によって利用可能な情報を生成するのに特化した単一のプロセッサまたは複数のプロセッサであることができる。追加または代替として、プロセッサコンポーネント５１０を、スケーラビリティインターフェース５００の１つまたは複数のコンポーネントを制御するように構成することができる。
【００２８】
別の態様においては、メモリコンポーネント５２０は、プロセッサコンポーネント５１０に接続され、およびプロセッサコンポーネント５１０が実行するコンピュータ読取可能命令を格納するように構成される。メモリコンポーネント５２０は、ステータスコンポーネント５３０、ディスプレイコンポーネント５４０、入力コンポーネント５５０、修正コンポーネント５６０、および／または変換コンポーネント５７０のうち何れかにより生成されたデータを含め、複数の他の種類のデータのうち何れかを格納するように構成されることもできる。ここで、メモリコンポーネント５２０は、リソース管理ユニット２００におけるメモリコンポーネント２２０と類似のものであることに留意されたい。したがって、メモリコンポーネント２２０の前述の機能／構成の何れもメモリコンポーネント５２０に適用可能であることは理解されよう。
【００２９】
図示されたように、スケーラビリティインターフェース５００は、ステータスコンポーネント５３０およびディスプレイコンポーネント５４０も含み得る。このような実施形態では、ステータスコンポーネント５３０は使用されたコンテンツプロバイダのデータを示すデータ使用状況を確定するように構成され、一方、ディスプレイコンポーネント５４０はデータ使用状況の様々な態様のうち何れかをコンテンツプロバイダに対して表示するように構成される。ここで、このようなデータ使用状況の態様を複数の方法のうち何れかで表示できることが想定されている。例えば、ディスプレイコンポーネント５４０を、データ使用状況のグラフィカル表現、例えば、時間に対するデータ要求数を追跡する棒グラフを提供するように構成することができる。
【００３０】
スケーラビリティインターフェース５００はさらに、入力コンポーネント５５０および修正コンポーネント５６０を含み得る。このような実施形態では、入力コンポーネント５５０はコンテンツプロバイダからの入力を受信するように構成され、一方、修正コンポーネント５６０は入力に応答してコンテンツプロバイダに関連したデータ可用性リソースの割り当てを修正するように構成される。このような修正を促進するために、スケーラビリティインターフェース５００は変換コンポーネント５７０も含むことができ、当該変換コンポーネント５７０は、スケーラビリティ指標とビジネス指標との間での変換を実行するように構成される。さらに、特定のビジネス指標は対応するスケーラビリティ指標に変換可能であり、特定のスケーラビリティ指標は対応するビジネス指標に変換可能である。一態様においては、スケーラビリティ指標は、コンテンツプロバイダのデータ使用の処理に直接的に関連する複数の指標のうち何れか、例えば、時間単位あたりのクエリ数を処理する能力に関連付けることができ、一方、ビジネス指標は、複数のビジネス関連指標のうち何れか、例えば、コンテンツプロバイダのデータに関連した需要、スケールされた量のコンテンツプロバイダのデータをホストするコスト等に関連付けることができる。実際、コンテンツプロバイダはスケーラビリティ指標よりもビジネス指標の入力を好み得るので、このような指標の間を切り替えるための様々なツールを提供することができる。例えば、一態様においては、入力コンポーネント５５０を、コンテンツプロバイダの入力を所望のビジネス指標の乗数として受信するように構成することができ、変換コンポーネント５７０は、当該乗数に基づいて所望のビジネス指標を対応するスケーラビリティ指標に変換するように構成される。この目的のため、入力コンポーネント５５０を乗数つまみとして実装することができ、乗数は、当該乗数つまみを介してコンテンツプロバイダから確定することができる。
【００３１】
図６は、一実施形態にかかる、リソースをスケーリングするユーザインターフェースを提供するための例示的で非限定的な実施形態を示すフローチャートである。６００において、コンテンツプロバイダとサーバとの間の通信を確立する。次に６１０において、サーバを介して使用されたコンテンツプロバイダのデータを示すデータ使用状況を確定する。データ使用状況は、サーバを介して使用されたコンテンツプロバイダのデータを示す。次に６２０において、スケーラビリティインターフェースをコンテンツプロバイダに提供するが、スケーラビリティインターフェースは、データ使用状況の諸態様を表示し、また、コンテンツプロバイダからの入力を受信する。次に６３０において、入力に応答して、コンテンツプロバイダに関連したデータ可用性リソースの割り当てを修正する。
【００３２】
図７は、一実施形態にかかる、リソースの外部的なスケールを促進する例示的なシステムを示す。この特定の実施形態では、リソース管理ユニット７１０は、コンテンツプロバイダ７２０および／またはサードパーティによって、スケーラブルデータベース７２２内部でホストされるデータに対するデータ使用要求を管理するように構成される。さらに、リソース管理ユニット７１０は、コンテンツプロバイダのデータの使用に関連した応答性能をコンテンツプロバイダ７２０に通知するように構成されることができ、これにより、コンテンツプロバイダ７２０がそれに応じてスケーラブルデータベース７２２を削除および／または複製できるように。一態様においては、リソース管理ユニット７１０はAPIコールをコンテンツプロバイダ７２０に送信することができ、これらのAPIコールに対するAPIレスポンスが、続いてリソース管理ユニット７２０に提供される。例えば、特定の性能閾値を超過したことを示すAPIコールをコンテンツプロバイダ７２０に提供することができ、そしてこの場合、例えば、新たな複製されたデータベースの位置を提供するなど、スケーラブルデータベース７２２のスケーリングが実施されたかどうか／どのように実行されたかを示すAPIレスポンスを、リソース管理ユニット７１０に提供することができる。
【００３３】
次に図８を参照すると、ブロック図により、様々な態様にかかるリソースのスケーリングを促進する例示的なAPI(Application Programming Interface)ユニットを図示されている。図示されるように、ＡＰＩユニット８００は、プロセッサコンポーネント８１０、メモリコンポーネント８２０、監視コンポーネント８３０、生成コンポーネント８４０、通信コンポーネント８５０、およびトリガコンポーネント８６０を含むことができる。
【００３４】
それぞれリソース管理ユニット２００およびスケーラビリティインターフェース５００におけるプロセッサコンポーネント２１０および５１０と同様に、プロセッサコンポーネント８１０は、複数の機能のうち何れかを実施することに関連したコンピュータ読取可能命令を実行するように構成されている。プロセッサコンポーネント８１０は、APIユニット８００から通信される情報を分析し、ならびに／あるいはメモリコンポーネント８２０、監視コンポーネント８３０、生成コンポーネント８４０、通信コンポーネント８５０、および／またはトリガコンポーネント８６０によって利用可能な情報を生成するのに特化した単一のプロセッサまたは複数のプロセッサであることができる。追加または代替として、プロセッサコンポーネント８１０を、APIユニット８００の１つまたは複数のコンポーネントを制御するように構成することができる。
【００３５】
別の態様においては、メモリコンポーネント８２０は、プロセッサコンポーネント８１０に接続され、およびプロセッサコンポーネント８１０が実行するコンピュータ読取可能命令を格納するように構成される。メモリコンポーネント８２０は、監視コンポーネント８３０、生成コンポーネント８４０、通信コンポーネント８５０、および／またはトリガコンポーネント８６０のうち何れかによって生成されたデータを含め、複数の他の種類のデータのうち何れかを格納するように構成されることもできる。ここで、メモリコンポーネント８２０は、それぞれリソース管理ユニット２００およびスケーラビリティインターフェース５００におけるメモリコンポーネント２２０および５２０と類似のものであることに留意されたい。したがって、メモリコンポーネント２２０および５２０の前述の機能／構成の何れもメモリコンポーネント８２０に適用可能であることは理解されよう。
【００３６】
図示されるように、APIユニット８００は監視コンポーネント８３０および生成コンポーネント８４０を備えることもできる。このような実施形態において、監視コンポーネント８３０は、コンテンツプロバイダによってホストされるデータに対するデータ使用要求への応答に関連した応答性能を監視するように構成され、一方、生成コンポーネント８４０は、応答性能の特性評価に基づいてAPIコールを生成するように構成される。
【００３７】
別の態様において、APIユニット８００は通信コンポーネント８５０を備え、当該通信コンポーネント８５０は、プロセッサコンポーネント８１０に接続され、APIユニット８００と外部エンティティとのインターフェースとなるように構成される。例えば、通信コンポーネント８５０を、生成コンポーネント８４０によって生成されるAPIコールをコンテンツプロバイダに送信するように構成することができる。通信コンポーネント８５０を、コンテンツプロバイダからのAPIレスポンスを受信するように構成することもでき、この場合、このようなAPIレスポンスは、データをホストするためのリソースのスケーリングが実施されたかどうかを示す。このような実施形態では、続いて、データ使用要求の処理を、リソースのスケーリングに従って修正することができる。
【００３８】
別の態様では、APIコールが、応答性能の階層化された特性評価に従って生成／送信されることが想定されている。このような実施形態においては、トリガコンポーネント８６０を含めることができ、当該トリガコンポーネント８６０は、いつ応答性能が特定の特性評価を示すかを複数の階層化された性能閾値のうち何れかに基づいて判定するように構成される。例えば、トリガコンポーネント８６０は、警告閾値のトリガを検出するように構成され、この場合、APIコールは、応答性能が所定の「警告」閾値、例えば２５％の低下を超過したことを示す警告メッセージを含む。
【００３９】
トリガコンポーネント８６０を、強制スケーリング閾値のトリガを検出するように構成することもでき、この場合、APIコールは、応答性能が所定の「強制スケーリング」閾値、例えば５０％の低下を超過したことを示す強制スケーリングメッセージを含む。ここで、このような強制スケール閾値を促進するように、具体的な詳細事項をAPIコールおよび／またはAPIレスポンスに含めることができることに留意されたい。例えば、APIコールは、データの複製の現在の数の表示、強制スケーリング閾値のトリガに関連した応答時間、および／または平均応答時間を含むことができ、一方、APIレスポンスは、データの複製の新たな数の表示、データに関連した新たなデータソースの位置、ならびに／あるいは、コンテンツプロバイダおよび／またはもしくはコンテンツプロバイダに関連したサードパーティによって実施されるスケーリング処理手順の状況を含むことができる。
【００４０】
より厳格な階層も想定されており、例えば５０％の低下も階層として想定される。例えば、トリガコンポーネント８６０を、ポリシ修正閾値のトリガを検出するように構成することができる。このような実施形態では、ポリシ修正閾値のトリガに応答して、データ使用要求の処理に、データ使用要求に関連したキャッシュポリシの修正を含めることができる。
【００４１】
図９は、一実施形態にかかる、リソースをスケールするユーザインターフェースを提供するための例示的で非限定的な実施形態を示すフローチャートである。９００において、データ使用要求への応答に関連した応答性能を監視する。この特定の実施形態について、データ使用要求は、コンテンツプロバイダによってホストされるデータに対する要求である。次いで９１０において、API(Application Programming Interface)コールを応答性能の特性評価に基づいて生成する。次に９２０において、APIコールをコンテンツプロバイダに送信する。次に９３０において、APIレスポンスをコンテンツプロバイダから受信するが、APIレスポンスは、データをホストするためにリソースのスケーリングが実施されたかどうかを示す。このような実施形態では、データ使用要求の処理をリソースのスケールに従って修正する。
【００４２】
IaaSに関する補足的なコンテキスト
以下の説明には、上述の実施形態の１つまたは複数の理解をさらに支援するための可能な非限定的な情報基盤、アーキテクチャ、および／または関連したサービスに関する補足的なコンテキストが含まれる。この節で説明する任意の追加の機能のうち任意の１つまたは複数を、任意のプラットフォームからのIaaSに対する、データセットの意味および対応するアクセスAPIの更新に関して上述した実施形態の任意の１つまたは複数に含めることができる。このような諸実施形態または諸機能の組合せが可能であるが、疑義を避けるため、本開示で説明した諸実施形態は、本明細書で説明した他のいずれかの実施形態に関する限定と考えられるべきではない。
【００４３】
幾つかの追加の背景として、今日では、情報をインターネットのようなネットワークを介して取得できるが、今日提供されるものはアクセスおよびフレームワークの点で独占的な所有物である傾向があり、従って、サードパーティプロバイダの参加という点で制限されている。例えば、現在、商用コンテンツのプロバイダが、このような商用コンテンツの価値の少なくとも一部を放棄しないで済む、自己のコンテンツデータを発行するための適切なビジネスモデルは存在しない。したがって、歴史的には、価値あるコンテンツの所有者はコンテンツを限定的で独占的な手段で公開する傾向にあった。あるいは、このようなコンテンツのストレージが、セキュアなクラウドストレージプロバイダにより提供される事例では、消費者が興味のある項目を結果として見つけるのに、何千ものテーブルをかき分ける場合には、ストレージ自体には殆ど価値がない。さらに、クラウドストレージプロバイダがデータを様々なプロバイダから収集しようとしても、このようなプロバイダはせいぜい、適度な、小規模の、または不完全なデータカタログを持っているに揃えられるに過ぎない。
【００４４】
当分野における潜在的な成長を阻害するものの多くは、取り扱い方法およびIP、例えば著作権に対する不信頼の結果である。手短に言えば、大企業はクラウドプロバイダに重要資産を委託しない。なぜならば、１回の情報漏洩でデータの価値がなくなる可能性があるからである。さらに、このようなこれまでのクラウドプロバイダは、自己の情報ニーズについてこのようなデータから価値を抽出したい情報労働者に対しては弱い立場にあったり、加えてこのようなシステムの独占的な性質のため、開発者はこれまでは情報機能を開発するためのツールを拡張することがほとんどできなかった。
【００４５】
したがって、１つまたは複数の実施形態について説明したように、あらゆるクラスの個人、即ち、発行者、開発者、情報労働者、および消費者に適合するIaaSに対する情報基盤を提供する。情報基盤は、情報探索、例えば、構造化されたブロブデータセットを発見、取得、使用する能力を可能にし、任意のスクリーンサイズなど任意のプラットフォームおよび任意のフォームファクタにおいて、任意のアプリケーションを強化することを可能にする。情報基盤により、さらに、仲介ビジネス、例えばパートナ主導型の世界規模なエコシステム(partner driven ecosystem and global reach)が、データおよび機能を開発者および情報労働者に提供することが可能となる。そして、情報基盤では、分析およびレポートが可能となり、例えばシングルクリック分析により秘密データを公開データで補完することができる。この点、情報基盤の様々な実装のオープンな性質のため、あらゆるアプリケーション開発者は、データの発行、処理、問合せ、および／または取り出しを促進するためのモバイルアプリケーション、クラウドアプリケーション、および／またはデスクトップアプリケーションを開発することができる。
【００４６】
アプリケーションを書くために、アカウント情報を登録することができ、例えばLiveIDでサインインし、アカウント鍵により、本明細書で１つまたは複数の実施形態について説明したIaaSに対する情報基盤に対して可能となる、構造化されたリアルタイムなウェブサービスを介して、「ブロブ」にアクセスするアカウント鍵を提供することができる。一態様では、開発者は、コーディングを開始する前にAPIを視覚的に調査することができる。例えば、サービスエクスプローラモジュールまたは一組のモジュールは、開発者が視覚的にREST(REpresentational State Transfer)APIクエリを構築し、様々なパッケージに従ってコンテンツをプレビューするのに使用されることができる。様々なパッケージには、これらには限定されないが、例えば構造化データに対しては、XML(EXtensible Markup Language)、ATOM、（ブロブおよびリアルタイムなコンテンツに対する）RAW、またはテーブルのビューがある。例えば、開発者は単に自己のアカウント鍵を提供して、コンテンツをプレビューすることを選択するだけである。
【００４７】
従って、開発者は、モバイルアプリケーション、デスクトップアプリケーション、またはサービスアプリケーションを任意のプラットフォームで構築することができる。結果のRESTクエリを新たな開発者アプリケーションにコピーすることができ、そして、IaaSに対する情報基盤では、自動生成されたC#プロキシクラスを使用する能力により、ローカルオブジェクトモデルを作成する必要性またはXMLもしくはウェブサービスのコードの詳細を生成し理解する必要性を排除することができる。この点、別の非限定的な有益な態様では、開発者がプロキシクラスをダウンロードすることができ、それらを開発者のアプリケーションに含めて、サービスデータを出来るだけ少ない行数のコードで使用することができる。
【００４８】
この点、IaaSに対する情報基盤の様々な実施形態では、開発者および情報労働者は、データを自分のアプリケーションおよび分析シナリオで即座に、定期的に、またはアプリケーション開発者によって指定された他の時間関数で、発見し、取得し、使用することができる。前述のように、開発者はアカウント鍵を取得し、これに続いて、コンテンツ要求および興味のあるコンテンツの申し込みについての１つまたは複数の実施形態に関して本明細書中で説明されたような、Iaasを可能とする、ネットワークサービスへのウェブサービスコールが行われる。
【００４９】
つまり、一態様では、本明細書において１つまたは複数の実施形態について説明したIaaSのための情報基盤によって提供されるアカウント鍵は、開発者の秘密鍵である。この鍵により、開発者のアプリケーションと関連して使用されるコンテンツに対する課金およびレポートが可能となる。したがって、この開発者の秘密鍵は目的なしに共有されるものではなく、モバイルまたはデスクトップのソリューションで実行されるネイティブアプリケーションを開発し鍵をデプロイメントの一部として統合しようと計画する場合には、鍵の安全性確保において予防措置を取るべきである。例えば、暗号ストレージを使用して、確実に鍵が解読されないようにすることができる。
【００５０】
コンテンツを使用するアプリケーションの追跡に使用されるアカウント鍵に加えて、ユーザIDは、開発者の個々のユーザを表すGUID(Globally Unique IDentifier)である一意のユーザIDとすることができる。このフィールドにより、ユーザ単位ベースでプログラム的に価格設定されるコンテンツに対して課金をすることができる。例えば、開発者がモバイルアプリケーションを開発し、個々のユーザがアプリケーションを使用している場合は、開発者は、要求が行われる度にユーザに代わって同一のGUIDを返す。しかしながら、開発者がウェブポータルを開発し、様々なユーザの代わりにウェブサービス要求を発行している場合には、ポータルを訪問するユーザ毎に新たなGUIDを割り当てるのは開発者に任されている。例えば、各登録ユーザにGUIDを割り当てることができ、または、各IPアドレス／ポートの組合せにユーザID、GUID等を割り当てることができる。
【００５１】
REST APIは、本明細書において１つまたは複数の実施形態について説明したIaaSのための情報基盤からコンテンツを使用する、任意のプラットフォームで構築することができ、そして一実施形態では、プロキシクラスをC#でサービスに対して動的に生成することができる。これを達成することは、オブジェクトモデルをダウンロードし、それを現在の開発者のプロジェクトに追加し、アカウントおよびユーザ値、例えば一意のユーザ値を更新することに関する問題である。
【００５２】
開発者が手動で要求を発行したい場合は、例を以下で提供するが、任意のサービスに対して、プレビュー機能を使用することができ、またはサービスエクスプローラから生成したURLを起動することもできる。サンプルのデータセットに対する例示的で非限定的なRESTクエリを以下に示す。一部または全部のコールは、セキュアなSSL(Secure Socket Layer)である得ることに留意されたい。
https://api.sqlazureservices.com/UnService.svc/UNESCO(120) 
【００５３】
"$accountKey" および"$uniqueUserld"要素も要求のヘッダに置かれ、これらは、例えば以下のように見える。
$accountKey={developer account key}
$uniqueUserID={a GUID representing the user}
【００５４】
"$accountKey"の値は、アカウントタブに存在する開発者のアカウント鍵を表し、"$uniqueUserlD"の値はサービスにアクセスするユーザのGUIDを表す。
【００５５】
上述の認証アプローチの例は、他の認証アプローチも可能であるという点で非限定的であり、したがって、本明細書で説明した様々な実施形態で任意の代替的な認証アプローチを実装することができる。例えば、AccountKeyをパスワードとして用いる基本認証(RFC 1945)、トークンベースのアプローチを用いたACS(Access Control Server)、または他のトークンベースのアプローチを使用することもできる。
【００５６】
したがって、本明細書における１つまたは複数の実施形態について説明したIaaSに対する情報基盤は、開発者および情報労働者が、任意のプラットフォームで貴重なデータサブスクリプションを容易に発見し、購入し、管理できるようにする新たなサービスまたはフレームワークである。情報基盤は、データ、画像、およびリアルタイムなウェブサービスを、有数の商用データプロバイダおよび権威ある公的なデータソース、ならびに非権威的な発行者から、共通のプロビジョニングおよび課金フレームワークのもとで統合された単一または複数の場所にまとめる、情報市場である。さらに、開発者および情報労働者はこの貴重なコンテンツを事実上任意のプラットフォーム、アプリケーションまたはビジネスワークフローで使用することができる。
【００５７】
本明細書における１つまたは複数の実施形態について説明したIaaSに対する情報基盤を使用するための幾つかの例示的で非限定的なシナリオには、(a)消費者およびビジネスのシナリオに対する次世代の「キラーアプリケーション」に対する貴重なコンテンツを発見すること、(b)既存のアプリケーションまたはレポートを改善するための価値のあるデータを発見しライセンスを与えること、(c)異なるデータセットを独創的な方法でまとめて、ビジネスの性能およびプロセスについての新たな見識、例えば集約アルゴリズムを得ること、(d)ブロブ、構造化データ、リアルタイムなウェブサービスに関する全てのコンテンツプロバイダにわたって即座かつ視覚的にAPIを開発 すること、ならびに(e)リッチなレポートおよび分析向けの、既存のワードプロセッサ、スプレッドシート、データベースクエリシステム等、既存のアプリケーションおよびデータベースシステムの内部でサードパーティのデータを使用すること、が含まれる。
【００５８】
開発者に対する利点には、(a)試行的なサブスクリプションにより、データロイヤリティを支払うことなく、コンテンツを調査しアプリケーションを開発できること、(b)単純なトランザクションおよびサブスクリプションのモデルにより数百万ドルのデータセットに対する「従量課金制(pay as you go or grow)」のアクセスが可能となること、(c)データセットにわたる一貫したRESTベースのAPIにより任意のプラットフォームでの開発が促進されること、(d)APIの視覚的な構築および開発、結果のプレビュー、ならびに(e)自動的なＣ＃プロキシクラスによりインスタントオブジェクトモデル(instant object model)が提供され、冗長なXMLおよびウェブサービスのコードを書く必要がなくなることが含まれる。
【００５９】
情報労働者に対する利点には、(a)これには限定されないがExcelなどの既存のスプレッドシートソフトウェアにおけるデータで容易に作業するための、PowerPivotとの統合、(b)コンテンツを取得するための単純で予測可能なライセンスモデル、ならびに(c)SQL Server、SQL Azure Database、および他の既存の資産からのデータを使用する能力が含まれる。
【００６０】
コンテンツパートナに対する利益には、(a)ブロブデータ、構造化データ、または動的なウェブサービスにとらわれない容易な発行およびオンボーディングのプロセス、(b)選択されたプラットフォームにおける、例えばVisual Studioおよび.NETまたは他のランタイムシステム開発を介した、開発を容易にするための開発者用ツールの構築、(c)グローバルな開発者および情報労働者のコミュニティに対する開発者のコンテンツの公開、(d)既存のコンテンツ使用アプリケーション内部でのコンテンツ発見および統合、ならびに(e)スケーラブルなクラウドコンピューティングプラットフォームによる、全当事者に代わる記憶、提供、課金、およびレポート、が含まれる。
【００６１】
本明細書における１つまたは複数の実施形態について説明したIaaSに対する情報基盤の非限定的な実装形態では、リッチウェブサービスの幾つかの機能には、(a)コンテンツカタログ全体にわたってサービスを使用するためのセキュアなRESTベースのモデル、(b)アクセスを簡略化するための、APIに組み込まれた動的ページネーション、(c)標準的なATOM1.0フィードが大部分のサービスに利用可能であること、ならびに(d)全てのサービスにわたる一貫した課金、プロビジョニング、および利用レポート、が含まれる。
【００６２】
本明細書における１つまたは複数の実施形態について説明したIaaSに対する情報基盤の非限定的な実装形態では、サービスエクスプローラのコンポーネントの幾つかの機能には、(a)開発を簡略化するために生成されたC#プロキシクラス、(b)タブ形式およびフィード、例えばサポートされる場合はATOM1.0フィードとしてのデータのプレビュー、(c)コンパイルされたサービスコールが返す結果を理解するためのサービスの起動、(d)ドキュメンテーションの発見およびパラメータごとのサンプル値の発見、ならびに(e)開発を容易にするための、サービスコールに対する視覚的に構築されたURLのクリップボードへの即時コピー、が含まれる。
【００６３】
本明細書における１つまたは複数の実施形態について説明したIaaSに対する情報基盤の非限定的な実装形態では、市場統合および発見ポータルのコンポーネントの幾つかの機能には、(a)消費者および企業を含む領域にわたる新たなデータの発見、(b)サービスサブスクリプションおよび利用の制限の管理、(c)サービスにアクセスするためのアカウント鍵の管理、ならびに(d)日付およびアカウント鍵でグループ化した、アクセスされたサービス／データセットを含む詳細なアクセスレポートが含まれる。
【００６４】
情報基盤は、コンテンツ所有者、アプリケーション開発者／ISV、情報労働者、および他の消費者／サブスクライバ(subscribers)に対して様々な価値提案を提供する。コンテンツ所有者にとって、データに課金しないデータプロバイダへの社会的な利益に加えて、この情報基盤は、（データに課金するデータプロバイダにとって）データからの収益化を可能とするが、他の方法でもこのようなデータを発行することからの利益を引き出すことができる。情報基盤の開放性のため、コンテンツ所有者は、データのより高い可用性、およびISVおよび使用者／情報労働者へのデータの到達性を享受し、これらの全ては、特に過去と同様の独占モデルを開発するよりもより低いコストで利益が得られる。
【００６５】
アプリケーション開発者／ISVにとって、情報基盤は、一貫した形式でのデータへのアクセス、データアクセスに対する可変で低コストの価格モデル、予測可能な価格設定、そのデータを用いて形成された、使用者／IWがアプリケーションを利用する消費者／IWからの利益見込み、任意のプラットフォームを通じた消費者へのより広い到達性、ならびに単一の課金およびデータソース、を可能とする。
【００６６】
情報労働者／消費者にとって、情報基盤は、アプリケーションからの付加価値、現在の大規模オブジェクト(LOB)またはIWソフトウェアにおけるデータ使用、単一の課金およびデータソースに加えてデータアクセスに対する可変で低コストの価格モデル、を可能とする。
【００６７】
したがって、情報基盤は、現在の顧客および開発者の痛点を潜在的に大幅な収入上昇をもって解決し、モデル化、レポート、分析、およびトレンド分析のための即時データ(instant data)を伴ったビジネスインテリジェンスの機会をもたらし、データ所有者が情報基盤を介して自分のデータを格納するように促すことで任意のプラットフォームの採択およびそれへの固執性をもたらし、それにより、従来式のクラウド記憶環境と比較した場合の情報基盤の価値提案を差別化する。
【００６８】
図１０のフローチャートに示すように、１０００においては、コンテンツの所有者または発行者が情報基盤を介してデータを発行する様々な方法が記載されている。１０１０において、開発者が情報基盤を介してデータを使用するためのアプリケーションを開発できるようにする様々なツールが存在する。１０２０において、消費者または情報労働者はアプリケーションを使用し、または、直接データに対して問合わせてデータを使用することができる。最後に、１０３０において、情報基盤は、コンテンツチェーンにおける全当事者に代わって自動的な管理、監査、課金等を可能とする様々なリッチなツールを提供し、これらはトランザクションモデルにより可能となる。
【００６９】
この点、情報基盤の一部の主要な当事者には、データ所有者、アプリケーション開発者／ＩＳＶ、および消費者／情報労働者が含まれる。一般に、データ所有者とは、データに課金したいか、または、他の理由により無償でデータを提供したいか、または、データに他の条件を強制したいエンティティである。次に、アプリケーション開発者／ＩＳＶとは、自分のアプリケーションを（例えば、広告を通じて、直接払い、間接払い等で）収益化したいか、または、自己に対する何らかの有益な理由から自分のアプリケーションを無償で提供したいエンティティである。情報労働者および使用者とは、生のデータを使用できる者、または、アプリケーション開発者が提供するアプリケーションを使用したいエンティティである。
【００７０】
図１１は、本明細書で説明したIaaSを提供するエコシステムに参加できる様々な当事者を一般的に示すブロック図である。例えば、一組のネットワークアクセス可能な情報サービス１１００が、データの機密性または他の特徴に応じて、様々な信頼されたまたは信頼されていないデータストア１１１０へのアクセスを提供する。図示されるように、したがって、エコシステムが任意の種類のデータ、ブロブ、構造化データ、構造化されていないデータ等をサポートするので、データストア、即ち１１１２、１１１４、．．．、１１１６のタイプはあまり重要ではない。先に述べたように、システムは、データをエコシステムに追加する発行者１１２０、データを使用するサブスクライバ１１３０、および自分達のアプリケーションでデータを使用することを支援するアプリケーション開発者またはプロバイダ１１５０を含む。アクセス情報ジェネレータ１１７０はまた、アカウント情報、鍵情報等の維持または実施を通じて、様々な当事者によるデータへのアクセスを管理することができる。この点、コンテンツ所有者１１６０は、コンテンツ所有者１１６０を発行者１１２０、サブスクライバ１１３０、および／またはアプリケーション開発者とすることもできるという点で、複数の役割のうちのいずれかに跨ることができる。一態様においては、全当事者に対する共通の情報基盤により、管理１１６５、監査１１７５、課金１１７５、ならびに情報基盤にわたって起こるデータトランザクションに対する他の所望の付属サービスが可能となる。
【００７１】
この点、任意のプラットフォームからのIaaSを可能とするためのユーザフレンドリなデータプラットフォームに係る様々な実施形態は、データの消費者（IW、開発者、ISV）およびデータの消費者が、簡潔で費用対効果が良く便利な手法で処理することが可能な情報基盤である。情報基盤は貴重な（私的な）データおよびコミュニティの（公的な）データを手頃な方法で民主的にする(democratize)ことにより、IWが迅速に見識を見出すことができ、開発者が複数のデータソースを用いて創造的な手法で独創的なアプリケーションを構築することができ、開発者が任意のプラットフォームでの自分の作業を収益化できるようにする。例えば、情報基盤は、コンテンツに対する利用回数制料金ならびにサブスクリプション料金、コンテンツ料金(Pay for Content)（コンテンツ所有者が設定する「小売価格」）、支払データ手数料(Pay Data Fee)（「出荷および取扱手数料」）、およびBWをサポートし、さらに、論理トランザクション単位（レポート単位、API単位、ダウンロード単位等）の仲介料としてのデータ手数料をサポートする。
【００７２】
情報労働者（例えば、Office、SQL Server、Dynamicsのユーザ）に対して、情報基盤は、将来のEA統合ならびに予測可能な支出要件（ならびに、オンおよびオフを前提としたBIおよび「HPC」作業負荷をサポートするためのキャッシュ）を可能とするためのサブスクリプションをサポートする。したがって、代替手段には、コンテンツをユーザ毎、月毎に課金することが含まれ、これは、コンテンツパックまたはトランザクション単位の価格設定を配信するためにバンドルしてもしなくともよく、例えばクラウドレポート／ビジネスインテリジェンスのオンデマンド価格設定は、利用単位の価格設定またはレポートギャラリを介した垂直アプリケーションを可能とする一方で、大量のデータを移動させる必要性を排除することができる。
【００７３】
コンテンツプロバイダ（任意のデータタイプ、任意のクラウド）に対して、任意のプラットフォームを用いて、情報基盤は、任意の特定の所望のプラットフォームにおいて売上に刺激を与える貴重な提案となり、追加のコストなしに自動的にスケールでき、高レベルのSLAが得られる可能性がある。幾つかの非限定的な例では、データをセキュアにすることができ、データを以下の領域のデータと関連付けることができる。即ち、位置認識型サービスおよびデータ、商用および住宅の不動産、金融のデータおよびサービス等のデータである。非限定的なシナリオには、上位30社のNGO(Non-Governmental Organization)のデータセットにデータを提供することを含み得る。さらに、情報基盤が、「IaaS向けBing(Bing for Information as a Service)」、HPC等を通じてBIおよび可視化を示す機能を含むことができる。垂直アプリケーションの機会も同様に存在する。
【００７４】
１つの非限定的な実施形態では、データ仲介を従来式のブリックアンドモルタル(brick and mortar)戦略と類比させることができる。例えば、容量を棚の空間（例えば、構造化されたブロブデータと構造化されていないブロブデータとの混合）として表すことができ、商品原価(COGS)を面積（SA、プラットフォーム依存性、帯域幅）として表すことができ、コンテンツを商品として表すことができる（例えば、COGSをカバーするようにコンテンツプロバイダを最適化し、IWおよび開発者からの収益を最大化できる）。様々な実施形態では、オンボーディングプロセスを、データおよびサービスに関する品質基準を用いて、ならびにサービス内容合意書（SLA:Service Level Agreement）の適応により実装することができる。
【００７５】
図１２は、１つまたは複数の機能に従う上述のIaaSに対する情報基盤１２１０の例示的で非限定的な実装形態である。対話側には、情報労働者１２００、開発者１２０２、および使用者１２０４があり、これらはSSL/RESTベースのAPI１２０６を介して情報基盤と通信することができる。負荷分散器１２０８を使用して、トラフィックの誘導を最適な方法で支援することができる。この点、入力はポータルウェブロール１２２０またはAPIウェブロール１２２２にルーティングされる。情報基盤１２１０からデータ側には、クラウドストレージフレームワーク１２４０のブロブデータセット１２４２もしくはブロブデータセット１２５５、または、関係データベースフレームワーク１２５０のデータセット１２５２もしくはデータセット１２５４にアクセスするための追加の負荷分散器１２２４または１２２６（例えば、WAまたはSA）がある。プロキシレイヤ１２２８を使用して、サードパーティクラウド１２６０のデータ１２６２またはデータ１２６４にアクセスすることができる。適用可能な場合は、コンテンツデータ抽象化レイヤ(DALs)１２３０を使用してコンテンツにアクセスすることができる。この点、データセットの複製または重複が様々なタイプのストレージに跨って存在することがあり、例えば、同一のデータがブロブデータおよび構造化データ、例えばＳＱＬとして表されるかもしれない。
【００７６】
データへの補足的なサービスとして、課金および発見サービス１２７０がオンライン課金１２７２（例えば、MOCP）または発見サービス１２７４（例えば、Pinpoint）を含むことができ、認証サービス１２８０が証明書管理１２８２（例えば、Live ID）またはコンテンツ認証１２８４、例えば、認証コンテンツサービス（authenticated content services, ACS）を含むことができる。アカウントサービス１２９０が、ログ取得／監査サービス１２８６またはアカウント管理１２８８サービスを含み得る。管理運用サービス１２９２は運用ダッシュボードサービス１２９４およびネットワーク運用サービス１２９６、例えばGomezを含み得る。
【００７７】
図１３は、IaaSを可能とするための一般的な情報基盤の１つまたは複数の実施形態に従う、データから当該データの消費者への例示的なエンドツーエンドの流れを示すブロック図である。例えば、IaaS１３００は、商用データ１３０２および無償データ１３０４を含むことができ、これらは、営利開発者１３１０、動機が非営利である非営利開発者１３１２、および一般的に生産的な目的でデータを使用することに興味をもつ他の情報労働者１３１４といった様々な者が興味をもつ可能性がある。これらのエンティティは、探索サービス１３２０を使用して、どのアプリケーション１３２２、１３２４、、、、、１３２６が彼らにとって興味がありうるかを判定し、最終的にはデータをILA消費者１３３０およびDLA消費者１３３２へ同様に送信することができる。
【００７８】
オープンデータプロトコル
ネットワーク対話および情報サービスを様々なコンピュータシステム構成およびプロトコルで実施できることは当業者には理解されよう。この点、本明細書で説明する１つまたは複数の実施形態で使用できるデータを問合わせて更新するための１つの非限定的な実装形態は、オープンデータプロトコル(OData)である。
【００７９】
ODataは、データを問合わせて更新するためのウェブプロトコルである。ODataは、HTTP(HyperText Transfer Protocol)、AtomPub(Atom Publishing Protocol)、およびJSON(JavaScript Object Notation)のようなウェブ技術を適用して、様々なアプリケーション、サービス、およびストアからの情報へのアクセスを提供する。ある一般的な背景として、ODataは、AtomPubのクライアントおよびサーバを様々な製品で過去数年間実装した経験に基づいて、有機的に出現したものである。ODataを使用して、これらには限定されないが、リレーショナルデータベース、ファイルシステム、コンテンツ管理システム、および伝統的なウェブサイトを含め、様々なソースからの情報を公開し、情報にアクセスすることができる。ODataは、OSP(Open Specification Promise)のもとでリリースされ、エコシステムの発展を推進するために、誰もがOData実装と自由に相互運用できるようにするものである。ODataの機能を他のプロトコルに組み込んで、ネットワークデータを問合わせて更新するための同様な機能を有するハイブリッドなプロトコルを形成することもできる。
【００８０】
ODataは、ウェブが動作する方法と一致する。一態様では、ODataは、例えばインターネットの動作方法と同様に、リソースを特定するための方法としてURI(Universal Resource Identifiers)を使用し、これらのリソースと対話するための均一なインターフェースを有するHTTP主体のプロトコルを使用する。１つの非限定的な態様では、ODataは、AtomPubにより普及したHTTP上の規約で構築されており、この規約は、データ、コンテンツ、および情報を独自に開発したシステムにわたり共有するプロセスを簡略化する。ODataは、交換すべき基本的なクエリおよびスキーマ情報をサポートするために諸実装形態が任意に実装できる、追加の規約を定義する。HTMLおよびJavaScript（登録商標）のクライアントとの統合を簡素化するために、ODataは、XMLベースのAtomPubフォーマットを補完するプロトコルの任意的なJSON表現を定義する。理解できるように、ODataプロトコルに関する追加の実装仕様または他の詳細についてはwww.odata.orgで見つけることができる。
【００８１】
例示的なネットワーク環境および分散環境
当業者には、本明細書で説明した、任意のプラットフォームからのIaaSのための情報基盤向けの方法および装置の様々な実施形態および関連した諸実施形態を、コンピュータネットワークまたは分散コンピューティング環境の一部として展開することができ、任意の種類のデータストアに接続することができる、任意のコンピュータまたは他のクライアント装置もしくはサーバ装置と関連して実装することが、当業者には理解されよう。この点、本明細書で説明した様々な実施形態を、任意数のメモリまたはストレージユニットを有する任意のコンピュータシステムまたは環境で、および、任意数のストレージユニットにわたって生じる任意数のアプリケーションおよびプロセスで実装することができる。これには、リモートまたはローカルのストレージを有する、ネットワーク環境または分散コンピューティング環境において展開されたサーバコンピュータおよびクライアントコンピュータを有する環境が含まれるが、これには限定されない。
【００８２】
図１４は、例示的なネットワークコンピューティング環境または分散コンピューティング環境の非限定的な概略図を提供する。分散コンピューティング環境は、コンピューティングオブジェクトまたは装置１４１０、１４１２等およびコンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等を備え、これらのコンピューティングオブジェクトまたは装置は、アプリケーション１４３０、１４３２、１４３４、１４３６、１４３８によって表されるような、プログラム、メソッド、データストア、プログラム可能ロジック等を含むことができる。コンピューティングオブジェクトまたは装置１４１０、１４１２等およびコンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等が、PDA、オーディオ／ビデオ装置、携帯電話、MP3プレイヤ、ラップトップ等のような様々な装置を備えてもよいことは理解されよう。
【００８３】
各コンピューティングオブジェクトまたは装置１４１０、１４１２等およびコンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等は、１つまたは複数の他のコンピューティングオブジェクトまたは装置１４１０、１４１２等ならびにおよびコンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等と、通信ネットワーク１４４０により直接または間接に通信することができる。図１４では単一の要素として図示したが、ネットワーク１４４０が、サービスを図１４のシステムに提供する他のコンピューティングオブジェクトおよびコンピューティング装置を備えてもよく、および／または、図示していないが複数の相互接続ネットワークを表してもよい。各コンピューティングオブジェクトまたは装置１４１０、１４１２等または１４２０、１４２２、１４２４、１４２６、１４２８等が、様々な実施形態に従って提供される任意のプラットフォームからのIaaSに対する情報基盤との通信または情報基盤の実装に適した、API、または他のオブジェクト、ソフトウェア、ファームウェア、および／またはハードウェアを利用するアプリケーション１４３０、１４３２、１４３４、１４３６、１４３８のようなアプリケーションを含むこともできる。
【００８４】
分散コンピューティング環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成が存在する。例えば、コンピューティングシステムを、有線または無線システムにより、ローカルネットワークまたは広域分散ネットワークにより、接続することができる。現在、多くのネットワークがインターネットに接続されており、インターネットは、広域分散コンピューティングに対する情報基盤を提供し多種多様なネットワークを包含するが、任意のネットワーク情報基盤を、様々な実施形態で説明した技法に伴う例示的な通信に使用することができる。
【００８５】
したがって、クライアント／サーバ、ピアツーピア、またはハイブリッドアーキテクチャのような、多数のネットワークトポロジおよびネットワーク情報基盤を利用することができる。クライアント／サーバのアーキテクチャ、特にネットワークシステムでは、クライアントは通常は、別のコンピュータ、例えばサーバにより提供される共有ネットワークリソースにアクセスするコンピュータである。図１４の例では、非限定的な例として、コンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等をクライアントと考えることができ、コンピューティングオブジェクトまたは装置１４１０、１４１２等をサーバと考えることができ、この場合、コンピューティングオブジェクトまたは装置１４１０、１４１２等が、コンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等からデータを受信すること、データを記憶すること、データを処理すること、データをコンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等に送信することのようなデータサービスを提供するが、状況に応じて任意のコンピュータをクライアント、サーバ、またはその双方と考えることができる。これらのコンピューティング装置のうち何れかが、１つまたは複数の実施形態について本明細書で説明した任意のプラットフォームおよび関連する技術からのIaaSに対する情報基盤に関与するデータを処理し、またこれに関与するサービスもしくはタスクを要求してもよい。
【００８６】
サーバは典型的に、インターネットまたは無線ネットワーク情報基盤のような、リモートまたはローカルのネットワーク上でアクセス可能なリモートコンピュータシステムである。クライアントプロセスが第１のコンピュータシステムでアクティブであり、サーバプロセスが第２のコンピュータシステムでアクティブであり、互いと通信媒体上で通信し、それにより分散機能を提供して、複数のクライアントがサーバの情報収集機能を利用できるようにしてもよい。ユーザプロファイリングに従って利用される任意のソフトウェアオブジェクトを、スタンドアロンで提供することができ、または、複数のコンピューティング装置もしくはオブジェクトにわたって分散させることができる。
【００８７】
通信ネットワーク／バス１４４０がインターネットであるネットワーク環境では、例えば、コンピューティングオブジェクトまたは装置１４１０、１４１２等は、コンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等が、HTTPのような幾つかの公知なプロトコルのうち何れかを介して通信するウェブサーバであり得る。先に述べたように、コンピューティングオブジェクトまたは装置１４１０、１４１２等が、コンピューティングオブジェクトまたは装置１４２０、１４２２、１４２４、１４２６、１４２８等の役割を果たしてもよく、その逆も成り立つが、これは分散コンピューティング環境の特徴であろう。
【００８８】
例示的なコンピューティング装置
先に述べたように、本明細書で説明した様々な実施形態は任意の装置に適用され、この場合、任意のプラットフォームからのIaaSに対する１つ以上の情報基盤を実装することが望ましいであろう。したがって、ハンドヘルドの、ポータブルの、および他のコンピューティング装置ならびにあらゆる種類のコンピューティングオブジェクトが本明細書で説明した様々な実施形態と関連して、即ち、任意のプラットフォームからのIaaSに対する情報基盤と関連して何らかの機能を装置が提供できる任意の場面で、使用されると想定されていることは理解されよう。したがって、図１５において後述する下記の汎用目的のリモートコンピュータは、一例に過ぎず、本開示の諸実施形態を、ネットワーク／バスの相互運用性および対話を有する任意のクライアントで実装してもよい。
【００８９】
必要ではないが、諸実施形態のうち何れかを、装置またはオブジェクトに対するサービスの開発者による使用のためにオペレーティングシステムを介して部分的に実装することができ、および／または、動作可能コンポーネントと関連して動作するアプリケーションソフトウェアに含めることができる。ソフトウェアを、プログラムモジュールのような、１つまたは複数のコンピュータ、例えばクライアントワークステーション、サーバ、または他の装置によって実行されているコンピュータ実行可能命令の一般的なコンテキストで説明してもよい。ネットワークの対話を様々なコンピュータシステム構成およびプロトコルで実行してもよいことは当業者には理解されよう。
【００９０】
図１５は、１つまたは複数の実施形態を実装できる適切なコンピューティングシステム環境の一例を示すが、上記で明らかにしたように、コンピューティングシステム環境１５００は適切なコンピューティング環境の一例に過ぎず、諸実施形態の何れかの使用または機能の範囲に関して何ら限定を示唆しようとするものではない。コンピューティング環境１５００は、例示的な動作環境１５００内に図示されるコンポーネントの任意の１つまたは組合せに関して、いかなる依存性または要件も有するように解釈されるべきではない。
【００９１】
図１５を参照すると、本明細書における１つまたは複数の実施形態を実装するための例示的なリモート装置は、ハンドヘルドコンピュータ１５１０の形の汎用目的のコンピューティング装置を含めることができる。ハンドヘルドコンピュータ１５１０のコンポーネントは、処理装置１５２０、システムメモリ１５３０、およびシステムメモリを含む様々なシステムコンポーネントを処理演算装置１５２０に接続するシステムバス１５２１を備えてもよいが、これらには限られない。
【００９２】
コンピュータ１５１０は典型的に、様々なコンピュータ読取可能媒体を備え、コンピュータ１５１０がアクセスできる任意の利用可能な媒体であり得る。システムメモリ１５３０は、ROM(Read Only Memory)および／またはRAM(Random Access Memory)のような揮発性および／または不揮発性のメモリの形のコンピュータ記憶媒体を備えてもよい。限定ではなく例として、メモリ１５３０が、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータを備えてもよい。
【００９３】
ユーザは、入力装置１５４０を通じてコマンドおよび情報をコンピュータ１５１０に入力することができる。モニタまたは他のタイプのディスプレイ装置も、出力インターフェース１５５０のようなインターフェースを介してシステムバス１５２１に接続される。モニタに加えて、コンピュータは、出力インターフェース１５５０を介して接続される、スピーカおよびプリンタのような他の周辺出力装置を備えてもよい。
【００９４】
コンピュータ１５１０は、リモートコンピュータ１５７０のような１つまたは複数の他のリモートコンピュータへの論理接続を用いてネットワーク環境または分散環境で動作してもよい。リモートコンピュータ１５７０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスもしくは他の共通ネットワークノード、または他の任意のリモート媒体使用装置または送信装置であってもよく、コンピュータ１５１０に関して上述した要素の一部または全部を備えてもよい。図１５に示す論理接続には、LAN(Local Area Network)またはWAN(Wide Area Network)のようなネットワーク１５７１が含まれるが、他のネットワーク／バスを含むこともできる。このようなネットワーク環境は自宅、職場、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
【００９５】
上述のように、例示的な諸実施形態を様々なコンピューティング装置、ネットワーク、および広告アーキテクチャと関連して説明したが、基礎となる概念を、クラウドまたはネットワークのサービスとの対話と関連してデータを発行し、データ向けのアプリケーションを構築し、データを使用するのが望ましい、任意のネットワークシステムおよび任意のコンピューティング装置またはシステムに適用してもよい。
【００９６】
本明細書で説明した実施形態の１つまたは複数を実装する複数の方法、例えば、適切なAPI、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロンまたはダウンロード可能なソフトウェアオブジェクト等が存在する。これらにより、アプリケーションおよびサービスが、任意のプラットフォームからのIaaSに対する情報基盤を使用することができる。諸実施形態を、API（または他のソフトウェアオブジェクト）の観点から、ならびに説明した実施形態の１つまたは複数に従って任意のプラットフォームからのIaaSに対する情報基盤のプロビジョンを促進するソフトウェアオブジェクトまたはハードウェアオブジェクトの観点から検討してもよい。本明細書で説明した様々な実装形態および実施形態は、全体としてハードウェアである態様、一部がハードウェアで一部がソフトウェアである態様、ならびにソフトウェアである態様を有してもよい。
【００９７】
「例示的」という用語は、本明細書では、例、事例、または実例としての役割を果たすことを意味するために使用される。疑義を避けるため、本明細書で開示した発明の技術的範囲はこのような例によっては限定されない。さらに、本明細書で「例示的」として説明した任意の態様または設計は、必ずしも他の態様または設計に対して好適または有利と考えるべきではなく、また、当業者に公知な等価の例示的な構造および技法を除外することを意味しない。さらに、「含まれる」、「有する」、「含む」という用語、および他の同様な単語が発明を実施するための形態または特許請求の範囲の何れかで使用される限りにおいては、疑義を避けるため、このような用語は、どの追加または他の要素も除外しないオープンな移行語としての「備える」という用語と同様に包括的であることを意図している。
【００９８】
先に述べたように、本明細書で説明した様々な技法を、ハードウェアもしくはソフトウェアまたは、適切な場合は、その双方の組合せと関連して実装してもよい。本明細書で使用する際、「コンポーネント」、「システム」等という用語は同様に、コンピュータ関連のエンティティ、即ち、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアの何れかを指すことが意図されている。例えば、コンポーネントは、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータであってもよいがこれらに限られない。例として、コンピュータ上で実行されているアプリケーションおよびコンピュータの双方をコンポーネントとすることができる。１つまたは複数のコンポーネントが、プロセスおよび／または実行スレッドの内部に存在してもよく、コンポーネントを１つのコンピュータのローカルに存在させてもよく、および／または、２つまたはそれ以上のコンピュータ間で分散させてもよい。
【００９９】
以上では、幾つかのコンポーネントの間の対話に関してシステムを説明した。このようなシステムおよびコンポーネントに、上述したものの様々な置換および組合せに従って、これらのコンポーネントまたは指定のサブコンポーネント、指定のコンポーネントもしくはサブコンポーネントの一部、および／または追加のコンポーネントを含めることができることは理解されよう。サブコンポーネントを、親コンポーネントに含める（階層的）のではなく他のコンポーネントに通信可能に接続されたコンポーネントとして実装することもできる。さらに、１つまたは複数のコンポーネントを、単一のコンポーネントに統合して集約的な機能を提供してもよく、または、管理レイヤのような幾つかの別個のサブコンポーネント、および任意の１つまたは複数の中間レイヤに分割してもよく、統合的な機能を提供するためにこのようなサブコンポーネントと通信可能に接続するために提供してもよいことに留意されたい。本明細書で説明した任意のコンポーネントが、本明細書では具体的に説明していないが当業者には一般に公知である１つまたは複数の他のコンポーネントと対話してもよい。
【０１００】
上述の例示的なシステムを考慮すると、開示された主題に従って実装できる方法を、様々な図面のフローチャートを参照して理解することができる。説明を簡単にするため、方法を一連のブロックで図示および説明しているが、一部のブロックを本明細書で図示および説明したのとは別の順序で、および／または、本明細書で図示および説明したのとは別のブロックと並行に実施してもよいので、特許請求される主題はブロックの順序によっては限定されないことを理解され、認識されたい。フローチャートを介して非逐次的なフローまたは分岐のフローを示す場合、同一または同様な結果を実現する様々な他の分岐、流れ、ブロックの順序を実装してもよいことは理解されよう。さらに、以降で説明する方法を実装するのに、必ずしも図示された全てのブロックが必要なわけではない。
【０１０１】
幾つかの実施形態では、クライアント側の視点を説明したが、疑義を避けるため、対応するサーバの視点も存在し、逆も成り立つことは理解されよう。同様に、方法を実施する場合、方法を１つまたは複数のコンポーネントを介して実施するように構成されたストレージおよび少なくとも１つのプロセッサを有する対応する装置を提供することができる。
【０１０２】
様々な実施形態を様々な図面の好適な諸実施形態と関連して説明したが、他の同様な諸実施形態を使用してもよく、または、同一の機能を実施するために様々な実施形態から逸脱することなく修正および追加を説明した実施形態に加えてもよいことは理解されよう。さらに、上述の諸実施形態の１つまたは複数の態様を複数の処理チップまたは装置においてまたはそれらに跨って実装してもよく、ストレージを同様に複数の装置に跨って実現してもよい。したがって、本発明はどの実施形態にも限定されず、添付された特許請求の範囲に従う範囲で解釈されるべきである。
【図１】
0005890839.tif 000002
【図２】
0005890839.tif 000003
【図３】
0005890839.tif 000004
【図４】
0005890839.tif 000005
【図５】
0005890839.tif 000006
【図６】
0005890839.tif 000007
【図７】
0005890839.tif 000008
【図８】
0005890839.tif 000009
【図９】
0005890839.tif 000010
【図１０】
0005890839.tif 000011
【図１１】
0005890839.tif 000012
【図１２】
0005890839.tif 000013
【図１３】
0005890839.tif 000014
【図１４】
0005890839.tif 000015
【図１５】
0005890839.tif 000016