(57)【要約】  ネットワーク通信とコスト意識の技術について説明する。一つまたはそれ以上の実施態様において、機能性は、ネットワーク通信を実行するためにコンピューティングデバイスの複数のアプリケーションに対してアクセス可能な一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を通じて公開される。データは、ネットワーク通信を実行するために使用されたコストネットワークに関する複数のアプリケーションの一つまたはそれ以上に対して返される。
2014534485.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスによって実行される方法であって：
ネットワーク通信を実行するためのコンピューティングデバイスに係る複数のアプリケーションに対してアクセス可能な一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を通じて、機能性を公開するステップと；
前記ネットワーク通信を実行するために使用されたコストネットワークに関する複数のアプリケーションの一つまたはそれ以上に対して、データを返すステップと、
を備えることを特徴とする方法。
【請求項２】
前記公開するステップと前記返すステップは、前記コンピューティングデバイスのダウンロードマネージャー、または、オペレーティングシステムによって実行される、
請求項１に記載の方法。
【請求項３】
前記データは、前記コストネットワークに関するたコスト閾値に関連するものである、
請求項１に記載の方法。
【請求項４】
少なくとも一つの前記アプリケーションに対して返された前記データは、前記複数のアプリケーションによる前記コストネットワークの使用に関連するものである、
請求項１に記載の方法。
【請求項５】
前記アプリケーションの少なくとも一部がサスペンド状態にある一方で、それぞれの前記アプリケーションに対するアップロード又はダウンロードを実行するために前記機能性にアクセス可能である、
請求項１に記載の方法。
【請求項６】
前記機能性は、前記ネットワーク通信が実行されているそれぞれの前記アプリケーションと同じセキュリティコンテクストにおいて動作するように構成されている、
請求項１に記載の方法。
【請求項７】
前記データは、それぞれの前記アプリケーションにダウンロードの進行を知らせるように構成されている、
請求項１に記載の方法。
【請求項８】
前記機能性は、進歩的なダウンロード及びプレイバックをサポートするために、ストリームレイヤーに接続するように構成されている、
請求項１に記載の方法。
【請求項９】
前記進歩的なダウンロード及びプレイバックは、前記コストネットワークを介したダウンロードの際に、それぞれの前記アプリケーションによる使用のために、ストリームレーヤの中にデータを構成する、
請求項８に記載の方法。
【請求項１０】
少なくとも部分的にハードウェアにおいて実施される一つまたはそれ以上のモジュールを含むコンピューティングデバイスであって、
前記コンピューティングデバイスは、
ネットワーク通信を実行するためのコンピューティングデバイスに係る複数のアプリケーションに対してアクセス可能な一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を通じて、機能性を公開し；かつ、
一つまたはそれ以上のポリシーを使用してオペレーティングシステムによるネットワーク通信を実行するように前記機能性を管理する、
ように構成されている、ことを特徴とするコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信とコスト意識に関する。
【背景技術】
【０００２】
ユーザは、ネットワーク利用のために構成することが可能な、かつてないほど多くのさまざまなコンピューティングデバイスにアクセスする。例えば、ユーザは、デスクトップコンピュータ、携帯電話、およびタブレットコンピュータなどと相互通信して、有線もしくは無線ネットワークを介して相互通信することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、このようなネットワークにアクセスするために使用された従来技術は、しばしば非効率的であり、したがって、電力、処理、およびネットワークリソースを含む、相当な量のリソースを消費する可能性があった。したがって、これらの従来技術では、デバイスのユーザが利用可能な機能に限界があった。
【課題を解決するための手段】
【０００４】
ネットワーク通信とコスト意識の技術について説明する。一つまたはそれ以上の実施態様において、機能性は、ネットワーク通信を実行するためにコンピューティングデバイスの複数のアプリケーションに対してアクセス可能な一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を通じて公開される。データは、ネットワーク通信を実行するために使用されたコストネットワークに関する複数のアプリケーションの一つまたはそれ以上に対して返される。
【０００５】
一つまたはそれ以上の実施態様において、機能性は、ネットワーク通信を実行するためにコンピューティングデバイスの複数のアプリケーションに対してアクセス可能なオペレーティングシステムに係る一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を通じて公開される。ネットワーク通信を実行するための機能性は、一つまたはそれ以上のポリシーを使用してオペレーティングシステムによって管理される。
【０００６】
一つまたはそれ以上の実施態様において、一つまたはそれ以上のコンピュータ読取り可能ストレージ媒体は、インストラクションを保管している。インストラクションは、コンピューティングデバイスによる実行に応じて、コンピューティングデバイスに、コンピューティングデバイスの複数のアプリケーションに対して一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を介して機能性を公開するように構成されたオペレーティングシステムを実施させる。通信をリクエストしたそれぞれのアプリケーションの少なくとも一部がサスペンド状態にある一方で、一つのコストネットワークを介してダウンロードを実行する。
【０００７】
この発明の概要は、発明を実施するための形態において以下でさらに説明される、コンセプトの一部を簡素化して導入するものである。この発明の概要は、クレームに記載された対象の主要な特徴または重要な特徴を特定することを意図せず、クレームに記載された対象の範囲決定する際の補助として使用されることを意図するものでもない。
【図面の簡単な説明】
【０００８】
添付図面を参照して、詳細な説明を説明する。図面において、参照番号の最も左側の桁により、参照番号が最初に現れる図面を識別する。説明および図面において、異なる例示で同じ参照番号を用いる場合、同様または同一の項目を示すことができる。
【図１】図１は、コンピューティングデバイスの一つまたはそれ以上のアプリケーションに係るネットワーク通信を管理するために、ネットワーク管理モジュールを使用するように動作可能な例示的実施態様における環境を示している。
【図２】図２は、図１のネットワーク管理モジュールに係るコスト意識モジュールの動作例を表す例示的実施態様におけるシステムを示している。
【図３】図３は、図１のネットワーク管理モジュールに係る統合モジュールの動作例を表す例示的実施態様におけるシステムを示している。
【図４】図４は、ネットワーク通信を実行するために機能性が複数のアプリケーションに対して公開される例示的実施態様における手順を示すフローチャートである。
【図５】図５は、図１に関して説明されたコンピューティングデバイスを含むシステムの実施例を示している。
【図６】図６は、ここにおいて記述される技術の実施例である図１から３及び図５に関して説明されたように、あらゆるタイプのコンピューティングデバイスとして実施することができる例示的デバイスに係る種々のコンポーネントを示している。
【発明を実施するための形態】
【０００９】
ダウンロードを実行するために利用される従来技術は、しばしば欠損し、ダウンロードを実行すること自身の他の検討をしていない。結果として、こうした従来技術は、コストネットワークの使用に関する検討をしていない。ユーザーに対して、過度なダウンロード及び「上限を超えている」ことに係る可能な財政的な指摘をするといったことである。さらに、こうした従来技術は、典型的に、ダウンロードの実行中の電力消費について検討していない。
【００１０】
ネットワーク通信とコスト意識の技術について説明する。一つまたはそれ以上の実施態様において、機能性は、コストネットワークの使用を管理するために使用されるアプリケーションプログラミングインターフェイス（ＡＰＩ）を介して公開される。例えば、これらのＡＰＩは、コンピューティングデバイスのアプリケーションによって実行されるネットワーク通信の中に包含され得る。一つの実施例において、ネットワークインターフェイスデバイスに対する仲介として動作するといったことである。そのように、機能性は、コストネットワークとのインタラクション（ｉｎｔｅｒａｃｔｉｏｎ）を含んで、アプリケーションによって実行されるネットワーク通信に気付くことができる。そして、機能性は、コストネットワークの使用の管理を手助けするために使用される。使用量を知らせる、「上限を超えた」場合に自動的にダウンロードを停止する、等といったことである。
【００１１】
この機能性は、また、コストネットワークを（おそらく）含まない種々の技術に対しても使用されてよい。例えば、これらの技術は、種々の異なる検討に関するポリシーを使用してネットワークを管理することができる。電力の検討、ダウンロードのレート、ネットワーク通信に含まれるデータのタイプ、等といったものである。別の実施例において、これらの技術は、アプリケーションの少なくとも一部分がサスペンド状態にある間に使用されてよい。これにより、コンピューティングデバイスのリソースをさらに保護することに役立つ。種々の他の実施例も熟考され、さらなる説明が以降の図面に関して見い出される。
【００１２】
以下の説明において、本明細書で説明する技術を使用することができる例示的環境について、最初に説明する。次いで、例示的環境と同様に他の環境においても実行されるる例示的手順について説明する。従って、例示的手順の実行は例示的環境に限定されるものではなく、例示的環境が例示的手順の実行に限定されるものでもない。
【００１３】
例示的環境
図１は、本明細書で説明するネットワーク通信とコスト意識の技術を使用するよう動作可能である例示的実施態様における環境１００の図である。図示した環境１００は、処理システム１０４（例えば、１つまたは複数のプロセッサ、機能ブロック）、メモリ１０６、電源１０８、表示デバイス１１０、および、ネットワーク１１４を介してネットワーク接続（例えば、通知チャネル）を提供するよう構成された１つまたは複数のネットワーク・インターフェイス・デバイス１１２を備えるコンピューティングデバイス１０２を含む。以下の説明において、示される構成要素は、１つまたは複数の構成要素を表すことができ、したがって、単一または複数の形態の構成要素、例えば、単一のネットワーク・インターフェイス・デバイス１１２および複数のネットワーク・インターフェイス・デバイス１１２などを区別なく参照することができる。
【００１４】
コンピューティングデバイス１０２は、さまざまな方法で構成することができる。例えば、コンピューティングデバイス１０２は、デスクトップコンピュータ、モバイルステーション、エンターテインメント機器、表示デバイスに通信可能に結合されたセット・トップ・ボックス、無線電話、およびゲーム機などの、ネットワーク１１４上で通信することが可能なコンピュータとして構成してもよい。したがって、コンピューティングデバイス１０２は、相当なメモリならびにプロセッサリソースを有するフル・リソース・デバイス（例えば、パーソナルコンピュータ、ゲーム機）から、限られたメモリ及び/又はプロセッシングリソースを有する低リソースデバイス（例えば、従来型のセット・トップ・ボックス、携帯型ゲーム機）にまで及ぶことができる。さらに、単一のコンピューティングデバイス１０２が示されるが、コンピューティングデバイス１０２は、処理を実行するためにビジネスで使用される複数のサーバ（例えば、サーバファーム）、遠隔制御ならびにセット・トップ・ボックスの組み合わせ、および画像取得デバイスならびにゲーム機などの、複数の異なるデバイスで表すことができる。
【００１５】
ネットワーク１１４は、インターネットとして図示されているが、ネットワークは、多種多様な構成を想定することができる。例えば、ネットワーク１１４は、広域ネットワーク（ＷＡＮ）、構内ネットワーク（ＬＡＮ）、またはイントラネットを含むことができるため、ネットワーク・インターフェイス・デバイス１１２は、有線接続を介して、これらのネットワークにアクセスするよう構成することができる。ネットワーク１１４は、また、無線広域ネットワーク（ＷＷＡＮ）、無線構内ネットワーク（ＷＬＡＮ）、およびセルラネットワーク（例えば、３Ｇ、４Ｇ、ＬＴＥネットワーク）などの無線技術を介してアクセスするよう構成することができる。ネットワーク・インターフェイス・デバイス１１２は、物理的デバイスとしても、仮想プライベートネットワークおよびトンネリングなどをサポートするために使用されるような仮想ネットワークデバイスとしても表すことができる。したがって、単一のネットワーク１１４を示すが、ネットワーク１１４は、複数のネットワークを表すことができる。
【００１６】
コンピューティングデバイス１０２は、さらに、オペレーティングシステム１１６を含むものとして図示される。オペレーティングシステム１１６は、コンピューティングデバイス１０２で実行可能なアプリケーション１１８、１２０に、コンピューティングデバイス１０２の基礎となる機能を抽出するよう構成される。例えば、オペレーティングシステム１１６は、コンピューティングデバイス１０２の処理システム１０４、メモリ１０６、電源１０８（例えば、バッテリまたは有線接続）、及び/又は表示デバイス１１０機能を抽出することができ、アプリケーション１１８、１２０は、この基礎となる機能を実行する「方法」を知ることなく書くことができる。アプリケーション１１８、１２０は、例えば、表示デバイス１１２によって表現および表示されるデータを、この表現をどのように実行することができるかを理解することなく、オペレーティングシステム１１６に提供することができる。
【００１７】
同様に、オペレーティングシステム１１６は、また、ネットワーク・マネージャー・モジュール１２２の使用により、アプリケーション１１８、１２０へのネットワーク接続機能を抽出することができる。ネットワーク・マネージャー・モジュール１２２はアプリケーション１１８、１２０によるネットワーク・インターフェイス・デバイス１１２の使用およびネットワーク・インターフェイス・デバイス１１２自身の動作を管理するための機能を表す。例えば、ネットワーク・マネージャー・モジュール１２２は、一つまたはそれ以上のエンドポイント１２４を用いてアプリケーション１１８、１２０の通信を管理することができる。ウェブサイトの管理、データ（例えば、画像）の保存、メッセージの通信、等を管理するために使用されるネットワークサービスといった、ネットワークを介したものである。ネットワーク・マネージャー・モジュール１２２、および、対応するコスト意識モジュール１２６と統合モジュール１２８は、オペレーティングシステム１１６の一部として示されているが、この機能性は、種々の異なるエンティティによって実施され得ることが直ちに明らかであろう。そうしたエンティティの実施例は、スタンドアロンのアプリケーション、サードパーティのプラグイン、等を含んでいる。
【００１８】
ネットワーク・マネージャー・モジュール１２２は、この管理を実行するために種々の異なる機能性を合体してよい。例えば、ネットワーク・マネージャー・モジュール１２２は、インタラクションを管理するための機能性の代表であるコスト意識モジュール１２６をコストネットワークと合体してよい。ネットワークインターフェイスデバイス１１２は、例えば、異なるデータ通信量を異なる料金に割り当てるコストネットワークとインタラクションするように構成されてよい。超過に対する追加料金を伴うキャップされた量に対するフラット料率、階段式構造、等といったものである。
【００１９】
従って、コスト意識モジュール１２６は、これらのコストネットワークとのインタラクションを管理するための技術を使用してよい。コスト意識モジュール１２６は、アプリケーションプログラミングインターフェイスを介して機能性を公開することによってこうしたことを行う。アプリケーション１１８、１２０が、機能性自身を合体することを要しないで、これらの技術を活用できるようにである。コスト意識モジュール１２６の機能性についてのさらなる説明は、図２に関して見い出される。
【００２０】
ネットワーク・マネージャー・モジュール１２２はさらに、統合モジュール１２８を含むものとして図示される。統合モジュール１２８は、ネットワーク・マネージャー・モジュール１２２の機能性をアプリケーション１１８、１２０の実行と統合するための機能を表す。例えば、統合モジュール１２４は、エンドポイント１２４とのネットワーク接続を管理して維持する技術をサポートすることができる。このことは、ダウンロードの実行を停止及び再開すること、ネットワーク通信をスケジュールすること、等を含んでよい。統合モジュール１２８の機能性についてのさらなる説明は、図３に関して見い出される。
【００２１】
このように、ネットワーク・マネージャー・モジュール１２２は、アプリケーションプログラミングインターフェイスを複数のアプリケーション１１８、１２０に対して公開するために使用され、ネットワーク通信を実行するために機能性にアクセスする。さらに、これらのアプリケーションプログラミングインターフェイスは、ネットワークインターフェイスデバイス１１２に対するのと同様に、アプリケーション１１８、１２０に戻って通信するように構成されてよい。従って、ネットワーク１１４アクセスの管理にために種々の異なる技術が実施されてよい。コスト意識、リソースの使用（例えば、処理システム１０４、メモリー１０６、電源１０８、および、表示デバイス１１０によるもの）、ネットワーク接続の管理、等といったものである。種々の他の機能性も、また、考慮され得る。例えば、ネットワーク・マネージャー・モジュール１２２は、進歩的なダウンロード及びプレイバック（ｐｌａｙｂａｃｋ）をサポートしてよい。例えば、ダウンロードの際にデータが構成されるようにストリームレイヤーに接続する（ｈｏｏｋすることによる。
【００２２】
一般に、本明細書で説明するいずれの機能も、ソフトウェア、ファームウェア、ハードウェア（例えば、固定ロジック回路）、またはそれらの実施態様の組み合わせを使用して実現することができる。本明細書で使用する「モジュール」、「機能」、および「ロジック」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを意味する。ソフトウェア実施の場合、モジュール、機能、またはロジックは、プロセッサ（例えば、単一ＣＰＵまたは複数ＣＰＵ）で実行される場合、所定のタスクを実行するプログラムコードを意味する。プログラムコードは、１つまたは複数のコンピュータ読取り可能メモリデバイスに保管することができる。以下で説明するネットワークブローカ技術の特徴は、プラットフォーム独立型であり、本技術は、さまざまなプロセッサを有するさまざまな市販のコンピューティングプラットフォームで実現することができることを意味する。
【００２３】
例えば、コンピューティングデバイス１０２は、また、コンピューティングデバイス１０２のハードウェアに、例えば、プロセッサ、および機能ブロックなどの動作を実行させる構成要素（例えば、ソフトウェア）を含むことができる。例えば、コンピューティングデバイス１０２は、コンピューティングデバイス、より詳しくは、コンピューティングデバイス１０２のハードウェアに動作を実行させるインストラクションを保持するよう構成することができる、コンピュータ読取り可能媒体を含むことができる。したがって、インストラクションは、動作を実行するようハードウェアを構成するために機能し、このようにして、機能を実行するようハードウェアの変形をもたらす。インストラクションは、コンピュータ読取り可能媒体によって、さまざまな異なる構成品を通じて、コンピューティングデバイス１０２に提供することができる。
【００２４】
コンピュータ読取り可能媒体のそのような構成の１つに、信号搬送媒体があり、したがって、インストラクション（例えば、搬送波）を、コンピューティングデバイスのハードウェアに、ネットワークを介するなどして伝送するよう構成される。コンピュータ読取り可能媒体は、また、コンピュータ読取り可能ストレージ媒体として構成することができ、その場合、信号搬送媒体ではない。コンピュータ読取り可能ストレージ媒体の例には、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、光学ディスク、フラッシュメモリ、ハードディスクメモリ、および、磁気的、光学的ならびに他の技術を使用して、インストラクションならびに他のデータを保管可能な他のメモリデバイスがある。
【００２５】
図２は、図１のネットワーク・マネージャー・モジュール１２２のコスト意識モジュール１２６の例示的動作を示す例示的実施態様におけるシステム２００の図である。システム２００は、図示されるように、オペレーティングシステム１１６の一部として実施されるネットワーク・マネージャー・モジュール１２２を含んでいるが、他の実施も考慮される。例えば、スタンドアロンのダウンロードマネージャー、等である。
【００２６】
ネットワーク・マネージャー・モジュール１２２は、例えば、一つまたはそれ以上のアプリケーションプログラミングインターフェイスを介して、複数のアプリケーション１１８、１２０に対して機能性を公開しているように示されている。例えば、ネットワーク・マネージャー・モジュール１２２は、アプリケーション１１８、１２０と、無線（例えば、Ｗｉ−Ｆｉ、セルラ）又は有線ネットワークにアクセスするように構成されたネットワークインターフェイスデバイス１１２とのインタラクションを管理する中心（ｃｅｎｔｒａｌ  ｐｏｉｎｔ）として構成されてよい。このように、ネットワーク・マネージャー・モジュール１２２は、アプリケーション１１８、１２０、および、オペレーティングシステム１１６自身のサービスのためにネットワークインターフェイスデバイス１１２によって実行されるネットワーク通信２０２の「意識」を有することができる。
【００２７】
従って、アプリケーション１１８、１２０は、ネットワーク通信２０２の管理を「オフロード（ｏｆｆｌｏａｄ）」することができ、種々の機能をサポートするために使用され得る。一つまたはそれ以上の実施態様においては、ネットワーク通信２０２に対応するアプリケーションの特権（ｐｒｉｖｉｌｅｇｅ）がネットワーク通信を実行するために維持され、それにより、悪意ある集団によって開発されたであろう特権の引き上げに対する保護、および、手順にわたる「漏えい」の機会の削減をしている。
【００２８】
そうした機能の一つは、アプリケーションがサスペンド状態にある間に、アプリケーション１１８，１２０に変わってネットワーク通信が実行されるように許可することができる。アプリケーション１１８、１２０は、種々の異なるファクターのためにサスペンド状態に置かれてよい。
【００２９】
例えば、オペレーティングシステム１１６は、フォーカスが別のアプリケーションに移ったときに、アプリケーション１１８、１２０をサスペンド状態に置くように構成されてよい。フォーカスあ、アプリケーションのユーザーインターフェイスを最小化することによって移動することができる。図１の表示デバイス１１０に示されるようにデスクトップユーザーインターフェイスにおける前景（ｆｏｒｅｇｒｏｕｎｄ）からのユーザーインターフェイス（例えば、ウィンドウ）の移動であり、そこにおいてフォーカスは、ブラウザー又は文書作成アプリケーションではなく、ｅメールアプリケーションに与えられている。フォーカスは、また、イマーシブ環境におけるアプリケーション１１８、１２０のユーザーインターフェイスから離れて、ナビゲーションを通じて移動されてよい。例えば、アプリケーション１１８、１２０に対応するユーザーインターフェイスが「オフスクリーン（ｏｆｆ  ｓｃｒｅｅｎ）」となる。このように、オペレーティングシステム１１６は、直接的にユーザーインタラクションのために利用可能ではないアプリケーションの実行をサスペンドすることによって、コンピューティングデバイス１０２のリソースを保護している。
【００３０】
アプリケーション１１８、１２０は、また、コンピューティングデバイス１０２のリソース使用の効率を向上するよう構成することができる。例えば、アプリケーション１１８は、別々に実行することができる異なる部分を形成するよう誘導することができる。
アプリケーション１１８に対するこのことについて示した例は、アプリケーション１１８に対するユーザインターフェイスの生成で必要とされる機能などの、アプリケーション１１８の他の機能２０６とは別に、ネットワーク機能２０４の誘導を含む。アプリケーションのためのユーザーインターフェイスの生成に包含される機能といったものである。このように、ネットワーク機能２０４は、アプリケーション１１８の他の機能２０６（例えば、ＵＩ機能）がサスペンドされている間、アクティブに保持されてよい。従って、アプリケーション１１８に代わってネットワーク通信２０２実行するようにネットワーク・マネージャー・モジュール１２２が動作する最中に、アプリケーション１１８の全て又は一部がサスペンドされてよい。別の言葉で言えば、ネットワーク・マネージャー・モジュール１２２の実行は、例えば、異なる手順の実施を通じたアプリケーション１１８、１２０の実行から離れて「サンドボックス（ｓａｎｄｂｏｘ）」され得る。
【００３１】
ネットワーク・マネージャー・モジュール１２２は、また、アプリケーション１１８、１２０による使用のために公開される種々の他の機能性をサポートする。こうした機能性の実施例は、レポートモジュール２０８及びポリシーモジュール２１０を通じて図２において説明される。
【００３２】
レポートモジュール２０８は、アプリケーション１１８、１２０に対して「返答（ｒｅｐｏｒｔ  ｂａｃｋ）」するためのネットワーク・マネージャー・モジュール１２２の機能を表している。例えば、レポートマネージャーモジュール１２２は、アプリケーション１１８に対して、アプリケーション１１８に対応するネットワーク通信２０２に関する情報を提供する。このことは、アプリケーション１１８のために実行されたアップロード又はダウンロードの状況、通信を実行するために使われた時間量、通信が完了したかどうか、等を含んでいる。
【００３３】
別の実施例において、このレポートモジュール２０８は、他のアプリケーションによるネットワークの使用に関する情報を提供する。レポートモジュール２０８は、例えば、アプリケーション１２０に対して、アプリケーション１１８のために実行されたアップロード又はダウンロードの状況をレポートしてよい。この情報は、また、全般的な使用（例えば、アプリケーション１１８、１２０両方による使用）を記述しているデータを含んでよい。アプリケーション１１８、１２０によって消費されてきたコストネットワークの割り当て量、コスト閾値に達したかどうか、ネットワーク通信２０２の現在のコスト（例えば、アプリケーションごとに示され、所定のネットワークを示し得る）、所定の接続にわたりアップロード又はダウンロードされたデータ量、等といったものである。このように、レポートモジュール２０８は、コンピューティングデバイス１０２によって実行されたネットワーク通信２０２に関して、アプリケーション１１８，１２０に知らせ続けることができる。
【００３４】
ポリシーモジュール２１０は、ネットワーク通信２０２を管理するために一つまたはそれ以上のポリシーを使用するネットワーク・マネージャー・モジュール１２２の機能を表している。ポリシーは、ネットワーク通信２０２を管理するために使用され得る種々の異なるファクターを含んでよい。そうした実施例の一つにおいて、ポリシーは、所定のアプリケーションのために、所定のネットワークにわたり、所定の回数、等で使用される通信（例えば、ダウンロード）のレートを規定するように構成されてよい。そうした別の実施例において、ポリシーは、データ通信に関するホスト又はネットワークの振る舞い（ｂｅｈａｖｉｏｒ）（例えば、ＩＰｖ６に従ったもの）を変更するために通信されるべきデータをマーク（ｍａｒｋ）するために使用される。ポリシーモジュール２１０は、例えば、ネットワーク１１４によって他のデータとは違うように取り扱われるメディアを含んでいるものとして、コンテンツをマークすることができる。例えば、優先順位を使用する。
【００３５】
追加の実施例において、ポリシーモジュールは、ネットワーク・マネージャー・モジュール１２２が、どのように電力消費の考慮を扱うかを規定してよい。ポリシーは、例えば、ネットワーク通信２０２が所定の時間に実行されること、通信を実行するためにネットワークインターフェイスデバイス１１２が所定のインターバルでサスペンド状態から起こされること、複数のアプリケーションから合体された通信を使用すること、等を規定し得る。電力消費の考慮をサポートするスケジュールに係る追加の説明は、図３に関して見い出される。
【００３６】
さらなる実施例において、ポリシーは、どのようにデータが取得されるかを規定してよい。ポリシーは、例えば、データがＷｉ−Ｆｉ接続を介してダウンロードされるべきことを示し得る。３Ｇ、４Ｇ、ＬＴＥセルラネットワークといったコストネットワークを介さないで、Ｗｉ−Ｆｉ接続が利用可能な場合である。従って、こうした例において、ポリシーは、データが安いコストでダウンロードされるように、かつ、電力消費の低いリソースをも含むように構成されている。例えば、ネットワークインターフェイスデバイス１１２に係る低消費電力ラジオがある。
【００３７】
さらに別の実施例において、ポリシーは、ネットワーク・マネージャー・モジュール１２２がどのようにコストネットワークを扱うかを規定してよい。ポリシーは、例えば、コスト閾値に達した場合にネットワーク通信が禁止されること規定し得るし、プロンプトと「超過ＯＫか」選択可能なオプションを含むユーザーインターフェイスを出力させ得る、等である。ポリシーの使用を通じて管理されるポリシーと機能性に係る種々の他の実施例が、以降の図面に関して見い出される。
【００３８】
図３は、図１のネットワーク・マネージャー・モジュール１２２の統合モジュール１２４の例示的動作を示す例示的実施態様におけるシステム３００の図である。すでに述べたように、ネットワーク・マネージャ・モジュール１２２は、アプリケーション１１８、１２０による使用のために公開される種々の機能性をサポートすることができる。こうした機能性の実施例は、ポーズ／レジュームモジュール３０２及びスケジュールモジュール３０４を通じて図３において説明される。
【００３９】
ポーズ／レジュームモジュール３０２は、ネットワーク通信をポーズ（ｐａｕｓｅ）及び/又はレジューム（ｒｅｓｕｍｅ）するためのコンピューティングデバイス１０２の機能を表している。アプリケーション１１８は、例えば、ログイン証明書を提供するといった「一時的ＵＲＬ（ｏｎｅ  ｔｉｍｅ  ＵＲＬ）」とのネットワーク通信を含み、安全なサイトとインタラクション等、してよい。従って、ポーズ／レジュームモジュール３０２は、ネットワーク１１４停止に直面した場合でさえ、アプリケーション１１８とエンドポイント１２４との間の状態を持続するように構成されている。
【００４０】
ポーズ／レジュームモジュール３０２は、例えば、ネットワーク通信の開始以前に利用可能であるデータを保持してよい。データは、アプリケーションによって提供されたリクエストヘッダー、クッキー、リクエストエンティティボディー（例えば、ＰＯＳＴ／ＰＵＴリクエストに対するもの）、メソッド名（例えば、ＧＥＴ、ＰＯＳＴといったＨＴＴＰリクエストに対するもの）、宛先パス（例えば、ダウンロードされたファイルの最終的な場所）、一時的なパス（例えば、部分的にダウンロードされたファイルの場所）を含んでよい。
【００４１】
エンドポイント１２４からのレスポンスの後に受け取ったデータも、また、保持されてよい。レスポンスヘッダー、通信がレジュームするように構成されているか否かの情報、等といったものである。保持され得る他のデータは、ネットワーク通信の最中に変化するデータを含み、通信の状態（例えば、「アップロード中」、「ダウンロード中」、「停止」）、現在の作業アイテム識別子、等を含んでよい。
【００４２】
このように、ネットワーク通信の最中にエンドポイント１２４が利用不可能になった場合には、「停止した場所から続ける」ようにポーズ／レジュームモジュール３０２が使用され、データが再び通信される必要はない。「一時的ＵＲＬ」のインスタンスにおいてさえもそうである。他の実施例も、また、これらの主旨及び範囲から逸脱することなく自然に理解される。そして、これらの技術は、ネットワークの可用性、（例えば、ポリシーのため）ポーズイベントを始めたコンピューティングデバイス１０２、等に対して等しく適用可能であることが直ちに明らかであろう。
【００４３】
スケジュールモジュール３０４は、ネットワーク通信をスケジュールするためにアプリケーション１１８、１２０を統合するコンピューティングデバイス１０２の機能を表している。このスケジュールは、種々の状況を扱うために以前に説明したように、ポリシーを活用することで実行され得る。
【００４４】
スケジュールモジュール３０４は、例えば、アプリケーション１１８、１２０のために実行されるべき通信を合体するようにしようされてよい。スケジュールモジュール３０４は、そして、ネットワークインターフェイスデバイス１１２をあるインターバルで起こして、例えば、並行に、合体された通信とコミュニケーションさせる。このようにして、ネットワークインターフェイスデバイス１１２の電力消費を効率的に管理するために、統合モジュール１２４が使用されてよい。他のスケジュールも、また、スケジュールモジュール３０４によって実行され得る。ネットワークインターフェイスデバイス１１２からアプリケーション１１８、１２０の一つまたはそれ以上に対してインバウンド（ｉｎｂｏｕｎｄ）通信が提供される場合のスケジュールを含んでいる。
【００４５】
例示的手順
以降の記述は、ネットワーク通信とコスト意識技術を説明するものであり、以前に説明されたシステム及びデバイスを利用して実施される。本手順の態様は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。本手順は、１つまたは複数のデバイスによって実行される動作を明示するブロックのセットとして示され、各ブロックによる動作を実行するために示される順序に必ずしも限定されない。以下の説明の部分において、図１の環境および図２と図３のシステム２００、３００をそれぞれ参照する。
【００４６】
図４は、ネットワーク通信を実行するために機能性が複数のアプリケーションに対して公開される例示的実施態様における手順４００を示すフローチャートである。機能性は、ネットワーク通信を実行するためのコンピューティングデバイスに係る複数のアプリケーションに対してアクセス可能な一つまたはそれ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を通じて公開される（ブロック４０２）。ネットワーク・マネージャー・モジュール１２２は、例えば、ネットワーク１１４を介して通信するためにアプリケーション１１８、１２０に対して一つまたはそれ以上のＡＰＩを通じて機能性を公開してよい。このことは、図１から図３に関して以前に説明したように、種々の機能性を含み得る。
【００４７】
データは、ネットワーク通信を実行するために使用されたコストネットワークに関する複数のアプリケーションの一つまたはそれ以上に対して返される（ブロック４０４）。レポートモジュール２０８は、例えば、バンド幅の使用に関するデータ、つまりアプリケーション１１８，１２０が使用する割り当て及び使用量、コスト閾値を超えるであろう通知、等を返すことができる。このデータは、アプリケーション１１８、１２０に対して、ユーザーによる視聴のためのユーザーインターフェイスにける出力、等を返してよい。
【００４８】
ネットワーク通信を実行するための機能性は、一つまたはそれ以上のポリシーを使用して管理される（ブロック４０６）。以前に説明したように、ポリシーは、種々のシナリオを記述及び扱うために利用され得る。例えば、ポリシーは、一つまたはそれ以上の電力消費の考慮に基づいて機能性を管理するように、ダウンロードのレートを管理するように、所定のネットワークや複数のアプリケーションの合体ダウンロードの利用可能性に基づいてダウンロードを管理するように、複数のアプリケーションのために複数のダウンロードを並行して実行させるように、等のために構成され得る。
【００４９】
例示的システムおよびデバイス
図５は、図１を参照して説明したようなコンピューティングデバイス１０２を含む例示的システム５００を示す。例示的システム５００は、パーソナルコンピュータ（ＰＣ）、テレビジョンデバイス、及び/又はモバイル・デバイスでアプリケーションを実行する場合、シームレスなユーザ体験のためのユビキタス環境を可能にする。サービスおよびアプリケーションは、アプリケーションを使用しながら、ビデオゲームをプレイしながら、およびビデオを見ながらなどの間に、あるデバイスから次のデバイスへ遷移する場合に、ユーザ体験を共通にするために、３つすべての環境で実質的に同様に動作する。
【００５０】
例示的システム５００において、複数のデバイスが、中央コンピューティングデバイスを通じて、相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルとすることができ、または、複数のデバイスから遠隔に設置することができる。一実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、または他のデータ通信リンクを通じて複数のデバイスに接続された１つまたは複数のサーバコンピュータのクラウドとしてもよい。一実施形態において、この相互接続アーキテクチャは、複数のデバイス間で配信される機能が、複数のデバイスのユーザに共通でシームレスな体験を提供することを可能にする。複数のデバイスのそれぞれは、異なる物理的要件および能力を有することができ、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスに適合して、さらにすべてのデバイスに共通する体験をデバイスに配信することを可能にする。一実施形態において、ターゲットデバイスのクラスが作成され、体験は、デバイスの汎用クラスに適合される。デバイスのクラスは、物理的特徴、使用の種類、またはデバイスの他の共通特性によって定義してもよい。
【００５１】
さまざまな実施態様において、コンピューティングデバイス１０２は、コンピュータ５０２、モバイル５０４、およびテレビジョン５０６などのさまざまな異なる構成を使用すると仮定することができる。これら構成のそれぞれは、一般に異なる構成および性能を有する可能性があるデバイスを備え、したがって、コンピューティングデバイス１０２は、異なるデバイス・クラスの１つまたは複数に従って構成することができる。例えば、コンピューティングデバイス１０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、およびネットブックなどを含むデバイスのコンピュータ５０２クラスとして実現することができる。
【００５２】
コンピューティングデバイス１０２は、また、携帯電話、ポータブル音楽プレイヤ、ポータブル・ゲーム・デバイス、タブレットコンピュータ、およびマルチスクリーンコンピュータなどのモバイル・デバイスを含むデバイスのモバイル５０４クラスとして実現することができる。コンピューティングデバイス１０２は、また、カジュアルな視聴環境における一般的により大型なスクリーンを有するか、または接続されたデバイスを含むデバイスのテレビジョン５０６クラスとして実現することができる。それらのデバイスは、テレビジョン、セット・トップ・ボックス、およびゲーム機などを含む。本明細書で説明される技術は、コンピューティングデバイス１０２のこれらのさまざまな構成によってサポートすることができ、本明細書で説明される技術の具体例に限定されない。これは、コンピューティングデバイス１０２上でのネットワーク・マネージャー・モジュール１２２の包含を通じて示されるが、この機能は、「クラウド上（ｏｖｅｒ  ｔｈｅ  ｃｌｏｕｄ）」といった、環境の至る所に分散されてよいことに留意すべきである。
【００５３】
クラウド５０８は、コンテンツ・サービス５１２のためのプラットフォーム５１０を含む、及び/又はプラットフォーム５１０を表す。プラットフォーム５１０は、クラウド５０８のハードウェア（例えば、サーバ）およびソフトウェア・リソースの基礎をなす機能を抽出する。コンテンツ・サービス５１２は、コンピュータ・プロセッシングがコンピューティングデバイス１０２から離れたサーバで実行される間、使用することが可能であるアプリケーション及び/又はデータを含むことができる。コンテンツ・サービス５１２は、インターネット上の、及び/又は、セルラもしくはＷｉ−Ｆｉネットワークなどの加入者ネットワークを通じてのサービスとして提供することができる。
【００５４】
プラットフォーム５１０は、コンピューティングデバイス１０２を他のコンピューティングデバイスと接続するためのリソースおよび機能を抽出することができる。プラットフォーム５１０は、また、リソースのスケーリングを抽出して、プラットフォーム５１０を介して実現されるコンテンツ・サービス５１２に対して生じる要求に対応するスケールのレベルを提供するよう動作することができる。それに応じて、相互接続されたデバイスの実施形態において、本明細書で説明する機能に関する機能の実施態様は、システム５００全体に分散してもよい。例えば、本機能は、コンピューティングデバイス１０２で、およびクラウド５０８の機能を抽出するプラットフォーム５１０を介して、部分的に実現することができる。
【００５５】
図６は、本明細書で説明する技術の実施形態を実現するための図１、図２および図５を参照して説明したような任意の種類のコンピューティングデバイスとして実現することが可能な例示的デバイス６００のさまざまなコンポーネントを示す。デバイス６００は、デバイス・データ６０４（例えば、受信データ、受信中のデータ、一斉送信のためにスケジュールされたデータ、データのデータ・パケットなど）の有線及び/又は無線通信を可能にする通信デバイス６０２を含む。デバイス・データ６０４または他のデバイス・コンテンツは、デバイス、デバイスに格納されたメディアコンテンツ、及び/又はデバイスのユーザと関連した情報の構成設定を含むことができる。デバイス６００に格納されたメディアコンテンツは、任意の種類のオーディオ、ビデオ、及び/又は画像データを含むことができる。デバイス６００は、ユーザ選択可能入力、メッセージ、音楽、テレビ・メディア・コンテンツ、録音されたビデオコンテンツ、および任意のコンテンツ及び/又はデータ・ソースから受信した任意の他の種類のオーディオ、ビデオ及び/又は画像データなどの、任意の種類のデータ、メディアコンテンツ、及び/又は入力を受信することが可能な１つまたは複数のデータ入力６０６を備える。
【００５６】
デバイス６００は、また、シリアル及び/又はパラレル・インターフェイス、無線インターフェイス、任意の種類のネットワークインターフェイス、モデムの任意の１つまたは複数として、および任意の他の種類の通信インターフェイスとして実現することが可能な通信インターフェイス６０８を含む。通信インターフェイス６０８は、デバイス６００と、他の電子的デバイス、コンピューティングデバイス、ならびに通信デバイスが、デバイス６００とデータを通信する通信ネットワークとの間の接続及び/又は通信リンクを提供する。
【００５７】
デバイス６００は、さまざまなコンピュータ実行可能命令を処理して、デバイス６００の動作を制御し、さらに、本明細書で説明する技術の実施形態を実現する、１つまたは複数のプロセッサ６１０（例えば、任意のマイクロプロセッサおよび制御器など）を含む。あるいは、またはさらに、デバイス６００は、一般に６１２で識別されるプロセッシング回路ならびに制御回路と関連して実現される、ハードウェア、ファームウェア、もしくは固定ロジック回路の任意の１つもしくは組み合わせを用いて実現することができる。図示しないが、デバイス６００は、デバイス内のさまざまな構成要素と結合するシステム・バスまたはデータ転送システムを含むことができる。システムバスは、メモリバスもしくはメモリ制御器、周辺バス、ユニバーサル・シリアル・バス、及び/又は任意のさまざまなバス構造を使用するプロセッサバスもしくはローカルバスなどの、異なるバス構造の任意の１つもしくは組み合わせを含むことができる。
【００５８】
デバイス６００は、また、１つまたは複数のメモリ部品などの、コンピュータ読取り可能媒体６１４を備え、その例には、ランダム・アクセス・メモリ（ＲＡＭ）、不揮発性メモリ（例えば、リード・オンリー・メモリ（ＲＯＭ）、フラッシュ・メモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの任意の１つまたは複数）、およびディスク・ストレージ・デバイスがある。ディスク・ストレージ・デバイスは、ハードディスク・ドライブ、記録可能及び/又は書き換え可能コンパクト・ディスク（ＣＤ）、および任意の種類のデジタル多用途ディスク（ＤＶＤ）などの、任意の種類の磁気もしくは光学ストレージ・デバイスとして実現することができる。デバイス６００は、また、大容量ストレージ媒体デバイス６１６を備えることができる。
【００５９】
コンピュータ読取り可能媒体６１４は、データ・ストレージ機構を提供して、デバイス・データ６０４、さまざまなデバイスアプリケーション６１８、およびデバイス６００の動作態様に関連した任意の他の種類の情報及び/又はデータを格納する。例えば、オペレーティングシステム６２０は、コンピュータ読取り可能媒体６１４でコンピュータ・アプリケーションとして保持され、プロセッサ６１０で実行することができる。デバイスアプリケーション６１８は、デバイスマネージャ（例えば、制御アプリケーション、ソフトウェアアプリケーション、信号処理ならびに制御モジュール、特定のデバイスにネイティブであるコード、特定のデバイスに対するハードウェアアブストラクション層など）を含むことができる。デバイスアプリケーション６１８は、また、任意のシステム構成要素またはモジュールを含み、本明細書で説明する技術の実施形態を実現する。この例において、デバイスアプリケーション６１８は、ソフトウェアモジュール及び/又はコンピュータアプリケーションとして示した、インターフェイスアプリケーション６２２ならびに入力／出力モジュール６２４を含む。入力／出力モジュール６２４は、タッチスクリーン、トラックパッド、カメラ、およびマイクロフォンなどの入力を取得するよう構成されたデバイスとのインターフェイスを提供するよう使用されるソフトウェアを表す。あるいは、またはさらに、インターフェイスアプリケーション６２２および入力／出力モジュール６２４は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせとして実現することができる。さらに、入力／出力モジュール６２４は、ビジュアル入力およびオーディオ入力をそれぞれ取得するための別々のデバイスなどの、複数の入力デバイスをサポートするよう構成してもよい。
【００６０】
デバイス６００は、また、オーディオデータをオーディオシステム６２８にもたらす、及び/又は、ビデオデータを表示システム６３０にもたらす、オーディオ及び/又はビデオ入力−出力システム６２６を備える。オーディオシステム６２８及び/又は表示システム６３０は、オーディオ、ビデオ、ならびに画像データを処理、表示、及び/又は、そうでなければ表現する任意のデバイスを含むことができる。ビデオ信号およびオーディオ信号は、ＲＦ（無線周波数）リンク、Ｓ−ビデオリンク、複合ビデオリンク、コンポーネント・ビデオ・リンク、ＤＶＩ（デジタル・ビデオ・インターフェイス）、アナログオーディオ接続、または他の同様の通信リンクを介して、オーディオデバイスに、及び/又は及び/又は表示デバイスに、デバイス６００から通信することができる。一実施形態において、オーディオシステム６２８及び/又は表示システム６３０は、デバイス６００に対する外部コンポーネントとして実現される。あるいは、オーディオシステム６２８及び/又は表示システム６３０は、例示的デバイス６００の一体型コンポーネントとして実現される。
【００６１】
結論
本発明は、構造的特徴及び/又は方法論的動作に特有の言語で説明してきたが、添付の特許請求の範囲で定義される本発明は、記載した特定の特徴または動作に必ずしも限定されないことを理解すべきである。むしろ、特定の特徴および行為は、特許請求する本発明を実現する例示的形態として開示される。
【図１】
2014534485.tif 000003
【図２】
2014534485.tif 000004
【図３】
2014534485.tif 000005
【図４】
2014534485.tif 000006
【図５】
2014534485.tif 000007
【図６】
2014534485.tif 000008
【国際調査報告】
2014534485.tif 000009
2014534485.tif 000010