(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5718225
(24)【登録日】2015年3月27日
(45)【発行日】2015年5月13日
(54)【発明の名称】コンテンツ配信ネットワーク内の自立性キャッシングのための方法および装置
(51)【国際特許分類】
G06F 13/00 20060101AFI20150423BHJP
G06F 12/00 20060101ALI20150423BHJP
【FI】
G06F13/00 520C
G06F12/00 514M
【請求項の数】10
【全頁数】11
(21)【出願番号】特願2011-514582(P2011-514582)
(86)(22)【出願日】2009年5月4日
(65)【公表番号】特表2011-525025(P2011-525025A)
(43)【公表日】2011年9月8日
(86)【国際出願番号】US2009002734
(87)【国際公開番号】WO2009154667
(87)【国際公開日】20091223
【審査請求日】2011年2月16日
(31)【優先権主張番号】12/143,353
(32)【優先日】2008年6月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】596092698
【氏名又は名称】アルカテル−ルーセント ユーエスエー インコーポレーテッド
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】サニエー,イラジ
【審査官】
田上 隆一
(56)【参考文献】
【文献】
特開2003−044346(JP,A)
【文献】
特開2003−030087(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
コンテンツ配信ネットワーク内の第1のノードに1つまたは複数のコンテンツ項目をキャッシュする方法であって、
コンテンツ項目の要求を受信するステップと、
前記コンテンツ項目がローカルキャッシュに格納されているかどうかを判定するステップと、
前記コンテンツ項目がローカルキャッシュに格納されていない場合には、
前記コンテンツ項目を第2のノードに要求するステップ、および
1つまたは複数の既定容量基準が、第1のノードによってローカルにのみ生成される統計に基づいて満足される場合に、前記コンテンツ項目を前記ローカルキャッシュに格納し編成するステップであって、前記統計がコンテンツ人気予測および需要分布予測の1つまたは複数を含む、ステップを実行する、ステップを備える方法。
【請求項2】
前記第2のノードが階層ネットワーク内の親ノードである、請求項1に記載の方法。
【請求項3】
前記既定容量基準が、前記第2のノードのキャッシュに格納された他の項目と比較して前記コンテンツ項目の人気指標の評価を含み、各コンテンツ項目の前記人気指標が、各コンテンツ項目について前記第2のノードによって受信された要求を数えることにより生成される、請求項1に記載の方法。
【請求項4】
前記既定容量基準が、前記ローカルキャッシュの容量および前記ローカルキャッシュに格納された他の項目の必要メモリと比較して前記コンテンツ項目の必要メモリの評価を含む、請求項1に記載の方法。
【請求項5】
コンテンツ配信ネットワーク内の第1のノードに1つまたは複数のコンテンツ項目をキャッシュするための装置であって、
メモリ、ならびに
そのメモリに結合された少なくとも1つのプロセッサを備え、該プロセッサが
コンテンツ項目の要求を受信し、
前記コンテンツ項目がローカルキャッシュに格納されているかを判定し、
前記コンテンツ項目がローカルキャッシュに格納されていない場合には、
第2のノードに前記コンテンツ項目を要求するステップ、および
既定容量基準が、第1のノードによってローカルにのみ生成される統計に基づいて満足される場合に、前記ローカルキャッシュ内に前記コンテンツ項目を格納し編成するステップであって、前記統計がコンテンツ人気予測および需要分布予測の1つまたは複数を含む、ステップを実行するように機能する、装置。
【請求項6】
前記既定容量基準が、前記ローカルキャッシュの容量および前記ローカルキャッシュに格納された他の項目の必要メモリと比較して、前記コンテンツ項目の必要メモリの評価を含む、請求項5に記載の装置。
【請求項7】
前記第2のノードが階層ネットワーク内の親ノードである、請求項5に記載の装置。
【請求項8】
前記既定容量基準が、前記ローカルキャッシュに格納された他の項目と比較して、前記コンテンツ項目の人気指標の評価を含む、請求項5に記載の装置。
【請求項9】
1つまたは複数のプログラムを含む機械可読の記憶媒体を備える、コンテンツ配信ネットワーク内の第1のノードに1つまたは複数のコンテンツ項目をキャッシュするための製造品であって、実行されるときには
コンテンツ項目の要求を受信するステップと、
前記コンテンツ項目がローカルキャッシュ内に格納されているかどうかを判定するステップと、
前記コンテンツ項目がローカルキャッシュに格納されていない場合には、
第2のノードに前記コンテンツ項目を要求するステップ、および
既定容量基準が、第1のノードによってローカルにのみ生成される統計に基づいて満足される場合に、前記コンテンツ項目を前記ローカルキャッシュに格納し編成するステップであって、前記統計がコンテンツ人気予測および需要分布予測の1つまたは複数を含む、ステップを実行するようにステップを実装する、製造品。
【請求項10】
前記既定容量基準が、前記ローカルキャッシュの容量および前記ローカルキャッシュに格納された他の項目の必要メモリと比較して、前記コンテンツ項目の必要メモリの評価を含む、請求項9に記載の製造品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツキャッシング技法に関し、特に、コンテンツ配信ネットワーク内の自立性コンテンツキャッシングのための方法および装置に関する。
【背景技術】
【0002】
コンテンツ配信ネットワーク(content delivery networksまたはcontent distribution networks(CDN))は、コンテンツ(大容量の媒体コンテンツなど)をエンドユーザに配信する。コンテンツ配信ネットワーク内のノードは、エンドユーザによるコンテンツの要求を満足させるために互いに協力する。通常は、コンテンツ配信ネットワークは、配信プロセスを向上させるために、1つまたは複数の最適化技法を用いる。たとえば、コンテンツ配信ネットワークはしばしば、帯域幅コストを低減するために、エンドユーザ性能を向上させるために、またはその両方のために、配信プロセスを最適化する。エンドユーザ性能を最適化するとき、たとえば、ユーザ要求は通常、コンテンツを速くユーザに配信することができるノードに送信される(たとえば、最も少ないホップをもつ、または要求側から最も少ないネットワーク秒数のノードを選択することによって)。
【0003】
コンテンツ配信ネットワーク内のノードはしばしば、1人のユーザによって要求されたコンテンツを、1人または複数の追加のユーザへのその後の配信のためにキャッシュに格納する。この形式では、キャッシュに格納された同一項目を必要とする同一ノードによって供される他のユーザは、キャッシュからその項目を取得することができる。マサチューセッツ州、ケンブリッジのAkamai Technologies,Inc.などのコンテンツ配信会社によって使用される既存のキャッシング方式は、一般に、比較的小さな(数メガバイト程度或いはそれ以下の)コンテンツ向けに、およびインターネットタイプのネットワーク向けに設計されている。かかるコンテンツ配信ネットワークは、要求コンテンツがエンドユーザに比較的近いクラスタにしばしば格納されている、効果的なキャッシングを提供する。結果として、最も多く要求されるファイルは各宛先に到達するために元のサーバから移動する必要がなく、各ホップでの帯域幅使用を節減し、待ち時間も低減する。
【0004】
ビデオオンデマンド(VOD)およびインターネットテレビジョンサービスなどの次世代ネットワークアプリケーションの人気が高まるにつれて、キャッシュに格納されることになるファイルの数およびサイズは大きく増加することになる。たとえば、高解像度様式の2時間の長編映画は、約5GB(DVDの記憶域要件に類似)になることがある。従って、キャッシング容量の問題はますます重要になっており、数百テラバイト程度のキャッシング容量も容易に予期される。同様に、優れたキャッシング方式による帯域幅の節減は、大容量コンテンツ配信ネットワークにおける帯域幅要件に非常に大きな影響を及ぼすことができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】「Engineering and Operations in the Bell System」、Bell Telephone Laboratories、2nd Edition、Hardcover、1978
【非特許文献2】「Video Over IP」、http://www.lightreading.com/document.asp?site=lightreading&doc_id=40811&page_number=4
【発明の概要】
【発明が解決しようとする課題】
【0006】
従って、効果的にキャッシュを使用し、所要の帯域幅を減らす、大容量コンテンツ配信ネットワーク内のキャッシング技法の必要性が存在する。小サイズのコンテンツ(KBからMBサイズ)とは異なり、このタイプのコンテンツは、通常は、ビデオコンテンツの所有者/プロバイダによって所有されている。従って、かかるコンテンツは、大概はこの種のコンテンツ配信のために設計された、通常は所有権を主張できるネットワーク内の特定のノードにのみキャッシュされることができる。今日のコンテンツ配信ネットワークにおいて行われているような、特定の項目の最善の位置およびそれらの人気分布の定数計算の著しいオーバヘッドを回避するために、かかるコンテンツ配信ネットワークにおける自立性キャッシング技法の必要性が従って存在する。この形式では、キャッシュに格納されたデータは、著しいモニタリングまたは管理なしに編成されることができる。
【課題を解決するための手段】
【0007】
概して、コンテンツ配信ネットワーク内の自立性キャッシングのための方法および装置が提供される。本明細書において、「自立性」は、外部エージェントに依存せずにコンテンツの人気または需要分布の予測を提供するキャッシング方式を意味するものとする。さらに、自立性機構は通常は、コンテンツ組織のためだけのノード間の明示通信の必要性を取り除き、代わりに各キャッシュノードの場所での需要パターンの出現に頼って行動の方針を決定する。
【0008】
本発明の一態様によれば、1つまたは複数の要求コンテンツ項目が、コンテンツ配信ネットワーク内のノードにキャッシュされる。開示される方法は、コンテンツ項目がローカルキャッシュに格納されているかどうかを判定し、そして、そのコンテンツ項目がローカルキャッシュに格納されていない場合、以下のステップが実行される:コンテンツ項目を別のノードに要求するステップ、および、1つまたは複数の既定容量基準が満足される場合にコンテンツ項目をローカルキャッシュに格納するステップ。コンテンツ配信ネットワークは、階層ネットワークまたは非階層ネットワークでもよい。
【0009】
例示的な階層ネットワーク実装では、コンテンツ項目の要求は、エンドユーザか子ノードのどちらかから受信される。コンテンツ項目がローカルキャッシュに格納されていない場合、そのコンテンツ項目が親ノードに要求される。さらに、取得された後、コンテンツ項目は、要求しているエンドユーザまたは子ノードに提供される。
【0010】
既定容量基準は、ローカルキャッシュに格納された他の項目と比較してコンテンツ項目の人気指標を評価することができる。たとえば、既定容量基準は、ローカルキャッシュの容量およびローカルキャッシュに格納された他の項目の必要メモリと比較してコンテンツ項目の必要メモリを評価することができる。
【0011】
本発明ならびに本発明のさらなる特徴および利点の完全な理解は、以下の詳しい説明および図面を参照することによって得られることができよう。
【図面の簡単な説明】
【0012】
【
図1】本発明がその中で実装されることができる例示的な階層ネットワーク環境を説明する図である。
【
図2】本発明による
図1の例示的な階層ネットワーク環境におけるエンドユーザ要求を説明する図である。
【
図3】本発明による例示的なノードの構成図である。
【
図4】本発明の特徴を組み込んだ自立性キャッシングプロセスの例示的な実装を説明する流れ図である。
【
図5】本発明の特徴を組み込んだ例示的なキャッシング指標のサンプル表である。
【発明を実施するための形態】
【0013】
本発明は、階層および非階層ネットワークのための比較的少ない通信および計算オーバヘッドをもつキャッシング手順を提供する。階層ネットワークはしばしば、電話会社(たとえば、公衆交換電話網(PSTN)を使用する会社)によって実装されるものなどの、顧客アクセスネットワークで使用される。ますます、電話アクセス広帯域ネットワークはより多くの電話サービスに使用されている。たとえば、多数の電話会社が現在、電話アクセスネットワークを介して広帯域インターネットサービスおよびビデオ配信サービスを提供する。いくつかある利点の中でも特に、電話アクセスネットワークは概して、テレビジョンおよびビデオオンデマンドサービスに関連する大容量ファイルを格納するための重大な相互接続された記憶容量を既にもつ信頼できるネットワークである。
【0014】
図1は、本発明がその中で実装されることができる例示的な階層ネットワーク環境100を図示する。
図1のノードの明示は説明のためにすぎず、提案される方式によって要求されないことに留意されたい。適切な階層ネットワーク環境100のさらに詳細な解説は、たとえば、その開示を参照により本明細書に組み込む、「Engineering and Operations in the Bell System」、Bell Telephone Laboratories、2nd Edition、Hardcover、1978を参照されたい。
【0015】
図1に示すように、例示的な階層ネットワーク環境100は、ヘッドエンドサーバ110、1つまたは複数のルータ120−1から120−N(以下、総称してルータ120という)、1つまたは複数の中央局130−1から130−N(以下、総称して中央局130という)、1つまたは複数のDSLAM(デジタル加入者線アクセスマルチプレクサ)140−1から140−N(以下、総称してDSLAM140という)を備え、それらすべてが、よく知られている形式で、階層の樹状構成で配置されている。各エンドユーザ150−1から150−N(以下、総称してエンドユーザ150という)は、DSLAM140を用いてネットワーク100に接続する。
【0016】
本発明のキャッシング手順は、例示的な階層ネットワーク環境100の任意のレベルで任意のノード110、120、130、140によって実装されることができる。本発明による例示的なノード300が、
図3と共に以下でさらに解説される。
【0017】
一般に、エンドユーザ150からの要求は、葉ノード(即ち、エンドユーザ150に関連付けられたDSLAM140)に到達する。さらに、すべてのサポートされるコンテンツは一般に、木100の根であるヘッドエンド(HE)110で入手可能である(開始時におよび任意の時点で)。さらに、コンテンツは、1つまたは複数の中間ノードでキャッシュされることができる。本明細書においてコンテンツ項目とも称される、要求コンテンツは、省略されていない項目(映画全編など)、ならびに省略されていない1つの項目の1つまたは複数のセグメントを含み得ることに留意されたい。人気のあるコンテンツ項目の一例として、映画「The Wizard of Oz(オズの魔法使い)」を考えられたい。このコンテンツ項目の1つのセグメント(項目全体よりもむしろ人気があるかもしれない)の一例として、有名な表現「Toto,I‘ve got a feeling we’re not in Kansas anymore.」を含むセグメントを考えられたい。
【0018】
図2は、本発明による
図1の例示的な階層ネットワーク環境100におけるエンドユーザ要求を図示する。
図2に示すように、エンドユーザ150−mがコンテンツ項目Aを要求する。親ノード、DSLAM140−lが、コンテンツ項目Aはそのキャッシュ内にないと判定する。従って、DSLAM140−lは、それ自体の親、中央局130−kにコンテンツ項目Aを要求する。この例では、中央局130−kは、コンテンツ項目Aのコピーをもつ。従って、中央局130−kは、コンテンツ項目AをDSLAM140−lに提供することになる。DSLAM140−lは、項目Aをエンドユーザ150−mに引き渡し、そしてまた、たとえば、項目Aの指標がDSLAM140−lのキャッシュ内の他の項目の指標よりも高い場合(
図4と共に以下にさらに解説するように)、そのキャッシュに項目Aを格納することになる。時間の経過とともに、中央局130−kでの項目Aの指標は、他の項目よりも小さくなることがあり、従って、中央局130−kのキャッシュから最終的に削除されることがある。項目Aは、他のエンドノードよりもより頻繁にそれを要求するエンドノードに最も近いそれらのノードのキャッシュに残る。
【0019】
図3は、本発明による例示的なノード300の構成図である。
図3に示すように、メモリ330は、本明細書で開示される自立性キャッシングの手順、ステップ、および機能(まとめて、
図3に400として示される、また
図4と共に以下にさらに解説される)を実装するようにプロセッサ320を構成する。メモリ330は分散型またはローカルでもよく、プロセッサ320は分散型または単一でもよい。メモリ330は、電気的、磁気的、または光学的メモリとして、或いはこれらまたは他のタイプの記憶装置の任意の組合せとして実装されることができる。プロセッサ320を構成する各分散型プロセッサは一般にそれ自体のアドレス可能なメモリ空間を含むことに留意されたい。コンピュータシステム300の一部またはすべては、パーソナルコンピュータ、サーバ、ラップトップコンピュータ、ハンドヘルドのコンピュータデバイス、特定用途向け回路、または汎用集積回路に組み込まれることができることにも留意されたい。さらに例示的なノード300はそれぞれ、関連付けられたキャッシュ340をもつ。
【0020】
図4は、本発明の特徴を組み込んだ自立性キャッシングプロセス400の例示的な実装を説明する流れ図である。
図4に示すように、自立性キャッシングプロセス400は最初に、ステップ410でコンテンツ要求が子ノードから受信されたかどうかを判定する。ビデオまたは映画などのコンテンツ項目の要求は、その項目の人気を表す異なる到達パラメータをもつ何らかの分布(ポアソン分布など)に従って階層100の最低レベル(葉ノード150)に到達することに留意されたい。たとえば、すべての利用可能なタイトルのうちの10%だけが顧客の95%に要求されると推定されている。従って、本発明による人気のあるコンテンツ項目のキャッシングは、かかる需要環境において非常に効果的になり得る。
【0021】
コンテンツ要求が受信された後、コンテンツ項目のログ入力が、ステップ420で、
図5と共に以下にさらに解説されるキャッシュ指標500中でインクリメントされる。要求コンテンツが既にローカルキャッシュ340にあるかどうかを判定するために、ステップ430でさらにテストが実行される。ステップ430で要求コンテンツが既にローカルキャッシュ340にあると判定された場合、次に要求コンテンツはステップ440で要求側に配信される。
【0022】
しかし、ステップ430で要求コンテンツがローカルキャッシュ340にないと判定された場合、次にステップ450で要求コンテンツのコピーが親ノードに要求される。要求コンテンツが親ノードから受信された後、要求コンテンツはステップ460で要求している子ノードに送信される。最後に、要求コンテンツの指標がキャッシュ340の容量ポジション510およびサイズモジュール540(
図5)を上回る場合、要求コンテンツはステップ470でローカルキャッシュ340に格納される。即ち、コンテンツ要求の到達時に、各ノードは、ローカルキャッシュ340内に余裕がある場合には、必ず要求項目をキャッシュする。記憶空間が不十分な場合、次にノードは、新しい項目(押し出される(bumped)すべての項目よりも高い指標をもたなければならない)をキャッシュするために、その項目の「指標」を計算し、そのキャッシュ340内の最も低い1つまたは複数の指標をもつ1つまたは複数の項目を押し出す。例示的な一実装形態では、ノードの項目の「指標」は、その項目がこれまでにそのノードから要求された回数として定義される(たとえば、人気測定)。さらなる変形形態では、非常に動的なコンテンツは、より複雑な(時間的)コスト構造を可能にするために、「ウインドウ」をもつことによっておよび/または指標を再定義することによって収容される。
【0023】
この形式では、手順400は、要求された項目をキャッシュする葉ノード140、そしてまた様々な要求項目もキャッシュするヘッドエンド110への経路に沿ったノード130、120によって開始する。しかし、時間の経過とともに、人気の少ない項目がヘッドエンド110のより近くにキャッシュされる一方で、最も人気のある項目が階層の底辺に(そしてその項目がその中で人気がある葉ノード140のより近くに)キャッシュされる。階層のより高いレベルにあるノードは、異なる顧客層をもち、異なる人気分布に遭遇する(異なるコンテンツ項目が異なるレベルおよび異なる葉ノードにキャッシュされる結果をもたらす)。これは、現在葉ノード140の近くにキャッシュされているそれらの人気コンテンツ項目をより高レベルのキャッシュから消去しつつ、ヘッドエンド110からまたは親もしくは親の親から項目を繰り返し取得する「コスト」を軽減する。
【0024】
たとえば、人気映画は、すべてのDSLAM140に亘って人気があることがあり、従って、その人気映画はすべてのDSLAM140でキャッシュされることになるが、階層100内の1つ上のレベルのキャッシュには格納されず、その映画はDSLAM140のキャッシュ340から配信されることができるので、その人気映画の次のレベルへの要求は絶える。一般に、階層100のより高いレベルは、より低いレベルにキャッシュされるほどの人気はない人気項目の要求を受ける。
【0025】
図5は、本発明の特徴を組み込んだ例示的なキャッシング指標500からのサンプル表である。指標は各ネットワークノードで必要があれば作成されることができ、他のノードとの追加の通信なしにキャッシュ340からコンテンツを追加または削除するために使用されることができる。かかるデータが入手可能で、階層100内のノードに自由に分散されることができる場合、その方式の収束をより速くするために先行配信としてニールセンタイプのレーティングを使用することによって指標の計算を強化することができることに留意されたい。
図5に示す例示的な方式では、各ノードは、項目がその子ノードによってそれに要求された回数の経過のみを追跡する。
【0026】
図5に示すように、例示的なキャッシング指標500は、それぞれ異なるコンテンツ項目と関連付けられた複数の記録を含む。各コンテンツ項目について、フィールド520にはコンテンツ識別子が、フィールド530にはそのコンテンツ項目が要求された回数を示す要求総数が、そしてサイズモジュール540がある。さらに、例示的なキャッシング指標500は、ローカルキャッシュ345の現在の容量を識別するキャッシュ容量インディケータ510をもつ。一般に、所与のコンテンツ項目の指標がキャッシュ容量510を上回る場合、次にその項目はローカルキャッシュ340に格納される。しかし、所与のコンテンツ項目の指標がキャッシュ容量510を下回る場合、そのときその項目はローカルキャッシュ340に格納されない。サイズモジュール540は、各要求コンテンツ項目の必要メモリを示す。さらに記録550は、コンテンツ項目A、B、およびCの合わせた必要メモリがキャッシュ容量(C)510を下回り、そして追加のコンテンツ項目Dでキャッシュ容量(C)510が超過されることを示す。
【0027】
図5に示す例では、項目Dは83回要求された。次に項目Dが要求されると、総数は84に増やされることになる。項目Dが格納されることを容量510が許さないことになるので、項目Dの指標が項目Cの指標を超えるまで、それは格納されないことになる。従って、項目Dは、要求総数が85に増えた後に、キャッシュに格納されることになる(項目Cを項目Dで置き換える)。一般に、Dは、C(A)+C(B)+C(D)≦Cの場合に、格納されることになる。
【0028】
本発明は、すべてのmの値について、以下の式を最小化することを示すことができる:
【数1】
ここで、mはダウンロードされる項目のサイズであり、hはユーザに情報を配信するためのホップコストであって、情報源とエンドユーザの間を横切るホップの数として表されることができる。従って、本発明の利点は、ダウンロードされる項目のサイズと共に増すと言うことができる(結合されたキャッシングおよび移送コストを考慮するとき)。従って、本発明は、ネットワーク100内の各ホップの帯域幅要件を大きく低減することができる。
【0029】
本発明のいくつかある利益の中でも特に、どうしても生じなければならない、そのキャッシュに既にあるのではない項目についてその親ノードに項目を要求すること以外には、ノード間で交換されるべき追加の「状態」は存在しない。従って、開示される方式は、ゼロ「状態」を必要とすると言うことができる。しかし、時間の経過とともに、コンテンツは、それらの人気に従って、下流のキャッシュのヘッドエンド110から移動する、即ち、それらの人気のみに基づいてキャッシュを自立性する。
【0030】
結論
図1に示す例示的なネットワーク環境100は階層(木)ネットワークであるが、そのネットワークは非階層ネットワークでも実装されることができることが、当業者には明らかであろう。階層ネットワークでは、2地点間に一意の、予測可能な経路が存在する。しかし、非階層ネットワークでは、2地点間に複数の経路が存在し得る。従って、ネットワーク内の所与のノードは、所与の要求に遭遇するかもしれないし、しないかもしれない。非階層ネットワークについての例示的な一実装形態では、ある構造が2地点間の経路指定に課されるように経路指定が編成される。たとえば、A地点とB地点の間に2つの経路がある場合、経路指定構造は、要求のうちの50%が各経路を進むことを保証することができる。IPネットワークを介した代替ビデオの解説は、その開示を参照により本明細書に組み込む、「Video Over IP」、http://www.lightreading.com/document.asp?site=lightreading&doc_id=40811&page_number=4を参照されたい。
【0031】
図4はステップの例示的な順番列を示すが、本発明の実施形態ではまた、その順番列は変えられることもできる。アルゴリズムの様々な置換が、本発明の代替実施形態として企図される。
【0032】
本発明の例示的な実施形態がソフトウェアプログラム内の処理ステップに関して説明されているが、様々な機能はソフトウェアプログラム内に、回路要素もしくは状態機械によってハードウェア内に、またはソフトウェアとハードウェアの両方の組合せに処理ステップとしてデジタル領域に実装されることができることが、当業者には明らかであろう。かかるソフトウェアは、たとえば、デジタル信号プロセッサ、マイクロコントローラ、または汎用コンピュータで使用されることができる。かかるハードウェアおよびソフトウェアは、集積回路内に実装された回路内で実施されることができる。
【0033】
従って、本発明の機能は、それらの方法を実行するための方法および装置の形態で実施されることができる。本発明の1つまたは複数の態様は、たとえば、記憶媒体に格納されるのでも、機械にロードされるおよび/または機械によって実行されるのでも、或いは何らかの伝送媒体を介して伝送されるのでも、プログラムコードの形態で実施されることができ、そのプログラムコードがコンピュータなどの機械にロードされるときおよび実行されるとき、その機械は本発明を実行するための装置となる。汎用プロセッサに実装されるとき、プログラムコードセグメントは、特定の論理回路と類似して動作するデバイスを提供するために、プロセッサと結合する。本発明は、集積回路、デジタル信号プロセッサ、マイクロプロセッサ、およびマイクロコントローラのうちの1つまたは複数に実装されることができる。
【0034】
システムおよび製造品の詳細
当技術分野で知られているように、本明細書で解説される方法および装置は、そこに実施されたコンピュータ可読のコード手段をもつコンピュータ可読の媒体をそれ自体が備える製造品として流通されることができる。コンピュータ可読のプログラムコード手段は、本明細書で解説される方法を実行するためのすべてのまたは一部のステップを実施するためにまたは装置を作成するために、コンピュータシステムと共に、動作可能である。コンピュータ可読の媒体は、記録可能媒体(たとえば、フロッピー(登録商標)ディスク、ハードドライブ、コンパクトディスク、メモリカード、半導体デバイス、チップ、特定用途向け集積回路(ASIC))でもよく、或いは伝送媒体(たとえば、光ファイバ、ワールドワイドウェブ、ケーブル、または、時分割多元接続、符号分割多元接続、もしくは他の無線周波数チャネルを使用する無線チャネルを備えるネットワーク)でもよい。コンピュータシステムでの使用に適した情報を格納することができる知られているまたは開発された任意の媒体が使用されることができる。コンピュータ可読のコード手段は、磁気媒体の磁気的な変更またはコンパクトディスクの表面上の高さの変更などの、命令およびデータをコンピュータが読むことを可能にするための任意の機構である。
【0035】
本明細書に記載のコンピュータシステムおよびサーバはそれぞれ、本明細書で開示される方法、ステップ、および機能を実装するために関連プロセッサを構成することになるメモリを含む。メモリは分散型またはローカルでもよく、プロセッサは分散型または単一でもよい。メモリは、電気的、磁気的もしくは光学的メモリとして、或いはこれらのまたは他のタイプの記憶装置の任意の組合せとして実装されることができる。さらに、用語の「メモリ」は、関連プロセッサによってアクセスされるアドレス可能な空間内のアドレスから読み取られるまたはそれに書き込まれることができる任意の情報を含むように十分広く解釈されるべきである。本定義では、ネットワーク上の情報は、関連プロセッサがネットワークからその情報を取り出すことができるので、まだメモリ内にある。
【0036】
本明細書に示されるおよび記載される実施形態および変形形態は、本発明の原理の例示的なものにすぎず、本発明の範囲および趣旨から逸脱することなしに様々な修正形態が当業者によって実装され得ることが理解されよう。