ワイヤレスローカルエリアネットワークへのデータのオフロード

申请号 JP2014506603 申请日 2012-04-20 公开(公告)号 JP5694602B2 公开(公告)日 2015-04-01
申请人 クゥアルコム・インコーポレイテッド; QUALCOMM INCORPORATED; 发明人 メイラン、アーナウド; シャー、テジャシュ・ラジニカント; スンダララジャン、ジャイ・クマー;
摘要
权利要求

ワイヤレス通信のための方法であって、 第1のワイヤレスインターフェースがアクティブである間、少なくとも1つのソケットコールを、モバイルデバイスにおけるソケット層に到達することからインターセプトすることと、なお、前記第1のワイヤレスインターフェースは常時接続インターフェースである、 前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することに基づいて、第2のワイヤレスインターフェースをアクティブ化することと、 前記少なくとも1つのインターセプトされたソケットコールを前記アクティブ化された第2のワイヤレスインターフェース上の前記ソケット層にリリースすることと、 を備え、 前記少なくとも1つのソケットコールをインターセプトすること、前記第2のワイヤレスインターフェースをアクティブ化すること、及び、前記インターセプトされたソケットコールを前記ソケット層にリリースすることは、前記モバイルデバイスがアイドルモードにある期間中に実行される、 方法。前記アクティブ化された第2のワイヤレスインターフェースを使用して、前記リリースされたソケットコールを送信することをさらに備える、請求項1に記載の方法。前記第2のワイヤレスインターフェースをアクティブ化することは、 前記第1のワイヤレスインターフェースに関連する第1のワイヤレスネットワークとは異なる、利用可能な第2のワイヤレスネットワークをスキャンすることと、 前記利用可能な第2のワイヤレスネットワークを検出すると、前記第2のワイヤレスインターフェースをアクティブ化することと、を備える、請求項1に記載の方法。トリガイベントを検出すると、前記第2のワイヤレスインターフェースを非アクティブ化することをさらに備える、請求項1に記載の方法。前記トリガイベントを検出することは、 前記少なくとも1つのソケットコールが実行されたものと決定することを備える、請求項4に記載の方法。前記トリガイベントを検出することは、 タイマーが終了したものと決定することを備える、請求項4に記載の方法。前記第2のワイヤレスインターフェースがアクティブ化された状態にある期間中、および前記第2のワイヤレスインターフェースが非アクティブ化された状態にある期間中に、前記第1のワイヤレスインターフェースをアクティブ化された状態に維持すること、をさらに備える、請求項1に記載の方法。前記第2のワイヤレスインターフェースがアクティブ化されていると決定することに基づいて、前記第1のワイヤレスインターフェースを非アクティブ化することと、 前記第2のワイヤレスインターフェースが非アクティブ化されていると決定することに基づいて、前記第1のワイヤレスインターフェースを再アクティブ化することと、をさらに備える、請求項1に記載の方法。前記第2のワイヤレスインターフェースがアクティブになることに関する通知をディセーブルすることをさらに備える、請求項1に記載の方法。前記第1のワイヤレスインターフェースを介して持続的な伝送制御プロトコル(TCP)接続を有する1つまたは複数のアプリケーションを識別することと、 前記1つまたは複数のアプリケーションが、前記第2のワイヤレスインターフェースがアクティブになることに関する通知を受信することを防止することと、をさらに備える、請求項1に記載の方法。前記1つまたは複数のアプリケーションを、前記通知を受信することから防止することは、 前記第2のワイヤレスインターフェースがアクティブになることに関する前記通知をインターセプトすることと、 前記通知を廃棄することと、を備える、請求項10に記載の方法。前記1つまたは複数のアプリケーションを、前記通知を受信することから防止することは、 前記1つまたは複数のアプリケーションから生じる、前記第2のワイヤレスインターフェースに宛てられたトラフィックを廃棄すること、を備える、請求項10に記載の方法。前記少なくとも1つのインターセプトされたソケットコールを、前記ソケット層にリリースすることを決定することは、 リリーストリガイベントの発生を検出すること、を備える、請求項1に記載の方法。前記リリーストリガイベントは、ワイヤレスローカルエリアネットワーク(WLAN)への接続が完了していることの表示を備える、請求項13に記載の方法。前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することは、 前記少なくとも1つのソケットコールを発したアプリケーションを、クリティカルアプリケーションとして識別すること、を備える、請求項1に記載の方法。前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することは、 前記少なくとも1つのインターセプトされたソケットコールが、許容度しきい値より下の遅延許容度を持つものと決定すること、を備える、請求項1に記載の方法。ラッパーのための命令を実行することをさらに備え、前記実行されたラッパーは、前記少なくとも1つのソケットコールを前記インターセプトすることを実行する、請求項1に記載の方法。前記ラッパーは、前記モバイルデバイスのオペレーティングシステムのアプリケーション層とソケット層との間に位置する、請求項17に記載の方法。ワイヤレス通信のために構成されたモバイルデバイスであって、 プロセッサと、 前記プロセッサと電子的に通信しており、オペレーティングシステムを備えるメモリとを備え、 前記プロセッサはアプリケーション接続性エンジンを備え、前記エンジンは、 第1のワイヤレスインターフェースがアクティブである間、少なくとも1つのソケットコールを、モバイルデバイスにおけるソケット層に到達することからインターセプトし、なお、前記第1のワイヤレスインターフェースは常時接続インターフェースである、 前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することに基づいて、第2のワイヤレスインターフェースをアクティブ化し、 前記少なくとも1つのインターセプトされたソケットコールを前記アクティブ化された第2のワイヤレスインターフェース上の前記ソケット層にリリースする、ための命令を実行するように構成され、 前記インターセプトすること、前記アクティブ化すること、及び前記リリースすることは、前記モバイルデバイスがアイドルモードにある期間中に実行される、 モバイルデバイス。前記第2のワイヤレスインターフェースをアクティブ化することは、前記アプリケーション接続性エンジンが、 前記第1のワイヤレスインターフェースに関連する第1のワイヤレスネットワークとは異なる、利用可能な第2のワイヤレスネットワークをスキャンし、 前記利用可能な第2のワイヤレスネットワークを検出すると、前記第2のワイヤレスインターフェースをアクティブ化する、ための命令を実行するように構成されることを備える、請求項19に記載のモバイルデバイス。前記アプリケーション接続性エンジンは、 トリガイベントを検出すると、前記第2のワイヤレスインターフェースを非アクティブ化する、ための命令を実行するようにさらに構成される、請求項19に記載のモバイルデバイス。前記トリガイベントを検出することは、前記アプリケーション接続性エンジンが、 前記少なくとも1つのソケットコールが実行されたものと決定する、ための命令を実行するようにさらに構成されることを備える、請求項21に記載のモバイルデバイス。前記トリガイベントを検出することは、前記アプリケーション接続性エンジンが、 タイマーが終了したものと決定する、ための命令を実行するようにさらに構成されることを備える、請求項21に記載のモバイルデバイス。前記アプリケーション接続性エンジンは、 前記第2のワイヤレスインターフェースがアクティブ化された状態にある期間中、および前記第2のワイヤレスインターフェースが非アクティブ化された状態にある期間中に、前記第1のワイヤレスインターフェースをアクティブ化された状態に維持する、ための命令を実行するようにさらに構成される、請求項19に記載のモバイルデバイス。前記アプリケーション接続性エンジンは、 前記第2のワイヤレスインターフェースがアクティブ化されていると決定することに基づいて、前記第1のワイヤレスインターフェースを非アクティブ化し、 前記第2のワイヤレスインターフェースが非アクティブ化されていると決定することに基づいて、前記第1のワイヤレスインターフェースを再アクティブ化するための命令を実行するようにさらに構成される、請求項19に記載のモバイルデバイス。前記アプリケーション接続性エンジンは、 前記第2のワイヤレスインターフェースがアクティブになることに関する通知をディセーブルするための命令を実行するようにさらに構成される、請求項19に記載のモバイルデバイス。前記アプリケーション接続性エンジンは、 前記第1のワイヤレスインターフェースを介して持続的な伝送制御プロトコル(TCP)接続を有する1つまたは複数のアプリケーションを識別し、 前記1つまたは複数のアプリケーションを、前記第2のワイヤレスインターフェースが利用可能になることに関する通知を受信することから防止する、ための命令を実行するようにさらに構成される、請求項19に記載のモバイルデバイス。前記アプリケーション接続性エンジンは、 前記1つまたは複数のアプリケーションから生じる、前記第2のワイヤレスインターフェースに宛てられたトラフィックを廃棄する、ための命令を実行するようにさらに構成される、請求項27に記載のモバイルデバイス。前記リリーストリガイベントは、ワイヤレスローカルエリアネットワーク(WLAN)への接続が完了したことの少なくとも1つの表示を備える、請求項19に記載のモバイルデバイス。前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することは、前記アプリケーション接続性エンジンが、 前記少なくとも1つのソケットコールを発したアプリケーションをクリティカルアプリケーションとして識別する、ための命令を実行するようにさらに構成されることを備える、請求項19に記載のモバイルデバイス。前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することは、前記アプリケーション接続性エンジンが、 前記少なくとも1つのインターセプトされたソケットコールが許容度しきい値より下の遅延許容度を持つものと決定する、ための命令を実行するようにさらに構成されることを備える、請求項19に記載のモバイルデバイス。前記メモリは、 ラッパーをさらに備え、前記アプリケーション接続性エンジンが前記ラッパー上で命令を実行するようにさらに構成され、前記命令が実行されると、前記ラッパーが前記ソケットコールを前記アプリケーションからインターセプトするように構成される、請求項19に記載のモバイルデバイス。前記ラッパーは、前記モバイルデバイスのオペレーティングシステムのアプリケーション層とソケット層との間に位置する、請求項32に記載のモバイルデバイス。モバイルデバイス上のアプリケーションからのソケットコールを管理するように構成された装置であって、 第1のワイヤレスインターフェースがオペレーティングシステムにおいてアクティブである間、少なくとも1つのソケットコールを、モバイルデバイスにおけるソケット層に到達することからインターセプトするための手段と、なお、前記第1のワイヤレスインターフェースは常時接続インターフェースである、 前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することに基づいて、前記オペレーティングシステムにおける第2のワイヤレスインターフェースをアクティブ化するための手段と、 前記少なくとも1つのインターセプトされたソケットコールを、前記アクティブ化された第2のワイヤレスインターフェース上の前記ソケット層にリリースするための手段と、を備え、 前記インターセプトすること、前記アクティブ化すること、及び前記リリースすることは、前記モバイルデバイスがアイドルモードにある期間中に実行される、 装置。前記第2のワイヤレスインターフェースをアクティブ化することは、 前記第1のワイヤレスインターフェースに関連する第1のワイヤレスネットワークとは異なる、利用可能な第2のワイヤレスネットワークをスキャンするための手段と、 前記利用可能な第2のワイヤレスネットワークを検出すると、前記第2のワイヤレスインターフェースをアクティブ化するための手段と、をさらに備える、請求項34に記載の装置。トリガイベントを検出すると、前記第2のワイヤレスインターフェースを非アクティブ化するための手段をさらに備える、請求項34に記載の装置。前記トリガイベントを検出することは、 前記少なくとも1つのソケットコールが実行されたものと決定するための手段をさらに備える、請求項36に記載の装置。前記第2のワイヤレスインターフェースがアクティブになることに関する通知をディセーブルするための手段をさらに備える、請求項34に記載の装置。モバイルデバイス上でアプリケーションからのソケットコールを管理するためのコンピュータプログラムであって、 コンピュータに、第1のワイヤレスインターフェースがオペレーティングシステムにおいてアクティブである間、少なくとも1つのソケットコールを、モバイルデバイスにおけるソケット層に到達することからインターセプトさせるためのコードと、なお、前記第1のワイヤレスインターフェースは常時接続インターフェースである、 前記コンピュータに、前記少なくとも1つのインターセプトされたソケットコールを前記ソケット層にリリースすることを決定することに基づいて、前記オペレーティングシステムにおける第2のワイヤレスインターフェースをアクティブ化させるためのコードと、 前記コンピュータに、前記少なくとも1つのインターセプトされたソケットコールを、前記アクティブ化された第2のワイヤレスインターフェース上の前記ソケット層にリリースさせるためのコードと、 を備え、 前記インターセプトさせること、前記アクティブ化させること、及び前記リリースさせることは、前記モバイルデバイスがアイドルモードにある期間中に実行される、 コンピュータプログラム。

说明书全文

関連出願

本特許出願は、本特許の譲受人に譲渡され、参照により本明細書に明確に組み込まれた、2011年4月22日に出願された、代理人整理番号111565P1を有する、Arnaud Meylanの「POWER EFFICIENT OFFLOADING OF DATA IN STANDBY TO WIRELESS LOCAL AREA NETWORK(WLAN)」と題する米国特許出願第61/478,123号の優先権の利益を主張する。

広範囲にわたるアドオンのサービスと特徴とをワイヤレスデバイスに提供するように動作するアプリケーションまたはデバイスアプレット(device applet)が、現在、利用可能である。たとえば、現在、ワイヤレスデバイスは、買物、探索、位置特定、運転ナビゲーション、または各種の他の機能などの付加価値機能を実施するために、デバイスアプレットをダウンロードして起動することが可能である。したがって、デバイスアプレットを使用することで、ワイヤレスデバイスの機能性と使用性とが高まり、デバイス自体では本来利用できない特徴と利便性とをデバイスユーザに与えることができる。

ワイヤレスデバイスは、1つまたは複数の通信ネットワークとインターフェース接続することができる。たとえば、ワイヤレスデバイスは、セルラー、WiFi、Bluetooth(登録商標)、または他のタイプの無線アクセス技術を使用する通信を提供する多様な無線を含むことができる。したがって、ワイヤレスデバイス上で実行するアプリケーションは、通信チャネルを確立するために無線とインターフェース接続し、適切なネットワークと通信するために、チャネルがアプリケーションによって使用され得る。

アプリケーションは、デバイスがアイドルモードにあるときにも、通信チャネルを確立するために、ワイヤレスデバイス上で無線とインターフェース接続することを継続することができる。セルラーインターフェースは、デバイスがアイドル状態にある間、低い電消費率をもたらし得る一方で、WiFiインターフェースは、デバイスが、セルラーインターフェースより低い電力消費率でデータを転送することを可能にする。デバイス上にインストールされるアプリケーションの数が増加するにつれて、セルラーデータネットワークは、通信チャネルのセットアップに関連するネットワークシグナリングによって過負荷になることがある。

モバイルデバイス上にインストールされたアプリケーションからのソケットコールをインターセプトするための方法、システムおよびデバイスを説明する。いくつかの実施形態では、第1のワイヤレスインターフェース(たとえば、セルラーインターフェース)はアクティブである。インターセプトされたソケットコールをソケット層にリリースすることを決定すると、第2のワイヤレスインターフェース(たとえば、ワイヤレスローカルエリアネットワーク(WLAN)インターフェース)がアクティブ化される。ソケットコールがソケット層にリリースされ、アクティブ化された第2のワイヤレスインターフェースを使用して送信される。ソケットコールを実質的に完了すると、第2のワイヤレスインターフェースは非アクティブ化される。ソケットコールのインターセプトおよび第2のワイヤレスインターフェースのアクティブ化は、モバイルデバイスがアイドルモードにある間に発生する。

一実施形態では、第2のワイヤレスインターフェースをアクティブ化することは、利用可能な第2のワイヤレスネットワークに対してスキャンすることを含むことができる。第2のネットワークは、第1のワイヤレスネットワークと異なってもよい。第1のワイヤレスネットワークは、第1のワイヤレスインターフェースと関連付けられ得る。利用可能な第2のワイヤレスネットワークを検出すると、第2のワイヤレスインターフェースがアクティブ化され得る。

一例では、第2のワイヤレスインターフェースは、トリガイベントを検出すると非アクティブ化され得る。トリガイベントを検出することは、少なくとも1つのソケットコールが実質的に実行されたものと決定することを含むことができる。一構成では、トリガイベントを検出することは、タイマーが実質的に終了したものと決定することを含むことができる。

一実施形態では、第1のワイヤレスインターフェースは、第2のワイヤレスインターフェースがアクティブ化された状態にある期間中、アクティブ化された状態を維持され得る。第1のワイヤレスインターフェースはまた、第2のワイヤレスインターフェースが非アクティブ化された状態にある期間中、アクティブ化された状態を維持され得る。

一構成では、第2のワイヤレスインターフェースがアクティブ化されていると決定することに実質的にもとづいて、第1のワイヤレスインターフェースは非アクティブ化され得る。第2のワイヤレスインターフェースが非アクティブ化されていると決定することに実質的にもとづいて、第1のワイヤレスインターフェースは再アクティブ化され得る。

一例では、第2のワイヤレスインターフェースがアクティブになることに関する通知が、ディセーブルされ得る。たとえば、第1のワイヤレスインターフェースを介して持続的な伝送制御プロトコル(TCP)接続を有する1つまたは複数のアプリケーションが、識別され得る。1つまたは複数のアプリケーションは、第2のワイヤレスインターフェースがアクティブになることに関する通知を受信することを防止され得る。1つまたは複数のアプリケーションが通知を受信することを防止することは、第2のワイヤレスインターフェースがアクティブになることに関する通知をインターセプトすることと、その通知を廃棄することとを含むことができる。1つまたは複数のアプリケーションが通知を受信することを防止することはまた、1つまたは複数のアプリケーションから生じ、第2のワイヤレスインターフェースに宛てられたトラフィックを廃棄することを含むことができる。

一実施形態では、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースすることを決定することは、リリーストリガイベントの発生を検出することを含むことができる。リリーストリガイベント(releasing triggering event)は、タイマーの終了、ディスプレイのステータス変化、マイクロフォンのステータス変化、スピーカのステータス変化、モバイルデバイスの全地球測位システム(GPS)センサのステータス変化、ユニバーサルシリアルバスポートが使用中であることの表示、オーディオ機器がモバイルデバイスに接続されていることの表示、ビデオ機器がモバイルデバイスに接続されていることの表示、ソケットコールの最大数の受信、またはワイヤレスローカルエリアネットワーク(WLAN)が完成したことの表示のうちの少なくとも1つを含むことができる。

一例では、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースすることを決定することは、少なくとも1つのソケットコールをクリティカルアプリケーションとして発したアプリケーションを識別することを含むことができる。少なくとも1つのインターセプトされたソケットコールをソケット層にリリースすることを決定することはまた、少なくとも1つのインターセプトされたソケットコールが許容度(tolerance)しきい値より下の遅延許容度を持つものと決定することを含むことができる。

一構成では、ラッパー(wrapper)に対する命令が実行され得る。実行されるラッパーは、少なくとも1つのソケットコールのインターセプトを実施することができる。ラッパーは、モバイルデバイスのオペレーティングシステムのアプリケーション層(application layer)とソケット層(socket layer)との間に位置することができる。一実施形態では、ラッパーによって実施される動作は、ソケット層内に埋め込まれ得る。

ワイヤレス通信のために構成されるモバイルデバイスを、同様に説明する。デバイスは、プロセッサと、このプロセッサと電子的に通信しているメモリとを含むことができる。メモリは、オペレーティングシステムを含むことができる。プロセッサは、アプリケーション接続性エンジン(application connectivity engine)を含むことができる。エンジンは、第1のワイヤレスインターフェースがアクティブである間、少なくとも1つのソケットコールがモバイルデバイスにおけるソケット層に到達することをインターセプトするための命令を実行するように構成され得る。エンジンは、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースすることの決定に実質的にもとづいて、第2のワイヤレスインターフェースをアクティブ化するための命令を実行するようにさらに構成され得る。加えて、エンジンは、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースし、アクティブ化された第2のワイヤレスインターフェースを使用して、リリースされたソケットコールを送信するための命令を実行するように構成され得る。

モバイルデバイス上のアプリケーションからのソケットコールを管理するように構成される装置を、同様に説明する。装置は、第1のワイヤレスインターフェースがアクティブである間、少なくとも1つのソケットコールが、モバイルデバイスにおけるソケット層に到達することをインターセプトするための手段を含む。装置は、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースすることを決定することに実質的にもとづいて、第2のワイヤレスインターフェースをアクティブ化するための手段をさらに含むことができる。装置は、アクティブ化された第2のワイヤレスインターフェースを使用して、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースするための手段と、リリースされたソケットコールを送信するための手段とをさらに含むことができる。

モバイルデバイス上のアプリケーションからのソケットコールを管理するように構成されるコンピュータプログラム製品を、同様に説明する。製品は、非一時的コンピュータ可読媒体を含むことができる。媒体は、第1のワイヤレスインターフェースがアクティブである間、少なくとも1つのソケットコールが、モバイルデバイスにおけるソケット層に到達することをインターセプトするためのコードを含むことができる。媒体は、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースすることの決定に実質的にもとづいて、第2のワイヤレスインターフェースをアクティブ化するためのコードをさらに含むことができる。加えて、媒体はまた、アクティブ化された第2のワイヤレスインターフェースを使用して、少なくとも1つのインターセプトされたソケットコールをソケット層にリリースするためのコードと、リリースされソケットコールを送信するためのコードとを含むことができる。

上記は、本開示による例の特徴と技術的側面とをかなり広く概説した。以下で、追加の特徴について説明する。開示する概念および具体例は、本開示の同じ目的を実行するために他の構造を変更または設計するための基礎として容易に利用され得る。そのような等価な構成は、添付の特許請求の範囲の趣旨および範囲から逸脱しない。本明細書で開示する概念の編成と動作の方法の両方に関して、それらの概念を特徴づけると考えられる特徴は、添付の図に関連して以下の説明を検討するとより良く理解されよう。図のそれぞれは、例示および説明のみの目的で提供され、特許請求の範囲の制限を定めるものではない。

以下の図面を参照すれば、本発明の性質のさらなる理解が得られ得る。添付の図において、同様の構成要素または特徴は同じ参照ラベルを有し得る。さらに、同じタイプの様々な構成要素は、ダッシュによる参照ラベルと、それらの同様の構成要素同士を区別する第2のラベルとを見ることによって区別され得る。第1の参照ラベルのみが明細書において使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のうちのいずれにも適用可能である。

ネットワーク環境のブロック図。

モバイルデバイスのためのアーキテクチャを示すブロック図。

モバイルデバイスのアーキテクチャの別の例を示す図。

インターセプトされた要求をリリースすることを決定すると、ワイヤレスインターフェースのアクティブ化を実施するモバイルデバイスのブロック図。

第1のワイヤレスインターフェースがアクティブである間にネットワークアクセスについての要求をインターセプトすることと、要求をオペレーティングシステムにリリースすることを決定すると、第2のワイヤレスインターフェースをアクティブ化することとに有用なモバイルデバイス上のアーキテクチャのサンプルブロック図。

ソケットコールの同期リリースと、ワイヤレスローカルエリアネットワーク(WLAN)インターフェースのイネーブル化とのタイミング図。

ネットワークアクセスについての要求をインターセプトして保持し、要求がリリースされるべきときにワイヤレスインターフェースをアクティブ化するための方法の一例を示すフローチャート。

ネットワークアクセスについての要求をインターセプトし、デバイスがアイドルモードにあるときに第2のワイヤレスインターフェースを確立するための方法の一例を示すフローチャート。

どのワイヤレスネットワークを通信のために使用するかを決定するための方法の一構成を示すフローチャート。

持続的な伝送制御プロトコル(TCP)接続を維持するための方法の一構成を示すフローチャート。

詳細な説明

第1のワイヤレスインターフェースがアクティブである間に、モバイルデバイス上にインストールされたアプリケーションから出される要求をインターセプトするための方法、システムおよびデバイスを説明する。モバイルデバイス上で実行するオペレーティングシステム(OS)は、第1のインターフェースを、アクティブであるものとしてアプリケーションに提供することができる。アクティブなインターフェースは、無線接続が第1のネットワーク上で確立されるために利用可能であることを、アプリケーションに示すことができる。

インターセプトされる要求は、モバイルデバイスに対する通信チャネルを確立するためのシステムコールまたはソケットコールであってよい。「要求」、「システムコール」および「ソケットコール」という用語は、本明細書では互換的に使用されることがある。要求は、キャプチャされ、モバイルデバイス上で実行しているOSに到達することを阻止され得る。たとえば、要求は、OSの伝送制御プロトコル/インターネットプロトコル(TCP/IP)スタックに到達することを阻止され得る。

スマートフォン、携帯情報端末などのモバイルデバイスでは、ユーザがデバイスをアクティブに使用していない(たとえば、デバイスがアイドルモードにある)にもかかわらず、ソフトウェアアプリケーションは動作を継続することができる。モバイルデバイスは、デバイスのいくつかの入力が動作可能でないかまたはスリープ状態にあるときに、アイドルモードにあることができる。デバイスは、ユーザがデバイスを使用していないときに、バックグラウンドモード(すなわち、アイドルモード)にあるものと見なされ得る。たとえば、オーディオ入力(マイクロフォンなど)がオフのとき、デバイスはアイドルモードにあることがある。加えて、視覚的入力(デバイスのディスプレイなど)がオフのとき、デバイスはアイドルモードにあるものと決定され得る。以下で説明するように、モバイルデバイスがアイドルモードにあるか否かを決定するために、追加の入力が使用され得る。

ソーシャルネットワーキングアプリケーション、電子メールまたは他の通信アプリケーション、データフィードなどのアプリケーション(普及している例には、フェイスブック(登録商標)、Gメール(登録商標)、ツイッター(登録商標)などが含まれる)は、ユーザがデバイスを使用していないにもかかわらず、データを送信および受信することを継続することができる。動作の非アクティビティモード(たとえば、アイドルモード)の下でさえ、アクティビティにおける電力消費およびスパイクが、デバイスが表面上は使用されていない場合でも、動作を継続しているアプリケーションによって発生することがある。これらのアプリケーションによるアクティビティは、外部ネットワークによって提供されるような通信リソースを利用することができる。このことは、外部ネットワーク上のシグナリングの望ましくない増加を生じ、そのことがネットワークの性能に悪影響を及ぼすことがある。

モバイルデバイス上にインストールされている最近のオペレーティングシステムは、「常時接続(always-on)」セルラー無線インターフェースを有するアプリケーションを提供することができる。「常時接続」インターフェースは、デバイスがアイドルモードにある場合でも、任意のときにセルラーデータネットワーク上に、アプリケーションが無線接続(たとえば、通信チャネル)の確立を要求し得ることを、アプリケーションに提示することができる。「常時接続」インターフェースは、モバイルデバイスが、デバイス上で実行しているアプリケーションのセットによって非同期的にトリガされる頻繁な無線接続によってセルラーデータネットワークを過負荷にさせるということを、引き起こす可能性がある。

デバイスがアイドルモードにある間、ユーザは、様々なアプリケーションデータの更新における遅延を許容することができる。したがって、様々なアプリケーションからのソケットコールは、OSまたはOS内のソケット層に到達することをインターセプトされ、阻止され得る。次いで、ソケットコールは、同期方式でOS(またはOS内のソケット層)にリリースされ得る。ソケットコールを同期式にリリースすることで、いくつかのアプリケーションがそれらの情報を同期して更新し得るので、無線接続の改善された利用を可能にすることができる。

本システムおよび方法によって対処される相補的手法は、アプリケーションのためのデータ更新を移送するために、データをモバイルデバイスに送信し/モバイルデバイスからから受信するために、セルラー無線ではなくワイヤレスローカルエリアネットワーク(WLAN)を使用することを含むことができる。いくつかの例では、アプリケーションは、OSによって提供されるセルラーインターフェースを介してセルラーネットワーク上でデータを送信/受信する。本システムおよび方法によれば、デバイスがアイドルモードにある間、アプリケーションは代わりに、WLANインターフェース上でWLANにわたるデータを送信/受信することができる。WLANインターフェースは、モバイルデバイス上のOSによってアプリケーションに対してアクティブ化され提供され得る。

いくつかの実施形態では、デバイスがアイドルモードにある間にモバイルデバイス上にインストールされているいくつかのアプリケーションがセルラーネットワークへのアクセスを要求する場合、不必要な量のネットワークシグナリングが発生することがある。たとえば、OSは、セルラーインターフェースを「常時接続」インターフェースとして提供することがある。第1のアプリケーションが、アクティブ化されたセルラーインターフェースを見て、セルラーネットワーク上に通信チャネルの確立を必要とするソケットコールを開始することがある。データが送信/受信された後、チャネルは中断され得る。第2のアプリケーションもまた、「常時接続」セルラーインターフェースを見て、同様に、通信チャネルを確立してセルラーネットワーク上でデータを送信/受信するために、ソケットコールを開始することがある。通信チャネルが確立されるたびに、ネットワークシグナリングの量が増加し、それによりネットワークの利用可能帯域幅が減少することがある。その結果、本システムおよび方法は、デバイスがアイドルモードにあるとき、セルラーネットワークへのアクセスについての要求をインターセプトすることができる。インターセプトされたOSへの要求をリリースすることが決定されると、WLANインターフェースがアクティブ化され得る。要求は、(セルラーインターフェースではなく)WLANインターフェース上で送信され得る。要求が実質的に実行されると、WLANインターフェースは、デバイスのバッテリー電力を温存するために非アクティブ化され得る。

以下の説明は、例を与えるものであり、特許請求の範囲において記載される範囲、適用性、または構成を限定するものではない。本開示の趣旨および範囲から逸脱することなく、説明される要素の機能および構成において変更が行われ得る。様々な実施形態は、適宜、様々な手順または構成要素を省略、代用、または追加し得る。たとえば、説明される方法は、説明される順序と異なる順序で実行され得、様々なステップが追加、省略、または組み合わせられ得る。また、いくつかの実施形態に関して説明される特徴は、他の実施形態において組み合わせられ得る。

次に図1を参照すると、ブロック図が、ワイヤレスネットワーク環境100の例を示す。ネットワーク環境100は、モバイルデバイス105と通信ネットワーク115とを含むことができる。デバイス105は、いくつかの無線チャネル110−aを使用してネットワーク115と通信することができる。たとえば、制御チャネル110−a−1が、デバイス105とネットワーク115との間に確立され得る。加えて、他のタイプのチャネル110−a−2〜110−a−nもまた確立され得る。これらの他のタイプのチャネルは、データチャネル、音声チャネルなどを含むことができる。

動作中に、デバイス105は、いくつかの無線のいずれかを使用してネットワーク115とインターフェースし得るアプリケーションを実行することができる。たとえば、アプリケーションは、ネットワーク115の中のホストとの通信を確立するための要求を出すことができる。一例では、要求は、ソケット層コールなどのネットワーキングシステムコールであってよい。要求は、デバイス105上のOSのソケット層を対象とすることができる。従来のデバイスは、一般的には、これらのタイプの要求がOSに直接進んで処理されることを可能にする。要求を受信すると、従来のデバイスは、データ接続セットアッププロシージャによって制御チャネル110−a−1を確立するために、ネットワークシグナリング処理を開始する。データ接続セットアッププロシージャがモバイルデバイス105上で実行されると、ネットワーク上のシグナリングのレベルが増加してバッテリー電力が消費されることがある。このことが、ネットワーク115およびモバイルデバイス105の効率を低下させることがある。

一構成では、デバイス105は、第1のワイヤレスインターフェースがアクティブである間、要求がOSに到達することをインターセプトしてキャプチャするためのアーキテクチャを含むことができる。このアーキテクチャは、セルラーネットワークアクセスについての要求など、アプリケーションからのネットワークアクセスについての要求をインターセプトすることができる。要求をインターセプトすると、アーキテクチャは、要求がOSのTCP/IPスタックに到達することを阻止するかまたは遅延させることができる。TCP/IPスタックは、OSに組み込まれ得、ネットワーク上でデータを送信するための規格をOSに与える通信プロトコルを含むことができる。要求をOSにリリースすることの決定に実質的にもとづいて、アーキテクチャは、第2のワイヤレスインターフェースをアクティブ化することができる。インターセプトされた要求は、他のインターセプトされた、追加のアプリケーションから受信したネットワークアクセスについての要求とアグリゲートされ得る。アグリゲートされた要求は、一緒に束ねられ、同期方式でOS内のソケット層にリリースされ得る。一実施形態では、アグリゲートされた要求は、同期方式でOSにリリースされ得る。次に、要求は、第2のワイヤレスインターフェースを使用して送信され得る。一例では、要求は、特定のイベントが発生する(たとえば、モバイルデバイスがアクティブになる)とリリースされ得る。一構成では、インターセプト、決定、アクティブ化、およびリリースに関して上記で説明したアーキテクチャは、デバイス105がアイドルモードにあるときに使用され得る。

図2は、モバイルデバイス105−aの一例200を示す。モバイルデバイス105−aは、図1のモバイルデバイス105の一例であってよい。一構成では、デバイス105−aは、インターセプトモジュール205と、アクティブ化モジュール210と、リリースモジュール215と、OS 220とを含むことができる。インターセプトモジュール205は、アプリケーションからの要求がOS 220に到達することをインターセプトすることができる。要求は、第1のワイヤレスインターフェースがアクティブ化され、デバイス105−aがアイドルモードにある間にインターセプトされ得る。要求は、ソケットコールなどのシステムアクセスコールを含むことができる。インターセプトされ得るソケットコールの例は、connect()、send()、sendto()、gethostbyname()などを含む。connect()ソケットコールは、TCP接続など、ネットワーク上に通信チャネルを確立するために、モバイルデバイス105−aによる試行を開始することができる。

一例では、アクティブ化モジュール210は、インターセプトされた要求がOS 220にまたはOS 220内のソケット層に、いつリリースされるべきかを決定することができる。要求をリリースすることを決定することに実質的にもとづいて、アクティブ化モジュール210は、第2のワイヤレスインターフェースをアクティブ化することができる。たとえば、アクティブ化モジュール210は、WLANインターフェースをアクティブ化することができる。リリースモジュール215は、WLANインターフェースがアクティブ化されたときに要求をリリースすることができる。

要求をリリースすることの決定は、1つまたは複数のファクタに基づくことができる。一実施形態では、インターセプトされた要求をリリースすることの決定は、要求がOS 220に到達してから、またはOS 220内のソケット層に到達してから保持または遅延されていた時間の長さを表すタイマーの終了を検出することを含むことができる。要求はまた、キュー(queue)内に保持されているインターセプトされた要求の最大数を検出するとリリースされ得る。一構成では、要求は、クリティカルアプリケーションがOS 220への要求を出したことを検出するとリリースされ得る。クリティカルアプリケーションは、遅延許容度がほとんどまたはまったくないアプリケーションであってよい。その結果、これらのアプリケーションから生じる要求は、低い遅延許容度を持つことがある。クリティカルアプリケーションの例には、限定はしないが、自動追尾アプリケーション、緊急ベースのアプリケーション、申し込みベースのアプリケーションなどが含まれることがある。一構成では、クリティカルアプリケーションから送られた要求は、インターセプトモジュール205によってインターセプトされた後、OS 220に到達することを阻止(または遅延)されるのではなく、オペレーティングシステムのソケット層に直接進むことができる。加えて、一定のしきい値より下の遅延許容度を有する要求は、インターセプトされた後、OS 220に到達することを遅延されないことがある。たとえば、クリティカルでないアプリケーションは、インターセプトされる要求を出すことができる。アプリケーションがクリティカルでないとしても、特定の要求は、遅延許容度を持たないことがある(たとえば、アプリケーションへのクリティカルな更新)。その結果、要求は、インターセプトされた後、直ちにOS 220にリリースされ得る。

追加のファクタが、インターセプトされた要求を、いつリリースしてネットワークへのアプリケーション接続性を許可するかを決定するために使用され得る。たとえば、(遅延され得ない緊急のアプリケーションなど、クリティカルアプリケーションからシステムコールを受信するなど)データ接続セットアッププロシージャを確立するためのトリガが存在する場合、インターセプトされた要求はOS 220にリリースされ、それにより通信チャネルが緊急のアプリケーションに関連して確立され得る。別の例では、インターセプトされた要求は、OS 220内のソケット層にリリースされ得る。要求はまた、無線チャネルの品質がしきい値(たとえば、高い信号強度、SNR、または他の望ましいパフォーマンスメトリック)を満足する場合にリリースされ得る。要求は、あらかじめ決定されたように、またはモバイルデバイス105−aによって選択的に決定されたように、周期的にリリースされてよい。要求をリリースすることを決定するための別のヒューリスティック(heuristic)は、ユーザが、(彼/彼女がスクリーンをオンにする前に)デバイスを匿名で動作させるために、デバイスに接近するときであってよい。この例では、加速度計が、ユーザがデバイス105−aを把持することを検出するか、またはユーザ近接センサが、ユーザが接近していることを示すことができる。別の態様では、バッテリーで動作している間、要求は、(たとえば、PINが正しく入力された後)スクリーンがアンロックされているときに、リリースされることを決定され得る。この態様では、要求は、(たとえば、デバイス105−aが財布またはポケットの中にあって)ランダムにボタンが押されるときはリリースされ得ない。

一例では、デバイス105−aのディスプレイのステータス変化が、保持された要求をリリースすることの決定における一ファクタとなり得る。たとえば、ディスプレイは、「オフ」状態から「オン」状態に変化することができる。マイクロフォンのステータス変化(オフからオンへ)もまた、インターセプトされた要求をリリースすることの決定における一ファクタとなり得る。さらに、別のファクタは、全地球測位システム(GPS)センサのステータス変化を検出することを含むことができる。たとえば、センサは、モバイルデバイス105−aの運動を検出したときに状態を変更することができる。インターセプトされた要求をいつリリースするかを決定するために使用される追加のファクタには、ユニバーサルシリアルバスポートが使用中であることの表示、またはオーディオ機器がデバイス105−aに接続されていることの表示が含まれ得る。加えて、ビデオ機器がモバイルデバイス105−aに接続されていることの表示もまた、モバイルデバイス105−aのOS 220に要求をリリースすることを決定するファクタとして働くことができる。さらに、一定のネットワークへの接続が利用可能であることの表示が、要求のリリースをトリガすることができる。たとえば、接続がWi−Fiタイプのネットワークに対するものであることの表示が、要求をリリースさせ得る。同様に、セルラーネットワークへの無線接続がすでにオープンであることの表示もまた、デバイス105−aのOS 220への要求のリリースをトリガすることができる。さらに別の態様では、要求は、上記または他のファクタの何らかの組合せに従ってリリースされてよい。上記の説明は、アプリケーションプログラミングインターフェース(API)アーキテクチャに関するが、その概念は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの任意の組合せに等しく適用することができる。

図3は、図1または図2のモバイルデバイス105の一例であり得る、モバイルデバイス105−bのアーキテクチャ300の一例を示す。デバイス105−bのアーキテクチャ300は、アプリケーション接続性エンジン310を含むことができる。接続性エンジン310は、デバイス105−b上のアプリケーション層305内で実行しているアプリケーションが図1のネットワーク115などのネットワークに、いつアクセスできるかを管理することができる。アプリケーション層305は、様々な機能を提供し、無線ユニット325の無線330−aのうちの1つまたは複数を使用して、ネットワーク115などの外部ネットワークと通信することを実行するアプリケーションを含むことができる。

本明細書で開示する技法と構造とを使用して、モバイルデバイス105−bは、アプリケーションからシステムコールまたはソケットコールをキャプチャし、それらがOS 220−aに到達することを阻止するために、アプリケーションプログラムインターフェース(API)を提供するソフトウェア層(説明のためにラッパー315と呼ぶ)を使用することができる。一構成では、アプリケーション接続性エンジン310は、ラッパー315を実行することができる。一例では、ラッパー315は、アプリケーション層305内のアプリケーションから生じるネットワークアクセスについての要求(たとえば、システムコール、ソケットコールなど)をインターセプトすることができる。一実施形態では、ラッパー315は、図2のインターセプトモジュール205を含むことができる。ラッパー315は、要求がデバイス105−b上で実行しているOS 220−aに到達することを遅延させることができる。OS 220−aは、アクティブ化された第1のワイヤレスインターフェースをアプリケーションに提供することができる。ラッパー315は、インターセプトされた要求をキュー内に保持し、それらがOS 220−aに到達することを防止することができる。ラッパー315は、インターセプトされた要求を、追加のアプリケーションからインターセプトされた他の要求とアグリゲートすることができる。ラッパー315は、要求がオペレーティングシステム220−aのソケット層320に到達することを阻止するかまたは遅延させることができる。ネットワークアクセスについての要求がソケット層320に到達すると、無線330−aのうちの1つまたは複数を使用して通信チャネルを確立するための処理が、インターフェースによって開始され得る。たとえば、第1のワイヤレスインターフェースは、セルラーインターフェースであってよい。セルラーインターフェースがアクティブであるときにソケットコールがリリースされると、セットアッププロシージャが、セルラーネットワークとの無線接続を確立するために開始され得る。セットアッププロシージャは、セルラーネットワークの利用可能な帯域幅を低減するシグナリング技法を含むことができる。

ソケット層320は、要求を処理し、要求を開始したアプリケーションとネットワーク115との間の接続を確立するために、接続セットアッププロシージャを開始することを特定の無線に通知することができる。たとえば、ソケット層320は、特定のアプリケーションと無線、たとえば無線1 330−a−1との間のバインディングを確立するために、コール(または要求)を出すことができる。無線1 330−a−1は、制御チャネルを確立することによって接続セットアッププロシージャを開始するために、ネットワーク115に信号を送信することを開始することができ、そのことは、図1の制御チャネル110−a−1の一例であり得る。

要求がソケット層320にリリースされることを実質的に決定されると、OS 220−aは、(要求がリリースされる前に)第2のワイヤレスインターフェースをアクティブ化することができる。たとえば、OS 220−aは、第2のワイヤレスインターフェースをアクティブ化するために図2のアクティブ化モジュール210を含むか、またはそのモジュール210に第2のワイヤレスインターフェースをアクティブ化させることができる。ラッパー315は、図2のリリースモジュール215を含み得、第2のワイヤレスインターフェースがアクティブであることを通知されると、ラッパー315は、インターセプトされた要求をOS 220−aのソケット層320にリリースすることができる。データは、第2のワイヤレスインターフェースを介して第2のワイヤレスネットワークを使用してアプリケーションへ/から送信され得る。第2のワイヤレスネットワークの一例は、WLANを含むことができる。

したがって、デバイスアーキテクチャ300は、第1のワイヤレスインターフェースがアクティブである間にネットワークにアクセスするための要求をインターセプトすることと、要求をOS 220−aにリリースすることを決定すると第2のワイヤレスインターフェースをアクティブ化することと、要求をOS 220−aにリリースすることとを提供する。第2のワイヤレスインターフェースのアクティブ化は、セルラーインターフェース上の要求のリリースを伴う、セルラーネットワーク上のネットワークシグナリングを低減することを助けることができる。

図4は、インターセプトされた要求をリリースすることを決定すると、第2のワイヤレスインターフェースのアクティブ化を実施するモバイルデバイス105−cのブロック図400を示す。デバイス105−cは、図1、図2または図3デバイス105の一例であってよい。デバイス105−cは、通信バス415を使用して通信するためにすべて結合されたメモリ405と、プロセッサ410と、アプリケーション層305と、ラッパー315と、アプリケーション接続性エンジン310と、OS 220−bと、無線ユニット325とを含むことができる。メモリ405は、アプリケーション層305と、ラッパー315と、オペレーティングシステム220−bとを記憶することができる。プロセッサ410は、アプリケーション接続性エンジン310を含むことができる。接続性エンジン310は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理回路、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せとして実装され得る。接続性エンジン310は、第1のワイヤレスインターフェースがアクティブである間にモバイルデバイス上のアプリケーションからのソケットコールをインターセプトするための手段と、ソケットコールがモバイルデバイス上のOS 220−b内のソケット層に到達することを阻止するための手段と、ソケットコールをリリースすることを実質的に決定すると第2のワイヤレスインターフェースをアクティブ化するための手段と、OS 220−b内のソケット層に要求をリリースするための手段とを含むことができる。さらに、接続性エンジン310は、ソケットコールを、他のインターセプトされた、モバイルデバイス105上にインストールされた追加のアプリケーションからのソケットコールとアグリゲートし、アグリゲートされたソケットコールをOS 220−b内のソケット層に同期方式でリリースするための手段を含むことができる。接続性エンジン310はまた、図3または図4のラッパー315を実行するための手段を含むことができる。実行されたラッパーは、アプリケーションからの要求をインターセプトすることができる。加えて、エンジン310は、アプリケーションを、ソケットコールが出されるアプリケーションのクラスとして識別するための手段を含むことができる。さらに、接続性エンジン310は、アプリケーションをクリティカルアプリケーションまたはクリティカルでないアプリケーションとして識別するための手段と、第2のワイヤレスインターフェースがアクティブ化されるまでクリティカルでないアプリケーションからのソケットコールを遅延させるための手段とを含むことができる。デバイス105−cは、単なる1つの実装形態にすぎず、他の実装形態が可能であることに留意されたい。

一態様では、プロセッサ410は、中央処理装置(CPU)、プロセッサ、ゲートアレイ、ハードウェア論理回路、メモリ要素、および/またはソフトウェアを実行するハードウェアのうちの少なくとも1つを含む。プロセッサ410は、デバイス105−cの動作を制御するように動作し、それにより、アプリケーション層305で実行しているアプリケーションによって開始されたネットワークアクセスについてのシステムコールが、第2のワイヤレスインターフェースがアクティブ化されるまでOS 220−bに到達することを阻止され得、次いでOS 220−bにリリースされるかまたはOS 220−b内のソケット層にリリースされ得る。一実装形態では、プロセッサ410は、いくつかの機能のうちのいずれかを実施することに関連するコンピュータ可読命令を実行することができる。たとえば、プロセッサ410は、要求のインターセプトと第2のワイヤレスインターフェースのアクティブ化とを実現するために、デバイス105−cから受信または伝達された情報を分析するように動作することができる。別の態様では、プロセッサ410は、インターセプトされた要求をOS 220−bにリリースすることを決定すると、第2のワイヤレスインターフェースのアクティブ化を実現するために、メモリ405、無線ユニット325、アプリケーション層305、ラッパー315、OS 220−b、および/またはアプリケーション接続性エンジン310によって利用され得る情報を生成するように動作することができる。

無線ユニット325は、デバイス105−cを、いくつかのチャネル110−aを使用する外部通信ネットワークなど、いくつかの外部エンティティとインターフェース接続するために使用され得る、いくつかの無線/インターフェースを提供し得る、ソフトウェアを実行するハードウェアおよび/またはプロセッサを含むことができる。たとえば、無線ユニット325は、セルラー、WLAN、WiFi、Bluetooth(登録商標)、またはチャネル110−aを使用して通信ネットワークと通信する任意の他の技術を使用して通信するための無線/インターフェースを提供することができる。

アプリケーション層305は、デバイス105−c上の1つまたは複数のアプリケーションを記憶および/または実行し得るソフトウェアを実行するハードウェアおよび/またはプロセッサを含むことができる。一実装形態では、アプリケーション層305は、アプリケーションが、外部ネットワークまたはシステムと通信するために無線/インターフェースとの接続を要求することなど、ネットワークサービスを要求するためにネットワーキング機能コールを開始することを可能にさせ得る。

OS 220−bは、ソケット層を含むことができる。ソケット層は、ソケット層機能を実施し得るソフトウェアを実行するハードウェアおよび/またはプロセッサを含むことができる。一実装形態では、ソケット層機能は、connect()、bind()、およびsetsockopt()のような機能を含むことができる。connect()機能は、特定の無線/インターフェースを使用して2つのホスト間の接続を確立するように動作する。たとえば、特定の無線/インターフェースは、無線ユニット325によって提供されるいくつかの候補無線から選択され得る。一態様では、ソケット層は、多様なソケット層機能またはコマンドを実施することができる。OS 220−bはまた、ワイヤレスインターフェース420−a〜420−nのうちのいくつかを含むことができる。前に説明したように、OS 220−bは、様々なインターフェースをアクティブ化/非アクティブ化することができる。データは、アクティブ化されたワイヤレスインターフェースのうちの少なくとも1つを使用して、デバイス105−cから送信され/デバイス105−cによって受信され得る。ワイヤレスインターフェースの例は、セルラーインターフェース、WLANインターフェースなどを含むことができる。

アプリケーション接続性エンジン310は、モバイルデバイス105−c上で実行しているアプリケーションからの、ネットワークアクセスについての要求をラッパーにインターセプトさせるように、ラッパー315を実行し得るソフトウェアを実行するハードウェアおよび/またはプロセッサを含むことができる。ラッパー315はまた、インターセプトされた要求がOS 220−bに到達することを遅延させることができる。OS 220−bはWLANインターフェースなど、第2のワイヤレスインターフェースをアクティブ化することができ、ラッパー315は、保持された要求をOS 220−bにリリースすることができる。

接続性エンジン310は、ラッパー315に、ネットワークアクセスについての要求を様々な方法でキャプチャおよび保持させることができる。エンジン310はまた、OS 220−bに、要求をリリースすることを決定すると、第2のワイヤレスインターフェースをアクティブ化させることができる。一例では、エンジン310は、図2のアクティブ化モジュール210に、WLANなど、利用可能なワイヤレスネットワークに対するスキャンを実施させることができる。利用可能なWLANを検出すると、アクティブ化モジュール210は、WLANとの無線接続を確立することができる。接続が確立されると、OS 220−bは、WLANインターフェースアクティブ化して、アプリケーションに提供することができる。インターセプトされた要求が、OS 220−bにリリースされ得る。要求は、OS 220−bのソケット層にリリースされ得る。ソケット層は、要求を発したアプリケーションと、サーバなど、WLANインターフェースを使用するリモートデバイスとの間で確立された無線接続を介して通信を実施するためのプロシージャを開始することができる。

メモリ405は、RAM、ROM、EEPROM、またはデバイス105−cにおいて情報を記憶および検索することを可能にするように動作する任意の他のタイプのメモリデバイスを含むことができる。一実装形態では、メモリ405は、プロセッサ410によって実行されるコンピュータ可読命令を記憶することができる。メモリ405はまた、プロセッサ410、無線ユニット325、アプリケーション層305、ラッパー315、OS 220−b、および/またはアプリケーション接続性エンジン310のいずれかによって生成されるデータを含むいくつかの他のタイプのデータのいずれかを記憶することができる。メモリ405は、ランダムアクセスメモリ、バッテリバックアップメモリ、ハードディスク、磁気テープなどとして含む、いくつかの異なる構成を含むことができる。圧縮および自動バックアップなど、様々な特徴もまた、メモリ405上に実装され得る。

様々な実装形態では、デバイス105−cは、非一時的コンピュータ可読媒体上に記憶または一体化された、1つまたは複数のプログラム命令(「命令」)、または「コード」のセットを有するコンピュータプログラム製品を含むことができる。少なくとも1つのプロセッサ、たとえばプロセッサ360および/またはアプリケーション接続性エンジン310によってコードが実行されると、それらの実行によって、プロセッサ410および/または接続性エンジン310に、本明細書で説明するアクティブ化アーキテクチャの機能をもたらすようにデバイス105−cを制御させることができる。たとえば、非一時的コンピュータ可読媒体は、フロッピー(登録商標)ディスク、CDROM、メモリカード、FLASHメモリデバイス、RAM、ROM、またはデバイス105−cとインターフェース接続する任意の他のタイプのメモリデバイスもしくはコンピュータ可読媒体であってよい。別の態様では、コードのセットが、外部デバイスまたは通信ネットワークリソースからデバイス105−cにダウンロードされ得る。コードのセットは、実行されると、本明細書で説明するシステムコールのインターセプトおよびワイヤレスインターフェースのアクティブ化アーキテクチャの態様をもたらすように動作する。

図5は、上記で説明したように、第1のワイヤレスインターフェースがアクティブである間にネットワークアクセスについての要求をインターセプトするため、および要求をOS 220にリリースすることを決定すると、第2のワイヤレスインターフェースをアクティブ化するために有用な、モバイルデバイス105−d上のアーキテクチャ500の例示的なブロック図を示す。モバイルデバイス105−dは、図1、図2、図3または図4のモバイルデバイス105の一例であってよい。

図示のように、ブロックは、アプリケーションプロセッサ590とモデムプロセッサ595との間で分割されているが、様々な機能は、図5の例とは異なって編成されてよい。アプリケーション層305は、アプリケーション接続エンジン(App CnE)310およびソケット層320と対話することができる。アプリケーション接続エンジン310は、モデム接続エンジン(Modem CnE)585と通信することができる。モデム接続エンジン585は、無線ユニット325およびその中の無線330−aのうちのいくつかなどの通信リソースを管理することができる。ラッパー315は、アプリケーションプロセッサ590の中で、アプリケーション層305とOS 220のソケット層320との間で実行され得る。ラッパー315は、アプリケーション層305とソケット層320との間で送られるデータをキャプチャすることができる。たとえば、ラッパー315は、アプリケーション層305からソケット層320宛てに送られたソケットコールをインターセプトするために、アプリケーション層305とソケット層320との間に設置されてよい。一構成では、ラッパー315は、セルラーインターフェースなどの第1のワイヤレスインターフェースがアクティブである間、デバイス105−dによって非アクティビティ期間(period of inactivity)中にアプリケーション層305からのソケットコールをインターセプトすることができる。ラッパー315は、ソケットコールをソケット層320にリリースする決定がなされるまで、インターセプトされたコールを保持することができる。コールをリリースすることを決定すると、WLANインターフェースなど、第2のワイヤレスインターフェースがアクティブ化され得る。ソケットコールは、無線ユニット325内の無線330を使用して通信チャネルを確立するための要求をトリガすることができる。

別の例では、ラッパー315は、セルラーインターフェースがアクティブである間、デバイス105−dによって非アクティビティ期間中にアプリケーション層305からインターセプトされたシステムコールをアグリゲートすることができる。ラッパー315は、インターセプトされ、アグリゲートされたコールをWLANインターフェースがアクティブ化されるまで保持することができる。次いで、ラッパー315は、コールをソケット層320にリリースすることができる。データは、無線ユニット325によって確立されたWLAN上の無線接続を使用して、デバイス105−dから送信され/デバイス105−dによって受信され得る。

一構成では、ラッパー315は、アプリケーション層305におけるアプリケーションに対して不可視であってよく、それにより、アプリケーションは、それらの要求がソケット層320に到達することを阻止されていることに気づかない。ラッパー315は、個別のソフトウェア構成要素であってよく、またはアプリケーション接続性エンジン310もしくはOS 220など、別の構成要素内に組み込まれてもよい。

図6は、ソケットコールの同期リリースおよびWLANインターフェースのイネーブル化のタイミング図600を示す。アプリケーションは、モバイルデバイス105のアプリケーション層305内に位置することができる。タイミング図600は、図3、図4または図5のアプリケーション接続性エンジン310の実施の結果である。一構成では、いくつかのソケットコール605−aが、いくつかのアプリケーションから出されることがある。ソケットコール605−aは、第1のワイヤレスインターフェースがアクティブである間、時間t0からキャプチャされ、遅延され得る。インターフェースは、セルラーインターフェースであってよい。ソケットコール605−aは、connect()ソケットコールであってよい。一実施形態では、ソケットコール605−aは、モバイルデバイス上で実行しているOS 220に到達することを阻止されることがある。たとえば、ソケットコールは、OS 220のTCP/IPスタックに到達することを阻止されることがある。ソケットコール605−aは、キュー内で保持されてよい。

一例では、時間t1の前に、保持されたソケットコールがリリースされるという決定がなされ得る。時間t1において、第2のワイヤレスインターフェースがイネーブルされ得る。第2のインターフェースは、WLANインターフェースであってよい。インターフェースは、ソケットコール605−aをリリースすることを実質的に決定するとアクティブ化され得る。時間t2において、ソケットコール605−aはOS 220にリリースされ得るか、またはコール605−aはOS 220内のソケット層にリリースされ得る。その結果、モバイルデバイス105は、ソケットコール動作を、セルラーインターフェースではなくWLANインターフェース上で実施することができる。一例では、時間t3において、第2のワイヤレスインターフェースが非アクティブ化され得る。その結果、WLANネットワークを有する無線接続が終了され得る。アクティブ化されたWLANインターフェースを有し、アイドルモードにおける、図1、図2、図3、図4または図5のデバイス105などのモバイルデバイスは、アクティブ化されたセルラーインターフェースを有するアイドルデバイスより多くの電力を消費する。たとえば、ページングサイクルは、WLANインターフェースに対して約100msであり、セルラーインターフェース上では約2.5秒である。しかしながら、データ伝送は、一般的には、セルラーインターフェース上よりWLANインターフェース上において電力効率が高い。たとえば、WLANインターフェースは、大部分のタイプのコンテンツを転送するために使用されるセルラーインターフェースよりはるかに少ない電力を使用することができる。したがって、本システムおよび方法によれば、WLANインターフェースがデータのリリースを遂行するために起動され、次いで、デバイスのバッテリー電力を温存するためにオフラインにされてよい。WLANインターフェースは、TCP接続が実質的に閉じられたときかまたは接続タイマーが終了したときにディセーブルされ得る。一実施形態では、セルラーインターフェースは、上記で説明したステップ全体を通して、アプリケーションに対して利用可能であるように見え続けることがある。

図7は、ネットワークアクセスについての要求をインターセプトして保持し、要求がリリースされるときにワイヤレスインターフェースをアクティブ化するための方法700の一例を示すフローチャートである。明快のために、図1、図2、図3、図4および図5に示すモバイルデバイス105を参照しながら方法700について以下で説明する。一実装形態では、プロセッサ410および/またはアプリケーション接続性エンジン310は、デバイス105の機能的要素を制御して以下で説明する機能を実施するために、1つまたは複数のコードのセットを実行することができる。たとえば、アプリケーション接続性エンジン310は、以下で説明する様々な機能を実施するために、インターセプトモジュール205と、アクティブ化モジュール210と、リリースモジュール215とを実行することができる。一構成では、方法700は、デバイス105がアイドルモードにあるときに実施され得る。

ブロック705で、少なくとも1つのソケットコールが、第1のワイヤレスインターフェースがアクティブである間、OS 220におけるソケット層に到達することからインターセプトされ得る。一例では、ラッパー315を含み得るインターセプトモジュール205が、ソケットコールをインターセプトすることができる。ソケットコールは、モバイルデバイス105に対する通信チャネルを確立するなど、モバイルデバイス105に対する通信を実施することの要求であってよい。要求は、モバイルデバイス105のアプリケーション層305において実行しているアプリケーションから送られることがある。一例では、ソケットコールは、アプリケーションが、ネットワーク115などの外部ネットワークとインターフェース接続することを可能にするために、データ接続セットアッププロシージャを開始することの要求であってよい。たとえば、ソケットコールは、モバイルデバイス105上のOS 220のソケット層320に対するシステムコールであってよい。アクティブな第1のワイヤレスインターフェースは、セルラーインターフェースであってよい。OS 220によって受信される、connect()ソケットコールなどのソケットコールは、セルラーネットワーク上で無線接続を確立するために、OS 220にセットアッププロシージャを開始させることができる。

ブロック710で、少なくとも1つのインターセプトされたソケットコールをOS 220内のソケット層にリリースすることを決定することに実質的にもとづいて、第2のワイヤレスインターフェースがOS 220においてアクティブ化され得る。一構成では、OS 220は、アクティブ化モジュール210を含むことができる。アクティブ化モジュール210は、少なくとも1つのソケットコールをリリースすることを決定し得、ソケットコールをリリースする前に第2のワイヤレスインターフェースをアクティブ化することができる。第2のインターフェースは、WLANインターフェースであってよい。第2のワイヤレスインターフェースをアクティブ化することは、WLANが利用可能であるかどうかを決定するために、アクティブ化モジュール210が信号をスキャンすることを含むことができる。利用可能なWLANを検出すると、無線接続がWLAN上で確立され得る。たとえば、モデム接続性エンジン585が、無線セットアッププロシージャを開始するために、無線ユニット325に対して1つまたは複数のコードのセットを実行することができる。プロシージャは、無線330がWLAN上で無線接続を確立することを含むことができる。WLAN上で無線接続を確立すると、アクティブ化モジュール210は、WLANインターフェースをアクティブ化し、アプリケーション層305内のアプリケーションに対してWLANインターフェースがアクティブ化されていることを示す通知を生成することができる。

ブロック715で、少なくとも1つのインターセプトされたソケットコールがリリースされ得る。一実施形態では、リリースモジュール215は、WLANインターフェースがアクティブ化されているとの通知を受信すると、ソケットコールをリリースすることができる。ソケットコールはソケット層にリリースされ得る。一構成では、リリースモジュール215は、前に説明したように、リリーストリガイベントが発生すると、ソケットコールをリリースすることができる。リリーストリガイベントがWLANインターフェースがアクティブ化される前に発生する場合、リリースモジュール215がソケットコールをリリースし得、セットアッププロシージャが、セルラーネットワークに対する無線接続を確立するために開始され得る。一実施形態では、セルラーインターフェースは、アプリケーションに対してアクティブでかつ可視のままであり得る。

したがって、方法700は、アイドルモードにあるモバイルデバイス105上で第1のワイヤレスインターフェースがアクティブである間、アプリケーションによって出されたソケットコールをインターセプトすることと保持することとをもたらすことができる。要求は、要求をリリースすることが決定されるまで保持され得る。第2のワイヤレスインターフェースは、要求をリリースすることを決定すると、アクティブ化され得る。その結果、要求がソケット層にリリースされ得、データは、以前にアクティブであった第1のワイヤレスインターフェースではなく、第2のワイヤレスインターフェースを介して送信/受信され得る。方法700は一実装形態にすぎず、方法700の動作は、他の実装形態が可能であるように再構成あるいは修正されてよいことに留意されたい。

図8は、ネットワークアクセスについての要求をインターセプトし、デバイス105がアイドルモードにあるときに第2のワイヤレスインターフェースを確立するための方法800の一例を示すフローチャートである。明快のために、図1、図2、図3、図4または図5に示すデバイス105を参照しながら方法800について以下で説明する。一実装形態では、プロセッサ360および/またはアプリケーション接続性エンジン310は、デバイス105の機能的要素を制御して以下で説明する機能を実施するために、1つまたは複数のコードのセットを実行することができる。たとえば、エンジン310および/またはプロセッサ360は、1つまたは複数のコードのセットを実行し、インターセプトモジュール205、アクティブ化モジュール210およびリリースモジュール215の機能を実行し制御することができる。

ブロック805で、ネットワークアクセスについての要求がインターセプトされる。要求は、モバイルデバイス105のアプリケーション層305において実行しているアプリケーションから送られ得る。一例では、要求は、ネットワーク115などの外部ネットワークと通信チャネルを確立するための要求であってよい。要求は、デバイス105上のOS 220のソケット層320へのシステムコールであってよい。要求を受信すると、ソケット層320は、通信チャネルを確立するためのプロシージャを開始し、チャネルが確立されるとアプリケーションにコールバック機能を与えることができる。要求は、セルラーインターフェースなどの第1のワイヤレスインターフェースがOS 220において利用可能である間にインターセプトされ得る。

ブロック810で、デバイス105がアイドルモードにあるかどうかについて、決定がなされ得る。たとえば、デバイス105が電源切りであるか、スリープモードにあるかなどについて決定がなされ得る。デバイス105はまた、たとえば、デバイス105のディスプレイが非アクティブである場合、オーディオ出力が非アクティブである場合、などの場合に、アイドルモードにあるものと決定され得る。デバイス105−aがアクティブであるものと決定される場合、ブロック815で、要求が、OS 220のソケット層320にリリースされ得る。ブロック820で、無線接続が、第1のワイヤレスネットワークと確立され得る。ブロック825で、デバイス105は、確立された無線接続とアクティブな第1のワイヤレスインターフェースとを使用して、第1のワイヤレスネットワークを介して通信に従事することができる。ブロック830で、第1のワイヤレスネットワークとの無線接続は、ネットワーク上の通信を実質的に完結すると終了され得る。第1のワイヤレスインターフェースはセルラーインターフェースであってよく、第1のワイヤレスネットワークはセルラーネットワークであってよい。

デバイス105がアイドルモードにあるものと決定される場合、第2のワイヤレスネットワークが利用可能であるかどうかを決定するために、スキャンが実施され得る。ブロック835で、無線接続が、利用可能な第2のワイヤレスネットワークと確立され得る。ブロック840で、第2のワイヤレスインターフェースが、第2のワイヤレスネットワークと、OS 220においてアクティブ化され得る。たとえば、無線接続を確立すると、OS 220は、アプリケーション層305内で実行しているアプリケーションが、第2のワイヤレスネットワーク上で通信することを可能にするために、インターフェースをアクティブ化することができる。一実施形態では、ブロック845で、要求が、OS 220のソケット層320にリリースされ得る。ブロック850で、デバイス105は、第2のワイヤレスインターフェースを介して第2のワイヤレスネットワーク上で通信に従事することができる。通信は、確立された無線接続と第2のインターフェースとを使用して第2のネットワーク上でデータを送信/受信することを含むことができる。ブロック855で、第2のネットワークとの無線接続が終了され得、第2のワイヤレスインターフェースが非アクティブ化され得る。無線接続および第2のインターフェースは、第2のワイヤレスインターフェース上のアプリケーションから出されたソケットコールが実質的に完了すると、終了され得る。

したがって、方法800は、ネットワークアクセスについての要求をインターセプトすることおよび保持することと、保持された要求をOS 220にリリースすることを決定すると、第2のインターフェースをアクティブ化することとをもたらすことができる。第2のインターフェースがアクティブであるときに要求をリリースすることによって、通信が、第2のインターフェースを介して第2のネットワーク上で作動することができる。多数のアプリケーションがセルラーインターフェースに対する要求をリリースし、多数のセットアッププロシージャがセルラーネットワーク上で開始されることを回避することによって、シグナリングが最小化され得る。方法800は一実装形態にすぎず、方法800の動作は、他の実装形態が可能であるように再構成あるいは修正されてよいことに留意されたい。

図9は、どのワイヤレスネットワークを通信に使用するかを決定するための方法900の一構成を示すフローチャートである。明快のために、図1、図2、図3、図4または図5に示すデバイス105を参照しながら方法900について以下で説明する。一実装形態では、プロセッサ410および/またはアプリケーション接続性エンジン310は、デバイス105の機能的要素を制御して以下で説明する機能を実施するために、1つまたは複数のコードのセットを実行することができる。

ブロック905で、モバイルデバイス105についての通信チャネルを確立するためのアプリケーションからの要求が、インターセプトされ得る。デバイス105は、アイドルモードにあってよい。一構成では、第1のワイヤレスインターフェースは、要求がインターセプトされた時点でOS 220においてアクティブであり得る。第1のワイヤレスインターフェースは、第1のワイヤレスネットワークと関連付けられ得る。ブロック910で、第1のワイヤレスネットワークとは異なる、利用可能な第2のワイヤレスネットワークを特定するために、スキャンが実施され得る。ブロック915において、第2のワイヤレスネットワークが利用可能であるかどうかについて、決定がなされ得る。たとえば、第2のワイヤレスネットワークは、WLANまたはWiFiネットワークであってよい。第2のワイヤレスネットワークが利用可能でないものと決定される場合、ブロック920で、インターセプトされた要求が、OS 220のソケット層320にリリースされ得る。ブロック925で、無線接続が、第1のワイヤレスネットワークと確立され得る。ブロック930で、モバイルデバイス105は、確立された無線接続と第1のワイヤレスインターフェースとを使用して、第1のワイヤレスネットワークを介して通信に従事する。

ブロック915で、第2のワイヤレスネットワークが利用可能であるものと決定される場合、ブロック935で、無線接続が、第2のワイヤレスネットワークと確立され得る。たとえば、無線ユニット325内の無線330は、第2のワイヤレスネットワーク上で通信チャネルを確立するために、リモートデバイス(たとえば、サーバ、他のモバイルデバイスなど)の無線に対して通信を確立することができる。ブロック940で、第2のワイヤレスインターフェースが、第2のワイヤレスネットワークと、OS 220によってアクティブ化され得る。インターフェースは、モバイルデバイス105上で実行しているアプリケーションが、第2のワイヤレスインターフェースを介して第2のワイヤレスネットワーク上でデータを送信/受信することを可能にすることができる。ブロック945で、要求が、OS 220のソケット層320にリリースされ得る。要求は、ソケット層320にリリースされ得る。ブロック950で、モバイルデバイス105は、確立された無線接続と第2のワイヤレスインターフェースとを使用して、第2のワイヤレスネットワークを介して通信に従事することができる。ブロック955で、第2のワイヤレスネットワークとの無線接続が終了され得る。接続は、モバイルデバイス105がネットワーク上で通信を実質的に終了すると、終了され得る。たとえば、接続は、デバイス105上のアプリケーションから出されたソケットコールが実質的に完了または達成されると、終了され得る。第2のワイヤレスネットワークに対する無線接続を終了することに加えて、OS 220は、第2のワイヤレスインターフェースを非アクティブ化することができる。その結果、デバイス105上にインストールされたアプリケーションは、第2のインターフェースが非アクティブ化されると、第2のワイヤレスネットワークがもはや利用可能でないことに気づく。

したがって、方法900は、利用可能なWLANをスキャンすることと、WLANが利用可能である場合に、WLANインターフェース上にソケットコールをリリースすることとをもたらすことができる。方法900は一実装形態にすぎず、方法900の動作は、他の実装形態が可能であるように再構成あるいは修正されてよいことに留意されたい。

図10は、持続的なTCP接続を維持するための方法1000の一構成を示すフローチャートである。明快のために、図1、図2、図3、図4または図5に示すデバイス105を参照しながら方法1000について以下で説明する。一実装形態では、プロセッサ410および/またはアプリケーション接続性エンジン310は、デバイス105の機能的要素を制御して以下で説明する機能を実施するために、1つまたは複数のコードのセットを実行することができる。

方法は、ブロック1005で、第1のアプリケーションからの要求をインターセプトすることによって開始する。要求は、モバイルデバイス105についての通信チャネルを確立するためのソケットコールであってよい。デバイス105はアイドルモードであってよく、要求は、デバイス105のOS 220がアプリケーションにアクティブな第1のワイヤレスインターフェースをもたらす間にインターセプトされ得る。ブロック1010で、第1のワイヤレスインターフェース上に持続的な(または長寿命の)TCP接続を有する1つまたは複数の追加のアプリケーションが、識別され得る。たとえば、プレゼンスサービス(presence service)を提供するアプリケーションは、延長された期間の間、オープンのままであるTCP接続を有することができる。長寿命のTCP接続を有し得るそのようなアプリケーションの一例には、Skype(登録商標)が含まれ得る。

ブロック1015で、第2のワイヤレスネットワークとの無線接続が確立され得る。ブロック1020で、第2のワイヤレスネットワークとの無線接続が確立されると、第2のワイヤレスインターフェースがOS 220によってアクティブ化され得る。ブロック1025で、第2のワイヤレスインターフェースがアクティブ化されていることを示す通知が生成され得る。通知は、WLANインターフェースがアクティブである間にWLANインターフェースを使用することを、アプリケーションに通知することができる。一例では、OS 220は、通知を生成し、その通知を第1のアプリケーションに送信することができる。ブロック1030で、持続的なTCP接続を有する1つまたは複数の追加のアプリケーションが、通知を受信することを防止されることがある。これらのアプリケーションが、WLANが利用可能になるときに通知される場合、アプリケーションは、セルラーインターフェース上の長寿命のTCP接続を閉じて、WLAN IPアドレスをサーバに再登録することができる。WLANが終了すると、これらのアプリケーションは、次いで、セルラーインターフェース上で再登録することができる。その結果、セルラー無線に対して2つの接続が発生することがある。たとえば、1つは、TCP接続を閉じるためのものであり、1つは、WLANが終了した後、アプリケーションを再登録するためのものである。このことで、セルラーネットワーク上のシグナリングのレベルが増加することがある。

一実施形態では、アプリケーション接続性エンジン310は、通知の生成を一斉にディセーブルすることによって、長寿命のTCP接続を有する1つまたは複数のアプリケーションが通知を受信することを防止することができる。別の実施形態では、モバイルデバイス105上にインストールされているアプリケーションは、インターフェースがアクティブ化されていることおよび非アクティブ化されていることに関する通知をOS 220に登録することができる。エンジン310は、WLANをアクティブ化する前に、セルラーインターフェース上に持続的なTCP接続を有するアプリケーションのリストを作成することができる。アプリケーション接続性エンジン310は、これらのアプリケーションを通知サービスから登録解除するか、またはこれらのアプリケーション宛ての通知をインターセプトして廃棄することができる。通知が、長寿命のTCP接続を有するアプリケーションによって受信されことを防止するための別の例として、アプリケーション接続性エンジン310が、WLANインターフェースがアクティブである間、これらのアプリケーションからのconnect()または他のソケットコールを廃棄することができる。エンジン310はまた、WLANが非アクティブ化された後の一定期間の間、これらのアプリケーションからのシステムコールを廃棄することができる。一実施形態では、エンジン310は、これらのアプリケーションからのwrite()ソケットコールを、TCP接続が確立されているインターフェース(たとえば、セルラーインターフェース)にルーティングするために、ラッパー315を実行することができる。特別なハンドリングは必要とされない。その結果、アプリケーションは、持続的なTCP接続を終了せずに、WLANに登録することを試行することができる。bind()を介して、またはルーティングテーブルに宛先ベースのルートを追加することによって、それらのソケットを一定のインターフェースにバインドしたアプリケーションは、WLANインターフェースのアクティブ化によって影響を受けることはない。

ブロック1035で、要求が、OS 220のソケット層320にリリースされ得る。ブロック1040で、モバイルデバイス105は、確立された無線接続と第2のワイヤレスインターフェースとを使用して第2のワイヤレスネットワーク上で通信を行うことができる。

本明細で開示する技法および構造を使用すると、アプリケーションからのソケットコールがキャプチャされ、セルラーインターフェースであってよい第1のワイヤレスインターフェースがアクティブ化されている間にOSに到達することが阻止される。OSは、第2のワイヤレスインターフェース、たとえばWLANインターフェースをアクティブ化し、WLANがアクティブ化されていることをアプリケーションに通知することができる。保持されているシステムコールまたはソケットコールは、OSに、またはOS内のソケット層にリリースされ得る。第2のワイヤレスインターフェースをアクティブ化することで、アプリケーションが、第1のインターフェースを介して第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)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。

開示した例示的な実施形態の前述の説明は、当業者が本発明を実施または使用できるようにするために提供されるものである。これらの例示的な実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用できる。したがって、本発明は、本明細書に示す例示的な実施形態に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきある。

QQ群二维码
意见反馈