(57)【要約】  データを配信すること。方法は、特定の時点で、時間に関して、データの相対的金融価値を判断するステップを含む。この方法は、判断された金融価値に基づいて、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップを含む。
2014530402.tif 000002
【特許請求の範囲】
【請求項１】
計算システムにおいてデータを配信する方法であって、
特定の時点で、時間に関して、データの相対的(relative)金融価値(monetary value)を判断するステップと、
前記判断された金融価値に基づいて、前記金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合(set)に前記データを提供するステップと、
を含む、方法。
【請求項２】
前記金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合に前記データを提供するステップは、エンドユーザとのサービスレベル契約にしたがって、エンドユーザ消費者デバイスにデータを提供するステップを含む、請求項１に記載の方法。
【請求項３】
前記金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合に前記データを提供するステップは、異なる階層化(tiering)レベルにしたがって、異なるエンドユーザ消費者デバイスにデータを提供するステップを含む、請求項１に記載の方法。
【請求項４】
前記金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合に前記データを提供するステップは、前記データの意図的な遅延配信(delay delivery)に前記データをゲーティングする(gating)ステップを含む、請求項１に記載の方法。
【請求項５】
前記金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合に前記データを提供するステップは、加入者(subscriber)によって支払われた金額に基づいてエンドユーザ消費者デバイスにデータを提供するステップを含む、請求項１に記載の方法。
【請求項６】
前記金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合に前記データを提供するステップは、１つまたは複数のエンドユーザ消費者デバイスに前記データを配信するために複数のインフラ(infrastructures)からインフラを選択することによってデータを提供するステップを含み、インフラの選択は、優先度が高い(preferred)加入者に優先度が高いインフラを選択するために行なわれる、請求項１に記載の方法。
【請求項７】
どのようにデータがエンドユーザ消費者デバイスに提供されたかに関する統計を、データプロバイダに提供するステップをさらに含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、タイムリーイベントデータ分配用マーケットプレイに関する。
【背景技術】
【０００２】
[0001]コンピュータおよび計算システムは、現代の生活のほぼ全ての面に影響を与えてきた。コンピュータは一般に、仕事、娯楽、ヘルスケア、輸送、エンターテインメント、家庭管理などに関連している。
【０００３】
[0002]さらに、計算システム機能は、ネットワーク接続を介して他の計算システムに相互接続される計算システム能力によって向上させることができる。ネットワーク接続としては、これに限らないが、有線または無線イーサネット（登録商標）、モバイル接続、または直列、並列、ＵＳＢ、または他の接続によるコンピュータ接続へのコンピュータを介した接続を挙げることができる。接続により、計算システムが、他の計算システムでのサービスにアクセスし、他の計算システムからアプリケーションデータを迅速かつ効率的に受信することが可能になる。
【０００４】
[0003]多くのコンピュータは、コンピュータとの直接ユーザインタラクションによって使用されることを意図している。このように、コンピュータは、ユーザインタラクションを容易にするためにハードウェアおよびソフトウェアユーザインターフェイスを入力した。例えば、現代の汎用コンピュータは、ユーザがコンピュータにデータを入力するのを可能にするために、キーボード、マウス、タッチパッド、カメラなどを備えることができる。加えて、様々なソフトウェアユーザインターフェイスが市販されている。
【０００５】
[0004]ソフトウェアユーザインターフェイスの例としては、地理的ユーザインターフェイス、テキストコマンドラインベースのユーザインターフェイス、ファンクションキーまたはホットキーユーザインターフェイスなどが挙げられる。
【０００６】
[0005]インターネット接続アプリケーションは、データセットを利用または相関させることによって、増加するエンドユーザ値を提供している。地理的データのプロバイダは例えば、地図およびナビゲーション用の正確な情報を提供することによりかなりの収益を得る、また長い間、得てきた。特にモバイル空間内のアプリケーションでは、ユーザ値深度はほとんど、アプリケーションが頼ることができるデータがどれだけ多いかおよびどれだけ正確かに直接対応する。ナビゲーションアプリケーションは、例えば、地理的データの利用だけでなく、ホテル、レストラン、およびガソリンスタンド、スーパーマーケットおよびショッピングモールとその営業時間、交通情報、天気警告、および移動する人に興味のある可能性がある全てのことに関する情報をタップすることが可能であることに大いに有益である。構造化データへのアクセスは、アプリケーション競争力およびユーザ値深度にとってかなり重要になったので、データのプロバイダ、所有者、および作成者がこのような目的で有するデータを再販売する市場機会が増加しており、インフラプロバイダが、プロバイダがこのようなデータを販売および分配することを可能にするマーケットプレイスインフラを提供する機会が増加している。
【０００７】
[0006]同時に、リアルタイムおよび準リアルタイムデータのプロバイダは長い間、現在のまたはごく最近の注目すべき事実を示しながら、特に価値のある「フレッシュな」データへのアクセスを与えることからかなりの収益を得てきた。例としては、金融市場データ、現在のビジネスおよび世界のニュース、またはスポーツの結果が挙げられる。金融市場価格決定データは、例えば、価格が設定された数秒、またはさらには数ミリ秒以内で最も価値がある。１５分後にその価値の全てが失われ、その後、ある価値を取り戻す。というのは、チャート作成および他の分析の目的で使用される履歴データとなるからである。
【０００８】
[0007]本明細書で特許請求される主題は、あらゆる欠点を解決する、または上に記載したような環境だけで動作する実施形態に限定されるものではない。むしろ、この背景は、本明細書に記載された、いくつかの実施形態を実施することができる１つの例示的技術分野を例示するためにだけに提供されている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本願発明の一実施例は、例えば、タイムリーイベントデータ分配用マーケットプレイに関する。
【課題を解決するための手段】
【００１０】
[0008]本明細書に記載された一実施形態は、計算システムで実施される方法を対象とする。この方法は、データを配信する動作を含む。この方法は、特定の時点で、時間に関して、データの相対的金融価値を判断するステップを含む。この方法はさらに、判断された金融価値に基づいて、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップを含む。
【００１１】
[0009]本明細書に例示された別の実施形態は、計算システムで実施される方法を対象とする。この方法は、データを配信する動作を含む。この方法は、データの消費者用の消費者層を判断するステップを含む。この方法はさらに、消費者層に一致するように消費者層に相関するエンドユーザデバイスにデータを提供する前に、データをエージングするステップを含む。
【００１２】
[0010]この要約は、詳細な説明で以下にさらに記載された単純な形で、概念の選択を紹介するために提供される。この要約は、請求する主題の重要な特性または本質的な特性を特定することを意図したものではなく、請求する主題の範囲を判断する助けとして使用されることを意図したものでもない。
【００１３】
[0011]追加の特性および利点は、以下の説明に記載され、部分的には説明から自明である、または本明細書の教示の実施によって習得することができる。本発明の特性および利点は、添付の特許請求の範囲で特に指摘された機器または組合せにより、実現することができ、得ることができる。本発明の特性は、以下の説明および添付の特許請求の範囲からより十分明らかになる、またはこれ以下に記載されるような発明の実施によって習得することができる。
【００１４】
[0012]上で言及した、および他の利点および特性を得ることができる方法を説明するため、上で簡単に説明した主題のより特定な記載は、添付の図面で例示された特定の実施形態を参照して示される。これらの図面が、典型的な実施形態を示すだけであり、したがって範囲を限定するものと考えるものではないことを理解して、実施形態は、添付の図面の使用により、追加の特性および詳細で記載および説明される。
【図面の簡単な説明】
【００１５】
【図１】[0013]経時的なデータの値のグラフを示す図である。
【図２】[0014]イベントデータ市場環境を示す図である。
【図３】[0015]イベントデータ市場環境の代替形態を示す図である。
【図４】[0016]イベントデータ市場環境の代替形態を示す図である。
【図５】[0017]イベントデータ市場環境の代替形態を示す図である。
【図６】[0018]イベントデータ取得および分配システムを示す図である。
【図７】[0019]イベントデータ取得システムの一例を示す図である。
【図８】[0020]イベントデータ分配システムの一例を示す図である。
【図９】[0021]イベントデータ取得および分配システムを示す図である。
【図１０】[0022]データを配信する方法を示す図である。
【図１１】[0023]データを配信する別の方法を示す図である。
【発明を実施するための形態】
【００１６】
[0024]いくつかのデータは、その「新しさ」に基づく価値、および結果を導き出す。例えば、株式相場などの金融データは、時間の経過とともに極めて迅速に下落する値を有することがある。同時に、データを数ミリ秒以内のように極めて迅速に提供することができる場合、データは極めて高い値を有することができる。したがって、新しいデータは需要が高く、クエリーを行なうことが可能なデータリポジトリおよび／またはデータマーケットプレイスから利用可能なデータがどのようにデータを提供するのかと同様な方法で提供することができる。
【００１７】
[0025]本明細書に記載された、いくつかの実施形態は、イベントデータ用マーケットプレイスを実施することができる。いくつかの実施形態は、リアルタイムデータ用のプラットフォームおよびデータ分配マーケットプレイスシステムを提供することができる。いくつかの実施形態は、配信時間を短くするように、また、より新しい状態で提供することによって、データをより価値あるものにし続けるように、効率的なマルチキャストイベント配信システムを含むことができる。いくつかの実施形態は、プッシュ通知システム内への配信を可能にすることができる。いくつかの実施形態は、請求および／または代りに請求するシナリオ用の統計および分配追跡データ収集機構を含むことができる。さらに、いくつかの実施形態は、配信サービスレベル契約（ＳＬＡ）階層化を含むことができる。
【００１８】
[0026]図１は、経時的なデータの値を示すグラフ１００を示す。図示するように、現在の事実を記載するリアルタイムデータが最初に作り出されたときに、データはかなりの価値を有する可能性がある。価値は、データがゼロにまたはゼロに近くなるポイントまで時間の経過とともに迅速に低下する。データはその後、アーカイブ保管され、後に検索することができる履歴事実としての価値を有するので、時間の経過とともにある価値を取り戻す。したがって、現在のデータをできるだけ迅速にエンドユーザに提供することが可能である価値がある。
【００１９】
[0027]データを迅速に提供する１つの方法は、イベント通知システムを通してであり、特に、以下により詳細に記載するように、効率的なイベント通知システムを使用している。このように、イベント通知システムがエンドユーザへのデータを得ることができるのと同じだけ迅速に、データをユーザに提供することができる。したがって、ユーザに現在の事実データが直ぐに通知および提供することができる場合、データの価値を維持することができる。これにより、データを提供するために、（データプロバイダから、またはデータ消費者のいずれかから）より高い補償を回復することが可能になる。
【００２０】
[0028]図２は、データを提供するためにイベント分配システムを使用することができるデータマーケット２０２の例を示す。図２は、イベントデータマーケット２０２にデータを提供することができるデータプロバイダ２０４を示す。データプロバイダ２０４は、これに限らないが、金融データプロバイダ、スポーツ情報データプロバイダ、ニュース情報プロバイダなどの多くの異なるソースのいずれかである可能性がある。イベントデータマーケット２０２は、多くの異なるソースからデータを受信し、末端消費者にデータを分配するデータブローカ（受信者２０６として示す）である可能性がある。
【００２１】
[0029]図２は、データの個人加入者、データのグループ加入者、およびエンドユーザデバイスに展開された特定のアプリケーションまたは解決法を有する結果として情報を受信する加入者を含む、３つのグループの受信者を示す。特に図示しないが、他の加入者グループを、加えてまたは代替形態で、実施することができる。
【００２２】
[0030]データ配信に対する補償は、多くの異なる方法で構築することができる。図３および４は、金融データ配信をどれだけ達成することができるかの２つの例を示す。
[0031]図３に示す第１の例では、データ配信はデータプロバイダ２０４に請求される。イベントデータマーケット２０２は、データプロバイダ２０４へのデータ配信に関する統計２０８を提供することができ、データプロバイダ２０４は、独立してデータの受信者２０６に請求することができる。
【００２３】
[0032]図４に示す第２の例では、データマーケット２０２は、受信者２０６に直接請求することができる。データマーケット２０２はその後、そのシェアを占め、データプロバイダにあらゆる追加の資金を送ることができる。
【００２４】
[0033]次に図５を参照すると、前に記したように、データに価値があればあるほど、より迅速に配信することができる。したがって、いくつかの実施形態は、加入者（受信者など）またはデータプロバイダ２０４によって支払われる金額に基づいてデータを提供することができる。例えば、データにより多くのお金を支払っている加入者は、そのデータにより少ないお金を支払っている加入者にデータを配信するために使用されるいくつかの他のインフラよりも、速い速度でデータを配信するように設計または最適化されたインフラを使用してデータを配信させることができる。これは、加入者により近い（サーバなどの）インフラ構成要素を使用するステップを含み、データをより速く配信することを可能にする。
【００２５】
[0034]別の方法では、または加えて、データをデータプロバイダ２０４でゲーティングすることができ、ゲーティングにより、データを可変遅延で配信することを可能にする。例えば、プレミアム加入者は、データが作成されてからデータが配信されるまでに、ほとんどまたは全く遅延なくリアルタイムデータを受信することが可能であるが、データは他の加入者に対しては意図的に遅らせることがあり、遅延は加入者が加入しているサービスのレベルに左右される。例えば、いくつかの実施形態では、データプロバイダは、極めて短い期間で時間でのリアルタイムデータの配信を保証する限られた数のプレミアムサービス契約を提供することができる。このような契約の排他性および希少性の性質により、データプロバイダは潜在的に、このような契約に大きな割増金を課すことができる。第２のレベルの限られた契約は、より低い割増金で提供することができる。リアルタイムデータは、プレミアムサービス加入者が提供されるのより遅らされる。十分に長い間導入した遅延の後に、無料でデータを提供するレベルを含む、様々なレベルを提供することができる。
【００２６】
[0035]次に、以下にリアルタイムイベントデータを提供する特定の効率的なイベントシステムの例を示す。
[0036]このような例が、図６に示される。図６は、多くの異なるソースからの情報が多くの異なるターゲットに配信される例を示す。いくつかの例では、単一のソースからの情報、または多数のソースから集約された情報を使用して、多数のターゲットに配信される単一のイベントを作り出すことができる。これは、いくつかの実施形態では、図６に示すように、ファンアウトトポロジーを使用して達成することができる。
【００２７】
[0037]図６は、ソース１１６を示す。本明細書に以下に論じるように、実施形態は取得パーティション１４０を利用することができる。各取得パーティション１４０は、多くのソース１１６を含むことができる。潜在的に、多数および多様なソース１１６がある可能性がある。ソース１１６は情報を提供する。このような情報としては、例えば、これに限らないが、Ｅメール、テキストメッセージ、リアルタイム株価、リアルタイムスポーツスコア、ニュース更新などを挙げることができる。
【００２８】
[0038]図６は、各パーティションが例示的な取得エンジン１１８などの、取得エンジンを含んでいることを示す。取得エンジン１１８は、ソース１１６から情報を収集し、情報に基づき、イベントを生成する。図６に示す例では、多くのイベントが、様々なソースを使用して、取得エンジンによって生成されると示される。イベント１０４−１は、例示として使用される。いくつかの実施形態では、イベント１０４−１は、本明細書にさらに説明するように正規化させることができる。取得エンジン１１８は、ネットワーク上でソース１１６から情報を収集する、インターネットなどのネットワーク上のサービスであってもよい。
【００２９】
[0039]図６は、イベント１０４−１が分配トピック１４４に送信されることを示す。分配トピック１４４は、イベントを多くの分配パーティションにファンアウトさせる。分配パーティション１２０−１は、分配パーティションの全てに対してアナログとして使用される。分配パーティションはそれぞれ、加入によって示される多くのエンドユーザまたはデバイスにサービスを提供する。分配パーティションによってサービス提供される加入数は、他の分配パーティションの数とは異なる可能性がある。いくつかの実施形態では、パーティションによってサービス提供される加入数は、分配パーティションの容量に左右される可能性がある。別の方法では、または加えて、分配パーティションを選択して、エンドユーザへの論理的または地理的近接に基づき、ユーザにサービスを提供することができる。これにより、警告をよりタイムリーな方法でエンドユーザに運ぶことが可能になる。
【００３０】
[0040]示した例では、分配パーティション１２０−１は、分配エンジン１２２−１を含む。分配エンジン１２２−１は、データベース１２４−１を参照する。データベース１２４−１は、関連する配信ターゲット１０２に関する詳細を有する加入に関する情報を含む。特に、データベースは、ターゲット１０２用プラットフォーム、ターゲット１０２によって使用されるアプリケーション、ターゲット１０２用ネットワークアドレス、ターゲット１０２を使用するエンドユーザのユーザ好みなどを記載する情報などの情報を含むことができる。データベース１２４−１内の情報を使用して、分配エンジン１２２−１はバンドル１２６−１を構築し、ここでバンドル１２６−１は、イベント１０４（または、少なくともイベント１０４からの情報）、およびイベント１０４−１からの情報が通知として送信されるターゲット１０２の中から複数のターゲット１０２を識別するルーティングスリップ１２８−１を含む。バンドル１２６−１はその後、キュー１３０−１内に配置される。
【００３１】
[0041]分配パーティション１２０−１は、多くの配信エンジンを含むことができる。配信エンジンは、バンドルをキュー１０３−１から取り除き、通知をターゲット１０２に運ぶ。例えば、配信エンジン１０８−１は、バンドル１２６−１をキュー１３−１から取り出し、イベント１０４情報をルーティングスリップ１２８−１内で識別されたターゲット１０２に送信することができる。したがって、イベント１０４−１情報を含む通知１３４は、異なるターゲット１０２に適当な、また個別のターゲット１０２に特有のいくつかの異なるフォーマットで、ターゲット１０２に様々な分配パーティションから送信させることができる。これにより、多数の個別化通知を配信システムを通して運ぶのではなく、個別のターゲット１０２に個別化された個別化通知１３４を、配信システムのエッジで共通イベント１０４−１から作り出すことが可能になる。
【００３２】
[0042]以下に、いくつかの実施形態で使用することができる情報収集およびイベント分配システムの代替的記載を例示する。
[0043]基礎として、一実施形態のシステムは、ワシントン州レッドモンドのマイクロソフトコーポレーションから市販されるウィンドウズ（登録商標）アジュールサービスバスによって提供されるような公共／加入インフラを使用しており、また様々な他のメッセージングシステムで同様の形で存在する。インフラは、示した方法の記載した実施を容易にする２つの能力、トピックおよびキューを提供する。
【００３３】
[0044]キューは、メッセージを逐次的な順序で追加する（キューに加える）ことを可能にする、また追加されたのと同じ順序で取り除く（キューから取り除く）ことを可能にするメッセージ用の記憶構造である。メッセージを、あらゆる数の並列クライアントによって追加し、取り除くことができ、キューに加える側の負荷のレベリング、およびキューから取り除く側の受信機にわたる処理負荷の並列化を可能にする。キューはまた、エンティティが、キューから取り除かれたときにメッセージ上のロックを得るのを可能にして、いつメッセージが実際にキューから削除されるか、または取り出されたメッセージの処理が失敗した場合にキュー内で回復させることができるかどうかに関する消費クライアントの明示的制御を可能にする。
【００３４】
[0045]トピックは、キューの全ての特徴を有するが、それぞれキューに加えられたメッセージのシーケンス上の隔離およびフィルタリングされたビューを可能にする、複数の同時に存在する「加入」を可能にする記憶構造である。トピック上の各加入は、（１つまたは複数の）加入の関連フィルタ状態がメッセージに確実に一致するという条件で、キューに加えられた各メッセージのコピーを作り出す。その結果、それぞれが全てのメッセージに一致する単純な「パススルー」状態を有する１０の加入を有するトピック内でキューに加えられたメッセージは、それぞれ各加入用の合計１０のメッセージを作り出す。加入は、キューと同様に、受信機にわたる処理負荷の並列化を行なう複数の並列消費者を有することができる。
【００３５】
[0046]別の基礎的概念は、「イベント」のものであり、これは根本的な公共／加入インフラの意味において、単にメッセージである。一実施形態の内容で、イベントは、メッセージ本体およびメッセージ特性の使用を管理する１式の単純な制約の影響を受ける。イベントのメッセージ本体は一般的に、不透明なデータブロックとして流れ、一実施形態によって検討されるあらゆるイベントデータは一般的に、イベントを示すメッセージの一部である１式のキー／値対であるメッセージ特性内に流れる。
【００３６】
[0047]次に図７を参照すると、一実施形態のアーキテクチャの目標は、大きな規模で幅広い異なるソース１１６からイベントデータを取得し、次の処理のために公共／加入インフラ内にこれらのイベントを転送することである。処理は、引くまたは押す通知機構を通して興味のある加入者へのイベントの分析、リアルタイム調査、または再分配のいくつかの形を含むことができる。
【００３７】
[0048]一実施形態のアーキテクチャは、取得エンジン１１８、取得アダプタおよびイベント正規化用モデル、取得ソース１１６に関するメタデータを保持する分割されたストア１３８、共通の分割およびスケジューリングモデル、およびさらなるデータベース検索を必要とすることなく、取得ソース１１６の状態のユーザ起動の変化をシステム内にランタイムでどのように流すかについてのモデルを定義する。
【００３８】
[0049]具体的な実施では、取得は、ＲＳＳ、Ａｔｏｍ、およびＯＤａｔａフィードを含む幅広いパブリックおよびプライベートネットワークサービス、これに限らないが、ＩＭＡＰおよびＰＯＰ３プロトコルをこのようにサポートすることを含むＥメールメールボックス、ツイッタータイムラインまたはフェイスブックウォールなどのソーシャルネットワーク情報ソース１１６、およびウィンドウズアジュール（商標）サービスバスまたはアマゾンのシンプルキューサービスなどの外部公共／加入インフラに関する加入からのソースイベントへの具体的な取得アダプタをサポートすることができる。
【００３９】
[0050]
イベント正規化
イベントデータは正規化されて、イベントを手渡されている公共／加入インフラ上の加入者によって実際に消費可能にする。正規化は、この内容では、イベントを様々な内容で広範の加入者に興味のある可能性がある情報アイテムの一貫性のある表示を備えた共通のイベントモデルの上にマッピングされることを意味する。選択されたモデルはここでは、システムによってさらに解釈されない、単一の不透明なバイナリ量のデータに伴うことができるキー／値対の均一のリストの形のイベントの単純な表示である。イベントのこのような表示は、多くの公共／加入インフラ上で容易に表示可能であり、また、ＨＴＴＰなどの共通のインターネットプロトコルに対して極めてみごとにマッピングする。
【００４０】
[0051]イベント正規化を示すために、イベント１０４内へのＲＳＳまたはＡｔｏｍフィードエントリのマッピングを検討する（図１および２を参照）。ＲＳＳおよびＡｔｏｍは、しばしば時系列で、ニュースおよび他の現在の情報を発表するために極めて幅広く使用され、その情報を構造的な方法でコンピュータプログラム内の処理に利用可能にするのを助ける、２つのインターネット標準である。ＲＳＳおよびＡｔｏｍは、極めて同様な構造、および異なる名前であるが、意味的に同一なデータ要素の集合を共有する。したがって、第１の正規化ステップは、名称または概要などの、両方の標準で定義されたこのような意味的に同一な要素に対するキーとして共通な名前を定義する。第２に、１つの、しかし他の標準で起こるだけであるデータは普通、それぞれの「ネイティブ」名でマッピングされる。その上、これらの種類のフィードはしばしば、コア標準で定義されないが、追加のデータを加えるために、それぞれの標準で拡張性を使用しているデータアイテムである、「拡張子」を運ぶ。
【００４１】
[0052]これに限らないが、地理位置情報用のＧｅｏＲＳＳ、または構造化データをＡｔｏｍフィード内に埋め込むためのＯＤａｔａを含む、これらの拡張子のいくつかは、異なるイベントソース１１６にわたって共有される共通の方法でマッピングされ、それによって、イベントが発せられる公共／加入インフラ上の加入者は、データがＲＳＳまたはＡｔｏｍ、またはツイッタータイムラインから取得されたかどうかに関わらず、均一の方法で地理的位置情報を解釈することができる。ＧｅｏＲＳＳの例に続けて、地理「ポイント」を示す単純なＧｅｏＲＳＳ式はしたがって、ＷＧＳ８４座標を示す１対の数値の「緯度」／「経度」性にマッピングさせることができる。
【００４２】
[0053]ＯＤａｔａなどの複雑構造化データを運ぶ拡張子は、基礎的イベントモデルを複雑化することなく、複合タイプ構造およびデータを保存するマッピングモデルを実施することができる。いくつかの実施形態は、ＪＳＯＮなどの正準およびコンパクト複合データ表示に正規化し、例えば、複合データタイプ「人」のＯＤａｔａプロパティ「テナント」をキー／値対にマッピングし、キーはプロパティ名「テナント」であり、値はＪＳＯＮ直列化された形で示された名前、経歴情報、および住所情報を有する人を説明する複合データである。データソースがＸＭＬドキュメントである場合、ＲＳＳまたはＡｔｏｍの場合と同様に、値は、ＸＭＬデータをＸＭＬによって提供された構造を保存するＪＳＯＮに転写するが、属性および要素などのＸＭＬ特殊性を平坦化することによって作り出すことができ、同じＸＭＬ要素ノードのＸＭＬ属性および要素の下位概念であるＸＭＬ属性および要素は両方とも、別の区別がない「きょうだい（siblings）」としてＪＳＯＮプロパティにマッピングされる。
【００４３】
[0054]
ソースおよび分割化
一実施形態のアーキテクチャは、ソースデータベース１３８内に記憶させることができる、「ソース記述」記録内のデータソース１１６に関するメタデータを保存する。「ソース記述」は、共通要素の集合、およびデータソースに特有な要素の集合を有することができる。共通の要素は、ソースの名前、ソース１１６が有効であると考えられる期間インターバル、人間が読み取れる記述、および差別化用タイプのソース１１６を含むことができる。ソース特有要素は、ソース１１６のタイプに左右され、ネットワークアドレスと、認証情報と、またはアドレスによって示されたリソース、およびＲＳＳフィードをチェックするための時間インターバルを提供するなどの、特定の方法でデータ取得を行なう、または構築されるエンド間経験である場合に、通知受信者が制約されたスクリーン表面上の各ニュース速報アイテムを見る機会を得るように、少なくとも６０秒離して現在のイベントニュースフィードから取得されたイベントに間隔をあけることなどの、特定の方法のイベントの転送を行なういずれかを、ソース取得アダプタに命令するメタデータへのアクセスを得るための他のセキュリティキー材料とを含むことができる。
【００４４】
[0055]ソース記述は、ソースデータベース１３８などの１つまたは複数のストア内に保持される。ソース記述は、２つの異なる軸に沿って、これらのストアにわたって、これらの中で分割化させることができる。
【００４５】
[0056]第１の軸は、システムテナントによる区別である。システムテナント、または「ネームスペース」は、システム内にエンティティ用の隔離された範囲を作り出すための機構である。「フレッド」が一実施形態を実施しているシステムのユーザである具体的な場合を示し、フレッドは、システム内の他のソース１１６とは完全に独立したソース記述および構成および状態を保持することができる、隔離された仮想環境をフレッドに提供するテナント範囲を作り出すことが可能である。この軸は、また特に、テナントが（パスワードなどのセキュリティ感度が高いデータを含むことができる）記憶されたメタデータの隔離を必要とする場合、または技術的、規制的または事業的理由で、ストアにわたってソース記述を広げるための差別化要因として働くことができる。システムテナントはまた、ソース記述データが中に保持され、そこからデータ取得が行なわれる特定のデータセンタへのアフィニティを示すことができる。
【００４６】
[0057]第２の軸は、規定の識別子範囲から選択された数値パーティション識別子による区別であることができる。パーティション識別子は、例えば、ソース名およびテナント識別子などの、ソース記述内に含まれる不変条件から導き出すことができる。パーティション識別子は、ハッシュ機能（多くの候補のうちの１つは、ジェンキンスハッシュである。ｈｔｔｐ：／／ｗｗｗ．ｂｕｒｔｌｅｂｕｒｔｌｅ．ｎｅｔ／ｂｏｂ／ｈａｓｈ／ｄｏｏｂｓ．ｈｔｍｌを参照のこと。）を使用してこれらの不変条件から導き出すことができ、得られるハッシュ値は、おそらくハッシュ値上のモジュロ機能を使用して、パーティション識別子範囲に算出される。識別子範囲は、システム内にいつも保持される全てのソース記述を記憶するのに必要であると予測される最も多くの記憶パーティションより大きいように選択される（実質的に大きい可能性がある）。
【００４７】
[0058]記憶パーティションを導入することは、根本的なデータストアに関する記憶容量割当に直ぐに関連する、または所与のデータセンタまたはデータセンタ部に対する帯域幅制約などの取得エンジン１１８に影響を与える容量制限に関連するいずれかの、容量制限によって普通は動機付けされ、その結果、侵入帯域幅要求を満たすために、異なるデータセンタまたはデータセンタセグメントにわたって容量を利用している取得パーティション１４０を作り出す実施形態につながる可能性がある。記憶パーティションは、全体的識別子範囲のサブセットを所有し、記憶パーティション（および、これにアクセスするのに必要なリソース）を備えたソース記述記録の関連性はしたがって、そのパーティション識別子から直接推論することができる。
【００４８】
[0059]記憶パーティション軸を提供することを越えて、パーティション識別子はまた、スケジューリングまたは取得ジョブに使用され、（記憶パーティションへの関係とは潜在的に異なる）所与のソース記述への取得パーティション１４０の所有関係を明らかに規定している。
【００４９】
[0060]
所有および取得パーティション
システム内の各ソース技術は、特定の取得パーティション１４０によって所有させることができる。重複したイベントを発する可能性がある場合に、システムは複数の場所で並列して全く同じソース１１６からイベントを取得しないので、明確および独自の所有権が使用される。これをより具体的にするために、テナントの範囲内で規定された１つのＲＳＳフィードは、システム内で正確に１つの取得パーティション１４０によって所有され、パーティション内には、時間内にあらゆる所与のポイントで特定のフィード上の１つのスケジューリングされた取得実行がある。
【００５０】
[0061]取得パーティション１４０は、パーティション識別子範囲の所有権を得る方法で、ソース記述の所有権を得る。識別子範囲は、フェイルオーバー能力を有することができ、マスタ／バックアップオーナーを割り当てることができる外部の専用分割システムを使用して、またはパーティション識別子範囲が、取得エンジン役割を仮定する多くの個別算出例にわたって均一に広がるより単純な機構を使用して、取得パーティション１４０に割り当てることができる。外部の分割システムでのより洗練された実施では、パーティションの選ばれたマスタオーナーは、システムが「冷却」状態から開始した場合に、ジョブのスケジューリングをシーディングする責任があり、これは、パーティションは前のオーナーを有していなかったということを意味する。より単純なシナリオでは、パーティションを所有する算出例は、スケジューリングをシーディングすることを所有している。
【００５１】
[0062]
スケジューリング
取得ジョブに対するスケジューリング需要は、具体的なソースの性質に左右されるが、一般的に、いくつかの記載された実施形態で実現される２種類の取得モデルがある。
【００５２】
[0063]第１のモデルでは、オーナーは、ソースのネットワークサービス上で接続または長期間のネットワーク要求のいくつかの形を開始し、データグラムまたはストリームの形で接続上でデータが返されるのを待つ。一般的には長期ポーリングとも呼ばれる長期間要求の場合、ソースネットワークサービスは、タイムアウトが起こるまで、またはデータが利用可能になるまで、要求を保ち、その後、取得アダプタは、ペイロード結果があってもなくても要求が完了するのを待ち、その後、要求を再発行する。その結果、この取得スケジューリングモデルは、ソース１１６のオーナーがソースに関して学習するときに、また新しい要求または接続が現在の接続または要求が完了するまたは一時的に中断されると直ぐに開始される場合に、開始される「タイト」ループの形をしている。オーナーがタイトループの即時制御にあるときに、ループはオーナーが実行している間に確実にアライブに保持させることができる。オーナーが停止および再開すると、ループも再開する。所有権が変わると、ループは停止し、新しいオーナーがループを開始させる。
【００５３】
[0064]第２のモデルでは、ソースのネットワークサービスは、利用可能になったときに、長期間要求または接続生成データをサポートしていないが、問い合わせされると直ぐに返る通常の要求／応答サービスである。このようなサービスでは、これは多くのウェブリソースに当てはまり、連続タイトループ内でデータを要求することにより、膨大な量のロードをソース１１６上に生じさせ、また、ソース１１６が変化しなかったことを単に示す、または最悪の場合、何度も繰り返し同じデータを運んでいるいずれかの重大なネットワークトラフィックを生じさせる。タイムリーなイベント取得の需要を並列化し、無益なクエリートラフィックでソース１１６をオーバーロードさせないために、取得エンジン１１８はしたがって、「タイミング」ループ内で要求を実行し、ソース１１６上の要求は、これらの検討事項を並列化し、またソース１１６からのヒントを考慮するインターバルに基づいて周期的に実行される。「タイミング」ループは、ソース１１６のオーナーがソースに関して学習するときに開始される。
【００５４】
[0065]タイミングループに対する２つの注目に値する実施バリアント型がある。第１のバリアント型は、低い規模の最良の努力のシナリオであり、スケジューリングにローカルのインメモリタイマオブジェクトを使用し、これにより、規模、制御および再開特徴が、タイトループのものと同様にされる。ループが開始され、直ぐにタイマコールバックがスケジューリングされて、取得ジョブの第１の反復が実行される。そのジョブが（エラーがあったとしても）完了し、ループが実行し続けるものであると判断されると、別のタイマコールバックが、ジョブが次に実行される瞬間にスケジューリングされる。
【００５５】
[0066]第２のバリアント型は、ウィンドウズアジュール（商標）サービスバスを含む、いくつかの公共／加入システムの特性である、「スケジューリングメッセージ」を使用する。バリアント型は、いくらかより高い複雑性の犠牲に、かなりより高い取得スケールを提供する。スケジューリングループは、オーナーによって開始され、メッセージは取得パーティションのスケジューリングキュー内に置かれる。メッセージは、ソース記述を含む。取得ジョブを行ない、その後、得られたイベントをターゲット公共／加入システム内でクエリーに加える労働者によってのちに取り上げられる。最後にまた、新しい「スケジューリング」メッセージをスケジューリングキューに加える。そのメッセージは、「スケジューリングされた」と呼ばれる。というのは、スケジューリングキュー上であらゆる消費者によって検索に利用可能になる瞬間でマーキングされているからである。
【００５６】
[0067]このモデルでは、取得パーティション１４０は、スケジューリングを一次的にシーディングする、また実際の取得ジョブを行なうあらゆる数の「労働者」の役割と対にすることができる、１つの「オーナー」の役割を有することによってスケールアウトすることができる。
【００５７】
[0068]
ソース更新
システムが運転しているときに、取得パーティション１４０は、観察すべき新しいソース１１６に関して、およびどのソース１１６をもはや観察すべきではないかに関して学習することができる必要がある。これに関する決定は典型的には、検出された回復不能のまたは一時的なエラーによりソース１１６を（以下に説明するように）ブラックリスト化する場合を除いて、ユーザにかかっており、管理サービス１４２との相互作用の結果である。このような変化を通信するため、取得システムは、根本的な公共／加入インフラ内に「ソース更新」トピックを維持する。各取得パーティション１４０は、加入が取得パーティションの所有された範囲内でパーティション識別子を運ぶものに適格なメッセージを制約するフィルタ条件を有した状態で、トピックに関する専用加入を有する。これにより、管理サービス１４２が、新しいまたは退いたリソース１１６に関する更新を設定し、パーティション保有権分配の知識を必要とすることなくこれらを正しいパーティション１４０に送信することが可能になる。
【００５８】
[0069]管理サービス１４２は、ソース記述、（上記フィルタリング目的の）パーティション識別子、およびソース１１６を加えるべきか、またはソース１１６をシステムから取り除くべきかを示す動作識別子を含むトピック内に更新コマンドを提示する。
【００５９】
[0070]取得パーティション１４０のオーナーがコマンドメッセージを検索すると、新しいソース１１６に対して新しい取得ループをスケジューリングする、または既存の取得ループを中断、またはさらには退かせる。
【００６０】
[0071]
ブラックリスト化
データ取得が失敗したソース１１６は、一時的にまたは永久的にブラックリスト化させることができる。一時的ブラックリスト化は、ソース１１６ネットワークリソースが利用可能ではない、または再発行された取得要求に直ぐには関連しないエラーを返す場合に行なわれる。一時的ブラックリスト化の期間は、エラーの性質に左右される。一時的ブラックリスト化は、通常のスケジューリングループ（タイトまたはタイミング）を中断し、エラー状態が他者によって解決されることが予測される瞬間に対して、（コールバックまたはスケジューリングメッセージにより）ループの次の反復をスケジューリングすることによって行なわれる。
【００６１】
[0072]永久的ブラックリスト化は、エラーが取得要求の直ぐの結果であると判断された場合に行なわれ、要求は認証または許可エラーを起こしている、または遠隔ソース１１６がいくつかの他の要求エラーを示しているということを意味する。リソースが永久的にブラックリスト化されると、ソース１１６はパーティションストア内でブラックリスト化されたとマーキングされ、取得ループは直ぐに中止される。永久的にブラックリスト化されたソース１１６を元に戻すには、推定上、要求に対する挙動変化を起こす構成変化と共に、ストア内のブラックリストマーカを取り除き、ソース更新トピックを介して取得ループを再開させる必要がある。
【００６２】
[0073]
通知分配
特定の範囲に関連する多数の「ターゲット１０２」それぞれに所与の入力イベントからの情報のコピーを分配し、各ターゲット１０２に対して最小の時間でそのようにするように、実施形態を構成することができる。ターゲット１０２は、いくつかの第三者通知システム、またはいくつかのネットワークアクセス可能外部インフラへのアダプタの識別子に結合されたデバイスまたはアプリケーションのアドレスと、その通知システムまたはインフラにアクセスするための補助データとを含むことができる。
【００６３】
[0074]いくつかの実施形態は、以下に詳細に記載され、図８を参照して理解することができる、３つの個別の処理役割に分割されるアーキテクチャを含むことができる。図８に「１」で記されているように、それぞれ処理役割の楕円、および「ｎ」は、処理役割の１つまたは複数の例を有することができる。各場合において「ｎ」の使用は、処理役割に適用されるような各他の場合とは区別して考えられるべきであり、各処理役割は同じ数の例を有する必要はないということを意味することに留意されたい。「分配エンジン」１１２の役割は、イベントを許可し、これらをターゲット１０２のグループを含むルーティングスリップ（例えば、図６のルーティングスリップ１２８−１を参照のこと）を束ねる。「配信エンジン」１０８は、これらのバンドルを許可し、ターゲット１０２によって示されたネットワーク位置への配信のためにルーティングスリップを処理する。管理サービス１４２によって示された「管理役割」は、ターゲット１０２を管理するために外部ＡＰＩを提供し、また、配信エンジン１０８からの統計およびエラーデータを受け入れ、そのデータを処理／記憶する責任がある。
【００６４】
[0075]データフローは、イベントが分配のためにその中に提示される「分配トピック１１４」上にアンカリングされる。提示されたイベントは、メッセージプロパティを使用して、イベントおよび生メッセージを区別する上記制約の１つである可能性がある、関連する範囲でラベル付される。
【００６５】
[0076]分配トピック１４４は、示した例では、「分配パーティション１２０」毎の１つのパススルー（フィルタリングされていない）加入を有する。「分配パーティション」は、所与の範囲でターゲット１０２のサブセットに通知を分配および配信する責任がある隔離されたセットのリソースである。分配トピック内に送信された各イベントのコピーは、これらの関連する加入を通して効果的に同時に、全て同時に構成された分配パーティションに利用可能であり、分配作業の並列化が可能になる。
【００６６】
[0077]分割による並列化は、タイムリーな分配を達成するのを助ける。これを理解するため、１０００万個のターゲット１０２での範囲を検討する。ターゲットのデータが分割されていないストア内に保持された場合、システムは、単一の大きなデータベース結果セットを順に詳しく検討しなければならない、または結果セットが同じストア上のパーティショニングクエリーを使用して取得された場合、ターゲットデータを取得するためのスループットは少なくとも、所与のストアの前置ネットワークゲートウェイインフラのスループットシーリングによって調整されなければならず、その結果、その記述記録が所与の結果セット内で極めて遅く生じるターゲット１０２への通知の配信の配信待ち時間は満足いかない可能性がある。
【００６７】
[0078]その代り、１０００万個のターゲット１０２がそれぞれ１０，０００個のターゲット記録を保持する１，０００のストアにわたって分配され、これらのストアがクエリーを実行し、ここに記載するようにパーティションの形で結果を処理する専用計算インフラ（本明細書に記載された「分配エンジン１２２」および「配信エンジン１０８」）と対にされた場合、ターゲット記述の取得は、幅広いセットの計算およびネットワークリソースにわたって並列化させることができ、分配された最初のイベントから最後のイベントまで測定された全てのイベントの分配に対する時間差をかなり小さくすることができる。
【００６８】
[0079]分配パーティションの実際の数は、技術的には制限されない。単一のパーティションから、１より大きいあらゆる数のパーティションの範囲にわたる可能性がある。
[0080]示した例では、分配パーティション１２０用の「分配エンジン１２２」がイベント１０４を取得すると、最初にイベントデータのサイズを計算し、その後、ルーティングスリップ１２８のサイズを計算し、これは、イベントサイズと、根本的なメッセージングシステムの許容最大メッセージサイズおよび絶対サイズシーリングのうちのより小さい方の間の差分に基づいて計算することができる。イベントは、「ルーティングスリップ」データ用のいくつかの最小のヘッドルームがあるような寸法で限定される。
【００６９】
[0081]ルーティングスリップ１２８は、ターゲット１０２の記述を含むリストである。ルーティングスリップは、イベントの範囲をパーティションのストア１２４内に保持されたターゲット１０２に対して一致させる検索クエリーを行ない、イベントの範囲、およびイベントデータに関するフィルタリング条件に基づく選択を狭める別の条件の集合に一致する全てのターゲット１０２を返すことによって、分配エンジン１２２により作り出される。実施形態は、これらのフィルタ条件の中で、現在の瞬間に有効であると考えられるこれらのターゲット１０２に結果を制限する時間ウィンドウ条件を含むことができる、これは、現在のＵＴＣ時間はターゲット記述記録に含まれた開始／終了有効性時間ウィンドウ内にあるということを意味する。この能力は、本文書でのちに記載するブラックリスト化に使用される。検索結果が詳しく検討されると、エンジンはイベント１０４のコピーを作り出し、ルーティングスリップ１２８を最大のサイズまで、ストア１２４から取り出したターゲット記述で満たし、その後、イベントおよびルーティングスリップの得られたバンドルをパーティションの「配信キュー１３０」に加える。
【００７０】
[0082]ルーティングスリップ技術は、分配エンジン１２２から（１つまたは複数の）配信エンジン１０８までのイベントのイベント流速が、根本的なインフラ上の実際のメッセージ流量より高いことを保証し、これは例えば、３０個のターゲット記述をイベントデータのそばでルーティングスリップ１２８内に詰めることができる場合に、イベント／ターゲット対の流速は、イベント／ターゲット対が直ぐにメッセージにグループ化された場合よりも３０倍高いということを意味する。
【００７１】
[0083]配信エンジン１０８は、配信キュー１３０からのイベント／ルーティングスリップバンドル１２６の消費者である。配信エンジン１０８の役割は、これらのバンドルをキューから取り除き、イベント１０４をルーティングスリップ１２８内に挙げられた全ての宛先に配信することである。配信は普通、イベントメッセージをそれぞれのターゲットインフラによって理解される通知メッセージに形式化するアダプタを通して起こる。例えば、通知メッセージは、ウィンドウズ（登録商標）７フォン用のＭＰＮＳフォーマット、ｉＯＳデバイス用のＡＰＮ（アップルプッシュ通知）フォーマット、アンドロイドデバイス用のＣ２ＤＭ（クラウドツーデバイスメッセージング）フォーマット、デバイス上のブラウザ用のＪＳＯＮ（ジャバスクリプトオブジェクトノーテーション）フォーマット、ＨＴＴＰ（ハイパーテキスト転送プロトコル）などで配信することができる。
【００７２】
[0084]配信エンジン１０８は普通、独立したターゲット１０２にわたる配信を並列化し、ターゲットインフラによって実施される範囲を共有するターゲット１０２への配信を直列化する。後者の例は、配信エンジン内の特定のアダプタが、単一のネットワーク接続を通して特定の通知プラットフォーム上の特定のターゲットアプリケーションでターゲット化された全てのイベントを送信することを選択することができるということである。
【００７３】
[0085]分配および配信エンジン１２２および１０８は、配信キュー１３０を使用して切り離されて、配信エンジン１０８の独自のスケーリングが可能になり、配信が減速されるのを防ぎ、分配クエリー／パッキングステージをブロックする。
【００７４】
[0086]各分配パーティション１２０は、配信キュー１３０を同時に観察するあらゆる数の配信エンジン例を有することができる。配信キュー１３０の長さを使用して、いくつの配信エンジンが同時にアクティブであるかを判断することができる。キューの長さが特定の閾値と交差する場合、新しい配信エンジン例がパーティション１２０に加えられて、送信スループットを大きくすることができる。
【００７５】
[0087]分配パーティション１２０、および関連する分配および配信エンジン例を、高いスケールでの最適な並列化を達成するために、実質的に無制限の方法でスケールアップさせることができる。ターゲットインフラが、並列の方法でデバイスに１００万のイベント要求を受信および転送することが可能である場合、記載されたシステムは、その配信インフラにわたってイベントを分配することが可能である、潜在的には、ターゲットインフラに負荷がかけられ、あらゆる許可された配信割当が与えられるのを可能にするのと同じだけタイムリーに、全ての所望のターゲット１０２への配信のためのイベント提示でターゲットインフラを飽和させることができる方法で、データセンタにわたってネットワークインフラおよび帯域幅を利用することが可能である。
【００７６】
[0088]メッセージがそれぞれのインフラアダプタを介してターゲット１０２に配信されると、いくつかの実施形態では、システムは統計情報アイテムの範囲に注意する。これらの中で、配信バンドルの受け取りと、あらゆる個別のメッセージの配信の間の継続時間、および実際の送信動作の継続時間に対する期間が測定される。また、統計情報の一部は、配信が成功したか失敗したかに関する指標である。この情報は、配信エンジン１０８内で収集され、範囲毎およびターゲットアプリケーション毎に、平均値に丸められる。「ターゲットアプリケーション」は、統計ロールアップの特定の目的で導入されたグループ化識別子である。計算された平均値は、規定のインターバルで配信統計キュー１４６に送信される。このキューは、ある範囲の目的でデータ倉庫にイベントデータを提示する、管理サービス１４２内の労働者（の集合）によって流出される。これらの目的は、操作監視に加えて、イベントが配信されるテナントの請求、および／または第三者の独自の請求に対するテナントへの統計の開示を含むことができる。
【００７７】
[0089]配信エラーが検出されると、これらのエラーは一時的および永久的エラー状態に分類される。一時的エラー状態としては、例えば、システムがターゲットインフラの配信ポイントに到達することができないネットワーク故障、または配信割当に一時的に到達したことを報告するターゲットインフラを挙げることができる。永久的エラー状態としては、例えば、ターゲットインフラ上の認証／許可エラー、またはターゲットがもはや利用可能ではないまたは永久的にメッセージを受けたくないということをターゲットインフラが報告する人的介入およびエラー状態なしで直すことができない他のエラーを挙げることができる。いったん分類されると、エラーレポートが配信失敗キュー１４８に提示される。一時的エラー状態では、エラーはまた、エラー状態が解決されることが予測されるまで、絶対ＵＴＣタイムスタンプを含むことができる。同時に、ターゲットは、この配信エンジン例によってあらゆるさらなるローカル配信に対するターゲットアダプタにより局所的にブラックリスト化される。ブラックリストはまた、タイムスタンプを含むことができる。
【００７８】
[0090]配信失敗キュー１４８は、管理役割で労働者（の集合）によって流出される。永久的エラーは、それぞれのターゲットを、管理役割がアクセスを有するそれぞれの分配パーティションストア１２４から直ぐに削除させる可能性がある。「削除」とは、記録が実際に取り除かれる、または別の方法では、規則がその有効期間の「終了」タイムスタンプをエラーのタイムスタンプに設定することによって、検索クエリーから見えないように単に移動されることを意味することがある。一時的エラー状態は、エラーによって示された期間だけターゲットを停止させる可能性がある。停止は、エラー状態が直ると予測される、エラーに示されたタイムスタンプまでターゲットの有効性期間を移動させることによって行なうことができる。
【００７９】
[0091]図９は、取得パーティション１４０が分配トピック１４４を通して分配パーティション１２０に結合されるシステムの概略図を示す。
[0092]以下の議論は次に、行なうことができる多くの方法および方法動作に言及する。方法動作は、特定の順序で議論される、または特定の順序で起こるようにフローチャートで示されることがあるが、動作は行なわれている動作の前に完了している別の動作に左右されるので、特に記されているまたは必要でない限り、特定の順序は必要ではない。
【００８０】
[0093]図１０は、方法１０００を示す。方法１０００は、計算システムで実施することができる。方法１０００は、データを配信する動作を含む。この方法は、特定の時点で、時間に関して、データの相対的金融価値を判断するステップを含む（動作１００２）。データは、時間の関数として判断することができる。例えば、図１を参照すると、データは、時間ｔ＝０でその最も高い値を、ｔ＝１５分で最も低い値を有する。したがって、特定の時間で、データは特定の値を有する。特定の時点で、この値を判断することができる。
【００８１】
[0094]方法１０００はさらに、判断された金融価値に基づいて、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップを含む（動作１００４）。例えば、一部の消費者はデータに対して割増金を支払う可能性があり、したがって、データの配信はできるだけ時間ｔ＝０に近くなるように試みられる。その他の消費者はデータに対してより少なく支払う可能性があり、それによって、データは、少なく支払いをしているこれらの消費者のレベルに対応する、ｔ＝０の後のある時に配信されるように試みられる。
【００８２】
[0095]方法１０００は、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップが、エンドユーザとのサービスレベル契約にしたがって、データをエンドユーザ消費者デバイスに提供するステップを含む場合に、実施することができる。
【００８３】
[0096]方法１０００は、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップが、異なる階層化レベルにしたがって、データを異なるエンドユーザ消費者デバイスに提供するステップを含む場合に、実施することができる。例えば、図５は、どのように異なる層のデータの新しさを使用して、消費者デバイスを通して消費者にデータを提供することができるかを示す。
【００８４】
[0097]方法１０００は、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップが、データの意図的な遅延配信にデータをゲーティングするステップを含む場合に、実施することができる。例えば、サービスのレベルまたは消費者の優先度のレベルに基づいて、その価値を下げるように、データを意図的に遅らせることができる。
【００８５】
[0098]方法１０００は、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップは、加入者によって支払われた金額に基づいてエンドユーザ消費者デバイスにデータを提供するステップを含む場合に、実施することができる。例えば、一部の消費者は、ある金額を支払ったことに基づいて、より新しいデータを受信することができる。同様に、より高い支払いの結果、より新しいデータが消費者デバイスに配信されることにつながる可能性がある。
【００８６】
[0099]方法１０００は、金融価値に相関する消費者用の１つまたは複数のエンドユーザ消費者デバイスの集合にデータを提供するステップは、１つまたは複数のエンドユーザ消費者デバイスにデータを配信するために複数のインフラからインフラを選択することによってデータを提供するステップを含み、インフラの選択は、優先度が高い加入者に優先度が高いインフラを選択するために行なわれる場合に、実施することができる。例えば、優先度が高いインフラが、データを他のインフラより迅速にこれらを通して配信することを可能にする特性を有するという点において、いくつかのインフラは他のインフラより優先度が高い可能性がある。したがって、より高い階層化またはより高い優先度の加入者は、より低い階層化またはより低い優先度の加入者と比べて、他のインフラ上でデータを受信するのと反対に、優先度が高いインフラを通してデータを受信することができる。
【００８７】
[00100]方法１０００はさらに、どのようにデータがエンドユーザ消費者デバイスに提供されたかに関する統計を、データプロバイダに提供するステップを含むことができる。例えば、図３に示すように、統計２０８を、データプロバイダ２０４に提供することができる。これにより、データプロバイダが、どのようにデータが提供されたかにしたがって、加入者にデータについて請求することが可能になる。
【００８８】
[00101]次に図１１を参照すると、別の方法１１００が示される。方法１１００は、計算システムで実施することができる。方法１１００は、データを配信する動作を含む。方法１１００は、データの消費者に対する消費者層を判断するステップを含む（動作１１０２）。例えば、図５は、異なる消費者に対する異なる階層化を示す。方法１１００はさらに、消費者層に一致するように消費者層に相関するエンドユーザデバイスにデータを提供する前に、データをエージングするステップを含む（動作１１０４）。例えば、消費者層に一致するように十分遅らされるまで、データを消費者に意図的に送信しないことがある。これは、時間の経過とともに価値が下がるデータを示す図１を参照して、理解することができる。したがって、より低い層の消費者は、その配信を遅らせることによってより価値が低くされた、より低い価値のデータを受信する可能性がある。同様に、方法は、より低い層の消費者への配信のために、古いものとして価値が下がったデータの外部に、データ自体の品質を意図的に下げるステップを含むことができる。
【００８９】
[00102]方法１１００は、データをエージングするステップが、エンドユーザとのサービスレベル契約にしたがって、エンドユーザ消費者デバイスに対するデータをエージングするステップを含む場合に、実施することができる。
【００９０】
[00103]方法１１００は、データをエージングするステップが、異なる階層化レベルにしたがって、異なるエンドユーザ消費者デバイスに対するデータをエージングするステップを含む場合に、実施することができる。例えば、図５は、どのように異なる層のデータの新しさを使用して、消費者デバイスを通して消費者にデータを提供することができるかを示す。
【００９１】
[00104]方法１１００は、データをエージングするステップが、データの意図的な遅延配信にデータをゲーティングするステップを含む場合に、実施することができる。例えば、サービスのレベルまたは消費者の優先度のレベルに基づいて、その価値を下げるように、データを意図的に遅らせることができる。
【００９２】
[00105]方法１１００は、データをエージングするステップが、加入者によって支払われた金額に基づいてエンドユーザ消費者デバイスに対するデータをエージングするステップを含む場合に、実施することができる。例えば、一部の消費者は、ある金額を支払ったことに基づいて、より新しいデータを受信することができる。同様に、より高い支払いの結果、より新しいデータが消費者デバイスに配信されることにつながる可能性がある。
【００９３】
[00106]方法１１００は、データをエージングするステップが、１つまたは複数のエンドユーザ消費者デバイスにデータを配信するために複数のインフラからインフラを選択することによってデータを提供するステップを含み、インフラの選択は、優先度が高い加入者に優先度が高いインフラを、および優先度が低い加入者に優先度が低いインフラを選択するために行なわれる場合に、実施することができる。例えば、優先度が高いインフラが、データを他のインフラより迅速にこれらを通して配信することを可能にする特性を有するという点において、いくつかのインフラは他のインフラより優先度が高い可能性がある。したがって、より高い階層化またはより高い優先度の加入者は、より低い階層化またはより低い優先度の加入者と比べて、他のインフラ上でデータを受信するのと反対に、優先度が高いインフラを通してデータを受信することができる。
【００９４】
[00107]方法１００はさらに、どのようにデータがエンドユーザ消費者デバイスに提供されたかに関する統計を、データプロバイダに提供するステップを含むことができる。例えば、図３に示すように、統計２０８を、データプロバイダ２０４に提供することができる。これにより、データプロバイダが、どのようにデータが提供されたかにしたがって、加入者にデータについて請求することが可能になる。
【００９５】
[00108]さらに、方法は、１つまたは複数のプロセッサ、およびコンピュータメモリなどのコンピュータ読取可能媒体を含むコンピュータシステムによって実施させることができる。特に、コンピュータメモリは、実施形態で言及した活動などの、１つまたは複数のプロセッサによって実行される場合に様々な機能を行なわせるコンピュータ実行可能指示を記憶することができる。
【００９６】
[00109]本発明の実施形態は、以下により詳細に論じるように、コンピュータハードウェアを含む専用または汎用コンピュータを備える、または利用することができる。本発明の範囲内の実施形態はまた、コンピュータ実行可能指示および／またはデータ構造を担持または記憶するための物理的または他のコンピュータ読取可能媒体を含む。このようなコンピュータ読取可能媒体は、汎用または専用コンピュータシステムによってアクセスすることができるあらゆる市販の媒体であってもよい。コンピュータ実行可能指示を記憶するコンピュータ読取可能媒体は、物理的記憶媒体である。コンピュータ実行可能指示を担持するコンピュータ読取可能媒体は、伝達媒体である。したがって、限定ではなく例として、本発明の実施形態は、少なくとも２つの個別の異なる種類のコンピュータ読取可能媒体、物理的コンピュータ読取可能記憶媒体および伝達コンピュータ読取可能媒体を備えることができる。
【００９７】
[00110]物理的コンピュータ読取可能記憶媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光学ディスク記憶装置（ＣＤ、ＤＶＤなど）、磁気ディスク記憶装置または他の磁気記憶デバイス、またはコンピュータ実行可能指示またはデータ構造の形の所望のプログラムコード手段を記憶するのに使用することができ、汎用または専用コンピュータによってアクセスすることが可能なあらゆる他の媒体が挙げられる。
【００９８】
[00111]「ネットワーク」は、コンピュータシステム、および／またはモジュール、および／または他の電子デバイス間の電子データの移送を可能にする１つまたは複数のデータリンクとして定義される。情報がコンピュータにネットワークまたは別の通信接続（有線、無線、または有線または無線の組合せのいずれか）上で伝達または提供される場合、コンピュータは接続を伝達媒体として適切に見る。伝達媒体は、コンピュータ実行可能指示またはデータ構造の形で所望のプログラムコード手段を担持するために使用することができ、汎用または専用コンピュータによってアクセスすることができる、ネットワークおよび／またはデータリンクを含むことができる。上記の組合せはまた、コンピュータ読取可能媒体の範囲内に含まれる。
【００９９】
[00112]さらに、様々なコンピュータシステム構成部品に到達する際に、コンピュータ実行可能指示またはデータ構造の形のプログラムコード手段は、伝達コンピュータ読取可能媒体から物理的コンピュータ読取可能記憶媒体に伝達させることができる（または、逆も同様である）。例えば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能指示またはデータ構造は、ネットワークインターフェイスモジュール（例えば、「ＮＩＣ」）内でＲＡＭにバッファリングさせ、その後、コンピュータシステムでコンピュータシステムＲＡＭおよび／または揮発性が低いコンピュータ読取可能物理的記憶媒体に次第に伝達させることができる。したがって、コンピュータ読取可能物理的記憶媒体は、また（または、一次的にでさえも）伝達媒体を利用するコンピュータシステム構成部品内に含めることができる。
【０１００】
[00113]コンピュータ実行可能指示は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の機能または機能のグループを行なわせる指示およびデータを含む。コンピュータ実行可能指示は例えば、アセンブリ言語、またはさらにはソースコードなどのバイナリ、中間フォーマット指示であってもよい。主体を構造的特性および／または方法的活動に特有の言語で記載したが、添付の特許請求の範囲で定義された主題は、上に記載した特性または活動に必ずしも限定されるものではないことを理解されたい。むしろ、記載した特性および活動は、特許請求の範囲を実施する例示的形として開示されている。
【０１０１】
[00114]当業者は、本発明を、パソコン、デスクトップコンピュータ、ノートパソコン、メッセージプロセッサ、手持ち式デバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチなどを含む、多くのタイプのコンピュータシステム構成でのネットワーク演算環境で実施することができることが分かるだろう。本発明はまた、ネットワークを通して（有線データリンク、無線データリンク、または有線および無線データリンクの組合せのいずれかによって）リンクされた、ローカルおよび遠隔コンピュータシステムが両方ともタスクを行なう分配されたシステム環境で実施することができる。分配されたシステム環境では、プログラムモジュールは、ローカルおよび遠隔メモリ記憶デバイスの両方に配置させることができる。
【０１０２】
[00115]本発明は、その精神および特徴から逸脱することなく、他の特定の形で具体化させることができる。記載した実施形態は、全ての態様において、単に例示的なものであり、限定するものではないと考えられるものとする。本発明の範囲はしたがって、前述の説明よりむしろ、添付の特許請求の範囲によって示される。特許請求の範囲の均等の意味および範囲内にある全ての変更は、その範囲内に含まれるものである。
【図１】
2014530402.tif 000003
【図２】
2014530402.tif 000004
【図３】
2014530402.tif 000005
【図４】
2014530402.tif 000006
【図５】
2014530402.tif 000007
【図６】
2014530402.tif 000008
【図７】
2014530402.tif 000009
【図８】
2014530402.tif 000010
【図９】
2014530402.tif 000011
【図１０】
2014530402.tif 000012
【図１１】
2014530402.tif 000013
【国際調査報告】
2014530402.tif 000014
2014530402.tif 000015