(57)【要約】ネットワークアクセスポイント検出および使用のシステムおよび方法を開示する。このようなシステムおよび方法により、所与のワイヤレスネットワークの適合性を判断できる。こうしたシステムおよび方法は、設定情報を使用して全体設定可能であり、追加的に更新が可能である。ネットワークプロファイルおよびスクリプト機能を含むことができるこの設定情報は、クライアントデバイスの基幹的な動作プラットフォームを修正せずに、アクセスのネットワークポイントの使用可能性の状態を判断するために、アクセスのテストネットワークポイントを実行するように、クライアントデバイスを動的に設定するために使用可能である。使用可能性の状態は、クライアントデバイスによってキャッシュ可能であり、また、後続のネットワークの検出を促進するため、およびアクセスのネットワークポイントの通知された選択を実行するために使用が可能である。
2009538059.tif 000002
【特許請求の範囲】
【請求項１】
クライアントデバイスによる、ワイヤレスネットワークの状態を識別する実行方法であって、
ワイヤレスネットワークの少なくとも１つのアクセスポイントからビーコンメッセージを検出するステップであって、該ビーコンメッセージは該アクセスポイントを識別する情報を含む、ステップと、
少なくとも１つの所定の動作を使用して、該アクセスポイントとの通信を試行するステップと、
該少なくとも１つの所定の動作への該アクセスポイントから受信した応答に基づいて、使用可能性の状態を判断するステップと、
該アクセスポイントの一意の識別子に関連付けられた、該判断された使用可能性の状態をキャッシュに格納するステップと
を含む、方法。
【請求項２】
前記使用可能性の状態は、前記アクセスポイントの使用可能性を「良好」、「不良」、または「不明」として識別する情報を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの所定の動作は、前記クライアントデバイスによって格納される設定情報で定義される、請求項１に記載の方法。
【請求項４】
前記設定情報は、１つ以上のプロファイルを含み、各プロファイルは少なくとも１つのワイヤレスネットワークに対応する、請求項３に記載の方法。
【請求項５】
前記少なくとも１つの所定の動作は、前記ビーコンメッセージで識別される前記ワイヤレスネットワークの識別子に対応するプロファイルを使用して識別される、請求項４に記載の方法。
【請求項６】
前記ワイヤレスネットワークに対応する前記プロファイルは、探索、接続、切断、および状態チェックの動作のうちの１つ以上を識別する、請求項４に記載の方法。
【請求項７】
前記設定情報は、複数のネットワークを識別する少なくとも１つのネットワークリストを含み、該ネットワークリストが前記プロファイルのうちの１つに対応することにより、該１つのプロファイルが該ネットワークリストの該ネットワークのそれぞれに使用される、請求項４に記載の方法。
【請求項８】
前記使用可能性の状態は、最後の接続試行を識別する情報と、該最後の接続試行の結果とを含む、請求項１に記載の方法。
【請求項９】
前記使用可能性の状態は、良好な接続数と不良な接続数とを識別する情報を含む、請求項１に記載の方法。
【請求項１０】
アクセスポイントを識別する後続のビーコンメッセージを検出するステップと、
前記後続のビーコンメッセージで識別される前記アクセスポイント識別子に対応する使用可能性の状態を判断するために、前記キャッシュを調べるステップと
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記後続のビーコンメッセージで識別される前記アクセスポイントに対応する使用可能性の状態が前記キャッシュに存在しない場合に、前記少なくとも１つの所定の動作を使用して、該後続のビーコンメッセージで識別される該アクセスポイントとの通信を試行するステップと、
該少なくとも１つの所定の動作から受信した応答に基づいて、該後続のビーコンメッセージで識別される前記ワイヤレスアクセスポイントの使用可能性の状態を判断するステップと、
該後続のビーコンメッセージで識別される該アクセスポイントの一意の識別子に関連付けられた、該判断された使用可能性の状態をキャッシュに格納するステップと
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記後続のビーコンメッセージで識別される前記アクセスポイントが前記キャッシュに格納された前記アクセスポイント識別子に対応することを判断するステップと、
該識別されたアクセスポイントを介して前記ワイヤレスネットワークに接続するか否かを判断するために、前記キャッシュに格納される前記使用可能性の状態を使用するステップと
をさらに含む、請求項１０に記載の方法。
【請求項１３】
前記クライアントは動作中のソフトウェアのプラットフォームを含み、設定情報は複数の所定の動作を含む前記クライアント上に格納され、該所定の動作のそれぞれは、該クライアントの動作中のソフトウェアのプラットフォームを使用して解釈することができる解釈可能なプログラミング言語で書かれている、請求項１に記載の方法であって、
該格納された設定情報において該複数の所定の動作への更新を含む更新された設定情報を受信するステップと、
該動作中のソフトウェアのプラットフォームを変更せずに、前記クライアントデバイスのビヘイビアを制御するために、該更新を含むための該設定情報を更新するステップと
をさらに含む、方法。
【請求項１４】
前記少なくとも１つの所定の動作は、スクリプトに含まれる、請求項１に記載の方法。
【請求項１５】
前記スクリプトは、複数の所定の動作を含む、請求項１４に記載の方法。
【請求項１６】
前記クライアント上に格納されている設定情報は、複数のスクリプトを含み、該スクリプトのそれぞれは、１つ以上の所定の動作を含む、請求項１に記載の方法。
【請求項１７】
前記設定情報は、複数のプロファイルを含み、その少なくとも１つは前記ビーコンメッセージによって識別される前記アクセスポイントにマップされることができる、請求項１６に記載の方法であって、
該設定情報に含まれるプロファイルを識別するために、該ビーコンメッセージで前記ワイヤレスネットワークを識別する情報を使用するステップと、
該識別されたプロファイルに基づいてスクリプトを識別するステップと、
該識別されたスクリプトおよびプロファイルに基づいて、前記少なくとも１つの所定の動作を識別するステップと
をさらに含む、方法。
【請求項１８】
クライアントデバイスによる、ワイヤレスネットワークの状態を識別する実行方法であって、
複数のアクセスポイントから複数のビーコンメッセージを検出するステップであって、各ビーコンメッセージはアクセスポイント識別子とワイヤレスネットワーク識別子とを含み、複数のビーコンメッセージは同じワイヤレスネットワーク識別子を含む、ステップと、
少なくとも１つの所定の動作を使用して、前記複数のビーコンメッセージの１つで識別されるアクセスポイントとの通信を試行するステップと、
該少なくとも１つの所定の動作への前記アクセスポイントから受信した応答に基づいて、使用可能性の状態を判断するステップと、
該１つのアクセスポイントに対して該判断された使用可能性の状態をキャッシュに格納するステップと、
該同じワイヤレスネットワーク識別子を有する該複数のビーコンメッセージで識別される残りのアクセスポイントのそれぞれのために、該判断された使用可能性の状態を該キャッシュに格納するステップと
を含む、方法。
【請求項１９】
前記クライアントデバイスは、複数のプロファイルを含む設定情報を格納し、そのそれぞれがその他のプロファイルに関連する一意のランクを有する、請求項１９に記載の方法であって、
そのランクに基づいて該プロファイルの１つを選択するステップと、
該選択されたプロファイルに関連付けられたワイヤレスネットワーク識別子と一致する該ワイヤレスネットワーク識別子を有する前記検出されたビーコンメッセージの１つを識別することにより、該検出されたビーコンメッセージの該識別された１つを前記試行ステップで使用するステップと
をさらに含む、方法。
【請求項２０】
前記設定情報は前記プロファイルの１つに対応する少なくとも１つのネットワークリストを含み、該ネットワークリストは該ネットワークリストで識別される複数のワイヤレスネットワークのそれぞれに対して、該複数のワイヤレスネットワークおよびワイヤレスネットワーク識別子を識別し、そして前記検出されたビーコンメッセージの１つを識別するために使用される前記選択されたプロファイルに関連付けられている前記ワイヤレス識別子は、該ネットワークリストで識別される、請求項１９に記載の方法。
【請求項２１】
前記ネットワークリストで識別される前記ワイヤレスネットワークのそれぞれはランクを有する、請求項２０に記載の方法であって、
前記検出されたビーコンメッセージの１つを識別するために使用される前記選択されたプロファイルに関連付けられた前記ワイヤレスネットワーク識別子が、該ワイヤレスネットワークの選択された１つに対応する該ワイヤレスネットワーク識別子となるように、そのランクに基づいて、該ネットワークリストで該ワイヤレスネットワークの１つを選択するステップをさらに含む、方法。
【請求項２２】
クライアントデバイスによる、ワイヤレスネットワークの状態の情報を判断する実行方法であって、該クライアントデバイスはプロファイルおよび対応するネットワークリストを含む設定情報を格納し、該プロファイルはワイヤレスネットワーク識別子を含み、該ネットワークリストは、それぞれがワイヤレスネットワーク識別子を有する複数のワイヤレスネットワークを識別しており、
複数のアクセスポイントから複数のビーコンメッセージを検出するステップであって、各ビーコンメッセージはアクセスポイント識別子とワイヤレスネットワーク識別子とを含む、ステップと、
該ネットワークリストで識別されるワイヤレスネットワークに対応するワイヤレスネットワーク識別子と一致するワイヤレスネットワーク識別子を含むビーコンメッセージを選択するステップと、
該プロファイルに含まれる情報を使用して識別された少なくとも１つの所定の動作を使用して、前記選択されたビーコンメッセージで識別される該アクセスポイントとの通信を試行するステップと、
該少なくとも１つの所定の動作への該アクセスポイントから受信した応答に基づいて、使用可能性の状態を判断するステップと、
該選択されたビーコンメッセージで識別される該アクセスポイントのために、該判断された使用可能性の状態をキャッシュに格納するステップと
を含む、方法。
【請求項２３】
前記ネットワークリストで識別されるネットワークのワイヤレスネットワーク識別子に対応するワイヤレスネットワーク識別子を有するビーコンメッセージで識別される前記アクセスポイントのそれぞれに対して、前記判断された使用可能性の状態を前記キャッシュに格納するステップをさらに含む、請求項２１に記載の方法。
【請求項２４】
クライアントデバイスによる、ワイヤレスネットワークの状態を識別する実行方法であって、
ワイヤレスネットワークの少なくとも１つのアクセスポイントからビーコンメッセージを検出するステップであって、該ビーコンメッセージは該アクセスポイントを識別する情報を含む、ステップと、
少なくとも１つの所定の動作を使用して、別のアクセスポイントとの通信を試行するステップであって、該別のアクセスポイントは該検出ステップにおいてビーコンメッセージが検出されるアクセスポイント以外のものである、ステップと、
該少なくとも１つの所定の動作への該別のアクセスポイントから受信した応答に基づいて、使用可能性の状態を判断するステップと、
該判断された使用可能性の状態をキャッシュに格納するステップであって、該使用可能性の状態は、該別のアクセスポイントの一意の識別子に関連付けられる、ステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許文書の開示内容の一部には、著作権保護が適用される可能性のある資料を含む。特許商標局の特許申請または記録に見られるため、いかなる者による特許文書または特許開示文書のファクシミリによる複製物にも、著作権者は、異議を申立てることはないが、それ以外は全著作権を留保する。
【０００２】
（発明の分野）
ネットワークアクセスポイントの検出および使用を開示し、より詳細には、ネットワークプロファイルおよびスクリプト機能を含み、設定情報を利用して、全体設定可能かつ付加更新可能な、アクセスおよび使用のために所与のワイヤレスネットワークの適合性を判断するためのシステムおよび方法を開示する。この設定情報は、アクセスのネットワークポイントの使用可能状態を判断するために、使用可能性のテストを実行できるようにクライアントデバイスを動的に設定するために使用でき、こうした使用可能状態は、アクセスポイントの選択に使用され、こうした状態の情報の格納は、後続のネットワークの検出および選択に役立てるためのものである。
【背景技術】
【０００３】
ワイヤレスネットワークが普及するようになり、インターネットを含むその他のネットワークに接続するための機構が提供されることとなった。ワイヤレスフィディリティ「ＷｉＦｉ」ネットワーク（８０２．１１ネットワークとしても公知である）が、最近、ワイヤレスネットワークの主要な規格として登場している。これは、主に、ＷｉＦｉネットワークがインストールされることが可能であり、コストが最小で済むことによる。例えば、事業者は、１つ以上のデジタル加入者回線（ＤＳＬ）および／またはワイヤレスネットワークへのアクセスを制御するＴｌ回線および装置によって「ホットスポット」をセットアップすることができ、こうして、高速ワイヤレスインターネットアクセスの課金販売ができる。「ホットスポット」は、典型的には、顧客のデバイスとＷｉＦｉネットワークとの間の接続ポイントとして機能する１つ以上のワイヤレスアクセスポイント（ＡＰ）を有する。顧客のデバイスは、ワイヤレスネットワークとの通信が可能なＷｉＦｉチップを有する任意のデバイス（例えば、デスクトップまたはラップトップコンピュータ、パーソナルデジタルアシスタント、デジタルカメラ、携帯電話、自動車、ゲーム機、消費家電機器等）であってもよい。
【０００４】
より多くのホットスポットが設置されるようになるにつれて、ユーザが、ワイヤレスネットワーク接続を介してインターネットへアクセスする機会が増える。しかし、様々なホットスポットまたはワイヤレスネットワーク、事業者およびワイヤレスネットワークアクセスを得るための様々な機構が数多く存在するため、インターネットへのワイヤレスアクセスは、ユーザが求めているほどシームレスではない。
【０００５】
ワイヤレスネットワークへのアクセスを得るために、ユーザは、まず、ワイヤレスネットワークオペレータから認証を受ける必要があり、典型的にはユーザは、アクセス条件および料金について定める、ホットスポット事業者との契約、またはワイヤレスネットワーク事業者と契約している別の事業者との契約を必要とする。こうした契約に基づいて、ワイヤレスネットワーク事業者は、ユーザが事業者のワイヤレスネットワークへのアクセスに使用しなければならない接続／ログインの手順をユーザに提供する。
【０００６】
ユーザのＷｉＦｉ有効デバイス、またはワイヤレスデバイスは、典型的には、既存のネットワークを検出またはスキャンして検出する機能を有する。典型的には、ワイヤレスデバイスは、１つ以上の利用可能なチャネルに調整され、そのチャネル上のワイヤレスネットワークによって送信されるすべてのビーコンフレーム、または信号を受信する。デバイスによって受信されるビーコンは、１つ以上のワイヤレスネットワークからのものにすることができる。
【０００７】
各ワイヤレスネットワークは、典型的には、ワイヤレスネットワークによって送信されるビーコンフレームに含まれるサービスセット識別子、「ＳＳＩＤ」と呼ばれるネットワーク識別子で識別される。このネットワーク名は次に、使用するネットワークを識別および選択するためにワイヤレスデバイスによって使用される。例えば、８０２．１１ｘベースのワイヤレスネットワーク等の特定のネットワーク技術において、識別子は、必ずしも信頼のおける識別子というわけではないため、ネットワーク使用性および／または可用性についての信頼性ある指標とはいえない。また、ネットワーク名は一意にする必要はない。このため、例えば、異なるネットワーク事業者が同じネットワーク名を使用できる。さらに、同じネットワーク事業者が、それぞれ異なる使用および可用性を有する種類であっても、そのネットワークの複数の種類で同じネットワーク名を使用できる。
【０００８】
例示すれば、ワイヤレスネットワーク事業者は、複数の種類のワイヤレスネットワークを稼動させてもよい。ワイヤレスネットワーク事業者は、ホテルのロビーで利用するためにある種のワイヤレスネットワークを、またホテルの会議室で利用するために別の種類のワイヤレスネットワークを提供してもよい。しかし、全ネットワークは、そのビーコンフレームのネットワーク識別子と同じＳＳＩＤを送信する（つまり、各ワイヤレスネットワークはその種類に関係なく同じＳＳＩＤを送信する）。しかし、ユーザは、特定の種類のネットワークを使用するためには、認証を受けるのみでよい。このような場合、および、各ワイヤレスネットワークが同じＳＳＩＤを送信しているため、ワイヤレスデバイスは、送信しているビーコンフレームによってワイヤレスネットワークを区別することができない。ワイヤレスデバイスはワイヤレスネットワークを区別することができず、「トライアンドエラー」のアプローチを使用せざるをえない。言い換えると、ワイヤレスデバイスは、試行が成功するまで、各ワイヤレスネットワークの使用を試行する必要がある。さらに、ワイヤレスデバイスは、ワイヤレスデバイスが同じ環境をスキャンするたびに、この「トライアンドエラー」のアプローチを使用しなければならないことになる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
そのため、ワイヤレスデバイスが決められたネットワーク選択を実行できるように、同じネットワーク識別情報を使用するワイヤレスネットワークを区別し、ワイヤレスデバイスが以前に判断された情報に基づいてワイヤレスネットワークを識別できるようにするための機構が必要とされている。さらに、設定可能かつ更新可能なこうしたネットワークアクセスおよび使用の検出機構の提供が求められている。
【課題を解決するための手段】
【００１０】
１つ以上の開示された実施形態により、ネットワークがスキャンされ、スキャンから取得された情報に基づいて、所与のユーザのネットワークの使用可能性を判断するためにネットワークを探索する。状態の情報は、ネットワークが使用可能、使用不可能、または状態が不明であるかを識別するために、ユーザのワイヤレス使用可能デバイス、またはクライアント上に維持される。こうした状態の情報は、クライアントによって、接続先のネットワークを判断するために使用することが可能であり、状態の情報は、ネットワーク接続の成功または失敗を反映するように更新可能である。状態の情報には、クライアントによって状態が判断されているネットワークアクセスポイントの状態情報を含むことができる。この情報は、ネットワーク選択を迅速に実行し処理時間を低減するために、後続のネットワークアクセスの考慮の際に使用可能である。状態の情報は、クライアントによってキャッシュされ、クライアント上で動的に管理され、検出および利用情報に基づいて更新される。クライアントは、状態の情報を判断するために、１つ以上の方法を使用するように設定可能である。こうした方法を含むことができる設定の情報をクライアントにダウンロードすることが可能であり、これによって各クライアントのために一意の検出設定が可能になる。設定情報は、時々、更新または修正することが可能であり、例えば、ネットワークおよび／またはネットワーク事業者またはその他の事業者との契約における変更に適合させるために、ソフトウェアの更新を必要とせずに、容易に追加および変更することが可能なように全体が構成されている。
【００１１】
本明細書の上述の特徴および目的は、同様の参照番号が同様の要素を示す添付図面を用いて述べられる、以下の説明を参照することによってより明らかとなる。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１は、図１Ａおよび図１Ｂを含み、本発明の１つ以上の実施形態によって使用される構成要素の例のアーキテクチャの概観図である。
【図１Ｂ】図１は、図１Ａおよび図１Ｂを含み、本発明の１つ以上の実施形態によって使用される構成要素の例のアーキテクチャの概観図である。
【図２】図２は、１つ以上の開示された実施形態によって使用される、マッピング処理フローの例を示す。
【図３Ａ】図３は、図３Ａおよび図３Ｂを含み、１つ以上の開示された実施形態による例示的な設定の概念図を示す。
【図３Ｂ】図３は、図３Ａおよび図３Ｂを含み、１つ以上の開示された実施形態による例示的な設定の概念図を示す。
【図４】図４は、１つ以上の開示された実施形態による、状態の情報のキャッシュを開発するのに使用されるプロセスフローの例を示す。
【図５】図５は、本発明の１つ以上の実施形態によって使用される接続状態のプロセスフローを示す。
【図６Ａ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｂ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｃ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｄ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｅ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｆ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｇ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｈ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図６Ｉ】図６は、図６Ａ〜図６Ｉを含み、本発明の１つ以上の実施形態による、様々なスキャンシナリオの例、および図３の例示的な設定を使用した、状態の情報への対応する更新の例を示す。
【図７Ａ】図７は、図７Ａ〜図７Ｃを含み、本発明の１つ以上の実施形態によって使用するための探索および接続機能の例を示す。
【図７Ｂ】図７は、図７Ａ〜図７Ｃを含み、本発明の１つ以上の実施形態によって使用するための探索および接続機能の例を示す。
【図７Ｃ】図７は、図７Ａ〜図７Ｃを含み、本発明の１つ以上の実施形態によって使用するための探索および接続機能の例を示す。
【図８】図８は、１つ以上の実施形態による、変数および環境変数を操作するために使用可能なプリミティブの例を示す。
【図９Ａ】図９は、図９Ａ〜図９Ｃを含み、本発明の１つ以上の実施形態による、スクリプト環境が初期化される場合または最後の関数および環境変数が終了したと考えられる場合に実装する事ができるいくつかのシステム変数、および環境変数を示す。
【図９Ｂ】図９は、図９Ａ〜図９Ｃを含み、本発明の１つ以上の実施形態による、スクリプト環境が初期化される場合または最後の関数および環境変数が終了したと考えられる場合に実装する事ができるいくつかのシステム変数、および環境変数を示す。
【図９Ｃ】図９は、図９Ａ〜図９Ｃを含み、本発明の１つ以上の実施形態による、スクリプト環境が初期化される場合または最後の関数および環境変数が終了したと考えられる場合に実装する事ができるいくつかのシステム変数、および環境変数を示す。
【図１０Ａ】図１０は、図１０Ａおよび図１０Ｂを含み、本発明の実施形態によって使用される文字列の操作プリミティブのいくつかの例を示す。
【図１０Ｂ】図１０は、図１０Ａおよび図１０Ｂを含み、本発明の実施形態によって使用される文字列の操作プリミティブのいくつかの例を示す。
【図１１】図１１は、本発明の１つ以上の実施形態によって使用される計算プリミティブの例を示す。
【図１２Ａ】図１２は、図１２Ａおよび図１２Ｂを含み、本発明の１つ以上の実施形態によって、プログラム制御の一形態を可能にするために使用される条件付きの実行スクリプトプリミティブ、および条件付きの演算子の例を示す。
【図１２Ｂ】図１２は、図１２Ａおよび図１２Ｂを含み、本発明の１つ以上の実施形態によって、プログラム制御の一形態を可能にするために使用される条件付きの実行スクリプトプリミティブ、および条件付きの演算子の例を示す。
【図１３】図１３は、本発明の１つ以上の実施形態によって使用するループプリミティブの例を示す。
【図１４Ａ】図１４は、図１４Ａ〜図１４Ｃを含み、本発明の１つ以上の実施形態によって使用できる、プログラム制御プリミティブ、および関連付けられた戻り値および終了コードの例を示す。
【図１４Ｂ】図１４は、図１４Ａ〜図１４Ｃを含み、本発明の１つ以上の実施形態によって使用できる、プログラム制御プリミティブ、および関連付けられた戻り値および終了コードの例を示す。
【図１４Ｃ】図１４は、図１４Ａ〜図１４Ｃを含み、本発明の１つ以上の実施形態によって使用できる、プログラム制御プリミティブ、および関連付けられた戻り値および終了コードの例を示す。
【図１５】図１５は、本発明の１つ以上の実施形態によって使用できるスリープおよび時間プリミティブの例を示す。
【図１６Ａ】図１６は、図１６Ａ〜図１６Ｄを含み、本発明の１つ以上の実施形態によって使用される関連付けられた定義されたコード、通知および入力プリミティブの例を示す。
【図１６Ｂ】図１６は、図１６Ａ〜図１６Ｄを含み、本発明の１つ以上の実施形態によって使用される関連付けられた定義されたコード、通知および入力プリミティブの例を示す。
【図１６Ｃ】図１６は、図１６Ａ〜図１６Ｄを含み、本発明の１つ以上の実施形態によって使用される関連付けられた定義されたコード、通知および入力プリミティブの例を示す。
【図１６Ｄ】図１６は、図１６Ａ〜図１６Ｄを含み、本発明の１つ以上の実施形態によって使用される関連付けられた定義されたコード、通知および入力プリミティブの例を示す。
【図１７Ａ】図１７は、図１７Ａ〜図１７Ｅを含み、本発明の１つ以上の実施形態によって使用するためのワイヤレスネットワークプリミティブの例を含む。
【図１７Ｂ】図１７は、図１７Ａ〜図１７Ｅを含み、本発明の１つ以上の実施形態によって使用するためのワイヤレスネットワークプリミティブの例を含む。
【図１７Ｃ】図１７は、図１７Ａ〜図１７Ｅを含み、本発明の１つ以上の実施形態によって使用するためのワイヤレスネットワークプリミティブの例を含む。
【図１７Ｄ】図１７は、図１７Ａ〜図１７Ｅを含み、本発明の１つ以上の実施形態によって使用するためのワイヤレスネットワークプリミティブの例を含む。
【図１７Ｅ】図１７は、図１７Ａ〜図１７Ｅを含み、本発明の１つ以上の実施形態によって使用するためのワイヤレスネットワークプリミティブの例を含む。
【図１８Ａ】図１８は、図１８Ａ〜図１８Ｃを含み、本発明の１つ以上の実施形態によって使用されるＩＰＳＥＴプリミティブで使用されるパラメータと共に、インターネットプロトコル管理プリミティブの例を示す。
【図１８Ｂ】図１８は、図１８Ａ〜図１８Ｃを含み、本発明の１つ以上の実施形態によって使用されるＩＰＳＥＴプリミティブで使用されるパラメータと共に、インターネットプロトコル管理プリミティブの例を示す。
【図１８Ｃ】図１８は、図１８Ａ〜図１８Ｃを含み、本発明の１つ以上の実施形態によって使用されるＩＰＳＥＴプリミティブで使用されるパラメータと共に、インターネットプロトコル管理プリミティブの例を示す。
【図１９Ａ】図１９は、図１９Ａ〜図１９Ｆを含み、本発明の１つ以上の実施形態によるＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブ、およびプリミティブ結果の例を示す。
【図１９Ｂ】図１９は、図１９Ａ〜図１９Ｆを含み、本発明の１つ以上の実施形態によるＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブ、およびプリミティブ結果の例を示す。
【図１９Ｃ】図１９は、図１９Ａ〜図１９Ｆを含み、本発明の１つ以上の実施形態によるＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブ、およびプリミティブ結果の例を示す。
【図１９Ｄ】図１９は、図１９Ａ〜図１９Ｆを含み、本発明の１つ以上の実施形態によるＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブ、およびプリミティブ結果の例を示す。
【図１９Ｅ】図１９は、図１９Ａ〜図１９Ｆを含み、本発明の１つ以上の実施形態によるＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブ、およびプリミティブ結果の例を示す。
【図１９Ｆ】図１９は、図１９Ａ〜図１９Ｆを含み、本発明の１つ以上の実施形態によるＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブ、およびプリミティブ結果の例を示す。
【図２０】図２０は、本発明の１つ以上の実施形態によって使用されるトークンプリミティブの例を示す。
【図２１Ａ】図２１は、図２１Ａおよび図２１Ｂを含み、本発明の１つ以上の実施形態で使用される、ＧｅｔＣａｐプリミティブの例、および機能の例を示す。
【図２１Ｂ】図２１は、図２１Ａおよび図２１Ｂを含み、本発明の１つ以上の実施形態で使用される、ＧｅｔＣａｐプリミティブの例、および機能の例を示す。
【図２２Ａ】図２２は、図２２Ａおよび図２２Ｂを含み、本発明の１つ以上の実施形態によって設定を作成および／または更新するために使用できるサーバから返されるドキュメントの一般的な構造を示す。
【図２２Ｂ】図２２は、図２２Ａおよび図２２Ｂを含み、本発明の１つ以上の実施形態によって設定を作成および／または更新するために使用できるサーバから返されるドキュメントの一般的な構造を示す。
【図２３Ａ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２３Ｂ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２３Ｃ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２４Ａ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２４Ｂ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２４Ｃ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２４Ｄ】図２３は図２３Ａ〜図２３Ｃを含み、また図２４は図２４Ａ〜図２４Ｄ含んでおり、本発明の１つ以上の実施形態に基づいて設定の更新に使用されるＸＭＬベースのドキュメントの例を提供する。
【図２５】図２５は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図２６】図２６は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図２７】図２７は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図２８】図２８は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図２９】図２９は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３０】図３０は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３１】図３１は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３２】図３２は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３３】図３３は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３４】図３４は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３５】図３５は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３６】図３６は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３７】図３７は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３８】図３８は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図３９】図３９は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４０】図４０は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４１】図４１は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４２】図４２は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４３】図４３は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４４】図４４は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４５】図４５は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４６】図４６は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４７】図４７は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４８】図４８は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図４９】図４９は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５０】図５０は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５１】図５１は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５２】図５２は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５３】図５３は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５４】図５４は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５５】図５５は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５６】図５６は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５７】図５７は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５８】図５８は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【図５９】図５９は、本発明の少なくとも１つの実施形態による、表現およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【発明を実施するための形態】
【００１３】
概して、本発明は、ネットワークアクセスポイントの検出および使用のシステムおよび方法を含む。
【００１４】
本発明の特定の実施形態について、同様の参照番号が同様の構成要素を示す、上述された図を参照して説明する。本発明の実施形態は、８０２．１１ワイヤレスネットワーク環境に関して述べられているが、開示された実施形態は、例として８０２．１６および８０２．２０を含むが、それらに限定されない、その他のワイヤレスネットワーク環境を含むその他のネットワーク環境への応用を有することが明らかである。
【００１５】
１つ以上の開示された実施形態によって、ワイヤレス有効デバイス、またはクライアントによってネットワークスキャンが実行され、スキャンからネットワークアクセスポイントのいくつかが識別される。例えば、キャッシュ等の、クライアント上で維持される状態の情報は、スキャン中に識別されたネットワークアクセスポイントが、クライアントが使用可能であることを以前に判断されているか否かを判断するために、使用可能である。現在、識別されたネットワークアクセスポイントに関連付けられた状態の情報が存在しない場合、ネットワークアクセスポイントの使用可能状態は不明であると考えられる。クライアントは、ネットワークアクセスポイントの使用可能性に関するさらなる情報を取得するために、不明なネットワークアクセスポイントを探索するための探索機能を含む、設定情報を維持する。ネットワークアクセスポイントのために収集された状態情報は、クライアントのキャッシュの状態情報を更新するために使用できる。探索への応答として、ネットワークアクセスポイントから、所望の応答が受信された場合、その使用可能状態は「良好」であると示すように、状態の情報がネットワークアクセスポイントで更新される。所望の応答以外がネットワークアクセスポイントから受信される場合、ネットワークアクセスポイントに対応する状態情報は、その使用可能性が「不良」であると示すよう更新される。さらに、ネットワークアクセスポイントは、別のネットワークアクセスポイントとの「関連付け」に基づいて「良好」または「不良」であると判断することができる。ネットワークアクセスポイントが対応する状態の情報を持たない、および対応する探索がない場合、「不明」状態を示すよう更新される。この「不明な」状態は、例えば、ネットワークは、探索または接続テストに対して、最終的な「肯定」または最終的な「否定」の応答のどちらでもない方法で応答する等の、ネットワークについての最終的な情報が存在しない場合に使用可能である。
【００１６】
クライアント上でキャッシュされた状態の情報は、ネットワークに接続するために使用するネットワークアクセスポイントを選択するために、クライアントによって使用可能である。状態の情報は、ネットワーク接続の成功また失敗を反映するために更新可能である。
【００１７】
以下により詳細に記載しているように、状態の情報は、クライアントが状態を判断した各ネットワークアクセスポイントのための一意の識別子、例えば、ｂａｓｉｃ  ｓｅｒｖｉｃｅ  ｓｅｔ識別子（「ＢＳＳＩＤ」）を含むことができる、ワイヤレスネットワークの検出、使用可能性および使用情報を含むことができる。この情報は、ネットワーク選択を迅速に実行し処理時間を低減するために、後続のネットワークアクセスの考慮時に使用可能である。キャッシュは、クライアント上で動的に管理され、検出および利用情報に基づいて更新される。
【００１８】
本発明の１つ以上の実施形態によれば、ネットワークアクセスポイントの探索およびこれへの接続に使用される方法は、各クライアントに対して設定可能であり、アクセスポイント情報キャッシュの管理は、クライアントによって読み込み可能な設定ファイルを使用して、クライアント上で設定可能である。これにより、各クライアントまたはユーザの一意の検出設定が可能になる。この情報は、時々、更新または修正してもよく、クライアントの基幹的なハードウェアおよび／またはソフトウェアのプラットフォームの更新を必要とせずに、容易に追加および変更することが可能なように全体設定される。
【００１９】
図１は、本発明の１つ以上の実施形態によって使用される構成要素のアーキテクチャの概要の例を示す。クライアント１０８は、ワイヤレス有効デバイスである。ワイヤレス有効デバイスは、例えば、ＷｉＦｉチップを含む任意のデバイスであってもよい。こうしたデバイスの例には、デスクトップまたはラップトップコンピュータ、パーソナルデジタルアシスタント、デジタルカメラ、携帯電話、自動車、ゲーム機、消費電化機器等を含むが、これらに限定されない。
【００２０】
図１Ａに示される例のアーキテクチャは、ワイヤレスネットワーク１０２のインスタンスを含む。ワイヤレスネットワーク１０２の各インスタンスは、アクセスポイント（ＡＰ）１１２の１つ以上のインスタンスを含むことができる。ＡＰ１１２は、クライアント１０８等のクライアント、およびワイヤレスネットワーク１０２の通信または接続ポイントとして機能するネットワークデバイスである。クライアント１０８は、ワイヤレスネットワーク１０２を使用して、例えばインターネット１０６、有線接続されたネットワーク１０４、および／またはワイヤレスネットワーク１０２のその他のインスタンスへのアクセスを得ることができる。
【００２１】
ワイヤレスネットワーク１０２のインスタンスはアクセスコントローラ１１４の１つ以上のインスタンスを含むことができるが、これを含まなくてもよい。アクセスコントローラ１１４は、ワイヤレスネットワーク１０２へのアクセスを制御するために使用するデバイスを含む。ワイヤレスネットワーク１０２、および／またはインターネット１０６にアクセスするためのワイヤレスネットワーク事業者のルールを実施するために、アクセスコントローラ１１４が使用できる。本明細書により詳細に記載しているように、アクセス制御は、例えば、クライアント１０８を、認証を必要とせずにネットワーク１０２と関連付けることを可能にし、有効な認証情報を提供するまでクライアントの１０８のトラフィックをブロックすることで実行できる。使用可能なシナリオの一例には、クライアント１０８に認証情報を要求する、クライアントの１０８の初期のウェブページ要求の受信、およびアクセスコントローラ１１４への要求のリダイレクトのプロセスを含む。クライアント１０８が有効な認証情報を提供する場合、アクセスコントローラ１１４により、クライアント１０８によるワイヤレスネットワーク１０２の無制限の使用が可能になる。
【００２２】
アクセスコントローラ１１４は、典型的には、ホットスポット事業者によって提供される商用インスタンス等の、ワイヤレスネットワーク１０２の商用インスタンスと共に使用される。家庭内環境で使用されるインスタンス等の、ワイヤレスネットワーク１０２の別のインスタンスは、アクセスコントローラ１１４を含む必要がない。ワイヤレスネットワーク１０２の各インスタンスは、ワイヤレスネットワーク１０２のあるインスタンスから別のインスタンスへと変更可能な（および変更する可能性のある）、ネットワークの関連付け、認証および／またはネットワークへの接続のための特定の手順または方法論を有することができる。さらに、手順は、適宜変更することが可能である。
【００２３】
本発明の実施形態は、ワイヤレスネットワーク１０２のインスタンスの一意の方法論および要件に適合するよう、クライアント１０８を設定することができる。少なくとも１つの実施形態によりに、サーバ１３０はその初期設定をクライアント１０８に伝送し、追加的な更新を設定情報に提供することができる。
【００２４】
図１Ａに示される例のアーキテクチャにおいて、単一のクライアント１０８およびサーバ１３０が、単純化されて示されている。クライアント１０８の複数のインスタンスおよび／またはサーバ１３０の複数のインスタンスが存在できることは明らかであろう。さらに、各クライアント１０８は、異なる、一意の設定情報をダウンロードできることが明らかである。設定情報は、クライアント１０８によって使用されるソフトウェアおよび／またはハードウェアのプラットフォームへの更新を必要とせずに、容易な追加および変更を可能にするよう、全体設定されている。言い換えると、例えば、クライアント１０８は、ワイヤレスネットワーク１０２のために、アドレス変更の関連付け、認証および接続の手順への設定情報の更新によって再設定することができる。
【００２５】
図１Ｂは、本発明の１つ以上の実施形態による、クライアント１０８の内部のアーキテクチャの例を示す。クライアント１０８はさらなる構成要素を含むことができることが明らかである。こうしたさらなる構成要素は、例えば、デバイスの種類によって変えることができる。クライアント１０８は、中央処理ユニット（ＣＰＵ）１５１、ネットワークインターフェース１５２の１つ以上のインスタンス、入力／出力（Ｉ／Ｏ）デバイスインターフェース１５３の１つ以上のインスタンス、およびメモリ１５４を含み、このすべてはバス１５０を介してインターフェースをとることができる。ネットワークインターフェース１５２は、ＷｉＦｉ回路を含むことができるワイヤレスネットワークインターフェースを含むことができる。ネットワークインターフェース１５２の少なくとも１つのインスタンスは、伝送制御プロトコル／インターネットプロトコル、またはＴＣＰ／ＩＰ、プロトコルスイートによって定義される機能等の、ＡＰ１１２のインスタンスを検出し、ネットワーク通信プロトコルを使用してネットワーク通信を受信する機能を有する。メモリ１５４は、一時的および長期的なストレージの組み合わせを含むことができ、ランダムアクセスメモリ（ＲＡＭ）を含むことができる。メモリ１５４のコンテンツは、キャッシュ１５５、設定１５６、マッピング１５７、動作中のソフトウェアのプラットフォーム１５８、およびパーサ／インタプリタ１５９を含む。さらに、メモリ１５４は、ＲＡＭに加えて、長期的なストレージを含むことができる。こうした長期的なストレージの例には、フラッシュメモリおよびディスクストレージ（例えば、固定またはリムーバブル）、ＣＤ等を含むが、これらに限定されない。
【００２６】
動作中のソフトウェアのプラットフォーム１５８は、クライアント１０８の動作を制御するためにＣＰＵ１５１によって実行可能なプログラムコードを含む。パーサ／インタプリタ１５９は、設定１５６に含まれる情報を解釈するためにＣＰＵ１５１によって実行可能なプログラムコードを含む。パーサ／インタプリタ１５９によって解釈される設定１５６への変更によって、動作中のソフトウェアのプラットフォーム１５８を修正することなく、クライアント１０８を動的に設定するように、クライアント１０８のビヘイビアが変更される。設定１５６、および設定１５６への更新は、例えばサーバ１３０からクライアント１０８によって受信可能である。１つ以上の開示された実施形態によって、設定１５６は、マークアップ言語、例えば、拡張可能マークアップ言語（「ＸＭＬ」）を使用して記述され、スクリプト言語の要素を使用して定義される解釈可能な機能を含む。付録Ａに、開示された実施形態によって使用可能な設定のフォーマットについて指定する。また、付録Ｂで開示された実施形態によって使用可能なスクリプト言語、ＸＭＬ接続制御スクリプト（ＸＣｏＣｏＳ）言語の要素について指定する。
【００２７】
設定１５６の例は、追加的な更新を制御するために使用されるパラメータ、ユーザが利用可能なソフトウェア機能を識別するために使用されるソフトウェア機能制御識別子、信用証明物、スクリプト、プロファイル、プロファイルフィルタ、ネットワークリスト、位置、位置フィルタ、およびデフォルト設定が含まれるが、これらに限定されない。信用証明物は、ログイン情報（例えば、ユーザ名、パスワード、証明書等）を識別するために使用可能である。スクリプトは、スクリプト言語を使用して記述可能であり、いくつかの機能性を実行するためにパーサ／インタプリタ１５９によって解析および解釈可能な宣言を含む、１つ以上の機能を含むことができる。
【００２８】
スクリプトの例には、（典型的にはログインを含む）接続機能、（典型的にはログアウトを含む）切断機能、探索機能、状態更新機能、接続性チェック機能等を含むが、これらに限定されない。接続機能は、クライアント１０８、またはそのユーザがワイヤレスネットワーク１０２を使用できるよう、クライアント１０８に接続するための関連付け、認証、暗号化、および有効化プロセスを実行するために利用可能である。切断スクリプトは、ワイヤレスネットワーク１０２からクライアント１０８を切断するために、ログアウト機能を実行可能である。探索機能は、１つ以上の実施形態によって、ＡＰ１０２から受信した信号を有効化するが、これは、クライアント１０８がワイヤレスネットワーク１０２にログインしなくても有効化を実行可能である。接続が「健全」なものであるか否かを判断するために、状態の機能は、ワイヤレスネットワーク１０２に接続しながら、例えば、サーバ１３０等のサーバに接続するために使用可能である。所与のワイヤレスネットワーク１０２への接続が機能しており、インターネットへのアクセスを提供しているかどうかを判断するためには、接続性チェック機能を使用可能である。
【００２９】
設定１５６に含まれるプロファイルは、ワイヤレスネットワーク１０２と共に使用するための設定を含むことができる。プロファイルの設定を変更するには、設定１５６のプロファイルフィルタを使用できる。ワイヤレスネットワーク１０２の複数のインスタンスをプロファイルにリンクするためには、ネットワークリストを使用できる。位置によって、位置ディレクトリの拡張子が定義され、位置をフィルタする（つまり、クライアント１０８および／またはクライアント１０８のユーザに対して、位置ディレクトリのどの部分が利用可能であるかを制御する）ために位置フィルタが使用できる。デフォルト設定はデフォルトを定義し、また、設定１５６の任意の要素のデフォルトを含むことができる。
【００３０】
キャッシュ１５５は、ＡＰ１０２のインスタンスに対応する情報を含む。例えば、キャッシュ１５５は、使用可能性の情報（例えば、「良好と認識された」、「不良と認識された」、「良好として関連付け」、「不良として関連付け」、「不明」、「不明として関連付け」等）、および使用情報（例えば、最後の使用日時、良好な接続および不良な接続を識別する回数等。）を含む状態の情報と共に、ＡＰ１０２（例えば、ＢＳＳＩＤ）の一意の識別子を含むことができる。本明細書で開示された実施形態により、キャッシュ１５５は、スキャン、探索および接続動作の結果として更新される。マッピング１５７は、ネットワークのリストへプロファイルをマップするために、ネットワーク識別子（例えば、ＳＳＩＤ）へプロファイルをマップするために使用する情報を含む。設定１５６は、検出されたＢＳＳＩＤと、ＢＳＳＩＤが属するワイヤレスネットワーク１０２のための接続の設定およびその他の設定を含むプロファイルの間の一致を判断するためにランキングが使用可能な、プロファイルおよびネットワークをランク付けすることができる。マッピング１５７は動的に生成することができ、また、格納することができるか、仮想のものにすることができる。プロファイルランキング、およびネットワークランキング、およびこの情報に対応するＡＰ１１２からの信号があるかを含む。
【００３１】
再び図１Ａを参照すると、ＡＰ１１２インスタンスはビーコンフレーム１１９を送信する。クライアント１０８は、ＡＰ１１２のインスタンスによって送信されるビーコンフレーム１１９を「スキャン」１２０（本明細書で「検出」とも呼ばれる）、または、検出する。つまり、例えば、クライアント１０８のネットワークインターフェース１５２は、ＡＰ１１２のインスタンスによって所与のチャネルで送信されるビーコンフレーム１１９を受信する。ビーコンフレーム１１９は典型的には、セキュリティ設定と共に、ＳＳＩＤ、ＢＳＳＩＤ等の情報を含む。開示された実施形態を参照して本明細書で説明しているように、探索応答１２２に基づいて、ワイヤレスネットワーク１０２のインスタンスの使用可能性の状態を判断するために、探索１２１およびワイヤレスネットワーク１０２のインスタンスのＡＰ１１２へ、設定１５６によって、ビーコンフレーム１１９に含まれる情報が使用できる。判断された使用可能性の状態に基づいて、および設定１５６に従って、クライアント１０８は、ワイヤレスネットワーク１０２のインスタンスを介して、ワイヤレスネットワーク１０２、および／またはインターネット１０６への接続１２３を要求することができ、接続要求１２３への応答において受信した接続応答１２４に基づいて接続／使用状態を判断することができる。
【００３２】
１つ以上の実施形態により、クライアント１０８が接続可能なワイヤレスネットワーク１０２のインスタンスを選択するために、マッピング１５７を使用する。設定１５６で定義された１つ以上のネットワークによって設定１５６で定義されたプロファイルをマッピングするために、マッピング１５７が使用できる。本発明の１つ以上の実施形態において、図１Ｂに示されるように、マッピング１５７は、メモリ１５７の個別の構造として維持される。あるいは、マッピング１５７は、設定１５６に含まれるプロファイルおよびネットワークリストの検索によって、動的に判断することができる。本明細書で使用される例では、マッピング１５７は、説明および図示のために、個別の構造で示される。
【００３３】
図２は、１つ以上の開示された実施形態によって使用するためのマッピング処理フローの例を示す。概して、設定１５６で定義された各プロファイルについて、対応するネットワークリストが存在するかどうかが判断される。プロファイルが少なくとも１つの対応するネットワークリストを有する場合、ネットワークリストで識別されるように、プロファイルに関連付けられたネットワークを識別するために解析される。プロファイルが各ネットワークにマッピングされ、ＳＳＩＤがネットワークリストで識別される。所与のプロファイルの関連付けられたネットワークリストが存在しない場合、プロファイルはそのＳＳＩＤにマッピングされる。設定１５６は、プロファイルのランキング機能のために、また、プロファイルに関連付けられたネットワークをランキングするために提供される。
【００３４】
図２を参照すると、マッピング１５７が消去される。ステップ２０２において、処理されるべき任意のプロファイルが残っているかどうかが判断される。存在しない場合には、マッピングプロセスは終了する。処理されるべきプロファイルが残っている場合、第１の／次のプロファイルを取得するために、ステップ２０３において、処理が継続される。ステップ２０４において、プロファイルが１つ以上の対応するネットワークリストを有するかどうかが判断される。有しない場合、ステップ２０８において、マッピング１５７へ、そのランク、ＳＳＩＤおよび参照名等のプロファイルを追加するために、処理が継続される。ステップ２０４において、現行のプロファイルが１つ以上の対応するネットワークリストを有すると判断される場合、ステップ２０５において、ネットワークリストを処理するために処理が継続される。より詳細には、ステップ２０５において、処理するべきネットワークが残っているかどうかが判断される。現行のプロファイルのために処理するべきネットワークがもうないと判断される場合、ステップ２０２において、残りのプロファイルを処理するために、処理が継続される。
【００３５】
しかし、処理するべき少なくとも１つのネットワークリストが残っている場合、これは少なくとも１度目の反復における場合であるが、ステップ２０６において、ネットワークリストの第１の／次のネットワークを得るために、処理が継続される。ネットワークリストが２つ以上のネットワークを識別する場合、ネットワークリストの各ネットワークのために識別されたランキングに基づいて、次のネットワークが選択される。ステップ２０７において、関連付けられたプロファイル、ネットワークの参照名、ネットワークランク、および現行のネットワークに関連付けられたＳＳＩＤのランキングを含むことのできる、ネットワークのマッピング１５７のためにエントリが生成される。ステップ２０５において、処理をするべき任意のネットワークが残っているかどうかを判断するために、処理が継続される。
【００３６】
図２に示すプロセスを、さらに、図３に示す設定例を使用して説明する。マッピング１５７の例が、サンプル設定１５６のプロファイル３０１およびネットワークリスト３２０に基づいて生成される。この例において、マッピング３６０は、プロファイル３０１およびネットワークリスト３２０を使用して定義される。
【００３７】
プロファイル３０１およびネットワークリスト３２０は、プロファイルおよびネットワークリスト定義の概念図を示す。本発明の１つ以上の実施形態により、プロファイルおよびネットワークリストは、ＸＭＬベースの構文を使用して定義される。以下に、プロファイル３０１のプロファイル３０８に対応するプロファイルの部分的な定義の例を示す。
【００３８】
【数１】
2009538059.tif 000003
上記に示す定義は、ＸＭＬベースの構文を使用して表されるプロファイル定義の一部である。「Ｐｒｏｆｉｌｅ」要素に使用されるＸＭＬベースの構文はブロック構造を有しており、プロファイルに関連付けられた属性を定義する。例えば、上記のプロファイル定義は、「６」の値を有するプロファイル識別子を含む。プロファイル識別子は、クライアント１０８のために定義されたプロファイルにおいて、プロファイルを一意に識別する。さらに、この定義は、「商用ネットワーク」のディスプレイ名、および「ＣＯＮＮＯＲＤＩＮＡＬ」要素によって指定されるように、「２」のプロファイルで関連付けられたランクを識別する。図３Ａのプロファイル３０１を参照すると、プロファイル３０８は、列３０８のコラム３０２のプロファイルのランキング「２」と、その名前、コラム３０４の「商用ネットワーク」を含む。プロファイル３０１に示される例について説明を続けると、列３０７および３０９はそれぞれ「家庭内ネットワーク」および「オフィスネットワーク」の名前を有する２つのその他のプロファイルと通信を行う。プロファイル３０７および３０９は、コラム３０２（つまり、それぞれ「１」および「３」）におけるランク、およびコラム３０４（つまり、それぞれ「家庭内」および「オフィス」）に示されるＳＳＩＤの名称を有する。
【００３９】
ネットワークリスト３２０も、少なくとも１つの開示された実施形態によって、ＸＭＬベースの構文を使用して定義することができる。ネットワークリスト３２０の定義の一部を以下に示す。
【００４０】
【数２】
2009538059.tif 000004
示される例において、ＮｅｔｗｏｒｋＬｉｓｔ要素は、上記で定義された「Ｐｒｏｆｉｌｅ」ＸＭＬ要素の「ｉｄ」属性に関連付けられた値「６」に対応する、値「６」を有する「ｐｒｏｆｉｌｅｉｄ」属性を含む。この対応は、ネットワークリスト３２０、つまり、「Ｐｒｏｆｉｌｅ＝『商用ネットワーク』」に概念的に示されている。従って、「商用ネットワーク」プロファイル（つまり、エントリ３０８）が処理される場合、対応するネットワークリストが処理され、ネットワークリストで識別されたネットワークは、「商用ネットワーク」プロファイルにマッピングされる。ネットワークリスト３２０の列３２６から列３３０は、ネットワークリストで定義されたネットワークに対応する（それぞれ、「Ｗｉｌｌｏｗ」、「Ｓｏｎｏｒａ」、「Ｇｏｂｉ」、「Ａｒｒｏｙｏ」および「Ｐａｌｏ  Ｖｅｒｄｅ」）。各列は、ネットワークリスト３２０のコラム３２２から３２４に示されるように、ネットワークランク、ＳＳＩＤ、およびスクリプト名を有する。
【００４１】
マッピング３６０は、プロファイル３０１およびネットワークリスト３２０に基づいて識別されたマッピングを示す。マッピング３６９は、プロファイル３０１のプロファイル３０７によって定義された「家庭内ネットワーク」に対応する。その一位のランキングはマッピング３６９のコラム３６２に示され、そのＳＳＩＤ、「家庭内」はコラム３６５に示される。関連付けられたネットワークリストがないため、コラム３６４にはネットワークランクがない。「商用ネットワーク」プロファイルは、ネットワークリスト３２０で定義された各ネットワークに１つの、５つのエントリを有する。各マッピング３７０から３７４は、プロファイル３０１のプロファイル３０８で設定された同じプロファイルランキング、およびそのそれぞれのランキング（つまり、ネットワークリスト３２０のコラム３２２）に対応するネットワークランキング（つまり、マッピング３７０からマッピング３７４のコラム３６４）を有する。マッピング３６０の列３７５は、プロファイル３０１のプロファイル３０９に対応する。
【００４２】
図３Ｂは、ネットワークリストのネットワークによって参照される２つのスクリプト３４０の概念図を示す。例えば、「ＷｉｌｌｏｗＳｃｒｉｐｔ−ｖｌ」スクリプトはネットワークリスト３２０のネットワーク３２６によって参照され、「Ｗｉｓｐｒ−ｖｌ」スクリプトはネットワークリスト３２０のネットワーク３２７、３２８および３３０によって参照される。図示されているスクリプト例から明らかなように、スクリプトは、複数の機能を有することができる。例のスクリプトにおいて、「ＷｉｌｌｏｗＳｃｒｉｐｔ−ｖｌ」および「Ｗｉｓｐｒ−ｖｌ」スクリプトの両方は、探索、接続、切断およびチェック機能を含む。
【００４３】
例えば、図３を参照して説明されたもの等の、１つ以上のプロファイル、ネットワークリスト、スクリプトを含むことができる設定１５６を、ワイヤレスネットワーク１０２に接続するためにＡＰ１１２インスタンスを選択するよう、クライアント１０８によって状態情報が使用可能である一方で、開示された実施形態によって、クライアント１０８上にキャッシュされる状態の情報を作成するために使用可能である。図４は、１つ以上の開示された実施形態によって状態の情報のキャッシュを構築するために使用されるプロセスフローの例を示す。
【００４４】
一般的に、および少なくとも１つの実施形態によると、信号、例えば、クライアント１０８によって実行されたスキャンで検出されたビーコンフレーム１１９のインスタンスは、検出された信号が、プロファイル、および設定１５６で定義されたネットワークリストと一致するかどうかを判断するために、プロファイルおよびネットワークリストのマッピングと比較される。このプロセスは、その使用可能性を判断するために、検出されたＡＰ１１２のビーコンフレーム信号を探索するために１つ以上の探索機能を使用可能である。このプロセスは、実行可能なＡＰ１１２インスタンスが識別されるまで、または検出されたＡＰ１１２インスタンスおよび／またはプロファイル／ネットワークリストのすべてを処理するまで、継続可能である。
【００４５】
図４を参照すると、ステップ４０１において、クライアント１０８は、ビーコンフレーム１１９を検出するためにネットワークをスキャンする。各ビーコンフレーム１１９は、ＳＳＩＤおよびＢＳＳＩＤを含む。少なくとも１つのビーコンフレーム１１９が検出される場合、検出されたビーコンフレーム１１９を送信するＡＰ１１２インスタンスの状態が、例えば、設定１５６に含む情報を使用してＡＰ１１２インスタンスが使用可能であるかどうかが判断される。このプロセスを説明するために、本明細書では、プロファイル３０１およびネットワークリスト３２０に示す例、およびプロファイル３０１およびネットワークリスト３２０のマッピング３６０が使用される。図６Ａから図６Ｈは、開示された実施形態によって識別される状態情報を反映するために例のキャッシュに実行されるスキャンおよび対応する更新の例を示す。しかし、本発明の実施形態の適用はこれらの例に限定されないことが明らかであろう。
【００４６】
ステップ４０２において、処理するべきプロファイルが残っているかどうかが判断される。図３Ａに示される例において、プロファイル３０１は３つのプロファイルを含む。ステップ４０３において、検出されたビーコンフレーム１１９を処理するために、次のプロファイルが選択される。開示された実施形態によって、プロファイルはランクの順に処理され、つまり、ランキング「１」を有する第１のプロファイルがまず処理される（例えば、プロファイル３０１の「家庭内ネットワーク」がまず処理される）。ステップ４０４において、選択されたプロファイルに関連付けられたＳＳＩＤが、検出されたビーコンフレーム１１９で送信される任意のＳＳＩＤに対応するかどうかが判断される。対応しない場合には、ステップ４０２において、別のプロファイルを選択するように処理が継続される。
【００４７】
図３Ａおよび図６Ａに示される例を使用して、スキャン６０２ａは、ステップ４０１において、クライアント１０８によって検出されたビーコンフレーム１１９のインスタンスを含む。検出されたビーコンフレーム１１９は、図３Ａのマッピング３６０に示されるように、「家庭内ネットワーク」プロファイルの「家庭内」ＳＳＩＤに対応する、「家庭内」のＳＳＩＤを有する。この例において、ステップ４０４は一致を識別し、ステップ４０５へと処理が継続される。
【００４８】
ステップ４０４において、選択されたプロファイルのＳＳＩＤが検出されたビーコンフレーム１１９のＳＳＩＤに相当すると判断される場合、ステップ４０５において、検出されたビーコンフレーム１１９のＢＳＳＩＤがクライアント１０８に既に公知であるかどうかを判断するために、処理が継続される。図３Ａおよび図６Ａに示される例を使用して、例えば、クライアント１０８によってＡＰ１１２のインスタンスが既に検出されたかどうか、および関連付けられた状態の情報が判断されたかどうかを判断するために、ステップ４０５は、検出されたＢＳＳＩＤ（例えば、図６Ａのスキャン６０２ａにリストされる「０ｆ：１２：２２：ｅｆ：１２：２２」）がキャッシュ６０１ａに既にリストされているかどうかを判断するために、キャッシュ６０１ａを調べる。図６Ａの例において、キャッシュ６０１ａは空である。しかし、クライアント１０８がＡＰ１１２のインスタンスを検出すると、キャッシュは、開示された実施形態によって、クライアント１０８で得られた知識を反映するために更新可能である。
【００４９】
ＢＳＳＩＤがキャッシュにリストされていないと判断される場合、ステップ４１１において、設定１５６が処理中の現行のプロファイルに対応する探索機能を定義するかどうかを判断するために、処理が継続される。定義されない場合、ステップ４０９において、検出されたＢＳＳＩＤの使用可能性状態が「不明」であると示すためにキャッシュを更新するよう、処理が継続される。図６Ａに示される例において、キャッシュ６０５ａは、ＢＳＳＩＤ、および「不明」の状態をリストする。再び図４を参照すると、「不明」状態を反映するようキャッシュを更新した後、ステップ４１０において、プロファイルＳＳＩＤへ検出されたＡＰ１１２インスタンスのＳＳＩＤをマッピングするために処理が継続される。再び図６Ａを参照すると、図３Ａのマッピング３６０に相当するマップ６０３ａは、検出されたＳＳＩＤが「家庭内ネットワーク」プロファイルで識別されたＳＳＩＤに一致することを示すように更新される。また、ステップ４０２において、残りのプロファイルを処理するために処理が継続される。
【００５０】
ステップ４０５において、検出されたＢＳＳＩＤが既にキャッシュされたと判断される場合、ステップ４０６において、ＢＳＳＩＤに対応するキャッシュされた状態が「良好」として示されるかどうかを判断するために、処理が継続される。示される場合には、ステップ４０８において、ＡＰ１１２の現行の状態が「良好」として維持され、ステップ４１０において、処理が継続される。ＡＰ１１２が「不明」である場合と同様に、ステップ４１０において、プロファイルへの信号のマッピングおよびスキャン６０２ａからの信号の削除のために、処理が継続され、また、ステップ４０２において、残りのプロファイルおよびＡＰ１１２インスタンスによって送信されるビーコンフレーム１１９を処理するために、処理が継続される。
【００５１】
ＢＳＳＩＤのキャッシュされた状態が「良好」でも「不明」でもないと判断される場合、ステップ４０７において、「不良」の状態を示すようにキャッシュされた状態を更新するために処理が継続され、さらに、ステップ４０２において、残りのプロファイルを処理するために処理が継続される。検出されたＢＳＳＩＤのキャッシュされた状態が「不良」とマークされる場合、信号はスキャンプールから削除されない。これにより、検出されたＢＳＳＩＤを、別の、または残りの、プロファイルに対して調査することができる。
【００５２】
１つ以上の実施形態において、設定１５６で設定可能な所与のスキャン間隔でスキャンが実行される。スキャン間隔は、３０秒等の長さにすることができる。１つ以上の実施形態によって、クライアント１０８は、例えば、図４のステップ４０１の複数回の実行等の複数のスキャンを実行でき、スキャン間隔は、スキャンが実行される時刻に応じて変更することができる。例えば、スキャンは、クライアント１０８が最近有効化された場合に、より頻繁に実行されることが可能である（例えば、スキャンを数秒おきに実行する）。１つ以上の実施形態によって、図４に示されるプロセスは、クライアント１０８がＡＰ１１２を発見すると終了することができ、ＡＰ１１２のこのインスタンスを介して接続される。接続を実行するために使用する信号を監視することが可能である。さらに、少なくとも１つの実施形態によって、クライアント１０８がしばらくの間実行される場合、スキャンが実行される頻度を遅くするよう、スキャン間隔を調整可能である。複数のスキャンが実行される場合および保存される場合、格納されたスキャンリストは結合させることが可能であり、一括リストの信号は、例えば信号強度、その低下している信号状態、および／またはその一貫性のない信号強度に基づいて削除することができる。一括リストのその他の信号は、例えば、図４のステップによって処理することができる。有利に、この設定可能な特徴は、例えば、クライアント１０８のユーザがホットスポットを有する領域を移動するのみである場合等に、クライアント１０８の過渡信号等の信号の処理を回避できる。これは、バッテリ、およびその他の資源、管理に正の影響を及ぼすことができる。
【００５３】
キャッシュされた状態の情報、例えば、「不明」は、キャッシュされたエントリの接続状態を判断することによって、さらに細分化することができる。接続状態は、設定１５６で定義されたスクリプトの接続機能を使用して判断可能である。図５は、本発明の１つ以上の実施形態によって使用される接続状態のプロセスフローを示す。
【００５４】
一般的に、その他のプロファイルのそのランキングによってプロファイルが選択され、選択されたプロファイルと一致するよう判断されるキャッシュされたＢＳＳＩＤのエントリが識別され、および設定１５６から、選択されたプロファイルに対応する接続機能が識別される。選択されたプロファイルと一致する接続機能は、キャッシュされたＢＳＳＩＤエントリに対応するＡＰ１１２インスタンスへの接続を試行するために、パーサ／インタプリタ１５９の制御下において、ＣＰＵ１５１によって実行される。また、接続が成功したかどうか、および接続結果を反映するためにキャッシュされたエントリが更新されたかどうかが判断される。例えば、接続の失敗または成功、および接続または試行された接続の日時を反映させるために、キャッシュを更新できる。良好および／または不良の接続の回数もキャッシュすることができる。状態、例えば、「良好と認識された」または「不良と認識された」は、接続、または試行された接続の結果を反映するよう、更新可能である。さらに、接続テストに関してＢＳＳＩＤに関連付けられたＢＳＳＩＤの状態情報を更新可能である。例えば、ＢＳＳＩＤを有する試験的な接続が成功したと判断される場合、関連付けられたＢＳＳＩＤのキャッシュされた状態を、「良好として関連付け」状態を反映するよう更新可能である。同様に、ＢＳＳＩＤの接続試験が失敗した場合、関連付けられたＢＳＳＩＤのキャッシュされた状態を、「不良として関連付け」状態を示すよう更新可能である。
【００５５】
図５を参照すると、ステップ５０１において、処理するべき任意のプロファイルが残っているかどうかが判断される。残っていない場合、処理は終了する。しかし、処理するべきプロファイルが残っている場合、ステップ５０２において、処理されていないプロファイルからプロファイルを選択するために処理が継続される。図４を参照して記載されているように、プロファイル選択はプロファイルランキングに基づくことができる。ステップ５０３において、例えば、図６Ａのマッピング６０３ａを参照して判断可能なように、選択されたプロファイルが任意の一致するＡＰ１１２インスタンスのＢＳＳＩＤを有するかどうかが判断される。選択されたプロファイルが一致するＢＳＳＩＤを有しない場合、ステップ５０１において、任意の残りのプロファイルを処理するために処理が継続される。選択されたプロファイルが一致するＢＳＳＩＤを有する場合、ステップ５０４において、一致するＢＳＳＩＤに対応するＡＰ１１２インスタンスへの接続を試行するために、処理が継続される。
【００５６】
例えば、図６Ａを参照すると、マップ６０３ａは、一位にランク付けするために、および一致するＢＳＳＩＤを有するために、「家庭内ネットワーク」プロファイルを示す。プロファイルに関連付けられた接続機能は、例えば、選択されたプロファイルの定義および設定情報１５６を使用して識別される。「家庭内ネットワーク」プロファイルと共に使用するための設定１５６で定義された接続機能を、スキャン６０２ａで識別されるＢＳＳＩＤに関連付けられるＡＰ１１２インスタンスに接続試行するために使用する。
【００５７】
ステップ５０５において、接続が成功または失敗したかどうか、およびその結果に基づいてステップ５０６またはステップ５０７が実行されるかどうかが判断される。接続が成功したと判断される場合、処理は終了する。示される例において、良好な接続が見つかる場合、処理は終了する。また、１つ以上のその他の「良好」のＢＳＳＩＤを配置するために接続試験を実行して処理を継続することで、別の実施形態を考慮できることが明らかであろう。接続試行が失敗する場合、ステップ５０１において、残りのプロファイルを処理するよう、処理が継続される。
【００５８】
図６Ａを参照すると、スキャン６０４ａは接続成功を反映している。ＢＳＳＩＤは、「良好と認識された」ということを示す状態の情報、最後の接続試行の日時、および、ＡＰ１１２インスタンスに関連付けられたワイヤレスネットワーク１０２との正常な接続の成功を確立するために関連付けられたＡＰ１１２が使用された回数を有する。
【００５９】
図６Ｂから図６Ｈは、本発明の実施形態が使用できるいくつかのシナリオを示す、スキャンおよびキャッシュ６０４ａへの更新のその他の例を示す。これらの例は包括的なものではなく、開示された実施形態は、その他のシナリオによって使用可能であることが明らかであろう。
【００６０】
図６Ａを参照して説明されている例において、クライアント１０８は、「家庭内」ネットワークを検出し、ネットワークに正常に接続に成功することができた。図６Ｂの例において、クライアント１０８は、キャッシュされたＢＳＳＩＤ（例えば、「０ｆ：１２：２２：ｅｆ：１２：２２」）とは異なるＢＳＳＩＤ（例えば、「０ｂ：３ｆ：ａｌ：２１：０ｂ：ａｄ」）によって、「家庭内」ワイヤレスネットワーク１０２を検出する。このシナリオにおいて、両方のＳＳＩＤが同じ、つまり「家庭内」である間、ＢＳＳＩＤは異なる。さらなる調査を実行せずに、クライアント１０８は、新しく検出されたＢＳＳＩＤが同じワイヤレスネットワーク１０２インスタンスからのものであると想定することができ、ＢＳＳＩＤを使用してインターネット１０６へのアクセスを試行し、試行失敗が何回か繰り返された後に終了することがある。これにより、クライアント１０８の資源の大幅な損失が起こる可能性がある。クライアント１０８がバッテリ電力で稼動している場合には、これらの試行は、バッテリ電力を必要以上に低減させることになる。その使用可能性を判断するためにＡＰ１１２インスタンスを試験するため、本発明の実施形態を使用できる。
【００６１】
図６Ａのキャッシュ６０４ａに対応する図６Ｂのキャッシュ６０１ｂは、ＡＰ１１２を調査する前にキャッシュのコンテンツを表す。スキャン結果は、スキャン６０２ｂに示される。クライアント１０８は、一致するプロファイル、「家庭内」を選択するためにマップ６０３ｂを使用する。キャッシュ６０１ｂの検索により、検出されたＢＳＳＩＤが新しいことが判断される。例において、クライアント１０８は、スキャン６０２ｂで検出されたＢＳＳＩＤに対応するＡＰ１１２のインスタンスへの接続を試行する。しかし、またこのシナリオにおいて、ＡＰ１１２のインスタンスは、関連付けを失敗するセキュリティ設定を有するため、接続試行は失敗する。キャッシュ６０４ｂは、接続試験が失敗した後でキャッシュのコンテンツを反映する。キャッシュ６０４ｂは、この「家庭内」ネットワークへの接続の試行の失敗を反映するよう更新される。キャッシュ６０４ｂは、次に、１つは「良好と認識された」状態を有し、もう１つは「不良と認識された」状態を有する、２つのＢＳＳＩＤを識別し、各キャッシュされたエントリは最後の接続試行の日時、および良好および不良な接続の数を反映する。
【００６２】
図６Ｃは、キャッシュ６０１ｃで既にＢＳＳＩＤを検出する別のスキャン、６０２ｃの例を示す。スキャン６０２ｃの後、図６Ｂのキャッシュ６０４ｂに対応するキャッシュ６０１ｃが、検出されたＢＳＳＩＤの状態が既に認識されているかどうかを判断するために調査される。この場合、キャッシュ６０１ｃにおいて検出されたＢＳＳＩＤが見つかり、「良好と認識された」状態を有する。ＢＳＳＩＤが良好であることがわかっているため、ＢＳＳＩＤを試験する必要はなく、クライアント１０８は、ワイヤレスネットワーク１０２およびインターネット１０６へ接続するためにＢＳＳＩＤを使用することが可能である。クライアント１０８が接続にＢＳＳＩＤを使用した場合、および接続が成功した場合、キャッシュ６０４ｃは、２度目の接続の成功を反映するように更新される。
【００６３】
図６Ｄは、ＢＳＳＩＤがキャッシュされた状態情報に基づいて不良であることがわかる場合、例えば、検出されたＢＳＳＩＤに関連付けられたキャッシュされたエントリが「不良と認識された」状態を有する場合を示す。キャッシュ６０１ｄは、図６Ｃのキャッシュ６０４ｃに対応し、この両方は、スキャン６０２ｄで検出されたＢＳＳＩＤを「不良と認識された」として識別する。「不良と認識された」ＡＰ１１２インスタンスに関連付けられたＳＳＩＤは、マッピング６０３ｄに示されているように、プロファイルのＳＳＩＤに一致するが、不良であると以前に判断されているため、クライアント１０８は、ＡＰ１１２インスタンスへの探索または接続の試行を避けることができる。キャッシュ６０４ｄは、「不良カウント」を増分するよう更新される。もちろん、その設定１５６に基づいて、クライアント１０８は、その状態情報を更新するためにＡＰ１１２インスタンスを試験するように設定可能である。その場合、関連付けられたキャッシュエントリを、任意の状態の変更を反映するために更新可能である（例えば、別の接続試行失敗を反映するよう「最後の使用」情報を更新可能である）。
【００６４】
図６Ｅは、複数のＢＳＳＩＤ、つまり、そのすべてが同じＳＳＩＤを有している、ＡＰ１１２のインスタンスによって送信される複数のビーコンフレーム１１９を検出する、スキャン６０２ｅの例を示す。マッピング６０３ｅを参照すると、プロファイル、つまり、「家庭内ネットワーク」はより高いランクを有しており、そのため、「Ｓｏｎｏｒａ」ＳＳＩＤを識別するかどうかを判断するためにまず調査される。次のプロファイル、「商用ネットワーク」プロファイルが次に調査され、「Ｓｏｎｏｒａ」ＳＳＩＤは「商用ネットワーク」と一致すると判断される。マッピング６０３ｅは、この一致を反映する。しかし、スキャン６０２ｅの第１のエントリに関連付けられたＢＳＳＩＤは、キャッシュされたＢＳＳＩＤと一致しない。探索および／または接続の動作は、このＢＳＳＩＤの状態を判断するために実行することもできる。
【００６５】
図７Ａ〜図７Ｃを含む図７は、本発明の１つ以上の実施形態によって使用される探索および接続の機能の例を示す。
【００６６】
図７Ａを参照し、探索機能の例を示す。例の探索機能はセクション７０１〜７０５を含む。一般的に、探索機能は検出されたＡＰ１１２を介して、ワイヤレスネットワーク１０２と関連付けを行い、設定１５６で識別されるように、ゲートウェイが予測どおりにビヘイビアしているかどうかを判断するために、インターネット１０６へのアクセスを試行する。
【００６７】
セクション７０１は、変数を宣言および初期化するために使用されるスクリプト命令文を含む。例えば、変数「ａｌｉｖｅ」は、ウェブページのために、ｕｎｉｖｅｒｓａｌ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ、「ＵＲＬ」となるよう初期化される。セクション７０２は、例えば、データリンク層の接続を実行するために、ＡＰ１１２との「関連付け」（例えば、結合）を試行する。セクション７０２の論理「ＩＦ」ブロックは、関連付けが成功したかどうかを判断するために、その結果、つまり、関連付け動作の「ｒ」を調査する。例えば、関連付け動作は、返された結果が「２００」から「２０３」の値を有する場合に成功したと考えられる。関連付けの動作が成功した場合、設定１５６で定義された情報に基づいて、ＩＰ設定（例えば、ＩＰアドレスが静的であるか動的であるかを判断するために等）を適用するために、セクション７０３で機能が継続され、動作が成功したかどうかを判断するために結果がテストされる。
【００６８】
ＩＰ設定動作が成功した場合、「ａｌｉｖｅ」変数で指定されるＵＲＬによって参照されるウェブページを要求するために、セクション７０４によって機能再実行が継続される。取得されたドキュメントのコンテンツは、セクション７０５において調査される。ドキュメントが文字列「１２３４５６７６５４３２０」を含む場合、機能は、（例えば、「５０」のリターンコードに示されるように）成功して終了する。コンテンツがこの示された文字列以外である場合、返されたドキュメントがリダイレクト動作を示すかどうかが判断され、これによりウェブページドキュメントを取得するための別のＵＲＬ位置が識別される。本明細書で説明されているように、リダイレクトは、アクセスコントローラ１１４インスタンスへのものにすることができる。リダイレクト動作が示される場合、第１のドキュメントで指定される新しいＵＲＬを使用して、別のドキュメント取得要求が実行される。リダイレクト動作が取得されたドキュメントに示されている間、この処理が実行される。「リダイレクト」以外のメッセージタイプによって、「ｗｈｉｌｅ」ループが終了し、探索が成功したかどうかを判断するためにテストメッセージタイプを調べるよう、処理が継続される。ＷｉＦｉ分離動作が実行され、機能が終了する。
【００６９】
図７Ｂおよび図７Ｃは、接続機能の例を示す。一般的に、例の接続機能は、探索機能で実行されるものと同様の変数宣言および関連付けおよびＩＰ設定動作を実行する。接続機能は次に、認証情報を使用してログインを試行する（例えば、設定１５６で識別されるユーザ名およびパスワード信用証明物）。ログインが成功した場合、返されたドキュメントの調査およびドキュメントによって示されるリダイレクトの実行を含む、図７Ａを参照して記載されているものと同様の方法で、機能はウェブページを要求する。返されたドキュメントが予期されるコンテンツを有する場合、機能は、機能の実行が成功したことを示して返る。予期されるコンテンツを有しない場合、機能は、どのアクションを実行するかを判断するために、取得されたドキュメントのコンテンツの調査を試行する。
【００７０】
セクション７１１〜７１３は、変数の宣言および初期化、関連付けの実行およびＩＰ設定の取得において、図７Ａのセクション７０１〜７０３に類似している。セクション７１４は設定１５６からログイン信用証明物を取得し、セクション７１５は「ａｌｉｖｅ」変数で指定されたウェブサイトからウェブページのドキュメントを取得し、セクション７１６は取得されたドキュメントのコンテンツを調査する。取得したドキュメントが予想された値を有する場合、機能は成功を示すリターンコードと共に返る。予想された値を有しない場合、機能は「リダイレクト」メッセージタイプのドキュメントを調査し、この場合、新しい位置からドキュメントを取得する。リダイレクトメッセージタイプ以外のものである場合、セクション７１７は受信したメッセージの識別を試行する。セクション７１８は、次にサーバにポストされるログインフォームの値を設定するためのスクリプトコードを含む。ポストの結果は、成功したかどうか判断するために調査される。セクション７１９は、ログアウトの命令（例えば、ログアウトに使用されるＵＲＬ）を含むかどうかを判断するために、取得されたドキュメントのコンテンツを調査する。これを含む場合、命令は環境変数に格納され、機能が、成功した表示と共に返る。セクション７２０は、遅延が指定されているかどうかを判断するために、取得されたドキュメントのコンテンツを調査する。指定されている場合には、機能は、特定の期間、スリープ動作を実行する。
【００７１】
再び図６Ｅを参照し、図７Ａ〜図７Ｃに示す探索および接続機能の両方が実行された、および両機能によってスキャン６０２ｅの４つめのエントリ（つまり、「０ｆ：０２：２２：ｅｆ：００：０３」）が成功したと仮定する。キャッシュ６０４ｅの第１のエントリは、このＢＳＳＩＤと一致し、「１」という良好なカウントと共に、最後の接続の日時を示す。さらに、このＢＳＳＩＤの状態は「良好と認識された」に設定される。さらに、「良好と認識された」ＢＳＳＩＤと同じＳＳＩＤを有するその他のＢＳＳＩＤに対応するエントリは、「良好として関連付け」の状態を与えられる。つまり、探索機能または接続機能を使用して試験されていない間は、これらのＢＳＳＩＤは、試験されたＢＳＳＩＤとのその関連付け（例えば、同じＳＳＩＤを有する）に基づいて、良好であると考えられる。
【００７２】
１つ以上の実施形態によって、キャッシュ、例えば、キャッシュ６０４ｅは、古いエントリを一番下に移動させながら、新たに検出されたエントリがキャッシュの一番上になるように、およびキャッシュから最終的に取り除くことができるように、ごく最近使用された（「ＭＲＵ」）キャッシュ管理スキームを使用する。任意の種類のキャッシュ管理スキームが使用できることが明らかであろう。さらに、スキームのいくつかの混合または組み合わせが使用でき、スキームを、例えば、希望によって修正可能であることが明らかであろう。例えば、ユーザ自身の家庭内ワイヤレスネットワーク１０２に関連付けられたＢＳＳＩＤが削除されないように、キャッシュに永久に設定可能である。さらに、例えば、設定情報１５６に基づいて、所与のクライアント１０８のために、キャッシュサイズを動的に調整またはカスタマイズ可能であることも明らかであろう。
【００７３】
図６Ｆに示される例において、スキャン６０２ｆは、ＡＰ１１２の複数のインスタンス、および複数のワイヤレスネットワーク１０２を検出する。マッピング６０３ｆは、検出されたＢＳＳＩＤが２つのワイヤレスネットワーク１０２、つまり、「Ｇｏｂｉ」、「Ａｒｒｏｙｏ」および「ａｄｍｉｎｗｉｆｉ」と一致することを示す。「Ｇｏｂｉ」ネットワークの探索によって、不確定な結果がもたらされると仮定する。「Ｇｏｂｉ」ネットワークが使用可能である、または使用不可能であると探索が最終的に判断することができない場合に、これが起こる可能性がある。さらに、「Ａｒｒｏｙｏ」の探索によって、最終的な「良好と認識された」結果がもたらされたと仮定する。キャッシュ６０１ｆは、探索以前のキャッシュを示し、キャッシュ６０４ｆは探索以後のキャッシュを示す。試験された「Ｇｏｂｉ」のＳＳＩＤに関連付けられたＢＳＳＩＤは、認知（または検出）されているが、その使用可能性状態は「良好」または「不良」であるとまだ判断されていないため、「認知済、未確定」としてマークされる。さらに、その他の、「Ｇｏｂｉ」に関連付けられた試験されていないＢＳＳＩＤは、「関連付け済、未確定」としてマークされる。試験された「Ａｒｒｏｙｏ」ネットワークのＢＳＳＩＤは、「良好と認識された」状態を有するキャッシュで示され、およびその他の、「Ａｒｒｏｙｏ」ネットワークの試験されていないＢＳＳＩＤは「関連付け済、良好」として示される。
【００７４】
さらに、「ａｄｍｉｎｗｉｆｉ」ＳＳＩＤに対応するＢＳＳＩＤがスキャン６０２ｆで検出され、これは新しく発見されたＢＳＳＩＤおよびＳＳＩＤを表す。マップ６０３ｆに示されるように、「ａｄｍｉｎｗｉｆｉ」ＳＳＩＤは設定されたプロファイルにマップされない。「ａｄｍｉｎｗｉｆｉ」に対応するＢＳＳＩＤはキャッシュには追加されない。スキャン６０２ｆの前のキャッシュの状態を表すキャッシュ６０１ｆは、スキャン６０２ｆの後のキャッシュの状態を表すキャッシュ６０４ｆに反映されるように更新される。
【００７５】
図６Ｇを参照すると、図６Ｆのキャッシュ６０４ｆに対応するキャッシュ６０１ｇは、スキャン６０２ｇの前のキャッシュを表す。スキャン６０２ｇは、スキャン６０２ｆと同じＢＳＳＩＤおよび「Ｇｏｂｉ」ネットワークに対応する１つのさらなるＢＳＳＩＤを検出する。また、マッピング６０３ｇのプロファイルと一致しない、「ａｄｍｉｎｗｉｆｉ」に対し、同様の結果がもたらされる。探索は最後のスキャンから成功しているため、今回は、「Ａｒｒｏｙｏ」ネットワークは探索されていない。さらに、「良好として認識された」ＢＳＳＩＤが存在するため、「Ｇｏｂｉ」ネットワークに関連付けられたＢＳＳＩＤの探索は不要である。図６Ｆおよび図６Ｇの両方のネットワークに接続するために同じＡＰ１１２を使用すると仮定すると、キャッシュは、キャッシュ６０４ｇで示されるように、「２」のカウントを反映する。
【００７６】
図６Ｈのキャッシュ６０１ｈは、図６Ｇのキャッシュ６０４ｇに対応する。図６Ｈのスキャン６０２ｈは、ＡＰ１１２の複数のインスタンス、および複数の対応するＳＳＩＤを検出する。マッピング６０３ｈに示されるように、２つのプロファイルは、スキャン６０２ｈの一致するＳＳＩＤを有すると判断される。現行のシナリオにおいて、失敗した「良好として認識された」「Ａｒｒｏｙｏ」ＢＳＳＩＤを使用して、インターネット１０６への接続を試行する。キャッシュ６０４ｈは、「不良カウント」コラムにおいて１つの不良接続を反映するように更新される。キャッシュ６０１ｈは、「Ｇｏｂｉ」ネットワークの２つのＢＳＳＩＤが「未確定」と識別する。しかし、「Ｇｏｂｉ」ネットワークの新たに発見したＢＳＳＩＤが存在し、これは探索が成功しており、接続に使用される。これは「良好として認識された」状態を有するキャッシュ６０４ｈに追加され、その「良好カウント」フィールドは、１つの良好な接続を反映するために増分される。「Ｇｏｂｉ」ネットワークのその他の２つのＢＳＳＩＤの状態は、「認知済、未確定」および「関連付け済、未確定」から「関連付け済、良好」へと変化する。
【００７７】
キャッシュ６０４ｈを参照し、後続のスキャンがスキャン６０２ｈと同じ結果をもたらすと仮定すると、クライアント１０８は、例えばインターネット１０６に接続するために、「良好として認識された」３つのＡＰ１１２インスタンスから選択を行うことができる。１つ以上の実施形態によって、可能な選択肢の選択を、ＢＳＳＩＤによって関連付けられた「良好カウント」および「不良カウント」値に基づいて実行できる。
【００７８】
例えば、図６Ｈを参照し、「Ａｒｒｏｙｏ」および「Ｇｏｂｉ」ネットワークのキャッシュされたＢＳＳＩＤの、どちらかといえば考えられる選択肢は、関連付けられた不良カウントがないため、「Ｇｏｂｉ」ネットワークのＢＳＳＩＤとなる。良好および不良カウント、ならびにキャッシュ６０４ｈのＢＳＳＩＤに関連付けられた最後の接続情報に基づいてＢＳＳＩＤを評価することで、判断を実行可能である。例えば、「良好として認識された」ＢＳＳＩＤに対して、（例えば、「最後の使用」状態情報に基づいて）最後に使用されたものであると判断されるＢＳＳＩＤが識別される。ＢＳＳＩＤおよびその関連付けられたＢＳＳＩＤのそれぞれに、５ポイントが付与される。次に、各「良好カウント」に１ポイントが付与され、各「不良カウント」で２ポイントが差し引かれる。キャッシュ６０４ｈに示される例において、「Ｇｏｂｉ」は１６（つまり、１５＋１＝１６）のスコアとなり、「Ａｒｒｏｙｏ」は、１０（つまり、１０＋２−２＝１０）のスコアとなる。このスコアに基づいて、「Ｇｏｂｉ」ネットワークに関連付けられたＢＳＳＩＤが選択される。
【００７９】
当然ながら、こうした選択を実行するために、任意の種類の基準が利用可能であることが明らかであろう。例えば、選択は、ユーザの希望、関連付けられたコスト等に基づくものにすることができる。
【００８０】
図６Ｉを参照すると、例えば、ユーザがホットスポットに接続した後等の、クライアント１０８がＡＰ１１２のあるインスタンスから別のインスタンスに切り替えられる、別のシナリオが示される。キャッシュ６０１ｉは図６Ｈの６０４ｈに対応し、スイッチ以前のキャッシュの状態を反映する。図６Ｉの例のシナリオでは、クライアント１０８は、１つのＡＰ１１２インスタンス、例えば、「０ｆ：３３：１２：ａｃ：１９：９９」に接続し、次に、クライアント１０８のユーザがホットスポット環境を探索する際、クライアント１０８は、別のＡＰ１１２インスタンス、例えば、「０ｆ：０２：１５：２９：０１：０１」に「引き渡し」される。さらに、スキャン６０２ｉが実行され、それによって、例えば、「０３：ｃｄ：１２：ａａ：９９：ａｄ」ＢＳＳＩＤおよび「Ｇｏｂｉ」ＳＳＩＤ等を含む、新しいＡＰ１１２インスタンスのビーコンフレーム１１９が検出される。マッピング６０３ｉに示されるように、新しい信号が「Ｇｏｂｉ」ネットワークにマッピングされる。さらに、新しいＢＳＳＩＤが、ＡＰ１１２インスタンスが良好であると認識されているネットワークに関連付けられているため、「良好として関連付け」としてキャッシュ６０４ｉにリストされる。さらに、また「０ｆ：０２：１５：２９：０１：０１」ＢＳＳＩＤに対応するキャッシュ６０４ｉのエントリに対して、最後の使用および良好カウントフィールドは、このＢＳＳＩＤへの切り替えを反映するよう更新される。
【００８１】
このため、示されるように、本明細書の実施形態を、複数のネットワークが共通のＳＳＩＤを有するシナリオに応用することが可能であるが、異なる位置で異なったビヘイビアを示してもよい。これを説明するために、携帯電話通信事業者が、異なる種類の位置（例えば、コーヒーショップ、空港、異なる国のコーヒーショップおよび空港等。）にワイヤレスネットワーク１０２のいくつかのインスタンスを有すると想定する。ユーザは、すべてのコーヒーショップにおける通信事業者のワイヤレスネットワーク１０２にアクセスできるが、空港内の通信事業者のワイヤレスネットワーク１０２へはアクセスできない。しかし、コーヒーショップおよび空港内のすべてのワイヤレスネットワーク１０２のインスタンスは、同じネットワーク、またはＳＳＩＤ、名称を有する。本発明の実施形態は、クライアント１０８にネットワークが使用できる、およびネットワークが使用できないことを、試験（例えば、探索および／または接続試行）から認識する機能性を提供する。こうして、状態情報をキャッシュすることができ、クライアント１０８に対して、得られた知識に基づいてインテリジェントな接続の判断を行うために使用できる知識を提供する。
【００８２】
このようなシナリオのための探索スクリプトには、例えば、ウェブサーバへの事前に決定されたユーザ名による迅速なログインを含む。通信事業者によって提供された情報に基づいて、クライアント１０８は、ログインが成功した場合には、位置が使用可能であり、およびログインが失敗した場合には位置が使用不可能であることを判断するよう設定可能である。クライアント１０８が位置に到達すると、探索の一部としてこのテストログインを実行することができ、位置が使用可能であるかどうか、その探索結果に基づいて判断することができる。例えば、探索結果はクライアント１０８でキャッシュされるため、知識を構築し、ネットワークについての情報を得ることが可能である。
【００８３】
このため、毎朝同じコーヒーショップに立ち寄る場合、およびクライアント１０８が、この位置におけるネットワークが「不良と認識された」以前の探索からわかっている場合、毎朝ログインを試行する必要はない。この位置において時間およびバッテリを再び浪費する必要はない。探索が確実なものでない場合、クライアント１０８はこれも把握しており、再び探索するかどうかを判断することができる。
【００８４】
特定のシナリオにおいて、本明細書に記載された１つ以上の実施形態によって、１つのネットワークを検出し、その他のネットワークを検索するために探索スクリプトを使用することが望ましい場合がある。例えば、「Ｄ−ＷｉＦｉ」ＳＳＩＤは、特定の位置から表示可能にしてもよい。このＳＳＩＤが表示可能な場合、探索は、表示不可能な「Ｄ−ＷｉＦｉ−ＷＰＡ」ＳＳＩＤへの接続を試行することができる。探索動作が成功したと仮定すると、クライアント１０８は、ネットワークは「良好と認識された」ことを認識する。次に、クライアント１０８が接続を判断すると、接続機能は、「Ｄ−ＷｉＦｉ−ＷＰＡ」への接続を試行する。この特定のＷｉＦｉ配備シナリオは柔軟性のある接続方法を提供し、設定１５６を介して設定可能であるという利点がある。
【００８５】
本発明の実施形態は、探索、接続、切断等の動作を実行するクライアントソフトウェアツールキットを利用する。クライアントソフトウェアツールキットは、ＸＭＬ接続制御スクリプト（ＸＣｏＣｏＳ）言語をサポートする。ＸＭＬ解析は、スクリプト言語を実施する他に、設定情報管理に使用できるという利点があり、このスクリプト言語の実施には、最小限の追加コードが含まれる。本発明の実施形態は、プログラミング言語を単純化しなければならないというバランスを考慮しながらも、複雑なインタプリタを必要とせずに、最も基本的な機能を実行するための十分な電力を提供する。
【００８６】
ＸＭＬスクリプトは、アクセスポイント、および第３層の接続性機能性への関連付け後に実行可能な、ウェブベースのログインを実行するための機能性を含む。ＷＰＡをサポートする、８０２．１１ベースの認証方法が追加され、ＸＭＬスクリプトの範囲は、関連付け前、関連付け、関連付け後ログイン、探索、ログアウトおよび分離タスクを含むよう拡張されている。
【００８７】
ログインを含むことができる接続、および、ログアウトを含むことができる切断のための方法が使用できる。開示された実施形態によって提供されているＸＭＬベースのスクリプトはさらに、ログイン前に予期されているように特定の信号がビヘイビアするかどうかを決定するために使用される探索、ネットワークのアクセスコントローラからの状態メッセージが存在するかどうかを決定するために接続中に利用される状態の更新、および接続が稼働しているかどうかを決定するために使用される接続性チェックをサポートする。これらの様々なタスクは、ＸＭＬベースのスクリプト内の機能において実行され、シングルＸＭＬベースのスクリプトは複数の機能を含んでもよい。
【００８８】
機能（例えば、接続、探索、接続性チェック等）の実行時、クライアント１０８は、例えば、その意図および使用中のネットワークプロファイルで参照されるスクリプト名に基づくＸＭＬベースのスクリプトの適切な機能を呼び出す。必要な機能がスクリプトに存在しない場合、クライアント１０８は、デフォルトスクリプトの所与の機能に戻る。
【００８９】
１つ以上の実施形態によって、スクリプトは、シングルスレッドおよびアプリケーショングローバルで明示的に実行され、一度に１つのスクリプトが実行される。スクリプトには、環境変数の個別のデータ領域（スクリプトおよびアプリケーション実行の間で持続）、規則変数（スクリプト実行期間において有効）および間接的にアクセス可能なＨＴＴＰ変数（ＨＴＴＰ要求にのみ関連し、新しいＨＴＴＰ要求の実行が成功するまで、スクリプト実行期間において有効）が含まれる。
【００９０】
少なくとも１つの開示された実施形態によって、スクリプト言語の組織概念はスクリプトであり、これは参照される名前を有する。各スクリプトは１つ以上の機能を有しており、これも名前によって参照される。各スクリプトは、少なくとも１つの機能を含むことができる。いくつかの機能の種類を特定の目的のために事前に定義することが可能であり、機能がある名前を既に定義されているかどうかは、機能名に示すことができる。例えば、「Ｐｒｏｂｅ」、「Ｃｏｎｎｅｃｔ」、「Ｃｈｅｃｋ」、「Ｓｔａｔｕｓ」および「Ｄｉｓｃｏｎｎｅｃｔ」は、システム定義された機能に対応する機能の種類の例である。システム定義された機能は、例えばアンダースコアの接頭辞になっている機能タグの名前の属性で指定することが可能である。探索、接続、接続性チェック、状態更新および切断の機能の種類が本明細書に記載されている。
【００９１】
所与の信号が予期した通りにビヘイビアしているかどうかを認証するために、探索機能を使用可能である。この種類の機能は、実際にログインせずに（例えば、ユーザ課金イベントを回避するために）、ネットワークに接続するために所与の「ａｃｍｅ」ＳＳＩＤが使用できるかどうかを判断する。
【００９２】
所与のＡＰに関連付け、ユーザをログインさせ、ユーザをネットワークを利用可能なポイントまで到達させるために必要な関連付け、認証、暗号化、ウェブおよび有効化のプロセスを実行するために、接続機能を使用可能である。接続機能は、ＷｉＦｉで保護されたアクセス、「ＷＰＡ」のために８０２．１ｘ認証をサポートする。
【００９３】
インターネット制御メッセージプロトコル（「ＩＣＭＰ」）Ｐｉｎｇ、アドレス解決プロトコル（「ＡＲＰ」）を使用したゲートウェイへのアドレス解決、ドメイン名サービス（「ＤＮＳ」）参照、またはウェブベースの接続性チェック等のアクションを実行することによって、所与のネットワーク／ＡＰへの接続が動作している、およびインターネットへのアクセスが提供されていることを確認するために、接続性チェック機能を使用可能である。これにより、インターネット接続を確認するためのゲートウェイを超えてチェックを行うことができる。例えば、チェック機能は、インターネット接続がオープンでありアクティブである場合にのみ表示可能な、または特定の機能を実行するために必要なセッション開始プロトコル（「ＳＩＰ」）サーバにＰｉｎｇを送信可能なウェブサーバに接続してもよい。
【００９４】
接続が健全であるかどうかを判断するために状態サーバへの接続中に、状態更新の機能を実行可能である。例えば、機上において、インターネットアクセスが禁じられている衛星状態についての情報を得るために機内コントローラでチェックするために、状態方法を使用可能である。
【００９５】
ユーザアカウントマネジャー（「ＵＡＭ」）ベースのログアウト機能を実行し、ＩＰ関連を解放し、アクセスポイント関連等を解放するために、切断機能を利用可能である。
【００９６】
１つ以上の実施形態によって、スクリプトは、少なくとも１つの機能を有することができ、複数の機能を有してもよい。スクリプト名はクライアント設定によって範囲指定可能であり、その範囲内において一意である。設定更新ファイルには、名前が重複することがないことを保証するために制限する機構は存在しない、詳細についてはｃｏｎｆｌｉｃｔ  ｒｅｓｏｌｕｔｉｏｎについてのファイル形式を参照のこと。
【００９７】
機能名はスクリプトによって範囲指定することが可能であり、その範囲内において一意である。このような場合、ある１つのスクリプトにおいて種類毎の１つの機能が可能であり、つまり、１つのスクリプトは、＿Ｐｒｏｂｅおよび＿Ｃｏｎｎｅｃｔの機能を有してもよい。
【００９８】
設定ファイルに関して本明細書で詳細に説明されているように、信号プロファイルは、指名されたスクリプトとの関連を有するネットワークを含む関連付けられたネットワークリストを有する。所与のスクリプトで定義されていない機能については、デフォルト機能を使用できる。デフォルト機能は＿Ｄｅｆａｕｌｔという名前のスクリプトに含むことが可能であり、これは、各クライアント１０８上に暗黙に存在する。すべてのデフォルト機能は＿Ｄｅｆａｕｌｔに含まれる定義によるものにすることができる。＿Ｄｅｆａｕｌｔスクリプトは、ソフトウェアまたは設定更新によってオーバーライドすることができる。デフォルトスクリプトがオーバーライドされない場合、実行される機能は、各事前に定義された機能について成功を返す。
【００９９】
ネットワークリストからの１つの関連によって、所与の信号のためのすべての機能を、１つのスクリプトにグループ化されるようにすることで、ログイン、ログアウト等のためのプログラム的なやりとりに関連するすべてのデータが一箇所に集められ、これは、保守および割り当てを促進すると共に、エラーの可能性を低減する（例：一致するログアウト方法を割り当てずに、ログイン方法をプロファイルに割り当てる）。
【０１００】
任意の数のさらなる機能をスクリプト内に定義可能であり、「＿」で始まる名前はシステム定義された機能を示すため、こうした機能の名前は、「＿」以外で始まる。
【０１０１】
１つ以上の開示された実施形態によって、スクリプトのグローバルリストが使用され、各スクリプトは１つの機能レベルを含む、スクリプトおよび機能の階層構造が使用される。
【０１０２】
スクリプト変数の操作には、シングルスクリプトインタプリタ実行の動作中に維持される単純な変数の宣言、指定／変更、存在のチェック、および削除等の機能が含まれる。環境変数は、方法の実行によって保守される持続的な環境において、格納、リスト、取得および破棄することができる。読み出し専用の持続変数がサポートされており、特別な持続変数を定義可能である。「機能」プリミティブは、すべての機能のリストまたは特定の機能が存在するかどうかを問い合わせることで、スクリプトがアプリケーションの機能を決定できる機構を指す。実行は、機能の識別子が呼び出された後、第１のコマンドにおいて開始され、機能終了となる場合またはリターン命令が発行される場合に停止される。
【０１０３】
１つ以上の実施形態において、スクリプト機能は、ＤＢＧＢＲＥＡＫ属性およびＰＲＩＮＴ要素のスクリプトのデバッグをサポートするための２つの設定概念を含む、デバッグ機能を含む。非デバッグバージョンのソフトウェア実行において、これは共に無視することができる。
【０１０４】
印刷コマンドは、所与の文字列をログファイルに印刷する。ＤＢＧＢＲＥＡＫ属性を、属性をとる任意のコマンドへの属性として追加可能である。「ｖａｌ」パラメータは、通常の評価ルールによって評価される（例えば、スクリプト言語の条件付きの要素を参照）。これが真（０でない、空の文字列でない）であると評価される場合、スクリプト実行は、ＤＢＧＢＲＥＡＫ属性が添付されている要素以前に中断される。
【０１０５】
その他すべての属性の場合と同様に、変数の置き換えが適用されるため、変数を０（デバッグがオフ）または１（デバッグがオン）に設定し、その変数をｖａｌとして使用することで、条件付きのデバッグを実行可能である。
【０１０６】
すべての変数、方法および機能名を、「ＡＳＣＩＩテキスト」として指定することができる。命名規則を使用できる（例えば、文字Ａ−Ｚ、ａ−ｚ、０−９および−を、ユーザが指定した名前部分として提供可能である）。接頭辞の「＿」は、値はシステム定義された値であるということを示す。ユーザ定義された機能、方法および変数名は、「＿」以外で始まる。ｔｅｓｔおよびＴＥＳＴおよびＴｅｓｔが３つの別々の名前になるよう、名前は大文字と小文字を区別することができる。
【０１０７】
スクリプト名、機能名、変数名および環境変数名は、それ自身の範囲を有することができる。範囲内において、名前は一意である（例えば、変数および環境変数は共に、「Ｔｅｓｔ」という名前を付けることができ、一意として考えられる）。
【０１０８】
その範囲に関して、１つ以上の実施形態において、スクリプト名はグローバルであり、例えば、スクリプト名は、所与の設定を有する所与のクライアントを実行する所与のユーザに対して一意である。所与のスクリプト要素内で一意であるように、機能名はローカルである。変数名は、所与のパーサ／インタプリタに対してグローバルである。環境変数名は、所与のクライアントに対してグローバルである。
【０１０９】
１つ以上の実施形態において、スクリプト環境では、別のスクリプトにおける機能を参照するために機能名のドットを使用し、ドットはスクリプトおよび機能名を区切るものとして使用される。
【０１１０】
１つ以上の実施形態により、スクリプト環境は、２種類の変数、つまり、スクリプト変数および環境変数をサポートする。スクリプト変数は、システムによって、またはスクリプトにおいて定義可能であり、パーサ／インタプリタ１５９が実行している間、存在する。スクリプト実行が終了すると、変数は破棄される。環境変数はアプリケーション環境に存在し、スクリプト実行およびアプリケーション実行の間も継続して存在する（つまり、その値は永続的なストレージに保管される）。環境変数の範囲は、ユーザ毎のアプリケーションおよびデバイスの範囲となる。この機構は、スクリプト実行の間の持続的なデータを提供するため（例えば、接続機能によって格納された切断機能で利用可能な特定のログアウトＵＲＬに接続するために）およびアプリケーショングローバルデータ（ログイン信用証明物、ソフトウェアの機能およびホストアプリケーションへスクリプトの結果を通知するため等）へのアクセスを提供するために使用される。
【０１１１】
変数名は、１６文字以下の長さのＡＳＣＩＩ文字列にすることができる。１つ以上の実施形態によると、すべての変数コンテンツはＡＳＣＩＩ文字列である。演算動作によって文字列の値は整数に変換され、要求された動作を実行し、別の文字列を返す。
【０１１２】
作成時において、変数は、使用するコマンドによって、スクリプトまたは環境変数として識別される。環境変数を操作するためには、スクリプト変数にコピーし、操作し、環境変数に再びコピーする。環境変数上で動作する関数は、例えばＩＳＥＮＶ、ＳＥＴＥＮＶおよびＧＥＴＥＮＶがある。
【０１１３】
ユーザ定義されたスクリプト変数は読み書き用であり、システム定義されたスクリプト変数は、その機能に応じて、読み取り専用または読み書き両用のいずれかにすることができる。｛ｓｔｒ｝または｛ｉｎｔ｝をパラメータとして示すリテラル値が使用できる。変数のコンテンツは、変数名の前に＄を置くことで配置可能である。＄をリテラルにするには、列に２つの＄（例えば、＄＄）を含める。
【０１１４】
いくつかの環境変数は読み込み専用（例えば、デバイスについての所与のパラメータと通信する変数、信用証明物等のアプリケーションまたは固定パラメータ等）にすることができる。
【０１１５】
システム変数は、「＿」で始まる命名規則によって、識別可能である。このような場合、ユーザ定義可能な変数は、「＿」以外で始まる。
【０１１６】
図８は、１つ以上の実施形態によって、変数および環境変数を操作するために使用可能なコマンドの例を示す。図９Ａ〜図９Ｃを含む図９は、本発明の１つ以上の実施形態による、スクリプト環境を初期化する場合または最後の機能が終了したと考えられる場合に、投入可能ないくつかのシステム変数および環境変数を示す。
【０１１７】
図１０Ａおよび図１０Ｂを含む図１０は、本発明の実施形態によって使用される文字列の操作機能の例を示す。文字列の操作機能は、文字列長をチェックし、サブ文字列の位置を配置し、文字列を縮小し、引数をカウントし、ｎ番目の引数を取得し、次の引数、サブ文字列、ＵＲＬエンコード、ＵＲＬデコード、Ｂａｓｅ６４エンコードおよびデコード、置換サブ文字列を除去する機能を含むことができる。文字列の操作機能は１つ以上の引数をとることができ、引数は、変数またはリテラル文字列のどちらかの名前にすることができる。変数参照は、参照の前に「＄」を使用して識別される。文字をドル記号にするには、２つのドル記号（１のドル記号で置換される）を使用する。
【０１１８】
図１１は、本発明の１つ以上の実施形態によって使用される計算機能の例を示す。図１２Ａおよび図１２Ｂを含む図１２は、本発明の１つ以上の実施形態によるプログラム制御のフォームを可能にするために使用される条件付きの実行スクリプトプリミティブ、および条件付きの演算子の例を示す。例えば、命令文によって２つの変数の間の条件の認証が可能になる場合、その条件は、等しい、等しくない、ヌルまたは空、未満、超過、以下、以上であり、および変数の評価が可能なスイッチ命令文にすることができる。
【０１１９】
図１３は、本発明の１つ以上の実施形態によって使用されるループプリミティブの例を示す。説明すると、１つのこうしたプリミティブは、割り当てられた「Ｆｏｒ」スタイルのループであり、特定の最大値までの１ステップ増分型の整数カウンタを使用できる。さらに、単純な条件節を評価するために、「ｗｈｉｌｅ」ループを使用できる。
【０１２０】
図１４Ａ〜図１４Ｃを含む図１４は、本発明の１つ以上の実施形態によって使用できるプログラム制御プリミティブ、および関連付けられた戻り値ならびに終了コードの例を示す。プログラム制御によって、実行方法および部分（Ｊｕｍｐ）に戻ることなく、また、その他の方法および部分（Ｃａｌｌ）の完了後に方法の実行に戻っても、同じまたは別の方法内の別の部分へ実行を移動させることができると共に、任意の時点でスクリプトから終了することができる。プログラム制御プリミティブにより、コードの別の部分に移動し、機能を呼び出し、呼び出し機能へと制御を戻すことによってプログラム実行を制御することができる。
【０１２１】
図１５は、本発明の１つ以上の実施形態によって使用可能なスリープおよび時刻プリミティブの例を示す。スリープおよび時刻プリミティブによって、プログラム実行の時間遅延および現在時刻の検索が可能になる。
【０１２２】
図１６Ａ〜図１６Ｄを含む図１６は、本発明の１つ以上の実施形態によって使用される、通知および入力プリミティブ、関連付けられた定義済みコードの例を示す。これらの通知および入力コマンドによって、機能は、親プロセスとのやりとりが可能になり、進行および状態を通信する機会が与えられ、特定のパラメータへの問い合わせが可能になり、ユーザ通知のために使用することができる。図１６Ｃは、本発明の１つ以上の実施形態による「問い合わせ」プリミティブのコードパラメータで使用される値の例を示す。図１６Ｄは、本発明の実施形態による、適切なメッセージングとの対話を生成するために使用可能な「ｔｅｌｌ  ｃｏｄｅ」値の例を示す。
【０１２３】
図１７Ａ〜図１７Ｅを含む図１７は、本明細書の１つ以上の実施形態によって使用されるワイヤレスネットワークプリミティブの例を含む。こうしたプリミティブは、関連付け、認証および結果の取得、分離の機能を提供する。例えば、これらのプリミティブは、ＷｉＦｉラジオ、接続された信号または接続する信号の状態の情報の取得、およびその接続処理を方向付けるためのホストソフトウェアへの特定のプリミティブの発行を行う機能を提供する。これらのプリミティブは、ＷｉＦｉに特定のものにすることができる。その他の技術の種類として、さらなるプリミティブを追加できることが明らかであろう（例えば、ＷｉＭａｘ、ＷＷＡＮ）。図１７Ｂは、本発明の１つ以上の実施形態によるリターン「ＣｏｎｎＳｔａｔｕｓ」コードの例を示す。図１７Ｃおよび図１７Ｄは、本発明の１つ以上の実施形態で使用される、ＷｉＦｉ関連付け動作で使用されるパラメータ、およびＷｉＦｉ関連動作の結果を識別する結果コードの例を示す。図１７Ｅは、本明細書の１つ以上の実施形態による分離動作の結果の例を示す。
【０１２４】
図１８Ａ〜図１８Ｃを含む図１８は、本発明の１つ以上の実施形態で使用される、ＩＰＳＥＴプリミティブで使用されるパラメータと共に、インターネットプロトコル管理プリミティブの例を示す。これらのコマンドによって、適切なＩＰアドレスを設定および取得し、ＩＰ状態を制御するＩＰネットワーク機能を実行することができる。１つの実施形態によって、複雑化を避けるために、これらのコマンドは非同期となっていない。
【０１２５】
ＨＴＴＰおよびＨＴＴＰＳプリミティブは、例えば、ＨＴＴＰヘッダの提供、ＨＴＴＰコンテンツの提供および解析、ＨＴＴＰの結果の提供、セキュリティ情報の提供、タイムアウトの設定、セキュリティパラメータの提供、ＰＯＳＴ要求のフォーム値の取得および設定、および結果からのＸＭＬの取得だけでなく、ＨＴＴＰおよび／またはＨＴＴＰＳを使用した取得、ＨＴＴＰおよび／またはＨＴＴＰＳを使用したポストを実行する機能を提供する。図１９Ａ〜図１９Ｆを含む図１９は、本明細書の１つ以上の実施形態による、ＨＴＴＰサーバとのやりとりのためのＨＴＴＰプリミティブの例およびプリミティブの結果の例を提供する。これらのプリミティブにより、ＳＳＬ暗号化によって、またはこれなしで、ＨＴＴＰサーバとやりとりすることができる。１つ以上の実施形態において、スクリプトは、すべての機能によって使用される１つのグローバルＨＴＴＰコンテクストを有する。ＨＴＴＰプリミティブは、このコンテクスト上で機能する。コンテクストは、１つの機能から別の機能へジャンプしても損なわれることがない。呼び出された機能は、コンテクストを修正することができる。
【０１２６】
ＨＴＴＰトランザクションは、ヘッダおよびドキュメントを返すことができる。すべてのヘッダはそのそれぞれの名前によって個別にアプローチ可能であり、すべてのヘッダのリストは、一度にこれを読み込むために取得できる。わかりやすくするために、ドキュメントは、文字列の操作機能によって調査可能な、１つの大きな文字列として処理されている。多くの場合において、使用される機能性には、後でポストされる形態でデータを書き込むことを含んでおり、機能が、フォームのリストを名前によって取得し、ＰＯＳＴの領域に取り込まれるフォームを取得し、再びポストされて戻される前にこれを修正することができるよう、ヘルプが実行されている。フォーム領域の概念も、グローバルである。
【０１２７】
新しいＨＴＴＰ要求が実行される場合、要求が第１のウェブサーバ応答が起こるポイントに到達すると、Ｈｅａｄｅｒ、Ｄｏｃ、ＦｏｒｍおよびＰｏｓｔの領域すべてが消去される。図１９Ｆは、本明細書の１つ以上の実施形態によって、動作の成功を示す、ＨｇｅｔおよびＨＰＯＳＴのプリミティブとの接続における「ｒｅｓ」コンテンツの例を提供する。
【０１２８】
ネットワーク認証中に使用される複数のユーザＩＤ、トークンストアとのやりとりをするための機構をサポートするクライアント１０８のインスタンスによって、トークンが使用可能である。例えば、クライアント１０８のラップトップインスタンスは、指名された複数のトークン（信用証明物セット）を保存するための機能を有することができる。各セットは典型的には、ユーザ名、パスワードおよび／または証明書を含む。これらのコマンドによって指名されたトークンの存在が認証され、トークンのコンテンツを取り出し、＿ＵＳＥＲＮＡＭＥ、＿ＰＡＳＳＯＷＯＲＤ、＿ＲＥＡＬＭおよび＿ＣＥＲＴ変数に入れる。少なくとも１つの実施形態では、これらのコマンドは、トークン：１の機能が使用可能な場合に提供される。図２０は、本発明の１つ以上の実施形態によって使用されるトークンプリミティブの例を示す。
【０１２９】
機能プリミティブによって、機能は、ホストアプリケーションおよびＯＳが提供できる機能を判断することができる。ＧｅｔＣａｐプリミティブは、ソフトウェアが実行可能な機能性を記述する機能の文字列、または機能の文字列のグループを返す。スクリプトは異なる機能を有する様々なプラットフォーム上で実行可能である、および／または異なるソフトウェア実行を利用するために、および、得られた情報を使用して実行可能な機能および動作を動的に決定するために、実行可能である。
【０１３０】
特定の機能またはコンマで区切られた機能グループがｃａｐの入力として与えられる場合、そのバージョン番号と共に所与の機能が返る。機能が入力されない場合、すべての機能およびバージョンが返る。機能には、名前およびコロンで区切られたバージョンを有する。「ｃａｐ」パラメータの場合、バージョンが提供されていない場合、どの機能でも一致する。バージョンが提供されている場合、正しいバージョンが一致する。例えば、環境変数が使用可能であると判断するための機能はＥｎｖＶａｒであり、第１のバージョンは１であるため、フル機能はＥｎｖＶａｒ：１である。機能名はＡからＺ、ａからｚおよび−を含むＡＳＣＩＩ文字列にすることができ、０よりも大きい整数にすることができる。機能およびバージョン数は、コロンで区切ることが可能である。図２１Ａおよび図２１Ｂを含む図２１は、本発明の１つ以上の実施形態で使用するために、ＧｅｔＣａｐプリミティブの例、および機能の例を示す。機能の例は包括的なものではなく、本発明の実施形態によって機能を追加または置換してもよいことが明らかである。
【０１３１】
本発明の実施形態は、設定１５６を更新するための機能を提供し、これによって、すべての設定１５６上で更新を実行可能である。例えば、図１Ａのサーバ１３０は、クライアント１０８へ初期設定を伝送可能であり、その後、更新される設定１５６の部分のみを伝送する。これを説明するために、ワイヤレスネットワーク１０２の１つ以上のインスタンスのためのネットワークオペレータがその認証、関連または接続手順を修正すると仮定する。サーバ１３０は、クライアント１０８を再設定するために修正されたスクリプト機能を伝送することができる。これを説明するために、サーバ１３０からの設定更新は、そのＩＤによってプロファイルを識別することができ、「Ｒｅｍｏｖｅ」または「Ａｄｄ」等の動作を示す。「Ｒｅｍｏｖｅ」動作の場合、識別されたプロファイルが設定１５６から除去される。「Ａｄｄ」の場合、およびプロファイルが設定１５６に既に存在する場合には、プロファイルは、サーバ１３０によって伝送された設定更新に基づいて更新される。「Ａｄｄ」の場合、およびプロファイルが設定１５６に存在しない場合には、プロファイルは設定１５６に追加される。
【０１３２】
設定１５６は、非デフォルト設定と共に、デフォルト設定を含むことができ、その一方または両方を更新可能である。デフォルトに関連付けられた「ａｕｔｏｕｐｄａｔｅ」パラメータおよび非デフォルト部分は、サーバ１３０からの設定更新を使用して、自動的に更新可能である。
【０１３３】
少なくとも１つの開示された実施形態によって、設定更新が受信された場合に、古い設定１５６を消去する前に、クライアント１０８は既存の設定１５６を保存し、設定１５６のコピーへの更新を適用し、更新された設定１５６を認証（例えば、更新された設定１５６においてＸＭＬベースの命令文を解析する）する。
【０１３４】
少なくとも１つの実施形態において、設定１５６のコンテンツをルールセットとして参照可能である。以下の表Ｉは、いくつかのルールの例を示す。
【０１３５】
【表１】
2009538059.tif 000005
クライアント１０８は、設定１５６を要求、またはサーバ１３０から設定１５６への更新を要求することができる。少なくとも１つの実施形態によって、クライアント１０８は、設定１５６を得るために表ＩＩで示されるもの等のパラメータを使用して、ＨＴＴＰ  ＧＥＴ要求を実行する。
【０１３６】
【表２】
2009538059.tif 000006
以下に、ＵＲＬ部分を有しない、要求の例を挙げる。
【０１３７】
【数３】
2009538059.tif 000007
サーバ１３０は、基本的なＨＴＴＰ認証を問い合わせしてもよく、クライアント１０８は、設定されたユーザ名およびパスワードで、または、例えば、「ｇｕｅｓｔ」のデフォルトユーザ名でパスワードなしで応答することができる。
【０１３８】
サーバ１３０は応答し、ＨＴＴＰ応答を送信する。クライアント１０８は、応答コードに基づいて応答を処理する。１つ以上の実施形態によって、無効なＳＳＬ証明書と共に機能するＨＴＴＰＳを使用した応答は考慮されない。「２００」の応答コードは、サーバ１３０の応答が有効なＸＭＬ設定ドキュメントを含むことを示し、こうして、クライアント１０８は応答を処理および評価する。「３０２」の応答コードは、別のサーバ１３０へのリダイレクトを示す。クライアント１０８が、リダイレクトに続く。１つ以上の実施形態によって、１６回のリダイレクトが可能である。クライアント１０８は、後続のリダイレクトおよび検出ループを追跡することができる。ループが見つかる場合、クライアント１０８は更新試行を停止することができ、更新が失敗したと考える。クライアント１０８によって別の応答コードが検出される場合、更新の試行は停止し、失敗したと考えられる。
【０１３９】
「２００」の応答内において、クライアント１０８は、異なる種類の応答、例えば、「利用可能な更新なし」、「無効な要求」、または更新を予期することができる。応答から、利用可能な更新が存在しないことが示される場合、クライアント１０８上の設定１５６は最新であると考えられ、変更／更新は不要である。クライアント１０８は、継続して既存の設定１５６を使用する。以下に、更新が不要であることを示すＸＭＬベースの応答の例を示す。
【０１４０】
【数４】
2009538059.tif 000008
クライアント１０８によって要求が実行されることを示す、「２００」の応答の例は、以下の通りである。
【０１４１】
【数５】
2009538059.tif 000009
クライアント１０８は、この要求を再編成して再送信することができる。クライアント１０８は、例えば、これが一時的なエラーかどうかを決定するために、この状況のデフォルト設定を使用することができる。
【０１４２】
クライアント１０８によって実行される要求が有効であり、更新が利用可能である場合に、本発明の１つ以上の実施形態によって、返されたドキュメントは、上記の例に示す「ＳｗＣｏｎｆｉｇ」要素、および、以下に詳細に説明されている、ＡｕｔｏＵｐｄａｔｅ、Ｆｕｎｃｔｉｏｎｓ、Ｔｏｋｅｎｓ、Ｓｃｒｉｐｔｓ、ＮｅｔｗｏｒｋＬｉｓｔｓ、ＤｅｆａｕｌｔＣｏｎｆｉｇまたはＬｏａｄＤｅｆａｕｌｔＣｏｎｆｉｇの１つ以上を含む。
【０１４３】
１つ以上の実施形態による設定１５６を作成および／または更新するために使用できるサーバ１３０によって返されるドキュメントの一般的な構造を、図２２Ａおよび図２２Ｂを含む図２２に示す。太字の項目は、要素名に対応し、その後に可能な出現回数、任意の状態、および例外使用が続き、短い説明が続く。「Ｄ」の名称は、一般的なフォーマットが設定サーバから応答を受信するクライアント１０８に関連することを示し、「Ｃ」は、方針サーバによって生成される方針ファイルのコンテンツを含む応答を示す。個々の項目は「Ｄ」、または「Ｃ」、またはその両方でマークが付けられる。
【０１４４】
図２３Ａ〜図２３Ｃを含む図２３、および図２４Ａ〜図２４Ｄを含む図２４は、本発明の１つ以上の実施形態による設定を更新するために使用されるＸＭＬベースのドキュメントの例を示す。
【０１４５】
図２５〜図５９は、発明の少なくとも１つの実施形態による、表現、およびその更新に使用可能なＸＭＬベースの要素の例を示す。
【０１４６】
図２５に示す「ＳｗＣｏｎｆｉｇ」要素は、ルート要素である。図２６に示す「無効な要求」の要素は、サーバ１３０への要求は無効であると示すために使用できる。有効な要求が受信された、およびクライアント１０８が現行の設定１５６を有している、またはサーバ１３０がこの時刻において更新を実行することができないということを示すために、「ＮｏＵｐｄａｔｅ」要素が使用できる。「ＮｏＵｐｄａｔｅ」および「ＡｕｔｏＵｐｄａｔｅ」要素を図２７に示す。「ＡｕｔｏＵｐｄａｔｅ」要素は、更新機能の設定を追加可能な自動ソフトウェア設定更新パラメータを識別する。
【０１４７】
図２８に示す「Ｆｕｎｃｔｉｏｎｓ」要素は、アプリケーション機能の制御の定義のためのコンテナとして使用可能である。各事前定義アプリケーション機能は、機能制御要素を含むことができる。ＳｗＣｏｎｆｉｇに含まれている場合、「Ｆｕｎｃｔｉｏｎｓ」要素は現行の機能設定を記述する。ＤｅｆａｕｌｔＣｏｎｆｉｇに含まれている場合、「Ｆｕｎｃｔｉｏｎｓ」要素は、設定１５６がデフォルトに設定されている場合に適用される機能設定を定義する。
【０１４８】
図２９に示す「Ｆｕｎｃｔｉｏｎ」要素は、所与のアプリケーション機能の「モード」を識別する。オプションとして、「Ｆｕｎｃｔｉｏｎ」要素は、機能制御がユーザに表示可能であるかどうか、およびユーザがこの機能のモードを変更してもよいかどうかを指示できる。アプリケーションのすべてのＷｉＦｉまたはＷＬＡＮ機能をオフにする等の、グローバルアプリケーションスコープ機能のために、この要素が使用できる。オプションとして、この要素は、ＡｌｌｏｗｅｄＭｏｄｅ要素を含むことができ、この要素は図２９に示されており、設定時においてユーザに表示されるモードを識別する。少なくとも１つの実施形態によって、「ｉｄｓ」および「ｍｏｄｅｓ」パラメータは、数字以外となっており、方針を、様々なアプリケーションでより容易に共有できるようになっている。「Ｆｕｎｃｔｉｏｎ」要素は、拡張可能かつ多数の種類のアプリケーション機能の制御に使用可能な一般的な機構として、意図的に定義することができる。
【０１４９】
「ＡｌｌｏｗＭｏｄｅ」要素は、所与の機能を変更する際にユーザが表示可能なモードのリストを提供する。「モード」は、アプリケーション全体にわたるモードを生成するために、文字列として表すことができる。モードが結合可能なものとして処理されるかどうかは、要素の性質で挙げられているように、機能定義において非明示的である。図２９に示す「Ｃｒｅｄｅｎｔｉａｌ」要素は、信用証明物のコンテナとしての働きをする。信用証明物は、例えばユーザ名およびパスワード等のデータを識別および認証するユーザのセットである。「Ｃｒｅｄｅｎｔｉａｌ」要素が「ＳｗＣｏｎｆｉｇ」要素に含まれる場合、現行の機能設定を記述することができる。これがＤｅｆａｕｌｔＣｏｎｆｉｇに含まれる場合、設定１５６がデフォルトとなっている場合に適用される設定を定義できる。
【０１５０】
図３０に示す「Ｒｅｍｏｖｅ」要素は、現行の動作設定１５６から名前を付けた設定要素を削除するために使用可能である。要素は、要素識別子によって識別されるゼロまたはそれ以上のその他の要素を含むことができる。識別された要素は、設定１５６から削除される。図３０に示す「ＲｅｍｏｖｅＡｌｌ」要素は、すべての設定要素を現行の設定１５６から削除するために使用可能である。「ＲｅｍｏｖｅＡｌｌ」が「ＤｅｆａｕｌｔＣｏｎｆｉｇ」要素に含まれる場合、「ＲｅｍｏｖｅＡｌｌ」要素は「ＤｅｆａｕｌｔＣｏｎｆｉｇ」が読み込まれるまで実行されない。
【０１５１】
図３０に示す「Ａｄｄ」要素は、要素ＩＤ（またはＩＤを有していない要素の名前）に基づいて、現行の設定１５６に設定要素を追加するために使用可能である。「Ａｄｄ」要素は、要素ＩＤおよび要素に要求されるすべての必要なパラメータを有するゼロまたはそれ以上のその他の要素を含むことができる。これらの要素はそれぞれ現行の設定に追加される。指定されたＩＤが既に使用されている場合、所与の設定アイテムがまず自動的に削除され、次に再び追加される。ＤｅｆａｕｌｔＣｏｎｆｉｇに含まれる場合、「Ａｄｄ」要素は、ＤｅｆａｕｌｔＣｏｎｆｉｇが読み込まれるまで実行されない。
【０１５２】
図３０に示す「Ｃｒｅｄｅｎｔｉａｌ」要素は、「トークン」とも呼ばれる信用証明物セットと共に使用可能である。ユーザ名およびパスワードを定義するために信用証明物が使用でき、これによってユーザを一意に識別することができ、認証のために使用される。これは大文字と小文字を区別する情報にすることができ、クライアント１０８において暗号化された状態で格納される。図３０に示す「ＵｓｅｒＮａｍｅ」要素は、ユーザ名、例えば、１２７文字以下の長さの文字列を含む。「Ｐａｓｓｗｏｒｄ」要素は、パスワード、例えば、１２７文字までの長さの文字列を含む。図３１に示す「Ｃｅｒｔｉｆｉｃａｔｅ」要素では、例えば、４０９６文字までの長さのＢａｓｅ６でエンコードされた証明書を含む。
【０１５３】
図３１に示す「Ｓｃｒｉｐｔｓ」要素は、例えば探索、接続、状態、接続性チェック、および切断プロセスを動的に制御するために使用される、接続制御スクリプトのコンテナとして使用可能である。「ＳｗＣｏｎｆｉｇ」要素に含まれる場合、「Ｓｃｒｉｐｔｓ」要素は現行の機能設定について記述する。「ＤｅｆａｕｌｔＣｏｎｆｉｇ」要素に含まれる場合、設定１５６がデフォルトに設定されている場合に適用される設定を定義する。図３１に示す「Ｓｃｒｉｐｔｓ」要素は、ＸＭＬベースの接続制御スクリプトを参照するよう使用可能である。
【０１５４】
図３１に示す「Ｐｒｏｆｉｌｅｓ」要素は、ネットワークプロファイルのコンテナとして使用可能である。「ＳｗＣｏｎｆｉｇ」要素に含まれる場合、現行の機能設定について説明し、「ＤｅｆａｕｌｔＣｏｎｆｉｇ」要素に含まれる場合、設定１５６がデフォルトに設定されている場合に適用される設定を定義する。図３２に示す「Ｐｒｏｆｉｌｅ」の要素は、ネットワーク接続に関連する設定について述べる属性および要素を含む接続プロファイル、例えば、ＷｉＦｉプロファイルである。図３３から図５０は、プロファイル定義において使用できる属性の例を示す。例えば、図３３に示す「ＤｉｓｐｌａｙＮａｍｅ」は、プロファイルのリスト、および／またはＡＰ１１２のインスタンスのリストにおいて使用される名前を識別する。図３３に示す「ＵｓｅＤｉｓｐｌａｙＮａｍｅ」要素は、所与のプロファイルにマッピングされたＡＰ１１２からの信号が、ＡＰ１１２のリストにおいてそのＳＳＩＤまたはプロファイル名で参照されるかどうかを判断するために使用可能である。
【０１５５】
図５１に示す「ＰｒｏｆｉｌｅＦｉｌｔｅｒ」要素は、プロファイルフィルタのためのコンテナとして使用可能である。プロファイルフィルタは、既存のプロファイルのパラメータを修正するために使用できる。
【０１５６】
図５３に示す「ＮｅｔＷｏｒｋＬｉｓｔｓ」要素は、異なる設定を有する多くのネットワークをプロファイルに関連付けるために使用可能である。１プロファイル毎に１つのみのＮｅｔｗｏｒｋＬｉｓｔが許可されている場合、ネットワークリストをプロファイルに含めてもよい。しかし、個別の要素として、１つのプロファイルに関連付けられた複数のネットワークを有することが可能である。さらに、非デバイスプラットフォームへの実装が可能となる。図５２に示す「ＮｅｔｗｏｒｋＬｉｓｔ」要素は、図５５に示す多数のネットワーク要素を含むことができ、ネットワーク要素をプロファイルに関連付けることができる。
【０１５７】
設定１５６を更新するために、更新シーケンスが使用できる。図５９は、使用可能な更新シーケンスの例を示す。本発明の実施形態を使用して、ＤｅｆａｕｌｔＣｏｎｆｉｇ、ＬｏａｄＤｅｆａｕｌｔＣｏｎｆｉｇおよびいくつかのその他の（例：Ｐｒｏｆｉｌｅｓ、Ｓｃｒｉｐｔｓ、ＮｅｔｗｏｒｋＬｉｓｔｓ）要素を含むシングルＳｗＣｏｎｆｉｇが使用できる。
【０１５８】
最も実用的および好適な実施形態であると考えられるものに関する装置および方法について記載しているが、本発明は、開示された実施形態に限定する必要がないことが理解されよう。請求項の精神および範囲内に含まれる様々な修正例および同様の構成例を網羅することが意図されている本発明の範囲は、すべてのこうした修正例および同様の構造を包含するよう、最も広い解釈を与えるべきである。本明細書は、以下の請求項の任意のおよびすべての実施形態を包括する。
【図１Ａ】
2009538059.tif 000010
【図１Ｂ】
2009538059.tif 000011
【図２】
2009538059.tif 000012
【図３Ａ】
2009538059.tif 000013
【図３Ｂ】
2009538059.tif 000014
【図４】
2009538059.tif 000015
【図５】
2009538059.tif 000016
【図６Ａ】
2009538059.tif 000017
【図６Ｂ】
2009538059.tif 000018
【図６Ｃ】
2009538059.tif 000019
【図６Ｄ】
2009538059.tif 000020
【図６Ｅ】
2009538059.tif 000021
【図６Ｆ】
2009538059.tif 000022
【図６Ｇ】
2009538059.tif 000023
【図６Ｈ】
2009538059.tif 000024
【図６Ｉ】
2009538059.tif 000025
【図７Ａ】
2009538059.tif 000026
【図７Ｂ】
2009538059.tif 000027
【図７Ｃ】
2009538059.tif 000028
【図８】
2009538059.tif 000029
【図９Ａ】
2009538059.tif 000030
【図９Ｂ】
2009538059.tif 000031
【図９Ｃ】
2009538059.tif 000032
【図１０Ａ】
2009538059.tif 000033
【図１０Ｂ】
2009538059.tif 000034
【図１１】
2009538059.tif 000035
【図１２Ａ】
2009538059.tif 000036
【図１２Ｂ】
2009538059.tif 000037
【図１３】
2009538059.tif 000038
【図１４Ａ】
2009538059.tif 000039
【図１４Ｂ】
2009538059.tif 000040
【図１４Ｃ】
2009538059.tif 000041
【図１５】
2009538059.tif 000042
【図１６Ａ】
2009538059.tif 000043
【図１６Ｂ】
2009538059.tif 000044
【図１６Ｃ】
2009538059.tif 000045
【図１６Ｄ】
2009538059.tif 000046
【図１７Ａ】
2009538059.tif 000047
【図１７Ｂ】
2009538059.tif 000048
【図１７Ｃ】
2009538059.tif 000049
【図１７Ｄ】
2009538059.tif 000050
【図１７Ｅ】
2009538059.tif 000051
【図１８Ａ】
2009538059.tif 000052
【図１８Ｂ】
2009538059.tif 000053
【図１８Ｃ】
2009538059.tif 000054
【図１９Ａ】
2009538059.tif 000055
【図１９Ｂ】
2009538059.tif 000056
【図１９Ｃ】
2009538059.tif 000057
【図１９Ｄ】
2009538059.tif 000058
【図１９Ｅ】
2009538059.tif 000059
【図１９Ｆ】
2009538059.tif 000060
【図２０】
2009538059.tif 000061
【図２１Ａ】
2009538059.tif 000062
【図２１Ｂ】
2009538059.tif 000063
【図２２Ａ】
2009538059.tif 000064
【図２２Ｂ】
2009538059.tif 000065
【図２３Ａ】
2009538059.tif 000066
【図２３Ｂ】
2009538059.tif 000067
【図２３Ｃ】
2009538059.tif 000068
【図２４Ａ】
2009538059.tif 000069
【図２４Ｂ】
2009538059.tif 000070
【図２４Ｃ】
2009538059.tif 000071
【図２４Ｄ】
2009538059.tif 000072
【図２５】
2009538059.tif 000073
【図２６】
2009538059.tif 000074
【図２７】
2009538059.tif 000075
【図２８】
2009538059.tif 000076
【図２９】
2009538059.tif 000077
【図３０】
2009538059.tif 000078
【図３１】
2009538059.tif 000079
【図３２】
2009538059.tif 000080
【図３３】
2009538059.tif 000081
【図３４】
2009538059.tif 000082
【図３５】
2009538059.tif 000083
【図３６】
2009538059.tif 000084
【図３７】
2009538059.tif 000085
【図３８】
2009538059.tif 000086
【図３９】
2009538059.tif 000087
【図４０】
2009538059.tif 000088
【図４１】
2009538059.tif 000089
【図４２】
2009538059.tif 000090
【図４３】
2009538059.tif 000091
【図４４】
2009538059.tif 000092
【図４５】
2009538059.tif 000093
【図４６】
2009538059.tif 000094
【図４７】
2009538059.tif 000095
【図４８】
2009538059.tif 000096
【図４９】
2009538059.tif 000097
【図５０】
2009538059.tif 000098
【図５１】
2009538059.tif 000099
【図５２】
2009538059.tif 000100
【図５３】
2009538059.tif 000101
【図５４】
2009538059.tif 000102
【図５５】
2009538059.tif 000103
【図５６】
2009538059.tif 000104
【図５７】
2009538059.tif 000105
【図５８】
2009538059.tif 000106
【図５９】
2009538059.tif 000107
【国際調査報告】
2009538059.tif 000108