説明

ノード装置、ノード装置用プログラムおよび情報処理方法

【課題】コンテンツの保存先を新たに決定する場合に、そのコンテンツの配信を迅速且つスムーズに行うように決定できる配信システムを提供する。
【解決手段】複数のルータRm等により構成されるオーバーレイネットワークによりルータRm等に分散してコンテンツが保存される配信システムSのルータRm等において、そのルータRm等がネットワークNWに接続するための通信回線の使用状態を取得し、その通信回線が第1閾値以上に使用されているかを判定し、通信回線が第1閾値以上に使用されているとき、他のルータRm等の中から、コンテンツを新たに保存させるルータRm等を決定する。決定されたルータRm等との間でセッションを確立し、そのルータRm等が接続されている通信回線の使用状態を取得する。取得した使用状態に基づいて、通信回線の使用状態が第2閾値以下であるルータRm等を、コンテンツの新たな保存先として決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、ノード装置、ノード装置用プログラムおよび情報処理方法の技術分野に属する。なお以下の説明では、「ノード装置」を適宜「ノード」と称する。
【背景技術】
【0002】
近年、ピアツーピア(Peer to Peer(P2P))型のネットワークを介して、映画や動画等のコンテンツを配信する技術が開発されている。以下の説明では、P2P型のネットワークを単に「P2Pネットワーク」と称する。P2Pネットワークでは、P2Pネットワーク内に存在するノードそれぞれにコンテンツが分散保存される。そして各ノードは、ノード間でコンテンツを共有しつつ、互いに送受信する。P2Pネットワークについては、たとえば下記特許文献1に詳細に開示されている。このようなP2Pネットワークによれば、配信対象のコンテンツのデータ量が増大した場合でも、従来のクライアント−サーバ方式に含まれるサーバ装置への負荷増大に起因する配信障害等を回避できる。なお以下の説明では、「サーバ装置」を適宜「サーバ」と称する。
【0003】
一方P2Pネットワークにおいて、特定のコンテンツを保存しているノードに配信要求が集中すると、そのノードからの配信が遅延する。このような遅延を解消するため、他のノード内にそのコンテンツの複製を保存させる。コンテンツは、その複製が保存されたノードからも配信される。このような複製の作成方法として、たとえば下記特許文献2に開示されている手法がある。特許文献2に開示されている手法の一例では、他のノードとの間における往復遅延時間を検出し、それに基づいて、複製を保存させる他のノードを検索する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−197400公報
【特許文献2】特開2005−227842公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
P2Pネットワーク内のノードにコンテンツの複製を保存させる場合、その複製を用いた配信を迅速且つスムーズに開始させる必要がある。しかしながら特許文献2に記載されたP2Pネットワークでは、複製の保存先を検索するに当たり、検索対象のノードの使用状態等は考慮されていない。このため、たとえばそのノードに接続されている回線が混雑している場合等においては、複製を保存させても迅速且つスムーズにその配信を開始させることができない。
【0006】
そこで、本発明は上記の問題点に鑑みて為されたもので、その目的の一例は、コンテンツの保存先を新たに決定する場合に、そのコンテンツの配信を迅速且つスムーズに行うように決定することが可能なノード装置ならびに情報通信方法およびノード装置において実行されるノード装置用プログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、請求項1に記載の発明は、ネットワークを介して相互に通信可能な複数のノード装置により構成されるオーバーレイネットワークにより、コンテンツが前記複数のノード装置に分散して保存される通信システムの前記ノード装置において、前記コンテンツを記憶する記憶部等の記憶手段と、前記ネットワークに接続するために、前記記憶手段を備える前記ノード装置が接続されている通信回線の使用状態を示す第1状態情報を取得する制御部等の第1取得手段と、前記第1取得手段により取得された前記第1状態情報に基づいて、所定の第1閾値以上に前記通信回線が使用されているかを判定する制御部等の判定手段と、前記通信回線が前記第1閾値以上に使用されているとき、前記オーバーレイネットワークに参加する前記ノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定する制御部等の第1決定手段と、前記第1決定手段により決定された前記ノード装置に接続する制御部等の接続手段と、前記接続手段により接続した前記ノード装置から、前記接続したノード装置が接続されている前記通信回線の使用状態を示す第2状態情報を取得する制御部等の第2取得手段と、前記第2取得手段により取得された前記第2状態情報に基づいて、前記接続手段により接続した前記ノード装置のうち、前記ノード装置に接続されている前記通信回線の使用状態が、所定の第2閾値以下である前記ノード装置を、前記コンテンツの記憶先として決定する制御部等の第2決定手段と、を備える。
【0008】
上記の課題を解決するために、請求項7に記載の発明は、ネットワークを介して相互に通信可能な複数のノード装置により構成されるオーバーレイネットワークにより、コンテンツが前記複数のノード装置に分散して保存される通信システムにおいて実行される情報処理方法において、前記ネットワークに接続するために、前記ノード装置が接続されている通信回線の使用状態を示す第1状態情報を取得する第1取得ステップと、前記取得された第1状態情報に基づいて、所定の第1閾値以上に前記通信回線が使用されているかを判定する判定ステップと、前記通信回線が前記第1閾値以上に使用されているとき、前記オーバーレイネットワークに参加する前記ノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定する第1決定ステップと、前記決定されたノード装置に接続する接続ステップと、前記接続したノード装置から、前記接続したノード装置が接続されている前記通信回線の使用状態を示す第2状態情報を取得する第2取得ステップと、前記取得された第2状態情報に基づいて、前記接続したノード装置のうち、前記ノード装置に接続されている前記通信回線の使用状態が、所定の第2閾値以下である前記ノード装置を、前記コンテンツの記憶先として決定する第2決定ステップと、を含む。
【0009】
請求項1または請求項7に記載の発明によれば、他のノード装置から取得した第2状態情報に基づいて、それに接続されている通信回線の使用状態が第2閾値以下であるノード装置をコンテンツの記憶先と決定する。通信回線の使用状態が第2閾値以下であるノード装置にコンテンツを記憶させることで、記憶保存後のコンテンツを迅速且つスムーズに配信することができる。
【0010】
請求項2に記載の発明において、前記第1決定手段は、前記オーバーレイネットワークに参加する前記複数のノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置をランダムに決定するように構成される。
【0011】
請求項2に記載の発明によれば、記憶すべきコンテンツが未記憶であるノード装置の中からランダムに記憶先の候補を決定する。よって、簡易な構成でランダムに記憶先の候補を検索しつつ、その決定のためのメッセージの数を減らすことができる。
【0012】
請求項3に記載の発明において、前記通信システムにおいては、前記複数のノード装置間において、前記オーバーレイネットワークを介してメッセージが授受されることにより前記コンテンツの記憶および配信が行われ、前記記憶手段を備える前記ノード装置に接続されている前記通信回線が前記第1閾値以上に使用されているとき、前記コンテンツを記憶済みのノード装置を前記オーバーレイネットワークにおいて検索する制御部等の検索手段を更に備え、前記第1決定手段は、前記検索手段により検索された前記ノード装置以外のノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定するように構成される。
【0013】
請求項3に記載の発明によれば、記憶すべきコンテンツが記憶済みであるノード装置を除外して記憶先のノード装置の候補となるノード装置を決定する。よって、記憶済みか否かに拘わらず記憶先の候補を検索する場合に比して、その検索および記憶等のためのメッセージの数を減らすことができる。
【0014】
請求項4に記載の発明において、前記記憶手段の空き容量を決定する制御部等の容量決定手段と、前記容量決定手段により決定された空き容量を示す空き容量情報を、前記空き容量情報を管理する前記オーバーレイネットワークのノード装置宛に送信する通信部等の送信手段と、他の前記ノード装置についての前記空き容量情報を、前記空き容量情報を管理するノード装置から取得する制御部等の第3取得手段と、を備え、前記第1決定手段は、前記第3取得手段により取得された前記空き容量情報に基づき、前記空き容量情報により示される前記空き容量が大きいノード装置から順に、前記コンテンツを記憶させるノード装置の候補となるノード装置として決定するように構成される。
【0015】
請求項4に記載の発明によれば、記憶すべきコンテンツが未記憶であるノード装置について、その記憶手段の空き容量が大きいノード装置から順に記憶先の候補を決定する。よって、各ノード装置の記憶手段を有効に活用してコンテンツを記憶させることができる。
【0016】
請求項5に記載の発明において、前記第2決定手段による前記コンテンツの記憶先の決定において、前記接続手段により接続した各前記ノード装置に接続されている前記通信回線の使用状態が前記第2閾値より高い場合、所定の閾値時間だけ待機した後、前記接続手段は、前記第1決定手段により決定された前記ノード装置に対して再接続し、前記第2取得手段は、前記接続手段により再接続された前記ノード装置から前記第2状態情報を再取得し、前記第2決定手段は、前記第2取得手段により再取得された前記第2状態情報に基づいて、前記コンテンツの記憶先であるノード装置を決定するように構成される。
【0017】
請求項5に記載の発明によれば、接続した各ノード装置に接続されている通信回線の使用状態が第2閾値より高い場合に、閾値時間だけ待機した後に再接続処理および決定処理を行う。コンテンツの記憶先が検索できる可能性が高まり、更に直ちに再接続を行う場合に比して不要なメッセージの授受も防止できる。
【0018】
上記の課題を解決するために、請求項6に記載の発明は、ネットワークを介して相互に通信可能な複数のノード装置により構成されるオーバーレイネットワークにより、コンテンツが前記複数のノード装置に分散して保存される通信システムの前記ノード装置であって、前記コンテンツを記憶する記憶部等の記憶手段を備えるノード装置に含まれるコンピュータに、前記ネットワークに接続するために、前記記憶手段を備える前記ノード装置が接続されている通信回線の使用状態を示す第1状態情報を取得するステップと、前記取得された第1状態情報に基づいて、所定の第1閾値以上に前記通信回線が使用されているかを判定するステップと、前記通信回線が前記第1閾値以上に使用されているとき、前記オーバーレイネットワークに参加する前記ノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定するステップと、前記決定されたノード装置に接続するステップと、前記接続したノード装置から、前記接続したノード装置が接続されている前記通信回線の使用状態を示す第2状態情報を取得するステップと、前記取得された第2状態情報に基づいて、前記接続したノード装置のうち、前記ノード装置に接続されている前記通信回線の使用状態が、所定の第2閾値以下である前記ノード装置を、前記コンテンツの記憶先として決定するステップと、を実行させる。
【0019】
請求項6に記載の発明によれば、他のノード装置から取得した第2状態情報に基づいて、それに接続されている通信回線の使用状態が第2閾値以下であるノード装置をコンテンツの記憶先と決定するようにコンピュータを機能させる。通信回線の使用状態が第2閾値以下であるノード装置にコンテンツを記憶させることで、記憶保存後のコンテンツを迅速且つスムーズに配信することができる。
【発明の効果】
【0020】
本発明によれば、通信回線の使用状態が第2閾値以下であるノード装置にコンテンツを記憶させることで、記憶保存後のコンテンツを迅速且つスムーズに配信することができる。
【図面の簡単な説明】
【0021】
【図1】実施形態の配信システムの概要構成を示す図である。
【図2】実施形態のルータ等の概要構成を示すブロック図である。(a)は実施形態のルータの概要構成を示すブロック図である。(b)は実施形態のユーザ端末およびルータ以外のノードの概要構成を示すブロック図である。
【図3】実施形態のルータにおける処理を示すフローチャートである。(a)はルータにおける全体処理を示すフローチャートである。(b)はルータにおけるコンテンツ要求受付処理を示すフローチャートである。
【図4】実施形態のルータ等における処理を示すフローチャートである。(a)はルータにおける保存先検索処理を示すフローチャートである。(b)はノードにおける複製保存処理を示すフローチャートである。
【図5】変形形態のルータ等における処理を示すフローチャートである。(a)はノードにおける複製保存処理を示すフローチャートである。(b)はルータにおける保存先検索処理を示すフローチャートである。
【発明を実施するための形態】
【0022】
次に、本発明を実施するための形態について、図面に基づいて説明する。以下に説明する実施形態および変形形態は、P2Pネットワーク外のユーザ端末に対してP2Pネットワーク内のノードから動画等のコンテンツを配信する配信システムに対して本発明を適用した場合の実施形態である。
【0023】
(I)実施形態
始めに本発明の実施形態について、図1から図4を用いて説明する。なお、図1は実施形態の配信システムの概要構成を示す図であり、図2は実施形態のルータ等の概要構成を示すブロック図である。また図3および図4は実施形態のルータ等における処理を示すフローチャートである。
【0024】
(A)配信システムの概要構成
始めに図1を参照して、実施形態の配信システムの概要構成について説明する。なお図1は、実施形態に係る配信システムSの概要構成を示す図である。配信システムSは、DNS(Domain Name System)を適用したCDN(Contents Delivery Network system)である。図1に示すように配信システムSは、ネットワークNWに複数の拠点ネットワークNLm(mは自然数。以下同様)が接続されている。これらネットワークNWおよび各拠点ネットワークNLmは、現実世界の通信ネットワークである。
【0025】
ネットワークNWは各拠点ネットワークNLmを相互接続するためのネットワークである。このネットワークNWは、たとえばWAN(Wide Area Network)等である。ネットワークNWは、たとえば、IX(Internet eXchange)、ISP(Internet Service Provider)、DSL(Digital Subscriber Line)回線事業者装置、FTTH(Fiber To The Home)回線事業者装置および通信回線等によって構築されている。なおネットワークNWは配信システムS専用のネットワークであってもよい。
【0026】
各拠点ネットワークNLmは、それぞれ拠点Pmの敷地内に構築されたネットワークである。拠点Pmは、たとえば、企業、学校、病院、公共団体、カラオケボックスの運営母体等の組織が活動する拠点である。拠点ネットワークNLmは、たとえばLAN(Local Area Network)等により構築されている。各拠点ネットワークNLmには複数のユーザ端末Tm−n(nは自然数。以下同様)が接続されている。ユーザ端末Tm−nは、たとえばパーソナルコンピュータ等である。図1においては、一部の拠点ネットワークNLmの図示、およびその拠点ネットワークNLmに接続されているユーザ端末Tm−nの図示を省略している。
【0027】
ネットワークNWには、また、ウェブサーバSW、組織用DNSサーバSOおよびP2P用DNSサーバSPが接続されている。ウェブサーバSWは、たとえば上述した拠点Pmを有する組織が運営するウェブサイトの各種のコンテンツを、ユーザ端末Tm−nに配信するためのサーバである。図1においては、ウェブサーバSWは一台のみ示されているが、ウェブサーバSWは、たとえば組織ごとに設置されている。各ウェブサーバSWには、それぞれ個別にドメイン名が付与されている。
【0028】
組織用DNSサーバSOは、ドメイン名を解決するDNSサーバである。組織用DNSサーバSOは、ユーザ端末Tm−nからのIP(Internet Protocol)アドレスの問い合わせを受け付ける。図1においては、組織用DNSサーバSOは一台のみ示されているが、組織用DNSサーバSOは、たとえば組織ごとに設置されてもよい。P2P用DNSサーバSPも、ドメイン名を解決するDNSサーバである。P2P用DNSサーバSPは、組織用DNSサーバSOからIPアドレスの問い合わせを受け付ける。またP2P用DNSサーバSPには、固有のドメイン名が割り当てられている。
【0029】
各拠点ネットワークNLmには、それぞれルータRmが定常的に接続されている。このルータRmは、拠点ネットワークNLmと、ネットワークNWと、を相互接続する。ルータRmは、たとえばルータ機能を有するファイアーウォール、ブロードバンドルータ等である。なおルータRmは、本発明における「ノード装置」の一例に相当する。
【0030】
(B)P2Pネットワークの概要構成
配信システムSにおいては、コンテンツを配信するためのP2PネットワークであるP2PネットワークPWが構築されている。P2PネットワークPWは、本発明における「通信システム」の一例に相当する。図1に示すようにP2PネットワークPWは、ネットワークNW上に構築された論理的なオーバーレイネットワークである。このP2PネットワークPWは、配信システムSを構成する複数のルータRmと、P2P用DNSサーバSPと、ルータRmおよびP2P用DNSサーバSP以外の他の装置Nr(rは自然数。以下同様)と、の参加により形成されるネットワークである。他の装置Nrは、具体的にはパーソナルコンピュータ、STB(Set Top Box)またはテレビジョン受信機等である。なお、P2PネットワークPWに参加するルータRm、P2P用DNSサーバSPおよび他の装置Nrを、以下「ノード」と称する。ここで、P2PネットワークPWへの「参加」とは、たとえば上記特許文献1に開示されているDHT(Distributed Hash Table)を用いたルーティングテーブルに基づいて他のノードとの間で各種メッセージを送受信できる状態になることをいう。このルーティングテーブルを、以下「DHTルーティングテーブル」という。
【0031】
P2PネットワークPWは、特定のアルゴリズム、たとえばDHTを利用したアルゴリズムにより実現される。P2PネットワークPWに接続する各ノードには、所定桁数からなる固有の識別情報であるノードIDが割り当てられている。図1に示すP2PネットワークPWは、ノードIDのID空間をリング状のものとして示されている。図1のリング状のID空間において示されている各ノードの位置は、それぞれのノードIDに対応している。
【0032】
各ノードは、それぞれ、DHTルーティングテーブルを保持している。DHTルーティングテーブルは、P2PネットワークPW上における各種メッセージの転送先を規定している。具体的にDHTルーティングテーブルには、ID空間内で適度に離れたノードのノードID、IPアドレスおよびポート番号を含むノード情報が複数登録されている。なお、DHTルーティングテーブルを用いたDHTルーティングについては上記特許文献1等で公知であるので、詳しい説明を省略する。
【0033】
P2PネットワークPWにおいて、コンテンツを分散保存するノードを、以下「保持ノード」と称する。各コンテンツには、それぞれコンテンツごとに固有の識別情報であるコンテンツIDが割り当てられている。保持ノードに記憶されて保存されているコンテンツは、ユーザ端末Tm−nに配信されるコンテンツである。ユーザ端末Tm−nは、組織用DNSサーバSOを用いることにより、ウェブサーバSWからではなくP2PネットワークPWからコンテンツを取得する。
【0034】
複数の保持ノードに分散保存されているコンテンツの所在は、インデックス情報として、コンテンツの所在を管理しているノードにより記憶される。コンテンツの所在を管理しているノードを、以下「ルートノード」と称する。インデックス情報は、保持ノードのノード情報と、それに保存されているコンテンツのコンテンツIDと、の組を含む。なお、ルートノードについては上記特許文献1等で公知であるので、詳しい説明を省略する。
【0035】
そして、あるノードがあるコンテンツを取得しようとする場合、そのノードは検索メッセージを送信する。コンテンツを取得しようとするノードを、以下「ユーザノード」と称する。検索メッセージは、取得対象のコンテンツのコンテンツIDおよびユーザノードのIPアドレス等を含む。検索メッセージは、保持ノードを検索するためのメッセージである。ユーザノードは、ユーザノードが記憶するDHTルーティングテーブルに従って、他のノードに検索メッセージを送信する。これにより検索メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。
【0036】
検索メッセージを受信したルートノードは、これに含まれるコンテンツIDに対応するインデックス情報をユーザノードに送信する。ユーザノードは、受信したインデックス情報に含まれるIPアドレスおよびポート番号に基づいて、いずれかの保持ノードに、コンテンツIDを含むコンテンツ要求メッセージを送信する。保持ノードは、受信したコンテンツ要求メッセージに含まれるコンテンツIDに対応するコンテンツを、ユーザノードにアップロードする。こうしてユーザノードは、コンテンツをダウンロードすることができる。
【0037】
ユーザノードは、保持ノードからコンテンツを取得して保存したとき、パブリッシュメッセージを送信する。パブリッシュメッセージは、コンテンツを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、コンテンツのコンテンツIDおよびコンテンツを保存した保持ノードのノード情報を含む。パブリッシュメッセージは、検索メッセージと同じように、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになる。ルートノードは、受信したパブリッシュメッセージに含まれるノード情報およびコンテンツIDの組を含むインデックス情報をインデックスキャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツを保持する保持ノードとなる。
【0038】
(C)ユーザ端末へのコンテンツの配信
次に図1を用いて、配信システムSにおけるユーザ端末Tm−nへのコンテンツの配信について説明する。ユーザ端末Tm−nは、ユーザによる操作等に基づいて、ダウンロードしようとするコンテンツのURL(Uniform Resource Locator)を取得する。URLを取得したユーザ端末Tm−nはIPアドレスの問い合わせを行う。たとえば図1に示すように、拠点P1内のユーザ端末T1−1が、ウェブサーバSWのドメイン名をURLから取得したとする。ユーザ端末T1−1は、取得したドメイン名を含む名前解決リクエストを、組織用DNSサーバSOに送信する(図1(1)参照)。組織用DNSサーバSOは、ドメイン名とIPアドレスとが対応付けて登録されているデータベースを保持している。これにより組織用DNSサーバSOは、そのデータベースからP2P用DNSサーバSPのドメイン名を取得する。更に組織用DNSサーバSOは、そのデータベースから、P2P用DNSサーバSPのドメイン名に対応するIPアドレスを取得する。そして組織用DNSサーバSOは、取得したIPアドレスに基づいて、受信した名前解決リクエストをP2P用DNSサーバSPに転送する(図1(2)参照)。
【0039】
P2P用DNSサーバSPは、ユーザ端末T1−1から送信された名前解決リクエストを受信すると、その名前解決リクエストに含まれるドメイン名に対応する保持ノードを、オーバーレイネットワークを用いて検索する(図1(3)参照)。これによりP2P用DNSサーバSPは、ルートノードとしてのルータRmからインデックス情報を取得する(図1(4)参照)。
【0040】
P2P用DNSサーバSPは、インデックスキャッシュ領域に記憶されたインデックス情報に基づいて、いずれかの保持ノードを選択する。そしてP2P用DNSサーバSPは、選択した保持ノードのIPアドレスを組織用DNSサーバSOに返信する(図1(5)参照)。図1に例示する場合、組織用DNSサーバSOに返信されるIPアドレスは、ルータR2のIPアドレスであるとする。
【0041】
ルータR2のIPアドレスを受信した組織用DNSサーバSOは、このIPアドレスをユーザ端末T1−1に転送する(図1(6)参照)。そしてユーザ端末T1−1は、受信したIPアドレスに基づいて、コンテンツ要求メッセージをルータR2に送信する(図1(7)参照)。ルータR2は、受信したコンテンツ要求メッセージに対応するコンテンツをユーザ端末T1−1にアップロードする(図1(8)参照)。以上説明した一連の処理により、名前解決リクエストを送信したユーザ端末T1−1は、その名前解決リクエストに対応するコンテンツをP2PネットワークPWから取得できる。
【0042】
(D)ルータ等の構成および機能
次に、図2を用いて、実施形態のルータRm等の構成および機能について説明する。図2(a)はルータRmの概要構成を示すブロック図である。図2(b)はユーザ端末Tm−nおよび他の装置Nrの概要構成を示すブロック図である。
【0043】
(D−1)ルータの構成
図2(a)に示すように、実施形態のルータRmは、記憶部11、制御部12および通信部13を備えている。記憶部11、制御部12および通信部13は、バス14を介してデータの授受が可能に相互接続されている。この制御部12が、「第1取得手段」の一例、「判定手段」の一例、「第1決定手段」の一例、「接続手段」の一例、「第2取得手段」の一例、「第2決定手段」の一例、「検索手段」の一例、「容量検出手段」の一例および「第3取得手段」の一例に、それぞれ相当する。また記憶部11が「記憶手段」の一例に相当する。さらに通信部13が「送信手段」の一例に相当する。
【0044】
この構成において制御部12は、演算機能を有するCPU(Central Processing Unit)、作業用RAM(Random Access Memory)、各種データおよびP2Pプログラムを記憶するROM(Read Only Memory)等から構成されている。記憶部11は、各種データおよび各種プログラム等を記憶して保存するためのHD(ハードディスク)等から構成されている。更に通信部13は、ネットワークNWおよび拠点ネットワークNLm等を通じて、他のルータRm、P2P用DNSサーバSP、他の装置Nrおよびユーザ端末Tm−n等との間の情報の通信制御を行う。
【0045】
具体的に記憶部11には、P2P用ドメインサーバSPのIPアドレスおよびポート番号が記憶されている。また記憶部11には、DHTルーティングテーブル、インデックス情報および現在の接続端末数等が記憶されている。また記憶部11には、ダウンロードされたコンテンツが、コンテンツIDに対応付けて記憶されている。記憶部11には、コンテンツが記憶されるコンテンツキャッシュ領域が割り当てられている。更に記憶部11には、DHTルーティングテーブルに基づいて他のノードとの間で各種メッセージを送受信するためのP2Pプログラムが記憶されている。なおP2Pプログラムは、たとえば所定のサーバ等からダウンロードされるようにしてもよい。またP2Pプログラムは、たとえばDVD(Digital Versatile Disc)等の記録媒体に記録されて、記録媒体から図示しないドライブを介して読み込まれるようにしてもよい。制御部12は、CPUが記憶部11等に記憶されたP2Pプログラムを含むプログラムを読み出して実行することにより、実施形態のルータRmの各部を統括制御する。
【0046】
(D−2)ユーザ端末Tm−nおよび他の装置Nrの構成
実施形態のユーザ端末Tm−nおよび他の装置Nrは、基本的に同様の構成を備えている。ユーザ端末Tm−nおよび他の装置Nrを、以下「ユーザ端末Tm−n等」と称する。
【0047】
図2(b)に示すように、ユーザ端末Tm−n等は、制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25、入力部26、映像処理部27、表示部28、音声処理部29およびスピーカ30を備えている。制御部21、記憶部22、バッファメモリ23、通信部24、デコーダ部25および入力部26は、バス31を介してデータの授受が可能に相互接続されている。
【0048】
この構成において制御部21は、演算機能を有するCPU、各種データを記憶するRAMならびに各種データおよびP2Pプログラムを含むプログラムを記憶するROM等から構成されている。記憶部22は各種データおよび各種プログラム等を記憶して保存するためのHD等から構成される。バッファメモリ23は通信部24を介して取得されたコンテンツを一時的に蓄積する。デコーダ部25は、コンテンツに含まれるエンコードされたビデオデータおよびオーディオデータ等をデコードする。映像処理部27はデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。液晶ディスプレイ等からなる表示部28は、映像処理部27から出力されたビデオ信号に相当する映像を表示する。音声処理部29はデコードされたオーディオデータをアナログのオーディオ信号にD/A変換した後、これを増幅してスピーカ30に出力する。スピーカ30は音声処理部29から出力されたオーディオ信号を音波として出力する。入力部26はユーザからの指示を受け付け、その指示に応じた指示信号を制御部21に出力する。この入力部26は、たとえばキーボード、マウス、あるいは操作パネル等により実現されるものである。ユーザ端末Tm−nに含まれる通信部24は、拠点ネットワークNLmを介したルータRmおよび他のユーザ端末Tm−n等との間の情報の通信制御を行う。また他の装置Nrに含まれる通信部24は、ネットワークNW介したルータRm、P2P用DNSサーバSPおよび通信部24が含まれる他の装置Nr以外の他の装置Nr等との間の情報の通信制御を行う。
【0049】
記憶部22には、実施形態のP2Pプログラムを含むプログラム、コンテンツとしてのファイル、DHTルーティングテーブル等が記憶されている。以上の構成において制御部21は、CPUが記憶部22またはROM等に記憶されたP2Pプログラムを読み出して実行することにより、ユーザ端末Tm−n等全体を統括制御する。また他の装置Nrの制御部21は、P2PネットワークPWへ他の装置Nrが参加したのちに制御部21がP2Pプログラムを実行することで、上述したユーザノード、ルートノードまたは保持ノード等の、少なくともいずれか一つのノードとして機能する。
【0050】
(E)配信システムの処理
次に、図3および図4を用いて、実施形態における配信システムSの処理について説明する。図3および図4は、ルータRmの制御部12における処理を示すフローチャートである。図3(a)に示す処理は、たとえばルータRmのP2Pプログラムが起動したときに開始される。先ず制御部12は、所定の初期化処理の終了後、ルータRmの図示しない電源スイッチがオフとされたか否かを確認する(ステップS1)。ステップS1の確認において電源スイッチがオフとされた場合(ステップS1;NO)、制御部12はルータRmとしての処理を終了する。一方ステップS1の確認において電源スイッチがオフとされていない場合(ステップS1;NO)、制御部12は次に、ユーザ端末Tm−nからのコンテンツ要求があったか否かを確認する(ステップS2)。具体的に制御部12は、ユーザ端末Tm−nからのコンテンツ要求メッセージを受信したか否かを確認することにより、ステップS2の確認を行う(図1(7)参照)。ステップS2の確認により、いずれかのユーザ端末Tm−nからのコンテンツ要求があった場合(ステップS2;YES)、制御部12は後述するコンテンツ要求受付処理を実行する(ステップS3)。その後制御部12は上記ステップS1の確認に移行する。他方、ステップS2の確認においてコンテンツ要求がない場合(ステップS2;NO)、制御部12は次に、他のルータRmからコンテンツの複製保存指示があったか否かを確認する(ステップS4)。具体的に制御部12は、他のルータRmからの複製保存指示メッセージを受信したか否かを確認することにより、ステップS4の確認を行う。複製保存指示メッセージは、コンテンツ要求メッセージにより示されるコンテンツの複製の保存を指示する旨のメッセージである。ステップS4の確認により、他のルータRmからの複製保存指示があった場合(ステップS4;YES)、制御部12はその複製保存指示に対応した後述する複製保存処理を実行する(ステップS5)。その後制御部12は上記ステップS1の確認に移行する。なお、ステップS4の確認において複製保存指示がない場合も(ステップS4;NO)、制御部12は上記ステップS1の確認に移行する。
【0051】
次に、ステップS3のコンテンツ要求受付処理について、より詳細に図3(b)を用いて説明する。ステップS2の確認においてコンテンツ要求があった場合(ステップS2;YES)、制御部12は先ず、その制御部12が含まれているルータRmにおける現在のアップロード帯域の使用状態を示す情報を、通信部13から取得する(ステップS30)。ここで、「アップロード帯域の使用状態」とは、具体的にはそのルータRmに現在接続されてコンテンツのアップロードを受けているユーザ端末Tm−nの総数である。なお、ルータRmに接続されている拠点ネットワークNLmにおける、各ユーザ端末Tm−n宛の各コンテンツの現在の伝送速度の合計値を、その時点でのアップロード帯域の使用状態を示す情報として通信部13から取得することもできる。次に制御部12は、ステップS30の処理により取得したアップロード帯域の使用状態が予め設定された第1閾値以上であるか否かを確認する(ステップS31)。すなわち制御部12は、アップロード帯域の使用状態を示す情報に基づいて、通信回線の使用状態が第1閾値以上であるか否かを確認する。この第1閾値は、コンテンツ要求メッセージを送信してきたユーザ端末Tm−nに対してそのルータRmから直ちにコンテンツのアップロードができるか否かに対応して予め設定された閾値である。具体的に第1閾値は、そのルータRmに同時に接続されてコンテンツのアップロードを受けることが可能なユーザ端末Tm−nの最大数として予め設定されている。なお、各ユーザ端末Tm−n宛のコンテンツの伝送速度の合計値をアップロード帯域の使用状態とする場合、第1閾値はその合計値の上限値として予め設定される。ステップS31の確認において、アップロード帯域の使用状態が第1閾値以上でない場合(ステップS31;NO)、制御部12は、コンテンツ要求メッセージを送信してきたユーザ端末Tm−nへのコンテンツのアップロードを開始する(ステップS32。図1(8)参照)。その後制御部12は、図3(a)ステップS1の処理に移行する。
【0052】
ステップS31の確認において、アップロード帯域の使用状態が第1閾値以上である場合(ステップS31;YES)、その時点では制御部12が含まれているルータRmからのコンテンツのアップロードを直ちに開始することができない。そこで制御部12は、その制御部12が含まれているルータRmが参加しているP2PネットワークPW内において、コンテンツ要求メッセージにより要求されているコンテンツの保持ノードを検索する(ステップS33)。具体的に制御部12は、そのコンテンツのコンテンツIDを含む検索メッセージを生成し、P2PネットワークPWによりそのコンテンツの保持ノードを検索する。その後制御部12は、ステップS33の処理により保持ノードが一つまたは複数検索できたか否かを確認する(ステップS34)。ステップS34の確認において保持ノードが検索できた場合(ステップS34;YES)、制御部12は、その検索した保持ノードのいずれか一つに対して、通信部13を介して接続する(ステップS35)。このステップS35の接続処理は、検索した保持ノードとの間でいわゆるセッションを確立する処理である。次に制御部12は、接続した保持ノードに対して、その保持ノードにおける現在のアップロード帯域の使用状態を問い合わせる(ステップS36)。この問い合わせとして制御部12は、接続した保持ノードに対して、ネットワークNWを介してアップロード帯域の使用状態の問い合わせメッセージを送信する。ここで、各保持ノードにおける現在のアップロード帯域の使用状態を取得する場合、各ノードのアップロード帯域の使用状態が変化するたびに、その変化後の使用状態を示すメッセージを各ノードから毎回送信する方法も考えられる。しかしながらこの方法では、そのメッセージによりP2PネットワークPWが占有される状態が起こり得る。この場合には、たとえばコンテンツの配信が遅延する等の問題が生じ得る。そこで実施形態では、制御部12が含まれているルータRmにおける現在のアップロード帯域の使用状態が第1閾値以上である場合に、検索された保持ノードに対してセッションを確立して接続する(ステップS35)。そして制御部12は、セッションを確立した保持ノードに対して、現在のアップロード帯域の使用状態を問い合わせる(ステップS36)。これにより、各ノードのアップロード帯域の使用状態が変化するたびにその変化後の使用状態を示すメッセージをリアルタイムに送信する場合に比べて、P2PネットワークPW内において授受されるメッセージの数を減らすことができる。また、ステップS36の処理により問い合わせされるアップロード帯域の使用状態は、具体的には、接続された保持ノードに現在接続されてコンテンツのアップロードを受けている他のルータRmおよび他の装置Nrの総数である。なお、その保持ノードに接続されているネットワークNWの通信回線における、他のルータRm等宛の各コンテンツの現在の伝送速度の合計値を、その時点でのアップロード帯域の使用状態としてもよい。次に制御部12は、ステップS36の処理による問い合わせに対応して保持ノードから送信されてきたアップロード帯域の使用状態に基づき、その使用状態が予め設定された第2閾値以下であるか否かを確認する(ステップS37)。この第2閾値は、その保持ノードから直ちにコンテンツのアップロードができるか否かに対応して予め設定された閾値である。具体的に第2閾値は、その保持ノードに同時に接続されてコンテンツのアップロードを受けることが可能な他のルータRmまたは他の装置Nrの最大数として予め設定されている。なお、その保持ノードからのコンテンツの伝送速度の合計値をアップロード帯域の使用状態とする場合、第2閾値はその合計値の上限値として予め設定される。また第2閾値は、ステップS31の確認に用いられた第1閾値と同値であっても、異なる値であってもよい。ステップS37の確認において保持ノードのアップロード帯域の使用状態が第2閾値以下である場合(ステップS37;YES)、制御部12は、ステップS2の確認において受信したコンテンツ要求メッセージをその保持ノードに転送する(ステップS38)。これにより、その保持ノードからコンテンツのアップロードが行われる。その後制御部12は、図3(a)ステップS1の確認に移行する。
【0053】
一方、ステップ37の確認においてアップロード帯域の使用状態が第2閾値以下でない場合(ステップS37;NO)、その時点ではその保持ノードからのコンテンツのアップロードを直ちに開始することができない。そこで制御部12は、ステップS34の処理において検索した保持ノードの中に、現在接続している保持ノード以外の他の保持ノードがあるか否かを確認する(ステップS39)。ステップS39の確認において、現在接続している保持ノード以外の他の保持ノードがある場合(ステップS39;YES)、制御部12はその保持ノードに対してステップS35からS38の処理を実行する。ステップS39の確認において現在接続している保持ノード以外の他の保持ノードがない場合(ステップS39;NO)、制御部12は次に、保存先検索処理を実行する(ステップS40)。ステップS40の処理は、ステップS2の確認において受信したコンテンツ要求メッセージにより示されるコンテンツの新たな複製の保存先を、P2PネットワークPW内の他のルータRmまたは他の装置Nrから検索する処理である。このステップS40の処理については、後ほど図4(a)を用いて詳述する。その後制御部12は、ステップS40の処理において新たな複製の保存先が発見できたか否かを確認する(ステップS41)。ステップS41の確認において新たな複製の保存先が発見できた場合(ステップS41;YES)、制御部12はステップS38の処理に移行し、受信したコンテンツ要求メッセージをその保存先に転送する。これにより、その保存先である他のルータRmまたは他の装置Nrからコンテンツのアップロードが行われる。ステップS41の確認において新たな複製の保存先が発見できない場合(ステップS41;NO)、制御部12は、予め設定されている閾値時間だけ待機する(ステップS42)。その後制御部12は、再度ステップS30からS42の処理を実行する。
【0054】
また、ステップS34の確認において、要求されているコンテンツの保持ノードが検索できない場合(ステップS34;NO)、制御部12はステップS40の保存先検索処理に移行し、新たな複製の保存先を検索する。
【0055】
次に、ステップS40の保存先検索処理について、より詳細に図4(a)を用いて説明する。この保存先検索処理は、図3(b)に示すステップS39の確認において他の保持ノードがない場合、または図3(b)に示すステップS34の確認において保持ノードが検索できない場合に開始される。図4(a)に示すようにステップS40の処理において制御部12は、P2PネットワークPWに参加するノードの中から、コンテンツを新たに保存させるノードを決定する。すなわち制御部12は、P2PネットワークPW内において他のノードをランダムに決定する(ステップS400)。このステップS400の処理において制御部12は、P2PネットワークPW内において、図3(b)に示すステップS33の処理により検索された保持ノードを除外して他のルータRmまたは他の装置Nrから一つをランダムに決定する。具体的に制御部12は、ステップS33の処理により検索された保持ノードを示すノードID以外のノードIDを、ランダムに一つ生成する。制御部12は、生成されたノードIDを含む検索メッセージを生成し、DHTルーティングテーブルにおいて最も近いP2PネットワークPWの他のノード宛てに送信する。これ以降、この検索メッセージはDHTルーティングによって各ノード間を転送される。これにより検索メッセージは、それに含まれるノードIDのノード、またはそのノードIDに最も近いノードIDのノードに到着する。検索メッセージが到着したノードが自らのノードID等をルータRmに返信することにより、ステップS400のノードのランダムな決定が行われる。また、ステップS400の処理を開始した制御部12は、その開始タイミングから図示しないタイマによる計時を開始する。次に制御部12は、その決定したノードに対して、通信部13を介して接続する(ステップS401)。このステップS401の接続処理は、決定したノードとの間でいわゆるセッションを確立する処理である。次に制御部12は、接続したノードに対して、そのノードにおける現在のアップロード帯域の使用状態を問い合わせる(ステップS402)。この問い合わせ処理は、図3(b)に示すステップS36と同様に使用状態の問い合わせメッセージを送信する処理である。ステップS400からS402までの問い合わせにおいて制御部12は、ランダムに決定されたノードに対してセッションを確立して接続し、問い合わせメッセージを送信する。よってステップS36の問い合わせの場合と同様に、P2PネットワークPW内において授受されるメッセージの数を減らすことができる。またステップS401の処理により問い合わせされるアップロード帯域の使用状態は、具体的には、決定されたノードに現在接続されてコンテンツのアップロードを受けている他のルータRmおよび他の装置Nrの総数である。なお、そのノードに接続されているネットワークNWの通信回線における、他のルータRm等宛の各コンテンツの現在の伝送速度の合計値を、その時点でのアップロード帯域の使用状態としてもよい。次に制御部12は、ステップS401の処理による問い合わせに対応してノードから送信されてきたアップロード帯域の使用状態を示す情報に基づき、その使用状態が上記第2閾値以下であるか否かを確認する(ステップS403)。ステップS403の確認において、決定されたノードのアップロード帯域の使用状態が第2閾値以下である場合(ステップS403;YES)、制御部12は、そのノードをコンテンツの複製の新たな保存先として決定する。そして制御部12は、そのノードに対して、コンテンツ要求メッセージにより示されるコンテンツの複製保存指示を行う(ステップS404)。具体的に制御部12は、ステップS401の処理により接続したノードに対して、複製保存指示メッセージをネットワークNWを介して送信する。なお、この複製保存指示メッセージを受信した他のルータRm等であるノードにおける複製保存処理(図3(a)ステップS5)については、後ほど図4(b)を用いて説明する。次に制御部12は、その制御部12が含まれているルータRmからコンテンツをダウンロードしたユーザ端末Tm−nに対して、そのコンテンツのアップロード依頼を行う(ステップS405)。ステップS405のアップロード依頼は、ステップS404の複製保存指示メッセージを送信したノードに対するアプロード依頼メッセージを、ルータRmが接続されている拠点ネットワークNLmを介してユーザ端末Tm−nに送信する処理である。このアップロード依頼メッセージには、アップロード対象であるコンテンツを識別するためのコンテンツID等と共に、複製保存指示メッセージを送信したノードを示すIPアドレス等が含まれている。なお、アプロード依頼メッセージを受信したユーザ端末Tm−nの制御部21は、受信したアップロード依頼メッセージに含まれているコンテンツIDのコンテンツのアップロードを行う。具体的にその制御部21は、アップロード依頼メッセージに含まれているコンテンツIDにより示されるコンテンツを、アップロード依頼メッセージに含まれているIPアドレスにより示されるノードにネットワークNWを介してアップロードする。ステップS405の処理後、ルータRmの制御部12は図3(b)に示すステップS41の処理に移行する。なおステップS405に続くステップS41の確認において制御部12は、新たな複製の保存先が発見できたと判定し(図3(a)ステップS41;YES参照)、その後の処理を行う。
【0056】
一方、ステップS403の確認において、ノードのアップロード帯域の使用状態が第2閾値以下でない場合(ステップS403;NO)、制御部12は、上記タイマによる計時が予め設定された一定時間が経過したことを示しているか否かを確認する(ステップS406)。ステップS406の確認において一定時間が経過していないことが示されているとき(ステップS406;NO)、制御部12は上記ステップS400の処理に移行して他のノードのランダムな決定を行う。一方、ステップS406の確認において一定時間が経過したことが示されているとき(ステップS406;YES)、制御部12はそのまま図3(b)に示すステップS41の処理に移行する。なおステップS406;YESの確認に続くステップS41の確認において制御部12は、新たな複製の保存先が発見できなかったと判定し(図3(a)ステップS41;NO参照)、その後の処理を行う。
【0057】
次に、ステップS404の処理による複製保存指示メッセージを受信した他のルータRm等であるノードにおける複製保存処理(図3(a)ステップS5)について、より詳細に図4(b)を用いて説明する。なお、図4(b)に示す処理は、複製保存指示メッセージを他のルータRmが受信した場合と他の装置Nrが受信した場合とで同様である。よって以下の説明では、複製保存指示メッセージを他のルータRmが受信した場合について説明する。図4(b)に示すように、複製保存指示メッセージを受信した他のルータRmの制御部12は、図4(a)ステップS405の処理に対応したユーザ端末Tm−nからのコンテンツのアップロードを待機する(ステップS50)。またステップS50の処理を開始した制御部12は、その開始タイミングから図示しないタイマによる計時を開始する。次に制御部12は、ステップS50の待機処理中に開始されたコンテンツのアップロードが完了したか否かを確認する(ステップS51)。ステップS51の確認においてアップロードが完了した場合(ステップS51;YES)、制御部12は次に、複製保存指示メッセージを送信してきたルータRmから、アップロードが完了したコンテンツに対応するメタ情報を取得する(ステップS52)。このメタ情報には、アップロードが完了したコンテンツを分割してチャンクとして記憶保存するための分割指示情報が含まれている。この分割指示情報は、たとえばチャンク一つ分に相当するデータ量や、各チャンクの区切りを示す情報等を含む。次に制御部12は、取得したメタ情報に含まれている分割指示情報に基づいて、アップロードが完了したコンテンツを分割してチャンクを作成し、記憶部11に記憶させる(ステップS53)。その後制御部12は、図3(a)ステップS1の処理に移行する。
【0058】
一方、ステップS51の確認においてアップロードが完了していない場合(ステップS51;NO)、制御部12は、計時中の上記タイマによる計時が予め設定された一定時間が経過したことを示しているか否かを確認する(ステップS54)。ステップS54の確認において一定時間が経過していないことが示されているとき(ステップS54;NO)、制御部12は上記ステップS50の処理に移行してアップロードの完了を待つ。一方、ステップS54の確認において一定時間が経過したことが示されているとき(ステップS54;YES)、制御部12は、複製保存指示メッセージを送信してきたルータRmから複製対象のコンテンツのダウンロードを行う(ステップS55)。このステップS55の処理は、ユーザ端末Tm−nからのアップロードが行われないため、複製保存指示メッセージを送信してきたルータRmからそのコンテンツをダウンロードする処理である。その後制御部12は、図3(a)ステップS1の処理に移行する。
【0059】
以上説明したように、実施形態の配信システムSの処理によれば、図4(a)ステップS403およびS404に例示するように、P2PネットワークPW内の他のノードから取得したアップロード帯域の使用状態が第2閾値以下であるノードが、コンテンツの新たな複製の保存先と決定される。アップロード帯域の使用状態が第2閾値以下であるノードにコンテンツの複製を新たに保存させることで、保存後のコンテンツを迅速且つスムーズにユーザ端末Tm−nに配信することができる。
【0060】
また、図4(a)ステップS400に例示するように、新たに複製を保存すべきコンテンツが未保存であるノードの中からランダムに保存先が決定される。よって、簡易な構成でランダムに複製の新たな保存先を検索しつつ、その選択のためのP2PネットワークPW内のメッセージの数を減らすことができる。
【0061】
更に、図4(a)ステップS400に例示するように、新たに保存すべきコンテンツが保存済みであるノードが除外されて新たな保存先のノードが決定される。よって、保存済みか否かに拘わらず新たな保存先の候補を検索する場合に比して、その検索および保存等のためのP2PネットワークPW内のメッセージの数を減らすことができる。
【0062】
更にまた、図3(b)ステップS42に例示するように、新たな保存先が検索されない場合に、一定時間だけ待機した後に再度の接続処理および決定処理を行う。新たな保存先が検索できる可能性が高まり、更に直ちに再接続を行う場合に比してP2PネットワークPW内の不要なメッセージの授受も防止できる。
【0063】
また、図4(b)ステップS50からS53に例示するように、配信システムS外のユーザ端末Tm−nから新たに複製を保存すべきコンテンツが取得されるので、配信システムS内のデータの授受を少なくすることができる。
【0064】
なお、実施形態の複製保存処理(図5(a)参照)では、複製を保存すべきコンテンツを、ユーザ端末Tm−nまたは複製保存指示メッセージを送信してきたルータRmから取得したが、これ以外に、そのコンテンツを管理しているサーバから取得してもよい。またP2PネットワークPW内において、従来と同様の方法により他のノードからその複製を取得してもよい。
【0065】
(II)変形形態
次に、本発明の変形形態について、図5を用いて説明する。なお図5は、変形形態のルータ等における処理を示すフローチャートである。図5においては、図4と同様の処理については同様のステップ番号を付して、細部の説明は省略する。
【0066】
実施形態の配信システムSでは、コンテンツの複製を新たに保存すべきノードを選択する際、そのコンテンツが未保存であるノードの中からランダムに保存先を決定した(図4(a)ステップS400参照)。これに対して変形形態の配信システムSでは、ノードの記憶部11または22におけるコンテンツキャッシュ領域の空き容量を考慮して、新たな保存先を決定する。なお、変形形態の配信システムに含まれるルータ等のハードウエア的な構成は、基本的には実施形態の配信システムSに含まれるルータRm等のハードウエア的な構成と同一である。よって以下の説明では、実施形態の配信システムSに含まれるルータRm等における部材番号を引用して、変形形態の配信システムの処理を説明する。また、変形形態の配信システムSの処理は、実施形態の配信システムSに対して、複製保存処理(図5(a)参照)および保存先検索処理(図5(b)参照)のみが異なる。よって以下では、これら異なる処理のみ説明する。更に図5(a)に示す複製保存処理は、複製保存指示メッセージ(図4(a)ステップS404参照)を他のルータRmが受信した場合と他の装置Nrが受信した場合とで同様である。よって図5(a)に示すフローチャートでは、複製保存指示メッセージを他のルータRmが受信した場合について説明する。
【0067】
図5(a)に示すように、変形形態の複製保存処理(図3(a)ステップS5参照)において制御部12は、先ず実施形態の複製保存処理(図4(b)参照)のステップS50からS55までの処理と同様の処理を実行する。次に、コンテンツのチャンク(ステップS53)、またはダウンロードされたコンテンツが記憶部11に記憶されて保存されたら(ステップS55)、制御部12は空き容量情報公開処理を行う(ステップS56)。この空き容量情報公開処理は、保存後の記憶部11におけるコンテンツキャッシュ領域の空き容量を示す空き容量情報を含むパブリッシュメッセージを、P2PネットワークPW内のノードに送信する処理である。変形形態の空き容量情報公開処理においては、P2PネットワークPW内の各ノードにおけるコンテンツキャッシュ領域の空き容量が、複数の範囲に予め区分されている。制御部12は、たとえば四つに区分された空き容量の範囲の値を記憶している。制御部12は、たとえば空き容量30ギガバイト以上を第1範囲、空き容量20ギガバイト以上30ギガバイト未満を第2範囲として、それぞれ記憶している。また制御部12は、空き容量10ギガバイト以上20ギガバイト未満を第3範囲、空き容量10ギガバイト未満を第4範囲として、それぞれ記憶している。制御部12は、コンテンツの保存等が行われたら、その保存後の記憶部11におけるコンテンツキャッシュ領域の空き容量を検出する。その後制御部12は、検出した空き容量が含まれる空き容量の範囲を示す文字列を、たとえばコンテンツIDを生成するときと同じハッシュ関数によりハッシュ化する。たとえば検出された空き容量が40ギガバイトであった場合、制御部12は、その空き容量が属する範囲を示す「30ギガバイト以上」または「第1範囲」の文字列をハッシュ関数によりハッシュ化する。制御部12は、このハッシュ化された文字列を含むパブリッシュメッセージを、その文字列に対応するノードIDのルートノード宛に送信する。このルートノードは、その空き容量の範囲に属する空き容量のコンテンツキャッシュ領域を有するノードを管理する空き容量管理用のルートノードである。パブリッシュメッセージは、DHTルーティングによって、その宛先である空き容量管理用のルートノードに到着する。これにより、他のルータRmおよび他の装置Nrは、その空き容量管理用のルートノードに管理されているルータRmの記憶部11の空き容量の範囲または他の装置Nrの記憶部22の空き容量の範囲が参照可能となる。その後制御部12は、図3(a)ステップS1の処理に移行する。
【0068】
次に、変形形態の保存検索処理について図5(b)を用いて説明する。変形形態の保存検索処理において制御部12は、先ず上記空き容量の範囲を、最上位の第1範囲に設定する(ステップS410)。次に制御部12は、その時点で設定されている空き容量の範囲に該当するコンテンツキャッシュ領域の空き容量を有するノードを、P2PネットワークPW内において検索する(ステップS411)。具体的に制御部12は、ハッシュ化された空き容量の範囲を示す文字列を含む検索メッセージを、その空き容量の範囲に対応する空き容量管理用のルートノードに宛てて送信する。そして制御部12は、その検索メッセージに対応した保持ノードのIPアドレスを含む返信を、空き容量管理用のルートノードから取得する。これにより制御部12は、該当するコンテンツキャッシュ領域の空き容量を有するノードを検索する。次に制御部12は、ステップS411の処理により該当するノードが一つまたは複数検索できたか否かを確認する(ステップS412)。ステップS412の確認において該当するノードが検索できた場合(ステップS412;YES)、制御部12は、その検索したノードの中からいずれか一つをランダムに決定する(ステップS413)。なおステップS413の処理において制御部12は、P2PネットワークPW内において、図3(b)に示すステップS33の処理により検索された保持ノードを除外して、他のルータRmまたは他の装置Nrから該当するノードを決定する。また、ステップS413の処理を開始した制御部12は、その開始タイミングから図示しないタイマによる計時を開始する。これ以降制御部12は、実施形態の保存先検索処理(図4(a)参照)のステップS401からS406までの処理と同様の処理を実行する。ステップS405の処理後、またはステップS406の確認において一定時間が経過したことが示されているとき(ステップS406;YES)、制御部12はそのまま図3(b)に示すステップS41の処理に移行する。一方ステップS406の確認において一定時間が経過していないことが示されているとき(ステップS406;NO)、制御部12は、ステップS412の処理において検索したノードの中に、現在接続しているノード以外の他のノードがあるか否かを確認する(ステップS417)。ステップS417の確認において、現在接続しているノード以外の他のノードがある場合(ステップS417;YES)、制御部12はそのノードに対してステップS413およびS401からS406の処理を実行する。ステップS417の確認において現在接続しているノード以外の他のノードがない場合(ステップS417;NO)、制御部12は後述するステップS414の処理に移行する。
【0069】
一方、ステップS412の確認において該当するノードが検索できない場合(ステップS412;NO)、制御部12は次に、上記空き容量の範囲を一段階下げて第2範囲に再設定する(ステップS414)。次に制御部12は、ステップS414の処理において再設定した空き容量の範囲が、複数設定された空き容量の範囲のうち最下位の第4範囲となったか否かを確認する(ステップS415)。ステップS415の確認において、再設定された空き容量の範囲が第4範囲となっていない場合(ステップS415;NO)、制御部12は、再設定された空き容量の範囲について上記ステップS411からS413およびS401以降の処理を行う。一方ステップS415の確認において、再設定された空き容量の範囲が第4範囲となっている場合(ステップS415;YES)、制御部12は、P2PネットワークPW内において他のノードをランダムに一つ決定する(ステップS416)。このステップS416の処理は、再設定された空き容量の範囲が第4範囲になった場合は、もはや空き容量の範囲に基づく検索を行う意味がないため、P2PネットワークPW内において他のノードをランダムに一つ決定する処理である。このステップS416の処理は、図4(a)ステップS400の処理と同様のランダムな決定処理である。その後制御部12は、ステップS415の処理により選択したノードに対して、そのノードに対してステップS401からS406およびS416の処理を実行する。
【0070】
以上説明した変形形態の配信システムSの処理によれば、実施形態の配信システムSの処理による作用効果に加えて、制御部12は、記憶部11のコンテンツキャッシュ領域の空き容量が大きいノードから順に、新たに保存すべきコンテンツの保存先を決定する。よって、各ノードのコンテンツキャッシュ領域を有効に活用してコンテンツを新たに保存させることができる。また、新たな保存先のノードの決定に当たり、制御部12はコンテンツキャッシュ領域の空き容量を複数の範囲に分けてその決定の基準とする。よって、空き容量の値自体を逐次検索の基準とする場合に比して、その決定のためのP2PネットワークPW内のメッセージの授受を減らすことができる。
【0071】
なお、上記実施形態および変形形態においては、本発明のノード装置をルータに適用していた。しかしながら、本発明のノード装置を、たとえば、プロキシサーバ、ロードバランサ、ウェブアクセラレータ等の、情報を中継する機能を有するネットワーク機器に適用してもよい。また、本発明のノード装置を、たとえば、キャッシュサーバ、エッジサーバ等のサーバに適用してもよい。
【0072】
また、上記実施形態においては、オーバーレイネットワークに、DHTを利用したP2Pネットワークが適用されていたが、これに限られるものではない。たとえば、他のP2Pネットワーク、またはオーバーレイネットワークを用いたシステムが適用されてもよい。DHTを利用しないP2Pネットワークとしては、たとえば、ハイブリッド型のP2Pネットワークがある。
【符号の説明】
【0073】
11、22 記憶部
12、21 制御部
13、24 通信部
Rm ルータ
SP P2P用DNSサーバ
SO 組織用DNSサーバ
NLm 拠点ネットワーク
NW ネットワーク
PW P2Pネットワーク
S 配信システム

【特許請求の範囲】
【請求項1】
ネットワークを介して相互に通信可能な複数のノード装置により構成されるオーバーレイネットワークにより、コンテンツが前記複数のノード装置に分散して保存される通信システムの前記ノード装置において、
前記コンテンツを記憶する記憶手段と、
前記ネットワークに接続するために、前記記憶手段を備える前記ノード装置が接続されている通信回線の使用状態を示す第1状態情報を取得する第1取得手段と、
前記第1取得手段により取得された前記第1状態情報に基づいて、所定の第1閾値以上に前記通信回線が使用されているかを判定する判定手段と、
前記通信回線が前記第1閾値以上に使用されているとき、前記オーバーレイネットワークに参加する前記ノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定する第1決定手段と、
前記第1決定手段により決定された前記ノード装置に接続する接続手段と、
前記接続手段により接続した前記ノード装置から、前記接続したノード装置が接続されている前記通信回線の使用状態を示す第2状態情報を取得する第2取得手段と、
前記第2取得手段により取得された前記第2状態情報に基づいて、前記接続手段により接続した前記ノード装置のうち、前記ノード装置に接続されている前記通信回線の使用状態が、所定の第2閾値以下である前記ノード装置を、前記コンテンツの記憶先として決定する第2決定手段と、
を備えることを特徴とするノード装置。
【請求項2】
前記第1決定手段は、前記オーバーレイネットワークに参加する前記複数のノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置をランダムに決定することを特徴とする請求項1に記載のノード装置。
【請求項3】
前記通信システムにおいては、前記複数のノード装置間において、前記オーバーレイネットワークを介してメッセージが授受されることにより前記コンテンツの記憶および配信が行われ、
前記記憶手段を備える前記ノード装置に接続されている前記通信回線が前記第1閾値以上に使用されているとき、前記コンテンツを記憶済みのノード装置を前記オーバーレイネットワークにおいて検索する検索手段を更に備え、
前記第1決定手段は、前記検索手段により検索された前記ノード装置以外のノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定することを特徴とする請求項1または請求項2に記載のノード装置。
【請求項4】
前記記憶手段の空き容量を決定する容量決定手段と、
前記容量決定手段により決定された空き容量を示す空き容量情報を、前記空き容量情報を管理する前記オーバーレイネットワークのノード装置宛に送信する送信手段と、
他の前記ノード装置についての前記空き容量情報を、前記空き容量情報を管理するノード装置から取得する第3取得手段と、
を備え、
前記第1決定手段は、前記第3取得手段により取得された前記空き容量情報に基づき、前記空き容量情報により示される前記空き容量が大きいノード装置から順に、前記コンテンツを記憶させるノード装置の候補となるノード装置として決定することを特徴とする請求項1から請求項3のいずれか一項に記載のノード装置。
【請求項5】
前記第2決定手段による前記コンテンツの記憶先の決定において、前記接続手段により接続した各前記ノード装置に接続されている前記通信回線の使用状態が前記第2閾値より高い場合、所定の閾値時間だけ待機した後、前記接続手段は、前記第1決定手段により決定された前記ノード装置に対して再接続し、
前記第2取得手段は、前記接続手段により再接続された前記ノード装置から前記第2状態情報を再取得し、
前記第2決定手段は、前記第2取得手段により再取得された前記第2状態情報に基づいて、前記コンテンツの記憶先であるノード装置を決定することを特徴とする請求項1から請求項4のいずれか一項に記載のノード装置。
【請求項6】
ネットワークを介して相互に通信可能な複数のノード装置により構成されるオーバーレイネットワークにより、コンテンツが前記複数のノード装置に分散して保存される通信システムの前記ノード装置であって、前記コンテンツを記憶する記憶手段を備えるノード装置に含まれるコンピュータに、
前記ネットワークに接続するために、前記記憶手段を備える前記ノード装置が接続されている通信回線の使用状態を示す第1状態情報を取得するステップと、
前記取得された第1状態情報に基づいて、所定の第1閾値以上に前記通信回線が使用されているかを判定するステップと、
前記通信回線が前記第1閾値以上に使用されているとき、前記オーバーレイネットワークに参加する前記ノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定するステップと、
前記決定されたノード装置に接続するステップと、
前記接続したノード装置から、前記接続したノード装置が接続されている前記通信回線の使用状態を示す第2状態情報を取得するステップと、
前記取得された第2状態情報に基づいて、前記接続したノード装置のうち、前記ノード装置に接続されている前記通信回線の使用状態が、所定の第2閾値以下である前記ノード装置を、前記コンテンツの記憶先として決定するステップと、
を実行させることを特徴とするノード装置用プログラム。
【請求項7】
ネットワークを介して相互に通信可能な複数のノード装置により構成されるオーバーレイネットワークにより、コンテンツが前記複数のノード装置に分散して保存される通信システムにおいて実行される情報処理方法において、
前記ネットワークに接続するために、前記ノード装置が接続されている通信回線の使用状態を示す第1状態情報を取得する第1取得ステップと、
前記取得された第1状態情報に基づいて、所定の第1閾値以上に前記通信回線が使用されているかを判定する判定ステップと、
前記通信回線が前記第1閾値以上に使用されているとき、前記オーバーレイネットワークに参加する前記ノード装置の中から、前記コンテンツを記憶させるノード装置の候補となるノード装置を決定する第1決定ステップと、
前記決定されたノード装置に接続する接続ステップと、
前記接続したノード装置から、前記接続したノード装置が接続されている前記通信回線の使用状態を示す第2状態情報を取得する第2取得ステップと、
前記取得された第2状態情報に基づいて、前記接続したノード装置のうち、前記ノード装置に接続されている前記通信回線の使用状態が、所定の第2閾値以下である前記ノード装置を、前記コンテンツの記憶先として決定する第2決定ステップと、
を含むことを特徴とする情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−78903(P2012−78903A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−221003(P2010−221003)
【出願日】平成22年9月30日(2010.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】