様々な実施形態は、セルラーネットワーク上のモバイルデバイスに対するコンテキスト特有のデータプランを提供し実施する技術を対象とする。モバイルデバイスは、多様なモバイルアプリケーションを実行することができる。これらのモバイルアプリケーションの多くは、ネットワークデータを使用してその動作を実行する。残念ながら、ユーザがセルラー音声プランで有する割り当てられた時間とは異なり、ユーザはモバイルアプリケーションによって実行されるデータアクセスをかなり意識したりコントロールしたりすることはできない。例えば、ユーザは、ユーザのセルラーデータ割り当ての大部分または全部を吸収するか、または代替的または追加的にデータ使用料金を生成する著しいデータアクセスのために、無料または低コストのビデオストリーミングアプリケーションを使用するのが高価であることを認識している。ユーザがセルラーデータのブロックを購入する(例えば、50メガバイトのセルラーデータ割り当てを購入する)場合、ユーザは、データ集約型アプリケーションを動作させるために、追加のブロックを頻繁に購入していることを認識している。さらに、データ集約型アプリケーションがユーザの割り当てを使い果たした場合、ユーザが追加のデータ割り当てを購入するまで、よりあまり多くないデータ使用量を有する他のアプリケーションが動作しないようにすることができる。
このように、ユーザは、設定された期間、無制限のデータアクセスを提供するアプリケーション特有のデータプランまたはリソース特有のデータプランを購入する権限を与えられることによって利便性を得ることができる。例えば、ユーザは、30日間、マルチプレーヤゲームアプリケーションに無制限のセルラーデータアクセスを提供するデータプランを購入することができる。ユーザは、トーナメントの期間中、サッカートーナメントに関するビデオの無制限ストリーミングを提供するデータプランを購入することができる。ユーザは、ボイスオーバーインターネットプロトコル(VoIP:Voice over Internet Protocol)アプリケーションの導入期間中にVoIPアプリケーション用の試用版の30分間無制限データプランを提供するデータプランを購入することができる。これらのプランは、従来のデータ割り当てと組み合わせて機能して、特定のデータプランを有するアプリケーションまたはリソースに対応していないセルラーデータの使用がデータ割り当てに対して引き落とされ、特定のデータプランを有するアプリケーションまたはリソースに対応しているセルラーデータの使用はデータ割り当てに対して引き落とされず、モバイルデバイスのデータ割り当てが消費された場合であっても処理を進めることができる。無制限に昇格されたプランは、プラン上の通常の使用以上に設定された制限を有することが理解されよう。例えば、ビデオストリーミングデータプランは、かなりのビデオストリーミングを提供することができるが、24時間365日のビデオストリーミングに適用することはできない。
これらのデータプランは、データプランが特定のコンテキストにおいて無制限のセルラーデータの使用がユーザに認可されている場合に使用されるセルラーデータの予測量に従って課金されてもよい。例えば、ビデオストリーミングアプリケーションのためのデータプランは、ビデオストリーミングアプリケーションによって生成されると予測されるネットワークトラフィックの量が多いため、同じ長さのテキストベースのメッセージングアプリケーションのデータプランよりも高い価格になり得る。このことは、セルラーネットワークを使用して様々なアプリケーションを使用し、かつ様々なリソースにアクセスするためのコストをユーザに透過的に事前に通知しつつ、セルラープロバイダーがネットワークの使用に対して適切に補償することを確実にするのに役立つ。セルラープロバイダーは、顧客がデータの使用に関してより知識およびコントロールが高まり、ネットワークの使用において顧客の信頼が高まるため、セルラーネットワークの利用が増加し、関連する収益が増加するということにさらに役立つ。
以下では図面を参照し、図面では、類似の要素は、全体を通して同様の参照符号を用いて示している。以下の説明では、その完全な理解を与えるため、説明を目的として、様々な具体的詳細について記載している。しかしながら、これら特定の詳細を省いても、新規な実施形態を実施できることは明らかであろう。一方で、周知の構造およびデバイスについては、その説明を容易とするために、ブロック図の形式で示している。その意図は、請求項に係る主題に矛盾しないあらゆる変更、均等物、および代替案を包括することである。
図1は、選択的ゼロレーティングシステム100に関するブロック図を示す。一実施形態では、ゼロレーティングシステム100は、1つまたは複数のコンポーネントを含むソフトウェアアプリケーションを有するコンピュータ実装システムを含み得る。図1に示す選択的ゼロレーティングシステム100は、特定のトポロジにおいて限定された数の要素を有するが、選択的ゼロレーティングシステム100は、所与の実施に関して所望されるように、代替トポロジにおいてより多くのまたはより少ない要素を含むことができることが理解されよう。
本明細書で使用される「a」および「b」および「c」および同様の記号は、任意の正の整数を表す変数であることを意図していることに留意されたい。したがって、例えば、実施においてa=5の値が設定される場合、コンポーネント122−1〜122−aとして示される全部の組のコンポーネント122は、コンポーネント122−1,122−2,122−3,122−4,および122−5を含む。実施形態は、これに限定されない。
モバイルデバイス120は、ネットワークを介してアクセスされるネットワークデータを使用して様々な動作を実行する。モバイルデバイス120は、セルラー信号135を使用してセルラーシステム130にアクセスする。セルラーシステム130は、データアクセスを含むセルラーネットワークであってもよく、セルラーシステム130は、モバイルデバイス120のユーザがサービス契約したセルラープロバイダーによって提供され、サービス契約は、モバイルデバイス120に対するセルラーデータサーバー用のものである。セルラーシステム130は、ネットワークを介して転送されるデータの量に少なくとも部分的に従ってデータアクセスが課金される計量型ネットワークであってもよい。セルラーデータサービス契約は、セルラーデータ割り当てが使用前に購入され、セルラーデータの割り当てが使い果たされると、一般的なセルラーデータアクセス(例えば、非ゼロレーティングのアドレスへのセルラーデータアクセス)が中断される特定の割り当てを提供するプリペイド契約であってもよい。セルラーデータサービス契約は、長期セルラーデータアクセスを提供するサブスクリプション契約であってもよい。サブスクリプション契約は、セルラーデータ割り当てを含むが、さらなる使用によって追加料金が発生するセルラーデータ割り当ての使い果たしを超えるセルラーデータ使用を可能にする。例えば、セルラーデータサブスクリプションには月単位で1GBのセルラーデータが含まれ、割り当てに対して引き落とされないゼロレーティングのリソースへのアクセスがあり、毎月使用されるセルラーデータの最大または部分的な追加ギガバイトごとに追加料金が発生する。
モバイルデバイス120は、Wi−Fi信号145を使用して1つまたは複数のWi−Fiアクセスポイント140にアクセスしてもよい。Wi−Fiアクセスポイント140は、複数の異なるオペレータによって提供されてもよい。いくつかのWi−Fiアクセスポイント140は、国内のインターネット接続に基づいてモバイルデバイス120のユーザによって操作されるホームWi−Fiネットワークなどの個人的なものであってもよい。いくつかのWi−Fiアクセスポイント140は、無料であるか、またはコーヒーショップ、ホテル、および他の公共の宿泊施設における無料のWi−Fiサービスのようなサービスの無料部分として提供されてもよい。いくつかのWi−Fiアクセスポイント140は、使用のために支払いを要求することができる。しかしながら、Wi−Fiアクセスポイント140は、一般的には、アクセスが無料であるか有料であるかにかかわらず、Wi−Fiアクセスポイント140の使用に対してネットワークを介して転送されるデータ量に基づいて料金が発生しない非計量型ネットワークである。
モバイルデバイス120は、ネットワークサーバー170上にホストされたネットワークリソース180にアクセスすることができる。ネットワークリソース180は、任意のネットワークアクセス可能なリソースを含む。ネットワークリソース180は、ビデオダウンロード、ビデオストリーム、音楽ダウンロード、ウェブページビュー、またはネットワークを介したデータの他のレセプションの受信など、モバイルデバイス120によって取得されてもよい。ネットワークリソース180は、画像、ビデオ、オーディオファイル、テキストメッセージ、またはネットワークを介したデータの任意の他の送信のアップロードなど、ネットワークサーバー170に格納する。ネットワークリソース180へのアクセスは、要求の送信および応答の受信、データの送信および応答データの受信、またはネットワークを介した他の双方向データ交換などの、データの送信および受信の両方を含む。モバイルデバイス120は、様々な状況において、ネットワークサーバー170上のネットワークリソース180にアクセスするために、セルラーシステム130またはWi−Fiアクセスポイント140のいずれかを使用する。
モバイルデバイス120は、任意の中間プロキシサーバーを使用することなく、ネットワークサーバー170と通信することができる。モバイルデバイス120は、ネットワークトランザクションがプロキシサーバーを通過することなく、ネットワークサーバー170にアクセスするために、セルラーシステム130またはWi−Fiアクセスポイント140のいずれかを使用する。いくつかの実施形態では、セルラーシステム130およびWi−Fiアクセスポイントの一方または両方は、その動作について内部のプロキシサーバーを使用し、この場合、ネットワークサーバー170への直接アクセスは、Wi−Fiアクセスポイント140またはセルラーシステム130の外部のサードパーティプロキシサーバーを使用しないアクセスとして解釈される。
いくつかのセルラーアクセスは、「ゼロレーティング」であってもよい。ゼロレーティングのセルラーアクセスは、セルラー顧客のプランまたはプリペイド購入に含まれ得る、制限付きの無料セルラーデータ通信に寄与しない場合がある。ゼロレーティングのセルラーアクセスは、たとえその顧客が割り当てられたまたはプリペイドのセルラーデータアクセスの制限された量を超えていても、またはそのような、割り当てられるか、またはプリペイドのセルラーデータアクセスが存在しない場合であっても、セルラー顧客に対して料金が発生しない。ゼロレーティングのセルラーアクセスは、アクセスされる特定のネットワークに依存し、セルラー電話事業者は、セルラー顧客がゼロレーティングのアクセスを有する1つまたは複数のネットワークアドレス(例えば、インターネットプロトコル(IP)アドレス等)のリストを有する。このリストはセルラー電話事業者によって異なる場合がある。
ネットワークサーバー170は、セルラーシステム130とゼロレーティングでなくてもよい。その場合、セルラーシステム130を使用したネットワークリソース180を含むネットワークサーバー170への任意の直接アクセスは、データ割り当ての使用が生じることとなる。したがって、モバイルデバイス120は、可能であれば、ゼロレーティングのプロキシサーバー150を使用してネットワークサーバー170および他の非ゼロレーティングのデバイスにアクセスすることによって恩恵を受けることができる。セルラーシステム130を介したモバイルデバイス120によるゼロレーティングのプロキシサーバー150へのデータアクセスは、ゼロレーティングのプロキシサーバー150によりデータ割り当ての使用が生じない。ゼロレーティングのプロキシサーバー150は、モバイルデバイス120に代わりネットワークサーバー170およびネットワークリソース180にアクセスするように動作する。ゼロレーティングのプロキシサーバー150がセルラーシステム130の外部にあるので、セルラープロバイダーは、ネットワークサーバー170とのデータ交換に対してゼロレーティングのプロキシサーバー150のオペレータに請求または引き落としを行わない。ゼロレーティングのプロキシサーバー150は、セルラーシステム130とはゼロレーティングであるため、セルラープロバイダーは、ゼロレーティングのプロキシサーバー150とのデータ交換に対してモバイルデバイス120のユーザに請求または引き落としを行わない。ゼロレーティングのプロキシサーバー150とのネットワーク交換によりネットワークサーバー170へのプロキシアクセスが可能となる場合、ゼロレーティングのプロキシサーバー150の使用により、ネットワークサーバー170がセルラーシステム130によってゼロレーティングとなっていなくても、モバイルデバイス120によるネットワークサーバー170およびネットワークリソース180へのゼロレーティングアクセスが可能となる。
しかしながら、セルラーシステム130は、ゼロレーティングのプロキシサーバー150が、ネットワークトランザクションのコンテキストに関連する1つまたは複数のコンテキスト特有のデータプランを有するモバイルデバイス120に対するネットワークトランザクションに関するプロキシとしてのみ動作することに同意する場合には、ゼロレーティングのプロキシサーバー150をゼロレーティングとすることができる。したがって、ゼロレーティングのプロキシサーバー150は、コンテキスト特有のデータプランを実施するためのメカニズムとして機能する。コンテキスト特有のデータプランでは、モバイルデバイス120のための1つまたは複数のコンテキスト特有のデータプランの下で提供されるセルラーデータトラフィックは、データ料金またはデータ割り当ての引き落としを避けるためにゼロレーティングのプロキシサーバー50を介して調整され、モバイルデバイス120のためのコンテキスト特有のデータプランの下で提供されていないセルラーデータトラフィックはゼロレーティングのプロキシサーバー150の使用から除外される。
いくつかの実施形態では、モバイルデバイス120は、計量型ネットワーク上にあるかどうかに関わらず、プロキシサーバーと共に使用することができる。プロキシサーバーは、データ料金およびデータ割り当ての引き落としを回避するという利点を除いて、モバイルデバイス120に利便性を提供することができる。たとえば、プロキシサーバーは、帯域幅を削減するためにメディアをトランスコードし、パフォーマンスを向上させるためにキャッシュを実行し、その他の利点を提供し得る。その場合、モバイルデバイス120は、Wi−Fiアクセスポイント140によって提供されるネットワークのような計量されていないネットワークを使用する場合、非ゼロレーティングのプロキシサーバー160を使用することができる。同様に、非ゼロレーティングのプロキシサーバー160は、モバイルデバイス120がゼロレーティングの利益を受けることを認可されていない(即ち、コンテキスト特有のデータプランがトランザクションに関係しない)ネットワークトランザクションのためのセルラーシステム130のような計量型ネットワークを使用する場合に使用される。ゼロレーティング以外のこれらの同様の利点は、トランザクションに使用されているときにゼロレーティングのプロキシサーバー150によって提供される。
図2は、選択的ゼロレーティングシステムで使用するためのモバイルデバイス120の実施形態を示す。モバイルデバイス120は、複数のアプリケーション260、サービス管理アプリケーション250、およびローカルゲートウェイユーティリティ210を実行するように動作する。
ゼロレーティングネットワーク要求165を実行するなど、ネットワークトラフィックを交換することは、ネットワークインタフェースコントローラ(NIC:network interface controller)を介してネットワークトラフィックを送信および受信することを含む。NICは、モバイルデバイス120などのコンピュータデバイスをコンピュータネットワークに接続するハードウェアコンポーネントを備える。NICは、ソフトウェアアプリケーションがNICにアクセスして使用することを可能にするソフトウェアネットワークインタフェースと関連付けられてもよい。ネットワークトラフィックは、データリンクを介して送信される信号としてコンピュータネットワークを介して受信されてもよい。ネットワークトラフィックは、これらの信号をキャプチャし、それらを解釈することによって受信することができる。NICは、コンピュータネットワークを介してネットワークトラフィックを受信し、ネットワークインタフェースアプリケーションプログラミングインタフェース(API:application programming interface)を使用してソフトウェアアプリケーションにアクセス可能なメモリストレージにネットワークトラフィックを転送することができる。モバイルデバイス120は、セルラーシステム130へのアクセスのためのセルラーインタフェース230と、Wi−Fiアクセスポイント140へのアクセスのためのWi−Fiインタフェース240とを含む。
ローカルゲートウェイユーティリティ210は、モバイルデバイス120にプロキシサーバーを使用させ、プロキシサーバーでモバイルデバイス120およびそのアプリケーション260の動作を管理することを可能にするために、モバイルデバイス120上に存在する。プロキシサーバーを介して交換されるモバイルデバイス120のネットワークトラフィックは、ローカルゲートウェイユーティリティ210を介して送信される。ローカルゲートウェイユーティリティ210を介してネットワークトラフィックを交換することは、一般に、モバイルデバイス120にアクセス可能なネットワークへのアクセスを提供するネットワークインタフェースアプリケーションプログラミングインタフェース(API)を使用することを含む。例えば、モバイルデバイス120のクライアントオペレーティングシステム(OS)は、ネットワークインタフェースの優先順位に従って、複数のネットワークインタフェースからネットワークインタフェースを自動的に選択する。
ローカルゲートウェイユーティリティ210は、複数のネットワークインタフェースの中で最も優先度の高いネットワークインタフェースであってもよい。ローカルゲートウェイユーティリティ210は、セルラーインタフェース230よりも高い優先度を有するが、ローカルゲートウェイユーティリティ210によって管理されない他のネットワークインタフェース(例えば、Wi−Fiインタフェース240)よりも低い優先度を有する。代替的に、ローカルゲートウェイユーティリティ210は、すべてのネットワークトラフィックがローカルゲートウェイユーティリティ210を介してチャネルされるように、Wi−Fiインタフェース240よりも高い優先度を有するようにしてもよい。ローカルゲートウェイユーティリティ210は、選択的ゼロレーティングへのアクセスを管理し、ゼロレーティングのプロキシサーバー170を介して非ゼロレーティングのサーバーへのトンネリングによるゼロレーティングが、モバイルデバイス120に対してアクティブなコンテキスト特有のデータプランが提供される場合にのみ実行されることを保証する
いくつかの実施形態では、ローカルゲートウェイユーティリティ210を使用するアプリケーション260は、ローカルゲートウェイユーティリティ210がアプリケーション260に対して優先順位付けされたネットワークインタフェースとなる前に、まずクライアントOSまたはローカルゲートウェイユーティリティ210に登録される。モバイルデバイス120のユーザは、ローカルゲートウェイユーティリティ210がアプリケーション260に対するネットワークインタフェースとして使用される前に、ローカルゲートウェイユーティリティ210に関連するプライバシーポリシーにオプトインする必要がある。
選択的ゼロレーティングシステム100は、ユーザが例えば、適切なプライバシー設定を設定することによりアクションが選択的ゼロレーティングシステム100によって記録されるか、または他のシステム(例えば、サードパーティシステム)によって共有されることをオプトインまたはオプトアウトすることを可能にする認可サーバー(または他の適切なコンポーネント)を含む。ユーザのプライバシー設定は、ユーザに関連するどのような情報が記録されるか、ユーザに関連する情報がどのようにして記録されるか、ユーザに関連する情報がいつ記録されるか、ユーザに関連する情報を誰が記録するか、ユーザに関連する情報が誰と共有されるか、およびどのような目的でユーザに関連する情報が記録されまたは共有されるかを決定することができる。認可サーバーまたは他の認可コンポーネントは、ブロッキング、データハッシュ、匿名化、または他の適切な技術を適切に用いて、プロキシサーバー150,160のユーザの1つまたは複数のプライバシー設定を可能にするために使用されてもよい。
ローカルゲートウェイユーティリティ210は、モバイルデバイス120上の複数のアプリケーション260のうちの一つのアプリケーションからネットワーク要求を受信し、ネットワーク要求がモバイルデバイス120に関するコンテキスト特有のデータプランに対応することを決定し、コンテキスト特有のデータプランは、ゼロレーティングのプロキシサーバー150を介してネットワーク要求の実行を認可するものであり、ゼロレーティングのプロキシサーバー150を仲介として使用してアプリケーションに関するネットワーク要求を実行する。ローカルゲートウェイユーティリティ210およびアプリケーションは、両方ともモバイルデバイス120上でローカルに実行されてもよい。
ローカルゲートウェイユーティリティ210は、モバイルデバイス120上のデータプランキャッシュ220から複数のキャッシュされたコンテキスト特有のデータプランを取り出す。データプランキャッシュ220は、ネットワークリソースを使用することなく高速アクセスを行うために、モバイルデバイス120に対するアクティブなコンテキスト特有のデータプランをモバイルデバイス120に対してローカルに格納する。いくつかの実施形態では、データプランキャッシュ220は、非アクティブなコンテキスト特有のデータプランも含み、非アクティブなコンテキスト特有のデータプランは、モバイルデバイス120のユーザに非アクティブなコンテキスト特有のデータプランを潜在的に提案することを予期してデバイス上にキャッシュされる。ローカルゲートウェイユーティリティ210は、アプリケーションを複数のキャッシュされたコンテキスト特有のデータプランと照合して、ゼロレーティングのプロキシサーバー150を介したネットワーク要求の実行を認可するコンテキスト特有のデータプランを決定する。この特定されたコンテキスト特有のデータプランは、ゼロレーティングのプロキシサーバー150の使用によるネットワーク要求のゼロレーティングを認可するアプリケーション特有のデータプランを含み、この認可は、特定の期間に関連付けられている。ローカルゲートウェイユーティリティ210は、コンテキスト特有のデータプランのアクティブ期間とモバイルデバイス120にとって既知である現在の日時との間の比較に基づいて特定されたコンテキスト特有のデータプランがアクティブであることを決定するように動作する。要求を実行するアプリケーションは、例えば、受信ネットワーク要求に関するソケット番号を各ソケットを担当するアプリケーションをリスト化したOSソケットテーブルに対して参照することによって識別される。ネットワーク要求は、モバイルデバイス120上のアプリケーションから受信され、コンテキスト特有のデータプランは、モバイルデバイス120がゼロレーティングのプロキシサーバー150を介してアプリケーションのネットワーク要求を実行することが認可されている期間を定義する。
ローカルゲートウェイユーティリティ210は、モバイルデバイス120上のデータプランキャッシュ220から複数のキャッシュされたコンテキスト特有のデータプランを検索し、ネットワーク要求に関連するネットワークアドレスを決定し、ネットワークアドレスを複数のキャッシュされたコンテキスト特有のデータプランと照合してゼロレーティングのプロキシサーバー150を介してネットワーク要求の実行を認可するコンテキスト特有のデータプランを決定する。この特定されたコンテキスト特有のデータプランは、ネットワークアドレス特有のデータプランを含み得る。これは、特定のタイプのネットワークリソース180へのアクセス(例えば、特定のビデオストリーミングサービスを介したストリーミングビデオ)が、その要求の発信元のアプリケーションとは独立して認可される場合に使用される。ネットワーク要求は、ネットワークアドレス宛であってもよく、コンテキスト特有のデータプランは、モバイルデバイス120がゼロレーティングのプロキシサーバー150を介してネットワークアドレス宛のネットワーク要求を実行することを認可されている期間を定義する。
場合によっては、コンテキスト特有のデータプランは、特定のビデオストリームまたはオーディオストリームなどの特定のネットワークリソース180に固有のものであってもよい。例えば、コンサートイベントのビデオストリームへのアクセスを可能にするコンテキスト特有のデータプランが購入される。したがって、ネットワーク要求は、ネットワークリソース180に対応し、コンテキスト特有のデータプランは、モバイルデバイス120がゼロレーティングのプロキシサーバー150を介してネットワークリソース180にアクセスすることを認可されている期間を定義する。
いくつかの実施形態では、ゼロレーティングのプロキシサーバー150を使用するための認可は、遠隔で対応することができる。例えば、データプランキャッシュ220からコンテキスト特有のデータプランを取得するのではなく、認可サーバーに対してチェックが行われる。認可サーバーは、ゼロレーティングのプロキシサーバー150と同じデバイスであってもよく、または別個のデバイスを使用してもよい。認可サーバーは、ゼロレーティングのプロキシサーバー150へのアクセスが認可されているかどうかを決定することに対して、データ料金またはデータ使用の引き落としを避けるためにゼロレーティングであってもよい。ローカルゲートウェイユーティリティ220は、ネットワーク要求に関連するアプリケーションを識別するアプリケーション識別子を決定し、アプリケーション識別子を認可サーバーに送信し、認可サーバーは、ネットワーク要求がゼロレーティングのプロキシサーバー150を介してネットワークリソースへのアクセスを認可するモバイルデバイス120に対するコンテキスト特有のデータプランに対応していることを決定するように動作可能である。ローカルゲートウェイユーティリティ220は、ネットワーク要求に関連するネットワークアドレスを決定し、そのネットワークアドレスを認可サーバーに送信し、認可サーバーは、ネットワーク要求がゼロレーティングのプロキシサーバー150を介してネットワークリソースへのアクセスを認可するモバイルデバイス120に対するコンテキスト特有のデータプランに対応していることを決定するように動作可能である。
モバイルデバイス120上のサービス管理アプリケーション250は、モバイルデバイス120に対するアクティブなコンテキスト特有のデータプランを管理するように動作可能である。サービス管理アプリケーション250は、ユーザが現在のアクティブなコンテキスト特有のデータプランを検討して、追加の現在のアクティブなコンテキスト特有のデータプランを選択し、コンテキスト特有のデータプランに関連するアクティビティを実行する。
図3は、ゼロレーティングのプロキシサーバー150および非ゼロレーティングのプロキシサーバー160の実施形態を示す。
ゼロレーティングのプロキシサーバー150は、データプランストア320にアクセスする。データプランストア320は、ゼロレーティングのプロキシサーバー150によってサービスされるモバイルデバイス120および他のモバイルデバイスに関するコンテキスト特有のデータプランを格納する。データプランストア320は、モバイルデバイスと、それらのモバイルデバイスにおけるアクティブなコンテキスト特有のデータプランとの間の関連付けを格納し得る。データプランストア320は、どのコンテキスト特有のデータプランがアクティブであるかを示し、かつモバイルデバイス120にゼロレーティングのプロキシサーバー150を使用することを認可する、ゼロレーティングのプロキシサーバー150によってサービスされる各モバイルデバイス120に関する記録を格納している。データプランストア320は、ゼロレーティングのプロキシサーバー150にローカルに格納されるか、またはネットワークアクセス可能なストレージなどの別個のデバイスに格納される。例えば、複数のゼロレーティングのプロキシサーバーは、モバイルデバイスに関するデータプランの関連性についてデータプランストア320にアクセスするように動作する全てのゼロレーティングのプロキシサーバーとともに動作状態となり得る。ゼロレーティングのプロキシサーバー150は、ゼロレーティングのプロキシサーバー150に現在アクセスしているモバイルデバイス、ゼロレーティングのプロキシサーバー150を最近使用したモバイルデバイス、またはゼロレーティングのプロキシサーバー150に割り当てられたモバイルデバイスに関するデータプランのキャッシュを含む。
ゼロレーティングのプロキシサーバー150および非ゼロレーティングのプロキシサーバー160は、それぞれユーザデータストア330にアクセスする。ユーザデータストア330は、モバイルデバイスのユーザに関連するデータおよびモバイルデバイスのネットワークアクティビティに関連するデータを格納する。例えば、ユーザデータストア330は、モバイルデバイスによってどのようなアプリケーションが使用されているか、およびモバイルデバイスによってどのようなネットワークリソースがアクセスされているかについて、プロキシサーバー150,160によって記録された情報を格納する。プロキシサーバー150,160のそれぞれのクライアント分析コンポーネント360は、プロキシサーバー150,160によってサービスを受けているモバイルデバイスによるネットワークアクティビティをモニタリングし、ユーザデータストア330にそれらのネットワークアクティビティに関連する情報を記録するように動作する。
モバイルデバイス120は、計量型ネットワーク上にあり、かつアプリケーションのアクティビティに関してゼロレーティングのプロキシサーバー150の使用を認可するアクティブなコンテキスト特有のデータプランをモバイルデバイス120が有している場合にアプリケーションを使用するときに、ゼロレーティングのプロキシサーバー150を使用するように動作する。モバイルデバイス120は、計量型ネットワーク上にあり、かつネットワークサーバー170へのアクセスに関してゼロレーティングのプロキシサーバー150の使用を認可するアクティブなコンテキスト特有のデータプランをモバイルデバイス120が有している場合にネットワークサーバー170にアクセスするときに、ゼロレーティングのプロキシサーバー150を使用するように動作する。モバイルデバイス120は、計量型ネットワーク上にあり、かつネットワークリソース180へのアクセスに関してゼロレーティングのプロキシサーバー150の使用を認可するアクティブなコンテキスト特有のデータプランをモバイルデバイス120が有している場合にネットワークリソース180にアクセスするときに、ゼロレーティングのプロキシサーバー150を使用するように動作する。モバイルデバイス120は、そうでなければ、非ゼロレーティングのプロキシサーバー160を使用するように動作する。
モバイルデバイス120は、アクティブなコンテキスト特有のデータプランがゼロレーティングのプロキシサーバー150の使用を認可するか否かに関わらず、計量型ネットワーク上にないときに、非ゼロレーティングのプロキシサーバー160を使用するように動作する。代替的に、ゼロレーティングのプロキシサーバー150は、非計量型ネットワーク上であっても使用することができる。
モバイルデバイス120は、計量型ネットワーク上または非計量型ネットワーク上のいずれかにあり、かつアプリケーションのアクティビティに関してゼロレーティングのプロキシサーバー150の使用を認可するアクティブなコンテキスト特有のデータプランをモバイルデバイス120が有していない場合にアプリケーションを使用するときに、非ゼロレーティングのプロキシサーバーを使用するように動作可能である。モバイルデバイス120は、計量型ネットワーク上または非計量型ネットワーク上のいずれかにあり、かつネットワークサーバー170へのアクセスに関してゼロレーティングのプロキシサーバー150の使用を認可するアクティブなコンテキスト特有のデータプランをモバイルデバイス120が有していない場合にネットワークサーバー170にアクセスするときに、非ゼロレーティングのプロキシサーバーを使用するように動作可能である。モバイルデバイス120は、計量型ネットワーク上または非計量型ネットワーク上のいずれかにあり、かつネットワークリソース180へのアクセスに関してゼロレーティングのプロキシサーバー150の使用を認可するアクティブなコンテキスト特有のデータプランをモバイルデバイス120が有していない場合にネットワークリソース180にアクセスするときに、非ゼロレーティングのプロキシサーバーを使用するように動作可能である。
プロキシサーバー150,160は、プロキシサービスを実行するためのクライアントプロキシコンポーネント350を備える。プロキシサーバー150,160は、認証手順を使用してプロキシサービスへのアクセスを制限するように動作することができる。モバイルデバイス120は、クライアントプロキシコンポーネント350を認証して、ネットワークアクティビティのトンネリングに関してクライアントプロキシコンポーネント350を使用するためのアイデンティティおよび権限を確認する。いくつかの実施形態では、ソケットセキュア(SOCKS)プロトコルを使用して、モバイルデバイスを認証してプロキシサービスのためのネットワーク通信を実行する。
ゼロレーティングのプロキシサーバー150のクライアントプロキシコンポーネント350は、ネットワークトラフィックを生成するモバイルデバイス120上でアクティブな関連するコンテキスト特有のデータプランを用いて、ネットワークトラフィックに対するプロキシトンネリングのみを提供するようにさらに動作する。クライアントプロキシコンポーネント350は、ネットワークトラフィックの宛先としてネットワークサーバー170またはネットワークリソース180を識別し、データプランストア320がネットワークサーバー170またはネットワークリソース180への計測されないアクセスを可能にするコンテキスト特有のデータプランがモバイルデバイス120に対してアクティブであることを示していると決定し、データプランストア320がコンテキスト特有のデータプランがモバイルデバイス120に対してアクティブであることを示すとの決定に応答して、ネットワークトラフィックおよびネットワークトラフィックに対する任意の応答を転送するように動作する。同様に、クライアントプロキシコンポーネント350は、ネットワークトラフィックを担当するアプリケーションを識別し、データプランストア320がアプリケーションの計量されない使用を認可するコンテキスト特有のデータプランがモバイルデバイス120に対してアクティブであることを示していると決定し、データプランストア320がコンテキスト特有のデータプランがモバイルデバイス120に対してアクティブであることを示しているとの決定に応答して、ネットワークトラフィックおよびネットワークトラフィックに対する任意の応答を転送するように動作する。
いくつかの事例によっては、ネットワークトラフィックを担当するアプリケーションのライブ決定が実用的でない可能性がある。これらの場合、クライアント分析コンポーネント360は、アプリケーションのネットワークアクティビティが完了した後に担当するアプリケーションを遡及的に決定するように動作する。事例によっては、担当するアプリケーションは、ネットワークアクティビティの宛先(例えば、アプリケーションに固有のネットワークサーバー)から明らかとなることがあるが、他の事例では、ネットワークアクティビティ内のパターンに基づいてのみ識別され得る。モバイルデバイス120のローカルゲートウェイユーティリティ210が、認可されていないはずのゼロレーティングのプロキシサーバー150を介してネットワークアクティビティを実行しようとする場合、これは、モバイルデバイス120に関してユーザまたはアプリケーションの開発のために不適切なアクティビティを示すものと解釈され得、さらなる調査のために、警告がゼロレーティングのプロキシサーバー150の管理者に送信される。
いくつかの実施形態では、ローカルゲートウェイユーティリティ210には、プロキシサーバー150,160へのアクセスに使用するためのセキュリティトークンが設けられてもよい。いくつかの実施形態では、購入された各コンテキスト特有のデータプランによって、関連するコンテキスト特有のデータプランを特定するセキュリティトークンがモバイルデバイス120に格納されることとなる。これらの実施形態では、クライアントプロキシコンポーネント350は、どのネットワークアクティビティが認可されるべきかを決定するために、アクセスのためのコンテキスト特有のセキュリティトークンを要求する。ローカルゲートウェイユーティリティ210は、キャッシュされたコンテキスト特有のデータプランがネットワーク要求に適切であるとの決定に応答して、コンテキスト特有のセキュリティトークンを取得し、コンテキスト特有のセキュリティトークンをゼロレーティングのプロキシサーバー150のクライアントプロキシコンポーネント350を介するネットワーク要求の実行に含ませることができる。アプリケーションがコンテキスト特有のセキュリティトークンによって識別される場合、クライアント分析コンポーネント360は、ネットワークアクティビティをアプリケーションに関する既知のトラフィックパターンと比較して、実際のアプリケーションが使用されているかどうかを決定するように動作する。比較により、異なるアプリケーションが実際に使用されていることが示された場合、これは、どのアプリケーションが他のアプリケーションによって偽装されているかを識別するために、ゼロレーティングのプロキシサーバー150の管理者に送信されるアラートで示される。
図4は、コマースサーバー450と対話するモバイルデバイス120の実施形態を示す。コマースサーバー450は、モバイルデバイス120によって使用されて、追加のコンテキスト特有のデータプランを購入し、モバイルデバイス120に関するコンテキスト特有のデータプランを起動する。
コンテキスト特有のデータプランは、複数のチャネルを介してモバイルデバイス120のユーザにプロモートすることができる。一つの事例では、モバイルデバイス120のユーザは、サービス管理アプリケーション250にアクセスする。サービス管理アプリケーション250は、購入可能な複数のコンテキスト特有のデータプランをユーザに提示する。サービス管理アプリケーション250は、1つまたは複数のコンテキスト特有のデータプランのユーザ選択を受け取り、ユーザに代わって選択されたコンテキスト特有のデータプランの購入を実行する。サービス管理アプリケーション250は、データプランの購入に特有であるか、コンテキスト特有のデータプランの購入に特有であるか、またはアプリケーションおよびデバイスなどの追加の商品およびサービスの購入を認可してもよい。プランは、さらにスポット広告、バナー広告、埋め込み広告、SMSメッセージ、音声メッセージ、非構造付加サービスデータ(USSD:Unstructured Supplementary Service Data)、またはプロモーションを伝達するための他の任意のメカニズムを介して伝達されてもよい。
コンテキスト特有のデータプランの購入は、コマースサーバー450との対話を介して実行することができる。いくつかの実施形態では、コマースサーバー450は、ゼロレーティングのプロキシサーバー150のオペレータによって操作され得る。他の実施形態では、コマースサーバー450は、セルラーシステム130のプロバイダーによって操作される。いずれの実施形態においても、コンテキスト特有のデータプランの購入は、ゼロレーティングのプロキシサーバー150のオペレータおよびセルラーシステム130のオペレータとのジョイント対話を介して実行されてもよい。購入されたコンテキスト特有のデータプランは、データプランストア320に格納され、データプランストア320は、コンテキスト特有のデータプランのための正規の信頼できるストアの1つとして機能する。購入されたコンテキスト特有のデータプランは、モバイルデバイス120のアクティブなコンテキスト特有のデータプランへのローカルアクセスのためにデータプランキャッシュ220に格納することもできる。購入は、クレジット取引、銀行口座に対するデビット取引、セルラープロバイダーとのユーザアカウントに対するデビット取引を介して、または購入のための他の技術に従って行われる。いくつかの事例では、ユーザには、コンテキスト特有のデータプランを購入するためのプロモーションローンが提案されることがある。
いくつかの事例において、サービス管理アプリケーション250は、ユーザの一部に対する予測された関心に応じて、モバイルデバイス120のユーザにコンテキスト特有のデータプランをプロモートすることができる。ゼロレーティングのプロキシサーバー150または非ゼロレーティングのプロキシサーバー160などのプロキシサーバーは、モバイルデバイス120に関するネットワークトラフィックをモニタリングして、モバイルデバイス120に関するネットワーク使用履歴を生成する。プロキシサーバーは、ネットワーク使用履歴に基づいてコンテキスト特有のデータプランにおけるユーザの関心を予測する。プロキシサーバーは、予測されたユーザの関心に基づいて、モバイルデバイス120に関するコンテキスト特有のデータプランを、サービス管理アプリケーション250を介する等により提案する。
コンテキスト特有のデータプランは、所与の期間の価格に関連付けられる。プロキシサーバーによるネットワークのモニタリングは、コンテキスト特有のデータプランの価格設定にも使用することができる。これは、コンテキスト特有のデータプランの一般的な価格を設定するために使用されてもよく、代替的に、または付加的に、コンテキスト特有のデータプランに関してユーザ特有の価格を設定するために使用されてもよい。アプリケーションの以前のまたは既存のユーザは、アプリケーションに関して予想されるネットワーク使用量の例を提供し得る。このため、コンテキスト特有のデータプランの価格は、複数のデバイス上のアプリケーションの複数のインストールのネットワーク使用履歴に従って決定されてもよく、ネットワーク使用履歴は、複数のデバイスによって使用される1つまたは複数のプロキシサーバーにおいて生成される。しかしながら、一部のユーザは、平均よりも多くのまたは少ないデータを使用し得るので、ネットワークアクティビティをモニタリングし、それを一般の人口と比較することによって決定するようにしてもよい。このように、コンテキスト特有のデータプランの価格は、モバイルデバイス120上のアプリケーションの予測されるネットワーク使用量、モバイルデバイス120のネットワーク使用履歴に従って生成される予測されるネットワーク使用量、モバイルデバイス120によって使用される一つまたは複数のプロキシサーバーにおいて生成されるネットワーク使用履歴によって決定される。いくつかの実施形態では、ユーザまたはユーザのネットワークアクティビティのモニタリングは、モバイルデバイス120または複数のモバイルデバイス上のローカルゲートウェイユーティリティ210によって実行されてもよい。
いくつかの事例では、起動されたアプリケーションがアクティブなコンテキスト特有のデータプランを有していない複数のアプリケーション260のうちの一つのアプリケーションを起動するときに、コンテキスト特有のデータプランをプロモートすることができる。ローカルゲートウェイユーティリティ210は、ネットワーク要求を生成するアプリケーションがモバイルデバイス120上で起動したことを決定し、モバイルデバイス120がモバイルデバイス120にネットワーク要求を実行することを認可する任意のアクティブなコンテキスト特有のデータプランを有していないと決定し、モバイルデバイス120がモバイルデバイス120にゼロレーティングのプロキシサーバー150を介してアプリケーションに対するネットワーク要求を実行することを認可する任意のアクティブなコンテキスト特有のデータプランを有していないという決定に応答して、コンテキスト特有のデータプランの購入を提案するように動作する。提案は、起動されたアプリケーションのコンテンツに先立ってスポット的な表示に従って、モバイルデバイス120の画面の上部にバナー広告として提示されるか、任意の他のプレゼンテーションの形式で提示され得る。ローカルゲートウェイユーティリティ210は、コンテキスト特有のデータプランの購入の承諾を受け取り、コマースサーバー450でコンテキスト特有のデータプランの購入を実行し、コンテキスト特有のデータプランの購入に基づいてコンテキスト特有のデータプランをモバイルデバイス120に関連付ける。コンテキスト特有のデータプランとモバイルデバイス120との関連付けは、セルラーシステム130のプロバイダーを用いたデータプランストア320およびデータプランキャッシュ220への関連付けの記憶を含むことができる。関連付けのいくつかは、コマースサーバー450によってモバイルデバイス120に代わって実行されてもよい。
新しいアプリケーションに関して、導入のコンテキスト特有のデータプランを提案してもよい。導入のコンテキスト特有のデータプランは、非定型的な短期間と、アプリケーションがユーザまたはモバイルデバイス120に対して新規であるという要件とによって区別され得る。導入のコンテキスト特有のデータプランは、導入のコンテキスト特有のデータプランに対しては非常に低いレートを可能にし、アプリケーションの長期間のユーザがアプリケーションを使用するときに導入のコンテキスト特有のデータプランを単に繰り返し購入することを回避するためにアプリケーションの新たなユーザに制限される。ビデオストリーミングサービスを定期的に使用するユーザは、ビデオをストリーミングする直前に非常に短期間のプランを繰り返し購入するのではなく、サービスの長期使用プランを購入することが期待される。非常に短期間のプランは、例えば、多くとも30分を含む導入期間と関連付けられ得る。このように、ローカルゲートウェイユーティリティ210は、アプリケーションがモバイルデバイス120上で初めて起動したことを決定し、アプリケーションが初めて起動したという決定に応答して導入期間のコンテキスト特有のデータプランを提案する。
モバイルデバイス120が、Wi−Fiアクセスポイント140によって提供されるような非計量型ネットワークから、セルラーシステム130のような計量型ネットワークに移行するときに、コンテキスト特有のデータプランを提案してもよい。例えば、ユーザは、カフェが提供するWi−Fiアクセスポイントを使用するカフェで、モバイルデバイス120上でサッカーの試合を見ることができる。ユーザは、その後、カフェを離れて仕事場、自宅、学校などにバスに乗りたいと思うことがある。しかしながら、バスに乗っている間はWi−Fiを利用できない場合がある。ユーザが、実行中のネットワークアクティビティに対してアクティブなコンテキスト特有のデータプランをまだ持っていない場合は、データ料金やデータ割り当ての引き落としを受けることなく、計量型セルラーネットワーク上でネットワークアクティビティを実行し続けることができるように適切なコンテキスト特有のデータプランの提案を受けることによって利益となる。例えば、サッカーの試合を視聴しているユーザは、ビデオストリーミングデータプラン、彼らが視聴していたサッカーの試合に特有のデータプラン、または彼らがサッカーの試合を視聴するために使用していたアプリケーションのデータプランの1つまたは複数の提案を受けることができる。
このように、ネットワーク要求がネットワークリソース180に関連付けられている場合、ローカルゲートウェイユーティリティ210は、モバイルデバイス120が非計量型ネットワーク上のネットワークリソース180に以前にアクセスしていたと決定し、ネットワークリソース180への継続したアクセスでは計量型ネットワークを使用すると決定し、モバイルデバイス120がゼロレーティングのプロキシサーバー150を介してネットワークリソースにアクセスすることをモバイルデバイス120に認可する任意のアクティブなコンテキスト特有のデータプランを有していないと決定し、モバイルデバイス120がゼロレーティングのプロキシサーバー150を介してネットワークリソースにアクセスすることをモバイルデバイス120に認可する任意のアクティブなコンテキスト特有のデータプランを有していないという決定に応答して、コンテキスト特有のデータプランを提案する。ローカルゲートウェイユーティリティ210は、コンテキスト特有のデータプランの購入の受諾を受け取り、コンテキスト特有のデータプランの購入を実行し、コンテキスト特有のデータプランの購入に基づいてコンテキスト特有のデータプランをモバイルデバイス120に関連付ける。その後、ローカルゲートウェイユーティリティ210は、ゼロレーティングのプロキシサーバー150を介して計量型ネットワーク上でネットワーク要求を実行し、それによって、計量型ネットワークの計量を回避することができる。いくつかの実施形態では、ネットワークリソースは、購入したコンテキスト特有のデータプランがそのネットワークアドレスに固有であるように、ネットワークアドレスによって識別されてもよい。ネットワークアドレスは、例えば、ネットワークサービスが使用することができる複数のIPアドレスの使用を可能にするために、複数のIPアドレスに対応してもよいことが理解されよう。さらに、コンテキスト特有のデータプランは、特定のネットワークリソース180のアクセスをさらに促進するために購入することができるが、ネットワークリソース180にアクセスするために使用され、かつデータ料金またはデータ割り当ての引き落としが発生することなくアプリケーションを使用して他のリソースにアクセスする権限をユーザに与えるアプリケーションに対しては一般的である。
一般に、非計量型ネットワーク上のユーザのネットワークアクティビティをモニタリングすることは、ユーザに適切なコンテキスト特有のデータプランを提示することができる。例えば、ローカルゲートウェイユーティリティ210または非ゼロレーティングのプロキシサーバー160は、モバイルデバイス120がゼロレーティングのプロキシサーバー150を使用して非計量型ネットワーク上ですでに実行されているアクティビティを計量型ネットワーク上で実行することを認可する1つまたは複数のコンテキスト特有のデータプランを決定する。例えば、1つまたは複数のアプリケーションが、非計量型ネットワーク上でネットワークトラフィックを生成するものとして識別され、モバイルデバイス120は、計量型ネットワーク上にあるときにゼロレーティングのプロキシサーバー150を介して1つまたは複数のアプリケーションを使用するための1つまたは複数のコンテキスト特有のデータプランをプロモートする。一つまたは複数のネットワークリソースが、非計量型ネットワーク上でアクセスされるときにネットワークトラフィックを生成するものとして識別され、モバイルデバイス120は、計量型ネットワーク上にあるときにゼロレーティングのプロキシサーバー150を介して1つまたは複数のネットワークリソースにアクセスするための1つまたは複数のコンテキスト特有のデータプランをプロモートする。
コンテキスト特有のデータプランは、関連するアクティビティに基づいてプロモートされてもよく、あるサービスにおける関心は、別のサービスにおける潜在的な関心に対応する。例えば、サッカーの試合に関するスコアにアクセスするモバイルデバイス120のユーザは、そのサッカーの試合に関するビデオストリームへのアクセスを可能にするデータプランをプロモートする機会として捉えることができる。同様に、サッカーの試合に対するユーザの関心(例えば、スコアのチェック、ソーシャルネットワークでの好みの意志の表示、メッセージによる会話)は、今後の試合のためのストリーミングデータプランを提供する機会として使用され得る。一般に、ユーザの行動の任意の態様は、モニタリングされ、ネットワークリソース180の潜在的な関心を決定するために使用され、かつネットワークリソース180へのアクセスを可能にするコンテキスト特有のデータプランのプロモーションを生成するために使用される。
コンテキスト特有のデータプランは、アプリケーションのバンドルに対して提供されてもよい。例えば、特定の企業は、それらのサービスと統合するためのすべてのアプリケーション(例えば、特定のソーシャルネットワーキングサービスで使用するためのアプリケーションの組)など、複数のアプリケーションを生成する。共通のアプリケーションのバンドル特有のデータプランが、複数のアプリケーションに対して提案されてもよい。一般に、ゼロレーティングのプロキシサーバー150またはセルラーシステム130のオペレータは、アプリケーションのバンドルを決定し、アプリケーションのバンドル特有のデータプランをユーザに提案することができる。
いくつかの実施形態では、モバイルデバイス120のユーザのユーザ履歴を使用して、追加の購入を提案することができる。例えば、特定の地域または特定の国をコールした履歴を有するユーザは、その国または地域の音声プランをプロモートすることができる。代替的にまたは追加的に、ユーザは、音声プランよりも低コストで音声サービスを提供する、関連するアプリケーション特有のデータプランを用いてデータに基づくVoIPアプリケーションのプロモーションを受ける。同様に、特定の地域または特定の国にショートメッセージサービス(SMS)メッセージを送信した履歴を有するユーザは、その国または地域のSMSプランのプロモーションを受ける。代替的にまたは追加的に、ユーザは、SMSプランよりも低コストでメッセージングサービスを提供する関連したアプリケーション特有のデータプランを用いて、データに基づくメッセージングアプリケーションのプロモーションを受ける。さらに、音声プラン、SMSプラン、データに基づく音声代替物、およびデータに基づくメッセージング代替物が、モバイルデバイス120に格納されているような、ユーザの連絡先に基づいて予測的にプロモートされる。
同様に、ユーザの連絡先または他のユーザとの関連付けを使用して、プロモーションのためのコンテキスト特有のデータプランを選択することができる。ユーザは、関連付けられている他のユーザを定義する一組のユーザアソシエーションを有することができる。これは、ユーザの連絡先、ユーザのチャット履歴、ユーザの通話履歴、ユーザのメッセージ履歴、ソーシャルネットワーク上の明示的な関連付けに従って決定されるか、または個人を他の個人と関連付ける他の技術に従って決定されてもよい。ユーザは、関連する他のユーザによって使用されるアプリケーションおよびネットワークリソースに関して、コンテキスト特有のデータプランをプロモートすることができる。ユーザは、関連する他のユーザと対話するために使用されるアプリケーションおよびネットワークリソースに関するコンテキスト特有のデータプランをプロモートすることができる。例えば、ユーザの友人の活動から導かれるようにプロモートされたゲームおよびプランで、ユーザの友人がゲームをプレイするという決定に応答して、マルチプレイヤゲームおよびそのマルチプレイヤゲームに対するアプリケーション特有のデータプランがユーザにプロモートされてもよい。友人が既にビデオストリーミングパッケージを購入したというイベントに関して、ユーザは、ビデオストリーミングパッケージをプロモートすることができる。一般に、ユーザの関連者による任意の購入またはネットワークアクティビティを使用して、ユーザのコンテキスト特有のデータプランのプロモーションを生成することができる。
本明細書では、開示されるアーキテクチャの新規な態様を実施するための例示的な方法を示す一式のフローチャートを記載している。本明細書で示す1つ以上の方法は、説明を簡単にするために、例えばフローチャートまたはフロー図の形式で、一連の動作として図示および記載しているが、それらの方法は、その動作の順序に限定されるものではなく、本発明によるいくつかの動作は、本明細書で図示および記載しているのとは異なる順序で、かつ/または他の動作と同時に実施してよいことは、理解および認識されるべきである。例えば、方法は、代替的に、状態図のような一連の相関した状態または事象として表すことができることは、当業者であれば理解および認識できるであろう。また、新規な実施のために、方法に示すすべての動作が必要であるとは限らない。
図5は、第1の論理フロー500の一実施形態を示す。論理フロー500は、本明細書で説明する1つまたは複数の実施形態によって実行される一部または全部の動作を表す。
図5に示すように、論理フロー500は、ブロック502において、モバイルデバイス120上のローカルゲートウェイユーティリティ210においてネットワーク要求を受信する。
論理フロー500は、ブロック504において、ネットワーク要求が、ゼロレーティングのプロキシサーバー150を介してネットワーク要求の実行を認可する、モバイルデバイス120に対するコンテキスト特有のデータプランに対応することを決定する。
論理フロー500は、ブロック506において、ゼロレーティングのプロキシサーバー150を使用してネットワーク要求を実行する。
実施形態は、この例に限定されない。
図6は、第2の論理フロー600の一実施形態を示す。論理フロー600は、本明細書で説明する1つまたは複数の実施形態によって実行される一部または全部の動作を表す。
図6に示される図示された実施形態において、論理フロー600は、ブロック602において、ゼロレーティングのプロキシサーバー150においてモバイルデバイス120からのネットワーク要求を受信する。
論理フロー600は、ブロック604において、ネットワーク要求が、ゼロレーティングのプロキシサーバー150を介してネットワーク要求の実行を認可する、モバイルデバイス120に対するコンテキスト特有のデータプランに対応していると決定する。
論理フロー600は、ブロック606において、ゼロレーティングのプロキシサーバー150を仲介として使用してネットワーク要求を実行することができる。
実施形態は、本例に限定されない。
図7は、集中型システム700のブロック図を示す。集中型システム700は、単一デバイス720内のエンティティ等の、単一の計算エンティティ内の選択的ゼロレーティングシステム100のための構造および/または動作のうちのいくつかまたは全てを実施することができる。
デバイス720は、選択的ゼロレーティングシステム100のための情報を受信、処理および送信することが可能な任意の電子デバイスを含むことができる。電子デバイスの例は、限定ではないが、ウルトラモバイルデバイス、モバイルデバイス、携帯情報端末(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話、デジタル電話、携帯電話、電子書籍リーダ、ハンドセット、ワンウエイページャ(one−way pager)、ツーウエイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバー、サーバーアレイもしくはサーバーファーム、ウェブサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家庭用電子機器、プログラム可能な家庭用電子機器、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組合せを含むことができる。実施形態はこれに限定されない。
デバイス720は、処理コンポーネント730を用いて選択的ゼロレーティングシステム100のための処理動作またはロジックを実行することができる。処理コンポーネント730は、様々なハードウェア要素、ソフトウェア要素、または双方の組合せを含むことができる。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、レジスタ、キャパシタ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuits)、プログラマブルロジックデバイス(PLD:programmable logic devices)、デジタルシグナルプロセッサ(DSP:digital signal processors)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含むことができる。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラミングインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、シンボル、またはそれらの任意の組合せを含むことができる。実施形態がハードウェア要素を用いて実施されるか、かつ/またはソフトウェア要素を用いて実施されるかを判断することは、所望の計算速度、パワーレベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度および他の設計または性能の制約等の任意の数の要因に従って、所与の実施態様にとって望ましいとおりに変動することができる。
デバイス720は、通信コンポーネント740を用いて選択的ゼロレーティングシステム100の通信動作またはロジックを実行することができる。通信コンポーネント740は、パケット交換ネットワーク(例えば、インターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回路交換網(例えば、公衆交換電話網)、またはパケット交換ネットワークおよび回路交換網の(適切なゲートウェイおよびトランスレータを用いた)組合せ等と共に用いるのに適した技法等の、任意のよく知られた通信技法およびプロトコルを実施することができる。通信コンポーネント740は、1つまたは複数の通信インタフェース、ネットワークインタフェース、ネットワークインタフェースカード(NIC:network interface cards)、無線通信装置、ワイヤレストランスミッタ/ワイヤレスレシーバ(トランシーバ)、有線および/または無線通信媒体、物理的コネクタ等の様々なタイプの標準的な通信要素を含むことができる。限定ではないが、例として、通信媒体712、742は、有線通信媒体および無線通信媒体を含む。有線通信媒体の例は、有線、ケーブル、金属導線、プリント回路基盤(PCB:printed circuit boards)、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ、伝搬信号等を含むことができる。無線通信媒体の例は、音響、無線周波数(RF)スペクトル、赤外線および他の無線媒体を含むことができる。
デバイス720は、通信コンポーネント740により通信信号714を使用して通信媒体712を介して他のデバイスと通信することができる。デバイスは、所与の実施に関して所望されるようにデバイス720の内部または外部に存在し得る。例えば、デバイス720は、ゼロレーティングのプロキシサーバー150および非ゼロレーティングのプロキシサーバー160と通信することができる。
図8は、分散型システム800のブロック図を示している。分散型システム800は、選択的ゼロレーティングシステム100について、その構造および/またはオペレーションのいくつかの部分を複数のコンピューティングエンティティに分散させることができる。分散型システム800の例として、限定するものではないが、クライアントサーバーアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散型システムを含むことができる。実施形態は、これに限定されない。
分散型システム800は、サーバーデバイス810、850を備え得る。概して、サーバーデバイス810、850は、図7を参照して説明したような装置720と同じまたは類似したものであり得る。例えば、サーバーデバイス810、850は、それぞれ、処理コンポーネント730および通信コンポーネント740を有することができ、それらは、図7を参照して説明したような処理コンポーネント730および通信コンポーネント740とそれぞれ同じまたは類似したものである。他の例では、サーバーデバイス810、850は、通信コンポーネント740を介して、通信信号814を用いて通信媒体812を通して通信することができる。
サーバーデバイス810,850は、記載された実施形態に従って様々な方法を実行するように動作する1つまたは複数のサーバープログラムを備えるかまたは使用することができる。一実施形態では、例えば、複数のゼロレーティングのサーバーデバイス810が、複数のゼロレーティングのプロキシサーバー150を実装する。複数の非ゼロレーティングのサーバーデバイス850は、複数の非ゼロレーティングのプロキシサーバー160を実装する。サーバーデバイス810,850は、通信媒体812を介して信号814を交換して、モバイルデバイスへのプロキシサービスの提供を調整する。サーバーデバイス810,850は、ユーザデータおよびデータプランの格納、分析、および取得に関して、通信媒体812を介して信号814をユーザデータストア330およびデータプランストア320と交換する。
図9は、上記に記載の様々な実施形態を実施するのに適した例示的なコンピューティングアーキテクチャ900の一実施形態を示す。1つの実施形態では、コンピューティングアーキテクチャ900は、電子デバイスを備えるか、電子デバイスの一部として実施されることが可能である。電子デバイスの例は、中でも、図8を参照して説明したものを含むことができる。実施形態はこれに限定されない。
本出願において用いられるとき、「システム」および「コンポーネント」という語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータに関係したエンティティを指すことを意図され、それらの例が、例示的なコンピューティングアーキテクチャ900によって提供される。例えば、コンポーネントは、限定ではないが、プロセッサにおいて実行されるプロセス、プロセッサ、ハードディスクドライブ、(光学および/または磁気記録媒体の)マルチ記録ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであり得る。例示のために、サーバー上で実行されるアプリケーションおよびサーバーの双方がコンポーネントであり得る。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に常駐することができ、コンポーネントは、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間で分散され得る。更に、コンポーネントは、動作を協調させるように、様々なタイプの通信媒体によって互いに通信可能に結合され得る。協調は、情報の一方向または双方向の交換を含むことができる。例えば、コンポーネントは、通信媒体により通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り当てられる信号として実施され得る。そのような割り当てにおいて、各メッセージは信号である。一方、更なる実施形態は、代替的にデータメッセージを用いることができる。そのようなデータメッセージは、様々な接続にわたって送信され得る。例示的な接続は、パラレルインタフェース、シリアルインタフェースおよびバスインタフェースを含む。
コンピューティングアーキテクチャ900は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、オシレータ、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力(I/O)コンポーネント、電源等の様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングアーキテクチャ900による実施に限定されない。
図9に示すように、コンピューティングアーキテクチャ900は、処理ユニット904、システムメモリ906およびシステムバス908を備える。処理ユニット904、限定ではないが、AMD(登録商標)プロセッサ、Athlon(登録商標)プロセッサ、Duron(登録商標)プロセッサおよびOpteron(登録商標)プロセッサ;ARM(登録商標)のアプリケーションプロセッサ、組込み型プロセッサおよびセキュアプロセッサ;IBM(登録商標)およびMotorola(登録商標)のDragonBall(登録商標)プロセッサおよびPowerPC(登録商標)プロセッサ;IBMおよびSony(登録商標)のセルプロセッサ;Intel(登録商標)のCeleron(登録商標)プロセッサ、Core(2)Duo(登録商標)プロセッサ、Itanium(登録商標)プロセッサ、Pentium(登録商標)プロセッサ、Xeon(登録商標)プロセッサおよびXScale(登録商標)プロセッサ;ならびに同様なプロセッサを含む様々な市販のプロセッサのうちの任意のものであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサおよび他のマルチプロセッサアーキテクチャも処理ユニット904として用いられることが可能である。
システムバス908は、限定ではないがシステムメモリ906を含むシステムコンポーネントのためのインタフェースを処理ユニット904に提供する。システムバス908は、多岐にわたる市販のバスアーキテクチャのうちの任意のものを用いてメモリバス(メモリコントローラを有するかまたは有しない)、周辺バスおよびローカルバスに更に相互接続することができるいくつかのタイプのバス構造のうちの任意のものとすることができる。インタフェースアダプタは、スロットアーキテクチャを介してシステムバス908に接続することができる。例示的なスロットアーキテクチャは、限定ではないが、アクセラレーテッドグラフィックスポート(AGP:Accelerated Graphics Port)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA:(Extended)Industry Standard Architecture)、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)、NuBus、周辺コンポーネント相互接続(拡張)(PCI(X):Peripheral Component Interconnect(Extended))、PCIエクスプレス、パーソナルコンピュータメモリカード国際組織(PCMCIA:Personal Computer Memory Card International Association)等を含むことができる。
コンピューティングアーキテクチャ900は、様々な製造品を含むかまたは実装することができる。製造品は、ロジックを記憶するためのコンピュータ可読記録媒体を含むことができる。コンピュータ可読記録媒体の例は、揮発性メモリまたは不揮発性メモリ、取外し可能または非取外し可能メモリ、消去可能または非消去可能メモリ、書き込み可能または書き換え可能メモリ等を含む、電子データを記憶することが可能な任意の有形媒体を含むことができる。ロジックの例は、ソースコード、コンパイルされたコード、解釈実行されたコード、実行可能コード、スタティックコード、ダイナミックコード、オブジェクト指向コード、視覚コード等の任意の適切なタイプのコードを用いて実施される実行可能なコンピュータプログラム命令を含むことができる。実施形態はまた、1つまたは複数のプロセッサによって読出しおよび実行されて、本明細書に記載の動作の実行を可能にすることができる、非一時的コンピュータ可読媒体に含まれるかまたは非一時的コンピュータ可読媒体上にある命令として少なくとも部分的に実施されることが可能である。
システムメモリ906は、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM:Double−Data−Rate DRAM)、同期DRAM(SDRAM:synchronous DRAM)、スタティックRAM(SRAM:static RAM)、プログラマブルROM(PROM:programmable ROM)、消去可能なプログラマブルROM(EPROM:erasable programmable ROM)、電気的に消去可能なプログラマブルROM(EEPROM:electrically erasable programmable ROM)、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ(ovonic memory)、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS:silicon−oxide−nitride−oxide−silicon)メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ(RAID:Redundant Array of Independent Disks)ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD:solid state drive)および情報を記憶するのに適した任意の他のタイプの記録媒体等の1つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読記録媒体を含むことができる。図9に示す例示される実施形態では、システムメモリ906は、不揮発性メモリ910および/または揮発性メモリ912を含むことができる。基本入出力システム(BIOS:basic input/output system)を不揮発性メモリ910に記憶することができる。
コンピュータ902は、内部(または外部)ハードディスクドライブ(HDD)914、取外し可能な磁気ディスク918に対し読出しまたは書き込みを行うための磁気フロッピーディスクドライブ(FDD)916、および取外し可能な光ディスク922(例えば、CD−ROMまたはDVD)に対し読出しまたは書き込みを行うための光ディスクドライブ920を含む1つまたは複数の低速メモリユニットの形態で様々なタイプのコンピュータ可読記録媒体を備えることができる。HDD914、FDD916および光ディスクドライブ920は、それぞれHDDインタフェース924、FDDインタフェース926、および光ドライブインタフェース928によってシステムバス908に接続されることが可能である。外部ドライブ実装のためのHDDインタフェース924は、ユニバーサルシリアルバス(USB)およびIEEE1394インタフェース技術の少なくとも一方または双方を含むことができる。
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の揮発性記録および/または不揮発性記録を提供する。例えば、オペレーティングシステム930、1つまたは複数のアプリケーションプログラム932、他のプログラムモジュール934およびプログラムデータ936を含む複数のプログラムモジュールがドライブおよびメモリユニット910、912に記憶され得る。1つの実施形態では、1つまたは複数のアプリケーションプログラム932、他のプログラムモジュール934およびプログラムデータ936は、例えば、選択的ゼロレーティングシステム100の様々なアプリケーションおよび/またはコンポーネントを含むことができる。
ユーザは、1つまたは複数の有線/無線入力デバイス、例えば、キーボード938、およびマウス940等のポインティングデバイスを通じてコンピュータ902にコマンドおよび情報を入力することができる。他の入力デバイスは、マイクロフォン、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量型、抵抗型等)、トラックボール、トラックパッド、センサ、スタイラス等を含むことができる。これらのおよび他の入力デバイスは、多くの場合に、システムバス908に結合された入力デバイスインタフェース942を通じて処理ユニット904に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース等の他のインタフェースによって接続されてもよい。
モニタ944または他のタイプの表示デバイスも、ビデオアダプタ946等のインタフェースを介してシステムバス908に接続される。モニタ944は、コンピュータ902に対し内部または外部にあり得る。モニタ944に加えて、コンピュータは通常、スピーカ、プリンタ等の他の周辺出力デバイスを備える。
コンピュータ902は、リモートコンピュータ948等の1つまたは複数のリモートコンピュータへの有線および/または無線通信を介して論理接続を用いてネットワーク化された環境において動作することができる。リモートコンピュータ948は、ワークステーション、サーバーコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサに基づく娯楽機器、ピアデバイス、または他の共通ネットワークノードであり得、通常、コンピュータ902について記載した要素のうちの多くまたは全てを備えるが、簡潔にするために、メモリ/記録デバイス950のみが示されている。描かれる論理接続は、ローカルエリアネットワーク(LAN)952および/またはより大きなネットワーク、例えば広域ネットワーク(WAN)954への有線/無線接続を含む。そのようなLANおよびWANネットワーキング環境は、事務所および会社において一般的であり、イントラネット等の、企業規模のコンピュータネットワークを容易にする。これらは全て、グローバル通信ネットワーク、例えばインターネットに接続することができる。
LANネットワーキング環境において用いられるとき、コンピュータ902は、有線および/または無線通信ネットワークインタフェースまたはアダプタ956を通じてLAN952に接続される。アダプタ956は、LAN952への有線および/または無線通信を容易にすることができる。LAN952も、アダプタ956の無線機能と通信するために配置された無線アクセスポイントを含むことができる。
WANネットワーキング環境において用いられるとき、コンピュータ902は、モデム958を含むことができるか、またはWAN954の通信サーバーに接続されるか、またはインターネット等によってWAN954を介して、通信を確立する他の手段を有する。内部または外部の、有線および/または無線デバイスであり得るモデム958は、入力デバイスインタフェース942を介してシステムバス908に接続する。ネットワーク化された環境では、コンピュータ902について述べられたプログラムモジュールまたはその一部分をリモートメモリ/記録デバイス950に記憶することができる。示されるネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段が用いられてもよいことが理解されよう。
コンピュータ902は、IEEE802系規格を用いて、無線通信(例えば、IEEE802.9オーバーザエアー変調技法)において動作可能に配置される無線デバイス等の、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは、少なくとも、中でも、Wi−Fi(または無線フィデリティ)、WiMaxおよびBluetooth(商標)の無線通信技術を含む。このため、この通信は従来のネットワークと同じように予め定義された通信構造であり得るか、または、単に少なくとも2つの装置の間におけるアドホック通信であり得る。Wi−Fiネットワークは、安全で信頼性が高く高速なワイヤレス接続を提供するIEEE802.9x(a、b、g、n等)と称される無線技術を用いる。Wi−Fiネットワークはコンピュータを互いに、インターネットに、および有線ネットワーク(IEEE802.3関連の媒体および機能を用いる)に接続するのに用いられ得る。
図10は上記の様々な実施形態を実施するのに適した例示的な通信アーキテクチャ1000のブロック図を示す。この通信アーキテクチャ1000は、トランスミッタ、レシーバ、トランシーバ、無線通信装置、ネットワークインタフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源等の様々な一般的な通信要素を含む。しかしながら、本発明の実施形態は通信アーキテクチャ1000による実施に限定されない。
図10に示されるように、通信アーキテクチャ1000は1つまたは複数のクライアント1002およびサーバー1004を含む。クライアント1002はデバイス720を実装することができる。サーバー1004はサーバーデバイス810、850を実装することができる。クライアント1002およびサーバー1004は、1つまたは複数のそれぞれのクライアントデータストア1008およびサーバデータストア1010に動作可能に接続されている。これらは、クッキーおよび/または関連付けられたコンテキスト情報等のそれぞれのクライアント1002およびサーバー1004にローカルな情報を記憶するために利用されることが可能である。
クライアント1002およびサーバー1004は通信フレームワーク1006を用いて互いの間で情報を通信することができる。通信フレームワーク1006は任意の既知の通信技法およびプロトコルを実装することができる。通信フレームワーク1006は、パケット交換網(例えば、インターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回線交換網(例えば、公衆交換電話網)、またはパケット交換網と回線交換網との組合せ(適切なゲートウェイおよびトランスレータを備える)として実装されることが可能である。
通信フレームワーク1006は、通信ネットワークを受け入れ、通信ネットワークと通信し、通信ネットワークに接続するように構成される様々なネットワークインタフェースを実施することができる。ネットワークインタフェースは、特殊な形態の入出力インタフェースと見なされ得る。ネットワークインタフェースは、限定ではないが、直接接続、イーサネット(例えば、シック、シン、ツイストペア10/100/1000BaseT等)、トークンリング、無線ネットワークインタフェース、セルラーネットワークインタフェース、IEEE802.11a−xネットワークインタフェース、IEEE802.16ネットワークインタフェース、IEEE802.20ネットワークインタフェース等を含む接続プロトコルを用いることができる。更に、様々な通信ネットワークタイプと関わるために複数のネットワークインタフェースが用いられ得る。例えば、ブロードキャスト、マルチキャストおよびユニキャストネットワークによる通信を可能にするために、複数のネットワークインタフェースが用いられることが可能である。処理要件がより高い速度およびより多くの容量を指示する場合、クライアント1002およびサーバー1004によって必要とされる通信帯域幅をプールし、負荷分散し、他の形で増大させるために、分散ネットワークコントローラアーキテクチャが同様に利用されることが可能である。通信ネットワークは、限定ではないが、直接相互接続、セキュア化されたカスタム接続、プライベートネットワーク(例えば、社内イントラネット)、公衆ネットワーク(例えば、インターネット)、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとして動作しているミッション(OMNI:Operating Missions as Nodes on the Internet)、広域ネットワーク(WAN)、無線ネットワーク、セルラーネットワークおよび他の通信ネットワークを含む有線および/または無線ネットワークのうちの任意の1つまたはそれらの組合せであり得る。
図11は、選択的ゼロレーティングシステム100のようなマルチキャリアOFDMシステムで使用するためのデバイス1100の実施形態を示している。デバイス1100は、例えば、選択的ゼロレーティングシステム100を参照して説明したようなソフトウェアコンポーネント1160、および/または論理回路1130を実装することができる。論理回路1130は、選択的ゼロレーティングシステム100について説明したオペレーションを実行するための物理回路を含み得る。図11に示すように、デバイス1100は、無線インタフェース1110と、ベースバンド回路1120と、コンピューティングプラットフォーム1130とを備え得るが、ただし実施形態は、この構成に限定されない。デバイス1100は、モバイルデバイス120と対応している。
デバイス1100は、完全に単一のデバイス内にあるなどの単一のコンピューティングエンティティにおいて、選択的ゼロレーティングシステム100および/または論理回路1130について、その構造および/またはオペレーションの一部またはすべてを具体化することができる。あるいは、デバイス1100は、クライアントサーバーアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタースレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散型システムのような分散システムアーキテクチャを用いて、選択的ゼロレーティングシステム100および/または論理回路1130について、その構造および/またはオペレーションのいくつかの部分を複数のコンピューティングエンティティに分散させることができる。実施形態は、これに限定されない。
一実施形態では、無線インタフェース1110は、(例えば、相補型符号変調(CCK)および/または直交周波数分割多重(OFDM)シンボルを含む)シングルキャリアまたはマルチキャリア変調信号を送信および/または受信するように構成されたコンポーネントもしくはコンポーネントの組み合わせを有し得るが、ただし実施形態は、いずれかの特定の空中(over−the−air)インタフェースまたは変調方式に限定されない。無線インタフェース1110は、例えば、受信機1112、送信機1116、および/または周波数シンセサイザ1114を有し得る。無線インタフェース1110は、バイアスコントロール、水晶発振器、および/または1つ以上のアンテナ1118を有し得る。他の実施形態では、無線インタフェース1110は、必要に応じて、外部の電圧制御発振器(VCO)、弾性表面波フィルタ、中間周波数(IF)フィルタ、および/またはRFフィルタを使用することができる。可能なRFインタフェース構成は多様であるため、その広範な説明は省略する。
ベースバンド回路1120は、受信信号および/または送信信号を処理するために無線インタフェース1110と通信することができ、例えば、受信信号をダウンコンバートするためのアナログデジタル変換器1122、信号を送信用にアップコンバートするためのデジタルアナログ変換器1124を有し得る。さらに、ベースバンド回路1120は、個々の受信/送信信号のPHYリンク層処理のためのベースバンドまたは物理層(PHY)処理回路1126を有し得る。ベースバンド回路1120は、例えば、メディアアクセス制御(MAC)/データリンク層処理のための処理回路1128を有し得る。ベースバンド回路1120は、例えば、1つ以上のインタフェース1134を介した処理回路1128および/またはコンピューティングプラットフォーム1130による通信のためのメモリコントローラ1132を有し得る。
いくつかの実施形態では、PHY処理回路1126は、無線フレームのような通信フレームを構築および/または分解するために、バッファメモリのような追加回路と組み合わせて、フレーム構築および/または検出モジュールを含み得る。代替的または追加的に、MAC処理回路1128は、これらの機能のうちのいくつかの処理を共有するか、またはこれらのプロセスをPHY処理回路1126とは独立に実行することができる。
コンピューティングプラットフォーム1130は、デバイス1100にコンピューティング機能を提供し得る。図示のように、コンピューティングプラットフォーム1130は、処理コンポーネント1140を有し得る。デバイス1100は、ベースバンド回路1120に対して追加的または代替的に、処理コンポーネント1140を用いて、選択的ゼロレーティングシステム100および/または論理回路1130について、その処理オペレーションまたはロジックを実行することができる。処理コンポーネント1140(および/またはPHY 1126および/またはMAC 1128)は、各種ハードウェア要素、ソフトウェア要素、またはその両方の組み合わせを含み得る。ハードウェア要素の例として、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含むことができる。ソフトウェア要素の例として、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはその任意の組み合わせを含むことができる。ハードウェア要素および/またはソフトウェア要素を用いて実施形態を実現するかどうかの判断は、所望の計算速度、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリ資源、データバス速度、および他の設計制約または性能制約など、所与のインプリメンテーションで要求される任意の数のファクタに応じて異なる判断となり得る。
コンピューティングプラットフォーム1130は、さらに、他のプラットフォームコンポーネント1150を有し得る。他のプラットフォームコンポーネント1150は、1つ以上のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミング装置、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント(例えば、デジタルディスプレイ)、パワーサプライなどのような、一般的な計算要素を含む。メモリユニットの例として、限定するものではないが、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリのようなポリマーメモリ、オーボニックメモリ、相変化または強誘電体メモリ、シリコン/酸化膜/窒化膜/酸化膜/シリコン(SONOS)メモリ、磁気または光カード、独立ディスクの冗長アレイ(RAID)ドライブのようなデバイスアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))、および情報を保存するのに適した他の任意のタイプの記憶媒体のような、1つ以上のより高速のメモリユニットの形態の各種タイプのコンピュータ可読およびマシン可読記憶媒体を含むことができる。
デバイス1100は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン(M2M)デバイス、パーソナルデジタルアシスタント(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、セルラー電話機、ユーザ装置、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージング装置、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバー、サーバーアレイまたはサーバーファーム、ウェブサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家電機器、プログラマブル家電機器、ゲーム機、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、ノードB、発展型ノードB(eNB)、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはその組み合わせであり得る。従って、本明細書に記載のデバイス1100の機能および/または具体的な構成は、要求に応じて適宜、デバイス1100の種々の実施形態に含むことも、または省くこともできる。いくつかの実施形態では、デバイス1100は、3GPP LTE仕様および/またはWMAN用のIEEE1102.16規格および/または本明細書で引用される他の広帯域ワイヤレスネットワークの1つ以上に関連したプロトコルおよび周波数に準拠するように構成することができるが、実施形態は、この点に関して限定されない。
デバイス1100の実施形態は、単入力単出力(SISO)アーキテクチャを用いて実現することができる。一方、いくつかの実現形態では、ビームフォーミングまたは空間分割多重アクセス(SDMA)のための適応アンテナ技術、および/またはMIMO通信技術を用いた送信および/または受信用のマルチアンテナ(例えば、アンテナ1118)を備えることができる。
デバイス1100のコンポーネントおよび機能は、ディスクリート回路、特定用途向け集積回路(ASIC)、論理ゲート、および/またはシングルチップアーキテクチャの任意の組み合わせを用いて実装することができる。さらに、デバイス1100の機能は、必要に応じて適宜、マイクロコントローラ、プログラマブルロジックアレイ、および/またはマイクロプロセッサ、またはその任意の組み合わせを用いて実装することができる。なお、本明細書において、ハードウェア、ファームウェア、および/またはソフトウェア要素を、「ロジック」または「回路」と総称または個称する場合があるということに留意すべきである。
図11のブロック図に示す例示的なデバイス1100は、多くの可能性のある実現形態の1つの機能的説明例を表し得るということは理解されるべきである。従って、添付の図面に示す機能ブロックの分割、欠落、または組み込みは、必ずしも、実施形態における、それらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェア、および/または要素の分割、欠落、または組み込みを推測させるものではない。
いくつかの実施形態は、「1つの実施形態」または「実施形態」という表現と、それらの派生語とを用いて説明され得る。これらの用語は、実施形態に関して説明される特定の特徴、構造または特性が少なくとも1つの実施形態に含まれることを意味している。本明細書の様々な箇所に現れる「1つの実施形態において」というフレーズは、必ずしも全てが同じ実施形態を指しているわけではない。更に、いくつかの実施形態は、「結合された」および「接続された」という表現と、それらの派生語とを用いて説明され得る。これらの表現は必ずしも互いの同義語として意図されているわけではない。例えば、いくつかの実施形態は、「接続された」および/または「結合された」という表現を用いることにより、2つ以上の要素が直接物理的にまたは電気的に相互接触していることを示すように説明され得る。一方、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、それでも互いに協働またはインタラクトしていることを意味する場合もある。
本明細書において用いられる表記および専門用語を全体的に参照すると、本明細書における詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラムプロシージャの観点で表され得る。これらの手続き的(procedural)記載および表現は、当業者によって、当該技術分野における他の当業者に自身の研究の本質を最も効果的に伝えるために用いられている。
プロシージャとは、ここでは、また一般的に、所望の結果をもたらすオペレーションの首尾一貫したシーケンスであると考えられる。これらのオペレーションは、物理的量の物理的操作を必要とするものである。必須ではないが通例、これらの量は、記憶、転送、組合せ、比較および他の形で操作されることが可能な電気信号、磁気信号または光信号の形態をとる。場合によっては、主に一般的用法の理由から、これらの信号を、ビット、値、要素、シンボル、文字、語、数等と呼ぶことが好都合であることがわかっている。しかしながら、これらの用語および同様の用語は全て適切な物理的量に関連付けられ、これらの量に適用される好都合なラベルにすぎないことに留意されたい。
更に、実行される操作は、多くの場合、人間のオペレータによって実行される知的オペレーションに一般的に関連付けられる、追加または比較等の用語で参照される。1つまたは複数の実施形態の一部を形成する、本明細書に説明されるオペレーションのいずれにおいても、人間のオペレータのそのような能力は必要でないか、ほとんどの場合に望ましくない。むしろ、オペレーションは機械オペレーションである。様々な実施形態のオペレーションを実行するための有用な機械は、汎用デジタルコンピュータまたは同様のデバイスを含む。
様々な実施形態は、これらのオペレーションを実行するための装置またはシステムにも関する。この装置は、必要とされる目的のために特に構築されることが可能であるか、またはコンピュータに記憶されるコンピュータプログラムによって選択的にアクティベートまたは再構成される汎用コンピュータを含むことができる。本明細書において提示されるプロシージャは、特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用機械は、本明細書における教示に関連して書かれたプログラムと共に用いられ得るか、または、必要とされる方法ステップを実行する、より特殊な装置を構築することが好都合であるとわかる場合がある。様々なこれらの機械のために必要とされる構造は、与えられる説明から明らかとなるであろう。
本開示の要約書は、読み手が技術的開示の本質を迅速に理解できるようにするために提供されていることを強調しておく。要約書は、特許請求の範囲の範囲または意味を解釈または限定することに用いられないという理解のもとに提出されている。更に、上記した「発明を実施するための形態」においては、開示を効率化するために様々な特徴がまとめて単一の実施形態にされていることを見てとることができる。このような開示方法は、特許請求される実施形態が各請求項に明示的に記された特徴以外のものを必要とする意図を表していると解釈されるべきではない。むしろ、以下の特許請求の範囲が表しているように、本発明の主題は、開示されている単一の実施形態の全特徴よりも少ない特徴にある。このため、以下の特許請求の範囲は本明細書において「発明を実施するための形態」に組み込まれ、各請求項は独立した1つの実施形態に基づく。「第1の」、「第2の」、「第3の」等の用語は単にラベルとして用いられており、それらの対象物に数的限定を課すことを意図したものではない。
上記で説明したものは、開示されているアーキテクチャの例を含む。当然ながら、コンポーネントおよび/または方法の全ての考え得る組合せを記載することは不可能であるが、当業者であれば、多くの更なる組合せおよび置き換えが可能であることを認識することができる。したがって、新規のアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内にある全ての変化、変更および変形を包含することが意図される。