JP5905578B2 - バックグラウンドアプリケーションイベントのモニタのためのシステムおよび方法 - Google Patents

バックグラウンドアプリケーションイベントのモニタのためのシステムおよび方法 Download PDF

Info

Publication number
JP5905578B2
JP5905578B2 JP2014528564A JP2014528564A JP5905578B2 JP 5905578 B2 JP5905578 B2 JP 5905578B2 JP 2014528564 A JP2014528564 A JP 2014528564A JP 2014528564 A JP2014528564 A JP 2014528564A JP 5905578 B2 JP5905578 B2 JP 5905578B2
Authority
JP
Japan
Prior art keywords
communication
application
statistics
communication statistics
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014528564A
Other languages
English (en)
Other versions
JP2014531795A (ja
Inventor
メイラン、アーナウド
ベン—ザー、リアト
ベン―ザー、リアト
ジアレッタ、ジェラルド
シャー、テジャシュ・アール.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014531795A publication Critical patent/JP2014531795A/ja
Application granted granted Critical
Publication of JP5905578B2 publication Critical patent/JP5905578B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/08Access restriction or access information delivery, e.g. discovery data delivery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/20Monitoring; Testing of receivers
    • H04B17/26Monitoring; Testing of receivers using historical data, averaging values or statistics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements

Description

関連出願
関連出願の相互参照
本出願は、それぞれの全体がともに参照により本明細書に組み込まれる、2011年10月5日に出願された米国仮出願第61/543,701号、および2011年8月29日に出願された米国仮出願第61/528,628号の米国特許法第119条(e)項に基づく優先権を主張する。
本出願は、一般にワイヤレス通信に関し、より詳細には、バックグラウンドアプリケーションイベントをモニタするためのシステム、方法、およびデバイスに関する。
ワイヤレスデバイスに広範囲のアドオンサービスおよび特徴を与えるように動作するアプリケーション(「app」)またはデバイスアプレットが現在利用可能である。たとえば、ワイヤレスデバイスは、ショッピング、検索、位置特定、運転ナビゲーション、および一連の他の機能など、付加価値機能を実行するために、デバイスアプレットをダウンロードし、起動することが現在可能である。ネットワークおよびアプリケーションプロバイダは、概して、追加料金でデバイスユーザにこれらのデバイスアプレットを提供する。したがって、デバイスアプレットの使用は、ワイヤレスデバイスの機能性およびユーザビリティを高め、デバイス自体では元来利用可能でない特徴および利便性をデバイスユーザに提供する。
ワイヤレスデバイスは、複数の無線のいずれかを使用して、1つまたは複数の通信ネットワークとインターフェースする。たとえば、ワイヤレスデバイスは、セルラー、WiFi、Bluetooth(登録商標)、または他のタイプの無線アクセス技術を使用して通信を行う様々な無線を含み得る。したがって、ワイヤレスデバイス上で実行されるアプリケーションは、適切なネットワークと通信するためにアプリケーションが使用することになる無線と関連する無線チャネルとを判断するデフォルトルーティングを備える。
しかしながら、アプリケーション通信をインテリジェントに管理することに対する関心が高まっている。これは、一部は、マルチ無線デバイス(たとえば、3G/Wi−Fiデバイス)の数の増加、および事業者の容量問題を生じ得るネットワークトラフィックの増加によるものである。したがって、そのような容量問題に関して、トラフィックを代替無線にオフロードするか、またはある期間中に通信を遅延させることが望ましいことがある。
したがって、ワイヤレスデバイス上のアプリケーションの通信管理を行うための効率的でコスト効果的な機構が必要である。詳細には、どのアプリケーションがネットワークを使用し、アプリケーションがネットワークをどのように使用するのかを発見する効率的な方法が必要である。さらに、発見されたアプリケーションがデバイスの様々な状態においてどのくらい緊急に無線にアクセスすべきかに従って、発見されたアプリケーションを分類する必要がある。そのような情報は、通信の送信を遅延させるために使用され得る。さらに、通信の遅延した送信に関するポリシーを通信するシステムおよび方法が必要である。
本発明のシステム、方法、およびデバイスはそれぞれいくつかの態様を有し、それらのうちの単一の態様が単独で本発明の望ましい属性を担当するとは限らない。次に、以下の特許請求の範囲によって表される本発明の範囲を限定することなしに、いくつかの特徴について手短に説明する。この説明を考察すれば、特に「発明を実施するための形態」と題するセクションを読めば、本発明の特徴が、どのアプリケーションが遅延トレラント(delay-tolerant)であるかを知ることを含む利点をどのように提供するかが理解されよう。
本開示の一態様は、ワイヤレスデバイスを提供する。本ワイヤレスデバイスは、通信ネットワークとデータを交換するように構成されるネットワークインターフェースを含む。本ワイヤレスデバイスは、1つまたは複数の入力を受信するように構成された入力デバイスをさらに含む。本ワイヤレスデバイスは、ネットワークインターフェースに電気的に接続されたプロセッサをさらに含む。プロセッサは、1つまたは複数の入力の存在または不在に基づいてデバイスがバックグラウンド状態にあるのかフォアグラウンド状態にあるのかを判断するように構成される。プロセッサは、ネットワークインターフェースを介して通信ネットワークと通信するように構成された複数のアプリケーションを実行するようにさらに構成される。プロセッサは、デバイスがバックグラウンド状態にあるとき、複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集するようにさらに構成される。プロセッサは、デバイスがフォアグラウンド状態にあるとき、デバイスがバックグラウンド状態にあるときに収集した通信統計値とは別個に、1つまたは複数の通信統計値を収集すること、または1つまたは複数の通信統計値を収集することを控えることのいずれかを行うようにさらに構成される。
本開示の別の態様は、アプリケーション通信統計値を収集する方法を提供する。本方法は、1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断することを含む。本方法は、通信ネットワークと通信するように構成された複数のアプリケーションを実行することをさらに含む。本方法は、デバイスがバックグラウンド状態にあるとき、複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することをさらに含む。本方法は、デバイスがフォアグラウンド状態にあるとき、デバイスがバックグラウンド状態にあるときに収集した通信統計値とは別個に、1つまたは複数の通信統計値を収集すること、または1つまたは複数の通信統計値を収集することを控えることのいずれかを行うことをさらに含む。
本開示の別の態様は、アプリケーション通信統計値を収集するための装置を提供する。本装置は、1つまたは複数の入力の存在または不在に基づいて装置がフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断するための手段を含む。本装置は、通信ネットワークと通信するように構成された複数のアプリケーションを実行するための手段をさらに含む。本装置は、本装置がバックグラウンド状態にあるとき、複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集するための手段をさらに含む。本装置は、デバイスがバックグラウンド状態にあるときに収集した通信統計値とは別個に、デバイスがフォアグラウンド状態にあるときに1つまたは複数の通信統計値を収集するための手段、またはデバイスがフォアグラウンド状態にあるときに1つまたは複数の通信統計値を収集することを控えるための手段のいずれかをさらに含む。
本開示の別の態様は、非一時的コンピュータ可読媒体を提供する。本媒体は、実行されたとき、装置に、1つまたは複数の入力の存在または不在に基づいて装置がフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断させるコードを含む。本媒体は、実行されたとき、装置に、通信ネットワークと通信するように構成された複数のアプリケーションを実行させるコードをさらに含む。本媒体は、実行されたとき、装置に、装置がバックグラウンド状態にあるとき、複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集させるコードをさらに含む。本媒体は、実行されたとき、装置に、装置がフォアグラウンド状態にあるとき、装置がバックグラウンド状態にあるときに収集した通信統計値とは別個に、1つまたは複数の通信統計値を収集すること、または通信統計値を収集することを控えることのいずれかを行わせるコードをさらに含む。
本開示の別の態様は、複数のアプリケーションを実行し、通信ネットワークと通信するように構成されたワイヤレスデバイスを提供する。ワイヤレスデバイスは、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを受信するように構成された受信機を含む。本ワイヤレスデバイスは、1つまたは複数の入力を受信するように構成された入力デバイスをさらに含む。本ワイヤレスデバイスは、1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断するように構成されるプロセッサをさらに含む。プロセッサは、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信を変更するようにさらに構成される。プロセッサは、デバイスがフォアグラウンド状態にあるとき、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信の送信を許可するようにさらに構成される。
本開示の別の態様は、通信ネットワークと通信する方法を提供する。本方法は、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを受信することを含む。本方法は、1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断することをさらに含む。本方法は、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信を変更することをさらに含む。本方法は、ユーザインターフェースがフォアグラウンド状態にあるとき、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信の送信を許可することをさらに含む。
本開示の別の態様は、通信ネットワークと通信するための装置を提供する。本装置は、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを受信するための手段を含む。本装置は、1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断するための手段をさらに含む。本装置は、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信を変更するための手段をさらに含む。本装置は、ユーザインターフェースがフォアグラウンド状態にあるとき、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信の送信を許可するための手段をさらに含む。
本開示の別の態様は、非一時的コンピュータ可読媒体を提供する。本媒体は、実行されたとき、装置に、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを受信させるコードを含む。本媒体は、実行されたとき、装置に、1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断させるコードをさらに含む。本媒体は、実行されたとき、装置に、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信を変更させるコードをさらに含む。本媒体は、実行されたとき、装置に、ユーザインターフェースがフォアグラウンド状態にあるとき、ルールに従って複数のアプリケーションのうちの1つまたは複数による通信の送信を許可させるコードをさらに含む。
本開示の別の態様は、通信ネットワークと通信するように構成される装置を提供する。本デバイスは、ワイヤレスデバイス上で実行される、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを生成するように構成されるプロセッサを含む。本デバイスは、通信ネットワークを介してワイヤレスデバイスに複数のルールを送信するように構成される送信機をさらに含む。
本開示の別の態様は、通信ネットワークと通信する方法を提供する。本方法は、ワイヤレスデバイス上で実行される、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを生成することを含む。本方法は、ワイヤレスデバイスに通信ネットワークを介して複数のルールを送信することをさらに含む。
本開示の別の態様は、通信ネットワークと通信するための装置を提供する。本装置は、ワイヤレスデバイス上で実行される、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを生成するための手段を含む。本装置は、ワイヤレスデバイスに通信ネットワークを介して複数のルールを送信するための手段をさらに含む。
本開示の別の態様は、非一時的コンピュータ可読媒体を提供する。本媒体は、実行されたとき、装置に、ワイヤレスデバイス上で実行される、複数のアプリケーションのうちの1つまたは複数が通信ネットワークとどのように通信すべきかを指定する複数のルールを生成させるコードを含む。本媒体は、実行されたとき、装置に、ワイヤレスデバイスに通信ネットワークを介して複数のルールを送信させるコードをさらに含む。
本明細書で説明する上記の態様は、添付の図面とともに以下の説明を参照することによって、より容易に明らかになろう。
通信管理システムの態様を示す例示的なネットワーク環境を示す図。 通信管理を行うように構成される例示的なワイヤレスデバイスを示す図。 通信管理を行う例示的な方法のフローチャート。 例示的なデバイスのアプリケーションネットワークアクティビティのグラフ。 アプリケーション通信をアグリゲートするように構成されるハードウェア/ソフトウェアシステムの例示的なブロック図。 図5のハードウェア/ソフトウェアシステムによって実装されるアプリケーション通信アグリゲーションの例示的なタイムラインを示す図。 別の実施形態による、アプリケーション通信アグリゲーションのタイムラインを示す図。 通信アクセスポリシーを実装するように構成される例示的なデバイスを示す図。 通信統計値を収集する例示的な方法のフローチャート。 通信統計値を分析する例示的な方法のフローチャート。 通信統計値を収集する別の例示的な方法のフローチャート。 通信アクセスポリシーを実装する例示的な方法のフローチャート。 通信アクセスポリシーを実装するように構成される別の例示的なデバイスを示す図。
添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示の教示は、多くの異なる形態で実施され得るものであり、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する任意の態様が請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのいくつかを例として、図および好適な態様についての以下の説明において示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
本明細書で説明する技法は、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、周波数分割多元接続(FDMA)ネットワーク、直交FDMA(OFDMA)ネットワーク、シングルキャリアFDMA(SC−FDMA)ネットワークなど、様々なワイヤレス通信ネットワークに対して使用され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。CDMAネットワークは、ユニバーサルテレストリアルラジオアクセス(UTRA)、CDMA2000などの無線技術を実装し得る。UTRAは、ワイドバンド−CDMA(W−CDMA)(登録商標)と低チップレート(LCR)とを含む。CDMA2000は、IS−2000、IS−95およびIS−856規格をカバーする。TDMAネットワークは、グローバルシステムフォーモバイルコミュニケーション(GSM(登録商標))などの無線技術を実装し得る。OFDMAネットワークは、Evolved UTRA(E−UTRA)、IEEE802.11、IEEE802.15、IEEE802.16、IEEE802.20、Flash−OFDMA(登録商標)などの無線技術を実装し得る。UTRA、E−UTRA、およびGSMは、ユニバーサルテレストリアルラジオアクセス(UMTS)の一部である。ロングタームエボリューション(LTE)は、E−UTRAを使用するUMTSの今度のリリースである。UTRA、E−UTRA、GSM、UMTSおよびLTEは、「第3世代パートナーシッププロジェクト」(3GPP)と称する団体からの文書に記載されている。CDMA2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)と称する団体からの文書に記載されている。これらの様々な無線技術および規格は当技術分野で知られている。
図1に、通信管理システム108の態様を示す例示的なネットワーク環境100を示す。ネットワーク環境100は、ワイヤレスデバイス102と、通信ネットワーク104と、1つまたは複数のサーバ110および111とを含む。デバイス102は、対応する無線チャネル106を使用してネットワーク104と通信するための複数の無線(図示せず)を含む。デバイス102はまた、たとえば、特定のアプリケーションによる複数の無線へのアクセスを制御するように動作する通信管理システム108を含む。
ワイヤレスデバイス102は、通信ネットワーク104を介してサーバ110および111と通信し得る。サーバ110および111は、それぞれ通信チャネル112および113を介して通信ネットワーク104に接続する。通信チャネル112および113は、ワイヤードチャネルとワイヤレスチャネルのいずれかであり得る。
動作中、ワイヤレスデバイス102は、複数の無線のいずれかを使用してネットワーク104とインターフェースし得るアプリケーションを実行する。たとえば、実行アプリケーションは、ネットワーク104と通信するためのネットワークリソースを要求するために、ソケットレイヤ呼出しなどのネットワーキング関数呼出しを発し得る。一実施形態では、通信管理システム108は、アプリケーションに所定の無線リソースをバインドするために、デフォルトルーティング構成に基づいてソケットレイヤ呼出しを処理し得る。
一実施形態では、サーバ110は、通信アクセスポリシーを取得し得る。様々な実施形態では、サーバ110は、コンパイルされたネットワーク統計値に基づいて通信アクセスポリシーを生成し得るか、前にコンパイルされた通信アクセスポリシーを取り出し得るか、または別のソースから通信アクセスポリシーを受信し得る。一実施形態では、ワイヤレスデバイス102は、通信管理システム108を介して通信統計値を収集し得る。通信統計値は、たとえば、無線チャネル106にアクセスしようと試みるアプリケーション、アプリケーションが無線チャネル106にアクセスしようと試みるとき、どのようなアクセスが試みられているかなどに関する情報を含み得る。ワイヤレスデバイス102は、サーバ111に通信統計値を与え得る。サーバ110および111の一方または両方は、ワイヤレスデバイス102から受信した通信統計値を処理し得、単独またはタンデムのいずれかで通信アクセスポリシーをコンパイルし得る。いくつかの実施形態では、サーバ110およびサーバ111はコロケートされ得るか、またはそれらの機能は、単一のサーバ上で組み合わされ得る。
通信アクセスポリシーは、どのアプリケーションが無線チャネル106にアクセスすることを許可されるのか、アプリケーションが無線チャネル106にアクセスすることをいつ許可されるのか、どのようなアクセスが許可されるのかなどに関するルールを含み得る。サーバ110は、通信ネットワーク104を介してワイヤレスデバイス102に通信アクセスポリシーを与え得る。様々な実施形態では、サーバ110は、アクセスネットワークディスカバリーアンドセレクションファンクション(ANDSF)、オープンモバイルアライアンスデバイス管理(OMA−DM:Open Mobile Alliance Device Management)、および/または任意の他の好適な方法、オーバージエアなどを介してワイヤレスデバイス102に通信アクセスポリシーを与え得る。
様々な実装形態では、通信管理システム108は、アプリケーションからのネットワーキング関数呼出しをインターセプトするように動作する。通信管理システム108は、通信アクセスポリシーに従ってアプリケーションが使用するための適切な無線を選択し得る。通信管理システム108はまた、通信アクセスポリシーに従ってアプリケーションの通信を変更し得る。本明細書で使用する、通信の変更形態は、限定はしないが、通信を遅延させることか、またはさもなければ通信に影響を及ぼすかまたは作用することを含むことができる。インテリジェント無線選択システム108はまた、ネットワークリソース(すなわち、選択されている無線)にアプリケーションをバインドし得る。通信管理システム108は、アプリケーションが無線リソースを使用するときのアプリケーションの通常動作に応答して動作するので、システムは、アプリケーションの変更またはアップグレードなしに、レガシーアプリケーションと非レガシーアプリケーションの両方で動作し得る。通信管理システム108のより詳細な説明を以下に与える。
図2に、通信管理を行うように構成される例示的なワイヤレスデバイス200を示す。デバイス200は、通信バス214を使用して通信するようにすべて結合されたプロセッサ202と、メモリ204と、TX/RX無線機212とを含む。ワイヤレスデバイス200は、図1に関して上記で説明したワイヤレスデバイス102であり得る。デバイス200は一実装形態にすぎず、他の実装形態が可能であることに留意されたい。
一態様では、プロセッサ202は、アプリケーションレイヤモジュール206と、接続性エンジン208と、ネットワーキングモジュール210とを含む。プロセッサ202はまた、CPU、マイクロプロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、および/またはソフトウェアを実行するハードウェア(図示せず)のうちの少なくとも1つを含み得る。プロセッサ202は、デバイス200上で実行されるアプリケーションの通信が、選択的に変更され、影響を及ぼされ、遅延され、および/または所望の無線にバインドされ得るように、デバイス200の動作を制御するように構成される。一実装形態では、プロセッサ202は、複数の機能のうちのいずれかを実行することに関係するコンピュータ可読命令を実行するように構成される。たとえば、プロセッサ202は、通信管理を実現するためにデバイス200から受信されるか、または通信される情報を分析するように動作する。別の態様では、プロセッサ202は、通信管理を実現するためにメモリ204、アプリケーションレイヤモジュール206、TX/RX無線機212、および/または接続性エンジン208によって利用され得る情報を生成するように動作する。
TX/RX無線機212は、複数の無線チャネル216を使用する外部通信ネットワーク104(図1)などの複数の外部エンティティとデバイス200をインターフェースするために使用され得る複数の無線/インターフェースを与えるように構成されるソフトウェアを実行するハードウェアおよび/またはプロセッサを含む。無線チャネル216は、たとえば、図1に関して上記で説明した無線チャネル106であり得る。TX/RX無線機212は、セルラー、Wi−Fi、ブルートゥース、または無線チャネル216を使用して通信ネットワークと通信するための他の技術を使用して通信するための無線/インターフェースを与え得る。
アプリケーションレイヤモジュール206は、デバイス200上で1つまたは複数のアプリケーションを実行し、メモリ204にアプリケーションを記憶するように構成されるソフトウェアを実行するハードウェアおよび/またはプロセッサを含む。一実装形態では、アプリケーションレイヤモジュール206は、アプリケーションが、ネットワーキングサービスを要求するためにネットワーキングモジュール210へのネットワーキング関数呼出しを開始することを許可するように構成される。ネットワーキング関数呼出しは、無線チャネル216を介して外部ネットワークまたはシステムと通信するための、TX/RX無線機212における無線/インターフェースへの接続要求を含み得る。
ネットワーキングモジュール210は、ネットワーキング関数を実行するように構成されるソフトウェアを実行するハードウェアおよび/またはプロセッサを含む。一実装形態では、ネットワーキング関数は、Connect()、Bind()、Write()、およびSetsockopt()などの関数を含む。connect()関数は、アプリケーションと特定の無線/インターフェースとの間の接続を確立するように動作する。write()関数は、接続を介してデータを送るように動作する。たとえば、特定の無線/インターフェースは、TX/RX無線機212によって与えられた複数の候補無線から選択され得る。一態様では、ネットワーキングモジュール210は、様々なネットワーキング関数またはコマンドを実行するように構成される。一態様では、ネットワーキングモジュール210は、デバイスがバックグラウンドモードにある間(図8)、いくつかの機能が続行することを許可し得、他の機能が続行することを許可しないことがある。一実施形態では、たとえば、ユーザインターフェースが使用中でないとき、デバイスはバックグラウンドモードにあり得る。
接続性エンジン208は、アプリケーションからの通信を管理するためにシステムリソースを評価するように構成されるソフトウェアを実行するハードウェアおよび/またはプロセッサを含む。様々な実装形態では、接続性エンジン208は、以下の選択基準うちの1つまたは複数に基づいて、アプリケーション通信をインターセプトすること、通信を選択的に変更し、影響を及ぼし、および/または遅延させること、ならびに/あるいは特定の無線を選択することを行うように構成される。
1.ユーザポリシー−デバイスにおいて実行されるアプリケーションによる無線アクセスに関する、デバイスユーザによって設定されるポリシー。
2.事業者ポリシー−デバイスまたはアプリケーションによるネットワークアクセスに関する、ネットワーク事業者によって設定されるポリシー。
3.無線メトリック−特定のアプリケーションまたは動作環境のために最も好適な無線を選択するために使用される、無線パフォーマンスの測定値または他のタイプの測定値。
4.アプリケーション要件−帯域幅要件またはレイテンシ/パフォーマンス要件など、要求アプリケーションに関連する要件。
5.ネットワークユーザビリティ−特定の無線インターフェース上での特定のネットワークの利用可能性に関する情報。
6.ベンダー供給メトリック−受信信号強度インジケータおよびパケットロス率などの無線メトリックから、特定の無線インターフェースのために利用可能なスループットおよびレイテンシに変換するための情報。
7.アクセスポイント利用可能性−他のデバイスからのトラフィックによって輻輳されるアクセスポイント、または無線リンクを構成し得るが、ネットワークにパケットを転送しないアクセスポイントの一意の識別子を指定する情報。
プロセッサ202は、TX/RX無線機212を介して上述の選択基準のうちの1つまたは複数をダウンロードし得る。選択基準はメモリ204に記憶され得る。たとえば、プロセッサ202は事業者ポリシーを取り出し得、接続性エンジン208はその事業者ポリシーを適用し得る。事業者ポリシーは、ワイヤレスデバイス200上のアプリケーションによるネットワークアクセスを規制する複数のルールを含み得る。
メモリ204は、RAM、ROM、EEPROM、あるいはアプリケーションおよび/または選択基準をデバイス200に記憶し、取り出すことを可能にするように動作する他のタイプのメモリデバイスを含む。一実装形態では、メモリ204は、プロセッサ202によって実行されるコンピュータ可読命令を記憶するように構成される。メモリ204はまた、プロセッサ202、TX/RX無線機212、アプリケーションレイヤモジュール206、ネットワーキングモジュール210、および/または接続性エンジン208のいずれかによって生成されるデータを含む複数の他のタイプのデータのいずれかを記憶するように構成され得る。メモリ204は、ランダムアクセスメモリ、バッテリバックアップメモリ、ハードディスク、磁気テープなどを含むいくつかの異なる構成で構成され得る。また、圧縮および自動バックアップなど、様々な特徴がメモリ204上に実装され得る。
メモリ204は、プリロードライブラリ218とネットワーキングライブラリ220とを記憶するように構成される。プリロードライブラリ218は、アプリケーションからのソケット呼出しをインターセプトする。ネットワーキングライブラリ220は、アプリケーションによって、ネットワーク通信を確立するためにソケットを作成し、接続するために使用されるネットワーキングAPIを与える。
接続性エンジン208は、様々な方法でアプリケーション通信を選択的に変更し、影響を及ぼし、および/または遅延させるように構成される。たとえば、接続性エンジン208は、上記の選択基準のうちの1つまたは複数を使用して通信を遅延させるように構成され得る。たとえば、接続性エンジン208は、遅延トレラントアプリケーションからの通信のみを遅延させ得る。さらに、接続性エンジン208は、ワイヤレスデバイス200がバックグラウンド状態にあるときのみ、通信を遅延させ得る。一実施形態では、接続性エンジン208は、ワイヤレスデバイス200がフォアグラウンド状態に入るまで、遅延トレラントアプリケーションのための通信を遅延させる。別の実施形態では、接続性エンジン208は、遅延イントレラント(delay-intolerant)アプリケーションが通信を開始するまで、遅延トレラントアプリケーションのための通信を遅延させる。
接続性エンジン208はまた、様々な方法で複数の候補無線から無線を選択するように構成され得る。たとえば、接続性エンジン208は、上記の選択基準のうちの1つまたは複数を使用して無線を選択するように構成され得る。無線が選択されると、接続性エンジン208は、その無線を表すインターフェースにアプリケーションをバインドする。たとえば、一実装形態では、接続性エンジン208は、元のネットワーキングライブラリ220への呼出しを行うことによって無線のインターフェースにアプリケーションをバインドする。したがって、接続性エンジン208における関数とプリロードライブラリ218とは、アプリケーションのために選択されている無線にバインドするために、ネットワーキングライブラリ220中のbind()関数などの関数に容易にアクセスし得る。
様々な実装形態では、通信管理システムは、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体上で実施される1つまたは複数のプログラム命令(「命令」)または「コード」のセットを有するコンピュータプログラム製品を含む。コードが少なくとも1つのプロセッサ、たとえば、プロセッサ202によって実行されると、それらの実行により、プロセッサ202は、本明細書で説明するインテリジェントインターフェース選択システムの機能を行うようにデバイス200を制御する。たとえば、コンピュータ可読媒体は、フロッピー(登録商標)ディスク、CDROM、メモリカード、フラッシュメモリデバイス、RAM、ROM、あるいはデバイス200とインターフェースする他のタイプのメモリデバイスまたはコンピュータ可読媒体を含む。別の態様では、コードのセットは、外部デバイスまたは通信ネットワークリソースからデバイス200にダウンロードされ得る。コードのセットは、実行されたとき、本明細書で説明するインテリジェントインターフェース選択システムの態様を与えるように動作する。
図3に、通信管理を行う例示的な方法のフローチャート300を示す。明確のために、フローチャート300について、図2に示したデバイス200に関して以下に説明する。しかしながら、図示された方法が任意の好適なデバイスを用いて実装され得ることを、当業者は諒解されよう。一実装形態では、プロセッサ202は、以下で説明する機能を実行するためにデバイス200の機能要素を制御するためのコードの1つまたは複数のセットを実行する。
ブロック302において、プロセッサ202はアプリケーションを開始する。アプリケーションは、アプリケーションレイヤモジュール206の一部であるレガシーアプリケーションまたは非レガシーアプリケーションであり得る。たとえば、アプリケーションは、TX/RX無線機212で利用可能な無線を使用してワイヤレスネットワークに接続するためにネットワーキング関数呼出しを生成するネットワークブラウザであり得る。
ブロック304において、プロセッサ202は、プリロードライブラリを構成し、ロードする。たとえば、プリロードライブラリ218は、アプリケーションによって通信ネットワークを評価するために使用されるネットワーキングライブラリ220中に与えられるネットワーキング関数のサブセットを含む。プリロードライブラリ218中のネットワーキング関数は、デバイスにおいて実行されるアプリケーションからのネットワーキング関数呼出しをインターセプトするように構成される。たとえば、プリロードライブラリ218は、デバイス200において実行されるアプリケーションによるソケット呼出しをインターセプトするために使用され得るPOSIXソケット関数を含む。一実装形態では、プリロードライブラリ218はメモリ204に記憶される。
一実装形態では、プリロードライブラリ218関数は、呼出しアプリケーションからパスされた引数を受信し、アプリケーションの目的に最も適した無線を選択するように接続性エンジン208に求める要求を生成するためにこれらの引数を使用するように構成される。
ブロック306において、プロセッサ202は、プリロードライブラリを実行環境にリンクする。たとえば、プロセッサ202は、ネットワーキングライブラリ220よりも高い優先順位でプリロードライブラリ218を実行環境にリンクする。したがって、アプリケーションによるネットワーキング関数呼出しは、インターセプトされ、プリロードライブラリ218中の関数によって処理され、ネットワーキングライブラリ220中の同様の関数によって処理されないことになる。
ブロック308において、プロセッサ202は、アプリケーションからのネットワーキング関数呼出しをインターセプトする。たとえば、ネットワーキング関数呼出しは、connect関数()またはwrite()関数など、POSIXソケット関数呼出しであり得る。アプリケーションは、外部ネットワークとの通信を可能にするために無線に接続するために、ネットワーキング関数呼出しを生成する。ネットワーキングライブラリ220よりも高い優先順位でプリロードライブラリ218を実行環境にリンクすることにより、プロセッサ202は、プリロードライブラリ218中の関数を介してネットワーキング関数呼出しをインターセプトする(または処理する)。一実施形態では、プロセッサ202は、図12に関して以下で説明するように、受信した事業者ポリシーに従ってネットワーキング関数呼出しを遅延させることができる。
ブロック310において、プリロードライブラリ218中の呼び出された関数は、アプリケーションが使用するのに適切な無線を選択するように接続性エンジン208に求める選択要求を生成する。要求には、接続性エンジン208によってアプリケーションが使用するのに適切な無線を選択するために使用される選択基準の一部である情報が含まれる。別の実施形態では、プリロードライブラリ218中の呼び出された関数は、通信を遅延すべきであるかどうかを判断するように接続性エンジン208に求める選択要求を生成する。
ブロック312において、選択基準を評価する。一実装形態では、接続性エンジン208は、上記で説明した選択基準を評価するように動作する。たとえば、接続性エンジン208は、選択基準の一部である事業者ポリシーを評価するためにプロセッサ202と通信し得る。
ブロック314において、接続性エンジン208は、選択基準の評価に基づいて無線を選択する。たとえば、接続性エンジン208は、選択基準に最も良く一致する無線を選択するように動作する。
ブロック316において、接続性エンジン208は、アプリケーションのために選択されている無線のインターフェースにバインドする。たとえば、一実装形態では、接続性エンジン208は、アプリケーションのために選択されている無線にバインドするために、ネットワーキングライブラリ220のbind()関数を呼び出す。たとえば、接続性エンジン208は、ネットワーキングライブラリ220に気づいており、プリロードライブラリ218によってインターセプトされることなしにそれの関数にどのように直接アクセスするかに気づいている。一実施形態では、接続性エンジン208は、アプリケーションを無線にバインドするより前にまたはその後に通信を遅延させる。
ブロック318において、アプリケーションは、次いで、ネットワーク通信のために選択されている無線を利用する。
オプションの動作では、本方法は、ブロック312に進み、接続性エンジン208は、現在の無線が選択基準に最も良く一致するかどうかを判断するために、選択基準の周期的評価を実行するように動作する。接続性エンジン208が、選択基準の別の評価の後に、現在の無線以外の無線が選択基準に最も良く一致すると判断した場合、接続性エンジン208は、新しい接続のために異なる無線を選択するために接続を再開するようにアプリケーションをトリガするための手段として、接続を無効化し得る。したがって、オプションの動作により、所望の通信を行うために最も適切な無線が選択されることを保証するために、選択基準を周期的に評価することが可能になる。
したがって、フローチャート300は、レガシーアプリケーションおよび非レガシーアプリケーションとともに使用する通信管理を行う。フローチャート300は一実装形態にすぎないこと、およびフローチャート300の動作は、他の実装形態が可能であるように並べ替えられるかまたは場合によっては変更され得ることに留意されたい。
ワイヤレスデバイスアプリケーションのための接続性管理
スマートフォン、携帯情報端末などのワイヤレスデバイスでは、ソフトウェアアプリケーションは、デバイスがバックグラウンド状態にあるとしても(たとえば、ユーザがデバイスをアクティブに使用していないとき)動作し続け得る。ソーシャルネットワーキングアプリケーション、電子メールまたは他の通信アプリケーション、データフィードなどのアプリケーション(普及している例としては、Facebook(登録商標)、Gmail(登録商標)、Twitter(登録商標)などがある)は、ユーザがデバイスを使用していなくても、データを送信および受信し続け得る。
モバイルデバイスは、デバイスのいくつかの入力が使用可能でないときまたはスリープ状態にあるとき、バックグラウンドモードにあり得る。言い換えれば、デバイスは、ユーザがデバイスを使用していないとき、バックグラウンドモードにあり得る。たとえば、(マイクロフォンなどの)オーディオ入力がオフであるとき、デバイスはバックグラウンドモードにあると見なされ得る。さらに、(デバイスのディスプレイなどの)ビジュアル入力がオフであるとき、デバイスはバックグラウンドモードにあると判断され得る。以下で説明するように、モバイルデバイスがバックグラウンドモードにあるか否かを判断するために追加の入力が使用され得る。
図4に、例示的なデバイスのアプリケーションネットワークアクティビティのグラフ400を示す。グラフ400のx軸は時間を示し、y軸は、それぞれの時間に転送されるデータの量をバイト単位で示す。グラフ400に、デバイスがアイドルモードにある約2時間の期間中のネットワークアクティビティを示す。一実施形態では、ユーザがデバイスと対話しないとき、および/またはディスプレイがオフであるとき、デバイスはアイドルモードにある。デバイスはバックグラウンドモードにあるが、動作し続けるアプリケーションは、アクティビティのスパイク、たとえば、スパイク410a〜iを生じる。そのようなアプリケーションは「バックグラウンド」アプリケーションと呼ばれることがある。これらのアプリケーションによるアクティビティは、無線機212における無線など、通信リソースを利用し得る。一実施形態では、バックグラウンドモードは「アイドル」モードであり得る。
スパイク410a〜iなどのネットワークアクティビティスパイクにより、ワイヤレスデバイスはアイドルモードから接続モードに遷移され得る。接続モードでは、デバイスは、無線機を起動し得、シグナリングトラフィックを生成し得、アイドルモードにあるときよりも大きい電力量を消費し得る。場合によっては、スパイクは、ワイヤレスデバイスが、接続モードからアイドルモード、または不連続受信(DRX:discontinuous reception)モードなどの代替接続モードに遷移するのを防げ得る。ユーザがデバイスをアクティブに操作していないときのアプリケーションによる無線アクティビティのレベルのそのような上昇は、バッテリー寿命の短縮、無線ネットワークの負荷の増加、または他の望ましくない影響をもたらし得る。
本明細書で開示する技法および構造を採用して、デバイスは、バックグラウンドアプリケーションからデータをキャプチャし、無線リソースがアクティブ化され、アプリケーションデータが転送され、タスクが同期方式で実行され得る所望の時点までそれらのデータを保持するためのアプリケーションプログラムインターフェース(API:application program interface)を与えるソフトウェアレイヤ(「ラッパー」とも呼ばれる)を採用し得る。そのようなタスク/データ要求をアグリゲートすることによって、ユーザがワイヤレスデバイスをアクティブに使用していない期間中に、ワイヤレスデバイスの頻繁な起動が低減され、他の通信リソースが温存され得る。
図5に、アプリケーション通信をアグリゲートするように構成されるハードウェア/ソフトウェアシステム500の例示的なブロック図を示す。図示のように、ソフトウェア構成要素は、アプリケーションプロセッサ550とモデムプロセッサ560との間で分割されるが、様々な機能は、図5の例とは別様に編成され得る。たとえば、ソフトウェアとして説明する機能はハードウェアで実装され得、その逆も同様であり、機能は構成要素間で別様に分散されるなどがあり得る。一実施形態では、ハードウェア/ソフトウェアシステム500は、図1に関して上記で説明した通信管理システム108であり得る。別の実施形態では、ハードウェア/ソフトウェアシステム500は、図2に関して上記で説明したワイヤレスデバイス200上に実装され得る。たとえば、アプリケーションプロセッサ550の機能は、プロセッサ202、アプリケーションレイヤモジュール206、および/または接続性エンジン208のうちの1つまたは複数によって実装され得る。モデムプロセッサ560の機能は、TX/RX無線機212、ネットワーキングモジュール210、および/または接続性エンジン208のうちの1つまたは複数によって実装され得る。
図示の実施形態では、アプリケーション502は、アプリケーション接続エンジン508と、高レベルオペレーティングシステム(HLOS:high level operating system)506と対話する。HLOS506は、たとえば、カリフォルニア州マウンテンビューのGoogle社によって生成されたAndroidオペレーティングシステムであり得る。アプリケーション接続エンジン508はモデム接続エンジン510と通信し得る。モデム接続エンジンは、無線機212およびその中の無線など、通信リソースを管理し得る。ラッパー504は、アプリケーション502とHLOS506との間のデータをキャプチャすることが可能である。ラッパー504は、ユーザ非アクティビティ期間中にアプリケーション502からのデータをアグリゲートし、それらのデータをHLOS506にリリースし、動作/送信のために最終的に無線機212にリリースする前の判断された時間まで、それらのデータを保持し得る。ラッパー504は、アプリケーション502に不可視であり得、したがって、アプリケーション502は、それらのデータ/要求が保持/アグリゲートされていることに気づかない。一実施形態では、ラッパー504は、HLOS506の機能をエミュレートし得る。ラッパー504は、別個の構成要素であり得るか、またはアプリケーション接続エンジン508などの別の構成要素に組み込まれ得る。たとえば、ラッパー504は、図2に関して上記で説明した接続性エンジン208によって実装され得る。
図6に、図5のハードウェア/ソフトウェアシステム500によって実装されるアプリケーション通信アグリゲーションの例示的なタイムライン600を示す。図示のように、アプリケーションAPP1〜4はそれぞれ、アグリゲーション期間610中に連続した無線リソースの使用についての要求を開始する。一実施形態では、アプリケーション通信は、アグリゲーション期間610中に遅延され得る。一実施形態では、アグリゲーション期間610は、デバイス200がアイドルモードにある期間を含むことができる。アプリケーションAPP1〜4は遅延トレラントアプリケーションであり得る。遅延トレラントアプリケーションは、たとえば、電子メールまたはバルクファイル転送など、比較的時間に鈍感なデータを搬送し得る。
図示の実施形態では、アプリケーションAPP1はconnect()要求を行う。次いで、アプリケーションAPP2はwrite()要求を行う。次に、アプリケーションAPP3はconnect()要求を行う。最後に、アプリケーションAPP4はconnect()要求を行う。ラッパー504は、connect()ソケット呼出しとwrite()ソケット呼出しとを受信する。ソケット呼出しに基づいて直ちに作動するのではなく、ラッパー504は、アグリゲーション期間610中に通信を遅延させる。判断された時間に、ラッパー504は、アグリゲートデータ要求620としてソケット呼出しを一緒にリリースする。
一実施形態では、ラッパー504は、送信ウィンドウ630中にアグリゲートデータ要求620をリリースし得る。様々な実施形態では、送信ウィンドウ630は、デバイス200がアイドルモードにある期間を含み得、デバイス200がアクティブモードにある期間を含み得る。送信ウィンドウ630中に、ラッパー504は、APP1〜4からのアグリゲートデータ要求620をリリースし得る。ラッパー504はまた、送信ウィンドウ630中に行ったアプリケーション通信要求を遅滞なく続行することを許可し得る。言い換えれば、送信ウィンドウ630中に、ラッパー504はさらなる通信を遅延させないことがある。たとえば、図示の実施形態では、APP5は、送信ウィンドウ630中にconnect()要求を開始する。ラッパー504は、APP5のconnect()要求を遅滞なく続行することを許可する。
一実施形態では、ラッパー504は、規則的または不規則な間隔で送信ウィンドウ630を開き得る。たとえば、ラッパー504は、5分、10分、15分、30分、60分などの時間ごとに一回送信ウィンドウ630を開き得る。別の例では、ラッパー504は、ランダムまたは擬似ランダム時間に遅延アプリケーション通信をリリースし得る。ラッパー504が送信ウィンドウ630を開く間隔は、デバイス200によって判断されるか、またはサーバ110(図1)などの別のデバイスから受信され得る。
一実施形態では、ラッパー504は、アグリゲートデータ要求620に基づいて、送信ウィンドウ630を動的にいつ開くべきかを判断することができる。たとえば、ラッパー504は、アグリゲートデータ要求620の数がしきい値を上回ったときに送信ウィンドウ630を開くことができる。しきい値は、デバイス200によって判断されるか、またはサーバ110などの別のデバイスから受信され得る。
ラッパー504は、所定のまたは動的な時間期間の間、送信ウィンドウ630を開いたままにしておくことができる。たとえば、ラッパー504は、送信ウィンドウ630が開かれた後、15秒、30秒、1分、5分などの時間の間、送信ウィンドウ630を開いたままにしておくことができる。別の例として、ラッパー504は、最後のアプリケーション通信が送信された後、15秒、30秒、1分、5分などの時間の間、送信ウィンドウ630を開いたままにしておくことができる。ラッパー504が送信ウィンドウ630を開いたままにしておく時間量は、デバイス200によって判断されるか、またはサーバ110などの別のデバイスから受信され得る。
一実施形態では、ラッパー504は、遅延イントレラントアプリケーションが通信を開始するとき送信ウィンドウ630を開き得る。たとえば、APP5は遅延イントレラントアプリケーションであり得る。したがって、ラッパー504は、connect()要求がAPP4から受信されたとき、送信ウィンドウ630を開き得る。ラッパー504は、APP4からのconnect()要求を続行することを許可し得、また、APP1〜4からのアグリゲートデータ要求620をリリースし得る。
図7に、別の実施形態による、アプリケーション通信アグリゲーションのタイムライン700を示す。図示のように、アプリケーションAPP1〜2はそれぞれ、連続した無線リソースの使用についての要求を開始する。アプリケーションAPP1〜2は、接続エンジンAPIを介してそれらの遅延トレランスを示し得る。たとえば、アプリケーションAPP1〜2は、特定の遅延に対してのみ耐性がある動作のバックグラウンドアクティビティおよび/または要件を含み得る。たとえば、アプリケーションAPP1〜2は、10秒ごとになど周期的にデバイス200のロケーションをレポートするロケーショントラッキングアプリケーションであり得る。
図示のように、アプリケーションAPP1は、通信要求を開始し、ラッパー504に、アプリケーションAPP1がX秒の遅延にのみ耐えることを示す。次に、アプリケーションAPP2は、通信要求を開始し、ラッパー504に、アプリケーションAPP2がY秒の遅延にのみ耐えることを示す。ラッパー504は、通信が許可されたことをアプリケーションに示し得るコールバック関数(たとえば、API.Go)を与え得る。コールバックを受信した後に、アプリケーションは通信を続行し得る。
図示のように、ラッパー504は、X秒の遅延が経過する前に、アプリケーションAPP1にAPI.Goコールバックを与える。アプリケーションAPP1は、次いで、さらなる遅延なしにラッパー504を通して通信する。同様に、ラッパー504は、Y秒の遅延が経過する前に、アプリケーションAPP2にAPI.Goコールバックを与える。アプリケーションAPP2は、次いで、さらなる遅延なしにラッパー504を通して通信する。
代替実施形態では、アプリケーションは、APIを介してラッパー504に特定の送信デッドラインを与え得る。ラッパー504は、与えられたデッドラインの制約内で、アプリケーションからの通信を透過的に遅延させ得る。したがって、ラッパー504は、デッドラインより前にアプリケーション通信を続行することを許可することになる。
さらに別の態様では、APIはまた、アプリケーションが遅延イントレラントアプリケーションとして登録することを可能にし得る。即時アクセスを要求し得るアプリケーションは、子供追跡アプリケーション、緊急通知アプリケーションなどを含む。一実施形態では、ラッパー504は、アプリケーション通信をモニタすることによって、様々なアプリケーションの遅延トレランスを知り得る。別の実施形態では、ラッパー504は、デバイス102にローカルに記憶されているか、またはサーバ110から受信されたリストまたはデータベースからアプリケーション遅延トレランスのリストを受信し得る。リストまたはデータベースは、事業者ポリシーなどの通信アクセスポリシーとともに受信され得る。
ラッパー504は、ユーザ中断を低減する形でアプリケーション通信をアグリゲートするか、または遅延させ得る。ラッパー504は、アプリケーション通信をいつ遅延させるべきか、またはアプリケーション通信をいつアグリゲートすべきかを判断するために、様々なファクタを分析し得る。たとえば、ラッパー504は、ディスプレイ状態(オンまたはオフ)、オーディオ状態(オンまたはオフ)など、ワイヤレスデバイス102の特性に基づいてアプリケーション通信を遅延させ得る。ラッパー504は、遅延に対して耐性があることが知られているアプリケーション通信のみを遅延させ得る。ラッパー504は、無線がロードされていないとき、さもなければワイヤレスデバイスが使用中でない(たとえば、通話、オーディオストリーミングなどがない)ときにアプリケーション通信を遅延させ得る。ラッパー504が他の好適なファクタに加えて上記のファクタの任意の組合せに基づいてアプリケーション通信をいつ遅延させるべきかを判断し得ることを、当業者は諒解されよう。
さらに、ラッパー504は、遅延またはアグリゲート通信をいつリリースすべきか、および無制限アプリケーション通信をいつ許可すべきかを判断するために、様々なファクタを分析し得る。たとえば、遅延イントレラントアプリケーション(たとえば、緊急通知アプリケーションなど)は無制限アプリケーション通信を開始し得る。無制限アプリケーション通信は、前に遅延またはアグリゲートしたアプリケーション通信をリリースするようにラッパー504をトリガし得る。したがって、前に遅延されたアプリケーション通信は、緊急アプリケーションに関連して無線リソースを使用し得る。言い換えれば、ラッパー504は、遅延イントレラントアプリケーション通信が開始されたとき、すべてのアプリケーションに対して送信ウィンドウを開き得る。
一実施形態では、ラッパー504は、特定の無線がアクティブ化されたか、またはデフォルトとして選択されたとき、遅延またはアグリゲートアプリケーション通信をリリースし得る。特定の無線は、たとえば、Wi−Fi無線、セルラー無線、セルラー無線の特定のモード(たとえば、2Gまたは3G通信モード)、ブルートゥース無線などを含み得る。たとえば、ラッパー504は、セルラー無線のみが使用可能であるとき、アプリケーション通信を遅延させ得、Wi−Fi無線が使用可能であるとき、遅延アプリケーション通信をリリースし得る。
別の実施形態では、ラッパー504は、無線チャネル品質がしきい値を上回ったとき、遅延またはアグリゲートアプリケーション通信をリリースし得る。無線チャネル品質は、信号強度、信号対雑音比(SNR)などのメトリクスを含み得る。たとえば、ラッパー504は、セルラー無線のSNRがしきい値を下回ったとき、アプリケーション通信を遅延させ得、セルラー無線のSNRがしきい値まで上昇したか、それを上回ったとき、遅延アプリケーション通信をリリースし得る。
別の実施形態では、ラッパー504は、周期的に、または非連続ウィンドウで遅延またはアグリゲートアプリケーション通信をリリースし得る。たとえば、ラッパー504は、15分ごとに遅延アプリケーション通信をリリースし得る。別の例では、ラッパー504は、15〜20分ごとのランダムまたは擬似ランダム時間に遅延アプリケーション通信をリリースし得る。
一実施形態では、ラッパー504は、ユーザ対話が受信されたとき、遅延またはアグリゲートアプリケーション通信をリリースする。たとえば、ラッパー504は、ディスプレイがアクティブ化された、ボタン押下が検出されたなどのとき、遅延アプリケーション通信をリリースし得る。別の実施形態では、ワイヤレスデバイス102はユーザ対話を予期し得る。たとえば、ワイヤレスデバイス102は、ワイヤレスデバイス102の移動を検出し得る加速度計を含み得る。ラッパー504は、加速度計出力が緊急のユーザ対話の可能性を示すとき、遅延アプリケーション通信をリリースし得る。別の例では、ワイヤレスデバイス102は、近傍検出器を介したユーザ対話を予期し得る。ラッパー504が上記の任意の組合せに応答して、さらに任意の他の好適なイベントに応答して遅延アプリケーション通信をリリースし得ることを、当業者は諒解されよう。
上記の説明は、APIに関するアプリケーション通信アグリゲーションおよび遅延について説明するが、概念は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの任意の組合せにおいて等しく適用される。
同期ポリシー
一実施形態では、通信管理システム108(図1)は、サーバ110から通信アクセスポリシーを受信し得る。アグリゲーション期間610(図6)および送信ウィンドウ630中にアプリケーション通信をそれぞれ遅延およびリリースするとき、通信アクセスポリシーは、接続性エンジン208(図2)によって使用される事業者ポリシーを含み得る。様々な実施形態では、通信アクセスポリシーは、アグリゲーション期間610中にアプリケーション通信がどのくらい長く遅延され得るかを示すタイミング情報、通信が遅延され得るアプリケーションのリスト(「包含リスト」)、通信が遅延されないことがあるアプリケーションのリスト(「除外リスト」)、通信が遅延され得るか、または遅延されないことがある通信タイプのリスト、通信が遅延され得るか、または遅延されないことがあるネットワーク状態のリスト、ラッパー504が送信ウィンドウ630を開くべきであるか、または閉じるべきであるイベントまたはトリガのリスト、通信が遅延され得るか、または遅延されないことがある時間の指示、通信が遅延され得るか、または遅延されないことがあるロケーションの指示、デバイス200がサーバ110に更新通信アクセスポリシーをどのくらいの頻度で要求すべきか、通信が遅延され得る無線アクセス技術(RAT)のリストなどのうちの1つのまたは複数を含むことができる。
一実施形態では、通信タイプは、たとえば、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()など、1つまたは複数のソケット動作を含むことができる。通信タイプは、たとえば、会話トラフィック、ベストエフォートトラフィック、および緊急トラフィックなど、トラフィックタイプの分類をさらに含むことができる。会話トラフィックは、間欠一方向または双方向通信を表す通信、および/または、たとえば、テキストチャットトラフィック、ボイスチャットトラフィック、ビデオチャットトラフィック、World Wide Webトラフィック(たとえば、マッピングおよびナビゲーション機能)などの対話型コンテンツを含むことができる。ベストエフォートトラフィックは、たとえば、バルクデータ転送(たとえば、ファイル転送プロトコル(FTP)トラフィック)、電子メール、ビデオプリローディングなど、比較的低優先度のおよび/または非対話型のトラフィックを含むことができる。緊急通信は、たとえば、子供追跡位置データ、時間的制約のある警報トラフィック、緊急ボイストラフィックなど、比較的高優先度のトラフィックを含むことができる。さらに、通信タイプは、たとえば、ソースIPアドレス、宛先IPアドレス、ソースポート、宛先ポートなど、IPヘッダ中に一般に含まれている情報に基づき得る。
一実施形態では、通信アクセスポリシーは、送信トリガまたはイベントがない場合にラッパー540が送信ウィンドウ630をどのくらいの頻度で開くべきかを示す同期周波数を含むことができる。たとえば、通信アクセスポリシーは、ラッパー540が、少なくとも5分、10分、15分、30分、60分などの時間ごとに送信ウィンドウ630を開くべきであることを示し得る。一実施形態では、通信アクセスポリシーは、ラッパー504が送信ウィンドウ630を開くべきである、アグリゲートデータ要求のしきい値量を含むことができる。たとえば、通信アクセスポリシーは、しきい値時間量の間にアグリゲートデータ要求620の量が無線212を占有するのに十分であるとき、ラッパー540が送信ウィンドウ630を開くべきであることを示し得る。別の例として、ラッパーは、通信が遅延されるアプリケーションの数がしきい値よりも多い場合、ゲートを開くことができる。一実施形態では、通信アクセスポリシーはしきい値を含むことができる。別の例として、ラッパーは、通信が遅延されるソケット呼出しの数がしきい値よりも大きい場合、ゲートを開くことができる。一実施形態では、通信アクセスポリシーはしきい値を含むことができる。
一実施形態では、通信アクセスポリシーは、サーバ110からのアプリケーション遅延トレランスのリストを含むことができる。アプリケーション遅延トレランスのリストは、「除外リスト」と呼ばれることがある、遅延イントレラントアプリケーションのリストを含み得る。ラッパー504(図5)は、アグリゲーションから、除外リスト中で識別されたアプリケーションを除外し得る。同様に、アプリケーション遅延トレランスのリストは、「包含リスト」と呼ばれることがある、遅延トレラントアプリケーションのリストを含み得る。ラッパー504は、アプリケーション通信をアグリゲートするとき、包含リスト中で識別されたアプリケーションを含め得る
一実施形態では、ラッパー504は、デフォルトでアプリケーションを除外し得、特に包含リスト中で識別されたアプリケーションのためのアプリケーション通信のみを遅延させ得る。包含リストは、たとえば、アプリケーション名を表す文字列、数値識別子、バージョン番号、著者識別情報、またはそれらの任意の組合せなど、アプリケーション識別子を含み得る。一実施形態では、包含リストおよび/または除外リストは、個々のソケット動作によって表される通信タイプを含む精度(granularity)上でのアプリケーション通信を識別することができる。たとえば、包含リストは、アプリケーション「アプリケーションA」からのconnect()動作を遅延トレラントソケット動作として識別し得る。したがって、ラッパー504は、「アプリケーションA」からのconnect()動作をアグリゲートし得るが、「アプリケーションA」からの、たとえば、write()動作をアグリゲートしないことがある。一方、ラッパー504は、「アプリケーションB」からのconnect()動作をアグリゲートしないことがあるが、「アプリケーションB」からの、たとえば、write()動作をアグリゲートし得る。リストは、アプリケーション識別子、ソケット動作などの他の組合せを含むことができることを、当業者は諒解されよう。
一実施形態では、通信アクセスポリシーは、通信が遅延され得るか、または遅延されないことがあるネットワーク状態の指示を含む。たとえば、通信アクセスポリシーは、ラッパー504がアグリゲーション期間610および/または送信ウィンドウ630を調整することになることに基づいて、無線トラフィックのしきい値量を含むことができる。一実施形態では、ラッパー504は、ネットワークトラフィックの量が通信アクセスポリシーにおいて指定されているしきい値を下回るとき、送信ウィンドウ630を開くことができる。
一実施形態では、通信アクセスポリシーは、ラッパー504が送信ウィンドウ630を開くべきであるか、または閉じるべきであるイベントまたはトリガのリストを含む。たとえば、通信アクセスポリシーは、包含リスト上にないアプリケーションおよび/またはソケット呼出しがデータを転送しようと試みるとき、ラッパー504が送信ウィンドウ630を開くべきであることを示し得る。別の例として、通信アクセスポリシーは、除外リスト上のアプリケーションおよび/またはソケット呼出しがデータを転送しようと試みるとき、ラッパー504が送信ウィンドウ630を開くべきであることを示し得る。別の例として、通信アクセスポリシーは、包含リスト上のアプリケーションおよび/またはソケット呼出しのみがデータを転送しようと試みるとき、ラッパー504が送信ウィンドウ630を閉じるべきであることを示し得る。
一実施形態では、通信アクセスポリシーは、デバイス200がアクティブモードに入るとき、ラッパー504が送信ウィンドウ630を開くべきであることを示し得る。たとえば、通信アクセスポリシーは、ユーザインターフェース822(図8)が入力を受信するとき、ラッパー504が送信ウィンドウ630を開くべきであることを示し得る。別の実施形態では、ラッパー504は、デバイス200がアクティブモードに入るとき、送信ウィンドウ630を開かないことがあるが、さもなければ、デバイス200がアクティブモードにあるとき、ラッパー504を無効化するか、および/または通信を遅延させるのを停止し得る。
一実施形態では、通信アクセスポリシーは、ラッパー504がアプリケーション通信を遅延させるべきか、または遅延させるべきでない時間、日付、および/またはロケーションのリストを含む。たとえば、通信アクセスポリシーは、ある時間または日の間、ある曜日の間、デバイス200がある都市または国にあるときなどに、ラッパー504が通信を遅延させるべきであることか、または遅延させるべきでないことを示し得る。様々な実施形態では、時間、日付、および/またはロケーションポリシーは、1つまたは複数の特定のアプリケーションおよび/またはソケット動作に固有の精度で指定され得る。
一実施形態では、サーバ110は、通信ネットワーク104の状態に関する情報を受信することができる。たとえば、サーバ110は、通信ネットワーク104中のネットワークアドレス変換(NAT:Network Address Translation)テーブルがそれらの記録をどのくらい長く維持するかを判断することができる。サーバ110は、アプリケーションがそれらのNATエントリをリフレッシュすること、それらの接続を有効に保つことなどを行うのに十分な周波数をもつ送信ウィンドウ630をラッパー504が開くべきであることを示すように通信アクセスポリシーを調整することができる。
様々な実施形態では、通信アクセスポリシーは、上述のタイミング情報、アプリケーションリスト、通信タイプ、ネットワーク状態などの2つ以上のアクセス基準を組み合わせることができる。たとえば、通信アクセスポリシーは、デバイス802が待機状態にあるとき、ポート80へのすべてのトラフィックが最長5分だけ遅延され得ることを示すことができる。別の例として、通信アクセスポリシーは、デバイス802が待機状態にあるとき、WLANインターフェースのみが使用され得ることを示すことができる。別の例として、通信アクセスポリシーは、デバイス802が待機状態にある間、「アプリケーションX」からの「connect()」ソケット呼出しが遅延なしに完了し得ることを示すことができる。同時に、通信アクセスポリシーは、デバイス802が待機状態にある間、「アプリケーションY」からの「connect()」ソケット呼出しと「write()」ソケット呼出しとが遅延され得ることを示すことができる。同様に、通信アクセスポリシーは、たとえば、どのソケット動作が試みられているのか、試みられている通信のソースポートおよび/または宛先ポート、宛先IPアドレスなど、他の遅延基準を組み込むことができる。別の例として、通信アクセスポリシーは、無線アクセス技術が高速パケットアクセス(HSPA:High Speed Packet Access)であるとき、通信が遅延され得るが、無線アクセス技術がLTEであるとき、通信が遅延されないことがあることを示すことができる。通信アクセスポリシーの上述の態様が様々な方法で組み合わされ得ることを当業者は理解されよう。
図8に、通信アクセスポリシーを実装するように構成される例示的なデバイス802を示す。デバイスは、図1に関して上記で説明したネットワーク環境100内に採用され得る。デバイス802は、本明細書で説明する様々な方法を実装するように構成され得るデバイスの一例である。たとえば、デバイス802は、ワイヤレスデバイス102の1つまたは複数の機能を実装し得る。別の実施形態では、デバイス802は、サーバ110の1つまたは複数の機能を実装し得る。
デバイス802は、デバイス802の動作を制御するプロセッサ804を含み得る。プロセッサ804は中央処理ユニット(CPU)と呼ばれることもある。読取り専用メモリ(ROM)とランダムアクセスメモリ(RAM)の両方を含み得るメモリ806は、命令とデータとをプロセッサ804に与える。メモリ806の一部分は不揮発性ランダムアクセスメモリ(NVRAM)をも含み得る。プロセッサ804は、メモリ806内に記憶されたプログラム命令に基づいて、論理および演算動作を実行し得る。メモリ806中の命令は、本明細書で説明する方法を実装するように実行可能であり得る。
デバイス802がワイヤレスデバイス102として実装されるか、または使用されるとき、プロセッサ804は、メモリ806に記憶され得る1つまたは複数のアプリケーションを実行するように構成され得る。実行中に、アプリケーションは、トランシーバ814、送信機810、および/または受信機812を介した通信を開始し得る。プロセッサ804は、図5に関して上記で説明したハードウェア/ソフトウェアシステム500を実装し得る。したがって、プロセッサ804は、実行されたアプリケーションの通信をモニタし、通信統計値を記録し、受信機812を介して通信アクセスポリシーを受信し得、メモリ806に通信アクセスポリシーを記憶し得る。プロセッサ804は、図6〜図7に関して上記で説明したように通信アクセスポリシーを実装し得る。
プロセッサ804は、1つまたは複数のプロセッサとともに実装された処理システムを備えるか、またはそれの構成要素であり得る。1つまたは複数のプロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、専用ハードウェア有限状態機械、あるいは情報の計算または他の操作を実行し得る任意の他の好適なエンティティの任意の組合せを用いて実装され得る。
処理システムは、ソフトウェアを記憶するための機械可読媒体をも含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、任意のタイプの命令を意味すると広く解釈されたい。命令は、(たとえば、ソースコード形式、バイナリコード形式、実行可能コード形式、または任意の他の好適なコード形式の)コードを含み得る。命令は、1つまたは複数のプロセッサによって実行されたとき、本明細書で説明する様々な機能を処理システムに実行させる。
デバイス802はまた、デバイス802と遠隔ロケーションとの間のデータの送信および受信を可能にするために送信機810および/または受信機812を含み得るハウジング808を含み得る。送信機810と受信機812とは組み合わされてトランシーバ814になり得る。アンテナ816は、ハウジング808に取り付けられ、トランシーバ814に電気的に結合され得る。いくつかの実施形態では、アンテナ816は省略され得、デバイス802はワイヤード通信のために構成され得る。デバイス802は、複数の送信機、複数の受信機、複数のトランシーバ、および/または複数のアンテナをも含み得る(図示せず)。
デバイス802はまた、トランシーバ814によって受信された信号のレベルを検出し、定量化するために使用され得る信号検出器818を含み得る。信号検出器818は、総エネルギー、シンボルごとのサブキャリア当たりのエネルギー、電力スペクトル密度および他の信号などの信号を検出し得る。デバイス802は、信号を処理する際に使用するデジタル信号プロセッサ(DSP)820をも含み得る。DSP820は、送信のためのパケットを生成するように構成され得る。いくつかの態様では、パケットは物理レイヤデータユニット(PPDU:physical layer data unit)を備え得る。
デバイス802は、いくつかの態様ではユーザインターフェース822をさらに備え得る。ユーザインターフェース822は、近傍検出器、1つまたは複数の入力ボタン、キーパッド、マイクロフォン、スピーカー、インターフェースポート(たとえば、ユニバーサルシリアルバス(USB)ポート、高解像度マルチメディアインターフェース(HDMI(登録商標))ポートなど)、タッチスクリーン、ネットワークインターフェース、および/またはディスプレイを備え得る。ユーザインターフェース822は、デバイス802のユーザに情報を伝達し、および/またはユーザからの入力を受信する、任意の要素または構成要素を含み得る。一実施形態では、ユーザインターフェース822は、それが(たとえば、USBポート、ネットワークインターフェースから、ディスプレイに、マイクロフォンからなど)入力を受信しているか、または出力を送信しているとき、アクティブであると見なされ得る。ユーザインターフェース822はまた、それがしきい値時間期間(たとえば、1秒、1分、5分など)の内に入力を受信したか、または出力を送信したとき、アクティブであると見なされ得る。ユーザインターフェース822は、それがアクティブでないとき、非アクティブまたはアイドルであると見なされ得る。
ユーザインターフェース822が入力を受信しないとき、デバイス802は、バックグラウンド状態またはアイドルモードにあると言われ得る。バックグラウンド状態では、ディスプレイはオフであり得、デバイス802の1つまたは複数の機能は無効にされ得る。一実施形態では、ユーザインターフェース822入力に応答して開始されない、デバイス802のプロセスおよび通信は、バックグラウンドまたはアイドルプロセスまたは通信と呼ばれることがある。
ユーザインターフェース822が入力を受信するとき、デバイス802は、フォアグラウンド状態またはアクティブモードにあると言われ得る。フォアグラウンド状態では、ディスプレイはオンであり得、入力は入力アイドル期間内に受信されていることがある。入力アイドル期間は、構成可能であり得、たとえば、1分であり得る。一実施形態では、バックグラウンドプロセスおよび通信は、アクティブモードで行われ得るが、ユーザインターフェース822入力に直接応答して開始されないことがある。
デバイス802の様々な構成要素は、バスシステム826によって互いに結合され得る。バスシステム826は、データバスを含み、ならびに、たとえば、データバスに加えて、電力バス、制御信号バス、およびステータス信号バスを含み得る。デバイス802の構成要素は、何らかの他の機構を使用して、互いに結合されるかあるいは互いに入力を受け付けるかまたは与え得ることを、当業者は諒解されよう。
図8には、いくつかの別個の構成要素が示されているが、構成要素のうちの1つまたは複数が組み合わせられ得るかまたは共通に実装され得ることを当業者は認識されよう。たとえば、プロセッサ804は、プロセッサ804に関して上記で説明した機能を実装するためだけでなく、信号検出器818および/またはDSP820に関して上記で説明した機能を実装するためにも使用され得る。さらに、図8に示す構成要素の各々は、複数の別個の要素を使用して実装され得る。
図9に、通信統計値を収集する例示的な方法のフローチャート900を示す。本明細書では、図8に関して上記で説明したデバイス802に関してフローチャート900の方法について説明するが、フローチャート900の方法は、図1に関して上記で説明したワイヤレスデバイス102、図2に関して上記で説明したワイヤレスデバイス202、および/または任意の他の好適なデバイスによって実装され得ることを、当業者は諒解されよう。一実施形態では、フローチャート900内のステップは、送信機810、受信機812、メモリ806、およびユーザインターフェース822とともに、プロセッサ805によって実行され得る。本明細書では、フローチャート900の方法を特定の順序に関して説明しているが、様々な実施形態では、本明細書のブロックは、異なる順序で実行されるか、または省略され得、さらなるブロックが追加され得る。
最初に、ブロック905において、デバイス802は、受信機812を介して無視リストを受信する。プロセッサ804は、メモリ806に無視リストを記憶し得る。一実施形態では、デバイス802は、サーバ110から無視リストを受信する。一実施形態では、無視リストは、デバイス802上に事前プロビジョニングされ得る。図8に関して上記で説明したように、無視リストは、デバイス802が通信統計値をモニタまたは記録すべきでない1つまたは複数のアプリケーションを指定し得る。様々な実施形態では、デバイス802はまた、包含リストおよび/または除外リストなど、サーバ110から他の情報を受信し得る。
次に、ブロック910において、プロセッサ804は、プロセッサ804上で実行されるアプリケーションからの1つまたは複数の通信をインターセプトする。プロセッサ804は、通信管理システム108および/または接続性エンジン208に関して上記で説明した機能を介して通信をインターセプトし得る。一実施形態では、DSP820、信号検出器818、送信機810、および/またはトランシーバ814は通信をインターセプトし得る。
次いで、ブロック915において、プロセッサ804はデバイス状態を判断する。デバイスは、バックグラウンド状態とフォアグラウンド状態とを含み得る少なくとも2つの状態のうちの1つにあり得る。プロセッサ804は、ユーザインターフェース822を介してデバイスの状態を判断し得る。
その後、ブロック920において、プロセッサ804は、デバイスがバックグラウンド状態にあるかどうかを判断する。デバイスがフォアグラウンド状態にある場合、プロセッサ804は、通信統計値を記録せず、ブロック925においてさらなる通信を待つ。デバイスがバックグラウンド状態にある場合、プロセッサ804はブロック930に進む。
一実施形態では、ブロック920において、プロセッサ804は、インターセプトされた通信がバックグラウンド通信であるかどうかを判断する。インターセプトされた通信がバックグラウンド通信でない場合、プロセッサ804は、通信統計値を記録せず、ブロック925においてさらなる通信を待つ。インターセプトされた通信がバックグラウンド通信である場合、プロセッサ804はブロック930に進む。
その後、ブロック930において、プロセッサ804は、インターセプトされた通信に関連するアプリケーションが、サーバ110から受信された無視リスト上にあるかどうかを判断する。インターセプトされた通信を生成したアプリケーションが無視リスト上にある場合、プロセッサ804は、通信統計値を記録せず、ブロック925においてさらなる通信を待つ。インターセプトされた通信を生成したアプリケーションが無視リスト上にない場合、プロセッサ804はブロック935に進む。
その後、ブロック935において、プロセッサ804は、インターセプトされたアプリケーション通信に基づいて1つまたは複数の通信統計値を記録する。通信統計値は、たとえば、アイドルモード中にアクティブであるアプリケーションのアプリケーション識別子(たとえば、完全または部分名、あるいは数値識別子)、アプリケーションによって転送されるデータの量、アプリケーションが何個の接続を開始したか、アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数などを含み得る。TCP要求統計値は、「connect」「write」、「FIN」、「RST」などの特定の要求に関する統計値を含み得る。通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差などの計算された統計値を含み得る。通信統計値はまた、たとえば、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイス802のロケーションなど、追加情報を含み得る。プロセッサ804は、メモリ806に、記録された通信統計値を記憶し得、DSP820を介して、記録された通信統計値を圧縮するか、暗号化するか、またはさもなければ符号化し得る。
次に、ブロック940において、プロセッサ804は、累積通信統計値をレポートすべきかどうかを判断する。プロセッサ804は、サーバ110に通信統計値をレポートすることをプロセッサ804に行わせることになる、記録された統計値のしきい値数などのレポート基準を判断し得る。一実施形態では、プロセッサ804は、1時間ごと、1日ごと、1週間ごと、1月ごとなど周期的に、記録された通信統計値をレポートし得る。一実施形態では、プロセッサ804は、記録された統計値の数がしきい値に達したとき、および/または記録された統計値のサイズがしきい値に達したとき、記録された通信統計値をレポートし得る。一実施形態では、プロセッサ804は、指定された無線、たとえば、Wi−Fiまたはセルラー無線が使用可能であるときにのみ、統計値をレポートし得る。プロセッサ804は、上述のレポート基準のうちの1つまたは複数を組み合わせるか、または追加の基準を使用し得る。一実施形態では、プロセッサ804は、サーバ110から通信統計値をどのようにおよびいつレポートすべきかに関する命令を受信し得る。プロセッサ804は、レポート基準が満たされていないと判断した場合、プロセッサは、記録された通信統計値をレポートせず、ブロック925において待つ。プロセッサ804は、レポート基準が満たされたと判断した場合、プロセッサはブロック945に進む。
最後に、ブロック945において、プロセッサ804は、送信機810および/またはトランシーバ814を介して、記録された通信統計値をサーバ110に送る。プロセッサ804は、HTTP POST方法を介して、ファイル転送プロトコル(FTP)転送を介して、電子メールとして、または任意の他の通信手段を介して、記録された通信統計値を送り得る。プロセッサ804が、記録された通信統計値をサーバ110に送った後、プロセッサ804は、メモリ806から記録された通信統計値を削除し得るか、または後で使用するために、記録された通信統計値を保持し得る。記録された通信統計値をサーバ110に送ると、プロセッサ804はサーバ110から応答を受信し得、その応答は、無視リストと、除外リストと、包含リストと、通信統計値をいつレポートすべきかに関する命令のリストと、通信統計値をどのように記録すべきかに関する命令のリストとのうちの1つまたは複数を含み得る。
図10に、通信統計値を分析する例示的な方法のフローチャート1000を示す。本明細書では、図8に関して上記で説明したデバイス802に関してフローチャート100の方法について説明するが、フローチャート100の方法は、図1に関して上記で説明したサーバ110または任意の他の好適なデバイスによって実装され得ることを、当業者は諒解されよう。一実施形態では、フローチャート1000内のステップは、送信機810、受信機812、およびメモリ806とともに、プロセッサ805によって実行され得る。本明細書では、フローチャート1000の方法を特定の順序に関して説明しているが、様々な実施形態では、本明細書のブロックは、異なる順序で実行されるか、または省略され得、さらなるブロックが追加され得る。
最初に、ブロック1005において、プロセッサ804は、ワイヤレスデバイス102から通信統計値を受信する。通信統計値は、たとえば、アプリケーション識別子(たとえば、完全または部分名、あるいは数値識別子)、アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数などを含み得る。TCP要求統計値は、「connect」「write」、「FIN」、「RST」などの特定の要求に関する統計値を含み得る。通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差などの計算された統計値を含み得る。通信統計値はまた、たとえば、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイス802のロケーションなど、追加情報を含み得る。プロセッサ804は、メモリ806に、受信された通信統計値を記憶し得、DSP820を介して、受信された通信統計値を圧縮するか、暗号化するか、またはさもなければ符号化し得る。
次に、ブロック1010において、プロセッサ804は無視リストを生成する。プロセッサ804は、デバイス102からの受信された通信統計値ならびに/あるいは他の時間におよび/または他のデバイスから受信された通信統計値に基づいて無視リストを生成し得る。たとえば、プロセッサ804は、アプリケーションのための通信統計値のしきい値数を受信すると、無視リストにそのアプリケーション識別子を追加し得る。一実施形態では、無視リストには、すでに分析されているアプリケーションが最初にシードされ得る。プロセッサ804は、時々、アプリケーション通信ビヘイビアが時間とともに変化したかどうかを知るために、無視リストから1つまたは複数のアプリケーション識別子を除去し得る。
次いで、ブロック1015において、プロセッサ804は包含リストを生成する。プロセッサ804は、デバイス102からの受信された通信統計値ならびに/あるいは他の時間におよび/または他のデバイスから受信された通信統計値に基づいて包含リストを生成し得る。たとえば、アプリケーションによる通信試みの記録数がしきい値を下回ると、プロセッサ804は、包含リストにアプリケーション識別子を追加し得る。一実施形態では、包含リストには、遅延トレラントであると判断されているアプリケーションが最初にシードされ得る。たとえば、受信された通信統計値は、アプリケーションが遅延イントレラントであることを示した場合、プロセッサ804は、包含リストから1つまたは複数のアプリケーション識別子を除去し得る。
その後、ブロック1020において、プロセッサ804は除外リストを生成する。プロセッサ804は、デバイス102からの受信された通信統計値ならびに/あるいは他の時間におよび/または他のデバイスから受信された通信統計値に基づいて除外リストを生成し得る。たとえば、アプリケーションによる通信試みの記録数がしきい値を上回ると、プロセッサ804は、除外リストにアプリケーション識別子を追加し得る。一実施形態では、除外リストには、すでに遅延イントレラントであると判断されているアプリケーションが最初にシードされ得る。たとえば、受信された通信統計値は、アプリケーションが遅延トレラントであることを示した場合、プロセッサ804は、除外リストから1つまたは複数のアプリケーション識別子を除去し得る。
その後、ブロック1025において、プロセッサ804は検討リストを生成する。プロセッサ804は、デバイス102からの受信された通信統計値ならびに/あるいは他の時間におよび/または他のデバイスから受信された通信統計値に基づいて検討リストを生成し得る。たとえば、アプリケーションによる通信試みの記録数がしきい値を下回ると、プロセッサ804は、検討リストにアプリケーション識別子を追加し得る。一実施形態では、検討リストは、包含リストのプリカーサー(precursor)であり得る。たとえば、プロセッサ804は、さらなる分析のために検討リストに候補アプリケーションを追加し得る。さらなる分析は、プロセッサ804によって、および/またはユーザインターフェース822を介して手動で実行され得る。一実施形態では、プロセッサ804は、ユーザインターフェース822からの信号に従って検討リストから包含リストにアプリケーションを移動し得る。
最後に、ブロック1035において、プロセッサ804は、送信機810および/またはトランシーバ814を介して、ワイヤレスデバイス102に上述のリストのうちの1つまたは複数を送信する。プロセッサ804は、たとえば、HTTP POST応答を介して受信された通信統計値に応答してリストを送信し得る。一実施形態では、プロセッサ804は、ワイヤレスデバイス102にリストをプッシュし得る。上述のリストに加えて、プロセッサ804は、通信統計値をいつレポートすべきかに関する命令のリストおよび/または通信統計値をどのように記録すべきかに関する命令のリストを送信し得る。
図11に、通信統計値を収集する例示的な方法のフローチャート1100を示す。本明細書では、図8に関して上記で説明したデバイス802に関してフローチャート1100の方法について説明するが、フローチャート1100の方法は、図1に関して上記で説明したワイヤレスデバイス102、図2に関して上記で説明したワイヤレスデバイス202、および/または任意の他の好適なデバイスによって実装され得ることを、当業者は諒解されよう。一実施形態では、フローチャート1100内のステップは、送信機810、受信機812、メモリ806、およびユーザインターフェース822とともに、プロセッサ805によって実行され得る。本明細書では、フローチャート1100の方法を特定の順序に関して説明しているが、様々な実施形態では、本明細書のブロックは、異なる順序で実行されるか、または省略され得、さらなるブロックが追加され得る。
最初に、ブロック1105において、デバイス802は、受信機812を介して無視リストを受信する。プロセッサ804は、メモリ806に無視リストを記憶し得る。一実施形態では、デバイス802は、サーバ110から無視リストを受信する。図8に関して上記で説明したように、無視リストは、デバイス802が通信統計値をモニタまたは記録すべきでない1つまたは複数のアプリケーションを指定し得る。様々な実施形態では、デバイス802はまた、包含リストおよび/または除外リストなど、サーバ110から他の情報を受信し得る。
次に、ブロック1110において、プロセッサ804は、プロセッサ804上で実行されるアプリケーションからの1つまたは複数の通信をインターセプトする。プロセッサ804は、通信管理システム108および/または接続性エンジン208に関して上記で説明した機能を介して通信をインターセプトし得る。一実施形態では、DSP820、信号検出器818、送信機810、および/またはトランシーバ814は通信をインターセプトし得る。
その後、ブロック1115において、プロセッサ804は、インターセプトされた通信に関連するアプリケーションが、サーバ110から受信された無視リスト上にあるかどうかを判断する。インターセプトされた通信を生成したアプリケーションが無視リスト上にある場合、プロセッサ804は、通信統計値を記録せず、ブロック1120においてさらなる通信を待つ。インターセプトされた通信を生成したアプリケーションが無視リスト上にない場合、プロセッサ804はブロック1125に進む。
次いで、ブロック1125において、プロセッサ804はデバイス802の状態を判断する。ユーザインターフェース826は、バックグラウンド状態とフォアグラウンド状態とを含み得る少なくとも2つの状態のうちの1つにあり得る。プロセッサ804は、ユーザインターフェース826への1つまたは複数の入力の存在または不在に基づいてユーザインターフェース822の状態を判断し得る。一実施形態では、プロセッサ804は、インターセプトされたものが、ユーザインターフェース822を介した入力に応答して生成されたものではなく、アプリケーションによって自動的に生成されたバックグラウンド通信であるかどうかを判断し得る。
その後、ブロック1130において、プロセッサ804はネットワークインターフェースの状態を判断する。一実施形態では、ネットワークインターフェースは、トランシーバ814、送信機810、および/または受信機812を含むことができる。ネットワークインターフェースは、バックグラウンド状態とフォアグラウンド状態とを含み得る少なくとも2つの状態のうちの1つにあり得る。プロセッサ804は、トランシーバ814の無線電力および/または接続状態に基づいてユーザインターフェース822の状態を判断し得る。一実施形態では、プロセッサ804は、複数のネットワークインターフェース状態を判断し得る。
その後、ブロック1135において、プロセッサ804は、インターセプトされたアプリケーション通信に基づいて1つまたは複数の通信統計値を記録する。通信統計値は、たとえば、バックグラウンドモード中にアクティブであるアプリケーションのアプリケーション識別子(たとえば、完全または部分名、あるいは数値識別子)、アプリケーションによって転送されるデータの量、アプリケーションが何個の接続を開始したか、アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数などを含み得る。TCP要求統計値は、「connect」「write」、「FIN」、「RST」などの特定の要求に関する統計値を含み得る。通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差などの計算された統計値を含み得る。通信統計値はまた、たとえば、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイス802のロケーションなど、追加情報を含み得る。
プロセッサ804は、メモリ806に、記録された通信統計値を記憶し得、DSP820を介して、記録された通信統計値を圧縮するか、暗号化するか、またはさもなければ符号化し得る。プロセッサ804は、ユーザインターフェース826および/またはネットワークインターフェースの状態に基づいて、通信統計値を別個に記憶し得る。たとえば、プロセッサ804は、アクティブなユーザインターフェース826およびアクティブなネットワークインターフェース、アクティブなユーザインターフェース826および非アクティブなネットワークインターフェース、非アクティブなユーザインターフェース826およびアクティブなネットワークインターフェース、ならびに/または非アクティブなユーザインターフェース826および非アクティブなネットワークインターフェースといったワイヤレスデバイス802の状態ごとに別個に通信統計値を記憶し得る。本明細書で使用するプロセッサ804は、複数の異なるデータベースを維持すること、各通信統計値をユーザインターフェース826および/またはネットワークインターフェースの状態にタグ付けすることなどによって、通信統計値を「別個に」記憶し得る。通信統計値の別個の記憶は、ワイヤレスデバイス802の異なる状態中に記録された通信統計値間の区別を可能にする任意の方法で達成され得ることを、当業者は諒解されよう。様々な実施形態では、プロセッサ804は、たとえば、電力状態、時間および/または日付を示すクロック状態、ネットワークアクセス状態など、ワイヤレスデバイス802の他の状態に基づいて通信統計値を別個に記憶し得る。
次に、ブロック1140において、プロセッサ804は、累積通信統計値をレポートすべきかどうかを判断する。プロセッサ804は、サーバ110に通信統計値をレポートすることをプロセッサ804に行わせることになる、記録された統計値のしきい値数などのレポート基準を判断し得る。一実施形態では、プロセッサ804は、1時間ごと、1日ごと、1週間ごと、1月ごとなど周期的に、記録された通信統計値をレポートし得る。一実施形態では、プロセッサ804は、記録された統計値の数がしきい値に達したとき、および/または記録された統計値のサイズがしきい値に達したとき、記録された通信統計値をレポートし得る。一実施形態では、プロセッサ804は、指定された無線、たとえば、Wi−Fiまたはセルラー無線が使用可能であるときにのみ、統計値をレポートし得る。プロセッサ804は、上述のレポート基準のうちの1つまたは複数を組み合わせるか、または追加の基準を使用し得る。一実施形態では、プロセッサ804は、サーバ110から通信統計値をどのようにおよびいつレポートすべきかに関する命令を受信し得る。プロセッサ804は、レポート基準が満たされていないと判断した場合、プロセッサは、記録された通信統計値をレポートせず、ブロック1125において待つ。プロセッサ804は、レポート基準が満たされたと判断した場合、プロセッサはブロック1145に進む。
最後に、ブロック1145において、プロセッサ804は、送信機810および/またはトランシーバ814を介して記録された通信統計値をサーバ110に送る。プロセッサ804は、HTTP POST方法を介して、ファイル転送プロトコル(FTP)転送を介して、電子メールとして、または任意の他の通信手段を介して、記録された通信統計値を送り得る。プロセッサ804が、記録された通信統計値をサーバ110に送った後、プロセッサ804は、メモリ806から記録された通信統計値を削除し得るか、または後で使用するために、記録された通信統計値を保持し得る。記録された通信統計値をサーバ110に送ると、プロセッサ804はサーバ110から応答を受信し得、その応答は、無視リストと、除外リストと、包含リストと、通信統計値をいつレポートすべきかに関する命令のリストと、通信統計値をどのように記録すべきかに関する命令のリストとのうちの1つまたは複数を含み得る。
図12に、通信アクセスポリシーを適用する例示的な方法のフローチャート1200を示す。一実施形態では、フローチャート1200の1つまたは複数の態様は、図3のブロック308に対応することができる。本明細書では、図8に関して上記で説明したデバイス802に関してフローチャート1200の方法について説明するが、フローチャート1200の方法は、図1に関して上記で説明したワイヤレスデバイス132、図2に関して上記で説明したワイヤレスデバイス202、および/または任意の他の好適なデバイスによって実装され得ることを、当業者は諒解されよう。一実施形態では、フローチャート1200内のステップは、送信機810、受信機812、メモリ806、およびユーザインターフェース822とともに、プロセッサ805によって実行され得る。本明細書では、フローチャート1200の方法を特定の順序に関して説明しているが、様々な実施形態では、本明細書のブロックは、異なる順序で実行されるか、または省略され得、さらなるブロックが追加され得る。
最初に、ブロック1205において、デバイス802は、受信機812を介して通信アクセスポリシーを受信する。プロセッサ804は、メモリ806に通信アクセスポリシーを記憶し得る。一実施形態では、デバイス802は、サーバ110から通信アクセスポリシーを受信する。図7〜図8に関して上記で説明したように、通信アクセスポリシーは、デバイス802がアプリケーション通信をどのように遅延させるべきかを指定し得る。
次に、ブロック1210において、プロセッサ804は、プロセッサ804上で実行されるアプリケーションからの1つまたは複数の通信をインターセプトする。プロセッサ804は、通信管理システム138および/または接続性エンジン208に関して上記で説明した機能を介して通信をインターセプトし得る。一実施形態では、DSP820、信号検出器818、送信機810、および/またはトランシーバ814は通信をインターセプトし得る。
次いで、ブロック1215において、プロセッサ804はデバイス状態を判断する。デバイスは、フォアグラウンド状態とバックグラウンド状態とを含み得る少なくとも2つの状態のうちの1つにあり得る。一実施形態では、フォアグラウンド状態はフォアグラウンド状態であり得、バックグラウンド状態はバックグラウンド状態であり得る。プロセッサ804は、ユーザインターフェース822を介してデバイスの状態を判断し得る。一実施形態では、プロセッサ804は、インターセプトされたものが、ユーザインターフェース822を介した入力に応答して生成されたものではなく、アプリケーションによって自動的に生成されたバックグラウンド通信であるかどうかを判断し得る。
その後、ブロック1220において、プロセッサ804は、デバイス802がバックグラウンド状態にあるかどうかを判断する。デバイスがバックグラウンド状態にない場合、プロセッサ804は、アプリケーション通信を遅延させず、ブロック1225において通信を続行することを許可する。デバイスがバックグラウンド状態にある場合、プロセッサ804はブロック1230に進む。一実施形態では、ブロック1215および1220は省略され得、アプリケーション通信は、デバイス802がバックグラウンド状態にあるかどうかにかかわらず遅延され得る。
その後、ブロック1230において、プロセッサ804は、送信ウィンドウ630が開いているかどうかを判断する。図6〜図7に関して上記で説明したように、プロセッサ804は、通信アクセスポリシーに基づいて送信ウィンドウ630を開くべきかどうかを判断することができる。たとえば、インターセプトされたアプリケーション通信が包含リスト中にない場合、プロセッサ804は送信ウィンドウ630を開き得る。一実施形態では、送信ウィンドウ630が開いているかどうかを判断することは、アプリケーション通信、イベント、または他のトリガに応答して送信ウィンドウ630を開くことを含むことができる。送信ウィンドウ630が開いている場合、プロセッサ804は、アプリケーション通信を遅延させず、ブロック1225において通信を続行することを許可する。送信ウィンドウ630が閉じられている場合、プロセッサ804はブロック1235に進む。
ブロック1235において、プロセッサ804は、通信アクセスポリシーに従って、インターセプトされた通信を遅延させる。たとえば、プロセッサ804は、通信が遅延され得るアプリケーションのリスト(「包含リスト」)、通信が遅延されないことがあるアプリケーションのリスト(「除外リスト」)、通信が遅延され得るか、または遅延されないことがある通信タイプのリスト、通信が遅延され得るか、または遅延されないことがあるネットワーク状態のリスト、通信が遅延され得るか、または遅延されないことがある時間の指示、および通信が遅延され得るか、または遅延されないことがあるロケーションの指示のうちの1つまたは複数の遅延基準を判断し得る。プロセッサ804は、判断された遅延基準に基づいてアプリケーション通信を許可するか、または遅延させることになる。いくつかの実施形態では、プロセッサ804は、追加の遅延基準を判断し得る。プロセッサ804は、アプリケーション通信が許可されるべきであると判断した場合、プロセッサ804はブロック1225に進む。プロセッサ804は、アプリケーション通信が遅延されるべきであると判断した場合、プロセッサ804はブロック1210に進む。
図13に、通信アクセスポリシーを実装するように構成される別の例示的なデバイス1300を示す。デバイス1300は、受信モジュール1310と、遅延モジュール1320と、許可モジュール1330とを備える。受信モジュール1310は、図12に示したブロック1205に関して上記で説明した機能のうちの1つまたは複数を実行するように構成され得る。受信モジュール1310は、図8に関して上記で説明した、受信機812、プロセッサ804、トランシーバ814、およびメモリ806のうちの1つまたは複数に対応し得る。受信モジュール1310はまた、図2に関して上記で説明した、TX/RX無線機212およびプロセッサ202のうちの1つまたは複数に対応し得る。
遅延モジュール1320は、図12に示したブロック1235に関して上記で説明した機能のうちの1つまたは複数を実行するように構成され得る。遅延モジュール1320は、図8に関して上記で説明した、プロセッサ804および送信機810のうちの1つまたは複数に対応し得る。遅延モジュール1320はまた、図2に関して上記で説明した、TX/RX無線機212、接続性エンジン208、ネットワーキングモジュール210、およびプロセッサ202のうちの1つまたは複数に対応し得る。
許可モジュール1330は、図12に示したブロック1225に関して上記で説明した機能のうちの1つまたは複数を実行するように構成され得る。許可モジュール1330は、図8に関して上記で説明した、プロセッサ804および送信機810のうちの1つまたは複数に対応し得る。許可モジュール1330はまた、図2に関して上記で説明した、TX/RX無線機212、接続性エンジン208、ネットワーキングモジュール210、およびプロセッサ202のうちの1つまたは複数に対応し得る。
情報および信号は多種多様な技術および技法のいずれかを使用して表され得ることを、当業者は理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
さらに、本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課せられた設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の例示的な実施形態の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行し得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
本明細書で開示する実施形態に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込み得るように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICはユーザ端末内に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別構成要素として常駐することもできる。
1つまたは複数の例示的な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク記憶装置、磁気ディスクストレージデバイスまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態で所望のプログラムコードを担持または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
開示した例示的な実施形態の前述の説明は、当業者が本発明を実施または使用することができるように与えたものである。これらの例示的な実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書で示した例示的な実施形態に限定されるものではなく、本明細書で開示した原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
特許請求の範囲は、上記に示した厳密な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
上記は本開示の態様を対象とするが、本開示の他の態様およびさらなる態様は、それの基本的範囲から逸脱することなく考案され得、それの範囲は以下の特許請求の範囲によって判断される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
通信ネットワークとデータを交換するように構成されるネットワークインターフェースと、
1つまたは複数の入力を受信するように構成される入力デバイスと、
前記ネットワークインターフェースに電気的に接続されたプロセッサと
を備え、前記プロセッサが、
1つまたは複数の入力の存在または不在に基づいて前記デバイスがバックグラウンド状態にあるのかフォアグラウンド状態にあるのかを判断することと、
前記ネットワークインターフェースを介して前記通信ネットワークと通信するように構成される複数のアプリケーションを実行することと、
前記デバイスが前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することと、
前記デバイスが前記フォアグラウンド状態にあるとき、
前記デバイスが前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記1つまたは複数の通信統計値を収集すること、または
前記1つまたは複数の通信統計値を収集することを控えること
のいずれかを行うことと
を行うように構成される、ワイヤレスデバイス。
[C2]
サーバに前記通信統計値を送信するように構成される送信機をさらに備える、
[C1]に記載のワイヤレスデバイス。
[C3]
前記サーバから命令を受信するように構成される受信機をさらに備え、
前記プロセッサが、前記命令に従って前記1つまたは複数の通信統計値を収集するようにさらに構成される、
[C2]に記載のワイヤレスデバイス。
[C4]
前記サーバから命令を受信するように構成される受信機をさらに備え、
前記送信機が、前記命令に従って前記1つまたは複数の通信統計値をレポートするように構成される、
[C2]に記載のワイヤレスデバイス。
[C5]
前記プロセッサが、
アプリケーションからの通信をインターセプトすることと、
前記デバイスがバックグラウンド状態にある間に、前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断することと、
フォアグラウンド状態に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集することと
を行うようにさらに構成される、[C1]に記載のワイヤレスデバイス。
[C6]
前記サーバから命令を受信するように構成される受信機をさらに備え、
前記プロセッサが、前記命令に従って1つまたは複数の通信を遅延させるようにさらに構成される、
[C2]に記載のワイヤレスデバイス。
[C7]
前記命令は、前記通信を遅延させるときに前記プロセッサが含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C6]に記載のワイヤレスデバイス。
[C8]
前記命令は、前記通信を遅延させるときに前記プロセッサが含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
[C7]に記載のワイヤレスデバイス。
[C9]
前記命令は、前記通信統計値を収集するときに前記プロセッサが含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C3]に記載のワイヤレスデバイス。
[C10]
前記命令は、前記通信統計値を収集するときに前記プロセッサが含めるべきおよび/または除外すべきソケット動作のリストを備える、
[C3]に記載のワイヤレスデバイス。
[C11]
前記命令は、前記送信機が前記通信統計値を送信すべき通信ネットワークのリストを備える、
[C4]に記載のワイヤレスデバイス。
[C12]
前記命令は、前記送信機が前記通信統計値を送信すべきときを示す命令を備える、
[C4]に記載のワイヤレスデバイス。
[C13]
前記通信統計値は、前記バックグラウンドモード中にフォアグラウンドのアプリケーションのリストを備える、
[C1]に記載のワイヤレスデバイス。
[C14]
前記通信統計値は、アプリケーションごとに、バックグラウンドモード中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
[C1]に記載のワイヤレスデバイス。
[C15]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に転送されるデータの量を備え、前記通信統計値が、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
[C1]に記載のワイヤレスデバイス。
[C16]
前記プロセッサが、アプリケーションおよびソケット動作タイプによって前記通信統計値を分類するように構成される、
[C1]に記載のワイヤレスデバイス。
[C17]
前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
[C16]に記載のワイヤレスデバイス。
[C18]
前記通信統計値は、前記プロセッサが前記通信統計値を収集し始めた時間と、前記プロセッサが前記通信統計値を収集するのを中止した時間とを備える、
[C1]に記載のワイヤレスデバイス。
[C19]
前記通信統計値が、1つまたは複数のソケット動作のために使用される通信インターフェースを識別する情報を備える、
[C1]に記載の装置。
[C20]
アプリケーション通信統計値を収集する方法であって、
1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断することと、
通信ネットワークと通信するように構成される複数のアプリケーションを実行することと、
前記デバイスが前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することと、
前記デバイスが前記フォアグラウンド状態にあるとき、
前記デバイスが前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記1つまたは複数の通信統計値を収集すること、または
前記1つまたは複数の通信統計値を収集することを控えること
のいずれかを行うことと
を行うことを備える、方法。
[C21]
サーバに前記通信統計値を送信することをさらに備える、
[C20]に記載の方法。
[C22]
前記サーバから命令を受信することと、
前記命令に従って前記1つまたは複数の通信統計値を収集することと
をさらに備える、[C21]に記載の方法。
[C23]
前記サーバから命令を受信することと、
前記命令に従って前記1つまたは複数の通信統計値を送信することと
をさらに備える、[C21]に記載の方法。
[C24]
アプリケーションからの通信をインターセプトすることと、
ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断することと、
ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集することと
をさらに備える、[C20]に記載の方法。
[C25]
前記サーバから命令を受信することと、
前記命令に従って1つまたは複数の通信を遅延させることと
をさらに備える、[C21]に記載の方法。
[C26]
前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C25]に記載の方法。
[C27]
前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
[C26]に記載の方法。
[C28]
前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C22]に記載の方法。
[C29]
前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきソケット動作のリストを備える、
[C22]に記載の方法。
[C30]
前記命令は、前記通信統計値が送信されるべき通信ネットワークのリストを備える、
[C23]に記載の方法。
[C31]
前記命令は、前記通信統計値が送信されるべきときを示す命令を備える、
[C23]に記載の方法。
[C32]
前記通信統計値は、前記バックグラウンドモード中にフォアグラウンドのアプリケーションのリストを備える、
[C20]に記載の方法。
[C33]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
[C20]に記載の方法。
[C34]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に転送されるデータの量を備え、前記通信統計値が、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
[C20]に記載の方法。
[C35]
アプリケーションおよびソケット動作タイプによって前記通信統計値を分類することをさらに備える、
[C20]に記載の方法。
[C36]
前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
[C35]に記載の方法。
[C37]
前記通信統計値は、前記通信統計値の収集の時間と、前記通信統計値の収集の時間とを備える、
[C20]に記載の方法。
[C38]
前記通信統計値は、1つまたは複数のソケット動作のために使用される通信インターフェースを識別する情報を備える、
[C20]に記載の方法。
[C39]
アプリケーション通信統計値を収集するための装置であって、
1つまたは複数の入力の存在または不在に基づいて前記装置がフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断するための手段と、
通信ネットワークと通信するように構成される複数のアプリケーションを実行するための手段と、
前記装置が前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集するめの手段と、
前記デバイスが前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記デバイスが前記フォアグラウンド状態にあるときに前記1つまたは複数の通信統計値を収集するための手段、または
前記デバイスが前記フォアグラウンド状態にあるときに前記1つまたは複数の通信統計値を収集することを控えるための手段
のいずれかと
を備える、装置。
[C40]
サーバに前記通信統計値を送信するための手段をさらに備える、
[C39]に記載の装置。
[C41]
前記サーバから命令を受信するための手段と、
前記命令に従って前記1つまたは複数の通信統計値を収集するための手段と
をさらに備える、[C40]に記載の装置。
[C42]
前記サーバから命令を受信するための手段と、
前記命令に従って前記1つまたは複数の通信統計値を送信するための手段と
をさらに備える、[C40]に記載の装置。
[C43]
アプリケーションからの通信をインターセプトするための手段と、
ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断するための手段と、
ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集するための手段と
をさらに備える、[C39]に記載の装置。
[C44]
前記サーバから命令を受信するための手段と、
前記命令に従って1つまたは複数の通信を遅延させるための手段と
をさらに備える、[C40]に記載の装置。
[C45]
前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C44]に記載の装置。
[C46]
前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
[C45]に記載の装置。
[C47]
前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C41]に記載の装置。
[C48]
前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきソケット動作のリストを備える、
[C41]に記載の装置。
[C49]
前記命令は、前記通信統計値が送信されるべき通信ネットワークのリストを備える、
[C42]に記載の装置。
[C50]
前記命令は、前記通信統計値が送信されるべきときを示す命令を備える、
[C42]に記載の装置。
[C51]
前記通信統計値は、前記バックグラウンドモード中にフォアグラウンドのアプリケーションのリストを備える、
[C39]に記載の装置。
[C52]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
[C39]に記載の装置。
[C53]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に転送されるデータの量を備え、前記通信統計値は、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
[C39]に記載の装置。
[C54]
アプリケーションおよびソケット動作タイプによって前記通信統計値を分類するための手段をさらに備える、
[C39]に記載の装置。
[C55]
前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
[C54]に記載の装置。
[C56]
前記通信統計値は、収集するための前記手段が前記通信統計値を収集し始めた時間と、収集するための前記手段が前記通信統計値を収集するのを中止した時間とを備える、
[C39]に記載の装置。
[C57]
前記通信統計値は、1つまたは複数のソケット動作のために使用される通信インターフェースを識別する情報を備える、
[C39]に記載の装置。
[C58]
実行されたとき、装置に、
1つまたは複数の入力の存在または不在に基づいて前記装置がフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断することと、
通信ネットワークと通信するように構成される複数のアプリケーションを実行することと、
前記装置が前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することと、
前記装置が前記フォアグラウンド状態にあるとき、
前記装置が前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記1つまたは複数の通信統計値を収集すること、または
前記通信統計値を収集することを控えること
のいずれかを行うことと
を行わせるコードを備える、非一時的コンピュータ可読媒体。
[C59]
実行されたとき、前記装置に、サーバに前記通信統計値を送信させるコードをさらに備える、
[C58]に記載の媒体。
[C60]
実行されたとき、前記装置に、
前記サーバから命令を受信することと、
前記命令に従って前記1つまたは複数の通信統計値を収集することと
を行わせるコードをさらに備える、[C59]に記載の媒体。
[C61]
実行されたとき、前記装置に、
前記サーバから命令を受信することと、
前記命令に従って前記1つまたは複数の通信統計値を送信することと
を行わせるコードをさらに備える、[C59]に記載の媒体。
[C62]
実行されたとき、前記装置に、
アプリケーションからの通信をインターセプトすることと、
ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断することと、
ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集することと
を行わせるコードをさらに備える、[C58]に記載の媒体。
[C63]
実行されたとき、前記装置に、
前記サーバから命令を受信することと、
前記命令に従って1つまたは複数の通信を遅延させることと
を行わせるコードをさらに備える、[C59]に記載の媒体。
[C64]
前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C63]に記載の媒体。
[C65]
前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
[C64]に記載の媒体。
[C66]
前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
[C60]に記載の媒体。
[C67]
前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきソケット動作のリストを備える、
[C60]に記載の媒体。
[C68]
前記命令は、前記通信統計値が送信されるべき通信ネットワークのリストを備える、
[C61]に記載の媒体。
[C69]
前記命令は、前記通信統計値が送信されるべきときを示す命令を備える、
[C61]に記載の媒体。
[C70]
前記通信統計値は、前記バックグラウンドモード中にフォアグラウンドのアプリケーションのリストを備える、
[C58]に記載の媒体。
[C71]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
[C58]に記載の媒体。
[C72]
前記通信統計値は、アプリケーションごとに、前記バックグラウンドモード中に転送されるデータの量を備え、前記通信統計値は、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
[C58]に記載の媒体。
[C73]
アプリケーションおよびソケット動作タイプによって前記通信統計値を分類するための手段をさらに備える、
[C39]に記載の装置。
[C74]
前記ソケット動作タイプが、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
[C73]に記載の装置。
[C75]
前記通信統計値は、収集するための前記手段が前記通信統計値を収集し始めた時間と、収集するための前記手段が前記通信統計値を収集するのを中止した時間とを備える、
[C39]に記載の装置。
[C76]
前記通信統計値は、1つまたは複数のソケット動作のために使用される通信インターフェースを識別する情報を備える、
[C39]に記載の装置。
[C77]
実行されたとき、前記装置に、アプリケーションおよびソケット動作タイプによって前記通信統計値を分類させるコードをさらに備える、
[C58]に記載の媒体。
[C78]
前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
[C77]に記載の媒体。
[C79]
前記通信統計値は、前記通信統計値の収集の時間と、前記通信統計値の収集の時間とを備える、
[C58]に記載の媒体。
[C80]
前記通信統計値は、1つまたは複数のソケット動作のために使用される通信インターフェースを識別する情報を備える、
[C58]に記載の媒体。

Claims (80)

  1. ワイヤレスデバイスであって、
    通信ネットワークとデータを交換するように構成されるネットワークインターフェースと、
    1つまたは複数の入力を受信するように構成される入力デバイスと、
    前記ネットワークインターフェースに電気的に接続されたプロセッサと
    を備え、前記プロセッサが、
    1つまたは複数の入力の存在または不在に基づいて前記ワイヤレスデバイスがバックグラウンド状態にあるのかフォアグラウンド状態にあるのかを判断することと、
    前記ネットワークインターフェースを介して前記通信ネットワークと通信するように構成される複数のアプリケーションを実行することと、
    前記ワイヤレスデバイスが前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することと、
    前記ワイヤレスデバイスが前記フォアグラウンド状態にあるとき、
    前記ワイヤレスデバイスが前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記1つまたは複数の通信統計値を収集すること、または
    前記1つまたは複数の通信統計値を収集することを控えること
    のいずれかを行うことと
    を行うように構成される、ワイヤレスデバイス。
  2. サーバに前記通信統計値を送信するように構成される送信機をさらに備える、
    請求項1に記載のワイヤレスデバイス。
  3. 前記サーバから命令を受信するように構成される受信機をさらに備え、
    前記プロセッサが、前記命令に従って前記1つまたは複数の通信統計値を収集するようにさらに構成される、
    請求項2に記載のワイヤレスデバイス。
  4. 前記サーバから命令を受信するように構成される受信機をさらに備え、
    前記送信機が、前記命令に従って前記1つまたは複数の通信統計値をレポートするように構成される、
    請求項2に記載のワイヤレスデバイス。
  5. 前記プロセッサが、
    アプリケーションからの通信をインターセプトすることと、
    前記ワイヤレスデバイスがバックグラウンド状態にある間に、前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断することと、
    フォアグラウンド状態に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集することと
    を行うようにさらに構成される、請求項1に記載のワイヤレスデバイス。
  6. 前記サーバから命令を受信するように構成される受信機をさらに備え、
    前記プロセッサが、前記命令に従って1つまたは複数の通信を遅延させるようにさらに構成される、
    請求項2に記載のワイヤレスデバイス。
  7. 前記命令は、前記通信を遅延させるときに前記プロセッサが含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項6に記載のワイヤレスデバイス。
  8. 前記命令は、前記通信を遅延させるときに前記プロセッサが含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
    請求項7に記載のワイヤレスデバイス。
  9. 前記命令は、前記通信統計値を収集するときに前記プロセッサが含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項3に記載のワイヤレスデバイス。
  10. 前記命令は、前記通信統計値を収集するときに前記プロセッサが含めるべきおよび/または除外すべきソケット動作のリストを備える、
    請求項3に記載のワイヤレスデバイス。
  11. 前記命令は、前記送信機が前記通信統計値を送信すべき通信ネットワークのリストを備える、
    請求項4に記載のワイヤレスデバイス。
  12. 前記命令は、前記送信機が前記通信統計値を送信すべきときを示す命令を備える、
    請求項4に記載のワイヤレスデバイス。
  13. 前記通信統計値は、前記バックグランウンド状態中にアクティブであるアプリケーションのアプリケーション識別子、前記アプリケーションによって転送されるデータの量、前記アプリケーションが何個の接続を開始したか、前記アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数を含む、
    請求項1に記載のワイヤレスデバイス。
  14. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
    請求項1に記載のワイヤレスデバイス。
  15. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に転送されるデータの量を備え、前記通信統計値が、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
    請求項1に記載のワイヤレスデバイス。
  16. 前記プロセッサが、アプリケーションおよびソケット動作タイプによって前記通信統計値を分類するように構成される、
    請求項1に記載のワイヤレスデバイス。
  17. 前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
    請求項16に記載のワイヤレスデバイス。
  18. 前記通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差の計算された統計値を含む、
    請求項1に記載のワイヤレスデバイス。
  19. 前記通信統計値は、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイスのロケーションを含む追加情報をさらに含む、
    請求項18に記載のワイヤレスデバイス
  20. アプリケーション通信統計値を収集する方法であって、
    1つまたは複数の入力の存在または不在に基づいてデバイスがフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断することと、
    通信ネットワークと通信するように構成される複数のアプリケーションを実行することと、
    前記デバイスが前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することと、
    前記デバイスが前記フォアグラウンド状態にあるとき、
    前記デバイスが前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記1つまたは複数の通信統計値を収集すること、または
    前記1つまたは複数の通信統計値を収集することを控えること
    のいずれかを行うことと
    を行うことを備える、方法。
  21. サーバに前記通信統計値を送信することをさらに備える、
    請求項20に記載の方法。
  22. 前記サーバから命令を受信することと、
    前記命令に従って前記1つまたは複数の通信統計値を収集することと
    をさらに備える、請求項21に記載の方法。
  23. 前記サーバから命令を受信することと、
    前記命令に従って前記1つまたは複数の通信統計値を送信することと
    をさらに備える、請求項21に記載の方法。
  24. アプリケーションからの通信をインターセプトすることと、
    ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断することと、
    ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集することと
    をさらに備える、請求項20に記載の方法。
  25. 前記サーバから命令を受信することと、
    前記命令に従って1つまたは複数の通信を遅延させることと
    をさらに備える、請求項21に記載の方法。
  26. 前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項25に記載の方法。
  27. 前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
    請求項26に記載の方法。
  28. 前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項22に記載の方法。
  29. 前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきソケット動作のリストを備える、
    請求項22に記載の方法。
  30. 前記命令は、前記通信統計値が送信されるべき通信ネットワークのリストを備える、
    請求項23に記載の方法。
  31. 前記命令は、前記通信統計値が送信されるべきときを示す命令を備える、
    請求項23に記載の方法。
  32. 前記通信統計値は、前記バックグランウンド状態中にアクティブであるアプリケーションのアプリケーション識別子、前記アプリケーションによって転送されるデータの量、前記アプリケーションが何個の接続を開始したか、前記アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数を含む、
    請求項20に記載の方法。
  33. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
    請求項20に記載の方法。
  34. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に転送されるデータの量を備え、前記通信統計値が、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
    請求項20に記載の方法。
  35. アプリケーションおよびソケット動作タイプによって前記通信統計値を分類することをさらに備える、
    請求項20に記載の方法。
  36. 前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
    請求項35に記載の方法。
  37. 前記通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差の計算された統計値を含む、
    請求項20に記載の方法。
  38. 前記通信統計値は、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイスのロケーションを含む追加情報をさらに含む、
    請求項20に記載の方法。
  39. アプリケーション通信統計値を収集するための装置であって、
    1つまたは複数の入力の存在または不在に基づいて前記装置がフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断するための手段と、
    通信ネットワークと通信するように構成される複数のアプリケーションを実行するための手段と、
    前記装置が前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集するめの手段と、
    前記装置が前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記装置が前記フォアグラウンド状態にあるときに前記1つまたは複数の通信統計値を収集するための手段、または
    前記装置が前記フォアグラウンド状態にあるときに前記1つまたは複数の通信統計値を収集することを控えるための手段
    のいずれかと
    を備える、装置。
  40. サーバに前記通信統計値を送信するための手段をさらに備える、
    請求項39に記載の装置。
  41. 前記サーバから命令を受信するための手段と、
    前記命令に従って前記1つまたは複数の通信統計値を収集するための手段と
    をさらに備える、請求項40に記載の装置。
  42. 前記サーバから命令を受信するための手段と、
    前記命令に従って前記1つまたは複数の通信統計値を送信するための手段と
    をさらに備える、請求項40に記載の装置。
  43. アプリケーションからの通信をインターセプトするための手段と、
    ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断するための手段と、
    ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集するための手段と
    をさらに備える、請求項39に記載の装置。
  44. 前記サーバから命令を受信するための手段と、
    前記命令に従って1つまたは複数の通信を遅延させるための手段と
    をさらに備える、請求項40に記載の装置。
  45. 前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項44に記載の装置。
  46. 前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
    請求項45に記載の装置。
  47. 前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項41に記載の装置。
  48. 前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきソケット動作のリストを備える、
    請求項41に記載の装置。
  49. 前記命令は、前記通信統計値が送信されるべき通信ネットワークのリストを備える、
    請求項42に記載の装置。
  50. 前記命令は、前記通信統計値が送信されるべきときを示す命令を備える、
    請求項42に記載の装置。
  51. 前記通信統計値は、前記バックグランウンド状態中にアクティブであるアプリケーションのアプリケーション識別子、前記アプリケーションによって転送されるデータの量、前記アプリケーションが何個の接続を開始したか、前記アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数を含む、
    請求項39に記載の装置。
  52. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
    請求項39に記載の装置。
  53. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に転送されるデータの量を備え、前記通信統計値は、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
    請求項39に記載の装置。
  54. アプリケーションおよびソケット動作タイプによって前記通信統計値を分類するための手段をさらに備える、
    請求項39に記載の装置。
  55. 前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
    請求項54に記載の装置。
  56. 前記通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差の計算された統計値を含む、
    請求項39に記載の装置。
  57. 前記通信統計値は、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイスのロケーションを含む追加情報をさらに含む、
    請求項39に記載の装置。
  58. 実行されたとき、装置に、
    1つまたは複数の入力の存在または不在に基づいて前記装置がフォアグラウンド状態にあるのかバックグラウンド状態にあるのかを判断することと、
    通信ネットワークと通信するように構成される複数のアプリケーションを実行することと、
    前記装置が前記バックグラウンド状態にあるとき、前記複数のアプリケーションのうちの1つまたは複数について、1つまたは複数の通信統計値を収集することと、
    前記装置が前記フォアグラウンド状態にあるとき、
    前記装置が前記バックグラウンド状態にあるときに収集した前記通信統計値とは別個に、前記1つまたは複数の通信統計値を収集すること、または
    前記通信統計値を収集することを控えること
    のいずれかを行うことと
    を行わせるコードを備える、非一時的コンピュータ可読媒体。
  59. 実行されたとき、前記装置に、サーバに前記通信統計値を送信させるコードをさらに備える、
    請求項58に記載の媒体。
  60. 実行されたとき、前記装置に、
    前記サーバから命令を受信することと、
    前記命令に従って前記1つまたは複数の通信統計値を収集することと
    を行わせるコードをさらに備える、請求項59に記載の媒体。
  61. 実行されたとき、前記装置に、
    前記サーバから命令を受信することと、
    前記命令に従って前記1つまたは複数の通信統計値を送信することと
    を行わせるコードをさらに備える、請求項59に記載の媒体。
  62. 実行されたとき、前記装置に、
    アプリケーションからの通信をインターセプトすることと、
    ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したかどうかを判断することと、
    ユーザインターフェース入力に応答して前記アプリケーションが前記インターセプトされた通信を生成したとき、前記インターセプトされた通信について前記1つまたは複数の通信統計値を別個に収集することと
    を行わせるコードをさらに備える、請求項58に記載の媒体。
  63. 実行されたとき、前記装置に、
    前記サーバから命令を受信することと、
    前記命令に従って1つまたは複数の通信を遅延させることと
    を行わせるコードをさらに備える、請求項59に記載の媒体。
  64. 前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項63に記載の媒体。
  65. 前記命令は、前記通信を遅延させるときに含めるべきおよび/または除外すべきアプリケーションソケット動作のリストを備える、
    請求項64に記載の媒体。
  66. 前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきアプリケーションのリストを備える、
    請求項60に記載の媒体。
  67. 前記命令は、前記通信統計値を収集するときに含めるべきおよび/または除外すべきソケット動作のリストを備える、
    請求項60に記載の媒体。
  68. 前記命令は、前記通信統計値が送信されるべき通信ネットワークのリストを備える、
    請求項61に記載の媒体。
  69. 前記命令は、前記通信統計値が送信されるべきときを示す命令を備える、
    請求項61に記載の媒体。
  70. 前記通信統計値は、前記バックグランウンド状態中にアクティブであるアプリケーションのアプリケーション識別子、前記アプリケーションによって転送されるデータの量、前記アプリケーションが何個の接続を開始したか、前記アプリケーションによって行われた伝送制御プロトコル(TCP)要求の数、送られたユーザデータグラムプロトコル(UDP)パケットの数、送られたドメインネームサービス(DNS)要求の数を含む、
    請求項58に記載の媒体。
  71. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に1つまたは複数のアプリケーションによって開始される接続の数を備える、
    請求項58に記載の媒体。
  72. 前記通信統計値は、アプリケーションごとに、前記バックグラウンド状態中に転送されるデータの量を備え、前記通信統計値は、1つまたは複数のソケット動作と、実行されたソケット動作の数のカウントとを備える、
    請求項58に記載の媒体。
  73. アプリケーションおよびソケット動作タイプによって前記通信統計値を分類するための手段をさらに備える、
    請求項39に記載の装置。
  74. 前記ソケット動作タイプが、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
    請求項73に記載の装置。
  75. 前記通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差の計算された統計値を含む、
    請求項39に記載の装置。
  76. 前記通信統計値は、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイスのロケーションを含む追加情報をさらに含む、
    請求項39に記載の装置。
  77. 実行されたとき、前記装置に、アプリケーションおよびソケット動作タイプによって前記通信統計値を分類させるコードをさらに備える、
    請求項58に記載の媒体。
  78. 前記ソケット動作タイプは、bind()、connect()、accept()、send()、recv()、write()、read()、sendto()、recvfrom()、close()、gethostbyname()、およびgethostbyaddr()のリストからの少なくとも1つの動作を備える、
    請求項77に記載の媒体。
  79. 前記通信統計値は、生データを含むか、または指定された時間ウィンドウ中の要求またはパケットの最小値、最大値、平均値、中央値、標準偏差の計算された統計値を含む、
    請求項58に記載の媒体。
  80. 前記通信統計値は、デバイス識別子、SIMカード識別子、ホームネットワーク識別情報、モバイル国コード、モバイルネットワークコード、デバイスのロケーションを含む追加情報をさらに含む、
    請求項58に記載の媒体。
JP2014528564A 2011-08-29 2012-08-29 バックグラウンドアプリケーションイベントのモニタのためのシステムおよび方法 Expired - Fee Related JP5905578B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161528628P 2011-08-29 2011-08-29
US61/528,628 2011-08-29
US201161543701P 2011-10-05 2011-10-05
US61/543,701 2011-10-05
US13/490,408 US9137737B2 (en) 2011-08-29 2012-06-06 Systems and methods for monitoring of background application events
US13/490,408 2012-06-06
PCT/US2012/052927 WO2013033262A1 (en) 2011-08-29 2012-08-29 Systems and methods for monitoring of background application events

Publications (2)

Publication Number Publication Date
JP2014531795A JP2014531795A (ja) 2014-11-27
JP5905578B2 true JP5905578B2 (ja) 2016-04-20

Family

ID=47744407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014528564A Expired - Fee Related JP5905578B2 (ja) 2011-08-29 2012-08-29 バックグラウンドアプリケーションイベントのモニタのためのシステムおよび方法

Country Status (6)

Country Link
US (2) US9137737B2 (ja)
EP (1) EP2752058B1 (ja)
JP (1) JP5905578B2 (ja)
KR (1) KR101557309B1 (ja)
CN (1) CN103891363B (ja)
WO (1) WO2013033262A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918062B2 (en) * 2009-12-08 2014-12-23 Qualcomm Incorporated Combined intelligent receive diversity (IRD) and mobile transmit diversity (MTD) with independent antenna switching for uplink and downlink
US20110250926A1 (en) * 2009-12-21 2011-10-13 Qualcomm Incorporated Dynamic antenna selection in a wireless device
US9603085B2 (en) 2010-02-16 2017-03-21 Qualcomm Incorporated Methods and apparatus providing intelligent radio selection for legacy and non-legacy applications
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
US8831658B2 (en) 2010-11-05 2014-09-09 Qualcomm Incorporated Controlling application access to a network
US9264868B2 (en) 2011-01-19 2016-02-16 Qualcomm Incorporated Management of network access requests
US9178965B2 (en) 2011-03-18 2015-11-03 Qualcomm Incorporated Systems and methods for synchronization of application communications
US9571952B2 (en) 2011-04-22 2017-02-14 Qualcomm Incorporatd Offloading of data to wireless local area network
US9137737B2 (en) 2011-08-29 2015-09-15 Qualcomm Incorporated Systems and methods for monitoring of background application events
US9823928B2 (en) 2011-09-30 2017-11-21 Qualcomm Incorporated FIFO load instruction
US9042286B2 (en) * 2011-11-04 2015-05-26 Intel Corporation Reducing wireless power consumption and signaling overhead for internet application background messages
KR20150003406A (ko) * 2012-04-12 2015-01-08 가부시키가이샤 스퀘어.에닉스.홀딩스 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템
US8738031B2 (en) * 2012-05-25 2014-05-27 Apple Inc. Operating geographic location systems
US8995339B2 (en) * 2012-06-08 2015-03-31 At&T Intellectual Property I, L.P. Network control of applications using application states
CN103905291B (zh) * 2012-12-27 2017-05-03 腾讯科技(深圳)有限公司 一种基于地理位置的通讯方法、移动终端、服务器及系统
US9516127B2 (en) 2013-03-25 2016-12-06 Seven Networks, Llc Intelligent alarm manipulator and resource tracker
US20140293848A1 (en) * 2013-03-28 2014-10-02 Alcatel-Lucent Usa Inc. Communication device data channel access
US9775085B2 (en) * 2013-04-05 2017-09-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Network discovery and selection using utility information and radio interworking
US10187430B2 (en) * 2013-06-07 2019-01-22 Apple Inc. Smart management of background network connections
US10216549B2 (en) 2013-06-17 2019-02-26 Seven Networks, Llc Methods and systems for providing application programming interfaces and application programming interface extensions to third party applications for optimizing and minimizing application traffic
CN105493071A (zh) * 2013-07-05 2016-04-13 诺基亚通信公司 集体的过顶应用策略监管
US20150023161A1 (en) 2013-07-22 2015-01-22 Seven Networks, Inc. Modifying system timers for optimizing mobile traffic management
US9420480B2 (en) * 2013-07-22 2016-08-16 Apple Inc. Fast scan algorithm for higher priority service search
US9185514B1 (en) 2013-10-10 2015-11-10 Sprint Communications Company L.P. Orchestration of application updates over a wireless communication network
US9351254B2 (en) 2014-01-22 2016-05-24 Seven Networks, Llc Method for power saving in mobile devices by optimizing wakelocks
WO2015115948A1 (en) * 2014-01-30 2015-08-06 Telefonaktiebolaget L M Ericsson (Publ) A method, nodes and a communication device for handling feedback information
DE102014103196A1 (de) * 2014-03-11 2015-09-17 Vodafone Gmbh Verfahren für die Kontrolle eines Datenverkehrs zwischen einem Kommunikationsgerät und einem Kommunikationsnetz über eine Kommunikationsverbindung
KR102205902B1 (ko) * 2014-03-17 2021-01-21 삼성전자주식회사 어플리케이션 관리 방법 및 그 장치
US9712981B2 (en) * 2014-03-25 2017-07-18 Qualcomm Incorporated Client ID and multi-application support for reception reporting
US9420537B2 (en) * 2014-03-26 2016-08-16 Intel Corporation Queueing mechanism for client-side network traffic to reduce radio power consumption on mobile clients
GB2525018B (en) 2014-04-10 2016-06-22 Facebook Inc Wireless data transfer
US9374738B2 (en) * 2014-07-31 2016-06-21 Qualcomm Incorporated Enhanced inter-radio access technology (IRAT) cell reselection
JP6481908B2 (ja) * 2014-10-23 2019-03-13 インテル アイピー コーポレーション マシン・タイプ・コミュニケーション(mtc)機器のための接続制御
EP3148157B1 (en) * 2015-09-22 2017-12-06 Comptel OYJ Method and system of identifying an access request of an application on a mobile device in a telecommunication network
FR3042938A1 (fr) * 2015-10-23 2017-04-28 Orange Procede de reveil d'une station de base, actionneur, station de base et systeme correspondants
CN105407452A (zh) * 2015-10-27 2016-03-16 广东欧珀移动通信有限公司 在蓝牙共享网络下控制数据流量的方法和系统
US10785327B2 (en) * 2016-06-02 2020-09-22 Google Llc Client device application interaction monitoring
CN106371977A (zh) * 2016-09-02 2017-02-01 中科信息安全共性技术国家工程研究中心有限公司 一种检测当前应用是否处于前台的方法
WO2022177565A1 (en) * 2021-02-18 2022-08-25 Hewlett-Packard Development Company, L.P. Electronic device transit mode
KR102597361B1 (ko) * 2023-02-17 2023-11-07 (주)시지태테크놀러지 애플리케이션 사용량을 분석 및 제시하기 위한 방법

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737687A (en) * 1995-03-01 1998-04-07 Qualcomm Incorporated Self-attenuating RF transceiver system using antenna and modem interfaces and cable link
GB2301751B (en) * 1995-06-02 2000-02-09 Dsc Communications Control message transmission in telecommunications systems
US6115744A (en) 1996-07-30 2000-09-05 Bea Systems, Inc. Client object API and gateway to enable OLTP via the internet
US6122514A (en) 1997-01-03 2000-09-19 Cellport Systems, Inc. Communications channel selection
US5842114A (en) * 1997-02-12 1998-11-24 Interdigital Technology Corporation Global channel power control to minimize spillover in a wireless communication environment
US7013284B2 (en) 1999-05-04 2006-03-14 Accenture Llp Component based interface to handle tasks during claim processing
JP3389951B2 (ja) * 2000-02-07 2003-03-24 日本電気株式会社 Cdma移動通信システム及び該cdma移動通信システムにおける下り回線送信電力制御方法
US7260635B2 (en) 2000-03-21 2007-08-21 Centrisoft Corporation Software, systems and methods for managing a distributed network
EP3024283A1 (en) 2000-04-03 2016-05-25 Nokia Technologies Oy Determining which plurality of cells a mobile station is associated with in idle state
US7284244B1 (en) * 2000-05-02 2007-10-16 Microsoft Corporation Resource manager architecture with dynamic resource allocation among multiple configurations
US7107063B1 (en) * 2000-05-03 2006-09-12 International Business Machines Corporation Selective display of display information packets in a packet-based communication medium
JP2001339465A (ja) 2000-05-26 2001-12-07 Mitsubishi Electric Corp メッセージフロー制御方法および通信システム
US7418489B2 (en) 2000-06-07 2008-08-26 Microsoft Corporation Method and apparatus for applying policies
JP2002091841A (ja) 2000-09-13 2002-03-29 Sanyo Electric Co Ltd ネットワークシステム及び機器認識方法
JP2002203017A (ja) 2000-10-30 2002-07-19 Mitsubishi Electric Corp 飲食物提供管理システム、そのシステムに用いられるサーバおよび端末
US6718176B2 (en) * 2001-03-01 2004-04-06 Nokia Corporation Apparatus, and associated method, for displaying positional data associated with mobile stations of a radio communication system
GB2373887A (en) * 2001-03-28 2002-10-02 Hewlett Packard Co Context dependent operation, including power management, of a mobile computer
US7433922B2 (en) * 2001-05-11 2008-10-07 Varia Llc Method and system for collecting and displaying aggregate presence information for mobile media players
US7506059B2 (en) 2001-10-26 2009-03-17 Nokia Corporation Mobile client provisioning web service
US7065367B2 (en) 2002-07-11 2006-06-20 Oliver Michaelis Interface selection in a wireless communication network
US6961595B2 (en) 2002-08-08 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for operating mobile nodes in multiple states
WO2004064333A1 (ja) 2003-01-10 2004-07-29 Sharp Kabushiki Kaisha 通信装置、ネットワークシステム、通信管理方法、要求信号、応答信号、プログラム、および、プログラムを記録した記録媒体
US7228563B2 (en) 2003-02-06 2007-06-05 Symantec Corporation Shell code blocking system and method
JP3902560B2 (ja) 2003-03-25 2007-04-11 三洋電機株式会社 チャネル割当方法ならびにそれを利用した基地局装置および通信システム
EP1634468A4 (en) 2003-06-18 2011-03-30 Qualcomm Inc SYSTEM AND METHOD FOR A FORCED GSM CONNECTION TRANSMISSION
US20040264396A1 (en) 2003-06-30 2004-12-30 Boris Ginzburg Method for power saving in a wireless LAN
US7664838B2 (en) 2004-05-10 2010-02-16 Nortel Networks Limited System and method for translating application program network service requests into actions and performing those actions through the management and/or control plane responsive to previously defined policies and previous requests by the same or another application program
US20060217116A1 (en) 2005-03-18 2006-09-28 Cassett Tia M Apparatus and methods for providing performance statistics on a wireless communication device
EP1705855B1 (en) 2005-03-22 2011-12-14 Swisscom AG Method and System for establishing a Peer-to-peer communications channel
US7486954B2 (en) 2005-03-25 2009-02-03 Alcatel-Lucent Usa Inc. Method of controlling load sharing between in-cell and soft handoff users
US20060221953A1 (en) 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US8024785B2 (en) 2006-01-16 2011-09-20 International Business Machines Corporation Method and data processing system for intercepting communication between a client and a service
EP3177081B1 (en) * 2006-01-17 2018-03-14 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for reducing power consumption in a mobile communication network
US8073436B2 (en) 2006-01-31 2011-12-06 Toshiba America Research, Inc. Applications and/or situation responsive utilization of silent periods
US7769887B1 (en) 2006-02-03 2010-08-03 Sprint Communications Company L.P. Opportunistic data transfer over heterogeneous wireless networks
CN105357145B (zh) 2006-02-03 2019-12-27 诺基亚公司 从用户设备向无线网络提供基于阈值的缓冲器状态报告
US8265713B2 (en) * 2006-03-03 2012-09-11 Nec Corporation System and method for adaptively handling software processing during power save mode operation in mobile terminals
US20070245171A1 (en) 2006-03-27 2007-10-18 Patrick Ohly Methods and apparatus to perform distributed memory checking
US8160000B2 (en) 2006-06-08 2012-04-17 Qualcomm Incorporated Achieving power savings through packet grouping
US8223729B2 (en) 2006-07-19 2012-07-17 Qualcomm Incorporated Radio interface selection for a terminal
JP4837487B2 (ja) 2006-08-11 2011-12-14 京セラ株式会社 チャネルの割当方法およびそれを利用した基地局装置
JP2008072568A (ja) 2006-09-15 2008-03-27 Hiroshi Makino 適応非同期通信制御プログラム
JP4970066B2 (ja) 2007-01-29 2012-07-04 京セラ株式会社 無線通信装置、その制御方法、および制御方法
US8626171B2 (en) 2006-11-29 2014-01-07 Kyocera Corporation Wireless communication terminal and method of controlling the same
US8055761B2 (en) 2007-01-31 2011-11-08 International Business Machines Corporation Method and apparatus for providing transparent network connectivity
US7860469B2 (en) 2007-03-19 2010-12-28 Intel Corporation Sleep optimization for mobile devices in a wireless network
US20080234012A1 (en) 2007-03-22 2008-09-25 Changwen Liu Scheduling for power savings in a wireless network
US8027293B2 (en) 2007-07-16 2011-09-27 Cellport Systems, Inc. Communication channel selection and use
US20090049518A1 (en) 2007-08-08 2009-02-19 Innopath Software, Inc. Managing and Enforcing Policies on Mobile Devices
WO2009086316A1 (en) 2007-12-21 2009-07-09 Citrix Systems, Inc. Systems and methods for efficient processing of data displayed by a window
US8417187B2 (en) * 2008-01-07 2013-04-09 Apple Inc. Methods and apparatus for wireless device coexistence
JP2009182443A (ja) 2008-01-29 2009-08-13 Ntt Docomo Inc 通信端末、動作モード管理プログラム、および動作モード管理方法
KR20100106550A (ko) 2008-01-29 2010-10-01 교세라 가부시키가이샤 무선통신단말의 제어방법 및 무선통신단말
US20090318124A1 (en) 2008-06-23 2009-12-24 At&T Mobility Ii Llc Mobile device management through an offloading network
FI20085676A0 (fi) 2008-06-30 2008-06-30 Nokia Corp Viivesietoisen datan lähetys
US8010842B2 (en) 2008-08-08 2011-08-30 Innopath Software, Inc. Intelligent mobile device management client
JP5374717B2 (ja) 2008-08-21 2013-12-25 独立行政法人情報通信研究機構 高信頼な制御コマンドの送受信と帯域の効率化を実現するセンサーネットワークシステム
US8160598B2 (en) 2008-12-10 2012-04-17 At&T Intellectual Property Ii, L.P. Lightweight application level policy management for portable wireless devices under varying network
CN101442589A (zh) * 2009-01-09 2009-05-27 深圳华为通信技术有限公司 移动终端状态管理的方法及装置
JP2010183414A (ja) 2009-02-06 2010-08-19 Sanyo Electric Co Ltd 電話装置
US8271057B2 (en) * 2009-03-16 2012-09-18 Waze Mobile Ltd. Condition-based activation, shut-down and management of applications of mobile devices
US8255011B2 (en) 2009-05-01 2012-08-28 L3 Communications Integrated Systems, L.P. Mobile communication device and communication method
EP2427831A4 (en) * 2009-05-08 2013-07-10 Arbitron Mobile Oy SYSTEM AND METHOD FOR BEHAVIOR AND CONTEXT DATA ANALYSIS
US20100287281A1 (en) 2009-05-11 2010-11-11 Motorola, Inc. Telecommunication network resource management based on social network characteristics
CA2667820C (en) 2009-05-29 2013-10-01 Research In Motion Limited Signal quality determination methods and apparatus suitable for use in wlan-to-wwan transitioning
CN101577764A (zh) * 2009-06-02 2009-11-11 中兴通讯股份有限公司 终端电量节省方法及装置
US9313800B2 (en) 2009-06-23 2016-04-12 Nokia Technologies Oy Method and apparatus for optimizing energy consumption for wireless connectivity
US8509193B2 (en) 2009-07-21 2013-08-13 Microsoft Corporation Packet aggregation
US8249499B2 (en) 2009-07-31 2012-08-21 Sierra Wireless, Inc. Method, system and device for initiating wireless communication
JP5354557B2 (ja) 2009-08-24 2013-11-27 インテル・コーポレーション 低電力で高速なアプリケーションサービス送信
CA2675666A1 (en) 2009-08-27 2009-11-05 Ibm Canada Limited - Ibm Canada Limitee Accelerated execution for emulated environments
EP2491745B1 (en) 2009-12-18 2018-07-04 Intel Corporation System and method of utilizing a framework for information routing in large-scale distributed systems using swarm intelligence
US8169935B2 (en) 2009-12-22 2012-05-01 Intel Corporation Multi-radio connection management and bundling using web browsers
US8228832B2 (en) 2010-01-25 2012-07-24 Motorola Mobility, Inc. USSD transport method and device
US8904206B2 (en) * 2010-01-26 2014-12-02 Motorola Mobility Llc Mobile computing device and method for maintaining application continuity
KR101624749B1 (ko) 2010-01-29 2016-05-26 삼성전자주식회사 패킷 기반 통신 시스템에서 단말의 절전 모드 제어 방법 및 장치
US9603085B2 (en) 2010-02-16 2017-03-21 Qualcomm Incorporated Methods and apparatus providing intelligent radio selection for legacy and non-legacy applications
US8570993B2 (en) 2010-05-20 2013-10-29 At&T Mobility Ii Llc Wi-Fi intelligent selection engine
US8670362B2 (en) 2010-07-26 2014-03-11 Texas Instruments Incorporated Power state and medium access coordination in coexisting wireless networks
CN101917516A (zh) * 2010-08-16 2010-12-15 宇龙计算机通信科技(深圳)有限公司 一种移动终端的省电处理方法、系统及移动终端
US8831658B2 (en) 2010-11-05 2014-09-09 Qualcomm Incorporated Controlling application access to a network
US8359016B2 (en) 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US8971841B2 (en) * 2010-12-17 2015-03-03 Microsoft Corporation Operating system supporting cost aware applications
US9264868B2 (en) 2011-01-19 2016-02-16 Qualcomm Incorporated Management of network access requests
US9178965B2 (en) 2011-03-18 2015-11-03 Qualcomm Incorporated Systems and methods for synchronization of application communications
CN102186167B (zh) 2011-04-11 2016-02-10 中兴通讯股份有限公司 一种对应用进行监控的方法及系统
US9571952B2 (en) 2011-04-22 2017-02-14 Qualcomm Incorporatd Offloading of data to wireless local area network
US9137737B2 (en) 2011-08-29 2015-09-15 Qualcomm Incorporated Systems and methods for monitoring of background application events
JP5831207B2 (ja) 2011-12-21 2015-12-09 富士通株式会社 携帯端末装置、携帯端末装置の制御プログラム及び制御方法
EP2815593A4 (en) 2012-02-17 2015-08-12 Intertrust Tech Corp VEHICLE TRANSLATION SYSTEMS AND METHODS
US9774525B2 (en) 2013-03-25 2017-09-26 Altiostar Networks, Inc. Systems and methods for scheduling of data packets based on delay tolerance of applications

Also Published As

Publication number Publication date
EP2752058B1 (en) 2018-07-25
US20130053013A1 (en) 2013-02-28
US20130052965A1 (en) 2013-02-28
JP2014531795A (ja) 2014-11-27
EP2752058A1 (en) 2014-07-09
KR20140059269A (ko) 2014-05-15
WO2013033262A1 (en) 2013-03-07
KR101557309B1 (ko) 2015-10-19
CN103891363A (zh) 2014-06-25
CN103891363B (zh) 2018-11-06
US9137737B2 (en) 2015-09-15
US8838086B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
JP5905578B2 (ja) バックグラウンドアプリケーションイベントのモニタのためのシステムおよび方法
JP5863217B2 (ja) アプリケーション通信を同期化するためのシステムおよび方法
US9264868B2 (en) Management of network access requests
US9571952B2 (en) Offloading of data to wireless local area network
JP5728623B2 (ja) バックグラウンドアプリケーションイベントの管理のためのシステムおよび方法
US20180367426A1 (en) Background task execution over a network
JP5784816B2 (ja) ネットワークアクセス要求の管理
US20150063212A1 (en) Optimizing keepalive and other background traffic in a wireless network
KR20130121115A (ko) 네트워크에 대한 애플리케이션 액세스의 제어
JP6138944B2 (ja) 通信ネットワークにおいてモバイルデバイスにアプリケーションデータの制御を配信するための装置および方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160316

R150 Certificate of patent or registration of utility model

Ref document number: 5905578

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees