(57)【要約】【課題】  本発明は、データを容易に取得させる。【解決手段】  本発明は、データ保持情報２１を上位ノードに転送し、当該上位ノードがデータ保持情報２１に対応するブロックデータを保持していないと、当該データ保持情報２１を記憶すると共に上位ノードに転送し、当該対応するブロックデータを保持していると、自己の対応するデータ保持情報２１を上位ノードに転送し、検索キーワードに対応するデータ保持情報２１を検索して、当該検索したデータ保持情報２１に基づいてノードに対してブロックデータを転送要求することにより、何れのノードでブロックデータが保持されているかを知らなくても、データ取得要求元のノードにブロックデータを提供可能なノードを検索して通知でき、かくしてデータを容易に取得し得る。【選択図】        図１
2006107349.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置でなるノードに対して、
保持するデータのデータ識別情報と、上記ノードのアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶機能と、
上記記憶された上記データ保持情報、及び上記ノードのノード属性情報を、当該ノードよりも上位の上位ノードに転送する記憶情報上位転送機能と、
上記ノードよりも下位の下位ノードから転送されたデータ保持情報を受信し、当該下位ノードから受信した上記データ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、上記下位ノードから受信した上記データ保持情報内の上記データ識別情報に対応する上記データを保持していないときには当該下位ノードから受信した上記データ保持情報を記憶すると共に上記上位ノードに転送し、上記下位ノードから受信した上記データ保持情報内の上記データ識別情報に対応する上記データを保持しているときには上記ノードで記憶している上記データ保持情報のうち上記下位ノードから受信した上記データ保持情報内の上記データ識別情報を含む上記データ保持情報を上記上位ノードに転送するデータ保持情報上位転送機能と、
特定の検索キーワードの入力に応じて、上記ノードが上記検索キーワードに対応する上記データ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、上記検索キーワードに対応する上記データ保持情報を記憶していないときには、上記上位ノードに対して上記検索キーワードを含む検索要求信号を転送する検索要求上位転送機能と、
上記上位ノードに対する上記検索要求信号の転送の結果、当該上位ノードから返送された、上記検索要求信号内の上記検索キーワードに対応する上記データ保持情報を受信する返送データ保持情報受信機能と、
上記上位ノードから転送された上記データ保持情報を記憶する返送データ保持情報記憶機能と、
上記下位ノードから転送された検索要求信号を受信する検索要求受信機能と、
上記下位ノードから転送された上記検索要求信号内の検索キーワードに対応する上記データ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、上記下位ノードから転送された上記検索要求信号内の上記検索キーワードに対応する上記データ保持情報を記憶しているときには、当該検索キーワードに対応する上記データ保持情報を上記下位ノードに転送するデータ保持情報下位転送機能と、
上記上位ノードに対する上記検索要求信号の転送の結果、当該上位ノードから転送された上記データ保持情報内のアドレスに対応するデータ提供可能なノードに対し、当該上位ノードから転送された上記データ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送機能と、
上記データ提供可能なノードに対する上記データ転送要求信号の転送の結果、当該データ提供可能なノードから返送された、上記データ転送要求信号内の上記データ識別情報に対応する上記データを受信するデータ受信機能と、
上記データ提供可能なノードから転送された上記データに対応し、上記上位ノードから転送された上記データ保持情報を、当該データ保持情報内の上記アドレスを上記ノードのアドレスに書き換えて記憶するデータ保持情報更新記憶機能と、
他のノードから転送されたデータ転送要求信号を受信するデータ要求受信機能と、
上記他のノードから転送された上記データ転送要求信号内のデータ識別情報に対応する上記データを上記ノードが保持しているか否かを検出し、当該検出結果に応じて、上記他のノードから転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを保持しているときには、当該データを上記他のノードに転送するデータ転送機能と、
外部から接続要求を受け付けられないデータ提供可能な下位ノードとしての接続受付不可ノードから上記データ保持情報が受信されると、当該データ保持情報内の上記接続受付不可ノードのアドレスを上記ノードのアドレスに変更して記憶するアドレス変更データ保持情報記憶機能と、
外部から接続要求を受け付けられるデータ取得要求元の上記他のノードとしての接続受付可能ノードから転送された上記データ転送要求信号が受信されると、上記ノードの記憶している上記データ保持情報の中から、上記接続受付可能ノードから転送された上記データ転送要求信号内の上記データ識別情報を含む上記データ保持情報を検索し、当該検索した上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているときには、上記データ提供可能な上記接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した上記接続受付不可ノードに対し、上記接続受付可能ノードに、当該接続受付可能ノードから転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼機能と、
データ取得要求元の上記他のノードとしての上記接続受付不可ノードから転送された上記データ転送要求信号が受信されると、上記ノードの記憶している上記データ保持情報の中から、上記接続受付不可ノードから転送された上記データ転送要求信号内の上記データ識別情報を含む上記データ保持情報を検索し、当該検索した上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているときには、上記データ提供可能な上記接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した上記データ提供可能な上記接続受付不可ノードに対し、上記データ取得要求元の上記接続受付不可ノードから転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを要求するための上記データ転送要求信号を転送し、当該データ転送要求信号の転送の結果、上記データ提供可能な上記接続受付不可ノードから返送された上記データが受信されると、当該受信された上記データを記憶すると共に、上記データ取得要求元の上記接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した上記接続受付不可ノードに対し、上記記憶した上記データを転送するデータ中継転送機能と
を実現させるためのデータ取得提供プログラム。
【請求項２】
上記ノードに対して、
上記上位ノードに対し、上記データ保持情報の配信を要求する配信要求信号を転送する配信要求機能と、
上記上位ノードに対する上記配信要求信号の転送の結果、当該上位ノードから配信された上記データ保持情報を受信し、当該受信した上記データ保持情報を記憶するデータ保持情報受信記憶機能と、
上記下位ノードから転送された配信要求信号を受信し、当該受信した上記配信要求信号に応じて、上記ノードの記憶している上記データ保持情報を上記下位ノードに配信する保持情報下位配信機能と
を実現させるための請求項１に記載のデータ取得提供プログラム。
【請求項３】
上記ノードに対して、
上記ノードが、本データ取得提供プログラムが実装され、かつサーバに直接接続される管理ノードを上位とした階層構造の他の複数のノードからなるシステムに接続されるとき、上記管理ノードにより規定される上記ノードの階層に応じて、上記上位ノードに対し上記データ保持情報の配信を要求する時間を設定する配信要求時間設定機能
を実現させるための請求項２に記載のデータ取得提供プログラム。
【請求項４】
上記ノードに対して、
上記下位ノードから上記データ保持情報のデータ保持属性情報と共に上記配信要求信号を受信し、当該下位ノードから受信した上記データ保持属性情報と、上記ノードの記憶している上記データ保持情報のデータ保持属性情報とを比較し、当該比較結果に応じて、上記ノードの記憶している上記データ保持情報を上記下位ノードに配信する上記保持情報下位配信機能
を実現させるための請求項２に記載のデータ取得提供プログラム。
【請求項５】
上記ノードに対して、
上記下位ノードのアドレスを記憶するアドレス記憶機能と、
上記下位ノードに対して少なくともオンライン状態を示すノード情報を要求するノード情報要求信号を転送するノード情報要求転送機能と、
上記下位ノードへの上記ノード情報要求信号の転送に応じた当該下位ノードからの応答がないとき、当該応答のない上記下位ノードよりもさらに下位の下位ノードに対し、上記ノード情報要求信号を転送する要求転送先変更機能と、
上記ノード情報要求信号の転送に応じて、何れかの上記下位ノードから返送された上記ノード情報を受信するノード情報受信機能と、
上記ノード情報を要求する上記下位ノードが、上記接続受付不可ノードであるとき、当該接続受付不可ノードの上記オンライン状態を示す上記ノード情報を、上記ノード情報要求信号の受信に応じて、上記上位ノードに返送するノード情報返送機能と
を実行させるための請求項１に記載のデータ取得提供プログラム。
【請求項６】
保持するデータのデータ識別情報と、本データ取得提供装置のアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶手段と、
上記記憶された上記データ保持情報、及び上記本データ取得提供装置の装置属性情報を、当該本データ取得提供装置よりも上位の上位データ取得提供装置に転送する記憶情報上位転送手段と、
上記本データ取得提供装置よりも下位の下位データ取得提供装置から転送されたデータ保持情報を受信し、当該下位データ取得提供装置から受信した上記データ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、上記下位データ取得提供装置から受信した上記データ保持情報内の上記データ識別情報に対応する上記データを保持していないときには当該下位データ取得提供装置から受信した上記データ保持情報を記憶すると共に上記上位データ取得提供装置に転送し、上記下位データ取得提供装置から受信した上記データ保持情報内の上記データ識別情報に対応する上記データを保持しているときには上記本データ取得提供装置で記憶している上記データ保持情報のうち上記下位データ取得提供装置から受信した上記データ保持情報内の上記データ識別情報を含む上記データ保持情報を上記上位データ取得提供装置に転送するデータ保持情報上位転送手段と、
特定の検索キーワードの入力に応じて、上記本データ取得提供装置が上記検索キーワードに対応する上記データ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、上記検索キーワードに対応する上記データ保持情報を記憶していないときには、上記上位データ取得提供装置に対して上記検索キーワードを含む検索要求信号を転送する検索要求上位転送手段と、
上記上位データ取得提供装置に対する上記検索要求信号の転送の結果、当該上位データ取得提供装置から返送された、上記検索要求信号内の上記検索キーワードに対応する上記データ保持情報を受信する返送データ保持情報受信手段と、
上記上位データ取得提供装置から転送された上記データ保持情報を記憶する返送データ保持情報記憶手段と、
上記下位データ取得提供装置から転送された検索要求信号を受信する検索要求受信手段と、
上記下位データ取得提供装置から転送された上記検索要求信号内の検索キーワードに対応する上記データ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、上記下位データ取得提供装置から転送された上記検索要求信号内の上記検索キーワードに対応する上記データ保持情報を記憶しているときには、当該検索キーワードに対応する上記データ保持情報を上記下位データ取得提供装置に転送するデータ保持情報下位転送手段と、
上記上位データ取得提供装置に対する上記検索要求信号の転送の結果、当該上位データ取得提供装置から転送された上記データ保持情報内のアドレスに対応するデータ提供可能なデータ取得提供装置に対し、当該上位データ取得提供装置から転送された上記データ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送手段と、
上記データ提供可能なデータ取得提供装置に対する上記データ転送要求信号の転送の結果、当該データ提供可能なデータ取得提供装置から返送された、上記データ転送要求信号内の上記データ識別情報に対応する上記データを受信するデータ受信手段と、
上記データ提供可能なデータ取得提供装置から転送された上記データに対応し、上記上位データ取得提供装置から転送された上記データ保持情報を、当該データ保持情報内の上記アドレスを上記本データ取得提供装置のアドレスに書き換えて記憶するデータ保持情報更新記憶手段と、
他のデータ取得提供装置から転送されたデータ転送要求信号を受信するデータ要求受信手段と、
上記他のデータ取得提供装置から転送された上記データ転送要求信号内のデータ識別情報に対応する上記データを上記本データ取得提供装置が保持しているか否かを検出し、当該検出結果に応じて、上記他のデータ取得提供装置から転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを保持しているときには、当該データを上記他のデータ取得提供装置に転送するデータ転送手段と、
外部から接続要求を受け付けられないデータ提供可能な下位データ取得提供装置としての接続受付不可装置から上記データ保持情報が受信されると、当該データ保持情報内の上記接続受付不可装置のアドレスを上記本データ取得提供装置のアドレスに変更して記憶するアドレス変更データ保持情報記憶手段と、
外部から接続要求を受け付けられるデータ取得要求元の上記他のデータ取得提供装置としての接続受付可能装置から転送された上記データ転送要求信号が受信されると、上記本データ取得提供装置の記憶している上記データ保持情報の中から、上記接続受付可能装置から転送された上記データ転送要求信号内の上記データ識別情報を含む上記データ保持情報を検索し、当該検索した上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可装置のアドレスから上記本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可装置のアドレスから上記本データ取得提供装置のアドレスに変更しているときには、上記データ提供可能な上記接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した上記接続受付不可装置に対し、上記接続受付可能装置に、当該接続受付可能装置から転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼手段と、
データ取得要求元の上記他のデータ取得提供装置としての上記接続受付不可装置から転送された上記データ転送要求信号が受信されると、上記本データ取得提供装置の記憶している上記データ保持情報の中から、上記接続受付不可装置から転送された上記データ転送要求信号内の上記データ識別情報を含む上記データ保持情報を検索し、当該検索した上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可装置のアドレスから上記本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可装置のアドレスから上記本データ取得提供装置のアドレスに変更しているときには、上記データ提供可能な上記接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した上記データ提供可能な上記接続受付不可装置に対し、上記データ取得要求元の上記接続受付不可装置から転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを要求するための上記データ転送要求信号を転送し、当該データ転送要求信号の転送の結果、上記データ提供可能な上記接続受付不可装置から返送された上記データが受信されると、当該受信された上記データを記憶すると共に、上記データ取得要求元の上記接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した上記接続受付不可装置に対し、上記記憶した上記データを転送するデータ中継転送手段と
を具えることを特徴とするデータ取得提供装置。
【請求項７】
保持するデータのデータ識別情報と、自身のデータ取得提供装置でなるノードのアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶ステップと、
上記記憶された上記データ保持情報、及び上記ノードのノード属性情報を、当該ノードよりも上位の上位ノードに転送する記憶情報上位転送ステップと、
上記ノードよりも下位の下位ノードから転送されたデータ保持情報を受信し、当該下位ノードから受信した上記データ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、上記下位ノードから受信した上記データ保持情報内の上記データ識別情報に対応する上記データを保持していないときには当該下位ノードから受信した上記データ保持情報を記憶すると共に上記上位ノードに転送し、上記下位ノードから受信した上記データ保持情報内の上記データ識別情報に対応する上記データを保持しているときには上記ノードで記憶している上記データ保持情報のうち上記下位ノードから受信した上記データ保持情報内の上記データ識別情報を含む上記データ保持情報を上記上位ノードに転送するデータ保持情報上位転送ステップと、
特定の検索キーワードの入力に応じて、上記ノードが上記検索キーワードに対応する上記データ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、上記検索キーワードに対応する上記データ保持情報を記憶していないときには、上記上位ノードに対して上記検索キーワードを含む検索要求信号を転送する検索要求上位転送ステップと、
上記上位ノードに対する上記検索要求信号の転送の結果、当該上位ノードから返送された、上記検索要求信号内の上記検索キーワードに対応する上記データ保持情報を受信する返送データ保持情報受信ステップと、
上記上位ノードから転送された上記データ保持情報を記憶する返送データ保持情報記憶ステップと、
上記下位ノードから転送された検索要求信号を受信する検索要求受信ステップと、
上記下位ノードから転送された上記検索要求信号内の検索キーワードに対応する上記データ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、上記下位ノードから転送された上記検索要求信号内の上記検索キーワードに対応する上記データ保持情報を記憶しているときには、当該検索キーワードに対応する上記データ保持情報を上記下位ノードに転送するデータ保持情報下位転送ステップと、
上記上位ノードに対する上記検索要求信号の転送の結果、当該上位ノードから転送された上記データ保持情報内のアドレスに対応するデータ提供可能なノードに対し、当該上位ノードから転送された上記データ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送ステップと、
上記データ提供可能なノードに対する上記データ転送要求信号の転送の結果、当該データ提供可能なノードから返送された、上記データ転送要求信号内の上記データ識別情報に対応する上記データを受信するデータ受信ステップと、
上記データ提供可能なノードから転送された上記データに対応し、上記上位ノードから転送された上記データ保持情報を、当該データ保持情報内の上記アドレスを上記ノードのアドレスに書き換えて記憶するデータ保持情報更新記憶ステップと、
他のノードから転送されたデータ転送要求信号を受信するデータ要求受信ステップと、
上記他のノードから転送された上記データ転送要求信号内のデータ識別情報に対応する上記データを上記ノードが保持しているか否かを検出し、当該検出結果に応じて、上記他のノードから転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを保持しているときには、当該データを上記他のノードに転送するデータ転送ステップと、
外部から接続要求を受け付けられないデータ提供可能な下位ノードとしての接続受付不可ノードから上記データ保持情報が受信されると、当該データ保持情報内の上記接続受付不可ノードのアドレスを上記ノードのアドレスに変更して記憶するアドレス変更データ保持情報記憶ステップと、
外部から接続要求を受け付けられるデータ取得要求元の上記他のノードとしての接続受付可能ノードから転送された上記データ転送要求信号が受信されると、上記ノードの記憶している上記データ保持情報の中から、上記接続受付可能ノードから転送された上記データ転送要求信号内の上記データ識別情報を含む上記データ保持情報を検索し、当該検索した上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているときには、上記データ提供可能な上記接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した上記接続受付不可ノードに対し、上記接続受付可能ノードに、当該接続受付可能ノードから転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼ステップと、
データ取得要求元の上記他のノードとしての上記接続受付不可ノードから転送された上記データ転送要求信号が受信されると、上記ノードの記憶している上記データ保持情報の中から、上記接続受付不可ノードから転送された上記データ転送要求信号内の上記データ識別情報を含む上記データ保持情報を検索し、当該検索した上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、上記データ保持情報内の上記アドレスを上記データ提供可能な上記接続受付不可ノードのアドレスから上記ノードのアドレスに変更しているときには、上記データ提供可能な上記接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した上記データ提供可能な上記接続受付不可ノードに対し、上記データ取得要求元の上記接続受付不可ノードから転送された上記データ転送要求信号内の上記データ識別情報に対応する上記データを要求するための上記データ転送要求信号を転送し、当該データ転送要求信号の転送の結果、上記データ提供可能な上記接続受付不可ノードから返送された上記データが受信されると、当該受信された上記データを記憶すると共に、上記データ取得要求元の上記接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した上記接続受付不可ノードに対し、上記記憶した上記データを転送するデータ中継転送ステップと
を具えることを特徴とするデータ取得提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ取得提供プログラムに関し、例えばデータ取得提供プログラムに従って複数のデータ取得提供装置間でコンテンツデータとしての楽曲データを取得提供する場合に適用して好適なものである。
【背景技術】
【０００２】
従来、楽曲データの取得提供等を実現するネットワークシステムの構築手法として、パーソナルコンピュータ等の複数の装置をサーバとクライアントに分けずにそれぞれを対等な立場として接続することで、専用のサーバを用意せずに、個々の装置をそれぞれサーバとしてもクライアントとしてでも用いることができるようにする、いわゆるピア・ツー・ピア（peer-to-peer）と呼ばれるものがある。
【０００３】
そして従来のピア・ツー・ピアを適用したネットワークシステムにおいて、複数のコンピュータは、それぞれ任意の共有情報を共有情報フォルダに保管すると共に、当該共有情報についての共有条件、ファイル名又はレコード名、提供先ユーザ名又は参照先ユーザ名、電子メールアドレスの各項目を情報共有定義テーブルとして記憶している。また複数のコンピュータは、それぞれ自己の情報共有定義テーブルを基に個々の共有情報と１対１で対応する操作ボタンを自動生成している。
【０００４】
この状態で検索依頼元ユーザのコンピュータは、表示部に表示した操作ボタンが任意に選択されると、情報共有定義テーブルを基に、その選択された操作ボタンに対応する共有情報の参照先ユーザと、電子メールアドレスとを検索する。そして検索依頼元ユーザのコンピュータは、かかる電子メールアドレスを使って参照先ユーザのコンピュータ宛に共有情報（すなわち、検索依頼元ユーザにより選択された操作ボタンに対応する共有情報）の検索を依頼する。その結果、検索依頼元ユーザのコンピュータは、参照先ユーザのコンピュータから共有情報を複写したファイル又はレコードを受信すると、これを情報共有フォルダに保存し又は表示していた（例えば、特許文献１参照）。
【特許文献１】特開２００２−２２９８３６公報（第２頁）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところがかかる構成のネットワークシステムにおいて各コンピュータは、上述したように情報共有定義テーブルを基に生成した操作ボタンを介して提供用や参照用の共有情報を選択させ、その選択された操作ボタンに応じて参照先ユーザのコンピュータから当該選択された共有情報を検索して取得している。
【０００６】
従って各コンピュータは、ユーザ同士による共有情報の共有相手や当該共有相手と共有する共有情報及び条件等の設定や変更毎に、これら設定や変更に応じて情報共有定義テーブルを記憶し操作ボタンを生成しなければ、ユーザに検索対象の共有情報を選択させて取得することができない。すなわち各コンピュータは、共有相手のコンピュータや当該コンピュータで管理している共有情報を事前に知っていなければ、共有情報を取得し難いという問題があった。
【０００７】
本発明は以上の点を考慮してなされたもので、データを容易に取得し得るデータ取得提供プログラム、データ取得提供装置及びデータ取得提供方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明のデータ取得提供プログラムにおいては、情報処理装置でなるノードに対して、保持するデータのデータ識別情報と、ノードのアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶機能と、記憶されたデータ保持情報、及びノードのノード属性情報を、当該ノードよりも上位の上位ノードに転送する記憶情報上位転送機能と、ノードよりも下位の下位ノードから転送されたデータ保持情報を受信し、当該下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持していないときには当該下位ノードから受信したデータ保持情報を記憶すると共に上位ノードに転送し、下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているときにはノードで記憶しているデータ保持情報のうち下位ノードから受信したデータ保持情報内のデータ識別情報を含むデータ保持情報を上位ノードに転送するデータ保持情報上位転送機能と、特定の検索キーワードの入力に応じて、ノードが検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、検索キーワードに対応するデータ保持情報を記憶していないときには、上位ノードに対して検索キーワードを含む検索要求信号を転送する検索要求上位転送機能と、上位ノードに対する検索要求信号の転送の結果、当該上位ノードから返送された、検索要求信号内の検索キーワードに対応するデータ保持情報を受信する返送データ保持情報受信機能と、上位ノードから転送されたデータ保持情報を記憶する返送データ保持情報記憶機能と、下位ノードから転送された検索要求信号を受信する検索要求受信機能と、下位ノードから転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、下位ノードから転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているときには、当該検索キーワードに対応するデータ保持情報を下位ノードに転送するデータ保持情報下位転送機能と、上位ノードに対する検索要求信号の転送の結果、当該上位ノードから転送されたデータ保持情報内のアドレスに対応するデータ提供可能なノードに対し、当該上位ノードから転送されたデータ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送機能と、データ提供可能なノードに対するデータ転送要求信号の転送の結果、当該データ提供可能なノードから返送された、データ転送要求信号内のデータ識別情報に対応するデータを受信するデータ受信機能と、データ提供可能なノードから転送されたデータに対応し、上位ノードから転送されたデータ保持情報を、当該データ保持情報内のアドレスをノードのアドレスに書き換えて記憶するデータ保持情報更新記憶機能と、他のノードから転送されたデータ転送要求信号を受信するデータ要求受信機能と、他のノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータをノードが保持しているか否かを検出し、当該検出結果に応じて、他のノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータを保持しているときには、当該データを他のノードに転送するデータ転送機能と、外部から接続要求を受け付けられないデータ提供可能な下位ノードとしての接続受付不可ノードからデータ保持情報が受信されると、当該データ保持情報内の接続受付不可ノードのアドレスをノードのアドレスに変更して記憶するアドレス変更データ保持情報記憶機能と、外部から接続要求を受け付けられるデータ取得要求元の他のノードとしての接続受付可能ノードから転送されたデータ転送要求信号が受信されると、ノードの記憶しているデータ保持情報の中から、接続受付可能ノードから転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているときには、データ提供可能な接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した接続受付不可ノードに対し、接続受付可能ノードに、当該接続受付可能ノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼機能と、データ取得要求元の他のノードとしての接続受付不可ノードから転送されたデータ転送要求信号が受信されると、ノードの記憶しているデータ保持情報の中から、接続受付不可ノードから転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているときには、データ提供可能な接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求したデータ提供可能な接続受付不可ノードに対し、データ取得要求元の接続受付不可ノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータを要求するためのデータ転送要求信号を転送し、当該データ転送要求信号の転送の結果、データ提供可能な接続受付不可ノードから返送されたデータが受信されると、当該受信されたデータを記憶すると共に、データ取得要求元の接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した接続受付不可ノードに対し、記憶したデータを転送するデータ中継転送機能とを実現させるようにした。
【０００９】
従って本発明のデータ取得提供プログラムでは、情報処理装置でなるノードに対し、データ取得要求元のノードにおいて取得対象のデータが他の何れのノードで保持されているかを事前に知らなくても、当該データ取得要求元のノードに、取得対象のデータを提供可能な他のノードを検索して通知させることができる。
【００１０】
また本発明のデータ取得提供装置においては、保持するデータのデータ識別情報と、本データ取得提供装置のアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶手段と、記憶されたデータ保持情報、及び本データ取得提供装置の装置属性情報を、当該本データ取得提供装置よりも上位の上位データ取得提供装置に転送する記憶情報上位転送手段と、本データ取得提供装置よりも下位の下位データ取得提供装置から転送されたデータ保持情報を受信し、当該下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持していないときには当該下位データ取得提供装置から受信したデータ保持情報を記憶すると共に上位データ取得提供装置に転送し、下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているときには本データ取得提供装置で記憶しているデータ保持情報のうち下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報を含むデータ保持情報を上位データ取得提供装置に転送するデータ保持情報上位転送手段と、特定の検索キーワードの入力に応じて、本データ取得提供装置が検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、検索キーワードに対応するデータ保持情報を記憶していないときには、上位データ取得提供装置に対して検索キーワードを含む検索要求信号を転送する検索要求上位転送手段と、上位データ取得提供装置に対する検索要求信号の転送の結果、当該上位データ取得提供装置から返送された、検索要求信号内の検索キーワードに対応するデータ保持情報を受信する返送データ保持情報受信手段と、上位データ取得提供装置から転送されたデータ保持情報を記憶する返送データ保持情報記憶手段と、下位データ取得提供装置から転送された検索要求信号を受信する検索要求受信手段と、下位データ取得提供装置から転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、下位データ取得提供装置から転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているときには、当該検索キーワードに対応するデータ保持情報を下位データ取得提供装置に転送するデータ保持情報下位転送手段と、上位データ取得提供装置に対する検索要求信号の転送の結果、当該上位データ取得提供装置から転送されたデータ保持情報内のアドレスに対応するデータ提供可能なデータ取得提供装置に対し、当該上位データ取得提供装置から転送されたデータ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送手段と、データ提供可能なデータ取得提供装置に対するデータ転送要求信号の転送の結果、当該データ提供可能なデータ取得提供装置から返送された、データ転送要求信号内のデータ識別情報に対応するデータを受信するデータ受信手段と、データ提供可能なデータ取得提供装置から転送されたデータに対応し、上位データ取得提供装置から転送されたデータ保持情報を、当該データ保持情報内のアドレスを本データ取得提供装置のアドレスに書き換えて記憶するデータ保持情報更新記憶手段と、他のデータ取得提供装置から転送されたデータ転送要求信号を受信するデータ要求受信手段と、他のデータ取得提供装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを本データ取得提供装置が保持しているか否かを検出し、当該検出結果に応じて、他のデータ取得提供装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを保持しているときには、当該データを他のデータ取得提供装置に転送するデータ転送手段と、外部から接続要求を受け付けられないデータ提供可能な下位データ取得提供装置としての接続受付不可装置からデータ保持情報が受信されると、当該データ保持情報内の接続受付不可装置のアドレスを本データ取得提供装置のアドレスに変更して記憶するアドレス変更データ保持情報記憶手段と、外部から接続要求を受け付けられるデータ取得要求元の他のデータ取得提供装置としての接続受付可能装置から転送されたデータ転送要求信号が受信されると、本データ取得提供装置の記憶しているデータ保持情報の中から、接続受付可能装置から転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているときには、データ提供可能な接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した接続受付不可装置に対し、接続受付可能装置に、当該接続受付可能装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼手段と、データ取得要求元の他のデータ取得提供装置としての接続受付不可装置から転送されたデータ転送要求信号が受信されると、本データ取得提供装置の記憶しているデータ保持情報の中から、接続受付不可装置から転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているときには、データ提供可能な接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求したデータ提供可能な接続受付不可装置に対し、データ取得要求元の接続受付不可装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを要求するためのデータ転送要求信号を転送し、当該データ転送要求信号の転送の結果、データ提供可能な接続受付不可装置から返送されたデータが受信されると、当該受信されたデータを記憶すると共に、データ取得要求元の接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した接続受付不可装置に対し、記憶したデータを転送するデータ中継転送手段とを設けるようにした。
【００１１】
従って本発明のデータ取得提供装置では、データ取得要求元のデータ取得提供装置において取得対象のデータが他の何れのデータ取得提供装置で保持されているかを事前に知らなくても、当該データ取得要求元のデータ取得提供装置に対し取得対象のデータを提供可能な他のデータ取得提供装置を検索して通知することができる。
【００１２】
さらに本発明のデータ取得提供方法においては、保持するデータのデータ識別情報と、自身のデータ取得提供装置でなるノードのアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶ステップと、記憶されたデータ保持情報、及びノードのノード属性情報を、当該ノードよりも上位の上位ノードに転送する記憶情報上位転送ステップと、ノードよりも下位の下位ノードから転送されたデータ保持情報を受信し、当該下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持していないときには当該下位ノードから受信したデータ保持情報を記憶すると共に上位ノードに転送し、下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているときにはノードで記憶しているデータ保持情報のうち下位ノードから受信したデータ保持情報内のデータ識別情報を含むデータ保持情報を上位ノードに転送するデータ保持情報上位転送ステップと、特定の検索キーワードの入力に応じて、ノードが検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、検索キーワードに対応するデータ保持情報を記憶していないときには、上位ノードに対して検索キーワードを含む検索要求信号を転送する検索要求上位転送ステップと、上位ノードに対する検索要求信号の転送の結果、当該上位ノードから返送された、検索要求信号内の検索キーワードに対応するデータ保持情報を受信する返送データ保持情報受信ステップと、上位ノードから転送されたデータ保持情報を記憶する返送データ保持情報記憶ステップと、下位ノードから転送された検索要求信号を受信する検索要求受信ステップと、下位ノードから転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、下位ノードから転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているときには、当該検索キーワードに対応するデータ保持情報を下位ノードに転送するデータ保持情報下位転送ステップと、上位ノードに対する検索要求信号の転送の結果、当該上位ノードから転送されたデータ保持情報内のアドレスに対応するデータ提供可能なノードに対し、当該上位ノードから転送されたデータ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送ステップと、データ提供可能なノードに対するデータ転送要求信号の転送の結果、当該データ提供可能なノードから返送された、データ転送要求信号内のデータ識別情報に対応するデータを受信するデータ受信ステップと、データ提供可能なノードから転送されたデータに対応し、上位ノードから転送されたデータ保持情報を、当該データ保持情報内のアドレスをノードのアドレスに書き換えて記憶するデータ保持情報更新記憶ステップと、他のノードから転送されたデータ転送要求信号を受信するデータ要求受信ステップと、他のノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータをノードが保持しているか否かを検出し、当該検出結果に応じて、他のノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータを保持しているときには、当該データを他のノードに転送するデータ転送ステップと、外部から接続要求を受け付けられないデータ提供可能な下位ノードとしての接続受付不可ノードからデータ保持情報が受信されると、当該データ保持情報内の接続受付不可ノードのアドレスをノードのアドレスに変更して記憶するアドレス変更データ保持情報記憶ステップと、外部から接続要求を受け付けられるデータ取得要求元の他のノードとしての接続受付可能ノードから転送されたデータ転送要求信号が受信されると、ノードの記憶しているデータ保持情報の中から、接続受付可能ノードから転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているときには、データ提供可能な接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した接続受付不可ノードに対し、接続受付可能ノードに、当該接続受付可能ノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼ステップと、データ取得要求元の他のノードとしての接続受付不可ノードから転送されたデータ転送要求信号が受信されると、ノードの記憶しているデータ保持情報の中から、接続受付不可ノードから転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているときには、データ提供可能な接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求したデータ提供可能な接続受付不可ノードに対し、データ取得要求元の接続受付不可ノードから転送されたデータ転送要求信号内のデータ識別情報に対応するデータを要求するためのデータ転送要求信号を転送し、当該データ転送要求信号の転送の結果、データ提供可能な接続受付不可ノードから返送されたデータが受信されると、当該受信されたデータを記憶すると共に、データ取得要求元の接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した接続受付不可ノードに対し、記憶したデータを転送するデータ中継転送ステップとを設けるようにした。
【００１３】
従って本発明のデータ取得提供方法では、データ取得要求元のノードにおいて取得対象のデータが他の何れのノードで保持されているかを事前に知らなくても、当該データ取得要求元のノードに対し取得対象のデータを提供可能な他のノードを検索して通知することができる。
【発明の効果】
【００１４】
本発明によれば、保持するデータのデータ識別情報と、自身のデータ取得提供装置でなるノードのアドレスとからなるデータ保持情報を記憶し、当該記憶したデータ保持情報、及びノードのノード属性情報を上位ノードに転送すると共に、下位ノードから転送されたデータ保持情報を受信し当該データ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持していないときには当該下位ノードから受信したデータ保持情報を記憶すると共に上位ノードに転送し、下位ノードから受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているときにはノードで記憶しているデータ保持情報のうち下位ノードから受信したデータ保持情報内のデータ識別情報を含むデータ保持情報を上位ノードに転送し、特定の検索キーワードの入力に応じて、ノードが検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検索キーワードに対応するデータ保持情報を記憶していないときには、上位ノードに対して検索キーワードを含む検索要求信号を転送し、その結果、上位ノードから返送された、検索要求信号内の検索キーワードに対応するデータ保持情報を受信すると、当該受信したデータ保持情報を記憶し、下位ノードから転送された検索要求信号を受信すると、当該受信した検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、下位ノードから受信した検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているときには、当該検索キーワードに対応するデータ保持情報を下位ノードに転送し、上位ノードに対する検索要求信号の転送の結果、当該上位ノードから受信したデータ保持情報内のアドレスに対応するデータ提供可能なノードに対し、当該上位ノードから受信したデータ保持情報内のデータ識別情報を含むデータ転送要求信号を転送し、その結果、当該データ提供可能なノードから返送された、データ転送要求信号内のデータ識別情報に対応するデータを受信すると、当該受信したデータに対応し、上位ノードから受信したデータ保持情報を、当該データ保持情報内のアドレスをノードのアドレスに書き換えて記憶し、他のノードから転送されたデータ転送要求信号を受信すると、当該受信したデータ転送要求信号内のデータ識別情報に対応するデータをノードが保持しているか否かを検出し、そのデータ転送要求信号内のデータ識別情報に対応するデータを保持しているときには、当該データを他のノードに転送し、外部から接続要求を受け付けられないデータ提供可能な下位ノードとしての接続受付不可ノードからデータ保持情報を受信すると、当該データ保持情報内の接続受付不可ノードのアドレスをノードのアドレスに変更して記憶しておき、外部から接続要求を受け付けられるデータ取得要求元の接続受付可能ノードから転送されたデータ転送要求信号を受信すると、ノードの記憶しているデータ保持情報の中から、接続受付可能ノードから受信したデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているか否かを判別し、データ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているときには、データ提供可能な接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した接続受付不可ノードに対し、接続受付可能ノードに、当該接続受付可能ノードから受信したデータ転送要求信号内のデータ識別情報に対応するデータを転送するように依頼するデータ転送依頼情報を転送し、データ取得要求元の接続受付不可ノードから転送されたデータ転送要求信号を受信すると、ノードの記憶しているデータ保持情報の中から、接続受付不可ノードから受信したデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可ノードのアドレスからノードのアドレスに変更しているときには、データ提供可能な接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求したデータ提供可能な接続受付不可ノードに対し、データ取得要求元の接続受付不可ノードから受信したデータ転送要求信号内のデータ識別情報に対応するデータを要求するためのデータ転送要求信号を転送し、当該データ転送要求信号の転送の結果、データ提供可能な接続受付不可ノードから返送されたデータを受信すると、当該受信したデータを記憶すると共に、データ取得要求元の接続受付不可ノードからの接続要求を待ち受け、当該接続受付不可ノードから接続要求されると、当該接続要求した接続受付不可ノードに対し、記憶したデータを転送するようにしたことにより、データ取得要求元のノードにおいて取得対象のデータが他の何れのノードで保持されているかを事前に知らなくても、当該データ取得要求元のノードに対し取得対象のデータを提供可能な他のノードを検索して通知することができ、かくしてデータを容易に取得し得るデータ取得提供プログラム、データ取得提供装置及びデータ取得提供方法を実現することができる。
【発明を実施するための最良の形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）データ取得提供システム
（１−１）システム構成
図１において、１は全体としてデータ取得提供システムを示し、楽曲データの配信サービスを提供するサービス提供会社が管理運営しているサーバ２に対し、多数の楽曲データを記憶しているコンテンツデータベース３が接続されている。またサーバ２には、システム管理会社の所有するパーソナルコンピュータ構成の複数台のデータ取得提供装置（以下、これを管理ノードと呼ぶ）４Ａ、……、４Ｍのうち１又は複数台（図１中では１台）の管理ノード４Ａがインターネットを介して直接接続されている。さらにサーバ２に直接接続された管理ノード４Ａには、他の複数台の管理ノード４Ｂ、……、４Ｍと、一般ユーザの使用するパーソナルコンピュータ構成の複数台のデータ取得提供装置（以下、これを一般ノードと呼ぶ）５Ａ、……、５Ｎとが木構造の複数の枝部に分散されて階層的に通信接続される。
【００１７】
この場合、サーバ２に直接接続された最上位の管理ノード４Ａは、サーバ２からコンテンツデータベース３に記憶されている多数の楽曲データをダウンロードして保持する。また最上位よりも１階層下位の他の管理ノード４Ｂ、……、４Ｍは、最上位の管理ノード４Ａから多数の楽曲データを取得して保持する。このようにして管理ノード群４の全ての管理ノード４Ａ、……、４Ｍは、コンテンツデータベース３に記憶されている多数の楽曲データを、一般ノード５Ａ、……、５Ｎへの提供用として共有化し保持する。
【００１８】
一方、一般ノード５Ａ、……、５Ｎは、例えば工場出荷時に最上位の管理ノード４ＡのＩＰアドレスを保持している。そして一般ノード５Ａ、……、５Ｎは、ユーザによりデータ取得提供システム１の利用を許可するように要求されると、予め保持しているＩＰアドレスに従い最上位の管理ノード４Ａに直接アクセスし、データ取得提供システム１の利用許可を要求する。
【００１９】
この際、最上位の管理ノード４Ａは、データ取得提供システム１の利用許可を要求した一般ノード５Ａ、……、５Ｎに対し当該データ取得提供システム１の利用を許可すると、その一般ノード５Ａ、……、５Ｎに対し、管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ、……、５Ｎと通信接続するための階層位置を規定する。そして最上位の管理ノード４Ａは、階層位置を規定した一般ノード５Ａ、……、５Ｎに対し、その一般ノード５Ａ、……、５Ｎよりも同一の枝部で１階層上位の管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ、……、５ＮのＩＰアドレスを通知する。
【００２０】
これによりデータ取得提供システム１の利用が許可された一般ノード５Ａ、……、５Ｎは、最上位の管理ノード４Ａから通知されたＩＰアドレスに従って、自己よりも１階層上位の管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ、……、５Ｎと通信接続し得るようになる。このようにして最上位の管理ノード４Ａは、他の管理ノード４Ｂ、……、４Ｍや一般ノード５Ａ、……、５Ｎを管理するための管理サーバを特には用いないピュア（Pure）型のピア・ツー・ピアの手法で当該他の管理ノード４Ｂ、……、４Ｍに対して一般ノード５Ａ、……、５Ｎを階層的に通信接続可能な状態としてデータ取得提供システム１を構築する。
【００２１】
データ取得提供システム１の利用が許可された一般ノード５Ａ、……、５Ｎは、ユーザにより楽曲データの取得が要求されると、１階層上位の一般ノード５Ａ、……、５Ｎ又は管理ノード４Ａ、……、４Ｍに対し当該楽曲データを保持している一般ノード５Ａ、……、５Ｎ又は管理ノード４Ａ、……、４Ｍの検索を要求する。その結果、一般ノード５Ａ、……、５Ｎは、取得対象の楽曲データを保持している他の一般ノード５Ａ、……、５Ｎ又は管理ノード４Ａ、……、４Ｍが判明すると、当該判明した他の一般ノード５Ａ、……、５Ｎ又は管理ノード４Ａ、……、４Ｍからその楽曲データを取得する。このようにして一般ノード５Ａ、……、５Ｎは、他の一般ノード５Ａ、……、５Ｎ及び管理ノード４Ａ、……、４Ｍから楽曲データを取得するデータ取得要求元になるし、自己で楽曲データを取得保持した後には他の一般ノード５Ａ、……、５Ｎに対して楽曲データを提供可能なデータ提供元にもなる。
【００２２】
ところで管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎには、インターネットへのアクセスに使用するユニークなＩＰ（Internet Protocol ）アドレス（すなわち、グローバルＩＰアドレス）を保持し、かつインターネットとの間にファイアウォール（Firewall）と呼ばれる外部からの不正アクセスを防ぐ機能的役割を特には持たないＲａｗと呼ばれる機能を有するものがある。また管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎには、かかるＲａｗの機能に加えてグローバルＩＰアドレスとこれに割り当てたユニークなドメイン名とを保持し（すなわち、ＤＮＳ（Domain Name System）と呼ばれる機能）、これらグローバルＩＰアドレス及びドメイン名に変更があったとき、その変更を外部に対し即座に通知可能なＤＤＮＳ（Dynamic Domain Name Server）と呼ばれる機能を有するものもある。
【００２３】
さらに管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎには、会社内や、ユーザの契約しているインターネットサービスプロバイダに対してのみ通用するＩＰアドレス（すなわち、プライベートＩＰアドレス）を保持し、社内のブロードバンドルータや、インターネットサービスプロバイダを介して当該プライベートＩＰアドレスがグローバルＩＰアドレスに変換されることによりインターネットにアクセスできるようになるＮＡＴ（Network Address Translation ）と呼ばれる技術に準じたものもある。
【００２４】
ところで管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎのうち、Ｒａｗ、ＤＤＮＳの機能を有しているものや、ＮＡＴに準じているものには、それぞれ外部からの接続要求の受け付けに割り当てた回線ポート（以下、これを接続要求受付用回線ポートと呼ぶ）を用意していることにより、かかる接続要求受付用回線ポートを介して外部からの接続要求を受け付けることができるものがある。これに対して一般ノード５Ａ、……、５Ｎの中には、接続要求受付用回線ポートを特には用意していないことにより、外部からの接続要求を受け付けられないものもある。
【００２５】
そしてかかるデータ取得提供システム１は、基本的に管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎが自己よりも１階層上位の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊに対して接続要求するように構築されている。このため最上位の管理ノード４Ａは、一般ノード５Ａ、……、５Ｎに対しデータ取得提供システム１の利用を許可するとき、外部から接続要求を受け付けられない一般ノード５Ｇ、５Ｉ、５Ｋ乃至５Ｎを特に接続受付不可ノードとして最下位に位置させる。
【００２６】
またデータ取得提供システム１では、基本的に一般ノード５Ａ、……、５Ｎ及び管理ノード４Ｂ、……、４Ｍが１階層上位に接続要求するため、一般ノード５Ａ、……、５Ｎのうち上位の一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊ（特に、枝部の分岐部分に位置する一般ノード５Ａ、……、５Ｄ）には、下位の一般ノード５Ｅ、……、５Ｎからの接続要求が集中する可能性がある。従って最上位の管理ノード４Ａは、一般ノード５Ａ、……、５Ｎに対しデータ取得提供システム１の利用を許可するとき、回線速度の速い一般ノード５Ａ、……、５Ｎほど上位の階層に位置させ、当該回線速度の遅い一般ノード５Ａ、……、５Ｎほど下位の階層に位置させる。これにより最上位の管理ノード４Ａは、下位の一般ノード５Ａ、……、５Ｎから上位の何れかの一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊに対し楽曲データの検索要求が集中しても、当該上位の一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊに対してほぼ破綻なく処理させるようにしている。
【００２７】
（１−２）管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの回路構成
次いで、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの回路構成を以下に説明する。かかる管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎは、自己に適用された通信の仕方の種類（すなわち、ＲａｗやＤＤＮＳの機能の有無、ＮＡＴへの準拠の有無、接続要求受付用回線ポートの有無等）や、自己の階層位置に応じた処理を実行する。しかしながら管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎは、例えば汎用のパーソナルコンピュータでなり、それぞれほぼ同じ回路構成を有すると共に、同じデータ取得提供プログラムが実装され、当該データ取得提供プログラムに従って基本的には同じ処理を実行可能である。従って以下には、これら管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの回路構成を、図２を用いてまとめて説明する。
【００２８】
図２に示すように、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎは、キーボードやマウス等の操作入力部１０がユーザによって操作されると、当該操作入力部１０でこれを認識し、その操作に応じた操作入力信号を入力処理部１１に送出する。入力処理部１１は、操作入力部１０から与えられる操作入力信号に対して所定の処理を施すことにより、当該操作入力信号を操作コマンドに変換し、これをバス１２を介して中央処理ユニット（CPU:Central Processing Unit ）１３に送出する。
【００２９】
中央処理ユニット１３は、ハードディスクドライブ１４のハードディスクに予め記憶しているＯＳ（Operating System）等の基本プログラムや、データ取得提供プログラム等の各種アプリケーションプログラムを、バス１２を介してＲＡＭ（Random Access Memory）１５に転送する。そして中央処理ユニット１３は、ＲＯＭ（Read Only Memory）１６に予め記憶している演算用等の各種パラメータ等を適宜用いながらＲＡＭ１５でその基本プログラム及び各種アプリケーションプログラムを展開することにより、当該展開した基本プログラム及び各種アプリケーションプログラムに従い全体を統括的に制御すると共に、所定の演算処理や、入力処理部１１から与えられる操作コマンドに応じた各種処理を実行する。
【００３０】
これにより中央処理ユニット１３は、通信処理部１７及びネットワークインタフェース１８を順次介して他の管理ノード４Ａ、……、４Ｍや一般ノード５Ａ、……、５Ｎとの間で各種要求や各種データを送受信することができる。
【００３１】
また中央処理ユニット１３は、自己の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎがデータ取得提供システム１に組み込まれると、図３に示す自己の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの属性を示すノード属性情報２０を生成し、これをハードディスクドライブ１４のハードディスクに記憶する。この場合、かかるノード属性情報２０は、自己の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎに割り当てられたＩＰアドレス、接続要求受付用回線ポートのポート番号、自己のノードタイプ、種々の要求やデータを通信する際の回線速度、自己のドメイン名（ＤＤＮＳ名）、サーバ２や他の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎから取得した楽曲データのファイルの記憶場所を示すキャッシュフォルダパス等の各種情報が格納されて生成されている。
【００３２】
因みに中央処理ユニット１３は、自己のノードが外部からの接続要求を受け付けられる管理ノード４Ａ、……、４Ｍや一般ノード５Ａ乃至５Ｆ、５Ｈ、５Ｊ（以下、これらを特に接続受付可能ノードと呼ぶ）のときにのみ、ノード属性情報２０に対しポート番号を格納する。また中央処理ユニット１３は、自己の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎが上述したＲａｗ、ＤＤＮＳの機能を有するときやＮＡＴに準じているときにのみ、これらを示すノードタイプの情報をノード属性情報２０に格納する。さらに中央処理ユニット１３は、自己の管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５ＮがＤＤＮＳの機能を有するときにのみ、自己のドメイン名をノード属性情報２０に格納する。すなわち、中央処理ユニット１３は、自己が接続受付不可ノード（すなわち、一般ノード５Ｇ、５Ｉ、５Ｋ乃至５Ｎ）であると、ノード属性情報２０に対して、ポート番号、ノードタイプ及びＤＤＮＳ名の情報を格納しない。
【００３３】
そして中央処理ユニット１３は、他の管理ノード４Ａ、……、４Ｍや一般ノード５Ａ、……、５Ｎに対して接続要求する毎に、その接続要求した相手に自己のノード属性情報２０を転送することにより、自己がどのようなノードであるかを通知する。すなわち、中央処理ユニット１３は、他の管理ノード４Ａ、……、４Ｍや一般ノード５Ａ、……、５Ｎから転送されたノード属性情報２０を受信すると、当該受信したノード属性情報２０を例えばハードディスクに記憶して保持する。これにより中央処理ユニット１３は、自己のノードに接続要求した一般ノード５Ａ、……、５Ｎ及び管理ノード４Ｂ、……、４Ｍがどのようなノードであるかをノード属性情報２０に基づき判別することができる。
【００３４】
従って中央処理ユニット１３は、自己のノードと通信接続したノードが接続受付可能ノードであると、その接続受付可能ノードと再び通信接続する場合、当該接続受付可能ノードに対し自己のノードから直接接続要求して通信接続し各種情報やデータを転送することができる。これに対して中央処理ユニット１３は、自己のノードと通信接続したノードが接続受付不可ノードであると、その接続受付不可ノードと再び通信接続する場合、当該接続受付不可ノードから接続要求されることを待ち受け、その接続受付不可ノードからの接続要求に応じて通信接続すると、各種情報やデータを転送する。
【００３５】
また中央処理ユニット１３は、自己のノードが最上位の管理ノード４Ａであると、サーバ２から定期的に新たな楽曲データを所定のブロックデータ単位で順次ダウンロードしてハードディスクドライブ１４のハードディスクに記憶する。中央処理ユニット１３は、ハードディスクにブロックデータを記憶すると、当該ブロックデータ毎の図４に示すような、当該ブロックデータを保持しているノード（この場合は、自己の最上位の管理ノード４Ａである）を示すデータ保持情報２１を生成する。そして中央処理ユニット１３は、このように生成したデータ保持情報２１をブロックデータに対応付けてハードディスクドライブ１４のハードディスクに記憶する。
【００３６】
この場合、データ保持情報２１は、対応するブロックデータを識別可能なデータ識別情報と、当該ブロックデータを保持しているノードを識別可能なノード識別情報とが格納されて生成されている。データ保持情報２１に格納されるデータ識別情報は、対応するブロックデータのファイル名と、そのブロックデータを一部とする楽曲データの収録されるアルバムのアルバム名と、当該楽曲データのアーティスト名（又は曲名）と、楽曲データ全体に対するブロックデータの分割位置を示すブロックマップと、ブロックデータのファイルの拡張子と、ブロックデータのファイルサイズと、当該ブロックデータを一部とする楽曲データそのものを復号できない方式で暗号化して得られる当該楽曲データ固有のハッシュ値とを含んでいる。またデータ保持情報２１に格納されるノード識別情報は、対応するブロックデータを保持しているノード（すなわち、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎ）に割り当てられたＩＰアドレスである。
【００３７】
さらに中央処理ユニット１３は、自己のノードが最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍであれば、最上位の管理ノード４Ａから定期的に楽曲データをブロックデータ単位で順次受信してハードディスクに記憶する。その際、中央処理ユニット１３は、最上位の管理ノード４Ａから楽曲データのブロックデータに対応するデータ保持情報２１も順次受信する。そして中央処理ユニット１３は、ハードディスクに対してブロックデータを記憶すると、当該記憶したブロックデータに対応するデータ保持情報２１を、内部のＩＰアドレス（すなわち、最上位の管理ノード４ＡのＩＰアドレス）を自己の管理ノード４Ｂ、……、４ＭのＩＰアドレスに変更してハードディスクに記憶する。このようにして中央処理ユニット１３は、最上位の管理ノード４Ａと、楽曲データを共有化して保持すると共に、その楽曲データから分割されたブロックデータを自己も保持していることを示すデータ保持情報２１も合わせて保持する。
【００３８】
一方、中央処理ユニット１３は、自己のノードが一般ノード５Ａ、……、５Ｎであると、楽曲データの取得要求に応じて、上位の他のノード（管理ノード４Ａ、……、４Ｍや他の一般ノード５Ａ乃至５Ｄ、５Ｆ、５Ｈ、５Ｊ）からその楽曲データのブロックデータを保持しているノードを示すデータ保持情報２１を検索して取得する。これにより中央処理ユニット１３は、そのデータ保持情報２１の示す他のノード（管理ノード４Ａ、……、４Ｍや他の一般ノード５Ａ、……、５Ｎ）から、取得対象の楽曲データのブロックデータを受信してハードディスクに記憶する。そして中央処理ユニット１３は、ハードディスクにブロックデータを記憶すると、当該ブロックデータに対応するデータ保持情報２１内のＩＰアドレス（すなわち、管理ノード４Ａ、……、４Ｍや他の一般ノード５Ａ、……、５ＮのＩＰアドレス）を自己の一般ノード５Ａ、……、５Ｎに割り当てられているＩＰアドレスに変更することにより、当該ブロックデータに対応するデータ保持情報２１をそのブロックデータを自己の一般ノード５Ａ、……、５Ｎが保持していることを示すものに変更してハードディスクに記憶する。
【００３９】
ところで中央処理ユニット１３は、他の管理ノード４Ａ、……、４Ｍや一般ノード５Ａ、……、５Ｎからのブロックデータの受信が終了すると、その際に受信した全てのブロックデータを元の楽曲データを再構築するようにまとめてこれらブロックデータ全体からハッシュ値を算出する。そして中央処理ユニット１３は、その算出したハッシュ値を、ブロックデータと共に取得したデータ保持情報２１内のハッシュ値と比較する。その結果、中央処理ユニット１３は、互いのハッシュ値が一致すると、楽曲データから分割された全てのブロックデータを正常に受信し得たと判断する。これにより中央処理ユニット１３は、データ保持情報２１内のブロックマップに基づいて、これらブロックデータを統合して元の楽曲データを再構築しハードディスクに記憶する。
【００４０】
これに対して中央処理ユニット１３は、互いのハッシュ値が異なると、その際に受信したブロックデータに対応するデータ保持情報２１内のブロックマップに基づいて、楽曲データの全てのブロックデータを取得したか否かを判別する。その結果、中央処理ユニット１３は、楽曲データのブロックデータが不足していると、残りのブロックデータを引き続き又は後で改めて他のノードから取得し直す。因みに中央処理ユニット１３は、このとき楽曲データから分割されたブロックデータと同数のブロックデータを受信していると、偶然にもファイル名及びブロックマップ等の同じ他の楽曲データのブロックデータを受信したと判断し、楽曲データを初めから取得し直す。
【００４１】
そして図５に示すように、中央処理ユニット１３は、自己のノードが最上位の管理ノード４Ａ以外のノードＡ（すなわち、他の管理ノード４Ｂ、……、４Ｍや一般ノード５Ａ、……、５Ｎ）であると、例えば他の管理ノード４Ａ、……、４Ｍや一般ノード５Ａ、……、５Ｎからのブロックデータの取得に応じて、対応するデータ保持情報２１Ａ（すなわち、内部のＩＰアドレスを自己のノードのＩＰアドレスに変更している）をハードディスクに記憶したとき、１階層上位のノードＢ（すなわち、管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ乃至５Ｄ、５Ｆ、５Ｈ、５Ｊ）に接続要求する。その結果、中央処理ユニット１３は、１階層上位のノードＢと通信接続すると、当該１階層上位のノードＢに対し、ハードディスクに記憶したデータ保持情報２１Ａを転送する。
【００４２】
また中央処理ユニット１３は、自己が他のノードＡ及びノードＣ間の階層に位置するノードＢであると、１階層下位のノードＡから転送されたデータ保持情報２１Ａを受信したとき、当該データ保持情報２１Ａ内のデータ識別情報に対応するブロックデータを自己のノードで保持しているか否かを判別する。その結果、中央処理ユニット１３は、そのデータ保持情報２１Ａ内のデータ識別情報に対応するブロックデータを自己のノードＢで保持していないと、当該データ保持情報２１をハードディスクドライブ１４のハードディスクに記憶すると共に、自己のノードＢよりも１階層上位のノードＣ（すなわち、管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ乃至５Ｄ、５Ｆ、５Ｈ、５Ｊ）に対し接続要求して通信接続する。そして中央処理ユニット１３は、通信接続した１階層上位のノードＣに対し、かかるデータ保持情報２１Ａをそのまま転送する。
【００４３】
これに対して図６に示すように、中央処理ユニット１３は、１階層下位のノードＡ（すなわち、管理ノード４Ｂ、……、４Ｍ又は一般ノード５Ａ、……、５Ｎ）から受信したデータ保持情報２１Ｂ内のデータ識別情報に対応するブロックデータを自己のノードＢでも保持していると、１階層上位のノードＣ（すなわち、管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ乃至５Ｄ、５Ｆ、５Ｈ、５Ｊ）に対し接続要求して通信接続する。そして中央処理ユニット１３は、このとき１階層上位のノードＣに対し、１階層下位のノードＡから受信したデータ保持情報２１Ｂに替えて、これと同一のデータ識別情報を格納した自己のノードＢで保持しているデータ保持情報２１Ｃ（すなわち、自己のノードＢのＩＰアドレスを格納している）を転送する。
【００４４】
ただし図７に示すように、中央処理ユニット１３は、１階層下位の接続受付不可ノードＡ１から自己のノードＢで保持していないブロックデータに対応するデータ保持情報２１Ａを受信すると、当該データ保持情報２１Ａ内のＩＰアドレス（すなわち、接続受付不可ノードＡ１のＩＰアドレス）を、自己のノードＢのＩＰアドレスに変更する。そして中央処理ユニット１３は、そのＩＰアドレスを変更したデータ保持情報２１Ｂを１階層下位の接続受付不可ノードＡ１のノード属性情報２０と対応付けてハードディスクに記憶する。また中央処理ユニット１３は、自己のノードＢよりも１階層上位のノードＣに対し接続要求して通信接続し、当該通信接続した１階層上位のノードＣに対し、かかるデータ保持情報２１Ｂを転送する。これにより接続受付不可ノードＡ１よりも１階層上位のノードＢの中央処理ユニット１３は、当該接続受付不可ノードＡ１が保持しているブロックデータを他のノードが取得しようとする場合、後述するように当該他のノードから接続受付不可ノードＡ１に替わりにブロックデータの転送要求を受け付け、かかるブロックデータを取得させる。
【００４５】
このようにして最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎは、データ保持情報２１Ａを上位の一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊ及び管理ノード４Ｂ、……、４Ｍを順次介して最上位の管理ノード４Ａまで転送する。従って中央処理ユニット１３は、自己のノードで保持してはいないブロックデータが下位のノードで保持されているときには、自己のノードよりも下位のノードで保持されているデータ保持情報２１Ａを自己のノードでも保持する。また中央処理ユニット１３は、下位の異なる階層のノード同士で同一のブロックデータが保持されているときには、当該ブロックデータを保持している、より上位のノードを示すデータ保持情報２１Ｃを自己のノードで保持する。
【００４６】
ところでかかる実施の形態の場合では、中央処理ユニット１３がブロックデータと共にデータ保持情報２１をハードディスクに記憶すると、当該データ保持情報２１を１階層上位のノードに転送するようにした場合について述べたが、本発明はこれに限らず、ハードディスクに記憶するデータ保持情報２１に対し記憶日時及び転送日時を付加しておき、階層毎又はノード毎に定期的にデータ保持情報２１の記憶日時及び転送日時を確認し、まだ転送していないデータ保持情報２１のみを選択的に１階層上位のノードに対して転送するようにしても良い。また中央処理ユニット１３は、自己のノードが起動されたとき、自己のノードで保持しているデータ保持情報２１を１階層上位のノードに転送する等のように、この他種々のタイミングで自己のノードの保持しているデータ保持情報２１を１階層上位のノードに転送することができる。
【００４７】
中央処理ユニット１３は、自己のノードが一般ノード５Ａ、……、５Ｎであれば、例えばユーザによる操作入力部１０の操作に応じて入力処理部１１を介して、取得対象の楽曲データに対応する曲名やアルバム名、アーティスト名等の特定の検索キーワードが入力されると、当該入力された検索キーワードをデータ識別情報として格納しているデータ保持情報２１を自己のノードで保持しているか否かを検出する。
【００４８】
その結果、図８に示すように中央処理ユニット１３は、自己のノードＡで検索キーワードに対応するデータ保持情報２１Ｄを保持していると、当該保持しているデータ保持情報２１Ｄ内のＩＰアドレスに従ってそのデータ保持情報２１Ｄをもともと保持していた他のノードＤに直接接続要求する。そして中央処理ユニット１３は、その接続要求した他のノードＤと通信接続すると、データ保持情報２１Ｄ内のデータ識別情報（例えば、ファイル名及びブロックマップ等）を格納したデータ転送要求信号を当該他のノードＤに転送する。これにより中央処理ユニット１３は、他のノードＤから転送された楽曲データのブロックデータを順次受信し、当該受信したブロックデータをハードディスクに記憶する。また中央処理ユニット１３は、ハードディスクに記憶したブロックデータに対応するデータ保持情報２１Ｄ（すなわち、自己のノードＡで保持していたデータ保持情報２１Ｄ）内のＩＰアドレス（すなわち、他のノードＤのＩＰアドレス）を自己のノードＡのＩＰアドレスに変更して自分用のデータ保持情報２１Ａとしてハードディスクに記憶し直す。さらに中央処理ユニット１３は、他のノードＤからのブロックデータの受信が終了すると、かかるブロックデータから元の楽曲データを再構築してハードディスクに記憶する。
【００４９】
これに対して図９に示すように、中央処理ユニット１３は、自己のノードＡで検索キーワードに対応するデータ保持情報２１Ｅを保持していないと、当該検索キーワードと、楽曲データのデータ取得要求元が自己のノードＡであることを示す当該自己のノードＡのＩＰアドレスとを含む検索要求信号を生成する。そして中央処理ユニット１３は、自己のノードＡよりも１階層上位のノードＢ（すなわち、自己のノードＡよりも１階層上位の管理ノード４Ａ、……、４Ｍ又は一般ノード５Ａ乃至５Ｄ、５Ｆ、５Ｈ、５Ｊ）に対して接続要求する。これにより中央処理ユニット１３は、通信接続した１階層上位のノードＢに対しその検索要求信号を転送し、かくして１階層上位のノードＢに対し取得対象のブロックデータを保持しているノードの検索を要求する。その結果、中央処理ユニット１３は、１階層上位のノードＢが取得対象のブロックデータと共に対応するデータ保持情報２１Ｅを保持していることにより、当該１階層上位のノードＢからそのデータ保持情報２１Ｅが転送されると、これを受信する。
【００５０】
引き続き図１０に示すように、中央処理ユニット１３は、１階層上位のノードＢから受信したデータ保持情報２１Ｅ内のデータ識別情報を格納したデータ転送要求信号を生成し、これを当該１階層上位のノードＢに転送する。これにより中央処理ユニット１３は、１階層上位のノードＢから転送された取得対象のブロックデータを受信し、当該受信したブロックデータをハードディスクに記憶する。また中央処理ユニット１３は、ハードディスクに記憶したブロックデータに対応するデータ保持情報２１Ｅ（すなわち、１階層上位のノードＢから受信していたデータ保持情報２１Ｅ）内のＩＰアドレス（すなわち、１階層上位のノードＢのＩＰアドレス）を自己のノードＡのＩＰアドレスに変更して自分用のデータ保持情報２１Ｆとしてハードディスクに記憶し直す。さらに中央処理ユニット１３は、１階層上位のノードＢからのブロックデータの受信が終了すると、かかるブロックデータから元の楽曲データを再構築してハードディスクに記憶する。
【００５１】
また図１１に示すように、中央処理ユニット１３は、自己が他のノードＡ及びノードＥ間の階層に位置するノードＢであり、１階層下位のノードＡから検索要求信号を受信しても、当該自己のノードＢで検索要求信号内の検索キーワードに対応するデータ保持情報２１Ｇを保持していないと、さらに１階層上位のノードＥに接続要求する。そして中央処理ユニット１３は、１階層上位のノードＥと通信接続すると、かかる検索要求信号をその１階層上位のノードＥに転送する。その結果、中央処理ユニット１３は、例えば１階層上位のノードＥでかかる検索要求信号内の検索キーワードをデータ識別情報とするデータ保持情報２１Ｇが保持されていることにより、当該１階層上位のノードＥからそのデータ保持情報２１Ｇが転送されると、これを受信する。また中央処理ユニット１３は、１階層上位のノードＥから受信したデータ保持情報２１Ｇをそのままデータ取得要求元である１階層下位のノードＡに転送する。
【００５２】
このようにしてデータ取得要求元であるノードＡの中央処理ユニット１３は、自己のノードＡで取得対象のブロックデータに対応するデータ保持情報２１Ｇを保持していなときには、かかるデータ保持情報２１Ｇの検索を順次上位のノードＢ及びノードＥに依頼し、当該データ保持情報２１Ｇを保持しているノードＥが見つかると、そのノードＥから検索依頼の経路を逆に辿って当該データ保持情報２１Ｇを取得する。
【００５３】
これにより図１２に示すように、データ取得要求元であるノードＡの中央処理ユニット１３は、上位のノードＥから１階層上位のノードＢを介して取得したデータ保持情報２１Ｇに基づき、当該データ保持情報２１Ｇ内のデータ識別情報を格納したデータ転送要求信号を生成する。そして中央処理ユニット１３は、かかるデータ保持情報２１Ｇ内のＩＰアドレスに従ってブロックデータを提供可能なノードＤに接続要求し、当該ノードＤと通信接続すると、かかるデータ転送要求信号を転送する。これにより中央処理ユニット１３は、ノードＤから転送された取得対象のブロックデータを受信し、当該受信したブロックデータをハードディスクに記憶する。また中央処理ユニット１３は、ハードディスクに記憶したブロックデータに対応するデータ保持情報２１Ｇ内のＩＰアドレス（すなわち、他のノードＤのＩＰアドレス）を自己のノードＡのＩＰアドレスに変更して自分用のデータ保持情報２１Ｈとしてハードディスクに記憶し直す。さらに中央処理ユニット１３は、他のノードＤからのブロックデータの受信が終了すると、かかるブロックデータから元の楽曲データを再構築してハードディスクに記憶する。
【００５４】
ところで中央処理ユニット１３は、１階層下位のノードが接続受付不可ノードの場合、当該接続受付不可ノードと通信接続している間は、双方向で要求やデータを送受信することができる。しかしながら中央処理ユニット１３は、接続受付不可ノードから検索要求を受け、その検索要求をさらに１階層上位のノードに依頼することで、当該接続受付不可ノードとの通信接続を一旦遮断すると、上位のノードからの検索結果（すなわち、データ保持情報２１）を下位の接続受付不可ノードに通知するには、当該接続受付不可ノードから再び接続要求されることを待ち受け、当該接続受付不可ノードから再度接続要求されて通信接続したとき、かかる検索結果を通知する。
【００５５】
また接続受付不可ノードは、自己が他のデータ取得要求元のノードに対してブロックデータを提供可能なとき、当該データ取得要求元の他のノードからブロックデータの転送要求のための接続要求を直接受け付けることができない。このため、何れのノードにおいても中央処理ユニット１３は、検索キーワードに対応するデータ保持情報２１を検索した場合、当該検索したデータ保持情報２１に対し接続受付不可ノードのノード属性情報２０を対応付けているか否かを検出する。その結果、中央処理ユニット１３は、検索したデータ保持情報２１に対しノード属性情報２０を対応付けていないと、データ提供可能なノードが接続受付可能ノードであると判別し、図８乃至図１２について上述した一連の処理を実行する。これに対して中央処理ユニット１３は、検索したデータ保持情報２１に対しノード属性情報２０を対応付けていると、データ提供可能なノードが接続受付不可ノードであると判別し、図８乃至図１２について上述した処理とは異なる処理を実行する。従って以下には、接続受付不可ノードがデータ提供元である場合のデータ提供処理について説明する。
【００５６】
まず図１３に示すように、中央処理ユニット１３は、自己が例えば最下位の接続受付不可ノードＦ及びＧよりも１階層上位の接続受付可能ノードＨであると、一方の接続受付不可ノードＧから転送されたデータ保持情報２１Ｉを、図７について上述したように、その内部のＩＰアドレスを自己のものに変更しデータ保持情報２１Ｊとして保持している。そして中央処理ユニット１３は、他方の接続受付不可ノードＦから転送された検索要求信号を受信し、当該受信した検索要求信号に対応するものとして、元が一方の接続受付不可ノードＧのものであったデータ保持情報２１Ｊを検索すると、当該検索したデータ保持情報２１Ｊに対し接続受付不可ノードＧのノード属性情報２０を対応付けているか否かを検出する。
【００５７】
その結果、中央処理ユニット１３は、データ保持情報２１Ｊに対し接続受付不可ノードＧのノード属性情報２０を対応付けていることにより当該データ保持情報２１Ｊ内のデータ識別情報に対応するブロックデータが自己の接続受付可能ノードＨではなく１階層下位の接続受付不可ノードＧで保持されていることを検出すると、当該データ保持情報２１Ｊをそのままデータ取得要求元の接続受付不可ノードＦに転送する。これにより中央処理ユニット１３は、データ提供元の接続受付不可ノードＧが外部からの接続要求を受け付けないため、データ取得要求元の接続受付不可ノードＦに対し、データ保持情報２１Ｊ内のＩＰアドレスに従って自己の接続受付可能ノードＨにデータ転送要求信号を転送させる。
【００５８】
すなわち中央処理ユニット１３は、データ取得要求元の接続受付不可ノードＦから転送されたデータ転送要求信号を受信し、その受信に応じて、データ提供可能な接続受付不可ノードＧからの接続要求を待ち受ける。そして中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧから新たなデータ保持情報２１の転送等のために接続要求され、これに応じて通信接続すると、当該接続受付不可ノードＧに対し、データ取得要求元の接続受付不可ノードＦから受信していたデータ転送要求信号内のデータ識別情報を格納したデータ転送要求信号を転送する。これにより中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧから転送されるブロックデータ（すなわち、データ転送要求信号内のデータ識別情報に対応するブロックデータ）を受信してハードディスクに記憶すると共に、かかるブロックデータから元の楽曲データを再構築してハードディスクに記憶する。
【００５９】
この状態で中央処理ユニット１３は、再びデータ取得要求元の接続受付不可ノードＦから接続要求されることを待ち受け、当該接続受付不可ノードＦからの接続要求に応じて通信接続すると、その接続受付不可ノードＦに対して、ハードディスクに記憶していたブロックデータを転送する。このようにして接続受付可能ノードＨの中央処理ユニット１３は、データ提供可能なノード及びデータ取得要求元のノードが共に接続受付不可ノードＦ及びＧの場合、当該データ提供可能な接続受付不可ノードＧとデータ取得要求元の接続受付不可ノードＦとの間でブロックデータの転送中継役として機能し、当該データ提供可能な接続受付不可ノードＧで保持されているブロックデータを、データ取得要求元の接続受付不可ノードＦに提供することができる。
【００６０】
因みに接続受付可能ノードＨの中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧとデータ取得要求元の接続受付不可ノードＦとの間でブロックデータの転送中継役として機能すると、この際にブロックデータ（すなわち、データ提供元の接続受付不可ノードＧで保持されていたブロックデータ）をデータ保持情報２１Ｊと共に自己の接続受付可能ノードＨでも保持する。従って中央処理ユニット１３は、この後、他のノードからそのブロックデータが転送要求されたとき、データ提供可能な接続受付不可ノードＧを利用しなくても、自己の接続受付可能ノードＨから当該ブロックデータを他のノードに直接提供することができる。
【００６１】
また図１４に示すように、接続受付可能ノードＨの中央処理ユニット１３は、１階層下位の接続受付不可ノードＧから転送されたデータ保持情報２１Ｉをデータ保持情報２１Ｊとしてすでに保持している状態で、例えば１階層下位の接続受付可能ノードＩから転送された検索要求信号を受信し、当該受信した検索要求信号に対応するものとして、そのデータ保持情報２１Ｊを検索すると、そのデータ保持情報２１Ｊに対し接続受付不可ノードＧのノード属性情報２０を対応付けているか否かを検出する。
【００６２】
その結果、中央処理ユニット１３は、データ保持情報２１Ｊに対し接続受付不可ノードＧのノード属性情報２０を対応付けていることにより当該データ保持情報２１Ｊ内のデータ識別情報に対応するブロックデータが自己の接続受付可能ノードＨではなく１階層下位の接続受付不可ノードＧで保持されていることを検出すると、当該データ保持情報２１Ｊをそのままデータ取得要求元の接続受付可能ノードＩに転送する。これにより中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧが外部からの接続要求を受け付けないため、データ取得要求元の接続受付可能ノードＩに対し、データ保持情報２１Ｊ内のＩＰアドレスに従って自己の接続受付可能ノードＨにデータ転送要求信号を転送させる。
【００６３】
すなわち中央処理ユニット１３は、データ取得要求元の接続受付可能ノードＩから転送されたデータ転送要求信号を受信する。そして中央処理ユニット１３は、そのデータ転送要求信号内のデータ識別情報と、データ取得要求元の接続受付可能ノードＩに割り当てられているＩＰアドレスとを格納したデータ転送依頼信号を生成する。この状態で中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧからの接続要求を待ち受ける。この後、中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧから新たなデータ保持情報２１の転送等のために接続要求され、これに応じて通信接続すると、当該接続受付不可ノードＧに対しデータ転送依頼信号を転送することにより、当該データ提供可能な接続受付不可ノードＧに対し、データ取得要求元の接続受付可能ノードＩにブロックデータを転送するように依頼する。
【００６４】
これにより中央処理ユニット１３は、データ提供可能な接続受付不可ノードＧに対し、データ取得要求元の接続受付可能ノードＩに接続要求させて通信接続させ、その状態で当該接続受付不可ノードＧからブロックデータを順次接続受付可能ノードＩに転送させる。このようにして接続受付可能ノードＨの中央処理ユニット１３は、データ提供可能なノードが接続受付不可ノードＧであり、かつデータ取得要求元のノードが接続受付可能ノードＩである場合、当該データ提供可能な接続受付不可ノードＧとデータ取得要求元の接続受付可能ノードＩとの間でブロックデータの転送依頼役として機能し、当該データ提供可能な接続受付不可ノードＧで保持されている楽曲データを、データ取得要求元の接続受付可能ノードＩに提供させることができる。
【００６５】
かかる構成に加えて図１５に示すように、最上位の管理ノード４Ａの中央処理ユニット１３は、サーバ２から楽曲データをブロックデータ単位で順次ダウンロードし、当該ダウンロードしたブロックデータに対応するデータ保持情報２１を生成する毎に、かかるデータ保持情報２１をハードディスクに構築している保持情報データベースに登録する。また中央処理ユニット１３は、図５乃至図７について上述したように自己の管理ノード４Ａ以外の全ての一般ノード５Ａ、……、５Ｎ及び管理ノード４Ｂ、……、４Ｍから順次上位階層へたどるように転送されたデータ保持情報２１を受信する毎に、当該受信したデータ保持情報２１もハードディスク内の保持情報データベースに登録する。そして中央処理ユニット１３は、保持情報データベースにデータ保持情報２１を登録して当該保持情報データベースを更新する毎にその更新状況を特定可能な識別情報でなるデータ保持属性情報を生成し、当該生成したデータ保持属性情報も保持情報データベースに登録して更新する。
【００６６】
また最上位の管理ノード４Ａよりも下位の全ての管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、データ取得提供システム１に接続されるとき（すなわち、管理ノード４Ｂ、……４Ｍが組み込まれるときや一般ノード５Ａ、……、５Ｎに対しデータ取得提供システム１の利用が許可されるとき）、最上位の管理ノード４Ａにより規定された自己のノードの階層位置に応じて、当該自己のノードよりも１階層上位のノードに対して保持情報データベースの配信を定期的に要求するための時間（以下、これを配信要求時間と呼ぶ）を設定している。この際、中央処理ユニット１３は、上位のノードよりも順次下位のノードほど１階層上位のノードに対し保持情報データベースの配信を要求するための時刻がわずかずつ後になるように配信要求時間を設定している。
【００６７】
これにより最上位の管理ノード４Ａよりも１階層下位の管理ノード４Ｂ、……、４Ｍの中央処理ユニット１３は、まず自己で設定した１回目の配信要求の時刻になると、当該最上位の管理ノード４Ａに対し接続要求して通信接続する。そして中央処理ユニット１３は、かかる最上位の管理ノード４Ａに対し保持情報データベースを配信要求するための保持情報配信要求信号を転送する。その結果、管理ノード４Ｂ、……、４Ｍの中央処理ユニット１３は、最上位の管理ノード４Ａから配信された保持情報データベースを受信し、当該受信した保持情報データベースをハードディスクに記憶する。
【００６８】
また管理ノード４Ｂ、……、４Ｍよりも１階層下位の一般ノード５Ａ、……、５Ｄの中央処理ユニット１３は、自己で設定した１回目の配信要求の時刻になると、当該の管理ノード４Ｂ、……、４Ｍに対し接続要求して通信接続する。そして中央処理ユニット１３は、かかる管理ノード４Ｂ、……、４Ｍに対し保持情報配信要求信号を転送する。その結果、一般ノード５Ａ、……、５Ｄの中央処理ユニット１３は、管理ノード４Ｂ、……、４Ｍからすでに最上位の管理ノード４Ａから取得され配信された保持情報データベースを受信し、当該受信した保持情報データベースをハードディスクに記憶する。
【００６９】
さらに一般ノード５Ａ、……、５Ｄよりも１階層下位の一般ノード５Ｅ、……、５Ｋの中央処理ユニット１３は、自己で設定した１回目の配信要求の時刻になると、当該一般ノード５Ａ、……、５Ｄに対し接続要求して通信接続する。そして中央処理ユニット１３は、かかる一般ノード５Ａ、……、５Ｄに対し保持情報配信要求信号を転送する。その結果、一般ノード５Ｅ、……、５Ｋの中央処理ユニット１３は、管理ノード４Ａ、……、４Ｄから配信された保持情報データベースを受信し、当該受信した保持情報データベースをハードディスクに記憶する。このようにして最上位の管理ノード４Ａを除く全ての管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、上位から下位にかけて当該最上位の管理ノード４Ａで生成された保持情報データベースを順次取得して記憶する。
【００７０】
また最上位よりも１階層下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、それぞれ２回目以降の配信要求の時刻になると、当該１階層上位のノード（すなわち、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊ）に対し接続要求して通信接続する。そして中央処理ユニット１３は、かかる１階層上位のノードに対し、自己のすでに保持している保持情報データベース内のデータ保持属性情報を格納した保持情報配信要求信号を転送する。このとき、１階層下位のノード（すなわち、管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎ）から保持情報配信要求信号を受信した管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｄ、５Ｆ、５Ｈ、５Ｊの中央処理ユニット１３は、当該受信した保持情報配信要求信号内のデータ保持属性情報と、自己のノードでこの時点に保持している保持情報データベース内のデータ保持属性情報とを比較する。
【００７１】
その結果、中央処理ユニット１３は、比較したデータ保持情報同士が一致すると、自己及び１階層下位のノードで何れも最新の保持情報データベースを保持していると判断し、当該自己のノードで保持している保持情報データベースを１階層下位のノードへ転送しないようにする。これに対して中央処理ユニット１３は、比較したデータ保持属性情報同士が異なると、１階層下位のノードよりも自己のノードが最新の保持情報データベースを保持していると判断し、当該自己のノードで保持している保持情報データベースを１階層下位のノードに配信する。そして保持情報データベースを受信したノード（すなわち、管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎ）の中央処理ユニット１３は、当該受信した保持情報データベースを、すでに保持している保持情報データベースに上書きするようにしてハードディスクに記憶することにより、保持情報データベースを更新する。
【００７２】
このようにして一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、保持情報データベースを保持すると共に、これをデータ保持属性情報に基づいて適宜更新する。これにより中央処理ユニット１３は、ユーザにより楽曲データの取得が要求されたとき、１階層上位のノードに対しデータ保持情報２１の検索を要求しなくても、自己の保持している保持情報データベースでそのデータ保持情報２１を容易にかつ的確に検索することができる。かくして中央処理ユニット１３は、楽曲データの取得要求から当該楽曲データに対するブロックデータ単位の取得までの一連の処理を迅速に実行することができる。
【００７３】
ところで最上位の管理ノード４Ａの中央処理ユニット１３は、下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎに対し最初に保持情報データベースを配信するまでの間は、当該保持情報データベースに対し、サーバ２からダウンロードした全ての楽曲データのブロックデータに対応するデータ保持情報２１を登録する。また中央処理ユニット１３は、下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎから転送された全てのデータ保持情報２１も保持情報データベースに登録している。
【００７４】
しかしながら最上位の管理ノード４Ａの中央処理ユニット１３は、下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎに対し最初に保持情報データベースを配信すると、当該保持情報データベースにおいて、サーバ２からダウンロードした全ての楽曲データのブロックデータに対応するデータ保持情報２１（すなわち、自己の管理ノード４ＡのＩＰアドレスを格納したデータ保持情報２１）のうち、下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎから転送されたデータ保持情報２１内のデータ識別情報と同一のデータ識別情報を格納しているデータ保持情報２１を削除する。また中央処理ユニット１３は、このように保持情報データベースからデータ保持情報２１を削除すると、当該削除したデータ保持情報に対応するブロックデータも自己のハードディスクから削除する。
【００７５】
そして中央処理ユニット１３は、この後、下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎから転送されたデータ保持情報２１を保持情報データベースに登録する毎に、サーバ２からダウンロードした全ての楽曲データのブロックデータに対応するデータ保持情報２１（すなわち、自己の管理ノード４ＡのＩＰアドレスを格納したデータ保持情報２１）のうち、当該登録したデータ保持情報２１内のデータ識別情報と同一のデータ識別情報を格納しているデータ保持情報２１を削除すると共に、当該削除したデータ保持情報２１に対応するブロックデータも自己のハードディスクから削除する。
【００７６】
このようにして最上位の管理ノード４Ａは、下位の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎに対し最初に保持情報データベースを配信するまでの間は、下位のノードからデータ保持情報２１の検索が要求される可能性があるため、全てのデータ保持情報２１を保持情報データベースとして保持する。また最上位の管理ノード４Ａの中央処理ユニット１３は、その検索要求に続くデータ転送要求に応じて、自己の保持しているブロックデータを下位のノードに転送する可能性があるため、サーバ２からダウンロードした全てのブロックデータをそのまま保持している。
【００７７】
しかしながら最上位の管理ノード４Ａの中央処理ユニット１３は、下位のノードに対して保持情報データベースを配信した後は、当該下位のノードでその保持情報データベースを用いてデータ保持情報２１を検索し得るため、自己の管理ノード４Ａで保持するデータ保持情報２１を極力減らしてデータ保持情報２１の重複した無駄な記憶を回避する。また中央処理ユニット１３は、自己以外の何れかのノードで保持されているブロックデータであれば、下位のノードで保持情報データベースからそのブロックデータを保持している他のノードを検索して、当該他のノードに対し直接ブロックデータを転送要求し得るため、自己の管理ノード４Ａで保持するブロックデータを極力減らして無駄な記憶を回避することができる。これにより管理ノード４Ａの中央処理ユニット１３は、自己のハードディスクの空領域が無駄に減少することを有効に回避している。
【００７８】
また最上位の管理ノード４Ａよりも下位のノード（すなわち、管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎ）の中央処理ユニット１３は、自己のノードでブロックデータを記憶したときに対応するデータ保持情報２１も記憶している。さらに中央処理ユニット１３は、下位のノードから、自己のノードで保持していないブロックデータに対応するデータ保持情報２１を受信したときにもそのデータ保持情報２１を記憶している。従ってかかる中央処理ユニット１３は、上位のノードから保持情報データベースを取得した場合、当該保持情報データベース内に、すでに自己のノードで保持しているデータ保持情報２１が含まれている場合があるため、当該保持情報データベース内のデータ保持情報２１と、すでに自己のノードで保持しているデータ保持情報２１とのうち重複するものの何れか一方（例えば、自己のノードで保持している方のデータ保持情報２１）を削除する。
【００７９】
これに加えて最上位の管理ノード４Ａよりも下位のノードの中央処理ユニット１３は、保持情報データベース内に、自己のデータ保持情報２１（すなわち、自己のノードのＩＰアドレスを格納したデータ保持情報２１）内のデータ識別情報と同一のデータ識別情報を格納した他のデータ保持情報２１（すなわち、他のＩＰアドレスが格納されているデータ保持情報２１）が存在する場合（すなわち、自己のノードで保持しているブロックデータが他のノードでも保持されている場合）、すでに自己のノードで保持しているブロックデータを他のノードから取得する可能性は著しく低いため、当該自己のデータ保持情報２１内のデータ識別情報と同一のデータ識別情報を格納した他のデータ保持情報２１を削除する。また中央処理ユニット１３は、保持情報データベース内に、ＩＰアドレスが異なるものの同一のデータ識別情報を格納した複数のデータ保持情報２１が存在する場合、これら同一のデータ識別情報が格納されたデータ保持情報２１のうち無作為に選択した何れか１つのデータ保持情報２１のみを残して他のデータ保持情報２１を削除し、又は自己のノードよりも１階層下位か１階層上位のノードのＩＰアドレスが格納されているデータ保持情報２１を優先的に残すようにして他のデータ保持情報２１を削除する。このようにして下位のノードの中央処理ユニット１３は、１階層上位のノードから保持情報データベースを取得しても、その保持情報データベースのデータサイズが無駄に増大したままとなることを回避し、ハードディスクの空領域をブロックデータの記憶に対し有効に使用し得るようにしている。
【００８０】
なおかかる実施の形態の場合では、下位のノードの中央処理ユニット１３が保持情報データベース内のデータ保持情報２１のうち、同一のデータ識別情報が格納されたデータ保持情報２１同士の何れかを削除するようにした場合について述べたが、本発明はこれに限らず、下位のノードの中央処理ユニット１３がデータ保持情報２１を何ら削除せずに保持情報データベースをそのまま保持するようにしても良い。このようにすれば、中央処理ユニット１３は、自己のノードでブロックデータを誤って削除した場合や、ブロックデータを保持している他のノードが故障等により接続要求を受け付けることができない状況において、データ提供可能なノードを容易に検索してブロックデータを取得することができる。
【００８１】
またかかる実施の形態の場合では、下位のノードの中央処理ユニット１３が自己のノードの階層位置に応じて設定した配信要求時間に従って上位のノードに対し保持情報データベースを配信要求するようにした場合について述べたが、本発明はこれに限らず、下位のノードの中央処理ユニット１３が自己のノードを起動させたときや、ユーザにより保持情報データベースの配信要求が入力されたとき等の任意のタイミングで上位のノードに対し保持情報データベースを配信要求するようにしても良い。
【００８２】
ところで図１６に示すように、最上位の管理ノード４Ａの中央処理ユニット１３は、システム管理会社側からの要求に応じて、１階層下位の管理ノード４Ｂ、……、４Ｍに対し、下位のノードの状態や種類等を示すノード情報を転送要求するためのノード情報要求信号を転送する。このとき最上位の管理ノード４Ａよりも１階層下位の管理ノード４Ｂ、……、４Ｍの中央処理ユニット１３は、最上位の管理ノード４Ａから転送されたノード情報要求信号を受信すると、これに応じて１階層下位の一般ノード５Ａ、……、５Ｄに対しノード情報要求信号を転送する。このようにして各ノードのうち接続受付不可ノード（すなわち、一般ノード５Ｇ、５Ｉ、５Ｋ乃至５Ｎ）を除く接続受付可能ノード（すなわち、管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｆ、５Ｈ、５Ｊ）のみにおいて中央処理ユニット１３は、１階層上位の接続受付可能ノードから転送されたノード情報要求信号を受信すると、そのノード情報要求信号を１階層下位の接続受付可能ノードに転送するようにして、最終的に最下層の接続受付可能ノードまでノード情報要求信号を送る。
【００８３】
因みに接続受付可能ノードの中央処理ユニット１３は、ノード情報要求信号を１階層下位の接続受付可能ノードに転送するとき、その時点で１階層下位の接続受付可能ノードと通信接続中であれば、その通信接続を利用して当該ノード情報要求信号を転送する。また接続受付可能ノードの中央処理ユニット１３は、ノード情報要求信号を１階層下位の接続受付可能ノードに転送するとき、その時点で当該１階層下位の接続受付可能ノードと通信接続していなければ、上位の接続受付可能ノードから下位の接続受付可能ノードに対して接続要求し、その結果通信接続すると、ノード情報要求信号を転送する。
【００８４】
このようにして各枝部の下位で最終的にノード情報要求信号を受信した接続受付可能ノードのうち、自己よりも１階層下位に接続受付不可ノードが存在しない接続受付可能ノードの中央処理ユニット１３は、自己が最下位であるため、ノード情報要求信号の受信に応じて自己のノード属性情報２０を１階層上位の接続受付可能ノードに返送する。
【００８５】
また１階層下位に接続受付不可ノードが存在する接続受付可能ノードの中央処理ユニット１３は、ノード情報要求信号の受信に応じて、予め保持している１階層下位の接続受付不可ノードのノード属性情報２０に対し、当該接続受付不可ノードとのオンライン状態を示すオンライン状態情報（すなわち、このとき接続受付不可ノードと通信接続中であれば、オンラインであり、通信接続していなければオンラインか否かが不明であることを示す）と、その接続受付不可ノードと通信接続中であれば、通信接続の種類（例えば、データ保持情報２１の転送用の通信接続やデータ保持情報２１の検索用の通信接続、ブロックデータ取得用の通信接続）等を示す通信接続状況情報とを対応付けてノード情報を生成する。そしてかかる中央処理ユニット１３は、自己のノード属性情報２０と共に下位のノードのノード情報を１階層上位の接続受付可能ノードに転送する。
【００８６】
１階層下位の接続受付可能ノードからノード属性情報２０及びノード情報を受信した接続受付可能ノードの中央処理ユニット１３は、その１階層下位のノード属性情報２０に対し、当該１階層下位の接続受付可能ノードとのオンライン状態を示すオンライン状態情報（すなわち、このとき接続受付可能ノードと通信接続中であるためオンラインであることを示す）と、その接続受付可能ノードと通信接続中だったときは通信接続状況情報とを対応付けて１階層下位の接続受付可能ノードのノード情報を生成する。そしてかかる中央処理ユニット１３は、自己のノード属性情報２０と共に、その生成した１階層下位の接続受付可能ノードのノード情報と、１階層下位からノード属性情報２０と共に受信していた、さらに下位のノード情報とをまとめて１階層上位の接続受付可能ノードに転送する。
【００８７】
このようにして最上位の管理ノード４Ａを除く接続受付可能ノードの中央処理ユニット１３は、順次１階層上位の接続受付可能ノードに対し、自己のノード属性情報２０と共に自己よりも下位の全てのノード情報を転送する。これにより最終的に最上位の管理ノード４Ａの中央処理ユニット１３は、１階層下位の接続受付可能ノード（すなわち、管理ノード４Ｂ、……、４Ｍ）よりも下位の全てのノード情報と当該１階層下位の接続受付可能ノードのノード属性情報２０とを取得する。そして最上位の管理ノード４Ａの中央処理ユニット１３は、１階層下位の接続受付可能ノードのノード属性情報２０に対し、当該１階層下位の接続受付可能ノードとのオンライン状態を示すオンライン状態情報（すなわち、このとき接続受付可能ノードと通信接続中であるためオンラインであることを示す）と、その接続受付不可ノードと通信接続中だったときは通信接続状況情報とを対応付けてノード情報を生成し、かくして自己よりも下位の全てのノード情報を揃える。
【００８８】
ところで各接続受付可能ノードの中央処理ユニット１３は、１階層下位からノード属性情報２０及びノード情報を受信したとき、かかるノード情報に含まれる全てのノード属性情報２０をハードディスクに記憶して保持する。これにより接続受付可能ノードの中央処理ユニット１３は、再び１階層上位からノード情報要求信号を受信したとき、これに応じて１階層下位に接続要求しても、返答がなければ、ノード情報要求信号の転送先を変更して下位のノード属性情報２０内のＩＰアドレスに従い、その返答のない１階層下位の接続受付可能ノードよりもさらに下位の接続受付可能ノードに対してノード情報要求信号を転送する。
【００８９】
そして接続受付可能ノードの中央処理ユニット１３は、ノード情報要求信号の転送の際に応答のなかった接続受付可能ノードよりもさらに下位の接続受付可能ノードからノード属性情報２０及び下位のノード情報を受信したとき、当該ノード属性情報２０を送信した接続受付可能ノードに対するノード情報を生成するものの、これに加えてノード情報要求信号の転送時に返答のなかった接続受付可能ノードに対するノード情報も生成する。すなわち中央処理ユニット１３は、すでに保持している、その返答のなかった接続受付可能ノードのノード属性情報２０に対し、当該接続受付可能ノードとのオンライン状態を示すオンライン状態情報（すなわち、このとき接続要求しても返答がないためオンラインではないことを示す）を対応付けてノード情報を生成する。これにより中央処理ユニット１３は、自己のノード属性情報２０と共に、このとき生成したノード情報（返答のなかった接続受付可能ノードのものと、ノード属性情報２０及び下位のノード情報を転送した接続受付可能ノードのもの）及び下位から受信したノード情報をまとめて１階層上位の接続受付可能ノードに転送する。
【００９０】
このため最上位の管理ノード４Ａの中央処理ユニット１３は、データ取得提供システム１内に故障等によってオンラインではない接続受付可能ノードが存在しても、その接続受付可能ノードを含めた全てのノードに対するノード情報を取得することができる。これにより最上位の管理ノード４Ａの中央処理ユニット１３は、自己に対する他の管理ノード４Ｂ、……、４Ｍの接続台数等の接続状況を把握することができる。また最上位の管理ノード４Ａの中央処理ユニット１３は、他の管理ノード４Ｂ、……、４Ｍに対する一般ノード５Ａ、……、５Ｎの接続台数や種類、動作状態等の接続状況についても把握することができる。
【００９１】
従って最上位の管理ノード４Ａは、一般ノード５Ａ、……、５Ｎに対しデータ取得提供システム１の利用を許可する場合、何れかの管理ノード４Ａ、……、４Ｍに対してのみ一般ノード５Ａ、……、５Ｎの通信接続台数が多くなり処理負荷がかたよることのないように、これら一般ノード５Ａ、……、５Ｎに対する階層位置を的確に規定することができる。かくするにつき最上位の管理ノード４Ａの中央処理ユニット１３は、他の管理ノード４Ｂ、……、４Ｍに対する一般ノード５Ａ、……、５Ｎの接続の仕方や当該管理ノード４Ｂ、……、４Ｍの台数等を適宜選定してデータ取得提供システム１をより良い状態で構築することが可能となる。
【００９２】
因みに各管理ノード４Ａ、……、４Ｍは、常時稼働し常時下位の一般ノード５Ａ、……、５Ｎとオンラインの環境で設置されている。そして管理ノード４Ａ、……、４Ｍは、これに通信接続される一般ノード５Ａ、……、５Ｎの台数に応じて複数台用意され、何れかが故障等により稼働不能になったとき、当該稼働不能となった管理ノード４Ａ、……、４Ｍの処理を他の管理ノード４Ａ、……、４Ｍに分散して実行させることにより、データ取得提供システム１における耐障害性を高くしている。
【００９３】
なお、この実施の形態の場合では、各ノードの中央処理ユニット１３がハードディスクに対し楽曲データをブロックデータ単位で記憶し、他のノードからのデータ転送要求に応じて当該ブロックデータを転送するように説明した。しかしながら実際に中央処理ユニット１３は、ブロックデータをそれぞれパケット化して得られるパケットデータとして取得してハードディスクに記憶し、また他のノードに転送している。
【００９４】
すなわち中央処理ユニット１３は、パケットデータの本体部に対しブロックデータを格納すると共に、ヘッダ部に対し当該本体部に格納したブロックデータに対応するデータ保持情報２１を格納している。そして中央処理ユニット１３は、データ取得提供システム１の利用が許可されたノードのみが復号可能な手法で、かかるパケットデータ全体を暗号化してハードディスクに記憶し、また他のノードに転送する。これによりデータ取得提供システム１では、何れかのノードから第三者にパケットデータが不当に取得されても、当該パケットデータを復号し得ないことにより、そのパケットデータ内のブロックデータが不正に使用されることを防止して、元の楽曲データの著作権を保護し得ると共に、データ保持情報２１の内容からパケットデータの提供者が特定されることも防止してデータ提供元の匿名性が損なわれることを回避している。
【００９５】
因みにブロックデータがパケット化されて記憶及び転送されることにより、実際には、上述したデータ保持情報２１においてファイル名は、パケットデータのファイル名となり、拡張子はそのパケットデータのファイルに付加される拡張子となる。またサイズは、パケットデータのサイズとなる。
【００９６】
（２）管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎにおける各種処理
次いで、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、それぞれハードディスクに予め記憶しているデータ取得提供プログラムに従って上述した各種処理を実行している。従って以下には、これら管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行する種々の処理について順番に説明する。
【００９７】
（２−１）データ保持情報転送処理手順
まず図１７に示すフローチャートを用いて、最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行するデータ保持情報転送処理手順ＲＴ１について説明する。最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードを起動させると、データ取得提供プログラムに従って図１７に示すデータ保持情報転送処理手順ＲＴ１を開始する。中央処理ユニット１３は、かかるデータ保持情報転送処理手順ＲＴ１を開始すると、ステップＳＰ１において１階層上位のノードに対しデータ保持情報２１を転送するような状況になることを待ち受ける。
【００９８】
そしてステップＳＰ１において中央処理ユニット１３は、自己のノードで他のノードからブロックデータを取得し当該ブロックデータに対応するデータ保持情報２１を生成してハードディスクに記憶し、又は１階層下位のノードから転送されたデータ保持情報２１を受信したことで、データ保持情報２１を１階層上位のノードに転送する状況になると、次のステップＳＰ２に移る。
【００９９】
ステップＳＰ２において中央処理ユニット１３は、１階層下位のノードからデータ保持情報２１を受信したことで、１階層上位のノードに対しデータ保持情報２１を転送する状況になったか否かを判別する。このステップＳＰ２において否定結果が得られると、このことは自己のノードで他のノードからブロックデータを取得して当該ブロックデータに対応するデータ保持情報２１を生成したことを表している。従って中央処理ユニット１３は、このときステップＳＰ３に移る。そしてステップＳＰ３において中央処理ユニット１３は、１階層上位のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、１階層上位のノードに対し、ブロックデータの取得に応じて生成したデータ保持情報２１を転送してステップＳＰ１に戻る。
【０１００】
これに対してステップＳＰ２において肯定結果が得られると、このことは１階層下位のノードから転送されたデータ保持情報２１を受信したことを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ４に移る。そしてステップＳＰ４において中央処理ユニット１３は、１階層下位のノードから受信したデータ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードで保持しているか否かを判別する。その結果、中央処理ユニット１３は、下位のノードで保持されているブロックデータと同じブロックデータを自己のノードでも保持していることにより肯定結果を得ると、次のステップＳＰ５に移る。これによりステップＳＰ５において中央処理ユニット１３は、１階層上位のノードに対し接続要求して通信接続する。そして中央処理ユニット１３は、１階層上位のノードに対して、１階層下位のノードから受信したデータ保持情報２１（すなわち、下位のノードのＩＰアドレスが格納されている）に替えて、当該データ保持情報２１内のデータ識別情報と同じデータ識別情報を格納している自己のデータ保持情報２１（すなわち、自己のＩＰアドレスを格納している）を転送してステップＳＰ１に戻る。
【０１０１】
またステップＳＰ４において中央処理ユニット１３は、下位のノードで保持されているブロックデータと同じブロックデータを自己のノードで保持してはいないことにより否定結果を得ると、ステップＳＰ６に移る。ステップＳＰ６において中央処理ユニット１３は、自己のノードで保持している１階層下位のノードのノード属性情報２０に基づき、当該１階層下位のノードが接続受付不可ノードであるか否かを判別する。その結果、中央処理ユニット１３は、自己よりも１階層下位のノードが接続受付不可ノードであることにより肯定結果を得ると、次のステップＳＰ７に移る。
【０１０２】
そしてステップＳＰ７において中央処理ユニット１３は、１階層下位の接続受付不可ノードから受信したデータ保持情報２１内のＩＰアドレス（すなわち、１階層下位の接続受付不可ノードのＩＰアドレス）を自己のノードのＩＰアドレスに変更して、次のステップＳＰ８に移る。これによりステップＳＰ８において中央処理ユニット１３は、ＩＰアドレスを自己のノードのものに変更したデータ保持情報２１を、１階層下位の接続受付不可ノードのノード属性情報２０と対応付けてハードディスクに記憶する。このようにして中央処理ユニット１３は、１階層下位の接続受付不可ノードから受信したデータ保持情報２１に対し、内部のＩＰアドレスを自己のノードのものに変更するものの、その接続受付不可ノードのノード属性情報２０を対応付けることで、当該データ保持情報２１がもともと１階層下位の接続受付不可ノードのものであることを識別可能にして、次のステップＳＰ９に移る。ステップＳＰ９において中央処理ユニット１３は、１階層上位のノードに対し接続要求して通信接続する。そして中央処理ユニット１３は、１階層上位のノードに対して、接続受付不可ノードから受信しかつＩＰアドレスを自己のノードのものに変更したデータ保持情報２１を転送した後、ステップＳＰ１に戻る。
【０１０３】
ところでステップＳＰ６において中央処理ユニット１３は、自己よりも１階層下位のノードが接続受付不可ノードではないことにより否定結果を得ると、ステップＳＰ８に移る。そして中央処理ユニット１３は、このときステップＳＰ８において、下位のノードから受信したデータ保持情報２１をそのままハードディスクに記憶した後、続くステップＳＰ９において、１階層上位のノードに対しそのデータ保持情報２１を転送して、ステップＳＰ１に戻る。
【０１０４】
このようにして最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードが起動している間、ステップＳＰ１乃至ステップＳＰ９の一連の処理を順次実行することにより、自己よりも１階層上位のノードに対し、ブロックデータを保持しているノードを示すデータ保持情報２１を転送する。
【０１０５】
（２−２）データ取得処理手順
次いで、図１８に示すフローチャートを用いて、一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行するデータ取得処理手順ＲＴ２について説明する。一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードを起動させると、データ取得提供プログラムに従って図１８に示すデータ取得処理手順ＲＴ２を開始する。中央処理ユニット１３は、かかるデータ取得処理手順ＲＴ２を開始すると、ステップＳＰ１１においてユーザにより楽曲データの取得が要求されることを待ち受ける。そしてステップＳＰ１１において中央処理ユニット１３は、ユーザにより楽曲データの取得が要求されると、次のステップＳＰ１２に移る。
【０１０６】
ステップＳＰ１２において中央処理ユニット１３は、ユーザにより楽曲データの取得要求と共に入力された検索キーワードと、自己のノードで保持しているデータ保持情報２１内のデータ識別情報とを比較する。そして中央処理ユニット１３は、その比較結果に基づいて検索キーワードに対応するデータ保持情報２１を保持しているか否かを判別する。このステップＳＰ１２において肯定結果が得られると、このことは自己のノードで、検索キーワードをデータ識別情報として格納しているデータ保持情報２１を保持していることを表している。すなわちかかる肯定結果は、自己のノードが検索キーワードに対応するブロックデータを提供可能な他のノードを知っていることを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ１３に移る。
【０１０７】
ステップＳＰ１３において中央処理ユニット１３は、自己のノードで検索キーワードにより検索したデータ保持情報２１内のデータ識別情報を用いてデータ転送要求信号を生成する。そして中央処理ユニット１３は、そのデータ保持情報２１内のＩＰアドレスに従って、ブロックデータを提供可能な他のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、通信接続した他のノードに対しデータ転送要求信号を転送して、次のステップＳＰ１４に移る。
【０１０８】
ステップＳＰ１４において中央処理ユニット１３は、他のノードにデータ転送要求信号を送信した結果、当該他のノードから転送される、データ転送要求信号に対応するブロックデータの受信を待ち受ける。そしてステップＳＰ１４において中央処理ユニット１３は、他のノードからデータ転送要求信号に対応するブロックデータを受信すると、次のステップＳＰ１５に移る。ステップＳＰ１５において中央処理ユニット１３は、他のノードから受信したブロックデータをハードディスクに記憶した後、次のステップＳＰ１６に移る。ステップＳＰ１６において中央処理ユニット１３は、自己のノードで検索していたデータ保持情報２１（すなわち、他のノードから受信したブロックデータに対応するデータ保持情報２１）内のＩＰアドレスを自己のノードのＩＰアドレスに変更する。これにより中央処理ユニット１３は、ＩＰアドレスを変更したデータ保持情報２１をハードディスクに記憶することで、当該データ保持情報２１により対応するブロックデータを自己のノードでも保持していることを判別可能にして、ステップＳＰ１１に戻る。
【０１０９】
ところでステップＳＰ１２において否定結果が得られると、このことは自己のノードで、検索キーワードをデータ識別情報として格納しているデータ保持情報２１を保持してはいないことを表している。すなわちかかる否定結果は、自己のノードが、検索キーワードに対応するブロックデータを提供可能な他のノードを知らないことを表している。従って中央処理ユニット１３は、このときステップＳＰ１７に移る。ステップＳＰ１７において中央処理ユニット１３は、検索キーワードを用いて検索要求信号を生成する。そして中央処理ユニット１３は、自己のノードで保持している１階層上位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層上位のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、通信接続した１階層上位のノードに対して検索要求信号を転送して、次のステップＳＰ１８に移る。
【０１１０】
ステップＳＰ１８において中央処理ユニット１３は、１階層上位のノードに対して検索要求信号を転送した結果、その１階層上位のノードから、ブロックデータを保持するノードの検索結果として転送されるデータ保持情報２１の受信を待ち受ける。その結果、ステップＳＰ１８において中央処理ユニット１３は、１階層上位のノードから転送されたデータ保持情報２１を受信すると、ステップＳＰ１３に移る。これにより中央処理ユニット１３は、このときステップＳＰ１３において、１階層上位のノードから受信したデータ保持情報２１内のデータ識別情報を用いてデータ転送要求信号を生成する。そして中央処理ユニット１３は、そのデータ保持情報２１内のＩＰアドレスに従って、ブロックデータを提供可能な他のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、通信接続した他のノードに対しデータ転送要求信号を転送して、次のステップＳＰ１４に移る。
【０１１１】
このようにして一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードが起動している間、ステップＳＰ１１乃至ステップＳＰ１８の一連の処理を順次実行することにより、ユーザにより取得要求された楽曲データを順次ブロックデータ単位で取得する。
【０１１２】
（２−３）データ保持情報検索処理手順
次いで、図１９に示すフローチャートを用いて、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行するデータ保持情報検索処理手順ＲＴ３について説明する。管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードを起動させると、データ取得提供プログラムに従って、図１９に示すデータ保持情報検索処理手順ＲＴ３を開始する。中央処理ユニット１３は、かかるデータ保持情報検索処理手順ＲＴ３を開始すると、ステップＳＰ２１において、１階層下位のノードからデータ保持情報２１の検索が要求されることを待ち受ける。そして中央処理ユニット１３は、１階層下位のノードから転送された検索要求信号を受信して、当該１階層下位のノードからデータ保持情報２１の検索が要求されると、次のステップＳＰ２２に移る。
【０１１３】
ステップＳＰ２２において中央処理ユニット１３は、１階層下位のノードから受信した検索要求信号内の検索キーワードと、自己のノードで保持しているデータ保持情報２１とを比較する。そして中央処理ユニット１３は、その比較結果に基づいて、検索キーワードをデータ識別情報として格納しているデータ保持情報２１を自己のノードで保持しているか否かを判別する。このステップＳＰ２２において肯定結果が得られると、このことは自己のノードで検索キーワードをデータ識別情報として格納しているデータ保持情報２１を保持していることを表している。すなわちかかる肯定結果は、自己のノードが検索キーワードに対応するブロックデータを提供可能なノードを知っていることを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ２３に移る。ステップＳＰ２３において中央処理ユニット１３は、１階層下位のノードに対し、当該検索要求信号内の検索キーワードで検索したデータ保持情報２１を転送して、ステップＳＰ２１に戻る。
【０１１４】
ところでステップＳＰ２２において否定結果が得られると、このことは自己のノードで検索キーワードをデータ識別情報として格納しているデータ保持情報２１を保持してはいないことを表している。すなわちかかる否定結果は、自己のノードが検索キーワードに対応するブロックデータを提供可能なノードを知らないことを表している。従って中央処理ユニット１３は、このときステップＳＰ２４に移る。ステップＳＰ２４において中央処理ユニット１３は、自己のノードで保持している１階層上位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層上位のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、通信接続した１階層上位のノードに対して検索要求信号を転送して、次のステップＳＰ２５に移る。
【０１１５】
ステップＳＰ２５において中央処理ユニット１３は、１階層上位のノードに対して検索要求信号を転送した結果、その１階層上位のノードから、検索キーワードに対応するブロックデータを保持するノードの検索結果として転送されるデータ保持情報２１の受信を待ち受ける。そしてステップＳＰ２５において中央処理ユニット１３は、１階層上位のノードから転送されたデータ保持情報２１を受信すると、次のステップＳＰ２６に移る。中央処理ユニット１３は、自己のノードで保持している１階層下位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層下位のノードに対し接続要求して通信接続する。そして中央処理ユニット１３は、通信接続した１階層下位のノードに対し、１階層上位のノードから受信したデータ保持情報２１を転送して、ステップＳＰ２１に戻る。
【０１１６】
このようにして管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードが起動している間、ステップＳＰ２１乃至ステップＳＰ２６の一連の処理を順次実行することにより、自己よりも１階層下位のノードからデータ保持情報２１の検索要求を受け付けると共に、その検索要求に応じて当該１階層下位のノードに対して検索結果としてのデータ保持情報２１を転送する。
【０１１７】
（２−４）データ提供処理手順
次いで、図２０に示すフローチャートを用いて、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行するデータ提供処理手順ＲＴ４について説明する。管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードを起動させると、データ取得提供プログラムに従って図２０に示すデータ提供処理手順ＲＴ４を開始する。中央処理ユニット１３は、かかるデータ提供処理手順ＲＴ４を開始すると、ステップＳＰ３１において、データ取得要求元の他のノードから転送されるデータ転送要求信号の受信を待ち受ける。そしてステップＳＰ３１において中央処理ユニット１３は、他のノードから転送されたデータ転送要求信号を受信すると、次のステップＳＰ３２に移る。
【０１１８】
ステップＳＰ３２において中央処理ユニット１３は、他のノードから受信したデータ転送要求信号内のデータ識別情報と、自己のノードで保持しているデータ保持情報２１とに基づいて、当該自己のノードで、そのデータ転送要求信号内のデータ識別情報に対応するブロックデータを保持しているか否かを判別する。このステップＳＰ３２において肯定結果が得られると、このことは自己のノードがデータ転送要求信号内のデータ識別情報に対応するブロックデータを保持していることを表している。すなわちかかる肯定結果は、自己のノードがデータ取得要求元の他のノードに対し自己の保持しているブロックデータを提供し得ることを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ３３に移る。ステップＳＰ３３において中央処理ユニット１３は、データ取得要求元の他のノードに対し、データ転送要求信号内のデータ識別情報に対応するブロックデータを転送して、ステップＳＰ３１に戻る。
【０１１９】
これに対してステップＳＰ３２において否定結果が得られると、このことは自己のノードがデータ転送要求信号内のデータ識別情報に対応するブロックデータを保持してはいないことを表している。すなわちかかる否定結果は、自己のノードよりも１階層下位の接続受付不可ノードがデータ転送要求信号内のデータ識別情報に対応するブロックデータを保持していることにより、当該自己のノードが１階層下位の接続受付不可ノードの替わりにそのブロックデータの転送要求を受け付けていることを表している。従って中央処理ユニット１３は、このときステップＳＰ３４に移る。
【０１２０】
ステップＳＰ３４において中央処理ユニット１３は、データ取得要求元の他のノードからデータ転送要求信号と共に受信していたノード属性情報２０に基づき、当該データ取得要求元の他のノードが接続受付不可ノードであるか否かを判別する。このステップＳＰ３４において肯定結果が得られると、このことはデータ取得要求元の他のノードが接続受付不可ノードであり、ブロックデータを保持しているデータ提供可能な接続受付不可ノードからの接続要求を受け付けられないことを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ３５に移る。
【０１２１】
ステップＳＰ３５において中央処理ユニット１３は、１階層下位のデータ提供可能な接続受付不可ノードから接続要求されることを待ち受ける。そして中央処理ユニット１３は、かかるデータ提供可能な接続受付不可ノードから接続要求され通信接続すると、当該データ提供可能な接続受付不可ノードに対し、データ取得要求元の接続受付不可ノードから受信していたデータ転送要求信号内のデータ識別情報を含むデータ転送要求信号を転送して、次のステップＳＰ３６に移る。これによりステップＳＰ３６において中央処理ユニット１３は、データ提供可能な接続受付不可ノードから転送されるブロックデータ（すなわち、データ転送要求信号内のデータ識別情報に対応するブロックデータ）の受信を待ち受ける。そして中央処理ユニット１３は、データ提供可能な接続受付不可ノードから転送されたブロックデータを受信すると、次のステップＳＰ３７に移る。
【０１２２】
ステップＳＰ３７において中央処理ユニット１３は、データ取得要求元の接続受付不可ノードから接続要求されることを待ち受ける。そして中央処理ユニット１３は、データ取得要求元の接続受付不可ノードから接続要求され通信接続すると、当該通信接続したデータ取得要求元の接続受付不可ノードに対し、データ提供可能な接続受付不可ノードから受信したブロックデータを転送して、ステップＳＰ３１に戻る。
【０１２３】
これに対してステップＳＰ３４において否定結果が得られると、このことはデータ取得要求元の他のノードが接続受付可能ノードであり、データ提供可能な接続受付不可ノードからの接続要求を受け付けることができることを表している。従って中央処理ユニット１３は、このときステップＳＰ３８に移る。ステップＳＰ３８において中央処理ユニット１３は、データ提供可能な接続受付不可ノードからの接続要求を待ち受ける。そして中央処理ユニット１３は、データ提供可能な接続受付不可ノードから接続要求され通信接続すると、当該通信接続したデータ提供可能な接続受付不可ノードに対し、データ取得要求元の接続受付可能ノードに、データ転送要求信号内のデータ識別情報に対応するブロックデータを転送するように依頼するデータ転送依頼信号を転送して、ステップＳＰ３１に戻る。
【０１２４】
このようにして管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードが起動している間、ステップＳＰ３１乃至ステップＳＰ３８の一連の処理を順次実行することにより、データ取得要求元のノードに対して転送要求されたブロックデータを提供することがでる。
【０１２５】
（２−５）最上位の管理ノードによるデータベース更新提供処理手順
次いで、図２１に示すフローチャートを用いて、最上位の管理ノード４Ａの中央処理ユニット１３が実行するデータベース更新提供処理手順ＲＴ５について説明する。最上位の管理ノード４Ａの中央処理ユニット１３は、自己の管理ノード４Ａを起動させると、データ取得提供プログラムに従って図２１に示すデータベース更新提供処理手順ＲＴ５を開始する。中央処理ユニット１３は、かかるデータベース更新提供処理手順ＲＴ５を開始すると、ステップＳＰ４１においてデータ保持情報２１を記憶するか否か（すなわち、保持情報データベースに対しデータ保持情報２１を登録するか否か）を判別する。
【０１２６】
このステップＳＰ４１において否定結果が得られると、このことは最上位の管理ノード４Ａでこの時点にはサーバ２から楽曲データをダウンロードしてはいないこと、また１階層下位の管理ノード４Ｂ、……、４Ｍから転送されるデータ保持情報２１を受信してはいないことを表している。従って中央処理ユニット１３は、このときステップＳＰ４２に移る。ステップＳＰ４２において中央処理ユニット１３は、保持情報データベースを１階層下位の管理ノード４Ｂ、……、４Ｍに配信するか否かを判別する。このステップＳＰ４２において否定結果が得られると、このことは最上位の管理ノード４Ａで、１階層下位の管理ノード４Ｂ、……、４Ｍから転送される保持情報配信要求信号を受信してはいないことを表している。従って中央処理ユニット１３は、このときステップＳＰ４１に戻る。これにより中央処理ユニット１３は、この後、ステップＳＰ４１及びステップＳＰ４２の何れかで肯定結果が得られるまでの間、当該ステップＳＰ４１−ＳＰ４２の処理を循環的に繰り返す。これにより中央処理ユニット１３は、データ保持情報２１を記憶すること及び保持情報データベースが配信要求されることを待ち受ける。
【０１２７】
そしてステップＳＰ４１において肯定結果が得られると、このことは最上位の管理ノード４Ａで、サーバ２から新たな楽曲データをダウンロードしたこと、又は１階層下位の管理ノード４Ｂ、……、４Ｍから転送されたデータ保持情報２１を受信したことを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ４３に移る。ステップＳＰ４３において中央処理ユニット１３は、サーバ２から楽曲データとしてダウンロードしたブロックデータに対応するデータ保持情報２１、又は１階層下位の管理ノード４Ｂ、……、４Ｍから受信したデータ保持情報２１をハードディスク内の保持情報データベースに登録すると共に、新たなデータ保持属性情報も登録する。このようにして中央処理ユニット１３は、保持情報データベースを更新すると、ステップＳＰ４１に戻る。
【０１２８】
またステップＳＰ４２において肯定結果が得られると、このことは最上位の管理ノード４Ａで、１階層下位の管理ノード４Ｂ、……、４Ｍから転送された保持情報配信要求信号を受信したことを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ４４に移る。ステップＳＰ４４において中央処理ユニット１３は、自己の保持情報データベースに登録しているデータ保持属性情報と、１階層下位の管理ノード４Ｂ、……、４Ｍから受信した保持情報配信要求信号内のデータ保持属性情報とを比較して、次のステップＳＰ４５に移る。ステップＳＰ４５において中央処理ユニット１３は、データ保持属性情報同士の比較結果に基づいて、１階層下位の管理ノード４Ｂ、……、４Ｍに対し自己の保持情報データベースを配信するか否かを判別する。
【０１２９】
このステップＳＰ４５において肯定結果が得られると、このことは最上位の管理ノード４Ａで保持情報データベースに登録しているデータ保持属性情報と、１階層下位の管理ノード４Ｂ、……、４Ｍから受信した保持情報配信要求信号内のデータ保持属性情報とが異なることを表している。すなわちかかる肯定結果は、最上位の管理ノード４Ａが現在保持している最新の保持情報データベースよりも過去の更新前の保持情報データベースを１階層下位の管理ノード４Ｂ、……、４Ｍで保持していることを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ４６に移る。ステップＳＰ４６において中央処理ユニット１３は、１階層下位の管理ノ−ド４Ｂ、……、４Ｍに対し、自己の（最新）保持情報データベースを転送して、ステップＳＰ４１に戻る。
【０１３０】
因みにステップＳＰ４５において否定結果が得られると、このことは最上位の管理ノード４Ａで保持情報データベースに登録しているデータ保持属性情報と、１階層下位の管理ノード４Ｂ、……、４Ｍから受信した保持情報配信要求信号内のデータ保持属性情報とが一致したことを表している。すなわちかかる否定結果は、最上位の管理ノード４Ａにおいて、１階層下位の管理ノード４Ｂ、……、４Ｍに対し前回、保持情報データベースを配信してから、その保持情報データベースを未だ更新してはいないことを表している。従って中央処理ユニット１３は、このとき１階層下位の管理ノード４Ｂ、……、４Ｍに対して自己の保持情報データベースを配信せずにステップＳＰ４１に戻る。
【０１３１】
このようにして最上位の管理ノード４Ａの中央処理ユニット１３は、自己の管理ノード４Ａが起動している間、ステップＳＰ４１乃至ステップＳＰ４６の一連の処理を順次実行することにより、保持情報データベースを適宜更新すると共に、当該更新した保持情報データベースを下位のノードに配信することができる。
【０１３２】
（２−６）最上位よりも下位のノードによるデータベース更新処理手順
次いで、図２２に示すフローチャートを用いて、最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行するデータベース更新処理手順ＲＴ６について説明する。最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードを起動させると、データ取得提供プログラムに従って図２２に示すデータベース更新処理手順ＲＴ６を開始する。中央処理ユニット１３は、かかるデータベース更新処理手順ＲＴ６を開始すると、ステップＳＰ５１において、１階層上位のノードに対し保持情報データベースを配信要求する時刻になったか否かを判別する。その結果、中央処理ユニット１３は、未だ１階層上位のノードに対し保持情報データベースを配信要求する時刻になってはいないと、次のステップＳＰ５２に移る。
【０１３３】
このステップＳＰ５２において中央処理ユニット１３は、保持情報データベースを１階層下位のノードに配信するか否かを判別する。このステップＳＰ５２において否定結果が得られると、このことは自己のノードで、１階層下位のノードから転送される保持情報配信要求信号を受信してはいないことを表している。従って中央処理ユニット１３は、このときステップＳＰ５１に戻る。これにより中央処理ユニット１３は、この後、ステップＳＰ５１及びステップＳＰ５２の何れかで肯定結果が得られるまでの間、当該ステップＳＰ５１−ＳＰ５２の処理を循環的に繰り返す。これにより中央処理ユニット１３は、１階層上位のノードに対し保持情報データベースを配信要求する時刻になること及び１階層下位のノードから保持情報データベースが配信要求されることを待ち受ける。
【０１３４】
そしてステップＳＰ５１において中央処理ユニット１３は、１階層上位のノードに対し保持情報データベースを配信要求する時刻になると、次のステップＳＰ５３に移る。ステップＳＰ５３において中央処理ユニット１３は、自己の保持している保持情報データベースに登録されているデータ保持属性情報を格納した保持情報配信要求信号を生成する。そして中央処理ユニット１３は、自己のノードで保持している１階層上位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層上位のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、その通信接続した１階層上位のノードに対し、保持情報配信要求信号を転送して、次のステップＳＰ５４に移る。
【０１３５】
ステップＳＰ５４において中央処理ユニット１３は、１階層上位のノードに対する保持情報配信要求信号の転送に応じて、当該１階層上位のノードから転送される保持情報データベースを受信したか否かを判別する。このステップＳＰ５４において否定結果が得られると、このことは１階層上位のノードで保持されている保持情報データベースが、自己のノードで保持している保持情報データベースよりも更新されてはいないことを表している。従って中央処理ユニット１３は、このとき１階層上位のノードから通知された保持情報データベースの配信中止に応じて、当該１階層上位のノードに対する保持情報データベースの配信要求を取り止めてステップＳＰ５１に戻る。
【０１３６】
これに対してステップＳＰ５４において肯定結果が得られると、このことは１階層上位のノードで保持されている保持情報データベースが自己のノードで保持している保持情報データベースよりも更新されたものであり、当該１階層上位のノードから転送された保持情報データベースを受信したことを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ５５に移る。ステップＳＰ５５において中央処理ユニット１３は、自己の保持していた保持情報データベースに対し、１階層上位のノードから受信した保持情報データベースを上書きするようにして、当該自己の保持情報データベースを更新した後、ステップＳＰ５１に戻る。
【０１３７】
また上述のステップＳＰ５２において肯定結果が得られると、このことは自己のノードで１階層下位のノードから転送された保持情報配信要求信号を受信したことを表している。従って中央処理ユニット１３は、このときステップＳＰ５６に移る。ステップＳＰ５６において中央処理ユニット１３は、自己の保持情報データベースに登録しているデータ保持属性情報と、１階層下位のノードから受信した保持情報配信要求信号内のデータ保持属性情報とを比較して、次のステップＳＰ５７に移る。ステップＳＰ５７において中央処理ユニット１３は、データ保持属性情報同士の比較結果に基づいて、１階層下位のノードに対し自己の保持情報データベースを配信するか否かを判別する。
【０１３８】
このステップＳＰ５７において肯定結果が得られると、このことは自己のノードで保持情報データベースに登録しているデータ保持属性情報と、１階層下位のノードから受信した保持情報配信要求信号内のデータ保持属性情報とが異なることを表している。すなわちかかる肯定結果は、自己のノードが現在保持している保持情報データベースよりも過去の更新前の保持情報データベースを１階層下位のノードで保持していることを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ５８に移る。ステップＳＰ５８において中央処理ユニット１３は、１階層下位のノ−ドに対し、自己の保持情報データベースを転送して、ステップＳＰ５１に戻る。
【０１３９】
因みにステップＳＰ５７において否定結果が得られると、このことは自己のノードで保持情報データベースに登録しているデータ保持属性情報と、１階層下位のノードから受信した保持情報配信要求信号内のデータ保持属性情報とが一致したことを表している。すなわちかかる否定結果は、自己のノードにおいて、１階層下位のノードに対し前回、保持情報データベースを配信してから、その保持情報データベースを未だ更新してはいないことを表している。従って中央処理ユニット１３は、このとき１階層下位のノードに対して自己の保持情報データベースを配信せずにステップＳＰ５１に戻る。
【０１４０】
このようにして最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードが起動している間、ステップＳＰ５１乃至ステップＳＰ５８の一連の処理を順次実行することにより、保持情報データベースを適宜更新すると共に、当該更新した保持情報データベースを下位のノードに対して配信することができる。
【０１４１】
（２−７）ノード情報転送処理手順
次いで、図２３に示すフローチャートを用いて、最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３が実行するノード情報転送処理手順ＲＴ７について説明する。最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードを起動させると、データ取得提供プログラムに従って図２３に示すノード情報転送処理手順ＲＴ７を開始する。中央処理ユニット１３は、かかるノード情報転送処理手順ＲＴ７を開始すると、ステップＳＰ６１において、１階層上位のノードから転送されるノード情報要求信号の受信を待ち受ける。そしてステップＳＰ６１において中央処理ユニット１３は、１階層上位のノードから接続要求され通信接続して転送されたノード情報要求信号を受信すると、次のステップＳＰ６２に移る。
【０１４２】
ステップＳＰ６２において中央処理ユニット１３は、自己のノードで保持している他のノードのノード属性情報２０に基づいて、当該自己のノードよりも１階層下位に他のノードが存在するか否かを判別する。このステップＳＰ６２において否定結果が得られると、このことは、自己のノードよりも１階層下位に他のノードが存在しないことで、当該自己のノードが最下位の接続受付可能ノードであることを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ６３に移る。そしてステップＳＰ６３において中央処理ユニット１３は、自己のノードのノード属性情報２０を１階層上位の他のノードに転送して、ステップＳＰ６１に戻る。
【０１４３】
これに対してステップＳＰ６２において肯定結果が得られると、このことは自己のノードよりも１階層下位に他のノードが存在していることを表している。従って中央処理ユニット１３は、このときステップＳＰ６４に移る。ステップＳＰ６４において中央処理ユニット１３は、自己のノードよりも１階層下位のノードは接続受付不可ノードであるか否かを判別する。このステップＳＰ６４において肯定結果が得られると、このことは自己のノードよりも１階層下位のノードが接続受付不可ノードであり、当該接続受付不可ノードに対するノード情報を生成することを表している。従って中央処理ユニット１３は、このとき次のステップＳＰ６５に移る。
【０１４４】
ステップＳＰ６５において中央処理ユニット１３は、自己のノードで保持している１階層下位の接続受付不可ノードのノード属性情報２０や、オンライン状態情報等を用いて当該１階層下位の接続受付不可ノードに対するノード情報を生成する。そして中央処理ユニット１３は、自己のノードで保持している１階層上位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層上位のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、その通信接続した１階層上位のノードに対し、１階層下位の接続受付不可ノードのノード情報と自己のノードのノード属性情報２０とを転送して、ステップＳＰ６１に戻る。
【０１４５】
これに対してステップＳＰ６４において否定結果が得られると、このことは自己のノードよりも１階層下位には、接続受付可能ノードが存在することを表している。従って中央処理ユニット１３は、このときステップＳＰ６６に移る。ステップＳＰ６６において中央処理ユニット１３は、自己のノードで保持している１階層下位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層下位のノードに対し接続要求して通信接続する。そして中央処理ユニット１３は、その通信接続した１階層下位のノードに対しノード情報要求信号を転送して、次のステップＳＰ６７に移る。
【０１４６】
ステップＳＰ６７において中央処理ユニット１３は、１階層下位のノードに対しノード情報要求信号を送信した結果、当該１階層下位のノードから転送されるノード情報（すなわち、１階層下位のノードよりもさらに下位のノードのノード情報）及びノート属性情報２０（すなわち、１階層下位のノードのノード属性情報２０）の受信を待ち受ける。そしてステップＳＰ６７において中央処理ユニット１３は、１階層下位のノードから転送されたノード情報及びノード属性情報２０を受信すると、次のステップＳＰ６８に移る。ステップＳＰ６８において中央処理ユニット１３は、１階層下位のノードから受信した当該ノードに対するノード属性情報２０やオンライン状態情報等を用いてその１階層下位のノードに対するノード情報を生成する。そして中央処理ユニット１３は、自己のノードで保持している１階層上位のノードのノード属性情報２０内のＩＰアドレスに従って、当該１階層上位のノードに対し接続要求して通信接続する。これにより中央処理ユニット１３は、その通信接続した１階層上位のノードに対し、１階層下位のノードから受信した全てのノード情報と、自己のノードで生成した当該１階層下位のノードのノード情報と、自己のノードのノード属性情報２０とをまとめて転送し、ステップＳＰ６１に戻る。
【０１４７】
このようにして最上位の管理ノード４Ａ以外の管理ノード４Ｂ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎの中央処理ユニット１３は、自己のノードが起動している間、ステップＳＰ６１乃至ステップＳＰ６８の一連の処理を順次実行することにより、管理ノード４Ａからのノード情報の転送要求に応じて、順次１階層上位のノードに対し自己のノードよりも下位のノードに対するノード情報を転送し、これらノード情報を最終的に最上位の管理ノード４Ａに引き渡す。
【０１４８】
（３）動作及び効果
以上の構成において、かかるデータ取得提供システム１では、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎを階層構造で通信接続しこれらがブロックデータを保持する毎に、当該ブロックデータを保持しているのが自己のノードであることを示すデータ保持情報２１も保持する。そして管理ノ−ド４Ａよりも下位のノードは、自己のノードで保持したデータ保持情報２１を１階層上位のノードに転送する（ステップＳＰ１乃至ステップＳＰ３）。また管理ノード４Ａよりも下位のノードは、１階層下位のノードから転送されたデータ保持情報２１を受信すると、当該受信したデータ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードで保持しているか否かを判別し、当該ブロックデータを保持していないと、そのデータ保持情報２１を自己のノードで保持しつつ１階層上位のノードに転送する。これに対して各ノードは、データ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードでも保持していると、当該保持しているブロックデータに対応する自己のデータ保持情報２１を１階層上位のノードに転送する（ステップＳＰ２、ステップＳＰ４乃至ステップＳＰ９）。
【０１４９】
また一般ノード５Ａ、……、５Ｎは、楽曲データの取得要求と共に検索キーワードが入力されると、当該検索キーワードに対応するデータ保持情報２１を自己のノードで保持しているか否かを判別する。その結果、一般ノード５Ａ、……、５Ｎは、自己のノードで検索キーワードに対応するデータ保持情報２１を保持していると、そのデータ保持情報２１に基づいてデータ転送要求信号を生成し、これを取得対象のブロックデータを保持する他のノードに転送することにより当該他のノードからそのブロックデータを取得する（ステップＳＰ１１乃至ステップＳＰ１６）。これに対して一般ノード５Ａ、……、５Ｎは、検索キーワードに対応するデータ保持情報２１を自己のノードでは保持していないと、当該検索キーワードを格納した検索要求信号を１階層上位のノードに対して転送することにより、当該１階層上位のノードに対しその検索キーワードに対応するデータ保持情報２１の検索を要求する（ステップＳＰ１７及びステップＳＰ１８）。
【０１５０】
また検索要求信号を受信したノードは、検索キーワードに対応するデータ保持情報を自己のノードで保持していると、かかるデータ保持情報２１を検索要求信号の転送元である１階層下位のノードに返送するものの、当該検索キーワードに対応するデータ保持情報２１を保持していなければ、当該検索要求信号をさらに１階層上位のノードに転送することにより当該１階層上位のノードに対して検索キーワードに対応するデータ保持情報２１の検索を要求する（ステップＳＰ２１乃至ステップＳＰ２４）。そして検索要求信号を受信したものの、かかる検索要求信号をさらに１階層上位のノードに転送したノードは、当該１階層上位のノードから検索結果として転送されたデータ保持情報２１を受信すると、当該受信したデータ保持情報２１を、検索要求信号を転送していた１階層下位のノードに転送する（ステップＳＰ２５及びステップＳＰ２６）。このようにして管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎは、下位のノードから順次上位のノードで検索キーワードに対応するデータ保持情報２１を検索し、その結果を検索要求とは逆の経路をたどって、検索要求元のノードに返す。
【０１５１】
さらに管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎは、データ保持情報２１の検索により他のノードから転送されたデータ転送要求信号を受信すると、そのデータ転送要求信号内のデータ識別情報に対応するブロックデータを保持している場合、当該他のノードにそのブロックデータを転送する（ステップＳＰ３１乃至ステップＳＰ３３）。またデータ提供可能な最下位の接続受付不可ノードよりも１階層上位の接続受付可能ノードは、当該接続受付不可ノードの替わりにデータ取得要求元の他のノードからデータ転送要求信号を受信する。そして接続受付可能ノードは、データ取得要求元の他のノードが接続受付不可ノードであれば、データ提供可能な接続受付不可ノードからブロックデータを一旦取得し、当該取得したブロックデータをデータ取得要求元の接続受付不可ノードに転送する。これに対して接続受付可能ノードは、データ取得要求元の他のノードが接続受付可能ノードであれば、データ提供可能な接続受付不可ノードに対して、そのデータ取得要求元の接続受付可能ノードにブロックデータを転送するように依頼し、かくしてデータ提供可能な接続受付不可ノードからブロックデータをデータ取得要求元の接続受付可能ノードに転送させる（ステップＳＰ３４乃至ステップＳＰ３８）。
【０１５２】
以上の構成によれば、データ取得提供システム１は、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎを階層構造で通信接続しこれらがブロックデータを保持する毎に、当該ブロックデータに対応するデータ保持情報２１も保持すると共に、１階層上位のノードに転送する。そして１階層下位のノードから転送されたデータ保持情報２１を受信したノードは、当該受信したデータ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードで保持してはいないと、かかるデータ保持情報２１を自己のノードで保持しつつ１階層上位のノードに転送する。これに対して１階層下位のノードからデータ保持情報２１を受信したノードは、そのデータ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードでも保持していると、当該ブロックデータに対応する自己のデータ保持情報２１を１階層上位のノードに転送する。また各一般ノード５Ａ、……、５Ｎは、検索キーワードが入力されると、当該検索キーワードに対応するデータ保持情報２１を自己のノードで保持しているときには、当該データ保持情報２１に対応するブロックデータを保持する他のノードにデータ転送要求信号を転送し、その結果当該他のノードから転送されたブロックデータを受信する。これに対して一般ノード５Ａ、……、５Ｎは、検索キーワードに対応するデータ保持情報２１を自己のノードでは保持していないと、当該検索キーワードを格納した検索要求信号を１階層上位のノードに対して転送し、当該１階層上位のノードに対しその検索キーワードに対応するデータ保持情報２１の検索を要求する。そして検索要求信号を受信したノードは、検索キーワードに対応するデータ保持情報２１を自己のノードで保持していると、かかるデータ保持情報２１を検索要求信号の転送元である１階層下位のノードに返送し、当該検索キーワードに対応するデータ保持情報２１を保持していないと、当該検索要求信号をさらに１階層上位のノードに転送して当該１階層上位のノードに対して検索キーワードに対応するデータ保持情報２１の検索を要求する。その結果、順次データ保持情報２１の検索を要求した上位のノードの何れかで検索キーワードに対応するデータ保持情報２１が検索されると、当該検索キーワードに対応するデータ保持情報２１を検索要求とは逆の経路をたどって検索要求元のノードに返す。さらに各ノードは、他のノードから転送されたデータ転送要求信号を受信すると、そのデータ転送要求信号内のデータ識別情報に対応するブロックデータを保持している場合、当該他のノードにそのブロックデータを転送する。ただしデータ提供可能な最下位の接続受付不可ノードよりも１階層上位の接続受付可能ノードは、当該接続受付不可ノードの替わりにデータ取得要求元の他のノードからデータ転送要求信号を受信し、データ取得要求元の他のノードが接続受付不可ノードであると、データ提供可能な接続受付不可ノードからブロックデータを一旦取得し、当該取得したブロックデータをデータ取得要求元の接続受付不可ノードに転送する。これに対して接続受付可能ノードは、データ取得要求元の他のノードが接続受付可能ノードであると、データ提供可能な接続受付不可ノードに対して、そのデータ取得要求元の接続受付可能ノードにブロックデータを転送するように依頼し、データ提供可能な接続受付不可ノードからブロックデータをデータ取得要求元の接続受付可能ノードに転送させる。従ってデータ取得提供システム１では、データ取得要求元のノードにおいて取得対象のブロックデータが他の何れのノードで保持されているかを事前に知らなくても、当該データ取得要求元のノードに対し取得対象のブロックデータを提供可能な他のノードを的確に検索して通知することができ、かくしてブロックデータを容易に取得し得るデータ取得提供システム１を実現することができる。
【０１５３】
またデータ取得提供システム１は、管理ノ−ド４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎを階層構造で通信接続し、各枝部でそれぞれ個々のノードに対して１階層上位のノードに接続要求させるようにした。従ってデータ取得提供システム１は、上位の管理ノード４Ａ、……、４Ｍに対して、下位のノードから接続要求が集中して処理負荷が増大することを大幅に低減させることができる。
【０１５４】
さらにデータ取得提供システム１において、各ノードが１階層上位のノードに対してデータ保持情報２１を転送する場合、当該データ保持情報２１を受信したノードは、当該受信したデータ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードで保持していないと、そのデータ保持情報２１を自己のノードで保持しつつ１階層上位のノードに転送し、当該データ保持情報２１内のデータ識別情報に対応するブロックデータを自己のノードでも保持していると、そのブロックデータに対応する自己のデータ保持情報２１を１階層上位のノードに転送する。従ってデータ取得提供システム１では、同一のブロックデータを複数のノードで保持した場合、当該ブロックデータを保持する複数のノードの当該ブロックデータに対応するデータ保持情報２１をデータ取得提供システム１内のノードに適宜分散して保持させることができる。このためシステム取得提供システム１では、同一のブロックデータが複数のノードで保持されているとき、いずれか１つのノードに対して他の複数のノードからデータの転送要求が集中することを有効に回避することができ、かくしてブロックデータを効率良く提供することができる。そしてシステム取得提供システム１では、このように同一のブロックデータに対応する複数のデータ保持情報２１を各ノードに分散させて保持させることにより、ブロックデータから再構築される楽曲データの人気が高いほど、かかる同一のブロックデータに対応するより多くのデータ保持情報２１が各ノードに対してまんべんなく分散され、その結果、かかるブロックデータの取得を要望するノードに対し、対応するデータ保持情報２１を素早く検索させて当該ブロックデータをより取得し易くさせることができる。
【０１５５】
さらにデータ取得提供システム１において、一般ノード５Ａ、……、５Ｎは、楽曲データの取得要求と共に検索キーワードが入力されると、まず当該検索キーワードに対応するデータ保持情報２１を自己のノードで保持しているか否かを判別し、その結果、自己のノードで検索キーワードに対応するデータ保持情報２１を保持していないと、各枝部分でそれぞれ順次１階層上位のノードに対して当該検索キーワードに対応するデータ保持情報２１の検索を要求することにより、１又は少数の特定のノードに対してデータ保持情報２１の検索要求が集中することを回避することができ、データ保持情報２１の検索効率を格段的に向上させることができる。
【０１５６】
さらにデータ取得提供システム１では、データ保持情報２１が検索された後は、当該データ保持情報２１に対応するブロックデータを保持するノードに対して、データ取得要求元のノードが直接転送要求し、これに応じて、当該ブロックデータを保持するデータ提供可能なノードからブロックデータを直接データ取得要求元のノードに転送して提供するようにしたことにより、ブロックデータの提供の仕組みが煩雑化することを回避して当該ブロックデータの転送要求に迅速に対処することができる。
【０１５７】
さらにデータ取得提供システム１では、データ提供元が接続受付不可ノードである場合、当該接続受付不可ノードよりも１階層上位の接続受付可能ノードが、その接続受付不可ノードの替わりにデータ取得要求元の他のノードからデータ転送要求信号を受信し、当該データ接続要求元のノードが接続受付可能ノードと接続受付不可ノードとの何れであるかに応じて、当該データ提供可能な接続受付不可ノードに対するブロックデータの転送依頼役又は転送中継役として機能することにより、外部から接続要求を受け付けられない接続受付不可ノードがデータ提供可能なときでも、当該データ提供可能な接続受付不可ノードの保持するブロックデータを他のノードに的確に提供することができる。そしてデータ取得提供システム１は、ユーザにより使用されるノードのほとんどがこのような接続受付不可ノードであるものの、かかる接続受付不可ノードをデータ提供元及びデータ取得要求元の何れとしても自在に機能させることができるため、ユーザに対して格段的に利用させ易くすることができる。
【０１５８】
さらにデータ取得提供システム１では、管理ノード４Ａによりサーバ２からダウンロードした楽曲データのブロックデータに対応するデータ保持情報２１及び下位のノードから吸い上げたデータ保持情報２１から保持情報データベースを構築し、これを下位のノードに配信するため、各ノードに対してデータ保持情報２１をさらに検索させ易くすることができる。
【０１５９】
さらにデータ取得提供システム１では、最上位の管理ノード４Ａからのノード情報転送要求に応じて、下位の各ノードが順次ノード情報を生成して管理ノード４Ａに転送することにより、かかるノード情報により各ノードの接続状況を容易に把握してシステム構築に的確に反映させることができる。すなわちデータ取得提供システム１では、管理ノード４５Ａ、……、４Ｍの台数や、これらに接続する一般ノード５Ａ、……、５Ｎの台数等を的確に規定することができ、かくしてシステム全体をより効率良く運営することができる。
【０１６０】
そしてこのようなデータ提供システム１によれば、管理ノード４Ａ、……、４Ｍ及び一般ノード５Ａ、……、５Ｎを管理するためのサーバを特には設けなくても、何ら支障なく運営することができ、管理サーバの設置及び管理によりシステム運営が煩雑化することを回避することができる。また各ノードがそれぞれブロックデータとデータ保持情報２１とを保持し、データ提供元及びデータ取得要求元の何れでも機能し得るため、楽曲データ配信用の１つのサーバ２に対し全てのノードが楽曲データの配信を依存するような方式に比べて、サーバ２に対する処理負荷の増加を未然に回避し、楽曲データの配信サービスに支障がきたすようなことをほぼ確実に防止することができる。
【０１６１】
（４）他の実施の形態
なお上述の実施の形態においては、本発明によるデータ取得提供装置を図１乃至図２３について上述したパーソナルコンピュータ構成のデータ取得提供装置４Ａ、……、４Ｍ及び５Ａ、……、５Ｎに適用するようにした場合について述べたが、本発明はこれに限らず、携帯電話機やＰＤＡ（Personal Digital Assistance ）、ゲーム機器等の情報処理装置、ＤＶＤレコーダやオーディオレコーダ等のように、この他種々のデータ取得提供装置に広く適用することができる。
【０１６２】
すなわち上述の実施の形態においては、データ取得提供プログラムをデータ取得提供装置４Ａ、……、４Ｍ及び５Ａ、……、５Ｎに実装したが、これらを携帯電話機やＰＤＡ等、データ取得提供装置４Ａ、……、４Ｍ及び５Ａ、……、５Ｎ以外の種々の装置に実装することで、これらデータ取得提供プログラムを実装した装置で、上述したデータ取得提供装置４Ａ、……、４Ｍ及び５Ａ、……、５Ｎと同様の処理を容易に実現することができる。
【０１６３】
また上述の実施の形態においては、データ取得提供装置４Ａ、……、４Ｍ及び５Ａ、……、５Ｎに対しデータ取得提供プログラムを予め実装しておき、当該データ取得処理プログラムに従って図１７乃至図２３について上述した各種処理手順を実行するようにした場合について述べたが、本発明はこれに限らず、そのデータ取得提供プログラムが格納されたプログラム格納媒体をデータ取得提供装置４Ａ、……、４Ｍ及び５Ａ、……、５Ｎにインストールすることにより図１７乃至図２３について上述した各種処理手順を実行するようにしても良い。
【０１６４】
さらに上述の実施の形態においては、データ取得提供装置で保持するデータとして、図１乃至図２３について上述した楽曲データから分割されるブロックデータを適用するようにした場合について述べたが、本発明はこれに限らず、楽曲データ自体や、写真画像データ、映像データ、テキストデータ、プログラムデータ（ゲームプログラムや、コンピュータ等のソフトウェアアップデート用のプログラムデータ）等のコンテンツデータのように、この他種々のデータを広く適用することができる。
【０１６５】
さらに上述の実施の形態においては、保持するデータのデータ識別情報と、本データ取得提供装置のアドレスとからなるデータ保持情報を記憶するデータ保持情報記憶手段として、図１乃至図２３について上述した中央処理ユニット１３及びハードディスクドライブ１４を適用するようにした場合について述べたが、本発明はこれに限らず、光磁気ディスク等のディスク状記録媒体や半導体メモリ等の記憶媒体にデータ保持情報を記憶するハードウェア回路構成のデータ保持情報記憶回路等のように、この他種々のデータ保持情報記憶手段を広く適用することができる。
【０１６６】
さらに上述の実施の形態においては、記憶されたデータ保持情報、及び本データ取得提供装置の装置属性情報を、当該本データ取得提供装置よりも上位の上位データ取得提供装置に転送する記憶情報上位転送手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、データ保持情報及びノード情報を上位データ取得提供装置に転送するハードウェア回路構成の記憶情報上位転送回路等のように、この他種々の記憶情報上位転送手段を広く適用することができる。
【０１６７】
さらに上述の実施の形態においては、本データ取得提供装置よりも下位の下位データ取得提供装置から転送されたデータ保持情報を受信し、当該下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持していないときには当該下位データ取得提供装置から受信したデータ保持情報を記憶すると共に上位データ取得提供装置に転送し、下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているときには本データ取得提供装置で記憶しているデータ保持情報のうち下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報を含むデータ保持情報を上位データ取得提供装置に転送するデータ保持情報上位転送手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、本データ取得提供装置よりも下位の下位データ取得提供装置から転送されたデータ保持情報を受信し、当該下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているか否かを検出し、当該検出結果に応じて、下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持していないときには当該下位データ取得提供装置から受信したデータ保持情報を記憶すると共に上位データ取得提供装置に転送し、下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報に対応するデータを保持しているときには本データ取得提供装置で記憶しているデータ保持情報のうち下位データ取得提供装置から受信したデータ保持情報内のデータ識別情報を含むデータ保持情報を上位データ取得提供装置に転送するハードウェア回路構成のデータ保持情報上位転送回路等のように、この他種々のデータ保持情報上位転送手段を広く適用することができる。
【０１６８】
さらに上述の実施の形態においては、特定の検索キーワードの入力に応じて、本データ取得提供装置が検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、検索キーワードに対応するデータ保持情報を記憶していないときには、上位データ取得提供装置に対して検索キーワードを含む検索要求信号を転送する検索要求上位転送手段として、図１乃至図２３について上述した中央処理ユニット１３、ハードディスクドライブ１４、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、特定の検索キーワードの入力に応じて、本データ取得提供装置が検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、検索キーワードに対応するデータ保持情報を記憶していないときには、上位データ取得提供装置に対して検索キーワードを含む検索要求信号を転送するハードウェア回路構成の検索要求上位転送回路等のように、この他種々の検索要求上位転送手段を広く適用することができる。
【０１６９】
さらに上述の実施の形態においては、上位データ取得提供装置に対する検索要求信号の転送の結果、当該上位データ取得提供装置から返送された、検索要求信号内の検索キーワードに対応するデータ保持情報を受信する返送データ保持情報受信手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、検索要求信号内の検索キーワードに対応するデータ保持情報を受信するハードウェア回路構成の返送データ保持情報受信回路等のように、この他種々の返送データ保持情報受信手段を広く適用することができる。
【０１７０】
さらに上述の実施の形態においては、上位データ取得提供装置から転送されたデータ保持情報を記憶する返送データ保持情報記憶手段として、図１乃至図２３について上述した中央処理ユニット１３及びハードディスクドライブ１４を適用するようにした場合について述べたが、本発明はこれに限らず、光磁気ディスク等のディスク状記録媒体や半導体メモリ等の記憶媒体に対し、上位データ取得提供装置から転送されたデータ保持情報を記憶するハードウェア回路構成の返送データ保持情報記憶回路等のように、この他種々の返送データ保持情報記憶手段を広く適用することができる。
【０１７１】
さらに上述の実施の形態においては、下位データ取得提供装置から転送された検索要求信号を受信する検索要求受信手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、下位データ取得提供装置から転送された検索要求信号を受信するハードウェア回路構成の検索要求受信回路等のように、この他種々の検索要求受信手段を広く適用することができる。
【０１７２】
さらに上述の実施の形態においては、下位データ取得提供装置から転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、下位データ取得提供装置から転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているときには、当該検索キーワードに対応するデータ保持情報を下位データ取得提供装置に転送するデータ保持情報下位転送手段として、図１乃至図２３について上述した中央処理ユニット１３、ハードディスクドライブ１４、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、下位データ取得提供装置から転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているか否かを検出し、当該検出結果に応じて、下位データ取得提供装置から転送された検索要求信号内の検索キーワードに対応するデータ保持情報を記憶しているときには、当該検索キーワードに対応するデータ保持情報を下位データ取得提供装置に転送するハードウェア回路構成のデータ保持情報下位転送回路等のように、この他種々のデータ保持情報下位転送手段を広く適用することができる。
【０１７３】
さらに上述の実施の形態においては、上位データ取得提供装置に対する検索要求信号の転送の結果、当該上位データ取得提供装置から転送されたデータ保持情報内のアドレスに対応するデータ提供可能なデータ取得提供装置に対し、当該上位データ取得提供装置から転送されたデータ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するデータ要求転送手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、上位データ取得提供装置に対する検索要求信号の転送の結果、当該上位データ取得提供装置から転送されたデータ保持情報内のアドレスに対応するデータ提供可能なデータ取得提供装置に対し、当該上位データ取得提供装置から転送されたデータ保持情報内のデータ識別情報を含むデータ転送要求信号を転送するハードウェア回路構成のデータ要求転送回路等のように、この他種々のデータ要求転送手段を広く適用することができる。
【０１７４】
さらに上述の実施の形態においては、データ提供可能なデータ取得提供装置に対するデータ転送要求信号の転送の結果、当該データ提供可能なデータ取得提供装置から返送された、データ転送要求信号内のデータ識別情報に対応するデータを受信するデータ受信手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、データ提供可能なデータ取得提供装置に対するデータ転送要求信号の転送の結果、当該データ提供可能なデータ取得提供装置から返送された、データ転送要求信号内のデータ識別情報に対応するデータを受信するハードウェア回路構成のデータ受信回路等のように、この他種々のデータ受信手段を広く適用することができる。
【０１７５】
さらに上述の実施の形態においては、データ提供可能なデータ取得提供装置から転送されたデータに対応し、上位データ取得提供装置から転送されたデータ保持情報を、当該データ保持情報内のアドレスを本データ取得提供装置のアドレスに書き換えて記憶するデータ保持情報更新記憶手段として、図１乃至図２３について上述した中央処理ユニット１３及びハードディスクドライブ１４を適用するようにした場合について述べたが、本発明はこれに限らず、光磁気ディスク等のディスク状記録媒体や半導体メモリ等の記憶媒体に対し、データ提供可能なデータ取得提供装置から転送されたデータに対応し、上位データ取得提供装置から転送されたデータ保持情報を、当該データ保持情報内のアドレスを本データ取得提供装置のアドレスに書き換えて記憶するハードウェア回路構成のデータ保持情報更新記憶回路等のように、この他種々のデータ保持情報更新記憶手段を広く適用することができる。
【０１７６】
さらに上述の実施の形態においては、他のデータ取得提供装置から転送されたデータ転送要求信号を受信するデータ要求受信手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、他のデータ取得提供装置から転送されたデータ転送要求信号を受信するハードウェア回路構成のデータ要求受信回路等のように、この他種々のデータ要求受信手段を広く適用することができる。
【０１７７】
さらに上述の実施の形態においては、他のデータ取得提供装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを本データ取得提供装置が保持しているか否かを検出し、当該検出結果に応じて、他のデータ取得提供装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを保持しているときには、当該データを他のデータ取得提供装置に転送するデータ転送手段として、図１乃至図２３について上述した中央処理ユニット１３、ハードディスクドライブ１４、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、他のデータ取得提供装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを本データ取得提供装置が保持しているか否かを検出し、当該検出結果に応じて、他のデータ取得提供装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを保持しているときには、当該データを他のデータ取得提供装置に転送するハードウェア回路構成のデータ転送回路等のように、この他種々のデータ転送手段を広く適用することができる。
【０１７８】
さらに上述の実施の形態においては、外部から接続要求を受け付けられないデータ提供可能な下位データ取得提供装置としての接続受付不可装置からデータ保持情報が受信されると、当該データ保持情報内の接続受付不可装置のアドレスを本データ取得提供装置のアドレスに変更して記憶するアドレス変更データ保持情報記憶手段として、図１乃至図２３について上述した中央処理ユニット１３及びハードディスクドライブ１４を適用するようにした場合について述べたが、本発明はこれに限らず、光磁気ディスク等のディスク状記録媒体や半導体メモリ等の記憶媒体に対し、外部から接続要求を受け付けられないデータ提供可能な下位データ取得提供装置としての接続受付不可装置からデータ保持情報が受信されると、当該データ保持情報内の接続受付不可装置のアドレスを本データ取得提供装置のアドレスに変更して記憶するハードウェア回路構成のアドレス変更データ保持情報記憶回路等のように、この他種々のアドレス変更データ保持情報記憶手段を広く適用することができる。
【０１７９】
さらに上述の実施の形態においては、外部から接続要求を受け付けられるデータ取得要求元の他のデータ取得提供装置としての接続受付可能装置から転送されたデータ転送要求信号が受信されると、本データ取得提供装置の記憶しているデータ保持情報の中から、接続受付可能装置から転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているときには、データ提供可能な接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した接続受付不可装置に対し、接続受付可能装置に、当該接続受付可能装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを転送するように依頼するデータ転送依頼情報を転送するデータ転送依頼手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、外部から接続要求を受け付けられるデータ取得要求元の他のデータ取得提供装置としての接続受付可能装置から転送されたデータ転送要求信号が受信されると、本データ取得提供装置の記憶しているデータ保持情報の中から、接続受付可能装置から転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているときには、データ提供可能な接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した接続受付不可装置に対し、接続受付可能装置に、当該接続受付可能装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを転送するように依頼するデータ転送依頼情報を転送するハードウェア回路構成のデータ転送依頼回路等のように、この他種々のデータ転送依頼手段を広く適用することができる。
【０１８０】
さらに上述の実施の形態においては、データ取得要求元の他のデータ取得提供装置としての接続受付不可装置から転送されたデータ転送要求信号が受信されると、本データ取得提供装置の記憶しているデータ保持情報の中から、接続受付不可装置から転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているときには、データ提供可能な接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求したデータ提供可能な接続受付不可装置に対し、データ取得要求元の接続受付不可装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを要求するためのデータ転送要求信号を転送し、当該データ転送要求信号の転送の結果、データ提供可能な接続受付不可装置から返送されたデータが受信されると、当該受信されたデータを記憶すると共に、データ取得要求元の接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した接続受付不可装置に対し、記憶したデータを転送するデータ中継転送手段として、図１乃至図２３について上述した中央処理ユニット１３、通信処理部１７及びネットワークインタフェース１８を適用するようにした場合について述べたが、本発明はこれに限らず、データ取得要求元の他のデータ取得提供装置としての接続受付不可装置から転送されたデータ転送要求信号が受信されると、本データ取得提供装置の記憶しているデータ保持情報の中から、接続受付不可装置から転送されたデータ転送要求信号内のデータ識別情報を含むデータ保持情報を検索し、当該検索したデータ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているか否かを判別し、当該判別結果に応じて、データ保持情報内のアドレスをデータ提供可能な接続受付不可装置のアドレスから本データ取得提供装置のアドレスに変更しているときには、データ提供可能な接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求したデータ提供可能な接続受付不可装置に対し、データ取得要求元の接続受付不可装置から転送されたデータ転送要求信号内のデータ識別情報に対応するデータを要求するためのデータ転送要求信号を転送し、当該データ転送要求信号の転送の結果、データ提供可能な接続受付不可装置から返送されたデータが受信されると、当該受信されたデータを記憶すると共に、データ取得要求元の接続受付不可装置からの接続要求を待ち受け、当該接続受付不可装置から接続要求されると、当該接続要求した接続受付不可装置に対し、記憶したデータを転送するハードウェア回路構成のデータ中継転送回路等のように、この他種々のデータ中継転送手段を広く適用することができる。
【産業上の利用可能性】
【０１８１】
本発明は、パーソナルコンピュータや携帯電話機、ゲーム機器等のデータ取得提供装置に利用することができる。
【図面の簡単な説明】
【０１８２】
【図１】本発明によるデータ取得提供システムの全体構成の一実施の形態を示す略線図である。
【図２】ノードの回路構成を示すブロック図である。
【図３】ノード属性情報の構成を示す略線図である。
【図４】データ保持情報の構成を示す略線図である。
【図５】上位のノードに対するデータ保持情報の転送（１）の説明に供する略線図である。
【図６】上位のノードに対するデータ保持情報の転送（２）の説明に供する略線図である。
【図７】接続受付不可ノードからのデータ保持情報の転送の説明に供する略線図である。
【図８】自己のノードにおける検索に応じて他のノードからのブロックデータの取得の説明に供する略線図である。
【図９】１階層上位のノードに対する検索要求の説明に供する略線図である。
【図１０】１階層上位のノードからのブロックデータの取得の説明に供する略線図である。
【図１１】上位のノードに対する検索要求の説明に供する略線図である。
【図１２】検索要求によって探し当てたブロックデータの取得の説明に供する略線図である。
【図１３】データ取得要求元とデータ提供元とが共に接続受付不可ノードの場合のブロックデータの取得の説明に供する略線図である。
【図１４】データ取得要求元が接続受付可能ノードであり、データ提供元が接続受付不可ノードの場合のブロックデータの取得の説明に供する略線図である。
【図１５】保持情報データベースの配信の説明に供する略線図である。
【図１６】ノード情報の取得の説明に供する略線図である。
【図１７】データ保持情報転送処理手順を示すフローチャートである。
【図１８】データ取得処理手順を示すフローチャートである。
【図１９】データ保持情報検索処理手順を示すフローチャートである。
【図２０】データ提供処理手順を示すフローチャートである。
【図２１】最上位の管理ノードによるデータベース更新提供処理手順を示すフローチャートである。
【図２２】最上位よりも下位のノードによるデータベース更新処理手順を示すフローチャートである。
【図２３】ノード情報転送処理手順を示すフローチャートである。
【符号の説明】
【０１８３】
１……データ取得提供システム、２……サーバ、４Ａ、……、４Ｍ……管理ノード、５Ａ、……、５Ｎ……一般ノード、１３……中央処理ユニット、１４……ハードディスクドライブ、１７……通信処理部、１８……ネットワークインタフェース、２０……ノード属性情報、２１……データ保持情報、ＲＴ１……データ保持情報転送処理手順、ＲＴ２……データ取得処理手順、ＲＴ３……データ保持情報検索処理手順、ＲＴ４……データ提供処理手順、ＲＴ５……データベース更新提供処理手順、ＲＴ６……データベース更新処理手順、ＲＴ７……ノード情報転送処理手順。
【図１】
2006107349.tif 000003
【図２】
2006107349.tif 000004
【図３】
2006107349.tif 000005
【図４】
2006107349.tif 000006
【図５】
2006107349.tif 000007
【図６】
2006107349.tif 000008
【図７】
2006107349.tif 000009
【図８】
2006107349.tif 000010
【図９】
2006107349.tif 000011
【図１０】
2006107349.tif 000012
【図１１】
2006107349.tif 000013
【図１２】
2006107349.tif 000014
【図１３】
2006107349.tif 000015
【図１４】
2006107349.tif 000016
【図１５】
2006107349.tif 000017
【図１６】
2006107349.tif 000018
【図１７】
2006107349.tif 000019
【図１８】
2006107349.tif 000020
【図１９】
2006107349.tif 000021
【図２０】
2006107349.tif 000022
【図２１】
2006107349.tif 000023
【図２２】
2006107349.tif 000024
【図２３】
2006107349.tif 000025