ソフトウェア無線を介したマルチネットワークのシームレスローミング
一つ以上のSDR、あるいは幾つかの従来型無線通信デバイスに影響を与える非類似無線ネットワーク間でシームレスにローミングする方法が提供される。その方法は、SDRが一つのトランスミッタ/レシーバしか備えていないか、あるいは複数のトランスミッタ/レシーバを備えているかに関わらず、代わりのネットワークが利用可能か判断することを含む。加えて、SDRが複数のトランスミッタ/レシーバを提供するか、あるいは複数の異なるSDRがモバイルコンピュータデバイスに利用可能な場合、方法は、他のネットワークが利用可能か判断するため、一式のSDRを一部利用しながらユーザはシームレスローミングの経験をより最適にすることができる。また、方法は、状態変化に従った様々な変調アルゴリズムとSDRのセッティングもしくはSDR一式全体との間の変遷を管理することをさらに含む。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、米国仮出願第60/604,045号(発明者:ボグドン他、出願日:2004年8月25日)の優先権を主張し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0002】
本出願は、米国特許出願第09/652,009号(出願日:2000年8月31日、タイトル“Method and Apparatus for Routing Data Over Multiple wireless Netowork”)の部分継続出願であり、また、米国特許出願第08/456,860号(米国特許第5,717,737号、タイトル:“Apparatus and Method for Transparent Wireless Communication Between a Remote Device and a Host System”の部分継続出願である米国特許出願第08/932,532号(出願日:1997年9月17日、米国特許第6,418,324号、タイトル“Appartus and Method for Intelligent Routing of Data between a Remote Device and a Host System”)の部分継続出願である米国特許出願第10/084,049号(出願日:2002年2月28日、タイトル“Port Routing Functionality”)に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0003】
本出願は、米国特許出願第10/374,070号(タイトル“Prioritized Alternate Port Routing”、出願日2003年2月28日、対欧米国特許出願公開第2004/0170181号公報)に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0004】
本出願は、米国特許出願第10/835,396号(タイトル“Simultanously Routing Data Over Multiple Wireless Netowork”、出願日2004年4月30日)に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0005】
本発明は、無線通信分野に関する。特に、本発明は、ソフトウェア無線(SDR)、いくつかのSDRの組み合わせ、あるいは、SDRと従来型無線一式を使用する場合のける複数の非類似無線ネットワーク間の通信に関する。本発明の一態様によれば、モバイルコンピュータデバイスは非類似無線ネットワーク間でデータを送受信可能であり、モバイルユーザは、SDRの一部又はすべてを含む無線一式を使ってネットワーク間をシームレスにローミングする。
【背景技術】
【0006】
ここ10年、無線ネットワークによって携帯を利用する労働者の日々の行動は統合されてきた。多くの組織が、労働者の生産性を向上させるため、無線ネットワークの使用を通じて実質的なコスト削減を実現し続けている。また多くの場合、無線ネットワークは、会社がカスタマーに提供できる新しいサービスの創作をもたらした。
【0007】
無線通信会社は、GPRS、EDGE、1xRTT、そして1xEvDOのような第3世代ネットワークを作るために数十億ドルを費やした。802.11無線LANの使用が世界中で急増している。そして今、RD−LAP、EDACS、Opensky、Dataradioのような多くのプライベート無線周波数(RF)ネットワーク、そして従来すなわち長距離ネットワークが、世界中を通して何百万の公益事業及び公安労働者によって使用されるべきものとして存在する。
【0008】
米国特許第6,198,920号(発明者:ドビエックその他、タイトル“Intelligent Routing of Data between a Remote Device and a Host System”)、そして、米国特許第6,418,324号(発明者:ドビエックその他、タイトル“Apparatus and Method for Transparent Wireless Communication between a Remote Device and a Host System”)などの特許が存在し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられ、複数のネットワークの同時利用の改善がクレームされている。これら特許では、ユーザは非類似ネットワーク間で継ぎ目なく(seamlessly)ローミングすることができる。したがって、携帯利用するワーカーが第1のネットワークの範囲から出ると、ワーカーは代わりのネットワークで通信を続けることができる。
【0009】
非類似ネットワーク間でのシームレスなローミングのため創り出された解決処理は、無線ネットワークの選定を促進するのに役立ってきた。携帯利用者は、異なるネットワークの強度を変えるより良い利点を得ることが可能となり、また、ネットワークが表す制限を最小化することができる。例えば、無線LANが狭いエリアに渡って高いバンド幅のアクセスを提供する一方でCDMA 1xRTTは広い範囲に渡ってより低いバンド幅を提供するため、モバイル型クライアントは、両方のネットワークを自動的に使用するように構成することができる。無線LANの範囲のとき、(CDMA 1xRTTの範囲であろうとなかろうと)移動型クライアントは、ネットワークのスループット向上の利点がある。しかし、クライアントが無線LANの制限されたカバレッジエリアから出てそのままの状態でいる、あるいは、CDMA 1xRATTのカバレッジエリアに入ると、クライアントは自動的にカバレッジエリアのより広いネットワークの利点を得る。
【0010】
これらのタイプのソリューションはエンドユーザにとって非常に強力であり、無線ネットワークの改善された制御を提供するが、シームレスローミングのソリューションにはいくつかの挑戦が残っている。伝統的には、ユーザが異なるネットワーク間でローミングする必要がある場合、ユーザは各ネットワークに対して無線トランシーバ1つ獲得しなければならない。このモデルでは、各無線トランシーバは、獲得される特別な一つのネットワークにだけしか関連しない。したがって、シームレスローミングのソリューションをオペレーティングするモバイルコンピュータデバイスは、典型的に複数のネットワーク間での通信のため使用される複数の通信デバイスを有する。これら複数の通信デバイスが典型的にかなりの資本費用を表すだけでなく、アクティブ状態での複数の通信デバイスを維持することがバッテリーの寿命を大いに短くする。複数の異なる通信デバイスはまた、PCカードやシリアルポートインターフェイスなどのモバイルコンピュータデバイス内の高価な物理的リソースの使用を要求する。さらに、新しいネットワークサービスが導入されると、古い通信デバイスは、おそらくその新しいネットワークで通信できないであろう。この場合、ユーザは、新しいサービスを享受したければ、追加的な費用を被ることを強いられる。
【0011】
多くの研究と開発の努力が、これら問題を解決するために注がれてきた。ひとつの解決法は、ソフトウェア無線(SDR)である。SDRは、無線データの使用法に関連する多くの問題の解決に役立つ。SDRは性能を提供し、そこでは、様々な異なる無線ネットワークに無線を適用させるため、ソフトウェアを通して無線の性質が修正される。したがって、影響を最小限に留めながら、SDRにダウンロード可能な適切なソフトウェアアルゴリズムが存在する無線ネットワークでモバイルデバイスが通信できる性能を、SDRは提供する。無線を新しい無線ネットワークに適合させるのに必要とされることは、新しいソフトウェアアルゴリズムと一緒にSDRを更新することだけである。
【0012】
SDRのコンセプトを非類似ネットワーク間でのシームレスローミングに結びつけると、モバイルユーザは、ネットワークの接続性および自動的ネットワーク接続に関して大きく拡大する可能性一式を実現することができる。現在、携帯デバイスは、仮想的にどの無線ネットワークもサポートできる単一のハードウェアプラットフォームを使用することができる。しかしながら、現在のSDRソルーションは、無線データ市場における採用を妨げるだろういくつかの問題が重荷となっている。
【0013】
伝統的に、SDRの再プログラミングの多くは、携帯デバイスのユーザによる手動的介入を通じてのみ行われてきた。したがって、使うべきネットワークの決定を自動的に行う必要性によってユーザが妨げられるだけでなく、新しいメディアを通した通信をサポートする必要なソフトウェアとともにSDRを再プログラムするコマンドをマニュアルで初期化する責務がある。
【0014】
従来のSDRにおけるその他の問題は、現在のアクティブなネットワークとは異なる代わりのネットワークの特徴をアクティブに調べる内在的性能の欠如にある。限定しない一例として、そのようなネットワークの特徴には、信号強度および/又はデータ転送遅延時間(latency)が含まれる。現在SDRにプログラムされているネットワークがアクティブにデータ転送及び受信のため使用されている場合、SDRのソフトウェアプログラムを変更し、ネットワークの状態をチェックし、そして、通信を継続するため元のネットワークに戻ることには、問題がある。このようなシナリオは簡単にデータ損失、アプリケーション失敗、あるいは中止されるTCPセッションを導く。加えて、ユーザがこの種のモデルの使用に直接責任がある場合、マニュアルによる介入の多さが重荷になって広く採用が認められない。
【0015】
したがって、SDRを使用するとき、複数の無線ネットワーク間での通信を管理する必要がある。また、ダイナミックにSDRを再設定してモバイルユーザのダイナミックな性質を支援するシステムが必要である。さらに、アプリケーションに深刻な影響を与えることなく、その他の無線ネットワークの利用可能性をシステムが知的に探索する必要がある。そして、ユーザの介入なくこの性能を自動的に管理する必要性がある。
【0016】
SDRは、無線信号の変調および復調のためソフトウェアに影響を行使する(leverage)転送システムである。伝統的に、無線は特定の周波数、伝送媒体に向けて開発され、そして、プロトコルとその性能は不変的にデバイスにデザインされていた。このアーキテクチャは、新しいフォーマット又はネットワークをサポートするため無線を再プログラムするのに非常に時間を消費し、コストがかかった。したがって、無線ネットワークを変える必要性があると、ユーザは新しいハードウェアを購入することを強いられた。
【0017】
SDRは、従来の無線通信デバイスに存在する“更新問題”を解決するようにデザインされている。ハードウェアに無線ネットワークを提供する代わりに、システムは、フレキシブルなプラットフォームに作り上げられる。異なる無線ネットワークのサポートは、様々なプログラム言語を使った変調アルゴリズムに書かれている。変調アルゴリズムは、ネットワークの特徴およびネットワークを通じた通信方法を記述する。したがって、ワイヤレスネットワークで通信するモバイルユーザにとって要求されることは、適切な変調アルゴリズムをSDRのハードウェアプラットフォームにロードすることだけである。この性能はすべてソフトウェアの修正によって提供され、その結果、以前から可能な少ない労力、少ないコストでアップグレード、変更することができる。
【0018】
多くのSDRは、一つの無線周波数(RF)トランスミッタ/レシーバだけを備えている。例示的アーキテクチャが図1に示されている。SDR100は、いくつかのハードウェアおよびソフトウェアコンポーネントを備える。SDR100は、デジタル信号処理とDFネットワークとの間の変換層を提供するDFデジタルコンバータ101を提供する。FPGA/DSP102は、変調アルゴリズムの処理能力を提供している。例示的な変調アルゴリズムには、GSM104、CDMA105、そしてWiMax106が含まれる。そして、マイクロコントローラ103は、SDR100全体を制御するための基礎となるサポート構造を提供する。
【0019】
SDR100に加え、モバイルコンピュータデバイス108が使用される。モバイルコンピュータデバイスは、データパケットを創り出すアプリケーションおよびコードモジュールを実行する責務がある。これらデータパケットは、物理データリンク107を渡って転送される。限定しない一例として、物理データリンクは、RS−232、イーサネット、USB、UWB、Bluetooth、あるいはその他の標準リンクの形になっている。モバイルデバイス108内にも、オペレーティングシステム110がある。オペレーティングシステムは、SDRの性能を制御するSDRソフトウェアコントローラ109を実行させる。オペレーティングシステム110はまた、複数の非類似ネットワーク間のローミングを管理するローミングソリューションをサポートする。ローミングソリューションは、オペレーティングシステム110の統合されたコンポーネントとして、あるいはオペレーティングシステム110の最上位層で実行されるアプリケーションソフトウェアとして具体化される。
【0020】
この種の構成では、無線は、一度に一つのパーソナリティのみしかもっていない。したがって、モードを変更するとき、新しいネットワークを使用するため新しい変調アルゴリズムをダウンロードすることをユーザは要求される。さらに、ユーザがダウンロードすると、元のネットワークに戻ることを望む場合には、元の変調アルゴリズムのダウンロードをユーザは要求される。
【0021】
シームレスローミングソリューションの一つの特徴は、他の無線ネットワークの利用可能性を自動的に探索できることであり、その結果、アクティブなネットワークを切り替える最も良い時期がいつであるかソリューションは理解できる。一つのトランスミッタ/レシーバのみ存在する場合、任意の一回に一つのネットワークのみサポートするように設定可能である。したがって、自動的に無線を周期的に再設定してミドルウェアが代わりの無線ネットワークをチェックできることが必要である。この機能は、エンドユーザに意識されない(transparent)ようにしなければならない。
【0022】
この問題を解決できる一つの方法は、複数のRFトランスミッタ/レシーバを備えたSDR100を定めることである。図2は、この種のアーキテクチャをサポートするシステムの一例を示す。このアーキテクチャは、初期のSDRアーキテクチャをなくし、2番目のFPGA、DSP102と2番目のRFデジタルコンバータ101を提供する。このデザインとともに創作されたシステムにより、ミドルウェアソフトウェアは、第1のネットワークが使用できなくなる時に使用できる一連の代替ネットワークの利用可能性を調べるために第2のトランスミッタ/レシーバを使用しながら、主要な転送に第1のトランスミッタ/レシーバを使用することができる。この処理はとても有効である(すなわち、主要なチャンネルは他のネットワークがスキャンされている間妨害されない)一方で、モバイルコンピュータデバイスのユーザは、代わりのネットワークの存続性(viability)を決定する第2のチャンネル上のプロファイルを変更するため、伝統的に手動的な介入を要求されていた。この処理をできる限りトランスペアレントに行うコンフィギュレーションおよびクエリー(query)機能を自動的に実行するため、ミドルウェアソリューションの開発が必要とされる。SDR100が複数のRFトランスミッタ/レシーバをサポートしない場合、それぞれ一つのRFトランスミッタ/レシーバを備えた複数のSDRユニット100が同一の性能を提供することができることに注意すべきである。本発明の目的として、両方のコンフィギュレーションが交換可能と考えられる。
【0023】
SDRは、無線通信用デフォルトスタンダードとして取り上げられるが、SDRの実装されないモデムが他のネットワークで有益でありながらSDR100がいくつかのネットワークで有益である状態がある。例えば、高速リンクにおいて、高速変調アルゴリズムを実行するための物理的リソース要求は、所望するものより高価になるであろう。したがって、SDR100が従来の(SDRの備えていない)実装と組み合わされる状況が可能である。このアーキテクチャは、図3に示されており、図2に表されているアーキテクチャによって作られる。このアーキテクチャは、モバイルデバイス108に接続される従来型DF無線112をサポートする。この無線112は、モバイルデバイス108に組み入れ、もしくは外部に接続させることが可能である。したがって、ミドルウェアソフトウェアは、個々のネットワークとしてSDR100のパーソナリティすべてを調べ、同様に、これらをモバイルコンピュータ108の中に装備される異なった従来型モデム112と組み合わせることができる。
【0024】
加えて、SDRデザインによって可能になるフレキシビリティにより、変調アルゴリズムの設計者は、SDRの性能に影響を与え、性能を広げる追加的な差別化できる特徴を提供することができる。SDR100を制御するミドルウェアアプリケーションも、変調アルゴリズムの中でダイナミックにパラメータを修正可能である。一つには、転送上の特別なセキュリティ用に使用される。例えば、ミドルウェアアプリケーションがAPIを通じて変調アルゴリズムの一部をダイナミックに変更できる場合、ミドルウェアアプリケーションはほんのわずか変調アルゴリズムを変更することが可能であり、通信傍受者はどのような転送も解読できない。この性能は、すべての携帯ユニットが同じ形式で通信するのを隔離するためにクライアントとベースステーションとの間で生じなければならない幾つかの同期を要求する。
【発明の開示】
【課題を解決するための手段】
【0025】
前述の観点から、同時通信もしくはシームレスローミングの処理能力の目的で、静的な携帯ホストアイデンティティを維持し、多数の非類似ネットワーク間でローミングしながら、一つ又はそれ以上のSDRをゼロもしくは1つ以上の従来型無線と組み合わせて使用することに、本発明の一態様は向けられており、その幾つかは同じ物理的SDRの異なる変調アルゴリズムプログラムを通じてサポートされる。
【0026】
本発明の一態様によれば、多数の非類似ネットワーク間でシームレスにローミングするためSDRに影響を与える性能がモバイルユーザに与えられる。このプロセスは、ユーザおよびアプリケーションに対してシームレスかつトランスペアレントであるとの意味が持たれる。以下に記述する幾つかの機能は、伝統的に相互に行われる。しかしながら、シームレスローミングの真の普及を現実にするため、これらの性能は、無線ミドルウェアソリューションによって自動的に操作されなければならない。
【0027】
本発明の一態様によれば、様々な変調アルゴリズム間でSDRの変遷(transition)を管理する方法が提供される。提供される方法には、変調アルゴリズムがユーザの好みに従って選択されるように変遷を調整することが含まれる。また、提供される方法には、変調アルゴリズムがAPIを通じてダイナミックに選択可能となるように変遷を調整することが含まれる。また、提供される方法には、モバイルコンピュータデバイスからのシームレスな通信に対して最も影響のない期間にだけ起こるように変遷を調整することが含まれる。また、提供される方法には、より好ましいネットワークの出会う可能性が高い期間に起こるように変遷を管理することが含まれる。
【0028】
本発明の一態様によれば、あらかじめ設定されたインターバルではなく、関連するスキャニングヒントのデータベースに基づいて上述した変遷管理の行動(behavior)を単独で修正する方法が提供される。スキャニングヒントは、幾何学的位置、日時、あるいは様々なその他の外部の指令に基づく。限定しない一例として、付加的な外部指示には、携帯デバイスのバッテリパワー、あるいはネットワーク信号強度の時系列的傾向が含まれる。
【0029】
本発明の一態様によれば、特定の種類のトラフィックの存在に起因して上述する変遷管理の行動を修正する方法が提供される。限定しない一例として、特定の種類のトラフィックを同定するため使用される基準は、(上述した)米国特許公開第2004/0170181号公報(タイトル“Prioritized Alternate Port Routing”)に使用される基準と同等であってもよく、その公報に記載された内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0030】
本発明の一態様によれば、複数のSDRがモバイルコンピュータデバイスに存在する状態で多数のSDRがアクティブ状態で維持されることを確立するため、上述した変遷管理行動を管理する方法が提供される。また、提供される方法には、変遷が起こるネットワークがもはやモバイルコンピュータデバイスに利用できない場合すぐにシームレスローミングの切替時間が起こるように、同時にアクティブな多数のSDR一式を管理することが含まれる。また、提供される方法には、2つ以上の物理的SDRデバイスが同じ変調アルゴリズムをスキャンし、排他制御(lock)することがないように、多数の物理的SDRデバイス一式に渡る変遷を調整することが含まれる。また、提供される方法には、(上述した)米国特許出願第10/835,396号(“Simultaneously Douting Data Over Multiple Wireless Netowork”)に記載された方法と同じ方法で同時にアクティブな多数のSDR一式に渡るパケットフローを管理することが含まれており、米国特許出願に記載された内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0031】
本発明の一態様によれば、代わりのネットワークが存続性について測定されている変遷期間のパケット損失を最小化する方法が提供される。
提供される方法は、代わりの変調アルゴリズムがSDR内でテストされる期間にすべてのパケット代わりのネットワークへ転送されることを確立するためのメッセージプロトコルを含む。
【0032】
本発明の一態様によれば、テストされるべき返答アルゴリズムに応じたネットワーク接続の存続性を認証する方法が提供される。提供される方法は、ネットワーク接続性を判断する目的で新規なコンポーネントとオペレーティングシステムとの間のプロトコルを含む。
提供される方法は、ネットワーク接続性を判断する目的で新規なコンポーネントとSDRとの間のプロトコルを含む。提供される方法は、ネットワークの接続性を判断するため、(上述した)米国特許第6,198,920号(タイトル:“Intelligent Routing of Data between a Remote Device and Host System”)および米国特許第6,418,324号(タイトル:“”Apparatus and Method for Transparent Wireless Communication between a Remote Device and a Host System)に記載されたようなミドルウェアサービスの使用を含む。提供される方法はまた、ネットワーク接続性を判断するため、上述した特許のようなゲートウェイに基づいたソリューションからのビーコンの使用を含む。提供される方法はまた、ネットワーク接続性を判断するためのループバックもしくは“ピング(ping)”パケットの使用を含む。提供される方法はまた、ネットワーク接続性を判断するための共通のIPプロトコルおよびサービスの使用を含む。限定しない一例として、共通のIPプロトコルおよびサービスには、Requirement for Internet Hosts−Communication Layers(DFC1122に記載)、Router Advertisements(RFC1256に記載)、DHCP(DFC2131および3315に記載)、そして、モバイルIP(RFC2002に記載)のようなサービスが含まれ、その内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0033】
本発明のその他の態様によれば、ソリューションが初期化され、集中管理されたコンフィギュレーションデータベースがモバイルコンピュータデバイスに適用可能となるような方法でアップデートされる度に適切なコンフィギュレーション設定がダウンロードされてモバイルコンピュータデバイスに利用可能となるように、集中管理されたゲートウェイからの変遷管理行動のコンフィギュレーションデータベースを管理する方法が提供される。
【0034】
本発明の一態様によれば、少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするための方法が提供される。SDRは、変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。方法は、少なくとも一つのSDRの一つのトランシーバを使うだけで、非類似無線ネットワーク間をシームレスにローミングすることを含む。方法はまた、複数の変調アルゴリズムの優先順位をつけることを含む。
【0035】
方法は、複数の非類似無線ネットワークのうち第1のネットワークが使用中と指定されたとき、複数の無線ネットワークの中の代わりのネットワークを、制限された期間スキャニングスすることを含むようにしてもよい。一実施形態では、ネットワークの品質をチェックするため、非類似無線ネットワークをスキャニングすることを含む。その他の実施形態では、方法はまた、非類似無線ネットワークをスキャニングする。スキャニングには、少なくとも一つのSDRに変調アルゴリズムをダウンロードし、少なくとも一つのSDRを初期化し、ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることを含むことができる。
【0036】
方法は、満足するヒント基準に応じて変調アルゴリズムの優先順位を更新する方法をさらに含んでもよい。ヒント基準は、時間および/又は位置を表す。
【0037】
また、本発明の異なる態様として、少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするシステムが提供される。SDRは、複数の変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。システムは、ネットワーク管理サブシステムと、コンフィギュレーションサブシステムとを備える。ネットワーク管理サブシステムは、少なくとも一つのSDRの変調アルゴリズムを通じてアクセス可能なネットワークに送られるパケットを処理し、少なくとも一つのSDRデバイス上の変調アルゴリズムをスキャンする。コンフィギュレーションサブシステムは、コンフィギュレーション情報を提供するため、ネットワーク管理サブシステムと通信する。
【0038】
システムは、ネットワーク状態通知をネットワーク管理システムから受け取り、外部のエンティティへネットワーク状態通知を公表するAPI(Application Programming Interface)サブシステムを含むことが可能である。APIサブシステムは、非類似無線ネットワークの少なくとも一つを現在最も好ましいネットワークとして指定する指示を、外部のエンティティから受けることができる。APIサブシステムは、非類似ネットワークの特定のネットワークを通してパケットを転送する指示を、外部のエンティティから受けることができる。
【0039】
ネットワーク管理システムは、さらに、選択された変調アルゴリズムを通じてアクセス可能なネットワークのネットワーク品質をチェックすることが可能である。
【0040】
コンフィギュレーションサブシステムは、さらに、コンフィギュレーションの更新を得るため、集中ソフトウェアコントローラと通信することが可能である。
【0041】
システムは、パケット損失を最小化するため、スキャンを中止するルーティングサポートサブシステムを含むことができる。
【0042】
本発明のその他の態様によれば、少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするプログラムを格納したコンピュータ読み取り可能な記録媒体が提供される。SDRは、複数の変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。記録媒体は、少なくとも一つのSDRの一つのトランシーバを使うだけで、非類似無線ネットワーク間をシームレスにローミング可能にするローミングコードセグメントと、複数の変調アルゴリズムの優先順位をつける優先コードセグメントと
を備える。各変調アルゴリズムは、GPSアルゴリズム、もしくは2方向データネットワーク変調アルゴリズムであることが可能である。ローミングコードセグメントが、複数のネットワークを同時に使用することを可能にすることができる。
【0043】
記録媒体は、複数の無線ネットワークのうち第1のネットワークが使用中と指定されたときに代替ネットワークを制限された期間スキャニングスするスキャニングコードセグメントを含むことができる。
【0044】
記録媒体は、満足するヒント基準に応じて変調アルゴリズムの優先順位を更新するヒントコードセグメントを含むことができる。
【0045】
記録媒体は、ネットワークの品質をチェックするため、非類似無線ネットワークをスキャニングするスキャニングコードセグメントを含むことができる。代わりに、又は加えて、スキャニングコードセグメントは、少なくとも一つのSDRに変調アルゴリズムをダウンロードし、少なくとも一つのSDRを初期化し、ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることによって非類似ネットワークをスキャンすることができる。
【0046】
記録媒体は、接続された変調アルゴリズム各々が一つのSDRによって使用されることを確立する除去コードセグメント、および/又は、外部のエンティティからヒントの更新を受信する受信コードセグメントをさらに含むことができる。
【0047】
記録媒体は、少なくとも一つのSDRの状態に基づいてスキャン周波数をダイナミックに変化させるスキャン周波数コードセグメントを含むことができる。
【0048】
記録媒体は、各変調アルゴリズムに基づいて有効範囲チェック周波数を変化させる有効範囲チェック周波数コードセグメントを含むことができる。
【0049】
上述した特徴は、コンピュータ読み取り可能な記録媒体に記録されるオブジェクトコードとして具現化可能である。その特徴はまた、非類似無線ネットワーク間のパケットデータの流れを管理する処理の一部である。さらに、その特徴は、SDRソフトウェアコントローラコンポーネントおよびルータを含むシステムの一部である。
【0050】
本発明は、本発明の限定しない好適な例による図面を参照しながら以下に続く詳細な説明に記載され、図面における同じ参照符号は、一連の図面を通して同じパーツを表す。
【発明を実施するための最良の形態】
【0051】
SDRソフトウェアコントローラ109は、図1、2,3に示すように、独立して動作可能である。しかしながら、SDRソフトウェアコントローラ109は無線ルータに接続して使用されることが多い。例示するルータは、上述した米国特許明細書第6,198,920号および米国特許明細書第6,418,324号に記載されており、その開示全体は、明示的にそのまま参照することによって本明細書に組み入れられる。図5は、ルータ35とSDRソフトウェアコントローラ109との間の通信の一例を示した図である。図5はまた、他のルータ36とSDR集中ソフトウェアコントローラサブシステム111との間の通信の一例を示した図である。システムは、モバイルアプリケーション201とホストアプリケーション202を含む。システムは、従来型無線112とソフトウェア無線100とを含む。システムは、三つの非類似ネットワーク204、205、206を含む。
【0052】
ルータ35は、存立できる通信リンクを確立し、ネットワークA204でトラフィックを送受信する目的で、従来型無線112と直接通信する。また、ルータ35は、SDR100を通じて届くネットワーク205、206の状態に関しステータスを交換する目的でSDRソフトウェアコントローラシステム109と直接通信する。SDRソフトウェアコントローラサブシステム109は、新しい変調アルゴリズムの使用、ネットワーク205、206との接続性のチェック、そしてデータパケットの送受信のために新しい変調アルゴリズムをダウンロードして無線を初期化する目的で、SDR100と通信する。ルータ35は、従来型(非SDR)無線112を介してネットワークAと直接通信する。加えて、ルータ35は、データパケットを送受信するため、SDRソフトウェアコントローラ109を通じてネットワークB205、ネットワークC206と通信する。SDR集中ソフトウェアコントローラシステム111は、SDRソフトウェアコントローラシステム109と情報を交換する目的で、その他のアプリケーションサーバと同様、プロキシ形式によってルータ36と通信する。
【0053】
モバイルアプリケーション201とホストアプリケーション202は、ルータ35、36を通して互いに通信する。モバイルアプリケーション201からルータ35へのデータフローは、従来型無線112およびネットワークA204、あるいはSDRソフトウェアコントローラシステム109およびSDR100へルーティングされ、ネットワークB205あるいはネットワークA206へルーティングされる。ネットワーク204、205、206各々は、ルータ36と通信し、ルータ36は、パケットをホストアプリケーション202へ転送する。ホストアプリケーション202からルータ36へのデータフローは、上述したリバースシーケンスで流れる。
【0054】
ルータ35とSDRソフトウェアコントローラシステム109との間の通信は、公知のIPC(プロセス間通信)メカニズムを通じて可能となる。ルータ35と従来型無線112との間の通信は、SDRソフトウェアコントローラシステム109とSDR110との間の通信と同様、公知のIPCメカニズムを通じて可能となる。ルータ35とモバイルアプリケーション201との間の通信は、ホストアプリケーション202とルータ36との間の通信、およびルータ36とSDR集中ソフトウェアコントローラサブシステム111との間の通信同様、公知のインターネットプロトコルメカニズムによって可能となる。ルータ36とネットワーク204,205、206各々との通信は、従来型無線112とネットワークA204との間の通信、そして、SDR100とネットワークB205およびネットワークC206との間の通信と同様、ネットワーク204、205、206の性質にすべて固有であって、例えば、公知のIPC、公知のインターネットプロトコル、あるいは特定(proprietary)メカニズムを通じてなる。
【0055】
サブシステム
SDRソフトウェアコントローラシステム109は、4つのプライマリサブシステムを含むことが可能である。これらサブシステムおよび相互作用は、図6に示されている。
図6を参照すると、ネットワークマネージメントサブシステム403が、中心のサブシステムである。その他のサブシステムは、すべてネットワークマネージメント403と通信する。ネットワークマネージメント403は、このシステム109によってコントロールされる一式のSDR100を管理する責務がある。ネットワークマネージメント403は、コンフィギュレーション404およびAPI(Application Programmer Interface)401を通じて得られる情報の両方を処理し、ネットワーク接続を確立し、ネットワークの質をテストし、そして、最もよいネットワークを見つけるため利用可能な変調アルゴリズムをスキャニングする最適回数を決定する。ネットワークマネージメント403は、SDRデバイス100へダウンとロードするため、永続性ある(persistent)記憶部から変調アルゴリズムファイル407をアクセスする。
【0056】
また、図6を参照すると、ルーティングサポートシステム402は、一式のSDRデバイス100でのデータパケットの伝送および受信を管理し、システム109が利用可能な変調アルゴリズムのリストをスキャンする間、パケットの損失を最小化する。コンフィギュレーション404およびAPI401の両サブシステムは、本システムの外部環境との相互作用を実行する。コンフィギュレーション404は、集中管理および分散同様、システム109のコンフィギュレーション可能なエンティティすべての箇条書きとそのデータ構造からなる。コンフィギュレーションサブシステム404は、SDRソフトウェアコントローラコンフィギュレーションファイル405とヒントデータベース406を永続性ある記憶部からアクセスする。API401は、2方向インターフェイスから成り、2方向インターフェイスを通じて外部システムはシステム109の行動(behavior)の制御を実行することが可能であり、同じ外部システムは、自身の行動を変えるため、システム109の内部状態に関して情報を獲得することもできる。
【0057】
コンフィギュレーション
一実施形態では、システム109のため3つのタイプのコンフィギュレーションがある。第1のコンフィギュレーションは、SDR100設定に使用される一式の変調アルゴリズムを作成する実際のプログラムファイル一式407である。
第2のコンフィギュレーションは、SDRソフトウェアコントローラコンフィギュレーション405であり、スタートアップ、SDR100の初期化、そしてSDR100内での変調アルゴリズムの変換に関してSDRソフトウェアコントローラシステム109の行動内容を記述する一式の行動からなる。第3のコンフィギュレーションは、スキャニングヒントデータベース(Scanning Hint Database)である。
【0058】
一実施形態では、変調アルゴリズムプログラムファイル407の他に、XMLによってコンフィギュレーションタイプを表すことが可能である。図8は、SDRソフトウェアコンフィギュレーションファイルの一例を示し、図9は、スキャニングヒントデータベースの一例を示す。データ一式の各要素の目的となる記述は以下のようになる。
・SDRソフトウェアコントローラ(SdrSoftwareController)-このエンティティは、その他のすべてのコンフィギュレーションが存在するドキュメントのルートノードを表す。
・コンフィギュレーションチェックインターバル(ConfigurationCheckInterval)-このエンティティは、検索のためアップデートされたコンフィギュレーションがあるかどうかを、SDR集中ソフトウェアコントローラ111をSDRソフトウェアコントローラ109がチェックするインターバルを表す。このフィールドでのゼロの値は、SDR集中ソフトウェアコントローラ111との通信を禁止にする。
・集中コンフィギュレーションアドレス(CentralConfigAddress)-このエンティティは、システム109にエンティティが設定された場合のSDR集中ソフトウェアコントローラ111のIP/ポートを表す。
・SDRデバイス(SdrDevice)-このエンティティは、一つの物理的SDR100に適用するコンフィギュレーション一式すべての親エレメントを表す。
・ディスプレイネーム(Display Name)-このエンティティは、テキスト識別子を表し、物理的SDRユニット100がシステム109を通して知られる。
・コミュニケーションインターフェイスタイプ(CommunicationInterfaceType)-このエンティティは、SDR100をアクセスするのに使用される通信インターフェイスのタイプを表す。限定しない一例として、このエンティティの値は、シリアル、NDIS、あるいはその他の標準、あるいは特定のメカニズムによって表すことが可能である。
・コミュニケーションインターフェイスネーム(CommunicationInterfaceName)-このエンティティは、識別子を表し、これによってSDR100にアクセするため使用される通信インターフェイスは、ローカルオペレーティングシステム110内で知られる。
・バックオフタイムアウト(BackoffTimeout)-このエンティティは、前のアクティブな変調アルゴリズムが最適カレントネットワーク(Currently Most Preferred Network)であると外部の関連機器(party)によってみなされ、そして、新しい最適カレントネットワーク通知のないことが受信されることによってスキャン期間が中止された後の時間を、ミリ秒単位で表す。
・スキャン行動(ScanBehaviors)-このエンティティは、SDR100のために設定されたすべての行動モデルの親ノードを表す。スキャン行動は、必ずしも直交しない。非接続状態は他の状態に対して直交し、ベスト状態および代替状態は直交するが、ベストおよびアクティブ状態と、代替およびアクティブ状態が重なり合うことは可能である。この理由により、状態が重なり合った場合、Best, Active, Alternate, Disconnectedという以下の順序によって行動セッティングが適用される。
・ベスト(Best)-このエンティティは、SDR100によってサポートされる最優先変調アルゴリズムの接続性をSRDR100が確立する度にアクティブ化する必要のある一式の行動パラメータを表す。これら行動パラメータは、ネットワーク条件が最適と想定されるべき行動を表すものとみなされる。
・アクティブ(Active)-このエンティティは、現在ロードされた変調アルゴリズムに関連したネットワークが主要なトランスポートメカニズムであるとみなすことをAPIサブシステム401に登録される外部のエンティティがSDR100に通知する度にアクティブ化すべき行動パラメータ一式を表す。これら行動パラメータは、ルータ35のような外部の関連機器が接続に独立して間推定すべき行動を表すものとみなされる。
・代替(Alternate)-このエンティティは、SDRが変調アルゴリズムとともに接続性を確立する度にアクティブ化されるべき行動パラメータを表すが、現在のネットワークが最も主要なトランスポートメカニズムであるとみなす指示を提供する外部のエンティティを持っていない。
・非接続(Disconnected)-このエンティティは、どの設定された変調アルゴリズムを使ってもSDR100がネットワークとの接続を確立できない度にアクティブ化されるべき行動パラメータ一式を表す。
・スキャン周波数(ScanFrequency)-このエンティティは、各ネットワークとの接続性をテストするために設定されたすべての変調アルゴリズムをSDRコントローラ109が循環させる周波数を、ミリ秒単位で表している。エンティティの値が0に設定されると、SDRデバイス100が関連状態にある間は初期化されない。言い換えれば、エンティティの値が0であれば、関連状態においてスキャニングは禁止される。
・変調アルゴリズム(ModulationAlgorithms)-このエンティティは、SDR100のため設定されたすべての変調アルゴリズム用親ノードを表す。
・アルゴリズム(Algorithm)-このエンティティは、SDR100用単一の変調アルゴリズムに関してすべてのコンフィギュレーションの詳細親ノードを表す。
・ディスプレイネーム(DisplayName)-このエンティティは、テキスト識別子を表し、これによって変調アルゴリズムがシステムを通じて知られる。ルータ35のような様々なネットワークとの接続性の状態を要求する外部のエンティティに関しては、この値が、状態を報告されるネットワーク用識別子となる。
・ファイルネーム(FileName)-このエンティティは、SDR100へダウンロード可能な変調アルゴリズムプログラムを含むファイルの名前と場所を表す。
・優先度(Priority)-このエンティティは、SDRデバイス100がサポート可能な設定されたすべての変調アルゴリズム一式に関して変調アルゴリズムとネットワークの優先度合いを表す。優先値は、最も優先するネットワーク変調アルゴリズムである1に基づき、連続的に数が高くなるほど優先度が連続的に低くなる。ゼロである1つの特別な優先値がある。このフィールドでゼロの値は、変調スキームが最も優先度の高いチェックすべき変調スキームであるが、ネットワークではないことを示す。むしろ、それは、GPSモジュールである。
・有効範囲チェックインターバル(CoverageCheckInterval)-このエンティティは、関連する変調アルゴリズムがアクティブである場合にネットワークに対して行われる明確な有効範囲の継続的チェックの時間間隔を表す。ゼロの値は、受動的なリンクアップもしくはリンクダウンの指示のみが使用されるように、変調アルゴリズムを通じてアクセスされるネットワーク上での明確な有効範囲の継続的チェックを中止させる。受動的リンクの指示は、後にネットワークマネージメントおよびネットワークチェックの操作の記載の中で説明される。
【0059】
図9を参照する。
・スキャンヒント(ScanHints)-このエンティティは、スキャニングヒントデータベース406のルートノードを表す。
・ヒント(Hint)-このエンティティは、単一のヒントレコードを表す。
・タイム(Time)-このエンティティは、時間に基づいたヒントレコードを表す。
・GPS(GPS)-このエンティティは、位置に基づいたヒントレコードを表す。
・開始(Begin)-このエンティティは、ヒントが適用される最初の境界を表す。ヒントが時間に基づいたヒントであれば、このエンティティは開始時刻を表す。ヒントが位置に基づいたヒントであれば、このエンティティは矩形状の幾何学的領域の左上隅を表す。
・終了(End)-このエンティティは、ヒントが適用される最後の境界を表す。ヒントが時間に基づいたヒントであれば、このエンティティは終了時刻を表す。ヒントが位置に基づいたヒントであれば、このエンティティは矩形状の幾何学的領域の右下隅を表す。
・SDRドライブ(SdrDevice)-このエンティティは、ヒントが適用されるSDRデバイス10の識別子を表す。
・好適アルゴリズム(PreferredAlgorithm)-このエンティティは、実際のヒント自身を表す。実際、時間に基づいたヒントレコードの開始時刻と終了時刻の間である場合、あるいは、受け取ったGPSデータが、位置に基づいたヒントレコードの矩形状開始座標および終了座標の境界範囲内である場合、このエンティティは、設定された変調アルゴリズムの優先度に関わらずその他のアルゴリズムよりも指定されたアルゴリズムをシステムが積極的にチェックすべきであると提案する。
【0060】
上述したコンフィギュレーション情報はすべてそのまま記憶され、初期化においてシステムに読み出される。メモリには、実際のランタイム状況を表すダイナミックな情報と同様に永続性ある記憶部からのコンフィギュレーション情報を所有する一式のデータ構造が存在する。メモリ内のデータ構造の一例が、図4に示されている。各エレメントの記述は、適用可能なコンフィグレーションファイル内の適用可能なエレメントを簡潔に参照する。全ての記述は、不変のコンフィギュレーションファイルからの対応するエレメントがない場合に提供される。
【0061】
図4を参照すると、第1のデータ構造は、コンフィギュレーションブロック831である。これは、残りのコンフィギュレーションデータ構造のルートノードを表すデータ構造である。データ構造は、次のエレメントを含む。
・コンフィギュレーションチェックレベル(Configuration Check Level)-このエンティティは、コンフィギュレーションファイルのSdrSoftwareController.ConfigurationCheckinterval エレメントに対応する。
・集中コントローラアドレス(Centralized Controller Address)-このエンティティ833は、コンフィギュレーションファイルのSdrSoftwareController.CentralConfigAddressに対応する。
・ラストGPS座標(Last Known GPS Coordinates)- このエンティティ835は、GPS変調アルゴリズムから読み出されたGPSの最新座標を表す。このエンティティは、初期化されて空の状態になり、GPS変調アルゴリズムがSDRデバイスのために設定されて初期化後にGPSネットワークと接続できるまで構成されない。
・SDRリスト(SDR List)-このエンティティは、以下に記載する。
・ヒントリスト(Hint List)-このエンティティは、以下に記載する。
【0062】
SDRリスト801は、物理的SDRデバイス100と関連するとき、静的および動的情報すべてを所有するリンクされた構造リストとなることができる。リンクされたリスト801の各エレメントは、単一の物理的SDRデバイス100に属する。各構造は、次の情報を含む。
・SDRID(SDR ID)-このエンティティ802は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.DisplayNameエレメントに対応する。
・(Status Block)-このエンティティ804は、SDRデバイス100の動的状態を含む情報のブロックを表す。このエンティティは、ランタイムにおいて構成される。
・(Algorithm List)-このエンティティ803は、コンフィギュレーションファイルのSdrSoftwareController.ModulationAlgorithmsエレメントに対応する。
・(Scan Behaviors)-このエンティティ805は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviorsエレメントに対応する。
・(InterfaceType)-このエンティティ823は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.CommunicationInterfaceTypeエレメントに対応する。
・(InterfaceName)-このエンティティ824は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.CommunicationInterfaceNameエレメントに対応する。
・(backoff Timeout)-このエンティティ825は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.BackoffTimeoutエレメントに対応する。
【0063】
第2のデータ構造は、状態ブロック804である。これは、特定の物理的SDRデバイス100に関して動的情報をすべて所有する単一の構造となることが可能である。構造は、以下の情報を含む。
・カレントアルゴリズムID(Current AlgorithmID)-このエンティティ808は、物理的SDR100によって現在使用されている特定の一つの変調アルゴリズムの識別値を表す。一実施形態として、変調アルゴリズムのディスプレイネームがある。
・接続(IsConnected)-このエンティティ809は、カレント変調アルゴリズムが関連するネットワークに今現在接続されているか否かのブール型状態を表す。
・好適(IsPreferred)-このエンティティ810は、ルータ35のような外部の機器が今現在接続されている変調アルゴリズムが第1のトランスポートメカニズムとみなすか否かのブール型状態を表す。
【0064】
第3のデータ構造は、アルゴリズムリスト803である。これは、永続性ある記憶部から読み出され、特定の物理的SDRデバイス100がサポート可能な変調アルゴリズムすべてを記述する情報すべてを所有する構造リストである。この構造は、以下の情報を含むことができる。
・アルゴリズムID(Algorithm ID)-このエンティティ812は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.DisplayNameエレメントに対応する。
・ファイルネーム(File Name)-このエンティティ813は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.FileNameエレメントに対応する。
・優先度(Priority)-このエンティティ815は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.Priorityエレメントに対応する。
・有効範囲チェックインターバル(Coverage Check Interval)-このエンティティ816は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.CoverageCheckIntervalエレメントに対応する。
【0065】
第4のデータ構造は、スキャン行動805である。これは、永続性の記憶部から読み出され、物理的SDRデバイス100を管理する状態機械(state machine)の状態各々で実行されるスキャニングの方法を記述する情報すべてを所有する構造である。この構造は、以下の情報を含むことができる。
・ベスト周波数(Best Frequency)-このエンティティ819は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Best.ScanFrequencyエレメントに対応する。
・アクティブ周波数(Active Frequency)-このエンティティ820は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Active.ScanFrequencyエレメントに対応する。
・代替周波数(Alternate Frequency)-このエンティティ821は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Alternate.ScanFrequencyエレメントに対応する。
・非接続周波数(Disconnected Frequency)-このエンティティ822は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Disconnected.ScanFrequencyエレメントに対応する。
【0066】
一実施形態では、アクティブ周波数は300,000ミリ秒から3,600,000ミリ秒の間に設定され、最適な周波数はGPSが望まれない限り0ミリ秒に設定される。GPS周波数が望まれるならば、ベスト周波数は300,000ミリ秒に設定される。代わりに周波数を60,000ミリ秒から300,000ミリ秒の間に設定することも可能であり、(周波数がおよそ60,000ミリ秒より大きくなるべきケースの電源供給でない限り)非接続周波数を1ミリ秒に設定することが可能である。
【0067】
その他のデータ構造は、ヒントリスト826であり、ヒントデータベース406に格納可能である。これは、永続性ある記憶部から読み出され、ネットワークマネージメントサブシステムがスキャニング処理をドライブするため使用できるヒントを記述する情報すべてを所有する構造である。構造は、以下の情報を含むことができる。
・(Hint Type)-このエンティティ827は、提供されるべきヒントのタイプを表す。このエンティティは、位置(GPS)あるいは時間(時間のレンジ)の値とともに設定可能である。付加的なヒントのタイプも可能であり、明示的に本発明の範囲内に含まれるように意図される。新しいヒントタイプの例は、バッテリパワーあるいは信号強度の時系列的傾向を含む。
・SDRドライブ(SDR Device)-このエンティティ834は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.SdrDeviceエレメントに対応する。
・ヒントスタート(Hint Start)-このエンティティ828は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.Biginエレメントに対応する。
・ヒントストップ(Hint Stop)-このエンティティ829は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.Endエレメントに対応する。
・アルゴリズムID(Algorithm ID)-このエンティティ829は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.PreferredAlgorithmエレメントに対応する。
【0068】
SDR集中ソフトウェアコントローラ111は、システム109にコントローラ111が存在する場合、すべてのタイプのコンフィギュレーションを集中的に管理する。SDR集中ソフトウェアコントローラ111は、現在の変調アルゴリズムプログラムファイル一式、SDRソフトウェアコントローラコンフィギュレーションファイル、そしてスキャニングヒントデータベースの格納場所を提供することが可能であり、標準暗号化されて保証されるファイル転送技術を使った集中貯蔵場所からSDRソフトウェアコントローラシステム109による検索を利用できる。
【0069】
SDRソフトウェアコントローラコンフィギュレーションシステム109は、SDR集中ソフトウェアコントローラシステム111とともに、もしくはそれなしで動作するようにセットアップ可能である。SDR集中ソフトウェアコントローラ111は、システム109のため、コンフィグレーション設定を中心的に格納し、管理的なアクセスを提供し、分配する目的を達成させる。これに関し、その目的は、移動性があって潜在的に広範囲に分散するコンピュータデバイス一式を管理するのにつきものである管理上のオーバヘッドを軽減することにある。SDR集中ソフトウェアコントローラ111は、ルータ36によってすでに管理されている移動型コンピュータデバイスの範囲に渡る移動型コンピュータデバイス用のSDRソフトウェアコントローラコンフィギュレーションを集中的に管理する目的のため、ルータ36と通信する。
【0070】
SDR集中ソフトウェアコントローラ111と通信するルータ36は、典型的な局であり、一方、SDRソフトウェアコントローラ109と通信するルータ35は、潜在的に移動型である。多くの関係がSDR集中ソフトウェアコントローラ111とSDRソフトコントローラ109との間に存在する。したがって、SDRソフトウェアコントローラシステム109はすべて、一つの集中ソフトウェアコントローラ111とSDR集中ソフトウェアコントローラ111が存在するシステム内で通信する。
【0071】
その他の実施形態では、移動型ルータ35と潜在的に関係のあるSDRソフトウェアコントローラシステム109は、中心的コンフィギュレーションのオーソリティとして務め、SDRソフトウェアコントローラ109とSDR集中ソフトウェアコントローラ111両方の配置された役割を引き受ける。さらにその他の実施形態としては、SDR集中ソフトウェアコントローラ111が、SDRソフトウェアコントローラ109と離れて区別されるがルータ35は本質的に移動型であるように、ルータ36と関連してもよい。この種のコンフィギュレーションの例として、移動型コマンドセンターモデルを記述することができる。
【0072】
上述した目的以外にも、SDRソフトウェアコントローラシステム109は、完全にひとつのモバイルコンピュータデバイスとして具現化できる。SDR集中ソフトウェアコントローラ111が存在しない場合にこのモデルの一実施形態がある。
【0073】
一方、SDR集中ソフトウェアコントローラが存在する場合、複数のSDRソフトウェアコントローラシステム109と一つのSDR集中ソフトウェアコントローラシステム111との間のメッセージモデルが必要となる。限定しない例として、メッセージモデルは、単純に、よく知られたIPアドレス上で確かなFTPサーバを操作するSDR集中ソフトウェアコントローラシステム111から成り、SDRソフトウェアコントローラ109は、IPアドレスを通してアップデートされた変調アルゴリズム407、SDRソフトウェアコントローラコンフィギュレーションファイル405、そしてスキャニングヒットデータベース406一式を検索開始するのに接続する。この種のアプローチのその他の実施形態として、セキュアシェル/コピー(SSH)、あるいは、特定の暗号化されて認証されたファイル転送メカニズムを含む。さらに、よく知られたディレクトリストレージあるいは関係するデータベース技術を通して、SDR集中ソフトウェアコントローラ111は各SDRソフトウェアコントローラシステム109に対して固有のカスタマイズされたコンフィギュレーションファイルを提供することができる。
【0074】
限定しない一例として、上述したFTPサーバと接続する各システムは、ディレクトリからマシーンのドメインネームに等しいネームとともに現在のコンフィギュレーションファイルをダウンロードしてもよい。ドメインネームのグループに渡ってファイルを共有したい場合、ショートカットあるいはシャドーファイルが供給を望む各ディレクトリに対して作られる。どの方法でもメッセージ認証コード(MAC)技術を使った検索および認証に基づき、ローカルコンフィギュレーションファイルは上書きされ、ローカルシステムはアップデートされたファイルとともに初期シークエンスを持続する。
【0075】
SDRソフトウェアコントローラシステム109と、システムに含まれるならばSDR集中ソフトウェアコントローラシステム111は、SDRソフトウェアコントローラシステム109の行動を替えるためシステム管理者に制御を提供するコンフィギュレーションインターフェイスを要求する。一つの実施形態では、このコンフィギュレーションインターフェイスは、SDRソフトウェアコントローラシステム109を含む各システムに配置される。代わりの実施形態としては、コンフィギュレーションがSDR集中ソフトウェアコントローラシステム111にのみエンターされ、移動型クライアントはネットワークを通じてコンフィギュレーションを学ぶ。この種のシステムには、SDRソフトウェアコントローラシステム109に要求されるコンフィギュレーションを減少させ、集中化する利点がある。
【0076】
SDR集中ソフトウェアコントローラシステム111のオペレーティングシステム110(あるいはSDR集中ソフトウェアコントローラシステム111がなくSDRソフトウェアコントローラシステム109が実行するオペレーティングシステム110)がグラフィックユーザインターフェイスを提供する場合、同一ホストに配置されるGUIアプリケーションを使ってコンフィギュレーションが実行可能である。グラフィックユーザインターフェイスのないデバイスにシステムがインストールされた場合、コンフィギュレーションセッティングへのアクセスを提供するためその他の手段が利用される。一つの実施形態として、コンフィギュレーション情報がXMLファイルに格納される。XMLファイルはテキスト形式であるため、管理者によって直接容易に編集される。限定しない一例によれば、図8、9に表すようにXMLファイルのテキストを直接編集することは、システムに対する適当なユーザインターフェイスを表す。その他の実施形態では、コンフィギュレーションインターフェイスは、標準ブラウザのウェブプロトコルを通して配信可能である。その他の実施形態では、コンフィギュレーションインターフェイスは、FTPプロトコルを通じてシステムに配信されるコンフィギュレーションファイルを通して提供可能である。その他の実施形態では、コンフィギュレーションインターフェイスは、公表されてよく知られたアプリケーションプログラミングあるいはソケットレベルインターフェイスでもよい。
【0077】
API
API401は、情報を発信し、受信する性能を提供する。API401はまた、外部のエンティティがシステムの行動に動的制御を実行可能にするメカニズムを提供する。API401用実装メカニズムは、非常に多くよく知られている。限定しない一例として、API401は、数ある中で、ローカルソケット、一般的に理解されたマーシャル技術とともに指名されたパイプ、エクスポートされた機能とともに共有化されたライブラリ、そして、同期信号とともにグローバルメモリなどの形をとることができる。
【0078】
公表される情報一式の一例は以下の通りである。
・GPSステータスブロック(GpsStatusBlock)
。座標(Coordinates)-このエンティティは、GPS変調アルゴリズムがシステムに設定されたかチェックされた前回の時にGPSデバイスから引き出されたRAWデータを所有するバッファを表す。
・ネットワークステータスブロック(NetworkStatusBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、特定の変調アルゴリズムの内容の下で動作する間、SDR100を表すため使用可能なテキスト形式の識別子を表す。
。ステータス(Status)-このエンティティは、ネットワークがアップもしくはダウンしているかについての論理指令を表す。
・パケットレシーブブロック(PacketReceivedBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、関連するパケットが受け取られた時にSDR100が現在動作する変調アルゴリズムのディスプレイネームを表す。
。パケット(Packet)-このエンティティは、SDR100を介して受け取ってローカルシステムに配信しなければならない新しいパケットを所有するバッファを表す。
【0079】
受信された情報一式は以下の通りである。
・最適カレントネットワークブロック(ONCurrentlyMostPreferredNetworkBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、外部のエンティティが主要なトランスポートメカニズムとして頼るネットワークのディスプレイネームを表す。
・パケットXmitブロック(PacketXmitBlock)
。ディスプレイ(DisplayName)-このエンティティは、外部のエンティティが関連するパケットを配信しようとするネットワークのディスプレイネームを表す。
。パケット(Packet)-このエンティティは、配信されるパケットを所有するバッファを表す。
・ヒントブロック(OnHintBlock)
。アクション(Action)-このエンティティは、ヒントに対して起こされるべき行動を表す。その値は、“Add”もしくは“Remove”となる。
。ヒントタイプ(Hint Type)-このエンティティは、供給されるヒントの種類を表す。一つの実施形態では、その値は“Time”もしくは“GPS”となる。
。ヒントスタート(Hint Start)-このエンティティは、ヒントが適用されるバンドのためのスタート値となる。時間に基づいたヒントでは、この値はタイムスタンプとなる。GPSに基づいたヒントでは、その値は矩形領域の左上隅を表すGPS座標系となる。
。ヒントストップ(Hint Stop)-このエンティティは、ヒントが適用されるバンドのためのエンド値となる。時間に基づいたヒントでは、この値はタイムスタンプとなる。GPSに基づいたヒントでは、その値は矩形領域の右下隅を表すGPS座標系となる。
。SDRディスプレイネーム(SDR Display Name)-このエンティティは、このヒントが適用される物理的SDRデバイス100のための識別子を表す。
。変調アルゴリズムディスプレイネーム(Modulation Algorithm Display Name)-このエンティティは、ヒント自身を表す。このフィールドでの値は、システムがHintStartおよびHintStopフィールドによって提案されるバンド内に存在するとき選択されるべき変調アルゴリズムを識別する。
【0080】
システムに対して動的制御を実行する外部のエンティティによって提供される例示的情報一式は以下の通りである。
・コンフィギュレーションブロック(ConfigurationBlock)
。コンフィギュレーション(Configuration)-このエンティティは、SdrSoftwareControllerコンフィギュレーションブロックを表す。SdrSoftwareControllerコンフィギュレーションブロック例示的記述は、図8に提供されている。
。タイムアウト(Timeout)-このエンティティは、元のコンフィギュレーションブロックが効力を生じるまでの接続期間をミリ秒で表す。このシステムの実装は、検証目的のため最大のタイムアウトを実施しなければならない。一実施形態では、この最大タイムアウトは、60,000ミリ秒に設定される。この例では、より長い接続期間のための新しいコンフィギュレーションを提供するため、複数の連続的コールがAPI401に対してされなければならない。
【0081】
コンフィギュレーションブロックAPIの使用が認証されるべきであることに注意すべきである。本発明の一態様によれば、共有化された秘密鍵が暗号化に使用される。共有化されたシークレットの管理は、この明細書の範囲外で議論されるよく知られた鍵管理記述を使って実行される。
【0082】
APIの使用は、APIの性能を統合してルータ35と利用可能となる層状のプロキシ形式におけるAPIにする能力を提供することに注意すべきである。このAPIの使用は、API401の性能を統合して、以前出願された米国特許出願2004/0170181公報(タイトル“Prioritized Alternate Port Routing”)のような発明によって提供される機能性にする能力を提供すべきことに注意すべきであり、上記公報の開示内容は明示的にすべてそのまま参照することで組み入れられている。
【0083】
ネットワークマネージメント
ネットワークマネージメントサブシステム403は、コンフィギュレーション404とAPI401を通じて得られる情報とを使用し、ネットワーク接続、ネットワーク品質テスト、そして、最も適切なネットワークを探す利用可能な変調アルゴリズムを通してスキャニングする最適時間の決定を確立する。
【0084】
ネットワークマネージメントサブシステム403は、各SDR100のための利用可能な変調アルゴリズムに渡ってスキャニングし、各変調アルゴリズムを通して利用可能なネットワークの質をチェックし、任意の時間、場所で最もよいネットワークを選び、そして、適切な周波数を再びスキャニングする責任をもつ。加えて、このサブシステム403は、継続しているベースでネットワークの質をモニタリングし、接続がされなくなる度に再スキャニングを初期化し、そして、制御されるネットワークの状態が変化する度に内部および外部のエンティティに知らせる責任をもつ。
【0085】
前に述べたAPI401を通してネットワークの内部状態をモニタリングして公表するのに加え、SDRソフトウェアコントローラシステム109はまた、ルータ35のようなこのシステムの外部にあるエンティティが現在のアクティブなネットワーク上でもつ外部の従属性の状態を理解しなければならない。ルータ35のような外部のエンティティが現在のアクティブなネットワークに従属性をもった場合、APIを通してこのシステムを知らせ、ネットワークを現在最も好ましいネットワークとして指定する。
この機能は、米国特許明細書第6,198,920号、および米国特許明細書第6,418,324号に記載されており、上述したように、開示内容はすべてここに参照されて組み入れられる。内部のネットワーク状態の情報と外部のネットワーク従属情報は、ともにSDRソフトウェアコントローラシステム109にとって重要であり、なぜなら、ネットワークの状態あるいはネットワーク従属性のダイナミックな変化に対する応答として、“スキャン行動”をダイナミックに変更することを要求されるからである。
【0086】
SDRソフトウェアコントローラシステム109は、SDR100の接続性の状態を管理するためルータ35と通信する。ルータ35は、SDRソフトウェアコントローラシステム109がルータ35用の付加的な通信リンクがトランスポートメカニズムとして確立させて使用可能にするという利点を、通信から得る。どのネットワークをルータ35がデータ転送のために依存しているか理解するためにその情報が使用されるため、SDRソフトウェアコントローラシステム109がこの通信から利益を得る。SDRソフトウェアコントローラシステム109は、(局所的に設定され、あるいはSDR集中ソフトウェアコントローラ111から引き出されても)自身のコンフィギュレーション404に沿ってルータ35からの情報を使用し、コントロールされる各SDR100の真の状態を判断する。
【0087】
例示的な状態遷移ダイアグラムが図7に示している。このダイアグラムは、SDRソフトウェアコントローラ109によってコントロールされるべき特定のSDR100が見せる様々な状態の外観を提供する。注意すべきこととして、個々のSDRソフトウェアコントローラ109は実際に複数の物理的SDR100を制御することもできる。この場合、単純に、複数の状態機械が各々独立して動作する。このダイアグラムはまた、SDRソフトウェアコントローラシステム109の観点からSDRの状態が取る可能な遷移経路の外観を提供する。
【0088】
図7を参照すると、SDRソフトウェアコントローラシステム109がSDR100を初期化すると、状態機械はスタート601にエンターする。エンターすると、スタート601からスキャニング状態602への状態遷移がすぐに生じる。この状態では、SDRソフトウェアコントローラシステム109は、ネットワークと接続するまで設定された優先順位に従ってコンフィギュレートされた変調アルゴリズムを循環させている。
【0089】
SDRが一つの設定された変調アルゴリズムを使ってネットワークと接続すると、システム109は、アクティブな変調アルゴリズムの相対的優先度を判断するため、コンフィギュレーション404をチェックする。接続された変調アルゴリズムがSDR100によって設定された優先度の最も高い変調アルゴリズムである場合、スキャニング602からベスト604への状態遷移が生じる。一方、接続された変調アルゴリズムがSDR100によって設定された優先度の最も高い変調アルゴリズムではない場合、スキャニング602から代替605への状態遷移が生じる。ベスト604もしくは代替605の状態に達すると、ルータ35のような外部の機器は、現在の接続されたネットワークが最適カレントネットワーク(Currently Most Preferred Network)と見なされることを本システムに伝えることができる。SDR100が代替605の状態であるときにこの知らせが受信されると、代替605からアクティブ606へのさらなる状態遷移が生じる。ベスト604からアクティブ606への状態遷移は起こらず、それは、2つの状態が重なるときベスト状態604の方がアクティブ状態606に比べて優先度が高いからである。ルータ35のような外部関連機器が、確立されたネットワーク接続が最適カレントネットワークであるともはやみなすことがないことをシステムに通知することも可能である。そのような状況では、アクティブ606から代替605へ戻る状態遷移がさらに生じる。
【0090】
確立した接続が接続状態として安定し、アクティブ606と代替605との間の遷移から離れると、唯一の残りの遷移状態が非接続603となる。この遷移は、ネットワーク接続性が自然に落ち、あるいは、SDRソフトウェアコントローラシステム109が前の状態で設定されたスキャン行動(Scan behavior)によるスキャニングモードに再び入ろうとするため生じる。どちらの場合でも、非接続603からスキャニング602への状態遷移がすぐに生じ、フルスキャニング処理が、最も優先度の高い変調アルゴリズムから最も優先度の低いアルゴリズムへ再び起こる。
【0091】
代わりに、スキャニングヒントデータベース406が存在し、現在時間あるいは現在の地理的位置に適用されるデータベース406内に含まれるレコードが存在する場合、変調アルゴリズムのために設定された厳格な優先順位は破られてもよい。スキャンがSDRデバイス100のため初期化され、適用可能なヒントが存在する場合、ヒントに関連する変調アルゴリズムは、最も優先度の高い変調アルゴリズムへ一時的に昇格させられる。複数のヒントレコードが検出された場合、一時的に昇格された優先度の相対的順序は、ヒントが見つけられた順に設定される。例えば、最初に発見されたヒントは、一時的に最も高い優先度をもつ。2番目に発見されたヒントは、2番目に高い優先度をもつ。そうであってもヒントが最初処理されると、ヒントのためすでにチェックされたものをスキップしながら、設定された最優先度の高いものから最も低いものへスキャニングが再び始まる。さらに、空間もしくは時間の中で任意の特定位置に適用可能な設定されるヒントの存在がスキャンを開始する。スキャニング状態がネットワークと接続すると、上述した状態遷移を続ける。システムのシャットダウンのため接続状態から非接続状態へ状態遷移が生じると、スキャニング602へ戻る遷移は起こらず、システムは代わりにエンド607へ移る。
【0092】
所定の変調アルゴリズムがSDR100にロードされると、ネットワーク接続の質を判断する多くの方法が存在する。標準ネットワークでは、標準的アプローチが使用可能である。限定しない例として、オペレーティングシステムのIPスタックに可視的な標準的IPネットワークにおいては、オペレーティングシステムのIPスタックがDHCPサーバから正当なリースを獲得できたかチェックするような技術は、適切なネットワークの質の指示を提供する。加えて、デフォルトのルータ公告(Router Advertisements)(RFC1256に記載されており、この開示内容は明示的にすべてこの明細書に参照として組み入れられる)を聞くことは、ネットワークの質の指示を提供する。
【0093】
また、様々なリンク層指示が使用可能である。時には、リンク層指示はネットワークに固有である。そのため、これらのタイプの状況では、SDRソフトウェアプログラムを構成するSDRベンダとともにソリューションが働き、SDRソフトウェアプログラムは、SDRユニット100内に知られたリンクのクオリティをSDR100にアクセスするため使用されるインターフェイスメカニズム用に作られた一般的バイナリリンクインジケータに変換することができる。限定しない例として、NDISの従順なミニポートデバイスによって公表されているOID_GEN_MEDIA_CONNECT_STATUSインジケータが含まれ、あるいは、RS−232インターフェイス用DCDラインの状態が含まれる。
【0094】
その他の実施形態では、SDR100が2つのアクセスインターフェイス、すなわちコントロールアクセスとネットワークアクセスを提供する限り、SDRソフトウェアコントローラシステム109とルータ35は共同作業可能である。この場合、SDRソフトウェアコントローラシステム109は、セットアップおよびSDR100の変調アルゴリズムのスキャニングを管理する。ルータ35は、セットアップされて、本システム109のAPI401が状態を公表するのと同じ方法で状態を公表するネットワークの存続性をテストする。SDRソフトウェアコントローラシステム109は、以前に特定されてルータ35からの公表された状態を単に使用し、自身のネットワーク状態として動作する。
【0095】
最初にネットワークをチェックする同様の方法が、アクティブな変調アルゴリズム用コンフィギュレーション設定に従った継続的基調(ongoing basis)で使用される。ネットワークマネージメントサブシステム403は、SDR100内の特定の変調アルゴリズムのための状態変化を検知する度に、API401を通して更新される状態を公表する責務がある。
【0096】
デバイス100にロードされた変調アルゴリズムがGPS変調アルゴリズム(設定された優先値が0)である場合、質問を発信して現在のGPS座標の返答を受け取るのにかかる時間の間にアルゴリズムが単にロードされ続けている。これが終了すると、変調アルゴリズムは接続から外れ、スキャニングが一つの優先度とともに設定された変調アルゴリズムへ移る。これら座標系は保持され、API401を通じて外部のエンティティに提供可能である。GPSとネットワーク状態APIの公表との組み合わせにより、外部のエンティティが日時(time-of-day)ヒントあるいは位置(positional)ヒント用のスキャニングヒントデータベース406をアップデート可能となる。スキャニングヒントデータベース406は、前述したように、API401を通してアップデートされてもよい。
【0097】
SDRソフトウェアコントローラシステム109が多数のSDRデバイス100を管理する度、同じデバイス100に多数の無線周波数(RF)トランスミッタ/レシーバがある、あるいは、多数の物理的デバイス100があるに関わらず、コントローラ109は、異なるタイプの変調アルゴリズム各々がある時間に一つのSDRデバイス100にのみ接続されることを確立するように動作する。言い換えれば、2つの物理的SDRデバイス100は同じ変調アルゴリズムを同時期にアクティブな変調アルゴリズムに指定することはできない。これは、以下の方法によって達成される。特定のSDRデバイス100と関連する状態機械がスキャニング状態に入る度に、デバイス用にサポートされた変調アルゴリズムの完全リストをスキャンが進行していく。しかしながら、その他のSDRデバイス100が接続されるアルゴリズムとしてすでにマークし、また、そのアルゴリズムが現在のSDRデバイス100用のサポートされたアルゴリズムに記載されている場合、そのアルゴリズムはスキャンするアルゴリズムのリストから取り除かれる。このように、どのSDRデバイス100も、すでに他のSDRデバイス100に接続したネットワークをスキャンしない。
【0098】
ルーティングサポート
ルーティングサポートサブシステム402は、バーチャルサブシステムであり、その責務はネットワークマネージメント403とAPI401プロセッシングの内容に実際に実装される。バーチャルサブシステム402の責務は、メッセージングメカニズムとスキャンバックオフメカニズムから成り、これらは、外部の関連機器がデータパケットを送受信することができる経路と同様にシステム109を通じたスキャン期間の間生じるパケット損失の範囲を最小化する。メッセージングメカニズムは、本発明の一態様の行動であり、そこでは、外部のエンティティが、システム109を通してアクセス可能な様々なネットワークの状態の変化に気づく。スキャンバックオフメカニズムは、本発明の一態様の行動であり、そこでは、パケットの損失を最小限にするために所定期間経過後スキャンの進行が中止となる。一つの実施形態では、バックオフタイムアウトは、アクティブスキャン周波数の10分の1に設定されるべきである。この場合、アクティブスキャン周波数が300,000ミリ秒に設定された場合、バックオフタイムアウトは30,000ミリ秒、すなわち30秒に設定される。
【0099】
利用可能な変調アルゴリズムのスキャンを実行する時であるとシステム109が判断すると、システム109は最初にアクティブな変調アルゴリズムの状態をチェックする。アクティブな変調アルゴリズムが最適カレントネットワーク(Currently Most Preferred Network)であると外部のエンティティによって見なされなければ、バックオフ処理は起こらず、単にメッセージだけとなる。この状態では、現在のアクティブな変調アルゴリズムに関連したネットワークは有効範囲外にあることを、上述したAPIメカニズムを通じて外部の関連機器が単に知ることとなる。このAPI通知が送られた後、アクティブなネットワークが接続されなくなり、スキャンオペレーションが呼び出される。
【0100】
一方、外部のエンティティによってアクティブな変調アルゴリズムが最適カレントネットワークとみなされた場合、サブシステム402は、上述したように、API通知とスキャン処理を実行する。しかしながら、サブシステム402は、API401を介して新しい最適カレントネットワークの通知を設定された期間待つ。設定された期間内に新しい最適カレントネットワークが受信されない場合、スキャン処理は中止され、前の最適カレントネットワークが再び使用される。設定されたタイムアウト期間が0に設定されている場合、変調アルゴリズムを通じたスキャニングに関連する処理は、アクティブな変調アルゴリズムが最適カレントネットワークである度に延期される。
【0101】
加えて、ルーティングサポートサブシステム402は、特定の変調アルゴリズムを使ったネットワークに接続される特定のSDR100にパケットを転送するため、API401に対してなされるコールの受容システムとなる。SDR100は、プラットフォーム上で相互に排他的なインターフェイスポートを通じてアクセス可能である。限定しない例として、そのような相互に排他的なインターフェイスポートは、シリアルポートを表す。この場合、データをSDR100に入れる唯一の方法は、インターフェイスポートを所有するエンティティを通すことある。外部のエンティティは、サブシステム402を利用することによってそのようなデバイスを通じてトラフィックをルーティングすることができる。代わりの実施形態として、多重プロセスによって共有化される標準アプローチを通じてアクセス可能となってもよい。限定しない例として、そのようなアプローチは、ソケットコールを含む。この場合、外部のアプリケーションは、トラフィック自身をルーティングすることを選ぶか、もしくは、サブシステムを利用することを選んでもよい。
【0102】
同様に、ルーティングサポートサブシステム402は、データパケットが受け取られた外部のエンティティにシグナルするAPI401に対してなされるコールのオリジネーターである。上述したように、SDR100のインターフェイスのタイプに従い、そのような受信パケットは直接外部のエンティティにルーティングされてもよく、あるいは、相互に排他的なインターフェイスポートである場合、そのような受信パケットはサブシステム402そしてAPI401を通した伝達を通じて外部のエンティティにルーティング可能である。
【0103】
加えて、SDR100が多数のRFトランスミッタ/レシーバをサポートし、あるいは多数の物理的SDRデバイス100がホストに接続されている限り、システムデザインは、複数の同時ネットワーク接続を維持する能力を排除することはない。特に、API401は、多数の有効範囲のSDR管理ネットワークとコンフィギュレーション404内の複数SDRデータブロックをサポートする柔軟性を提供する。加えて、個々のSDR100用の状態機械は、完全に独立し、その他のSDRトランスミッタ/レシーバに関する状態機械と並列して走ることができる。唯一のSDRデバイス100の単一の変調アルゴリズムのみが外部の関連機器によって任意の時に最適カレントネットワークとして指定される場合でも、外部の関連機器がデータパケットを送受信するための付加的なネットワークを同時に使用できることを排除しない。
【0104】
APIのコンフィギュレーション、およびシステム109のランタイムオペレーションは、シングル−デバイス−マルチプル−ネットワーク−サポートデータモデルをシングル−ネットワーク−ロジカル−デバイスデータモデルに効果的に変換する単一の物理的デバイスによって所定時に一度サポートされるネットワークグループのグラニュラリティ(granularity)よりも、ネットワークレベルのグラニュラリティで状態情報を提供する。そのようなグラニュラリティの分割(split)は、システム109によって表される論理ネットワークデバイスをシステムが管理、ルーティングし、そして優先度をつけることを可能にする。
【0105】
処理フロー
SDRソフトウェアコントローラシステム109を通したデータの処理流れの一例が今から説明される。
【0106】
初期化
SDRソフトウェアコントローラシステム109のスタートアップに基づき、すべてのデータ構造が初期化される。SDRソフトウェアコントローラコンフィギュレーションファイル405のローカルコピーが読み出され、認可され、そして適用可能なメモリ内のデータ構造にロードされる(図4参照)。認可ルーチンの一部には、SDRソフトウェアコントローラコンフィギュレーションファイル405で識別される変調アルゴリズムプログラムファイル各々の部分的コピーが実際にコンフィギュレーション内で指定された場所に存在するか検証することが含まれる。存在しない変調アルゴリズムファイルは、永続性ある記憶部に設定され続けているとしても、メモリ内のコンフィギュレーションデータ構造から取り除かれる。また、ファイルを失うと、よく知られたメカニズムを通してローカルオペレーティングシステムのエラーログにエラーメッセージが提示される。ヒントデータベース406のローカルコピーもまた、読み出され、認可され、そして適用可能なメモリ内のデータ構造にロードされる(図4参照)。
【0107】
すべてのコンフィギュレーションデータがメモリに読み出されてその内容が認可されると、コンフィギュレーションで規定される各物理的SDRデバイス100は、特定のインターフェイスポートを通じてアクセスされる。SDRデバイス100に対するアクセスが何らかの理由で否定された場合、イベントがオペレーティングシステム110の標準エラーログへ記録され、そして、違反したSDRデバイス100はメモリにロードされたコンフィギュレーションから取り除かれる。しかしながら、一実施形態では、デバイス100のコンフィギュレーションはマシーンのコンフィギュレーションファイルの永続性あるコピーを維持する。
【0108】
物理的SDRデバイス100のすべてがアクセスされると、SDRソフトウェアコントローラシステム109は、システム109内の行動を管理するため異なるオペレーティングシステムのスレッド(threads)を開始する。限定しない一例として、以下に述べる実際のサブシステムの実装は、同じプロセス内に別々の流れを形成し、同じ演算装置に別々の処理を形成し、複数の演算装置に渡って分配される別々の処理を形成し、あるいは、それらの組み合わせを形成する。この記述の目的のため、後に例示する実施形態すべては、ひとまとめにして流れとして参照される。以下の流れが開始される。
コンフィギュレーション(Configuration)-このスレッドは、定期的に起動し、そして、アップデートされた検索すべきコンフィギュレーションデータがあるかみるためSDR集中ソフトウェアコントローラ11に照合する責務がある。
API(Application Programmer Interface)-このスレッドは、システムの状態のダイナミックな変化に関して外部の関連機器と更新する責務がある。
ネットワークマネージメント(Network Management)-このスレッドは、設定されたSDRs100一式のおよび関連するネットワークの状態をモニタリングし、スキャン処理を管理する責務がある。
【0109】
コンフィギュレーション
システムが初期化されると、コンフィギュレーションサブシステム404の責務のほとんどは遂行されている。一実施形態では、初期化後、コンフィギュレーションサブシステム404は2つの責務だけを実行する。第1の責務は、メモリ内のコンフィギュレーション構造に対して制御されたアクセスを提供し、永続性のコンフィギュレーションファイルが変化したときにアップデートすることによって、コンフィギュレーション構造を管理する。変化するイベント用のコンフィギュレーションデータファイルをモニタリングすることが、最も新しいオペレーティングシステムによって提供されるよく知られたメカニズムを通して起こる。コンフィギュレーションサブシステム404の他方の責務は、設定されると、定期的に起動し、SDR集中ソフトウェアコントローラ111にアクセスすることである。
コンフィギュレーションサブシステム404は、ConfigurationCheckinterval831によって定められる期間に従って起動する。
コンフィギュレーションサブシステム404は、設定されたアドレス(CentralizedControllerAddress833)でSDR集中ソフトウェアコントローラ111にアクセスすることによって、新しいコンフィギュレーションエンティティをチェックする。ConfigurationCheckInterval831がゼロに設定されると、この性能は禁止される。設定値がゼロでない場合、CentralizedControllerAddressは有効IP/ポートを決定しなければならない。
新しいコンフィギュレーションエンティティが利用可能とわかると、エンティティはローカルコンフィギュレーション記憶部405にダウンロードされ、システムはシャットダウンし、上述したように再び初期化される。
【0110】
API
システム初期化の後、APIサブシステム401は、リクエストをサービス開始する準備ができている。
【0111】
APIサブシステム401から状態通知を受けるため、外部の関連機器は最初にサブシステム401に登録しなければならない。登録のためのメカニズムは、API401にアクセするのに使用されるメカニズムに従う。上述したように、メカニズムは、IPパケット、共有化ライブラリ、あるいは共通に使用されるアプローチの数などの形をとる。アプローチにかかわらず、すべての外部の受容部(recipients)は、状態のアップデートを受信するため最初に登録しなければならない。したがって、外部の関連機器がもはや状態のアップデートを要求しなくなると、受容部は登録削除(unregister)しなければならない。限定しない一例によれば、登録/登録削除の一つの方法として、外部関連機器とAPIサブシステム401との間のTCPセッションの確立がある。このようなアプローチは、登録削除が自動的であることが利点である。本発明の一態様によれば、APIに対する一つのコンシューマーのみがサポートされる。他の実施形態では、複数の登録されたコンシューマーがサポートされる。
【0112】
APIサブシステム401が公表する新しい情報をもつ度に、APIサブシステム401は登録されたAPI401のコンシューマーすべてに対してそうする。一実施形態では、3種類の公表される情報があり、それらはネットワークマネージメントサブシステム403からAPIサブシステム401によってすべて受信される。3種類の情報は、すべてApplication Programing Interface Subsustem Descriptionに基づきこのドキュメントにすでに記述されている。
・GPSステータスブロック(GpsStatusBlock)
・ネットワークステータスブロック(NetworkStatusBlock)
・パケットレシーブブロック(PacketReceiveBlock)
【0113】
APIサブシステム401がスタートアップすると、そのスレッドは待ち状態に入る。
新しいコンシューマーがAPI401に登録する度に、API401は、コンシューマーのコールバックメカニズムのアドレスを格納する。上記の提示された例では、メカニズムは、コンシューマーとの接続が許されたローカルのTCPソケットから成る。その後、APIサブシステム401は、追加のコンシューマー登録、今現在のコンシューマーの登録解除、あるいは公表もしくは受信されるデータの待ち状態に再び入る。
【0114】
APIサブシステム401は、ネットワークマネージメントサブシステム403から公表される情報を受け取る度に、それらすべてに対して情報を伝搬する登録されたコンシューマーのリストを循環する。
【0115】
APIサブシステム401がネットワークマネージメントサブシステム403によって情報が公表されるのを待つように、APIシステム401はまた、外部のエンティティから受け入れられる情報を待つ。一実施形態では、外部のエンティティから受け入れられる4種類の情報がある。4種類の情報はすべて、ApplicationProgramingInterfaceSubsystem記述に基づきこのドキュメントですでに記載されている。
・オン最適カレントネットワークブロック(OnCurrentlyMostPreferredBlock)
・パケットXmitブロック(PacketXmitBlock)
・オンヒントブロック(OnHintBlock)
・コンフィギュレーションブロック(ConfigurationBlock)
【0116】
外部のエンティティからのOnCurrentlyMostPreferredBlock通知を受け取ると、API401は、SDRリストおよびSDRリスト内の各エントリーのアルゴリズムリストを循環し、提供された識別子に対応するエントリーを探す。
識別子が見つかると、API401は、知られたSDRデバイス100の接続された変調アルゴリズムを識別子が表すか検証する。一方が真でない場合、APIコールは失敗し、失敗の表示が呼出人に戻される。どちらも真である場合、API401は存在するCorrentlyMostPreferredNetworkのフラグを明らかにし、APIコール内で識別された変調アルゴリズムのためのフラグを裏返す。
【0117】
APIが外部のエンティティからPacketXmitBlock通知を受けると、APIは、SDRリストおよびSDRリスト内の各エントリーのアルゴリズムリストを循環し、提供された識別子に対応するエントリーを探す。PacketXmitBlockは、パケットバッファが転送されるべきネットワークの識別子とともに、実際のパケットデータバッファを含む。識別子が見つかると、APIは、知られたSDRデバイス100の接続された変調アルゴリズムを識別子が表すか検証する。どちらか一方が真でない場合、APIコールは失敗し、失敗の表示が呼出人に戻される。どちらも真である場合、APIはネットワーク転送のためネットワークマネージメントサブシステム403にパケットを提供する。API401が外部のエンティティからOnHintBlock通知を受け取った場合、APIは、ヒントデータベース406のデータ格納部へエレメントを追加あるいはエレメントを格納部から取り除く。ヒントアクション(Add/Remove)の種類に関係なく、API401はいくつかの予備的ステップをとる。第1に、SDRデバイス100と供給される変調アルゴリズムが実際にコンフィギュレーションサブシステム404に存在することを確認する。どちらか一方のエンティティが存在しない場合、アクションは中止され、API401は呼出人に対して失敗コードを戻す。両エンティティとも存在する場合、API401が起こす次のステップは、同じヒントタイプ、ヒントスタート、ヒントストップ、SDRデバイス100、そして変調アルゴリズム(言い換えれば、すべてのヒントフィールドが等しい)を備えた存在するエンティティを探し出すことである。提供されるヒントアクションが、ヒントを加えることであって複製のヒントが存在しない場合、ヒントが加えられる。そうでなければ、アクションは中止され、API401は呼出人に失敗コードを戻す。提供されるヒントアクションがヒントを取り除くことであって複製ヒントが存在しない場合、アクションは中止され、API401は呼出人に失敗コードを戻す。そうでなければ、ヒントは、ヒントデータベース406から取り除かれる。
【0118】
API401がConfigurationBlock通知を外部のエンティティから受けると、上述したように、API401は、供給されるコンフィギュレーションデータとともにシステムを再び初期化する。また、APIはタイマーをスタートさせる。タイマーが期限切れになると、システムは永続性ある記憶部からのコンフィギュレーションデータとともに再び初期化する。これに関し、APIサブシステム401を通じて受信された新しいコンフィギュレーションは一時的なセットアップのみとなる。受信されたコンフィギュレーションに関するタイマーが期限切れの場合、システムのセットアップは元のコンフィギュレーションに戻る。
【0119】
ネットワークマネージメント
システムが初期化されると、ネットワークマネージメントサブシステム403は、システム内の実質的作業の大部分を実行する。一実施形態では、ネットワークマネージメントシステム403は、以下のアクションの責務がある。
・SDRデバイス100での変調アルゴリズムのスキャニング
・SDRデバイス100にダウンロードされた変調アルゴリズムを通してアクセス可能なすべてのネットワークの品質のチェック
・APIサブシステム401に対するネットワーク状態通知の提供
・APIサブシステム401に対するパケット受信通知の提供
・APIサブシステム401に対するGPS受信通知の提供
・SDRデバイス100にロードされた固有の変調アルゴリズムを通してアクセス可能なネットワークに送信されるべきパケットの処理
【0120】
ネットワークマネージメントシステム403は、コントロールされる物理的SDRデバイス100各々に対する一つのスレッドあるいは処理とともに一式のオペレーティングシステムのスレッドあるいは処理を管理する。図10は、本発明の一実施形態の例示的フローチャートを示す。多数のスレッドあるいは処理は、異なるSDRデバイス100のフローにおける様々なステップにおいて同時に動作してもよい。図10を参照すると、処理は次の待機タイムアウト算出(CalculateNextWaitTimeout)1300において開始される。この最初のステップは、図12に示すさらなるフローによって実際に例示される。
【0121】
図12を参照すると、最初の値は、現在時刻の年代順に従って適用する次の時間に基づいたヒント(Time−Based−Hint)から現在時間を引いたものに関連するスタート時間として計算される(1305)。この値は、“A”として記録される。適用可能な時間に基づいたヒントが存在しない場合、この値はデータ種類の最大値に設定される。
次に、ステップS1310では、現在のアクティブな返答アルゴリズムに対する有効範囲チェック期間(CoverageCheckInterval)として、第2の値が計算される。第2の値は、Bとして記録される。現在アクティブな変調アルゴリズムが存在しない場合、この値は、データ種類の最大値に設定される。次に、ステップS1315では、現在のSDR100の状態のために設定されたスキャン周波数(ScanFrequency)から、現在の時間の結果(CurrentTime)から前回生じたスキャンの時間(Time of Last Scan)を減算した値を引いた、第3の値が計算される。この値は、“C”として記録される。最後に、A,B,Cの最小値が使用され、現在の待機タイムアウト(WaitTimout)の値と見なされる。
【0122】
カレントの待機タイムアウトがわかると、再び図10を参照する。図10の次のステップは、SDRイベント待機(Wait For SDR EVENT)のステップである。SDRイベントが検出され、あるいはタイムアウトが生じた場合、ステップS1100の結果が調べられる。第1のチェックは、ヒントイベントであるか否かを判断し、あるいは次の時間に基づいたヒント用の待機タイムアウトが始動したか否かを判断することである(1105)。これら条件の一つが真であれば、条件はさらに審査され、原因が特にヒントタイマーによるものか判断される(1110)。これが真であれば、スキャンイベントはすぐに設定され、処理はSDRイベント待機のステップ(1100)に戻る。そうでない場合、最後に格納されたGPS座標が審査され、設定された位置に基づくヒント(positional−based hint)とオーバラップするか判断される(1115)。この場合、スキャンイベントすぐに設定され、処理はSDRイベント待機のステップ(1100)に戻る。
【0123】
ヒントイベントもしくはヒントタイマーも始動していない場合、次のステップは、前の空の(pre-emptive)スキャンを保証する上述した状態機械からのカレント状態で十分な時間が経過したか否かを判断する。この場合、SDRイベント待機(1100)に戻る前にスキャンイベント設定(Set Scan Event)へ進む(1125)。次のスキャンのための時間(Time For Next Scan)(1120)ではない場合、SDRイベントがさらに調べられ、カバレッジ変更のイベントであるか否か判断される(1130)。そうである場合、処理は、APIに対するネットワーク状態通知送信(Send Network Status Notification to the API)になる(1135)。その後、カバレッジ変更が、無線通信の有効範囲内の条件から外れたことに起因するか否か判断される(1140)。そうである場合、処理はスキャンイベント設定(1125)になる。どちらのケースも、次のステップはSDRイベント待機(1100)へ戻る。
【0124】
イベントがカバレッジ変更イベントではない場合、処理は、イベントがAPIイベントからのXmit Packetイベントであるかチェックする(1145)。この場合、特定のSDRがカバレッジ内にあるのか調べることが、第1のチェックとなる。SDRがカバレッジ内にない場合、処理はSDRイベント待機(1100)のステップに戻る前にAPIサブシステムに失敗コードを戻す(1155)。カバレッジ内である場合、SDRイベント待機(1100)のステップに戻る前にSDRへのパケット送信(1160)ステップへ進む。
【0125】
イベントがAPIからのXmitパケットイベント(1145)ではない場合、イベントがSDRからのRecvパケットイベントであるかを見るためチェックする(1165)。そうである場合、SDRからパケットが読み出され(1170)、パケット受信通知が、最終的にSDRイベント待機(1100)のステップに戻る前にAPIに送られる(1175)。
【0126】
最後に、イベントが設定されたスキャンイベントであるか判断するためイベントが調べられる(1180)。そうでない場合、フローはカバレッジ状態チェックのステップ(1185)に進み、カバレッジが現在接続されている変調アルゴリズムでチェックされる。実際にSDRイベント用待機(1100)が割り込まれるが、以前にチェックされたイベントに起因して割り込まれない場合、デフォルトの行動(behavior)が、現在接続されたネットワークのカバレッジ状態をチェックする(1185)。ネットワークがまだ有効範囲内であるとカバレッジチェックが判断すると(1190:NO)、フローはSDRイベント待機(1100)に戻る。ネットワークがもはや有効範囲内にはないとカバレッジチェックが判断すると(1190:YES)、SDRイベント待機(1100)に戻る前にカバレッジ変更イベントが設定される(1195)。
【0127】
イベントが実際にスキャンイベントである場合(1180)、フローはスキャン処理に進む(1120)。一実施形態では、スキャン処理が図11に示すフローチャートに従って実行される。図11を参照すると、最初になされるチェックは、現在の接続された変調アルゴリズムが、外部の関連機器によって最適カレントネットワーク(Currently Most Preferred Network)として指定されたか否かを判断することである(1205)。そうである場合、中止タイマーがセットアップされる(1210)。
そうでない場合、あるいは中止タイマーがセットアップされた後である場合、デバイス用のサポートされた変調アルゴリズムのリストがコンフィギュレーションサブシステムから引き出される(1215)。ステップ1215は、適用可能なヒントを引き出すことに関連した処理の実行と、ヒントに関連したアルゴリズムを先に述べた方法でSDRデバイス用アルゴリズムの標準の優先順位リストに併合させることを含む。ステップ1215の終了後すぐに、他のSDRデバイスによって接続性がアクティブであって維持される変調アルゴリズムを取り除くため、生成されたリストがステップ1220で取り除かれる。
【0128】
各SDRレシーバが一度に一つのアルゴリズしか操作できないことから、ステップ1220の後、変調アルゴリズムが今のSDRデバイスに現在続されている場合には、現在接続されている変調アルゴリズム用APIサブシステムに、有効範囲外の通知が送られる(1225)。その後、リストの終わりに到達するか(1230:YES)、もしくは存続可能なネットワークがすでに接続されてカバレッジイベントが設定される(1290)まで、リストのアルゴリズムすべてが処理される中に、ループがエンターされる。各ループの繰り返しとともに、中止タイマーがチェックされる(1235)。中止タイマーが時間を超えている場合、さらなるチェックがなされ(1240)、新しい最適カレントネットワークがAPIサブシステムを通じて関連する外部のエンティティにより指定されたか否か判断される。新しい最適カレントネットワークが存在する場合、ループを通じて処理が続けられる。最適カレントネットワークが存在しない場合、以前にアクティブな変調アルゴリズムがデバイスにダウンロードされる(1245/1255)。さもなければ、まだ昇格されていない次に優先度が最も高いアルゴリズムがデバイスにダウンロードされる(1250/1255)。
【0129】
アルゴリズムがダウンロードされ(1255)、SDRが初期化されると、カバレッジ状態がテストされる(1265)。現在の変調アルゴリズムを走らせているSDRが有効範囲でない場合(1270:NO)、次のループの繰り返し処理がステップ1230に戻って実行される。現在の変調アルゴリズムを走らせているSDRが有効範囲にある場合(1270:YES)、そのアルゴリズムがGPSアルゴリズムであるか否かに関してチェックされる(1275)。GPSアルゴリズムでない場合、カバレッジ変更イベントが設定され(1290)、フローは、SDRイベント待機ステップ(1100)に戻る。そうでなければ、GPSデータがデバイスから読み出され(1280)、APIサブシステムへの通知のためデータが配信されるとともに、ヒントイベントが設定され(1285)、そして、ステップS1230に戻って次のループ繰り返し処理が実行される。
本発明の一態様によれば、ゼロもしくは1つ以上の従来型無線通信デバイスと組み合わせた一つ以上のSDRセットを使いながら、複数の非類似無線ネットワークをシームレスにローミングする方法が提供される。ここで記載される性能(capability)は、代わりのネットワークの利用可能性のインテリジェントなチェックを提供し、そのようなチェックが従属する外部のエンティティに対して引き起こす中断を最小化しながらチェックする。提供される性能は、SDRが複数のトランスミッタおよびレシーバを提供し、あるいは複数の異なるSDRがモバイルコンピューティングデバイスに利用可能なとき、代わりのネットワーク利用可能性のチェックを最適化する。加えて、本発明の他の態様によれば、SDRのトランスミッタ/レシーバが複数存在するとき複数のアクティブネットワークを同時に確立する能力が呼び出される。本発明の他の態様によれば、公知のAPIを通してネットワークのチェック行動(behavior)をプログラム的に確立する機能性が提供される。
提供される手段は、上述のAPIを介して、有効範囲のチェック行動を存在する無線ミドルウェアソルーションと統合する。本発明のその他の態様によれば、外部のエンティティがシステムによって確立された接続に依存する期間の間、パケットの損失を最小化するようにシステム行動が構成される。また、本発明の一態様によれば、モバイルノード内の局所的なソリューション、そしてコンフィギュレーションデータベースゲートウェイ内の中心的なソリューション両方のコンフィギュレーションデータベースを管理することが提供される。
【0130】
本発明は、いくつかの例示的実施形態を参照して説明されたが、使用された用語は、限定する用語ではなく、説明と例示の用語と理解される。変更は、現在述べているものおよび補正されているものとして、添付されたクレームの範囲内で可能であり、その変更は本発明の意図から離れない。本発明は、特定の手段、構成、実施形態を参照しながら説明されているが、本発明が特定の開示されたものに限定されることを意図せず、むしろ本発明は、添付されたクレームの範囲と同じような機能的に均等な構成、方法、および使用にまで拡張する。
【0131】
本発明の様々な実施形態に従い、ここに記載された方法は、コンピュータプロセッサで走るソフトウェアプログラムとしてのオペレーションに意図される。限定されないアプリケーション特別集積回路、プログラム可能な論理アレイおよび他のハードウェアを含む専用のハードウェア実装は、同様にここに記載された方法を実行するものとして構成可能である。さらに、限定されない分散処理又はコンポーネント/オブジェクト分散処理、並列処理又は仮想マシーン処理が、ここに記載された方法を実行するものとして構成可能である。
【0132】
注意すべきこととして、ここに記載された本発明のソフトウェアの実行は、ディスクあるいはテープのような磁気媒体、ディスクなどの光磁気媒体或いは光媒体、一つ以上のROM、RAMあるいはその他の書き換え可能なメモリを所有するメモリカードやその他のパッケージなどの固体状態媒体など、任意に具体的な記憶媒体に格納される。E−mailに添付されるデジタルファイル、あるいはその他の情報を自身に含むアーカイブあるいはアーカイブ一式が、具体的な記憶媒体と均等な配布メディアとみなされる。したがって、本発明は、ここに提示されるとともに技術に認識される均等物および承継するメディアを含むような具体的な記憶媒体および配布メディアを含むものとみなされ、ソフトウェアのインプリメンテーションが格納される。
【0133】
本明細書では、特定の標準およびプロトコルを参照しながら実施形態において実装された構成および機能を説明しているが、本発明は、そのような標準およびプロトコルに限定される意図はない。インターネットの各標準およびその他のパケット交換ネットワーク転送(例えば、IPバージョン4、IPバージョン6、UDP/IP、TCP/IP、ICMP)、そして無線ネットワーク(802.11a、802.11b、802.11g、UWB、CDMA1xRATT、CDMA1xEVDO、GSM、CDPD、GPRS、EDGE、UMTS、RD−LAP、SMR、LMR)は、技術状態の一例を示す。そのような標準は、本質的に同じ機能を備えたより早くより効果的な同等物に周期的に取って代わられる。したがって、同じ機能をもつ代わりの標準およびプロトコルは、同等物と見なされる。
【図面の簡単な説明】
【0134】
【図1】一つのRFトランスミッタを備えた従来のSDRの一般的外観図である。
【図2】複数のRFトランスミッタを備えた従来のSDRの一般的外観図である。
【図3】物理的にモバイルコンピュータデバイスに接続される従来のRF無線と組み合わせて使用されるSDRの一般的外観図である。
【図4】本発明の一態様に従った、ランタイム状態維持に務めるメモリ内データ構造の例示的な実施形態を例示する図である。
【図5】本発明の一態様を非類似ネットワーク間のシームレスローミングサービスを提供する現存システムと統合させたシステムアーキテクチャを示したブロック図である。
【図6】本発明の態様を含む例示的サブシステムとデータ格納部を記述するシステムアーキテクチャを示したブロック図である。
【図7】システムの一態様となる状態遷移図である。
【図8】サンプルとなるXMLファイルとして例示的コンフィギュレーションデータ構造を示した図である。
【図9】サンプルとなるXMLファイルとしてその他の例示的コンフィギュレーションデータ構造一式を示した図である。
【図10】本発明の一態様に従った、値とワークマネージメントサブシステムのメインフローを記載する例示的フローチャートを示した図である。
【図11】図10に記載されたメインフロートの一態様であるスキャンプロセッシング行動の詳細フローを記載する例示的フローを示した図である。
【図12】本発明の一態様に従った、図10のスキャンプロセッシングメイン制御ループに使用されるタイムアウト期間の計算を記載する例示的フローを示した図である。
【技術分野】
【0001】
本出願は、米国仮出願第60/604,045号(発明者:ボグドン他、出願日:2004年8月25日)の優先権を主張し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0002】
本出願は、米国特許出願第09/652,009号(出願日:2000年8月31日、タイトル“Method and Apparatus for Routing Data Over Multiple wireless Netowork”)の部分継続出願であり、また、米国特許出願第08/456,860号(米国特許第5,717,737号、タイトル:“Apparatus and Method for Transparent Wireless Communication Between a Remote Device and a Host System”の部分継続出願である米国特許出願第08/932,532号(出願日:1997年9月17日、米国特許第6,418,324号、タイトル“Appartus and Method for Intelligent Routing of Data between a Remote Device and a Host System”)の部分継続出願である米国特許出願第10/084,049号(出願日:2002年2月28日、タイトル“Port Routing Functionality”)に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0003】
本出願は、米国特許出願第10/374,070号(タイトル“Prioritized Alternate Port Routing”、出願日2003年2月28日、対欧米国特許出願公開第2004/0170181号公報)に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0004】
本出願は、米国特許出願第10/835,396号(タイトル“Simultanously Routing Data Over Multiple Wireless Netowork”、出願日2004年4月30日)に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0005】
本発明は、無線通信分野に関する。特に、本発明は、ソフトウェア無線(SDR)、いくつかのSDRの組み合わせ、あるいは、SDRと従来型無線一式を使用する場合のける複数の非類似無線ネットワーク間の通信に関する。本発明の一態様によれば、モバイルコンピュータデバイスは非類似無線ネットワーク間でデータを送受信可能であり、モバイルユーザは、SDRの一部又はすべてを含む無線一式を使ってネットワーク間をシームレスにローミングする。
【背景技術】
【0006】
ここ10年、無線ネットワークによって携帯を利用する労働者の日々の行動は統合されてきた。多くの組織が、労働者の生産性を向上させるため、無線ネットワークの使用を通じて実質的なコスト削減を実現し続けている。また多くの場合、無線ネットワークは、会社がカスタマーに提供できる新しいサービスの創作をもたらした。
【0007】
無線通信会社は、GPRS、EDGE、1xRTT、そして1xEvDOのような第3世代ネットワークを作るために数十億ドルを費やした。802.11無線LANの使用が世界中で急増している。そして今、RD−LAP、EDACS、Opensky、Dataradioのような多くのプライベート無線周波数(RF)ネットワーク、そして従来すなわち長距離ネットワークが、世界中を通して何百万の公益事業及び公安労働者によって使用されるべきものとして存在する。
【0008】
米国特許第6,198,920号(発明者:ドビエックその他、タイトル“Intelligent Routing of Data between a Remote Device and a Host System”)、そして、米国特許第6,418,324号(発明者:ドビエックその他、タイトル“Apparatus and Method for Transparent Wireless Communication between a Remote Device and a Host System”)などの特許が存在し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられ、複数のネットワークの同時利用の改善がクレームされている。これら特許では、ユーザは非類似ネットワーク間で継ぎ目なく(seamlessly)ローミングすることができる。したがって、携帯利用するワーカーが第1のネットワークの範囲から出ると、ワーカーは代わりのネットワークで通信を続けることができる。
【0009】
非類似ネットワーク間でのシームレスなローミングのため創り出された解決処理は、無線ネットワークの選定を促進するのに役立ってきた。携帯利用者は、異なるネットワークの強度を変えるより良い利点を得ることが可能となり、また、ネットワークが表す制限を最小化することができる。例えば、無線LANが狭いエリアに渡って高いバンド幅のアクセスを提供する一方でCDMA 1xRTTは広い範囲に渡ってより低いバンド幅を提供するため、モバイル型クライアントは、両方のネットワークを自動的に使用するように構成することができる。無線LANの範囲のとき、(CDMA 1xRTTの範囲であろうとなかろうと)移動型クライアントは、ネットワークのスループット向上の利点がある。しかし、クライアントが無線LANの制限されたカバレッジエリアから出てそのままの状態でいる、あるいは、CDMA 1xRATTのカバレッジエリアに入ると、クライアントは自動的にカバレッジエリアのより広いネットワークの利点を得る。
【0010】
これらのタイプのソリューションはエンドユーザにとって非常に強力であり、無線ネットワークの改善された制御を提供するが、シームレスローミングのソリューションにはいくつかの挑戦が残っている。伝統的には、ユーザが異なるネットワーク間でローミングする必要がある場合、ユーザは各ネットワークに対して無線トランシーバ1つ獲得しなければならない。このモデルでは、各無線トランシーバは、獲得される特別な一つのネットワークにだけしか関連しない。したがって、シームレスローミングのソリューションをオペレーティングするモバイルコンピュータデバイスは、典型的に複数のネットワーク間での通信のため使用される複数の通信デバイスを有する。これら複数の通信デバイスが典型的にかなりの資本費用を表すだけでなく、アクティブ状態での複数の通信デバイスを維持することがバッテリーの寿命を大いに短くする。複数の異なる通信デバイスはまた、PCカードやシリアルポートインターフェイスなどのモバイルコンピュータデバイス内の高価な物理的リソースの使用を要求する。さらに、新しいネットワークサービスが導入されると、古い通信デバイスは、おそらくその新しいネットワークで通信できないであろう。この場合、ユーザは、新しいサービスを享受したければ、追加的な費用を被ることを強いられる。
【0011】
多くの研究と開発の努力が、これら問題を解決するために注がれてきた。ひとつの解決法は、ソフトウェア無線(SDR)である。SDRは、無線データの使用法に関連する多くの問題の解決に役立つ。SDRは性能を提供し、そこでは、様々な異なる無線ネットワークに無線を適用させるため、ソフトウェアを通して無線の性質が修正される。したがって、影響を最小限に留めながら、SDRにダウンロード可能な適切なソフトウェアアルゴリズムが存在する無線ネットワークでモバイルデバイスが通信できる性能を、SDRは提供する。無線を新しい無線ネットワークに適合させるのに必要とされることは、新しいソフトウェアアルゴリズムと一緒にSDRを更新することだけである。
【0012】
SDRのコンセプトを非類似ネットワーク間でのシームレスローミングに結びつけると、モバイルユーザは、ネットワークの接続性および自動的ネットワーク接続に関して大きく拡大する可能性一式を実現することができる。現在、携帯デバイスは、仮想的にどの無線ネットワークもサポートできる単一のハードウェアプラットフォームを使用することができる。しかしながら、現在のSDRソルーションは、無線データ市場における採用を妨げるだろういくつかの問題が重荷となっている。
【0013】
伝統的に、SDRの再プログラミングの多くは、携帯デバイスのユーザによる手動的介入を通じてのみ行われてきた。したがって、使うべきネットワークの決定を自動的に行う必要性によってユーザが妨げられるだけでなく、新しいメディアを通した通信をサポートする必要なソフトウェアとともにSDRを再プログラムするコマンドをマニュアルで初期化する責務がある。
【0014】
従来のSDRにおけるその他の問題は、現在のアクティブなネットワークとは異なる代わりのネットワークの特徴をアクティブに調べる内在的性能の欠如にある。限定しない一例として、そのようなネットワークの特徴には、信号強度および/又はデータ転送遅延時間(latency)が含まれる。現在SDRにプログラムされているネットワークがアクティブにデータ転送及び受信のため使用されている場合、SDRのソフトウェアプログラムを変更し、ネットワークの状態をチェックし、そして、通信を継続するため元のネットワークに戻ることには、問題がある。このようなシナリオは簡単にデータ損失、アプリケーション失敗、あるいは中止されるTCPセッションを導く。加えて、ユーザがこの種のモデルの使用に直接責任がある場合、マニュアルによる介入の多さが重荷になって広く採用が認められない。
【0015】
したがって、SDRを使用するとき、複数の無線ネットワーク間での通信を管理する必要がある。また、ダイナミックにSDRを再設定してモバイルユーザのダイナミックな性質を支援するシステムが必要である。さらに、アプリケーションに深刻な影響を与えることなく、その他の無線ネットワークの利用可能性をシステムが知的に探索する必要がある。そして、ユーザの介入なくこの性能を自動的に管理する必要性がある。
【0016】
SDRは、無線信号の変調および復調のためソフトウェアに影響を行使する(leverage)転送システムである。伝統的に、無線は特定の周波数、伝送媒体に向けて開発され、そして、プロトコルとその性能は不変的にデバイスにデザインされていた。このアーキテクチャは、新しいフォーマット又はネットワークをサポートするため無線を再プログラムするのに非常に時間を消費し、コストがかかった。したがって、無線ネットワークを変える必要性があると、ユーザは新しいハードウェアを購入することを強いられた。
【0017】
SDRは、従来の無線通信デバイスに存在する“更新問題”を解決するようにデザインされている。ハードウェアに無線ネットワークを提供する代わりに、システムは、フレキシブルなプラットフォームに作り上げられる。異なる無線ネットワークのサポートは、様々なプログラム言語を使った変調アルゴリズムに書かれている。変調アルゴリズムは、ネットワークの特徴およびネットワークを通じた通信方法を記述する。したがって、ワイヤレスネットワークで通信するモバイルユーザにとって要求されることは、適切な変調アルゴリズムをSDRのハードウェアプラットフォームにロードすることだけである。この性能はすべてソフトウェアの修正によって提供され、その結果、以前から可能な少ない労力、少ないコストでアップグレード、変更することができる。
【0018】
多くのSDRは、一つの無線周波数(RF)トランスミッタ/レシーバだけを備えている。例示的アーキテクチャが図1に示されている。SDR100は、いくつかのハードウェアおよびソフトウェアコンポーネントを備える。SDR100は、デジタル信号処理とDFネットワークとの間の変換層を提供するDFデジタルコンバータ101を提供する。FPGA/DSP102は、変調アルゴリズムの処理能力を提供している。例示的な変調アルゴリズムには、GSM104、CDMA105、そしてWiMax106が含まれる。そして、マイクロコントローラ103は、SDR100全体を制御するための基礎となるサポート構造を提供する。
【0019】
SDR100に加え、モバイルコンピュータデバイス108が使用される。モバイルコンピュータデバイスは、データパケットを創り出すアプリケーションおよびコードモジュールを実行する責務がある。これらデータパケットは、物理データリンク107を渡って転送される。限定しない一例として、物理データリンクは、RS−232、イーサネット、USB、UWB、Bluetooth、あるいはその他の標準リンクの形になっている。モバイルデバイス108内にも、オペレーティングシステム110がある。オペレーティングシステムは、SDRの性能を制御するSDRソフトウェアコントローラ109を実行させる。オペレーティングシステム110はまた、複数の非類似ネットワーク間のローミングを管理するローミングソリューションをサポートする。ローミングソリューションは、オペレーティングシステム110の統合されたコンポーネントとして、あるいはオペレーティングシステム110の最上位層で実行されるアプリケーションソフトウェアとして具体化される。
【0020】
この種の構成では、無線は、一度に一つのパーソナリティのみしかもっていない。したがって、モードを変更するとき、新しいネットワークを使用するため新しい変調アルゴリズムをダウンロードすることをユーザは要求される。さらに、ユーザがダウンロードすると、元のネットワークに戻ることを望む場合には、元の変調アルゴリズムのダウンロードをユーザは要求される。
【0021】
シームレスローミングソリューションの一つの特徴は、他の無線ネットワークの利用可能性を自動的に探索できることであり、その結果、アクティブなネットワークを切り替える最も良い時期がいつであるかソリューションは理解できる。一つのトランスミッタ/レシーバのみ存在する場合、任意の一回に一つのネットワークのみサポートするように設定可能である。したがって、自動的に無線を周期的に再設定してミドルウェアが代わりの無線ネットワークをチェックできることが必要である。この機能は、エンドユーザに意識されない(transparent)ようにしなければならない。
【0022】
この問題を解決できる一つの方法は、複数のRFトランスミッタ/レシーバを備えたSDR100を定めることである。図2は、この種のアーキテクチャをサポートするシステムの一例を示す。このアーキテクチャは、初期のSDRアーキテクチャをなくし、2番目のFPGA、DSP102と2番目のRFデジタルコンバータ101を提供する。このデザインとともに創作されたシステムにより、ミドルウェアソフトウェアは、第1のネットワークが使用できなくなる時に使用できる一連の代替ネットワークの利用可能性を調べるために第2のトランスミッタ/レシーバを使用しながら、主要な転送に第1のトランスミッタ/レシーバを使用することができる。この処理はとても有効である(すなわち、主要なチャンネルは他のネットワークがスキャンされている間妨害されない)一方で、モバイルコンピュータデバイスのユーザは、代わりのネットワークの存続性(viability)を決定する第2のチャンネル上のプロファイルを変更するため、伝統的に手動的な介入を要求されていた。この処理をできる限りトランスペアレントに行うコンフィギュレーションおよびクエリー(query)機能を自動的に実行するため、ミドルウェアソリューションの開発が必要とされる。SDR100が複数のRFトランスミッタ/レシーバをサポートしない場合、それぞれ一つのRFトランスミッタ/レシーバを備えた複数のSDRユニット100が同一の性能を提供することができることに注意すべきである。本発明の目的として、両方のコンフィギュレーションが交換可能と考えられる。
【0023】
SDRは、無線通信用デフォルトスタンダードとして取り上げられるが、SDRの実装されないモデムが他のネットワークで有益でありながらSDR100がいくつかのネットワークで有益である状態がある。例えば、高速リンクにおいて、高速変調アルゴリズムを実行するための物理的リソース要求は、所望するものより高価になるであろう。したがって、SDR100が従来の(SDRの備えていない)実装と組み合わされる状況が可能である。このアーキテクチャは、図3に示されており、図2に表されているアーキテクチャによって作られる。このアーキテクチャは、モバイルデバイス108に接続される従来型DF無線112をサポートする。この無線112は、モバイルデバイス108に組み入れ、もしくは外部に接続させることが可能である。したがって、ミドルウェアソフトウェアは、個々のネットワークとしてSDR100のパーソナリティすべてを調べ、同様に、これらをモバイルコンピュータ108の中に装備される異なった従来型モデム112と組み合わせることができる。
【0024】
加えて、SDRデザインによって可能になるフレキシビリティにより、変調アルゴリズムの設計者は、SDRの性能に影響を与え、性能を広げる追加的な差別化できる特徴を提供することができる。SDR100を制御するミドルウェアアプリケーションも、変調アルゴリズムの中でダイナミックにパラメータを修正可能である。一つには、転送上の特別なセキュリティ用に使用される。例えば、ミドルウェアアプリケーションがAPIを通じて変調アルゴリズムの一部をダイナミックに変更できる場合、ミドルウェアアプリケーションはほんのわずか変調アルゴリズムを変更することが可能であり、通信傍受者はどのような転送も解読できない。この性能は、すべての携帯ユニットが同じ形式で通信するのを隔離するためにクライアントとベースステーションとの間で生じなければならない幾つかの同期を要求する。
【発明の開示】
【課題を解決するための手段】
【0025】
前述の観点から、同時通信もしくはシームレスローミングの処理能力の目的で、静的な携帯ホストアイデンティティを維持し、多数の非類似ネットワーク間でローミングしながら、一つ又はそれ以上のSDRをゼロもしくは1つ以上の従来型無線と組み合わせて使用することに、本発明の一態様は向けられており、その幾つかは同じ物理的SDRの異なる変調アルゴリズムプログラムを通じてサポートされる。
【0026】
本発明の一態様によれば、多数の非類似ネットワーク間でシームレスにローミングするためSDRに影響を与える性能がモバイルユーザに与えられる。このプロセスは、ユーザおよびアプリケーションに対してシームレスかつトランスペアレントであるとの意味が持たれる。以下に記述する幾つかの機能は、伝統的に相互に行われる。しかしながら、シームレスローミングの真の普及を現実にするため、これらの性能は、無線ミドルウェアソリューションによって自動的に操作されなければならない。
【0027】
本発明の一態様によれば、様々な変調アルゴリズム間でSDRの変遷(transition)を管理する方法が提供される。提供される方法には、変調アルゴリズムがユーザの好みに従って選択されるように変遷を調整することが含まれる。また、提供される方法には、変調アルゴリズムがAPIを通じてダイナミックに選択可能となるように変遷を調整することが含まれる。また、提供される方法には、モバイルコンピュータデバイスからのシームレスな通信に対して最も影響のない期間にだけ起こるように変遷を調整することが含まれる。また、提供される方法には、より好ましいネットワークの出会う可能性が高い期間に起こるように変遷を管理することが含まれる。
【0028】
本発明の一態様によれば、あらかじめ設定されたインターバルではなく、関連するスキャニングヒントのデータベースに基づいて上述した変遷管理の行動(behavior)を単独で修正する方法が提供される。スキャニングヒントは、幾何学的位置、日時、あるいは様々なその他の外部の指令に基づく。限定しない一例として、付加的な外部指示には、携帯デバイスのバッテリパワー、あるいはネットワーク信号強度の時系列的傾向が含まれる。
【0029】
本発明の一態様によれば、特定の種類のトラフィックの存在に起因して上述する変遷管理の行動を修正する方法が提供される。限定しない一例として、特定の種類のトラフィックを同定するため使用される基準は、(上述した)米国特許公開第2004/0170181号公報(タイトル“Prioritized Alternate Port Routing”)に使用される基準と同等であってもよく、その公報に記載された内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0030】
本発明の一態様によれば、複数のSDRがモバイルコンピュータデバイスに存在する状態で多数のSDRがアクティブ状態で維持されることを確立するため、上述した変遷管理行動を管理する方法が提供される。また、提供される方法には、変遷が起こるネットワークがもはやモバイルコンピュータデバイスに利用できない場合すぐにシームレスローミングの切替時間が起こるように、同時にアクティブな多数のSDR一式を管理することが含まれる。また、提供される方法には、2つ以上の物理的SDRデバイスが同じ変調アルゴリズムをスキャンし、排他制御(lock)することがないように、多数の物理的SDRデバイス一式に渡る変遷を調整することが含まれる。また、提供される方法には、(上述した)米国特許出願第10/835,396号(“Simultaneously Douting Data Over Multiple Wireless Netowork”)に記載された方法と同じ方法で同時にアクティブな多数のSDR一式に渡るパケットフローを管理することが含まれており、米国特許出願に記載された内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0031】
本発明の一態様によれば、代わりのネットワークが存続性について測定されている変遷期間のパケット損失を最小化する方法が提供される。
提供される方法は、代わりの変調アルゴリズムがSDR内でテストされる期間にすべてのパケット代わりのネットワークへ転送されることを確立するためのメッセージプロトコルを含む。
【0032】
本発明の一態様によれば、テストされるべき返答アルゴリズムに応じたネットワーク接続の存続性を認証する方法が提供される。提供される方法は、ネットワーク接続性を判断する目的で新規なコンポーネントとオペレーティングシステムとの間のプロトコルを含む。
提供される方法は、ネットワーク接続性を判断する目的で新規なコンポーネントとSDRとの間のプロトコルを含む。提供される方法は、ネットワークの接続性を判断するため、(上述した)米国特許第6,198,920号(タイトル:“Intelligent Routing of Data between a Remote Device and Host System”)および米国特許第6,418,324号(タイトル:“”Apparatus and Method for Transparent Wireless Communication between a Remote Device and a Host System)に記載されたようなミドルウェアサービスの使用を含む。提供される方法はまた、ネットワーク接続性を判断するため、上述した特許のようなゲートウェイに基づいたソリューションからのビーコンの使用を含む。提供される方法はまた、ネットワーク接続性を判断するためのループバックもしくは“ピング(ping)”パケットの使用を含む。提供される方法はまた、ネットワーク接続性を判断するための共通のIPプロトコルおよびサービスの使用を含む。限定しない一例として、共通のIPプロトコルおよびサービスには、Requirement for Internet Hosts−Communication Layers(DFC1122に記載)、Router Advertisements(RFC1256に記載)、DHCP(DFC2131および3315に記載)、そして、モバイルIP(RFC2002に記載)のようなサービスが含まれ、その内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【0033】
本発明のその他の態様によれば、ソリューションが初期化され、集中管理されたコンフィギュレーションデータベースがモバイルコンピュータデバイスに適用可能となるような方法でアップデートされる度に適切なコンフィギュレーション設定がダウンロードされてモバイルコンピュータデバイスに利用可能となるように、集中管理されたゲートウェイからの変遷管理行動のコンフィギュレーションデータベースを管理する方法が提供される。
【0034】
本発明の一態様によれば、少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするための方法が提供される。SDRは、変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。方法は、少なくとも一つのSDRの一つのトランシーバを使うだけで、非類似無線ネットワーク間をシームレスにローミングすることを含む。方法はまた、複数の変調アルゴリズムの優先順位をつけることを含む。
【0035】
方法は、複数の非類似無線ネットワークのうち第1のネットワークが使用中と指定されたとき、複数の無線ネットワークの中の代わりのネットワークを、制限された期間スキャニングスすることを含むようにしてもよい。一実施形態では、ネットワークの品質をチェックするため、非類似無線ネットワークをスキャニングすることを含む。その他の実施形態では、方法はまた、非類似無線ネットワークをスキャニングする。スキャニングには、少なくとも一つのSDRに変調アルゴリズムをダウンロードし、少なくとも一つのSDRを初期化し、ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることを含むことができる。
【0036】
方法は、満足するヒント基準に応じて変調アルゴリズムの優先順位を更新する方法をさらに含んでもよい。ヒント基準は、時間および/又は位置を表す。
【0037】
また、本発明の異なる態様として、少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするシステムが提供される。SDRは、複数の変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。システムは、ネットワーク管理サブシステムと、コンフィギュレーションサブシステムとを備える。ネットワーク管理サブシステムは、少なくとも一つのSDRの変調アルゴリズムを通じてアクセス可能なネットワークに送られるパケットを処理し、少なくとも一つのSDRデバイス上の変調アルゴリズムをスキャンする。コンフィギュレーションサブシステムは、コンフィギュレーション情報を提供するため、ネットワーク管理サブシステムと通信する。
【0038】
システムは、ネットワーク状態通知をネットワーク管理システムから受け取り、外部のエンティティへネットワーク状態通知を公表するAPI(Application Programming Interface)サブシステムを含むことが可能である。APIサブシステムは、非類似無線ネットワークの少なくとも一つを現在最も好ましいネットワークとして指定する指示を、外部のエンティティから受けることができる。APIサブシステムは、非類似ネットワークの特定のネットワークを通してパケットを転送する指示を、外部のエンティティから受けることができる。
【0039】
ネットワーク管理システムは、さらに、選択された変調アルゴリズムを通じてアクセス可能なネットワークのネットワーク品質をチェックすることが可能である。
【0040】
コンフィギュレーションサブシステムは、さらに、コンフィギュレーションの更新を得るため、集中ソフトウェアコントローラと通信することが可能である。
【0041】
システムは、パケット損失を最小化するため、スキャンを中止するルーティングサポートサブシステムを含むことができる。
【0042】
本発明のその他の態様によれば、少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするプログラムを格納したコンピュータ読み取り可能な記録媒体が提供される。SDRは、複数の変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。記録媒体は、少なくとも一つのSDRの一つのトランシーバを使うだけで、非類似無線ネットワーク間をシームレスにローミング可能にするローミングコードセグメントと、複数の変調アルゴリズムの優先順位をつける優先コードセグメントと
を備える。各変調アルゴリズムは、GPSアルゴリズム、もしくは2方向データネットワーク変調アルゴリズムであることが可能である。ローミングコードセグメントが、複数のネットワークを同時に使用することを可能にすることができる。
【0043】
記録媒体は、複数の無線ネットワークのうち第1のネットワークが使用中と指定されたときに代替ネットワークを制限された期間スキャニングスするスキャニングコードセグメントを含むことができる。
【0044】
記録媒体は、満足するヒント基準に応じて変調アルゴリズムの優先順位を更新するヒントコードセグメントを含むことができる。
【0045】
記録媒体は、ネットワークの品質をチェックするため、非類似無線ネットワークをスキャニングするスキャニングコードセグメントを含むことができる。代わりに、又は加えて、スキャニングコードセグメントは、少なくとも一つのSDRに変調アルゴリズムをダウンロードし、少なくとも一つのSDRを初期化し、ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることによって非類似ネットワークをスキャンすることができる。
【0046】
記録媒体は、接続された変調アルゴリズム各々が一つのSDRによって使用されることを確立する除去コードセグメント、および/又は、外部のエンティティからヒントの更新を受信する受信コードセグメントをさらに含むことができる。
【0047】
記録媒体は、少なくとも一つのSDRの状態に基づいてスキャン周波数をダイナミックに変化させるスキャン周波数コードセグメントを含むことができる。
【0048】
記録媒体は、各変調アルゴリズムに基づいて有効範囲チェック周波数を変化させる有効範囲チェック周波数コードセグメントを含むことができる。
【0049】
上述した特徴は、コンピュータ読み取り可能な記録媒体に記録されるオブジェクトコードとして具現化可能である。その特徴はまた、非類似無線ネットワーク間のパケットデータの流れを管理する処理の一部である。さらに、その特徴は、SDRソフトウェアコントローラコンポーネントおよびルータを含むシステムの一部である。
【0050】
本発明は、本発明の限定しない好適な例による図面を参照しながら以下に続く詳細な説明に記載され、図面における同じ参照符号は、一連の図面を通して同じパーツを表す。
【発明を実施するための最良の形態】
【0051】
SDRソフトウェアコントローラ109は、図1、2,3に示すように、独立して動作可能である。しかしながら、SDRソフトウェアコントローラ109は無線ルータに接続して使用されることが多い。例示するルータは、上述した米国特許明細書第6,198,920号および米国特許明細書第6,418,324号に記載されており、その開示全体は、明示的にそのまま参照することによって本明細書に組み入れられる。図5は、ルータ35とSDRソフトウェアコントローラ109との間の通信の一例を示した図である。図5はまた、他のルータ36とSDR集中ソフトウェアコントローラサブシステム111との間の通信の一例を示した図である。システムは、モバイルアプリケーション201とホストアプリケーション202を含む。システムは、従来型無線112とソフトウェア無線100とを含む。システムは、三つの非類似ネットワーク204、205、206を含む。
【0052】
ルータ35は、存立できる通信リンクを確立し、ネットワークA204でトラフィックを送受信する目的で、従来型無線112と直接通信する。また、ルータ35は、SDR100を通じて届くネットワーク205、206の状態に関しステータスを交換する目的でSDRソフトウェアコントローラシステム109と直接通信する。SDRソフトウェアコントローラサブシステム109は、新しい変調アルゴリズムの使用、ネットワーク205、206との接続性のチェック、そしてデータパケットの送受信のために新しい変調アルゴリズムをダウンロードして無線を初期化する目的で、SDR100と通信する。ルータ35は、従来型(非SDR)無線112を介してネットワークAと直接通信する。加えて、ルータ35は、データパケットを送受信するため、SDRソフトウェアコントローラ109を通じてネットワークB205、ネットワークC206と通信する。SDR集中ソフトウェアコントローラシステム111は、SDRソフトウェアコントローラシステム109と情報を交換する目的で、その他のアプリケーションサーバと同様、プロキシ形式によってルータ36と通信する。
【0053】
モバイルアプリケーション201とホストアプリケーション202は、ルータ35、36を通して互いに通信する。モバイルアプリケーション201からルータ35へのデータフローは、従来型無線112およびネットワークA204、あるいはSDRソフトウェアコントローラシステム109およびSDR100へルーティングされ、ネットワークB205あるいはネットワークA206へルーティングされる。ネットワーク204、205、206各々は、ルータ36と通信し、ルータ36は、パケットをホストアプリケーション202へ転送する。ホストアプリケーション202からルータ36へのデータフローは、上述したリバースシーケンスで流れる。
【0054】
ルータ35とSDRソフトウェアコントローラシステム109との間の通信は、公知のIPC(プロセス間通信)メカニズムを通じて可能となる。ルータ35と従来型無線112との間の通信は、SDRソフトウェアコントローラシステム109とSDR110との間の通信と同様、公知のIPCメカニズムを通じて可能となる。ルータ35とモバイルアプリケーション201との間の通信は、ホストアプリケーション202とルータ36との間の通信、およびルータ36とSDR集中ソフトウェアコントローラサブシステム111との間の通信同様、公知のインターネットプロトコルメカニズムによって可能となる。ルータ36とネットワーク204,205、206各々との通信は、従来型無線112とネットワークA204との間の通信、そして、SDR100とネットワークB205およびネットワークC206との間の通信と同様、ネットワーク204、205、206の性質にすべて固有であって、例えば、公知のIPC、公知のインターネットプロトコル、あるいは特定(proprietary)メカニズムを通じてなる。
【0055】
サブシステム
SDRソフトウェアコントローラシステム109は、4つのプライマリサブシステムを含むことが可能である。これらサブシステムおよび相互作用は、図6に示されている。
図6を参照すると、ネットワークマネージメントサブシステム403が、中心のサブシステムである。その他のサブシステムは、すべてネットワークマネージメント403と通信する。ネットワークマネージメント403は、このシステム109によってコントロールされる一式のSDR100を管理する責務がある。ネットワークマネージメント403は、コンフィギュレーション404およびAPI(Application Programmer Interface)401を通じて得られる情報の両方を処理し、ネットワーク接続を確立し、ネットワークの質をテストし、そして、最もよいネットワークを見つけるため利用可能な変調アルゴリズムをスキャニングする最適回数を決定する。ネットワークマネージメント403は、SDRデバイス100へダウンとロードするため、永続性ある(persistent)記憶部から変調アルゴリズムファイル407をアクセスする。
【0056】
また、図6を参照すると、ルーティングサポートシステム402は、一式のSDRデバイス100でのデータパケットの伝送および受信を管理し、システム109が利用可能な変調アルゴリズムのリストをスキャンする間、パケットの損失を最小化する。コンフィギュレーション404およびAPI401の両サブシステムは、本システムの外部環境との相互作用を実行する。コンフィギュレーション404は、集中管理および分散同様、システム109のコンフィギュレーション可能なエンティティすべての箇条書きとそのデータ構造からなる。コンフィギュレーションサブシステム404は、SDRソフトウェアコントローラコンフィギュレーションファイル405とヒントデータベース406を永続性ある記憶部からアクセスする。API401は、2方向インターフェイスから成り、2方向インターフェイスを通じて外部システムはシステム109の行動(behavior)の制御を実行することが可能であり、同じ外部システムは、自身の行動を変えるため、システム109の内部状態に関して情報を獲得することもできる。
【0057】
コンフィギュレーション
一実施形態では、システム109のため3つのタイプのコンフィギュレーションがある。第1のコンフィギュレーションは、SDR100設定に使用される一式の変調アルゴリズムを作成する実際のプログラムファイル一式407である。
第2のコンフィギュレーションは、SDRソフトウェアコントローラコンフィギュレーション405であり、スタートアップ、SDR100の初期化、そしてSDR100内での変調アルゴリズムの変換に関してSDRソフトウェアコントローラシステム109の行動内容を記述する一式の行動からなる。第3のコンフィギュレーションは、スキャニングヒントデータベース(Scanning Hint Database)である。
【0058】
一実施形態では、変調アルゴリズムプログラムファイル407の他に、XMLによってコンフィギュレーションタイプを表すことが可能である。図8は、SDRソフトウェアコンフィギュレーションファイルの一例を示し、図9は、スキャニングヒントデータベースの一例を示す。データ一式の各要素の目的となる記述は以下のようになる。
・SDRソフトウェアコントローラ(SdrSoftwareController)-このエンティティは、その他のすべてのコンフィギュレーションが存在するドキュメントのルートノードを表す。
・コンフィギュレーションチェックインターバル(ConfigurationCheckInterval)-このエンティティは、検索のためアップデートされたコンフィギュレーションがあるかどうかを、SDR集中ソフトウェアコントローラ111をSDRソフトウェアコントローラ109がチェックするインターバルを表す。このフィールドでのゼロの値は、SDR集中ソフトウェアコントローラ111との通信を禁止にする。
・集中コンフィギュレーションアドレス(CentralConfigAddress)-このエンティティは、システム109にエンティティが設定された場合のSDR集中ソフトウェアコントローラ111のIP/ポートを表す。
・SDRデバイス(SdrDevice)-このエンティティは、一つの物理的SDR100に適用するコンフィギュレーション一式すべての親エレメントを表す。
・ディスプレイネーム(Display Name)-このエンティティは、テキスト識別子を表し、物理的SDRユニット100がシステム109を通して知られる。
・コミュニケーションインターフェイスタイプ(CommunicationInterfaceType)-このエンティティは、SDR100をアクセスするのに使用される通信インターフェイスのタイプを表す。限定しない一例として、このエンティティの値は、シリアル、NDIS、あるいはその他の標準、あるいは特定のメカニズムによって表すことが可能である。
・コミュニケーションインターフェイスネーム(CommunicationInterfaceName)-このエンティティは、識別子を表し、これによってSDR100にアクセするため使用される通信インターフェイスは、ローカルオペレーティングシステム110内で知られる。
・バックオフタイムアウト(BackoffTimeout)-このエンティティは、前のアクティブな変調アルゴリズムが最適カレントネットワーク(Currently Most Preferred Network)であると外部の関連機器(party)によってみなされ、そして、新しい最適カレントネットワーク通知のないことが受信されることによってスキャン期間が中止された後の時間を、ミリ秒単位で表す。
・スキャン行動(ScanBehaviors)-このエンティティは、SDR100のために設定されたすべての行動モデルの親ノードを表す。スキャン行動は、必ずしも直交しない。非接続状態は他の状態に対して直交し、ベスト状態および代替状態は直交するが、ベストおよびアクティブ状態と、代替およびアクティブ状態が重なり合うことは可能である。この理由により、状態が重なり合った場合、Best, Active, Alternate, Disconnectedという以下の順序によって行動セッティングが適用される。
・ベスト(Best)-このエンティティは、SDR100によってサポートされる最優先変調アルゴリズムの接続性をSRDR100が確立する度にアクティブ化する必要のある一式の行動パラメータを表す。これら行動パラメータは、ネットワーク条件が最適と想定されるべき行動を表すものとみなされる。
・アクティブ(Active)-このエンティティは、現在ロードされた変調アルゴリズムに関連したネットワークが主要なトランスポートメカニズムであるとみなすことをAPIサブシステム401に登録される外部のエンティティがSDR100に通知する度にアクティブ化すべき行動パラメータ一式を表す。これら行動パラメータは、ルータ35のような外部の関連機器が接続に独立して間推定すべき行動を表すものとみなされる。
・代替(Alternate)-このエンティティは、SDRが変調アルゴリズムとともに接続性を確立する度にアクティブ化されるべき行動パラメータを表すが、現在のネットワークが最も主要なトランスポートメカニズムであるとみなす指示を提供する外部のエンティティを持っていない。
・非接続(Disconnected)-このエンティティは、どの設定された変調アルゴリズムを使ってもSDR100がネットワークとの接続を確立できない度にアクティブ化されるべき行動パラメータ一式を表す。
・スキャン周波数(ScanFrequency)-このエンティティは、各ネットワークとの接続性をテストするために設定されたすべての変調アルゴリズムをSDRコントローラ109が循環させる周波数を、ミリ秒単位で表している。エンティティの値が0に設定されると、SDRデバイス100が関連状態にある間は初期化されない。言い換えれば、エンティティの値が0であれば、関連状態においてスキャニングは禁止される。
・変調アルゴリズム(ModulationAlgorithms)-このエンティティは、SDR100のため設定されたすべての変調アルゴリズム用親ノードを表す。
・アルゴリズム(Algorithm)-このエンティティは、SDR100用単一の変調アルゴリズムに関してすべてのコンフィギュレーションの詳細親ノードを表す。
・ディスプレイネーム(DisplayName)-このエンティティは、テキスト識別子を表し、これによって変調アルゴリズムがシステムを通じて知られる。ルータ35のような様々なネットワークとの接続性の状態を要求する外部のエンティティに関しては、この値が、状態を報告されるネットワーク用識別子となる。
・ファイルネーム(FileName)-このエンティティは、SDR100へダウンロード可能な変調アルゴリズムプログラムを含むファイルの名前と場所を表す。
・優先度(Priority)-このエンティティは、SDRデバイス100がサポート可能な設定されたすべての変調アルゴリズム一式に関して変調アルゴリズムとネットワークの優先度合いを表す。優先値は、最も優先するネットワーク変調アルゴリズムである1に基づき、連続的に数が高くなるほど優先度が連続的に低くなる。ゼロである1つの特別な優先値がある。このフィールドでゼロの値は、変調スキームが最も優先度の高いチェックすべき変調スキームであるが、ネットワークではないことを示す。むしろ、それは、GPSモジュールである。
・有効範囲チェックインターバル(CoverageCheckInterval)-このエンティティは、関連する変調アルゴリズムがアクティブである場合にネットワークに対して行われる明確な有効範囲の継続的チェックの時間間隔を表す。ゼロの値は、受動的なリンクアップもしくはリンクダウンの指示のみが使用されるように、変調アルゴリズムを通じてアクセスされるネットワーク上での明確な有効範囲の継続的チェックを中止させる。受動的リンクの指示は、後にネットワークマネージメントおよびネットワークチェックの操作の記載の中で説明される。
【0059】
図9を参照する。
・スキャンヒント(ScanHints)-このエンティティは、スキャニングヒントデータベース406のルートノードを表す。
・ヒント(Hint)-このエンティティは、単一のヒントレコードを表す。
・タイム(Time)-このエンティティは、時間に基づいたヒントレコードを表す。
・GPS(GPS)-このエンティティは、位置に基づいたヒントレコードを表す。
・開始(Begin)-このエンティティは、ヒントが適用される最初の境界を表す。ヒントが時間に基づいたヒントであれば、このエンティティは開始時刻を表す。ヒントが位置に基づいたヒントであれば、このエンティティは矩形状の幾何学的領域の左上隅を表す。
・終了(End)-このエンティティは、ヒントが適用される最後の境界を表す。ヒントが時間に基づいたヒントであれば、このエンティティは終了時刻を表す。ヒントが位置に基づいたヒントであれば、このエンティティは矩形状の幾何学的領域の右下隅を表す。
・SDRドライブ(SdrDevice)-このエンティティは、ヒントが適用されるSDRデバイス10の識別子を表す。
・好適アルゴリズム(PreferredAlgorithm)-このエンティティは、実際のヒント自身を表す。実際、時間に基づいたヒントレコードの開始時刻と終了時刻の間である場合、あるいは、受け取ったGPSデータが、位置に基づいたヒントレコードの矩形状開始座標および終了座標の境界範囲内である場合、このエンティティは、設定された変調アルゴリズムの優先度に関わらずその他のアルゴリズムよりも指定されたアルゴリズムをシステムが積極的にチェックすべきであると提案する。
【0060】
上述したコンフィギュレーション情報はすべてそのまま記憶され、初期化においてシステムに読み出される。メモリには、実際のランタイム状況を表すダイナミックな情報と同様に永続性ある記憶部からのコンフィギュレーション情報を所有する一式のデータ構造が存在する。メモリ内のデータ構造の一例が、図4に示されている。各エレメントの記述は、適用可能なコンフィグレーションファイル内の適用可能なエレメントを簡潔に参照する。全ての記述は、不変のコンフィギュレーションファイルからの対応するエレメントがない場合に提供される。
【0061】
図4を参照すると、第1のデータ構造は、コンフィギュレーションブロック831である。これは、残りのコンフィギュレーションデータ構造のルートノードを表すデータ構造である。データ構造は、次のエレメントを含む。
・コンフィギュレーションチェックレベル(Configuration Check Level)-このエンティティは、コンフィギュレーションファイルのSdrSoftwareController.ConfigurationCheckinterval エレメントに対応する。
・集中コントローラアドレス(Centralized Controller Address)-このエンティティ833は、コンフィギュレーションファイルのSdrSoftwareController.CentralConfigAddressに対応する。
・ラストGPS座標(Last Known GPS Coordinates)- このエンティティ835は、GPS変調アルゴリズムから読み出されたGPSの最新座標を表す。このエンティティは、初期化されて空の状態になり、GPS変調アルゴリズムがSDRデバイスのために設定されて初期化後にGPSネットワークと接続できるまで構成されない。
・SDRリスト(SDR List)-このエンティティは、以下に記載する。
・ヒントリスト(Hint List)-このエンティティは、以下に記載する。
【0062】
SDRリスト801は、物理的SDRデバイス100と関連するとき、静的および動的情報すべてを所有するリンクされた構造リストとなることができる。リンクされたリスト801の各エレメントは、単一の物理的SDRデバイス100に属する。各構造は、次の情報を含む。
・SDRID(SDR ID)-このエンティティ802は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.DisplayNameエレメントに対応する。
・(Status Block)-このエンティティ804は、SDRデバイス100の動的状態を含む情報のブロックを表す。このエンティティは、ランタイムにおいて構成される。
・(Algorithm List)-このエンティティ803は、コンフィギュレーションファイルのSdrSoftwareController.ModulationAlgorithmsエレメントに対応する。
・(Scan Behaviors)-このエンティティ805は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviorsエレメントに対応する。
・(InterfaceType)-このエンティティ823は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.CommunicationInterfaceTypeエレメントに対応する。
・(InterfaceName)-このエンティティ824は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.CommunicationInterfaceNameエレメントに対応する。
・(backoff Timeout)-このエンティティ825は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.BackoffTimeoutエレメントに対応する。
【0063】
第2のデータ構造は、状態ブロック804である。これは、特定の物理的SDRデバイス100に関して動的情報をすべて所有する単一の構造となることが可能である。構造は、以下の情報を含む。
・カレントアルゴリズムID(Current AlgorithmID)-このエンティティ808は、物理的SDR100によって現在使用されている特定の一つの変調アルゴリズムの識別値を表す。一実施形態として、変調アルゴリズムのディスプレイネームがある。
・接続(IsConnected)-このエンティティ809は、カレント変調アルゴリズムが関連するネットワークに今現在接続されているか否かのブール型状態を表す。
・好適(IsPreferred)-このエンティティ810は、ルータ35のような外部の機器が今現在接続されている変調アルゴリズムが第1のトランスポートメカニズムとみなすか否かのブール型状態を表す。
【0064】
第3のデータ構造は、アルゴリズムリスト803である。これは、永続性ある記憶部から読み出され、特定の物理的SDRデバイス100がサポート可能な変調アルゴリズムすべてを記述する情報すべてを所有する構造リストである。この構造は、以下の情報を含むことができる。
・アルゴリズムID(Algorithm ID)-このエンティティ812は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.DisplayNameエレメントに対応する。
・ファイルネーム(File Name)-このエンティティ813は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.FileNameエレメントに対応する。
・優先度(Priority)-このエンティティ815は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.Priorityエレメントに対応する。
・有効範囲チェックインターバル(Coverage Check Interval)-このエンティティ816は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ModulationAlgorithms.Algorithm.CoverageCheckIntervalエレメントに対応する。
【0065】
第4のデータ構造は、スキャン行動805である。これは、永続性の記憶部から読み出され、物理的SDRデバイス100を管理する状態機械(state machine)の状態各々で実行されるスキャニングの方法を記述する情報すべてを所有する構造である。この構造は、以下の情報を含むことができる。
・ベスト周波数(Best Frequency)-このエンティティ819は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Best.ScanFrequencyエレメントに対応する。
・アクティブ周波数(Active Frequency)-このエンティティ820は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Active.ScanFrequencyエレメントに対応する。
・代替周波数(Alternate Frequency)-このエンティティ821は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Alternate.ScanFrequencyエレメントに対応する。
・非接続周波数(Disconnected Frequency)-このエンティティ822は、コンフィギュレーションファイルのSdrSoftwareController.SdrDevice.ScanBehaviors.Disconnected.ScanFrequencyエレメントに対応する。
【0066】
一実施形態では、アクティブ周波数は300,000ミリ秒から3,600,000ミリ秒の間に設定され、最適な周波数はGPSが望まれない限り0ミリ秒に設定される。GPS周波数が望まれるならば、ベスト周波数は300,000ミリ秒に設定される。代わりに周波数を60,000ミリ秒から300,000ミリ秒の間に設定することも可能であり、(周波数がおよそ60,000ミリ秒より大きくなるべきケースの電源供給でない限り)非接続周波数を1ミリ秒に設定することが可能である。
【0067】
その他のデータ構造は、ヒントリスト826であり、ヒントデータベース406に格納可能である。これは、永続性ある記憶部から読み出され、ネットワークマネージメントサブシステムがスキャニング処理をドライブするため使用できるヒントを記述する情報すべてを所有する構造である。構造は、以下の情報を含むことができる。
・(Hint Type)-このエンティティ827は、提供されるべきヒントのタイプを表す。このエンティティは、位置(GPS)あるいは時間(時間のレンジ)の値とともに設定可能である。付加的なヒントのタイプも可能であり、明示的に本発明の範囲内に含まれるように意図される。新しいヒントタイプの例は、バッテリパワーあるいは信号強度の時系列的傾向を含む。
・SDRドライブ(SDR Device)-このエンティティ834は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.SdrDeviceエレメントに対応する。
・ヒントスタート(Hint Start)-このエンティティ828は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.Biginエレメントに対応する。
・ヒントストップ(Hint Stop)-このエンティティ829は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.Endエレメントに対応する。
・アルゴリズムID(Algorithm ID)-このエンティティ829は、コンフィギュレーションファイルのScanHints.Hint.Time/Gps.PreferredAlgorithmエレメントに対応する。
【0068】
SDR集中ソフトウェアコントローラ111は、システム109にコントローラ111が存在する場合、すべてのタイプのコンフィギュレーションを集中的に管理する。SDR集中ソフトウェアコントローラ111は、現在の変調アルゴリズムプログラムファイル一式、SDRソフトウェアコントローラコンフィギュレーションファイル、そしてスキャニングヒントデータベースの格納場所を提供することが可能であり、標準暗号化されて保証されるファイル転送技術を使った集中貯蔵場所からSDRソフトウェアコントローラシステム109による検索を利用できる。
【0069】
SDRソフトウェアコントローラコンフィギュレーションシステム109は、SDR集中ソフトウェアコントローラシステム111とともに、もしくはそれなしで動作するようにセットアップ可能である。SDR集中ソフトウェアコントローラ111は、システム109のため、コンフィグレーション設定を中心的に格納し、管理的なアクセスを提供し、分配する目的を達成させる。これに関し、その目的は、移動性があって潜在的に広範囲に分散するコンピュータデバイス一式を管理するのにつきものである管理上のオーバヘッドを軽減することにある。SDR集中ソフトウェアコントローラ111は、ルータ36によってすでに管理されている移動型コンピュータデバイスの範囲に渡る移動型コンピュータデバイス用のSDRソフトウェアコントローラコンフィギュレーションを集中的に管理する目的のため、ルータ36と通信する。
【0070】
SDR集中ソフトウェアコントローラ111と通信するルータ36は、典型的な局であり、一方、SDRソフトウェアコントローラ109と通信するルータ35は、潜在的に移動型である。多くの関係がSDR集中ソフトウェアコントローラ111とSDRソフトコントローラ109との間に存在する。したがって、SDRソフトウェアコントローラシステム109はすべて、一つの集中ソフトウェアコントローラ111とSDR集中ソフトウェアコントローラ111が存在するシステム内で通信する。
【0071】
その他の実施形態では、移動型ルータ35と潜在的に関係のあるSDRソフトウェアコントローラシステム109は、中心的コンフィギュレーションのオーソリティとして務め、SDRソフトウェアコントローラ109とSDR集中ソフトウェアコントローラ111両方の配置された役割を引き受ける。さらにその他の実施形態としては、SDR集中ソフトウェアコントローラ111が、SDRソフトウェアコントローラ109と離れて区別されるがルータ35は本質的に移動型であるように、ルータ36と関連してもよい。この種のコンフィギュレーションの例として、移動型コマンドセンターモデルを記述することができる。
【0072】
上述した目的以外にも、SDRソフトウェアコントローラシステム109は、完全にひとつのモバイルコンピュータデバイスとして具現化できる。SDR集中ソフトウェアコントローラ111が存在しない場合にこのモデルの一実施形態がある。
【0073】
一方、SDR集中ソフトウェアコントローラが存在する場合、複数のSDRソフトウェアコントローラシステム109と一つのSDR集中ソフトウェアコントローラシステム111との間のメッセージモデルが必要となる。限定しない例として、メッセージモデルは、単純に、よく知られたIPアドレス上で確かなFTPサーバを操作するSDR集中ソフトウェアコントローラシステム111から成り、SDRソフトウェアコントローラ109は、IPアドレスを通してアップデートされた変調アルゴリズム407、SDRソフトウェアコントローラコンフィギュレーションファイル405、そしてスキャニングヒットデータベース406一式を検索開始するのに接続する。この種のアプローチのその他の実施形態として、セキュアシェル/コピー(SSH)、あるいは、特定の暗号化されて認証されたファイル転送メカニズムを含む。さらに、よく知られたディレクトリストレージあるいは関係するデータベース技術を通して、SDR集中ソフトウェアコントローラ111は各SDRソフトウェアコントローラシステム109に対して固有のカスタマイズされたコンフィギュレーションファイルを提供することができる。
【0074】
限定しない一例として、上述したFTPサーバと接続する各システムは、ディレクトリからマシーンのドメインネームに等しいネームとともに現在のコンフィギュレーションファイルをダウンロードしてもよい。ドメインネームのグループに渡ってファイルを共有したい場合、ショートカットあるいはシャドーファイルが供給を望む各ディレクトリに対して作られる。どの方法でもメッセージ認証コード(MAC)技術を使った検索および認証に基づき、ローカルコンフィギュレーションファイルは上書きされ、ローカルシステムはアップデートされたファイルとともに初期シークエンスを持続する。
【0075】
SDRソフトウェアコントローラシステム109と、システムに含まれるならばSDR集中ソフトウェアコントローラシステム111は、SDRソフトウェアコントローラシステム109の行動を替えるためシステム管理者に制御を提供するコンフィギュレーションインターフェイスを要求する。一つの実施形態では、このコンフィギュレーションインターフェイスは、SDRソフトウェアコントローラシステム109を含む各システムに配置される。代わりの実施形態としては、コンフィギュレーションがSDR集中ソフトウェアコントローラシステム111にのみエンターされ、移動型クライアントはネットワークを通じてコンフィギュレーションを学ぶ。この種のシステムには、SDRソフトウェアコントローラシステム109に要求されるコンフィギュレーションを減少させ、集中化する利点がある。
【0076】
SDR集中ソフトウェアコントローラシステム111のオペレーティングシステム110(あるいはSDR集中ソフトウェアコントローラシステム111がなくSDRソフトウェアコントローラシステム109が実行するオペレーティングシステム110)がグラフィックユーザインターフェイスを提供する場合、同一ホストに配置されるGUIアプリケーションを使ってコンフィギュレーションが実行可能である。グラフィックユーザインターフェイスのないデバイスにシステムがインストールされた場合、コンフィギュレーションセッティングへのアクセスを提供するためその他の手段が利用される。一つの実施形態として、コンフィギュレーション情報がXMLファイルに格納される。XMLファイルはテキスト形式であるため、管理者によって直接容易に編集される。限定しない一例によれば、図8、9に表すようにXMLファイルのテキストを直接編集することは、システムに対する適当なユーザインターフェイスを表す。その他の実施形態では、コンフィギュレーションインターフェイスは、標準ブラウザのウェブプロトコルを通して配信可能である。その他の実施形態では、コンフィギュレーションインターフェイスは、FTPプロトコルを通じてシステムに配信されるコンフィギュレーションファイルを通して提供可能である。その他の実施形態では、コンフィギュレーションインターフェイスは、公表されてよく知られたアプリケーションプログラミングあるいはソケットレベルインターフェイスでもよい。
【0077】
API
API401は、情報を発信し、受信する性能を提供する。API401はまた、外部のエンティティがシステムの行動に動的制御を実行可能にするメカニズムを提供する。API401用実装メカニズムは、非常に多くよく知られている。限定しない一例として、API401は、数ある中で、ローカルソケット、一般的に理解されたマーシャル技術とともに指名されたパイプ、エクスポートされた機能とともに共有化されたライブラリ、そして、同期信号とともにグローバルメモリなどの形をとることができる。
【0078】
公表される情報一式の一例は以下の通りである。
・GPSステータスブロック(GpsStatusBlock)
。座標(Coordinates)-このエンティティは、GPS変調アルゴリズムがシステムに設定されたかチェックされた前回の時にGPSデバイスから引き出されたRAWデータを所有するバッファを表す。
・ネットワークステータスブロック(NetworkStatusBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、特定の変調アルゴリズムの内容の下で動作する間、SDR100を表すため使用可能なテキスト形式の識別子を表す。
。ステータス(Status)-このエンティティは、ネットワークがアップもしくはダウンしているかについての論理指令を表す。
・パケットレシーブブロック(PacketReceivedBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、関連するパケットが受け取られた時にSDR100が現在動作する変調アルゴリズムのディスプレイネームを表す。
。パケット(Packet)-このエンティティは、SDR100を介して受け取ってローカルシステムに配信しなければならない新しいパケットを所有するバッファを表す。
【0079】
受信された情報一式は以下の通りである。
・最適カレントネットワークブロック(ONCurrentlyMostPreferredNetworkBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、外部のエンティティが主要なトランスポートメカニズムとして頼るネットワークのディスプレイネームを表す。
・パケットXmitブロック(PacketXmitBlock)
。ディスプレイ(DisplayName)-このエンティティは、外部のエンティティが関連するパケットを配信しようとするネットワークのディスプレイネームを表す。
。パケット(Packet)-このエンティティは、配信されるパケットを所有するバッファを表す。
・ヒントブロック(OnHintBlock)
。アクション(Action)-このエンティティは、ヒントに対して起こされるべき行動を表す。その値は、“Add”もしくは“Remove”となる。
。ヒントタイプ(Hint Type)-このエンティティは、供給されるヒントの種類を表す。一つの実施形態では、その値は“Time”もしくは“GPS”となる。
。ヒントスタート(Hint Start)-このエンティティは、ヒントが適用されるバンドのためのスタート値となる。時間に基づいたヒントでは、この値はタイムスタンプとなる。GPSに基づいたヒントでは、その値は矩形領域の左上隅を表すGPS座標系となる。
。ヒントストップ(Hint Stop)-このエンティティは、ヒントが適用されるバンドのためのエンド値となる。時間に基づいたヒントでは、この値はタイムスタンプとなる。GPSに基づいたヒントでは、その値は矩形領域の右下隅を表すGPS座標系となる。
。SDRディスプレイネーム(SDR Display Name)-このエンティティは、このヒントが適用される物理的SDRデバイス100のための識別子を表す。
。変調アルゴリズムディスプレイネーム(Modulation Algorithm Display Name)-このエンティティは、ヒント自身を表す。このフィールドでの値は、システムがHintStartおよびHintStopフィールドによって提案されるバンド内に存在するとき選択されるべき変調アルゴリズムを識別する。
【0080】
システムに対して動的制御を実行する外部のエンティティによって提供される例示的情報一式は以下の通りである。
・コンフィギュレーションブロック(ConfigurationBlock)
。コンフィギュレーション(Configuration)-このエンティティは、SdrSoftwareControllerコンフィギュレーションブロックを表す。SdrSoftwareControllerコンフィギュレーションブロック例示的記述は、図8に提供されている。
。タイムアウト(Timeout)-このエンティティは、元のコンフィギュレーションブロックが効力を生じるまでの接続期間をミリ秒で表す。このシステムの実装は、検証目的のため最大のタイムアウトを実施しなければならない。一実施形態では、この最大タイムアウトは、60,000ミリ秒に設定される。この例では、より長い接続期間のための新しいコンフィギュレーションを提供するため、複数の連続的コールがAPI401に対してされなければならない。
【0081】
コンフィギュレーションブロックAPIの使用が認証されるべきであることに注意すべきである。本発明の一態様によれば、共有化された秘密鍵が暗号化に使用される。共有化されたシークレットの管理は、この明細書の範囲外で議論されるよく知られた鍵管理記述を使って実行される。
【0082】
APIの使用は、APIの性能を統合してルータ35と利用可能となる層状のプロキシ形式におけるAPIにする能力を提供することに注意すべきである。このAPIの使用は、API401の性能を統合して、以前出願された米国特許出願2004/0170181公報(タイトル“Prioritized Alternate Port Routing”)のような発明によって提供される機能性にする能力を提供すべきことに注意すべきであり、上記公報の開示内容は明示的にすべてそのまま参照することで組み入れられている。
【0083】
ネットワークマネージメント
ネットワークマネージメントサブシステム403は、コンフィギュレーション404とAPI401を通じて得られる情報とを使用し、ネットワーク接続、ネットワーク品質テスト、そして、最も適切なネットワークを探す利用可能な変調アルゴリズムを通してスキャニングする最適時間の決定を確立する。
【0084】
ネットワークマネージメントサブシステム403は、各SDR100のための利用可能な変調アルゴリズムに渡ってスキャニングし、各変調アルゴリズムを通して利用可能なネットワークの質をチェックし、任意の時間、場所で最もよいネットワークを選び、そして、適切な周波数を再びスキャニングする責任をもつ。加えて、このサブシステム403は、継続しているベースでネットワークの質をモニタリングし、接続がされなくなる度に再スキャニングを初期化し、そして、制御されるネットワークの状態が変化する度に内部および外部のエンティティに知らせる責任をもつ。
【0085】
前に述べたAPI401を通してネットワークの内部状態をモニタリングして公表するのに加え、SDRソフトウェアコントローラシステム109はまた、ルータ35のようなこのシステムの外部にあるエンティティが現在のアクティブなネットワーク上でもつ外部の従属性の状態を理解しなければならない。ルータ35のような外部のエンティティが現在のアクティブなネットワークに従属性をもった場合、APIを通してこのシステムを知らせ、ネットワークを現在最も好ましいネットワークとして指定する。
この機能は、米国特許明細書第6,198,920号、および米国特許明細書第6,418,324号に記載されており、上述したように、開示内容はすべてここに参照されて組み入れられる。内部のネットワーク状態の情報と外部のネットワーク従属情報は、ともにSDRソフトウェアコントローラシステム109にとって重要であり、なぜなら、ネットワークの状態あるいはネットワーク従属性のダイナミックな変化に対する応答として、“スキャン行動”をダイナミックに変更することを要求されるからである。
【0086】
SDRソフトウェアコントローラシステム109は、SDR100の接続性の状態を管理するためルータ35と通信する。ルータ35は、SDRソフトウェアコントローラシステム109がルータ35用の付加的な通信リンクがトランスポートメカニズムとして確立させて使用可能にするという利点を、通信から得る。どのネットワークをルータ35がデータ転送のために依存しているか理解するためにその情報が使用されるため、SDRソフトウェアコントローラシステム109がこの通信から利益を得る。SDRソフトウェアコントローラシステム109は、(局所的に設定され、あるいはSDR集中ソフトウェアコントローラ111から引き出されても)自身のコンフィギュレーション404に沿ってルータ35からの情報を使用し、コントロールされる各SDR100の真の状態を判断する。
【0087】
例示的な状態遷移ダイアグラムが図7に示している。このダイアグラムは、SDRソフトウェアコントローラ109によってコントロールされるべき特定のSDR100が見せる様々な状態の外観を提供する。注意すべきこととして、個々のSDRソフトウェアコントローラ109は実際に複数の物理的SDR100を制御することもできる。この場合、単純に、複数の状態機械が各々独立して動作する。このダイアグラムはまた、SDRソフトウェアコントローラシステム109の観点からSDRの状態が取る可能な遷移経路の外観を提供する。
【0088】
図7を参照すると、SDRソフトウェアコントローラシステム109がSDR100を初期化すると、状態機械はスタート601にエンターする。エンターすると、スタート601からスキャニング状態602への状態遷移がすぐに生じる。この状態では、SDRソフトウェアコントローラシステム109は、ネットワークと接続するまで設定された優先順位に従ってコンフィギュレートされた変調アルゴリズムを循環させている。
【0089】
SDRが一つの設定された変調アルゴリズムを使ってネットワークと接続すると、システム109は、アクティブな変調アルゴリズムの相対的優先度を判断するため、コンフィギュレーション404をチェックする。接続された変調アルゴリズムがSDR100によって設定された優先度の最も高い変調アルゴリズムである場合、スキャニング602からベスト604への状態遷移が生じる。一方、接続された変調アルゴリズムがSDR100によって設定された優先度の最も高い変調アルゴリズムではない場合、スキャニング602から代替605への状態遷移が生じる。ベスト604もしくは代替605の状態に達すると、ルータ35のような外部の機器は、現在の接続されたネットワークが最適カレントネットワーク(Currently Most Preferred Network)と見なされることを本システムに伝えることができる。SDR100が代替605の状態であるときにこの知らせが受信されると、代替605からアクティブ606へのさらなる状態遷移が生じる。ベスト604からアクティブ606への状態遷移は起こらず、それは、2つの状態が重なるときベスト状態604の方がアクティブ状態606に比べて優先度が高いからである。ルータ35のような外部関連機器が、確立されたネットワーク接続が最適カレントネットワークであるともはやみなすことがないことをシステムに通知することも可能である。そのような状況では、アクティブ606から代替605へ戻る状態遷移がさらに生じる。
【0090】
確立した接続が接続状態として安定し、アクティブ606と代替605との間の遷移から離れると、唯一の残りの遷移状態が非接続603となる。この遷移は、ネットワーク接続性が自然に落ち、あるいは、SDRソフトウェアコントローラシステム109が前の状態で設定されたスキャン行動(Scan behavior)によるスキャニングモードに再び入ろうとするため生じる。どちらの場合でも、非接続603からスキャニング602への状態遷移がすぐに生じ、フルスキャニング処理が、最も優先度の高い変調アルゴリズムから最も優先度の低いアルゴリズムへ再び起こる。
【0091】
代わりに、スキャニングヒントデータベース406が存在し、現在時間あるいは現在の地理的位置に適用されるデータベース406内に含まれるレコードが存在する場合、変調アルゴリズムのために設定された厳格な優先順位は破られてもよい。スキャンがSDRデバイス100のため初期化され、適用可能なヒントが存在する場合、ヒントに関連する変調アルゴリズムは、最も優先度の高い変調アルゴリズムへ一時的に昇格させられる。複数のヒントレコードが検出された場合、一時的に昇格された優先度の相対的順序は、ヒントが見つけられた順に設定される。例えば、最初に発見されたヒントは、一時的に最も高い優先度をもつ。2番目に発見されたヒントは、2番目に高い優先度をもつ。そうであってもヒントが最初処理されると、ヒントのためすでにチェックされたものをスキップしながら、設定された最優先度の高いものから最も低いものへスキャニングが再び始まる。さらに、空間もしくは時間の中で任意の特定位置に適用可能な設定されるヒントの存在がスキャンを開始する。スキャニング状態がネットワークと接続すると、上述した状態遷移を続ける。システムのシャットダウンのため接続状態から非接続状態へ状態遷移が生じると、スキャニング602へ戻る遷移は起こらず、システムは代わりにエンド607へ移る。
【0092】
所定の変調アルゴリズムがSDR100にロードされると、ネットワーク接続の質を判断する多くの方法が存在する。標準ネットワークでは、標準的アプローチが使用可能である。限定しない例として、オペレーティングシステムのIPスタックに可視的な標準的IPネットワークにおいては、オペレーティングシステムのIPスタックがDHCPサーバから正当なリースを獲得できたかチェックするような技術は、適切なネットワークの質の指示を提供する。加えて、デフォルトのルータ公告(Router Advertisements)(RFC1256に記載されており、この開示内容は明示的にすべてこの明細書に参照として組み入れられる)を聞くことは、ネットワークの質の指示を提供する。
【0093】
また、様々なリンク層指示が使用可能である。時には、リンク層指示はネットワークに固有である。そのため、これらのタイプの状況では、SDRソフトウェアプログラムを構成するSDRベンダとともにソリューションが働き、SDRソフトウェアプログラムは、SDRユニット100内に知られたリンクのクオリティをSDR100にアクセスするため使用されるインターフェイスメカニズム用に作られた一般的バイナリリンクインジケータに変換することができる。限定しない例として、NDISの従順なミニポートデバイスによって公表されているOID_GEN_MEDIA_CONNECT_STATUSインジケータが含まれ、あるいは、RS−232インターフェイス用DCDラインの状態が含まれる。
【0094】
その他の実施形態では、SDR100が2つのアクセスインターフェイス、すなわちコントロールアクセスとネットワークアクセスを提供する限り、SDRソフトウェアコントローラシステム109とルータ35は共同作業可能である。この場合、SDRソフトウェアコントローラシステム109は、セットアップおよびSDR100の変調アルゴリズムのスキャニングを管理する。ルータ35は、セットアップされて、本システム109のAPI401が状態を公表するのと同じ方法で状態を公表するネットワークの存続性をテストする。SDRソフトウェアコントローラシステム109は、以前に特定されてルータ35からの公表された状態を単に使用し、自身のネットワーク状態として動作する。
【0095】
最初にネットワークをチェックする同様の方法が、アクティブな変調アルゴリズム用コンフィギュレーション設定に従った継続的基調(ongoing basis)で使用される。ネットワークマネージメントサブシステム403は、SDR100内の特定の変調アルゴリズムのための状態変化を検知する度に、API401を通して更新される状態を公表する責務がある。
【0096】
デバイス100にロードされた変調アルゴリズムがGPS変調アルゴリズム(設定された優先値が0)である場合、質問を発信して現在のGPS座標の返答を受け取るのにかかる時間の間にアルゴリズムが単にロードされ続けている。これが終了すると、変調アルゴリズムは接続から外れ、スキャニングが一つの優先度とともに設定された変調アルゴリズムへ移る。これら座標系は保持され、API401を通じて外部のエンティティに提供可能である。GPSとネットワーク状態APIの公表との組み合わせにより、外部のエンティティが日時(time-of-day)ヒントあるいは位置(positional)ヒント用のスキャニングヒントデータベース406をアップデート可能となる。スキャニングヒントデータベース406は、前述したように、API401を通してアップデートされてもよい。
【0097】
SDRソフトウェアコントローラシステム109が多数のSDRデバイス100を管理する度、同じデバイス100に多数の無線周波数(RF)トランスミッタ/レシーバがある、あるいは、多数の物理的デバイス100があるに関わらず、コントローラ109は、異なるタイプの変調アルゴリズム各々がある時間に一つのSDRデバイス100にのみ接続されることを確立するように動作する。言い換えれば、2つの物理的SDRデバイス100は同じ変調アルゴリズムを同時期にアクティブな変調アルゴリズムに指定することはできない。これは、以下の方法によって達成される。特定のSDRデバイス100と関連する状態機械がスキャニング状態に入る度に、デバイス用にサポートされた変調アルゴリズムの完全リストをスキャンが進行していく。しかしながら、その他のSDRデバイス100が接続されるアルゴリズムとしてすでにマークし、また、そのアルゴリズムが現在のSDRデバイス100用のサポートされたアルゴリズムに記載されている場合、そのアルゴリズムはスキャンするアルゴリズムのリストから取り除かれる。このように、どのSDRデバイス100も、すでに他のSDRデバイス100に接続したネットワークをスキャンしない。
【0098】
ルーティングサポート
ルーティングサポートサブシステム402は、バーチャルサブシステムであり、その責務はネットワークマネージメント403とAPI401プロセッシングの内容に実際に実装される。バーチャルサブシステム402の責務は、メッセージングメカニズムとスキャンバックオフメカニズムから成り、これらは、外部の関連機器がデータパケットを送受信することができる経路と同様にシステム109を通じたスキャン期間の間生じるパケット損失の範囲を最小化する。メッセージングメカニズムは、本発明の一態様の行動であり、そこでは、外部のエンティティが、システム109を通してアクセス可能な様々なネットワークの状態の変化に気づく。スキャンバックオフメカニズムは、本発明の一態様の行動であり、そこでは、パケットの損失を最小限にするために所定期間経過後スキャンの進行が中止となる。一つの実施形態では、バックオフタイムアウトは、アクティブスキャン周波数の10分の1に設定されるべきである。この場合、アクティブスキャン周波数が300,000ミリ秒に設定された場合、バックオフタイムアウトは30,000ミリ秒、すなわち30秒に設定される。
【0099】
利用可能な変調アルゴリズムのスキャンを実行する時であるとシステム109が判断すると、システム109は最初にアクティブな変調アルゴリズムの状態をチェックする。アクティブな変調アルゴリズムが最適カレントネットワーク(Currently Most Preferred Network)であると外部のエンティティによって見なされなければ、バックオフ処理は起こらず、単にメッセージだけとなる。この状態では、現在のアクティブな変調アルゴリズムに関連したネットワークは有効範囲外にあることを、上述したAPIメカニズムを通じて外部の関連機器が単に知ることとなる。このAPI通知が送られた後、アクティブなネットワークが接続されなくなり、スキャンオペレーションが呼び出される。
【0100】
一方、外部のエンティティによってアクティブな変調アルゴリズムが最適カレントネットワークとみなされた場合、サブシステム402は、上述したように、API通知とスキャン処理を実行する。しかしながら、サブシステム402は、API401を介して新しい最適カレントネットワークの通知を設定された期間待つ。設定された期間内に新しい最適カレントネットワークが受信されない場合、スキャン処理は中止され、前の最適カレントネットワークが再び使用される。設定されたタイムアウト期間が0に設定されている場合、変調アルゴリズムを通じたスキャニングに関連する処理は、アクティブな変調アルゴリズムが最適カレントネットワークである度に延期される。
【0101】
加えて、ルーティングサポートサブシステム402は、特定の変調アルゴリズムを使ったネットワークに接続される特定のSDR100にパケットを転送するため、API401に対してなされるコールの受容システムとなる。SDR100は、プラットフォーム上で相互に排他的なインターフェイスポートを通じてアクセス可能である。限定しない例として、そのような相互に排他的なインターフェイスポートは、シリアルポートを表す。この場合、データをSDR100に入れる唯一の方法は、インターフェイスポートを所有するエンティティを通すことある。外部のエンティティは、サブシステム402を利用することによってそのようなデバイスを通じてトラフィックをルーティングすることができる。代わりの実施形態として、多重プロセスによって共有化される標準アプローチを通じてアクセス可能となってもよい。限定しない例として、そのようなアプローチは、ソケットコールを含む。この場合、外部のアプリケーションは、トラフィック自身をルーティングすることを選ぶか、もしくは、サブシステムを利用することを選んでもよい。
【0102】
同様に、ルーティングサポートサブシステム402は、データパケットが受け取られた外部のエンティティにシグナルするAPI401に対してなされるコールのオリジネーターである。上述したように、SDR100のインターフェイスのタイプに従い、そのような受信パケットは直接外部のエンティティにルーティングされてもよく、あるいは、相互に排他的なインターフェイスポートである場合、そのような受信パケットはサブシステム402そしてAPI401を通した伝達を通じて外部のエンティティにルーティング可能である。
【0103】
加えて、SDR100が多数のRFトランスミッタ/レシーバをサポートし、あるいは多数の物理的SDRデバイス100がホストに接続されている限り、システムデザインは、複数の同時ネットワーク接続を維持する能力を排除することはない。特に、API401は、多数の有効範囲のSDR管理ネットワークとコンフィギュレーション404内の複数SDRデータブロックをサポートする柔軟性を提供する。加えて、個々のSDR100用の状態機械は、完全に独立し、その他のSDRトランスミッタ/レシーバに関する状態機械と並列して走ることができる。唯一のSDRデバイス100の単一の変調アルゴリズムのみが外部の関連機器によって任意の時に最適カレントネットワークとして指定される場合でも、外部の関連機器がデータパケットを送受信するための付加的なネットワークを同時に使用できることを排除しない。
【0104】
APIのコンフィギュレーション、およびシステム109のランタイムオペレーションは、シングル−デバイス−マルチプル−ネットワーク−サポートデータモデルをシングル−ネットワーク−ロジカル−デバイスデータモデルに効果的に変換する単一の物理的デバイスによって所定時に一度サポートされるネットワークグループのグラニュラリティ(granularity)よりも、ネットワークレベルのグラニュラリティで状態情報を提供する。そのようなグラニュラリティの分割(split)は、システム109によって表される論理ネットワークデバイスをシステムが管理、ルーティングし、そして優先度をつけることを可能にする。
【0105】
処理フロー
SDRソフトウェアコントローラシステム109を通したデータの処理流れの一例が今から説明される。
【0106】
初期化
SDRソフトウェアコントローラシステム109のスタートアップに基づき、すべてのデータ構造が初期化される。SDRソフトウェアコントローラコンフィギュレーションファイル405のローカルコピーが読み出され、認可され、そして適用可能なメモリ内のデータ構造にロードされる(図4参照)。認可ルーチンの一部には、SDRソフトウェアコントローラコンフィギュレーションファイル405で識別される変調アルゴリズムプログラムファイル各々の部分的コピーが実際にコンフィギュレーション内で指定された場所に存在するか検証することが含まれる。存在しない変調アルゴリズムファイルは、永続性ある記憶部に設定され続けているとしても、メモリ内のコンフィギュレーションデータ構造から取り除かれる。また、ファイルを失うと、よく知られたメカニズムを通してローカルオペレーティングシステムのエラーログにエラーメッセージが提示される。ヒントデータベース406のローカルコピーもまた、読み出され、認可され、そして適用可能なメモリ内のデータ構造にロードされる(図4参照)。
【0107】
すべてのコンフィギュレーションデータがメモリに読み出されてその内容が認可されると、コンフィギュレーションで規定される各物理的SDRデバイス100は、特定のインターフェイスポートを通じてアクセスされる。SDRデバイス100に対するアクセスが何らかの理由で否定された場合、イベントがオペレーティングシステム110の標準エラーログへ記録され、そして、違反したSDRデバイス100はメモリにロードされたコンフィギュレーションから取り除かれる。しかしながら、一実施形態では、デバイス100のコンフィギュレーションはマシーンのコンフィギュレーションファイルの永続性あるコピーを維持する。
【0108】
物理的SDRデバイス100のすべてがアクセスされると、SDRソフトウェアコントローラシステム109は、システム109内の行動を管理するため異なるオペレーティングシステムのスレッド(threads)を開始する。限定しない一例として、以下に述べる実際のサブシステムの実装は、同じプロセス内に別々の流れを形成し、同じ演算装置に別々の処理を形成し、複数の演算装置に渡って分配される別々の処理を形成し、あるいは、それらの組み合わせを形成する。この記述の目的のため、後に例示する実施形態すべては、ひとまとめにして流れとして参照される。以下の流れが開始される。
コンフィギュレーション(Configuration)-このスレッドは、定期的に起動し、そして、アップデートされた検索すべきコンフィギュレーションデータがあるかみるためSDR集中ソフトウェアコントローラ11に照合する責務がある。
API(Application Programmer Interface)-このスレッドは、システムの状態のダイナミックな変化に関して外部の関連機器と更新する責務がある。
ネットワークマネージメント(Network Management)-このスレッドは、設定されたSDRs100一式のおよび関連するネットワークの状態をモニタリングし、スキャン処理を管理する責務がある。
【0109】
コンフィギュレーション
システムが初期化されると、コンフィギュレーションサブシステム404の責務のほとんどは遂行されている。一実施形態では、初期化後、コンフィギュレーションサブシステム404は2つの責務だけを実行する。第1の責務は、メモリ内のコンフィギュレーション構造に対して制御されたアクセスを提供し、永続性のコンフィギュレーションファイルが変化したときにアップデートすることによって、コンフィギュレーション構造を管理する。変化するイベント用のコンフィギュレーションデータファイルをモニタリングすることが、最も新しいオペレーティングシステムによって提供されるよく知られたメカニズムを通して起こる。コンフィギュレーションサブシステム404の他方の責務は、設定されると、定期的に起動し、SDR集中ソフトウェアコントローラ111にアクセスすることである。
コンフィギュレーションサブシステム404は、ConfigurationCheckinterval831によって定められる期間に従って起動する。
コンフィギュレーションサブシステム404は、設定されたアドレス(CentralizedControllerAddress833)でSDR集中ソフトウェアコントローラ111にアクセスすることによって、新しいコンフィギュレーションエンティティをチェックする。ConfigurationCheckInterval831がゼロに設定されると、この性能は禁止される。設定値がゼロでない場合、CentralizedControllerAddressは有効IP/ポートを決定しなければならない。
新しいコンフィギュレーションエンティティが利用可能とわかると、エンティティはローカルコンフィギュレーション記憶部405にダウンロードされ、システムはシャットダウンし、上述したように再び初期化される。
【0110】
API
システム初期化の後、APIサブシステム401は、リクエストをサービス開始する準備ができている。
【0111】
APIサブシステム401から状態通知を受けるため、外部の関連機器は最初にサブシステム401に登録しなければならない。登録のためのメカニズムは、API401にアクセするのに使用されるメカニズムに従う。上述したように、メカニズムは、IPパケット、共有化ライブラリ、あるいは共通に使用されるアプローチの数などの形をとる。アプローチにかかわらず、すべての外部の受容部(recipients)は、状態のアップデートを受信するため最初に登録しなければならない。したがって、外部の関連機器がもはや状態のアップデートを要求しなくなると、受容部は登録削除(unregister)しなければならない。限定しない一例によれば、登録/登録削除の一つの方法として、外部関連機器とAPIサブシステム401との間のTCPセッションの確立がある。このようなアプローチは、登録削除が自動的であることが利点である。本発明の一態様によれば、APIに対する一つのコンシューマーのみがサポートされる。他の実施形態では、複数の登録されたコンシューマーがサポートされる。
【0112】
APIサブシステム401が公表する新しい情報をもつ度に、APIサブシステム401は登録されたAPI401のコンシューマーすべてに対してそうする。一実施形態では、3種類の公表される情報があり、それらはネットワークマネージメントサブシステム403からAPIサブシステム401によってすべて受信される。3種類の情報は、すべてApplication Programing Interface Subsustem Descriptionに基づきこのドキュメントにすでに記述されている。
・GPSステータスブロック(GpsStatusBlock)
・ネットワークステータスブロック(NetworkStatusBlock)
・パケットレシーブブロック(PacketReceiveBlock)
【0113】
APIサブシステム401がスタートアップすると、そのスレッドは待ち状態に入る。
新しいコンシューマーがAPI401に登録する度に、API401は、コンシューマーのコールバックメカニズムのアドレスを格納する。上記の提示された例では、メカニズムは、コンシューマーとの接続が許されたローカルのTCPソケットから成る。その後、APIサブシステム401は、追加のコンシューマー登録、今現在のコンシューマーの登録解除、あるいは公表もしくは受信されるデータの待ち状態に再び入る。
【0114】
APIサブシステム401は、ネットワークマネージメントサブシステム403から公表される情報を受け取る度に、それらすべてに対して情報を伝搬する登録されたコンシューマーのリストを循環する。
【0115】
APIサブシステム401がネットワークマネージメントサブシステム403によって情報が公表されるのを待つように、APIシステム401はまた、外部のエンティティから受け入れられる情報を待つ。一実施形態では、外部のエンティティから受け入れられる4種類の情報がある。4種類の情報はすべて、ApplicationProgramingInterfaceSubsystem記述に基づきこのドキュメントですでに記載されている。
・オン最適カレントネットワークブロック(OnCurrentlyMostPreferredBlock)
・パケットXmitブロック(PacketXmitBlock)
・オンヒントブロック(OnHintBlock)
・コンフィギュレーションブロック(ConfigurationBlock)
【0116】
外部のエンティティからのOnCurrentlyMostPreferredBlock通知を受け取ると、API401は、SDRリストおよびSDRリスト内の各エントリーのアルゴリズムリストを循環し、提供された識別子に対応するエントリーを探す。
識別子が見つかると、API401は、知られたSDRデバイス100の接続された変調アルゴリズムを識別子が表すか検証する。一方が真でない場合、APIコールは失敗し、失敗の表示が呼出人に戻される。どちらも真である場合、API401は存在するCorrentlyMostPreferredNetworkのフラグを明らかにし、APIコール内で識別された変調アルゴリズムのためのフラグを裏返す。
【0117】
APIが外部のエンティティからPacketXmitBlock通知を受けると、APIは、SDRリストおよびSDRリスト内の各エントリーのアルゴリズムリストを循環し、提供された識別子に対応するエントリーを探す。PacketXmitBlockは、パケットバッファが転送されるべきネットワークの識別子とともに、実際のパケットデータバッファを含む。識別子が見つかると、APIは、知られたSDRデバイス100の接続された変調アルゴリズムを識別子が表すか検証する。どちらか一方が真でない場合、APIコールは失敗し、失敗の表示が呼出人に戻される。どちらも真である場合、APIはネットワーク転送のためネットワークマネージメントサブシステム403にパケットを提供する。API401が外部のエンティティからOnHintBlock通知を受け取った場合、APIは、ヒントデータベース406のデータ格納部へエレメントを追加あるいはエレメントを格納部から取り除く。ヒントアクション(Add/Remove)の種類に関係なく、API401はいくつかの予備的ステップをとる。第1に、SDRデバイス100と供給される変調アルゴリズムが実際にコンフィギュレーションサブシステム404に存在することを確認する。どちらか一方のエンティティが存在しない場合、アクションは中止され、API401は呼出人に対して失敗コードを戻す。両エンティティとも存在する場合、API401が起こす次のステップは、同じヒントタイプ、ヒントスタート、ヒントストップ、SDRデバイス100、そして変調アルゴリズム(言い換えれば、すべてのヒントフィールドが等しい)を備えた存在するエンティティを探し出すことである。提供されるヒントアクションが、ヒントを加えることであって複製のヒントが存在しない場合、ヒントが加えられる。そうでなければ、アクションは中止され、API401は呼出人に失敗コードを戻す。提供されるヒントアクションがヒントを取り除くことであって複製ヒントが存在しない場合、アクションは中止され、API401は呼出人に失敗コードを戻す。そうでなければ、ヒントは、ヒントデータベース406から取り除かれる。
【0118】
API401がConfigurationBlock通知を外部のエンティティから受けると、上述したように、API401は、供給されるコンフィギュレーションデータとともにシステムを再び初期化する。また、APIはタイマーをスタートさせる。タイマーが期限切れになると、システムは永続性ある記憶部からのコンフィギュレーションデータとともに再び初期化する。これに関し、APIサブシステム401を通じて受信された新しいコンフィギュレーションは一時的なセットアップのみとなる。受信されたコンフィギュレーションに関するタイマーが期限切れの場合、システムのセットアップは元のコンフィギュレーションに戻る。
【0119】
ネットワークマネージメント
システムが初期化されると、ネットワークマネージメントサブシステム403は、システム内の実質的作業の大部分を実行する。一実施形態では、ネットワークマネージメントシステム403は、以下のアクションの責務がある。
・SDRデバイス100での変調アルゴリズムのスキャニング
・SDRデバイス100にダウンロードされた変調アルゴリズムを通してアクセス可能なすべてのネットワークの品質のチェック
・APIサブシステム401に対するネットワーク状態通知の提供
・APIサブシステム401に対するパケット受信通知の提供
・APIサブシステム401に対するGPS受信通知の提供
・SDRデバイス100にロードされた固有の変調アルゴリズムを通してアクセス可能なネットワークに送信されるべきパケットの処理
【0120】
ネットワークマネージメントシステム403は、コントロールされる物理的SDRデバイス100各々に対する一つのスレッドあるいは処理とともに一式のオペレーティングシステムのスレッドあるいは処理を管理する。図10は、本発明の一実施形態の例示的フローチャートを示す。多数のスレッドあるいは処理は、異なるSDRデバイス100のフローにおける様々なステップにおいて同時に動作してもよい。図10を参照すると、処理は次の待機タイムアウト算出(CalculateNextWaitTimeout)1300において開始される。この最初のステップは、図12に示すさらなるフローによって実際に例示される。
【0121】
図12を参照すると、最初の値は、現在時刻の年代順に従って適用する次の時間に基づいたヒント(Time−Based−Hint)から現在時間を引いたものに関連するスタート時間として計算される(1305)。この値は、“A”として記録される。適用可能な時間に基づいたヒントが存在しない場合、この値はデータ種類の最大値に設定される。
次に、ステップS1310では、現在のアクティブな返答アルゴリズムに対する有効範囲チェック期間(CoverageCheckInterval)として、第2の値が計算される。第2の値は、Bとして記録される。現在アクティブな変調アルゴリズムが存在しない場合、この値は、データ種類の最大値に設定される。次に、ステップS1315では、現在のSDR100の状態のために設定されたスキャン周波数(ScanFrequency)から、現在の時間の結果(CurrentTime)から前回生じたスキャンの時間(Time of Last Scan)を減算した値を引いた、第3の値が計算される。この値は、“C”として記録される。最後に、A,B,Cの最小値が使用され、現在の待機タイムアウト(WaitTimout)の値と見なされる。
【0122】
カレントの待機タイムアウトがわかると、再び図10を参照する。図10の次のステップは、SDRイベント待機(Wait For SDR EVENT)のステップである。SDRイベントが検出され、あるいはタイムアウトが生じた場合、ステップS1100の結果が調べられる。第1のチェックは、ヒントイベントであるか否かを判断し、あるいは次の時間に基づいたヒント用の待機タイムアウトが始動したか否かを判断することである(1105)。これら条件の一つが真であれば、条件はさらに審査され、原因が特にヒントタイマーによるものか判断される(1110)。これが真であれば、スキャンイベントはすぐに設定され、処理はSDRイベント待機のステップ(1100)に戻る。そうでない場合、最後に格納されたGPS座標が審査され、設定された位置に基づくヒント(positional−based hint)とオーバラップするか判断される(1115)。この場合、スキャンイベントすぐに設定され、処理はSDRイベント待機のステップ(1100)に戻る。
【0123】
ヒントイベントもしくはヒントタイマーも始動していない場合、次のステップは、前の空の(pre-emptive)スキャンを保証する上述した状態機械からのカレント状態で十分な時間が経過したか否かを判断する。この場合、SDRイベント待機(1100)に戻る前にスキャンイベント設定(Set Scan Event)へ進む(1125)。次のスキャンのための時間(Time For Next Scan)(1120)ではない場合、SDRイベントがさらに調べられ、カバレッジ変更のイベントであるか否か判断される(1130)。そうである場合、処理は、APIに対するネットワーク状態通知送信(Send Network Status Notification to the API)になる(1135)。その後、カバレッジ変更が、無線通信の有効範囲内の条件から外れたことに起因するか否か判断される(1140)。そうである場合、処理はスキャンイベント設定(1125)になる。どちらのケースも、次のステップはSDRイベント待機(1100)へ戻る。
【0124】
イベントがカバレッジ変更イベントではない場合、処理は、イベントがAPIイベントからのXmit Packetイベントであるかチェックする(1145)。この場合、特定のSDRがカバレッジ内にあるのか調べることが、第1のチェックとなる。SDRがカバレッジ内にない場合、処理はSDRイベント待機(1100)のステップに戻る前にAPIサブシステムに失敗コードを戻す(1155)。カバレッジ内である場合、SDRイベント待機(1100)のステップに戻る前にSDRへのパケット送信(1160)ステップへ進む。
【0125】
イベントがAPIからのXmitパケットイベント(1145)ではない場合、イベントがSDRからのRecvパケットイベントであるかを見るためチェックする(1165)。そうである場合、SDRからパケットが読み出され(1170)、パケット受信通知が、最終的にSDRイベント待機(1100)のステップに戻る前にAPIに送られる(1175)。
【0126】
最後に、イベントが設定されたスキャンイベントであるか判断するためイベントが調べられる(1180)。そうでない場合、フローはカバレッジ状態チェックのステップ(1185)に進み、カバレッジが現在接続されている変調アルゴリズムでチェックされる。実際にSDRイベント用待機(1100)が割り込まれるが、以前にチェックされたイベントに起因して割り込まれない場合、デフォルトの行動(behavior)が、現在接続されたネットワークのカバレッジ状態をチェックする(1185)。ネットワークがまだ有効範囲内であるとカバレッジチェックが判断すると(1190:NO)、フローはSDRイベント待機(1100)に戻る。ネットワークがもはや有効範囲内にはないとカバレッジチェックが判断すると(1190:YES)、SDRイベント待機(1100)に戻る前にカバレッジ変更イベントが設定される(1195)。
【0127】
イベントが実際にスキャンイベントである場合(1180)、フローはスキャン処理に進む(1120)。一実施形態では、スキャン処理が図11に示すフローチャートに従って実行される。図11を参照すると、最初になされるチェックは、現在の接続された変調アルゴリズムが、外部の関連機器によって最適カレントネットワーク(Currently Most Preferred Network)として指定されたか否かを判断することである(1205)。そうである場合、中止タイマーがセットアップされる(1210)。
そうでない場合、あるいは中止タイマーがセットアップされた後である場合、デバイス用のサポートされた変調アルゴリズムのリストがコンフィギュレーションサブシステムから引き出される(1215)。ステップ1215は、適用可能なヒントを引き出すことに関連した処理の実行と、ヒントに関連したアルゴリズムを先に述べた方法でSDRデバイス用アルゴリズムの標準の優先順位リストに併合させることを含む。ステップ1215の終了後すぐに、他のSDRデバイスによって接続性がアクティブであって維持される変調アルゴリズムを取り除くため、生成されたリストがステップ1220で取り除かれる。
【0128】
各SDRレシーバが一度に一つのアルゴリズしか操作できないことから、ステップ1220の後、変調アルゴリズムが今のSDRデバイスに現在続されている場合には、現在接続されている変調アルゴリズム用APIサブシステムに、有効範囲外の通知が送られる(1225)。その後、リストの終わりに到達するか(1230:YES)、もしくは存続可能なネットワークがすでに接続されてカバレッジイベントが設定される(1290)まで、リストのアルゴリズムすべてが処理される中に、ループがエンターされる。各ループの繰り返しとともに、中止タイマーがチェックされる(1235)。中止タイマーが時間を超えている場合、さらなるチェックがなされ(1240)、新しい最適カレントネットワークがAPIサブシステムを通じて関連する外部のエンティティにより指定されたか否か判断される。新しい最適カレントネットワークが存在する場合、ループを通じて処理が続けられる。最適カレントネットワークが存在しない場合、以前にアクティブな変調アルゴリズムがデバイスにダウンロードされる(1245/1255)。さもなければ、まだ昇格されていない次に優先度が最も高いアルゴリズムがデバイスにダウンロードされる(1250/1255)。
【0129】
アルゴリズムがダウンロードされ(1255)、SDRが初期化されると、カバレッジ状態がテストされる(1265)。現在の変調アルゴリズムを走らせているSDRが有効範囲でない場合(1270:NO)、次のループの繰り返し処理がステップ1230に戻って実行される。現在の変調アルゴリズムを走らせているSDRが有効範囲にある場合(1270:YES)、そのアルゴリズムがGPSアルゴリズムであるか否かに関してチェックされる(1275)。GPSアルゴリズムでない場合、カバレッジ変更イベントが設定され(1290)、フローは、SDRイベント待機ステップ(1100)に戻る。そうでなければ、GPSデータがデバイスから読み出され(1280)、APIサブシステムへの通知のためデータが配信されるとともに、ヒントイベントが設定され(1285)、そして、ステップS1230に戻って次のループ繰り返し処理が実行される。
本発明の一態様によれば、ゼロもしくは1つ以上の従来型無線通信デバイスと組み合わせた一つ以上のSDRセットを使いながら、複数の非類似無線ネットワークをシームレスにローミングする方法が提供される。ここで記載される性能(capability)は、代わりのネットワークの利用可能性のインテリジェントなチェックを提供し、そのようなチェックが従属する外部のエンティティに対して引き起こす中断を最小化しながらチェックする。提供される性能は、SDRが複数のトランスミッタおよびレシーバを提供し、あるいは複数の異なるSDRがモバイルコンピューティングデバイスに利用可能なとき、代わりのネットワーク利用可能性のチェックを最適化する。加えて、本発明の他の態様によれば、SDRのトランスミッタ/レシーバが複数存在するとき複数のアクティブネットワークを同時に確立する能力が呼び出される。本発明の他の態様によれば、公知のAPIを通してネットワークのチェック行動(behavior)をプログラム的に確立する機能性が提供される。
提供される手段は、上述のAPIを介して、有効範囲のチェック行動を存在する無線ミドルウェアソルーションと統合する。本発明のその他の態様によれば、外部のエンティティがシステムによって確立された接続に依存する期間の間、パケットの損失を最小化するようにシステム行動が構成される。また、本発明の一態様によれば、モバイルノード内の局所的なソリューション、そしてコンフィギュレーションデータベースゲートウェイ内の中心的なソリューション両方のコンフィギュレーションデータベースを管理することが提供される。
【0130】
本発明は、いくつかの例示的実施形態を参照して説明されたが、使用された用語は、限定する用語ではなく、説明と例示の用語と理解される。変更は、現在述べているものおよび補正されているものとして、添付されたクレームの範囲内で可能であり、その変更は本発明の意図から離れない。本発明は、特定の手段、構成、実施形態を参照しながら説明されているが、本発明が特定の開示されたものに限定されることを意図せず、むしろ本発明は、添付されたクレームの範囲と同じような機能的に均等な構成、方法、および使用にまで拡張する。
【0131】
本発明の様々な実施形態に従い、ここに記載された方法は、コンピュータプロセッサで走るソフトウェアプログラムとしてのオペレーションに意図される。限定されないアプリケーション特別集積回路、プログラム可能な論理アレイおよび他のハードウェアを含む専用のハードウェア実装は、同様にここに記載された方法を実行するものとして構成可能である。さらに、限定されない分散処理又はコンポーネント/オブジェクト分散処理、並列処理又は仮想マシーン処理が、ここに記載された方法を実行するものとして構成可能である。
【0132】
注意すべきこととして、ここに記載された本発明のソフトウェアの実行は、ディスクあるいはテープのような磁気媒体、ディスクなどの光磁気媒体或いは光媒体、一つ以上のROM、RAMあるいはその他の書き換え可能なメモリを所有するメモリカードやその他のパッケージなどの固体状態媒体など、任意に具体的な記憶媒体に格納される。E−mailに添付されるデジタルファイル、あるいはその他の情報を自身に含むアーカイブあるいはアーカイブ一式が、具体的な記憶媒体と均等な配布メディアとみなされる。したがって、本発明は、ここに提示されるとともに技術に認識される均等物および承継するメディアを含むような具体的な記憶媒体および配布メディアを含むものとみなされ、ソフトウェアのインプリメンテーションが格納される。
【0133】
本明細書では、特定の標準およびプロトコルを参照しながら実施形態において実装された構成および機能を説明しているが、本発明は、そのような標準およびプロトコルに限定される意図はない。インターネットの各標準およびその他のパケット交換ネットワーク転送(例えば、IPバージョン4、IPバージョン6、UDP/IP、TCP/IP、ICMP)、そして無線ネットワーク(802.11a、802.11b、802.11g、UWB、CDMA1xRATT、CDMA1xEVDO、GSM、CDPD、GPRS、EDGE、UMTS、RD−LAP、SMR、LMR)は、技術状態の一例を示す。そのような標準は、本質的に同じ機能を備えたより早くより効果的な同等物に周期的に取って代わられる。したがって、同じ機能をもつ代わりの標準およびプロトコルは、同等物と見なされる。
【図面の簡単な説明】
【0134】
【図1】一つのRFトランスミッタを備えた従来のSDRの一般的外観図である。
【図2】複数のRFトランスミッタを備えた従来のSDRの一般的外観図である。
【図3】物理的にモバイルコンピュータデバイスに接続される従来のRF無線と組み合わせて使用されるSDRの一般的外観図である。
【図4】本発明の一態様に従った、ランタイム状態維持に務めるメモリ内データ構造の例示的な実施形態を例示する図である。
【図5】本発明の一態様を非類似ネットワーク間のシームレスローミングサービスを提供する現存システムと統合させたシステムアーキテクチャを示したブロック図である。
【図6】本発明の態様を含む例示的サブシステムとデータ格納部を記述するシステムアーキテクチャを示したブロック図である。
【図7】システムの一態様となる状態遷移図である。
【図8】サンプルとなるXMLファイルとして例示的コンフィギュレーションデータ構造を示した図である。
【図9】サンプルとなるXMLファイルとしてその他の例示的コンフィギュレーションデータ構造一式を示した図である。
【図10】本発明の一態様に従った、値とワークマネージメントサブシステムのメインフローを記載する例示的フローチャートを示した図である。
【図11】図10に記載されたメインフロートの一態様であるスキャンプロセッシング行動の詳細フローを記載する例示的フローを示した図である。
【図12】本発明の一態様に従った、図10のスキャンプロセッシングメイン制御ループに使用されるタイムアウト期間の計算を記載する例示的フローを示した図である。
【特許請求の範囲】
【請求項1】
少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするための方法であって、
前記少なくとも一つのSDRが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのSDRの一つのトランシーバを使うだけで、前記非類似無線ネットワーク間をシームレスにローミングし、
前記複数の変調アルゴリズムの優先順位をつけることを特徴とする方法。
【請求項2】
前記複数の非類似無線ネットワークのうち第1のネットワークが使用中と指定されたとき、前記複数の無線ネットワークの中の代替ネットワークを制限された期間スキャニングスすることを特徴とする請求項1に記載の方法。
【請求項3】
満足するヒント基準に応じて変調アルゴリズムの優先順位を更新することを特徴とする請求項1に記載の方法。
【請求項4】
前記ヒント基準が時間を表すことを特徴とする請求項3に記載の方法。
【請求項5】
前記ヒント基準が位置を表すことを特徴とする請求項3に記載の方法。
【請求項6】
ネットワークの品質をチェックするため、前記非類似無線ネットワークをスキャニングすることを特徴とする請求項1に記載の方法。
【請求項7】
前記非類似無線ネットワークをスキャニングし、
そのスキャニングが、
前記少なくとも一つのSDRに変調アルゴリズムをダウンロードし、
前記少なくとも一つのSDRを初期化し、
前記ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることを特徴とする請求項1に記載の方法。
【請求項8】
少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするシステムであって、
前記少なくとも一つのSDRが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのSDRの変調アルゴリズムを通じてアクセス可能なネットワークに送られるパケットを処理し、前記少なくとも一つのSDRデバイス上の変調アルゴリズムをスキャンするネットワーク管理サブシステムと、
コンフィギュレーション情報を提供するため、前記ネットワーク管理サブシステムと通信するコンフィギュレーションサブシステムと
を備えたことを特徴とするシステム。
【請求項9】
ネットワーク状態通知を前記ネットワーク管理システムから受け取り、外部のエンティティへ前記ネットワーク状態通知を公表するAPI(Application Programming Interface)サブシステムをさらに有することを特徴とする請求項8に記載のシステム。
【請求項10】
前記ネットワーク管理システムが、選択された変調アルゴリズムを通じてアクセス可能なネットワークのネットワーク品質をチェックすることを特徴とする請求項8に記載のシステム。
【請求項11】
前記コンフィギュレーションサブシステムが、コンフィギュレーションの更新を得るため、集中ソフトウェアコントローラと通信することを特徴とする請求項8に記載のシステム。
【請求項12】
前記APIサブシステムが、前記非類似無線ネットワークの少なくとも一つを現在最も好ましいネットワークとして指定する指示を、外部のエンティティから受けることを特徴とする請求項9に記載のシステム。
【請求項13】
前記APIサブシステムが、前記非類似ネットワークの特定のネットワークを通してパケットを転送する指示を、外部のエンティティから受けることを特徴とする請求項9に記載のシステム。
【請求項14】
パケット損失を最小化するため、スキャンを中止するルーティングサポートサブシステムをさらに有することを特徴とする請求項8に記載のシステム。
【請求項15】
少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするプログラムを格納したコンピュータ読み取り可能な記録媒体で、
前記少なくとも一つのSDRが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのSDRの一つのトランシーバを使うだけで、前記非類似無線ネットワーク間をシームレスにローミング可能にするローミングコードセグメントと、
前記複数の変調アルゴリズムの優先順位をつける優先コードセグメントと
を備えたことを特徴とする記録媒体。
【請求項16】
前記複数の無線ネットワークのうち第1のネットワークが使用中と指定されたとき、前記複数の無線ネットワークの中の代替ネットワークを制限された期間スキャニングスするスキャニングコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項17】
満足するヒント基準に応じて変調アルゴリズムの優先順位を更新するヒントコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項18】
ネットワークの品質をチェックするため、前記非類似無線ネットワークをスキャニングするスキャニングコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項19】
前記少なくとも一つのSDRに変調アルゴリズムをダウンロードし、前記少なくとも一つのSDRを初期化し、前記ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることによって前記非類似ネットワークをスキャンするスキャニングコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項20】
接続された変調アルゴリズム各々が一つのSDRによって使用されることを確立する除去コードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項21】
外部のエンティティからヒントの更新を受信する受信コードセグメントをさらに有することを特徴とする請求項17に記載の記録媒体。
【請求項22】
前記少なくとも一つのSDRの状態に基づいてスキャン周波数をダイナミックに変化させるスキャン周波数コードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項23】
各変調アルゴリズムに基づいて有効範囲チェック周波数を変化させる有効範囲チェック周波数コードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項24】
各変調アルゴリズムが、GPSアルゴリズム、もしくは2方向データネットワーク変調アルゴリズムを有することを特徴とする請求項15に記載の記録媒体。
【請求項25】
前記ローミングコードセグメントが、複数のネットワークを同時に使用することを可能にすることを特徴とする請求項15に記載の記録媒体。
【請求項1】
少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするための方法であって、
前記少なくとも一つのSDRが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのSDRの一つのトランシーバを使うだけで、前記非類似無線ネットワーク間をシームレスにローミングし、
前記複数の変調アルゴリズムの優先順位をつけることを特徴とする方法。
【請求項2】
前記複数の非類似無線ネットワークのうち第1のネットワークが使用中と指定されたとき、前記複数の無線ネットワークの中の代替ネットワークを制限された期間スキャニングスすることを特徴とする請求項1に記載の方法。
【請求項3】
満足するヒント基準に応じて変調アルゴリズムの優先順位を更新することを特徴とする請求項1に記載の方法。
【請求項4】
前記ヒント基準が時間を表すことを特徴とする請求項3に記載の方法。
【請求項5】
前記ヒント基準が位置を表すことを特徴とする請求項3に記載の方法。
【請求項6】
ネットワークの品質をチェックするため、前記非類似無線ネットワークをスキャニングすることを特徴とする請求項1に記載の方法。
【請求項7】
前記非類似無線ネットワークをスキャニングし、
そのスキャニングが、
前記少なくとも一つのSDRに変調アルゴリズムをダウンロードし、
前記少なくとも一つのSDRを初期化し、
前記ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることを特徴とする請求項1に記載の方法。
【請求項8】
少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするシステムであって、
前記少なくとも一つのSDRが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのSDRの変調アルゴリズムを通じてアクセス可能なネットワークに送られるパケットを処理し、前記少なくとも一つのSDRデバイス上の変調アルゴリズムをスキャンするネットワーク管理サブシステムと、
コンフィギュレーション情報を提供するため、前記ネットワーク管理サブシステムと通信するコンフィギュレーションサブシステムと
を備えたことを特徴とするシステム。
【請求項9】
ネットワーク状態通知を前記ネットワーク管理システムから受け取り、外部のエンティティへ前記ネットワーク状態通知を公表するAPI(Application Programming Interface)サブシステムをさらに有することを特徴とする請求項8に記載のシステム。
【請求項10】
前記ネットワーク管理システムが、選択された変調アルゴリズムを通じてアクセス可能なネットワークのネットワーク品質をチェックすることを特徴とする請求項8に記載のシステム。
【請求項11】
前記コンフィギュレーションサブシステムが、コンフィギュレーションの更新を得るため、集中ソフトウェアコントローラと通信することを特徴とする請求項8に記載のシステム。
【請求項12】
前記APIサブシステムが、前記非類似無線ネットワークの少なくとも一つを現在最も好ましいネットワークとして指定する指示を、外部のエンティティから受けることを特徴とする請求項9に記載のシステム。
【請求項13】
前記APIサブシステムが、前記非類似ネットワークの特定のネットワークを通してパケットを転送する指示を、外部のエンティティから受けることを特徴とする請求項9に記載のシステム。
【請求項14】
パケット損失を最小化するため、スキャンを中止するルーティングサポートサブシステムをさらに有することを特徴とする請求項8に記載のシステム。
【請求項15】
少なくとも一つのソフトウェア無線(SDR)を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするプログラムを格納したコンピュータ読み取り可能な記録媒体で、
前記少なくとも一つのSDRが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのSDRの一つのトランシーバを使うだけで、前記非類似無線ネットワーク間をシームレスにローミング可能にするローミングコードセグメントと、
前記複数の変調アルゴリズムの優先順位をつける優先コードセグメントと
を備えたことを特徴とする記録媒体。
【請求項16】
前記複数の無線ネットワークのうち第1のネットワークが使用中と指定されたとき、前記複数の無線ネットワークの中の代替ネットワークを制限された期間スキャニングスするスキャニングコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項17】
満足するヒント基準に応じて変調アルゴリズムの優先順位を更新するヒントコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項18】
ネットワークの品質をチェックするため、前記非類似無線ネットワークをスキャニングするスキャニングコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項19】
前記少なくとも一つのSDRに変調アルゴリズムをダウンロードし、前記少なくとも一つのSDRを初期化し、前記ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることによって前記非類似ネットワークをスキャンするスキャニングコードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項20】
接続された変調アルゴリズム各々が一つのSDRによって使用されることを確立する除去コードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項21】
外部のエンティティからヒントの更新を受信する受信コードセグメントをさらに有することを特徴とする請求項17に記載の記録媒体。
【請求項22】
前記少なくとも一つのSDRの状態に基づいてスキャン周波数をダイナミックに変化させるスキャン周波数コードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項23】
各変調アルゴリズムに基づいて有効範囲チェック周波数を変化させる有効範囲チェック周波数コードセグメントをさらに有することを特徴とする請求項15に記載の記録媒体。
【請求項24】
各変調アルゴリズムが、GPSアルゴリズム、もしくは2方向データネットワーク変調アルゴリズムを有することを特徴とする請求項15に記載の記録媒体。
【請求項25】
前記ローミングコードセグメントが、複数のネットワークを同時に使用することを可能にすることを特徴とする請求項15に記載の記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2008−511267(P2008−511267A)
【公表日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願番号】特願2007−530111(P2007−530111)
【出願日】平成17年8月24日(2005.8.24)
【国際出願番号】PCT/US2005/030203
【国際公開番号】WO2006/026336
【国際公開日】平成18年3月9日(2006.3.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.Bluetooth
【出願人】(506361742)パッドコム ホールディングズ,インコーポレイテッド (3)
【氏名又は名称原語表記】PADCOM HOLDINGS,INC.
【Fターム(参考)】
【公表日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願日】平成17年8月24日(2005.8.24)
【国際出願番号】PCT/US2005/030203
【国際公開番号】WO2006/026336
【国際公開日】平成18年3月9日(2006.3.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.Bluetooth
【出願人】(506361742)パッドコム ホールディングズ,インコーポレイテッド (3)
【氏名又は名称原語表記】PADCOM HOLDINGS,INC.
【Fターム(参考)】
[ Back to top ]