(57)【要約】【課題】  コンピューティングデバイス上で無線通信を実行するための１つまたは複数の無線ネットワークインターフェース／ネットワークの構成／選択を容易にする基準駆動型の方法およびフレームワークを提供する。【解決手段】  本明細書で説明されている無線ネットワークインターフェースの選択および共存ドライバのアーキテクチャは、特定のネットワークインターフェースおよび無線技術に関連する１組のネットワークインターフェースドライバにより提供されるステータス情報に基づき特定のネットワークアクセスモードの自動選択を容易にする。さらに、限定はしないが、アプリケーションが呼び出される場合、または検出された干渉を回避するために他のインターフェース／ネットワークを選択する場合を含む、様々な状況において潜在的に呼び出される基準駆動インターフェース／ネットワーク選択フレームワークが説明される。【選択図】  図１１
2005328520.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続を確立するためコンピューティングデバイス上で複数の利用可能な無線技術の中から無線技術を１つ選択する方法であって、
ファクタの集合を含む無線技術選択フレームワークであって、前記複数のファクタのうちの１つまたは複数が無線技術選択基準に組み込まれている無線技術選択フレームワークを保持するステップと、
それぞれの利用可能な無線技術に関連付けられているステータスおよび／または機能に関する情報の集合を取得するステップと、
それぞれの利用可能な無線技術について得られた情報の集合に基づいてファクタの前記集合に含まれる１つのファクタに対するファクタ値をレンダリングするステップと、
前記ファクタ値を無線技術選択基準に適用することに少なくとも一部は基づき無線技術選択をレンダリングするステップとを備えることを特徴とする方法。
【請求項２】
選択ステップの前記レンダリングは、大域的情報を無線技術選択基準に適用することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記大域的情報は、データセットの優先度を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記無線技術は、少なくとも８０２．１１ａおよび８０２．１１ｂ無線技術を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記無線技術は、少なくとも８０２．１１ａおよびＵＷＢ無線技術を含むことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項６】
前記無線技術選択フレームワークは、さらに、無線技術選択基準により指定されたファクタの前記集合に含まれる１つのファクタに適用される１組の重みを指定することをサポートすることを特徴とする請求項１に記載の方法。
【請求項７】
前記重み付きファクタ値は、それぞれの無線技術について総合的選択スコアを付けるために組み合わされることを特徴とする請求項６に記載の方法。
【請求項８】
前記無線技術選択フレームワークは、オーバーライドファクタを指定することをサポートすることを特徴とする請求項１に記載の方法。
【請求項９】
前記無線技術選択フレームワークに従って定義された選択基準により指定された最低要求条件を満たす無線技術がない場合にユーザの介入を求めるプロンプトを発行するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
無線技術選択基準に対するファクタおよび／または重み付けを指定することをサポートする構成インターフェースを提供するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
選択ステップの前記レンダリングは、イベントに応答して実行されることを特徴とする請求項１に記載の方法。
【請求項１２】
前記イベントは、期間満了を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
選択ステップの前記レンダリングは、無線技術選択基準範囲内で参照されるファクタに重みを再割り当てすることに関連するイベントに応答して実行されることを特徴とする請求項１１に記載の方法。
【請求項１４】
重みの前記再割り当ては、検出されたイベントに応答して実行されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記検出されたイベントは、前記コンピューティングデバイス上で現在実行中のアプリケーションのステータスへの変更に対応することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記検出されたイベントは、前記コンピューティングデバイスの電源に関係することを特徴とする請求項１４に記載の方法。
【請求項１７】
ネットワーク接続を確立するためコンピューティングデバイス上の複数の利用可能な無線技術の中から１つの無線技術を選択することを容易にするコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
ファクタの集合を含む無線技術選択フレームワークであって、前記複数のファクタのうちの１つまたは複数は無線技術選択基準に組み込まれている無線技術選択フレームワークを保持するステップと、
それぞれの利用可能な無線技術に関連付けられているステータスおよび／または機能に関する情報の集合を取得するステップと、
それぞれの利用可能な無線技術について得られた情報の集合に基づいてファクタの前記集合に含まれる１つのファクタに対するファクタ値をレンダリングするステップと、
前記ファクタ値を無線技術選択基準に適用することに少なくとも一部は基づき無線技術選択をレンダリングするステップとを実行することを容易にすることを特徴とするコンピュータ可読媒体。
【請求項１８】
選択ステップの前記レンダリングは、大域的情報を無線技術選択基準に適用することをさらに含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記大域的情報は、データセットの優先度を含むことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記無線技術は、少なくとも８０２．１１ａおよび８０２．１１ｂ無線技術を含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２１】
前記無線技術は、少なくとも８０２．１１ａおよびＵＷＢ無線技術を含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２２】
前記無線技術選択フレームワークは、さらに、無線技術選択基準により指定されたファクタの前記集合に含まれる１つのファクタに適用される１組の重みを指定することをサポートすることを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２３】
前記重み付きファクタ値は、それぞれの無線技術について総合的選択スコアを付けるために組み合わされることを特徴とする請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
前記無線技術選択フレームワークは、オーバーライドファクタを指定することをサポートすることを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２５】
前記無線技術選択フレームワークに従って定義された選択基準により指定された最低要求条件を満たす無線技術がない場合にユーザの介入を求めるプロンプトを発行することを容易にするコンピュータ実行可能命令をさらに含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２６】
無線技術選択基準に対するファクタおよび／または重み付けを指定することをサポートする構成インターフェースを備えることを容易にするコンピュータ実行可能命令をさらに含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２７】
選択ステップの前記レンダリングは、イベントに応答して実行されることを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項２８】
前記イベントは、期間満了を含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
選択ステップの前記レンダリングは、無線技術選択基準範囲内で参照されるファクタに重みを再割り当てすることに関連するイベントに応答して実行されることを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３０】
重みの前記再割り当ては、検出されたイベントに応答して実行されることを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記検出されたイベントは、前記コンピューティングデバイス上で現在実行中のアプリケーションのステータスへの変更に対応することを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記検出されたイベントは、前記コンピューティングデバイスの電源に関係することを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３３】
複数の潜在的ネットワークおよびインターフェースからネットワークおよびインターフェースを選択することをサポートするインフラストラクチャを含むコンピューティングデバイスであって、前記インターフェースは、ネットワーク接続を確立するためコンピューティングデバイス上に様々な利用可能な無線技術を潜在的に組み込み、前記コンピューティングデバイスは、
ファクタの集合を指定することをサポートする無線技術ファクタ指定フレームワークと、
前記ファクタの集合に含まれる１つまたは複数のファクタを組み込む無線技術選択基準と、
それぞれの利用可能な無線技術に関連付けられているステータスおよび／または機能に関する情報の集合を取得するための情報収集インターフェースと、
それぞれの利用可能な無線技術について取得された情報の前記集まりに基づいて前記ファクタの集合に含まれるファクタについてファクタ値を設定するためのファクタ値レンダリング機能と、
前記ファクタ値を無線技術選択基準に適用することに少なくとも一部は基づき無線インターフェース選択をレンダリングするための無線技術選択レンダリングエンジンとを備えることを特徴とするコンピューティングデバイス。
【請求項３４】
前記無線技術選択レンダリングエンジンは、さらに、選択をレンダリングする際に大域的情報を無線技術選択基準に適用することを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項３５】
前記大域的情報は、データセットの優先度を含むことを特徴とする請求項３４に記載のコンピューティングデバイス。
【請求項３６】
前記無線技術は、少なくとも８０２．１１ａおよび８０２．１１ｂ無線技術を含むことを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項３７】
前記無線技術は、少なくとも８０２．１１ａおよびＵＷＢ無線技術を含むことを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項３８】
前記無線技術選択基準は、無線技術選択基準により指定されたファクタの前記集合に含まれる１つのファクタに適用される１組の重みをさらに含むことを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項３９】
前記重み付きファクタ値は、それぞれの無線技術について総合的選択スコアを付けるために組み合わされることを特徴とする請求項３８に記載のコンピューティングデバイス。
【請求項４０】
前記無線技術ファクタ指定フレームワークは、オーバーライドファクタを指定することをサポートすることを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項４１】
選択基準により指定された最低要求条件を満たす無線技術がない場合にユーザの介入を求めるプロンプトを発行するためのユーザインターフェースをさらに備えることを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項４２】
無線技術選択基準に対するファクタおよび／または重み付けを指定することをサポートする構成インターフェースをさらに備えることを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項４３】
前記無線インターフェース選択は、イベントに応答して実行されることを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項４４】
前記イベントは、期間満了を含むことを特徴とする請求項４３に記載のコンピューティングデバイス。
【請求項４５】
前記無線インターフェース選択は、無線技術選択基準範囲内で参照されるファクタに重みを再割り当てすることに関連するイベントに応答して実行されることを特徴とする請求項４３に記載のコンピューティングデバイス。
【請求項４６】
重みの前記再割り当ては、検出されたイベントに応答して実行されることを特徴とする請求項４５に記載のコンピューティングデバイス。
【請求項４７】
前記検出されたイベントは、前記コンピューティングデバイス上で現在実行中のアプリケーションのステータスへの変更に対応することを特徴とする請求項４６に記載のコンピューティングデバイス。
【請求項４８】
前記検出されたイベントは、前記コンピューティングデバイスの電源に関係することを特徴とする請求項４６に記載のコンピューティングデバイス。
【請求項４９】
前記検出されたイベントは、利用可能な１組のネットワークの変更に関係することを特徴とする請求項４６に記載のコンピューティングデバイス。
【請求項５０】
前記検出されたイベントは、輻輳／干渉パラメータ値の変更に関係することを特徴とする請求項４６に記載のコンピューティングデバイス。
【請求項５１】
前記検出されたイベントは、ネットワークの接続の変更に関係することを特徴とする請求項４６に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータシステムの分野に関する。より具体的には、本発明は、コンピューティングデバイスにおける無線ネットワーク通信の選択、構成、および／または制御を行うための方法およびシステムに関する。さらにより具体的には、本発明は、無線信号伝送干渉に対処および／またはそれを回避するためのコンピューティングデバイス内での意志決定を対象とする。
【背景技術】
【０００２】
今日、様々な無線ネットワーキング技術においてネットワーク接続がサポートされている。ＧＰＲＳ、ＷＣＤＭＡ、８０２．１６などのプロトコルを採用する無線ワイドエリアネットワーク（ＷＷＡＮ）技術を利用すると、コンピューティングデバイスは携帯電話データ伝送（ｃｅｌｌｕｌａｒ  ｄａｔａ  ｔｒａｎｓｍｉｓｓｉｏｎ）ネットワーク経由でリモートコンピュータネットワークに接続することができる。ＩＥＥＥ  ８０２．１１  ａ／ｂ／ｇ、ＨｏｍｅＲＦ、Ｈｉｐｅｒｌａｎ／２などのプロトコルを組み込んだ技術などの無線ローカルエリアネットワーク（ＷＬＡＮ）技術を利用すると、ユーザは無線アクセスポイント／トランシーバを介してローカルエリアネットワークにアクセスすることができる。Ｕｌｔｒａ  Ｗｉｄｅｂａｎｄ（ＵＷＢ）およびＢｌｕｅｔｏｏｔｈ（ＢＴ）などの無線パーソナルエリアネットワーク（ＷＰＡＮ）技術は、今日コンピュータに組み込まれているさらに他の無線技術を代表する。それぞれＺｉｇｂｅｅおよびＲＦＩＤなどのコマンドおよび制御およびインベントリ管理の分野に属す他の技術もある。多くの場合これらの技術に関連する物理的および媒体アクセス層のコンポーネントは、調整されない形で重なり合う周波数範囲内で動作する−これは信号干渉を生じる。
【０００３】
無線ネットワークトランシーバの構成および近さに応じて、コンピューティングデバイスは上記の無線技術のうちの１つまたは複数に関連付けられた無線周波数を受信／送信する。実際には、場所によって、コンピューティングデバイスは、コンピューティングデバイスに装着された異なるネットワークインターフェースカード（ＮＩＣ）を介した同時無線ネットワーク接続を保持することができる。無線通信技術および関連する信号伝送の同時可用性／存在が、例えば、無線ローカルエリアネットワーク、無線ワイドエリアネットワーク、およびパーソナルエリアネットワークの接続をサポートするオフィス環境内で生じる。複数の同時ネットワーキング技術オプションが存在することで、コンピューティングデバイスがネットワークおよび／または資源（スピーカ、キーボード、マウスなどのコンピュータ周辺機器を含む）に接続する仕方について柔軟性が高まる。
【０００４】
しかし、多数の様々なＲＦ発生源が、無線通信機能を備えるコンピューティングデバイスが信号干渉を受ける、および／または発生する可能性を高め、その結果、サービスの品質が低し、ユーザが不快な思いをするに至る。干渉は様々な種類のものがあり、それぞれ異なる特性を有する。例えば、重なり合う周波数スペクトルを利用する２つの無線トランシーバは、信号干渉を発生し、その結果、パケットの喪失、接続の途絶、およびスループット（ストリーミング接続の場合）の不均一さが生じる。場合によっては、第１のトランシーバは、オペレーションが他の競合信号の影響を受けないように十分に高い信号電力で動作するが、第２の低電力の無線トランシーバのオペレーションは、第１のトランシーバからの大電力干渉信号により飽和する。
【０００５】
干渉は異なる発生源から生じうる。第１のタイプの干渉は、複数の無線送信機／受信機を同時に作動させているコンピューティングデバイス自体から生じる。例えば、コンピューティングデバイスは、重なり合う無線信号周波数帯域を使用する、異なる無線技術を組み込んだ、複数の無線インターフェースをサポートする。そのため、無線インターフェースは、同時に使用された場合に競合を生じる。このような重なり合う無線技術の一例として、ＩＥＥＥ８０２．１１ｂまたは８０２．１１ｇをＢｌｕｅｔｏｏｔｈ  ＰＡＮアプライアンスと同時に使用することなどがあげられるが、これは、８０２．１１ｂ／ｇトランシーバはＢｌｕｅｔｏｏｔｈ無線接続により使用される可能性のある周波数と重なる無線周波数を使用しているからである。
【０００６】
単一のコンピューティングデバイス上で同時にアクティブな無線インターフェース／トランシーバが存在すると信号干渉を生じるというシナリオ例において、ＤＶＤプレーヤは８０２．１１ｂ  ＷＬＡＮ接続を介して映画をパーソナルコンピュータにストリーミング配信する。パーソナルコンピュータのユーザは、無線（Ｂｌｕｅｔｏｏｔｈ）マウスを同時に使用してインターネット（ＧＰＲＳを介して接続されているＢｌｕｅｔｏｏｔｈ電話経由でアクセスされる）からページをダウンロードしている別のウィンドウ内で「映画の真実（ｍｏｖｉｅｓ  ｆａｃｔｓ）」をチェックしている。マウスとパーソナルコンピュータとの間、およびパーソナルコンピュータとＢｌｕｅｔｏｏｔｈ電話との間のＢｌｕｅｔｏｏｔｈ信号は、ＤＶＤからパーソナルコンピュータへのオーディオビジュアルデータのストリーミング信号と競合する。信号が干渉する結果、映画の映像がぎくしゃくした表示になる。マウスの動きもぎくしゃくする可能性がある。
【０００７】
他の干渉シナリオ例では、ビデオカメラは、ウルトラワイドバンド（ＵＷＢ）を介してオーディオビジュアルストリームをパーソナルコンピュータに送信する。それと同時に、ユーザは、ケーブルモデム／ＤＳＬ回線を介してインターネットにユーザを接続する８０２．１１ａ無線接続を使用するネットワーク用の無線トランシーバ（アクセスポイント）に接続される。この潜在的干渉シナリオでは、８０２．１１ａ信号は、ＵＷＢデータ伝送と干渉する。その結果、ストリーミング配信される記録済みセッションはぎくしゃくした表示になる。
【０００８】
第２のタイプの干渉源は、他のコンピューティングデバイスまたは１つまたは複数の無線送信機／受信機に関して信号干渉を受けるコンピューティングデバイスとは無関係に存在／動作する干渉源−コンピューティングデバイスの制御の及ばない外部干渉源−との間の信号伝送から生じる。他のコンピュータ、アクセスポイントなどに加えて、そのような干渉は、さらに、コードレス電話、電子レンジなどの様々な外部干渉源から生じることもある。
【０００９】
多数の信号競合回避スキームが、単一無線プロトコル／技術の範囲内で動作する。例えば、無線ＷＡＮの領域内では、トランシーバ／ドライバは、同じ技術を使用して他の送信機との伝送競合を回避するＣＤＭＡ、ＴＤＭＡ、およびＦＤＭＡプロトコルを使用する。このような競合回避スキームは、異なる無線伝送では異なる競合回避プロトコルを使用している可能性があるため、共有周波数範囲での異種無線伝送にはあまり適していない。これは、特に、無免許／無規制の重なり合う周波数範囲内で伝送時間について同時に競合するＢｌｕｅｔｏｏｔｈ／ＵＷＢおよび８０２．１１などのＷＰＡＮ／ＷＬＡＮ無線トランシーバの場合にあてはまる。
【００１０】
コンピューティングデバイスが発生した信号干渉に反応する１つの方法は、影響を受ける接続が劣化／失敗するのを許容することである。コンピューティングデバイスは、特定の接続が失敗したことを認識する。接続が失敗した場合、ユーザは再接続を試みるよう要求されるか、またはユーザが代替ネットワーク通信媒体（例えば、ネットワークへの有線接続）を選択するか、またはポリシーにより規定されている場合にコンピューティングデバイスが自動的に再接続を行う。
【００１１】
知られているＭＡＣドライバは、２つの無線技術を処理する競合回避スキームを実装している。ベンダは、干渉を回避するために協調および／または信号キャンセルスキーム（collaborative and/or signal cancellation schemes）を実装している。例えば、８０２．１１ｂおよびＢｌｕｅｔｏｏｔｈトランシーバの両方を含む単一システムでは、システムはモードスイッチを通じてＭＡＣレベルで伝送を調整する。モードスイッチのオペレーションは、（８０２．１１ｂのための）ビーコン受信、（Ｂｌｕｅｔｏｏｔｈのための）ページング、またはパケット交互配置などの低い層のプロシージャに基づく。ベンダのＮＩＣは、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）および８０２．１１の両方をサポートしている可能性があり、その場合、ＮＩＣはその２つの競合する／干渉する技術のいずれかが使用されているかを判定することができ、第１の伝送が完了するまで他方の伝送を停止する。２つのＮＩＣがあり、１つはＢｌｕｅｔｏｏｔｈ、もう１つが８０２．１１の場合、それら２つのＮＩＣをハード配線で互いに結合し、他方が伝送中であればそれを判別し、自伝送を停止するようにできる。これは、２つのＮＩＣの間の線の数に応じて２線または４線アプローチである。代替として、伝送に関する通知は、一方のドライバから他方のドライバに送ることも可能であり、例えば、Ｂｌｕｅｔｏｏｔｈドライバまたは８０２．１１ドライバは、伝送の通知を送るために他方のドライバにより使用されるであろう呼び出し可能インターフェースを潜在的に備える。モードスイッチは、８０２．１１ｂとＢｌｕｅｔｏｏｔｈの間のトラフィックのアービトレーションを実行する。その後、このスイッチは、高い優先度を持つトラフィックを優先して伝送を許可する。ＨＩＤデバイス（キーボードおよびマウス）からのトラフィックに最高優先度を持たせるのがふつうである。そうでない場合、８０２．１１ｂが優先トラフィックを持つであろう。
【００１２】
さらに、知られている無線ネットワークインターフェースの選択基準では、Ｗｉ−Ｆｉ技術の自動選択をＳＳＩＤ（無線ネットワークの識別−インターネットなどの特定の資源に対する接続の判定を容易にする）およびサポートされている最高ネットワーク接続速度に基づいて行う。この比較的単純な配置のもとで、２つの異なる無線技術が同じネットワーク／資源に対する接続を提供する場合、高速な方の無線技術が選択される。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、無線技術／インターフェース／ネットワークを選択するための方法およびフレームワークを含む。特に、本発明は、ネットワーク接続を確立するためコンピューティングデバイス上の複数の利用可能な無線技術の中から１つの無線技術を選択する方法を含む。
【課題を解決するための手段】
【００１４】
この方法は、ファクタの集合を含む無線技術選択フレームワークを保持するステップを含む。ファクタの集合内の１つまたは複数のファクタが指定された無線技術選択基準に組み込まれる。本発明を組み込むコンピューティングデバイスは、コンピューティングデバイス上のネットワークインターフェースによりサポートされている利用可能なそれぞれの無線技術と関連するステータスおよび／または機能に関する情報を取得する。この後、コンピューティングデバイスは、ファクタの集合のいくつかのファクタに対するファクタ値がそれぞれの利用可能な無線技術について得られた情報の集合に基づくようにする。ファクタ値を計算した後、コンピューティングデバイスは、計算で求められたファクタ値を無線技術選択基準に適用することに少なくとも一部は基づき無線技術選択を行う。したがって、本発明は、指定された無線選択基準に組み込まれたファクタに割り当てられた値に影響を及ぼす様々な感知された状態に応答してコンピューティングデバイス上で動的ネットワークインターフェース／ネットワーク選択を実装することを容易にする。
【００１５】
本発明は、さらに、コンピューティングデバイスにより実行された場合に、本明細書で説明されている機能性を実行するコンピュータ実行可能命令を格納するコンピュータ可読媒体で具現化される。
【００１６】
添付の請求項では本発明の特徴について詳しく説明しているが、本発明は、その目的および利点とともに、添付の図面と関連して行われている詳細な説明から最もよく理解できる。
【発明を実施するための最良の形態】
【００１７】
本明細書で開示された例示されている無線ネットワークインターフェース構成／制御アーキテクチャを使用すると、複数の無線技術にまたがって非常に柔軟性／適応性の高い無線ネットワークインターフェース制御を容易に実現できる。例示されている実施形態では、無線ネットワークインターフェース構成／制御プラットフォームは、特定の媒体タイプ（例えば、８０２．１１  ＷＬＡＮ）に対しデータセット（例えば、パケット）のフローを全体として制御する個別の媒体アクセスドライバを介してネットワーク通信層で実行する共存（ｃｏｅｘｉｓｔｅｎｃｅ）ドライバを備える。共存ドライバは、１つまたは複数の仮想共存ドライバ（ＶＣＤ）をインスタンス化し、そのそれぞれが潜在的に干渉する無線媒体技術と、さらには同じ無線媒体技術を組み込んだ複数のネットワークインターフェースとの特定の組合せを処理する。ＶＣＤは、それによって取り扱われる組合せにおけるそれぞれの無線技術に関連するネットワークインターフェースデバイス（例えば、ネットワークインターフェースカード）からステータス情報およびパフォーマンス測定基準を集めて蓄積する。
【００１８】
最初に、共存ドライバは、１つまたは複数の無線ネットワーキング技術を使用するコンピューティングデバイスに現在必要な仮想共存ドライバの集合を決定する。共存ドライバは、現在装着されている無線ネットワークインターフェースのオペレーションに現在影響を及ぼしている干渉源／技術群を決定する。共存ドライバは、サポートされているそれぞれの無線技術について潜在的に競合する可能性のある無線技術を指定する競合マップを調べる。競合マップ内の競合する無線技術が現在コンピューティングデバイス上にインストールされている場合、それは競合集合に追加される。さらに、マシンに８０２．１１ｂカードのみが装置されているのに、Ｂｌｕｅｔｏｏｔｈ電話がマシンの付近にあり、現在他のマシンまたはＡＰと話し中の場合、競合回避を実行するためにＢｌｕｅｔｏｏｔｈ干渉源は特定のＶＣＤの選択および構成にファクタとして組み込まれる。８０２．１１ｂカードを内蔵するマシンは競合回避戦略で制限されるが、それは、８０２．１１ｂデバイスのみを制御し、ＢＴデバイスについては制御しないからである。しかし、８０２．１１ｂ／ＢＴ  ＶＣＤの競合回避論理の少なくとも一部（例えば、８０２．１１周波数帯域を変更すること）は、潜在的に使用される可能性がある。この初期競合検出ステップの完了後、共存ドライバは、競合する技術／干渉源のそれぞれの識別された集合に対応するＶＣＤを選択し、起動する。
【００１９】
共存ドライバにより確立されたそれぞれの仮想共存ドライバは、競合する無線技術の個別の媒体アクセス制御（ＭＡＣ）ドライバから蓄積されたステータス情報およびパフォーマンス測定基準を使用して、コンピューティングデバイスに装着されている無線ネットワークインターフェースで通信を行うため媒体アクセス制御ドライバへのデータセット（例えば、パケット）のフローを制御することに関連する一連のタスクを実行する。このようなタスクは、競合する（およびしたがって、交互にアクティベートされる）無線ネットワークインターフェースに関連するデータセットを送信すること、保留要求に関連する優先順位付けされたキューを保持し、優先順位付けスキームに従って媒体アクセス制御ドライバにキューに入れられているデータセットを受け渡すこと、無線ネットワークインターフェースのオペレーションを適合させるため複数の媒体アクセスドライバにより供給される情報に基づき意思決定を実行すること、およびコマンド／制御命令を媒体アクセス制御ドライバに発行し、無線インターフェースおよびその他の無線通信信号干渉源の干渉を−他の装着されている無線ネットワークインターフェースカードから生じようと外部干渉源から生じようと−引き起こさないオペレーションを容易に行えるような方法で無線ネットワークインターフェースカードを制御することを順位付けすることを含む。例示されている実施形態では、制御パケット（例えば、８０２．１１ドライバにより送信されるＲＴＳ（送信要求）／ＣＴＳ（送信可）パケット）は、遅延タイムクリティカル情報が無線ネットワークインターフェースに到達するのを防ぐため共存ドライバにより処理されない。
【００２０】
したがって、要約すると、共存ドライバは、同じまたは異なる無線技術間の競合／干渉に対処するため媒体特有のアクセス制御ドライバの集合の上で共存プロトコルを実行する高水準のネットワークデバイスドライバである。共存ドライバは、周波数が重なり合わなくても、近いという理由で、一方の送信が他方の送信／受信に影響を及ぼす可能性のある場合に信号周波数の重なり合いまたは信号漏れを排除するため特定の無線トランシーバ内で特定の周波数範囲（チャネル）を使用することを禁止／回避することを含む、潜在的に数多くの方法で競合／干渉に対処する。信号周波数の重なりを防止できない場合、共存ドライバは、競合する無線技術によりデータセット伝送を制御（多重化）し、仮想共存ドライバ内で表される複数の無線技術による重なり合う周波数の同時使用を回避する。媒体特有の無線媒体アクセス制御ドライバの上の共存ドライバの位置により、異なる媒体アクセス制御ドライバにまたがるグローバルな視点が欠如しているか、またはさらには、製品のベンダが異なるか、または同じコンピューティングデバイス上で２つの８０２．１１ｂトランシーバなどの同じ無線技術を使用しているという理由で２つのネットワークインターフェース間の調整が存在しないため、他の方法では個別の媒体アクセス制御ドライバにより利用できない、または取得するのが困難である、異なるインターフェース上で適宜送信される異なるデータセット（例えば、パケット）を取り扱うことを含む、蓄積された無線ネットワーク測定基準に基づき、共存ドライバは様々な競合／干渉低減スキームを実装することができる。
【００２１】
さらに、複数の無線技術を介して無線通信をサポートすることができるコンピューティングデバイス上に無線技術選択基準を実装する方法およびインフラストラクチャが本明細書で開示されている。選択フレームワークは、現在の無線ネットワーキング環境の能力／ステータスを認識すること、コンピューティングデバイスの現在の無線ネットワーキング需要／ニーズを認識すること、およびコンピューティングデバイスの様々なネットワーク／インターフェースおよび現在の需要／ニーズの能力／ステータスに基づいてインテリジェントな／堅牢な決定を下すことに基づく。いくつかの実施例では、これらの基本概念は、動的に取得されたネットワーク情報、および現在感知されているステータス情報およびアプリケーション／ユーザ要件に基づいて指定され修正される静的に定義されるとともに動的にも定義される基準（例えば、ファクタの重み付け）により実装される。
【００２２】
図１は、様々な異なる無線通信技術を介してアクセスされる複数のネットワークによりサポートされている環境内で使用されるコンピューティングデバイス（例えば、ノートブックコンピュータ、アクセスポイントなどのアプライアンスなど）の好適な動作環境１００の一例を示す図である。動作環境１００は、好適な動作環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。本発明で使用するのに適していると思われるよく知られている他のコンピューティングシステム、環境、および／または構成として、パーソナルコンピュータ、サーバコンピュータ、ラップトップ／携帯型コンピューティングデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、サーバアプライアンス、アクセスポイント、基地局、上記システムまたはデバイスのいずれかを含む分散コンピューティング環境などがあるが、これらに限定されない。
【００２３】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的背景状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で動作するネットワークノードに組み込まれることも考えられる。分散コンピューティング環境では、プログラムモジュールは、一般的に、メモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置される。
【００２４】
続いて図１を参照すると、本発明を実装するシステムの実施例は、汎用コンピューティングデバイスをコンピュータ１１０の形で含む。コンピュータ１１０が含むコンポーネントとしては、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１などがあるが、これらに限定されない。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺機器バス、および様々なバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。例えば、このようなアーキテクチャとしては、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスがあるが、これらに限定されない。
【００２５】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスされることができる媒体であればどのような媒体でも使用可能であり、揮発性および不揮発性媒体、取り外し可能および固定媒体を含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および固定媒体を含む。コンピュータ記憶媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または所望の情報を格納するために使用することができコンピュータ１１０によりアクセスできるその他の媒体があるが、これらに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造体、プログラムモジュール、または搬送波もしくはその他のトランスポートメカニズムなどの変調されたデータ信号によるその他のデータを具現するものであり、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化する方法によりその特性のうち１つまたは複数が設定または変更された信号を意味する。例えば、通信媒体として、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、ならびに無線ＰＡＮ、無線ＬＡＮおよび無線ＷＡＮ媒体などの他の無線媒体のような無線媒体とを含むが、これらに限定されない。上記のいずれの組合せもコンピュータ可読媒体の範囲に収まらなければならない。
【００２６】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は、通常、ＲＯＭ１３１に格納される。通常、ＲＡＭ１３２は、処理ユニット１２０に直接アクセス可能な、および／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを格納する。例えば、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を例示しているが、これらに限定されない。
【００２７】
コンピュータ１１０はさらに、その他の取り外し可能／固定の揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。例えば、図１は、固定の不揮発性磁気媒体の読み出しまたは書き込みを行うハードディスクドライブ１４０、取り外し可能な不揮発性磁気ディスク１５２の読み出しまたは書き込みを行う磁気ディスクドライブ１５１、およびＣＤ  ＲＯＭまたはその他の光媒体などの取り外し可能な不揮発性光ディスク１５６の読み出しまたは書き込みを行う光ディスクドライブ１５５を例示している。動作環境の実施例で使用できる他の取り外し可能／固定の揮発性／不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、これらに限定されない。ハードディスクドライブ１４１は、通常、インターフェース１４０などの固定のメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などの取り外し可能なメモリインターフェースによりシステムバス１２１に接続される。
【００２８】
図１に例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータのストレージを提供する。例えば、図１では、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして例示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じである場合もあれば異なる場合もあることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７には、ここで異なる番号を与え、最低でも、それらが異なるコピーであることを示している。ユーザは、キーボード１６２、およびマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス１６１などの入力デバイスを介してコンピュータ２０にコマンドおよび情報を入力できる。他の入力デバイス（図に示されていない）としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースおよびバス構造により接続することもできる。モニタ１９１またはその他の種類の表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタの他に、コンピュータはさらにスピーカ１９７およびプリンタ１９６などの他の周辺出力デバイスも含むことができ、これらは出力周辺インターフェース１９０を介して接続することができる。
【００２９】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードでもよく、通常は、コンピュータ１１０に関係する上述の要素の多くまたはすべてを含むが、メモリ記憶デバイス１８１だけが図１に例示されている。図１に示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【００３０】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、１つまたは複数の有線／無線ネットワークインターフェース１７０を通じてＬＡＮ１７１に接続される。さらに、１つまたは複数の有線／無線ネットワークインターフェース１７０の集合が、インターネットなどのＷＡＮ１７３上で通信をサポートする。図１には示されていないが、コンピュータ１１０は、潜在的に、ユーザ入力インターフェース１６０またはその他の適切なメカニズムを介してシステムバス１２１に接続された内蔵または外付けモデムを含むことが可能である。ネットワーク化環境では、コンピュータ１１０またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶デバイスに格納されうる。例えば、図１には、リモートアプリケーションプログラム１８５がメモリデバイス１８１に置かれているように例示されている。図に示されているネットワーク接続は実施例であり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【００３１】
本発明は、様々な動的ネットワーキング環境で使用され、様々なタスクを実行するモバイルおよび非モバイルコンピューティングデバイス／マシンに組み込むことも可能である。このような環境では、特定のチャネル／周波数の可用性は、アクティブな無線媒体の集合が変化すると変わる可能性がある。次に、これは、特定の無線媒体上のサービスの品質に悪影響を及ぼす可能性がある。本発明では、無線ネットワークインターフェースへのトラフィックの構成および／または調整を容易にし、重なり合う周波数範囲を使用する無線ネットワークインターフェース間の干渉を低減する。本発明の一実施形態は、さらに、コンピューティングデバイスの制御が及ばない外部発生源（例えば、コードレス電話システム、マイクロ波オーブン、他のコンピューティングデバイスに伝送するＢｌｕｅｔｏｏｔｈデバイスなど）から生じる干渉にも対応する。さらに、選択基準は、コンピューティングデバイスによりサポートされている複数の利用可能な無線ネットワーク技術のうちの特定技術を選択／提案するために使用される。
【００３２】
図２を参照すると、無線コンピューティング環境の単純な例が示されていおり、そこでは、本発明が潜在的に利用される。例示されている環境では、ノートブックコンピュータ２００は、複数のネットワーク媒体上での通信を可能にする複数のネットワークインターフェースカード（特に図に示されていない）を含む。図２に示されている特定の例では、ノートブックコンピュータ２００は、潜在的に、ＧＰＲＳなどのＷＷＡＮ無線技術を使用する携帯電話送信塔２０２および８０２．１１ｂなどのＷＬＡＮ無線技術を使用する無線トランシーバ２０４と通信する。
【００３３】
無線トランシーバ２０４（無線アクセスポイント、つまりＷＡＰとも呼ばれる）は、ＬＡＮ２０６上の様々な資源にアクセスできるようにする。例えば、無線トランシーバ２０４は、ノートブックコンピュータ２００により、ファイルサーバ２０８上に保持されているディレクトリへのアクセスを行えるようにする。ＬＡＮ２０６は、さらに、ＬＡＮ２０６に接続されているコンピューティングデバイス（コンピュータの集合２１１およびノートブックコンピュータ２００のユーザを含む）のユーザによるインターネット２１２へのアクセスを可能にするゲートウェイ／ファイヤウォール／モデム２１０も含む。ゲートウェイ／ファイヤウォール／モデム２１０は、さらに、インターネット２１２のユーザに対しＬＡＮ２０６上の資源へのアクセスを提供する。
【００３４】
ノートブックコンピュータ２００のユーザは、複数のサポートされているネットワーク媒体の結果として、インターネット２１２およびＬＡＮ２０６にアクセスすることができる。これは、複数の通信媒体を介して（インターネット２１２およびＬＡＮ２０６を通じて）ファイルサーバ２０８にアクセスすることができる。例えば、ＷＷＡＮネットワークインターフェースを利用することで、ノートブックコンピュータ２００は、携帯電話の送信塔２０２を含む携帯電話ネットワークを介してインターネット２１２にアクセスすることができる。これは、ゲートウェイ／ファイヤウォール２１０を通じてＬＡＮ２０６上の資源にアクセスすることができる。代替として、ノートブックコンピュータ２００は、無線トランシーバ２０４を介してＬＡＮ２０６上の資源にアクセスする。同様に、図示した例のＬＡＮ２０６は、ノートブックコンピュータ２００の正しく認証されたユーザが２つの例示されている無線ネットワーク媒体のいずれかを介してインターネット２１２およびＬＡＮ２０６の資源にアクセスできるようにするネットワークアクセスおよびプロキシサーバを含むと仮定されている。資源にアクセスするためのこのような二重の機能があると、ノートブックコンピュータ２００のユーザの現在の状態、ニーズ、好み、待ち時間、コストなどに基づいて無線ネットワーク媒体の特定の１つを選択することが可能になる可能性がある。
【００３５】
図２に例示されているネットワーク実施形態では、ノートブックコンピュータ２００の近くに配置されているパーソナルコンピュータ２１４は、複数の無線ネットワーク技術インターフェースを備えている。パーソナルコンピュータ２１４は、無線トランシーバ２０４を介してＬＡＮ２０６と通信する（８０２．１１ｂ  ＷＬＡＮプロトコルの下で動作する）。さらに、また本発明の一実施形態に特に関係するものとして、ＰＣ２１４は、例えば、マウス、キーボード、および電話を含む、様々な無線アプライアンスをサポートするＢｌｕｅｔｏｏｔｈ無線トランシーバ／インターフェースを含む。Ｂｌｕｅｔｏｏｔｈおよび８０２．１１ｂ無線ネットワーク通信プロトコルの指定された周波数スペクトルが重なり合うため、Ｂｌｕｅｔｏｏｔｈアプライアンスおよび８０２．１１ｂ接続の同時オペレーションが、パーソナルコンピュータ２１４と無線トランシーバ２０４との間の８０２．１１ｂ接続でのサービスの品質に影響を及ぼす／劣化させる可能性がある。同様に、８０２．１１ｂ接続は、Ｂｌｕｅｔｏｏｔｈ接続でのサービスの品質に影響を及ぼす／劣化させる可能性がある。さらに、ノートブックコンピュータ２００がノートブックコンピュータと通信している／していない可能性のある他のＢｌｕｅｔｏｏｔｈアプライアンスの十分近くにある場合、ノートブックコンピュータ２００と無線トランシーバ２０４との間の８０２．１１ｂ  ＷＬＡＮ接続も、Ｂｌｕｅｔｏｏｔｈ信号伝送に関連する干渉の悪影響を受ける可能性があり、またはその逆もありうる。このシナリオだけでなく、上述のシナリオなど他のシナリオも、複数ありうる無線技術に関連する情報を処理して、Ｂｌｕｅｔｏｏｔｈおよび８０２．１１ｂ無線通信などの同じまたは異なる無線ネットワーク技術に関連する重なり合う周波数スペクトルから生じる信号干渉に対処しようとする共存スキームを確立／実行する共存ドライバにより取り扱われる。特別なケースとして、重なり合う周波数または互いに近い位置にある−したがって信号干渉を生じる−周波数を使用する２つの８０２．１１ｂ、ｇ、または無線などの同じ無線ネットワーク技術を利用するトランシーバ同士の干渉のケースがあげられる。
【００３６】
図３を参照すると、ノートブックコンピュータ２００およびパーソナルコンピュータ２１４などのコンピューティングデバイス内に組み込まれている共存ドライバ３００は、適応およびパケットフロー制御スキームを、潜在的に複数あるネットワークインターフェースにまたがってサポートされる潜在的に複数あるネットワーク媒体技術に関係する動作／ステータス情報に適用する。これ以降、共存ドライバ３００は、無線ネットワークインターフェースを構成し、必要ならば、内部または外部発生源からの干渉を受ける無線ネットワークインターフェースへのデータパケットフローのシーケンシング／制御を行う。本発明の例示されている実施形態では、共存ドライバ３００は、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのネットワークドライバインターフェース規約（ＮＤＩＳ）層３１０内で動作する。したがって、例示されている共存ドライバ３００は、別のインターフェース群を必要とせずに、プロトコル特有の無線インターフェースドライバに送られる前にトランスポートドライバ３１２からの送出データが渡される際に通るＮＤＩＳ層３１０内で中間サブレイヤとして動作する。
【００３７】
次に図３を参照すると、本発明の一実施形態では、共存ドライバ３００は、実際のまたは外部の干渉する無線技術の特定の組合せを取り扱うためＶＣＤ３２０およびＶＣＤ３２２などの仮想共存ドライバ（ＶＣＤ）の集合を作成／インストールし、そのホストとなる。ＶＣＤはそれぞれ、ＶＣＤによりサポートされる一連の無線ネットワークインターフェースのうちの１つを宛先とするパケットを処理する。例えば、ＶＣＤ３２０は、８０２．１１ｂネットワークインターフェースドライバ３３０とＢｌｕｅｔｏｏｔｈネットワークインターフェースドライバ３３２を宛先とするパケットを処理する。ＶＣＤ３２２は、８０２．１１ａネットワークインターフェースドライバ３３４とＵｌｔｒａ  Ｗｉｄｅｂａｎｄネットワークインターフェースドライバ３３６を宛先とするパケットを処理する。ＶＣＤを個々のネットワークインターフェースドライバの上に置くことにより、ＶＣＤは、干渉する可能性のあるネットワーク技術（例えば、Ｂｌｕｅｔｏｏｔｈと８０２．１１ｂ）を使用する一連のインターフェースのそれぞれに関連する集計情報に基づき様々な構成／制御オペレーションを実行することができる。
【００３８】
本発明の一実施形態では、すべてのＶＣＤは、共存ドライバ３００により管理される基本クラスから派生する。共存ドライバ３００は、識別された干渉の発生源に基づいて、カスタマイズされたコンテキストおよび機能を含む、ＶＣＤの特定のインスタンスを作成する。競合技術の識別および適切なＶＣＤインスタンスの干渉および選択の発生源については、以下に詳述する。インストールされた後、ＮＤＩＳ層３１０を介してネットワークインターフェースドライバに渡されるパケットに対するそれぞれのＶＣＤの制御の程度および制御の性質は、ＶＣＤのプログラミングにより決定され、構成選択は共存ドライバ３００によりユーザに公開され、および／またはＶＣＤは共存ドライバ３００によりホスティングされる可能性がある。
【００３９】
本発明を実施する無線ネットワークドライバ配置例について概要を説明したが、図４を参照すると、ＶＣＤの実施例により実行され、ＶＣＤによって共存が管理される干渉源の集合に応じてカスタマイズされた１組のタスク／機能を示している。識別されているタスクは、必ずしも、特定のプログラムセグメント／モジュールに制限されるわけではないことに留意されたい。むしろ、タスクは、競合する無線技術だけでなく他の干渉源から生じる干渉問題に適応する形で解決するため共存ドライバ３００により作成されたＶＣＤにより示される機能例を概念化し、区分する一手段として識別される。
【００４０】
適応タスク４１０
仮想共存ドライバ３００内のＶＣＤにより実行される適応タスク４１０は、１組の識別された実際の／潜在的な干渉条件に応答して、１組のインストールされている無線インターフェースに対する共存スキームを指定することを必要とする。１組の共存スキーム例は、図６および７に関して以下で説明される。適応タスク４１０は、さらに、指定されたスキームを実行する無線ネットワークインターフェース制御命令をレンダリングすることを含む。インターフェース制御命令では、ネットワークインターフェースのオペレーションの特定モードを設定し、および／または関連するドライバの制御の下で特定のネットワークインターフェースによるデータパケット伝送のタイミングを調整する。例えば、ＶＣＤ３２０は、共存スキームを指定し、８０２．１１ｂドライバ３３０に関連する第１のネットワークインターフェースおよびＢｌｕｅｔｏｏｔｈドライバ３３２に関連する第２のネットワークインターフェースに関する構成およびデータトラフィック制御の決定を行う。
【００４１】
Ｃ／Ｉ計算の適用／チャネル選択
本発明の一実施形態では、適応タスクは、適応タスク４１０で具現化されているように、ＶＣＤに対する特定の無線技術のそれぞれに関する情報を定期的に処理し、それぞれの特定のサポートされている無線技術に対するそれぞれのサポートされているチャネルの輻輳／干渉（Ｃ／Ｉ）測定基準をレンダリングする。例えば、与えられた無線技術のそれぞれのチャネルについて収集された情報は、信号強度、パケットエラー率、パケット損失率、平均リトライ回数、雑音レベル、および推定輻輳を含む。このような情報、または少なくともその一部分は、知られている媒体アクセス制御ドライバにより提供される。Ｃ／Ｉ測定基準では、装着されている無線トランシーバにより生じる干渉およびおよび外部干渉源−他のコンピューティングデバイスについてＢｌｕｅｔｏｏｔｈデバイスを操作する他のユーザなど−の両方を考慮する。
【００４２】
それぞれの無線技術のそれぞれのチャネルについて生成されるＣ／Ｉ測定基準は、これ以降、無線技術と他の信号干渉源との間の干渉を低減／回避するために、ＶＣＤにより潜在的に多数の方法で使用される。第１の形態の干渉回避では、適応タスク４１０は、特定の無線技術について生成されたＣ／Ｉ測定基準を使用し、特定の無線技術についてデータトラフィックが流れる最良のチャネルまたはチャネルの集合を選択する。しかし、所望のトラフィックフローをサポートするために許容可能なチャネルが利用できず、代替無線技術が利用可能である場合、ＶＣＤは無線技術選択プロシージャを実行する。この第２の形態の干渉回避では、ネットワーク選択プロシージャ（以下で説明する）は、例えば、共存ドライバ３００により実行され、トラフィックフローを取り扱う異なるネットワーク通信技術を決定する。
【００４３】
優先順位付けタスク４２０
それぞれのＶＣＤにより実装される優先順位付けタスク４２０は、重要情報がタイミングよく必ず渡されるようにし、またすべてのデータパケットが、最初に割り当てられた優先度に関係なく、必ず最終的に、適応タスク４１０により指定された優先順位付けスキームに応じて送信されるようにする。このような優先順位付けスキームは、２つまたはそれ以上の同一場所に配置された無線技術の間の潜在的競合に対処するようにシーケンシングされた非同時パケット伝送が規定されている場合に望ましい。後述のトラフィック処理方法例では、優先順位付けタスク４２０は、ＮＤＩＳ層３１０に受け渡されたデータパケットに優先度を割り当てる／再度割り当てる役割を受け持つ。
【００４４】
優先度は、潜在的に、データの発信元のユーザ／アプリケーションの個々のニーズを一般的に反映する様々なファクタに応じてＶＣＤにより処理されるデータトラフィックに割り当てられる。例えば、優先度は、最初に、アプリケーション優先度に関するユーザ指定選好により割り当てられる。他の場合には、優先度は、特定のデータ転送速度を保証するために特定の優先度が与えられる特定のアプリケーションに基づく。同様に、さらに他の場合、初期優先度は、アプリケーションタイプ（例えば、ＤＶＤビューアプログラム）、データのタイプ（例えば、電話での会話）、またはデータの宛先（ＤＶＤプレーヤ）に基づく。
【００４５】
本発明の一実施形態では、すべての制御パケットは、共存ドライバ３００のＶＣＤにより実装された共存スキームをバイパスすることが許される。ＭＡＣレベル制御パケットは、共存ドライバにより処理されないが、それは、一般にタイムクリティカル（マイクロ秒の粒度）だからである。したがって、これらは高優先度とみなされ、そのため、遅延せずにそのようなパケットを最初に（高優先度／タイムクリティカルパケットとして）送信し、ＭＡＣドライバに、ＶＣＤトラフィック制御スキームのバイパスから生じうる競合（およびパケット損失）の処理を任せるのが適切である。制御伝送はすべての伝送のうち比較的小さな割合を占めるため、制御パケットに対するそのようなパススルー対応は、競合回避に関してＶＣＤが持つ利点に著しい影響を及ぼすことはない。他方、データパケットに対する競合回避を行うことがかなり重要である。これは、データパケットのタイムクリティカリティが制御パケットと比べて一般的に低く、データパケットはトラフィック全体のかなり大きな部分を占め、一部のデータ伝送の量は、優先順位付けされていなければ、多くの競合を引き起こし、またスループットの著しい低下をもたらすからである。
【００４６】
キューイングタスク４３０
キューイングタスク４３０は、優先順位付けタスク４２０およびコマンド／制御タスク４４０と連携して動作し、データパケットを技術特有のドライバに順次送信するが、その際に、競合する無線技術に対する信号伝送干渉を回避するように秩序だった方法で送信する。キューイングタスク４３０は、それぞれのサポートされている優先度レベル（または最初に割り当てられた優先度によりそれぞれのキューレベルの範囲内での優先順位付けを容易にする下位レベル）について保留データパケットのキューを保持する。本発明の一実施形態では、シーケンシング共存スキーム（図７に関して以下に説明されている）をサポートするそれぞれのＶＣＤは、キューの先頭でパケットを取り、そのパケットを適切な無線技術インターフェースドライバに受け渡し、送信完了通知を受信し、その後、次の保留パケット（ネットワークインターフェースを介して伝送用にデータをグループ化する潜在的に可能な他の方法を認めたうえで本明細書において一般的にデータセットとして呼ばれる）を送信するソフトウェアスイッチを実装する。
【００４７】
本発明の一実施形態では、キューイングタスク４３０は、現在最高優先度のキューに対する（高優先度パケットの定常ストリームが存在する場合に低優先度パケットの飢餓状態を回避する基準に基づいて）全部または一部のパケットの順次伝送の完了後、残っているすべての保留パケットの優先度（低い優先度のキューに関連する）を１レベル上げてから、保留パケットが入っている最高送信キューからのパケットの送信を再開する。さらに、それぞれの優先度レベルの範囲内で、最初にキューに入れられた際にパケットに割り当てられた基本優先度レベルに応じて下位レベルが保持される。最高の現在キューレベルの範囲内で、下位レベルキューは、それぞれのパケットに割り当てられた基本優先度の順序で処理される。
【００４８】
コマンド／制御タスク４４０
コマンド／制御タスク４４０では、制御命令を関連するネットワークインターフェースドライバに伝達する必要がある。そのような命令は、第１の場合において、チャネル選択およびその他の高レベルオペレーションモード決定などの適応タスク４１０によりレンダリングされる構成決定に基づく。その後、第２の場合に、コマンド／制御タスク４４０は、ネットワークインターフェースドライバのうちの１つを指定するパケット送信要求を受信する。それに応答して、コマンド／制御タスク４４０は、無線技術プロトコル特有のコマンド／命令を指定ドライバに発行し、受信パケットの送信を開始する。コマンド／制御タスク４４０は、その後、ＶＣＤにより潜在的に使用されるパケット伝送完了通知を受信して渡し、一度に１つのパケットだけが送信されるようにする。上述のように、本発明の一実施形態では、競合回避メカニズムは、時間に依存する制御パケットには適用されないが、それは、制御パケットはＶＣＤにより保持されるキュー内で潜在的待機を課すことなく適切なネットワーク通信ドライバに渡されるからである。
【００４９】
ＶＣＤを作成する方法
コンピューティングシステム内の実装について共存アーキテクチャ例を説明したが、図５は、ＶＣＤを作成し、無線技術とデータセット（例えば、パケット）の送信時にコンピューティングデバイス上のネットワークインターフェースで生じる他の無線信号干渉の発生源との間の潜在的信号競合を処理するために共存ドライバ３００により実行されるステップをまとめたものであることに留意されたい。本発明の一実施形態では、共存ドライバ３００は、オンデマンドで、また共存ドライバ３００が常駐するコンピューティングデバイスにより現在認識されている、検出されている、および／または識別されている干渉源の集合に応じて、ＶＣＤを起動する。コンピューティングデバイスは、干渉源の集合（同じ無線技術を使用する複数のネットワークインターフェースを含む）への変更に関する通知を待ち、必要に応じて、新しいＶＣＤを起動し、同じ場所にある、その外部干渉源の集合への変更を処理する。
【００５０】
図５を参照すると、無線ネットワークインターフェースのアクティベートおよび新しい干渉源の感知を含む、様々な通知タイプのうちの１つに応答して、ステップ５００で、共存ドライバ３００は、共存処理が望ましい無線干渉の潜在的発生源の集合をまとめている。本発明の一実施形態では、干渉の潜在的発生源の集合は、同じ場所に配置された発生源（例えば、装着された無線ネットワークインターフェース）および外部発生源（例えば、隣のコンピュータシステムにあるＢｌｕｅｔｏｏｔｈトランシーバ）の両方を含む。同じ場所に配置された発生源は、例えば、これまで「アクティブ」デバイス／インターフェースと呼ばれていた１組の装着され使用可能にされたデバイス（無線ネットワークインターフェースを含む）をリストするバインダリ（ｂｉｎｄｅｒｙ）に問い合わせを行うことにより決定される。外部発生源は、信号特性の（共存ドライバ３００による）感知および分析、および／または現在の動作環境を知っているユーザによる手動での発生源タイプの入力により識別される。
【００５１】
これ以降、ステップ５０２で、共存ドライバ３００は、競合する無線干渉源のセット群をレンダリングする。本発明の一実施形態では、１組の「知られている」無線技術を列挙したマスタ競合マップ（例えば、テーブルまたはその他の好適なデータ構造）が保持される。無線技術毎に、マスタ競合テーブル内に知られている干渉源の集合が示される。８０２．１１ａ／ｂ、Ｂｌｕｅｔｏｏｔｈ、およびＵＷＢ無線技術に関する競合を識別するマスタ競合テーブル例を以下に示す。第１の行は、無線インターフェースでの潜在的干渉源の集合を示している。第１の列は、１組の無線インターフェース技術を示している。より空間効率の良い配置では、それぞれのビット位置が特定の干渉源タイプを表す格納されているバイト集合内にマッピングされたビット集合を必要とする。
【００５２】
【表１】
2005328520.tif 000003
【００５３】
共存ドライバ３００は、コンピューティングデバイス上で現在アクティブな無線技術毎に干渉源の集合を相互に決定する。本発明の一実施形態では、アクティブな無線インターフェース毎に、共存ドライバ３００がそれぞれのアクティブな無線インターフェースと干渉する可能性のあることが知られている干渉源の集合をトラバースする。ステップ５００で識別された干渉源がその干渉源の集合内に存在する場合、適切なＶＣＤを指定するために、その干渉源が干渉源の集合に追加される。すべてのアクティブ無線インターフェースが処理されると、干渉源の複数の横断集合が決定され、内容（識別された干渉源）がマージされる。図３に示されている実施例では、８０２．１１ｂおよびＢｌｕｅｔｏｏｔｈ技術は１つの干渉源集合に属しているが、８０２．１１ａおよびＵＷＢ無線技術はＶＣＤが作成される第２の集合に属す。
【００５４】
ステップ５０４で、干渉する信号源を処理するために１つまたは複数のＶＣＤが共存ドライバ３００により指定される（必要ならば）。特に、ステップ５０２で、識別された干渉源の結果としてマージされた集合は、１組のＶＣＤ記述に適用され、共存ドライバ３００によりインスタンス化される適切なＶＣＤを判別する。図３に示されている実施例では、共存ドライバ３００は、８０２．１１ｂネットワークインターフェースとＢｌｕｅｔｏｏｔｈインターフェースとの間の潜在的競合を処理するためＶＣＤ３２０を作成し、また共存ドライバ３００は、８０２．１１ａネットワークインターフェースとＵＷＢインターフェースとの間の潜在的競合を処理するためＶＣＤ３２２を作成する。
【００５５】
ＶＣＤを指定／作成する目的のため共存ドライバ３００が干渉源とみなされるように動作しているコンピューティングデバイスに特定の無線技術が存在／インストールされている必要はないことに留意されたい。したがって、例えば、８０２．１１ｂ技術とＢｌｕｅｔｏｏｔｈ技術との間の競合を処理するために、両方のタイプの無線ネットワークインターフェースがコンピューティングデバイス上に配置されている（または、無線技術のうちの１つが単に外部干渉源である）か否かに関係なく、ＶＣＤ３２０が作成される。しかし、ＶＣＤの適応４１０、優先順位付け４２０、およびキューイング４３０のタスクのその後のオペレーションは、外部干渉源がコンピューティングデバイスによる伝送のためデータセット（パケット）をサブミットできないため、干渉源がコンピューティングデバイス上に配置されるかどうかの影響を受ける。ＶＣＤは、外部干渉源に適応することができる。例えば、ＶＣＤで８０２．１１ｂ送信機が干渉を発生していると判断した場合、ＶＣＤは、特定の、影響を受けない周波数範囲に対する監視制御に基づきＢＴドライバによる伝送の適応／制約を行うことができる。同様に、８０２．１１ｂトランシーバの干渉源がＢＴ送信機の場合、ＶＣＤは、ＢＴ送信機との干渉を発生する可能性が小さい特定の使用可能なチャネルを潜在的に選択することができる。
【００５６】
ステップ５０６で、共存ドライバ３００は、ステップ５０４で指定された１組のＶＣＤを起動する。例示されている実施形態では、ＶＣＤ３２０および３２２は、ＶＣＤ基本クラスから派生したサブクラスからインスタンス化される。そこで、ＶＣＤ３２０および３２２は、共存ドライバ３００により起動されたすべてのＶＣＤに対し用意される実行可能コードベースを共有する。しかし、それぞれのサブクラスは、図４に示されている上述のＶＣＤタスクを実行する関数、オペレーション、メソッドなどの独自の集合を含む。それぞれのＶＣＤインスタンスに対し独自コンテキストが与えられる。ＶＣＤはそれぞれ、共存ドライバ３００内で動作し、これは次に、ＮＤＩＳプロトコルスタック内の中間層として動作する。
【００５７】
それぞれのＶＣＤによる共存処理
図６を参照すると、１組のステップに、ステップ５０６で共存ドライバ３００により起動された後のＶＣＤ実施例のオペレーションが要約されている。一般に、ＶＣＤは、既存の／潜在的な干渉状態にＶＣＤのオペレーションを適応させる１組のステップを実行する。この後、ＶＣＤは、現在存在している干渉状態を処置する指定された共存スキームを実行する。本発明の一実施形態では、図６に要約されている１組のステップが再び開始され、適切なトリガイベントの通知−接続の途絶、使用不可状態のネットワークインターフェース、無線インターフェースのサービス品質の劣化／改善など−を受信した後実行される。
【００５８】
共存ドライバ３００により起動された後、ステップ６００で、ＶＣＤ、またはＶＣＤの代わりに動作しているエンティティは、ＶＣＤが関連付けられているアクティブなネットワークインターフェースに関する動作情報を媒体アクセス制御ドライバから取得する。このような情報としては、動作周波数、信号強度、パケットエラー率、平均リトライ回数、パケット損失率、雑音しきい値などがある。ステップ６００での情報収集は、図６に示されているステップの反復毎に−図６に示されているステップの他のステップが実行されている間であっても−何回でも繰り返せる。したがって、図６に示されている完全なシーケンスの反復間に取得されたデータを処理して（例えば、平均を取り）、無線ネットワークインターフェースの長期間動作環境を表さない瞬間的な異常な読み取り値を排除することができる。
【００５９】
ステップ６０２で、ＶＣＤは、上記の適応タスク４１０により無線インターフェースのチャネル毎に「輻輳／干渉（Ｃ／Ｉ）測定基準」を決定する。この測定基準は、本発明の一実施形態では、ステップ６００で取得された情報の重み付き平均を含む。これ以降、適応タスク４１０にも関連するステップ６０４では、Ｃ／Ｉ値は、ＶＣＤによってサービスが提供される１つまたは複数の無線ネットワークインターフェースへのトラフィックフローの１つまたは複数について使用可能な１つ（または複数）のチャネルを選択するために使用される。チャネル選択を実行し、潜在的に異なるネットワークインターフェースを選択する１組のステップ例について、図７を参照しつつ以下で説明する。
【００６０】
１組のチャネルを選択した後、ステップ６０６で、ＶＣＤは前述のＶＣＤ適応４１０、優先順位付け４２０、キューイング４３０、およびコマンド／制御４４０の、例えば、図４で指定されているタスクを実行する。適応タスク４１０は、チャネルに対するＣ／Ｉ値を定期的に判別し、ステップ６００、６０２、および６０４を再度実行して、新しい１組のチャネル（および場合によっては別の１組のネットワークインターフェース）を設定することを含む可能性がある。
【００６１】
図７を参照すると、チャネル選択を実行し、ＶＣＤによりサービスが提供される１組の無線ネットワークインターフェースに対する適切な共存スキームを確立する１組のステップの要約が示されている。最初に、ステップ７００で、ＶＣＤは、しきい値、およびチャネル選択スキームをステップ６０２で生成されたＣ／Ｉ測定基準値に適用し、データパケットの送信に使用されるそれぞれの無線ネットワークインターフェースに対し１つまたは複数のチャネルをレンダリングする。例えば、チャネルのＣ／Ｉ測定基準が許容可能しきい値よりも低い場合、ＶＣＤは、同じ無線技術のより適切なチャネルを探索し、そのチャネルに切り替える。複数のチャネルを使用する無線技術（例えば、Ｂｌｕｅｔｏｏｔｈまたは同じ無線技術を使用する２つネットワークインターフェース）の場合、ＶＣＤは、１組の許容可能なチャネルを決定する。その後、ステップ７０２で、１つまたは複数の無線インターフェース／技術に許容可能な干渉または輻輳が発生し、チャネル選択ステップ７００でＶＣＤにより管理される１組の無線インターフェースに対し十分な数のチャネルを確立できなかった場合、制御はステップ７０４に移る。
【００６２】
ステップ７０４で、許容可能な代替無線技術または同じ技術のネットワークプロバイダ（例えば、異なる周波数を使用する２つの異なるＷｉ−Ｆｉネットワークアクセスポイントプロバイダ）を見つけられると、代替技術／ネットワークへの切り替えを開始するステップが実行される。一般に、代替技術／ネットワークがステップ７０２で許容不可能とみなされた無線インターフェース／技術により提供される基本レベルの機能を持つという条件を満たすように、代替無線技術またはネットワークの選択が実行される。例えば、一般的に、あまり接続性の高くない、または安全性の高くないネットワークに切り替えることは望ましくない。１組の無線技術インターフェースは変更されている可能性があるため、新しい１組のＶＣＤがコンピューティングデバイス用に決定される。選択アルゴリズムを１組の動作環境パラメータに適用し、無線技術／ネットワークを選択するためのプラットフォーム例について、図８〜１０を参照しつつ以下で説明する。
【００６３】
ステップ７０２で、無線ネットワークインターフェースが許容可能な信号品質を示した場合、制御はステップ７０６に移る。ステップ７０６で、ＶＣＤは、最初に、２つの共存スキームタイプの周波数適応およびインターフェース切り替えの一般的選択を実行する。本発明の一実施形態では、周波数適応が使用可能であれば、制御はステップ７０８に移る。ステップ７０８で、ＶＣＤは共存スキームを共有する周波数範囲を指定するが、その場合、ＶＣＤにより表される１組の無線インターフェース／技術のうちの１つにより使用される周波数範囲／チャネルはその１組の無線インターフェース／技術のうちの他の無線インターフェース／技術により使用される周波数範囲／チャネルと重なり合わない。周波数範囲を選択する場合、信号漏れを防ぐため、小さい隔たりよりも大きい隔たりの方が好ましい。したがって、動作周波数範囲を慎重に選択することにより、その１組の無線技術による伝送は並列に実行できる。そのようなスキームのいくつかの実施例を以下に示す。
【００６４】
同じ場所に配置された技術適応の帯域選択
ステップ７０８で指定された１つの共存スキームでは、適応タスク４１０は、１つまたは複数の競合する技術により使用される１組のチャネル／周波数範囲を調整することにより干渉を排除しようとする。例えば、８０２．１１ｂ伝送とＢｌｕｅｔｏｏｔｈ伝送との競合を処理するＶＣＤ３２０の場合、適応タスク４１０では８０２．１１ｂトランシーバにより現在使用されているチャネルの周波数範囲と重なり合わないＢｌｕｅｔｏｏｔｈ送信機により使用される適応ホップセット（ａｄａｐｔｉｖｅ  ｈｏｐ  ｓｅｔ）に対し１組のチャネルを指定する。同様に、ＶＣＤ３２２は、８０２．１１ａトランシーバにより現在使用されているチャネルを回避するためにＵＷＢトランシーバにより使用される特定のチャネルを指定する。適応タスク４１０によりチャネル／周波数範囲が決定されると、コマンド／制御タスク４４０により発行されるネットワークインターフェースドライバ特有の命令を通じて決定が下される。
【００６５】
しかし、ステップ７０６で、周波数適応が使用可能でない場合、制御はステップ７１０に渡され、そこで、トランシーバ切り替え共存スキームがＶＣＤにより指定される。この場合、ＶＣＤは、無線ネットワークインターフェースドライバへ下るパケットの流れを調整し、データパケットがコンピューティングデバイスにより同じ周波数範囲内で同時に送信されないようにする。
【００６６】
同じ場所に配置された技術適応のトランシーバ切り替え
伝送チャネルの重なりが解決されていないため、競合する無線技術によりデータトラフィック伝送を同時に実行できない場合、ＶＣＤは、１組の無線ネットワークインターフェースに対して時分割動作モードを指定し、それにより、競合する同じ場所に配置されている無線インターフェースのそれぞれが相互排他的時間フレームでデータを送信する。
【００６７】
ＶＣＤは、優先順位付け４２０、キューイング４３０、およびコマンド／制御４４０の後述のタスクにより実行されるトラフィックシーケンシングスキームを、適応タスク４１０の一態様に従って構成する。トラフィックシーケンシングモードで動作している場合、競合する無線技術のデータトラフィックは、データパケットの送信のためにコンピューティングデバイスにより２つの競合チャネルが同時に使用されないようにＶＣＤにより調整される。例えば、Ｃ／Ｉ測定基準、送信優先度、長期の停止時間（ｓｔａｒｖａｔｉｏｎ  ｔｉｍｅ）、ドライバ遅延などに基づくトラフィック処理アルゴリズム（後述）は、特定のＶＣＤインスタンスによりサポートされている競合する無線技術で保留データパケットを送信する順序を確定する。
【００６８】
同じ場所に配置された技術適応のニーズベースのトランシーバ切り替え
競合する無線ネットワークインターフェース技術を処理するための上述のトランシーバ切り替えスキームの一変更形態では、適応タスク４１０は、特定の無線技術が特定の周波数帯域を使用する場合についての知識を利用して、（送信周波数の競合のため）いくつかの時点では並列に送信し、別のときには順次送信する共存スキームを実装する。特定の一実施例では、同じ場所に配置されたＢｌｕｅｔｏｏｔｈおよび８０２．１１ｂ無線ネットワークインターフェースに関連して、Ｂｌｕｅｔｏｏｔｈ１．０インターフェースは、７９のチャネル上でホップし、それぞれのチャネルは１ＭＨｚ幅である。したがって、これは、ＩＳＭ帯域２．４０２から２．４８３ＧＨｚ全体のほとんどをカバーする。８０２．１１ｂネットワークインターフェースでは、この帯域の２２ＭＨｚを使用する。したがって、Ｂｌｕｅｔｏｏｔｈ１．０インターフェースの２２のチャネルでは、８０２．１１ｂ信号伝送と競合する可能性が存在する。
【００６９】
適応タスク４１０により指定された以下の共存スキームでは、Ｂｌｕｅｔｏｏｔｈインターフェースが残り５７の重なり合わない周波数を使用している場合に同時性を利用する。上記の同時性スキームを実装しやすくするために、仮想共存ドライバ３２０側で、Ｂｌｕｅｔｏｏｔｈドライバ（クロックの機能およびマスタのＭＡＣアドレス）によって現在使用されているホッピングアルゴリズムを決定／採用する。同時８０２．１１ｂ伝送であるためパケットの送信を遅らせるかどうかを決定する場合、ＶＣＤは、次のホップが８０２．１１ｂ伝送と干渉するかどうかを判定する。干渉しなければ、Ｂｌｕｅｔｏｏｔｈおよび８０２．１１ｂ同時伝送が可能になる。
【００７０】
最後に、図７では、上述の共存スキームは単なる例示である。共存ドライバ３００アーキテクチャは、識別された競合する無線技術の特定の組合せに関連付けられたＶＣＤ仕様を通して実質的にどのようなタイプの共存スキームをも指定できることをサポートする非常に柔軟性の高い、制約のないアーキテクチャを提供する。例えば、本発明の一実施形態では、優先度でデータパケットの編成／キューイングを行うのではなく、アプリケーション、発生源、無線インターフェース、これらおよび／または優先度の組合せ（例えば、高優先度ＢＴは高優先度８０２．１１よりも好まれるが、低優先度８０２．１１は低優先度ＢＴよりも好まれる）などによりパケットを配置する。さらに、図７で示されているステップは例示である。２つの一般的なタイプの共存スキームタイプ（周波数適応およびインターフェース切り替え）のうちの一方のみがＶＣＤによりサポートされる他の実施形態では、ステップ７０６は実行される必要はない。
【００７１】
無線機データ伝送インターフェースの２つまたはそれ以上の干渉源の間の干渉を処理するための仮想共存ドライバの作成を容易にする共存ドライバの一般的なアーキテクチャについて説明したが、無線ネットワーク／インターフェース選択スキームに注目されたい。このようなスキームは、複数の異なるネットワークのうちの１つに接続できる１つまたは複数の無線ネットワークインターフェースを含むコンピューティングデバイスの動作中、様々な状況のうちのどれかで使用することができる。例えば、このような選択スキームは、初期接続を確立する際に使用することができるであろう。さらに、この選択スキームは、初期接続を確立した後、変更された動作パラメータに従って異なるネットワークへの新しい接続を確立するために使用される。上で広範にわたって取りあげた干渉を回避することは、後述の無線選択方法を呼び出す１つの理由となっているが、この選択方法は、特定の資源にアクセスするために２つまたはそれ以上の好適なネットワーク／インターフェースが利用可能な様々な状況に適用可能である。選択スキームおよびその結果の定義された基準は、潜在的に、ポリシー、ネットワークＳＳＩＤ、速度、輻輳、干渉、スループット、電池寿命、範囲、接続性、セキュリティ、１ビット当たりのコスト、およびアプリケーションスループット要件などのファクタを含む。これらのファクタのそれぞれについて、図９を参照しつつ以下で説明する。本明細書で説明されている無線技術選択スキーム例では、選択が干渉により必要とされたかどうかに関係なく、様々なファクタに基づいて無線技術を選択することを考慮する。
【００７２】
潜在的に複数の異なるネットワークと複数の異なるインターフェースを介して通信することができるコンピューティングデバイスに組み込んだ場合に提案された選択スキームの持つ利点を際だたせる４つのシナリオからなる一連のシナリオについて以下で説明する。これらのシナリオのそれぞれにおいて、上述の共存ドライバ（またはコンピューティングデバイス上で稼働しているオペレーティングシステムまたはアプリケーション内の他の好適なモジュール）は、ユーザの現在のニーズに最もよく合うインターフェース／無線技術を選択する。
【００７３】
シナリオ＃１
ユーザは会社に行く。そこで、ＯＵＴＬＯＯＫとＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲが動作している自分のラップトップを再開する。ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムは、混雑状態の８０２．１１ａインフラストラクチャネットワークおよび同じネットワークＳＳＩＤをアドバタイズしている利用の少ない８０２．１１ｂネットワークの付近にいることを判別する（つまり、両方とも、同じネットワークへの接続性を提供する）。オペレーティングシステムでは、利用が過剰である輻輳している８０２．１１ａアクセスポイントを避けて利用の少ない８０２．１１ｂを使用すれば現在実行中のアプリケーションのスループット要件がうまく満たされると判断する。そこで、オペレーティングシステムは、８０２．１１ａネットワークインターフェースではなく８０２．１１ｂネットワークインターフェースを使用する。
【００７４】
シナリオ＃２
ユーザは、多くの人々がラウンジの８０２．１１ａ無線ネットワークアクセスポイントを使用している満員の空港ラウンジ内でラップトップを開く。このラウンジには、８０２．１１ｂネットワークアクセスポイントもある。ネットワークアクセスポイントは両方とも、ラウンジにいる人々が自由に使用することができ、同じ種類の接続性を備えている。ユーザは、ＯＵＴＬＯＯＫとＩＥをラップトップマシン上で実行している。オペレーティングシステムでは、８０２．１１ａネットワーク／アクセスポイントが過負荷状態にあり、輻輳していることを感知する。また、Ｐａｔｒｉｃｋのラップトップの電池は電力レベルが下がってきている。電池電力の低下および８０２．１１ａアクセスポイントの輻輳状態に対して、オペレーティングシステムは、接続先として８０２．１１ｂ接続を選択する。しばらくしてから、空港ラウンジが空いてきて、８０２．１１ａネットワークアクセスポイントはもはや過負荷状態または輻輳状態でなくなる。さらに、ユーザがラップトップの電源プラグをコンセントに差し込んでいたため、電池も充電され、電力はもはや問題でなくなっている。オペレーティングシステムは、環境の変化したことを感知し、８０２．１１ａネットワークが最適なサービスを提供すると判断し、無線技術使用を８０２．１１ｂから８０２．１１ａに変更し、８０２．１１ａ接続が提供するより高い帯域幅を利用する。
【００７５】
シナリオ＃３
二人のラップトップユーザが、タクシーに乗って営業会議に向かっている途中である。彼らは、自分のラップトップを開き、Ｗｉｎｄｏｗｓ（登録商標）セッションを再開する。セッションを再開すると、Ｗｉ−Ｆｉネットワーク上でアドホックグループを形成し、プレゼンテーション資料を共有する。第１のユーザのマシン上のオペレーティングシステムは、２つのＧＰＲＳネットワークがインターネット接続できる状態にあり、一方は直接ラップトップ内のＧＰＲＳアダプタを通じて使用し、もう一方は第１のユーザのＢｌｕｅｔｏｏｔｈ電話を通じて使用することを感知する。オペレーティングシステムは、Ｂｌｕｅｔｏｏｔｈ電話を経由したＧＰＲＳネットワークを選択するが、それは第１のユーザのマシン上のポリシーの方が優先するからである。しかし、使用時に、オペレーティングシステムは、電話へのＢｌｕｅｔｏｏｔｈ接続に、Ｗｉ−Ｆｉアドホックネットワークからの干渉が生じていることを感知する。したがって、オペレーティングシステムは、Ｂｌｕｅｔｏｏｔｈ電話を経由したネットワークよりも優先して直接ＧＰＲＳネットワークに切り替える。
【００７６】
シナリオ＃４
ユーザは、ラップトップを地方の図書館に持ってきた。その図書館は、図書館のＷｅｂサイトを閲覧できるＷｉ−Ｆｉ接続を提供している。インターネットへの接続はできない。ユーザのラップトップは、ラップトップ内のＧＰＲＳカードを通じてＷｉ−ＦｉからＧＰＲＳネットワークに切り替わり、インターネットにアクセスする。
【００７７】
上記のシナリオのデモンストレーションを見るとわかるように、適切なネットワークインターフェース／ネットワーク組合せを選択することにより、潜在的に干渉を回避すること含む、様々なファクタを考慮することが可能である。本明細書で開示されている無線技術選択フレームワークでは、様々な無線ネットワーキング環境内で潜在的に動作するコンピューティングデバイスで堅牢で動的な自動化されたネットワークインターフェース／ネットワーク選択を容易にする包括的な多元的基準を定義することをサポートしている。
【００７８】
以下に提示されているインターフェース／ネットワーク選択フレームワーク例およびその変形形態は、取得された情報要素、ファクタ値、および選択基準に基づく無線技術選択フレームワークを含む。選択フレームワークは、コンピューティングデバイスから利用可能なインターフェース／ネットワーク組合せのうちの複数の組合せに関係する取得された情報要素（例えば、ネットワークステータス／能力）からファクタ値を派生させる。使用可能な組合せのそれぞれについて派生したファクタ値は、次に、インターフェース／ネットワーク選択基準に適用される。例えば、この基準は、重み付きファクタ値の論理／算術演算による組合せを含む。各インターフェース／ネットワークオプションの派生ファクタ値を選択基準に適用することで、無線ネットワーク通信に対するその結果得られたインターフェース／ネットワーク選択がレンダリングされる。一実施例では、ファクタ値がインターフェース／ネットワーク選択基準に適用され、それにより、携帯型（例えば、ノートブック）コンピューティングデバイスによってサポートされている２つのＷｉ−Ｆｉ技術、８０２．１１ａおよび８０２．１１ｂのいずれかを選択する。しかし、開示されている選択フレームワークは、例えば、Ｗｉ−Ｆｉ（例えば、８０２．１１ａ／ｂ／ｇ）とＧＰＲＳインターフェース／ネットワークとの間の選択を含む、様々な無線技術間の選択を行うのに適している。
【００７９】
選択フレームワークの実施形態は、多数の動的態様を組み込む。第１の態様では、特定の基準に適用されるファクタ値は時間の経過とともに変化する。例えば、無線アクセスポイントに関連付けられているトランシーバの信号強度は、時間とともに変化し、対象のインターフェース／ネットワークの組合せに割り当てられた望ましさのスコア全体に影響を及ぼす可能性がある。
【００８０】
第２の態様では、無線インターフェース／ネットワーク選択を左右する特定の基準は、感知された動作状態（例えば、電池電力の高低）に応じて動的に構成される。基準を動的に構成する第１の例では、基準選択規則／アルゴリズムは、確立／維持される無線接続の接続先であるインターフェース／ネットワークを選択するために１組の無線選択基準のうちのどの基準が使用されるのかを判定する。したがって、例えば、第１の基準は、コンピューティングデバイスが実質的に高いレベルの蓄積電池エネルギーで動作している場合に使用され、第２の基準は、電池の蓄積エネルギーが低い場合に使用される。基準を動的に構成する第２の実施例では、基準内の様々なファクタを原因とする重みは、感知された動作状態に基づいて変わる。従って、例えば、特定のアプリケーションについて、１組のファクタ重みが指定される。アプリケーションが起動されると、ファクタ重みは、基準シェル（ｃｒｉｔｅｒｉｏｎ  ｓｈｅｌｌ）にロードされる。その後、インターフェース／ネットワーク選択をレンダリングするために、ファクタ値はその結果得られるアプリケーション特有の基準に適用される。
【００８１】
ファクタ値は、本発明の一実施形態では、様々なタイプの情報要素から導かれる。図８を参照すると、１組の情報要素タイプの例が列挙されている。ネットワークＳＳＩＤ８００で、ネットワークを識別する。Ｎｃａｐ８０２は、アクセスポイントにより最後の「ｔ」時間単位で処理される接続の数を指定する。接続は、アクティブな関連付けの同義語である。コンピューティングデバイスは、接続を使用して通信する。Ｎｂａｐ８０４は、アクセスポイントにより最後の「ｔ」時間単位で処理されるバイト数を指定する。Ｐｅｒｒｐａｐ８０６は、アクセスポイントによる受信パケット内のパケットエラーの割合を最後の「ｔ」時間単位で指定する。Ｐｒｅｔｐｐａｐ８０８は、処理中のすべてのノードにわたるＡＰによる１パケット当たりの最後の「ｔ」秒での平均リトライ回数を指定する。ＣＰＵａｐ８１０パラメータは、アクセスポイントでのＣＰＵ利用度のレベルを指定する。ＴＰａｐ８１２は、アクセスポイントにより使用されている、ミリワット単位の送信電力を指定する。ＤＬＳｅｃ８１４は、無線ネットワーク上で提供される無線データリンクセキュリティタイプを指定する。
【００８２】
無線技術／ネットワーク選択基準により潜在的に使用される１組のパラメータは、ネットワークにより接続が潜在的に確立されるがその際に使用される無線ネットワークインターフェースカードに関連付けられている情報要素を含む。ＳＳａｐ８１６では、アクセスポイントから見える信号強度を指定する。ＳＳｓｔａ８１８では、アクセスポイントから見える信号強度を指定する。Ｐｅｒｒｐｓｔａ８２０は、ネットワークインターフェースカードにより受信されたパケット内のパケットのエラーの割合を指定する。ＴＰｓｔａ８２２では、ネットワークインターフェースカードにより使用される伝送電力を指定する。Ｐｒｅｔｐｐｓｔａ８２４の値で、最後の「ｔ」秒間にネットワークインターフェースカードから見られる１パケット当たりの平均リトライ回数を指定する。パラメータの上記の説明では、値「ｔ」は秒単位で指定される期間単位である。
【００８３】
潜在的に無線技術／ネットワークの組合せ選択プロシージャに寄与する１組のパラメータ値例を説明したが、続く説明では、無線技術選択プロシージャによりサポートされる選択基準に関するさらに詳細を示す。予備的事項として、添え字ａおよびｂは、上記のパラメータ頭字語に付加され、それによりそれぞれ、８０２．１１ａまたは８０２．１１ｂを指定する。
【００８４】
以下に提示される１組の無線基準について説明する前に、１組の用語／省略記号を導入／定義する。
【００８５】
無線基準ファクタ（ＷＣ）−コンピューティングデバイス／利用者局（ＳＴＡ）、アクセスポイント（ＡＰ）、または複数のＳＴＡおよびＡＰにより形成されるネットワークのパラメータまたは属性。このパラメータは、例えば、８０２．１１ｂと８０２．１１ａとの選択のためデータポイントとして使用される。無線基準ファクタは、クリティカル、オーバーライド、または非オーバーライドである。クリティカル基準ファクタは、常に、他のすべてのファクタをオーバーライドしている。オーバーライド基準ファクタは、クリティカルな場合もあればクリティカルでない場合もある。
【００８６】
オーバーライド基準ファクタ（ＯＷＣ）−これは、すべての重なり合わない基準ファクタをオーバーライドする基準ファクタである。複数のオーバーライド基準ファクタがありうる。２つまたはそれ以上の競合するオーバーライド基準ファクタが存在する場合、高い優先度基準ファクタにより選択が制御される。どの２つのオーバーライド基準ファクタも、同じ優先度を持たない。
【００８７】
非オーバーライド基準ファクタ（ＮＯＷＣ）−これは、すべてのクリティカルでも、オーバーライドでもない基準ファクタである。
【００８８】
クリティカル基準ファクタ（ＣＷＣ）−これは、決定プロセスに渡されるクリティカル基準ファクタであり、結果として、無線インターフェース／ネットワーク選択が行われる。無線技術に、この基準ファクタに対する許容可能な値がない場合、これは考慮対象から外される。定義によるクリティカル基準ファクタは、最も好ましいオーバーライド基準ファクタである。クリティカル基準ファクタはただ１つありうる。
【００８９】
無線基準ファクタ重み（ＷＣＷ）−無線基準ファクタ重みは、基準ファクタに割り当てられる相対的優先度／重要度を表す。重みは相対的数値である。重みは、例えば、ユーザインターフェースを通じてユーザにより与えられるか、またはＳＴＡを管理する部門によりＳＴＡ（コンピューティングデバイス）に対しプリセットされている。一実施例では、ＷＣＷは、１〜１０の範囲にあり、１が最低、１０が最高である。基準ファクタに対するＷＣＷは、他の基準ファクタに割り当てられているＷＣＷ値に相対的に確定される。
【００９０】
無線基準ファクタ値（ＷＣＶ）−基準ファクタの観察された値。例えば、これは、１〜１０の範囲の数値であり、１が最低、１０が最高である。低い値または高い値は、基準ファクタに基づいて良いまたは悪いを意味することができる。例えば、「輻輳」に対する高い値は悪い（例えば、複数の重み付きファクタおよび値を含む基準を定めるときに負のファクタ重みが使用される）が、「スループット」ファクタに対する高い値は良いことを示す。
【００９１】
無線基準例の詳細な説明
本明細書で説明されている無線技術選択フレームワークに従って無線技術選択基準を定義するために使用される１組のパラメータおよび用語を説明したが、ここでは、無線技術／基準選択に影響を与える代表的なファクタおよび総合的品質スコア（図９に列挙されている）を、８０２．１１ａ無線技術と８０２．１１ｂ無線技術の選択に関して説明する。以下で説明されているファクタは、図８を参照しつつ上で説明した情報要素から導かれる。
【００９２】
ポリシー９００は、複数の技術／インターフェース／ネットワークの決定でユーザ／クライアントが使用できる１組の基準を指定する。その１組の基準のうちの１つの基準により、選択を行うための１つまたは複数のファクタおよび関連する重みを指定する。例えば、ポリシー９００は、クライアント側プロビジョニングの一部としてダウンロードされる。ポリシープロビジョニングがない場合、既定のポリシーが使用される。
【００９３】
ネットワークＳＳＩＤ９０２では、ネットワーク識別を指定する。局側では、アクセスポイントにより定期的に送信されるビーコンから、またはＳＴＡからのプローブ要求に対して無線ＡＰにより送信されるプローブ応答からネットワークのＳＳＩＤを取得する。ＳＳＩＤにより、ネットワークが識別される。単純なインターフェース／ネットワーク選択基準では、ＳＴＡが８０２．１１ａおよび８０２．１１ｂチャネル上で同じＳＳＩＤを受信した場合、他はすべて等しければ、８０２．１１ａチャネルが選択される。
【００９４】
スピード（ＳＰＤ）９０４は、特定の無線技術により提供される理論上の最高速度を指定する。スピード９０４のみが考慮される単純な基準では、８０２．１１ａ技術と８０２．１１ｂ技術のいずれかを選択する場合、現在の８０２．１１ａユーザが多すぎて８０２．１１ｂ技術による個々のスループットの方が高いとしても、８０２．１１ｂよりも８０２．１１ａが選択される。しかし、本発明では、そのような目先の意思決定を回避する複数のファクタを伴う著しく複雑／堅牢な意思決定を考慮／サポートする。
【００９５】
輻輳（ＣＮＧ）９０６では、注目している特定の無線技術に関する輻輳値を指定する。特定の無線技術に対するＮｃａｐ８０２またはＮｂａｐ８０４が大きく、Ｐｒｅｔｐｐｓｔａ８２４およびＰｒｅｔｐｐａｐ８０８の両方が大きい場合、特定の無線技術／ネットワークの組合せに比較的高いレベルの輻輳が存在する可能性がある。つまり、特定の無線技術／ネットワークに関連するアクセスポイントの負荷が重い、言い換えれば多数の接続を取り扱っている、または既存の接続からの大量のトラフィックを処理しており、ＡＰおよびＳＴＡでのパケットのリトライ回数が多い場合、ネットワークが輻輳している可能性が非常に高い。同じアクセスポイントで８０２．１１ｂおよび８０２．１１ａサービスを提供している場合、８０２．１１ａおよび８０２．１１ｂは両方とも、負荷の影響を等しく受ける可能性がある。この場合、Ｐｒｅｔｐｐｓｔａ８２４およびＰｒｅｔｐｐａｐ８０８は、ネットワークの輻輳状態を判定する。例えば、ＷＣＷ値１は最低輻輳状態を示し、５は通常（中）、１０は最高（ネットワークにストレスを受けている）レベルの輻輳を示す。
【００９６】
干渉（ＩＮＴＦ）９０８は、干渉のレベルを指定する。Ｎｃａｐ８０２およびＮｂａｐ８０４が両方とも小さいが、Ｐｒｅｔｐｐｓｔａ８２４およびＰｒｅｔｐｐａｐ８０８の一方または両方が高い場合、高いレベルの干渉が存在する可能性がある。つまり、アクセスポイントの負荷があまり重くない、言い換えれば接続数およびアクセスポイントにより処理されるトラフィックのレベルが低から中の範囲であるが、アクセスポイントとＳＴＡの両方に、通常よりも多いパケットエラー数およびリトライ回数が存在する場合、他の発生源からの干渉がネットワーク上に存在している可能性がある。そのような干渉の発生源は、潜在的に、コードレス電話、マイクロ波、および考察対象のＷｉ−Ｆｉ技術と同じ帯域を使用するその他のデバイスを含む。ＷＣＷ値１は最低干渉レベルを示し、５は通常（中）、１０は最高（過剰な干渉）を示す。
【００９７】
スループット（ＴＨＲＰＴ）９１０は、特定の無線技術のスループットを指定する。ＳＳａｐおよびＳＳｓｔａ（ＡＰおよびＳＴＡの信号強度）が両方とも低い場合、データスループットは、言わずとも低い。両方とも高い場合、データスループットは高い。８０２．１１ａのスループットが８０２．１１ｂのスループットよりも低い場合、スループットファクタ９１０は、８０２．１１ｂ無線技術に有利に働く。本発明の一実施例では、ＳＴＡ上で実行されている特定のアプリケーションの要件に基づいて重み（ＷＣＷ）がスループット９１０パラメータに与えられる。例えば、オーディオ／ビデオストリーミングアプリケーションが実行中であれば、通常よりも高い重みが使用されるであろう。ファクタ値（ＷＣＶ）１だと、低いスループット、５だと通常のスループット、１０だと高いスループットを示す。例えば、理想的な条件の下では、８０２．１１ｂおよび８０２．１１ａ技術を比較すると、８０２．１１ｂ技術（理論上最高速は１１Ｍｂｐｓに達しうる）には値５が与えられ、８０２．１１ａ（理論上最高速度は２５〜３０ｋｂｐｓ程度）には値８が与えられ、あるいはさらには、理論上最高速度が５０ｋｂｐｓ程度のターボモードに対しては値１０が与えられる。
【００９８】
電池寿命（ＢＬ）９１２は、ＳＴＡに対し使用可能な電池充電を指定する。例えば、無線ネットワークインターフェースからの電力流出を比較した場合、同じ仕事量に対して８０２．１１ａのＮＩＣが消費する電力は８０２．１１ｂのＮＩＣよりも多い。したがって、消費電力の大きいＮＩＣについては低い電池電力に対しより大きな（負の）重みを割り当てる。さらに、ＳＴＡの電池充電レベルが低い場合、電池寿命９１２ファクタに与えられた重み（ＷＣＷ）は、技術に関係なく、上げられる−このファクタの高い重要度を反映する。電池寿命９１２に割り当てられた値（ＷＣＶ）は、ＵＷＢ、ＢＴ、８０２．１１ｂ、８０２．１１ａの各無線技術にわたって最高（絶対値が最も小さい負数）から最低（絶対値が最も大きい負数）までである。
【００９９】
範囲（ＲＮＧ）９１４では、各技術の相対的距離を指定する。８０２．１１ｂの範囲は、１５０〜３００フィート（４５．７２ｍ〜９１．４４ｍ）であり、８０２．１１ａの範囲は、８０２．１１ｂの範囲のおおよそ１／４である。その結果、移動中のＳＴＡは、８０２．１１ａ無線技術が使用されていればより多くのハンドオフが行われる。そこで、ハンドオフは待ち時間、ジッタ、およびパケット損失に影響を及ぼす。高速ハンドオフスキームが採用されており、可能な限り継ぎ目なくハンドオフが行われる。しかし、ボイスオーバーＩＰおよびＡ／Ｖストリーミングアプリケーションの待ち時間、ジッタ、およびパケット損失に対する制限が低いため、ユーザが最適な状態で使用できるようにハンドオフを最小に抑える必要がある。局で実行中のアプリケーションの要件およびコンピューティングデバイス（ＳＴＡ）自体のモビリティの種類に基づいて適切な重み（ＷＣＷ）が範囲９１４ファクタに与えられる。例えば、無線非モバイルデスクトップマシンでは、範囲９１４ファクタは、重みが付けられているとしても最小の重みを持つ。他方、ＶｏＩＰまたはＡ／Ｖストリーミングアプリケーションを現在実行しているハンドヘルド（高モバイルＳＴＡ）コンピューティングデバイスについては、範囲９１４に対しより高い重みが与えられる。
【０１００】
接続性（ＣＯＮ）９１６では、無線インターフェースを介する資源への接続性の尺度を指定する。ＳＴＡが、すでに保存されている経験から、特定の場所で特定の８０２．１１ａおよび８０２．１１ｂネットワークにより提供される接続の種類を認識する場合、これは、より適切な接続を提供するネットワークを選択する（または高いファクタ値をそれに適用する）ことができる。反対に何ら指標がない場合、同じＳＳＩＤをアドバタイズする８０２．１１ａおよび８０２．１１ｂなどの２つのＷｉ−Ｆｉ技術は類似の接続を提供する。局がアドホック通信または異なるＳＳＩＤへの接続のために８０２．１１ａのＮＩＣまたは８０２．１１ｂのＮＩＣをすでに使用している場合、接続先となるＳＳＩＤに対し同じＮＩＣを再利用することはできない。このような状況では、選択は明らかである。
【０１０１】
セキュリティ（ＳＥＣ）９１８では、特定の技術／ネットワークの組合せを介して利用可能なセキュリティの相対的レベルを指定する。ＳＴＡは、ビーコン、およびデータリンクおよびネットワーク層で提供されるセキュリティメカニズムについて以下の情報プライバシービットをつなぎ合わせることにより無線ネットワークで提供されるセキュリティを決定することができる。８０２．１１ｂネットワークが提供するセキュリティがＳＴＡ上のポリシーに適合しているが、８０２．１１ａが提供するセキュリティはそうでない場合、８０２．１１ｂネットワークが選択される。他の場合、セキュリティ９１８はファクタであるが、選択基準におけるオーバーライドファクタではない。選択基準の特定の例では、８０２．１１ａおよび８０２．１１ｂの両方により提供されるセキュリティがクライアント上のポリシーに適合している場合、より好ましいセキュリティメカニズムを採用する特定のＷｉ−Ｆｉ技術が好ましい。
【０１０２】
１ビット当たりコスト（ＣＳＴ）９２０では、特定のアクセスポイント／リンクを使用するためのコストを指定する。ＣＳＴ９２０は、例えば、アクセスポイントにより、または代替として、エッジサーバ（アクセスポイントの背後にあるクリティカルデータパスに居座るアクセスサーバ）またはプロビジョニングサーバにより使用されるより高い層のプロトコルにより送信されるビーコンで示すことができる。例示の基準では、ＣＳＴ９２０は、重要なファクタである（つまり、大きな重みを持つものとして指定されているか、または代替として、オーバーライドまたはクリティカルな論理指定を受け取る）。したがって、８０２．１１ａに対するＣＳＴが許容不可能であり、８０２．１１ｂに対するＣＳＴが許容可能な値であり、他のどのようなファクタもこの決定をオーバーライドしない場合、８０２．１１ｂインターフェースが選択される。
【０１０３】
アプリケーションスループット要件ＡＰＰＴＨＲＰＴ９２２では、選択された無線技術を使用するデバイス（ＳＴＡ）上でアプリケーションが適切に動作するように、コンピューティングデバイス上の１つまたは複数の特定のアクティブなアプリケーションに必要なスループットを指定する。ＳＴＡは、アプリケーションにより設定されたサービス品質属性に基づいてそこで実行中のアプリケーションのスループット要件を決定する。例えば、省エネ動作モードでは、基準により、アプリケーションのスループット要件が８０２．１１ｂにより満たされることができ、このファクタをオーバーライドする、インスタンスに対するＣＳＴなどの他のファクタがない場合、８０２．１１ｂ無線技術が選択される。
【０１０４】
クォリフィケーションナンバー（ＱＮ）９２４は、無線技術／ネットワークの組合せの品質の総合的尺度である。ＱＮ＝ΣＷＣＷ［ｉ］＊ＷＣＶ［ｉ］、つまり、異なる基準の重み付きＷＣＶの合計である。ＱＮ９２４の値は、例えば、上記のファクタのどれか、およびそれぞれについて対応する重み付け（潜在的オーバーライドファクタを含む）を指定する選択アルゴリズムを使用して決定される。各使用可能な無線技術／ネットワークの組合せのＱＮ９２４の値が決定された後、最高のＱＮを持つ技術が使用される。代替として、基準は、１組の限定された組合せが得られる１組の論理フィルタを備える。これ以降、ＱＮは、限定された組合せ毎に生成され、デバイスに対する無線通信を実行するための技術／インターフェース／ネットワークの組合せの最終選択を決定する。
【０１０５】
本発明の一実施形態では、コンピューティングデバイスがコンピューティングデバイスの新しいＱＮ値を生成する際に使用する周波数に制限が課される。ＱＮは、定期的に（構成可能な反復期間に応じて）、また媒体接続／切断、アクセスポイントに関するネットワークインターフェースカードから受信したデータの著しい変更、または特定のアプリケーションの起動などの著しいイベントが発生すると、決定される。図１１を参照しつつ以下でさらに詳しく説明するが、そのようなイベントが発生すると、選択論理が呼び出され、これにより潜在的に新しい情報要素データおよびその結果得られるファクタ値／重みに照らして以前の技術／インターフェース／ネットワーク組合せ選択を再評価する。
【０１０６】
論理フィルタ（しきい値要件を設定する）に少なくとも一部は依存する基準に関して、ポリシーでは潜在的に、特定の無線技術を選択するためのオーバーライド基本条件として１つまたは複数のファクタを組み込んだ特定の基準を指定することに留意されたい。このような場合、２つまたはそれ以上のオーバーライドファクタ間の競合がある場合に低い優先度の競合するファクタが考慮対象から外されるため、特定の技術／インターフェース／ネットワークの組合せを選択することが簡単になる。また、２つの無線技術のうちの一方がクリティカルファクタに対し許容可能な値を設定するが、他方はそうでない場合、ＣＷＣに対する値が許容可能でない技術は、考慮の対象から外される。例えば、ＳＥＣ９１８がクリティカルファクタである場合、一方の無線技術のＳＥＣ値は許容可能であるが、他方のＳＥＣ値はそうでない場合、選択は明らかである。対象外となった無線技術に割り当てられるＱＮは０である。
【０１０７】
２つまたはそれ以上のオーバーライドファクタがあり、しかも競合している場合、例えばＳＴＡ上でプリセットされているポリシーにより設定されているようなより重要とみなされる方が使用される。さらに、ポリシー指定は十分に詳しく規定しており、オーバーライドファクタに対する最小または最大許容可能値がインターフェースによって満たされていない場合に、ＳＴＡは、ユーザに警告を発し、ユーザに入力を促し、許容不可能な現在の状況に照らして手動選択を受け付ける。
【０１０８】
上記の選択フレームワークを組み込んだ例示されているシステムは、システムが後でユーザ入力を通じて解決される曖昧な状況についてユーザ選択の履歴を保持し、ポリシーにより許される場合には、過去のユーザ選択のこの履歴を使用して今後発生する類似の曖昧な状況を解決することを選択するという点で動的学習機能も採用することができることに留意されたい。
【０１０９】
情報要素および選択基準は、様々な発生源から取得される。図１０を参照すると、１組の情報要素発生源が示されている。無線技術基準により使用される識別されたファクタの一部の値を決定するために、コンピューティングデバイスは、例えば、無線ネットワークインターフェースカード１０００、ネットワークインターフェースの接続先である無線アクセスポイント１０１０、ピアマシン１０２０、プロビジョニングエージェント１０３０、ヒューリスティックエンジン１０４０、ロケーションプロバイダ１０５０、ネイティブＷｉ−Ｆｉ１０６０、無線ネットワークインターフェースベンダドライバ１０７０、より高レベルの（例えば、ＴＣＰ／ＩＰ）ネットワークドライバ１０８０、およびすでに記録されているユーザ経験の履歴１０９０を含む、様々な情報発生源から情報要素を取得する。上で述べた選択プロセスを駆動するこの情報および基準の発生源のリストは説明を目的としたものである。また、本発明では、例えば、管理ツールを使用することでアドミニストレータにより、および／またはアプリケーションにより設定されたデータセットの優先度などの大域的情報を使用することを企図している。
【０１１０】
以下では、本発明を採用するコンピューティングデバイスの技術／インターフェース／ネットワーク選択プロセスを駆動する情報／基準の上述の発生源により提供される情報のタイプを説明する。無線ＮＩＣ１０００は、信号強度、ビット送受信エラーなどを含む、ハードウェアのオペレーションに関する様々な統計値を保持する。無線アクセスポイント１０１０は、現在の能力および輻輳統計値を提供し、ユーザに対し、現在／追加作業負荷を処理する現在の能力を知らせる。同じ近い距離のところに配置されているピアマシン１０２０は、コンピューティングデバイスにより保持されている情報を伝達する潜在的情報源である。したがって、ピアマシン１０２０がかなりの期間にわたって関連情報を取得しており、選択アルゴリズムを実行するコンピューティングデバイスが比較的新しい場合、ピアマシン１０２０は、コンピューティングデバイスにより形成することができる簡便な接続を介して情報を伝達する。無線プロバイダと関連するプロビジョニングエージェント１０３０は、情報と基準（および重み）の両方に対する潜在的情報源である。このような場合、コンピューティングデバイスは、プロビジョニングエージェントへの接続を−潜在的に選択基準の助けを借りずに−確立する。この後、プロビジョニングサービスで、プロビジョニングエージェント１０３０のＵＲＬを指定する。プロビジョニングエージェント１０３０は、コンピューティングデバイス（およびユーザ）と対話して、例えば共存ドライバ３００により実装されている１つまたは複数の選択基準を含むポリシーをダウンロードする。ロケーションプロバイダ１０５０は、選択基準を実行するコンピューティングデバイスのロケール情報を識別する。このようなロケール情報は、潜在的に、ディレクトリ内の潜在的資源またはコンピューティングデバイスによる技術／インターフェース／ネットワーク選択を推進する他のロケーション依存情報を見つけるために使用される。ネイティブのＷｉ−Ｆｉ１０６０は、コンピューティングデバイスに現在インストールされている８０２．１１インターフェースのオペレーションから蓄積された統計情報を供給する。ベンダドライバ１０７０は、ネイティブのＷｉ−Ｆｉ１０６０に類似の情報を提供するが、１つのパケットを送信する最後の「ｔ」秒以内の平均リトライ回数または受信パケット内のパケットエラーの割合などの特定のドライバに関連するオペレーションに関する統計値に合わせてカスタマイズされる。ＴＣＰ／ＩＰドライバ１０８０は、接続が特定のネットワークインターフェース上で資源から利用可能かどうかなどのネットワークメッセージのより高いレベルの処理に関連する統計値を提供する。
【０１１１】
ユーザ経験の履歴データ１０９０は、ユーザによって行われた前の選択を含む。このような情報は、さらに、ユーザが前の選択を行ったときに存在していた特定のファクタ（または基本情報要素）値の記録も含むことができる。したがって、ユーザ経験の履歴データ１０９０は、特定の状況で一致したユーザ応答に基づき選択プロセスを自動化しようとする予測モデリングをサポートする。例えば、特定のアプリケーションを実行する際にユーザが一貫して８０２．１１ａ技術を選択した場合、その情報は、アプリケーションの実行時にその技術を予測する（またはその技術により大きな重みを与える）ために潜在的に使用される。
【０１１２】
ヒューリスティックエンジン１０４０は、他の情報源により提供される入力データから派生情報要素を生成する選択フレームワークに組み込まれているモジュールの拡張可能クラスを備える。ヒューリスティックエンジン１０４０により生成される派生情報の例として、輻輳および干渉レベルの決定がある。
【０１１３】
本発明の一実施形態では、共存ドライバ３００、または代替として、接続選択サービスを提供する別の意思決定モジュールは、複数の情報源から情報を取得し、選択を生成する。さらに、本発明のいくつかの実施例では、情報要素データを取得することと選択プロシージャを実行することは、イベント駆動型であることに留意されたい。このようなイベントは、共存ドライバ３００（または他の何らかの通知サービス）により監視されているステータス変更に応答して生成される。他の場合、イベントは、例えば、オペレーティングシステム内のサービスプロバイダをスケジュールする「タイマ駆動型」タスクを使用して、定期的に呼び出される登録されているタスクにより駆動される。さらに、選択基準内の様々なファクタに割り当てられた重みは、イベント（例えば、アプリケーションのアンインストールまたは使用不可、電池電力の低下、使用可能なネットワークの個数またはタイプの変更、輻輳／干渉パラメータ値の変更、ネットワークの接続の変更など）に応答して割り当てし直される。再割り当ての完了後、イベントは登録され、それによって、１組の現在利用可能なネットワークインターフェース／ネットワークのそれぞれへの基準の再適用を要求する。
【０１１４】
図１１を参照すると、上で説明されている無線技術／インターフェース／ネットワーク選択プラットフォームを組み込んだコンピューティングデバイスにより実行される１組のステップの要約が示されている。上ですでに述べたように、図１１のステップは、一般に、連続して実行されない。むしろ、これらは、イベント（スケジュールされた更新タスク、クリティカルファクタのステータスの変更、ファクタ重み修正など）の発生後に呼び出される。
【０１１５】
最初に、ステップ１１００で、コンピューティングデバイスは、ファクタ値を生成するための基盤を形成する情報要素を取得する。単一ステップとして示されているが、本発明の一実施形態では、ステップ１１００は、様々な情報要素源のオペレーションを通じて多くの時点で実行される。
【０１１６】
ステップ１１０２で、複数の利用可能な選択基準のうちの１つまたは複数が選択される。本発明の一実施形態では、選択はユーザインターフェースにより駆動される。しかし、他の実施形態では、選択ステップ１１０２は、少なくとも一部は、適切な基準（基準指定を完了するファクタ重みを含む）を選択するための特定の感知された情報に応答する基準選択論理により実行される。
【０１１７】
ステップ１１０４で、ステップ１１００で取得された情報要素から求められたファクタ値は、それぞれの利用可能な技術／インターフェース／ネットワークの組合せに対しステップ１１０２で選択された１つまたは複数の基準に適用される。本発明の一実施形態では、ステップ１１０４は中断され、接続のため特定の技術／インターフェース／ネットワークの組合せを選択する意思決定プロセスを完了することを妨げる論理エラーを解決するダイアログボックスが生成される。例えば、このようなエラーは、競合する選択が行われる適用される１つの（または複数の）基準内に２つのファクタが存在することである。取得された情報を１つ／複数の基準（および潜在的にさらにユーザ入力）に適用した結果に基づき、利用可能な技術／インターフェース／ネットワークの組合せのうちの１つまたは複数が指定される。
【０１１８】
本発明の一実施形態では、ステップ１１０６で、ユーザは基準に基づく選択の妥当性を確認するよう要求される。例えば、このような通知は、１つまたは複数の提案された選択を含むダイアログボックスの形態で与えられる。複数の提案が与えられた場合、ステップ１１０４の結果に応じて、選択が順位付けされる。本発明の代替実施形態では、ステップ１１０６はバイパスされる。その場合、選択は、ユーザによる妥当性確認なしで自動的に実行される。
【０１１９】
これ以降、ステップ１１０８で、選択された技術／インターフェース／ネットワーク選択がコンピューティングデバイス（現在の接続を含まない）により現在使用されている選択と異なる場合、制御はステップ１１１０に移り、そこで、新しい接続が前の選択に基づいて確立される。ステップ１１０８の実装は、様々な方法で行うことができ、いかなる形でも本発明を限定するものとしてみなすべきではない。しかし、利用可能な範囲で、このような接続確立オペレーションは、ユーザの活動が最適な形で行われるように最大限自動化される。制御は「終了」に移る。しかし、既存の接続がステップ１１０６で妥当性が確認された接続と同じであれば、制御はステップ１１０８から「終了」に移る（新しい接続を確立する必要はない）。
【０１２０】
８０２．１１ａ／ｂ無線技術の選択のための例示の基準
以下の擬似コードでは、８０２．１１ｂおよび８０２．１１ａ無線技術の選択を行うための基準例を規定している。この例は、上述の情報要素およびファクタを使用して無線技術／ネットワーク選択基準を実装する方法を示している。基準では、ＳＥＣ（セキュリティ）をＣＷＣ（クリティカルな無線基準／ファクタ）としてみなすことを除き、ファクタのオーバーライド処理を考慮しない。しかし、オーバーライドファクタを組み込むように例を修正することは、代替基準において考慮される。さらに、本発明では、例えば、８０２．１１ａ無線技術およびＵＷＢ無線技術のいずれかを選択することを含む様々な技術のうちから選択する基準を指定すること、およびそれらの技術を採用する対応するネットワークを考慮する。
【０１２１】
擬似コードで使用されるいくつかの頭字語を以下に示す。
【０１２２】
【表２−１】
2005328520.tif 000004
【０１２３】
【表２−２】
2005328520.tif 000005
【０１２４】
【表２−３】
2005328520.tif 000006
【０１２５】
１組のファクタに基づく無線ネットワーク技術選択のための基準例について説明したが、ここでは、例に基づく観察結果を掲載する。ＳＴＡ上の高度な無線ユーザインターフェースオプションを使用すると、ユーザは、上述のファクタに対する重み／優先選択を指定するとともに、ファクタのうちの１つまたは複数をオーバーライド基準／ファクタとして−１つのファクタをクリティカルとして−指定することができる。２つまたはそれ以上のファクタがオーバーライドとマークされている場合、その重みは異なっていなければならない。ユーザは、他のオプションを通じて、クリティカルファクタの許容可能な制限条件が満たされていない場合にＳＴＡがユーザに対して確認を求めるべきかどうかを指示する。ポリシー９００は、局のユーザインターフェースを使用するとともに、グループポリシーを通じて、設定可能である。ファクタの関連性／重みは仕事、家庭、および公共用のネットワークなどコンピューティングデバイスの環境／ロケーションに基づいて変わる可能性があるため、ポリシーは環境／ロケーションによって決まるべきである。例えば、１ビット当たりコスト９２０のファクタ値は、仕事環境については重み０を割り当てられるが、公共アクセスポイントについてはそれよりも高い重みが割り当てられる。同様に、ＳＥＣ９０２のファクタは、ロケーションに基づき異なる重要度で処理される。ポリシーがないか、または手作業でポリシーを構成するユーザがいない場合、既定のポリシーにより、無線ネットワーク技術／ネットワーク選択が推し進められる。
【０１２６】
技術の切り替えは、ユーザに対し透過的である。したがって、８０２．１１ｂがＱＮ９２４に対する値に基づき好ましい接続技術として選択され、後で、ＱＮ９２４の値の変化により示されるように、８０２．１１ａを使用すべきである（またはその逆をすべきである）と判定された場合、コンピューティングデバイスは、継ぎ目なく、選択された技術に移行する。２つの無線技術が同じサブネットへの接続を提供するかどうかに関係なく、一方の無線技術から他方の無線技術への移行プロセスは、コンピューティングデバイス上で実行されているアプリケーションに対して透過的である。それらの無線技術によりコンピューティングデバイスが異なるサブネットに接続された場合、オペレーティングシステム内のモビリティサポートは、もし存在すれば、一方のサブネットから他方のサブネットへの移行がアプリケーションに対して透過的である状態を保つ。一実施例では、異なるサブネットをオンザフライで切り替えるかどうかは、無線技術が異なるサブネットに接続することが履歴データから知られていると仮定すると、ポリシーの一部である。
【０１２７】
当業者であれば、無線ネットワークの１つまたは複数のアクセスモードの構成／選択を容易にする新しいおよび有用な方法およびフレームワークが本明細書で説明されたことを理解するであろう。より具体的には、本明細書で説明されている無線ネットワークインターフェースの選択および共存ドライバのアーキテクチャは、特定のネットワークインターフェースおよび無線技術に関連する１組のネットワークインターフェースドライバにより提供されるステータス情報に基づき特定のネットワークアクセスモードの自動選択を容易にする。さらに、アプリケーションが呼び出される場合、または上述のように、検出された干渉を回避するために他のインターフェース／ネットワークを選択する場合を含む様々な状況において潜在的に呼び出される基準駆動インターフェース／ネットワーク選択フレームワークが説明されている。
【０１２８】
本発明の原理が適用可能な様々な考えられるコンピューティング環境、および無線データ通信を企図した場合に生じる干渉およびその他の共存問題に対処するため自動化されたネットワークアクセス構成を実行する柔軟性を念頭に置くと、本明細書で説明されている実施形態は、例示を目的としており、本発明の範囲を限定するものとして解釈すべきではないことは理解されるであろう。本発明が適用される分野の当業者であれば、例示されている実施形態は、本発明の精神から逸脱することなく、配置および詳細に関して修正可能であることを理解するであろう。したがって、本発明では、本明細書で説明されているように、請求項および相当項目の範囲に収まりうるようなすべての実施形態を企図している。
【図面の簡単な説明】
【０１２９】
【図１】本発明の一実施形態を実行するコンピューティングデバイスのアーキテクチャ例を示す簡略化された概略図である。
【図２】複数の競合する／干渉する無線技術を含む複数のネットワーク通信媒体配置の例の図である。
【図３】本発明を採用する共存ドライバを含むシステム内のコンポーネントを識別する概略図である。
【図４】無線インターフェースの信号干渉源を処理するための共存スキームを実行する仮想共存ドライバ（ｖｉｒｔｕａｌ  ｃｏｅｘｉｓｔｅｎｃｅ  ｄｒｉｖｅｒｓ）内に具現化された各種タスクの例を要約した図である。
【図５】仮想共存ドライバ群を指定し、アクティベートするため共存ドライバにより実行される１組のステップを要約した図である。
【図６】起動後実行される仮想共存ドライバにより実行される１組のステップを要約した図である。
【図７】潜在的無線干渉源に対処する共存スキームを確定するため仮想共存ドライバにより実行される１組のステップを要約した図である。
【図８】無線ネットワーク技術選択基準により潜在的に使用される情報要素の集合を示す図である。
【図９】無線ネットワーク技術選択基準により使用されるファクタの集合を識別する図である。
【図１０】本発明の複数の実施例による無線情報および基準の発生源の集合を識別する図である。
【図１１】本発明の一実施例により無線技術／インターフェース／接続選択を実装するためコンピューティングデバイスにより実行される１組のステップを要約した図である。
【図１】
2005328520.tif 000007
【図２】
2005328520.tif 000008
【図３】
2005328520.tif 000009
【図４】
2005328520.tif 000010
【図５】
2005328520.tif 000011
【図６】
2005328520.tif 000012
【図７】
2005328520.tif 000013
【図８】
2005328520.tif 000014
【図９】
2005328520.tif 000015
【図１０】
2005328520.tif 000016
【図１１】
2005328520.tif 000017
【外国語明細書】
2005328520000001.pdf