特許第6208684号(P6208684)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フェイスブック,インク.の特許一覧

特許6208684マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避
<>
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000002
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000003
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000004
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000005
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000006
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000007
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000008
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000009
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000010
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000011
  • 特許6208684-マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6208684
(24)【登録日】2017年9月15日
(45)【発行日】2017年10月4日
(54)【発明の名称】マルチインタフェーストラフィックオフロードのためのキャプティブポータル状態の検出および回避
(51)【国際特許分類】
   H04W 36/14 20090101AFI20170925BHJP
   H04W 88/06 20090101ALI20170925BHJP
   H04W 84/12 20090101ALI20170925BHJP
【FI】
   H04W36/14
   H04W88/06
   H04W84/12
【請求項の数】20
【全頁数】27
(21)【出願番号】特願2014-549159(P2014-549159)
(86)(22)【出願日】2012年12月17日
(65)【公表番号】特表2015-502125(P2015-502125A)
(43)【公表日】2015年1月19日
(86)【国際出願番号】US2012069985
(87)【国際公開番号】WO2013096146
(87)【国際公開日】20130627
【審査請求日】2015年11月27日
(31)【優先権主張番号】13/330,498
(32)【優先日】2011年12月19日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ポトラ、エイドリアン
(72)【発明者】
【氏名】タルウォー、モヒト
【審査官】 篠田 享佑
(56)【参考文献】
【文献】 特開2008−199137(JP,A)
【文献】 米国特許出願公開第2009/0279492(US,A1)
【文献】 特開2011−041319(JP,A)
【文献】 特開2009−276925(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24− 7/26
H04W 4/00−99/00
3GPP TSG RAN WG1−4
SA WG1−4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
1または複数の非一時的コンピュータ可読記憶媒体であって、
1または複数のコンピューティングシステムによって実行されたときに、
コンピューティングデバイスにおいて、セルラーデータネットワークとのセルラー接続を維持しつつ、無線ローカルエリアネットワーク(WLAN)との無線接続を確立し、
前記コンピューティングデバイスにおいて、前記WLANとの無線接続を正常に確立した後、前記セルラー接続から前記無線接続へデータトラフィックのオフロードを行う前に、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかどうかの判定を行い、
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するという判定に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行い、
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないという判定に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行う前に、前記WLANによってホストされるポータルに対して前記コンピューティングデバイスを認証するよう動作可能なロジックを具現化し、
セルラー接続と無線接続とにデータトラフィックのオフロードを行うことは、サービスプロバイダネットワークによって直接的に制御される、媒体。
【請求項2】
実行されたときに、
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないと判定された場合、前記WLANによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたデータトラフィックを前記コンピューティングデバイスのWLANインタフェースにバインドするよう動作可能な命令をさらに含む、請求項1に記載の媒体。
【請求項3】
実行されたときに、
前記コンピューティングデバイスにおいて、前記ユーザインタフェースによって、認証証明書を受信し、
前記コンピューティングデバイスにおいて、前記ポータルに前記認証証明書を提出し、
前記コンピューティングデバイスにおいて、前記ポータルからの認証許可メッセージ受信に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項2に記載の媒体。
【請求項4】
前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかどうかを判定することは、
前記無線接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないと識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有すると識別するステップとを含む、請求項1に記載の媒体。
【請求項5】
前記セルラー接続のデータトラフィックは、前記コンピューティングデバイスのアプリケーションとサーバのコンピューティングデバイスとの間の通信セッションのデータを含み、
前記セルラーデータネットワークとのセルラー接続を維持することは、前記通信セッションを維持することを含み、
前記セルラー接続から無線接続にデータトラフィックのオフロードを行うことは、セルラー接続から無線接続に前記通信セッションのデータを誘導することを含む、請求項1に記載の媒体。
【請求項6】
実行されたときに、
前記コンピューティングデバイスにおいて、前記無線接続の1または複数のプロパティを監視し、
前記コンピューティングデバイスにおいて、前記無線接続の1または複数のプロパティに基づいて前記無線接続を終了し、
前記コンピューティングデバイスにおいて、前記無線接続から前記セルラー接続にデータトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項1に記載の媒体。
【請求項7】
前記コンピューティングデバイスの無線ネットワーク状態トラッカーが、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかどうかを周期的に判定する、請求項1に記載の媒体。
【請求項8】
装置であって、
1または複数のプロセッサと、
前記1または複数のプロセッサによって実行されたときに、
コンピューティングデバイスにおいて、セルラーデータネットワークとのセルラー接続を維持しつつ、無線ローカルエリアネットワーク(WLAN)との無線接続を確立し、
前記コンピューティングデバイスにおいて、前記WLANとの無線接続を正常に確立した後、前記セルラー接続から前記無線接続へデータトラフィックのオフロードを行う前に、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかの判定を行い、
コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記WLA
Nを通じたインターネットアクセスを有するという判定に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行い、
コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないという判定に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行う前に、前記WLANによってホストされるポータルに対して前記コンピューティングデバイスを認証するよう動作可能なロジックを具現化する1または複数の非一時的コンピュータ可読記憶媒体と、を備え
セルラー接続と無線接続とにデータトラフィックのオフロードを行うことは、サービスプロバイダネットワークによって直接的に制御される、装置。
【請求項9】
前記1または複数のプロセッサにより実行されたときに、前記1または複数の媒体が、
前記コンピューティングデバイスにおいて、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないと判定された場合、前記WLANによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたデータトラフィックを前記コンピューティングデバイスのWLANインタフェースにバインドするよう動作可能な命令をさらに含む、請求項8に記載の装置。
【請求項10】
前記1または複数のプロセッサにより実行されたときに、前記1または複数の媒体が、
前記コンピューティングデバイスにおいて、前記ユーザインタフェースによって、認証証明書を受信し、
前記コンピューティングデバイスにおいて、前記ポータルに前記認証証明書を提出し、
前記コンピューティングデバイスにおいて、前記ポータルからの認証許可メッセージ受信に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項9に記載の装置。
【請求項11】
前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかどうかを判定することは、
前記無線接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないと識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有すると識別するステップとを含む、請求項8に記載の装置。
【請求項12】
前記セルラー接続のデータトラフィックは、前記コンピューティングデバイスのアプリケーションとサーバのコンピューティングデバイスとの間の通信セッションのデータを含み、
前記セルラーデータネットワークとのセルラー接続を維持することは、前記通信セッションを維持することを含み、
前記セルラー接続から無線接続にデータトラフィックのオフロードを行うことは、セルラー接続から無線接続に前記通信セッションのデータを誘導することを含む、請求項8に記載の装置。
【請求項13】
前記1または複数のプロセッサによって実行されたときに、前記1または複数の媒体が、
前記コンピューティングデバイスにおいて、前記無線接続の1または複数のプロパティ
を監視し、
前記コンピューティングデバイスにおいて、前記無線接続の1または複数のプロパティに基づいて前記無線接続を終了し、
前記コンピューティングデバイスにおいて、前記無線接続から前記セルラー接続にデータトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項8に記載の装置。
【請求項14】
前記コンピューティングデバイスの無線ネットワーク状態トラッカーが、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかどうかを周期的に判定する、請求項8に記載の装置。
【請求項15】
コンピューティングデバイスによって、セルラーデータネットワークとのセルラー接続を維持しつつ、無線ローカルエリアネットワーク(WLAN)との無線接続を確立するステップと、
前記コンピューティングデバイスによって、前記WLANとの無線接続を正常に確立した後、前記セルラー接続から前記無線接続へデータトラフィックのオフロードを行う前に、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかの判定を行うステップと、
前記コンピューティングデバイスによって、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するという判定に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行うステップと、
前記コンピューティングデバイスによって、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないという判定に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行う前に、前記WLANによってホストされるポータルに対して前記コンピューティングデバイスを認証するステップであって、セルラー接続と無線接続とにデータトラフィックのオフロードを行うことは、サービスプロバイダネットワークによって直接的に制御される、ステップと、を含む方法。
【請求項16】
前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しないと判定された場合、前記コンピューティングデバイスが、
前記WLANによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示するステップと、
前記ユーザインタフェースに関連付けられたデータトラフィックを前記コンピューティングデバイスのWLANインタフェースにバインドするステップとをさらに含む、請求項15に記載の方法。
【請求項17】
前記コンピューティングデバイスが、前記ユーザインタフェースによって、認証証明書を受信するステップと、
前記コンピューティングデバイスが、前記ポータルに前記認証証明書を提出するステップと、
前記コンピューティングデバイスが、前記ポータルからの認証許可メッセージ受信に応答して、セルラー接続から無線接続にデータトラフィックのオフロードを行うステップとをさらに含む、請求項16に記載の方法。
【請求項18】
前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有するかどうかの判定を行うステップは、
前記無線接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有しな
と識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記コンピューティングデバイスが前記WLANを通じたインターネットアクセスを有すると識別するステップとを含む、請求項15に記載の方法。
【請求項19】
前記セルラー接続のデータトラフィックは、前記コンピューティングデバイスのアプリケーションとサーバのコンピューティングデバイスとの間の通信セッションのデータを含み、
前記セルラーデータネットワークとのセルラー接続を維持することは、前記通信セッションを維持することを含み、
前記セルラー接続から無線接続にデータトラフィックのオフロードを行うことは、セルラー接続から無線接続に前記通信セッションのデータを誘導することを含む、請求項15に記載の方法。
【請求項20】
前記コンピューティングデバイスによって、前記無線接続の1または複数のプロパティを監視するステップと、
前記コンピューティングデバイスによって、前記無線接続の1または複数のプロパティに基づいて前記無線接続を終了するステップと、
前記コンピューティングデバイスによって、前記無線接続から前記セルラー接続にデータトラフィックのオフロードを行うステップとをさらに含む、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、無線ネットワークへの接続に関する。
【背景技術】
【0002】
移動体デバイスには、1または複数のセルラーネットワークにアクセスする送受信機(例えばGPRS(汎用パケットサービス)、EDGE(GSM(登録商標)進化型高速データレート)、3GPP(第3世代パートナーシッププロジェクト)、3GPP2、およびCDMA2000(符号分割多重アクセス))、ならびに電気電子技術者協会(IEEE)802.11(Wi−Fi)ネットワーク、およびIEEE802.16(WiMAX)ネットワークなどの1または複数の無線ローカルエリアネットワーク(WLAN)にアクセスする送受信機などの、複数の通信インタフェースを搭載することができる。帯域幅、信号強度、データ通信料の回避、バッテリー(寿命)の温存、およびその他の理由により、多くの移動体デバイスが、任意の利用可能な無線ネットワークに自動的に接続し、それを通じて全てのデータを中継(ルーティング)するよう構成される。
【0003】
しかしながら、全てのWLANが無料ではない。多くのWLANは、移動体デバイスのユーザが、典型的には、支払情報入力、ログイン、パスワード証明書、またはプロバイダサービス条項への同意によって認証を行うまで、インターネット(またはその他のネットワーク)へのアクセスを防止するウェブポータル(キャプティブポータルとも呼ばれる)を、多くのWLANのデフォルトゲートウェイまたはサーバでホストする。
【0004】
キャプティブポータル技術では、インターネットを正常に使用する前に、ネットワーク上のハイパーテキストトランスファプロトコル(HTTP)クライアントが、特別なウェブページ(通常は認証目的で)を見ることを多くの場合強制する。キャプティブポータルは、ウェブブラウザを認証デバイスへと変更する。ユーザがブラウザを開き、インターネットへのアクセスを試みるまで、アドレスまたはポートにかかわらず、全てのパケットのインターセプトにより、これは行われ得る。その時に、認証もしくは支払を要求するウェブページ、またはユーザの同意を要する使用承諾ポリシーを表示するウェブページに、ブラウザのリダイレクトを行ってもよい。認証が成功するまで、ユーザデバイスは、ポータルの「ウォールドガーデン(Walled garden)」に「トラップ(囚われる)」され得る。キャプティブポータルは、度々Wi−Fiホットスポットで使用され、有線アクセスを制御するために(例えば、集合住宅で、ホテルの客室で、ビジネスセンタで、または「解放された(オープンな)」イーサネット(登録商標)ジャックで)使用されることもある。キャプティブポータルには、HTTPリダイレクト、IPリダイレクト、およびドメインネームサーバ(DNS)リダイレクトなどの、多様なパケットインターセプト技術を用いてもよい。
【図面の簡単な説明】
【0005】
図1A】マルチインタフェース移動体デバイスのための例示的なクライアントサーバ環境を示す図。
図1B】例示的な移動体IPハンドオフを示す図。
図2】キャプティブポータル状態による例示的なデータ接続の結果を示す図。
図3】例示的なキャプティブポータル状態の検出機能および回避機能が実装された例示的な移動体デバイスの例示的なアプリケーションモジュールを示す図。
図4】キャプティブポータル状態を検出および回避するための例示的な方法を示す図。
図5】キャプティブポータル状態を検出するための例示的な方法を示す図。
図6】例示的なキャプティブポータル状態の検出および回避を実装している移動体デバイスの例示的な状態図を示す図。
図7】例示的な移動体デバイスインタフェースを示す図。
図8】例示的なネットワーク環境を示す図。
図9】例示的なコンピュータシステムを示す図。
図10】例示的な移動体デバイスを示す図。
【発明を実施するための形態】
【0006】
特定の実施形態において、マルチインタフェース移動体デバイス、または他のクライアントデバイスは、特定のWLANへ接続されると、接続チェックを公衆IPネットワークのエンドポイントに送信し、WLANを通じてデバイスがインターネットにフルにアクセスできることを示す肯定応答(ACK)をエンドポイントから受信した後に、単に無線セルラーインタフェースからWLANインタフェースへトラフィックオフロードを行ってもよい。特定の実施形態において、移動体デバイスは、キャプティブポータルのウォールドガーデンにトラップされたことを検出すると、ブラウザウィンドウまたはデバイスのWLANインタフェースにバインドされたユーザインタフェースを生成してもよく、その結果、移動体デバイスは、無線セルラーインタフェースによってインターネットへのデータ接続を維持しつつ、同時に、ポータル認証を行ってもよい。
【0007】
移動体アプリケーションが普及するにつれ、ウェブブラウザは、それを通じて移動体デバイスがインターネットにアクセスするだけの手段に留まらない。天気、交通、株価更新、地図、インスタントメッセージ等を受信する目的で、専用アプリケーションがアプリケーションサーバへのTCP/IP接続を確立(オープン)することができる。とりわけ懸念されるのは、専用の(非ブラウザベースの)ソーシャルネットワーキングアプリケーションの使用である。現代のユーザの生活におけるソーシャルネットワーキングの浸透により、多くのユーザが、興味のあるニュース、イベント、興味のあるスポット、メッセージング、およびその他のソーシャルデータについて、ソーシャルネットワーキングシステムからの更新に専ら依存しており、ユーザは、インターネットへのポータルとしても、また自分自身の個人的生活を管理するためのポータルとしても、ソーシャルネットワークに依存している。特定の実装形態においては、適切なソーシャルデータを即時に確実にユーザに通知するため、ソーシャルネットワーキングアプリケーションは、仮想プライベートネットワーク(VPN)トンネルまたは“常時オン”TCP/IP接続によって通知チャネルを維持してもよい。
【0008】
特定の実施形態においては、例えばソーシャルネットワーキングウェブサイトとして実装されるソーシャルネットワーキングシステムは、そのユーザのクライアントデバイスにプッシュ通信を行う。概して、ソーシャルネットワークは、友達関係、親族関係、共通の興味、金融取引、嫌悪感、または信条、知識もしくは名声による関係等の、1または複数のタイプの相互依存、すなわち関係により結ばれている個人または機関等のエンティティにより構成されるソーシャル構造体である。さらに近年では、ソーシャルネットワークは、インターネットを利用している。ソーシャルネットワーキングシステムは、ソーシャルネットワーキングウェブサイトの形態としてインターネット上に存在する。このようなソーシャルネットワーキングウェブサイトにより、一般にウェブサイトユーザと呼ばれるそのメンバーは、各種のソーシャルアクティビティを行うことができる。例えば、www.facebook.comにてフェースブック(登録商標)社(Facebook,Inc)により運営されるソーシャルネットワーキングウェブサイトにより、そのユーザは、電子メール、インスタントメッセージ、もしくはブログ投稿により友達と通信する、ソーシャルイベントを催す、写真を共有する、友達または興味のあるイベントのニュースを受信する、ゲームをするなどのことができる。
【0009】
例えば、限定されるものではないが、システム更新メッセージ、ソフトウェア更新メッセージ、広告、警告、ユーザアカウント通知、ソーシャルネットワーキングメッセージ、サービス契約更新、または異なる種類の通信の組合せなどのクライアントデバイスにプッシュ配信され得る各種の通信が存在する。個々の通知の内容は多様であり得る。通知内容は度々、人間のエンティティまたは人間以外のエンティティ(例えば、機関、場所、製品、ソフトウェアアプリケーション、映画、トピック等)であってもよいエンティティに関し得る。通知は、ソーシャルネットワーキングシステムから(例えば、ソーシャル情報またはソーシャル上のつながり相手に関する通知が)、またはサードパーティから(例えば、サードパーティの製品またはサービスに関する通知が)発信され得る。通知チャネルについてのさらなる情報については、「ユーザデバイスにプッシュ配信された通知の管理(Managing Notifications Pushed to User Devices)」と題された、2011年4月28日に出願された本出願人による米国特許出願第13/096,184号を参照されたい。これは参照により本願明細書にそのすべてが援用される。
【0010】
ソーシャルネットワーキングアプリケーションおよび前述のソーシャルネットワーキング通知チャネル等の各種の非ブラウザベースの移動体アプリケーションの利用が増大しているため、ユーザは度々、キャプティブポータルのウォールドガーデンにトラップされたことに気づかない。その結果、通知チャネルを通じたソーシャルネットワーキングシステムからの通知等の、非ブラウザベースの移動体アプリケーションからの有用な情報を、ユーザが見逃してしまう場合がある。
【0011】
図1Aは、マルチインタフェース移動体デバイス105のための例示的なクライアントサーバ環境を示す図である。移動体デバイス105は、RF送受信機タワー104を通じた無線セルラーネットワーク102との通信、および無線アクセスポイント、ルータ、またはリピータ(図示せず)を通じた無線LAN103への通信のための複数のインタフェースを含んでよい。無線セルラーネットワーク102は、GSMベースのネットワーク(例えばGPRS、EDGE、UMTS、HDSPA/HSUPA、LTE、3GPP、3GPP2)、CDMAベースのネットワーク(CDMA2000、WCDMA(登録商標)、EVDO、LTE等)、または任意の適切なセルラーデータ接続であってもよい。WLAN103は、IEEE802.11、Wi−Fi LAN、802.16WiMAX
LAN、または任意の適切なWLANであってもよい。特定の実施形態においては、移動体デバイス105は、ブルートゥースまたはウルトラワイドバンドパーソナルエリアネットワークとの通信のためなどの他の送受信機を含んでもよい。特定の実施形態においては、移動体デバイス105は、各種のメトロポリタンエリアネットワークとの通信のための1または複数の送受信機を含んでもよい。本開示は、任意の適切なネットワークプロトコルを企図する。
【0012】
移動体デバイス105は、インターネット101、および無線セルラーネットワーク102または無線LAN103のうちの1つによって、ローカルブラウザ、または各サービス専用のアプリケーションを通じて、各種のサードパーティサーバ100A〜Dとの通信を維持する。例えば通常動作時においては、移動体デバイス105は、そのキャリアの無線セルラーネットワーク102およびインターネット101によって、移動体デバイスに存在するソーシャルネットワーキングアプリケーションからソーシャルネットワーキングシステムサーバ100Aへの接続を維持し得る。前述のように、この接続は、ソーシャルネットワーキングシステムからの重要な更新およびコンテンツを受信するために常時オンの通知チャネルであってもよい。同様に、移動体デバイス105は、同じ経路を通じて、ストリーミングミュージックまたはビデオを受信するために、例えばPandora、YouTube(登録商標)、Spotify、またはSlacker Radio等のス
トリーミングオーディオアプリケーションとストリーミングコンテンツサーバ100Bとの間の接続を維持し得る。別の例として、移動体デバイス105は、無線セルラーネットワーク102によって、Google Talk、AOL Instant Messenger、Jabber、ICQ、Yahoo!Messenger等の、移動体デバイス105に存在するチャットクライアントとメッセージングサーバ100Cとの間の接続を維持し得る。本開示は、インターネット101を通じて移動体デバイス105とパケットを送受信する任意の適切なサーバ100Dを企図する。
【0013】
特定の状況において、移動体デバイス105は、(物理的媒体104aを通じた)無線セルラーネットワーク104から(物理的媒体103aを通じた)無線LAN103に切替(スイッチオーバ)られてもよい。特定の実施形態において、移動体デバイス105は、範囲内の任意の無線ネットワークに自動的に接続するよう構成される。特定の実施形態において、移動体デバイス105は、いくつかのパフォーマンスファクタに基づいて、無線LAN103に切替られる。例えば、移動体デバイス105は、信号強度が所定の閾値を上回った場合にのみ、またはWLANが所定の帯域幅要件を満たすときにのみ、WLAN103に接続されてもよい。特定の実施形態において、移動体デバイス105は、バッテリー(寿命)を温存するために、または超過データ請求を回避するために、WLAN103に自動的に接続されてもよい。特定の実施形態において、移動体デバイス105は、明示的なユーザ指示があった後にのみ、WLAN103に接続されてもよい。本開示は、利用可能な無線ネットワークへの任意の適切な接続方法を企図する。
【0014】
図1Bは、図1Aと同様のネットワークを示す図であり、移動体デバイス105が、移動体IPを使用する点のみが異なる。図1において、移動体デバイス105は、無線接続104aおよび103aを独立的に管理し、移動体デバイス105は、2つの別個のIPアドレスを取得し、インターネット101へと接続される。これにより、移動体デバイス105が無線セルラーネットワーク102から無線LAN103へと切替られるときに、データの「受渡(ハンドオフ)」が生じず、アプリケーションはサーバ100A〜100Dに再認証される必要がある。特定の実施形態において、移動体アプリケーションは、この再認証をシームレスに、ユーザによる対話をすることなく行ってもよい。例えば、WLAN103への接続後のソーシャルネットワーキングシステムサーバ100Aとの初期通信において、ソーシャルネットワーキングアプリケーションは、ソーシャルネットワーキングユーザの識別子およびパスワード等の認証情報を送信してもよい。特定の実施形態において、ソーシャルネットワーキングシステムサーバ100Aは、MAC認証を行ってもよく、移動体デバイスから受信パケットを受信する限り、IPアドレスにかかわらず、ソーシャルネットワーキングシステムは、移動体デバイス105のリクエストに応答してもよい。しかしながら、図1の構成では、IPアドレスの変更は、移動体デバイス105に存在するアプリケーションにより行われ、移動体デバイス105がWLAN103に接続されるときに、いわゆるデータの「ハンドオフ」は生じない。
【0015】
図1Bは、WLAN103に接続する際にトラフィックオフロードを行うために移動体IPを使用する移動体デバイスを示す。図1Bには移動体IPハンドオフを記述しているが、他のIPベースのモビリティマネジメントプロトコル(例えば、SIPベースのモビリティマネジメント)を同様に使用してもよい。モビリティサービスプロバイダ106は、例えばセルラーサービスプロバイダ、ホームエンタープライズネットワーク、またはインターネットサービスプロバイダ(ISP)等の移動体デバイス105のホームネットワークを管理する任意のエンティティであってもよい。セルラーネットワーク102は、直接、または標準IPネットワークによって、モビリティサービスプロバイダ106に接続される。
【0016】
一般的には、移動体デバイス105がセルラーネットワーク102からWLAN103
に移動する場合、移動体デバイス105は、新たなネットワークからIPパケットを受信するために使用可能なローカルIPアドレスを取得する。移動体デバイス105は、この新たなローカルIPアドレスを、移動体デバイス105自体の移動体IPケアオブアドレス(CoA)として用い、新たなCoAをその移動体IPホームエージェント107に登録するために移動体IPを用いる。これにより、移動体デバイス105は、移動体デバイス105のモビリティサービスプロバイダネットワーク106にパケットを送信可能な任意の携帯端末または固定端末によって送信されたIPパケットであって、移動体デバイス105の移動体IPホームアドレスにアドレス指定されたIPパケットを受信し続けることができる。移動体デバイス105のホームアドレスにアドレス指定されたユーザIPパケットは、移動体IPホームエージェント107に中継されることになり、移動体IPホームエージェント107は、移動体デバイス105の現在のCoAに、これらのパケットをトンネルすることになる。3GPPリリース8は、3GとWi−Fiとの間のシームレスなハンドオーバを可能にするために、デュアルスタック移動体IP(DSMIP)を導入した。このような技術は当技術分野において周知であり、本明細書においてさらに論じられない。
【0017】
移動体デバイス105が、(図1Aのように)シームレスなハンドオフを使用するか、または(図1Aのように)2つの独立した接続を使用するかにかかわらず、ソーシャルネットワーキングアプリケーションおよびチャットクライアント等のアプリケーションはハンドオフを通じて機能するために、WLAN103を通じたインターネット101への実質的に即時の接続が要求される。キャプティブポータルによるパケットリダイレクトによる中断(すなわち、ウォールドガーデンにトラップされること)は、ハンドオフが行われる時に、移動体デバイス105のユーザがブラウザによるウェブサーフィンをしていないことに起因して、度々ユーザには知らせずに、完全な接続の喪失をユーザにもたらす。
【0018】
図2は、移動体デバイス105がキャプティブポータルのウォールドガーデンにトラップされた(本明細書では「キャプティブポータル状態」208と称する)ためにデータ接続を喪失することになる例示的なプロセスを示す。
【0019】
ステップ201において、移動体デバイス105は、Wi−Fiネットワークが範囲内に存在しない場合にのみ、セルラーデータモードで動作する。ステップ202において、移動体デバイス105を操作するユーザは、例えば、ホテル、空港、喫茶店等のWi−Fiホットスポットのカバレッジ内に入る。
【0020】
ステップ203において、移動体デバイスは、Wi−Fiホットスポットに自動的に接続される。自動的な接続はキャプティブポータル状態208に接続することが最も多いが、ユーザが明示的にWi−Fiホットスポットへ接続する命令を発行した場合であっても、移動体デバイス105は、キャプティブポータル状態208となることもある。例えば、キャプティブポータルを実装するWi−Fiネットワークは、ほぼ公衆専用の、暗号化されていないWLANである。したがって、ユーザは、WLANがインターネットへのフルアクセスを提供することを信じてWLANへの接続を行い得るが、一方、ユーザのデバイスは実際にはキャプティブポータル状態208にトラップされる。
【0021】
ステップ204〜ステップ205では、移動体デバイス105は、キャプティブポータル状態208にトラップされたままである。移動体デバイス105からインターネットにアドレス指定されたパケットはWLANによって転送されずに、WLANのデフォルトゲートウェイまたはウェブサーバが、ポータルウェブページ用のコンテンツを含むHTTP応答を移動体デバイス105に与え続ける。非ブラウザ移動体アプリケーションは、このHTTP応答を予期していない、またはこのHTTP応答に対してレンダリングを行うことができないので、典型的には、非ブラウザ移動体アプリケーションは、パケットを消失
(ドロップ)し、ユーザは無期限にキャプティブポータル状態208に留まり続ける。例えば、移動体デバイス105のユーザがブラウザウィンドウを開き、ポータルページに誘導(ダイレクト)されない限り、またはユーザのその他の移動体アプリケーションがいずれも更新を受信していないと気づかない限り、ユーザは、自身がキャプティブポータル状態208にトラップされていることを決して認識しない可能性がある。
【0022】
ユーザが最終的に気づき、移動体デバイス105のウェブブラウザを開いたとすれば、ステップ206において、ユーザは、ユーザネーム、パスワード、支払情報、プロモーションコード、サービス条項への同意等の認証証明書をキャプティブポータルに提供し、ステップ207において、データ接続がWi−Fi接続を通じて回復される。
【0023】
図3は、特定の実施形態のキャプティブポータル状態の検出および回避機能を実装している移動体デバイス300に存在する例示的なソフトウェアモジュールを示す。移動体デバイス300は、接続マネージャアプリケーション301およびインターネット接続を要求する各種のユーザアプリケーション307を含む。アプリケーション307には、前述のように、限定されるものではないが、ウェブブラウザ308、ソーシャルネットワーキングアプリケーション309、ソーシャルネットワーキング通知チャネル309a(ソーシャルネットワーキングアプリケーション309の構成要素であり得る)、ボイスオーバIP(VoIP)アプリケーション310、またはストリーミングビデオアプリケーション311が含まれる。本開示は、任意の適切なアプリケーション312を企図する。
【0024】
接続マネージャ301は、サードパーティ製アプリケーションであってもよく、またはより典型的には、移動体デバイス300のオペレーティングシステムに組み込まれたものであってもよい。接続マネージャ301は、利用可能なWi−Fiネットワークを能動的に探査するWi−Fiリスナーモジュール302を含む。特定の実施形態においては、Wi−Fiリスナーモジュール302は、所定の間隔で探査を行う。特定の実施形態においては、所定の間隔は、移動体デバイス300の位置、バッテリー寿命、およびその他の要因に基づいて、調節される。本開示は、任意の適切なWi−Fiリスナーモジュール302を企図する。
【0025】
接続マネージャ301は、2つの接続状態トラッカー(追跡機能)、すなわち、セルラーデータ接続状態トラッカー303およびWi−Fi接続状態トラッカー304を含み、それぞれが関連付けられた無線インタフェースの接続状態をそれぞれ管理する。接続マネージャ301が、ブルートゥースやWiMAX等の各種無線インタフェース用の接続状態トラッカーを任意の数だけ有してもよいことは、当業者には明らかであろう。
【0026】
Wi−Fi接続状態マネージャ304は、WPAサブシステム305およびコンフィギュレーションパイプライン306を含む。WPAサブシステム305は、暗号化、認証等を含む、所与のWi−Fiネットワークの無線物理的媒体へ接続をする役割を担う。特定の実施形態において、WPAサブシステム305は、移動体デバイス300用の無線ネットワークインタフェースカード(NIC)ドライバに含まれていてもよい。コンフィギュレーションパイプライン306は、順に実行されるいくつかのプロセスを含み、使用する無線接続を構成する役割を担う。特定の実施形態において、コンフィギュレーションパイプライン306の全てのプロセス306a〜306cが正常に実行完了するまで、WLANは「使用可能状態」とはみなされない。
【0027】
DHCPプロセス306aには、ダイナミックホストコンフィギュレーションプロトコル(DHCP)が実装され、WLANからIPアドレスを取得する役割を担う。DHCPは当技術分野では周知であり、本明細書ではさらに論じられない。特定の実施形態においては、コンフィギュレーションパイプライン306は、WISPr(無線インターネット
サービスプロバイダローミング)プロトコルを実装するソフトウェア処理を含む。WISPrにより、携帯電話のユーザがキャリア間のローミングを行えるようにするために使用されるものと同様の方法で、ユーザが無線インターネットサービスプロバイダ間のローミングを行うことが可能となる。RADIUSサーバは、加入者証明書を認証するのに使用される。特定の実施形態において、WISPrは、XMLベースのプロトコルを使用して、認証情報をクライアントデバイスに記憶し、それをホットスポットのRADIUSサーバに送信して、ユーザがキャプティブポータルと対話する必要性を除去する。しかしながら、このような実施形態において、WLAN自体との接続問題により、WLANが移動体デバイスを認証した後であっても、サービスの中断が発生し得る。
【0028】
特定の実施形態において、コンフィギュレーションパイプライン306は、無線接続を構成するための他のプロセスに対応する。例えば、パイプライン306は、以前に使用された認証証明書またはクッキーを記憶するスマートクライアントを含んでもよい。特定の実施形態において、パイプライン306は、国際ローミングアクセスプロトコル(IRAP)を実装するプロセスを含んでもよい。本開示は、コンフィギュレーションパイプライン306で実行される任意の数の適切なソフトウェア処理を企図する。
【0029】
前述のように、コンフィギュレーションパイプライン306は、Wi−Fi接続状態トラッカー304により無線接続が「フル接続状態」とみなされる前に、正常に実行されることを要する、一連の(シーケンシャルな)ソフトウェア処理を含む。例えば、典型的には移動体デバイスがWi−Fiネットワークに接続するとき、移動体デバイスはDHCPプロセス306aを通じてIPアドレスを取得し、任意選択でWISPrを通じて必要な任意の認証を行う。特定の実施形態において、キャプティブポータルチェックプロセス306cは、コンフィギュレーションパイプライン306のエンドポイントに付加される。以下により詳しく記載するように、キャプティブポータルチェックプロセス306cは、無線ネットワーク接続がキャプティブポータル状態にあるかどうかを検出し、キャプティブポータルチェックプロセス306cがキャプティブポータル状態を検出した場合は、Wi−Fi接続状態トラッカー304は、デバイスがWLANへの「フル接続状態」にあるとはみなさない。
【0030】
図4は、デュアルインタフェース移動体デバイス300のためのキャプティブポータル状態の検出および回避の例示的な方法を示す。本方法は、ステップ401で開始し、移動体デバイス300は、ネットワーク102等のキャリアのセルラーデータネットワークによってインターネットに接続する。ステップ402において、Wi−Fiリスナー302は、前述のように利用可能なWi−Fiネットワークを能動的に探査する。ネットワークが見つからない場合、所定時間後に、またはWi−Fiリスナー302のポリシーに従って、プロセスは402にループバックを行う。Wi−Fiネットワークが検出された場合、ステップ403に進む。
【0031】
ステップ403において、移動体デバイス300は、コンフィギュレーションパイプライン306の個々のプロセスの実行により、検出されたWi−Fiネットワークのうちの1つに接続する。前述のように、移動体デバイス300は、検出されたWi−Fiネットワークに自動的に接続されてもよく、または明示的なユーザの命令に応じて接続されてもよい。特定の実施形態において、移動体デバイスは、利用可能なWi−Fiネットワークをランク付けまたはスコア付けし、「最良の」ネットワークとされるネットワークに自動的に接続する。特定の実施形態において、移動体デバイスは、利用可能なWi−Fiネットワークをランク付けまたはスコア付けし、ユーザが明示的な接続命令を発行するために、並び替えられたネットワークのリストをユーザに提供する。特定の実施形態において、移動体デバイス300は、セルラーデータ接続102aを通じて外部ノードからWi−Fiネットワークスコアを取得してもよい。例えば、移動体デバイス300は、サードパー
ティサーバに、利用可能なネットワークのSSIDおよびその物理的位置によるリクエストを送信してもよい。これに応じて、サードパーティサーバは、他のユーザの体験報告に基づいて、識別されたWi−Fiネットワークの各々のスコアを送信してもよい。同様に、移動体デバイス300が、特定のWi−Fiネットワークに接続するときに、移動体デバイス300は、帯域幅、レイテンシー、ネットワーク上のデバイス数などのパフォーマンス指標、またはネットワーク品質のユーザ記入式アンケートを送信してもよい。このような実施形態において、Wi−Fiネットワークの評価およびそれに続くランク付けは、クラウドソーシングによるデータに基づく。本開示は、Wi−Fiネットワークの選択および接続の任意の適切な手段を企図する。ステップ403において、移動体デバイス300は、コンフィギュレーションパイプライン306の最終プロセス以外の全プロセスを実行し、それには、DHCPプロセス306aによってIPアドレスを取得すること、およびWISPrプロセス306bによって任意の組み込まれた認証を取得することが含まれる。プロセス403〜406の間中、移動体デバイス300は、セルラーデータネットワーク102によって、公衆IPネットワークへのデータ接続を維持する。
【0032】
ステップ404において、移動体デバイス300は、コンフィギュレーションパイプライン306のキャプティブポータルチェック306cを実行する。キャプティブポータルチェック306cは、図5を参照してより詳細に記述される。Wi−Fiインタフェースによって移動体デバイス300がキャプティブポータルに接続されているとキャプティブポータルチェックプロセス306cが判定すると、ステップ405に進む。そうでなければ、ステップ406にジャンプし、移動体デバイス300は、接続されたWi−Fiネットワークを使用して、公衆IPネットワークとの通信を開始する。移動体デバイス300が移動体IPを使用する実施形態においては、このようなハンドオーバは、Wi−Fiネットワーク103によって、移動体デバイス300の新たなCoAをホームエージェント107へと送信することを含む。
【0033】
ステップ405において、Wi−Fi接続がキャプティブポータル状態にあることを検出すると(すなわち、キャプティブポータルのウォールドガーデンにトラップされていると)、移動体デバイス300はブラウザウィンドウを生成し、キャプティブポータルからポータルページをダウンロードする。特定の実施形態において、移動体データインタフェースを使用する全ての非キャプティブポータルトラフィックは、移動体データインタフェースを通して、中断されずに送受信され続ける。例えば、WiFi接続を有しないエリアからWiFiカバレッジを有するWiFiエリアに移動したときに、ユーザがチャットセッション中である場合、トラフィックオフロードが行われるまで、データが移動体デバイスに、および移動体デバイスからチャットサーバへと、移動体データインタフェースを通して流れ続ける。特定の実施形態において、移動体デバイス300により生成されたブラウザウィンドウは、追加のカスタムユーザインタフェース要素を有してもよい。生成されたブラウザウィンドウは、図7を参照してより詳細に記述される。ステップ405において、移動体デバイス300が2つの共に有効な無線接続および2つのIPアドレス(1つは無線セルラーネットワーク102用、および1つはWi−Fiネットワーク103用)を維持しているので、移動体デバイス300は、誤送信を防止するために、生成されたブラウザウィンドウを移動体デバイス300のWi−Fiインタフェースにバインドする。したがって、全てのHTTPリクエスト、HTTP応答、DNSリクエスト/応答、またはブラウザウィンドウにより生成された他のオープンソケット接続が、Wi−Fiインタフェースの利用を強制される。特定の実施形態において、このバインディングは、生成されたブラウザウィンドウのブラウザスタックを変更することにより達成される。本開示は、生成されたブラウザウィンドウからWi−Fiインタフェースへの全てのトラフィックを誘導する任意の適切な方法を企図する。
【0034】
ステップ406において、ユーザは生成されたブラウザウィンドウと対話し、認証証明
書を入力する。前述のように、認証証明書は、ユーザネーム/パスワード、支払情報、およびプロモーションコードから、Wi−Fiネットワークプロバイダのサービス条項への単なる同意にまで亘り得る。ユーザがキャプティブポータルコンテンツにおける「送信」または「実行」ボタンをクリックすると、検証のために認証証明書がキャプティブポータルに送信される。認証証明書が有効な場合、キャプティブポータルは、実装形態に応じて、ACKをユーザに送信する。他の実装形態において、キャプティブポータルは、単に移動体デバイス300のインターネットアクセスを許可する。特定の実施形態において、送信された認証証明書が有効であるとの肯定応答を受信すると、移動体デバイス300はステップ408に進み、Wi−Fi接続へトラフィックオフロードを行う。しかしながら、このような実施形態において、キャプティブポータルの公衆IPネットワークへの接続に不具合がある場合、ユーザサービスの中断が依然として存在し得る。
【0035】
したがって、特定の実施形態において、有効な認証証明書の送信後に、ステップ404でのキャプティブポータル状態チェックに戻り、Wi−Fi接続が公衆IPネットワークに確実に到達するようにする。
【0036】
ステップ408において、移動体デバイス300は、Wi−Fi接続103aへのデータのトラフィックオフロードを行う。特定の実施形態において、移動体デバイス300は、Wi−Fi接続103aへデータトラフィックの一部分のみのオフロードを行ってもよい。例えば、DSMIPは、アプリケーションベースのオフロードを許可し、その結果、より高帯域幅のネットワークに帯域幅を重要視するアプリケーションのオフロードが行われてもよい。他の例として、DSMIPは、より小さなレイテンシーを受けるネットワークに対して、レイテンシーの影響を受けやすいトラフィック以外のトラフィックのみのオフロードを行ってもよい。特定の実施形態において、トラフィックオフロードは、フローベースであってもよい。例えば、3GPPのリリース10では、複数のローカルCoAを単一のHoAへ登録する能力、および異なるIPフロー(例えば、http、ビデオ、VoIP等)を異なるCoAへバインドする、または直接HoAへバンドする能力が導入された。したがって、一部のトラフィックは、移動体デバイス300のホームエージェント(HA)107(VPNまたはビデオトラフィック等)にアンカーを付けてもよい一方、一部のトラフィックは、HTTP等のWLANを横切る(トラバースする)ことなく完全にWLANへオフロードが行われてもよい。本開示は、無線セルラーネットワークインタフェースからWi−Fiインタフェースへ移動体デバイス300のデータトラフィックの全部または一部のオフロードを行う、任意の適切な方法を企図する。
【0037】
特定のキャプティブポータルは、キャプティブポータル状態に戻り、接続されたデバイスを所定時間後にそのキャプティブポータルのウォールドガーデンに戻してもよい。例えば、ユーザが、ホットスポットへの1時間パスを購入すると、キャプティブポータルは、1時間パスの期限が切れた時にパケットのリダイレクトを再始動し、ユーザに追加時間を購入するようにさせる。前述のように、多くのユーザがウェブブラウジング以外の目的でインターネットへのデータ接続を要求するため、ユーザは自身のデバイスがインターネット接続を喪失していることに気がつかないことがある。したがって、特定の実施形態において、移動体デバイス300は、ステップ404のキャプティブポータル状態チェックを行い得る。ステップ404でキャプティブポータル状態チェックを通過すると、あるいは、ステップ408でWi−Fiインタフェースへトラフィックオフロードを行うと、移動体デバイス300は、次のキャプティブポータル状態チェックまでの時間を表示するタイマーを開始する。タイマーがステップ409で時間切れとなると、ステップ404に戻り、キャプティブポータル状態チェックを行う。
【0038】
例えば、ユーザがWi−Fiホットスポットのカバレッジエリアから離れるなどして、移動体デバイス300が完全にWi−Fi接続を喪失したときには、図4のプロセスが中
断され得ることは、当業者には明らかである。このような状況では、移動体デバイス300が全てのデータトラフィックを無線セルラーネットワークインタフェースに戻すことは、同様に明らかである。
【0039】
本開示は、図4の方法の特定のステップは特定の順序で生じるものとして記述および図示しているが、本開示は、任意の適切な順序で生じる図4の方法の任意の適切なステップを企図する。さらに、本開示は、図4の方法の特定のステップを実行する特定の構成要素を記述および図示しているが、本開示は、図4の方法の任意の適切なステップを実行するための任意の適切な構成要素の任意の適切な組合せを企図する。
【0040】
図5は、キャプティブポータル状態を検出するための例示的な方法を示す。特定の実施形態において、図5の方法は、コンフィギュレーションパイプライン306におけるキャプティブポータル状態検出プロセス306cにより実装される。特定の実施形態において、移動体デバイス300は、コンフィギュレーションパイプライン306における他の不必要なプロセスをスキップし得る。例えば、移動体デバイスが、既存のWi−Fi接続についてキャプティブポータル状態チェックを(ステップ409におけるように)周期的に行う場合、DHCPプロセス306aまたはWISPr認証306bを行う必要はない。特定の実施形態において、完全なコンフィギュレーションパイプライン306は、Wi−Fiネットワークへの最初の接続時にのみ実行される。
【0041】
本方法は、ステップ501において開始し、移動体デバイスが、所定の一組のルールまたは内部タイマーに基づいて、キャプティブポータル状態にあるかどうかのチェックを行うことを決定する。ステップ502において、移動体デバイス300は、接続チェックをインターネットの外部ノードに送信する。特定の実施形態において、接続チェックは、www.facebook.com等の周知なドメインに対するものであってもよい。特定の実施形態において、外部ノードは、アカマイ(Akamai)等の分散コンテンツデリバリーネットワークの1または複数のサーバであってもよい。特定の実施形態において、接続チェックは、pingリクエストと同程度に単純であってもよい。特定の実施形態において、接続チェックは、任意の識別子が応答に含まれることを要求してもよい。特定の実施形態において、応答は、キャッシュ不可能な一意の識別子を含んでもよい。本開示は、任意の適切な接続チェックリクエスト、または応答メッセージを企図する。
【0042】
ステップ503において、移動体デバイス300は、接続チェックメッセージの送信と実質的に同時にタイマーを開始する。特定の実施形態において、タイマーは、所定のタイムアウト期間、例えば400ミリ秒で開始するカウントダウンタイマーであってもよい。接続チェック応答メッセージがタイマーの時間切れの前に受信されると(ステップ504)、ステップ505において移動体デバイスは、Wi−Fi接続がキャプティブポータル状態にないと判定し、ここで本方法は終了してもよい。一方、タイムアウトが満了する前に応答が受信されないと、移動体デバイス3001は、Wi−Fi接続がキャプティブポータル状態にあると識別し(ステップ506)、ここで本方法は終了してもよい。
【0043】
本開示は、図5の方法の特定のステップは特定の順序で生じるものとして記述および図示されているが、本開示は、任意の適切な順序で生じる図5の方法の任意の適切なステップを企図する。さらに、本開示は、図5の方法の特定のステップを実行するための特定の構成要素を記述および図示しているが、本開示は、図5の方法の任意の適切なステップを実行する任意の適切な構成要素の任意の適切な組合せを企図する。
【0044】
図6は、図4および図5の方法を状態図で示したものである。当業者であれば理解されるように、図4の方法は、一度だけ実行される単なるルーチンではなく、Wi−Fi接続とWi−Fiネットワークを通じた公衆IPネットワークアクセスとの両方を継続的に監
視する。
【0045】
図6の状態図は、4つの状態を含む。状態S0では、移動体デバイス300は、公衆IPネットワークにそのセルラーインタフェースのみを通じて接続される。この状態の間、移動体デバイス300のWi−Fiリスナーは、前述のように、探査メッセージを送信する、またはブロードキャストSSIDを探査することにより、利用可能なWi−Fiネットワークを周期的にチェックする。ネットワークが見つからなければ、移動体デバイス300は状態S0のままである。ネットワークが見つかれば、移動体デバイス300はネットワークに接続し、状態S1に遷移する。
【0046】
状態S1において、移動体デバイス300は、キャリアの無線セルラーデータネットワークおよび検出されたWi−Fiネットワークに接続されるが、いずれのトラフィックもWi−Fiインタフェースにオフロードを行っていない。S1において、移動体デバイス300は、図5のキャプティブポータル状態チェックを実行し、キャプティブポータルのウォールドガーデンにトラップされたかどうかを判定する。トラップされていなければ、移動体デバイスは、状態S3に遷移する。移動体デバイス300が、そのWi−Fi接続がキャプティブポータル状態にトラップされていると判定した場合、状態S2に遷移する。
【0047】
状態S3において、移動体デバイス300が、(前述のように)トラフィックの一部または全部をWi−Fiネットワークへシフトする。さらに、移動体デバイス300は、時間切れの時に他のキャプティブポータル状態チェックを実行する信号を発するタイマーを開始する。
【0048】
状態S2において、移動体デバイス300は、Wi−Fiインタフェースにバインドされており、接続されたキャプティブポータルからダウンロードされたコンテンツを含むブラウザウィンドウを生成する。ユーザは前述のように、認証情報を提供してもよい。
【0049】
当業者には明らかなように、ユーザがインターネットアクセスのために料金を支払うことを望まない場合は、Wi−Fiを用いるよりもユーザはセルラーネットワークに留まることを単に選択することもある。このような実施形態においては、(図7を参照して説明されるように)ユーザがWi−Fiネットワークへの接続を断る場合、移動体デバイス300は状態S0に戻り、ユーザが断ったネットワーク以外のネットワークを求めて周期的にスキャンを行う。前述のように、特定の実施形態において、状態S1、S2、またはS3のいずれかにおいて、移動体デバイス300がWi−Fi接続を喪失した場合、移動体デバイス300は単に、全てのトラフィックを無線セルラーインタフェースに戻し、状態S0に戻る。
【0050】
図7は、キャプティブポータル状態の検出(図4のステップ405または図6の状態S2)に応じて生成されたブラウザウィンドウ701を表示する移動体デバイス300を示す。特定の実施形態において、ブラウザウィンドウ701は、移動体デバイス300により生成されたユーザインタフェースエリア702、およびキャプティブポータルのゲートウェイまたはサーバから取得されたコンテンツエリア706を含む。特定の実施形態において、移動体デバイス300は、コンテンツエリアに表示されたコンテンツの制御を行うことができず、単にキャプティブポータルからコンテンツをダウンロードし、レンダリングを行うだけである。
【0051】
ユーザインタフェースエリア702は、特定の実施形態において、無線ネットワークの名前(この場合、「Boingo HotSpot」)を含む。特定の実施形態において、名前は、ネットワークのSSIDであってもよい。特定の実施形態において、ネットワ
ークの名前は、SSIDおよび移動体デバイス300の位置に基づいて、サードパーティサービスから取得されてもよい。本開示は、現在の無線ネットワークを識別する任意の適切な方法を企図する。特定の実施形態において、ユーザインタフェースエリア702は、終了ボタン703も含む。このような実施形態において、ユーザが終了ボタン703を選択すると、移動体デバイスは、ブラウザウィンドウ702を閉じ、全てのデータトラフィックを無線セルラーインタフェースに残す。特定の実施形態において、終了ボタン703を選択すると、移動体デバイスは、利用可能なネットワークのリストから現在のネットワークを除外する。特定の実施形態において、移動体デバイス300は、今後、終了されたいずれのネットワークにも接続しない。特定の実施形態において、終了ボタン703を選択すると、移動体デバイス300は、「このネットワークを今後表示しない」等の、現在のネットワークに関する取り得るアクションのメニューを表示する。本開示は、ブラウザウィンドウ701を終了させる、もしくは閉じる、またはネットワークベースのポリシーを現在接続されたネットワークに適用する任意の適切な方法を企図する。特定の実施形態において、ユーザインタフェースエリア702は、標準ナビゲーションバー704および「実行」ボタン705も含む。当業者に明らかなように、ナビゲーションバー704は現在表示中のコンテンツのURLを表示し、「実行」ボタン705は、ナビゲーションバー704のURLを求めてhttpのリクエストを送信する。
【0052】
コンテンツエリア706は、前述のように、キャプティブポータルから取得されたコンテンツ、概して、キャプティブポータルのゲートウェイまたはキャプティブポータルに接続された別個のサーバにローカルに記憶されたhtmlウェブページを、単に表示している。例示目的であり、限定されるものではないが、姓、名、クレジットカード番号、有効期限、および請求先住所を含む支払処理用の複数フィールドを含むコンテンツエリア706のキャプティブポータルページを、図7は示している。特定の実装形態において、キャプティブポータルページは単に、無線ネットワークプロバイダのサービス/使用の条項へのユーザの同意を示す単一のボタンを有する、一組の条項および条件を列挙するだけでもよい。教示目的で、コンテンツエリア706は、選択されると、ユーザのクレジットカードへ表示額を請求し、表示期間中の公衆IPネットワークへのアクセスを移動体デバイス300に許可する、各種のアクセス選択肢707、708および709も含む。認証に成功すると、キャプティブポータルは、インターネットへのユーザのアクセスを許可し、移動体デバイス300は、Wi−Fiネットワークへ一部または全てのデータトラフィックのオフロードを行う前に、接続チェック(ステップ404および状態S1)の実行へと進んでよい。
【0053】
特定の実施形態は、ネットワーク環境において実装されてもよい。図8は、例示的なネットワーク環境800を示す。ネットワーク環境800は、1または複数のサーバ820および1または複数のクライアント830を互いに結合させるネットワーク810を含む。特定の実施形態において、ネットワーク810は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、もしくは他のネットワーク810、または同様のネットワーク810の2以上の組合せである。本開示は、任意の適切なネットワーク810を企図する。
【0054】
1または複数のリンク850は、サーバ820またはクライアント830を、ネットワーク810に結合させる。特定の実施形態において、1または複数のリンク850はそれぞれ、1または複数の有線、無線または光リンク850を含む。特定の実施形態において、1または複数のリンク850はそれぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部、もしくは他のリンク850、または同様のリンク850の2以上の組合せを含む。本開示は、サーバ820および
クライアント830をネットワーク810に結合させ、任意の適切なリンク850を企図する。
【0055】
特定の実施形態において、各サーバ820は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンタにまたがる分散型サーバであってもよい。サーバ820は、例えば、限定されるものではないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、エクスチェンジサーバ、データベースサーバ、またはプロキシサーバ等の様々な種類のものであってもよい。特定の実施形態において、各サーバ820は、サーバ820により実装され、または対応している適切な機能を実行するためのハードウェア、ソフトウェア、または組込みロジック構成要素、あるいはこのような2以上の構成要素の組合せを含んでよい。例えば、ウェブサーバは、一般に、ウェブページまたはウェブページの特定の要素を含むウェブサイトをホストすることができる。より具体的には、ウェブサーバは、HTMLファイルもしくは他のファイルタイプをホストし、またはリクエストに応じてファイルを動的に生成もしくは構成し、HTTPもしくはクライアント830からの他のリクエストに応答して、それらをクライアント830に通信する。メールサーバは、一般に、電子メールサービスを各種クライアント830に提供することができる。データベースサーバは、一般に、1または複数のデータストアに記憶されたデータを管理するためのインタフェースを提供することができる。特定の実施形態において、ソーシャルネットワーキングウェブサイトを実装するソーシャルネットワーキングシステム822は、1または複数のサーバ820においてホストされ得る。
【0056】
特定の実施形態において、1または複数のデータストレージ840が、1または複数のリンク850によって1または複数のサーバ820に通信可能にリンクされ得る。特定の実施形態において、データストレージ840は、各種の情報を記憶するために使用され得る。特定の実施形態において、データストレージ840に記憶された情報は、特定のデータ構造に応じて編成され得る。特定の実施形態において、各データストレージ840は、関係データベースであり得る。特定の実施形態において、サーバ820またはクライアント830が、データストレージ840に記憶された情報を、例えば取り出し、変更、追加または削除する等、管理することができるようにするインタフェースを提供し得る。
【0057】
特定の実施形態において、各クライアント830は、ハードウェア、ソフトウェア、または組込みロジック構成要素、またはこのような2以上の構成要素の組合せを含み、かつクライアント830により実装される、または対応している適切な機能を実行することが可能である電子機器であってもよい。例えば、限定されるものではないが、クライアント830は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子機器、または携帯電話であってもよい。本開示は、任意の適切なクライアント830を企図する。クライアント830は、クライアント830におけるネットワークユーザがネットワーク830にアクセスすることを可能にし得る。クライアント830は、ユーザが他のクライアント830における他のユーザと通信することを可能にし得る。
【0058】
クライアント830は、マイクロソフトインターネットエクスプローラ、グーグルクロム、またはモジラファイアーフォックス等のウェブブラウザ832を有してもよく、ツールバーまたはヤフーツールバー等の1もしくは複数のアドオン、プラグイン、または他の拡張を有し得る。クライアント830におけるユーザは、ユニフォームリソースロケータ(URL)、またはウェブブラウザ832をサーバ820に誘導する他のアドレスを入力し、ウェブブラウザ832はハイパーテキストトランスファプロトコル(HTTP)リクエストを生成し、HTTPリクエストをサーバ820に通信し得る。サーバ820は、HTTPリクエストを受け入れ、クライアント830に、HTTPリクエストに応じた1ま
たは複数のハイパーテキストマークアップ言語(HTML)ファイルを通信し得る。クライアント830は、ユーザに提示するために、サーバ820からのHTMLファイルに基づいてウェブページのレンダリングが行われてもよい。本開示は、任意の適切なウェブページファイルを企図する。例としてであって、限定されるものではないが、ウェブページは、特定のニーズに応じて、HTMLファイル、エクステンシブルハイパーテキストマークアップ言語(XHTML)ファイル、またはエクステンシブルマークアップ言語(XML)ファイルからレンダリングが行われてもよい。このようなページでは、例えば、限定されるものではいが、ジャバスクリプト、ジャバ、マイクロソフトシルバーライト、非同期ジャバスクリプトおよびXML(AJAX)等のマークアップ言語およびスクリプトの組合せ等で記述されたスクリプトを実行することもできる。本明細書において、ウェブページへの参照は、(ブラウザがウェブページのレンダリングを行うために用い得る)1または複数の対応するウェブページファイルを含み、適切な場合には、逆も同様である。
【0059】
特定の実施形態は、1または複数のコンピュータシステムにおいて実装され得る。図9は、例示的なコンピュータシステム900を図示する。特定の実施形態において、1または複数のコンピュータシステム900は、本明細書で記述または図示される1または複数の方法の1または複数のステップを実行する。特定の実施形態において、1または複数のコンピュータシステム900は、本明細書で記述または図示される機能を提供する。特定の実施形態において、1または複数のコンピュータシステム900において実行されるソフトウェアは、本明細書で記述または図示される1または複数の方法の1または複数のステップを実行する、または本明細書で記述もしくは図示される機能を提供する。特定の実施形態は、1または複数のコンピュータシステム900の1または複数の部分を含む。
【0060】
本開示は、任意の適切な数のコンピュータシステム900を企図する。本開示は、任意の適切な物理的形態を採用するコンピュータシステム900を企図する。例としてであって、限定されるものではないが、コンピュータシステム900は、組込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、パーソナルデジタルアシスタント(PDA)、サーバ、またはこれらのうちの2以上の組合せであってもよい。適切な場合、コンピュータシステム900は、1または複数のコンピュータシステム900を含んでもよく、単一であっても分散していてもよく、複数の位置にまたがっていてもよく、複数のマシンにまたがっていてもよく、あるいは1または複数のネットワークに1または複数のクラウドコンポーネントを含み得るクラウドにおいて存在していてもよい。適切な場合、1または複数のコンピュータシステム900は、実質的な空間的または時間的な制限なしに、本明細書で記述または図示された1または複数の方法の1または複数のステップを実行し得る。例としてであって、限定されるものではないが、1または複数のコンピュータシステム900は、本明細書で記述または図示された1または複数の方法の1または複数のステップを、リアルタイムで、またはバッチモードで実行し得る。適切な場合、1または複数のコンピュータシステム900は、本明細書で記述または図示された1または複数の方法の1または複数のステップを、異なる時間に、または異なる場所で実行し得る。
【0061】
特定の実施形態において、コンピュータシステム900は、プロセッサ902、メモリ904、ストレージ906、入力/出力(I/O)インタフェース908、通信インタフェース910、およびバス912を含む。本開示は、特定の構成において、特定の数の特定の構成要素を有する特定のコンピュータシステムを記述および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する、任意の適切なコンピュータシステムを企図する。
【0062】
特定の実施形態において、プロセッサ902は、コンピュータプログラムを構成する命令等、命令を実行するためのハードウェアを含む。例としてであって、限定されるものではないが、命令を実行するために、プロセッサ902は、内部レジスタ、内部キャッシュ、メモリ904、またはストレージ906から、命令を取り出し(またはフェッチ)てもよく、それらをデコードおよび実行し、その後、1または複数の結果を内部レジスタ、内部キャッシュ、メモリ904、またはストレージ906に書き込む。特定の実施形態において、プロセッサ902は、データ、命令またはアドレス用の1または複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含む、プロセッサ902を企図する。例としてであって、限定されるものではないが、プロセッサ902は、1または複数の命令キャッシュ、1または複数のデータキャッシュ、および1または複数のトランスレーションルックアサイドバッファ(TLB)を含み得る。命令キャッシュ内の命令は、メモリ904またはストレージ906の命令のコピーであってもよく、命令キャッシュは、プロセッサ902によるこれらの命令の取り出しを高速化させ得る。データキャッシュ内のデータは、プロセッサ902で実行される命令が動作するためのメモリ904またはストレージ906のデータのコピー、プロセッサ902において実行される後続の命令によるアクセスのために、またはメモリ904もしくはストレージ906への書き込みのために、プロセッサ902において実行された前の命令の結果のコピー、または他の適切なデータのコピーであり得る。データキャッシュは、プロセッサ902による読み出しまたは書き込み動作を高速化させ得る。TLBは、プロセッサ902の仮想アドレス変換を高速化させ得る。特定の実施形態において、プロセッサ902は、データ、命令またはアドレスのための1または複数の内部レジスタを含んでもよい。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ902を企図する。適切な場合、プロセッサ902は、1または複数の算術論理演算ユニット(ALU)を含んでもよく、マルチコアプロセッサでもよく、または1または複数のプロセッサ902を含んでもよい。本開示は、特定のプロセッサを記述および図示するが、本開示は、任意の適切なプロセッサを企図する。
【0063】
特定の実施形態において、メモリ904は、プロセッサ902が実行する命令、またはプロセッサ902が動作するデータを記憶するメインメモリを含む。例としてであって、限定されるものではないが、コンピュータシステム900は、ストレージ906または他のソース(例えば、他のコンピュータシステム900)からの命令を、メモリ904にロードし得る。プロセッサ902は、その後、メモリ904からの命令を、内部レジスタまたは内部キャッシュへとロードし得る。命令を実行するために、プロセッサ902は、内部レジスタまたは内部キャッシュからの命令を取り出し、それらのデコードを行い得る。命令の実行中またはその後に、プロセッサ902は、1または複数の結果(中間または最終結果であってもよい)を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ902は、その後、1または複数のそれらの結果を、メモリ904に書き込み得る。特定の実施形態において、プロセッサ902は、1または複数の内部レジスタもしくは内部キャッシュまたはメモリ904(ストレージ906もしくは他のものではなく)内の命令のみを実行し、1または複数の内部レジスタもしくは内部キャッシュまたはメモリ904(ストレージ906もしくは他のものではなく)内のデータに関してのみ動作する。1または複数のメモリバス(それぞれアドレスバスおよびデータバスを含み得る)は、プロセッサ902をメモリ904に結合することができる。バス912は、以下に記載するように、1または複数のメモリバスを含み得る。特定の実施形態において、1または複数のメモリ管理ユニット(MMU)は、プロセッサ902とメモリ904との間に存在し、プロセッサ902により要求されたメモリ904へのアクセスを容易にする。特定の実施形態において、メモリ904は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであってもよい。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってもよい。さらに、適切
な場合、このRAMは、シングルポートまたはマルチポートRAMであってもよい。本開示は、任意の適切なRAMを企図する。メモリ904は、適切な場合、1または複数のメモリ904を含んでもよい。本開示は、特定のメモリについて記述および図示するが、本開示は、任意の適切なメモリを企図する。
【0064】
特定の実施形態において、ストレージ906は、データまたは命令のためのマスストレージを含む。例としてであって、限定されるものではないが、ストレージ906は、HDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2以上の組合せを含んでよい。ストレージ906は、適切な場合、取り外し可能または取り外し不可能な(すなわち固定の)媒体を含んでもよい。ストレージ906は、適切な場合、コンピュータシステム900の内部または外部にあってもよい。特定の実施形態において、ストレージ906は、不揮発性の固体メモリである。特定の実施形態において、ストレージ906は、リードオンリーメモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的変更可能ROM(EAROM)、もしくはフラッシュメモリ、またはこれらのうちの2以上の組合せであってもよい。本開示は、任意の適切な物理的形態を採用するマスストレージ906を企図する。ストレージ906は、適切な場合、プロセッサ902とストレージ906との間の通信を容易にする1または複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ906は、1または複数のストレージ906を含み得る。本開示は、特定のストレージを記述および図示するが、本開示は任意の適切なストレージを企図する。
【0065】
特定の実施形態において、I/Oインタフェース908は、コンピュータシステム900と1または複数のI/Oデバイスとの間の通信のための1または複数のインタフェースを提供する、ハードウェア、ソフトウェア、あるいはその両方を含む。コンピュータシステム900は、適切な場合、1または複数のこれらのI/Oデバイスを含み得る。1または複数のこれらのI/Oデバイスは、人間とコンピュータシステム900との間の通信を可能にし得る。例としてであって、限定されるものではないが、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、他の適切なI/Oデバイス、またはこれらのうちの2以上の組合せを含み得る。I/Oデバイスは、1または複数のセンサを含み得る。本開示は、任意の適切なI/Oデバイスおよびそれらのための任意の適切なI/Oインタフェース908を企図する。適切な場合、I/Oインタフェース908は、1または複数のこれらのI/Oデバイスをプロセッサ902が駆動するのを可能にする、1または複数のデバイスあるいはソフトウェアドライバを含み得る。適切な場合、I/Oインタフェース908は、1または複数のI/Oインタフェース908を含み得る。本開示は、特定のI/Oインタフェースを記述および図示するが、本開示は、任意の適切なI/Oインタフェースを企図する。
【0066】
特定の実施形態において、通信インタフェース910は、コンピュータシステム900と1または複数の他のコンピュータシステム900あるいは1または複数のネットワークとの間の通信(例えばパケットベースの通信等)のための1または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。例としてであって、限定されるものではないが、通信インタフェース910は、イーサネットもしくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWi−Fiネットワーク等の無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを含み得る。本開示は、任意の適切なネットワーク、およびそのための任意の適切な通信インタフェース910を企図する。例としてであって、限定されるものではないが、コンピュータシステム90
0は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの1または複数の部分、またはこれらのうちの2以上の組合せと通信し得る。これらのネットワークの1または複数のうちの1または複数の部分は、有線であっても無線であってもよい。例として、コンピュータシステム900は、無線PAN(WPAN)(例えば、BLUETOOTH(登録商標)WPAN等)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(例えば、移動体通信用グローバルシステム(GSM)ネットワーク等)、もしくは他の適切な無線ネットワーク、またはこれらのうちの2以上の組合せと通信し得る。コンピュータシステム900は、適切な場合、任意のこれらのネットワークのための任意の適切な通信インタフェース910を含み得る。通信インタフェース910は、適切な場合、1または複数の通信インタフェース910を含んでよい。本開示は、特定の通信インタフェースを記述および図示するが、本開示は、任意の適切な通信インタフェースを企図する。
【0067】
特定の実施形態において、バス912は、コンピュータシステム900の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。例としてであって、限定されるものではないが、バス912は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、エンハンスドインダストリースタンダードアーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)インターコネクト、インダストリースタンダードアーキテクチャ(ISA)バス、インフィニバンドインターコネクト、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCIエクスプレスバス、PCI−Xバス、シリアルアドバンスドテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクススタンダードアソシエーションローカル(VLB)バス、もしくは別の適切なバス、またはこれらの2以上の組合せを含み得る。バス912は、適切な場合、1または複数のバス912を含み得る。本開示は、特定のバスを記述および開示するが、本開示は、任意の適切なバスまたはインターコネクトを企図する。
【0068】
図10は、例示的なクライアントデバイス300を示す。特定の実施形態において、クライアント300は、ハードウェア、ファームウェアおよびソフトウェアを含み得る。特定の実施形態において、クライアントデバイス300は、従来の携帯電話よりも進歩したコンピューティング能力および接続を提供する携帯電話である、スマートフォン(例えばiPhone(登録商標)、ANDROID(登録商標)ベースの電話、またはブラックベリー)であり得る。クライアントデバイス300は、携帯電話と一体化されたハンドヘルドコンピュータとみなされ得る。特定の実施形態において、クライアントデバイス300は、ネットブックまたはタブレットコンピュータ(例えばiPad(登録商標)、Androidベースのタブレット)であり得る。クライアントデバイス300は、GSMまたはCDMA2000ベースの無線セルラーネットワーク等の無線接続を通じてネットワークに接続され得る。
【0069】
特定の実施形態において、クライアントデバイス300は、ハードウェア1010およびソフトウェア1020を含み得る。特定の実施形態において、ハードウェア210は、例であって、限定的なものではないが、プロセッサ1011、メモリ1012、ストレージ1013、送受信機1014、入力/出力デバイス1015(例えば、ディスプレイ、タッチスクリーン、キーパッド、マイクロフォン、スピーカ等)、カメラ1016、グローバルポジショニングシステム(GPS)センサ1017、センサハブ1017、通知制御スイッチ1019、セルラー送受信機1041、Wi−Fi送受信機1042等の、任意の数のハードウェア構成要素を含み得る。特定の実施形態において、ハードウェア1010は、無線ディスプレイ(WiDi)送受信機、ブルートゥースローエナジー(BLE
)送受信機、近距離通信(NFC)送受信機、802.11Wi−Fi、および802.16WiMax送受信機等を含み得る。本開示は、任意の適切なハードウェア構成要素を企図する。特定の実施形態においては、移動体デバイス300が、位置情報の自己判定を行わない、または自己判定位置情報の共有を行わない場合であっても、ソーシャルネットワーキングシステムにより位置判定が行われ得る。例えば、ソーシャルネットワーキングシステムは、全てのWi−Fiネットワークの物理的マップを保持し、クライアントデバイス300の位置を、そのIPアドレスから判定し得る。本開示は、クライアントデバイス300の位置の判定の任意の適切な方法を企図する。特定の実施形態において、ユーザのユーザデータの一部または全ては、ストレージ1013に記憶され得る。
【0070】
特定の実施形態において、ソフトウェア1020は、カーネル1031、またはクライアントデバイス300上で利用可能なハードウェア構成要素のいくつかに対応する任意の数のデバイスドライバ1032を含み得るオペレーティングシステム1021を含み得る。オペレーティングシステム1021は、クライアントデバイス300が実際にどのタイプのデバイスであるかに基づいて、クライアントデバイス300用に選択され得る。例えば、クライアントデバイス300が移動体デバイス(例えばスマートフォン)である場合、オペレーティングシステム1021は、例としてであって、限定されるものではないが、マイクロソフトのウィンドウズ(登録商標)モバイル、グーグルのアンドロイド、ノキアのシンビアン、アップルのiOS、サムスンのバダ等のモバイルオペレーティングシステムであり得る。
【0071】
特定の実施形態において、コンピュータソフトウェアとして実装されてもよく、クライアントデバイス300上に存在し、クライアントデバイス300上で実行する接続プールマネージャ1022が存在し得る。特定の実施形態において、1または複数のソフトウェアアプリケーション1023が、クライアントデバイス300上で実行され得る。特定の実施形態において、それらは、クライアントデバイス300上にインストールされ、存在する独自の(ネイティブ)アプリケーションであり得る。例えば、1つのアプリケーション(例えばグーグルマップ)により、デバイスユーザが地図を見て、住所および会社を検索し、方向を理解することができ、第2のアプリケーションにより、デバイスユーザが電子メールを読み、送信し、受信することができ、第3のアプリケーション(例えばウェブブラウザ)により、デバイスユーザがインターネットをブラウズおよび検索することができ、第4のアプリケーションにより、デバイスユーザがカメラ1016を用いて写真を撮り、ビデオを録画することができ、第5のアプリケーションにより、デバイスユーザがVoIPまたはセルラーネットワーク通話を受信および開始することができる、などである。特定の実施形態において、デバイスユーザがクライアントデバイス300へのプッシュ通知を管理することを可能にするソフトウェアアプリケーション(通知制御部1025)が存在し得る。各ソフトウェアアプリケーション1020は、ユーザインタフェースを有し、1または複数の特定の機能を実装し得る。各ソフトウェアアプリケーション1020は、個別の機能を実装する1または複数のソフトウェアモジュールを含み得る。通知制御部1025を含むソフトウェアアプリケーション1020の実行形式のコードは、クライアントデバイス300上のコンピュータ可読媒体および非一時的媒体(例えばストレージ1013またはメモリ1012)に記憶され得る。
【0072】
本開示は、任意の適切なストレージを実装する1または複数のコンピュータ可読記憶媒体を企図する。特定の実施形態において、コンピュータ可読記憶媒体には、適切な場合、プロセッサ902の1または複数の部分(例えば、1または複数の内部レジスタまたはキャッシュ)、メモリ904の1または複数の部分、ストレージ906の1または複数の部分、あるいはこれらの組合せとして実装される。特定の実施形態において、コンピュータ可読記憶媒体は、RAMまたはROMとして実装される。特定の実施形態において、コンピュータ可読記憶媒体は、揮発性または持続性のメモリとして実装される。特定の実施形
態において、1または複数のコンピュータ可読記憶媒体は、ソフトウェアを具現化する。本明細書において、ソフトウェアについて参照すると、1または複数のアプリケーション、バイトコード、1または複数のコンピュータプログラム、1または複数の実行ファイル、1または複数の命令、ロジック、マシンコード、1または複数のスクリプト、あるいはソースコードが含まれ、適切な場合、逆も同様である。特定の実施形態において、ソフトウェアは、1または複数のアプリケーションプログラミングインタフェース(API)を含む。本開示は、任意の適切なプログラミング言語またはプログラミング言語の組合せで記述された、またはそうでない場合には表現された、任意の適切なソフトウェアを企図する。特定の実施形態において、ソフトウェアは、ソースコードまたはオブジェクトコードとして表現される。特定の実施形態において、ソフトウェアは、例えば、C、Perl、またはその適切な拡張等の、ハイレベルプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、アセンブリ言語(すなわちマシンコード)等のローレベルプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、JAVA(登録商標)、C、またはC++で表現される。特定の実施形態において、ソフトウェアは、ハイパーテキストマークアップ言語(HTML)、エクステンシブルマークアップ言語(XML)、または他の適切なマークアップ言語で表現される。
【0073】
本明細書において、コンピュータ可読非一時的記憶媒体について参照すると、適切な場合、半導体ベースまたは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)等)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカード、セキュアデジタルドライブ、他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの適切な組合せが含まれ得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。本明細書において、「または」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、包含的であって排他的ではない。したがって、本明細書において「AまたはB」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、「A、B、またはその両方」を意味する。さらに、「および」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、共同的および個別的(joint and several)の両方である。したがって、ここで「AおよびB」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、「AおよびB、共同的にまたは個別的に」を意味する。
【0074】
本開示は、当業者が想到し得る、例示的な実施形態に対する全ての変更形態、置換形態、変形形態、代替形態および修正形態を含む。同様に、適切な場合、添付の特許請求の範囲は、当業者が想到し得る、例示的な実施形態に対する全ての変更形態、置換形態、変形形態、代替形態および修正形態を含む。さらに、添付の特許請求の範囲において、特定の機能を実行するよう、適用され、配置され、有能とされ、構成され、可能とされ、動作可能であり、または動作する、装置もしくはシステム、または装置もしくはシステムの構成要素について参照すると、それまたはその特定の機能が起動され、有効にされ、またはロック解除されているかどうかにかかわらず、装置、システムまたは構成要素が、そのように適用され、配置され、可能とされ、構成され、有効とされ、動作可能であり、または動作する限り、その装置、システム、構成要素が含まれる。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10