(58)【調査した分野】(Int.Cl.,DB名)
前記通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることが、前記第1のエンドポイントデバイス内のエンドポイントバイラルアップグレードモジュールを起動することを含む、請求項1に記載の方法。
前記通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることが、前記第1のエンドポイントデバイスから発信されるIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットを設定するために、前記第1のエンドポイントデバイスをセットアップすることを含む、請求項1に記載の方法。
応答IP通信において応答ベースのアップグレードフラグを設定するために、前記通信ネットワーク内の前記第2のエンドポイントデバイスをセットアップすることが、指定されたバイラルアップグレードビットが、受信したIP通信のIPパケットヘッダ内に設定されているかどうかを識別し、前記指定されたバイラルアップグレードビットが設定されている場合、前記応答IP通信のIPパケットヘッダ内の指定された応答アップグレードビットを設定することによって、前記受信したIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成されたエンドポイントバイラルアップグレードモジュールを用いて、前記第2のエンドポイントデバイスをセットアップすることを含む、請求項1に記載の方法。
プロセッサによって実行可能なコンピュータ実行可能命令を備えるコンピュータプログラムであって、前記命令が、前記プロセッサによって実行されたときに、前記プロセッサに、
第1のエンドポイントデバイスから発信されるインターネットプロトコル(IP)通信がバイラルアップグレードを実行する資格を有している場合に、前記第1のエンドポイントデバイスから発信されるIP通信においてバイラルアップグレードフラグを設定するために、通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることであって、前記第1のエンドポイントデバイスから発信されるIP通信がバイラルアップグレードを実行する資格を有しているか否かは再定義可能である、ことと、
前記第1のエンドポイントデバイスから発信されたIP通信に応答する応答IP通信において応答ベースのアップグレードフラグを設定するために、前記通信ネットワーク内の第2のエンドポイントデバイスをセットアップすることと、
前記通信ネットワーク内のルータを、
応答ベースのアップグレードについてのフラグが前記応答IP通信において立てられているのを識別し、
前記第1のエンドポイントデバイスに関連するバイラルアップグレードプライオリティレベルになるようにプライオリティレベルを前記応答IP通信に割り当て、
前記バイラルアップグレードプライオリティレベルに対応するルータプライオリティ転送待ち行列に前記応答IP通信を入れるために、
セットアップすることと、
を行わせることによって、前記通信ネットワークが前記IP通信のプライオリティレベルのバイラルアップグレードを実行することを可能にする、コンピュータプログラム。
前記通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることが、前記第1のエンドポイントデバイス内のエンドポイントバイラルアップグレードモジュールを起動することを含む、請求項6に記載のコンピュータプログラム。
応答IP通信において応答ベースのアップグレードフラグを設定するために、前記通信ネットワーク内の前記第2のエンドポイントデバイスをセットアップすることが、指定されたバイラルアップグレードビットが、受信したIP通信のIPパケットヘッダ内に設定されているかどうかを識別し、前記指定されたバイラルアップグレードビットが設定されている場合、前記応答IP通信のIPパケットヘッダ内の指定された応答アップグレードビットを設定することによって、前記受信したIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成されたエンドポイントバイラルアップグレードモジュールを用いて、前記第2のエンドポイントデバイスをセットアップすることを含む、請求項6に記載のコンピュータプログラム。
通信ネットワークがインターネットプロトコル(IP)通信のプライオリティレベルのバイラルアップグレードを実行することを可能にするように構成されたコンピューティングデバイスであって、
プロセッサと、
メモリと、
前記プロセッサによって実行可能な、前記メモリ内のエンドポイントバイラルアップグレードモジュールであって、前記エンドポイントバイラルアップグレードモジュールが、
第1のエンドポイントデバイスから発信されるIP通信がバイラルアップグレードを実行する資格を有している場合に、前記第1のエンドポイントデバイスから発信されるIP通信においてバイラルアップグレードフラグを設定するために、前記通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることであって、前記第1のエンドポイントデバイスから発信されるIP通信がバイラルアップグレードを実行する資格を有しているか否かは再定義可能である、ことと、
前記第1のエンドポイントデバイスから発信されたIP通信に応答する応答IP通信において応答ベースのアップグレードフラグを設定するために、前記通信ネットワーク内の第2のエンドポイントデバイスをセットアップすることと、
前記通信ネットワーク内のルータを、
応答ベースのアップグレードについてのフラグが前記応答IP通信において立てられているのを識別し、
前記第1のエンドポイントデバイスに関連するバイラルアップグレードプライオリティレベルになるようにプライオリティレベルを前記応答IP通信に割り当て、
前記バイラルアップグレードプライオリティレベルに対応するルータプライオリティ転送待ち行列に前記応答IP通信を入れるために、
セットアップすることと、
を行うように構成される、エンドポイントバイラルアップグレードモジュールと、
を備えるコンピューティングデバイス。
前記通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることが、前記第1のエンドポイントデバイス内のエンドポイントバイラルアップグレードモジュールを起動することを含む、請求項11に記載のコンピューティングデバイス。
前記通信ネットワーク内の前記第1のエンドポイントデバイスをセットアップすることが、前記第1のエンドポイントデバイスから発信されるIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットを設定するために、前記第1のエンドポイントデバイスをセットアップすることを含む、請求項11に記載のコンピューティングデバイス。
応答IP通信において応答ベースのアップグレードフラグを設定するために、前記通信ネットワーク内の前記第2のエンドポイントデバイスをセットアップすることが、指定されたバイラルアップグレードビットが、受信したIP通信のIPパケットヘッダ内に設定されているかどうかを識別し、前記指定されたバイラルアップグレードビットが設定されている場合、前記応答IP通信のIPパケットヘッダ内の指定された応答アップグレードビットを設定することによって、前記受信したIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成されたエンドポイントバイラルアップグレードモジュールを用いて、前記第2のエンドポイントデバイスをセットアップすることを含む、請求項11に記載のコンピューティングデバイス。
【発明を実施するための形態】
【0012】
以下の詳細な説明では、本明細書の一部を形成する添付の図面を参照する。図面では、文脈からそうではないと分かる場合を除いて、一般に、同様の記号は、同様の構成要素を識別する。詳細な説明、図面、および特許請求の範囲において説明される例示的な実施形態は、限定的であることを意図していない。本明細書で提示される本発明の主旨または範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を施すことができる。本明細書で一般的に説明され、図に示されるような、本開示の態様は、多種多様な異なる構成で配置、置換、結合、および設計することができ、それらのすべてが本明細書において明示的に企図されており、本開示の部分となることが容易に理解されよう。
【0013】
本開示は、一般に、とりわけ、バイラルサービス品質アップグレードに関する方法、デバイス、および/またはシステムに関する。バイラルサービス品質アップグレードは、プライオリティ通信を転送するデバイスにプライオリティ通信が「感染」することで、その後、転送デバイスがプライオリティ通信に応答する通信のプライオリティレベルをアップグレードできるアーキテクチャを使用して、プライオリティ通信に応答する通信のアップグレードを可能にする。いくつかの実施形態では、バイラルサービス品質アップグレードは、差別化QoSをサポートするための比較的オーバヘッドが低い手法を提供しつつ、通信フローについてのエンドツーエンドQoSを保証することに関連するネットワークオーバヘッドを招かずに、通信フローについてのQoSを同時にサポートする。
【0014】
図1は、本開示の少なくともいくつかの実施形態による、バイラルQoSアップグレードを実施するように構成された例示的な通信ネットワーク100を示す図である。
図1は、高プライオリティ移動局エンドポイント101と、ルータ103を含む基地局102と、ルータ104と、ルータ105と、ルータ106と、ルータ108を含む基地局107と、低プライオリティ移動局エンドポイント109とを含む。アウトバウンド通信経路111は、高プライオリティ移動局エンドポイント101から始まり、基地局102およびルータ103、ルータ104、ルータ105、ルータ106、基地局107およびルータ108と辿って、低プライオリティ移動局エンドポイント109で終わる。インバウンド通信経路112は、低プライオリティ移動局エンドポイント109から始まり、基地局107およびルータ108、ルータ106、ルータ104、基地局102およびルータ103と辿って、低プライオリティ移動局エンドポイント101で終わる。
図1では、通信経路111および通信経路112沿いの構成要素は、1つの構成要素から次の構成要素への通信データの伝送を可能にする有線または無線通信接続によって結合される。
【0015】
図1では、高プライオリティ移動局エンドポイント101は、たとえば、エンドポイント101から発信される通信に、応答通信のバイラルアップグレードを行う資格を与えられたプライオリティ通信であるとして、フラグを立て、プライオリティ通信を通信ネットワーク100を介して低プライオリティ移動局エンドポイント109に送信するように構成することができる。通信ネットワーク100は、プライオリティ通信を基地局102において受信し、プライオリティ通信をアウトバウンド通信経路111に沿って低プライオリティ移動局エンドポイント109まで転送する。通信経路111内のルータ103、104、105、106、108の各々は、プライオリティ通信のQoSを適切に優先し、プライオリティ通信が応答通信のバイラルアップグレードを行う資格を与えられていることを識別し、ルータが後で応答通信を識別し、優先することを可能にする情報を記録するように構成することができる。低プライオリティ移動局エンドポイント109は、プライオリティ通信が応答通信のバイラルアップグレードを行う資格を与えられていることを識別し、受信したプライオリティIP通信に応答する通信において応答ベースのアップグレードについてのフラグを立て、応答通信を通信ネットワーク100を介して高プライオリティ移動局エンドポイント101に送信するように構成することができる。通信ネットワーク100は、応答通信を基地局107において受信し、応答通信をインバウンド通信経路112に沿って高プライオリティ移動局エンドポイント101まで転送するように構成することができる。通信経路112内のルータ108、106、104、103の各々は、応答通信が応答ベースのアップグレードを行う資格を与えられていることを識別し、応答通信のQoSプライオリティレベルを、プライオリティ通信がバイラルアップグレードを行う資格を与えられたレベルまでアップグレードするように構成することができる。
【0016】
いくつかの実施形態では、インバウンド通信経路112は、
図1に示されるように、アウトバウンド通信経路111内に存在するルータだけを通過することができる。この場合、通信経路112内のルータのすべては、バイラルアップグレードを実行することができ、それによって、応答通信のプライオリティレベルを高めることができる。いくつかの実施形態では、インバウンド通信経路112は、アウトバウンド通信経路111内に存在しない、またはさもなければ、本明細書で説明するようなバイラルアップグレードを実行するようには構成されていない、ルータを通過することができる。この場合、通信経路112内のルータのいくつかは、バイラルアップグレードを実行することができず、応答通信のプライオリティレベルを高めることができない。それにもかかわらず、アウトバウンド通信経路111内に存在し、したがって、応答通信のバイラルアップグレードを実行するルータの集団的なアクションだけでも、応答通信のQoSの向上を適切に保証するのに十分なことがある。
【0017】
図2は、本開示の少なくともいくつかの実施形態に従って構成された、エンドポイントの一例としてのコンピューティングデバイス200のブロック図である。コンピューティングデバイス200は、モバイルフォンなど、フォームファクタが小さいポータブル(またはモバイル)電子デバイスの一部として実施することができる。コンピューティングデバイス200は、ラップトップコンピュータと非ラップトップコンピュータの両方を含むパーソナルコンピュータとして実施することもできる。非常に基本的な構成201においては、コンピューティングデバイス200は、1つまたは複数のプロセッサ210と、システムメモリ220とを含むことができる。メモリバス230は、プロセッサ210とシステムメモリ220の間で通信するために使用することができる。
【0018】
所望の構成に応じて、プロセッサ210は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組合せを含むが、それらに限定されない、任意のタイプを取ることができる。プロセッサ210は、レベル1キャッシュ211およびレベル2キャッシュ212などの1つまたは複数のレベルのキャッシングと、プロセッサコア213と、レジスタ214とを含むことができる。プロセッサコア213は、算術論理演算ユニット(ALU)、浮動小数点ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはそれらの任意の組合せを含むことができる。メモリコントローラ215も、プロセッサ210とともに使用することができ、またはいくつかの実施では、メモリコントローラ215は、プロセッサ210の内部部品とすることができる。
【0019】
所望の構成に応じて、システムメモリ220は、(RAMなどの)揮発性メモリ、(ROM、フラッシュメモリなどの)不揮発性メモリ、またはそれらの任意の組合せを含むが、それらに限定されない、任意のタイプを取ることができる。システムメモリ220は、一般に、オペレーティングシステム221と、1つまたは複数のアプリケーション222と、プログラムデータ225とを含むことができる。アプリケーション222は、たとえば、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223を含むことができる。プログラムデータ225は、モジュール223によって使用できるエンドポイントバイラルアップグレードデータ226を含むことができる。いくつかの実施形態では、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、理解されるように、オペレーティングシステム221内、または(1つまたは複数の)通信デバイス280内に配置することができる。
【0020】
コンピューティングデバイス200が、
図1に示される高プライオリティ移動局エンドポイント101など、バイラルアップグレード特権を与えられた高プライオリティエンドポイントとして機能する場合、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、プライオリティエンドポイントデバイスから発信されたIP通信においてバイラルアップグレードフラグを設定するように構成することができる。たとえば、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、アウトバウンドIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットを設定することによって、バイラルアップグレードを行う資格を与えられたプライオリティIP通信として、アウトバウンドIP通信においてフラグを立てるように構成することができる。いくつかの実施形態では、指定されたバイラルアップグレードビットは、IPヘッダの差別化サービスフィールド内の1つまたは複数のビットを含むことができる。いくつかの実施形態では、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、デバイス200において受信したセットアップ命令に基づいて、起動および/または停止することができる。たとえば、(1つまたは複数の)モジュール223は、加入者がモバイル通信プランにバイラルアップグレードサービスを追加した後、発信通信においてバイラルアップグレードフラグを設定するために起動することができ、加入者がモバイル通信プランからバイラルアップグレードサービスを外した場合、(バイラルアップグレードフラグの設定を中止するために)停止することができる。
【0021】
コンピューティングデバイス200が、
図1に示される高プライオリティ移動局エンドポイント101および/または低プライオリティ移動局エンドポイント109など、任意のエンドポイントとして機能する場合、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが受信したプライオリティIP通信において立てられているかどうかを識別し、受信したプライオリティIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成することができる。(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、たとえば、受信したプライオリティIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットを検査することによって、応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが、受信したプライオリティIP通信において立てられているかどうかを識別するように構成することができる。(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223は、たとえば、初期プライオリティ通信においてフラグを立てるために使用されるビットとは異なるビットとすることができる、たとえばIPヘッダの差別化サービスフィールド内の1つまたは複数のビットなどの、応答IP通信のIPパケットヘッダ内の指定された応答アップグレードビットを設定することによって、受信したプライオリティIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成することができる。
【0022】
いくつかの実施形態では、(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223、またはその部分、すなわち、高プライオリティエンドポイントがバイラルアップグレードフラグを設定することを可能にする部分は、上で説明したようなリモート起動/セットアップのために構成することができる。たとえば、現在はバイラルアップグレードに対する権利を与えられていない加入者は、加入者のモバイル通信プランのための機能として、バイラルアップグレードを追加することを望むことができる。ネットワークサービスプロバイダは、アウトバウンド通信におけるバイラルアップグレードフラグの設定を開始するために、加入者のモバイルフォン内の(1つまたは複数の)エンドポイントバイラルアップグレードモジュール223をリモートで起動することができる。
【0023】
コンピューティングデバイス200は、追加の特徴または機能、ならびに基本構成201と任意の必要なデバイスおよびインタフェースの間の通信を円滑化するための追加のインタフェースを有することができる。たとえば、バス/インタフェースコントローラ240は、ストレージインタフェースバス241を介する、基本構成201と1つまたは複数のデータ記憶装置250の間の通信を円滑化するために使用することができる。データ記憶装置250は、取外し式記憶装置251、非取外し式記憶装置252、またはそれらの組合せとすることができる。取外し式記憶装置および非取外し式記憶装置の例は、いくつかの名前を挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスク装置、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、ならびにテープドライブを含む。例示的なコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性および不揮発性の取外し式および非取外し式媒体を含むことができる。
【0024】
システムメモリ220、取外し式ストレージ251、および非取外し式ストレージ252はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用でき、コンピューティングデバイス200によってアクセスできる他の任意の媒体を含むが、それらに限定されない。そのようなコンピュータ記憶媒体はいずれも、デバイス200の一部とすることができる。
【0025】
コンピューティングデバイス200は、バス/インタフェースコントローラ240を介する、様々なインタフェース装置(たとえば、出力インタフェース、周辺インタフェース、および通信インタフェース)から基本構成201への通信を円滑化するための、インタフェースバス242も含むことができる。例示的な出力装置260は、1つまたは複数のA/Vポート263を介してディスプレイまたはスピーカなどの様々な外部装置と通信するように構成できる、グラフィックス処理ユニット261およびオーディオ処理ユニット262を含む。例示的な周辺インタフェース270は、1つまたは複数のI/Oポート273を介して入力装置(たとえば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など)または他の周辺装置(たとえば、プリンタ、スキャナなど)などの外部装置と有線または無線接続を介して通信するように構成できる、シリアルインタフェースコントローラ271またはパラレルインタフェースコントローラ272を含むことができる。マウスおよびキーボードなどの他の従来のI/O装置も同様に接続することができる。例示的な通信装置280は、1つまたは複数の通信ポート282を介する、ネットワーク通信による、たとえば、
図1に示される基地局107および/もしくは102またはインターネットサービスプロバイダ(ISP)サーバなどのサーバなど、1つまたは複数の他のコンピューティングデバイス290との通信を円滑化するように構成できる、ネットワークコントローラ281を含む。
【0026】
コンピュータ記憶媒体は、通信媒体の一例とすることができる。通信媒体は、搬送波または他のトランスポートメカニズムなどの変調データ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって一般に具現することができ、任意の情報配送媒体を含むことができる。「変調データ信号」は、情報を信号内に符号化するような方法で、その特性の1つまたは複数が設定または変更された信号とすることができる。限定することなく、例を挙げると、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響、無線周波(RF)、赤外線(IR)、および他の無線媒体などの無線媒体を含むことができる。
【0027】
図3は、本開示の少なくともいくつかの実施形態に従って構成された、エンドポイントデバイスによって実行され得る例示的な方法を示すフロー図である。例示的なフロー図は、ブロック301〜306によって示されるような1つまたは複数の動作/モジュールを含むことができ、それらは、方法において実行され得るような動作、デバイス200内の機能モジュール、および/またはコンピュータ可読媒体350上に記録され得る命令を表す。示されたブロック301〜306は、ブロック301の「IP通信を受信する」、ブロック302の「バイラルアップグレードビットを検査する」、ブロック303の「バイラルアップグレードビットは設定されているか?」、ブロック304の「応答IP通信において応答アップグレードビットを設定する」、ブロック305の「応答アップグレードビットなし」、および/またはブロック306の「応答IP通信を送信する」のうちの1つまたは複数を含む機能的動作を提供するように構成することができる。
【0028】
図3では、ブロック301〜303は、順番に実行されるブロックとして示されており、ブロック304〜305は、それぞれ、ブロック303の「はい」と「いいえ」の結果に応じた二者択一ブロックとして示されており、ブロック306は、ブロック304が実行されたか、それともブロック305が実行されたかにかかわらず、順番における最終ブロックとして示されている。しかし、都合に応じて特定の実施形態に適するようにブロックを並べ替えることができ、いくつかの実施形態ではブロックまたはその部分を同時に実行することができることが理解されよう。いくつかの例では、様々なブロックを除去すること、さらなるブロックに分割すること、および/または他のブロックと組み合わせることができることも理解されよう。
【0029】
図3は、通信ネットワーク内のエンドポイントとしてIPパケットを送信および受信するように構成されたコンピューティングデバイスが、バイラルアップグレードについてのフラグが立てられた通信に応答する通信においてフラグを立てることができ、それによって、応答通信が、通信ネットワークによって、引き上げられたプライオリティレベルを用いて処理され得る、例示的な方法を示している。
【0030】
ブロック301「IP通信を受信する」において、IP通信が、デバイス200によって受信される。IP通信は、1つまたは複数のIPパケットを含むことができ、一般に、各IPパケットは、ヘッダおよびペイロードを含む。ヘッダは、たとえばIPv4またはIPv6などの、適用可能なIP仕様に規定されているような様々な情報を含む。ブロック301には、ブロック302が続くことができる。
【0031】
ブロック302「バイラルアップグレードビットを検査する」において、受信したIP通信に関連するIPパケットヘッダの1つまたは複数を、指定されたバイラルアップグレードビットの状態に関して検査することができる。たとえば、IPヘッダの差別化サービスフィールド内のビットのうちの1つまたは複数を、バイラルアップグレードビットとして指定することができ、指定されたビットを検査することができる。ブロック302には、ブロック303が続くことができる。
【0032】
ブロック303「バイラルアップグレードビットは設定されているか?」において、1つまたは複数のバイラルアップグレードビットの状態が決定される。エンドポイントバイラルアップグレードモジュールは、応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが、受信したプライオリティIP通信において立っているかどうかを識別するように構成することができる。いくつかの実施形態では、バイラルアップグレードビットの状態は、「はい」または「いいえ」のどちらかとすることができ、「はい」は、受信したIP通信が、応答通信に応答ベースのアップグレードを行う資格を与えるバイラルアップグレード特権を有することを示し、「いいえ」は、バイラルアップグレード特権がないことを示す。いくつかの実施形態では、たとえば、バイラルアップグレード特権に関連するプライオリティレベル、および/または応答ベースのアップグレードを利用するためにデバイス200が満たさなければならない条件など、さらなる情報を提供するために、複数のバイラルアップグレードビットを使用することができる。ブロック303には、ブロック304またはブロック305が続くことができる。
【0033】
ブロック304「応答IP通信において応答アップグレードビットを設定する」において、エンドポイントバイラルアップグレードモジュールは、受信したプライオリティIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成することができる。ブロック304は、ブロック303における「はい」判定に応答して実行することができる。応答IP通信においてフラグを立てるため、受信したIP通信に応答する通信において、指定された応答アップグレードビットを設定することができる。デバイスによって複数の通信が同時に送信される場合、どのIP通信がバイラルアップグレード特権を有する通信に応答するものかを決定することができる。いくつかの実施形態では、これは、バイラルアップグレード特権を有するエンドポイントの宛先アドレスを識別するデータを通して達成することができる。バイラルアップグレード特権を有するエンドポイントを宛先とするIPパケットに対して、応答アップグレードビットを設定することができる。応答アップグレードビットを設定するため、応答通信に関連するIPパケットヘッダの、たとえば差別化サービスフィールド内の1つまたは複数の指定されたビットを、IPパケットに応答ベースのアップグレードについての標識が施されていることを示すために事前決定しておいた状態に設定することができる。ブロック304には、ブロック306が続くことができる。
【0034】
ブロック305「応答アップグレードビットなし」において、ブロック303における「いいえ」判定に応答して、受信したIP通信に応答する通信において、指定された応答アップグレードビットを設定することはされない。たとえば、IPパケットヘッダの差別化サービスフィールド内の1つまたは複数のビットを、IPパケットに応答ベースのアップグレードを行う資格を与えないことを示すために事前決定しておいた状態に設定することができ、および/またはそのような状態のままにしておくことを可能にすることができる。ブロック305には、ブロック306が続くことができる。
【0035】
ブロック306「応答IP通信を送信する」において、応答通信に対応するIPパケットを、通信ネットワークに送信して、宛先に転送することができる。IPパケットは、通信ネットワークによって、1つまたは複数のバイラルアップグレードビットの状態に応じて選択的にアップグレードプライオリティレベルを用いて処理することができる。
【0036】
図3の方法は、すべての実施形態において実施する必要はない。本明細書で説明するように、いくつかの実施形態では、通信ネットワーク内のルータなどのデバイスは、応答ベースのアップグレードを行う資格を与えられた応答通信を識別するために、応答アップグレードビット以外の情報を使用することによって、応答アップグレードビットの助けを借りずに、応答通信を識別するように構成することができる。たとえば、すべてのIPパケットヘッダは、送信元識別子および宛先識別子を含み、いくつかの実施形態では、応答ベースのアップグレードの対象となる応答通信を識別するために、送信元識別子および宛先識別子を使用することができる。
【0037】
図4は、本開示の少なくともいくつかの実施形態に従って構成された、バイラルアップグレードについてのフラグが立てられたIPパケットを受信したときの、ルータなどの通信ネットワークデバイス400の例示的な動作を示す図である。
図4は、先行デバイス460と、ルータ400と、後続デバイス470とを示している。ルータ400は、受信したIPパケットヘッダ410と、バイラルアップグレードモジュール420と、バイラルアップグレードテーブル430と、QoSプライオリティ決定モジュール440と、転送待ち行列451、452、453とを備える。IPパケットヘッダ410は、バイラルアップグレードビット411と、プライオリティレベル情報412と、フロー情報413とを含む。バイラルアップグレードテーブル430は、フロー情報の列と、プライオリティレベル情報の列とを含む。デバイス460、400、470は、一般に、
図2に示されるようなコンピューティングデバイス200の任意の構成要素を備えることができ、バイラルアップグレードモジュール420およびバイラルアップグレードテーブル430が付加された、通信ネットワーク内のルータまたは他のデバイスとして構成することができる。
【0038】
全体として、
図4は、通信ネットワーク内の先行デバイス460から、IPパケットおよび対応するIPパケットヘッダ410を受信する、ルータ400を示している。ルータ400は、通信ネットワーク内のいくつかの後続デバイス470にIPパケットを適切に転送するように構成することができる。ルータは、たとえば、QoSプライオリティ決定モジュール440の動作によって、IPパケットを適切な転送待ち行列451、452、または453に入れるために、プライオリティレベル情報412を使用するように構成することができる。待ち行列451への実線は、たとえば、IPパケットを転送待ち行列451に割り当てることができることを示しており、一方、待ち行列452および453への破線は、QoSプライオリティ決定モジュール440が、適切な場合には、待ち行列452および453への割り当ての選択肢も有することを示している。バイラルアップグレードモジュール420は、バイラルアップグレードについてのフラグがIPパケットにおいて立てられていることを、たとえばバイラルアップグレードビット411を読み取ることによって発見した場合、ヘッダ410に関連する通信に応答する通信のプライオリティレベルを識別し、設定する際に、後で使用するため、フロー情報およびプライオリティレベル情報をバイラルアップグレードテーブル430内に記録すること、または書き込むことができる。
【0039】
より具体的には、
図4は、IPパケットヘッダ410を含む初期プライオリティIP通信に応答する応答IP通信のプライオリティレベルのバイラルアップグレードを実行するように構成されたルータ400を提供する。ルータ400は、複数の異なるプライオリティレベルに関連する複数の転送待ち行列441、442、443を備え、たとえば、待ち行列441は、最高のQoSプライオリティレベルに関連し、待ち行列442は、中間のQoSプライオリティレベルに関連し、待ち行列443は、最低のQoSプライオリティレベルに関連する。ルータ400は、IPパケットヘッダ410に関連するパケットなど、ルータ400によって転送されるIPパケットのプライオリティレベルを決定し、対応する転送待ち行列にIPパケットを入れるように構成される。適切な転送待ち行列へのIPパケットの割り当ては、たとえば、QoSプライオリティ決定モジュール440によって達成することができる。いくつかの実施形態では、バイラルアップグレードモジュール420は、本開示の助けを受けて理解されるように、QoSプライオリティ決定モジュール440内に含めることができる。
【0040】
ルータ400は、たとえばIPパケットヘッダ410内に設定された指定されたバイラルアップグレードビットの使用を通して、初期プライオリティIP通信、たとえばIPパケットヘッダ410を含む通信などにおいて、応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが立てられているかどうかを識別するように構成された、バイラルアップグレードモジュール420をさらに備えることができる。バイラルアップグレードビットが設定されている場合、バイラルアップグレードモジュール420は、それに応答して、フロー情報413およびプライオリティレベル情報412をバイラルアップグレードテーブル430内に記録するように構成することができる。バイラルアップグレードテーブル430は、初期プライオリティIP通信、たとえばIPパケットヘッダ410を含む通信などからのフロー情報と、バイラルアップグレードプライオリティレベル情報とを記録するように構成されたデータ構造を備えることができる。
【0041】
フロー情報は、応答IP通信を決定するように構成された任意の情報を含むことができる。いくつかの実施形態では、フロー情報は、IPパケットヘッダ410からの送信元アドレスおよび/または宛先アドレスを含むことができる。いくつかの実施形態では、フロー情報は、IPパケットヘッダ410からのフローラベルを含むことができる。利用可能なフロー情報は、どのバージョンのインターネットプロトコル(IP)が実施されるかに依存し得る。たとえば、フローラベルは、IPバージョン4(IPv4)のパケットヘッダの一部ではなく、そのため、IPv4のパケットヘッダを用いて動作するように構成された実施形態では、好ましくは他の情報に依存することができる。フローラベルは、近い将来に支配的なプロトコルになると予測されるIPバージョン6(IPv6)のパケットヘッダのために使用され、そのため、IPv6のパケットヘッダを用いて動作するように構成された実施形態では、フローラベルがフロー情報についての適切な選択となり得る。
【0042】
バイラルアップグレードプライオリティレベル情報は、応答IP通信のためのバイラルアップグレードプライオリティレベルを決定するように構成された任意の情報を含むことができる。いくつかの実施形態では、バイラルアップグレードプライオリティレベル情報は、初期プライオリティIP通信のIPパケットヘッダ410に関連するIPパケットのプライオリティレベルを含むことができる。バイラルアップグレードプライオリティレベルは、IPパケットヘッダ410において指定される、またはルータ400によって、たとえばQoSプライオリティ決定モジュール440によって指定される、いくつかの異なるプライオリティレベルとすることも可能である。
【0043】
図5は、本開示の少なくともいくつかの実施形態に従って構成された、応答ベースのアップグレードについてのフラグが立てられたIPパケットを受信したときの、ルータなどの通信ネットワークデバイス400の例示的な動作を示す図である。
図5は、受信したIPパケットヘッダ410を例外として、
図4の構成要素を示している。受信したIPパケットヘッダ410の代わりに、応答アップグレードビット511と、ネイティブプライオリティレベル情報512と、フロー情報513とを含む、受信したIPパケットヘッダ510が存在する。
【0044】
図5は、ヘッダ410を含む通信に応答する、IPパケットヘッダ510を含むIP通信を受信したときの、ルータ400を示している。いくつかの実施形態では、バイラルアップグレードモジュール420は、IP通信において応答ベースのアップグレードについてのフラグが立てられているかどうかを識別することによって、IP通信が応答IP通信であるかどうかを識別するように構成することができる。これは、たとえば、IP通信のIPパケットヘッダ510内の指定された応答アップグレードビットを検査または読み取ることによって達成することができる。応答アップグレードビットが設定されている場合、バイラルアップグレードモジュール420は、バイラルアップグレードテーブル430によって表されるデータ構造内に記録されたフロー情報およびバイラルアップグレードプライオリティレベルを使用して、応答IP通信にプライオリティレベルを割り当てるように構成することができる。バイラルアップグレードモジュール420は、応答IP通信からのフロー情報をデータ構造内のフロー情報と照合するように構成することができる。いくつかの実施形態では、バイラルアップグレードモジュール420は、バイラルアップグレードテーブル430内のフロー情報513を検索することができる。バイラルアップグレードテーブル430内にフロー情報513が見つかった場合、見つからなければQoSプライオリティ決定モジュール440において行われたであろうプライオリティレベル割り当てをオーバライドするために、対応するプライオリティレベル情報を使用することができる。ルータ400は、データ構造430からのバイラルアップグレードプライオリティレベルを応答IP通信に割り当てるように構成することができ、それによって、ルータは、応答IP通信を、バイラルアップグレードプライオリティレベルのプライオリティレベルに対応する451などのプライオリティ転送待ち行列に入れる。
【0045】
いくつかの実施形態では、バイラルアップグレードテーブル430は、フロー情報およびバイラルアップグレードプライオリティレベル情報に加えて、IPヘッダ410を含む通信などの初期プライオリティIP通信の時刻を記録するように構成することができる。ルータ400は、所定の存続期間よりもエントリが古くなった場合、バイラルアップグレードテーブル430からエントリを削除するように構成することができる。エントリの削除は、バイラルアップグレードテーブル430または他のデータ構造を小さく維持することができ、それによって、テーブル検索に伴うオーバヘッドを低減することができる。ルータは、応答ベースのアップグレードについてのフラグが立てられているが、対応するフロー情報をデータ構造が含んでいないIP通信に、ネイティブプライオリティレベルを割り当てるように構成することができる。
【0046】
いくつかの実施形態では、511などの応答アップグレードビットの使用を必要としないアーキテクチャを利用することができる。代わりに、IPパケットを以前のIP通信に応答するものとして識別するいずれかの情報が、430などのデータ構造内のバイラルアップグレードプライオリティ情報の検索をトリガすることができる。たとえば、受信したIPパケットの送信元アドレスおよび宛先アドレスを、先に転送されたパケットから記録された情報と照合する検査を行うことができる。送信元アドレスが先の宛先アドレスと、また宛先アドレスが先の送信元アドレスと一致した場合は常に、応答パケットのバイラルアップグレードを実施するために、先のIPパケットから記録された対応するプライオリティレベル情報を使用することができる。IPパケットがIPv6を実施する場合、応答IPパケットを識別するために、フローラベル情報も使用することができる。
【0047】
図6は、本開示の少なくともいくつかの実施形態に従って構成された、ネットワーク通信デバイス400によって実行され得る例示的な方法を示すフロー図である。例示的なフロー図は、ブロック601〜606によって示されるような1つまたは複数の動作/モジュールを含むことができ、それらは、方法において実行され得るような動作、デバイス400内の機能モジュール、および/またはコンピュータ可読媒体600上に記録され得る命令を表す。示されたブロック601〜606は、ブロック601の「初期IP通信を受信する」、ブロック602の「バイラルアップグレードビットを検査する」、ブロック603の「フロー情報およびバイラルアップグレードプライオリティレベル情報を記録する」、ブロック604の「応答IP通信を受信する」、ブロック605の「応答アップグレードビットを検査する」、および/またはブロック606の「記録されたプライオリティレベル情報を応答IP通信に割り当て、応答IP通信を対応するプライオリティ待ち行列に入れる」のうちの1つまたは複数を含む機能的動作を提供するように構成することができる。
【0048】
図6では、ブロック601〜606は、ブロック601を先頭、ブロック606を末尾として、順番に実行されるように示されている。しかし、都合に応じて特定の実施形態に適するようにこれらのブロックを並べ替えることができ、いくつかの実施形態ではこれらのブロックまたはその部分を同時に実行することができることが理解されよう。いくつかの例では、様々なブロックを除去すること、さらなるブロックに分割すること、および/または他のブロックと組み合わせることができることも理解されよう。
【0049】
図6は、初期プライオリティIP通信に応答する応答インターネットプロトコル(IP)通信のプライオリティレベルのバイラルアップグレードを実行するように構成された例示的な方法を示している。
【0050】
ブロック601「初期IP通信を受信する」において、
図4および
図5に示されるようなルータなどのデバイス400において、1つまたは複数のIPパケットを含む初期IP通信を受信することができる。デバイス400は、適切なQoSプライオリティレベルでIPパケットを後続デバイスに転送するように構成することができ、さらに、本明細書で説明されるような、応答通信をアップグレードするためのバイラルアップグレード技術を実施することができる。ブロック601には、ブロック602が続くことができる。
【0051】
ブロック602「バイラルアップグレードビットを検査する」において、ルータ400は、応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが初期プライオリティIP通信において立てられているかどうかを識別するように構成することができる。応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが初期プライオリティIP通信において立てられているかどうかを識別することは、初期プライオリティIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットを検査することを含むことができる。いくつかの実施形態では、指定されたバイラルアップグレードビットは、受信したすべてのIPパケットについて検査することができる。指定されたバイラルアップグレードビットが設定されている場合、ブロック603が実行される。設定されていない場合、受信したIPパケットからの情報は、記録する必要がない。ブロック602には、ブロック603が続くことができる。
【0052】
ブロック603「フロー情報およびバイラルアップグレードプライオリティレベル情報を記録する」において、デバイス400は、初期プライオリティIP通信からのフロー情報をデータ構造内に記録することであって、フロー情報が応答IP通信を決定するように構成される、記録することと、バイラルアップグレードプライオリティレベル情報をデータ構造内に記録することであって、バイラルアップグレードプライオリティレベルが応答IP通信のためのバイラルアップグレードプライオリティレベルを決定するように構成される、記録することとを行うように構成することができる。いくつかの実施形態では、フロー情報は、フローラベル、初期プライオリティIP通信の送信元IPアドレス、および初期プライオリティIP通信の宛先IPアドレスのうちの1つまたは複数を含むことができる。いくつかの実施形態では、バイラルアップグレードプライオリティレベル情報は、初期プライオリティIP通信のプライオリティレベルを含むことができる。いくつかの実施形態では、デバイス400は、初期プライオリティIP通信の時刻も記録し、所定の存続期間よりもエントリが古くなった場合、データ構造からエントリを削除するように構成することができる。この構成は、データ構造が大きくなるのを防止することができる。データ構造のサイズは、たとえば、エントリの存続期間および削除について適切な方針を設定することによって管理することができる。データ構造の許容できるサイズは、短い検索時間を目標とする場合、処理能力およびキャッシュサイズに応じて変化し得る。ブロック603には、ブロック604が続くことができる。
【0053】
ブロック604「応答IP通信を受信する」において、初期IP通信を受信した後しばらくしてから、1つまたは複数の応答IPパケットを含む応答IP通信をデバイス400において受信することができる。デバイス400は、以下で説明するようにデータ構造内に記録された情報を参照して決定することができる、適切なQoSプライオリティレベルで、応答IPパケットを後続デバイスに転送するように構成することができる。ブロック604には、ブロック605が続くことができる。
【0054】
ブロック605「応答アップグレードビットを検査する」において、デバイス400は、応答ベースのアップグレードについてのフラグが立てられている応答IP通信を識別するように構成することができる。いくつかの実施形態では、応答ベースのアップグレードについてのフラグがIP通信において立てられているかどうかを識別することは、IP通信のIPパケットヘッダ内の指定された応答アップグレードビットを検査することを含むことができる。指定された応答アップグレードビットは、たとえば、すべての着信IPパケットについて検査することができる。指定された応答アップグレードビットが設定されている場合、ブロック606を実行することができる。指定された応答アップグレードビットが設定されていない場合、IP通信は、たとえばバイラルアップグレードを行わないなど、通常通りに処理することができる。ブロック605には、ブロック606が続くことができる。
【0055】
ブロック606「記録されたプライオリティレベル情報を応答IP通信に割り当て、応答IP通信を対応するプライオリティ待ち行列に入れる」において、デバイス400は、応答IP通信からのフロー情報をデータ構造内のフロー情報と照合し、データ構造からのバイラルアップグレードプライオリティレベルを応答IP通信に割り当てることによって、データ構造内に記録されたフロー情報およびバイラルアップグレードプライオリティレベルを使用して、プライオリティレベルを応答IP通信に割り当てるように構成することができる。デバイス400は、バイラルアップグレードプライオリティレベルのプライオリティレベルに対応するルータプライオリティ転送待ち行列に応答IP通信を入れるように構成することができる。いくつかの実施形態では、デバイス400は、応答ベースのアップグレードについてのフラグが立てられているが、対応するフロー情報をデータ構造が含んでいないIP通信に、ネイティブプライオリティレベルを割り当てるように構成することができる。
【0056】
図7は、本開示の少なくともいくつかの実施形態に従って構成された、通信ネットワークワークステーションデバイス700によって実行され得る例示的な方法を示すフロー図である。例示的なフロー図は、ブロック701〜705によって示されるような1つまたは複数の動作/モジュールを含むことができ、それらは、方法において実行され得るような動作、通信ネットワークワークステーションデバイス700内の機能モジュール、および/またはコンピュータ可読媒体750上に記録され得る命令を表す。示されたブロック701〜705は、ブロック701の「(1つまたは複数の)プライオリティエンドポイントデバイスをセットアップする」、ブロック702の「応答ベースのアップグレードのためにエンドポイントデバイスをセットアップする」、ブロック703の「(1つまたは複数の)ルータをセットアップする」、ブロック704の「初期プライオリティIP通信識別および情報記録」、および/またはブロック705の「応答IP通信識別および応答ベースのアップグレード」のうちの1つまたは複数を含む機能的動作を提供するように構成することができる。
【0057】
図7では、ブロック701〜705は、ブロック701を先頭、ブロック705を末尾として、順番に実行されるように示されている。しかし、都合に応じて特定の実施形態に適するようにこれらのブロックを並べ替えることができ、いくつかの実施形態ではこれらのブロックまたはその部分を同時に実行することができることが理解されよう。いくつかの例では、様々なブロックを除去すること、さらなるブロックに分割すること、および/または他のブロックと組み合わせることができることも理解されよう。
【0058】
図7は、通信ネットワークがIP通信のプライオリティレベルのバイラルアップグレードを実行することを可能にし得る例示的な方法を示している。通信ネットワークワークステーションデバイス700は、一般に、
図2に示されるようなコンピューティングデバイスの要素を備えることができる。通信ネットワークワークステーションデバイス700は、通信ネットワークの態様をセットアップするために、たとえば通信ネットワーク技術者によって操作されるワークステーションとすることができる。いくつかの実施形態では、通信ネットワークワークステーションデバイス700は、
図7に示される様々なステップを自動的に実行するように構成されたサーバと交換可能とすることができる。
【0059】
ブロック701「(1つまたは複数の)プライオリティエンドポイントデバイスをセットアップする」において、デバイス700は、プライオリティエンドポイントデバイスから発信されるIP通信においてバイラルアップグレードフラグを設定するために、通信ネットワーク内の1つまたは複数のプライオリティエンドポイントデバイスをセットアップするように構成することができる。一般に、通信ネットワーク内のデバイスをセットアップすることは、デバイスがセットアップされる動作を実行することが可能なように、適切なデータ、証明書、および/またはソフトウェアを伝達することを含むことができる。いくつかの実施形態では、通信ネットワーク内のプライオリティエンドポイントデバイスをセットアップすることは、プライオリティエンドポイントデバイスから発信されるIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットを設定するために、プライオリティエンドポイントデバイスをセットアップすることを含むことができる。いくつかの実施形態では、通信ネットワーク内のプライオリティエンドポイントデバイスをセットアップすることは、たとえば、エンドポイントバイラルアップグレードモジュールのバイラルアップグレード機能をリモートで起動することによって、プライオリティエンドポイントデバイス内のエンドポイントバイラルアップグレードモジュールを起動することを含むことができる。ブロック701には、ブロック702が続くことができる。
【0060】
ブロック702「応答ベースのアップグレードのためにエンドポイントデバイスをセットアップする」において、デバイス700は、プライオリティエンドポイントデバイスから発信されたIP通信に応答する応答IP通信において応答ベースのアップグレードフラグを設定するために、通信ネットワーク内の1つまたは複数のエンドポイントデバイスをセットアップするように構成することができる。いくつかの実施形態では、応答IP通信において応答ベースのアップグレードフラグを設定するために、通信ネットワーク内の1つのエンドポイントデバイスをセットアップすることは、受信したIP通信のIPパケットヘッダ内の指定されたバイラルアップグレードビットが設定されているかどうかを識別し、指定されたバイラルアップグレードビットが設定されている場合、応答IP通信のIPパケットヘッダ内の指定された応答アップグレードビットを設定することによって、受信したIP通信に応答するIP通信において応答ベースのアップグレードについてのフラグを立てるように構成されたエンドポイントバイラルアップグレードモジュールを用いて、エンドポイントデバイスをセットアップすることを含むことができる。ブロック702には、ブロック703が続くことができる。
【0061】
ブロック703「(1つまたは複数の)ルータをセットアップする」において、デバイス700は、ブロック704およびブロック705の一方または両方によって、通信ネットワーク内の1つまたは複数のルータをセットアップするように構成することができる。ブロック704「初期プライオリティIP通信識別および情報記録」において、デバイス700は、応答IP通信のプライオリティレベルのバイラルアップグレードについてのフラグが初期プライオリティIP通信において立てられているかどうかを識別することと、初期プライオリティIP通信からのフロー情報をデータ構造内に記録することであって、フロー情報が応答IP通信を決定するように構成される、記録することと、バイラルアップグレードプライオリティレベル情報をデータ構造内に記録することであって、バイラルアップグレードプライオリティレベルが応答IP通信のためのバイラルアップグレードプライオリティレベルを決定するように構成される、記録することとを行うように構成することができる。
【0062】
ブロック705「応答IP通信識別および応答ベースのアップグレード」において、デバイス700は、応答ベースのアップグレードについてのフラグが応答IP通信において立てられているのを識別し、応答ベースのアップグレードについてのフラグが応答IP通信において立てられているのを識別し、プライオリティエンドポイントデバイスに関連するバイラルアップグレードプライオリティレベルになるようにプライオリティレベルを応答IP通信に割り当て、バイラルアップグレードプライオリティレベルに対応するルータプライオリティ転送待ち行列に応答IP通信を入れるように構成することができる。
【0063】
システムの側面でのハードウェアの実施とソフトウェアの実施との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができる様々な達成手段があり(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実施を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組合せを選択することができる。
【0064】
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組合せにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組合せとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー(登録商標)ディスク、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
【0065】
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(たとえば、位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【0066】
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。様々な単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【0067】
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む発明に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、通常、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、通常、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
【0068】
本明細書では、様々な方法、デバイス、およびシステムを使用して、ある例示的な技法が説明されたが、特許請求される主題から逸脱することなく、他の様々な変更を施し得ること、また均等物で置換し得ることを当業者であれば理解されたい。加えて、本明細書で説明された中心的概念から逸脱することなく、特定の状況を特許請求される主題の教示に適合させるために、多くの変更を施すことができる。したがって、特許請求される主題は、開示された特定の例に限定されず、そのような特許請求される主題は、添付の特許請求の範囲およびその均等物の中に包含されるすべての実施を含み得ることが意図されている。