(57)【要約】  一実施形態において、Ｗｉ−Ｆｉホットスポットに接続する移動体デバイスは、まず、公衆ＩＰネットワークの１または複数の外部エンドポイントに接続チェックメッセージを送信することにより、無線接続がキャプティブポータルのウォールドガーデンにトラップされるかどうかを判定する接続チェックを行う。応答が受信されなければ、移動体デバイスは、キャプティブポータル状態にあると判定し、キャプティブポータルのポータルページを表示する移動体デバイスのＷｉ−Ｆｉ状態トラッカーにバインドされたブラウザウィンドウを生成する。このようにして、移動体デバイスは、Ｗｉ−Ｆｉインタフェースが公衆ＩＰネットワークに確実にアクセスし得るまで、無線セルラーインタフェースからＷｉ−Ｆｉインタフェースへトラフィックオフロードを行わず、これにより、移動体アプリケーションにおけるデータの中断を防止する。
2015502125.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の非一時的コンピュータ可読記憶媒体であって、
１または複数のコンピューティングシステムによって実行されたときに、
第１の無線インタフェースによって、第１の無線データネットワークとの第１の接続を維持し、
前記第１の接続を維持しつつ、第２の無線インタフェースによって、第２の無線データネットワークとの第２の接続を開始し、
無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかの判定を行うよう動作可能なロジックを具現化しており、
前記判定は、
前記第２の接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と実質的に同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記第２の接続がキャプティブポータル状態にあると識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記第２の接続がキャプティブポータル状態にないと識別するステップとを含む、媒体。
【請求項２】
実行されたときに、
肯定的判定に応答して、前記第２の無線データネットワークによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたトラフィックを前記第２のインタフェースにバインドするよう動作可能な命令をさらに含む、請求項１に記載の媒体。
【請求項３】
実行されたときに、
前記ユーザインタフェースによって、認証証明書を受信し、
前記ポータルに前記認証証明書を提出し、
前記ポータルからの認証許可メッセージ受信に応答して、前記第２のインタフェースに前記第１のインタフェースに対するデータのトラフィックオフロードを行うよう動作可能な命令をさらに含む、請求項２に記載の媒体。
【請求項４】
実行されたときに、
前記無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかを周期的に判定し、
肯定的判定に応答して、
前記第２の無線データネットワークによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたトラフィックを前記第２のインタフェースにバインドするよう動作可能な命令をさらに含む、請求項３に記載の媒体。
【請求項５】
前記コンテンツは、アクセスの加入契約を更新するユーザプロンプトを含む、請求項４に記載の媒体。
【請求項６】
実行されたときに、
前記第２の接続の１または複数のプロパティを継続的に監視し、
前記第２の接続の１または複数のプロパティに基づいて前記第２の状態を終了し、
前記第１のインタフェースに全てのトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項５に記載の媒体。
【請求項７】
実行されたときに、
否定的判定に応答して、前記第２のインタフェースに前記第１のインタフェースに対するデータのトラフィックオフロードを行うよう動作可能な命令をさらに含む、請求項１に記載の媒体。
【請求項８】
実行されたときに、
前記無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかを周期的に判定し、
肯定的判定に応答して、
前記第２の無線データネットワークによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたトラフィックを前記第２のインタフェースにバインドするよう動作可能な命令をさらに含む、請求項７に記載の媒体。
【請求項９】
前記コンテンツは、アクセスの加入契約を更新するユーザプロンプトを含む、請求項８に記載の媒体。
【請求項１０】
実行されたときに、
前記第２の接続の１または複数のプロパティを継続的に監視し、
前記第２の接続の１または複数のプロパティに基づいて前記第２の状態を終了し、
前記第１のインタフェースに全てのトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項９に記載の媒体。
【請求項１１】
実行されたときに、
前記第２の接続の１または複数のプロパティを継続的に監視し、
前記第２の接続の１または複数のプロパティに基づいて前記第２の状態を終了し、
前記第１のインタフェースに全てのトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項１に記載の媒体。
【請求項１２】
装置であって、
１または複数のプロセッサと、
第１の無線インタフェースと、
第２の無線インタフェースと、
前記１または複数のプロセッサによって実行されたときに、
前記第１の無線インタフェースによって、第１の無線データネットワークとの第１の接続を維持し、
前記第１の接続を維持しつつ、前記第２の無線インタフェースによって、第２の無線データネットワークとの第２の接続を開始し、
無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかの判定を行うよう動作可能なロジックを具現化する１または複数の非一時的コンピュータ可読記憶媒体と、を備え、
前記判定は、
前記第２の接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と実質的に同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記第２の接続がキャプティブポータル状態にあると識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記第２の接続がキャプティブポータル状態にないと識別するステップと、を含む装置。
【請求項１３】
前記１または複数のプロセッサにより実行されたときに、前記１または複数の媒体が、
肯定的判定に応答して、前記第２の無線データネットワークによってホストされるポー
タルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたトラフィックを前記第２のインタフェースにバインドするよう動作可能な命令をさらに含む、請求項１２に記載の装置。
【請求項１４】
前記１または複数のプロセッサにより実行されたときに、前記１または複数の媒体が、
前記ユーザインタフェースによって、認証証明書を受信し、
前記ポータルに前記認証証明書を送信し、
前記ポータルからの認証許可メッセージ受信に応答して、前記第２のインタフェースに前記第１のインタフェースに対するデータのトラフィックオフロードを行うよう動作可能な命令をさらに含む、請求項１２に記載の装置。
【請求項１５】
実行されたときに、
前記無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかを周期的に判定し、
肯定的判定に応答して、
前記第２の無線データネットワークによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたトラフィックを前記第２のインタフェースにバインドするよう動作可能な命令をさらに含む、請求項１４に記載の装置。
【請求項１６】
前記コンテンツは、アクセスの加入契約を更新するユーザプロンプトを含む、請求項１５に記載の装置。
【請求項１７】
前記１または複数のプロセッサによって実行されたときに、前記１または複数の媒体が、
前記第２の接続の１または複数のプロパティを継続的に監視し、
前記第２の接続の１または複数のプロパティに基づいて前記第２の接続を終了し、
前記第１のインタフェースに全てのトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項１６に記載の装置。
【請求項１８】
前記１または複数のプロセッサによって実行されたときに、前記１または複数の媒体が、
否定的判定に応答して、前記第２のインタフェースに前記第１のインタフェースに対するデータのトラフィックオフロードを行うよう動作可能な命令をさらに含む、請求項１２に記載の装置。
【請求項１９】
前記１または複数のプロセッサによって実行されたときに、前記媒体が
前記無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかを周期的に判定し、
肯定的判定に応答して、
前記第２の無線データネットワークによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたトラフィックを前記第２のインタフェースにバンドするよう動作可能な命令をさらに含む、請求項１８に記載の装置。
【請求項２０】
１または複数のコンピューティングシステムによって、
第１の無線インタフェースによって、第１の無線データネットワークとの第１の接続を維持するステップと、
前記第１の接続を維持しつつ、第２の無線インタフェースによって、第２のデータネットワークとの第２の接続を開始するステップと、
無線ネットワーク状態トラッカーによって、前記第２の接続がキャプティブポータル状態にあるかどうかの判定を行うステップとを含む方法であって、
前記判定は、
前記第２の接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と実質的に同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記第２の接続がキャプティブポータル状態にあると識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記第２の接続がキャプティブポータル状態にないと識別するステップと、を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、無線ネットワークへの接続に関する。
【背景技術】
【０００２】
移動体デバイスには、１または複数のセルラーネットワークにアクセスする送受信機（例えばＧＰＲＳ（汎用パケットサービス）、ＥＤＧＥ（ＧＳＭ（登録商標）進化型高速データレート）、３ＧＰＰ（第３世代パートナーシッププロジェクト）、３ＧＰＰ２、およびＣＤＭＡ２０００（符号分割多重アクセス））、ならびに電気電子技術者協会（ＩＥＥＥ）８０２．１１（Ｗｉ−Ｆｉ）ネットワーク、およびＩＥＥＥ８０２．１６（ＷｉＭＡＸ）ネットワークなどの１または複数の無線ローカルエリアネットワーク（ＷＬＡＮ）にアクセスする送受信機などの、複数の通信インタフェースを搭載することができる。帯域幅、信号強度、データ通信料の回避、バッテリー（寿命）の温存、およびその他の理由により、多くの移動体デバイスが、任意の利用可能な無線ネットワークに自動的に接続し、それを通じて全てのデータを中継（ルーティング）するよう構成される。
【０００３】
しかしながら、全てのＷＬＡＮが無料ではない。多くのＷＬＡＮは、移動体デバイスのユーザが、典型的には、支払情報入力、ログイン、パスワード証明書、またはプロバイダサービス条項への同意によって認証を行うまで、インターネット（またはその他のネットワーク）へのアクセスを防止するウェブポータル（キャプティブポータルとも呼ばれる）を、多くのＷＬＡＮのデフォルトゲートウェイまたはサーバでホストする。
【０００４】
キャプティブポータル技術では、インターネットを正常に使用する前に、ネットワーク上のハイパーテキストトランスファプロトコル（ＨＴＴＰ）クライアントが、特別なウェブページ（通常は認証目的で）を見ることを多くの場合強制する。キャプティブポータルは、ウェブブラウザを認証デバイスへと変更する。ユーザがブラウザを開き、インターネットへのアクセスを試みるまで、アドレスまたはポートにかかわらず、全てのパケットのインターセプトにより、これは行われ得る。その時に、認証もしくは支払を要求するウェブページ、またはユーザの同意を要する使用承諾ポリシーを表示するウェブページに、ブラウザのリダイレクトを行ってもよい。認証が成功するまで、ユーザデバイスは、ポータルの「ウォールドガーデン（Ｗａｌｌｅｄ  ｇａｒｄｅｎ）」に「トラップ（囚われる）」され得る。キャプティブポータルは、度々Ｗｉ−Ｆｉホットスポットで使用され、有線アクセスを制御するために（例えば、集合住宅で、ホテルの客室で、ビジネスセンタで、または「解放された（オープンな）」イーサネット（登録商標）ジャックで）使用されることもある。キャプティブポータルには、ＨＴＴＰリダイレクト、ＩＰリダイレクト、およびドメインネームサーバ（ＤＮＳ）リダイレクトなどの、多様なパケットインターセプト技術を用いてもよい。
【図面の簡単な説明】
【０００５】
【図１Ａ】マルチインタフェース移動体デバイスのための例示的なクライアントサーバ環境を示す図。
【図１Ｂ】例示的な移動体ＩＰハンドオフを示す図。
【図２】キャプティブポータル状態による例示的なデータ接続の結果を示す図。
【図３】例示的なキャプティブポータル状態の検出機能および回避機能が実装された例示的な移動体デバイスの例示的なアプリケーションモジュールを示す図。
【図４】キャプティブポータル状態を検出および回避するための例示的な方法を示す図。
【図５】キャプティブポータル状態を検出するための例示的な方法を示す図。
【図６】例示的なキャプティブポータル状態の検出および回避を実装している移動体デバイスの例示的な状態図を示す図。
【図７】例示的な移動体デバイスインタフェースを示す図。
【図８】例示的なネットワーク環境を示す図。
【図９】例示的なコンピュータシステムを示す図。
【図１０】例示的な移動体デバイスを示す図。
【発明を実施するための形態】
【０００６】
特定の実施形態において、マルチインタフェース移動体デバイス、または他のクライアントデバイスは、特定のＷＬＡＮへ接続されると、接続チェックを公衆ＩＰネットワークのエンドポイントに送信し、ＷＬＡＮを通じてデバイスがインターネットにフルにアクセスできることを示す肯定応答（ＡＣＫ）をエンドポイントから受信した後に、単に無線セルラーインタフェースからＷＬＡＮインタフェースへトラフィックオフロードを行ってもよい。特定の実施形態において、移動体デバイスは、キャプティブポータルのウォールドガーデンにトラップされたことを検出すると、ブラウザウィンドウまたはデバイスのＷＬＡＮインタフェースにバインドされたユーザインタフェースを生成してもよく、その結果、移動体デバイスは、無線セルラーインタフェースによってインターネットへのデータ接続を維持しつつ、同時に、ポータル認証を行ってもよい。
【０００７】
移動体アプリケーションが普及するにつれ、ウェブブラウザは、それを通じて移動体デバイスがインターネットにアクセスするだけの手段に留まらない。天気、交通、株価更新、地図、インスタントメッセージ等を受信する目的で、専用アプリケーションがアプリケーションサーバへのＴＣＰ／ＩＰ接続を確立（オープン）することができる。とりわけ懸念されるのは、専用の（非ブラウザベースの）ソーシャルネットワーキングアプリケーションの使用である。現代のユーザの生活におけるソーシャルネットワーキングの浸透により、多くのユーザが、興味のあるニュース、イベント、興味のあるスポット、メッセージング、およびその他のソーシャルデータについて、ソーシャルネットワーキングシステムからの更新に専ら依存しており、ユーザは、インターネットへのポータルとしても、また自分自身の個人的生活を管理するためのポータルとしても、ソーシャルネットワークに依存している。特定の実装形態においては、適切なソーシャルデータを即時に確実にユーザに通知するため、ソーシャルネットワーキングアプリケーションは、仮想プライベートネットワーク（ＶＰＮ）トンネルまたは“常時オン”ＴＣＰ／ＩＰ接続によって通知チャネルを維持してもよい。
【０００８】
特定の実施形態においては、例えばソーシャルネットワーキングウェブサイトとして実装されるソーシャルネットワーキングシステムは、そのユーザのクライアントデバイスにプッシュ通信を行う。概して、ソーシャルネットワークは、友達関係、親族関係、共通の興味、金融取引、嫌悪感、または信条、知識もしくは名声による関係等の、１または複数のタイプの相互依存、すなわち関係により結ばれている個人または機関等のエンティティにより構成されるソーシャル構造体である。さらに近年では、ソーシャルネットワークは、インターネットを利用している。ソーシャルネットワーキングシステムは、ソーシャルネットワーキングウェブサイトの形態としてインターネット上に存在する。このようなソーシャルネットワーキングウェブサイトにより、一般にウェブサイトユーザと呼ばれるそのメンバーは、各種のソーシャルアクティビティを行うことができる。例えば、ｗｗｗ．ｆａｃｅｂｏｏｋ．ｃｏｍにてフェースブック（登録商標）社（Ｆａｃｅｂｏｏｋ，Ｉｎｃ）により運営されるソーシャルネットワーキングウェブサイトにより、そのユーザは、電子メール、インスタントメッセージ、もしくはブログ投稿により友達と通信する、ソーシャルイベントを催す、写真を共有する、友達または興味のあるイベントのニュースを受信する、ゲームをするなどのことができる。
【０００９】
例えば、限定されるものではないが、システム更新メッセージ、ソフトウェア更新メッセージ、広告、警告、ユーザアカウント通知、ソーシャルネットワーキングメッセージ、サービス契約更新、または異なる種類の通信の組合せなどのクライアントデバイスにプッシュ配信され得る各種の通信が存在する。個々の通知の内容は多様であり得る。通知内容は度々、人間のエンティティまたは人間以外のエンティティ（例えば、機関、場所、製品、ソフトウェアアプリケーション、映画、トピック等）であってもよいエンティティに関し得る。通知は、ソーシャルネットワーキングシステムから（例えば、ソーシャル情報またはソーシャル上のつながり相手に関する通知が）、またはサードパーティから（例えば、サードパーティの製品またはサービスに関する通知が）発信され得る。通知チャネルについてのさらなる情報については、「ユーザデバイスにプッシュ配信された通知の管理（Ｍａｎａｇｉｎｇ  Ｎｏｔｉｆｉｃａｔｉｏｎｓ  Ｐｕｓｈｅｄ  ｔｏ  Ｕｓｅｒ  Ｄｅｖｉｃｅｓ）」と題された、２０１１年４月２８日に出願された本出願人による米国特許出願第１３／０９６，１８４号を参照されたい。これは参照により本願明細書にそのすべてが援用される。
【００１０】
ソーシャルネットワーキングアプリケーションおよび前述のソーシャルネットワーキング通知チャネル等の各種の非ブラウザベースの移動体アプリケーションの利用が増大しているため、ユーザは度々、キャプティブポータルのウォールドガーデンにトラップされたことに気づかない。その結果、通知チャネルを通じたソーシャルネットワーキングシステムからの通知等の、非ブラウザベースの移動体アプリケーションからの有用な情報を、ユーザが見逃してしまう場合がある。
【００１１】
図１Ａは、マルチインタフェース移動体デバイス１０５のための例示的なクライアントサーバ環境を示す図である。移動体デバイス１０５は、ＲＦ送受信機タワー１０４を通じた無線セルラーネットワーク１０２との通信、および無線アクセスポイント、ルータ、またはリピータ（図示せず）を通じた無線ＬＡＮ１０３への通信のための複数のインタフェースを含んでよい。無線セルラーネットワーク１０２は、ＧＳＭベースのネットワーク（例えばＧＰＲＳ、ＥＤＧＥ、ＵＭＴＳ、ＨＤＳＰＡ／ＨＳＵＰＡ、ＬＴＥ、３ＧＰＰ、３ＧＰＰ２）、ＣＤＭＡベースのネットワーク（ＣＤＭＡ２０００、ＷＣＤＭＡ（登録商標）、ＥＶＤＯ、ＬＴＥ等）、または任意の適切なセルラーデータ接続であってもよい。ＷＬＡＮ１０３は、ＩＥＥＥ８０２．１１、Ｗｉ−Ｆｉ  ＬＡＮ、８０２．１６ＷｉＭＡＸ
ＬＡＮ、または任意の適切なＷＬＡＮであってもよい。特定の実施形態においては、移動体デバイス１０５は、ブルートゥースまたはウルトラワイドバンドパーソナルエリアネットワークとの通信のためなどの他の送受信機を含んでもよい。特定の実施形態においては、移動体デバイス１０５は、各種のメトロポリタンエリアネットワークとの通信のための１または複数の送受信機を含んでもよい。本開示は、任意の適切なネットワークプロトコルを企図する。
【００１２】
移動体デバイス１０５は、インターネット１０１、および無線セルラーネットワーク１０２または無線ＬＡＮ１０３のうちの１つによって、ローカルブラウザ、または各サービス専用のアプリケーションを通じて、各種のサードパーティサーバ１００Ａ〜Ｄとの通信を維持する。例えば通常動作時においては、移動体デバイス１０５は、そのキャリアの無線セルラーネットワーク１０２およびインターネット１０１によって、移動体デバイスに存在するソーシャルネットワーキングアプリケーションからソーシャルネットワーキングシステムサーバ１００Ａへの接続を維持し得る。前述のように、この接続は、ソーシャルネットワーキングシステムからの重要な更新およびコンテンツを受信するために常時オンの通知チャネルであってもよい。同様に、移動体デバイス１０５は、同じ経路を通じて、ストリーミングミュージックまたはビデオを受信するために、例えばＰａｎｄｏｒａ、ＹｏｕＴｕｂｅ（登録商標）、Ｓｐｏｔｉｆｙ、またはＳｌａｃｋｅｒ  Ｒａｄｉｏ等のス
トリーミングオーディオアプリケーションとストリーミングコンテンツサーバ１００Ｂとの間の接続を維持し得る。別の例として、移動体デバイス１０５は、無線セルラーネットワーク１０２によって、Ｇｏｏｇｌｅ  Ｔａｌｋ、ＡＯＬ  Ｉｎｓｔａｎｔ  Ｍｅｓｓｅｎｇｅｒ、Ｊａｂｂｅｒ、ＩＣＱ、Ｙａｈｏｏ！Ｍｅｓｓｅｎｇｅｒ等の、移動体デバイス１０５に存在するチャットクライアントとメッセージングサーバ１００Ｃとの間の接続を維持し得る。本開示は、インターネット１０１を通じて移動体デバイス１０５とパケットを送受信する任意の適切なサーバ１００Ｄを企図する。
【００１３】
特定の状況において、移動体デバイス１０５は、（物理的媒体１０４ａを通じた）無線セルラーネットワーク１０４から（物理的媒体１０３ａを通じた）無線ＬＡＮ１０３に切替（スイッチオーバ）られてもよい。特定の実施形態において、移動体デバイス１０５は、範囲内の任意の無線ネットワークに自動的に接続するよう構成される。特定の実施形態において、移動体デバイス１０５は、いくつかのパフォーマンスファクタに基づいて、無線ＬＡＮ１０３に切替られる。例えば、移動体デバイス１０５は、信号強度が所定の閾値を上回った場合にのみ、またはＷＬＡＮが所定の帯域幅要件を満たすときにのみ、ＷＬＡＮ１０３に接続されてもよい。特定の実施形態において、移動体デバイス１０５は、バッテリー（寿命）を温存するために、または超過データ請求を回避するために、ＷＬＡＮ１０３に自動的に接続されてもよい。特定の実施形態において、移動体デバイス１０５は、明示的なユーザ指示があった後にのみ、ＷＬＡＮ１０３に接続されてもよい。本開示は、利用可能な無線ネットワークへの任意の適切な接続方法を企図する。
【００１４】
図１Ｂは、図１Ａと同様のネットワークを示す図であり、移動体デバイス１０５が、移動体ＩＰを使用する点のみが異なる。図１において、移動体デバイス１０５は、無線接続１０４ａおよび１０３ａを独立的に管理し、移動体デバイス１０５は、２つの別個のＩＰアドレスを取得し、インターネット１０１へと接続される。これにより、移動体デバイス１０５が無線セルラーネットワーク１０２から無線ＬＡＮ１０３へと切替られるときに、データの「受渡（ハンドオフ）」が生じず、アプリケーションはサーバ１００Ａ〜１００Ｄに再認証される必要がある。特定の実施形態において、移動体アプリケーションは、この再認証をシームレスに、ユーザによる対話をすることなく行ってもよい。例えば、ＷＬＡＮ１０３への接続後のソーシャルネットワーキングシステムサーバ１００Ａとの初期通信において、ソーシャルネットワーキングアプリケーションは、ソーシャルネットワーキングユーザの識別子およびパスワード等の認証情報を送信してもよい。特定の実施形態において、ソーシャルネットワーキングシステムサーバ１００Ａは、ＭＡＣ認証を行ってもよく、移動体デバイスから受信パケットを受信する限り、ＩＰアドレスにかかわらず、ソーシャルネットワーキングシステムは、移動体デバイス１０５のリクエストに応答してもよい。しかしながら、図１の構成では、ＩＰアドレスの変更は、移動体デバイス１０５に存在するアプリケーションにより行われ、移動体デバイス１０５がＷＬＡＮ１０３に接続されるときに、いわゆるデータの「ハンドオフ」は生じない。
【００１５】
図１Ｂは、ＷＬＡＮ１０３に接続する際にトラフィックオフロードを行うために移動体ＩＰを使用する移動体デバイスを示す。図１Ｂには移動体ＩＰハンドオフを記述しているが、他のＩＰベースのモビリティマネジメントプロトコル（例えば、ＳＩＰベースのモビリティマネジメント）を同様に使用してもよい。モビリティサービスプロバイダ１０６は、例えばセルラーサービスプロバイダ、ホームエンタープライズネットワーク、またはインターネットサービスプロバイダ（ＩＳＰ）等の移動体デバイス１０５のホームネットワークを管理する任意のエンティティであってもよい。セルラーネットワーク１０２は、直接、または標準ＩＰネットワークによって、モビリティサービスプロバイダ１０６に接続される。
【００１６】
一般的には、移動体デバイス１０５がセルラーネットワーク１０２からＷＬＡＮ１０３
に移動する場合、移動体デバイス１０５は、新たなネットワークからＩＰパケットを受信するために使用可能なローカルＩＰアドレスを取得する。移動体デバイス１０５は、この新たなローカルＩＰアドレスを、移動体デバイス１０５自体の移動体ＩＰケアオブアドレス（ＣｏＡ）として用い、新たなＣｏＡをその移動体ＩＰホームエージェント１０７に登録するために移動体ＩＰを用いる。これにより、移動体デバイス１０５は、移動体デバイス１０５のモビリティサービスプロバイダネットワーク１０６にパケットを送信可能な任意の携帯端末または固定端末によって送信されたＩＰパケットであって、移動体デバイス１０５の移動体ＩＰホームアドレスにアドレス指定されたＩＰパケットを受信し続けることができる。移動体デバイス１０５のホームアドレスにアドレス指定されたユーザＩＰパケットは、移動体ＩＰホームエージェント１０７に中継されることになり、移動体ＩＰホームエージェント１０７は、移動体デバイス１０５の現在のＣｏＡに、これらのパケットをトンネルすることになる。３ＧＰＰリリース８は、３ＧとＷｉ−Ｆｉとの間のシームレスなハンドオーバを可能にするために、デュアルスタック移動体ＩＰ（ＤＳＭＩＰ）を導入した。このような技術は当技術分野において周知であり、本明細書においてさらに論じられない。
【００１７】
移動体デバイス１０５が、（図１Ａのように）シームレスなハンドオフを使用するか、または（図１Ａのように）２つの独立した接続を使用するかにかかわらず、ソーシャルネットワーキングアプリケーションおよびチャットクライアント等のアプリケーションはハンドオフを通じて機能するために、ＷＬＡＮ１０３を通じたインターネット１０１への実質的に即時の接続が要求される。キャプティブポータルによるパケットリダイレクトによる中断（すなわち、ウォールドガーデンにトラップされること）は、ハンドオフが行われる時に、移動体デバイス１０５のユーザがブラウザによるウェブサーフィンをしていないことに起因して、度々ユーザには知らせずに、完全な接続の喪失をユーザにもたらす。
【００１８】
図２は、移動体デバイス１０５がキャプティブポータルのウォールドガーデンにトラップされた（本明細書では「キャプティブポータル状態」２０８と称する）ためにデータ接続を喪失することになる例示的なプロセスを示す。
【００１９】
ステップ２０１において、移動体デバイス１０５は、Ｗｉ−Ｆｉネットワークが範囲内に存在しない場合にのみ、セルラーデータモードで動作する。ステップ２０２において、移動体デバイス１０５を操作するユーザは、例えば、ホテル、空港、喫茶店等のＷｉ−Ｆｉホットスポットのカバレッジ内に入る。
【００２０】
ステップ２０３において、移動体デバイスは、Ｗｉ−Ｆｉホットスポットに自動的に接続される。自動的な接続はキャプティブポータル状態２０８に接続することが最も多いが、ユーザが明示的にＷｉ−Ｆｉホットスポットへ接続する命令を発行した場合であっても、移動体デバイス１０５は、キャプティブポータル状態２０８となることもある。例えば、キャプティブポータルを実装するＷｉ−Ｆｉネットワークは、ほぼ公衆専用の、暗号化されていないＷＬＡＮである。したがって、ユーザは、ＷＬＡＮがインターネットへのフルアクセスを提供することを信じてＷＬＡＮへの接続を行い得るが、一方、ユーザのデバイスは実際にはキャプティブポータル状態２０８にトラップされる。
【００２１】
ステップ２０４〜ステップ２０５では、移動体デバイス１０５は、キャプティブポータル状態２０８にトラップされたままである。移動体デバイス１０５からインターネットにアドレス指定されたパケットはＷＬＡＮによって転送されずに、ＷＬＡＮのデフォルトゲートウェイまたはウェブサーバが、ポータルウェブページ用のコンテンツを含むＨＴＴＰ応答を移動体デバイス１０５に与え続ける。非ブラウザ移動体アプリケーションは、このＨＴＴＰ応答を予期していない、またはこのＨＴＴＰ応答に対してレンダリングを行うことができないので、典型的には、非ブラウザ移動体アプリケーションは、パケットを消失
（ドロップ）し、ユーザは無期限にキャプティブポータル状態２０８に留まり続ける。例えば、移動体デバイス１０５のユーザがブラウザウィンドウを開き、ポータルページに誘導（ダイレクト）されない限り、またはユーザのその他の移動体アプリケーションがいずれも更新を受信していないと気づかない限り、ユーザは、自身がキャプティブポータル状態２０８にトラップされていることを決して認識しない可能性がある。
【００２２】
ユーザが最終的に気づき、移動体デバイス１０５のウェブブラウザを開いたとすれば、ステップ２０６において、ユーザは、ユーザネーム、パスワード、支払情報、プロモーションコード、サービス条項への同意等の認証証明書をキャプティブポータルに提供し、ステップ２０７において、データ接続がＷｉ−Ｆｉ接続を通じて回復される。
【００２３】
図３は、特定の実施形態のキャプティブポータル状態の検出および回避機能を実装している移動体デバイス３００に存在する例示的なソフトウェアモジュールを示す。移動体デバイス３００は、接続マネージャアプリケーション３０１およびインターネット接続を要求する各種のユーザアプリケーション３０７を含む。アプリケーション３０７には、前述のように、限定されるものではないが、ウェブブラウザ３０８、ソーシャルネットワーキングアプリケーション３０９、ソーシャルネットワーキング通知チャネル３０９ａ（ソーシャルネットワーキングアプリケーション３０９の構成要素であり得る）、ボイスオーバＩＰ（ＶｏＩＰ）アプリケーション３１０、またはストリーミングビデオアプリケーション３１１が含まれる。本開示は、任意の適切なアプリケーション３１２を企図する。
【００２４】
接続マネージャ３０１は、サードパーティ製アプリケーションであってもよく、またはより典型的には、移動体デバイス３００のオペレーティングシステムに組み込まれたものであってもよい。接続マネージャ３０１は、利用可能なＷｉ−Ｆｉネットワークを能動的に探査するＷｉ−Ｆｉリスナーモジュール３０２を含む。特定の実施形態においては、Ｗｉ−Ｆｉリスナーモジュール３０２は、所定の間隔で探査を行う。特定の実施形態においては、所定の間隔は、移動体デバイス３００の位置、バッテリー寿命、およびその他の要因に基づいて、調節される。本開示は、任意の適切なＷｉ−Ｆｉリスナーモジュール３０２を企図する。
【００２５】
接続マネージャ３０１は、２つの接続状態トラッカー（追跡機能）、すなわち、セルラーデータ接続状態トラッカー３０３およびＷｉ−Ｆｉ接続状態トラッカー３０４を含み、それぞれが関連付けられた無線インタフェースの接続状態をそれぞれ管理する。接続マネージャ３０１が、ブルートゥースやＷｉＭＡＸ等の各種無線インタフェース用の接続状態トラッカーを任意の数だけ有してもよいことは、当業者には明らかであろう。
【００２６】
Ｗｉ−Ｆｉ接続状態マネージャ３０４は、ＷＰＡサブシステム３０５およびコンフィギュレーションパイプライン３０６を含む。ＷＰＡサブシステム３０５は、暗号化、認証等を含む、所与のＷｉ−Ｆｉネットワークの無線物理的媒体へ接続をする役割を担う。特定の実施形態において、ＷＰＡサブシステム３０５は、移動体デバイス３００用の無線ネットワークインタフェースカード（ＮＩＣ）ドライバに含まれていてもよい。コンフィギュレーションパイプライン３０６は、順に実行されるいくつかのプロセスを含み、使用する無線接続を構成する役割を担う。特定の実施形態において、コンフィギュレーションパイプライン３０６の全てのプロセス３０６ａ〜３０６ｃが正常に実行完了するまで、ＷＬＡＮは「使用可能状態」とはみなされない。
【００２７】
ＤＨＣＰプロセス３０６ａには、ダイナミックホストコンフィギュレーションプロトコル（ＤＨＣＰ）が実装され、ＷＬＡＮからＩＰアドレスを取得する役割を担う。ＤＨＣＰは当技術分野では周知であり、本明細書ではさらに論じられない。特定の実施形態においては、コンフィギュレーションパイプライン３０６は、ＷＩＳＰｒ（無線インターネット
サービスプロバイダローミング）プロトコルを実装するソフトウェア処理を含む。ＷＩＳＰｒにより、携帯電話のユーザがキャリア間のローミングを行えるようにするために使用されるものと同様の方法で、ユーザが無線インターネットサービスプロバイダ間のローミングを行うことが可能となる。ＲＡＤＩＵＳサーバは、加入者証明書を認証するのに使用される。特定の実施形態において、ＷＩＳＰｒは、ＸＭＬベースのプロトコルを使用して、認証情報をクライアントデバイスに記憶し、それをホットスポットのＲＡＤＩＵＳサーバに送信して、ユーザがキャプティブポータルと対話する必要性を除去する。しかしながら、このような実施形態において、ＷＬＡＮ自体との接続問題により、ＷＬＡＮが移動体デバイスを認証した後であっても、サービスの中断が発生し得る。
【００２８】
特定の実施形態において、コンフィギュレーションパイプライン３０６は、無線接続を構成するための他のプロセスに対応する。例えば、パイプライン３０６は、以前に使用された認証証明書またはクッキーを記憶するスマートクライアントを含んでもよい。特定の実施形態において、パイプライン３０６は、国際ローミングアクセスプロトコル（ＩＲＡＰ）を実装するプロセスを含んでもよい。本開示は、コンフィギュレーションパイプライン３０６で実行される任意の数の適切なソフトウェア処理を企図する。
【００２９】
前述のように、コンフィギュレーションパイプライン３０６は、Ｗｉ−Ｆｉ接続状態トラッカー３０４により無線接続が「フル接続状態」とみなされる前に、正常に実行されることを要する、一連の（シーケンシャルな）ソフトウェア処理を含む。例えば、典型的には移動体デバイスがＷｉ−Ｆｉネットワークに接続するとき、移動体デバイスはＤＨＣＰプロセス３０６ａを通じてＩＰアドレスを取得し、任意選択でＷＩＳＰｒを通じて必要な任意の認証を行う。特定の実施形態において、キャプティブポータルチェックプロセス３０６ｃは、コンフィギュレーションパイプライン３０６のエンドポイントに付加される。以下により詳しく記載するように、キャプティブポータルチェックプロセス３０６ｃは、無線ネットワーク接続がキャプティブポータル状態にあるかどうかを検出し、キャプティブポータルチェックプロセス３０６ｃがキャプティブポータル状態を検出した場合は、Ｗｉ−Ｆｉ接続状態トラッカー３０４は、デバイスがＷＬＡＮへの「フル接続状態」にあるとはみなさない。
【００３０】
図４は、デュアルインタフェース移動体デバイス３００のためのキャプティブポータル状態の検出および回避の例示的な方法を示す。本方法は、ステップ４０１で開始し、移動体デバイス３００は、ネットワーク１０２等のキャリアのセルラーデータネットワークによってインターネットに接続する。ステップ４０２において、Ｗｉ−Ｆｉリスナー３０２は、前述のように利用可能なＷｉ−Ｆｉネットワークを能動的に探査する。ネットワークが見つからない場合、所定時間後に、またはＷｉ−Ｆｉリスナー３０２のポリシーに従って、プロセスは４０２にループバックを行う。Ｗｉ−Ｆｉネットワークが検出された場合、ステップ４０３に進む。
【００３１】
ステップ４０３において、移動体デバイス３００は、コンフィギュレーションパイプライン３０６の個々のプロセスの実行により、検出されたＷｉ−Ｆｉネットワークのうちの１つに接続する。前述のように、移動体デバイス３００は、検出されたＷｉ−Ｆｉネットワークに自動的に接続されてもよく、または明示的なユーザの命令に応じて接続されてもよい。特定の実施形態において、移動体デバイスは、利用可能なＷｉ−Ｆｉネットワークをランク付けまたはスコア付けし、「最良の」ネットワークとされるネットワークに自動的に接続する。特定の実施形態において、移動体デバイスは、利用可能なＷｉ−Ｆｉネットワークをランク付けまたはスコア付けし、ユーザが明示的な接続命令を発行するために、並び替えられたネットワークのリストをユーザに提供する。特定の実施形態において、移動体デバイス３００は、セルラーデータ接続１０２ａを通じて外部ノードからＷｉ−Ｆｉネットワークスコアを取得してもよい。例えば、移動体デバイス３００は、サードパー
ティサーバに、利用可能なネットワークのＳＳＩＤおよびその物理的位置によるリクエストを送信してもよい。これに応じて、サードパーティサーバは、他のユーザの体験報告に基づいて、識別されたＷｉ−Ｆｉネットワークの各々のスコアを送信してもよい。同様に、移動体デバイス３００が、特定のＷｉ−Ｆｉネットワークに接続するときに、移動体デバイス３００は、帯域幅、レイテンシー、ネットワーク上のデバイス数などのパフォーマンス指標、またはネットワーク品質のユーザ記入式アンケートを送信してもよい。このような実施形態において、Ｗｉ−Ｆｉネットワークの評価およびそれに続くランク付けは、クラウドソーシングによるデータに基づく。本開示は、Ｗｉ−Ｆｉネットワークの選択および接続の任意の適切な手段を企図する。ステップ４０３において、移動体デバイス３００は、コンフィギュレーションパイプライン３０６の最終プロセス以外の全プロセスを実行し、それには、ＤＨＣＰプロセス３０６ａによってＩＰアドレスを取得すること、およびＷＩＳＰｒプロセス３０６ｂによって任意の組み込まれた認証を取得することが含まれる。プロセス４０３〜４０６の間中、移動体デバイス３００は、セルラーデータネットワーク１０２によって、公衆ＩＰネットワークへのデータ接続を維持する。
【００３２】
ステップ４０４において、移動体デバイス３００は、コンフィギュレーションパイプライン３０６のキャプティブポータルチェック３０６ｃを実行する。キャプティブポータルチェック３０６ｃは、図５を参照してより詳細に記述される。Ｗｉ−Ｆｉインタフェースによって移動体デバイス３００がキャプティブポータルに接続されているとキャプティブポータルチェックプロセス３０６ｃが判定すると、ステップ４０５に進む。そうでなければ、ステップ４０６にジャンプし、移動体デバイス３００は、接続されたＷｉ−Ｆｉネットワークを使用して、公衆ＩＰネットワークとの通信を開始する。移動体デバイス３００が移動体ＩＰを使用する実施形態においては、このようなハンドオーバは、Ｗｉ−Ｆｉネットワーク１０３によって、移動体デバイス３００の新たなＣｏＡをホームエージェント１０７へと送信することを含む。
【００３３】
ステップ４０５において、Ｗｉ−Ｆｉ接続がキャプティブポータル状態にあることを検出すると（すなわち、キャプティブポータルのウォールドガーデンにトラップされていると）、移動体デバイス３００はブラウザウィンドウを生成し、キャプティブポータルからポータルページをダウンロードする。特定の実施形態において、移動体データインタフェースを使用する全ての非キャプティブポータルトラフィックは、移動体データインタフェースを通して、中断されずに送受信され続ける。例えば、ＷｉＦｉ接続を有しないエリアからＷｉＦｉカバレッジを有するＷｉＦｉエリアに移動したときに、ユーザがチャットセッション中である場合、トラフィックオフロードが行われるまで、データが移動体デバイスに、および移動体デバイスからチャットサーバへと、移動体データインタフェースを通して流れ続ける。特定の実施形態において、移動体デバイス３００により生成されたブラウザウィンドウは、追加のカスタムユーザインタフェース要素を有してもよい。生成されたブラウザウィンドウは、図７を参照してより詳細に記述される。ステップ４０５において、移動体デバイス３００が２つの共に有効な無線接続および２つのＩＰアドレス（１つは無線セルラーネットワーク１０２用、および１つはＷｉ−Ｆｉネットワーク１０３用）を維持しているので、移動体デバイス３００は、誤送信を防止するために、生成されたブラウザウィンドウを移動体デバイス３００のＷｉ−Ｆｉインタフェースにバインドする。したがって、全てのＨＴＴＰリクエスト、ＨＴＴＰ応答、ＤＮＳリクエスト／応答、またはブラウザウィンドウにより生成された他のオープンソケット接続が、Ｗｉ−Ｆｉインタフェースの利用を強制される。特定の実施形態において、このバインディングは、生成されたブラウザウィンドウのブラウザスタックを変更することにより達成される。本開示は、生成されたブラウザウィンドウからＷｉ−Ｆｉインタフェースへの全てのトラフィックを誘導する任意の適切な方法を企図する。
【００３４】
ステップ４０６において、ユーザは生成されたブラウザウィンドウと対話し、認証証明
書を入力する。前述のように、認証証明書は、ユーザネーム／パスワード、支払情報、およびプロモーションコードから、Ｗｉ−Ｆｉネットワークプロバイダのサービス条項への単なる同意にまで亘り得る。ユーザがキャプティブポータルコンテンツにおける「送信」または「実行」ボタンをクリックすると、検証のために認証証明書がキャプティブポータルに送信される。認証証明書が有効な場合、キャプティブポータルは、実装形態に応じて、ＡＣＫをユーザに送信する。他の実装形態において、キャプティブポータルは、単に移動体デバイス３００のインターネットアクセスを許可する。特定の実施形態において、送信された認証証明書が有効であるとの肯定応答を受信すると、移動体デバイス３００はステップ４０８に進み、Ｗｉ−Ｆｉ接続へトラフィックオフロードを行う。しかしながら、このような実施形態において、キャプティブポータルの公衆ＩＰネットワークへの接続に不具合がある場合、ユーザサービスの中断が依然として存在し得る。
【００３５】
したがって、特定の実施形態において、有効な認証証明書の送信後に、ステップ４０４でのキャプティブポータル状態チェックに戻り、Ｗｉ−Ｆｉ接続が公衆ＩＰネットワークに確実に到達するようにする。
【００３６】
ステップ４０８において、移動体デバイス３００は、Ｗｉ−Ｆｉ接続１０３ａへのデータのトラフィックオフロードを行う。特定の実施形態において、移動体デバイス３００は、Ｗｉ−Ｆｉ接続１０３ａへデータトラフィックの一部分のみのオフロードを行ってもよい。例えば、ＤＳＭＩＰは、アプリケーションベースのオフロードを許可し、その結果、より高帯域幅のネットワークに帯域幅を重要視するアプリケーションのオフロードが行われてもよい。他の例として、ＤＳＭＩＰは、より小さなレイテンシーを受けるネットワークに対して、レイテンシーの影響を受けやすいトラフィック以外のトラフィックのみのオフロードを行ってもよい。特定の実施形態において、トラフィックオフロードは、フローベースであってもよい。例えば、３ＧＰＰのリリース１０では、複数のローカルＣｏＡを単一のＨｏＡへ登録する能力、および異なるＩＰフロー（例えば、ｈｔｔｐ、ビデオ、ＶｏＩＰ等）を異なるＣｏＡへバインドする、または直接ＨｏＡへバンドする能力が導入された。したがって、一部のトラフィックは、移動体デバイス３００のホームエージェント（ＨＡ）１０７（ＶＰＮまたはビデオトラフィック等）にアンカーを付けてもよい一方、一部のトラフィックは、ＨＴＴＰ等のＷＬＡＮを横切る（トラバースする）ことなく完全にＷＬＡＮへオフロードが行われてもよい。本開示は、無線セルラーネットワークインタフェースからＷｉ−Ｆｉインタフェースへ移動体デバイス３００のデータトラフィックの全部または一部のオフロードを行う、任意の適切な方法を企図する。
【００３７】
特定のキャプティブポータルは、キャプティブポータル状態に戻り、接続されたデバイスを所定時間後にそのキャプティブポータルのウォールドガーデンに戻してもよい。例えば、ユーザが、ホットスポットへの１時間パスを購入すると、キャプティブポータルは、１時間パスの期限が切れた時にパケットのリダイレクトを再始動し、ユーザに追加時間を購入するようにさせる。前述のように、多くのユーザがウェブブラウジング以外の目的でインターネットへのデータ接続を要求するため、ユーザは自身のデバイスがインターネット接続を喪失していることに気がつかないことがある。したがって、特定の実施形態において、移動体デバイス３００は、ステップ４０４のキャプティブポータル状態チェックを行い得る。ステップ４０４でキャプティブポータル状態チェックを通過すると、あるいは、ステップ４０８でＷｉ−Ｆｉインタフェースへトラフィックオフロードを行うと、移動体デバイス３００は、次のキャプティブポータル状態チェックまでの時間を表示するタイマーを開始する。タイマーがステップ４０９で時間切れとなると、ステップ４０４に戻り、キャプティブポータル状態チェックを行う。
【００３８】
例えば、ユーザがＷｉ−Ｆｉホットスポットのカバレッジエリアから離れるなどして、移動体デバイス３００が完全にＷｉ−Ｆｉ接続を喪失したときには、図４のプロセスが中
断され得ることは、当業者には明らかである。このような状況では、移動体デバイス３００が全てのデータトラフィックを無線セルラーネットワークインタフェースに戻すことは、同様に明らかである。
【００３９】
本開示は、図４の方法の特定のステップは特定の順序で生じるものとして記述および図示しているが、本開示は、任意の適切な順序で生じる図４の方法の任意の適切なステップを企図する。さらに、本開示は、図４の方法の特定のステップを実行する特定の構成要素を記述および図示しているが、本開示は、図４の方法の任意の適切なステップを実行するための任意の適切な構成要素の任意の適切な組合せを企図する。
【００４０】
図５は、キャプティブポータル状態を検出するための例示的な方法を示す。特定の実施形態において、図５の方法は、コンフィギュレーションパイプライン３０６におけるキャプティブポータル状態検出プロセス３０６ｃにより実装される。特定の実施形態において、移動体デバイス３００は、コンフィギュレーションパイプライン３０６における他の不必要なプロセスをスキップし得る。例えば、移動体デバイスが、既存のＷｉ−Ｆｉ接続についてキャプティブポータル状態チェックを（ステップ４０９におけるように）周期的に行う場合、ＤＨＣＰプロセス３０６ａまたはＷＩＳＰｒ認証３０６ｂを行う必要はない。特定の実施形態において、完全なコンフィギュレーションパイプライン３０６は、Ｗｉ−Ｆｉネットワークへの最初の接続時にのみ実行される。
【００４１】
本方法は、ステップ５０１において開始し、移動体デバイスが、所定の一組のルールまたは内部タイマーに基づいて、キャプティブポータル状態にあるかどうかのチェックを行うことを決定する。ステップ５０２において、移動体デバイス３００は、接続チェックをインターネットの外部ノードに送信する。特定の実施形態において、接続チェックは、ｗｗｗ．ｆａｃｅｂｏｏｋ．ｃｏｍ等の周知なドメインに対するものであってもよい。特定の実施形態において、外部ノードは、アカマイ（Ａｋａｍａｉ）等の分散コンテンツデリバリーネットワークの１または複数のサーバであってもよい。特定の実施形態において、接続チェックは、ｐｉｎｇリクエストと同程度に単純であってもよい。特定の実施形態において、接続チェックは、任意の識別子が応答に含まれることを要求してもよい。特定の実施形態において、応答は、キャッシュ不可能な一意の識別子を含んでもよい。本開示は、任意の適切な接続チェックリクエスト、または応答メッセージを企図する。
【００４２】
ステップ５０３において、移動体デバイス３００は、接続チェックメッセージの送信と実質的に同時にタイマーを開始する。特定の実施形態において、タイマーは、所定のタイムアウト期間、例えば４００ミリ秒で開始するカウントダウンタイマーであってもよい。接続チェック応答メッセージがタイマーの時間切れの前に受信されると（ステップ５０４）、ステップ５０５において移動体デバイスは、Ｗｉ−Ｆｉ接続がキャプティブポータル状態にないと判定し、ここで本方法は終了してもよい。一方、タイムアウトが満了する前に応答が受信されないと、移動体デバイス３００１は、Ｗｉ−Ｆｉ接続がキャプティブポータル状態にあると識別し（ステップ５０６）、ここで本方法は終了してもよい。
【００４３】
本開示は、図５の方法の特定のステップは特定の順序で生じるものとして記述および図示されているが、本開示は、任意の適切な順序で生じる図５の方法の任意の適切なステップを企図する。さらに、本開示は、図５の方法の特定のステップを実行するための特定の構成要素を記述および図示しているが、本開示は、図５の方法の任意の適切なステップを実行する任意の適切な構成要素の任意の適切な組合せを企図する。
【００４４】
図６は、図４および図５の方法を状態図で示したものである。当業者であれば理解されるように、図４の方法は、一度だけ実行される単なるルーチンではなく、Ｗｉ−Ｆｉ接続とＷｉ−Ｆｉネットワークを通じた公衆ＩＰネットワークアクセスとの両方を継続的に監
視する。
【００４５】
図６の状態図は、４つの状態を含む。状態Ｓ０では、移動体デバイス３００は、公衆ＩＰネットワークにそのセルラーインタフェースのみを通じて接続される。この状態の間、移動体デバイス３００のＷｉ−Ｆｉリスナーは、前述のように、探査メッセージを送信する、またはブロードキャストＳＳＩＤを探査することにより、利用可能なＷｉ−Ｆｉネットワークを周期的にチェックする。ネットワークが見つからなければ、移動体デバイス３００は状態Ｓ０のままである。ネットワークが見つかれば、移動体デバイス３００はネットワークに接続し、状態Ｓ１に遷移する。
【００４６】
状態Ｓ１において、移動体デバイス３００は、キャリアの無線セルラーデータネットワークおよび検出されたＷｉ−Ｆｉネットワークに接続されるが、いずれのトラフィックもＷｉ−Ｆｉインタフェースにオフロードを行っていない。Ｓ１において、移動体デバイス３００は、図５のキャプティブポータル状態チェックを実行し、キャプティブポータルのウォールドガーデンにトラップされたかどうかを判定する。トラップされていなければ、移動体デバイスは、状態Ｓ３に遷移する。移動体デバイス３００が、そのＷｉ−Ｆｉ接続がキャプティブポータル状態にトラップされていると判定した場合、状態Ｓ２に遷移する。
【００４７】
状態Ｓ３において、移動体デバイス３００が、（前述のように）トラフィックの一部または全部をＷｉ−Ｆｉネットワークへシフトする。さらに、移動体デバイス３００は、時間切れの時に他のキャプティブポータル状態チェックを実行する信号を発するタイマーを開始する。
【００４８】
状態Ｓ２において、移動体デバイス３００は、Ｗｉ−Ｆｉインタフェースにバインドされており、接続されたキャプティブポータルからダウンロードされたコンテンツを含むブラウザウィンドウを生成する。ユーザは前述のように、認証情報を提供してもよい。
【００４９】
当業者には明らかなように、ユーザがインターネットアクセスのために料金を支払うことを望まない場合は、Ｗｉ−Ｆｉを用いるよりもユーザはセルラーネットワークに留まることを単に選択することもある。このような実施形態においては、（図７を参照して説明されるように）ユーザがＷｉ−Ｆｉネットワークへの接続を断る場合、移動体デバイス３００は状態Ｓ０に戻り、ユーザが断ったネットワーク以外のネットワークを求めて周期的にスキャンを行う。前述のように、特定の実施形態において、状態Ｓ１、Ｓ２、またはＳ３のいずれかにおいて、移動体デバイス３００がＷｉ−Ｆｉ接続を喪失した場合、移動体デバイス３００は単に、全てのトラフィックを無線セルラーインタフェースに戻し、状態Ｓ０に戻る。
【００５０】
図７は、キャプティブポータル状態の検出（図４のステップ４０５または図６の状態Ｓ２）に応じて生成されたブラウザウィンドウ７０１を表示する移動体デバイス３００を示す。特定の実施形態において、ブラウザウィンドウ７０１は、移動体デバイス３００により生成されたユーザインタフェースエリア７０２、およびキャプティブポータルのゲートウェイまたはサーバから取得されたコンテンツエリア７０６を含む。特定の実施形態において、移動体デバイス３００は、コンテンツエリアに表示されたコンテンツの制御を行うことができず、単にキャプティブポータルからコンテンツをダウンロードし、レンダリングを行うだけである。
【００５１】
ユーザインタフェースエリア７０２は、特定の実施形態において、無線ネットワークの名前（この場合、「Ｂｏｉｎｇｏ  ＨｏｔＳｐｏｔ」）を含む。特定の実施形態において、名前は、ネットワークのＳＳＩＤであってもよい。特定の実施形態において、ネットワ
ークの名前は、ＳＳＩＤおよび移動体デバイス３００の位置に基づいて、サードパーティサービスから取得されてもよい。本開示は、現在の無線ネットワークを識別する任意の適切な方法を企図する。特定の実施形態において、ユーザインタフェースエリア７０２は、終了ボタン７０３も含む。このような実施形態において、ユーザが終了ボタン７０３を選択すると、移動体デバイスは、ブラウザウィンドウ７０２を閉じ、全てのデータトラフィックを無線セルラーインタフェースに残す。特定の実施形態において、終了ボタン７０３を選択すると、移動体デバイスは、利用可能なネットワークのリストから現在のネットワークを除外する。特定の実施形態において、移動体デバイス３００は、今後、終了されたいずれのネットワークにも接続しない。特定の実施形態において、終了ボタン７０３を選択すると、移動体デバイス３００は、「このネットワークを今後表示しない」等の、現在のネットワークに関する取り得るアクションのメニューを表示する。本開示は、ブラウザウィンドウ７０１を終了させる、もしくは閉じる、またはネットワークベースのポリシーを現在接続されたネットワークに適用する任意の適切な方法を企図する。特定の実施形態において、ユーザインタフェースエリア７０２は、標準ナビゲーションバー７０４および「実行」ボタン７０５も含む。当業者に明らかなように、ナビゲーションバー７０４は現在表示中のコンテンツのＵＲＬを表示し、「実行」ボタン７０５は、ナビゲーションバー７０４のＵＲＬを求めてｈｔｔｐのリクエストを送信する。
【００５２】
コンテンツエリア７０６は、前述のように、キャプティブポータルから取得されたコンテンツ、概して、キャプティブポータルのゲートウェイまたはキャプティブポータルに接続された別個のサーバにローカルに記憶されたｈｔｍｌウェブページを、単に表示している。例示目的であり、限定されるものではないが、姓、名、クレジットカード番号、有効期限、および請求先住所を含む支払処理用の複数フィールドを含むコンテンツエリア７０６のキャプティブポータルページを、図７は示している。特定の実装形態において、キャプティブポータルページは単に、無線ネットワークプロバイダのサービス／使用の条項へのユーザの同意を示す単一のボタンを有する、一組の条項および条件を列挙するだけでもよい。教示目的で、コンテンツエリア７０６は、選択されると、ユーザのクレジットカードへ表示額を請求し、表示期間中の公衆ＩＰネットワークへのアクセスを移動体デバイス３００に許可する、各種のアクセス選択肢７０７、７０８および７０９も含む。認証に成功すると、キャプティブポータルは、インターネットへのユーザのアクセスを許可し、移動体デバイス３００は、Ｗｉ−Ｆｉネットワークへ一部または全てのデータトラフィックのオフロードを行う前に、接続チェック（ステップ４０４および状態Ｓ１）の実行へと進んでよい。
【００５３】
特定の実施形態は、ネットワーク環境において実装されてもよい。図８は、例示的なネットワーク環境８００を示す。ネットワーク環境８００は、１または複数のサーバ８２０および１または複数のクライアント８３０を互いに結合させるネットワーク８１０を含む。特定の実施形態において、ネットワーク８１０は、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部、もしくは他のネットワーク８１０、または同様のネットワーク８１０の２以上の組合せである。本開示は、任意の適切なネットワーク８１０を企図する。
【００５４】
１または複数のリンク８５０は、サーバ８２０またはクライアント８３０を、ネットワーク８１０に結合させる。特定の実施形態において、１または複数のリンク８５０はそれぞれ、１または複数の有線、無線または光リンク８５０を含む。特定の実施形態において、１または複数のリンク８５０はそれぞれ、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＭＡＮ、インターネットの一部、もしくは他のリンク８５０、または同様のリンク８５０の２以上の組合せを含む。本開示は、サーバ８２０および
クライアント８３０をネットワーク８１０に結合させ、任意の適切なリンク８５０を企図する。
【００５５】
特定の実施形態において、各サーバ８２０は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンタにまたがる分散型サーバであってもよい。サーバ８２０は、例えば、限定されるものではないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、エクスチェンジサーバ、データベースサーバ、またはプロキシサーバ等の様々な種類のものであってもよい。特定の実施形態において、各サーバ８２０は、サーバ８２０により実装され、または対応している適切な機能を実行するためのハードウェア、ソフトウェア、または組込みロジック構成要素、あるいはこのような２以上の構成要素の組合せを含んでよい。例えば、ウェブサーバは、一般に、ウェブページまたはウェブページの特定の要素を含むウェブサイトをホストすることができる。より具体的には、ウェブサーバは、ＨＴＭＬファイルもしくは他のファイルタイプをホストし、またはリクエストに応じてファイルを動的に生成もしくは構成し、ＨＴＴＰもしくはクライアント８３０からの他のリクエストに応答して、それらをクライアント８３０に通信する。メールサーバは、一般に、電子メールサービスを各種クライアント８３０に提供することができる。データベースサーバは、一般に、１または複数のデータストアに記憶されたデータを管理するためのインタフェースを提供することができる。特定の実施形態において、ソーシャルネットワーキングウェブサイトを実装するソーシャルネットワーキングシステム８２２は、１または複数のサーバ８２０においてホストされ得る。
【００５６】
特定の実施形態において、１または複数のデータストレージ８４０が、１または複数のリンク８５０によって１または複数のサーバ８２０に通信可能にリンクされ得る。特定の実施形態において、データストレージ８４０は、各種の情報を記憶するために使用され得る。特定の実施形態において、データストレージ８４０に記憶された情報は、特定のデータ構造に応じて編成され得る。特定の実施形態において、各データストレージ８４０は、関係データベースであり得る。特定の実施形態において、サーバ８２０またはクライアント８３０が、データストレージ８４０に記憶された情報を、例えば取り出し、変更、追加または削除する等、管理することができるようにするインタフェースを提供し得る。
【００５７】
特定の実施形態において、各クライアント８３０は、ハードウェア、ソフトウェア、または組込みロジック構成要素、またはこのような２以上の構成要素の組合せを含み、かつクライアント８３０により実装される、または対応している適切な機能を実行することが可能である電子機器であってもよい。例えば、限定されるものではないが、クライアント８３０は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子機器、または携帯電話であってもよい。本開示は、任意の適切なクライアント８３０を企図する。クライアント８３０は、クライアント８３０におけるネットワークユーザがネットワーク８３０にアクセスすることを可能にし得る。クライアント８３０は、ユーザが他のクライアント８３０における他のユーザと通信することを可能にし得る。
【００５８】
クライアント８３０は、マイクロソフトインターネットエクスプローラ、グーグルクロム、またはモジラファイアーフォックス等のウェブブラウザ８３２を有してもよく、ツールバーまたはヤフーツールバー等の１もしくは複数のアドオン、プラグイン、または他の拡張を有し得る。クライアント８３０におけるユーザは、ユニフォームリソースロケータ（ＵＲＬ）、またはウェブブラウザ８３２をサーバ８２０に誘導する他のアドレスを入力し、ウェブブラウザ８３２はハイパーテキストトランスファプロトコル（ＨＴＴＰ）リクエストを生成し、ＨＴＴＰリクエストをサーバ８２０に通信し得る。サーバ８２０は、ＨＴＴＰリクエストを受け入れ、クライアント８３０に、ＨＴＴＰリクエストに応じた１ま
たは複数のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルを通信し得る。クライアント８３０は、ユーザに提示するために、サーバ８２０からのＨＴＭＬファイルに基づいてウェブページのレンダリングが行われてもよい。本開示は、任意の適切なウェブページファイルを企図する。例としてであって、限定されるものではないが、ウェブページは、特定のニーズに応じて、ＨＴＭＬファイル、エクステンシブルハイパーテキストマークアップ言語（ＸＨＴＭＬ）ファイル、またはエクステンシブルマークアップ言語（ＸＭＬ）ファイルからレンダリングが行われてもよい。このようなページでは、例えば、限定されるものではいが、ジャバスクリプト、ジャバ、マイクロソフトシルバーライト、非同期ジャバスクリプトおよびＸＭＬ（ＡＪＡＸ）等のマークアップ言語およびスクリプトの組合せ等で記述されたスクリプトを実行することもできる。本明細書において、ウェブページへの参照は、（ブラウザがウェブページのレンダリングを行うために用い得る）１または複数の対応するウェブページファイルを含み、適切な場合には、逆も同様である。
【００５９】
特定の実施形態は、１または複数のコンピュータシステムにおいて実装され得る。図９は、例示的なコンピュータシステム９００を図示する。特定の実施形態において、１または複数のコンピュータシステム９００は、本明細書で記述または図示される１または複数の方法の１または複数のステップを実行する。特定の実施形態において、１または複数のコンピュータシステム９００は、本明細書で記述または図示される機能を提供する。特定の実施形態において、１または複数のコンピュータシステム９００において実行されるソフトウェアは、本明細書で記述または図示される１または複数の方法の１または複数のステップを実行する、または本明細書で記述もしくは図示される機能を提供する。特定の実施形態は、１または複数のコンピュータシステム９００の１または複数の部分を含む。
【００６０】
本開示は、任意の適切な数のコンピュータシステム９００を企図する。本開示は、任意の適切な物理的形態を採用するコンピュータシステム９００を企図する。例としてであって、限定されるものではないが、コンピュータシステム９００は、組込みコンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、サーバ、またはこれらのうちの２以上の組合せであってもよい。適切な場合、コンピュータシステム９００は、１または複数のコンピュータシステム９００を含んでもよく、単一であっても分散していてもよく、複数の位置にまたがっていてもよく、複数のマシンにまたがっていてもよく、あるいは１または複数のネットワークに１または複数のクラウドコンポーネントを含み得るクラウドにおいて存在していてもよい。適切な場合、１または複数のコンピュータシステム９００は、実質的な空間的または時間的な制限なしに、本明細書で記述または図示された１または複数の方法の１または複数のステップを実行し得る。例としてであって、限定されるものではないが、１または複数のコンピュータシステム９００は、本明細書で記述または図示された１または複数の方法の１または複数のステップを、リアルタイムで、またはバッチモードで実行し得る。適切な場合、１または複数のコンピュータシステム９００は、本明細書で記述または図示された１または複数の方法の１または複数のステップを、異なる時間に、または異なる場所で実行し得る。
【００６１】
特定の実施形態において、コンピュータシステム９００は、プロセッサ９０２、メモリ９０４、ストレージ９０６、入力／出力（Ｉ／Ｏ）インタフェース９０８、通信インタフェース９１０、およびバス９１２を含む。本開示は、特定の構成において、特定の数の特定の構成要素を有する特定のコンピュータシステムを記述および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する、任意の適切なコンピュータシステムを企図する。
【００６２】
特定の実施形態において、プロセッサ９０２は、コンピュータプログラムを構成する命令等、命令を実行するためのハードウェアを含む。例としてであって、限定されるものではないが、命令を実行するために、プロセッサ９０２は、内部レジスタ、内部キャッシュ、メモリ９０４、またはストレージ９０６から、命令を取り出し（またはフェッチ）てもよく、それらをデコードおよび実行し、その後、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ９０４、またはストレージ９０６に書き込む。特定の実施形態において、プロセッサ９０２は、データ、命令またはアドレス用の１または複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含む、プロセッサ９０２を企図する。例としてであって、限定されるものではないが、プロセッサ９０２は、１または複数の命令キャッシュ、１または複数のデータキャッシュ、および１または複数のトランスレーションルックアサイドバッファ（ＴＬＢ）を含み得る。命令キャッシュ内の命令は、メモリ９０４またはストレージ９０６の命令のコピーであってもよく、命令キャッシュは、プロセッサ９０２によるこれらの命令の取り出しを高速化させ得る。データキャッシュ内のデータは、プロセッサ９０２で実行される命令が動作するためのメモリ９０４またはストレージ９０６のデータのコピー、プロセッサ９０２において実行される後続の命令によるアクセスのために、またはメモリ９０４もしくはストレージ９０６への書き込みのために、プロセッサ９０２において実行された前の命令の結果のコピー、または他の適切なデータのコピーであり得る。データキャッシュは、プロセッサ９０２による読み出しまたは書き込み動作を高速化させ得る。ＴＬＢは、プロセッサ９０２の仮想アドレス変換を高速化させ得る。特定の実施形態において、プロセッサ９０２は、データ、命令またはアドレスのための１または複数の内部レジスタを含んでもよい。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ９０２を企図する。適切な場合、プロセッサ９０２は、１または複数の算術論理演算ユニット（ＡＬＵ）を含んでもよく、マルチコアプロセッサでもよく、または１または複数のプロセッサ９０２を含んでもよい。本開示は、特定のプロセッサを記述および図示するが、本開示は、任意の適切なプロセッサを企図する。
【００６３】
特定の実施形態において、メモリ９０４は、プロセッサ９０２が実行する命令、またはプロセッサ９０２が動作するデータを記憶するメインメモリを含む。例としてであって、限定されるものではないが、コンピュータシステム９００は、ストレージ９０６または他のソース（例えば、他のコンピュータシステム９００）からの命令を、メモリ９０４にロードし得る。プロセッサ９０２は、その後、メモリ９０４からの命令を、内部レジスタまたは内部キャッシュへとロードし得る。命令を実行するために、プロセッサ９０２は、内部レジスタまたは内部キャッシュからの命令を取り出し、それらのデコードを行い得る。命令の実行中またはその後に、プロセッサ９０２は、１または複数の結果（中間または最終結果であってもよい）を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ９０２は、その後、１または複数のそれらの結果を、メモリ９０４に書き込み得る。特定の実施形態において、プロセッサ９０２は、１または複数の内部レジスタもしくは内部キャッシュまたはメモリ９０４（ストレージ９０６もしくは他のものではなく）内の命令のみを実行し、１または複数の内部レジスタもしくは内部キャッシュまたはメモリ９０４（ストレージ９０６もしくは他のものではなく）内のデータに関してのみ動作する。１または複数のメモリバス（それぞれアドレスバスおよびデータバスを含み得る）は、プロセッサ９０２をメモリ９０４に結合することができる。バス９１２は、以下に記載するように、１または複数のメモリバスを含み得る。特定の実施形態において、１または複数のメモリ管理ユニット（ＭＭＵ）は、プロセッサ９０２とメモリ９０４との間に存在し、プロセッサ９０２により要求されたメモリ９０４へのアクセスを容易にする。特定の実施形態において、メモリ９０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであってもよい。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってもよい。さらに、適切
な場合、このＲＡＭは、シングルポートまたはマルチポートＲＡＭであってもよい。本開示は、任意の適切なＲＡＭを企図する。メモリ９０４は、適切な場合、１または複数のメモリ９０４を含んでもよい。本開示は、特定のメモリについて記述および図示するが、本開示は、任意の適切なメモリを企図する。
【００６４】
特定の実施形態において、ストレージ９０６は、データまたは命令のためのマスストレージを含む。例としてであって、限定されるものではないが、ストレージ９０６は、ＨＤＤ、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの２以上の組合せを含んでよい。ストレージ９０６は、適切な場合、取り外し可能または取り外し不可能な（すなわち固定の）媒体を含んでもよい。ストレージ９０６は、適切な場合、コンピュータシステム９００の内部または外部にあってもよい。特定の実施形態において、ストレージ９０６は、不揮発性の固体メモリである。特定の実施形態において、ストレージ９０６は、リードオンリーメモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的変更可能ＲＯＭ（ＥＡＲＯＭ）、もしくはフラッシュメモリ、またはこれらのうちの２以上の組合せであってもよい。本開示は、任意の適切な物理的形態を採用するマスストレージ９０６を企図する。ストレージ９０６は、適切な場合、プロセッサ９０２とストレージ９０６との間の通信を容易にする１または複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ９０６は、１または複数のストレージ９０６を含み得る。本開示は、特定のストレージを記述および図示するが、本開示は任意の適切なストレージを企図する。
【００６５】
特定の実施形態において、Ｉ／Ｏインタフェース９０８は、コンピュータシステム９００と１または複数のＩ／Ｏデバイスとの間の通信のための１または複数のインタフェースを提供する、ハードウェア、ソフトウェア、あるいはその両方を含む。コンピュータシステム９００は、適切な場合、１または複数のこれらのＩ／Ｏデバイスを含み得る。１または複数のこれらのＩ／Ｏデバイスは、人間とコンピュータシステム９００との間の通信を可能にし得る。例としてであって、限定されるものではないが、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、他の適切なＩ／Ｏデバイス、またはこれらのうちの２以上の組合せを含み得る。Ｉ／Ｏデバイスは、１または複数のセンサを含み得る。本開示は、任意の適切なＩ／Ｏデバイスおよびそれらのための任意の適切なＩ／Ｏインタフェース９０８を企図する。適切な場合、Ｉ／Ｏインタフェース９０８は、１または複数のこれらのＩ／Ｏデバイスをプロセッサ９０２が駆動するのを可能にする、１または複数のデバイスあるいはソフトウェアドライバを含み得る。適切な場合、Ｉ／Ｏインタフェース９０８は、１または複数のＩ／Ｏインタフェース９０８を含み得る。本開示は、特定のＩ／Ｏインタフェースを記述および図示するが、本開示は、任意の適切なＩ／Ｏインタフェースを企図する。
【００６６】
特定の実施形態において、通信インタフェース９１０は、コンピュータシステム９００と１または複数の他のコンピュータシステム９００あるいは１または複数のネットワークとの間の通信（例えばパケットベースの通信等）のための１または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。例としてであって、限定されるものではないが、通信インタフェース９１０は、イーサネットもしくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、またはＷｉ−Ｆｉネットワーク等の無線ネットワークと通信するための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含み得る。本開示は、任意の適切なネットワーク、およびそのための任意の適切な通信インタフェース９１０を企図する。例としてであって、限定されるものではないが、コンピュータシステム９０
０は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの１または複数の部分、またはこれらのうちの２以上の組合せと通信し得る。これらのネットワークの１または複数のうちの１または複数の部分は、有線であっても無線であってもよい。例として、コンピュータシステム９００は、無線ＰＡＮ（ＷＰＡＮ）（例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＷＰＡＮ等）、Ｗｉ−Ｆｉネットワーク、Ｗｉ−ＭＡＸネットワーク、携帯電話ネットワーク（例えば、移動体通信用グローバルシステム（ＧＳＭ）ネットワーク等）、もしくは他の適切な無線ネットワーク、またはこれらのうちの２以上の組合せと通信し得る。コンピュータシステム９００は、適切な場合、任意のこれらのネットワークのための任意の適切な通信インタフェース９１０を含み得る。通信インタフェース９１０は、適切な場合、１または複数の通信インタフェース９１０を含んでよい。本開示は、特定の通信インタフェースを記述および図示するが、本開示は、任意の適切な通信インタフェースを企図する。
【００６７】
特定の実施形態において、バス９１２は、コンピュータシステム９００の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。例としてであって、限定されるものではないが、バス９１２は、アクセラレーテッドグラフィックスポート（ＡＧＰ）または他のグラフィックスバス、エンハンスドインダストリースタンダードアーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）インターコネクト、インダストリースタンダードアーキテクチャ（ＩＳＡ）バス、インフィニバンドインターコネクト、ローピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレスバス、ＰＣＩ−Ｘバス、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクススタンダードアソシエーションローカル（ＶＬＢ）バス、もしくは別の適切なバス、またはこれらの２以上の組合せを含み得る。バス９１２は、適切な場合、１または複数のバス９１２を含み得る。本開示は、特定のバスを記述および開示するが、本開示は、任意の適切なバスまたはインターコネクトを企図する。
【００６８】
図１０は、例示的なクライアントデバイス３００を示す。特定の実施形態において、クライアント３００は、ハードウェア、ファームウェアおよびソフトウェアを含み得る。特定の実施形態において、クライアントデバイス３００は、従来の携帯電話よりも進歩したコンピューティング能力および接続を提供する携帯電話である、スマートフォン（例えばｉＰｈｏｎｅ（登録商標）、ＡＮＤＲＯＩＤ（登録商標）ベースの電話、またはブラックベリー）であり得る。クライアントデバイス３００は、携帯電話と一体化されたハンドヘルドコンピュータとみなされ得る。特定の実施形態において、クライアントデバイス３００は、ネットブックまたはタブレットコンピュータ（例えばｉＰａｄ（登録商標）、Ａｎｄｒｏｉｄベースのタブレット）であり得る。クライアントデバイス３００は、ＧＳＭまたはＣＤＭＡ２０００ベースの無線セルラーネットワーク等の無線接続を通じてネットワークに接続され得る。
【００６９】
特定の実施形態において、クライアントデバイス３００は、ハードウェア１０１０およびソフトウェア１０２０を含み得る。特定の実施形態において、ハードウェア２１０は、例であって、限定的なものではないが、プロセッサ１０１１、メモリ１０１２、ストレージ１０１３、送受信機１０１４、入力／出力デバイス１０１５（例えば、ディスプレイ、タッチスクリーン、キーパッド、マイクロフォン、スピーカ等）、カメラ１０１６、グローバルポジショニングシステム（ＧＰＳ）センサ１０１７、センサハブ１０１７、通知制御スイッチ１０１９、セルラー送受信機１０４１、Ｗｉ−Ｆｉ送受信機１０４２等の、任意の数のハードウェア構成要素を含み得る。特定の実施形態において、ハードウェア１０１０は、無線ディスプレイ（ＷｉＤｉ）送受信機、ブルートゥースローエナジー（ＢＬＥ
）送受信機、近距離通信（ＮＦＣ）送受信機、８０２．１１Ｗｉ−Ｆｉ、および８０２．１６ＷｉＭａｘ送受信機等を含み得る。本開示は、任意の適切なハードウェア構成要素を企図する。特定の実施形態においては、移動体デバイス３００が、位置情報の自己判定を行わない、または自己判定位置情報の共有を行わない場合であっても、ソーシャルネットワーキングシステムにより位置判定が行われ得る。例えば、ソーシャルネットワーキングシステムは、全てのＷｉ−Ｆｉネットワークの物理的マップを保持し、クライアントデバイス３００の位置を、そのＩＰアドレスから判定し得る。本開示は、クライアントデバイス３００の位置の判定の任意の適切な方法を企図する。特定の実施形態において、ユーザのユーザデータの一部または全ては、ストレージ１０１３に記憶され得る。
【００７０】
特定の実施形態において、ソフトウェア１０２０は、カーネル１０３１、またはクライアントデバイス３００上で利用可能なハードウェア構成要素のいくつかに対応する任意の数のデバイスドライバ１０３２を含み得るオペレーティングシステム１０２１を含み得る。オペレーティングシステム１０２１は、クライアントデバイス３００が実際にどのタイプのデバイスであるかに基づいて、クライアントデバイス３００用に選択され得る。例えば、クライアントデバイス３００が移動体デバイス（例えばスマートフォン）である場合、オペレーティングシステム１０２１は、例としてであって、限定されるものではないが、マイクロソフトのウィンドウズ（登録商標）モバイル、グーグルのアンドロイド、ノキアのシンビアン、アップルのｉＯＳ、サムスンのバダ等のモバイルオペレーティングシステムであり得る。
【００７１】
特定の実施形態において、コンピュータソフトウェアとして実装されてもよく、クライアントデバイス３００上に存在し、クライアントデバイス３００上で実行する接続プールマネージャ１０２２が存在し得る。特定の実施形態において、１または複数のソフトウェアアプリケーション１０２３が、クライアントデバイス３００上で実行され得る。特定の実施形態において、それらは、クライアントデバイス３００上にインストールされ、存在する独自の（ネイティブ）アプリケーションであり得る。例えば、１つのアプリケーション（例えばグーグルマップ）により、デバイスユーザが地図を見て、住所および会社を検索し、方向を理解することができ、第２のアプリケーションにより、デバイスユーザが電子メールを読み、送信し、受信することができ、第３のアプリケーション（例えばウェブブラウザ）により、デバイスユーザがインターネットをブラウズおよび検索することができ、第４のアプリケーションにより、デバイスユーザがカメラ１０１６を用いて写真を撮り、ビデオを録画することができ、第５のアプリケーションにより、デバイスユーザがＶｏＩＰまたはセルラーネットワーク通話を受信および開始することができる、などである。特定の実施形態において、デバイスユーザがクライアントデバイス３００へのプッシュ通知を管理することを可能にするソフトウェアアプリケーション（通知制御部１０２５）が存在し得る。各ソフトウェアアプリケーション１０２０は、ユーザインタフェースを有し、１または複数の特定の機能を実装し得る。各ソフトウェアアプリケーション１０２０は、個別の機能を実装する１または複数のソフトウェアモジュールを含み得る。通知制御部１０２５を含むソフトウェアアプリケーション１０２０の実行形式のコードは、クライアントデバイス３００上のコンピュータ可読媒体および非一時的媒体（例えばストレージ１０１３またはメモリ１０１２）に記憶され得る。
【００７２】
本開示は、任意の適切なストレージを実装する１または複数のコンピュータ可読記憶媒体を企図する。特定の実施形態において、コンピュータ可読記憶媒体には、適切な場合、プロセッサ９０２の１または複数の部分（例えば、１または複数の内部レジスタまたはキャッシュ）、メモリ９０４の１または複数の部分、ストレージ９０６の１または複数の部分、あるいはこれらの組合せとして実装される。特定の実施形態において、コンピュータ可読記憶媒体は、ＲＡＭまたはＲＯＭとして実装される。特定の実施形態において、コンピュータ可読記憶媒体は、揮発性または持続性のメモリとして実装される。特定の実施形
態において、１または複数のコンピュータ可読記憶媒体は、ソフトウェアを具現化する。本明細書において、ソフトウェアについて参照すると、１または複数のアプリケーション、バイトコード、１または複数のコンピュータプログラム、１または複数の実行ファイル、１または複数の命令、ロジック、マシンコード、１または複数のスクリプト、あるいはソースコードが含まれ、適切な場合、逆も同様である。特定の実施形態において、ソフトウェアは、１または複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。本開示は、任意の適切なプログラミング言語またはプログラミング言語の組合せで記述された、またはそうでない場合には表現された、任意の適切なソフトウェアを企図する。特定の実施形態において、ソフトウェアは、ソースコードまたはオブジェクトコードとして表現される。特定の実施形態において、ソフトウェアは、例えば、Ｃ、Ｐｅｒｌ、またはその適切な拡張等の、ハイレベルプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、アセンブリ言語（すなわちマシンコード）等のローレベルプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、ＪＡＶＡ（登録商標）、Ｃ、またはＣ＋＋で表現される。特定の実施形態において、ソフトウェアは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、エクステンシブルマークアップ言語（ＸＭＬ）、または他の適切なマークアップ言語で表現される。
【００７３】
本明細書において、コンピュータ可読非一時的記憶媒体について参照すると、適切な場合、半導体ベースまたは他の集積回路（ＩＣ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）等）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカード、セキュアデジタルドライブ、他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの適切な組合せが含まれ得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。本明細書において、「または」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、包含的であって排他的ではない。したがって、本明細書において「ＡまたはＢ」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、「Ａ、Ｂ、またはその両方」を意味する。さらに、「および」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、共同的および個別的（ｊｏｉｎｔ  ａｎｄ  ｓｅｖｅｒａｌ）の両方である。したがって、ここで「ＡおよびＢ」とは、明示的に他様に示されていない限り、または文脈から他様に示されていない限り、「ＡおよびＢ、共同的にまたは個別的に」を意味する。
【００７４】
本開示は、当業者が想到し得る、例示的な実施形態に対する全ての変更形態、置換形態、変形形態、代替形態および修正形態を含む。同様に、適切な場合、添付の特許請求の範囲は、当業者が想到し得る、例示的な実施形態に対する全ての変更形態、置換形態、変形形態、代替形態および修正形態を含む。さらに、添付の特許請求の範囲において、特定の機能を実行するよう、適用され、配置され、有能とされ、構成され、可能とされ、動作可能であり、または動作する、装置もしくはシステム、または装置もしくはシステムの構成要素について参照すると、それまたはその特定の機能が起動され、有効にされ、またはロック解除されているかどうかにかかわらず、装置、システムまたは構成要素が、そのように適用され、配置され、可能とされ、構成され、有効とされ、動作可能であり、または動作する限り、その装置、システム、構成要素が含まれる。
【図２】
2015502125.tif 000003
【図３】
2015502125.tif 000004
【図４】
2015502125.tif 000005
【図５】
2015502125.tif 000006
【図６】
2015502125.tif 000007
【図７】
2015502125.tif 000008
【図８】
2015502125.tif 000009
【図９】
2015502125.tif 000010
【図１０】
2015502125.tif 000011
【図１Ａ】
2015502125.tif 000012
【図１Ｂ】
2015502125.tif 000013
【手続補正書】
【提出日】平成26年8月27日(2014.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１または複数の非一時的コンピュータ可読記憶媒体であって、
１または複数のコンピューティングシステムによって実行されたときに、
コンピューティングデバイスにおいて、セルラーデータネットワークとのセルラー接続を維持しつつ、無線ローカルエリアネットワーク（ＷＬＡＮ）との無線接続を確立し、
前記コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にあるかどうかの判定を行い、
前記コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にない場合、セルラー接続から無線接続にトラフィックオフロードを行い、
前記コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にある場合、セルラー接続から無線接続にトラフィックオフロードを行う前に、前記ＷＬＡＮによってホストされるポータルに対して前記コンピューティングデバイスを認証するよう動作可能なロジックを具現化する、媒体。
【請求項２】
実行されたときに、
前記コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にある場合、前記ＷＬＡＮによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたデータトラフィックを前記コンピューティングデバイスのＷＬＡＮインタフェースにバインドするよう動作可能な命令をさらに含む、請求項１に記載の媒体。
【請求項３】
実行されたときに、
前記コンピューティングデバイスにおいて、前記ユーザインタフェースによって、認証証明書を受信し、
前記コンピューティングデバイスにおいて、前記ポータルに前記認証証明書を提出し、
前記コンピューティングデバイスにおいて、前記ポータルからの認証許可メッセージ受信に応答して、セルラー接続から無線接続にデータのトラフィックオフロードを行うよう動作可能な命令をさらに含む、請求項２に記載の媒体。
【請求項４】
前記無線接続がキャプティブポータル状態にあるかどうかを判断することは、
前記無線接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と実質的に同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記無線接続がキャプティブポータル状態にあると識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記無線接続がキャプティブポータル状態にないと識別するステップとを含む、請求項１に記載の媒体。
【請求項５】
前記セルラー接続のデータトラフィックは、クライアントの前記コンピューティングデバイスのアプリケーションとサーバのコンピューティングデバイスとの間の通信セッションのデータを含み、
前記セルラーデータネットワークとのセルラー接続を維持することは、前記通信セッションを維持することを含み、
前記セルラー接続から無線接続にデータトラフィックのオフロードを行うことは、セルラー接続から無線接続に前記通信セッションのデータを誘導することを含む、請求項１に記載の媒体。
【請求項６】
実行されたときに、
前記コンピューティングデバイスにおいて、前記無線接続の１または複数のプロパティを監視し、
前記コンピューティングデバイスにおいて、前記無線接続の１または複数のプロパティに基づいて前記無線接続を終了し、
前記コンピューティングデバイスにおいて、前記無線接続から前記セルラー接続にデータトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項１に記載の媒体。
【請求項７】
前記コンピューティングデバイスの無線ネットワーク状態トラッカーが、前記無線接続がキャプティブポータル状態にあるかどうかを周期的に判定する、請求項１に記載の媒体。
【請求項８】
装置であって、
１または複数のプロセッサと、
前記１または複数のプロセッサによって実行されたときに、
コンピューティングデバイスにおいて、セルラーデータネットワークとのセルラー接続を維持しつつ、無線ローカルエリアネットワーク（ＷＬＡＮ）との無線接続を確立し、
前記コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にあるかどうかの判定を行い、コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にない場合、セルラー接続から無線接続にトラフィックオフロードを行い、
コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にある場合、セルラー接続から無線接続にトラフィックオフロードを行う前に、前記ＷＬＡＮによってホストされるポータルに対して前記コンピューティングデバイスを認証するよう動作可能なロジックを具現化する１または複数の非一時的コンピュータ可読記憶媒体と、を備える装置。
【請求項９】
前記１または複数のプロセッサにより実行されたときに、前記１または複数の媒体が、
前記コンピューティングデバイスにおいて、前記無線接続がキャプティブポータル状態にある場合、前記ＷＬＡＮによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示し、
前記ユーザインタフェースに関連付けられたデータトラフィックを前記コンピューティングデバイスのＷＬＡＮインタフェースにバインドするよう動作可能な命令をさらに含む、請求項８に記載の装置。
【請求項１０】
前記１または複数のプロセッサにより実行されたときに、前記１または複数の媒体が、
前記コンピューティングデバイスにおいて、前記ユーザインタフェースによって、認証証明書を受信し、
前記コンピューティングデバイスにおいて、前記ポータルに前記認証証明書を提出し、
前記コンピューティングデバイスにおいて、前記ポータルからの認証許可メッセージ受信に応答して、セルラー接続から無線接続にデータのトラフィックオフロードを行うよう動作可能な命令をさらに含む、請求項９に記載の装置。
【請求項１１】
前記無線接続がキャプティブポータル状態にあるかどうかを判断することは、
前記無線接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と実質的に同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記無線接続がキャプティブポータル状態にあると識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記無線接続がキャプティブポータル状態にないと識別するステップとを含む、請求項８に記載の装置。
【請求項１２】
前記セルラー接続のデータトラフィックは、クライアントの前記コンピューティングデバイスのアプリケーションとサーバのコンピューティングデバイスとの間の通信セッションのデータを含み、
前記セルラーデータネットワークとのセルラー接続を維持することは、前記通信セッションを維持することを含み、
前記セルラー接続から無線接続にデータトラフィックのオフロードを行うことは、セルラー接続から無線接続に前記通信セッションのデータを誘導することを含む、請求項８に記載の装置。
【請求項１３】
前記１または複数のプロセッサによって実行されたときに、前記１または複数の媒体が、
前記コンピューティングデバイスにおいて、前記無線接続の１または複数のプロパティを監視し、
前記コンピューティングデバイスにおいて、前記無線接続の１または複数のプロパティに基づいて前記無線接続を終了し、
前記コンピューティングデバイスにおいて、前記無線接続から前記セルラー接続にデータトラフィックのオフロードを行うよう動作可能な命令をさらに含む、請求項８に記載の装置。
【請求項１４】
前記コンピューティングデバイスの無線ネットワーク状態トラッカーが、前記無線接続がキャプティブポータル状態にあるかどうかを周期的に判定する、請求項８に記載の装置。
【請求項１５】
コンピューティングデバイスによって、セルラーデータネットワークとのセルラー接続を維持しつつ、無線ローカルエリアネットワーク（ＷＬＡＮ）との無線接続を確立するステップと、
前記コンピューティングデバイスによって、前記無線接続がキャプティブポータル状態にあるかどうかの判定を行うステップと、
前記コンピューティングデバイスによって、前記無線接続がキャプティブポータル状態
にない場合、セルラー接続から無線接続にトラフィックオフロードを行うステップと、
前記コンピューティングデバイスによって、前記無線接続がキャプティブポータル状態にある場合、セルラー接続から無線接続にトラフィックオフロードを行う前に、前記ＷＬＡＮによってホストされるポータルに対して前記コンピューティングデバイスを認証するステップと、を含む方法。
【請求項１６】
前記無線接続がキャプティブポータル状態にある場合、前記コンピューティングデバイスが、
前記ＷＬＡＮによってホストされるポータルからのコンテンツを含むユーザインタフェースを生成して表示するステップと、
前記ユーザインタフェースに関連付けられたデータトラフィックを前記コンピューティングデバイスのＷＬＡＮインタフェースにバインドするステップとをさらに含む、請求項１５に記載の方法。
【請求項１７】
前記コンピューティングデバイスが、前記ユーザインタフェースによって、認証証明書を受信するステップと、
前記コンピューティングデバイスが、前記ポータルに前記認証証明書を提出するステップと、
前記コンピューティングデバイスが、前記ポータルからの認証許可メッセージ受信に応答して、セルラー接続から無線接続にデータのトラフィックオフロードを行うステップとをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記無線接続がキャプティブポータル状態にあるかどうかの判断を行うステップは、
前記無線接続によってエンドポイントへ接続チェックを送信するステップと、
前記接続チェックの送信と実質的に同時にタイマーを開始するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信されない場合、前記無線接続がキャプティブポータル状態にあると識別するステップと、
前記タイマーの時間切れの前に前記エンドポイントからの応答が受信される場合、前記無線接続がキャプティブポータル状態にないと識別するステップとを含む、請求項１５に記載の方法。
【請求項１９】
前記セルラー接続のデータトラフィックは、クライアントの前記コンピューティングデバイスのアプリケーションとサーバのコンピューティングデバイスとの間の通信セッションのデータを含み、
前記セルラーデータネットワークとのセルラー接続を維持することは、前記通信セッションを維持することを含み、
前記セルラー接続から無線接続にデータトラフィックのオフロードを行うことは、セルラー接続から無線接続に前記通信セッションのデータを誘導することを含む、請求項１５に記載の方法。
【請求項２０】
前記コンピューティングデバイスによって、前記無線接続の１または複数のプロパティを監視するステップと、
前記コンピューティングデバイスによって、前記無線接続の１または複数のプロパティに基づいて前記無線接続を終了するステップと、
前記コンピューティングデバイスによって、前記無線接続から前記セルラー接続にデータトラフィックのオフロードを行うステップとをさらに含む、請求項１５に記載の方法。
【国際調査報告】
2015502125.tif 000014
2015502125.tif 000015