ここに提示される記載及び図面は種々の原理を示す。当業者は、本願明細書に明示的に記載又は示されないが、上述の原理を具現化し本開示の範囲に包含される種々のアレンジを考案できることが理解される。本願明細書で使用されるように、本願明細書で使用される用語「又は」は、特に断らない限り(例えば、「又はその他の場合(or else)」、又は「又は代替として」)、非排他的論理和(つまり、及び/又は)を表す。さらに、本願明細書に記載の種々の実施形態は、必ずしも相互に排他的ではなく、本願明細書に記載の原理を組み込む追加の実施形態を生成するために結合されて良い。
図1は、装置側監視及びレポートを提供するネットワーク環境100の一例を示す。ネットワーク環境100は、少なくとも部分的に、病院施設、家庭監視施設、又はネットワーク環境100の少なくとも1つのアプリケーション(臨床/医療特性又はその他であるかに拘わらず)が高信頼無線通信からの利益を得る他の場所において、展開されて良い。例えば、ネットワーク環境100は、無線患者監視アプリケーションの特定の実施形態を示す。したがって、環境100は、個々の患者の生理的パラメータ(例えば、心拍、血圧、パルス酸素濃度、等)を監視し及び該情報を集約制御センタサーバ140に報告する1又は複数の無線患者モニタ110a、b、cを含む。集約制御センタサーバ140では、医師、看護職員、又は他の職員が、各患者を監視し、必要に応じて措置を取り得る。
図示のように、無線患者モニタ110aは、アンテナ111、ネットワークインタフェース112,及びプロトコルスタック113を含み、無線患者モニタ110aが1又は複数の無線アクセスポイント120a、b、cへ情報を無線で送信することを可能にする。ネットワークインタフェース112は、選択された周波数(又はその範囲)でアンテナを介してデジタル情報を送信し及び受信する種々のハードウェアを含み得る。プロトコルスタック113は、送信のために情報を提供すること及び受信した情報を解釈することを含む、ネットワークインタフェース112を制御する(プロセッサのようなハードウェア上で実行する)種々のソフトウェアを含み得る。送信されるべき何らかのこのような情報は、無線患者モニタ110aの他のコンポーネント114−116から受信された「ペイロード」情報であって良いが、他のこのような情報は、ヘッダ及びフレーミングデータのような「プロトコルオーバヘッド」を含み得る。したがって、プロトコルスタック113は、無線媒体上で通信するための種々の標準プロトコルを実装して良い。例えば、幾つかの実施形態では、プロトコルスタック113は、IEEE802.11、IP(Internet Protocol)、TCP(Transmission Control Protocol)、及び/又はUDP(User Datagram Protocol)の1又は複数の変形を実装して良い。IEEE802.11(又は他のプロトコル)を実装する際に、プロトコルスタック113は、アクセスポイント120a、b、c発見、認証、暗号化、チャネル選択、及びネットワークインタフェース112等へのその通信のような種々の機能を実行するソフトウェアを含み得る。プロトコルスタック113は、また、信号強度、アクセスポイント遅延、試行リトライ数、送信失敗数、動作チャネル(又は周波数)、等のような、(例えばネットワークインタフェース112を制御することにより)ネットワーク統計情報を追跡する種々のソフトウェアツールを含み得る。(例えば、発見したAP及びその統計情報を追跡し続けることにより)これらの機能をサポートするために、プロトコルスタック113は、この情報を格納し又は編成するロームテーブルを維持して良い。用語「ロームテーブル」が本願明細書で使用されるが、ロームテーブルは、実施祭にはテーブルとして編成されなくて良く、1又は複数の他のデータ構造の形式を取って良い。したがって、本願明細書で使用されるように、用語「ロームテーブル」は、無線アクセスポイントに関するプロトコルスタックにより保持されるいかなるデータセットを表すことが理解される。
図示のように、無線患者モニタ110aは、患者に関する種々の情報を監視し及び集約制御センタサーバ140のような別の装置にレポートする、患者監視ソフトウェア114及び患者監視ハードウェア115も含む。例えば、無線患者モニタが患者の心拍をレポートするよう適応される場合、患者監視ハードウェア115は、患者の皮膚に光を当てるLED、及びLEDからの反射光に基づき信号を生成するフォトダイオードを含み得る。この信号は、次に、パルスが抽出され得る光電脈波(photoplethysmogram:PPG)信号を導出するために患者監視ハードウェア115により(例えば、1又は複数の特定用途向け集積回路により)又は患者監視ソフトウェア114により更に処理されて良い。患者監視ソフトウェア114は、次に、連続的、周期的、オンデマンドで、パルスが閾を横切ることに応答して、又は他のときに、情報を宛先装置の識別情報と共にプロトコルスタック113へ渡すことにより、パルス値を集約制御センタサーバ140へ送信して良い。これは、パルスをどのように取得するかの単なる一例であり、パルスはネットワーク環境で通信され得る患者パラメータの単なる一例であることが理解される。種々の追加又は代替の患者監視ハードウェア115又は患者監視ソフトウェアが明らかである。幾つかの実施形態では、収集され又は通信されるべき情報は、実際は臨床的/医療的なものでなくて良い。患者監視コンポーネント114、115は、ネットワークインタフェース112を介して提供される無線接続に依存する別のアプリケーションを提供する又はその中で動作する幾つかの実施形態では他のコンポーネントで置き換えられて良い。
無線患者モニタ110aは、無線患者モニタ110aに利用可能な無線接続を監視する上位レイヤ(例えばアプリケーションレイヤ)を実行するよう適応されたソフトウェア又はハードウェアを含み得るネットワークモニタ116を含む。例えば、幾つかの実施形態では、プロトコルスタック113は、適切な接続を選択するために接続の何からの管理を実行して良い。このようなアプローチは、幾つかのアプリケーション(例えば、高ネットワーク利用可能性を要求するアプリケーション)にとっては完全に適するものではないことがある。したがって、ネットワークモニタ116は、プロトコルスタック113と通信して、発見されたアクセスポイント二関する情報を収集し、追加ネットワーク統計情報を収集するため又はネットワークの適合性に関する結論を引き出すために1又は複数のテストを実行し、このような発見を「接続レポート」としてプロトコルスタック113を介してインフラストラクチャモニタ150へ送信して良い。このようなテスト及び結論の種々の例は、以下に詳述される。明らかなように、1つの無線患者モニタ110aは環境100全体に関する限られた情報(例えば、モニタ110aの範囲内にあるアクセスポイント120a、b、cに関する情報)しか収集できなくて良いが、環境100全体に渡り同じ又は同様のクライアント側監視を実行する複数の無線患者モニタ110bは、分散型方法でネットワークのより完全なピクチャを収集できて良い。
アクセスポイント120a、b、cは、プロトコルスタック113により実装される無線プロトコルに従い通信し、それにより更に広域なネットワーク130への無線アクセスを提供する、1又は複数のアクセスポイントであって良い。ネットワーク130は、(例えば、クラウドコンピューティング環境又は病院の)ローカルエリアネットワーク、キャリアネットワーク、又はインターネットのような、データを通信するいかなるネットワーク(又はその部分)を含み得る。集約制御センタサーバ140及びインフラストラクチャモニタ150は、したがって、それぞれ、患者も似た110a、b、cを備えるサイトに(例えば、看護ステーションに又は病院のITオフィスに)、又はそれらから離れた、別個のサービス位置、ホーム監視制御センタ、又はクラウドコンピューティングデータセンタのようなサイトに置かれて良い。集約制御センタサーバ140及びインフラストラクチャモニタ150は、したがって、サーバ、ブレード、又はクラウドコンピューティングアーキテクチャ内のハードウェアで動作する仮想機械のような種々の方法で実装されて良い。
インフラストラクチャモニタ150は、1又は複数の無線患者モニタ110aから接続レポートを収集し、それらに基づき種々のネットワーク監視機能を実行して良い。例えば、幾つかの実施形態では、インフラストラクチャモニタは、過負荷アクセスポイント120a、b、c、又は低又は非接続に苦しむ病院又は他の場所のエリアを識別して良い。幾つかの実施形態では、インフラストラクチャモニタ150は、モニタ110a、b、cによりレポートされた干渉を解決するために、1又は複数のアクセスポイント120a、b、cの動作チャネルを変更するような、ネットワークへの変更を実施し又は(例えばネットワーク管理者に)推奨して良い。したがって、種々の実施形態では、アクセスポイント120a、b、cは、例えばソフトウェア定義ネットワーキング(software−defined networking:SDN)制御部により遠隔で構成可能であって良い。幾つかの実施形態では、インフラストラクチャモニタ150は、このような変更を実施するために、SDN制御部を実装し又は通信して良い。幾つかの実施形態では、アクセスポイント120a、b、c及びインフラストラクチャモニタ150は、閉じられた又は独自仕様システムに属して良い。ここで、独自仕様プロトコルが、インフラストラクチャモニタ150のために、AP120a、b、cの種々の特徴を構成するために使用される。幾つかの実施形態では、インフラストラクチャモニタ150は、人間のネットワーク管理者への報告インタフェースを提供し、インフラストラクチャモニタ150は、いかなる警告が管理者に上げられるべきか否かを決定するために、接続レポートを分析して良い。
図2は、患者モニタ装置(例えば、要素261〜270のうちの1又は複数を含む、図1の患者監視装置110a、b、c)又はインフラストラクチャモニタサーバ(例えば、要素271〜278のうちの1又は複数を含む、図1のインフラストラクチャ監視サーバ150)を実装するハードウェアシステム200の一例を示す。図示のように、装置200は、1又は複数のシステムバス210を介して相互接続された、プロセッサ220、メモリ230、ユーザインタフェース240、ネットワークインタフェース250、及び記憶装置260を含む。図2は、幾つかの点で抽象化を構成すること、及び実際の装置200のコンポーネントの編成は図示のものより複雑であり得ることが理解される。さらに、本例は種々の特徴をスマート装置により及び他のものをサーバにより実装されるとして記載するが、これは単なる例示的な実施形態であることが理解される。上述のように、種々の機能は1又は複数の装置の間で多くの異なる構成で分散されて良く、ソフトウェア及び記憶装置260のコンテンツに対する変更がこのような代替の構成を可能にすることが理解される。
プロセッサ220は、メモリ230又は記憶装置260に格納された命令又は他の場合に処理データを実行可能ないかなるハードウェア装置であって良い。+したがって、プロセッサは、マイクロプロセッサ、FPGA(field programmable gate array)、ASIC(application−specific integrated circuit)、又は他の同様の装置を含んで良い。プロセッサが、本願明細書に記載の機能のうちの1又は複数をハードウェアで実施する1又は複数のASIC(又は他の処理装置)を含む場合、他の実施形態ではこのような機能に対応するとして記載されるソフトウェアは省略され得ることが理解される。
メモリ230は、例えばL1、L2、又はL3キャッシュ又はシステムメモリのような種々のメモリを含み得る。したがって、メモリ230は、SRAM(static random access memory)、DRAM(dynamic RAM)、フラッシュメモリ、ROM(read only memory)、又は他の同様のメモリ装置を含み得る。
ユーザインタフェース240は、管理者のようなユーザとの通信を可能にする1又は複数の装置を含み得る。例えば、ユーザインタフェース240は、ディスプレイ、マウス、タッチスクリーン、又はユーザコマンドを受信するキーボードを含み得る。幾つかの実施形態では、ユーザインタフェース240は、通信インタフェース250を介してリモート端末に提示され得るコマンドラインインタフェース又はグラフィカルユーザインタフェースを含み得る。ハードウェア200が無線患者モニタを実装するような幾つかの実施形態では、ユーザインタフェース240は、1又は複数のセンサ、又は患者の1又は複数の生理的パラメータを監視する他のハードウェアを含む。例えば、ユーザインタフェースは、加速度計、LED、フォトダイオード、温度センサ、又は患者生理的パラメータを監視するために有用な他のハードウェアを含み得る。
通信インタフェース250は、他のハードウェア装置との通信を可能にする1又は複数の装置を含み得る。例えば、通信インタフェース250は、他の装置と通信するよう構成される有線又は無線ネットワークインタフェースカード(NIC)を含み得る。追加又は代替として、通信インタフェース250は、NFC、Bluetooth(登録商標)、Wi−Fi又は他のローカル無線若しくは有線プロトコルに従う通信のためのハードウェアのような近傍装置との通信のためのハードウェアを含み得る。通信インタフェース250のための種々の代替又は追加ハードウェア又は構成は明らかである。
記憶装置260は、ROM(read−only memory)、RAM(random−access memory)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ素子、又は同様の記憶媒体のような、1又は複数の機械可読記憶媒体を含み得る。種々の実施形態では、記憶装置260は、プロセッサ220による実行のための命令、又はプロセッサ220がデータに基づき動作し得る該データを格納して良い。
例えば、ハードウェア200が患者監視装置を実装する場合、記憶装置は、装置200の基本機能を調整するオペレーティングシステム261、及び1又は複数のプロトコルに従い通信インタフェース250を介して通信を可能にするプロトコルスタック262を含み得る。例えば、スタック262は、通信のためにTCP/WiFiスタックを実装して良い。幾つかの実施形態では、スタック262は、オペレーティングシステム261の部分として実施されて良い。幾つかの実施形態では、スタック262は、発見されたアクセスポイントに関する情報を収集するロームテーブル263、及びアクセスポイント又は他のネットワークハードウェアの状態をテストする1又は複数のネットワーク統計情報ツールを含む。記憶装置160は、ユーザインタフェース240内のセンサにより提供された情報を解釈し及びプロトコルスタック262を介して集約制御センタにレポートする患者監視ソフトウェア265も含み得る。
記憶装置260は、クライアント側監視を実行し及びインフラストラクチャモニタによる使用のための接続レポートを送信するために、プロトコルスタック262と別個のネットワーク監視ソフトウェア266も含む。したがって、ネットワーク監視ソフトウェアは、装置の動作に対して(例えば、患者監視ソフトウェア265の動作に対して)どの知られているAPが重要(critical)と考えられるかを識別する重要AP識別命令267、装置200の観点からネットワークの種々のテストを実行する1又は複数の装置側テスト命令セット、及びインフラストラクチャモニタにプロトコルスタック262を介して接続レポートを送信するレポート命令269を含み得る。これらの命令を実現するために、ネットワーク監視ソフトウェア266は、知られているAPに関連する情報を追跡するための、知られているAPリスト270を含み得る。このような知られているAPリスト内の情報は、ロームテーブル263内のものを含み得るが、重要AP識別命令267又は装置側テスト命令268により認識される情報のような追加情報を含んで良い。
ハードウェア200がインフラストラクチャモニタを実装する場合、記憶装置260は、装置200の基本機能を調整するオペレーティングシステム271を含み得る。さらに、患者監視リスト272は、例えばPUSH又はPULL方法で接続レポート274がレポート収集命令273を介して受信され得る患者モニタの指示を格納して良い。レポート分析命令275は、追加統計情報を引き出し及びネットワーク管理者のために視覚化を生成することにより、受信したレポート274を分析して良い。いかなる警告閾277が横切られた場合(例えば、いかなる単独装置の通信リンクの最小許容停止時間、単独APに接続される装置の最大数、重要APの信号強度が、最小閾より下に降下する、等)、警告命令276に従い1又は複数の警告先278(例えば、ネットワーク管理者)への警告を(例えば、テキスト、電子メール、又は連絡先によるウェブポータルへの次のアクセス)プッシュする。
記憶装置260に格納されるとして記載された種々の情報は追加又は代替としてメモリ230に格納されて良い。これに関して、メモリ230は、「記憶装置」を構成するとしても考えられ、記憶装置260は「メモリ」と考えられて良い。種々の他の構成が明らかである。さらに、メモリ230及び記憶装置260は、両方とも、「非一時的機械可読媒体」と考えられて良い。本願明細書で使用されるように、用語「非一時的」は、一時的信号を排除せず、揮発性及び不揮発性メモリの両者を含む全ての記憶形態を含むと理解される。
ホスト装置200は、各記載されたコンポーネントのうちの1つを含むとして示されるが、種々のコンポーネントが種々の実施形態において複製されて良い。例えば、プロセッサ220は、本願明細書に記載の方法を独立して実行するよう構成される又は本願明細書に記載の方法のステップ又はサブルーチンを独立して実行するよう構成される複数のプロセッサを含み得、複数のプロセッサが本願明細書に記載の機能を達成するために協働するようにする。更に、装置200がクラウドコンピューティングシステムで実装される場合、種々のハードウェアコンポーネントは別個の物理システムに属して良い。例えば、プロセッサ220は、第1サーバ内に第1プロセッサを、及び第2サーバ内に第2プロセッサを含んで良い。
図3は、装置側監視及びレポートを実行する方法300の一例を示す。方法は、図1の無線患者モニタ110a、b、cのうちの1又は複数のようなネットワーク環境内に展開される装置により実行されて良い。方法は、図2のネットワーク監視ソフトウェア266に対応して良い。方法は本願明細書に開示された原理に従い監視及び報告を実行する方法の一例であること、及び代替方法が使用され得ることが理解される。例えば、幾つかのステップは、示されたものと異なる順序で、互いに並列に、別個の方法の部分として実行されて良い(例えば、ステップ315〜330を含むテストのための第1方法が周期的に実行されて良く、一方でステップ310及び355を含む報告のための第2方法がインフラストラクチャモニタによる要求により実行されて良い)。さらに、他の実施形態では、代替又は追加ステップが含まれて良い。
図示の例では、方法300は、周期的に実行し、したがって方法300はステップ305で周期的タイマの終了により開始する。方法300を開始する他のトリガ(例えば、別の装置から要求を受信する、又はプロトコルスタックから新情報を受信する)が明らかである。方法は、ステップ310に進み、装置は接続レポートを初期化する。例えば、幾つかの実施形態では、方法は、新しいデータ構造を生成し、又はその他の場合、インフラストラクチャモニタに報告されるべきアクセスポイントに関する一群の情報を格納するメモリを割り当てて良い。次に、ステップ315で、装置は、自身のプロトコルスタックに、自身の収集した情報をクエリする。例えば、種々の実施形態では、プロトコルスタック(又はその個々のレイヤ)は、(接続又はリンク統計情報を含む)ロームテーブルの内容のような種々の情報を要求し及び受信するAPI(application programmer interface)を実装して良い。幾つかの実施形態では、ステップ315は、(例えば、APIを介して)プロトコルスタックに、それに実装されたツール(例えば、ネットワーク統計情報ツール264)を使用して1又は複数のテストを実行するよう、及び更なる分析のために結果を返すよう、指示するステップを含んで良い。幾つかの実施形態では、1又は複数の所望の情報片は、プロトコルスタックのAPIを介してアクセス可能でなくて良く、ステップ315は、ロームテーブルデータを取得するための他の方法を利用して良い。例えば、幾つかの実施形態では、ステップ315は、プロトコルスタックに割り当てられたメモリの一部に直接アクセスし、情報をプロトコルスタックの構成の所定構成指示に基づき又は該情報の位置を識別するために分析を実行することにより(例えば、ロームテーブルの開始及び終了の知られているマーカについてスキャンする、テーブルの通常領域を特定するために知られているAP名を検索する、又はメモリを分析しネットワーク統計情報を指摘するために訓練されたモデル(例えば、分類器又は他の機械学習技術)を適用する)読み出して良い。幾つかの実施形態では、ステップ315は、さらに、新しい情報に基づき知られているAPリストを更新するステップを含んで良い。知られているAPリストの一例は、図4に関して更に後述される。知られているAPリストを更新する方法の一例は、図5に関して更に後述される。
ロームテーブルが取得されると、方法は、ステップ320に進み、装置は、ロームテーブル内のAPに対して通常インフラストラクチャテストを実行する。このようなテストは、ロームテーブル内で未だ利用可能でない追加情報を取得するために、他のコンポーネント(例えば、AP、無線患者モニタのような他の装置、又はプロトコルスタック)と通信するために追加ツールを利用して、ロームテーブル内のAPに関する既に利用可能な情報を分析するステップを含み得る。通常インフラストラクチャテストの種々の例は、図7〜10に関して更に後述する。
ステップ325で、装置は、装置によりサポートされるアプリケーションの動作に対して、どの知られているAPが「重要」と考えられるかを識別して良い。例えば、重要APは、装置が、接続された多くの時間を費やすAP、又はそのAP無しでは装置が少なくとも1つの訪問領域で代替アクセスポイントを有しないAPであって良い。重要APを識別する方法の一例は、図6に関して更に詳述される。どのAPがクライアント装置により重要と考えられるかの情報は、インフラストラクチャモニタが、状態及びネットワークに対する可能な変化を考慮するときを考慮するのに有用であり得る。ステップ330で、より徹底的な又は他の追加テストが、接続レポートへの追加情報の包含のために、(全ての知られているAPではなく)このような重要APに関して実行されて良い。このような重要なインフラストラクチャテストの一例は、図11に関して記載される。
重要APのみに適用すべき図7〜10の例示的な通常インフラストラクチャテストに対する種々の変更、及び全ての知られているAPに適用すべき図11の例示的な重要インフラストラクチャテストに対する変更は、明らかである。さらに、幾つかの実施形態では、単一の方法が、通常及び重要インフラストラクチャテストの両方を定めて良い(例えば、方法は、他のAPと比べて重要APに異なる警告又は他の閾を提供して良い)。このような実施形態では、ステップ320、330は、実際には、ステップ325で重要APが識別された後に生じ得る同じステップであって良い。
幾つかの実施形態では、1又は複数のインフラストラクチャテストは、方法300内で実行されなくて良く、代わりに、別個の方法の部分として実行されて良い(例えば、方法は、異なる周期で又は接続断のようなイベントが生じるときの接続断のようなイベントに応答して実行される)。幾つかの実施形態では、このような他の方法は、データを直接現在オープンな接続レポートに書き込んで良く、又はテストから生じたデータを、それが取得され及びステップ320又は330が実行されると接続レポートに入力され得る場所に格納して良い。
ステップ335で、装置は、接続レポートを1又は複数のインフラストラクチャモニタへ送信する。幾つかの実施形態では、装置は、各々の接続レポートを、それが形成されたとき送信しなくて良く、代わりに、本願明細書に記載の方法に従い生成された複数のレポートを集約し、それらを例えばインフラストラクチャ監視装置による要求により又はより低速な周期に基づき(例えば、毎時間又は毎日)送信して良い。幾つかの実施形態では、装置が低又は非接続であるとき接続レポートが生成された場合、ステップ335は、接続レポートを送信するために接続が回復するまで待機して良い。次に、方法300はステップ340で終了して良い。
情報を接続レポートに含める種々の方法が後述されるが、種々の追加又は代替方法又は情報が接続レポートを構成するために使用され得ることが理解される。例えば、幾つかの実施形態では、ネットワークモニタは、1又は複数の802.11ビーコンからのデータを接続レポートに含めて良い。例えば、各可視ビーコン、重要であると指定されたAPのビーコン、新たに接続されたAPのビーコン、装置がローミングしているAPのビーコン、装置が再接続しているビーコン、等が、(例えばプロトコルスタックから)収集されレポートに挿入されて良い。このような情報は、サポートされる変調方式、サポートされるデータレート、アクティブな調節領域、チャネル利用率のようなAP負荷情報、802.1n/ac/等の能力(例えば、サポートされるチャネル幅、未開発モード状態、短保護間隔サポート、Block−ACK機能、トランジットビームフォーミング機能サポート、等)、又は他のベンダ固有機能を含み得る。更なる例として、接続レポートは、装置状態及び統計情報、複数のAPに関する情報、及びアプリケーション接続状態のような情報を含み得る。
図4は、知られているアクセスポイント(AP)リスト400の一例を示す。種々の実施形態において、クライアント装置のネットワークモニタコンポーネントが構築され、ネットワークの装置ビューの分析及び接続レポートの生成をサポートするために、知られているAPリスト400を維持して良い。幾つかの実施形態では、知られているAPリスト400は、図2の知られているAPリスト270に対応して良い。知られているAPリスト400は、事実上、データベース、テーブル、アレイ、リンク付きリスト、等のようないかなるデータ構造であって良い。図示のように、知られているAPリスト405−440は複数のフィールドを含み、幾つかの実施形態は、アクセスポイントに関する情報を収集するための追加又は代替フィールドを使用し得ることが明らかである。
アクセスポイント名フィールド405は、各知られているAPの識別子を格納する。例えば、フィールド405は、ロームテーブル内で見付かった各APのBSSID又はMACアドレスを格納して良い。重要フィールド410は、APが、(例えば、図5を参照して後述する例のような方法の動作により)知られているAPリスト400の属する装置にとって重要APとして識別されたか否かを示す指示(例えば、ブール値)を格納して良い。接続期間フィールド415は、装置がアクセスポイントに接続されて費やした期間を格納して良い。ロームテーブルフィールド内期間420は、APがプロトコルスタックのロームテーブル内に存在した期間を格納して良い。インスタンスフィールド425は、後のクエリによりAPがプロトコルスタックのロームテーブル内に現れた回数を追跡して良い。期間及びインスタンスは、装置の寿命の間(つまりリセットされない)、装置起動から、患者への装置割り当てから、時間期間の間(例えば、時間毎、日にち毎、等にリセットされる)、定期的に(例えば、1時間又は日より前の期間の部分が値から差し引かれて良い)追跡されて良い。SNRフィールド430は、APに関連する1又は複数の信号対雑音比値を格納して良い。例えば、このような値は、現在又は最近のSNR、又は観察されたSNRの平均、中間、モード最小値、又は最大値、を含み得る。ここでも、このようなSNR値は、装置の寿命に又は期間値に関して上述したような他の期間に適用されて良い。チャネルフィールド435は、APの動作する(又は前に動作した)チャネルの指示を格納して良い。上述のように、APリスト400は、多数の追加フィールド440を含み得る。
幾つかの代替の実施形態では、APリスト400は、観察された全てのAPを含まなくて良く、代わりに、観察されたAPの部分集合のみがリストされ追跡されて良い。例えば、幾つかの実施形態では、APリスト400は、所定数のエントリを含み、プロトコルスタックのロームテーブル内で新しいAPが発見されたときはいつでも、最も古いAP、最も短い接続期間のAP、ランダムな非重要AP、又は他のAPのレコードがAPリスト400からの削除のために識別されて良い。
一例として、第1レコード450は、装置が現在接続されていない重要アクセスポイント「AP」を記述する。AP Aは、ロームテーブル内で432回現れ、合計2時間21分の間、ロームテーブル内で連続して見られる。AP Aは、比較的強力な信号を示す60のSNRを有する。AP Aは、現在、チャネル1で動作している。
別の例として、第2レコード455は、装置が合計1時間14分接続されている別の重要AP「B」を記述する。AP Bは、ロームテーブル内で2380回現れ、合計1時間19分の間、ロームテーブル内で連続して見られる。AP Bは、32のSNRを有し、現在、チャネル7で動作しているが、過去にはチャネル1及び6でも観察されている。
第3レコード460は、現在の装置に対して重要と考えられないAP「C」を記述する。環境内に複数の同様の装置を含む配置では、別の装置(例えば、別の患者モニタ装置)が、例えばそのような装置によるAP Cの頻繁な使用により、AP Cをそれ自身の動作に対して重要であると見なし得ることが明らかである。しかしながら、APリスト400の属する装置では、装置は現在AP Cに接続されていない。AP Cは、ロームテーブル内で50回しか現れず、現在ロームテーブル内に存在しない。SNRは、AP Cについて、0である(AP Cが現在範囲外である可能性が高いことを示す)。AP Cは、また、チャネル7で動作することが示される。前述の説明によれば、残りの例示的なレコード465、470、475の意味は明らかである。
図5は、図2の知られているAPリスト270又は図4の知られているAPリスト400のような、知られているAPリストを更新する方法500の一例を示す。方法500は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2のネットワークモニタソフトウェア266に対応して良い。方法500は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(図3のステップ315と独立して又はその部分として)実行されて良い。
方法500は、ステップ505で開始し、ステップ515に進み、ネットワークモニタは、先ずプロトコルスタックのロームテーブルからロームテーブルエントリを読み出すことにより知られているAPリスト内に反映されたAPを更新し始める。例えば、幾つかの実施形態では、ネットワークモニタは、(例えば、APIを介して又はメモリ空間内の各連続レコードを識別することを通じてプロトコルスタックのメモリ空間に直接アクセスすることにより)エントリ毎にロームテーブルにアクセスして良い。別の例として、幾つかの実施形態では、ネットワークモニタは、ロームテーブル自体のコピーを生成し、コピーのエントリを通じて反復して良い。このようなアプローチは、例えばプロトコルスタックのAPIが要求により、個々の要求されたエントリではなく完全なロームテーブルのみを提供することができる場合、有用であり得る。次に、ステップ515で、ネットワークモニタは、知られているAPリストが既に現在のロームテーブルエントリにリストされたAPに対応するエントリを含むか否かを決定する。例えば、ステップ515は、ロームテーブルエントリのAP名を知られているAPリスト内の各AP名と比較するステップを含み得る。一致がない場合、方法500は、ステップ520に進み、ネットワークモニタは新しいAPの新しいエントリを知られているAPリストに追加する。知られているAPリストが固定長を有する実施形態では、ステップ520は、古いエントリ(例えば、最も古い又は最もアクティブでないエントリ)を知られているAPリストから除去して、新しいAPエントリの余地を生成するステップを更に含み得る。ステップ525で、ネットワークモニタは、現在のロームテーブルエントリがプロトコルスタックのロームテーブル内の最後のエントリか否かを決定する。最後ではない場合、方法500は、ステップ510に戻り、追加ロームテーブルエントリを処理する。
知られているAPリスト内のAPがロームテーブル全体に基づき更新されると、方法500は、ステップ530に進み、ネットワークモニタは、先ず分析するためにリストからAPを選択することにより、知られているAPの統計情報を更新し始める。ステップ535で、ネットワークモニタは、(例えば、API、メモリに直接アクセス、等を介して)現在APがロームテーブル内に存在するか否かを決定する。存在しない場合、ステップ540、575で、ネットワークモニタは、ロームテーブル期間及び接続期間値(それぞれ、図4のフィールド420、415に対応し得る)をリセットする。APがロームテーブル内に現在存在する場合、方法500は、代わりにステップ535からステップ545に進み、APのロームテーブルインスタンス(図4のフィールド425に対応し得る)がインクリメントされる。ステップ550で、ネットワークモニタは、現在APのロームテーブル期間を増大する。例えば、種々の実施形態では、ネットワークモニタは、方法500の後の実行同士の間に経過した時間を追跡し、最後の実行からの時間をAPエントリ内の現在のロームテーブル期間値に加算して良い。別の例として、方法500が周期的に実行する幾つかの実施形態では、ネットワークモニタは、所定位置をロームテーブル期間に加算して良い(例えば、方法500の実行の期間と等しい値)。ステップ552で、ネットワーク装置は、現在APのAPリストエントリを、プロトコルスタックによりレポートされた現在のSNR(図3のフィールド430に対応し得る)で更新する。
ステップ555で、ネットワークモニタは、現在チャネルを前に記録されたチャネルと比較することにより、APがロームテーブルに現れた最後のときからAPのチャネルが変化したか否かを決定する。変化した場合、ステップ560で、ネットワークモニタは、APの新しいチャネルをAPリストに記録し、チャネル変化の指示を現在構成中の接続レポートに記録し、又は次の接続レポートが生成されるとき(例えば、幾つかの実施形態では、方法500は方法300の部分とis手実行しない)、接続レポートに含めるために指示を記録する。
次に、ネットワークモニタは、ステップ570で、プロトコルスタック及びネットワークインタフェースが現在APに現在接続されているか否かを決定する。この情報は、ロームテーブルに格納され、又は(例えば、APIを介して)プロトコルスタックからアクセス可能であって良い。装置が現在APに接続されていない場合、方法500はステップ575に進む。他方で、装置が現在APに接続されている場合、ネットワークモニタは、現在APエントリの接続期間を(例えば、ステップ550に関して上述したものと同じ値のうちの1つにより)増大する。ステップ585で、ネットワークモニタは、現在APが知られているAPリスト内の最後のAPか否かを決定する。最後ではない場合、方法は、ステップ530にループし、リスト内の残りのAPを処理する。知られているAPリスト内の全てのAPが更新されると、方法500は、ステップ590に進み終了する。
図4に関して上述したように、種々の代替又は追加フィールドがAPリストに含められて良い。このような追加フィールドをサポートするための方法500に対する種々の変形(例えば、追加、変更、又は省略されたステップ)が明らかである。
図6は、重要APを識別する方法600の一例を示す。方法600は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2の重要AP識別命令267に対応して良い。方法600は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(図3のステップ325と独立して又はその部分として)実行されて良い。
方法600は、ステップ605で開始し、ステップ610に進み、ネットワーク装置は、APのエントリを知られているAPリスト(例えば、知られているAPリスト270又は400)から検討のために読み出す。ステップ615で、ネットワークモニタは、エントリに格納された接続期間が第1接続期間閾t1を超えるか否かを決定する。第1接続期間閾t1(及び本願明細書に記載の他の閾)は、予め定められて良く、又は設定可能であって良い(例えば、インフラストラクチャモニタは、環境内の各ネットワークモニタに、特定閾を利用するよう指示して良い)。一例として、t1は1時間の値に設定されて良い。閾が通過されると、方法600は、ステップ670に進み、現在APのAPリストエントリが重要としてマークされる(例えば、図4のフィールド410に対応するフィールド内で)。その他の場合、方法600は、AP重要性を判断する他の指標をテストすることに進む。
ステップ620で、ネットワークモニタは、APのロームテーブル期間が第1ロームテーブル期間閾t2(例えば、4時間)を超えたか否かを決定する。超えた場合、方法600はステップ670へ進む。その他の場合、ステップ625で、ネットワークモニタは、APのロームテーブル出現カウントが第1ロームテーブル出現閾(例えば、1000)を超えたか否かを決定する。超えた場合、方法はステップ670へ進む。その他の場合、方法600はステップ630へ進む。したがって、方法600により検討される3つの統計情報のうちのいかなるものも、単独で、APを重要と満たすために(適切な閾t1、t2、又はt3を超えることにより)十分に高くて良い。
この例示的な実施形態によると、いかなる単一の値も十分に高くない場合でも、一緒に取り入れられる値は依然として重要指定を正当化し得る。ステップ630で、ネットワークモニタはスコア値を0に初期化する。次に、ステップ635で、ネットワークモニタは、接続期間が、第1接続期間閾t1より小さくて良い第2接続期間閾t4を通過したか否かを決定する。例えば、t4は10分であって良く、一方、t1は1時間であって良い。超えた場合、接続期間重みw1(例えば40)がスコアに加算されて良い。図示のように、重みは定数であって良いが、他の実施形態では、スコアに加算される量は接続期間値に依存して良い(例えば、量は、接続期間又は閾t4を超える接続期間の部分によりスケーリングされて良い)。
次に、ステップ645で、ネットワークモニタは、ロームテーブル期間が、第1ロームテーブル期間閾t2より小さくて良い第2ロームテーブル期間閾t5を通過したか否かを決定する。例えば、t5は1時間であって良く、一方でt2は4時間であって良い。超えた場合、ロームテーブル期間重みw2(例えば20)がスコアに加算されて良い。図示のように、重みは定数であって良いが、他の実施形態では、スコアに加算される量はロームテーブル期間値に依存して良い(例えば、量は、ロームテーブル期間又は閾t5を超えるロームテーブル期間の部分によりスケーリングされて良い)。ステップ655で、ネットワークモニタは、ロームテーブル出現値が、第1ロームテーブル出現閾t6より小さくて良い第2ロームテーブル出現閾t6を通過したか否かを決定する。例えば、t5は500インスタンスであって良く、一方でt2は1000インスタンスであって良い。超えた場合、ロームテーブル出現重みw3(例えば20)がスコアに加算されて良い。図示のように、重みは定数であって良いが、他の実施形態では、スコアに加算される量はロームテーブル出現値に依存して良い(例えば、量は、ロームテーブル出現又は閾t6を超えるロームテーブル出現の部分によりスケーリングされて良い)。
スコアが計算されると、ネットワークモニタは、スコアがスコア閾t7を超えるか否かを決定して、APが重要であると指定されるようにする。例えば、t7は50(接続期間及びロームテーブル期間又はロームテーブル出現が重要を示さなければならないことを示す)又は70(3個全ての指標が重要を示さなければならないことを示す)の値に設定されて良い。t7が超えられた場合、方法はステップ670に、次にステップ675に進む。その他の場合、方法は、ステップ675に直接進み、ネットワークモニタは、追加APが重要性評価のために残っているか否かを決定する。現在APがリスト内の最後のAPではない場合、方法600は、ステップ610にループバックし、知られているAPリスト内の残りのAPを分析する。その他の場合、方法はステップ680に進み終了する。
本例に記載されたように、APは、接続期間、ロームテーブル期間、又はロームテーブル出現に単独に基づき、又はそれらの組み合わせに基づき、重要APとしての資格を取得し得る。APを重要としてマークする種々の代替統計情報及びアプローチが明らかである。例えば、幾つかの実施形態では、ステップ330〜365は、省略されて良く、又はステップ315〜525が省略されて良い。種々の他の変更が明らかである。
図7は、同一チャネル及び隣接チャネル干渉をテストする方法700の一例を示す。方法700は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2の装置側テスト命令268の1又は複数のセットに対応して良い。方法700は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(方法300と独立して又はその部分として)実行されて良い。
方法700は、ステップ705で開始し、ステップ710に進み、ネットワークモニタは、APのエントリを知られているAPリスト(例えば、知られているAPリスト270又は400)から検討のために読み出す。ステップ715で、ネットワークモニタは、(例えば、読み出したAPエントリからチャネルを読み出すことにより)現在APに関連するチャネルを決定する。ステップ720で、ネットワークモニタは、ロームテーブル(又は幾つかの実施形態では、最終的な又はその他の場合包括的な知られているAPリストのような、知られているAPリスト)を、現在同じチャネル又は隣接チャネル(例えば、1チャネル離れている、2チャネル離れている、等)に存在するいかなる他のAPについて、検索する。ステップ725で、ネットワーク装置は、ステップ720でいかなる追加APも識別されたか否かを決定する。識別されていない場合、ネットワーク装置は、現在APについて同一チャネル又は隣接チャネル干渉が存在しないことを決定して良く、方法700はステップ780に進んで良い。その他の場合、少なくとも1つの他のAPが識別された場合、方法700はステップ730に進む。最後にロームテーブル/知られているAPリストが更新されて以来の可能なチャネル変化を考慮するために、ネットワークモニタは、(例えば、プロトコルスタックにAPIを介してそうするよう指示することにより)チャネル又は隣接チャネルグループを探索して、いかなるAPが現在チャネル上に見えるか否かを決定して良い。ステップ735で、ネットワークモニタは、ステップ730におけるチャネル探索が、対象AP又は識別された他のAPの全部のいずれかがもはや見えないことを明らかにしたか否かを決定し、方法700はステップ780に進む。その他の場合、ネットワークモニタは、干渉の可能性を識別し、問題の大きさを分析するためにステップ745に進む。
ステップ745で、ネットワーク装置は、対象APの信号レベル(例えば、SNR値)が現在のテストを適用するのに十分強いか否かを決定する。具体的に、対象APが遠くにあり、干渉に拘わらず低信号を有する場合、干渉は容認されて良く、環境内のネットワークAPの配置及び構成が過度に制限されないようにする。したがって、ステップ745で、ネットワークモニタは、対象AP信号レベルが主信号レベル閾MSLt(例えば30dB)を超えたか否かを決定する。超えない場合、方法700はステップ780へ進んで良い。その他の場合、ステップ750で、ネットワークは、各々の識別された他のAPとの干渉の危険を分析することに進む。
ネットワークモニタは、ステップ750で識別された他のAPのうちの1つを読み出し、ステップ755で該他のAPの信号レベルを決定する。ステップ760で、ネットワーク装置は、2つの信号レベル間の差を計算する。例えば、ネットワーク装置は、単に、他のAPの信号レベルを対象APの信号レベルから減算して良い。幾つかの実施形態では、このステップは、チャネル間の距離を考慮して良い。例えば、2つのAPが1チャネル離れたチャネル上にあるとき、値(例えば、10又は20)が差に加算されて良い。チャネル間隔を考慮する他の方法が明らかである。ステップ765で、ネットワークモニタは、計算した差が信号レベル差閾SLDt(例えば20dB)より下にあるか否かを決定し、それにより、チャネル干渉の相当の可能性又は影響を示す。幾つかの実施形態では、異なる閾が、同一チャネル及び隣接チャネル(又は各々の可能なチャネル距離)干渉テストのために設定されて良い。差が閾を通過するのに十分大きい場合、ネットワークモニタは、このAPペアが干渉の十分なリスクを引き起こさないと決定して良く、方法はステップ755にジャンプして良い。その他の場合、ネットワークモニタは、可能なチャネル衝突の指示を接続レポートに(例えば、現在構成中の接続レポートに、又は将来接続レポートを構成する別の処理によりアクセスされるべきメモリ内のスポットに)追加する。
ステップ755で、ネットワークモニタは、(ステップ720で識別されたような)いかなる他のAPが現在の対象APと一緒に検討するために残っているか否かを決定する。現在の他のAPが検討されるべき最後のものではない場合、方法700はステップ750にループバックして良い。その他の場合、方法は、ステップ780に進み、ネットワークモニタは、いかなる追加の知られているAPが対象APとして分析されるために残っているか否かを決定する。現在の対象APが知られているAPリスト内の最後のものではない場合、方法700は、ステップ710にループバックする。その他の場合、方法はステップ785に進み終了する。
図8は、低カバレッジをテストする例示的な方法800を示す。低カバレッジは、例えば、接続のために使用されているAPが比較的低い信号レベルを有する場合、又は全ての見えるAPが比較的低い信号レベルを有する場合に、存在し得る。方法800は、図示のように、両方の可能性についてテストして良いが、これらのうちの1つのみのテストに対する種々の変形が明らかである。方法800は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2の装置側テスト命令268の1又は複数のセットに対応して良い。方法800は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(方法300と独立して又はその部分として)実行されて良い。
方法800はステップ805で開始し、ステップ810に進み、ネットワークモニタは、知られているAPから現在接続APのエントリを読み出す。次に、ステップ815で、ネットワークモニタは、読み出したエントリから接続APの信号レベルを読み出す。ステップ820で、ネットワークモニタは、例えば、接続APの信号レベルを「接続APに対する低接続テスト閾」(LCT_C_t)(例えば、−70dBm)と比較することにより、接続APが低信号レベルを有するか否かを決定する。信号レベルが低くない場合、ネットワークモニタは、方法800の連続実行に渡り追跡される「接続APに対する低接続テスト期間」(LCT_C期間)をゼロにリセットする。言い換えると、信号レベルが閾より高い場合、接続APは、方法800の現在の実行の、低接続状態で連続0秒を費やしたとしてマークされる。方法は、次に、ステップ845で非接続APを分析することに進む。
他方で、ネットワークモニタが、ステップ820で、接続APが低信号強度を現在有すると決定した場合、方法800は、ステップ830に進み、ネットワークモニタは、追跡されたLCT_C期間を、方法800の最後の実行以来の時間に基づき(例えば、方法800が周期的に実行されると分かっている場合に固定時間だけ、又は最後の実行からの時間を追跡する追跡変数により)増大させる。ステップ835で、ネットワークモニタは、接続APが、フラグを立てることを正当化するのに十分長い時間の間、低信号を有したか否かを決定する。このステップは、例えば、信号強度の短い又は一時的降下が偽アラームを生じないことを保証するために実行され得る。幾つかの実施形態では、ステップ835は完全に省略されても良い。低接続期間が「低接続テスト接続期間閾」(LCT_CDur_t)(例えば10分)より下に降下した場合、ネットワークモニタは、発見を記述する低接続エントリを、現在の接続レポートに(例えば、構成中の接続レポートに、又は将来に接続エントリを構成する別の処理により読み出され得るメモリ内の場所に)追加して良い。その他の場合、方法800は、ステップ840(これは、LCT_C期間が最終的にLCT_CDur_tを通過した場合に方法800の将来の実行で実行され得る)をスキップする。
ネットワークモニタは、次に、ステップ845で追跡ブール変数allLowを真に初期化することにより、非接続APを分析することを開始する。次に、ステップ850で、ネットワークモニタは、知られているAPリストから、範囲内のAPに対応する(例えば、非ゼロ信号レベルに関連する、非ゼロロームテーブル期間を有する、又は現在ロームテーブル内に存在する)レコードを読み出す。ステップ855で、ネットワークモニタは、読み出したエントリから現在APの信号レベルを読み出す。ステップ860で、ネットワークモニタは、例えば、接続APの信号レベルを「非接続APに対する低接続テスト閾」(LCT_NC_t)(例えば−75dBm)と比較することにより、現在APが低信号レベルを有するか否かを決定する。幾つかの実施形態では、LCT_NC_t及びLCT_C_tは同じ閾であって良い。信号レベルが低くない場合、ネットワークモニタは、方法800の連続実行に渡り追跡される現在APの「非接続APに対する低接続テスト期間」(LCT_NC期間)をゼロにリセットする。言い換えると、信号レベルが閾より高い場合、現在APは、方法800の現在の実行の、低接続状態で連続0秒を費やしたとしてマークされる。ネットワークモニタは、次に、ステップ880で、allLow変数を偽に設定し、少なくとも1つの非接続APが方法800の現在の実行において低信号を有しないと見なされたことを示す。
他方で、ネットワークモニタが、ステップ860で、現在APが低信号強度を現在有すると決定した場合、方法800は、ステップ870に進み、ネットワークモニタは、追跡されたLCT_NC期間を、方法800の最後の実行以来の時間に基づき(例えば、方法800が周期的に実行されると分かっている場合に固定時間だけ、又は最後の実行からの時間を追跡する追跡変数により)増大させる。ステップ885で、ネットワークモニタは、現在APが、フラグを立てることを正当化するのに十分長い時間の間、低信号を有していたか否かを決定する(他の非接続の場合、範囲内Aは同様にフラグを正当化する)。このステップは、例えば、信号強度の短い又は一時的降下が偽アラームを生じないことを保証するために実行され得る。幾つかの実施形態では、ステップ875は完全に省略されても良い。定説属の期間が「低接続テスト非接続期間閾」(LCT_NCDur_t)(例えば5分)より下に降下した場合、方法はステップ885に進み(sllLowは真に設定されたまま)、その他の場合、方法800はステップ880に進み得る。幾つかの実施形態では、LCT_NCDur_t及びLCT_CDur_tは同じ閾であって良い。
ステップ885で、ネットワークモニタは、追加非接続、範囲内APが検討のために残っているか否かを決定する。現在APが範囲内の最後ではないが非接続APである場合、方法800は、ステップ850にループバックする。その他の場合、方法800は、ステップ890に進み、ネットワークモニタは、追跡変数allLowが方法800の実行中、真のままであるか否かを決定する。真のままである場合、ネットワークモニタは、全ての範囲内非接続APが、フラグを立てるのに十分長い間、低信号強度状態にあったと決定して良い。ネットワークモニタは、ステップ895で、発見を記述する低接続エントリを現在接続レポートに(例えば、構成中の接続レポートに、又は将来に接続エントリを構成する別の処理により読み出され得るメモリ内の場所に)追加して良い。次に、方法800はステップ899に進み終了する。
図9は、カバレッジ外インスタンスを追跡する方法900の一例を示す。カバレッジ外イベントは、例えば、装置がいかなるAPも(又は装置が接続するよう構成されるいかなるAPも)見えない領域に入る場合に存在して良い。方法900は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2の装置側テスト命令268の1又は複数のセットに対応して良い。方法900は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(方法300と独立して又はその部分として)実行されて良い。
方法900は、ステップ905で開始し、ステップ910に進み、ネットワークモニタは、(例えば、ロームテーブルをクエリすることにより、又は非ゼロ接続期間を有するAPについて知られているAPリストを調べることにより)装置がAPに現在接続されているか否かを決定する。装置がAPに現在接続されていない場合、カバレッジ外イベントが存在し得、方法900は、ステップ915に進み、ネットワークモニタは、ロームテーブルが現在空であるか(又は幾つかの実施形態では、装置が接続できないAPのみを含むか)否かを決定する。ロームテーブルが空である場合、ネットワークモニタは、カバレッジ外イベントが進行中であると決定して良い。このような場合には、方法900は、ステップ920に進み、ネットワークモニタは、カバレッジ外イベントの長さを測定する時間が既に開始されているか否かを決定する。開始されていない場合、ネットワークモニタは、ステップ925で、別のステップ(例えばステップ930)の動作により停止されるまで方法900の連続実行に渡り動作し続ける新しいタイマを開始する。
他方で、ネットワークモニタが、ステップ915でロームテーブルは空ではないと決定した場合、方法900は、ステップ930に進み、(ロームテーブルが再投入されると、いかなる既存のカバレッジ外イベントも終了し得るので)ネットワークモニタはタイマを停止する。ステップ935で、ネットワークモニタは、イベントが、開始から終了までタイマにより追跡された期間をカバレッジ外閾(OOC)(例えば5分)と比較することにより、フラグを立てるのに十分長く継続したか否かを決定する。イベントが十分長く継続した場合、ネットワークモニタは、接続レポートに含めるために、ステップ940でカバレッジ外エントリを準備する。このエントリは、カバレッジ外イベントの期間、又はイベント中の装置のGPS座標、のような種々の情報を含み得る。接続レポートを送信するためのいかなる接続も(未だ)存在しないので、ネットワークモニタは、本ステップで、エントリを接続レポートに直接追加しなくて良い。他の実施形態では、ネットワークモニタは、構成中の接続レポートに、それが送信され得るまで保持するために、情報を直接追加して良い。
装置がAPに再度接続されると、方法900は、ステップ910からステップ945へ進み、ネットワークモニタは、(例えば、方法900の前の実行のステップ940の実行により)1又は複数のカバレッジ外エントリが構成されたか否かを決定する。構成された場合、エントリ(又は複数のエントリ)は、ステップ950で接続レポートに追加される。次に、方法900はステップ955に進み終了する。
方法900に対する種々の変更が明らかである。例えば、幾つかの実施形態では、方法900は、ロームテーブルが再投入されたときと装置がAPに再接続されるときとの間に少なくとも1回実行すると仮定しなくて良い。このような実施形態では、ステップ930〜940は、ステップ910が装置はAPに接続されると決定するときに訪れられる方法900のブランチに複製して移動されて良い。
図10は、低信号対雑音比(SNR)をテストする方法1000の一例を示す。方法1000は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2の装置側テスト命令268の1又は複数のセットに対応して良い。方法1000は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(方法300と独立して又はその部分として)実行されて良い。図示のように、方法1000は、重要APに対して、非重要APに対する動作と異なる方法で動作し得る。したがって、方法1000は、通常インフラストラクチャテスト及び重要インフラストラクチャテストの両方を構成し得る。非重要AP及び重要APに対する異なる動作を示すための本願明細書に記載された他の方法に対する種々の変更が明らかである。
方法1000はステップ1005で開始し、ステップ1010に進み、ネットワークモニタは、信号強度の分析のために、知られているAPリストからAPを読み出す。ステップ1015で、ネットワークモニタは、(例えば、SNR値が存在するか又は非ゼロであるか、期間が非ゼロであるか否か、又はAPがロームテーブルに現在存在するか否か、を決定することにより)APが現在、範囲内か否かを決定する。APが範囲内にない場合、信号強度テストは、APに適用されなくて良く、方法1000はステップ1050へスキップして良い。
ネットワークモニタが範囲内にいるAPを見付けると、方法1000は、ステップ1020に進み、ネットワークモニタは、知られているAPリスト内の(又はロームテーブルから又は新しい探索を要求する)APのマークされたSNRを読み出し、ステップ1025で、(例えば、知られているAPリスト内の現在APのエントリからの指示を読み出すことにより)APが重要APであるか否かを決定する。現在APが重要APである場合、ネットワークモニタは、SNRが重要APについて設定された閾(CritSNRt)(例えば40)より下に降下したか否かを決定する。SNRが重要閾より低い場合、ネットワークモニタは、ステップ1035で、低SNR状態を記述する情報を接続レポートに(例えば、構成中の接続レポートに直接、又は次回接続レポートが生成されるときに読み出されるメモリ内の領域に)追加する。
他方で、現在APが重要ではない場合、同様の処理が続くが、通常に適用可能なSNR閾(GENSNRt)(例えば30)に基づく。例えば、高信号強度を有することは、他の知られているAPと比べて重要APに対する方がより重要であると考えられ、したがって、信号強度の降下をレポートする制約はより高く設定されて良いので、重要閾は通常閾より高く設定されて良い。ステップ1040で、SNRがGneSNRtより下に降下したと決定された場合、ネットワークモニタは、ステップ1045で、低SNR状態を記述する情報を接続レポートに(例えば、構成中の接続レポートに直接、又は次回接続レポートが生成されるときに読み出されるメモリ内の領域に)追加する。ステップ1050で、ネットワークモニタは、現在APが処理されるべき最後のAPか否かを決定する。現在APが知られているAPリスト内の最後のAPではない場合、方法1000は、ステップ1010にループバックし、リスト内の残りのAPを処理する。知られているAPリスト全体が検討されると、方法1000は、ステップ1055に進み終了する。
図11は、重要APの高クライアント密度をテストする方法1100の一例を示す。方法1100は、図1のネットワークモニタ116のようなクライアント装置のネットワークモニタにより実行されて良く、図2の装置側テスト命令268の1又は複数のセットに対応して良い。方法1100は、周期的に(例えば、毎分又は5分毎)、インフラストラクチャモニタのような別の装置による要求により、ロームテーブルが更新されたプロトコルスタックからの指示により、のような種々のときに(方法300と独立して又はその部分として)実行されて良い。図示のように、方法1100は重要APに対してのみテストを実行して良い。重要APに対してのみ適用するための本願明細書に記載された他の方法に対する種々の変更が明らかである。
方法1100はステップ1105で開始し、ステップ1110に進み、ネットワークモニタは、知られているAPリストから(存在する場合)第1重要APを読み出して良い。ステップ1115で、ネットワークモニタは、現在重要APに接続された現在クライアントカウントを読み出して良い。この情報は、例えば、プロトコルスタックから(例えば、ロームテーブル内、他のメモリ部分、又はプロトコルスタックに利用可能な1又は複数のネットワークツールの使用を要求することを介して)利用可能であって良い。代替として、ネットワークモニタは、情報を直接ポーリングするために、重要APへメッセージを送信して良い。更な代替として、情報は、ネットワークモニタソフトウェア自体により、APのビーコン又は探査応答に含まれるQOS拡張基本サービスセット(QOS enhanced basic service set:QBSS)情報要素(IE)からマイニングされて良い。ステップ1120で、ネットワークモニタは、重要APのクライアントカウントが、クライアントカウントをクライアントカウント閾(CCt)(例えば50クライアント)と比較することにより、(例えば、APの見込み負荷として)インフラストラクチャモニタにレポートするのほど高いか否かを決定する。クライアントカウントが十分に高い場合、ネットワークモニタは、(例えば、接続レポートに追加する前述の方法のうちの1又は複数に従い)高クライアント密度を記述する情報を接続レポートに追加する。その他の場合、方法1100は、先にスキップして、別個の利用テストを開始する。
ステップ1130で、ネットワークモニタは、重要APに関連するネットワーク利用率を読み出す。ここでも、これは、例えば、プロトコルスタックから(例えば、ロームテーブル内、他のメモリ部分、又はプロトコルスタックに利用可能な1又は複数のネットワークツールの使用を要求することを介して)利用可能であって良い。代替として、ネットワークモニタは、情報を直接ポーリングするために、重要APへメッセージを送信して良い。ステップ1135で、ネットワークモニタは、重要APの利用率が、利用率を利用率閾(Ut)(例えば90%)と比較することにより、(例えば、APの見込み負荷として)インフラストラクチャモニタにレポートするのほど高いか否かを決定する。利用率が十分に高い場合、ネットワークモニタは、(例えば、接続レポートに追加する前述の方法のうちの1又は複数に従い)高クライアント密度を記述する情報を接続レポートに追加する。その他の場合、方法1100はステップ1145にスキップする。
ステップ1145で、ネットワークモニタは、追加重要APがテストのために残っているか否かを決定する。現在重要APが知られているAPリスト内の最後のAPではない場合、方法1100は、ステップ1110にループバックし、残りの重要APを処理する。その他の場合、方法1100はステップ1150に進み終了する。
本願明細書に記載された種々の実施形態は多くの別個の方法の間で別個の複数のテストを記載したが、他の実施形態は、このような方法を1つのアルゴリズムに凝縮して良いことに留意する。例えば、幾つかの実施形態では、ステップ845〜895及びステップ1015〜1045は、方法700に(例えばステップ710の直後に)挿入されて良く、ステップ710及び780により既に生成されたループを利用するようにして良い。別の例として、幾つかの実施形態では、ステップ1115〜1140は、方法600に(例えばステップ670の後に)挿入されて良く、重要APを識別した直後に、重要AP固有テストを直ちに実行するようにして良い。本願明細書に記載した方法の種々の他の変更が明らかである。
図12は、ネットワーク管理者への提示のために接続レポートを処理する方法1200の一例を示す。方法1200は、インフラストラクチャモニタ(例えば、図1のインフラストラクチャモニタ150)により実行されて良く、図2の報告収集命令273、報告分析命令275、及び警告命令276に対応して良い。方法1200は、周期的に(例えば、5分毎、1時間毎、等)、接続レポートを受信すると(例えば、新しい接続レポートの度に、5個の接続レポートを受信すると、各アクティブネットワークモニタから少なくとも1つの接続レポートを受信すると、等)、又は何からの他の基準で、実行されて良い。
方法1200は、ステップ1205で開始し、ステップ1210に進み、インフラストラクチャモニタは、1又は複数の接続レポートをシステムのクライアント装置に展開されたネットワークモニタから受信する。ステップ1215で、インフラストラクチャモニタ装置は、追加統計情報(例えば、平均AP負荷、重要とマークされた全てのAPのリスト、カバレッジ外イベントのマップ、低接続イベントのタイムライン、等のような複数の接続レポートに渡り認められる種々の統計情報)を導出する。ステップ1220で、インフラストラクチャモニタは、接続レポートの1又は複数の視覚化を提示する(又は後の要求による提示のために生成する)。
インフラストラクチャモニタは、ステップ1225で、いかなる警告が上げられるべきか否かを決定し始め、(接続レポート内で配信された又はそれらから導出された)統計情報を1又は複数の所定の警告ルールと比較する。例えば、ルールは、少なくとも10個の装置(例えば、患者モニタ)により重要とマークされたAPが70%の利用率に達した場合、警告が上げられるべきであると定めて良い。以下の表1は、接続レポート内でレポートされたイベントに基づき上げられるべき複数の助言ルールの別の例を含む。
ステップ1230で、インフラストラクチャモニタは、助言ルールのうちの1又は複数が満たされたと決定する。次にステップ1235で、インフラストラクチャモニタは、(例えば、管理者によりアクセスされるとき管理ポータル/ウェブサイトのホームページ又は助言ページ上で助言のリストをレンダリングすることにより)ネットワーク管理者に利用可能なこれらの助言の識別を行う。インフラストラクチャモニタは、次に、ステップ1240で、ステップ1225の結果として生じた助言のうちのいかなる助言が重要か否かを決定することにより、助言のうちのいかなる助言が1又は複数のネットワーク管理者に通知をプッシュするに値するか否かを決定することに進む。助言は、例えば関連するルールが重要であると見なされることに基づき、特定の重要閾又は他の重要基準がルール内で満たされることに基づき(例えば、ルールが通常閾及び重要閾を含み得る)、助言が存在していた期間に基づき、1又は複数の重要APが影響されていること等に基づき、重要と見なされて良い。重要と満たされた場合、インフラストラクチャモニタは、ステップ1245で、警告(例えば、テキストメッセージ、電子メール、電話呼、等)をネットワーク管理者へ送信して良い。方法1200はステップ1250に進み終了して良い。
以上により、種々の実施形態は、より堅牢な利用可能性及び性能のために、無線ネットワークインフラストラクチャの監視の拡張を可能にし及び適用する。例えば、標準的なプロトコルにより実行されるタスクを超えて、ネットワークのクライアント装置に少なくとも何らかの監視及びレポートを実行することを任せることにより、監視全体が、1又は少数の中央装置ではなく、複数の(場合によっては多数の)装置の間で分散でき、ネットワーク状態を学習するためにネットワークを繰り返し探索する。さらに、重要ノードを識別するクライアント装置を提供することにより、(どのAPが重要であると見なされるかを学習する利益自体と共に)このような分散システムにおいて実行される冗長処理及びレポートの量が削減できる。種々の追加の利益が、以上の観点から明らかである。
本発明の種々の例示的な実施形態がハードウェア又はファームウェアで実装され得ることが前述の記載から明らかである。さらに、種々の例示的な実施形態は、本願明細書に詳細に記載した動作を実行するために少なくとも1つのプロセッサにより読み出され実行され得る、機械可読記憶媒体に格納された命令として実施されて良い。機械可読記憶媒体は、パーソナル又はラップトップコンピュータ、サーバ、又は他のコンピューティング装置のような機械により読み取り可能な形式で情報を格納するいかなる媒体も包含し得る。したがって、機械可読記憶媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置及び同様の記憶媒体を包含しうる。
本願明細書で提示されるいかなるブロック図も本発明の原理を具現化する説明のための回路の概念図を提示するものであることが当業者により理解されるべきである。同様に、いかなるフローチャート、フロー図、状態遷移図、擬似コード等も種々の処理を表し、機械可読媒体に実質的に表現されて良く、従ってコンピュータ又はプロセッサにより実行されて良く、該コンピュータ又はプロセッサが明示されているか否かを問題としないことが理解される。
種々の例示的な実施形態がその特定の例示的な態様を特に参照して詳述されたが、本発明は他の実施形態が可能であり、その詳細は種々の明らかな観点で変更が可能であることが理解されるべきである。当業者に直ちに明らかなように、本発明の精神及び範囲内に留まりながら、変形及び変更が可能である。したがって、以上の開示、説明、及び図面は、単なる説明目的であり、請求項によってのみ定められる本発明をいかなる方法でも制限しない。
例えば、無線患者監視の分野では、患者の発作を検出する際の遅延が悪影響をもたらし、生死の差を意味する場合さえあるので、患者データがリアルタイムに中央装置へストリーミングされることが重要である。事業無線システムは、病院(又は接続の重要なアプリケーションの展開される他の場所)中の接続の品質を管理するツールを提供することを主張しているが、これらのシステムは、閉じられることが多く、サポートされている特定のアプリケーションにとって不完全である。例えば、このようなシステムは、非タイムクリティカルなアプリケーションに適するがリアルタイムの重要なアプリケーションに対して不利益をもたらす広範な一般的な且つ頻繁なネットワーク変更を通じて、オンサイト無線ネットワークを編成しようと試みることがある。
親出願であるWO2016/125055A1(「Method for testing client roaming」)、WO2011/103515A1(「Controlling access point transmit power based on access terminal ranking」)、及びUS2012/170474A1(「System and Method of Adaptive Roaming for WLAN Clients」)を参照のこと。