(57)【要約】  本発明の特定の実施例は、フォルトトレラントなＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）データ通信のためのシステム及び方法であって、１以上のメッセージデータをプライマリストレージに区別するステップと、前記プライマリストレージが枯渇した場合、前記区別された１以上のメッセージデータをセカンダリストレージに格納するステップと、前記１以上のメッセージデータを優先順位付けするステップと、前記１以上のメッセージデータを通信するステップとを有する。１以上のメッセージデータは、１以上のキュー選択ルールに基づき区別される。１以上のメッセージデータは、１以上のメッセージデータの優先順位付けに少なくとも部分的に基づき通信される。
2009542113.tif 000002
【特許請求の範囲】
【請求項１】
フォルトトレラントなＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）データ通信のための方法であって、
少なくとも１つのキュー選択ルールに基づき区別された少なくとも１つのメッセージデータをプライマリストレージに区別するステップと、
前記プライマリストレージが枯渇した場合、前記区別された少なくとも１つのメッセージデータをセカンダリストレージに格納するステップと、
少なくとも１つのキューシーケンス化ルールに基づき、前記少なくとも１つのメッセージデータを優先順位付けするステップと、
少なくとも部分的に前記少なくとも１つのメッセージデータの優先順位付けに基づき、前記少なくとも１つのメッセージデータを通信するステップと、
を有する方法。
【請求項２】
前記優先順位付けするステップと前記通信するステップは、故障したリンクが通知されると停止される、請求項１記載の方法。
【請求項３】
前記優先順位付けするステップと前記通信するステップは、前記故障したリンクが回復されたことを通知されると再開される、請求項２記載の方法。
【請求項４】
前記プライマリストレージと前記セカンダリストレージとが枯渇すると、最も新しい少なくとも１つのメッセージデータのスペースを設けるため、最も古い少なくとも１つのメッセージデータを削除するステップをさらに有する、請求項１記載の方法。
【請求項５】
前記優先順位付けするステップは、アプリケーションプログラムに透過である、請求項１記載の方法。
【請求項６】
フォルトトレラントなＱｏＳデータ通信のためのシステムであって、
少なくとも１つのキュー選択ルールを用いて少なくとも１つのメッセージデータを区別するよう構成される区別コンポーネントと、
前記区別された少なくとも１つのメッセージデータを格納するよう構成されるプライマリストレージコンポーネントと、
前記プライマリストレージが枯渇した場合、前記少なくとも１つのメッセージデータを格納するよう構成されるセカンダリストレージコンポーネントと、
少なくとも１つのキューシーケンス化ルールを用いて前記少なくとも１つのメッセージデータを優先順位付けするよう構成される優先順位付けコンポーネントと、
を有するシステム。
【請求項７】
当該システムは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）７レイヤプロトコルモデルのトランスポートレイヤとセッションレイヤとの間で動作する、請求項６記載のシステム。
【請求項８】
前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントの少なくとも１つは、ユーザにより規定された設定に従ってサイジング及び特定される、請求項６記載のシステム。
【請求項９】
前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントとが枯渇すると、前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントの少なくとも１つから削除された少なくとも１つのメッセージデータを格納するアーカイブストレージをさらに有する、請求項６記載のシステム。
【請求項１０】
前記少なくとも１つのキューシーケンス化ルールは、少なくとも部分的にプロトコルに基づき、前記少なくとも１つのメッセージデータを優先順位付けする、請求項６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示による技術は、一般に通信ネットワークに関する。より詳細には、本開示による技術は、信頼性の低い物理レイヤに耐性のあるＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）機構を提供するシステム及び方法に関する。
【背景技術】
【０００２】
様々な環境で通信ネットワークが利用されている。通信ネットワークは、典型的には、１以上のリンクにより接続された２以上のノードを有する。一般に、通信ネットワークは、リンク上の２以上の加入ノードと通信ネットワークの中間ノードとの間の通信をサポートするのに使用される。ネットワークには、多数のタイプのノードが存在するかもしれない。例えば、ネットワークは、クライアント、サーバ、ワークステーション、スイッチ及び／又はルータなどのノードを有するかもしれない。リンクは、例えば、電話線を介したモデム接続、配線、イーサネット（登録商標）リンク、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）回路、衛星リンク及び／又は光ファイバケーブルなどであるかもしれない。
【０００３】
通信ネットワークは、実際には、１以上の小規模な通信ネットワークから構成されるかもしれない。例えば、インターネットはしばしば、相互に接続されたコンピュータネットワークのネットワークとして説明される。各ネットワークは、異なるアーキテクチャ及び／又はトポロジーを利用するかもしれない。例えば、１つのネットワークは、スタートポロジーを備えたスイッチされるイーサネット（登録商標）ネットワークであるかもしれず、他のネットワークは、ＦＤＤＩ（Ｆｉｂｅｒ−Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）リングであるかもしれない。
【０００４】
通信ネットワークは、広範なデータを伝送するかもしれない。例えば、ネットワークは、インタラクティブなリアルタイムの会話のためのデータと共に、一括ファイル転送を伝送するかもしれない。ネットワーク上で送信されるデータはしばしば、パケット、セル又はフレームにより送信される。あるいは、データはストリームとして送信されるかもしれない。いくつかの具体例では、データのストリーム又はフローは、実際にはパケットのシーケンスであるかもしれない。インターネットなどのネットワークは、ある範囲のノード間のものであって、異なる要求により膨大なデータアレイを伝送する一般的な目的のためのデータパスを提供する。
【０００５】
ネットワークを介した通信は、典型的には、複数レベルの通信プロトコルを伴う。ネットワーキングスタック又はプロトコルパッケージとも呼ばれるプロトコルスタックは、通信に利用されるプロトコル群を意味する。各プロトコルは、特定タイプの能力又は特定形式の通信に利用されるかもしれない。例えば、１つのプロトコルは、銅線により接続される各装置と通信するのに必要とされる電気信号に関するものであるかもしれない。他のプロトコルは、例えば、多数の中間ノードにより分離される２つのノードの間の順序付け及び確実な送信に関するものであるかもしれない。
【０００６】
プロトコルスタックの各プロトコルは、典型的には、階層により存在する。しばしば、各プロトコルはレイヤに分類される。プロトコルレイヤの１つの参照モデルは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）モデルである。ＯＳＩ参照モデルは、物理レイヤ、データリンクレイヤ、ネットワークレイヤ、トランスポートレイヤ、セッションレイヤ、プレゼンテーションレイヤ及びアプリケーションレイヤの７つのレイヤを含む。物理レイヤが“最下位”レイヤであり、アプリケーションレイヤが“最上位”レイヤである。２つの周知なトランスポートレイヤプロトコルは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）とＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）である。周知のネットワークレイヤプロトコルは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）である。
【０００７】
送信ノードにおいて、送信対象となるデータが、最上位から最下位にプロトコルスタックの各レイヤに下っていく。他方、受信ノードでは、データは、最下位から最上位に各レイヤを昇っていく。各レイヤでは、データは当該レイヤにおけるプロトコル処理通信により処理されるかもしれない。例えば、トランスポートレイヤプロトコルは、送信先ノードにおける到着に対するパケットの順序付けを可能にするヘッダをデータに追加するかもしれない。アプリケーションに応じて、一部のレイヤは利用されず又は存在しないかもしれず、またデータは単に通過するかもしれない。
【０００８】
１つのタイプの通信ネットワークは、戦術データネットワーク（ｔａｃｔｉｃａｌ  ｄａｔａ  ｎｅｔｗｏｒｋ）である。戦術データネットワークはまた、戦術通信ネットワークと呼ばれるかもしれない。戦術データネットワークは、軍隊（陸軍、海軍及び／又は空軍など）などの組織内の各ユニットにより利用されるかもしれない。戦術データネットワーク内の各ノードは、例えば、各兵士、航空機、コマンドユニット、衛星及び／又はラジオなどを含むかもしれない。戦術データネットワークは、音声、位置測定情報、センサデータ及び／又はリアルタイムビデオなどのデータを通信するのに利用されるかもしれない。
【０００９】
戦術データネットワークの利用方法の一例は、以下の通りである。後方支援部隊が、戦場の戦闘ユニットのための供給を提供するため展開中であるかもしれない。当該部隊と戦闘ユニットは共に、衛星無線リンクを介し指揮所に位置測定情報を提供しているかもしれない。無人航空機（ＵＡＶ）が、当該部隊がリアルタイムビデオデータを取得し、衛星無線リンクを介し指揮所に送信している道路に沿ってパトロールしているかもしれない。指揮所では、アナリストがビデオデータを調べながら、コントローラが道路の特定セクションのビデオを提供するようＵＡＶに指示している。このとき、アナリストは、当該部隊が近づいている即席爆発装置（ＩＥＤ）を検出し、停止するよう部隊に直接的な無線リンクを介し命令を送信し、部隊にＩＥＤの存在を警告する。
【００１０】
戦術データネットワーク内に存在するかもしれない各種ネットワークは、多数の異なるアーキテクチャ及び特性を有するかもしれない。例えば、戦闘ユニットにおけるネットワークは、極めて低いスループットと大きな遅延により動作する戦場ユニット及び衛星との無線リンクと共に、ギガビットイーサネット（登録商標）ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を有するかもしれない。戦場ユニットは、衛星と直接的なパス無線周波数（ＲＦ）の双方を介して通信するかもしれない。データは、当該データの性質及び／又はネットワークの具体的な物理的特性に応じて、ポイント・ツー・ポイント、マルチキャスト又はブロードキャストにより送信されるかもしれない。ネットワークは、例えば、データを設定から中継までの各無線を含むかもしれない。さらに、ネットワークは、広範囲の通信を可能にする高周波数（ＨＦ）ネットワークを含むかもしれない。例えば、マイクロ波ネットワークがまた、利用されるかもしれない。他の理由のうちで、リンク及びノードのタイプの多様性によって、戦術ネットワークはしばしば、過度に複雑なネットワークアドレッシングスキームとルーティングテーブルとを有する。さらに、無線ベースネットワークなどの一部のネットワークは、バーストを利用して動作するかもしれない。すなわち、データを連続的に送信するのでなく、断続的なバーストデータを送信する。これは、無線がすべての参加者により共有される必要がある特定チャネル上でブロードキャストしていて、１つの無線しか一時に伝送しないため、有用である。
【００１１】
戦術データネットワークは、一般に帯域幅制限される。すなわち、典型的には、所与の時点において利用可能な帯域幅より大きな通信対象となるデータが存在する。これらの制約は、供給を超える帯域幅の要求、及び／又はユーザの要求を満たすのに十分な帯域幅を供給する利用可能な通信技術がないことによるかもしれない。例えば、いくつかのノードの間では、帯域幅は毎秒キロビットのオーダであるかもしれない。帯域幅制限のある戦術データネットワークでは、重要性の低いデータがネットワークを占有する可能性があり、重要性の高いデータがタイムリーに伝送されず、又は受信ノードに全く到着しない可能性もある。さらに、ネットワークの一部は、信頼性の低いリンクを補償するための内部バッファを含むかもしれない。これは、さらなる遅延をもたらすかもしれない。さらに、バッファが一杯になると、データが欠落されるかもしれない。
【００１２】
多くの例では、ネットワークに利用可能な帯域幅は、増やすことができない。例えば、衛星通信リンクを介し利用可能な帯域幅は、固定されており、他の衛星を配置させることなく効果的に増やすことはできない。これらの状況では、帯域幅は需要を処理するため単に拡大されずに管理される必要がある。大規模システムでは、ネットワーク帯域幅は重要なリソースである。アプリケーションが可能な限り効率的に帯域幅を利用することが望ましい。さらに、アプリケーションが“パイプの詰まり”、すなわち、帯域幅が制限されているときにデータがリンクを圧倒することを回避することが望ましい。帯域幅の割当てが変更されると、好ましくは、アプリケーションは反応すべきである。帯域幅は、例えば、ＱｏＳ、ジャミング（ｊａｍｍｉｎｇ）、信号障害、優先順位再割当、及び見通しなどにより動的に変化しうる。ネットワークは極めて不安定であり、利用可能な帯域幅は、急激にかつ通知なく変化しうる。
【００１３】
帯域幅制約に加えて、戦術データネットワークは大きな遅延が生じるかもしれない。例えば、衛星リンクを介した通信を伴うネットワークは、０．５秒又はそれ以上のオーダによる遅延を引き起こすかもしれない。いくつかの通信では、これは問題とはならないが、リアルタイムのインタラクティブ通信（音声通信など）などの他の通信では、可能な限り遅延を最小化することは望ましい。
【００１４】
多くの戦術データネットワークに共通する他の特徴は、データ欠落である。データは、様々な理由により欠落する。例えば、送信すべきデータを有したノードが故障又は損傷するかもしれない。他の例として、送信先ノードがネットワークから一時的に欠落するかもしれない。これは、例えば、ノードが範囲外に移動したため、通信リンクが遮断されたため、及び／又はノードが混雑しているためなどにより発生するかもしれない。送信先ノードが受信できず、中間ノードが送信先ノードが利用可能になるまでデータをバッファするのに十分な容量を欠いているため、データが欠落するかもしれない。さらに、中間ノードは、データを全くバッファリングせず、その代わりにデータが送信先に今まで実際に到達したか判断するため、送信ノードに任せる。
【００１５】
しばしば、戦術データネットワークにおけるアプリケーションは、ネットワークの特定の特性を認識せず、及び／又は考慮しない。例えば、あるアプリケーションは、それが必要とするのと同じくらい利用可能な帯域幅を有していると単に仮定するかもしれない。他の例として、アプリケーションは、データがネットワークにおいて欠落しないと仮定するかもしれない。基礎となる通信ネットワークの具体的特性を考慮しないアプリケーションは、実際に問題を悪化させないように動作するかもしれない。例えば、アプリケーションは、より大きな束によりより少ない頻度で効果的に送信可能なデータのストリームを連続的に送信するかもしれない。この連続的なストリームは、例えば、通信から他のノードを効果的に枯渇させるブロードキャスト無線ネットワークなどにおいて極めて大きなオーバヘッドをもたらし、より頻度の低いバーストは、共有されている帯域幅がより効果的に使用されることを可能にするであろう。
【００１６】
特定のプロトコルは、戦術データネットワークに対して良好に機能しない。例えば、ＴＣＰなどのプロトコルは、無線ベース戦術ネットワーク上では良好に機能しないかもしれない。なぜなら、当該ネットワークが高い損失レートと遅延に直面する可能性があるためである。ＴＣＰは、データを送信するため複数の形式のハンドシェイク及びアクノリッジメントが行われることを要求する。高い遅延とロスにより、ＴＣＰはタイムアウトに至り、当該ネットワークを介し存在する場合に多くの有意なデータを送信することができないかもしれない。
【００１７】
戦術データネットワークにより通信される情報はしばしば、ネットワークにおいて他のデータに関して様々なレベルの優先度を有する。例えば、航空機における脅威警告受信機は、数マイル離れた地上部隊の位置測定情報より高い優先度を有するかもしれない。他の例として、戦闘に関する本部からかの命令は、味方のラインの後方の後方支援通信より高い優先度を有するかもしれない。優先レベルは、送信者及び／又は受信者の特定の状況に依存するかもしれない。例えば、位置測定データは、ユニットが単に標準的なパトロールルートに従っているときより、ユニットが戦闘状態に積極的に従事しているときにはるかに大きな優先度を有するかもしれない。同様に、ＵＡＶからのリアルタイムビデオデータは、それが単にルート上にあるときより、ターゲットエリアにあるときに高い優先度を有するかもしれない。
【００１８】
ネットワークを介しデータを送信するアプローチは複数ある。多くの通信ネットワークにより利用される１つのアプローチは、“ベストエフォート”アプローチである。すなわち、通信されるデータが処理されると共に、他の要求が与えられると、ネットワークが能力、遅延、信頼性、順序付け及びエラーに関して処理可能である。従って、ネットワークは、所与のデータ部分がそれの送信先にタイムリーに又はすべて到達するということを保証しない。さらに、データが送信順序により又はデータの１以上のビットを変更する送信エラーなく到達するということは保証されない。
【００１９】
他のアプローチはＱｏＳである。ＱｏＳは、伝送されるデータに関して各種形式の保証を提供するためのネットワークの１以上の能力を表す。例えば、ＱｏＳをサポートするネットワークは、データストリームに対して特定量の帯域幅を保証するかもしれない。他の例として、ネットワークは、２つの特定ノードの間のパケットがある最大遅延しか有しないことを保証するかもしれない。このような保証は、これら２つのノードがネットワークを介し会話する２人の人である音声通信の場合に有用であるかもしれない。このようなケースでのデータ送信の遅延は、例えば、通信における苛々するギャップ及び／又は無音状態をもたらすかもしれない。
【００２０】
ＱｏＳは、選択されたネットワークトラフィックにより良好なサービスを提供するためのネットワークの能力としてみなされるかもしれない。ＱｏＳの主要な目的は、専用の帯域幅、制御されたジッタ及び遅延（リアルタイムでインタラクティブなトラフィックにより要求される）並びに向上した損失特性を含む優先度を提供することである。他の重要な目的は、１つのフローに優先順位を提供することが他のフローを失敗させないことを確実にすることである。すなわち、以降のフローについてなされる保証が、既存のフローについてなされる保証を破ってはならない。
【００２１】
ＱｏＳに対する現在のアプローチは、しばしばネットワークのすべてのノードがＱｏＳをサポートするか、又は少なくとも特定の通信に関係するネットワークのすべてのノードに対してＱｏＳをサポートすることを要求する。例えば、現在のシステムでは、２つのノードの間の遅延保証を提供するため、これら２つのノードの間のトラフィックを伝送するすべてのノードが、その保証を認識し、それを尊重することに同意し、尊重することができなければならない。
【００２２】
ＱｏＳを提供するアプローチは複数存在する。１つのアプローチは、Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ、すなわち、“ＩｎｔＳｅｒｖ”である。ＩｎｔＳｅｒｖは、ネットワークのすべてのノードがサービスをサポートし、接続が設定されるとこれらのサービスが予約されるＱｏＳシステムを提供する。ＩｎｔＳｅｒｖは、すべてのノードにおいて維持される必要がある大量の状態情報と、当該接続を設定することに係るオーバヘッドとにより良好にはスケーリングできない。
【００２３】
ＱｏＳを提供する他のアプローチは、Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ、すなわち、“ＤｉｆｆＳｅｒｖ”である。ＤｉｆｆＳｅｒｖは、インターネットなどのネットワークのベストエフォートサービスを向上させるサービスモデルのクラスである。ＤｉｆｆＳｅｒｖは、ユーザ、サービス要求及び他の基準によってトラフィックを区別する。このとき、ネットワークノードが優先キュー処理又は帯域幅割当てを介し、又は特定のトラフィックフローのための専用のルートを選択することによって、異なるレベルのサービスを提供できるように、ＤｉｆｆＳｅｒｖはパケットをマーク付けする。典型的には、ノードは、各サービスクラスについて各種キューを有する。このとき、ノードは、クラスカテゴリに基づきこれらのキューから送信する次のパケットを選択する。
【００２４】
既存のＱｏＳソリューションはしばしばネットワークに固有のものであり、各ネットワークタイプ又はアーキテクチャは異なるＱｏＳコンフィギュレーションを要求するかもしれない。既存のＱｏＳソリューションが利用するメカニズムによって、現在のＱｏＳシステムと同様のメッセージは、実際にメッセージコンテンツに基づき異なる優先順位を有するかもしれない。しかしながら、データ消費者は、優先度の低いデータにより充填されることなく高い優先度のデータへのアクセスを要求するかもしれない。既存のＱｏＳシステムは、トランスポートレイヤにおけるメッセージコンテンツに基づくＱｏＳを提供することができない。
【００２５】
上述されるように、既存のＱｏＳソリューションは、少なくとも特定の通信に関係するノードがＱｏＳをサポートすることを要求する。しかしながら、ネットワークの“エッジ”にあるノードは、それらがトータルの保証をすることができない場合でさえ、ＱｏＳの向上を提供するよう構成されるかもしれない。各ノードは、それらが通信に参加するノード（すなわち、送信及び／又は受信ノード）である場合、及び／又はそれらがネットワークのチョークポイントにある場合、ネットワークのエッジにいるとみなされる。チョークポイントは、すべてのトラフィックが他の部分にわたされる必要があるネットワークのセクションである。例えば、ＬＡＮから衛星リンクへのルータ又はゲートウェイは、チョークポイントとなるであろう。なぜなら、ＬＡＮからＬＡＮ上にない何れかのノードへのすべてのトラフィックは、ゲートウェイを介し衛星リンクにわたされる必要があるためである。
【発明の概要】
【発明が解決しようとする課題】
【００２６】
多くの無線又はワイヤレスベースネットワークでは、物理リンクはやや信頼性が低く、頻繁なリンク故障を生じさせる。これが発生すると、ネットワークがダウンしている期間中データは失われるかもしれない。現在、信頼性の低い物理リンクによる問題に対処する１つの方法は、小さなデータバッファリングを利用することによるものである。ネットワークにおける無線（例えば）がデータの優先順位を考慮することなく（すなわち、ＱｏＳなしで）ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）ベースにより送信成功するまで、データを保持する小さなバッファを提供するとき、小さなデータバッファリングが行われる。バッファが使用されないとき、あるタイプのデータロスが受け入れられる。一部のアプリケーションは、物理リンクの状態に関係なくデータを送信し続けることによって、データロスを許容する。他のアプリケーションは、物理リンクが故障していると検出されると、データの送信を停止する（スロットリングと呼ばれる）。
【００２７】
従って、信頼性の低い物理レイヤに耐性を有するＱｏＳ機構を提供するシステム及び方法が必要とされる。より詳細には、物理リンクがサービスに復帰するまで、上位レベルのアプリケーションにより送信された大量のデータを保存可能なＱｏＳベースバッファリング機構を提供する戦術データネットワークにおける適応的でコンフィギュラブルなＱｏＳシステム及び方法が必要とされる。
【課題を解決するための手段】
【００２８】
本発明の特定の実施例は、フォルトトレラントなＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）データ通信のための方法を提供する。本方法は、１以上のメッセージデータをプライマリストレージに区別するステップと、前記プライマリストレージが枯渇した場合、前記区別された１以上のメッセージデータをセカンダリストレージに格納するステップと、前記１以上のメッセージデータを優先順位付けするステップと、前記１以上のメッセージデータを通信するステップとを有する。１以上のメッセージデータは、１以上のキュー選択ルールに基づき区別される。１以上のメッセージデータは、１以上のメッセージデータの優先順位付けに少なくとも部分的に基づき通信される。
【００２９】
本発明の特定の実施例は、フォルトトレラントなＱｏＳデータ通信のためのシステムを提供する。本システムは、区別コンポーネントと、プライマリストレージコンポーネントと、セカンダリストレージコンポーネントと、優先順位付けコンポーネントとを有する。区別コンポーネントは、１以上のキュー選択ルールを用いて１以上のメッセージデータを区別するよう構成される。プライマリストレージコンポーネントは、前記区別された１以上のメッセージデータを格納するよう構成される。セカンダリストレージコンポーネントは、前記プライマリストレージが枯渇した場合、前記１以上のメッセージデータを格納するよう構成される。優先順位付けコンポーネントは、１以上のキューシーケンス化ルールを用いて前記１以上のメッセージデータを優先順位付けするよう構成される。
【００３０】
本発明の特定の実施例は、コンピュータ上で実行される命令セットを有するコンピュータ可読媒体を提供する。本命令セットは、区別ルーチンと、優先順位付けルーチンと、通信ルーチンとを有する。区別ルーチンは、１以上のキュー選択ルールを用いて１以上のメッセージデータを１以上のキューに区別するよう構成される。優先順位付けルーチンは、１以上のキューシーケンス化ルールを用いて前記１以上のメッセージデータを優先順位付けするよう構成される。通信ルーチンは、少なくとも部分的に優先順位付けルーチンに基づき、１以上のメッセージデータを通信するよう構成される。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明の実施例により動作する戦術通信ネットワーク環境を示す。
【図２】図２は、本発明の実施例による７レイヤＯＳＩネットワークモデルにおけるデータ通信システムの配置を示す。
【図３】図３は、本発明の実施例によるデータ通信システムを利用して実現される複数のネットワークの一例を示す。
【図４】図４は、本発明の実施例により動作するフォルトトレラントＱｏＳデータ通信システムを示す。
【図５】図５は、本発明の実施例によるフォルトトレラントなＱｏＳデータ通信方法のフロー図を示す。
【発明を実施するための形態】
【００３２】
上記概要と、本発明の特定の実施例の以下の詳細な説明は、添付した図面と共に参照されるときより良好に理解されるであろう。本発明を説明するため、特定の実施例が図面に示される。しかしながら、本発明は添付した図面に示される構成及び装置に限定されるものでないことが理解されるべきである。
【００３３】
図１は、本発明の実施例により動作する戦術通信ネットワーク環境１００を示す。ネットワーク環境１００は、複数の通信ノード１１０と、１以上のネットワーク１２０と、ノード及びネットワークを接続する１以上のリンク１３０と、ネットワーク環境１００の各コンポーネントの通信を実現する１以上の通信システム１５０とを有する。以下の説明は、複数のネットワーク１２０と複数のリンク１３０とを有するネットワーク環境１００を想定するが、他の環境もまた可能であり想定されることが理解されるべきである。
【００３４】
通信ノード１１０は、無線、送信機、衛星、受信機、ワークステーション、サーバ及び／又は他の計算若しくは処理装置などであり、及び／又はそれらを含むかもしれない。
【００３５】
ネットワーク１２０は、例えば、ノード１１０の間でデータを送信するハードウェア及び／又はソフトウェアであるかもしれない。ネットワーク１２０は、例えば、１以上のノード１１０を含むかもしれない。
【００３６】
リンク１３０は、ノード１１０及び／又はネットワーク１２０の間の送信を可能にする有線及び／又は無線接続であるかもしれない。
【００３７】
通信システム１５０は、例えば、ノード１１０、ネットワーク１２０及びリンク１３０の間のデータ送信を実現するため使用されるソフトウェア、ファームウェア及び／又はハードウェアを含むかもしれない。図１に示されるように、通信システム１５０は、ノード１１０、ネットワーク１２０及び／又はリンク１３０に関して実現されてもよい。特定の実施例では、すべてのノード１１０は通信システム１５０を含む。特定の実施例では、１以上のノード１１０は通信システム１５０を含む。特定の実施例では、１以上のノード１１０は通信システム１５０を含まないかもしれない。
【００３８】
通信システム１５０は、ネットワーク環境１００などの戦術通信ネットワーク上の通信を確保するのに役立つためのデータの動的管理を提供する。図２に示されるように、特定の実施例では、システム１５０は、ＯＳＩの７レイヤプロトコルモデルにおけるトランスポートレイヤの一部として及び／又は上位において動作する。システム１５０は、トランスポートレイヤなどにわたされる戦術ネットワークにおける優先順位の高いデータに優先度を提供するかもしれない。システム１５０は、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの単一ネットワークにおける通信又は複数のネットワーク間の通信を実現するのに利用されるかもしれない。図３において、マルチネットワークシステムの一例が示される。システム１５０は、例えば、追加的な帯域幅をネットワークに追加するのでなく、利用可能な帯域幅を管理するのに利用されるかもしれない。
【００３９】
特定の実施例では、システム１５０は、各種実施例においてハードウェアコンポーネントとソフトウェアコンポーネントの両方を有してもよいが、ソフトウェアシステムである。システム１５０は、例えば、ネットワークハードウェアに依存しないかもしれない。すなわち、システム１５０は、各種ハードウェア及びソフトウェアプラットフォーム上で機能するよう構成されるかもしれない。特定の実施例では、システム１５０は、ネットワークの内部のノード上でなく、ネットワークのエッジ上で動作する。しかしながら、システム１５０は、ネットワークの“チョークポイント（ｃｈｏｋｅ  ｐｏｉｎｔ）”など、ネットワークの内部においても動作可能である。
【００４０】
システム１５０は、ルール及びモード又はプロファイルを利用して、ネットワークにおける利用可能な帯域幅の最適化、情報優先順位の設定及びデータリンクの管理などのスループット管理機能を実行するかもしれない。帯域幅使用の最適化は、機能的に冗長なメッセージの削除、メッセージストリーム管理又はシーケンス化、メッセージ圧縮などを含むかもしれない。帯域幅の“最適化”とは、ここに記載される技術が１以上のネットワークにおいてデータを通信するための帯域幅の使用の効率性を高めるのに利用可能であることを意味する。情報優先順位の設定は、ＩＰベース技術より詳細な単位によりメッセージタイプを区別すること、選択されたルールベースシーケンス化アルゴリズムを介しメッセージをデータストリームにシーケンス化することなどを含むかもしれない。データリンク管理は、例えば、ルール、モード及び／又はデータトランスポートの変化に影響を与えるネットワーク測定結果のルールベースの解析を含むかもしれない。モード又はプロファイルは、特定のネットワーク健全性状態の動作要求に関するルールセットを含むかもしれない。システム１５０は、無線による新たなモードの定義及びスイッチを含む、動的なモードの“無線（ｏｎ−ｔｈｅ−ｆｌｙ）”リコンフィギュレーション又は再設定を提供する。
【００４１】
通信システム１５０は、不安定な帯域幅制限のあるネットワークなどにおけるサービスの優先順位及びグレードの変更に適応するよう構成されるかもしれない。システム１５０は、ネットワークにおけるレスポンス能力の向上と通信遅延の低下に役立つように、改良されたデータフローのための情報を管理するよう構成されるかもしれない。さらに、システム１５０は、通信の利用性、生存性及び信頼性を向上させるようアップグレード可能かつスケーラブルなフレキシブルアーキテクチャを介し相互互換性を提供するかもしれない。システム１５０は、所定の予測可能なシステムリソース及び帯域幅などを利用しながら、動的に変化する環境に自律的に適応可能なデータ通信アーキテクチャをサポートする。
【００４２】
特定の実施例では、システム１５０は、ネットワークを利用するアプリケーションに対する透過性を維持しながら、帯域幅制限された戦術通信ネットワークにスループット管理を提供する。システム１５０は、低減された複雑さにより複数のユーザ及び環境におけるスループット管理をネットワークに提供する。上述されるように、特定の実施例では、システム１５０は、ＯＳＩの７レイヤモデルの第４レイヤ（トランスポートレイヤ）にある及び／又はの上位にあるホストノード上で実行され、特殊なネットワークハードウェアを必要としない。システム１５０は、第４レイヤインタフェースに透過的に動作するかもしれない。すなわち、アプリケーションは、トランスポートレイヤの標準的なインタフェースを利用し、システム１５０の動作に気付かないかもしれない。例えば、アプリケーションがソケットをオープンするとき、システム１５０は、プロトコルスタックの当該ポイントにおいてデータをフィルタリングするかもしれない。システム１５０は、アプリケーションがシステム１５０に固有のインタフェースでなくネットワーク上の通信装置におけるオペレーティングシステムにより提供されるＴＣＰ／ＩＰソケットインタフェースなどを利用することを可能にすることによって、透過性を実現する。システム１５０のルールは、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）により記述されるか、及び／又はカスタムＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）を介し提供されるかもしれない。
【００４３】
特定の実施例では、システム１５０は、ネットワークのエッジ上でＱｏＳを提供する。システムのＱｏＳ能力は、ネットワークのエッジ上でコンテンツベース、ルールベースデータ優先順位付けを提供する。優先順位付けは、例えば、区別及び／又はシーケンス化を含むかもしれない。システム１５０は、例えば、ユーザコンフィギュラブルな区別ルールに基づきメッセージをキューに区別するかもしれない。これらのメッセージは、ユーザにより設定されたシーケンス化ルール（スタベーション、ラウンドロビン、相対頻度など）により規定される順序によりデータストリームにシーケンス化される。エッジ上のＱｏＳを利用して、従来のＱｏＳアプローチにより区別できないデータメッセージは、メッセージコンテンツなどに基づく区別されてもよい。ルールは、例えば、ＸＭＬにより実現されてもよい。特定の実施例では、ＸＭＬを超える能力を収容し、及び／又は極端に低い遅延要求をサポートするため、システム１５０は、例えば、ＤＬＬにカスタムコードを設けることを可能にする。
【００４４】
ネットワーク上の入力及び／又は出力データは、システム１５０を介しカスタマイズされるかもしれない。優先順位付けは、クライアントアプリケーションを大容量低優先順位データなどからプロテクトする。システム１５０は、アプリケーションが特定の動作シナリオ又は制約をサポートするようデータを受信することを確実にするのに供する。
【００４５】
特定の実施例では、ホストが帯域幅制限のある戦術ネットワークとのインタフェースとしてのルータを有するＬＡＮに接続されると、システムは、プロキシによりＱｏＳとして知られるコンフィギュレーションにより動作するかもしれない。このコンフィギュレーションでは、ローカルなＬＡＮ宛のパケットはシステムをバイパスし、ＬＡＮにすぐに向かう。システムは、ネットワークのエッジ上のＱｏＳを帯域幅制限のある戦術リンクに向かうパケットに適用する。
【００４６】
特定の実施例では、システム１５０は、命令されたプロファイルスイッチングを介し複数の動作シナリオ及び／又はネットワーク環境の動的サポートを提供する。プロファイルは、ユーザ又はシステムが指名されたプロファイルに変更を加えることを可能にする名称又は他の識別子を含むかもしれない。プロファイルはまた、例えば、機能冗長性ルール識別子、区別ルール識別子、アーカイブインタフェース識別子、シーケンス化ルール識別子、送信前インタフェース識別子、送信後インタフェース識別子、トランスポート識別子、及び／又は他の識別子などの１以上の識別子を含むかもしれない。機能冗長性ルール識別子は、古いデータ又は実質的に同様のデータなどから機能冗長性を検出するルールを規定する。区別ルール識別子は、例えば、処理のためメッセージをキューに区別するルールを規定する。アーカイブインタフェース識別子は、例えば、アーカイブシステムとのインタフェースを規定する。シーケンス化ルール識別子は、キューフロントのサンプルと、データストリームのデータのシーケンス化とを制御するシーケンス化アルゴリズムを特定する。送信前インタフェース識別子は、例えば、暗号化及び圧縮などの特別な処理を提供する送信前処理のためのインタフェースを特定する。送信後インタフェース識別子は、例えば、解読及び伸張などの処理を提供する送信後処理のためのインタフェースを特定する。トランスポート識別子は、選択されたトランスポートのネットワークインタフェースを規定する。
【００４７】
プロファイルはまた、例えば、キューサイジング情報などの他の情報を含むかもしれない。キューサイジング情報は、例えば、各キューに専用のメモリ及びセカンダリストレージの大きさとキューの個数を特定する。
【００４８】
特定の実施例では、システム１５０は、帯域幅を最適化するためのルールベースアプローチを提供する。例えば、システム１５０は、各メッセージに優先順位とデータストリーム上の適切な相対頻度とを割当てるよう、メッセージをメッセージキューに区別するためのキュー選択ルールを利用するかもしれない。システム１５０は、機能冗長性ルールを利用して、機能的に冗長なメッセージを管理するかもしれない。メッセージは、それが例えば、ネットワーク上でまだ送信されていない前のメッセージと十分異なるものでない場合（ルールにより規定されるように）、機能的に冗長である。すなわち、すでに送信がスケジューリングされたが、まだ送信されていない古いメッセージと十分異なるものでない新たなメッセージが提供された場合、この新たなメッセージは排除されてもよい。なぜなら、古いメッセージが機能的に等価な情報を搬送し、さらにキューにおいて前にあるためである。さらに、機能冗長性は、古いメッセージが送信される前に到着した新しいメッセージと実質的に重複したメッセージを含むかもしれない。例えば、ノードは、フォルトトレラント（ｆａｕｌｔ  ｔｏｌｅｒａｎｔ）であるため、２つの異なるパスにより送信されたメッセージなど、基礎となるネットワークの特性により特定のメッセージの同一のコピーを受信するかもしれない。他の例として、新たなメッセージは、まだ送信されていない古いメッセージに優先するデータを含むかもしれない。この状況では、システム１５０は、古いメッセージを排除し、新たなメッセージのみを送信するようにしてもよい。システム１５０はまた、データストリームの優先順位ベースメッセージシーケンスを決定するための優先順位シーケンス化ルールを含むようにしてもよい。さらに、システム１５０は、圧縮及び／又は暗号化などの送信前及び送信後の特別な処理を提供するため、送信処理ルールを有してもよい。
【００４９】
特定の実施例では、データ完全性及び信頼性を保護するのに役立つように、フォルトトレラント機能を提供する。例えば、システム１５０は、ユーザにより規定されたキュー選択ルールを利用して、メッセージをキューに区別するようにしてもよい。キューは、例えば、ユーザにより規定されるコンフィギュレーションに従ってサイジングされる。コンフィギュレーションは、例えば、キューが使用するメモリの最大量を規定する。さらに、コンフィギュレーションは、ユーザがキューのオーバフローのために利用可能なセカンダリストレージの位置及び大きさを規定することを可能にするかもしれない。キューのメモリが充填された後、メッセージはセカンダリストレージにキュー処理されるかもしれない。セカンダリストレージがまたフルになると、システム１５０は、キューの最も古いメッセージを削除し、エラーメッセージを記録し、最も新しいメッセージをキュー処理する。この動作モードに対してアーカイブ処理が可能である場合、キュー解除されたメッセージは、当該メッセージがネットワーク上で送信されなかったという表示と共にアーカイブ化されてもよい。
【００５０】
システム１５０のキューのためのメモリ及びセカンダリストレージは、例えば、特定のアプリケーションについてリンク毎に設定されてもよい。ネットワーク利用可能期間の間の時間が長いことは、ネットワークの停止をサポートするためより大きなメモリ及びセカンダリストレージとなることに対応するかもしれない。システム１５０は、例えば、キューが適切にサイジングされ、停止時間が安定状態をアーカイブし、最終的なキューのオーバフローを回避するのに役立つよう十分なものとなることを保証するのに役立つようなサイジングを特定するのに供するためなどのネットワークモデリング及びシミュレーションアプリケーションと統合されてもよい。
【００５１】
さらに、特定の実施例では、システム１５０は、入力（シェイピング）と出力（ポリシング）データを測定する機能を提供する。ポリシングとシェイピング機能は、ネットワークにおけるタイミングミスマッチに対処するのに役立つ。シェイピングは、ネットワークバッファが低優先順位データの後に高優先順位データがキューされることによるフラッディングを防ぐのに役立つ。ポリシングは、アプリケーションデータ利用者が低優先順位データにより圧倒されることを防ぐのに役立つ。ポリシングとシェイピングは、有効リンクスピードとリンク比率という２つのパラメータにより決定される。システム１５０は、例えば、リンク比率と乗算された有効リンクスピードより大きくないデータストリームを構成するかもしれない。これらのパラメータは、ネットワークの変更に従って動的に変更されるかもしれない。システムはまた、データ測定に関するアプリケーションレベルの結果をサポートするため、検出されたリンクスピードへのアクセスを提供するかもしれない。システム１５０により提供される情報は、所与のネットワークシナリオに対して何れのリンクスピードが適切であるか決定するのに役立つ他のネットワーク動作情報と組み合わされてもよい。
【００５２】
図４は、本発明の実施例によるデータバッファリングを提供するフォルトトレラントなＱｏＳデータ通信システム４００を示す。データ通信システム４００は、メッセージデータ４１０を受信、格納、優先順位付け、処理、通信及び／又は送信するため、１以上のキュー選択ルール４２０と１以上のキューシーケンス化ルール４５０とを有する。データ通信システム４００はまた、データを格納、整理及び／又は優先順位付けするため、プライマリストレージ４３０とセカンダリストレージ４４０とを有する。上述されるように、データ通信システム４００は、ＯＳＩ７レイヤプロトコルモデル（図２を参照）におけるトランスポートレイヤとセッションレイヤとの間で動作する。データ通信システム４００は、それの区別ルール４２０とキューシーケンス化ルール４５０とを利用して、例えば、トランスポートレイヤにわたされる高い優先順位のデータを戦術ネットワークにおいて優先させるかもしれない。以下において、説明のため、プライマリストレージ４３０は区別データキュー４３０と呼ばれ、セカンダリストレージ４４０はセカンダリストレージキュー４４０と呼ばれる。しかしながら、プライマリストレージ４３０及び／又はセカンダリストレージ４４０は、以下に限定するものでないが、キュー、リスト、グラフ、ツリーなどの何れかのタイプの構造化されたメモリであるかもしれない。
【００５３】
データ通信システム４００により受信、格納、優先順位付け、処理、通信及び／又は送信されるメッセージデータ４１０は、データのブロックを含むかもしれない。データブロックは、例えば、データのパケット、セル、フレーム及び／又はストリームであるかもしれない。例えば、データ通信システム４００は、上述されるように、ソースノードからメッセージデータ４１０のパケットを受信するかもしれない。他の例として、データ通信システム４００は、上述されるように、ソースノードからメッセージデータ４１０のストリームを処理するかもしれない。
【００５４】
特定の実施例では、メッセージデータ４１０は、プロトコル情報を有する。プロトコル情報は、例えば、メッセージデータ４１０を通信するため、１以上のプロトコルにより利用されるかもしれない。プロトコル情報は、例えば、ソースアドレス、デスティネーションアドレス、ソースポート、デスティネーションポート及び／又はプロトコルタイプなどを含むかもしれない。ソース及び／又はデスティネーションアドレスは、例えば、ＩＰアドレスであるかもしれない。プロトコルタイプは、データの通信の１以上のレイヤに使用されるプロトコルの種類を含むかもしれない。例えば、プロトコルタイプは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）又はＳＣＴＰ（Ｓｔｒｅａｍ  Ｃｏｎｔｒｏｌ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｐｒｏｔｏｃｏｌ）などのトランスポートプロトコルであるかもしれない。他の例として、プロトコルタイプは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、ＩＰＸ（Ｉｎｔｅｒｎｅｔｗｏｒｋ  Ｐａｃｋｅｔ  Ｅｘｃｈａｎｇｅ）、イーサネット（登録商標）、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）及び／又はＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）を含むかもしれない。
【００５５】
特定の実施例では、メッセージデータ４１０は、ヘッダとペイロードとを含む。ヘッダは、例えば、プロトコル情報の一部又はすべてを含むかもしれない。特定の実施例では、プロトコル情報の一部又はすべては、ペイロードに含まれる。例えば、プロトコル情報は、メッセージデータ４１０のブロックのペイロード部分に格納されている上位レベルプロトコルに関する情報を含むかもしれない。
【００５６】
動作について、メッセージデータ４１０は、上述されるように、１以上のデータソースにより提供及び／又は生成される。メッセージデータ４１０が、データ通信システム４００において受信される。メッセージデータ４１０は、例えば、１以上のリンクを介し受信される。例えば、メッセージデータ４１０は、プロセス間通信機構により同一システム上で実行されるアプリケーションによりデータ通信システム４００に提供されるかもしれない。上述されるように、メッセージデータ４１０は、例えば、データのブロックであるかもしれない。
【００５７】
特定の実施例では、データ通信システム４００は、メッセージデータ４１０を区別データキュー４３０に区別及び／又は整理するため、ユーザにより規定されたキュー選択ルール４２０を適用するかもしれない。キュー選択ルール４２０は、たとえ刃、ＸＭＬにより記述されてもよく、及び／又はカスタムＤＬＬを介し提供されてもよい。キュー選択ルールは、例えば、データ通信システム４００により受信されたメッセージデータ４１０が、メッセージデータ４１０及び／又はプロトコルヘッダに基づき別々の区別データキュー４３０に区別されることを指定するかもしれない。
【００５８】
特定の実施例では、キュー選択ルール４２０は、メッセージデータ４１０を区別データキュー４３０に区別するルールであるかもしれない。例えば、キュー選択ルール４２０は、ユーザにより選択されたモードに基づき、“オン”又は“オフ”として設定されるかもしれない。上述されるように、データ通信システム４００は、ルール及びモード又はプロファイルを使用して、ネットワークにおける利用可能な帯域幅の最適化、情報優先順位の設定、データリンクの管理など、スループット管理機能を実行するかもしれない。異なるモードは、例えば、ルール、モード及び／又はデータトランスポートなどの変化に影響を与えるかもしれない。モード又はプロファイルは、特定のネットワークの健全性状態の動作要求に関するルールセットを含むかもしれない。データ通信システム４００は、新たなモードの“無線”での定義及びスイッチ又はユーザによるモードの選択などを含むモードの動的な再設定を提供するかもしれない。
【００５９】
特定の実施例では、選択されたモードがキュー選択ルール４２０のセットを利用する場合、メッセージデータ４１０は、メッセージデータ４１０を区別データキュー４３０に区別するため解析されるかもしれない。特定の実施例では、利用可能なモードは、異なるキュー選択ルール４２０を有するかもしれない。例えば、モードＡはキュー選択ルール４２０の第１セットを有し、モードＢはキュー選択ルール４２０の第２セットを有するかもしれない。キュー選択ルール４２０のセットは、１つのモード又は複数のモードに属するかもしれない。モードは、キュー選択ルール４２０の１以上のセットを有してもよい。
【００６０】
特定の実施例では、機能冗長性ルールは、ソースからの第１メッセージデータセット４１０が区別データキュー４３０に格納されているか判断するため、区別データキュー４３０を検索するのに利用されるかもしれない。ソースからの第１メッセージデータセット４１０が特定された場合、冗長性ルールは、第１メッセージデータセット４１０のタイムスタンプの確認を指示するかもしれない。特定の実施例では、冗長性ルールは、第１メッセージデータセット４１０のタイムスタンプと、第２メッセージデータセット４１０のタイムスタンプとの比較を規定するかもしれない。第１データセットのタイムスタンプと第２メッセージデータセット４１０のタイムスタンプとの相違が閾値レベルより大きくない場合、第１メッセージデータセット４１０と第２メッセージデータセット４１０とは機能的に冗長であると判断されるかもしれない。
【００６１】
第１データセットと第２データセットとが機能的に冗長であると判断された場合、冗長性ルールは、区別データキュー４３０からより早い第１メッセージデータセット４１０を排除するかもしれない。その後、冗長性ルールは、より遅い第２メッセージデータセット４１０を区別データキュー４３０に追加してもよい。一実施例では、冗長性ルールは、区別データキュー４３０の送信順序が変更されないように、第２メッセージデータセット４１０を区別データキュー４３０に追加するよう規定するかもしれない。あるいは、冗長性ルールは、ＦＩＦＯプロトコルにより第２メッセージデータセット４１０を区別データキュー４３０に追加するよう規定するかもしれない。このようにして、冗長でない画像データが、冗長な画像データによるネットワークの負担なしに宛先に送信される。
【００６２】
特定の実施例では、メッセージデータ４１０が通信されるまで、キュー選択ルール４２０により区別されるメッセージデータ４１０が区別データキュー４３０に配置される。区別データキュー４３０は、データ通信システム４００のユーザにより規定された設定に従ってサイジングされる。この設定は、区別データキュー４３０が使用可能なメモリの最大量を規定するかもしれない。
【００６３】
特定の実施例では、データ通信システム４００は、ネットワークレイヤ４６０により停止（すなわち、リンク故障）が通知されたとき、メッセージデータ４１０を排除しない。すなわち、メッセージデータ４１０が低い優先順位であっても、それはデータ通信システム４００により排除されない。むしろ、メッセージデータ４１０は、潜在的には、通信が必要なデータ通信システム４００により受信される高い優先順位のメッセージデータのデータ量と、リンク故障の期間とに依存して、区別データキュー４３０及び／又はセカンダリストレージ４４０においてある期間だけ遅延されるかもしれない。
【００６４】
特定の実施例では、データ通信システム４００は、ユーザが区別データキュー４３０のオーバフローが許容されるセカンダリストレージ４４０の位置と大きさを規定することを可能にする。区別データキュー４３０のメモリが完全に充填された後、メッセージデータ４１０は、セカンダリストレージ４４０へのキュー処理が開始されるかもしれない。
【００６５】
特定の実施例では、ユーザにより設定されない場合、セカンダリストレージ４４０が枯渇すると、キュー選択ルール４２０は、区別データキュー４３０の最も古いメッセージ４１０を削除し、エラーメッセージを記録し、最も新しいメッセージ４１０をキュー処理してもよい。エラーメッセージは、例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｌｏｇなどのアプリケーションに記録されるかもしれない。エラーメッセージは、例えば、発生時間などの情報を含むかもしれない。特定の実施例では、ログレベルとログパスが、実行中にユーザによって又はデータ通信システム４００に係る設定ファイルの値を変更することによって編集されるかもしれない。特定の実施例では、データ通信システム４００は、キュー解除されたメッセージデータ４１０を、それがネットワーク上に送信されなかったというインジケータと共にアーカイブ化してもよい。
【００６６】
特定の実施例では、区別データキュー４３０とセカンダリストレージ４４０のメモリが、特定のアプリケーションのリンクベースで設定される。停止が長時間になるほど（すなわち、物理リンクが故障している期間）、停止をサポートするため、区別データキュー４３０とセカンダリストレージ４４０のより大きなメモリが必要とされる。データ通信システム４００は、区別データキュー４３０とセカンダリストレージ４４０が適切にサイジングされ、停止時間が安定状態を実現するのに十分であり、これにより、最終的な区別データキュー４３０及び／又はセカンダリストレージ４４０のオーバフローを回避することを確実にするための理想的なサイジングを特定するため、ネットワークモデリング及びシミュレーションアプリケーションと容易に統合される。
【００６７】
特定の実施例では、ユーザにより規定されたキューシーケンス化ルール４５０は、通信対象となるメッセージデータ４１０を整理及び／又は優先順位付けするかもしれない。特定の実施例では、キューシーケンス化ルール４５０は、メッセージデータ４１０のブロックの優先順位を決定するかもしれない。例えば、メッセージデータ４１０のブロックは、データ通信システム４００の区別データキュー４３０に格納され、データ通信システム４００の優先順位付けコンポーネントであるキューシーケンス化ルール４５０は、メッセージデータ４１０のブロック及び／又はキュー４３０について決定された優先順位に基づき、区別データキュー４３０からメッセージデータ４１０のブロックを抽出するかもしれない。メッセージデータ４１０のブロックの優先順位は、メッセージデータ４１０のブロックに係る及び／又は含まれるプロトコル情報に少なくとも部分的に基づくかもしれない。特定の実施例では、データ通信システム４００は、プロトコルフィルタの一部として実現される。プロトコル情報は、例えば、上述されるプロトコル情報と同様のものであってもよい。例えば、キューシーケンス化ルール４５０は、メッセージデータ４１０のブロックのソースアドレスに基づき、メッセージデータ４１０のブロックの優先順位を決定してもよい。他の例として、キューシーケンス化ルールアルゴリズム４５０は、メッセージデータ４１０のブロックを通信するのに使用されるトランスポートプロトコルに基づき、データブロックの優先順位を決定するかもしれない。
【００６８】
メッセージデータ４１０は、１以上のキューシーケンス化ルール４５０に少なくとも部分的に基づき優先順位付けされてもよい。上述されるように、キューシーケンス化ルール４５０は、ユーザにより規定されるかもしれない。特定の実施例では、キューシーケンス化ルール４５０は、ＸＭＬにより記述されてもよく、及び／又はカスタムＤＬＬを介し提供されてもよい。キューシーケンス化ルール４５０は、例えば、あるプロトコルを用いて通信されるメッセージデータ４１０が、他のプロトコルを用いたメッセージデータ４１０より優先されることを指定するかもしれない。例えば、命令メッセージデータ４１０は、キューシーケンス化ルール４５０を介して、他のプロトコルを用いて送信された位置遠隔測定メッセージデータ４１０より優先されるプロトコルを利用するかもしれない。他の例として、キューシーケンス化ルール４５０は、第１アドレス範囲に送信される位置遠隔測定メッセージデータ４１０が、第２アドレス範囲に送信される位置遠隔測定メッセージデータ４１０より優先されることを規定するかもしれない。第１アドレス範囲は、例えば、実行中のデータ通信システム４００を有する航空機と同じ飛行隊の他の航空機のＩＰアドレスを表すかもしれない。第２アドレス範囲は、例えば、異なる作戦エリアにあって、データ通信システム４００が実行されている航空機に関心の少ない他の航空機のＩＰアドレスを表すかもしれない。
【００６９】
特定の実施例では、キューシーケンス化ルール４５０は、システムの各メッセージ４１０に優先順位番号をマッピングするかもしれない。ユーザにより規定された優先順位番号は、ゼロから区別データキュー４３０のユーザに規定された個数までの範囲の整数であるかもしれない。優先順位番号は、メッセージ４１０が区別データキュー４３０において有する優先レベルに対応するかもしれない。特定の実施例では、最も大きな番号が最も高い優先レベルを有するかもしれない。特定の実施例では、最も高い優先順位のメッセージデータ４１０が、それがデータ通信システム４００に利用可能になるとトランスポートに配置され、より低い優先順位番号のメッセージ４１０は、ユーザにより規定されたキューシーケンス化ルール４５０に応じて、より低い頻度で転送されるかもしれない。
【００７０】
キューシーケンス化ルール４５０によるメッセージデータ４１０の優先順位付けは、例えば、ＱｏＳを提供するのに利用されるかもしれない。例えば、キューシーケンス化ルール４５０は、戦術データネットワークを介し送信されるメッセージデータ４１０の優先順位を決定するかもしれない。この優先順位は、例えば、メッセージデータ４１０のデスティネーションアドレスに基づくかもしれない。例えば、データ通信システム４００が属する小隊と同じ小隊のメンバーの無線へのメッセージデータ４１０のデスティネーションＩＰアドレスには、異なる作戦エリアの異なる部隊のユニットに送信されるデータより高い優先順位が与えられるかもしれない。キューシーケンス化ルール４５０は、複数の区別データキュー４３０の何れがデータ通信システム４００によって以降の通信の具体的な優先順位が割り当てられるか決定するかもしれない。例えば、より高い優先順位のメッセージデータ４１０を保持する区別データキュー４３０には、キューシーケンス化ルール４５０によりより高い優先順位が割り当てられ、さらに次の通信するメッセージデータ４１０を決定するのに、より高い優先順位キューをまず参照するかもしれない。
【００７１】
特定の実施例では、データ通信システム４００は他のアプリケーションに透過である。例えば、データ通信システム４００により実行される処理、整理、優先順位付け及び／又は通信は、１以上の他のアプリケーション又はデータソースに透過であるかもしれない。例えば、データ通信システム４００と同一のシステム上で実行されるアプリケーションは、データ通信システム４００により実行されるメッセージデータ４１０の優先順位付けを認識しないかもしれない。
【００７２】
特定の実施例では、キューシーケンス化ルール４５０は、メッセージデータ４１０を優先順位付けするルールであるかもしれない。例えば、キューシーケンス化ルール４５０は、ユーザにより選択された“モード”に基づき“オン”又は“オフ”と設定されてもよい。上述されるように、データ通信システム４００は、ルール及びモード又はプロファイルを利用して、ネットワークにおける利用可能な帯域幅の最適化、情報優先順位の設定、データリンクの管理などのスループット管理機能を実行するかもしれない。異なるモードは、例えば、ルール、モード及び／又はデータトランスポートの変化に影響を与えるかもしれない。モード又はプロファイルは、特定のネットワーク健全性状態の動作要求に関するルールセットを含むかもしれない。データ通信システム４００は、新たなモードの無線による定義及びスイッチやユーザによるモードの選択などを含むモードの動的な再設定を提供するかもしれない。
【００７３】
一実施例では、選択されたモードがキューシーケンス化ルール４５０のセットを利用する場合、メッセージデータ４１０は、キューシーケンス化ルール４５０に基づき優先順位を決定するため解析されるかもしれない。一実施例では、利用可能なモードは、異なるキューシーケンス化ルール４５０を有するかもしれない。例えば、モードＡはキューシーケンス化ルール４５０の第１セットを有し、モードＢはキューシーケンス化ルール４５０の第２セットを有するかもしれない。キューシーケンス化ルール４５０のセットは、１以上のモードに属するかもしれない。モードは、キューシーケンス化ルール４５０の複数のセットを有するかもしれない。
【００７４】
メッセージデータ４１０は、データ通信システム４００から通信される。メッセージデータ４１０は、例えば、上述されるように、１以上のデスティネーションノードに通信される。メッセージデータ４１０は、例えば、上述されるように、１以上のリンクを介し通信される。例えば、メッセージデータ４１０は、データ通信システム４００によって、戦術データネットワークを介し無線に通信されるかもしれない。他の例として、メッセージデータ４１０は、プロセス間通信機構により同一システム上で実行されるアプリケーションに、データ通信システム４００によって提供されるかもしれない。
【００７５】
上述されるように、データ通信システム４００のコンポーネント、要素及び／又は機能は、ハードウェア、ファームウェア及び／又はソフトウェアの命令セットとして単独で又は組み合わせて実現されるかもしれない。特定の実施例は、汎用コンピュータ又は他の処理装置での実行のため、メモリ、ハードディスク、ＤＶＤ又はＣＤなどのコンピュータ可読媒体にある命令セットとして提供されるかもしれない。
【００７６】
図５は、本発明の実施例によるデータ通信方法５００のフロー図を示す。本方法５００は、以下で詳細に説明される以下の各ステップを含む。ステップ５１０において、メッセージデータ４１０がデータ通信システム４００において受信される。ステップ５２０において、メッセージデータ４１０は、キュー選択ルール４２０を利用して、メッセージデータ４１０に適したキュー４３０を決定することによって、整理及び区別される。ステップ５３０において、キューシーケンス化ルール４５０は、次に供されるキュー４３０を決定するため適用される。ステップ５４０において、物理リンクがアクティブでない場合、データ通信システム４００はリンクの回復を待機する。ステップ５５０において、物理リンクがアクティブである場合又はアクティブであるとき、メッセージデータ４１０が通信される。本方法５００が、上述したシステムの各要素を参照して説明されるが、他の実現形態もまた可能であることが理解されるべきである。例えば、キューの変わりに、メモリは、以下に限定されるものでないが、リスト、グラフ、ツリーなどの何れかのタイプの構造化されたメモリであってもよい。
【００７７】
ステップ５１０において、メッセージデータ４１０が、データ通信システム４００において受信される。メッセージデータ４１０は、例えば、１以上のリンクを介し受信されるかもしれない。メッセージデータ４１０は、例えば、１以上のデータソースにより提供及び／又は生成されてもよい。例えば、メッセージデータ４１０は、戦術データネットワークを介し無線からデータ通信システム４００において受信されるかもしれない。他の例として、メッセージデータ４１０は、プロセス間通信機構により同一システム上で実行されるアプリケーションによって、データ通信システム４００に提供されてもよい。上述されるように、メッセージデータ４１０は、例えば、メッセージデータ４１０のブロックであるかもしれない。
【００７８】
ステップ５２０において、メッセージデータ４１０は、キュー選択ルール４２０を利用して、メッセージデータ４１０に適したキュー４３０を決定することによって整理及び／又は区別される。特定の実施例では、データ通信システム４００は、ユーザにより規定されたキュー選択ルール４２０を適用して、メッセージデータ４１０を区別データキュー４３０に区別及び／又は整理するかもしれない。キュー選択ルール４２０は、例えば、ＸＭＬにより記述されてもよく、及び／又はカスタムＤＬＬを介し提供されてもよい。キュー選択ルール４２０は、例えば、データ通信システム４００により受信されるメッセージデータ４１０が、メッセージデータ４１０及び／又はプロトコルヘッダに基づき別々の区別データキュー４３０に区別されることを規定するかもしれない。
【００７９】
特定の実施例では、キュー選択ルール４２０は、メッセージデータ４１０を区別データキュー４３０に区別するルールであってもよい。例えば、キュー選択ルール４２０は、ユーザにより選択された“モード”に基づき“オン”又は“オフ”と設定されるかもしれない。上述されるように、データ通信システム４００は、ルール及びモード又はプロファイルを利用して、ネットワークにおける利用可能な帯域幅の最適化、情報優先順位の設定及びデータリンクの管理などのスループット管理機能を実行するかもしれない。異なるモードは、例えば、ルール、モード及び／又はデータトランスポートの変化に影響を与えるかもしれない。モード又はプロファイルは、特定のネットワーク健全性状態の動作要求に関するルールセットを含むかもしれない。データ通信システム４００は、新たなモードの“無線”による定義及びスイッチやユーザによるモードの選択などを含むモードの動的な再設定を提供するかもしれない。
【００８０】
特定の実施例では、選択されたモードがキュー選択ルール４２０のセットを利用する場合、メッセージデータ４１０が、メッセージデータ４１０を区別データキュー４３０に区別するため解析されるかもしれない。特定の実施例では、利用可能なモードは、異なるキュー選択ルール４２０を有するかもしれない。例えば、モードＡはキュー選択ルール４２０の第１セットを有し、モードＢはキュー選択ルール４２０の第２セットを有してもよい。キュー選択ルール４２０のセットは、単一のモード又は複数のモードに属するかもしれない。モードは、キュー選択ルール４２０の複数のセットを有してもよい。
【００８１】
特定の実施例では、ソースからの第１メッセージデータセット４１０が区別データキュー４３０に格納されているか判断するため、機能冗長性ルールが、区別データキュー４３０を検索するため利用されるかもしれない。ソースからの第１メッセージデータセット４１０が特定された場合、冗長性ルールは、第１メッセージデータセット４１０のタイムスタンプの確認を指示するかもしれない。特定の実施例では、冗長性ルールは、第１メッセージデータセット４１０のタイムスタンプと第２メッセージデータセット４１０のタイムスタンプとの比較を規定するかもしれない。第１データセットのタイムスタンプと第２メッセージデータセット４１０のタイムスタンプとの相違が閾値レベルより大きくない場合、第１メッセージデータセット４１０と第２メッセージデータセット４１０は機能的に冗長であると判断されるかもしれない。
【００８２】
第１データセットと第２データセットが機能的に冗長であると判断された場合、冗長性ルールは、区別データキュー４３０から早い第１メッセージデータセット４１０を排除するかもしれない。その後、冗長性ルールは、遅い第２メッセージデータセット４１０を区別データキュー４３０に追加するかもしれない。一実施例では、冗長性ルールは、区別データキューの送信の順序が変更されないように、第２メッセージデータセット４１０が区別データキュー４３０に追加されることを規定するかもしれない。あるいは、冗長性ルールは、ＦＩＦＯプロトコルにより第２メッセージデータセット４１０を区別データキュー４３０に追加するよう規定するかもしれない。このようにして、冗長でない画像データが、冗長な画像データによるネットワークの負荷なしに宛先に送信される。
【００８３】
特定の実施例では、キュー選択ルール４２０により区別されるメッセージデータ４１０は、メッセージデータ４１０が通信されるまで区別データキュー４３０に配置される。区別データキュー４３０は、データ通信システム４００のユーザにより規定される設定に従ってサイジングされる。この設定は、区別データキュー４３０が使用可能なメモリの最大量を規定するかもしれない。
【００８４】
特定の実施例では、データ通信システム４００は、ネットワークレイヤ４６０により停止が通知されるとき（すなわち、リンク故障）、メッセージデータを排除しない。すなわち、メッセージデータ４１０が低い優先順位であっても、データ通信システム４００により排除されない。むしろ、メッセージデータ４１０は、潜在的には通信される必要のなるデータ通信システム４００により受信されたより高い優先順位のメッセージデータ４１０のデータ量と、リンク故障の期間とに応じて、区別データキュー４３０及び／又はセカンダリストレージ４４０においてある期間だけ遅延されるかもしれない。
【００８５】
特定の実施例では、データ通信システム４００は、ユーザが区別データキュー４３０のオーバフローを許容するセカンダリストレージ４４０の位置と大きさを規定することを可能にする。区別データキュー４３０のメモリが完全に充填された後、メッセージデータ４１０は、セカンダリストレージ４４０にキュー処理され始めるかもしれない。
【００８６】
特定の実施例では、ユーザにより設定されていない場合、セカンダリストレージ４４０が枯渇すると、キュー選択ルール４２０は、区別データキュー４３０の最も古いメッセージ４１０を削除し、エラーメッセージを記録し、最も新しいメッセージ４１０をキュー処理してもよい。エラーメッセージは、例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｓｙｓｔｅｍ  Ｅｖｅｎｔ  Ｌｏｇなどのアプリケーションに記録されるかもしれない。エラーメッセージは、例えば、発生時間などの情報を含むかもしれない。特定の実施例では、ログレベルとログパスが、実行中にユーザによって又はデータ通信システム４００に係る設定ファイルの値を変更することによって編集されるかもしれない。特定の実施例では、データ通信システム４００は、キュー解除されたメッセージデータ４１０を、それがネットワーク上に送信されなかったというインジケータと共にアーカイブ化してもよい。
【００８７】
特定の実施例では、区別データキュー４３０とセカンダリストレージ４４０のメモリが、特定のアプリケーションのリンクベースで設定される。停止が長時間になるほど（すなわち、物理リンクが故障している期間）、停止をサポートするため、区別データキュー４３０とセカンダリストレージ４４０のより大きなメモリが必要とされる。データ通信システム４００は、区別データキュー４３０とセカンダリストレージ４４０が適切にサイジングされ、停止時間が安定状態を実現するのに十分であり、これにより、最終的な区別データキュー４３０及び／又はセカンダリストレージ４４０のオーバフローを回避することを確実にするための理想的なサイジングを特定するため、ネットワークモデリング及びシミュレーションアプリケーションと容易に統合される。
【００８８】
ステップ５３０において、キューシーケンス化ルール４５０は、サービスに供する区別データキュー４３０の次のキューを決定するため適用される。優先順位付けされるメッセージデータ４１０は、例えば、ステップ５１０において受信されたメッセージデータ４１０であるかもしれない。特定の実施例では、ユーザにより規定されたシーケンス化ルール４５０は、通信対象のメッセージデータ４１０を整理及び／又は優先順位付けするかもしれない。特定の実施例では、キューシーケンス化ルール４５０は、メッセージデータ４１０のブロックの優先順位を決定するかもしれない。例えば、メッセージデータ４１０のブロックは、データ通信システム４００の区別データキュー４３０に格納されてもよく、データ通信システム４００の優先順位付けコンポーネントであるキューシーケンス化ルール４５０が、メッセージデータ４１０のブロック及び／又はキュー４３０に対して決定された優先順位に基づき、区別データキュー４３０からメッセージデータ４１０のブロックを抽出するかもしれない。メッセージデータ４１０のブロックの優先順位は、少なくとも部分的にメッセージデータ４１０のブロックに係る及び／又は含まれるプロトコル情報に基づくかもしれない。特定の実施例では、データ通信システム４００は、プロトコルフィルタの一部として実現される。プロトコル情報は、例えば、上述されたプロトコル情報と同様のものであってもよい。例えば、キューシーケンス化ルール４５０は、メッセージデータ４１０のブロックのソースアドレスに基づき、メッセージデータ４１０のブロックの優先順位を決定するかもしれない。他の例として、キューシーケンス化ルールアルゴリズム４５０は、メッセージデータ４１０のブロックを通信するのに利用されるトランスポートプロトコルに基づき、データブロックの優先順位を決定するかもしれない。
【００８９】
メッセージデータ４１０は、少なくとも部分的に１以上のキューシーケンス化ルール４５０に基づき優先順位付けされるかもしれない。上述されるように、キューシーケンス化ルール４５０はユーザにより規定されるかもしれない。特定の実施例では、キューシーケンス化ルール４５０は、例えば、ＸＭＬにより記述されてもよく、及び／又はカスタムＤＬＬを介し提供されてもよい。キューシーケンス化ルール４５０は、例えば、あるプロトコルを用いて通信されるメッセージデータ４１０が、他のプロトコルを利用したメッセージデータ４１０より優先されることを規定するかもしれない。例えば、命令メッセージデータ４１０は、キューシーケンス化ルール４５０を介して、他のプロトコルを用いて送信された位置遠隔測定メッセージデータ４１０より優先されるプロトコルを利用するかもしれない。他の例として、キューシーケンス化ルール４５０は、第１アドレス範囲に送信される位置遠隔測定メッセージデータ４１０が、第２アドレス範囲に送信される位置遠隔測定メッセージデータ４１０より優先されることを規定するかもしれない。第１アドレス範囲は、例えば、実行中のデータ通信システム４００を有する航空機と同じ飛行隊の他の航空機のＩＰアドレスを表すかもしれない。第２アドレス範囲は、例えば、異なる作戦エリアにあって、データ通信システム４００が実行されている航空機に関心の少ない他の航空機のＩＰアドレスを表すかもしれない。
【００９０】
特定の実施例では、キューシーケンス化ルール４５０は、システムの各メッセージ４１０に優先順位番号をマッピングするかもしれない。ユーザにより規定された優先順位番号は、ゼロから区別データキュー４３０のユーザに規定された個数までの範囲の整数であるかもしれない。優先順位番号は、メッセージ４１０が区別データキュー４３０において有する優先レベルに対応するかもしれない。特定の実施例では、最も大きな番号が最も高い優先レベルを有するかもしれない。特定の実施例では、最も高い優先順位のメッセージデータ４１０が、それがデータ通信システム４００に利用可能になるとトランスポートに配置され、より低い優先順位番号のメッセージ４１０は、ユーザにより規定されたキューシーケンス化ルール４５０に応じて、より低い頻度で転送されるかもしれない。
【００９１】
キューシーケンス化ルール４５０によるメッセージデータ４１０の優先順位付けは、例えば、ＱｏＳを提供するのに利用されるかもしれない。例えば、キューシーケンス化ルール４５０は、戦術データネットワークを介し送信されるメッセージデータ４１０の優先順位を決定するかもしれない。この優先順位は、例えば、メッセージデータ４１０のデスティネーションアドレスに基づくかもしれない。例えば、データ通信システム４００が属する小隊と同じ小隊のメンバーの無線へのメッセージデータ４１０のデスティネーションＩＰアドレスには、異なる作戦エリアの異なる部隊のユニットに送信されるデータより高い優先順位が与えられるかもしれない。キューシーケンス化ルール４５０は、複数の区別データキュー４３０の何れがデータ通信システム４００によって以降の通信の具体的な優先順位が割り当てられるか決定するかもしれない。例えば、より高い優先順位のメッセージデータ４１０を保持する区別データキュー４３０には、キューシーケンス化ルール４５０によりより高い優先順位が割り当てられ、さらに次の通信するメッセージデータ４１０を決定するのに、より高い優先順位キューをまず参照するかもしれない。
【００９２】
特定の実施例では、データ通信システム４００は他のアプリケーションに透過である。例えば、データ通信システム４００により実行される処理、整理、優先順位付け及び／又は通信は、１以上の他のアプリケーション又はデータソースに透過であるかもしれない。例えば、データ通信システム４００と同一のシステム上で実行されるアプリケーションは、データ通信システム４００により実行されるメッセージデータ４１０の優先順位付けを認識しないかもしれない。
【００９３】
特定の実施例では、キューシーケンス化ルール４５０は、メッセージデータ４１０を優先順位付けするルールであるかもしれない。例えば、キューシーケンス化ルール４５０は、ユーザにより選択された“モード”に基づき“オン”又は“オフ”と設定されてもよい。上述されるように、データ通信システム４００は、ルール及びモード又はプロファイルを利用して、ネットワークにおける利用可能な帯域幅の最適化、情報優先順位の設定、データリンクの管理などのスループット管理機能を実行するかもしれない。異なるモードは、例えば、ルール、モード及び／又はデータトランスポートの変化に影響を与えるかもしれない。モード又はプロファイルは、特定のネットワーク健全性状態の動作要求に関するルールセットを含むかもしれない。データ通信システム４００は、新たなモードの無線による定義及びスイッチやユーザによるモードの選択などを含むモードの動的な再設定を提供するかもしれない。
【００９４】
一実施例では、選択されたモードがキューシーケンス化ルール４５０のセットを利用する場合、メッセージデータ４１０は、キューシーケンス化ルール４５０に基づき優先順位を決定するため解析されるかもしれない。一実施例では、利用可能なモードは、異なるキューシーケンス化ルール４５０を有するかもしれない。例えば、モードＡはキューシーケンス化ルール４５０の第１セットを有し、モードＢはキューシーケンス化ルール４５０の第２セットを有するかもしれない。キューシーケンス化ルール４５０のセットは、１以上のモードに属するかもしれない。モードは、キューシーケンス化ルール４５０の複数のセットを有するかもしれない。
【００９５】
ステップ５４０において、物理リンクがアクティブでない場合、データ通信システム４００は、リンクの回復を待機する。アドホックネットワークにおけるものなど、しばしば戦術ネットワークリンクは、極めて故障しやすい。これらのケースでは、伝送はある時点で利用可能であり、次に不可となり、その後しばらくして戻るかもしれない。例えば、一部の戦術ネットワークでは、車両は、停止時にのみデータを受信し、移動中は通信不可となる。特定の実施例では、キューシーケンス化アルゴリズム４５０にリンク故障が通知される。リンクが回復すると、キューシーケンス化アルゴリズム４５０にリンクの回復が通知される。
【００９６】
ステップ５５０において、物理リンクがアクティブである場合又はアクティブであるとき、メッセージデータ４１０が通信される。通信されるデータは、例えば、ステップ５１０において受信されたデータであってもよい。通信されるデータは、例えば、ステップ５２０において優先順位付けされたデータであってもよい。データは、例えば、データ通信システム４００から通信されてもよい。データは、例えば、１以上のデスティネーションノードに通信されてもよい。データは、例えば、１以上のリンクを介し通信されてもよい。例えば、データは、データ通信システム４００によって、戦術データネットワークを介し無線に通信されてもよい。他の例として、データは、データ通信システム４００によって、プロセス間通信機構による同一システム上で実行されるアプリケーションに提供されてもよい。
【００９７】
本方法５００の各ステップの１以上は、例えば、ハードウェア、ファームウェア及び／又はソフトウェアによる命令セットとして単独で又は組み合わせて実現可能である。特定の実施例は、汎用コンピュータ又は他の処理装置上で実行するため、メモリ、ハードディスク、ＤＶＤ又はＣＤなどのコンピュータ可読媒体にある命令セットとして提供されるかもしれない。
【００９８】
本発明の特定の実施例は、リストされた順序と異なる順序により各ステップを実行してもよく、及び／又はこれらのステップの１以上を省略してもよい。例えば、いくつかのステップは、本発明の特定の実施例においては実行されないかもしれない。さらなる例として、特定のステップは、上記以外の異なる時間的順序により同時を含み実行されてもよい。
【００９９】
本発明の特定の実施例は、信頼性の低い物理リンクに耐性のあるＱｏＳ機構を提供するシステム及び方法を提供する。特定の実施例は、信頼性の低い物理リンクに耐性のあるＱｏＳ機構の技術的効果を提供する。
【図１】
2009542113.tif 000003
【図２】
2009542113.tif 000004
【図３】
2009542113.tif 000005
【図４】
2009542113.tif 000006
【図５】
2009542113.tif 000007
【手続補正書】
【提出日】平成20年4月14日(2008.4.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フォルトトレラントなＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）データ通信のための方法であって、
少なくとも１つのキュー選択ルールに基づき区別された少なくとも１つのメッセージデータをプライマリストレージに区別するステップと、
前記プライマリストレージが枯渇した場合、前記区別された少なくとも１つのメッセージデータをセカンダリストレージに格納するステップと、
少なくとも１つのキューシーケンス化ルールに基づき、前記少なくとも１つのメッセージデータを優先順位付けするステップと、
少なくとも部分的に前記少なくとも１つのメッセージデータの優先順位付けに基づき、前記少なくとも１つのメッセージデータを通信するステップと、
を有する方法。
【請求項２】
具体的なアプリケーションについてリンク毎にプライマリストレージとセカンダリストレージのメモリを設定するステップとさらに有する、請求項１記載の方法。
【請求項３】
前記優先順位付けするステップと前記通信するステップは、故障したリンクが通知されると停止される、請求項１記載の方法。
【請求項４】
前記優先順位付けするステップと前記通信するステップは、前記故障したリンクが回復されたことを通知されると再開される、請求項３記載の方法。
【請求項５】
前記プライマリストレージと前記セカンダリストレージとが枯渇すると、最も新しい少なくとも１つのメッセージデータのスペースを設けるため、最も古い少なくとも１つのメッセージデータを削除するステップをさらに有する、請求項１記載の方法。
【請求項６】
前記優先順位付けするステップは、アプリケーションプログラムに透過である、請求項１記載の方法。
【請求項７】
フォルトトレラントなＱｏＳデータ通信のためのシステムであって、
少なくとも１つのキュー選択ルールを用いて少なくとも１つのメッセージデータを区別するよう構成される区別コンポーネントと、
前記区別された少なくとも１つのメッセージデータを格納するよう構成されるプライマリストレージコンポーネントと、
前記プライマリストレージが枯渇した場合、前記少なくとも１つのメッセージデータを格納するよう構成されるセカンダリストレージコンポーネントと、
少なくとも１つのキューシーケンス化ルールを用いて前記少なくとも１つのメッセージデータを優先順位付けするよう構成される優先順位付けコンポーネントと、
を有するシステム。
【請求項８】
プライマリストレージとセカンダリストレージは、具体的なアプリケーションについてリンク毎に設定される、請求項７記載のシステム。
【請求項９】
当該システムは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）７レイヤプロトコルモデルのトランスポートレイヤとセッションレイヤとの間で動作する、請求項７記載のシステム。
【請求項１０】
前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントの少なくとも１つは、ユーザにより規定された設定に従ってサイジング及び特定される、請求項７記載のシステム。
【請求項１１】
前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントとが枯渇すると、前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントの少なくとも１つから削除された少なくとも１つのメッセージデータを格納するアーカイブストレージをさらに有する、請求項７記載のシステム。
【請求項１２】
前記少なくとも１つのキューシーケンス化ルールは、少なくとも部分的にプロトコルに基づき、前記少なくとも１つのメッセージデータを優先順位付けする、請求項７記載のシステム。
【手続補正書】
【提出日】平成21年2月17日(2009.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フォルトトレラントなＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）データ通信のための方法であって、
少なくとも１つのキュー選択ルールに基づき区別された少なくとも１つのメッセージデータをプライマリストレージに区別するステップと、
前記プライマリストレージが枯渇した場合、前記区別された少なくとも１つのメッセージデータをセカンダリストレージに格納するステップと、
少なくとも１つのキューシーケンス化ルールに基づき、前記少なくとも１つのメッセージデータを優先順位付けするステップと、
少なくとも部分的に前記少なくとも１つのメッセージデータの優先順位付けに基づき、前記少なくとも１つのメッセージデータを通信するステップと、
具体的なアプリケーションについてリンク毎にプライマリストレージとセカンダリストレージのメモリを設定するステップと、
を有する方法。
【請求項２】
前記優先順位付けするステップと前記通信するステップは、故障したリンクが通知されると停止される、請求項１記載の方法。
【請求項３】
前記優先順位付けするステップと前記通信するステップは、前記故障したリンクが回復されたことを通知されると再開される、請求項２記載の方法。
【請求項４】
前記プライマリストレージと前記セカンダリストレージとが枯渇すると、最も新しい少なくとも１つのメッセージデータのスペースを設けるため、最も古い少なくとも１つのメッセージデータを削除するステップをさらに有する、請求項１記載の方法。
【請求項５】
前記優先順位付けするステップは、アプリケーションプログラムに透過である、請求項１記載の方法。
【請求項６】
フォルトトレラントなＱｏＳデータ通信のためのシステムであって、
少なくとも１つのキュー選択ルールを用いて少なくとも１つのメッセージデータを区別するよう構成される区別コンポーネントと、
前記区別された少なくとも１つのメッセージデータを格納するよう構成されるプライマリストレージコンポーネントと、
前記プライマリストレージが枯渇した場合、前記少なくとも１つのメッセージデータを格納するよう構成されるセカンダリストレージコンポーネントと、
少なくとも１つのキューシーケンス化ルールを用いて前記少なくとも１つのメッセージデータを優先順位付けするよう構成される優先順位付けコンポーネントと、
を有し、
プライマリストレージとセカンダリストレージは、具体的なアプリケーションについてリンク毎に設定されるシステム。
【請求項７】
当該システムは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）７レイヤプロトコルモデルのトランスポートレイヤとセッションレイヤとの間で動作する、請求項６記載のシステム。
【請求項８】
前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントの少なくとも１つは、ユーザにより規定された設定に従ってサイジング及び特定される、請求項６記載のシステム。
【請求項９】
前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントとが枯渇すると、前記プライマリストレージコンポーネントと前記セカンダリストレージコンポーネントの少なくとも１つから削除された少なくとも１つのメッセージデータを格納するアーカイブストレージをさらに有する、請求項６記載のシステム。
【請求項１０】
前記少なくとも１つのキューシーケンス化ルールは、少なくとも部分的にプロトコルに基づき、前記少なくとも１つのメッセージデータを優先順位付けする、請求項６記載のシステム。
【国際調査報告】
2009542113.tif 000008
2009542113.tif 000009
2009542113.tif 000010