JP5412924B2 - ノード装置、ノード処理プログラム及びコンテンツデータ削除方法 - Google Patents

ノード装置、ノード処理プログラム及びコンテンツデータ削除方法 Download PDF

Info

Publication number
JP5412924B2
JP5412924B2 JP2009087909A JP2009087909A JP5412924B2 JP 5412924 B2 JP5412924 B2 JP 5412924B2 JP 2009087909 A JP2009087909 A JP 2009087909A JP 2009087909 A JP2009087909 A JP 2009087909A JP 5412924 B2 JP5412924 B2 JP 5412924B2
Authority
JP
Japan
Prior art keywords
content data
content
node
stored
storage area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009087909A
Other languages
English (en)
Other versions
JP2010238144A (ja
Inventor
卓哉 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2009087909A priority Critical patent/JP5412924B2/ja
Publication of JP2010238144A publication Critical patent/JP2010238144A/ja
Application granted granted Critical
Publication of JP5412924B2 publication Critical patent/JP5412924B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
この種のピアツーピア型の通信システム(P2Pネットワーク)は、複数のノード装置により構成される。各種コンテンツのデータファイルは、複数のデータファイルの複製データ(以下、「レプリカ」という)として複数のノード装置に分散して保存(配置)させる。データファイルは、映画及び音楽などの各種コンテンツのデータファイルである。一般的には、各ノード装置間でレプリカを利用可能とした分散保存システムが知られている。これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。
そして、上述のノード装置は、所望のコンテンツを取得するとき、当該コンテンツのレプリカの所在を検索(発見)するためのメッセージ(クエリ)が他のノード装置へ送出される。これにより、当該メッセージは、上記DHTにしたがって、当該コンテンツのレプリカの所在の管理元のノード装置に向かって転送される。そして、上記メッセージを送出したノード装置は、上記管理元のノード装置から上記レプリカの所在を示す情報を取得することになる。これにより、上記メッセージを送出したノード装置は、上記検索に係るコンテンツのレプリカを保存しているノード装置にアクセスすることができる。そして、当該レプリカを取得(ダウンロード)することができる。
特開2006−197400号公報
一般的なピアツーピア型の通信システムでは、コンテンツのレプリカを取得したノード装置は、取得したレプリカをキャッシュとして各種記憶手段に保存する。
例えば通信カラオケシステムにピアツーピア型の通信システムを適用することを考えると、月ごとに定期的に配信されノード装置がコンテンツの使用にかかわらず記憶されるコンテンツなどがある。また、定期的に配信される定期配信コンテンツの他、ユーザーからのリクエストに応じて使用するたびに取得して記憶手段に記憶されるコンテンツがある。
ところで、上記の定期配信コンテンツは、配信された直後からノード装置に記憶されるまで頻繁に利用される。しかし、時間の経過に伴い、各ノード装置の定期配信コンテンツのコンテンツデータは、緩やかに利用率が低下していくことが考えられる。そのため、利用率が低くなったコンテンツをいつまでも記憶手段にキャッシュしておくことは、ノード装置の記憶資源を有効に利用するといった観点から得策でない。
本発明は、以上の点等に鑑みてなされたものであり、記憶したコンテンツデータのうち、定期配信コンテンツなど、予め蓄積指示された蓄積コンテンツデータを所定のタイミングで削除することで、ハードディスク等の記憶手段にかかる負荷を抑制することが可能なノード装置、ノード処理プログラム、及びコンテンツデータ削除方法を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムにおける前記ノード装置であって、前記コンテンツ分散保存システムに参加する他のノード装置に対して、前記コンテンツデータの送信を要求し、当該コンテンツデータを取得するコンテンツデータ要求取得手段と、前記コンテンツデータ要求取得手段により取得された要求コンテンツデータと、コンテンツデータを配信するサーバ装置または他のノード装置から予め蓄積指示された蓄積コンテンツデータと、を含む前記コンテンツ分散保存システムにて利用可能なコンテンツデータを記憶する第1記憶領域と、前記蓄積コンテンツデータを記憶する第2記憶領域と、を含む記憶手段と、前記第1記憶領域に記憶されたコンテンツデータが、前記サーバ装置または前記他のノード装置によって予め蓄積指示されたコンテンツデータであるか否かを判別するコンテンツ判別手段と、前記第1記憶領域に記憶されたコンテンツデータのうち、前記コンテンツ判別手段により判別された前記蓄積コンテンツデータが公開される公開日時が記述された公開日時情報を取得する公開日時情報取得手段と、取得された公開日時情報が示す公開日時に基づいて、前記第1記憶領域に記憶された前記蓄積コンテンツデータを削除すべきタイミングか否かを判断する判断手段と、前記判断手段により削除すべきタイミングであると判断された場合に、前記第1記憶領域に記憶されたコンテンツデータのうち、前記蓄積コンテンツデータを削除する削除手段と、を有することを特徴とするノード装置である。
この発明によれば、記憶手段の第1記憶領域に記憶された蓄積コンテンツデータについて、公開日時に基づいて削除すべきタイミングか否かを判断し、削除すべきタイミングであれば、当該蓄積コンテンツデータを削除するので、記憶手段に記憶されるコンテンツデータの量を抑制することができ、記憶手段の負荷増大を防止して、記憶手段へのアクセス処理速度(応答性)を向上させることができる。
上記課題を解決するために、請求項2に記載の発明は、請求項1に記載のノード装置において、前記判断手段は、前記公開日時から、所定時間が経過したとき、前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであると判断することを特徴とするノード装置である。
この発明によれば、蓄積コンテンツデータがコンテンツ分散保存システム内の各ノード装置に満遍なく行き渡ったタイミングで、当該蓄積コンテンツデータを第1記憶領域から削除することができる。
上記課題を解決するために、請求項3に記載の発明は、請求項1またはから請求項2に記載のノード装置において、前記第1記憶領域に記憶されたコンテンツデータを削除する日時であるか否かを判定する日時判定手段を有し、前記日時判定手段により、前記コンテンツデータを削除する日時であると判定された場合に、前記判断手段は前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであるか否かを判断することを特徴とするノード装置である。
この発明によれば、ユーザーによる指示等を受けなくても、予め定められた削除日時に自動的に蓄積コンテンツデータの削除処理を実行することができる。
上記課題を解決するために、請求項4に記載の発明は、請求項1から請求項3のいずれか一項に記載のノード装置において、前記コンテンツデータ要求取得手段が、前記コンテンツデータの送信を要求したときに、前記判断手段は、前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであるか否かを判断することを特徴とするノード装置である。
この発明によれば、新たなコンテンツデータを取得する際に、記憶手段の負荷が増大することを防止することができる。
上記課題を解決するために、請求項5に記載の発明は、請求項1から請求項4のいずれか一項に記載のノード装置であって、前記判断手段は、乱数を生成する乱数生成手段を有し、生成された乱数が、所定範囲内である場合にのみ、前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであると判断することを特徴とするノード装置である。
この発明によれば、生成した乱数が所定範囲内の場合にのみ蓄積コンテンツデータを削除するので、各ノード装置にて行なわれる削除処理において、一斉に当該蓄積コンテンツデータが削除されることを防止してコンテンツ分散保存システムを安定的に保つことができる。
上記課題を解決するために、請求項6に記載の発明は、コンピュータを、請求項1乃至5の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラムである。
上記課題を解決するために、請求項7に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムの前記ノード装置におけるコンテンツデータ削除方法であって、前記コンテンツ分散保存システムに参加する他のノード装置に対して、前記コンテンツデータの送信を要求し、当該コンテンツデータを取得するコンテンツデータ要求取得工程と、前記コンテンツデータ要求取得工程により取得された要求コンテンツデータと、コンテンツデータを配信するサーバ装置または他のノード装置から予め蓄積指示された蓄積コンテンツデータと、を含む前記コンテンツ分散保存システムにて利用可能なコンテンツデータを記憶手段の第1記憶領域に記憶させる工程と、前記蓄積コンテンツデータを前記記憶手段の第2記憶領域に記憶させる工程と、前記第1記憶領域に記憶されたコンテンツデータが、前記サーバ装置または前記他のノード装置によって予め蓄積指示されたコンテンツデータであるか否かを判別するコンテンツ判別工程と、前記第1記憶領域に記憶されたコンテンツデータのうち、前記コンテンツ判別工程により判別された前記蓄積コンテンツデータが公開される公開日時が記述された公開日時情報を取得する公開日時情報取得工程と、取得された公開日時情報が示す公開日時に基づいて、前記第1記憶領域に記憶された前記蓄積コンテンツデータを削除すべきタイミングか否かを判断する判断工程と、前記判断工程により削除すべきタイミングであると判断された場合に、前記第1記憶領域に記憶されたコンテンツデータのうち、前記蓄積コンテンツデータを削除する工程と、を有することを特徴とするコンテンツデータ削除方法である。
本発明によれば、記憶手段の第1記憶領域に記憶された蓄積コンテンツデータについて、公開日時に基づいて削除すべきタイミングか否かを判断し、削除すべきタイミングであれば、当該蓄積コンテンツデータを削除するので、記憶手段に記憶されるコンテンツデータの量を抑制することができ、記憶手段の負荷増大を防止して、記憶手段へのアクセス処理速度(応答性)を向上させることができる。
本実施形態に係るデータファイル分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。 カタログ情報の一例である。 ノードNnの概要構成例を示すブロック図である。 キャッシュリストの一例である。 ノードNnにおける制御部11のキャッシュリスト更新処理を示すフローチャートである。 ノードNnにおける制御部11のキャッシュ削除処理を示すフローチャートである。
以下、本発明の実施形態を図面に基づいて説明する。
1.コンテンツ分散保存システムの構成及び動作概要
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムSの構成及び動作概要について説明する。
図1は、本実施形態に係るコンテンツ分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a、4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a、5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の通信ネットワーク)8が構築されている。なお、図1の例におけるネットワーク8には、データ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・の何れか)が接続されている。また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9(論理的なネットワーク)である。かかるオーバーレイネットワーク9は、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムS(言い換えれば、オーバーレイネットワーク9)に参加している各ノードNnには、所定桁数からなる固有の識別情報であるノードID(ノード装置識別情報の一例)が割り当てられている。
また、当該ノードIDは、例えば、各ノードNnに個別に割り当てられたIPアドレス或いは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化した値(例えば、bit長が160bit)であり、一つのID空間に偏りなく分散して配置されることになる。
また、各ノードNnは、夫々、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムS上における各種メッセージの転送先を規定しており、具体的には、ID空間内で適度に離れたノードNnのノード情報(ノードID、アドレス情報(IPアドレス及びポート番号等))が複数登録されている。
ところで、コンテンツ分散保存システムSにおいては、内容の異なる様々な映画、アニメ、音楽等のコンテンツの複製データ(以下、「レプリカ」又は「コンテンツデータ」と言う。)が所定のファイル形式で複数のノードNnに分散して保存(格納)されており、各ノードNn間で当該レプリカを利用可能になっている。例えば、ノードN5には、タイトルがXXXの映画のコンテンツのレプリカが保存されており、一方、ノードN3には、タイトルがYYYの映画のコンテンツのレプリカが保存されるというように、複数のノードNn(以下、「コンテンツ保持ノード」という)に分散されて保存されている。
また、これらのコンテンツのレプリカには、夫々、コンテンツ名(タイトル)及びコンテンツID等の情報が付加されている。当該コンテンツIDは、コンテンツ毎に固有の識別情報(コンテンツ識別情報の一例)である。このコンテンツIDは、例えば、コンテンツ名+任意の数値が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される。コンテンツの先頭数バイトであり、でも良い。そして、コンテンツIDは、ノードIDと同一のID空間に配置される。また、システム管理者が、ノードIDと同一ビット長であるコンテンツIDを、コンテンツ毎に一意に付与しても良い。ノードIDとコンテンツIDは、同一のID空間に存在するよう構成される。なお、ID空間については、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
このように分散保存されているコンテンツのレプリカの所在、つまり、当該レプリカを保存(記憶、キャッシュとも言う。)したノードNnのノード情報(ノードID、アドレス情報)と当該コンテンツのコンテンツID等の組が含まれるインデックス情報が、当該コンテンツのレプリカの所在を管理しているノードNn(以下、「ルートノード」、又は「コンテンツ(コンテンツID)のルートノード」という)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている。
このようなコンテンツ分散保存システムSにおいて、コンテンツデータをダウンロードする際には、コンテンツをリクエストするユーザーノードが、先ず、コンテンツ分散保存システムSを運営する管理者の管理サーバ(サーバ装置の一例)等から各ノードNnに配布されたカタログ情報を参照して、取得したいコンテンツのコンテンツIDを取得する。
なお、カタログ情報には、コンテンツの属性情報が記述(記憶)されており、この属性情報としては、例えば、コンテンツID、コンテンツの公開日時を示す公開日時情報、コンテンツ種別を示すコンテンツ種別情報(後述する)、コンテンツの検索用キーワード、コンテンツの評価値、コンテンツタイトル(コンテンツが映画の場合、映画タイトル、コンテンツが楽曲の場合、楽曲タイトル、コンテンツが放送番組の場合、番組タイトル)、ジャンル(コンテンツが映画の場合、アクション、ホラー、コメディ、ラブストーリー等、コンテンツが音楽の場合、ロック、ジャズ、ポップス、クラシック等、コンテンツが放送番組の場合、ドラマ、スポーツ、ニュース、映画、音楽、アニメ、バラエティ等)、アーティスト名(コンテンツが音楽の場合の歌手、グループ等)、出演者(コンテンツが映画や放送番組の場合のキャスト)、監督名(コンテンツが映画の場合)等が挙げられる。
図2は、カタログ情報の一例である。
図2に示すカタログ情報の場合、コンテンツの公開日時情報、コンテンツ種別情報、コンテンツタイトル、コンテンツの検索用キーワードが、それぞれコンテンツIDに対応付けて記述されている。なお、同図に示す公開日時情報では、説明を簡単にするため、公開日時情報は公開日までの情報とし、日時の単位までは限定していない。また、説明を簡単にするため、コンテンツIDは8桁としている。
そして、ユーザーノードは、コンテンツ保存ノードの所在を検索すべく、取得したコンテンツIDを含む検索メッセージ(クエリ)を生成する。そして、生成したクエリをルーティングテーブルに従ってルートノードに向けて送出し、ルートノードからコンテンツのコンテンツデータを保存するコンテンツ保存ノードのアドレス情報を送信してもらう。そして、アドレス情報に従ってコンテンツ保存ノードにアクセスして、コンテンツ送信要求メッセージを送信し、そこからそのコンテンツのコンテンツデータをダウンロードする。或いは、ユーザーノードからクエリを受信したルートノードが、コンテンツ保存ノードに対してユーザーノードのアドレス情報を含むコンテンツ送信要求メッセージを送信し、これにより、ユーザーノードが、上記コンテンツ保存ノードからそのコンテンツのコンテンツデータをダウンロードすることもできる。
なお、このようなDHTを用いたルーティングテーブルや、当該ルーティングテーブルを利用した各ノードNn間におけるメッセージの転送(ルーティング)については、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
2.コンテンツ種別
コンテンツ種別は、当該コンテンツが各ノードNnからの送信(ダウンロード)要求に応じてダウンロードされるコンテンツと、管理者の管理サーバから定期的に投入される定期配信コンテンツとを区別するものである。
要求に応じてダウンロードされるコンテンツは、当該ノードNnがリクエストノードとなって、例えば、上記DHTを用いたルーティングに従い、コンテンツ保持ノードから取得されるコンテンツである。当該コンテンツは、本発明の要求コンテンツデータの一例であって、以下の説明において、“On Demand型のコンテンツ”と称する。図2に示す例では、コンテンツIDが“959b9c99”や“158432c3”のコンテンツなどがOn Demand型のコンテンツである。
一方、定期配信コンテンツは、本発明の蓄積コンテンツデータの一例であって、1月の新曲のコンテンツ、2月の新曲のコンテンツ・・等、定期的に管理サーバから予め蓄積指示されて配信されるコンテンツである。管理サーバは定期配信コンテンツの配信時期がくると、定期配信コンテンツのコンテンツデータをコンテンツ分散保存システムS内のノードNnに送信(アップロード)する。定期配信コンテンツを、以下の説明において、“Push型のコンテンツ”と称する。図2に示す例では、コンテンツIDが“2e02f64c”や“15436bce”のコンテンツなどがPush型のコンテンツである。
なお、コンテンツ分散保存システムSに含まれるノードNnが上記管理サーバとして機能する場合もあり、この場合には、Push型のコンテンツは、管理サーバとして機能するノードNnから予め蓄積指示されて配信されることとなる。
ところで、ノードNnは、コンテンツを使用(再生)する際、On Demand型のコンテンツのコンテンツデータを、ネットワークを介して要求し取得する場合がある。再生するときに取得されたOn Demand型のコンテンツは、コンテンツ分散保存システムSにおける各ノードNn間で共用可能となるよう、第1記憶領域の一例である要求記憶領域に保存される。
一方でPush型のコンテンツは、コンテンツの使用に関係ない、つまり、ノードNnが当該コンテンツを再生(使用)するか否かに関係なく、管理サーバから定期的に配信されたPush型のコンテンツである。この場合、Push型のコンテンツは、要求記憶領域に記憶される。そして、Push型のコンテンツは、予め蓄積指示されているため、さらに要求記憶領域とは異なる保存記憶領域に記憶される。保存記憶領域は、本発明の第2記憶領域の一例である。保存記憶領域は、ノードNn内の記憶部内に具備される場合もあれば、外部のビデオサーバ内に具備される場合もある。コンテンツの使用に関わらず記憶されるコンテンツは、例えば、定期配信されるコンテンツである。いわば、要求記憶領域は、P2Pネットワークを動作させるために必要なコンテンツデータを記憶するための記憶領域であり、当該要求記憶領域からコンテンツデータが要求に応じて取得される。
上述した要求記憶領域に記憶されたコンテンツデータのうち、Push型のコンテンツデータは、管理サーバから配信された直後は、コンテンツ分散保存システムSに参加する各ノードNn間で頻繁にダウンロードされる。
従って、各ノードNnでPush型のコンテンツデータが再生処理され、保存記憶領域に記憶されるにつれ、各ノードNnの要求記憶領域に記憶されたPush型のコンテンツデータは、時間の経過に伴い緩やかに利用率が低下していくことが考えられる。
そのため、利用率が低くなったコンテンツのコンテンツデータをいつまでも要求記憶領域にキャッシュしておくことは、ノードNnの要求記憶領域の記憶資源を有効に利用するといった観点から得策でない。
そこで、ノードNnが要求記憶領域にキャシュしているコンテンツデータのうち、Push型のコンテンツのコンテンツデータを、所定のタイミングで削除するよう構成した。
3.ノードNnの構成及び機能
次に、図3を参照して、ノードNnの構成及び機能について説明する。
図3は、ノードNnの概要構成例を示すブロック図である。
各ノードNnは、制御部11と、記憶部12と、バッファメモリ13と、デコーダ部14と、映像処理部15と、表示部16と、音声処理部17と、スピーカ18と、通信部20と、入力部21とから構成される。制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。
制御部11は、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成される。制御部11は、本実施形態のコンピュータとして機能する。記憶部12は、各種データ及び各種プログラム等を記憶保存(格納)するためを記憶するハードディスク等から構成される。例えば、記憶部12は、コンテンツデータ、ルーティングテーブルを記憶する。バッファメモリ13は、受信されたコンテンツデータ等を一時蓄積する。デコーダ部14は、エンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する。コンテンツが映像や音声を含む場合に、デコーダ部14は、コンテンツのレプリカに含まれるエンコードされたビデオデータおよびオーディオデータ等をデコードする。映像処理部15は、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。表示部16は、映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等である。音声処理部17は、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する。スピーカ18は、音声処理部17から出力されたオーディオ信号を音波として出力する通信部20は、ネットワーク8を通じて他のノードNn等間の情報の通信制御を行なう。入力部21は、ユーザーからの指示を受け付け、指示に応じた指示信号を制御部11へ通信する。入力部21は、例えば、キーボード、マウス、或いは、操作パネル等である。
制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。
なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、通信カラオケ装置、或いは、TV受信機等を適用可能である。
記憶部12には、当該ノードNn自身のアドレス情報が記憶されている。
また、コンテンツ分散保存システムSへ参加後は、記憶部12には、当該ノードNn自身のノードID、ルーティングテーブル、カタログ情報(図2参照)が記憶され、更に、自己が所在を管理する、言い換えれば、自己がルートノードとなるコンテンツの保持ノードであるノードNnのノード情報と当該コンテンツのコンテンツIDの組が含まれるインデックス情報がインデックスキャッシュとして記憶される。
更に、記憶部12は、要求記憶領域と保存記憶領域とを備える。
要求記憶領域には、On Demand型、およびPush型のコンテンツのコンテンツデータが記憶され、保存記憶領域には、Push型のコンテンツのコンテンツデータが記憶される。
更にまた、記憶部12には、当該記憶部12の要求記憶領域に記憶(キャッシュ)されているコンテンツデータに関する情報がキャッシュリストとして記憶されている。
図4は、キャッシュリストの一例である。
要求記憶領域に、コンテンツIDが“2e02f64c”、“959b9c99”及び“e28672c3”の3つのコンテンツデータが記憶されている場合、これらコンテンツデータに関する情報として、コンテンツID、公開日時情報、コンテンツ種別情報が登録されている。
制御部11が他のノードNn又は管理サーバからコンテンツデータを取得したときに、制御部11の制御に基づいて後述する「キャッシュリスト更新処理」が実行され、キャッシュリストに新たなコンテンツデータに係るコンテンツID、公開日時情報及びコンテンツ種別情報が追加される。そして、後述する「キャッシュ削除処理」の際、当該キャッシュリストが参照され、コンテンツ種別がPush型のコンテンツである場合に当該コンテンツデータが要求記憶領域から削除されるようになっている。
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムSへの参加により上述したユーザーノード、中継ノード、ルートノード、コンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行なうようになっている。
また、制御部11は、本発明のノード処理プログラムを実行することにより、本発明における記憶手段、コンテンツデータ要求取得手段、記憶手段、コンテンツ判別手段、公開日時情報取得手段、判断手段、削除手段、日時判定手段、乱数生成手段等として機能する。なお、上記ノード処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
4.ノードNnの処理
ノードNnにおける処理を、図を参照して詳しく説明する。
4−1.キャッシュリスト更新処理
図5は、ノードNnにおける制御部11のキャッシュリスト更新処理を示すフローチャートであり、管理サーバから(或いは他のノードNnを介して)管理サーバから新たに配信されたPush型コンテンツのコンテンツデータを取得したとき、或いは、当該ノードNnがユーザーノードとなってコンテンツ保持ノードから新たにOn Demand型コンテンツのコンテンツデータを取得したときに、制御部11による制御に基づいて開始される処理である。なお、当該キャッシュリスト更新処理は、本発明のノード処理プログラムの一部である。
先ず、制御部11は、取得したコンテンツデータを記憶部12の要求記憶領域に記憶(キャッシュ)する(ステップS10)。
次いで、制御部11は、記憶部12のカタログ情報から、ステップS10にて記憶したコンテンツデータのコンテンツIDに対応する公開日情報及びコンテンツ種別情報を抽出し(ステップS11)、記憶部12のキャッシュリストに登録(追加)して(ステップS12)処理を終了する。
なお、ステップS11及びS12の処理を先に行なった後に、ステップS10の処理を行ってもよい。すなわち、取得したコンテンツデータについて、カタログ情報から当該コンテンツデータのコンテンツIDに対応する公開日情報及びコンテンツ種別情報を抽出しキャッシュリストに登録した後に、取得したコンテンツデータを記憶部12の要求記憶領域に記憶するよう構成してもよい。
4−2.キャッシュ削除処理
図6は、ノードNnにおける制御部11のキャッシュ削除処理を示すフローチャートであり、コンテンツ分散保存システムSへの参加後に開始する処理である。なお、当該キャッシュ削除処理は、本発明のノード処理プログラムの一部である。
先ず、制御部11は、当該ノードNn自身の電源がオフとされたか否かを判定し(ステップS20)、電源がオフとされた場合(ステップS20:Yes)には処理を終了し、電源がオフとされていない場合(ステップS20:No)には、予め定められた削除日時であるか否かを判定する(ステップS21)。
判定の結果、削除日時である場合(ステップS21:Yes)には、記憶部12の要求記憶領域に記憶されている全てのコンテンツデータに対して削除処理を行なう(ステップS22〜ステップS29)。この処理は、要求記憶領域に記憶されている全てのコンテンツデータが登録されたキャッシュリストに基づいて行なわれる処理であり、キャッシュリストに登録された全てのコンテンツに対して順に行なわれる処理である。
先ず、制御部11は、当該ノードNn自身の電源がオフとされたか否かを判定し(ステップS23)、電源がオフとされた場合(ステップS23:Yes)には処理を終了し、電源がオフとされていない場合(ステップS23:No)には、キャッシュリストの最初のコンテンツのコンテンツ種別情報(例えば、図4に示すキャッシュリストの最初に登録されたコンテンツ種別)を取得し、当該コンテンツ種別情報が示すコンテンツ種別がPush型であるか否かを判定する(ステップS24)。
判定の結果、Push型で無い場合(ステップS24:No)には、ステップS29へ移行し、Push型である場合(ステップS24:Yes)には、当該コンテンツの公開日時情報をキャッシュリストから取得し、当該公開日時情報が示す公開日時に基づいて、当該コンテンツを削除すべきタイミングか否かを判断する。ここでは、当該公開日時から所定時間(例えば、1ヶ月等)が経過したか否かを判断し(ステップS25)、所定時間が経過していない場合(ステップS25:No)には、削除すべきタイミングではないと判断して、ステップS29へ移行する。
一方、所定時間が経過した場合(ステップS25:Yes)には、削除すべきタイミングであると判断して、乱数を生成し(ステップS26)、生成した乱数が所定範囲内であるか否かを判定する(ステップS27)。ステップS26の所定範囲とは、例えば、“乱数が偶数”“乱数が3の倍数”“乱数の下1桁が削除対象となるコンテンツのコンテンツIDの下一桁と同じ”等とするものである。
判断の結果、生成した乱数が所定範囲内でない場合(ステップS27:No)には、ステップS29へ移行し、所定範囲内である場合(ステップS27:Yes)には、当該コンテンツのコンテンツデータを要求記憶領域から削除する(ステップS28)。
そして、キャッシュリストに登録された全てのコンテンツに対してステップS23〜ステップS28の処理を行なった後に(ステップS29)、ステップS20の処理に移行し、電源がオフとされる(ステップS20:Yes)まで上記処理が繰り返し行なわれる。
一方、ステップS21の判定の結果、予め定められた削除日時でない場合(ステップS21:No)には、ステップS30へ移行して、コンテンツ分散保存システムSに参加するノードNnとしてのその他の処理(上述した「キャッシュリスト更新処理」、その他ユーザーノード、中継ノード、ルートノード、コンテンツ保持ノードとしての処理)を行ない(ステップS30)、ステップS20へ移行する。
以上説明したように、ノードNnが、要求記憶領域に記憶したコンテンツデータのうち、Push型のコンテンツデータについて公開日に基づいて当該コンテンツデータを削除すべきタイミングか否かを判断し、削除すべきタイミングである場合には、当該コンテンツデータを要求記憶領域から削除するよう構成したので、Push型のコンテンツデータのみを削除して要求記憶領域に記憶されるコンテンツデータの量を抑制することにより、要求記憶領域の負荷増大を防止して、要求記憶領域へのアクセス処理速度(応答性)を向上させることができる。
更に、本実施形態では、コンテンツの公開日時から所定時間経過したか否かに基づいて、当該コンテンツデータを削除すべきタイミングか否かを判断するよう構成したので、当該コンテンツデータがコンテンツ分散保存システムS内にて利用されるようになってから、適当な期間を経過したとき(例えば1ヶ月等)、つまり、当該コンテンツが各ノードNnにて適度に満遍なく行き渡ったタイミングで、当該コンテンツデータを要求記憶領域から削除することができる。
なお、コンテンツデータのデータ量が多いほど、各ノードNn間での送受信に時間がかかることから、各ノードNnにて満遍なく行き渡るまでの時間も長くなると予測することができるため、上記公開日からの所定時間は、コンテンツデータのデータ量に応じて適宜定めてもよい。この場合、カタログ情報にコンテンツデータのデータ量から事前に算出された公開日からの所定時間の情報もコンテンツIDに対応付けて記述しておき、上述した「キャッシュリスト更新処理」にて、キャッシュリストに当該公開日からの所定時間の情報も登録するよう構成し、当該コンテンツの公開日と当該所定時間の情報に基づいて当該コンテンツデータを削除すべきタイミングか否かを判断するよう構成すればよい。
また、コンテンツデータのデータ量をカタログ情報に記述しておき、各ノードNnが当該データ量に応じて公開日からの所定時間を算出するよう構成してもよい。この場合、算出方法は記憶部12に記憶しておくか、カタログ情報に記述しておくよう構成すればよい。
更に、ステップS21にて削除日時であると判定された場合に、削除処理(ステップS22〜ステップS29)を行なうよう構成したので、例えば、毎日午前5時、毎週月曜午前0時等を削除日時として予め定めておくことにより、ユーザーによる指示等を受けなくても、自動的にコンテンツデータの削除処理を実行することができる。
なお、ノードNnが、新たなコンテンツの取得を要求したときに、削除処理(ステップS22〜ステップS29)を行なうよう構成してもよい。ノードNnが所望のコンテンツを取得(ダウンロード)する場合には、当該ノードNnが、ユーザーノードとなって、取得を所望するコンテンツのコンテンツIDを含むクエリをルートノードに向けて送出し、ルートノードからコンテンツのレプリカを保持するコンテンツ保持ノードのアドレス情報を教えてもらい、ユーザーノードからコンテンツ保持ノードにコンテンツ送信要求メッセージを送信して取得する場合と、ルートノードがコンテンツ保持ノードにユーザーノードのアドレス情報を含むコンテンツ送信要求メッセージを送信し、コンテンツ保持ノードがユーザーノードにコンテンツデータを送信する場合とがあるが、前者の場合にはコンテンツ保持ノードにコンテンツ送信要求メッセージを送信したとき、後者の場合にはクエリをルートノードに向けて送出したときに、削除処理を行なうようにすればよい。
また、ステップS26にて乱数を生成し、ステップS27にて生成した乱数が所定範囲内である場合にのみ、コンテンツデータを削除するよう構成したので、当該コンテンツデータが公開日時から所定時間経過したときに、各ノードNnにて行なわれるキャッシュ削除処理において、一斉に削除されることを防止し、コンテンツ分散保存システムSを安定的に保つことができる。なお、生成した乱数が所定範囲外となったノードNnは、次の削除日時の際に再度当該コンテンツデータに対する削除処理を試みることができる。本実施形態のステップS26及びステップS27では、生成した乱数に基づいてコンテンツデータを削除の可否を判定した。ステップS26及びステップS27の削除可否の判定処理は実行されても良いし、実行されなくてもよい。
なお、上記コンテンツ分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
本実施形態では、Push型のコンテンツとして、管理サーバから定期的に配信されたコンテンツの例を記載した。本実施形態では、Push型のコンテンツのコンテンツデータが全ノードNnに配信完了されていない場合、使用(再生)する際に要求し取得されるコンテンツデータとして、On Demand型のコンテンツだけでなく、Push型のコンテンツが用いられる場合がある。この場合、使用(再生)する際に要求し取得されたPush型のコンテンツデータは、一旦要求記憶領域に記憶され、次に要求記憶領域とは異なる保存記憶領域に記憶される。上述の使用(再生)する際に要求し取得されて要求記憶領域に記憶されたPush型のコンテンツに対しても本発明は適用可能である。
3 IX
4a、4b ISP
5a、5b DSL回線業者
6 FTTH回線業者
7 通信回線
8 ネットワーク
9 オーバーレイネットワーク(P2Pネットワーク)
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード

Claims (7)

  1. ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを前記複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムにおける前記ノード装置であって、
    前記コンテンツ分散保存システムに参加する他のノード装置に対して、前記コンテンツデータの送信を要求し、当該コンテンツデータを取得するコンテンツデータ要求取得手段と、
    前記コンテンツデータ要求取得手段により取得された要求コンテンツデータと、コンテンツデータを配信するサーバ装置または他のノード装置から予め蓄積指示された蓄積コンテンツデータと、を含む前記コンテンツ分散保存システムにて利用可能なコンテンツデータを記憶する第1記憶領域と、前記蓄積コンテンツデータを記憶する第2記憶領域と、を含む記憶手段と、
    前記第1記憶領域に記憶されたコンテンツデータが、前記サーバ装置または前記他のノード装置によって予め蓄積指示されたコンテンツデータであるか否かを判別するコンテンツ判別手段と、
    前記第1記憶領域に記憶されたコンテンツデータのうち、前記コンテンツ判別手段により判別された前記蓄積コンテンツデータが公開される公開日時が記述された公開日時情報を取得する公開日時情報取得手段と、
    取得された公開日時情報が示す公開日時に基づいて、前記第1記憶領域に記憶された前記蓄積コンテンツデータを削除すべきタイミングか否かを判断する判断手段と、
    前記判断手段により削除すべきタイミングであると判断された場合に、前記第1記憶領域に記憶されたコンテンツデータのうち、前記蓄積コンテンツデータを削除する削除手段と、
    を有することを特徴とするノード装置。
  2. 請求項1に記載のノード装置において、
    前記判断手段は、前記公開日時から、所定時間が経過したとき、前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであると判断することを特徴とするノード装置。
  3. 請求項1または請求項2に記載のノード装置において、
    前記第1記憶領域に記憶されたコンテンツデータを削除する日時であるか否かを判定する日時判定手段を有し、
    前記日時判定手段により、前記コンテンツデータを削除する日時であると判定された場合に、前記判断手段は前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであるか否かを判断することを特徴とするノード装置。
  4. 請求項1から請求項3のいずれか一項に記載のノード装置において、
    前記コンテンツデータ要求取得手段が、前記コンテンツデータの送信を要求したときに、前記判断手段は、前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであるか否かを判断することを特徴とするノード装置。
  5. 請求項1から請求項4のいずれか一項に記載のノード装置であって、
    前記判断手段は、乱数を生成する乱数生成手段を有し、生成された乱数が、所定範囲内である場合にのみ、前記サーバ装置又は前記他のノード装置によって予め蓄積指示されたコンテンツデータを削除すべきタイミングであると判断することを特徴とするノード装置。
  6. コンピュータを、請求項1乃至5の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
  7. ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムの前記ノード装置におけるコンテンツデータ削除方法であって、
    前記コンテンツ分散保存システムに参加する他のノード装置に対して、前記コンテンツデータの送信を要求し、当該コンテンツデータを取得するコンテンツデータ要求取得工程と、
    前記コンテンツデータ要求取得工程により取得された要求コンテンツデータと、コンテンツデータを配信するサーバ装置または他のノード装置から予め蓄積指示された蓄積コンテンツデータと、を含む前記コンテンツ分散保存システムにて利用可能なコンテンツデータを記憶手段の第1記憶領域に記憶させる工程と、
    前記蓄積コンテンツデータを前記記憶手段の第2記憶領域に記憶させる工程と、
    前記第1記憶領域に記憶されたコンテンツデータが、前記サーバ装置または前記他のノード装置によって予め蓄積指示されたコンテンツデータであるか否かを判別するコンテンツ判別工程と、
    前記第1記憶領域に記憶されたコンテンツデータのうち、前記コンテンツ判別工程により判別された前記蓄積コンテンツデータが公開される公開日時が記述された公開日時情報を取得する公開日時情報取得工程と、
    取得された公開日時情報が示す公開日時に基づいて、前記第1記憶領域に記憶された前記蓄積コンテンツデータを削除すべきタイミングか否かを判断する判断工程と、
    前記判断工程により削除すべきタイミングであると判断された場合に、前記第1記憶領域に記憶されたコンテンツデータのうち、前記蓄積コンテンツデータを削除する工程と、
    を有することを特徴とするコンテンツデータ削除方法。
JP2009087909A 2009-03-31 2009-03-31 ノード装置、ノード処理プログラム及びコンテンツデータ削除方法 Expired - Fee Related JP5412924B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009087909A JP5412924B2 (ja) 2009-03-31 2009-03-31 ノード装置、ノード処理プログラム及びコンテンツデータ削除方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009087909A JP5412924B2 (ja) 2009-03-31 2009-03-31 ノード装置、ノード処理プログラム及びコンテンツデータ削除方法

Publications (2)

Publication Number Publication Date
JP2010238144A JP2010238144A (ja) 2010-10-21
JP5412924B2 true JP5412924B2 (ja) 2014-02-12

Family

ID=43092376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009087909A Expired - Fee Related JP5412924B2 (ja) 2009-03-31 2009-03-31 ノード装置、ノード処理プログラム及びコンテンツデータ削除方法

Country Status (1)

Country Link
JP (1) JP5412924B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9131263B2 (en) * 2010-07-09 2015-09-08 Sling Media, Inc. Methods and apparatus for controlled removal of content from a distributed network

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161912A (ja) * 1996-11-29 1998-06-19 Kokusai Electric Co Ltd 情報蓄積方法及び情報端末装置
JP2001222491A (ja) * 2000-02-09 2001-08-17 Nec Corp 情報提供システム、情報提供方法およびクライアント
JP2003046562A (ja) * 2001-07-31 2003-02-14 Nippon Telegr & Teleph Corp <Ntt> 通信網における輻輳検出制御方法、交換機の輻輳制御方法、端末の輻輳制御方法、ip網アクセス端末、プログラム及び記録媒体
JP4082243B2 (ja) * 2003-03-06 2008-04-30 日本電気株式会社 電子メールサーバ及び電子メールシステム並びにプログラム
JP2005182160A (ja) * 2003-12-16 2005-07-07 Ricoh Co Ltd ウェブページ管理方法及びウェブページ管理プログラム
JP4256297B2 (ja) * 2004-04-19 2009-04-22 株式会社東芝 情報中継装置
JP4379365B2 (ja) * 2005-03-29 2009-12-09 ブラザー工業株式会社 コンテンツ提供装置,コンテンツ提供システムおよびプログラム
JP4670604B2 (ja) * 2005-11-21 2011-04-13 ブラザー工業株式会社 情報配信システム、情報処理装置、情報処理プログラム及び情報処理方法
JP5114646B2 (ja) * 2007-06-13 2013-01-09 隼也 瀬端 収斂型データベース構築システム及び構築方法

Also Published As

Publication number Publication date
JP2010238144A (ja) 2010-10-21

Similar Documents

Publication Publication Date Title
WO2008023531A1 (fr) système de sauvegarde à dispersion de contenus, procédé d&#39;acquisition d&#39;image de trame, dispositif de nœud, et support de mémoire comprenant un programme de traitement de nœud stocké dans celui-ci
JP2010113573A (ja) コンテンツ分散保存システム、コンテンツ保存方法、サーバ装置、ノード装置、サーバ処理プログラム、及びノード処理プログラム
JP5136208B2 (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
JP5375272B2 (ja) ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法
JP5412924B2 (ja) ノード装置、ノード処理プログラム及びコンテンツデータ削除方法
JP5353567B2 (ja) 情報処理システム、情報処理装置、ノード装置及びプログラム並びに情報処理方法
JP2010267028A (ja) 管理装置、管理処理プログラム、ノード装置、ノード処理プログラム、及び有効期限切れレコード判定方法
JP2010066930A (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
JP2010108082A (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
US8315979B2 (en) Node device, information communication system, method for retrieving content data, and computer readable medium
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP4935734B2 (ja) コンテンツ分散保存システム、ノード装置及びノード処理プログラム並びにノード処理方法
JP4821501B2 (ja) コンテンツ分散保存システム、フレーム取得方法、及びノード装置等
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
JP2011008657A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム
JP5267475B2 (ja) 情報通信システム、ノード装置、情報通信方法、及び情報通信プログラム
JP5287059B2 (ja) ノード装置、ノード処理プログラム及び保存指示方法
JP2008135952A (ja) ツリー型コンテンツ放送システム、コンテンツカタログ情報作成方法、ノード装置等
JP2010238160A (ja) ノード装置、ノード処理プログラム及びコンテンツデータ保存方法
JP4983183B2 (ja) ノード装置、情報分割保存システム、情報処理プログラム及び情報利用方法
JP5347876B2 (ja) 情報通信システム、ノード装置、コンテンツ取得方法及びプログラム
JP5326970B2 (ja) コンテンツ配信システム、ノード装置、ノードプログラム、及び公開メッセージ送信方法
JP5234041B2 (ja) 情報通信システム、ノード装置および情報処理方法ならびにノード装置用プログラム
JP5327032B2 (ja) 情報通信システム、ノード装置、情報通信方法及び情報通信プログラム
JP2009129161A (ja) コンテンツ分散保存システム、コンテンツ評価値決定方法、配信装置、及び配信処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131028

R150 Certificate of patent or registration of utility model

Ref document number: 5412924

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees