(57)【要約】一つ以上のＳＤＲ、あるいは幾つかの従来型無線通信デバイスに影響を与える非類似無線ネットワーク間でシームレスにローミングする方法が提供される。その方法は、ＳＤＲが一つのトランスミッタ／レシーバしか備えていないか、あるいは複数のトランスミッタ／レシーバを備えているかに関わらず、代わりのネットワークが利用可能か判断することを含む。加えて、ＳＤＲが複数のトランスミッタ／レシーバを提供するか、あるいは複数の異なるＳＤＲがモバイルコンピュータデバイスに利用可能な場合、方法は、他のネットワークが利用可能か判断するため、一式のＳＤＲを一部利用しながらユーザはシームレスローミングの経験をより最適にすることができる。また、方法は、状態変化に従った様々な変調アルゴリズムとＳＤＲのセッティングもしくはＳＤＲ一式全体との間の変遷を管理することをさらに含む。
2008511267.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのソフトウェア無線（ＳＤＲ）を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするための方法であって、
前記少なくとも一つのＳＤＲが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのＳＤＲの一つのトランシーバを使うだけで、前記非類似無線ネットワーク間をシームレスにローミングし、
前記複数の変調アルゴリズムの優先順位をつけることを特徴とする方法。
【請求項２】
前記複数の非類似無線ネットワークのうち第１のネットワークが使用中と指定されたとき、前記複数の無線ネットワークの中の代替ネットワークを制限された期間スキャニングスすることを特徴とする請求項１に記載の方法。
【請求項３】
満足するヒント基準に応じて変調アルゴリズムの優先順位を更新することを特徴とする請求項１に記載の方法。
【請求項４】
前記ヒント基準が時間を表すことを特徴とする請求項３に記載の方法。
【請求項５】
前記ヒント基準が位置を表すことを特徴とする請求項３に記載の方法。
【請求項６】
ネットワークの品質をチェックするため、前記非類似無線ネットワークをスキャニングすることを特徴とする請求項１に記載の方法。
【請求項７】
前記非類似無線ネットワークをスキャニングし、
そのスキャニングが、
前記少なくとも一つのＳＤＲに変調アルゴリズムをダウンロードし、
前記少なくとも一つのＳＤＲを初期化し、
前記ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることを特徴とする請求項１に記載の方法。
【請求項８】
少なくとも一つのソフトウェア無線（ＳＤＲ）を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするシステムであって、
前記少なくとも一つのＳＤＲが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのＳＤＲの変調アルゴリズムを通じてアクセス可能なネットワークに送られるパケットを処理し、前記少なくとも一つのＳＤＲデバイス上の変調アルゴリズムをスキャンするネットワーク管理サブシステムと、
コンフィギュレーション情報を提供するため、前記ネットワーク管理サブシステムと通信するコンフィギュレーションサブシステムと
を備えたことを特徴とするシステム。
【請求項９】
ネットワーク状態通知を前記ネットワーク管理システムから受け取り、外部のエンティティへ前記ネットワーク状態通知を公表するＡＰＩ（Application Programming Interface）サブシステムをさらに有することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記ネットワーク管理システムが、選択された変調アルゴリズムを通じてアクセス可能なネットワークのネットワーク品質をチェックすることを特徴とする請求項８に記載のシステム。
【請求項１１】
前記コンフィギュレーションサブシステムが、コンフィギュレーションの更新を得るため、集中ソフトウェアコントローラと通信することを特徴とする請求項８に記載のシステム。
【請求項１２】
前記ＡＰＩサブシステムが、前記非類似無線ネットワークの少なくとも一つを現在最も好ましいネットワークとして指定する指示を、外部のエンティティから受けることを特徴とする請求項９に記載のシステム。
【請求項１３】
前記ＡＰＩサブシステムが、前記非類似ネットワークの特定のネットワークを通してパケットを転送する指示を、外部のエンティティから受けることを特徴とする請求項９に記載のシステム。
【請求項１４】
パケット損失を最小化するため、スキャンを中止するルーティングサポートサブシステムをさらに有することを特徴とする請求項８に記載のシステム。
【請求項１５】
少なくとも一つのソフトウェア無線（ＳＤＲ）を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするプログラムを格納したコンピュータ読み取り可能な記録媒体で、
前記少なくとも一つのＳＤＲが複数の変調アルゴリズムを含み、各アルゴリズムが前記非類似無線ネットワークのうち少なくとも一つにアクセス可能であり、
前記少なくとも一つのＳＤＲの一つのトランシーバを使うだけで、前記非類似無線ネットワーク間をシームレスにローミング可能にするローミングコードセグメントと、
前記複数の変調アルゴリズムの優先順位をつける優先コードセグメントと
を備えたことを特徴とする記録媒体。
【請求項１６】
前記複数の無線ネットワークのうち第１のネットワークが使用中と指定されたとき、前記複数の無線ネットワークの中の代替ネットワークを制限された期間スキャニングスするスキャニングコードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項１７】
満足するヒント基準に応じて変調アルゴリズムの優先順位を更新するヒントコードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項１８】
ネットワークの品質をチェックするため、前記非類似無線ネットワークをスキャニングするスキャニングコードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項１９】
前記少なくとも一つのＳＤＲに変調アルゴリズムをダウンロードし、前記少なくとも一つのＳＤＲを初期化し、前記ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることによって前記非類似ネットワークをスキャンするスキャニングコードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項２０】
接続された変調アルゴリズム各々が一つのＳＤＲによって使用されることを確立する除去コードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項２１】
外部のエンティティからヒントの更新を受信する受信コードセグメントをさらに有することを特徴とする請求項１７に記載の記録媒体。
【請求項２２】
前記少なくとも一つのＳＤＲの状態に基づいてスキャン周波数をダイナミックに変化させるスキャン周波数コードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項２３】
各変調アルゴリズムに基づいて有効範囲チェック周波数を変化させる有効範囲チェック周波数コードセグメントをさらに有することを特徴とする請求項１５に記載の記録媒体。
【請求項２４】
各変調アルゴリズムが、ＧＰＳアルゴリズム、もしくは２方向データネットワーク変調アルゴリズムを有することを特徴とする請求項１５に記載の記録媒体。
【請求項２５】
前記ローミングコードセグメントが、複数のネットワークを同時に使用することを可能にすることを特徴とする請求項１５に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、米国仮出願第６０／６０４，０４５号（発明者：ボグドン他、出願日：２００４年８月２５日）の優先権を主張し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【０００２】
本出願は、米国特許出願第０９／６５２，００９号（出願日：２０００年８月３１日、タイトル“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｏｕｔｉｎｇ  Ｄａｔａ  Ｏｖｅｒ  Ｍｕｌｔｉｐｌｅ  ｗｉｒｅｌｅｓｓ  Ｎｅｔｏｗｏｒｋ”）の部分継続出願であり、また、米国特許出願第０８／４５６，８６０号（米国特許第５，７１７，７３７号、タイトル：“Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｔｒａｎｓｐａｒｅｎｔ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｂｅｔｗｅｅｎ  ａ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅ  ａｎｄ  ａ  Ｈｏｓｔ  Ｓｙｓｔｅｍ”の部分継続出願である米国特許出願第０８／９３２，５３２号（出願日：１９９７年９月１７日、米国特許第６，４１８，３２４号、タイトル“Ａｐｐａｒｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｒｏｕｔｉｎｇ  ｏｆ  Ｄａｔａ  ｂｅｔｗｅｅｎ  ａ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅ  ａｎｄ  ａ  Ｈｏｓｔ  Ｓｙｓｔｅｍ”）の部分継続出願である米国特許出願第１０／０８４，０４９号（出願日：２００２年２月２８日、タイトル“Ｐｏｒｔ  Ｒｏｕｔｉｎｇ  Ｆｕｎｃｔｉｏｎａｌｉｔｙ”）に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【０００３】
本出願は、米国特許出願第１０／３７４，０７０号（タイトル“Ｐｒｉｏｒｉｔｉｚｅｄ  Ａｌｔｅｒｎａｔｅ  Ｐｏｒｔ  Ｒｏｕｔｉｎｇ”、出願日２００３年２月２８日、対欧米国特許出願公開第２００４／０１７０１８１号公報）に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【０００４】
本出願は、米国特許出願第１０／８３５，３９６号（タイトル“Ｓｉｍｕｌｔａｎｏｕｓｌｙ  Ｒｏｕｔｉｎｇ  Ｄａｔａ  Ｏｖｅｒ  Ｍｕｌｔｉｐｌｅ  Ｗｉｒｅｌｅｓｓ  Ｎｅｔｏｗｏｒｋ”、出願日２００４年４月３０日）に関連し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられる。
【０００５】
本発明は、無線通信分野に関する。特に、本発明は、ソフトウェア無線（ＳＤＲ）、いくつかのＳＤＲの組み合わせ、あるいは、ＳＤＲと従来型無線一式を使用する場合のける複数の非類似無線ネットワーク間の通信に関する。本発明の一態様によれば、モバイルコンピュータデバイスは非類似無線ネットワーク間でデータを送受信可能であり、モバイルユーザは、ＳＤＲの一部又はすべてを含む無線一式を使ってネットワーク間をシームレスにローミングする。
【背景技術】
【０００６】
ここ１０年、無線ネットワークによって携帯を利用する労働者の日々の行動は統合されてきた。多くの組織が、労働者の生産性を向上させるため、無線ネットワークの使用を通じて実質的なコスト削減を実現し続けている。また多くの場合、無線ネットワークは、会社がカスタマーに提供できる新しいサービスの創作をもたらした。
【０００７】
無線通信会社は、ＧＰＲＳ、ＥＤＧＥ、１ｘＲＴＴ、そして１ｘＥｖＤＯのような第３世代ネットワークを作るために数十億ドルを費やした。８０２．１１無線ＬＡＮの使用が世界中で急増している。そして今、ＲＤ−ＬＡＰ、ＥＤＡＣＳ、Ｏｐｅｎｓｋｙ、Ｄａｔａｒａｄｉｏのような多くのプライベート無線周波数（ＲＦ）ネットワーク、そして従来すなわち長距離ネットワークが、世界中を通して何百万の公益事業及び公安労働者によって使用されるべきものとして存在する。
【０００８】
米国特許第６，１９８，９２０号（発明者：ドビエックその他、タイトル“Ｉｎｔｅｌｌｉｇｅｎｔ  Ｒｏｕｔｉｎｇ  ｏｆ  Ｄａｔａ  ｂｅｔｗｅｅｎ  ａ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅ  ａｎｄ  ａ  Ｈｏｓｔ  Ｓｙｓｔｅｍ”）、そして、米国特許第６，４１８，３２４号（発明者：ドビエックその他、タイトル“Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｔｒａｎｓｐａｒｅｎｔ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｅｔｗｅｅｎ  ａ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅ  ａｎｄ  ａ  Ｈｏｓｔ  Ｓｙｓｔｅｍ”）などの特許が存在し、その内容全体は、明示的にそのまま参照することによって本明細書に組み入れられ、複数のネットワークの同時利用の改善がクレームされている。これら特許では、ユーザは非類似ネットワーク間で継ぎ目なく（seamlessly）ローミングすることができる。したがって、携帯利用するワーカーが第１のネットワークの範囲から出ると、ワーカーは代わりのネットワークで通信を続けることができる。
【０００９】
非類似ネットワーク間でのシームレスなローミングのため創り出された解決処理は、無線ネットワークの選定を促進するのに役立ってきた。携帯利用者は、異なるネットワークの強度を変えるより良い利点を得ることが可能となり、また、ネットワークが表す制限を最小化することができる。例えば、無線ＬＡＮが狭いエリアに渡って高いバンド幅のアクセスを提供する一方でＣＤＭＡ  １ｘＲＴＴは広い範囲に渡ってより低いバンド幅を提供するため、モバイル型クライアントは、両方のネットワークを自動的に使用するように構成することができる。無線ＬＡＮの範囲のとき、（ＣＤＭＡ  １ｘＲＴＴの範囲であろうとなかろうと）移動型クライアントは、ネットワークのスループット向上の利点がある。しかし、クライアントが無線ＬＡＮの制限されたカバレッジエリアから出てそのままの状態でいる、あるいは、ＣＤＭＡ  １ｘＲＡＴＴのカバレッジエリアに入ると、クライアントは自動的にカバレッジエリアのより広いネットワークの利点を得る。
【００１０】
これらのタイプのソリューションはエンドユーザにとって非常に強力であり、無線ネットワークの改善された制御を提供するが、シームレスローミングのソリューションにはいくつかの挑戦が残っている。伝統的には、ユーザが異なるネットワーク間でローミングする必要がある場合、ユーザは各ネットワークに対して無線トランシーバ１つ獲得しなければならない。このモデルでは、各無線トランシーバは、獲得される特別な一つのネットワークにだけしか関連しない。したがって、シームレスローミングのソリューションをオペレーティングするモバイルコンピュータデバイスは、典型的に複数のネットワーク間での通信のため使用される複数の通信デバイスを有する。これら複数の通信デバイスが典型的にかなりの資本費用を表すだけでなく、アクティブ状態での複数の通信デバイスを維持することがバッテリーの寿命を大いに短くする。複数の異なる通信デバイスはまた、ＰＣカードやシリアルポートインターフェイスなどのモバイルコンピュータデバイス内の高価な物理的リソースの使用を要求する。さらに、新しいネットワークサービスが導入されると、古い通信デバイスは、おそらくその新しいネットワークで通信できないであろう。この場合、ユーザは、新しいサービスを享受したければ、追加的な費用を被ることを強いられる。
【００１１】
多くの研究と開発の努力が、これら問題を解決するために注がれてきた。ひとつの解決法は、ソフトウェア無線（ＳＤＲ）である。ＳＤＲは、無線データの使用法に関連する多くの問題の解決に役立つ。ＳＤＲは性能を提供し、そこでは、様々な異なる無線ネットワークに無線を適用させるため、ソフトウェアを通して無線の性質が修正される。したがって、影響を最小限に留めながら、ＳＤＲにダウンロード可能な適切なソフトウェアアルゴリズムが存在する無線ネットワークでモバイルデバイスが通信できる性能を、ＳＤＲは提供する。無線を新しい無線ネットワークに適合させるのに必要とされることは、新しいソフトウェアアルゴリズムと一緒にＳＤＲを更新することだけである。
【００１２】
ＳＤＲのコンセプトを非類似ネットワーク間でのシームレスローミングに結びつけると、モバイルユーザは、ネットワークの接続性および自動的ネットワーク接続に関して大きく拡大する可能性一式を実現することができる。現在、携帯デバイスは、仮想的にどの無線ネットワークもサポートできる単一のハードウェアプラットフォームを使用することができる。しかしながら、現在のＳＤＲソルーションは、無線データ市場における採用を妨げるだろういくつかの問題が重荷となっている。
【００１３】
伝統的に、ＳＤＲの再プログラミングの多くは、携帯デバイスのユーザによる手動的介入を通じてのみ行われてきた。したがって、使うべきネットワークの決定を自動的に行う必要性によってユーザが妨げられるだけでなく、新しいメディアを通した通信をサポートする必要なソフトウェアとともにＳＤＲを再プログラムするコマンドをマニュアルで初期化する責務がある。
【００１４】
従来のＳＤＲにおけるその他の問題は、現在のアクティブなネットワークとは異なる代わりのネットワークの特徴をアクティブに調べる内在的性能の欠如にある。限定しない一例として、そのようなネットワークの特徴には、信号強度および／又はデータ転送遅延時間（latency）が含まれる。現在ＳＤＲにプログラムされているネットワークがアクティブにデータ転送及び受信のため使用されている場合、ＳＤＲのソフトウェアプログラムを変更し、ネットワークの状態をチェックし、そして、通信を継続するため元のネットワークに戻ることには、問題がある。このようなシナリオは簡単にデータ損失、アプリケーション失敗、あるいは中止されるＴＣＰセッションを導く。加えて、ユーザがこの種のモデルの使用に直接責任がある場合、マニュアルによる介入の多さが重荷になって広く採用が認められない。
【００１５】
したがって、ＳＤＲを使用するとき、複数の無線ネットワーク間での通信を管理する必要がある。また、ダイナミックにＳＤＲを再設定してモバイルユーザのダイナミックな性質を支援するシステムが必要である。さらに、アプリケーションに深刻な影響を与えることなく、その他の無線ネットワークの利用可能性をシステムが知的に探索する必要がある。そして、ユーザの介入なくこの性能を自動的に管理する必要性がある。
【００１６】
ＳＤＲは、無線信号の変調および復調のためソフトウェアに影響を行使する（leverage）転送システムである。伝統的に、無線は特定の周波数、伝送媒体に向けて開発され、そして、プロトコルとその性能は不変的にデバイスにデザインされていた。このアーキテクチャは、新しいフォーマット又はネットワークをサポートするため無線を再プログラムするのに非常に時間を消費し、コストがかかった。したがって、無線ネットワークを変える必要性があると、ユーザは新しいハードウェアを購入することを強いられた。
【００１７】
ＳＤＲは、従来の無線通信デバイスに存在する“更新問題”を解決するようにデザインされている。ハードウェアに無線ネットワークを提供する代わりに、システムは、フレキシブルなプラットフォームに作り上げられる。異なる無線ネットワークのサポートは、様々なプログラム言語を使った変調アルゴリズムに書かれている。変調アルゴリズムは、ネットワークの特徴およびネットワークを通じた通信方法を記述する。したがって、ワイヤレスネットワークで通信するモバイルユーザにとって要求されることは、適切な変調アルゴリズムをＳＤＲのハードウェアプラットフォームにロードすることだけである。この性能はすべてソフトウェアの修正によって提供され、その結果、以前から可能な少ない労力、少ないコストでアップグレード、変更することができる。
【００１８】
多くのＳＤＲは、一つの無線周波数（ＲＦ）トランスミッタ／レシーバだけを備えている。例示的アーキテクチャが図１に示されている。ＳＤＲ１００は、いくつかのハードウェアおよびソフトウェアコンポーネントを備える。ＳＤＲ１００は、デジタル信号処理とＤＦネットワークとの間の変換層を提供するＤＦデジタルコンバータ１０１を提供する。ＦＰＧＡ／ＤＳＰ１０２は、変調アルゴリズムの処理能力を提供している。例示的な変調アルゴリズムには、ＧＳＭ１０４、ＣＤＭＡ１０５、そしてＷｉＭａｘ１０６が含まれる。そして、マイクロコントローラ１０３は、ＳＤＲ１００全体を制御するための基礎となるサポート構造を提供する。
【００１９】
ＳＤＲ１００に加え、モバイルコンピュータデバイス１０８が使用される。モバイルコンピュータデバイスは、データパケットを創り出すアプリケーションおよびコードモジュールを実行する責務がある。これらデータパケットは、物理データリンク１０７を渡って転送される。限定しない一例として、物理データリンクは、ＲＳ−２３２、イーサネット、ＵＳＢ、ＵＷＢ、Ｂｌｕｅｔｏｏｔｈ、あるいはその他の標準リンクの形になっている。モバイルデバイス１０８内にも、オペレーティングシステム１１０がある。オペレーティングシステムは、ＳＤＲの性能を制御するＳＤＲソフトウェアコントローラ１０９を実行させる。オペレーティングシステム１１０はまた、複数の非類似ネットワーク間のローミングを管理するローミングソリューションをサポートする。ローミングソリューションは、オペレーティングシステム１１０の統合されたコンポーネントとして、あるいはオペレーティングシステム１１０の最上位層で実行されるアプリケーションソフトウェアとして具体化される。
【００２０】
この種の構成では、無線は、一度に一つのパーソナリティのみしかもっていない。したがって、モードを変更するとき、新しいネットワークを使用するため新しい変調アルゴリズムをダウンロードすることをユーザは要求される。さらに、ユーザがダウンロードすると、元のネットワークに戻ることを望む場合には、元の変調アルゴリズムのダウンロードをユーザは要求される。
【００２１】
シームレスローミングソリューションの一つの特徴は、他の無線ネットワークの利用可能性を自動的に探索できることであり、その結果、アクティブなネットワークを切り替える最も良い時期がいつであるかソリューションは理解できる。一つのトランスミッタ／レシーバのみ存在する場合、任意の一回に一つのネットワークのみサポートするように設定可能である。したがって、自動的に無線を周期的に再設定してミドルウェアが代わりの無線ネットワークをチェックできることが必要である。この機能は、エンドユーザに意識されない（transparent）ようにしなければならない。
【００２２】
この問題を解決できる一つの方法は、複数のＲＦトランスミッタ／レシーバを備えたＳＤＲ１００を定めることである。図２は、この種のアーキテクチャをサポートするシステムの一例を示す。このアーキテクチャは、初期のＳＤＲアーキテクチャをなくし、２番目のＦＰＧＡ、ＤＳＰ１０２と２番目のＲＦデジタルコンバータ１０１を提供する。このデザインとともに創作されたシステムにより、ミドルウェアソフトウェアは、第１のネットワークが使用できなくなる時に使用できる一連の代替ネットワークの利用可能性を調べるために第２のトランスミッタ／レシーバを使用しながら、主要な転送に第１のトランスミッタ／レシーバを使用することができる。この処理はとても有効である（すなわち、主要なチャンネルは他のネットワークがスキャンされている間妨害されない）一方で、モバイルコンピュータデバイスのユーザは、代わりのネットワークの存続性（viability）を決定する第２のチャンネル上のプロファイルを変更するため、伝統的に手動的な介入を要求されていた。この処理をできる限りトランスペアレントに行うコンフィギュレーションおよびクエリー（query）機能を自動的に実行するため、ミドルウェアソリューションの開発が必要とされる。ＳＤＲ１００が複数のＲＦトランスミッタ／レシーバをサポートしない場合、それぞれ一つのＲＦトランスミッタ／レシーバを備えた複数のＳＤＲユニット１００が同一の性能を提供することができることに注意すべきである。本発明の目的として、両方のコンフィギュレーションが交換可能と考えられる。
【００２３】
ＳＤＲは、無線通信用デフォルトスタンダードとして取り上げられるが、ＳＤＲの実装されないモデムが他のネットワークで有益でありながらＳＤＲ１００がいくつかのネットワークで有益である状態がある。例えば、高速リンクにおいて、高速変調アルゴリズムを実行するための物理的リソース要求は、所望するものより高価になるであろう。したがって、ＳＤＲ１００が従来の（ＳＤＲの備えていない）実装と組み合わされる状況が可能である。このアーキテクチャは、図３に示されており、図２に表されているアーキテクチャによって作られる。このアーキテクチャは、モバイルデバイス１０８に接続される従来型ＤＦ無線１１２をサポートする。この無線１１２は、モバイルデバイス１０８に組み入れ、もしくは外部に接続させることが可能である。したがって、ミドルウェアソフトウェアは、個々のネットワークとしてＳＤＲ１００のパーソナリティすべてを調べ、同様に、これらをモバイルコンピュータ１０８の中に装備される異なった従来型モデム１１２と組み合わせることができる。
【００２４】
加えて、ＳＤＲデザインによって可能になるフレキシビリティにより、変調アルゴリズムの設計者は、ＳＤＲの性能に影響を与え、性能を広げる追加的な差別化できる特徴を提供することができる。ＳＤＲ１００を制御するミドルウェアアプリケーションも、変調アルゴリズムの中でダイナミックにパラメータを修正可能である。一つには、転送上の特別なセキュリティ用に使用される。例えば、ミドルウェアアプリケーションがＡＰＩを通じて変調アルゴリズムの一部をダイナミックに変更できる場合、ミドルウェアアプリケーションはほんのわずか変調アルゴリズムを変更することが可能であり、通信傍受者はどのような転送も解読できない。この性能は、すべての携帯ユニットが同じ形式で通信するのを隔離するためにクライアントとベースステーションとの間で生じなければならない幾つかの同期を要求する。
【発明の開示】
【課題を解決するための手段】
【００２５】
前述の観点から、同時通信もしくはシームレスローミングの処理能力の目的で、静的な携帯ホストアイデンティティを維持し、多数の非類似ネットワーク間でローミングしながら、一つ又はそれ以上のＳＤＲをゼロもしくは１つ以上の従来型無線と組み合わせて使用することに、本発明の一態様は向けられており、その幾つかは同じ物理的ＳＤＲの異なる変調アルゴリズムプログラムを通じてサポートされる。
【００２６】
本発明の一態様によれば、多数の非類似ネットワーク間でシームレスにローミングするためＳＤＲに影響を与える性能がモバイルユーザに与えられる。このプロセスは、ユーザおよびアプリケーションに対してシームレスかつトランスペアレントであるとの意味が持たれる。以下に記述する幾つかの機能は、伝統的に相互に行われる。しかしながら、シームレスローミングの真の普及を現実にするため、これらの性能は、無線ミドルウェアソリューションによって自動的に操作されなければならない。
【００２７】
本発明の一態様によれば、様々な変調アルゴリズム間でＳＤＲの変遷（transition）を管理する方法が提供される。提供される方法には、変調アルゴリズムがユーザの好みに従って選択されるように変遷を調整することが含まれる。また、提供される方法には、変調アルゴリズムがＡＰＩを通じてダイナミックに選択可能となるように変遷を調整することが含まれる。また、提供される方法には、モバイルコンピュータデバイスからのシームレスな通信に対して最も影響のない期間にだけ起こるように変遷を調整することが含まれる。また、提供される方法には、より好ましいネットワークの出会う可能性が高い期間に起こるように変遷を管理することが含まれる。
【００２８】
本発明の一態様によれば、あらかじめ設定されたインターバルではなく、関連するスキャニングヒントのデータベースに基づいて上述した変遷管理の行動（behavior）を単独で修正する方法が提供される。スキャニングヒントは、幾何学的位置、日時、あるいは様々なその他の外部の指令に基づく。限定しない一例として、付加的な外部指示には、携帯デバイスのバッテリパワー、あるいはネットワーク信号強度の時系列的傾向が含まれる。
【００２９】
本発明の一態様によれば、特定の種類のトラフィックの存在に起因して上述する変遷管理の行動を修正する方法が提供される。限定しない一例として、特定の種類のトラフィックを同定するため使用される基準は、（上述した）米国特許公開第２００４／０１７０１８１号公報（タイトル“Ｐｒｉｏｒｉｔｉｚｅｄ  Ａｌｔｅｒｎａｔｅ  Ｐｏｒｔ  Ｒｏｕｔｉｎｇ”）に使用される基準と同等であってもよく、その公報に記載された内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【００３０】
本発明の一態様によれば、複数のＳＤＲがモバイルコンピュータデバイスに存在する状態で多数のＳＤＲがアクティブ状態で維持されることを確立するため、上述した変遷管理行動を管理する方法が提供される。また、提供される方法には、変遷が起こるネットワークがもはやモバイルコンピュータデバイスに利用できない場合すぐにシームレスローミングの切替時間が起こるように、同時にアクティブな多数のＳＤＲ一式を管理することが含まれる。また、提供される方法には、２つ以上の物理的ＳＤＲデバイスが同じ変調アルゴリズムをスキャンし、排他制御（lock）することがないように、多数の物理的ＳＤＲデバイス一式に渡る変遷を調整することが含まれる。また、提供される方法には、（上述した）米国特許出願第１０／８３５，３９６号（“Ｓｉｍｕｌｔａｎｅｏｕｓｌｙ  Ｄｏｕｔｉｎｇ  Ｄａｔａ  Ｏｖｅｒ  Ｍｕｌｔｉｐｌｅ  Ｗｉｒｅｌｅｓｓ  Ｎｅｔｏｗｏｒｋ”）に記載された方法と同じ方法で同時にアクティブな多数のＳＤＲ一式に渡るパケットフローを管理することが含まれており、米国特許出願に記載された内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【００３１】
本発明の一態様によれば、代わりのネットワークが存続性について測定されている変遷期間のパケット損失を最小化する方法が提供される。
提供される方法は、代わりの変調アルゴリズムがＳＤＲ内でテストされる期間にすべてのパケット代わりのネットワークへ転送されることを確立するためのメッセージプロトコルを含む。
【００３２】
本発明の一態様によれば、テストされるべき返答アルゴリズムに応じたネットワーク接続の存続性を認証する方法が提供される。提供される方法は、ネットワーク接続性を判断する目的で新規なコンポーネントとオペレーティングシステムとの間のプロトコルを含む。
提供される方法は、ネットワーク接続性を判断する目的で新規なコンポーネントとＳＤＲとの間のプロトコルを含む。提供される方法は、ネットワークの接続性を判断するため、（上述した）米国特許第６，１９８，９２０号（タイトル：“Ｉｎｔｅｌｌｉｇｅｎｔ  Ｒｏｕｔｉｎｇ  ｏｆ  Ｄａｔａ  ｂｅｔｗｅｅｎ  ａ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅ  ａｎｄ  Ｈｏｓｔ  Ｓｙｓｔｅｍ”）および米国特許第６，４１８，３２４号（タイトル：“”Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｔｒａｎｓｐａｒｅｎｔ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｅｔｗｅｅｎ  ａ  Ｒｅｍｏｔｅ  Ｄｅｖｉｃｅ  ａｎｄ  ａ  Ｈｏｓｔ  Ｓｙｓｔｅｍ）に記載されたようなミドルウェアサービスの使用を含む。提供される方法はまた、ネットワーク接続性を判断するため、上述した特許のようなゲートウェイに基づいたソリューションからのビーコンの使用を含む。提供される方法はまた、ネットワーク接続性を判断するためのループバックもしくは“ピング（ping）”パケットの使用を含む。提供される方法はまた、ネットワーク接続性を判断するための共通のＩＰプロトコルおよびサービスの使用を含む。限定しない一例として、共通のＩＰプロトコルおよびサービスには、Ｒｅｑｕｉｒｅｍｅｎｔ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｈｏｓｔｓ−Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｌａｙｅｒｓ（ＤＦＣ１１２２に記載）、Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔｓ（ＲＦＣ１２５６に記載）、ＤＨＣＰ（ＤＦＣ２１３１および３３１５に記載）、そして、モバイルＩＰ（ＲＦＣ２００２に記載）のようなサービスが含まれ、その内容は、明示的にそのまま参照することによって本明細書に組み入れられる。
【００３３】
本発明のその他の態様によれば、ソリューションが初期化され、集中管理されたコンフィギュレーションデータベースがモバイルコンピュータデバイスに適用可能となるような方法でアップデートされる度に適切なコンフィギュレーション設定がダウンロードされてモバイルコンピュータデバイスに利用可能となるように、集中管理されたゲートウェイからの変遷管理行動のコンフィギュレーションデータベースを管理する方法が提供される。
【００３４】
本発明の一態様によれば、少なくとも一つのソフトウェア無線（ＳＤＲ）を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするための方法が提供される。ＳＤＲは、変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。方法は、少なくとも一つのＳＤＲの一つのトランシーバを使うだけで、非類似無線ネットワーク間をシームレスにローミングすることを含む。方法はまた、複数の変調アルゴリズムの優先順位をつけることを含む。
【００３５】
方法は、複数の非類似無線ネットワークのうち第１のネットワークが使用中と指定されたとき、複数の無線ネットワークの中の代わりのネットワークを、制限された期間スキャニングスすることを含むようにしてもよい。一実施形態では、ネットワークの品質をチェックするため、非類似無線ネットワークをスキャニングすることを含む。その他の実施形態では、方法はまた、非類似無線ネットワークをスキャニングする。スキャニングには、少なくとも一つのＳＤＲに変調アルゴリズムをダウンロードし、少なくとも一つのＳＤＲを初期化し、ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることを含むことができる。
【００３６】
方法は、満足するヒント基準に応じて変調アルゴリズムの優先順位を更新する方法をさらに含んでもよい。ヒント基準は、時間および／又は位置を表す。
【００３７】
また、本発明の異なる態様として、少なくとも一つのソフトウェア無線（ＳＤＲ）を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするシステムが提供される。ＳＤＲは、複数の変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。システムは、ネットワーク管理サブシステムと、コンフィギュレーションサブシステムとを備える。ネットワーク管理サブシステムは、少なくとも一つのＳＤＲの変調アルゴリズムを通じてアクセス可能なネットワークに送られるパケットを処理し、少なくとも一つのＳＤＲデバイス上の変調アルゴリズムをスキャンする。コンフィギュレーションサブシステムは、コンフィギュレーション情報を提供するため、ネットワーク管理サブシステムと通信する。
【００３８】
システムは、ネットワーク状態通知をネットワーク管理システムから受け取り、外部のエンティティへネットワーク状態通知を公表するＡＰＩ（Application Programming Interface）サブシステムを含むことが可能である。ＡＰＩサブシステムは、非類似無線ネットワークの少なくとも一つを現在最も好ましいネットワークとして指定する指示を、外部のエンティティから受けることができる。ＡＰＩサブシステムは、非類似ネットワークの特定のネットワークを通してパケットを転送する指示を、外部のエンティティから受けることができる。
【００３９】
ネットワーク管理システムは、さらに、選択された変調アルゴリズムを通じてアクセス可能なネットワークのネットワーク品質をチェックすることが可能である。
【００４０】
コンフィギュレーションサブシステムは、さらに、コンフィギュレーションの更新を得るため、集中ソフトウェアコントローラと通信することが可能である。
【００４１】
システムは、パケット損失を最小化するため、スキャンを中止するルーティングサポートサブシステムを含むことができる。
【００４２】
本発明のその他の態様によれば、少なくとも一つのソフトウェア無線（ＳＤＲ）を使いながら複数の非類似無線ネットワーク間をシームレスにローミングするプログラムを格納したコンピュータ読み取り可能な記録媒体が提供される。ＳＤＲは、複数の変調アルゴリズムを含み、各アルゴリズムが非類似無線ネットワークのうち少なくとも一つにアクセス可能である。記録媒体は、少なくとも一つのＳＤＲの一つのトランシーバを使うだけで、非類似無線ネットワーク間をシームレスにローミング可能にするローミングコードセグメントと、複数の変調アルゴリズムの優先順位をつける優先コードセグメントと
を備える。各変調アルゴリズムは、ＧＰＳアルゴリズム、もしくは２方向データネットワーク変調アルゴリズムであることが可能である。ローミングコードセグメントが、複数のネットワークを同時に使用することを可能にすることができる。
【００４３】
記録媒体は、複数の無線ネットワークのうち第１のネットワークが使用中と指定されたときに代替ネットワークを制限された期間スキャニングスするスキャニングコードセグメントを含むことができる。
【００４４】
記録媒体は、満足するヒント基準に応じて変調アルゴリズムの優先順位を更新するヒントコードセグメントを含むことができる。
【００４５】
記録媒体は、ネットワークの品質をチェックするため、非類似無線ネットワークをスキャニングするスキャニングコードセグメントを含むことができる。代わりに、又は加えて、スキャニングコードセグメントは、少なくとも一つのＳＤＲに変調アルゴリズムをダウンロードし、少なくとも一つのＳＤＲを初期化し、ダウンロードされたアルゴリズムに関連するネットワークが有効範囲にあるかチェックすることによって非類似ネットワークをスキャンすることができる。
【００４６】
記録媒体は、接続された変調アルゴリズム各々が一つのＳＤＲによって使用されることを確立する除去コードセグメント、および／又は、外部のエンティティからヒントの更新を受信する受信コードセグメントをさらに含むことができる。
【００４７】
記録媒体は、少なくとも一つのＳＤＲの状態に基づいてスキャン周波数をダイナミックに変化させるスキャン周波数コードセグメントを含むことができる。
【００４８】
記録媒体は、各変調アルゴリズムに基づいて有効範囲チェック周波数を変化させる有効範囲チェック周波数コードセグメントを含むことができる。
【００４９】
上述した特徴は、コンピュータ読み取り可能な記録媒体に記録されるオブジェクトコードとして具現化可能である。その特徴はまた、非類似無線ネットワーク間のパケットデータの流れを管理する処理の一部である。さらに、その特徴は、ＳＤＲソフトウェアコントローラコンポーネントおよびルータを含むシステムの一部である。
【００５０】
本発明は、本発明の限定しない好適な例による図面を参照しながら以下に続く詳細な説明に記載され、図面における同じ参照符号は、一連の図面を通して同じパーツを表す。
【発明を実施するための最良の形態】
【００５１】
ＳＤＲソフトウェアコントローラ１０９は、図１、２，３に示すように、独立して動作可能である。しかしながら、ＳＤＲソフトウェアコントローラ１０９は無線ルータに接続して使用されることが多い。例示するルータは、上述した米国特許明細書第６，１９８，９２０号および米国特許明細書第６，４１８，３２４号に記載されており、その開示全体は、明示的にそのまま参照することによって本明細書に組み入れられる。図５は、ルータ３５とＳＤＲソフトウェアコントローラ１０９との間の通信の一例を示した図である。図５はまた、他のルータ３６とＳＤＲ集中ソフトウェアコントローラサブシステム１１１との間の通信の一例を示した図である。システムは、モバイルアプリケーション２０１とホストアプリケーション２０２を含む。システムは、従来型無線１１２とソフトウェア無線１００とを含む。システムは、三つの非類似ネットワーク２０４、２０５、２０６を含む。
【００５２】
ルータ３５は、存立できる通信リンクを確立し、ネットワークＡ２０４でトラフィックを送受信する目的で、従来型無線１１２と直接通信する。また、ルータ３５は、ＳＤＲ１００を通じて届くネットワーク２０５、２０６の状態に関しステータスを交換する目的でＳＤＲソフトウェアコントローラシステム１０９と直接通信する。ＳＤＲソフトウェアコントローラサブシステム１０９は、新しい変調アルゴリズムの使用、ネットワーク２０５、２０６との接続性のチェック、そしてデータパケットの送受信のために新しい変調アルゴリズムをダウンロードして無線を初期化する目的で、ＳＤＲ１００と通信する。ルータ３５は、従来型（非ＳＤＲ）無線１１２を介してネットワークＡと直接通信する。加えて、ルータ３５は、データパケットを送受信するため、ＳＤＲソフトウェアコントローラ１０９を通じてネットワークＢ２０５、ネットワークＣ２０６と通信する。ＳＤＲ集中ソフトウェアコントローラシステム１１１は、ＳＤＲソフトウェアコントローラシステム１０９と情報を交換する目的で、その他のアプリケーションサーバと同様、プロキシ形式によってルータ３６と通信する。
【００５３】
モバイルアプリケーション２０１とホストアプリケーション２０２は、ルータ３５、３６を通して互いに通信する。モバイルアプリケーション２０１からルータ３５へのデータフローは、従来型無線１１２およびネットワークＡ２０４、あるいはＳＤＲソフトウェアコントローラシステム１０９およびＳＤＲ１００へルーティングされ、ネットワークＢ２０５あるいはネットワークＡ２０６へルーティングされる。ネットワーク２０４、２０５、２０６各々は、ルータ３６と通信し、ルータ３６は、パケットをホストアプリケーション２０２へ転送する。ホストアプリケーション２０２からルータ３６へのデータフローは、上述したリバースシーケンスで流れる。
【００５４】
ルータ３５とＳＤＲソフトウェアコントローラシステム１０９との間の通信は、公知のＩＰＣ（プロセス間通信）メカニズムを通じて可能となる。ルータ３５と従来型無線１１２との間の通信は、ＳＤＲソフトウェアコントローラシステム１０９とＳＤＲ１１０との間の通信と同様、公知のＩＰＣメカニズムを通じて可能となる。ルータ３５とモバイルアプリケーション２０１との間の通信は、ホストアプリケーション２０２とルータ３６との間の通信、およびルータ３６とＳＤＲ集中ソフトウェアコントローラサブシステム１１１との間の通信同様、公知のインターネットプロトコルメカニズムによって可能となる。ルータ３６とネットワーク２０４，２０５、２０６各々との通信は、従来型無線１１２とネットワークＡ２０４との間の通信、そして、ＳＤＲ１００とネットワークＢ２０５およびネットワークＣ２０６との間の通信と同様、ネットワーク２０４、２０５、２０６の性質にすべて固有であって、例えば、公知のＩＰＣ、公知のインターネットプロトコル、あるいは特定（proprietary）メカニズムを通じてなる。
【００５５】
サブシステム
ＳＤＲソフトウェアコントローラシステム１０９は、４つのプライマリサブシステムを含むことが可能である。これらサブシステムおよび相互作用は、図６に示されている。
図６を参照すると、ネットワークマネージメントサブシステム４０３が、中心のサブシステムである。その他のサブシステムは、すべてネットワークマネージメント４０３と通信する。ネットワークマネージメント４０３は、このシステム１０９によってコントロールされる一式のＳＤＲ１００を管理する責務がある。ネットワークマネージメント４０３は、コンフィギュレーション４０４およびＡＰＩ（Application Programmer Interface）４０１を通じて得られる情報の両方を処理し、ネットワーク接続を確立し、ネットワークの質をテストし、そして、最もよいネットワークを見つけるため利用可能な変調アルゴリズムをスキャニングする最適回数を決定する。ネットワークマネージメント４０３は、ＳＤＲデバイス１００へダウンとロードするため、永続性ある（persistent）記憶部から変調アルゴリズムファイル４０７をアクセスする。
【００５６】
また、図６を参照すると、ルーティングサポートシステム４０２は、一式のＳＤＲデバイス１００でのデータパケットの伝送および受信を管理し、システム１０９が利用可能な変調アルゴリズムのリストをスキャンする間、パケットの損失を最小化する。コンフィギュレーション４０４およびＡＰＩ４０１の両サブシステムは、本システムの外部環境との相互作用を実行する。コンフィギュレーション４０４は、集中管理および分散同様、システム１０９のコンフィギュレーション可能なエンティティすべての箇条書きとそのデータ構造からなる。コンフィギュレーションサブシステム４０４は、ＳＤＲソフトウェアコントローラコンフィギュレーションファイル４０５とヒントデータベース４０６を永続性ある記憶部からアクセスする。ＡＰＩ４０１は、２方向インターフェイスから成り、２方向インターフェイスを通じて外部システムはシステム１０９の行動（behavior）の制御を実行することが可能であり、同じ外部システムは、自身の行動を変えるため、システム１０９の内部状態に関して情報を獲得することもできる。
【００５７】
コンフィギュレーション
一実施形態では、システム１０９のため３つのタイプのコンフィギュレーションがある。第１のコンフィギュレーションは、ＳＤＲ１００設定に使用される一式の変調アルゴリズムを作成する実際のプログラムファイル一式４０７である。
第２のコンフィギュレーションは、ＳＤＲソフトウェアコントローラコンフィギュレーション４０５であり、スタートアップ、ＳＤＲ１００の初期化、そしてＳＤＲ１００内での変調アルゴリズムの変換に関してＳＤＲソフトウェアコントローラシステム１０９の行動内容を記述する一式の行動からなる。第３のコンフィギュレーションは、スキャニングヒントデータベース（Scanning Hint Database）である。
【００５８】
一実施形態では、変調アルゴリズムプログラムファイル４０７の他に、ＸＭＬによってコンフィギュレーションタイプを表すことが可能である。図８は、ＳＤＲソフトウェアコンフィギュレーションファイルの一例を示し、図９は、スキャニングヒントデータベースの一例を示す。データ一式の各要素の目的となる記述は以下のようになる。
・ＳＤＲソフトウェアコントローラ（SdrSoftwareController）-このエンティティは、その他のすべてのコンフィギュレーションが存在するドキュメントのルートノードを表す。
・コンフィギュレーションチェックインターバル(ConfigurationCheckInterval)-このエンティティは、検索のためアップデートされたコンフィギュレーションがあるかどうかを、ＳＤＲ集中ソフトウェアコントローラ１１１をＳＤＲソフトウェアコントローラ１０９がチェックするインターバルを表す。このフィールドでのゼロの値は、ＳＤＲ集中ソフトウェアコントローラ１１１との通信を禁止にする。
・集中コンフィギュレーションアドレス(CentralConfigAddress)-このエンティティは、システム１０９にエンティティが設定された場合のＳＤＲ集中ソフトウェアコントローラ１１１のＩＰ／ポートを表す。
・ＳＤＲデバイス(SdrDevice)-このエンティティは、一つの物理的ＳＤＲ１００に適用するコンフィギュレーション一式すべての親エレメントを表す。
・ディスプレイネーム(Display Name)-このエンティティは、テキスト識別子を表し、物理的ＳＤＲユニット１００がシステム１０９を通して知られる。
・コミュニケーションインターフェイスタイプ(CommunicationInterfaceType)-このエンティティは、ＳＤＲ１００をアクセスするのに使用される通信インターフェイスのタイプを表す。限定しない一例として、このエンティティの値は、シリアル、ＮＤＩＳ、あるいはその他の標準、あるいは特定のメカニズムによって表すことが可能である。
・コミュニケーションインターフェイスネーム(CommunicationInterfaceName)-このエンティティは、識別子を表し、これによってＳＤＲ１００にアクセするため使用される通信インターフェイスは、ローカルオペレーティングシステム１１０内で知られる。
・バックオフタイムアウト(BackoffTimeout)-このエンティティは、前のアクティブな変調アルゴリズムが最適カレントネットワーク（Ｃｕｒｒｅｎｔｌｙ  Ｍｏｓｔ  Ｐｒｅｆｅｒｒｅｄ  Ｎｅｔｗｏｒｋ）であると外部の関連機器（party）によってみなされ、そして、新しい最適カレントネットワーク通知のないことが受信されることによってスキャン期間が中止された後の時間を、ミリ秒単位で表す。
・スキャン行動(ScanBehaviors)-このエンティティは、ＳＤＲ１００のために設定されたすべての行動モデルの親ノードを表す。スキャン行動は、必ずしも直交しない。非接続状態は他の状態に対して直交し、ベスト状態および代替状態は直交するが、ベストおよびアクティブ状態と、代替およびアクティブ状態が重なり合うことは可能である。この理由により、状態が重なり合った場合、Best, Active, Alternate, Disconnectedという以下の順序によって行動セッティングが適用される。
・ベスト(Best)-このエンティティは、ＳＤＲ１００によってサポートされる最優先変調アルゴリズムの接続性をＳＲＤＲ１００が確立する度にアクティブ化する必要のある一式の行動パラメータを表す。これら行動パラメータは、ネットワーク条件が最適と想定されるべき行動を表すものとみなされる。
・アクティブ(Active)-このエンティティは、現在ロードされた変調アルゴリズムに関連したネットワークが主要なトランスポートメカニズムであるとみなすことをＡＰＩサブシステム４０１に登録される外部のエンティティがＳＤＲ１００に通知する度にアクティブ化すべき行動パラメータ一式を表す。これら行動パラメータは、ルータ３５のような外部の関連機器が接続に独立して間推定すべき行動を表すものとみなされる。
・代替(Alternate)-このエンティティは、ＳＤＲが変調アルゴリズムとともに接続性を確立する度にアクティブ化されるべき行動パラメータを表すが、現在のネットワークが最も主要なトランスポートメカニズムであるとみなす指示を提供する外部のエンティティを持っていない。
・非接続(Disconnected)-このエンティティは、どの設定された変調アルゴリズムを使ってもＳＤＲ１００がネットワークとの接続を確立できない度にアクティブ化されるべき行動パラメータ一式を表す。
・スキャン周波数(ScanFrequency)-このエンティティは、各ネットワークとの接続性をテストするために設定されたすべての変調アルゴリズムをＳＤＲコントローラ１０９が循環させる周波数を、ミリ秒単位で表している。エンティティの値が０に設定されると、ＳＤＲデバイス１００が関連状態にある間は初期化されない。言い換えれば、エンティティの値が０であれば、関連状態においてスキャニングは禁止される。
・変調アルゴリズム(ModulationAlgorithms)-このエンティティは、ＳＤＲ１００のため設定されたすべての変調アルゴリズム用親ノードを表す。
・アルゴリズム(Algorithm)-このエンティティは、ＳＤＲ１００用単一の変調アルゴリズムに関してすべてのコンフィギュレーションの詳細親ノードを表す。
・ディスプレイネーム(DisplayName)-このエンティティは、テキスト識別子を表し、これによって変調アルゴリズムがシステムを通じて知られる。ルータ３５のような様々なネットワークとの接続性の状態を要求する外部のエンティティに関しては、この値が、状態を報告されるネットワーク用識別子となる。
・ファイルネーム(FileName)-このエンティティは、ＳＤＲ１００へダウンロード可能な変調アルゴリズムプログラムを含むファイルの名前と場所を表す。
・優先度(Priority)-このエンティティは、ＳＤＲデバイス１００がサポート可能な設定されたすべての変調アルゴリズム一式に関して変調アルゴリズムとネットワークの優先度合いを表す。優先値は、最も優先するネットワーク変調アルゴリズムである１に基づき、連続的に数が高くなるほど優先度が連続的に低くなる。ゼロである１つの特別な優先値がある。このフィールドでゼロの値は、変調スキームが最も優先度の高いチェックすべき変調スキームであるが、ネットワークではないことを示す。むしろ、それは、ＧＰＳモジュールである。
・有効範囲チェックインターバル(CoverageCheckInterval)-このエンティティは、関連する変調アルゴリズムがアクティブである場合にネットワークに対して行われる明確な有効範囲の継続的チェックの時間間隔を表す。ゼロの値は、受動的なリンクアップもしくはリンクダウンの指示のみが使用されるように、変調アルゴリズムを通じてアクセスされるネットワーク上での明確な有効範囲の継続的チェックを中止させる。受動的リンクの指示は、後にネットワークマネージメントおよびネットワークチェックの操作の記載の中で説明される。
【００５９】
図９を参照する。
・スキャンヒント(ScanHints)-このエンティティは、スキャニングヒントデータベース４０６のルートノードを表す。
・ヒント(Hint)-このエンティティは、単一のヒントレコードを表す。
・タイム(Time)-このエンティティは、時間に基づいたヒントレコードを表す。
・ＧＰＳ(GPS)-このエンティティは、位置に基づいたヒントレコードを表す。
・開始(Begin)-このエンティティは、ヒントが適用される最初の境界を表す。ヒントが時間に基づいたヒントであれば、このエンティティは開始時刻を表す。ヒントが位置に基づいたヒントであれば、このエンティティは矩形状の幾何学的領域の左上隅を表す。
・終了(End)-このエンティティは、ヒントが適用される最後の境界を表す。ヒントが時間に基づいたヒントであれば、このエンティティは終了時刻を表す。ヒントが位置に基づいたヒントであれば、このエンティティは矩形状の幾何学的領域の右下隅を表す。
・ＳＤＲドライブ(SdrDevice)-このエンティティは、ヒントが適用されるＳＤＲデバイス１０の識別子を表す。
・好適アルゴリズム(PreferredAlgorithm)-このエンティティは、実際のヒント自身を表す。実際、時間に基づいたヒントレコードの開始時刻と終了時刻の間である場合、あるいは、受け取ったＧＰＳデータが、位置に基づいたヒントレコードの矩形状開始座標および終了座標の境界範囲内である場合、このエンティティは、設定された変調アルゴリズムの優先度に関わらずその他のアルゴリズムよりも指定されたアルゴリズムをシステムが積極的にチェックすべきであると提案する。
【００６０】
上述したコンフィギュレーション情報はすべてそのまま記憶され、初期化においてシステムに読み出される。メモリには、実際のランタイム状況を表すダイナミックな情報と同様に永続性ある記憶部からのコンフィギュレーション情報を所有する一式のデータ構造が存在する。メモリ内のデータ構造の一例が、図４に示されている。各エレメントの記述は、適用可能なコンフィグレーションファイル内の適用可能なエレメントを簡潔に参照する。全ての記述は、不変のコンフィギュレーションファイルからの対応するエレメントがない場合に提供される。
【００６１】
図４を参照すると、第１のデータ構造は、コンフィギュレーションブロック８３１である。これは、残りのコンフィギュレーションデータ構造のルートノードを表すデータ構造である。データ構造は、次のエレメントを含む。
・コンフィギュレーションチェックレベル(Configuration Check Level)-このエンティティは、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＣｏｎｆｉｇｕｒａｔｉｏｎＣｈｅｃｋｉｎｔｅｒｖａｌ  エレメントに対応する。
・集中コントローラアドレス(Centralized Controller Address)-このエンティティ８３３は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＣｅｎｔｒａｌＣｏｎｆｉｇＡｄｄｒｅｓｓに対応する。
・ラストＧＰＳ座標(Last Known GPS Coordinates)- このエンティティ８３５は、ＧＰＳ変調アルゴリズムから読み出されたＧＰＳの最新座標を表す。このエンティティは、初期化されて空の状態になり、ＧＰＳ変調アルゴリズムがＳＤＲデバイスのために設定されて初期化後にＧＰＳネットワークと接続できるまで構成されない。
・ＳＤＲリスト(SDR List)-このエンティティは、以下に記載する。
・ヒントリスト(Hint List)-このエンティティは、以下に記載する。
【００６２】
ＳＤＲリスト８０１は、物理的ＳＤＲデバイス１００と関連するとき、静的および動的情報すべてを所有するリンクされた構造リストとなることができる。リンクされたリスト８０１の各エレメントは、単一の物理的ＳＤＲデバイス１００に属する。各構造は、次の情報を含む。
・ＳＤＲＩＤ（SDR ID）-このエンティティ８０２は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＤｉｓｐｌａｙＮａｍｅエレメントに対応する。
・(Status Block)-このエンティティ８０４は、ＳＤＲデバイス１００の動的状態を含む情報のブロックを表す。このエンティティは、ランタイムにおいて構成される。
・(Algorithm List)-このエンティティ８０３は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＭｏｄｕｌａｔｉｏｎＡｌｇｏｒｉｔｈｍｓエレメントに対応する。
・(Scan Behaviors)-このエンティティ８０５は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＳｃａｎＢｅｈａｖｉｏｒｓエレメントに対応する。
・(InterfaceType)-このエンティティ８２３は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＣｏｍｍｕｎｉｃａｔｉｏｎＩｎｔｅｒｆａｃｅＴｙｐｅエレメントに対応する。
・(InterfaceName)-このエンティティ８２４は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＣｏｍｍｕｎｉｃａｔｉｏｎＩｎｔｅｒｆａｃｅＮａｍｅエレメントに対応する。
・(backoff Timeout)-このエンティティ８２５は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＢａｃｋｏｆｆＴｉｍｅｏｕｔエレメントに対応する。
【００６３】
第２のデータ構造は、状態ブロック８０４である。これは、特定の物理的ＳＤＲデバイス１００に関して動的情報をすべて所有する単一の構造となることが可能である。構造は、以下の情報を含む。
・カレントアルゴリズムＩＤ(Current AlgorithmID)-このエンティティ８０８は、物理的ＳＤＲ１００によって現在使用されている特定の一つの変調アルゴリズムの識別値を表す。一実施形態として、変調アルゴリズムのディスプレイネームがある。
・接続(IsConnected)-このエンティティ８０９は、カレント変調アルゴリズムが関連するネットワークに今現在接続されているか否かのブール型状態を表す。
・好適(IsPreferred)-このエンティティ８１０は、ルータ３５のような外部の機器が今現在接続されている変調アルゴリズムが第１のトランスポートメカニズムとみなすか否かのブール型状態を表す。
【００６４】
第３のデータ構造は、アルゴリズムリスト８０３である。これは、永続性ある記憶部から読み出され、特定の物理的ＳＤＲデバイス１００がサポート可能な変調アルゴリズムすべてを記述する情報すべてを所有する構造リストである。この構造は、以下の情報を含むことができる。
・アルゴリズムＩＤ(Algorithm ID)-このエンティティ８１２は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＭｏｄｕｌａｔｉｏｎＡｌｇｏｒｉｔｈｍｓ．Ａｌｇｏｒｉｔｈｍ．ＤｉｓｐｌａｙＮａｍｅエレメントに対応する。
・ファイルネーム(File Name)-このエンティティ８１３は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＭｏｄｕｌａｔｉｏｎＡｌｇｏｒｉｔｈｍｓ．Ａｌｇｏｒｉｔｈｍ．ＦｉｌｅＮａｍｅエレメントに対応する。
・優先度(Priority)-このエンティティ８１５は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＭｏｄｕｌａｔｉｏｎＡｌｇｏｒｉｔｈｍｓ．Ａｌｇｏｒｉｔｈｍ．Ｐｒｉｏｒｉｔｙエレメントに対応する。
・有効範囲チェックインターバル(Coverage Check Interval)-このエンティティ８１６は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＭｏｄｕｌａｔｉｏｎＡｌｇｏｒｉｔｈｍｓ．Ａｌｇｏｒｉｔｈｍ．ＣｏｖｅｒａｇｅＣｈｅｃｋＩｎｔｅｒｖａｌエレメントに対応する。
【００６５】
第４のデータ構造は、スキャン行動８０５である。これは、永続性の記憶部から読み出され、物理的ＳＤＲデバイス１００を管理する状態機械（state machine）の状態各々で実行されるスキャニングの方法を記述する情報すべてを所有する構造である。この構造は、以下の情報を含むことができる。
・ベスト周波数(Best Frequency)-このエンティティ８１９は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＳｃａｎＢｅｈａｖｉｏｒｓ．Ｂｅｓｔ．ＳｃａｎＦｒｅｑｕｅｎｃｙエレメントに対応する。
・アクティブ周波数(Active Frequency)-このエンティティ８２０は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＳｃａｎＢｅｈａｖｉｏｒｓ．Ａｃｔｉｖｅ．ＳｃａｎＦｒｅｑｕｅｎｃｙエレメントに対応する。
・代替周波数(Alternate Frequency)-このエンティティ８２１は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＳｃａｎＢｅｈａｖｉｏｒｓ．Ａｌｔｅｒｎａｔｅ．ＳｃａｎＦｒｅｑｕｅｎｃｙエレメントに対応する。
・非接続周波数(Disconnected Frequency)-このエンティティ８２２は、コンフィギュレーションファイルのＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒ．ＳｄｒＤｅｖｉｃｅ．ＳｃａｎＢｅｈａｖｉｏｒｓ．Ｄｉｓｃｏｎｎｅｃｔｅｄ．ＳｃａｎＦｒｅｑｕｅｎｃｙエレメントに対応する。
【００６６】
一実施形態では、アクティブ周波数は３００，０００ミリ秒から３，６００，０００ミリ秒の間に設定され、最適な周波数はＧＰＳが望まれない限り０ミリ秒に設定される。ＧＰＳ周波数が望まれるならば、ベスト周波数は３００，０００ミリ秒に設定される。代わりに周波数を６０，０００ミリ秒から３００，０００ミリ秒の間に設定することも可能であり、（周波数がおよそ６０，０００ミリ秒より大きくなるべきケースの電源供給でない限り）非接続周波数を１ミリ秒に設定することが可能である。
【００６７】
その他のデータ構造は、ヒントリスト８２６であり、ヒントデータベース４０６に格納可能である。これは、永続性ある記憶部から読み出され、ネットワークマネージメントサブシステムがスキャニング処理をドライブするため使用できるヒントを記述する情報すべてを所有する構造である。構造は、以下の情報を含むことができる。
・(Hint Type)-このエンティティ８２７は、提供されるべきヒントのタイプを表す。このエンティティは、位置（ＧＰＳ）あるいは時間（時間のレンジ）の値とともに設定可能である。付加的なヒントのタイプも可能であり、明示的に本発明の範囲内に含まれるように意図される。新しいヒントタイプの例は、バッテリパワーあるいは信号強度の時系列的傾向を含む。
・ＳＤＲドライブ(SDR Device)-このエンティティ８３４は、コンフィギュレーションファイルのＳｃａｎＨｉｎｔｓ．Ｈｉｎｔ．Ｔｉｍｅ／Ｇｐｓ．ＳｄｒＤｅｖｉｃｅエレメントに対応する。
・ヒントスタート(Hint Start)-このエンティティ８２８は、コンフィギュレーションファイルのＳｃａｎＨｉｎｔｓ．Ｈｉｎｔ．Ｔｉｍｅ／Ｇｐｓ．Ｂｉｇｉｎエレメントに対応する。
・ヒントストップ(Hint Stop)-このエンティティ８２９は、コンフィギュレーションファイルのＳｃａｎＨｉｎｔｓ．Ｈｉｎｔ．Ｔｉｍｅ／Ｇｐｓ．Ｅｎｄエレメントに対応する。
・アルゴリズムＩＤ(Algorithm ID)-このエンティティ８２９は、コンフィギュレーションファイルのＳｃａｎＨｉｎｔｓ．Ｈｉｎｔ．Ｔｉｍｅ／Ｇｐｓ．ＰｒｅｆｅｒｒｅｄＡｌｇｏｒｉｔｈｍエレメントに対応する。
【００６８】
ＳＤＲ集中ソフトウェアコントローラ１１１は、システム１０９にコントローラ１１１が存在する場合、すべてのタイプのコンフィギュレーションを集中的に管理する。ＳＤＲ集中ソフトウェアコントローラ１１１は、現在の変調アルゴリズムプログラムファイル一式、ＳＤＲソフトウェアコントローラコンフィギュレーションファイル、そしてスキャニングヒントデータベースの格納場所を提供することが可能であり、標準暗号化されて保証されるファイル転送技術を使った集中貯蔵場所からＳＤＲソフトウェアコントローラシステム１０９による検索を利用できる。
【００６９】
ＳＤＲソフトウェアコントローラコンフィギュレーションシステム１０９は、ＳＤＲ集中ソフトウェアコントローラシステム１１１とともに、もしくはそれなしで動作するようにセットアップ可能である。ＳＤＲ集中ソフトウェアコントローラ１１１は、システム１０９のため、コンフィグレーション設定を中心的に格納し、管理的なアクセスを提供し、分配する目的を達成させる。これに関し、その目的は、移動性があって潜在的に広範囲に分散するコンピュータデバイス一式を管理するのにつきものである管理上のオーバヘッドを軽減することにある。ＳＤＲ集中ソフトウェアコントローラ１１１は、ルータ３６によってすでに管理されている移動型コンピュータデバイスの範囲に渡る移動型コンピュータデバイス用のＳＤＲソフトウェアコントローラコンフィギュレーションを集中的に管理する目的のため、ルータ３６と通信する。
【００７０】
ＳＤＲ集中ソフトウェアコントローラ１１１と通信するルータ３６は、典型的な局であり、一方、ＳＤＲソフトウェアコントローラ１０９と通信するルータ３５は、潜在的に移動型である。多くの関係がＳＤＲ集中ソフトウェアコントローラ１１１とＳＤＲソフトコントローラ１０９との間に存在する。したがって、ＳＤＲソフトウェアコントローラシステム１０９はすべて、一つの集中ソフトウェアコントローラ１１１とＳＤＲ集中ソフトウェアコントローラ１１１が存在するシステム内で通信する。
【００７１】
その他の実施形態では、移動型ルータ３５と潜在的に関係のあるＳＤＲソフトウェアコントローラシステム１０９は、中心的コンフィギュレーションのオーソリティとして務め、ＳＤＲソフトウェアコントローラ１０９とＳＤＲ集中ソフトウェアコントローラ１１１両方の配置された役割を引き受ける。さらにその他の実施形態としては、ＳＤＲ集中ソフトウェアコントローラ１１１が、ＳＤＲソフトウェアコントローラ１０９と離れて区別されるがルータ３５は本質的に移動型であるように、ルータ３６と関連してもよい。この種のコンフィギュレーションの例として、移動型コマンドセンターモデルを記述することができる。
【００７２】
上述した目的以外にも、ＳＤＲソフトウェアコントローラシステム１０９は、完全にひとつのモバイルコンピュータデバイスとして具現化できる。ＳＤＲ集中ソフトウェアコントローラ１１１が存在しない場合にこのモデルの一実施形態がある。
【００７３】
一方、ＳＤＲ集中ソフトウェアコントローラが存在する場合、複数のＳＤＲソフトウェアコントローラシステム１０９と一つのＳＤＲ集中ソフトウェアコントローラシステム１１１との間のメッセージモデルが必要となる。限定しない例として、メッセージモデルは、単純に、よく知られたＩＰアドレス上で確かなＦＴＰサーバを操作するＳＤＲ集中ソフトウェアコントローラシステム１１１から成り、ＳＤＲソフトウェアコントローラ１０９は、ＩＰアドレスを通してアップデートされた変調アルゴリズム４０７、ＳＤＲソフトウェアコントローラコンフィギュレーションファイル４０５、そしてスキャニングヒットデータベース４０６一式を検索開始するのに接続する。この種のアプローチのその他の実施形態として、セキュアシェル／コピー（ＳＳＨ）、あるいは、特定の暗号化されて認証されたファイル転送メカニズムを含む。さらに、よく知られたディレクトリストレージあるいは関係するデータベース技術を通して、ＳＤＲ集中ソフトウェアコントローラ１１１は各ＳＤＲソフトウェアコントローラシステム１０９に対して固有のカスタマイズされたコンフィギュレーションファイルを提供することができる。
【００７４】
限定しない一例として、上述したＦＴＰサーバと接続する各システムは、ディレクトリからマシーンのドメインネームに等しいネームとともに現在のコンフィギュレーションファイルをダウンロードしてもよい。ドメインネームのグループに渡ってファイルを共有したい場合、ショートカットあるいはシャドーファイルが供給を望む各ディレクトリに対して作られる。どの方法でもメッセージ認証コード（ＭＡＣ）技術を使った検索および認証に基づき、ローカルコンフィギュレーションファイルは上書きされ、ローカルシステムはアップデートされたファイルとともに初期シークエンスを持続する。
【００７５】
ＳＤＲソフトウェアコントローラシステム１０９と、システムに含まれるならばＳＤＲ集中ソフトウェアコントローラシステム１１１は、ＳＤＲソフトウェアコントローラシステム１０９の行動を替えるためシステム管理者に制御を提供するコンフィギュレーションインターフェイスを要求する。一つの実施形態では、このコンフィギュレーションインターフェイスは、ＳＤＲソフトウェアコントローラシステム１０９を含む各システムに配置される。代わりの実施形態としては、コンフィギュレーションがＳＤＲ集中ソフトウェアコントローラシステム１１１にのみエンターされ、移動型クライアントはネットワークを通じてコンフィギュレーションを学ぶ。この種のシステムには、ＳＤＲソフトウェアコントローラシステム１０９に要求されるコンフィギュレーションを減少させ、集中化する利点がある。
【００７６】
ＳＤＲ集中ソフトウェアコントローラシステム１１１のオペレーティングシステム１１０（あるいはＳＤＲ集中ソフトウェアコントローラシステム１１１がなくＳＤＲソフトウェアコントローラシステム１０９が実行するオペレーティングシステム１１０）がグラフィックユーザインターフェイスを提供する場合、同一ホストに配置されるＧＵＩアプリケーションを使ってコンフィギュレーションが実行可能である。グラフィックユーザインターフェイスのないデバイスにシステムがインストールされた場合、コンフィギュレーションセッティングへのアクセスを提供するためその他の手段が利用される。一つの実施形態として、コンフィギュレーション情報がＸＭＬファイルに格納される。ＸＭＬファイルはテキスト形式であるため、管理者によって直接容易に編集される。限定しない一例によれば、図８、９に表すようにＸＭＬファイルのテキストを直接編集することは、システムに対する適当なユーザインターフェイスを表す。その他の実施形態では、コンフィギュレーションインターフェイスは、標準ブラウザのウェブプロトコルを通して配信可能である。その他の実施形態では、コンフィギュレーションインターフェイスは、ＦＴＰプロトコルを通じてシステムに配信されるコンフィギュレーションファイルを通して提供可能である。その他の実施形態では、コンフィギュレーションインターフェイスは、公表されてよく知られたアプリケーションプログラミングあるいはソケットレベルインターフェイスでもよい。
【００７７】
ＡＰＩ
ＡＰＩ４０１は、情報を発信し、受信する性能を提供する。ＡＰＩ４０１はまた、外部のエンティティがシステムの行動に動的制御を実行可能にするメカニズムを提供する。ＡＰＩ４０１用実装メカニズムは、非常に多くよく知られている。限定しない一例として、ＡＰＩ４０１は、数ある中で、ローカルソケット、一般的に理解されたマーシャル技術とともに指名されたパイプ、エクスポートされた機能とともに共有化されたライブラリ、そして、同期信号とともにグローバルメモリなどの形をとることができる。
【００７８】
公表される情報一式の一例は以下の通りである。
・ＧＰＳステータスブロック(GpsStatusBlock)
。座標(Coordinates)-このエンティティは、ＧＰＳ変調アルゴリズムがシステムに設定されたかチェックされた前回の時にＧＰＳデバイスから引き出されたＲＡＷデータを所有するバッファを表す。
・ネットワークステータスブロック(NetworkStatusBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、特定の変調アルゴリズムの内容の下で動作する間、ＳＤＲ１００を表すため使用可能なテキスト形式の識別子を表す。
。ステータス(Status)-このエンティティは、ネットワークがアップもしくはダウンしているかについての論理指令を表す。
・パケットレシーブブロック(PacketReceivedBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、関連するパケットが受け取られた時にＳＤＲ１００が現在動作する変調アルゴリズムのディスプレイネームを表す。
。パケット(Packet)-このエンティティは、ＳＤＲ１００を介して受け取ってローカルシステムに配信しなければならない新しいパケットを所有するバッファを表す。
【００７９】
受信された情報一式は以下の通りである。
・最適カレントネットワークブロック(ONCurrentlyMostPreferredNetworkBlock)
。ディスプレイネーム(DisplayName)-このエンティティは、外部のエンティティが主要なトランスポートメカニズムとして頼るネットワークのディスプレイネームを表す。
・パケットＸｍｉｔブロック(PacketXmitBlock)
。ディスプレイ(DisplayName)-このエンティティは、外部のエンティティが関連するパケットを配信しようとするネットワークのディスプレイネームを表す。
。パケット(Packet)-このエンティティは、配信されるパケットを所有するバッファを表す。
・ヒントブロック(OnHintBlock)
。アクション(Action)-このエンティティは、ヒントに対して起こされるべき行動を表す。その値は、“Ａｄｄ”もしくは“Ｒｅｍｏｖｅ”となる。
。ヒントタイプ(Hint Type)-このエンティティは、供給されるヒントの種類を表す。一つの実施形態では、その値は“Ｔｉｍｅ”もしくは“ＧＰＳ”となる。
。ヒントスタート(Hint Start)-このエンティティは、ヒントが適用されるバンドのためのスタート値となる。時間に基づいたヒントでは、この値はタイムスタンプとなる。ＧＰＳに基づいたヒントでは、その値は矩形領域の左上隅を表すＧＰＳ座標系となる。
。ヒントストップ(Hint Stop)-このエンティティは、ヒントが適用されるバンドのためのエンド値となる。時間に基づいたヒントでは、この値はタイムスタンプとなる。ＧＰＳに基づいたヒントでは、その値は矩形領域の右下隅を表すＧＰＳ座標系となる。
。ＳＤＲディスプレイネーム(SDR Display Name)-このエンティティは、このヒントが適用される物理的ＳＤＲデバイス１００のための識別子を表す。
。変調アルゴリズムディスプレイネーム(Modulation Algorithm Display Name)-このエンティティは、ヒント自身を表す。このフィールドでの値は、システムがＨｉｎｔＳｔａｒｔおよびＨｉｎｔＳｔｏｐフィールドによって提案されるバンド内に存在するとき選択されるべき変調アルゴリズムを識別する。
【００８０】
システムに対して動的制御を実行する外部のエンティティによって提供される例示的情報一式は以下の通りである。
・コンフィギュレーションブロック（ConfigurationBlock）
。コンフィギュレーション(Configuration)-このエンティティは、ＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒコンフィギュレーションブロックを表す。ＳｄｒＳｏｆｔｗａｒｅＣｏｎｔｒｏｌｌｅｒコンフィギュレーションブロック例示的記述は、図８に提供されている。
。タイムアウト(Timeout)-このエンティティは、元のコンフィギュレーションブロックが効力を生じるまでの接続期間をミリ秒で表す。このシステムの実装は、検証目的のため最大のタイムアウトを実施しなければならない。一実施形態では、この最大タイムアウトは、６０，０００ミリ秒に設定される。この例では、より長い接続期間のための新しいコンフィギュレーションを提供するため、複数の連続的コールがＡＰＩ４０１に対してされなければならない。
【００８１】
コンフィギュレーションブロックＡＰＩの使用が認証されるべきであることに注意すべきである。本発明の一態様によれば、共有化された秘密鍵が暗号化に使用される。共有化されたシークレットの管理は、この明細書の範囲外で議論されるよく知られた鍵管理記述を使って実行される。
【００８２】
ＡＰＩの使用は、ＡＰＩの性能を統合してルータ３５と利用可能となる層状のプロキシ形式におけるＡＰＩにする能力を提供することに注意すべきである。このＡＰＩの使用は、ＡＰＩ４０１の性能を統合して、以前出願された米国特許出願２００４／０１７０１８１公報（タイトル“Ｐｒｉｏｒｉｔｉｚｅｄ  Ａｌｔｅｒｎａｔｅ  Ｐｏｒｔ  Ｒｏｕｔｉｎｇ”）のような発明によって提供される機能性にする能力を提供すべきことに注意すべきであり、上記公報の開示内容は明示的にすべてそのまま参照することで組み入れられている。
【００８３】
ネットワークマネージメント
ネットワークマネージメントサブシステム４０３は、コンフィギュレーション４０４とＡＰＩ４０１を通じて得られる情報とを使用し、ネットワーク接続、ネットワーク品質テスト、そして、最も適切なネットワークを探す利用可能な変調アルゴリズムを通してスキャニングする最適時間の決定を確立する。
【００８４】
ネットワークマネージメントサブシステム４０３は、各ＳＤＲ１００のための利用可能な変調アルゴリズムに渡ってスキャニングし、各変調アルゴリズムを通して利用可能なネットワークの質をチェックし、任意の時間、場所で最もよいネットワークを選び、そして、適切な周波数を再びスキャニングする責任をもつ。加えて、このサブシステム４０３は、継続しているベースでネットワークの質をモニタリングし、接続がされなくなる度に再スキャニングを初期化し、そして、制御されるネットワークの状態が変化する度に内部および外部のエンティティに知らせる責任をもつ。
【００８５】
前に述べたＡＰＩ４０１を通してネットワークの内部状態をモニタリングして公表するのに加え、ＳＤＲソフトウェアコントローラシステム１０９はまた、ルータ３５のようなこのシステムの外部にあるエンティティが現在のアクティブなネットワーク上でもつ外部の従属性の状態を理解しなければならない。ルータ３５のような外部のエンティティが現在のアクティブなネットワークに従属性をもった場合、ＡＰＩを通してこのシステムを知らせ、ネットワークを現在最も好ましいネットワークとして指定する。
この機能は、米国特許明細書第６，１９８，９２０号、および米国特許明細書第６，４１８，３２４号に記載されており、上述したように、開示内容はすべてここに参照されて組み入れられる。内部のネットワーク状態の情報と外部のネットワーク従属情報は、ともにＳＤＲソフトウェアコントローラシステム１０９にとって重要であり、なぜなら、ネットワークの状態あるいはネットワーク従属性のダイナミックな変化に対する応答として、“スキャン行動”をダイナミックに変更することを要求されるからである。
【００８６】
ＳＤＲソフトウェアコントローラシステム１０９は、ＳＤＲ１００の接続性の状態を管理するためルータ３５と通信する。ルータ３５は、ＳＤＲソフトウェアコントローラシステム１０９がルータ３５用の付加的な通信リンクがトランスポートメカニズムとして確立させて使用可能にするという利点を、通信から得る。どのネットワークをルータ３５がデータ転送のために依存しているか理解するためにその情報が使用されるため、ＳＤＲソフトウェアコントローラシステム１０９がこの通信から利益を得る。ＳＤＲソフトウェアコントローラシステム１０９は、（局所的に設定され、あるいはＳＤＲ集中ソフトウェアコントローラ１１１から引き出されても）自身のコンフィギュレーション４０４に沿ってルータ３５からの情報を使用し、コントロールされる各ＳＤＲ１００の真の状態を判断する。
【００８７】
例示的な状態遷移ダイアグラムが図７に示している。このダイアグラムは、ＳＤＲソフトウェアコントローラ１０９によってコントロールされるべき特定のＳＤＲ１００が見せる様々な状態の外観を提供する。注意すべきこととして、個々のＳＤＲソフトウェアコントローラ１０９は実際に複数の物理的ＳＤＲ１００を制御することもできる。この場合、単純に、複数の状態機械が各々独立して動作する。このダイアグラムはまた、ＳＤＲソフトウェアコントローラシステム１０９の観点からＳＤＲの状態が取る可能な遷移経路の外観を提供する。
【００８８】
図７を参照すると、ＳＤＲソフトウェアコントローラシステム１０９がＳＤＲ１００を初期化すると、状態機械はスタート６０１にエンターする。エンターすると、スタート６０１からスキャニング状態６０２への状態遷移がすぐに生じる。この状態では、ＳＤＲソフトウェアコントローラシステム１０９は、ネットワークと接続するまで設定された優先順位に従ってコンフィギュレートされた変調アルゴリズムを循環させている。
【００８９】
ＳＤＲが一つの設定された変調アルゴリズムを使ってネットワークと接続すると、システム１０９は、アクティブな変調アルゴリズムの相対的優先度を判断するため、コンフィギュレーション４０４をチェックする。接続された変調アルゴリズムがＳＤＲ１００によって設定された優先度の最も高い変調アルゴリズムである場合、スキャニング６０２からベスト６０４への状態遷移が生じる。一方、接続された変調アルゴリズムがＳＤＲ１００によって設定された優先度の最も高い変調アルゴリズムではない場合、スキャニング６０２から代替６０５への状態遷移が生じる。ベスト６０４もしくは代替６０５の状態に達すると、ルータ３５のような外部の機器は、現在の接続されたネットワークが最適カレントネットワーク（Ｃｕｒｒｅｎｔｌｙ  Ｍｏｓｔ  Ｐｒｅｆｅｒｒｅｄ  Ｎｅｔｗｏｒｋ）と見なされることを本システムに伝えることができる。ＳＤＲ１００が代替６０５の状態であるときにこの知らせが受信されると、代替６０５からアクティブ６０６へのさらなる状態遷移が生じる。ベスト６０４からアクティブ６０６への状態遷移は起こらず、それは、２つの状態が重なるときベスト状態６０４の方がアクティブ状態６０６に比べて優先度が高いからである。ルータ３５のような外部関連機器が、確立されたネットワーク接続が最適カレントネットワークであるともはやみなすことがないことをシステムに通知することも可能である。そのような状況では、アクティブ６０６から代替６０５へ戻る状態遷移がさらに生じる。
【００９０】
確立した接続が接続状態として安定し、アクティブ６０６と代替６０５との間の遷移から離れると、唯一の残りの遷移状態が非接続６０３となる。この遷移は、ネットワーク接続性が自然に落ち、あるいは、ＳＤＲソフトウェアコントローラシステム１０９が前の状態で設定されたスキャン行動（Scan behavior）によるスキャニングモードに再び入ろうとするため生じる。どちらの場合でも、非接続６０３からスキャニング６０２への状態遷移がすぐに生じ、フルスキャニング処理が、最も優先度の高い変調アルゴリズムから最も優先度の低いアルゴリズムへ再び起こる。
【００９１】
代わりに、スキャニングヒントデータベース４０６が存在し、現在時間あるいは現在の地理的位置に適用されるデータベース４０６内に含まれるレコードが存在する場合、変調アルゴリズムのために設定された厳格な優先順位は破られてもよい。スキャンがＳＤＲデバイス１００のため初期化され、適用可能なヒントが存在する場合、ヒントに関連する変調アルゴリズムは、最も優先度の高い変調アルゴリズムへ一時的に昇格させられる。複数のヒントレコードが検出された場合、一時的に昇格された優先度の相対的順序は、ヒントが見つけられた順に設定される。例えば、最初に発見されたヒントは、一時的に最も高い優先度をもつ。２番目に発見されたヒントは、２番目に高い優先度をもつ。そうであってもヒントが最初処理されると、ヒントのためすでにチェックされたものをスキップしながら、設定された最優先度の高いものから最も低いものへスキャニングが再び始まる。さらに、空間もしくは時間の中で任意の特定位置に適用可能な設定されるヒントの存在がスキャンを開始する。スキャニング状態がネットワークと接続すると、上述した状態遷移を続ける。システムのシャットダウンのため接続状態から非接続状態へ状態遷移が生じると、スキャニング６０２へ戻る遷移は起こらず、システムは代わりにエンド６０７へ移る。
【００９２】
所定の変調アルゴリズムがＳＤＲ１００にロードされると、ネットワーク接続の質を判断する多くの方法が存在する。標準ネットワークでは、標準的アプローチが使用可能である。限定しない例として、オペレーティングシステムのＩＰスタックに可視的な標準的ＩＰネットワークにおいては、オペレーティングシステムのＩＰスタックがＤＨＣＰサーバから正当なリースを獲得できたかチェックするような技術は、適切なネットワークの質の指示を提供する。加えて、デフォルトのルータ公告（Router Advertisements）（ＲＦＣ１２５６に記載されており、この開示内容は明示的にすべてこの明細書に参照として組み入れられる）を聞くことは、ネットワークの質の指示を提供する。
【００９３】
また、様々なリンク層指示が使用可能である。時には、リンク層指示はネットワークに固有である。そのため、これらのタイプの状況では、ＳＤＲソフトウェアプログラムを構成するＳＤＲベンダとともにソリューションが働き、ＳＤＲソフトウェアプログラムは、ＳＤＲユニット１００内に知られたリンクのクオリティをＳＤＲ１００にアクセスするため使用されるインターフェイスメカニズム用に作られた一般的バイナリリンクインジケータに変換することができる。限定しない例として、ＮＤＩＳの従順なミニポートデバイスによって公表されているＯＩＤ＿ＧＥＮ＿ＭＥＤＩＡ＿ＣＯＮＮＥＣＴ＿ＳＴＡＴＵＳインジケータが含まれ、あるいは、ＲＳ−２３２インターフェイス用ＤＣＤラインの状態が含まれる。
【００９４】
その他の実施形態では、ＳＤＲ１００が２つのアクセスインターフェイス、すなわちコントロールアクセスとネットワークアクセスを提供する限り、ＳＤＲソフトウェアコントローラシステム１０９とルータ３５は共同作業可能である。この場合、ＳＤＲソフトウェアコントローラシステム１０９は、セットアップおよびＳＤＲ１００の変調アルゴリズムのスキャニングを管理する。ルータ３５は、セットアップされて、本システム１０９のＡＰＩ４０１が状態を公表するのと同じ方法で状態を公表するネットワークの存続性をテストする。ＳＤＲソフトウェアコントローラシステム１０９は、以前に特定されてルータ３５からの公表された状態を単に使用し、自身のネットワーク状態として動作する。
【００９５】
最初にネットワークをチェックする同様の方法が、アクティブな変調アルゴリズム用コンフィギュレーション設定に従った継続的基調（ongoing basis）で使用される。ネットワークマネージメントサブシステム４０３は、ＳＤＲ１００内の特定の変調アルゴリズムのための状態変化を検知する度に、ＡＰＩ４０１を通して更新される状態を公表する責務がある。
【００９６】
デバイス１００にロードされた変調アルゴリズムがＧＰＳ変調アルゴリズム（設定された優先値が０）である場合、質問を発信して現在のＧＰＳ座標の返答を受け取るのにかかる時間の間にアルゴリズムが単にロードされ続けている。これが終了すると、変調アルゴリズムは接続から外れ、スキャニングが一つの優先度とともに設定された変調アルゴリズムへ移る。これら座標系は保持され、ＡＰＩ４０１を通じて外部のエンティティに提供可能である。ＧＰＳとネットワーク状態ＡＰＩの公表との組み合わせにより、外部のエンティティが日時（time-of-day）ヒントあるいは位置（positional）ヒント用のスキャニングヒントデータベース４０６をアップデート可能となる。スキャニングヒントデータベース４０６は、前述したように、ＡＰＩ４０１を通してアップデートされてもよい。
【００９７】
ＳＤＲソフトウェアコントローラシステム１０９が多数のＳＤＲデバイス１００を管理する度、同じデバイス１００に多数の無線周波数（ＲＦ）トランスミッタ／レシーバがある、あるいは、多数の物理的デバイス１００があるに関わらず、コントローラ１０９は、異なるタイプの変調アルゴリズム各々がある時間に一つのＳＤＲデバイス１００にのみ接続されることを確立するように動作する。言い換えれば、２つの物理的ＳＤＲデバイス１００は同じ変調アルゴリズムを同時期にアクティブな変調アルゴリズムに指定することはできない。これは、以下の方法によって達成される。特定のＳＤＲデバイス１００と関連する状態機械がスキャニング状態に入る度に、デバイス用にサポートされた変調アルゴリズムの完全リストをスキャンが進行していく。しかしながら、その他のＳＤＲデバイス１００が接続されるアルゴリズムとしてすでにマークし、また、そのアルゴリズムが現在のＳＤＲデバイス１００用のサポートされたアルゴリズムに記載されている場合、そのアルゴリズムはスキャンするアルゴリズムのリストから取り除かれる。このように、どのＳＤＲデバイス１００も、すでに他のＳＤＲデバイス１００に接続したネットワークをスキャンしない。
【００９８】
ルーティングサポート
ルーティングサポートサブシステム４０２は、バーチャルサブシステムであり、その責務はネットワークマネージメント４０３とＡＰＩ４０１プロセッシングの内容に実際に実装される。バーチャルサブシステム４０２の責務は、メッセージングメカニズムとスキャンバックオフメカニズムから成り、これらは、外部の関連機器がデータパケットを送受信することができる経路と同様にシステム１０９を通じたスキャン期間の間生じるパケット損失の範囲を最小化する。メッセージングメカニズムは、本発明の一態様の行動であり、そこでは、外部のエンティティが、システム１０９を通してアクセス可能な様々なネットワークの状態の変化に気づく。スキャンバックオフメカニズムは、本発明の一態様の行動であり、そこでは、パケットの損失を最小限にするために所定期間経過後スキャンの進行が中止となる。一つの実施形態では、バックオフタイムアウトは、アクティブスキャン周波数の１０分の１に設定されるべきである。この場合、アクティブスキャン周波数が３００，０００ミリ秒に設定された場合、バックオフタイムアウトは３０，０００ミリ秒、すなわち３０秒に設定される。
【００９９】
利用可能な変調アルゴリズムのスキャンを実行する時であるとシステム１０９が判断すると、システム１０９は最初にアクティブな変調アルゴリズムの状態をチェックする。アクティブな変調アルゴリズムが最適カレントネットワーク（Currently Most Preferred Network）であると外部のエンティティによって見なされなければ、バックオフ処理は起こらず、単にメッセージだけとなる。この状態では、現在のアクティブな変調アルゴリズムに関連したネットワークは有効範囲外にあることを、上述したＡＰＩメカニズムを通じて外部の関連機器が単に知ることとなる。このＡＰＩ通知が送られた後、アクティブなネットワークが接続されなくなり、スキャンオペレーションが呼び出される。
【０１００】
一方、外部のエンティティによってアクティブな変調アルゴリズムが最適カレントネットワークとみなされた場合、サブシステム４０２は、上述したように、ＡＰＩ通知とスキャン処理を実行する。しかしながら、サブシステム４０２は、ＡＰＩ４０１を介して新しい最適カレントネットワークの通知を設定された期間待つ。設定された期間内に新しい最適カレントネットワークが受信されない場合、スキャン処理は中止され、前の最適カレントネットワークが再び使用される。設定されたタイムアウト期間が０に設定されている場合、変調アルゴリズムを通じたスキャニングに関連する処理は、アクティブな変調アルゴリズムが最適カレントネットワークである度に延期される。
【０１０１】
加えて、ルーティングサポートサブシステム４０２は、特定の変調アルゴリズムを使ったネットワークに接続される特定のＳＤＲ１００にパケットを転送するため、ＡＰＩ４０１に対してなされるコールの受容システムとなる。ＳＤＲ１００は、プラットフォーム上で相互に排他的なインターフェイスポートを通じてアクセス可能である。限定しない例として、そのような相互に排他的なインターフェイスポートは、シリアルポートを表す。この場合、データをＳＤＲ１００に入れる唯一の方法は、インターフェイスポートを所有するエンティティを通すことある。外部のエンティティは、サブシステム４０２を利用することによってそのようなデバイスを通じてトラフィックをルーティングすることができる。代わりの実施形態として、多重プロセスによって共有化される標準アプローチを通じてアクセス可能となってもよい。限定しない例として、そのようなアプローチは、ソケットコールを含む。この場合、外部のアプリケーションは、トラフィック自身をルーティングすることを選ぶか、もしくは、サブシステムを利用することを選んでもよい。
【０１０２】
同様に、ルーティングサポートサブシステム４０２は、データパケットが受け取られた外部のエンティティにシグナルするＡＰＩ４０１に対してなされるコールのオリジネーターである。上述したように、ＳＤＲ１００のインターフェイスのタイプに従い、そのような受信パケットは直接外部のエンティティにルーティングされてもよく、あるいは、相互に排他的なインターフェイスポートである場合、そのような受信パケットはサブシステム４０２そしてＡＰＩ４０１を通した伝達を通じて外部のエンティティにルーティング可能である。
【０１０３】
加えて、ＳＤＲ１００が多数のＲＦトランスミッタ／レシーバをサポートし、あるいは多数の物理的ＳＤＲデバイス１００がホストに接続されている限り、システムデザインは、複数の同時ネットワーク接続を維持する能力を排除することはない。特に、ＡＰＩ４０１は、多数の有効範囲のＳＤＲ管理ネットワークとコンフィギュレーション４０４内の複数ＳＤＲデータブロックをサポートする柔軟性を提供する。加えて、個々のＳＤＲ１００用の状態機械は、完全に独立し、その他のＳＤＲトランスミッタ／レシーバに関する状態機械と並列して走ることができる。唯一のＳＤＲデバイス１００の単一の変調アルゴリズムのみが外部の関連機器によって任意の時に最適カレントネットワークとして指定される場合でも、外部の関連機器がデータパケットを送受信するための付加的なネットワークを同時に使用できることを排除しない。
【０１０４】
ＡＰＩのコンフィギュレーション、およびシステム１０９のランタイムオペレーションは、シングル−デバイス−マルチプル−ネットワーク−サポートデータモデルをシングル−ネットワーク−ロジカル−デバイスデータモデルに効果的に変換する単一の物理的デバイスによって所定時に一度サポートされるネットワークグループのグラニュラリティ（granularity）よりも、ネットワークレベルのグラニュラリティで状態情報を提供する。そのようなグラニュラリティの分割（split）は、システム１０９によって表される論理ネットワークデバイスをシステムが管理、ルーティングし、そして優先度をつけることを可能にする。
【０１０５】
処理フロー
ＳＤＲソフトウェアコントローラシステム１０９を通したデータの処理流れの一例が今から説明される。
【０１０６】
初期化
ＳＤＲソフトウェアコントローラシステム１０９のスタートアップに基づき、すべてのデータ構造が初期化される。ＳＤＲソフトウェアコントローラコンフィギュレーションファイル４０５のローカルコピーが読み出され、認可され、そして適用可能なメモリ内のデータ構造にロードされる（図４参照）。認可ルーチンの一部には、ＳＤＲソフトウェアコントローラコンフィギュレーションファイル４０５で識別される変調アルゴリズムプログラムファイル各々の部分的コピーが実際にコンフィギュレーション内で指定された場所に存在するか検証することが含まれる。存在しない変調アルゴリズムファイルは、永続性ある記憶部に設定され続けているとしても、メモリ内のコンフィギュレーションデータ構造から取り除かれる。また、ファイルを失うと、よく知られたメカニズムを通してローカルオペレーティングシステムのエラーログにエラーメッセージが提示される。ヒントデータベース４０６のローカルコピーもまた、読み出され、認可され、そして適用可能なメモリ内のデータ構造にロードされる（図４参照）。
【０１０７】
すべてのコンフィギュレーションデータがメモリに読み出されてその内容が認可されると、コンフィギュレーションで規定される各物理的ＳＤＲデバイス１００は、特定のインターフェイスポートを通じてアクセスされる。ＳＤＲデバイス１００に対するアクセスが何らかの理由で否定された場合、イベントがオペレーティングシステム１１０の標準エラーログへ記録され、そして、違反したＳＤＲデバイス１００はメモリにロードされたコンフィギュレーションから取り除かれる。しかしながら、一実施形態では、デバイス１００のコンフィギュレーションはマシーンのコンフィギュレーションファイルの永続性あるコピーを維持する。
【０１０８】
物理的ＳＤＲデバイス１００のすべてがアクセスされると、ＳＤＲソフトウェアコントローラシステム１０９は、システム１０９内の行動を管理するため異なるオペレーティングシステムのスレッド（threads）を開始する。限定しない一例として、以下に述べる実際のサブシステムの実装は、同じプロセス内に別々の流れを形成し、同じ演算装置に別々の処理を形成し、複数の演算装置に渡って分配される別々の処理を形成し、あるいは、それらの組み合わせを形成する。この記述の目的のため、後に例示する実施形態すべては、ひとまとめにして流れとして参照される。以下の流れが開始される。
コンフィギュレーション(Configuration)-このスレッドは、定期的に起動し、そして、アップデートされた検索すべきコンフィギュレーションデータがあるかみるためＳＤＲ集中ソフトウェアコントローラ１１に照合する責務がある。
ＡＰＩ(Application Programmer Interface)-このスレッドは、システムの状態のダイナミックな変化に関して外部の関連機器と更新する責務がある。
ネットワークマネージメント(Network Management)-このスレッドは、設定されたＳＤＲｓ１００一式のおよび関連するネットワークの状態をモニタリングし、スキャン処理を管理する責務がある。
【０１０９】
コンフィギュレーション
システムが初期化されると、コンフィギュレーションサブシステム４０４の責務のほとんどは遂行されている。一実施形態では、初期化後、コンフィギュレーションサブシステム４０４は２つの責務だけを実行する。第１の責務は、メモリ内のコンフィギュレーション構造に対して制御されたアクセスを提供し、永続性のコンフィギュレーションファイルが変化したときにアップデートすることによって、コンフィギュレーション構造を管理する。変化するイベント用のコンフィギュレーションデータファイルをモニタリングすることが、最も新しいオペレーティングシステムによって提供されるよく知られたメカニズムを通して起こる。コンフィギュレーションサブシステム４０４の他方の責務は、設定されると、定期的に起動し、ＳＤＲ集中ソフトウェアコントローラ１１１にアクセスすることである。
コンフィギュレーションサブシステム４０４は、ＣｏｎｆｉｇｕｒａｔｉｏｎＣｈｅｃｋｉｎｔｅｒｖａｌ８３１によって定められる期間に従って起動する。
コンフィギュレーションサブシステム４０４は、設定されたアドレス（ＣｅｎｔｒａｌｉｚｅｄＣｏｎｔｒｏｌｌｅｒＡｄｄｒｅｓｓ８３３）でＳＤＲ集中ソフトウェアコントローラ１１１にアクセスすることによって、新しいコンフィギュレーションエンティティをチェックする。ＣｏｎｆｉｇｕｒａｔｉｏｎＣｈｅｃｋＩｎｔｅｒｖａｌ８３１がゼロに設定されると、この性能は禁止される。設定値がゼロでない場合、ＣｅｎｔｒａｌｉｚｅｄＣｏｎｔｒｏｌｌｅｒＡｄｄｒｅｓｓは有効ＩＰ／ポートを決定しなければならない。
新しいコンフィギュレーションエンティティが利用可能とわかると、エンティティはローカルコンフィギュレーション記憶部４０５にダウンロードされ、システムはシャットダウンし、上述したように再び初期化される。
【０１１０】
ＡＰＩ
システム初期化の後、ＡＰＩサブシステム４０１は、リクエストをサービス開始する準備ができている。
【０１１１】
ＡＰＩサブシステム４０１から状態通知を受けるため、外部の関連機器は最初にサブシステム４０１に登録しなければならない。登録のためのメカニズムは、ＡＰＩ４０１にアクセするのに使用されるメカニズムに従う。上述したように、メカニズムは、ＩＰパケット、共有化ライブラリ、あるいは共通に使用されるアプローチの数などの形をとる。アプローチにかかわらず、すべての外部の受容部（recipients）は、状態のアップデートを受信するため最初に登録しなければならない。したがって、外部の関連機器がもはや状態のアップデートを要求しなくなると、受容部は登録削除（unregister）しなければならない。限定しない一例によれば、登録／登録削除の一つの方法として、外部関連機器とＡＰＩサブシステム４０１との間のＴＣＰセッションの確立がある。このようなアプローチは、登録削除が自動的であることが利点である。本発明の一態様によれば、ＡＰＩに対する一つのコンシューマーのみがサポートされる。他の実施形態では、複数の登録されたコンシューマーがサポートされる。
【０１１２】
ＡＰＩサブシステム４０１が公表する新しい情報をもつ度に、ＡＰＩサブシステム４０１は登録されたＡＰＩ４０１のコンシューマーすべてに対してそうする。一実施形態では、３種類の公表される情報があり、それらはネットワークマネージメントサブシステム４０３からＡＰＩサブシステム４０１によってすべて受信される。３種類の情報は、すべてＡｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ  Ｓｕｂｓｕｓｔｅｍ  Ｄｅｓｃｒｉｐｔｉｏｎに基づきこのドキュメントにすでに記述されている。
・ＧＰＳステータスブロック(GpsStatusBlock)
・ネットワークステータスブロック(NetworkStatusBlock)
・パケットレシーブブロック(PacketReceiveBlock)
【０１１３】
ＡＰＩサブシステム４０１がスタートアップすると、そのスレッドは待ち状態に入る。
新しいコンシューマーがＡＰＩ４０１に登録する度に、ＡＰＩ４０１は、コンシューマーのコールバックメカニズムのアドレスを格納する。上記の提示された例では、メカニズムは、コンシューマーとの接続が許されたローカルのＴＣＰソケットから成る。その後、ＡＰＩサブシステム４０１は、追加のコンシューマー登録、今現在のコンシューマーの登録解除、あるいは公表もしくは受信されるデータの待ち状態に再び入る。
【０１１４】
ＡＰＩサブシステム４０１は、ネットワークマネージメントサブシステム４０３から公表される情報を受け取る度に、それらすべてに対して情報を伝搬する登録されたコンシューマーのリストを循環する。
【０１１５】
ＡＰＩサブシステム４０１がネットワークマネージメントサブシステム４０３によって情報が公表されるのを待つように、ＡＰＩシステム４０１はまた、外部のエンティティから受け入れられる情報を待つ。一実施形態では、外部のエンティティから受け入れられる４種類の情報がある。４種類の情報はすべて、ＡｐｐｌｉｃａｔｉｏｎＰｒｏｇｒａｍｉｎｇＩｎｔｅｒｆａｃｅＳｕｂｓｙｓｔｅｍ記述に基づきこのドキュメントですでに記載されている。
・オン最適カレントネットワークブロック(OnCurrentlyMostPreferredBlock)
・パケットＸｍｉｔブロック(PacketXmitBlock)
・オンヒントブロック(OnHintBlock)
・コンフィギュレーションブロック(ConfigurationBlock)
【０１１６】
外部のエンティティからのＯｎＣｕｒｒｅｎｔｌｙＭｏｓｔＰｒｅｆｅｒｒｅｄＢｌｏｃｋ通知を受け取ると、ＡＰＩ４０１は、ＳＤＲリストおよびＳＤＲリスト内の各エントリーのアルゴリズムリストを循環し、提供された識別子に対応するエントリーを探す。
識別子が見つかると、ＡＰＩ４０１は、知られたＳＤＲデバイス１００の接続された変調アルゴリズムを識別子が表すか検証する。一方が真でない場合、ＡＰＩコールは失敗し、失敗の表示が呼出人に戻される。どちらも真である場合、ＡＰＩ４０１は存在するＣｏｒｒｅｎｔｌｙＭｏｓｔＰｒｅｆｅｒｒｅｄＮｅｔｗｏｒｋのフラグを明らかにし、ＡＰＩコール内で識別された変調アルゴリズムのためのフラグを裏返す。
【０１１７】
ＡＰＩが外部のエンティティからＰａｃｋｅｔＸｍｉｔＢｌｏｃｋ通知を受けると、ＡＰＩは、ＳＤＲリストおよびＳＤＲリスト内の各エントリーのアルゴリズムリストを循環し、提供された識別子に対応するエントリーを探す。ＰａｃｋｅｔＸｍｉｔＢｌｏｃｋは、パケットバッファが転送されるべきネットワークの識別子とともに、実際のパケットデータバッファを含む。識別子が見つかると、ＡＰＩは、知られたＳＤＲデバイス１００の接続された変調アルゴリズムを識別子が表すか検証する。どちらか一方が真でない場合、ＡＰＩコールは失敗し、失敗の表示が呼出人に戻される。どちらも真である場合、ＡＰＩはネットワーク転送のためネットワークマネージメントサブシステム４０３にパケットを提供する。ＡＰＩ４０１が外部のエンティティからＯｎＨｉｎｔＢｌｏｃｋ通知を受け取った場合、ＡＰＩは、ヒントデータベース４０６のデータ格納部へエレメントを追加あるいはエレメントを格納部から取り除く。ヒントアクション（Ａｄｄ／Ｒｅｍｏｖｅ）の種類に関係なく、ＡＰＩ４０１はいくつかの予備的ステップをとる。第１に、ＳＤＲデバイス１００と供給される変調アルゴリズムが実際にコンフィギュレーションサブシステム４０４に存在することを確認する。どちらか一方のエンティティが存在しない場合、アクションは中止され、ＡＰＩ４０１は呼出人に対して失敗コードを戻す。両エンティティとも存在する場合、ＡＰＩ４０１が起こす次のステップは、同じヒントタイプ、ヒントスタート、ヒントストップ、ＳＤＲデバイス１００、そして変調アルゴリズム（言い換えれば、すべてのヒントフィールドが等しい）を備えた存在するエンティティを探し出すことである。提供されるヒントアクションが、ヒントを加えることであって複製のヒントが存在しない場合、ヒントが加えられる。そうでなければ、アクションは中止され、ＡＰＩ４０１は呼出人に失敗コードを戻す。提供されるヒントアクションがヒントを取り除くことであって複製ヒントが存在しない場合、アクションは中止され、ＡＰＩ４０１は呼出人に失敗コードを戻す。そうでなければ、ヒントは、ヒントデータベース４０６から取り除かれる。
【０１１８】
ＡＰＩ４０１がＣｏｎｆｉｇｕｒａｔｉｏｎＢｌｏｃｋ通知を外部のエンティティから受けると、上述したように、ＡＰＩ４０１は、供給されるコンフィギュレーションデータとともにシステムを再び初期化する。また、ＡＰＩはタイマーをスタートさせる。タイマーが期限切れになると、システムは永続性ある記憶部からのコンフィギュレーションデータとともに再び初期化する。これに関し、ＡＰＩサブシステム４０１を通じて受信された新しいコンフィギュレーションは一時的なセットアップのみとなる。受信されたコンフィギュレーションに関するタイマーが期限切れの場合、システムのセットアップは元のコンフィギュレーションに戻る。
【０１１９】
ネットワークマネージメント
システムが初期化されると、ネットワークマネージメントサブシステム４０３は、システム内の実質的作業の大部分を実行する。一実施形態では、ネットワークマネージメントシステム４０３は、以下のアクションの責務がある。
・ＳＤＲデバイス１００での変調アルゴリズムのスキャニング
・ＳＤＲデバイス１００にダウンロードされた変調アルゴリズムを通してアクセス可能なすべてのネットワークの品質のチェック
・ＡＰＩサブシステム４０１に対するネットワーク状態通知の提供
・ＡＰＩサブシステム４０１に対するパケット受信通知の提供
・ＡＰＩサブシステム４０１に対するＧＰＳ受信通知の提供
・ＳＤＲデバイス１００にロードされた固有の変調アルゴリズムを通してアクセス可能なネットワークに送信されるべきパケットの処理
【０１２０】
ネットワークマネージメントシステム４０３は、コントロールされる物理的ＳＤＲデバイス１００各々に対する一つのスレッドあるいは処理とともに一式のオペレーティングシステムのスレッドあるいは処理を管理する。図１０は、本発明の一実施形態の例示的フローチャートを示す。多数のスレッドあるいは処理は、異なるＳＤＲデバイス１００のフローにおける様々なステップにおいて同時に動作してもよい。図１０を参照すると、処理は次の待機タイムアウト算出（ＣａｌｃｕｌａｔｅＮｅｘｔＷａｉｔＴｉｍｅｏｕｔ）１３００において開始される。この最初のステップは、図１２に示すさらなるフローによって実際に例示される。
【０１２１】
図１２を参照すると、最初の値は、現在時刻の年代順に従って適用する次の時間に基づいたヒント(Ｔｉｍｅ−Ｂａｓｅｄ−Ｈｉｎｔ）から現在時間を引いたものに関連するスタート時間として計算される（１３０５）。この値は、“Ａ”として記録される。適用可能な時間に基づいたヒントが存在しない場合、この値はデータ種類の最大値に設定される。
次に、ステップＳ１３１０では、現在のアクティブな返答アルゴリズムに対する有効範囲チェック期間（ＣｏｖｅｒａｇｅＣｈｅｃｋＩｎｔｅｒｖａｌ）として、第２の値が計算される。第２の値は、Ｂとして記録される。現在アクティブな変調アルゴリズムが存在しない場合、この値は、データ種類の最大値に設定される。次に、ステップＳ１３１５では、現在のＳＤＲ１００の状態のために設定されたスキャン周波数（ＳｃａｎＦｒｅｑｕｅｎｃｙ）から、現在の時間の結果（ＣｕｒｒｅｎｔＴｉｍｅ）から前回生じたスキャンの時間（Ｔｉｍｅ  ｏｆ  Ｌａｓｔ  Ｓｃａｎ）を減算した値を引いた、第３の値が計算される。この値は、“Ｃ”として記録される。最後に、Ａ，Ｂ，Ｃの最小値が使用され、現在の待機タイムアウト（ＷａｉｔＴｉｍｏｕｔ）の値と見なされる。
【０１２２】
カレントの待機タイムアウトがわかると、再び図１０を参照する。図１０の次のステップは、ＳＤＲイベント待機（Ｗａｉｔ  Ｆｏｒ  ＳＤＲ  ＥＶＥＮＴ）のステップである。ＳＤＲイベントが検出され、あるいはタイムアウトが生じた場合、ステップＳ１１００の結果が調べられる。第１のチェックは、ヒントイベントであるか否かを判断し、あるいは次の時間に基づいたヒント用の待機タイムアウトが始動したか否かを判断することである（１１０５）。これら条件の一つが真であれば、条件はさらに審査され、原因が特にヒントタイマーによるものか判断される（１１１０）。これが真であれば、スキャンイベントはすぐに設定され、処理はＳＤＲイベント待機のステップ（１１００）に戻る。そうでない場合、最後に格納されたＧＰＳ座標が審査され、設定された位置に基づくヒント（ｐｏｓｉｔｉｏｎａｌ−ｂａｓｅｄ  ｈｉｎｔ）とオーバラップするか判断される（１１１５）。この場合、スキャンイベントすぐに設定され、処理はＳＤＲイベント待機のステップ（１１００）に戻る。
【０１２３】
ヒントイベントもしくはヒントタイマーも始動していない場合、次のステップは、前の空の（pre-emptive）スキャンを保証する上述した状態機械からのカレント状態で十分な時間が経過したか否かを判断する。この場合、ＳＤＲイベント待機（１１００）に戻る前にスキャンイベント設定（Ｓｅｔ  Ｓｃａｎ  Ｅｖｅｎｔ）へ進む（１１２５）。次のスキャンのための時間（Ｔｉｍｅ  Ｆｏｒ  Ｎｅｘｔ  Ｓｃａｎ）（１１２０）ではない場合、ＳＤＲイベントがさらに調べられ、カバレッジ変更のイベントであるか否か判断される（１１３０）。そうである場合、処理は、ＡＰＩに対するネットワーク状態通知送信（Ｓｅｎｄ  Ｎｅｔｗｏｒｋ  Ｓｔａｔｕｓ  Ｎｏｔｉｆｉｃａｔｉｏｎ  ｔｏ  ｔｈｅ  ＡＰＩ）になる（１１３５）。その後、カバレッジ変更が、無線通信の有効範囲内の条件から外れたことに起因するか否か判断される（１１４０）。そうである場合、処理はスキャンイベント設定（１１２５）になる。どちらのケースも、次のステップはＳＤＲイベント待機（１１００）へ戻る。
【０１２４】
イベントがカバレッジ変更イベントではない場合、処理は、イベントがＡＰＩイベントからのＸｍｉｔ  Ｐａｃｋｅｔイベントであるかチェックする（１１４５）。この場合、特定のＳＤＲがカバレッジ内にあるのか調べることが、第１のチェックとなる。ＳＤＲがカバレッジ内にない場合、処理はＳＤＲイベント待機（１１００）のステップに戻る前にＡＰＩサブシステムに失敗コードを戻す（１１５５）。カバレッジ内である場合、ＳＤＲイベント待機（１１００）のステップに戻る前にＳＤＲへのパケット送信（１１６０）ステップへ進む。
【０１２５】
イベントがＡＰＩからのＸｍｉｔパケットイベント（１１４５）ではない場合、イベントがＳＤＲからのＲｅｃｖパケットイベントであるかを見るためチェックする（１１６５）。そうである場合、ＳＤＲからパケットが読み出され（１１７０）、パケット受信通知が、最終的にＳＤＲイベント待機（１１００）のステップに戻る前にＡＰＩに送られる（１１７５）。
【０１２６】
最後に、イベントが設定されたスキャンイベントであるか判断するためイベントが調べられる（１１８０）。そうでない場合、フローはカバレッジ状態チェックのステップ（１１８５）に進み、カバレッジが現在接続されている変調アルゴリズムでチェックされる。実際にＳＤＲイベント用待機（１１００）が割り込まれるが、以前にチェックされたイベントに起因して割り込まれない場合、デフォルトの行動（behavior）が、現在接続されたネットワークのカバレッジ状態をチェックする（１１８５）。ネットワークがまだ有効範囲内であるとカバレッジチェックが判断すると（１１９０：ＮＯ）、フローはＳＤＲイベント待機（１１００）に戻る。ネットワークがもはや有効範囲内にはないとカバレッジチェックが判断すると（１１９０：ＹＥＳ）、ＳＤＲイベント待機（１１００）に戻る前にカバレッジ変更イベントが設定される（１１９５）。
【０１２７】
イベントが実際にスキャンイベントである場合（１１８０）、フローはスキャン処理に進む（１１２０）。一実施形態では、スキャン処理が図１１に示すフローチャートに従って実行される。図１１を参照すると、最初になされるチェックは、現在の接続された変調アルゴリズムが、外部の関連機器によって最適カレントネットワーク（Ｃｕｒｒｅｎｔｌｙ  Ｍｏｓｔ  Ｐｒｅｆｅｒｒｅｄ  Ｎｅｔｗｏｒｋ）として指定されたか否かを判断することである（１２０５）。そうである場合、中止タイマーがセットアップされる（１２１０）。
そうでない場合、あるいは中止タイマーがセットアップされた後である場合、デバイス用のサポートされた変調アルゴリズムのリストがコンフィギュレーションサブシステムから引き出される（１２１５）。ステップ１２１５は、適用可能なヒントを引き出すことに関連した処理の実行と、ヒントに関連したアルゴリズムを先に述べた方法でＳＤＲデバイス用アルゴリズムの標準の優先順位リストに併合させることを含む。ステップ１２１５の終了後すぐに、他のＳＤＲデバイスによって接続性がアクティブであって維持される変調アルゴリズムを取り除くため、生成されたリストがステップ１２２０で取り除かれる。
【０１２８】
各ＳＤＲレシーバが一度に一つのアルゴリズしか操作できないことから、ステップ１２２０の後、変調アルゴリズムが今のＳＤＲデバイスに現在続されている場合には、現在接続されている変調アルゴリズム用ＡＰＩサブシステムに、有効範囲外の通知が送られる（１２２５）。その後、リストの終わりに到達するか（１２３０：ＹＥＳ）、もしくは存続可能なネットワークがすでに接続されてカバレッジイベントが設定される（１２９０）まで、リストのアルゴリズムすべてが処理される中に、ループがエンターされる。各ループの繰り返しとともに、中止タイマーがチェックされる（１２３５）。中止タイマーが時間を超えている場合、さらなるチェックがなされ（１２４０）、新しい最適カレントネットワークがＡＰＩサブシステムを通じて関連する外部のエンティティにより指定されたか否か判断される。新しい最適カレントネットワークが存在する場合、ループを通じて処理が続けられる。最適カレントネットワークが存在しない場合、以前にアクティブな変調アルゴリズムがデバイスにダウンロードされる（１２４５／１２５５）。さもなければ、まだ昇格されていない次に優先度が最も高いアルゴリズムがデバイスにダウンロードされる（１２５０／１２５５）。
【０１２９】
アルゴリズムがダウンロードされ（１２５５）、ＳＤＲが初期化されると、カバレッジ状態がテストされる（１２６５）。現在の変調アルゴリズムを走らせているＳＤＲが有効範囲でない場合（１２７０：ＮＯ）、次のループの繰り返し処理がステップ１２３０に戻って実行される。現在の変調アルゴリズムを走らせているＳＤＲが有効範囲にある場合（１２７０：ＹＥＳ）、そのアルゴリズムがＧＰＳアルゴリズムであるか否かに関してチェックされる（１２７５）。ＧＰＳアルゴリズムでない場合、カバレッジ変更イベントが設定され（１２９０）、フローは、ＳＤＲイベント待機ステップ（１１００）に戻る。そうでなければ、ＧＰＳデータがデバイスから読み出され（１２８０）、ＡＰＩサブシステムへの通知のためデータが配信されるとともに、ヒントイベントが設定され（１２８５）、そして、ステップＳ１２３０に戻って次のループ繰り返し処理が実行される。
本発明の一態様によれば、ゼロもしくは１つ以上の従来型無線通信デバイスと組み合わせた一つ以上のＳＤＲセットを使いながら、複数の非類似無線ネットワークをシームレスにローミングする方法が提供される。ここで記載される性能（capability）は、代わりのネットワークの利用可能性のインテリジェントなチェックを提供し、そのようなチェックが従属する外部のエンティティに対して引き起こす中断を最小化しながらチェックする。提供される性能は、ＳＤＲが複数のトランスミッタおよびレシーバを提供し、あるいは複数の異なるＳＤＲがモバイルコンピューティングデバイスに利用可能なとき、代わりのネットワーク利用可能性のチェックを最適化する。加えて、本発明の他の態様によれば、ＳＤＲのトランスミッタ／レシーバが複数存在するとき複数のアクティブネットワークを同時に確立する能力が呼び出される。本発明の他の態様によれば、公知のＡＰＩを通してネットワークのチェック行動（behavior）をプログラム的に確立する機能性が提供される。
提供される手段は、上述のＡＰＩを介して、有効範囲のチェック行動を存在する無線ミドルウェアソルーションと統合する。本発明のその他の態様によれば、外部のエンティティがシステムによって確立された接続に依存する期間の間、パケットの損失を最小化するようにシステム行動が構成される。また、本発明の一態様によれば、モバイルノード内の局所的なソリューション、そしてコンフィギュレーションデータベースゲートウェイ内の中心的なソリューション両方のコンフィギュレーションデータベースを管理することが提供される。
【０１３０】
本発明は、いくつかの例示的実施形態を参照して説明されたが、使用された用語は、限定する用語ではなく、説明と例示の用語と理解される。変更は、現在述べているものおよび補正されているものとして、添付されたクレームの範囲内で可能であり、その変更は本発明の意図から離れない。本発明は、特定の手段、構成、実施形態を参照しながら説明されているが、本発明が特定の開示されたものに限定されることを意図せず、むしろ本発明は、添付されたクレームの範囲と同じような機能的に均等な構成、方法、および使用にまで拡張する。
【０１３１】
本発明の様々な実施形態に従い、ここに記載された方法は、コンピュータプロセッサで走るソフトウェアプログラムとしてのオペレーションに意図される。限定されないアプリケーション特別集積回路、プログラム可能な論理アレイおよび他のハードウェアを含む専用のハードウェア実装は、同様にここに記載された方法を実行するものとして構成可能である。さらに、限定されない分散処理又はコンポーネント／オブジェクト分散処理、並列処理又は仮想マシーン処理が、ここに記載された方法を実行するものとして構成可能である。
【０１３２】
注意すべきこととして、ここに記載された本発明のソフトウェアの実行は、ディスクあるいはテープのような磁気媒体、ディスクなどの光磁気媒体或いは光媒体、一つ以上のＲＯＭ、ＲＡＭあるいはその他の書き換え可能なメモリを所有するメモリカードやその他のパッケージなどの固体状態媒体など、任意に具体的な記憶媒体に格納される。Ｅ−ｍａｉｌに添付されるデジタルファイル、あるいはその他の情報を自身に含むアーカイブあるいはアーカイブ一式が、具体的な記憶媒体と均等な配布メディアとみなされる。したがって、本発明は、ここに提示されるとともに技術に認識される均等物および承継するメディアを含むような具体的な記憶媒体および配布メディアを含むものとみなされ、ソフトウェアのインプリメンテーションが格納される。
【０１３３】
本明細書では、特定の標準およびプロトコルを参照しながら実施形態において実装された構成および機能を説明しているが、本発明は、そのような標準およびプロトコルに限定される意図はない。インターネットの各標準およびその他のパケット交換ネットワーク転送（例えば、ＩＰバージョン４、ＩＰバージョン６、ＵＤＰ／ＩＰ、ＴＣＰ／ＩＰ、ＩＣＭＰ）、そして無線ネットワーク（８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、ＵＷＢ、ＣＤＭＡ１ｘＲＡＴＴ、ＣＤＭＡ１ｘＥＶＤＯ、ＧＳＭ、ＣＤＰＤ、ＧＰＲＳ、ＥＤＧＥ、ＵＭＴＳ、ＲＤ−ＬＡＰ、ＳＭＲ、ＬＭＲ）は、技術状態の一例を示す。そのような標準は、本質的に同じ機能を備えたより早くより効果的な同等物に周期的に取って代わられる。したがって、同じ機能をもつ代わりの標準およびプロトコルは、同等物と見なされる。
【図面の簡単な説明】
【０１３４】
【図１】一つのＲＦトランスミッタを備えた従来のＳＤＲの一般的外観図である。
【図２】複数のＲＦトランスミッタを備えた従来のＳＤＲの一般的外観図である。
【図３】物理的にモバイルコンピュータデバイスに接続される従来のＲＦ無線と組み合わせて使用されるＳＤＲの一般的外観図である。
【図４】本発明の一態様に従った、ランタイム状態維持に務めるメモリ内データ構造の例示的な実施形態を例示する図である。
【図５】本発明の一態様を非類似ネットワーク間のシームレスローミングサービスを提供する現存システムと統合させたシステムアーキテクチャを示したブロック図である。
【図６】本発明の態様を含む例示的サブシステムとデータ格納部を記述するシステムアーキテクチャを示したブロック図である。
【図７】システムの一態様となる状態遷移図である。
【図８】サンプルとなるＸＭＬファイルとして例示的コンフィギュレーションデータ構造を示した図である。
【図９】サンプルとなるＸＭＬファイルとしてその他の例示的コンフィギュレーションデータ構造一式を示した図である。
【図１０】本発明の一態様に従った、値とワークマネージメントサブシステムのメインフローを記載する例示的フローチャートを示した図である。
【図１１】図１０に記載されたメインフロートの一態様であるスキャンプロセッシング行動の詳細フローを記載する例示的フローを示した図である。
【図１２】本発明の一態様に従った、図１０のスキャンプロセッシングメイン制御ループに使用されるタイムアウト期間の計算を記載する例示的フローを示した図である。
【図１】
2008511267.tif 000003
【図２】
2008511267.tif 000004
【図３】
2008511267.tif 000005
【図４】
2008511267.tif 000006
【図５】
2008511267.tif 000007
【図６】
2008511267.tif 000008
【図７】
2008511267.tif 000009
【図８】
2008511267.tif 000010
【図９】
2008511267.tif 000011
【図１０】
2008511267.tif 000012
【図１１】
2008511267.tif 000013
【図１２】
2008511267.tif 000014
【国際調査報告】
2008511267.tif 000015