添付の図面を参照した下記の説明は、特許請求の範囲の記載及びこれと均等なものの範囲内で定められるような本発明の実施形態の包括的な理解を助けるために提供され、この理解を助けるための様々な特定の詳細を含むが、それらは単なる実施形態にすぎない。したがって、本発明の範囲及び趣旨を逸脱することなく、明細書中に説明した実施形態の様々な変更及び修正が可能であるということは、当該技術分野における通常の知識を有する者には明らかである。また、明瞭性と簡潔性の観点から、当業者には既知の機能や構成に関する具体的な説明を省略する。
以下の説明及び請求項に使用する用語及び単語は、辞典的意味に限定されるものではなく、本発明の理解を明確且つ一貫性があるようにするために使用される。したがって、本発明の実施形態の説明が単に実例を提供するためのものであって、特許請求の範囲とこれと均等なものに基づいて定義される発明をさらに限定する目的で提供されるものでないことは、本発明の技術分野における通常の知識を持つ者には明らかであろう。
本願明細書に記載の各エレメントは、文脈中で特に明示しない限り、複数形を含むことは、当業者には理解できるはずである。したがって、例えば、「コンポーネント表面(a component surface)」との記載は、1つ又は複数の表面を含む。
本発明の説明の便宜のために、第3世代パートナーシッププロジェクト(3rd Generation Partnership Project:3GPP)、ムービングピクチャーエクスパーツグループ(Moving Picture Experts Group:MPEG)、オープンIPTVフォーラム(Open IPTV Forum:OIPF)、ユニバーサルプラグアンドプレイ(Universal Plug and Play:UPnP)で定義している個々の用語をそれらに定義されているように使用しているが、このような標準及び用語は、本発明の範囲を限定するのではなく、類似する技術的な背景を有するシステムに適用可能であることは明らかである。以下、本発明の実施形態では、本発明が適用されることができる技術のうちの1つであるMPEGメディアトランスポート(MMT)技術を例として説明するが、これは、説明の便宜のための単なる例に過ぎず、本発明が必ずしもMMT技術だけに適用されるものではないことは明らかである。
本発明の様々な実施形態は、ブロードキャスティングシステムにおいてネットワーク状況に基づいて適応的なMMTパケットフォワーディングのための動的なキューを管理する方法及び装置を含む。
より詳細には、本発明の様々な実施形態は、MMT標準構造で表現されるコンテンツをフォワーディングするMMTパケットを処理するスイッチ又はルータ(以下、‘ルータ’と称する)のネットワークプロセッサでMMTパケットフォワーディングのためにパケットディスクリプタ(Packet Descriptor)をネットワーク状況に応じて適応的に又は動的に割り当てるキューを管理する方法及び装置を提供する。本発明の様々な実施形態によるキューを管理する方法及び装置は、スイッチ又はルータに適用されると説明するが、後述する端末にも適用可能である。
本発明の様々な実施形態は、少なくとも1つのリンクが通信不能となる(down)としても、他の正常のリンクのポートを活用することによりネットワークインターフェースのMMTパケットフォワーディングのためにパケットディスクリプタを選択的にキューイングするキューを管理する方法及び装置を提供する。
図1は、本発明の実施形態によるブロードキャスティングシステムにおけるシステム図である。
図1を参照すると、ブロードキャスティングシステムは、サービスプロバイダ100、ルータ110、及び端末120を含む。
サービスプロバイダ100は、ブロードキャスティングサービスをルータ110を通して端末120に提供する。その後に、ルータ110は、受信されたブロードキャスティングサービスをMMTパケットの形態で端末120に送信する。
図2は、本発明の実施形態によるルータの概略図である。
図2を参照すると、ルータ110は、MMTパケットバッファ210、MMTパケット分析器220、MMTネットワークプロセッサ230、及び物理/データリンクレイヤ240を含む。
物理レイヤ/データリンクレイヤ240は、ルータの様々なネットワークインターフェースのリンク整合機能をサポートするためのネットワーク構成要素である。例えば、物理レイヤ/データリンクレイヤ240は、イーサネット(登録商標)メディアアクセス制御(Media Access Control:MAC)、POSフレーマ(Framer)、非同期転送モード(Asynchronous Transfer Mode:ATM)フレーマ、及びHDLCコントローラなどを意味する。
MMTネットワークプロセッサ230は、MMTパケットを処理する。例えば、物理/データリンクレイヤ240を通して受信されたMMTパケットは、MMTネットワークプロセッサ230によりヘッダー及びデータに分離される。その後に、分離されたヘッダー及びデータは、MMTパケット分析器220に送信される。本発明の様々な実施形態に従って、処理手順は、MMTパケットのタイプに従って異なる。MMTネットワークプロセッサ230は、フォワーディングテーブルルックアップ(forwarding table lookup)、セキュリティ(security)、トラフィックエンジニアリング(traffic engineering)、サービス品質(QoS)などのような補助処理を担当する。
MMTネットワークプロセッサ230は、MMTパケット分析器220のパケット分析結果に従って、MMTパケットが適応的に又は動的にMMTパケットバッファ210に記憶されるようにMMTパケットバッファ210を制御する。
MMTパケット分析器220は、物理/データリンクレイヤ240を通して受信されたMMTパケットが処理される時に必要なMMTパケットのサイズ、MMTパケットが記憶された位置、MMTパケットのビットレートのタイプ、及びフォワーディングテーブルのような様々な情報を記憶する。
MMTパケット分析器220は、MMTネットワークプロセッサ230から受信されたMMTパケットのヘッダー及びデータを分析する。分析の結果、ヘッダーのMMTプロトコルに従ってMMTパケットのビットレートのタイプがコンスタントビットレート(Constant Bit Rate:CBR)であるか又はCBRでない(すなわち、ノンコンスタントビットレート(non-Constant Bit Rate:n−CBR))かを確認する。追加の可能な実施形態において、MMTパケット分析器220は、MMTパケットから受信されたMMTパケットのヘッダーを取得し、MMTパケットのヘッダーに含まれたビットレートのタイプ値を確認し、ビットレートのタイプ値がCBRであるか又はn−CBRであるかを確認する。
MMTパケット分析器220は、この確認の結果をMMTネットワークプロセッサ230に通知する。例えば、MMTパケット(MMTP)のビットレートのタイプ値が‘000’ビットに設定される場合に、MMTPのビットレートは、CBRに対応し、MMTPのビットレートのタイプ値が‘001’ビットに設定される場合に、MMTPのビットレートは、n−CBRに対応する。MMTパケットのビットレートのタイプは、MMTパケットのキューの長さ(depth)及び/又はMMTパケットのサイズの範囲を割り当てるために使用される。
MMTパケット分析器220に記憶されたヘッダー及びデータは、MMTネットワークプロセッサ230によりフォワーディングルックアップテーブルを参照して定められた出力ポートに出力されるか、又はフォワーディングルックアップテーブルに存在しないMMTパケットの場合に廃棄されるか又は処理される(例えば、内部のポリシーに従って)。
MMTパケットバッファ210は、物理/データリンクレイヤ240を通して受信されたパケットをMMTネットワークプロセッサ230の制御の下に記憶する。本発明の様々な実施形態に従って、MMTパケットバッファ210は、MMTネットワークプロセッサ230に含まれてもよく、図2に示すように、MMTパケットバッファ210は、MMTネットワークプロセッサ230から分離されてもよい。
図3は、本発明の実施形態によるMMTネットワークプロセッサの詳細な構造図である。
図3を参照すると、図2のMMTネットワークプロセッサ230は、MMTパケット受信部310、MMTパケットフォワーディング部320、MMTパケットキュー管理部330、MMTパケットスケジューラ340、及びMMTパケット送信部350を含む。本発明の様々な実施形態に従って、図3に示すMMTネットワークプロセッサ230の構成要素の機能は、図2のMMTパケット分析器220、MMTネットワークプロセッサ230、及びMMTパケットバッファ210の機能を含む。
本発明の様々な実施形態に従って、MMTパケット受信部310は、物理/データリンクレイヤ240からMMTパケットのポートの数を感知し、受信されたMMTパケットをMMTパケットフォワーディング部320に伝達する。本発明の様々な実施形態に従って、MMTパケット受信部310は、受信されたMMTパケットを図2のMMTパケットバッファ210に移動させ、MMTパケットをMMTパケット分析器220に伝達する。
MMTパケット受信部310は、受信されたMMTパケットのためにパケットディスクリプタプール(Packet Descriptor Pool)からパケットディスクリプタを割り当てる。
MMTパケットフォワーディング部320は、MMTパケット受信部310から伝達されたMMTパケットに対してフォワーディングルックアップテーブルをルックアップし、出力ポートを確認する(例えば、ルックアップ結果に従って)。
MMTパケットスケジューラ340は、MMTパケットを内部のポリシーに従って選択された出力ポートに送信する。本発明の様々な実施形態に従って、MMTパケットスケジューラ340は、属性値(又はMMTP)に従って、MMTパケットキュー管理部330により生成されたパケットディスクリプタを用いてMMTパケットをスケジューリングする。また、MMTパケットスケジューラ340は、受信されたMMTパケットの優先順位を決定し、優先順位及び属性値(又はMMTP)のうちの少なくとも1つに従ってMMTパケットをスケジューリングする。MMTパケットスケジューラ340は、スケジューリング結果をMMTパケットキュー管理部330に通知する。本発明の様々な実施形態に従って、MMTパケットのスケジューリングは、MMTパケットのキューの長さ(depth)及びMMTパケットのサイズの範囲の割り当てを意味する。
本発明の様々な実施形態に従って、MMTパケットキュー管理部330は、受信されたMMTパケットの属性値(又はMMTP)に従ってパケットディスクリプタを生成する。
本発明の様々な実施形態に従って、MMTパケットキュー管理部330は、出力ポートに対応するMMTパケットバッファ210及びMMTパケット分析器220のキューでMMTパケットをキューイングする機能及び出力ポートのキューからMMTパケットを読み出す機能を実行する。
MMTパケットキュー管理部330は、出力ポートの正常状態を判定し、MMTパケットバッファのパケットディスクリプタ、もしくは、対応するポートのリンクに障害が発生している場合では、対応するポートのキューに記憶されたMMTパケット分析器220のパケットバッファをフリーさせ(フリーは、設定されたパケットディスクリプタ値の設定解除又はデマップを意味する)、パケットディスクリプタをMMTパケットバッファのパケットディスクリプタプールにリターンする。パケットディスクリプタプールは、ヘッドからテールまで連続的にパケットディスクリプタを有し、MMTパケットバッファ210がMMTパケットをキューイングする場合に(例えば、MMTパケットをキューイングするMMTパケットバッファ210に応じて)、パケットディスクリプタプールは、キューイング順序に従って必要なパケットディスクリプタを割り当てる。また、パケットディスクリプタは、MMTパケットの受信順序に従って決定された優先順位値を有し、この優先順位値に従ってMMTパケット分析器220及びMMTパケットバッファ210とMMTパケットをキューイングするか又はデキューイングする。
図4は、本発明の実施形態によるネットワークプロセッサにより動作されるMMTパケット分析器及びMMTパケットバッファの状態を示す図である。
図4を参照すると、MMTパケットバッファの実際のMMTパケット記憶領域と一致するパケットディスクリプタは、MMTパケットバッファにキューイングされる。パケットディスクリプタ421−0、...、421−Nのそれぞれは、MMTパケット分析器220にキューイングされたMMTパケットのサイズ421a、MMTパケットを記憶するために使用されるバッファのアドレス、及び次のMMTパケットのパケットディスクリプタ識別情報を有する。また、図4に示すように、パケットディスクリプタ421−0、...、421−Nは、MMTパケットのビットレートに関連した情報421b及びバッファハンドラーID421cを有する。
MMTパケット送信部350は、対応する出力ポートにMMTパケットを送信し、送信したMMTパケットに割り当てられたパケットディスクリプタをパケットディスクリプタプールにリターンする機能を実行する。
本発明の様々な実施形態に従って、MMTパケットは、データ及びヘッダーを含む。
本発明の様々な実施形態に従って、このデータは、MMT処理部(MMT Processing Unit(MPU)/MP−4(MPEG−4)及びMMTPヘッダーを含む。本発明の様々な実施形態に従って、このヘッダーは、アドレス(例えば、IP、MACなど)を含む。MPU/MP−4、MMTPヘッダー、IP、及びMACは、MACデータグラムとして定義され、MPU/MP−4、MMTPヘッダー、及びIPは、IPフレームとして定義される。
本発明の様々な実施形態に従って、MMTパケットは受信され、MMTパケットのMMTPヘッダーが分析され、この分析の結果に基づいて、MMTパケットを伝達するか否かが判定される。MMTパケットを伝達することが判定される場合に(例えば、MMTパケットの伝達を判定することに応じて)、MMTパケットをバッファにキューイングする。その後に、属性値(MMTP)に従ってパケットディスクリプタを生成し、パケットディスクリプタを用いてMMTパケットをスイッチングする。
本発明の様々な実施形態に従って、MMTパケットのMMTPヘッダーが分析され、MMTPヘッダーのビットレートのタイプ(Type of Bitrate:TB)値が確認され、TBがCBRであるか又はnCBRであるかが判定される。TBがnCBRであると判定される場合には(例えば、nCBRであると判定されるTBに応じて)、MMTネットワークプロセッサ230は、受信順序に従ってキューを割り当てる。しかしながら、TBがCBRであると判定される場合には(例えば、CBRであると判定されるTBに応じて)、MMTネットワークプロセッサ230は、同一の優先順位を有するキューを割り当てる。例えば、本発明の様々な実施形態では、TBに従って効率的にキューを割り当てる。
本発明の様々な実施形態に従って、パケットディスクリプタは、ポートに従って分類される。そして、パケットディスクMMTパケットキュー管理部330は、MMTパケット受信部310により出力ポートが決定された受信MMTパケットを用いて優先順位に従って、MMTパケット分析器220のパケットバッファ及びそのバッファにマッピングされるMMTパケットバッファ210のパケットディスクリプタ421−0,...,421−Nをパケットディスクリプタプールから受信する。パケットディスクリプタ421−0,...,421−Nは、MMTパケットバッファ210にキューイングされてもよい。MMTパケットバッファ210のパケットディスクリプタが管理手順によりフリーされる場合に、MMTパケットバッファ210は、パケットディスクリプタプールにリターンされる。ここで、パケットディスクリプタは、ヘッドからテールまで順次にパケットディスクリプタプールに備えられ、MMTパケットバッファ210がMMTパケットをキューイングする場合に(例えば、MMTパケットをキューイングするMMTパケットバッファ210に応じて)、キューイング順序に従って必要なパケットディスクリプタが割り当てられる。パケットディスクリプタは、MMTパケット分析器220にキューイングされるMMTパケットのサイズ及びバッファハンドラーアドレス(MMTパケットを記憶するために使用されるバッファのアドレス)及び次のMMTパケットのパケットディスクリプタ識別情報を有してもよい。
本発明の様々な実施形態に従って、キューは、出力ポートごとに存在する。そして、MMTパケットキュー管理部330は、MMTパケット受信部310により出力ポートが決定される受信MMTパケットを、対応する出力ポートのキューにより管理されるパケットディスクリプタリストの最後の部分に接続する。このように、MMTキュー管理部330は、キューに、特定の出力ポートに送信されることになっている受信MMTパケットを、MMTパケットスケジューラ340により送信が可能となる時点まで保存する。MMTパケットキュー管理部330は、MMTパケットスケジューラ340により送信が可能となる出力ポートのキューから、キューディスクリプタのヘッドからテールまでのパケットディスクリプタを抽出し、そのパケットディスクリプタをMMTパケット送信部350に転送する。
以下、本発明の様々な実施形態によるMMTキュー管理部330のキュー管理方法について説明する。
本発明の様々な実施形態に従うネットワークプロセッサのMMTキュー管理部330がキューの長さ(depth)を動的に割り当てることにより適応的なMMTパケットフォワーディングのための動的なキュー管理方法について説明する。特に、MMTキュー管理部330がMMTパケットフォワーディング部320により出力ポートが決定された受信MMTパケットを受信した後に本発明の様々な実施形態に従うMMTパケットをキューイングする処理について説明する。
まず、MMTキュー管理部330は、MMTパケット受信部310により出力ポートが決定されたMMTパケットを受信した後に、ネットワークプロセッサが管理する出力ポートのリンクに障害が発生し、リンクが切断されているか否かを検査する。ポートが切断されたリンクを有する場合に、そのポートのキューに記憶された受信MMTパケットのために割り当てられたMMTパケット分析器のパケットバッファのフリーイング及びMMTパケットバッファでの対応するパケットディスクリプタのフリーイングを行うことにより、ディスクリプタがパケットディスクリプタプールにリターンされる。その後に、切断されたリンクを有する出力ポートのキューに記憶された受信パケットは、MMTパケットバッファ及びMMTパケット分析器からフリーされ、ネットワークプロセッサから廃棄される。
次いで、出力ポートに対応するキューが使用可能な最適の限界長さ(depth)Eを決定する。このために、まず、ネットワークプロセッサが認識した出力ポートのうち、正常リンクを有するポートの数を計算する。正常リンクを有する出力ポートの数が1又はそれ以上である場合に(例えば、正常のリンクを有するポートの数が1又はそれ以上であるという決定に応じて)、パケットディスクリプタプールのサイズを正常のリンクのポートに均等に分割し、パケットディスクリプタプールの全サイズを正常のリンクを有する出力ポートの数で割る。その商は、出力ポートのキューの最大長さNを決定する。キューの最大長さNは、パケットディスクリプタプールをポートに均等に割り当てる値である。
出力ポートのキューの最小長さ(depth)Lは、現在の出力ポートキューにキューイングされるパケットディスクリプタの数にポートの帯域幅に従って保証されるべきパケットディスクリプタの数を加えることにより決定される。例えば、ファストイーサネット(登録商標)(Fast Ethernet(登録商標))である場合は、保証されるべきパケットディスクリプタの個数が10であり、ギガビットイーサネット(登録商標)(Gigabit Ethernet(登録商標))である場合は、保証されるべきパケットディスクリプタの個数が100である。この出力ポートのキューの最小長さLは、正常のリンクを有するポートのキューが如何なる場合であっても適応的に記憶可能なパケットディスクリプタの個数である。
出力ポートキューの現在のパケットディスクリプタプールの使用率Uは、出力ポートキューの最小長さLをパケットディスクリプタの全サイズで割ることにより得られる。この値は、出力ポートキューにより使用されないパケットディスクリプタプールをパケットディスクリプタプールの使用率に従って出力ポートキューに割り当てるために使用される。
出力ポートキューが使用可能な最適の限界長さEは、出力ポートキューの最大長さNから最小長さLを減算することにより得られた値に、出力ポートキューの現在のパケットディスクリプタプールの使用率Uを乗算することにより計算される。出力ポートキューによる使用が可能である最適の限界深さEは、出力ポートキューに最大限記憶することが可能なパケットディスクリプタの個数を意味する。
現在の出力ポートのキューにキューイングされるパケットディスクリプタの個数が出力ポートのキューによる使用が可能な限界長さEと同一である場合に、このキューは、これ以上キューイングを実行できず、MMTパケットを廃棄すべきである。出力ポートキューが使用可能な最適の限界長さEは、出力ポートキューの最大長さNから最小長さLを減算することにより得られた値に出力ポートキューの現在のパケットディスクリプタプールの使用率Uを乗算することにより計算される。出力ポートキューによる使用が可能な最適の限界長さEは、ポートの帯域幅及びMMTパケットが伝達されるときに使用される出力ポートの使用率を考慮して決定され、パケットディスクリプタプールは、出力ポートのキューで均等に使用される。
また、現在の出力ポートキューにキューイングされるパケットディスクリプタの個数が、出力ポートキューが使用可能な限界長さEより大きいか又は同一である場合に、その出力ポートキューにこれ以上のパケットディスクリプタをキューイングできない。したがって、受信MMTパケットのために割り当てられたMMTパケット分析器のパケットバッファをフリーイングし、対応するパケットディスクリプタもフリーイングすることにより、ディスクリプタをパケットディスクリプタプールにリターンする。受信パケットは、このようにネットワークプロセッサから廃棄される。しかしながら、他の正常のリンクを有する出力ポートのキューが最大の長さNまでパケットディスクリプタを継続してキューイングするので、ネットワークプロセッサは、MMTパケットを適応的にフォワーディングする。
しかしながら、現在の出力ポートのキューの長さPが最大の長さNより小さい場合に、その出力ポートのキューは、パケットディスクリプタプールをフェッチし、パケットディスクリプタをパケットディスクリプタプールにキューイングする。
本発明の様々な実施形態に従って、正常のリンクを有する出力ポートの数が0である場合に、ネットワークプロセッサは、すべての受信MMTパケットを廃棄する。障害が発生し切断されたリンクを有する出力ポートが存在しない場合に、ネットワークプロセッサは、出力ポートキューの最大の長さN及び最小の長さL、現在のパケットディスクリプタプールの使用率U、及び使用可能な限界長さEを計算する手順を実行する。
図5は、本発明の実施形態によるネットワークプロセッサによりキューの長さを割り当てるために適応的なパケットフォワーディングのためのMMTパケットの構造図である。
図5を参照すると、TB(type-of-bitrate)501は、本発明の様々な実施形態によるMMTパケット500のビットレートのタイプを意味する。
例えば、TB501が‘000’ビットに設定される場合に、TB501は、CBRを示し、TB501が‘001’ビットに設定される場合に、TBは、n−CBRを示す。図5のTB501は、MMTパケットのキューの長さ及び/又はMMTパケットのサイズの範囲を割り当てるために使用される。
パケットシーケンスナンバーフィールド503は、送信されるMMTパケットの固有(Unique)識別番号であるシーケンス番号を示す。受信装置は、パケットシーケンスナンバーフィールド503を識別することにより対応するパケットの損失があるか否かを判定する。
タイムスタンプフィールド505は、送信パケットの生成時点を識別するために活用される。タイムスタンプフィールドが含む時間値は、インターネットネットワークプロトコルにより設定された値に基づいて計算された値に設定される。受信装置は、時間値を識別し、パケット間の送信時間差及び送信側と受信測との間のパケット送信遅延時間を計算するために活用される。
フローラベル507は、データの送信のために使用されるそれぞれのフローで要求される特定のQoSを識別するためのフローラベルを示す。フローラベルは、例えば、パケットタイプ(Type of Packet)、遅延(Delay)、処理量(Throughput)、及び同期パラメータ(Synchronization parameter)を含む。フローラベル507は、データ送信タイプに従って分類される。対応するフローラベルは、サービスの開始の前に送信側及び受信側の相互の参照データの交換を通して設定される。
Qフィールド509は、対応するパケットの損失重要度(優先順位)及び遅延許容時間を含む。対応する情報は、損失優先順位及び遅延許容時間を含む。損失優先順位は、対応するパケットの重要度を示し、所定の範囲のセクション内の損失での重要度を示す。
図6は、本発明の実施形態によるキュー管理方法を示すフローチャートである。
図6を参照すると、ステップ601において、ルータは、サービスプロバイダーからMMTパケットを受信する。
ステップ603において、ルータは、受信されたMMTパケットのMMTPヘッダーを分析する。本発明の様々な実施形態に従って、ルータは、受信されたMMTパケットからMMTPヘッダーに含まれたTB情報を取得することができる。
ステップ605において、ルータは、MMTパケットのMMTPヘッダーのTBを識別し、TBが分析を通してCBRであるか否かを判定する。
ステップ605において、ルータは、TBがCBRでないと判定する場合に、ステップ607に進み、受信順序に従ってキューを割り当てる。
しかしながら、ステップ605において、ルータは、TBがCBRであると判定する場合に、ステップ609に進み、同一の優先順位を有するキューを割り当てる。例えば、TBがCBRである場合に、ルータは、MMTパケットが同一の優先順位を有するようにキューを割り当てる。本発明の様々な実施形態に従って、TBがCBRである場合に、ルータは、同一の優先順位を有するパケットディスクリプタを割り当てる。本発明の様々な実施形態に従って、ルータは、優先順位が高いMMTパケットに対して2回キューに割り当てることができる。
上述したように、本発明に従って、少なくとも1つのリンクが通信不能であるとしても、パケットディスクリプタは、他の正常のリンクを活用してLAN/WANインターフェースのMMTパケットのフォワーディングのために適応的に割り当てられる。
クレーム及び発明の詳細な説明に従う本発明の様々な実施形態は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合せの形態で実現することができる。
このような任意のソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されることができる。非一時的なコンピュータ可読記憶媒体は、1つ以上のプログラム(ソフトウェアモジュール)を記憶し、1つ以上のプログラムは、指示を含み、電子装置で1つ以上のプロセッサにより実行される場合に、この指示は、電子装置が本開示の方法を実行するようにする。
このような任意のソフトウェアは、例えば、削除が可能であるか又は再記録が可能であるか否かにかかわらず、読み出し専用メモリ(ROM)のような記憶装置のような揮発性又は不揮発性記憶装置、又は、例えば、ランダムアクセスメモリ(RAM)、メモリチップ、メモリ装置、又はメモリ集積回路(IC)、又は、例えば、コンパクトディスク(CD)、ディジタル多用途ディスク(DVD)、磁気ディスク、又は磁気テープなどの光学的又は磁気的に読み取り可能な非一時的な機械読み取り可能な(例えば、コンピュータ読み取り可能な)記憶媒体に記憶することができる。記憶装置及び記憶メディアは、本発明の様々な実施形態を具現化する指示を含むプログラム又はプログラムを格納するのに適合した非一時的な機械読み取り可能な記憶媒体の様々な実施形態である。したがって、本発明の様々な実施形態は、本開示のクレームのうちのいずれか1つでクレームされた装置又は方法を実現するためのコードを含むプログラム及びこのようなプログラムを記憶する非一時的な機械読み取り可能な記憶媒体を提供する。
以上、本発明を具体的な実施形態を参照して詳細に説明してきたが、本発明の範囲及び趣旨を逸脱することなく様々な変更が可能であるということは、当業者には明らかであり、本発明の範囲は、上述の実施形態に限定されるべきではなく、特許請求の範囲の記載及びこれと均等なものの範囲内で定められるべきものである。