以下、本発明の実施例につき、図面を用いて説明する。以下、本実施の形態では、P2Pネットワークを形成しているアドホックネットワークについて説明する。
なお、P2Pは情報を多数のノードで共有する仕掛けであり、ノード上で公開した情報をそのまま他のノードが検索するという特徴を持つ。他人のノード上に存在する情報を検索するにあたり、少なくとも検索される側のCPUリソースを使用しなければならない。また、当然通信が発生するため、検索される側のネットワークリソースも使用する。また、ノード上で公開するだけでは大規模なP2Pネットワークにおいては検索の効率が非常に悪化する。ノードがオフラインの場合には情報を取得することができない。このため、ノード上のメモリをキャッシュメモリとして利用し、共有の効率を向上する方法が考えられる。これらは、P2Pにおいて多少のリソースを提供する代わりに、参加するP2Pの各ノードが使いやすい情報共有環境を整えると言った互助的考えから提案されているものであり、背景としてネットワーク性能、CPU性能、メモリ搭載量の飛躍的増大から各ノードの余剰リソースの集合が大規模集中サーバを凌駕していることに起因する。例えばNapsterを集中サーバで実現するためには、莫大な投資が必要であったが、数千万台のPCの一部のリソースを寄せ集めることで、Napsterシステムは数台のPCのみで実現された。つまり、気にならない程度のリソースを提供して快適な環境を創造するのがP2Pの本質である。また、集中サーバを廃してP2P化すると、集中サーバでは実現できない様々なメリットを享受できる。
アドホックネットワークとは、その場に存在するノード同士で形成するネットワークのことをいう。近年のモバイル関連技術の向上に伴い、数十m程度の比較的短距離で直接通信する方法が、高速・低コストかつ自由度の高い通信方法として注目され始めている。
図1は、アドホックネットワークにおける動的なネットワークに関する説明図であり、このネットワークはP2Pネットワークを形成している。P2Pネットワークとは、情報の送信機能と情報の検索機能により情報共有が可能なノード群を示す。説明中において直接通信領域とは、例えば無線LAN(Local Area Network)や赤外線通信など、短距離無線通信において通信可能な領域を指し、他のノードを直接通信領域に含むと、該ノードに対して情報を送信することができる。つまり、互いに直接通信領域に含まれている場合には、双方向の通信が可能である。なお、直接通信領域は概念的に示した領域であり、実際に無線が届く領域を反映しなくても良い。
図1において、101から123までは状態1、151から172までは状態2に属している。状態1はある時刻を示し、状態2は状態1から時間が経過した状態を示す。101から105および151から155はそれぞれノードを示している。111から115および161から165はそれぞれ直接通信領域を示している。状態1においては、ノード101および102の直接通信可能領域111および112は互いのノードを含んでおり、相互に通信可能である。同様にノード102および103も通信可能である。よって、ノード101、102、103はP2Pネットワークを形成する。ノード104および105は、直接通信可能領域に他のノードを含まないため、通信できない。よって、ノード104および105は、それぞれ単独でP2Pネットワーク104および105を形成する。
次に、状態1からある時間が経過した状態2について説明する。状態2では、ノード101および105がそれぞれノード151および155の場所に移動している。状態2では、P2Pネットワーク121を形成するノード101が直接通信領域から外れたため、P2Pネットワーク121は新たにP2Pネットワーク171として再構成される。また、同様にノード151および154および155がそれぞれ直接通信領域に加わったため、それぞれのノードにより新たにP2Pネットワーク172が再構成される。なお、P2Pネットワークの再構成では、P2Pネットワークを構成するメンバーの脱退処理・加入処理が行われる。
図21は、ノードの説明図である。図21において、2101はCPU、2102はメモリやハードディスクなどの記録部、2103はネットワークへ接続するためもしくは他のノードへ直接接続するためのインタフェース、2104はキーボードやタッチパネルなどの入力部、2105は画面やスピーカなどの出力部である。入力部2104には、ノードの進行方向や緯度経度を取得できるモジュールが接続されても良い。
ノードの記録部2102は、図2のようなメモリ内部構成となっている。図2は、ノードのメモリ構成の説明図である。
210および220および230はそれぞれノードを示している。ノードは公開メモリ領域211およびキャッシュメモリ領域212を持つ。公開メモリ領域とは、ノードが作成したコンテンツを登録し、公開する領域である。他のノードは、特別な設定がない限り公開メモリ領域に登録されているコンテンツを取得することができる。キャッシュメモリ領域とは、他のノードが作成したコンテンツを保存する領域である。他のノードは、特別な設定がない限りキャッシュメモリ領域に保存されているコンテンツを取得することができる。図2では、ノード210はコンテンツ215から217を公開している。例えばノード230がコンテンツ217を取得すると、キャッシュメモリ領域232に保存する。ノード220がノード210へコンテンツを送信すると、コンテンツはキャッシュメモリ領域212に保存される。つまり、公開メモリ領域は、オリジナルのコンテンツが保存される領域であり、キャッシュメモリ領域は、複製されたコンテンツが保存される領域である。なお、オリジナルのコンテンツが公開メモリ領域に保存しない構成や、公開メモリ領域が無い構成でも良く、その場合には類似機能を他のノードと共同で実装するが、概念的には図2と同様になる。
ここで、コンテンツは、コンテンツの保持者が参照可能であり、かつ多くのノードから効率よく参照される必要がある。前者は存在保証として、後者は共有効率として実装される。存在保証は、コンテンツの保持者が使用するノードに保持するなどして参照可能であれば良い。共有効率は、コンテンツの保持者が使用するノード以外に広くコピーをし、P2Pネットワークとして共有の効率が向上されれば良い。これらは、1つの端末で考えた場合、メモリの使用において競合関係にあり、メモリの使用量に制限がある場合は両立させることが難しくなる。そこで、存在保証用と共有効率用にメモリを2つに分け、コンテンツをメモリ上に登録する時点でどちらかを明確にすれば各メモリ内における管理が容易となるという効果がある。本実施の形態では、存在保証用のメモリを公開メモリ、共有効率用のメモリをキャッシュメモリと呼ぶようにしている。
図3は、コンテンツの説明図である。コンテンツは、メタデータ310とコンテンツデータ311から構成される。310はコンテンツの説明であるメタデータである。コンテンツID311は、すべてのP2Pネットワークでコンテンツを一意に判別するIDである。発行者ID312は、コンテンツIDと同様にコンテンツの発行者を判別するIDである。コンテンツタイプ313は、コンテンツの種類を示し、例えばニュース、スポーツなどである。コンテンツアクション314は、本実施の形態における特徴的なデータの1つであり、生存時間に対する処理を示す。コンテンツアクションについての詳細は後述する。生存時間315は、コンテンツを消去しない時間を示し、年月日時分秒などの日時や、残り5分といった時間で示される。生存時間を経過したコンテンツはコンテンツを保持するノードによりメモリ上から消去される。なお、メモリ上から消去とは、コンテンツを削除することのみならず、そのコンテンツを再生不能な状態にすることも含む。生存上限時間316は、本実施の形態における特徴的なデータの1つであり、生存時間の再設定における上限時間を示す。生存上限時間の詳細は後述する。自由領域317は、上記311から316に該当しない領域である。
なお、生存時間は、生存時間は消滅が予定される時刻で設定してもよく、ノードがコンテンツを受信してから生存できる時間で設定されても良い。生存時間を時刻で設定すると、後述のコンテンツアクション804を行いキャッシュ820に書き込まれたコンテンツを他のノードに送信する際に、受信後の経過時間をコンテンツに反映させる必要がなく、そのまま送信できるという効果がある。生存時間を時間で設定すると、ノードの時計が不正確である場合でも正しく動作する効果がある。
320はコンテンツのコンテンツデータである。コンテンツデータとはコンテンツの実体を指し、例えばニュース記事であれば、記事を指す。また、本実施の形態の特徴として、コンテンツはアクセス制御属性を持ち、生存時間315と自由317以外のメタデータ311、312、313、314、316を書込み禁止にしてもよい。この場合、コンテンツの改変が防止される。
図4は、受信して収集したコンテンツと、そのコンテンツの選別について示している。410はリクエスト元ノード、420および430はリクエスト先ノードを示している。図4では、ノード410がコンテンツをリクエストし、リクエストに合うコンテンツを検索しノード420及び430が該コンテンツをノード410に送信している。公開メモリ領域421および431、キャッシュメモリ領域422および432からコンテンツを含む検索結果が送信される。受信される検索結果は、ノード410のキャッシュメモリ領域421に保存される。
コンテンツのデータ容量がキャッシュメモリ領域より多い場合、不要なコンテンツを廃棄する必要がある。413は必要なコンテンツを保持する領域であり、414は不要なコンテンツを保持する領域である。コンテンツの種類が平均的であり、ノードの収集傾向も著しい偏りがない場合、コンテンツの大半は不要コンテンツであり、必要なコンテンツは一部に過ぎない。つまり、時間経過と共に、413にはノードの設定に沿ったコンテンツが蓄積されていく。一方、414ではキャッシュがオーバーフローした時点から常にコンテンツの入れ替えが発生する。つまり、ノードが保持するコンテンツは、検索元ノードの嗜好に強く依存したコンテンツと、偶然消去されなかったコンテンツで占められる。
これは本質的な問題であり、未知のノードに対し必要なコンテンツを予測して提供することができない。そこで、コンテンツに対して生存時間を最小限に留めるという制限を加える。コンテンツの生存時間が最小限である場合、比較的キャッシュはオーバーフローし難い。しかし、特にアドホック環境において、生存時間が短いという理由からノード同士による広範な領域への運搬を期待することは難しい。そこで、図5から図11を用い、この問題を解決する本発明について説明する。
ノードのコンテンツ収集設定について図5を用いて説明する。設定は方針501の項目である積極収集511、消極収集521、収集拒否531および大分類502、中分類503、小分類504に分けられる。積極収集とは、嗜好の程度が高く、コンテンツの収集を積極的に行う設定である。消極収集とは、コンテンツの収集を積極的には行わないが、消極収集の対象となるコンテンツを受信した場合にはキャッシュメモリ領域上にできるだけ長い期間保存する設定である。収集拒否とは、ユーザが収集したくないコンテンツを収集した場合には、生存時間を大幅に短縮する設定である。ノードを収集したユーザは、受信後直ちに廃棄したいと考えているが、アドホックネットワークにおいては、受信後直ちに廃棄してしまうと、コンテンツの広範な領域への伝搬ができなくなってしまう。そこで、生存時間を大幅に短縮して収集したくないユーザのノードにはあまり長く生存しないようにし、かつ、他のノードにそのコンテンツを伝搬する機会を与えるようにしている。大分類・中分類・小分類はそれぞれコンテンツタイプの分類を表しており、大分類・中分類・小分類の順でコンテンツタイプの分類の程度が細かくなる。本例では、積極収集に該当するコンテンツは、受信するとキャッシュメモリ領域の廃棄されない領域に保存される。もしくは、他のノードに明示的に検索リクエストしても良い。消極収集に該当するコンテンツは、受信するとキャッシュメモリ領域の比較的廃棄されにくい領域に保存される。収集拒否に該当するコンテンツは、キャッシュメモリ領域の比較的廃棄されやすい領域に保存される。
次に、コンテンツ収集設定において使用されるコンテンツタイプ313について図6を用いて説明する。コンテンツタイプはコンテンツ収集設定と同様に、嗜好データに関する大分類601・中分類602・小分類603から構成される。本例では、大分類がショッピング、中分類がディスカウント、小分類がガソリンであることがわかる。ノードによる検索においては、例えば大分類のみを用いても良く、その場合にはコンテンツタイプの大分類のみで比較される。
次に、生存時間315を経過した際にコンテンツを自動廃棄するキャッシュガベージコレクターについて図7を用いて説明する。なお、キャッシュガベージコレクターは、キャッシュメモリ領域に付随する管理機能である。
図7において、701から716は状態1、751から766は状態2におけるキャッシュガベージコレクターおよびキャッシュメモリ領域である。本例では状態2は状態1から20分経過した状態を示している。状態1ではコンテンツ711から716の生存時間はすべてキャッシュガベージコレクター701の現在時刻より後であるので、消去されない。状態2では、コンテンツ761、764、765の生存時間はキャッシュガベージコレクター751の現在時刻より前であり、生存時間は現在時刻を過ぎているので、廃棄の対象となり、キャッシュガベージコレクター751はコンテンツ761、764、765を消去する。
以上のような処理を実装するノードのコンテンツ受信時の処理および定期処理について図8を用いて説明する。801から806はコンテンツ受信処理の一連の流れを示している。811から815は、キャッシュガベージコレクターによる定期処理の一連の流れを示している。ノードはコンテンツを受信すると(801)、コールバックの登録の有無を確認する(802)。コールバックの登録とは、条件を満たした場合に行う処理を予め登録することを言う。本例では、コンテンツを受信したことを802の成立条件としても良く、また特定のコンテンツタイプや発行者IDを802の成立条件としても良い。802の条件が成立すると、該当するコールバック処理を行い(803)、処理を終了する(806)。コールバック処理を行わない場合、ノードはコンテンツアクション処理を行う(804)。なお、コールバック登録処理は必須ではないが、この登録処理を行うことにより、特定のコンテンツタイプや発行者IDに応じた処理を個別に設定できるという効果がある。コンテンツアクション処理についての詳細は後述する。次にキャッシュメモリ領域820に書き込み(805)、処理を終了する(806)。また、並行して定期的に発火するタイマを開始する(811)。処理811はノードの起動時に行われるため、通常801より先に処理される。タイマが開始され、タイマの設定時間を過ぎるとタイマが発火する(812)。次にキャッシュ820のすべてのコンテンツの生存時間315を確認し(813)、生存時間を過ぎていると(814)、キャッシュ上から該当コンテンツを削除する(815)。なお、ステップ813からステップ815はコンテンツの数だけ繰り返される。
なお、キャッシュ820に書き込まれたコンテンツは、他のノードの送信要求に応じ、もしくは一方的に他のノードに再送信される。また、生存時間を時間で設定する場合は、他のノードにコンテンツを送信する際に、経過時間を生存時間から差し引く必要がある。但し、生存時間を時間で設定し、かつ経過時間を反映させない設定の場合は、そのまま他のノードに送信しても良い。
コンテンツアクション804について図9から図11を用いて説明する。コンテンツアクションはタイプアクション910とステートアクション920から構成される。コンテンツアクションが開始されると(901)、まずタイプアクション910を開始する(911)。タイプアクションでは、コンテンツアクション314に記載のタイプアクション1010を用いて生存時間を計算する(912)。計算はアクション対象1001毎に行う。判定方法1002は、コンテンツタイプ500とノードタイプ600の分類の一致であり、一致する場合には生存時間への処理1003を実行する。例えば、コンテンツタイプがノードタイプの積極収集の分類と一致した場合、大分類の一致で2分間、中分類の一致で4分間、小分類の一致で6分間を生存時間に追加する。消極収集の場合は、大分類の一致で1分間、中分類の一致で2分間、小分類の一致で3分間を生存時間に追加する。拒否の場合は、生存時間を大幅に短縮し、例えば−5分する。それ以外の場合には生存時間は変更しない。また、生存時間が、生存時間上限316より後の場合は、生存時間を生存時間上限に設定する。次に、求められた生存時間をコンテンツの生存時間315に設定し(913)、タイプアクションの処理を終了する(914)。
次に、ステートアクションを開始する(921)。ステートアクションでは、ノードステート1100のアクション対象1101の項目毎に生存時間の計算を行う(922)。受信したコンテンツには、移動方向や移動速度などの端末の状態である端末ステートが付与されているので、ノードのノードステートを検出し、該端末ステートと検出した該ノードステートとに基づき生存時間を変更する。本例では、移動方向1102が180°であるのでd = 1.0、移動速度が40km/hであるので追加時間は10分と求まる。よって、生存時間は10分間追加される。計算された生存時間は、生存時間315に再設定され(923)、ステートアクションの処理が終了する(924)。以上で、すべての処理が終了する(925)。
ここで、生存時間上限を設けている理由は以下の通りである。ノード間でコピーされる毎に生存時間が延長される場合、必要以上にコンテンツが生存してしまうという問題が発生する。生存時間を10分で設定したコンテンツが、受信により1分追加される場合、10分間に100ノードで順番に伝播すると生存時間は残り90分となり、例えば有効期限20分間のタイムサービスなどの広告においてコンテンツの作成者の意図に沿わない場合が発生する。そこで生存時間の上限を設ければ、コンテンツの作成者の意図を適切に反映させることができる。なお、生存時間の上限は時刻でも良い。
なお、アクション対象が、積極収集、消極収集又は収集拒否のいずれにも該当しない場合、生存時間への処理を行っていないが、これに限るわけではなく、収集拒否ほど生存時間を短縮しなくとも、例えば、−1分するようにしてもよい。このようにすれば、重要度の低いコンテンツを早期に消去してメモリの容量をより有効に活用できる。
また、図9では、タイプアクション及びステートアクションの両方を行っているが、片方のアクション処理のみでも構わない。片方のアクションのみの設定にすれば、より簡易なシステムを構築することができる。
上記のようなコンテンツアクションを用いた方式にすれば、コンテンツは生存時間が短く公開キャッシュメモリを占有し難い特性を持ち、コンテンツを必要としないノードを通過し、コンテンツを必要とするノードにコンテンツが伝達し易くなる。
本方式を用いた第一の実施例について説明する。第一の実施例はアドホックネットワークにおいて、配信元が広告を提供し、興味の高いノードに伝えることを目的とする。
図12は、各ノードが移動するアドホックネットワークの構成を示している。各ノードは定期的に情報を検索するため、1201が公開した広告コンテンツはノード1211、1212に伝播する。しかし、ネットワークで接続されていないノード1221から1223については、情報は伝播しない。図12において、Aタイプ、Bタイプ、Cタイプの順に本例の広告コンテンツに対する興味が低下する。
このとき、図13のようにコンテンツタイプおよびノードタイプを利用して情報の伝播を考える。ノードがコンテンツを受信すると、コンテンツアクション処理が開始される(1301)。コンテンツを受信したノードがAタイプである場合はコンテンツタイプ500とノードタイプ600が一致する(1311)。よって、生存時間を延長し(1312)、生存時間315を再設定する(1314)。本例ではタイプアクション1310のみ行い、ステートアクション1320はコンテンツアクション314に記載されていないため実行しない。よって、タイプアクション処理が終了するとアクション処理を終了する(1302)。コンテンツを受信したノードがB・Cタイプであれば、生存時間は短く設定される。
以上のような流れにより、図14のように情報が伝播する。1402および1403はAタイプのノードが多い領域を経由して情報が伝播していく様子を示している。B・Cタイプのノードが多い領域では、生存時間が短く、情報が伝播し難い。すると、領域1404のようなAタイプのノードが集まる領域に広告コンテンツが集まりやすくなる。
第一の実施例をさらに具体的に適用した例として、例えば、1401が自動車販売店であり、Aが自動車に対する興味が高い人、Bが普通の人、Cが自動車に対する興味が低い人だとする。1401は新車試乗会の広告を付近のノードに提供すると、各ノードがそれぞれ移動するに従い、1402や1403の経路で広告が伝播する。また、Aが集まる領域1404は、適切に生存時間を設定すれば、自然と情報が集まる。このとき、情報はAだけではなく、BやCも経由している。
次に、本方式を用いた第二の実施例について説明する。第二の実施例はアドホックネットワークにおいて、配信元が広告を提供し、さらに広告の伝達する領域を制御することを目的とする。
図15は、各ノードが路線上にある程度沿って移動するアドホックネットワークの構成を示している。各ノードは定期的に情報を検索するため、1503が公開した広告コンテンツは、1511から1515に伝播する。しかし、ネットワークで接続されていないノード1521には情報は伝播しない。図12において、Aタイプ、Bタイプ、Cタイプの順に本例の広告コンテンツに対する興味が低下する。
このとき、図16のようにコンテンツタイプおよびノードタイプおよびステートアクションおよびノードステートを利用して情報の伝播を考える。ノードがコンテンツを受信すると、コンテンツアクション処理が開始される(1601)。まず、タイプアクション1610を実行する。コンテンツタイプ500とノードタイプ600を比較し(1611)、タイプが一致する場合には1612を、タイプが一致しない場合には1613を実行する。本例では、Aタイプのノードでは生存時間を1分長く、BタイプおよびCタイプのノードでは生存時間を1分短くする。次に生存時間315に求めた生存時間を再設定する(1614)。
次にステートアクション1620を実行する。ステートアクション1020の処理方法を用い、ノードステート1100の各パラメータを利用して生存時間の計算処理1630を実行する。本例では、まずノードの方向を求め(1631)、それぞれ1632、1633、1634からtの値を求める。次に、1632の場合は1635においてノードステートの値を用いそれぞれ1637、1638、1639の処理を実行する。1633および1634を実行した場合は、1636においてノードステートの値を用いそれぞれ1637、1638、1639の処理を実行する。次にtとvの値から生存時間を計算し(1640)、生存時間315に再設定する(1621)。以上でアクション処理を終了する(1602)。
以上のような流れにより、図17に示す領域1701に近い範囲で情報が伝播する。配信元1702は、タイプA以外のノードを経由し、短時間で消去されるコンテンツを効率良く目的領域に伝播させることができる。
第二の実施例をさらに具体的に適用した例として、例えば、1702がガソリンスタンドであり、面する道路が右折横断不可能な場合、紙面上が北だとすると北から来る車に対する広告の効果は低い。この場合、配信元から直接コンテンツを受け取ったことを、配信元を通過したとしてノードステートに記録すると、通過した車で北上する車はステートアクションで生存時間を大幅に短縮し、通過していない車で南下する車も同じくステートアクションで生存時間を大幅に短縮すれば、情報が北に広く伝播することを防ぐことができる。また、通過していない車で北上する車は生存時間を延長し、通過した車で南下する車は生存時間を延長すれば、情報が南に伝播することを促進することができる。さらには、適切に生存時間の上限を時刻で設定すれば、必要以上の情報の南下を防ぐことができる。
次に、本方式を用いた第三の実施例について説明する。第三の実施例はアドホックネットワークにおいて、ある領域内で情報を共有することを目的とする。
図18は、各ノードが移動するアドホックネットワークの構成を示している。また、各ノードはGPS(Global Positioning System)や、短距離無線通信と無線基地局と交信することにより、自らの位置を検知することができる。各ノードは定期的に情報を検索するため、ノードが公開したコンテンツは接続可能なノードすべてに伝播する。図18において、Aタイプ、Bタイプ、Cタイプの順に、あるノードが公開したコンテンツに対する興味が低下する。1810は情報をしたい領域である。1811がコンテンツを公開すると、1812はコンテンツを受信する。1813は、アドホックネットワークが再構成されるときに、コンテンツを受信する場合がある。
このとき、図19のようにコンテンツタイプおよびノードタイプおよびステートアクションおよびノードステートを利用して情報の伝播を考える。ノードがコンテンツを受信すると、コンテンツアクション処理が開始される(1901)。まず、タイプアクション1910を実行する。コンテンツタイプ500とノードタイプ600を比較し(1911)、タイプが一致する場合には1912を、タイプが一致しない場合には1913を実行する。本例では、Aタイプのノードでは生存時間を1分長く、BタイプおよびCタイプのノードでは生存時間を1分短くする。次に生存時間315に求めた生存時間を再設定する(1914)。次にステートアクション1920を実行する。ステートアクション1020の処理方法を用い、ノードステート1100の各パラメータを利用して生存時間の計算処理1930を実行する。本例では、まずノードの位置判定し(1931)、領域外である場合には1932を、領域内である場合には1933を実行し、tの値を求める。次に、生存時間にtの値を加え(1934)、求められた値を用いて生存時間315を再設定する(1921)。以上でアクション処理を終了する(1902)。
以上のような流れにより、図20に示す領域2010に近い範囲で情報が伝播する。配信元2011は、タイプA以外のノードを経由し、比較的短時間で消去されるコンテンツを効率よく同一領域に保持することができる。また、例えば2020内で受信した場合には1931において領域内もしくは領域近傍とし、1932より短い時間を生存時間に加えることで、領域2010にコンテンツが存在する可能性を向上させることができる。
第三の実施例をさらに具体的に適用した例として、例えば、2010がテーマパークやショッピングモールから構成される複合施設である場合、複合施設外においては施設内にいる人向けの情報は不要である。このとき、施設内で短距離無線により情報を提供し、緯度経度などにより領域を設定し、その領域内においては情報の生存時間を長く、領域外においては生存時間を短く設定すると、領域2010においては高い確率で、領域2020は2010よりは低い確率だがある程度の確率で情報を伝播させることが可能となる。
上記伝播方法に関して、複数の同じノードが順番に繰り返しコンテンツを受信すると、同一のコンテンツアクションを繰り返し行うという問題が発生する。そこで、コンテンツにはすべてのコンテンツで唯一のIDを付与し、あるIDのコンテンツを初めて受信するとコンテンツIDをノードのメモリ上に保存し、次にコンテンツを受信すると、過去に同一コンテンツを受信したかどうかを確認し、もし過去に同一コンテンツを受信した場合にはコンテンツを直ちに消去するようにすればよい。
以上は無線の伝播範囲など空間的制約から、その場に存在するノード同士で形成されたアドホックネットワークで構成されたP2Pネットワークが前提であるが、例えばすべてのノードが接続可能なインターネットなどの環境において、ノード群から動的に形成されたグループをアドホックネットワークの一部としても良い。例えば、あるネットワーク上の掲示板に集まったノードをグループとし、グループ内でのみ通信可能なP2Pネットワークを構成する場合、該グループが解散する、グループの構成要員が変わる、別のグループが形成されるなどすると、空間的制約から形成されたアドホックネットワークと同様となる。
なお、他のノードから情報を探索する場合、簡易な設定にするため、定期的に行っていたが、これに限らない。例えば、深夜などの通信トラフィックが混雑していない時間帯に情報を検索するように設定してもよい。このようにすれば、通信トラフィックの混雑によるトラブルを避けることができる。
以上の実施の形態によれば、生存時間を付与されたコンテンツを受信するため、送信側で生存時間を設定することができ、コンテンツ配信側でコンテンツ配信の制御が可能となる。また、受信されたコンテンツに付与された生存時間を変更することができるため、受信した情報端末装置の嗜好に応じた生存時間を設定することが可能となる。また、生存時間を付与されたコンテンツを他の情報端末装置へ送信しているため、送信先の他の情報端末装置での生存時間を制御することが可能となる。
これらのことにより、P2Pシステムにおいて、生存時間を付与されたコンテンツが流通するため、情報端末装置のメモリのパンクを防ぐことができる。また、個々の情報端末装置のユーザの嗜好に応じて生存時間が変更されるため、コンテンツの流通のためにユーザのメモリに嗜好に合わないコンテンツを記憶しなければいけない場合であっても、生存時間を短く変更でき、そのユーザに不要なコンテンツを早期に消去することができる。
また、受信したコンテンツの生存時間を変更する際、短くすることができても、すぐに消去できないようにすれば、ユーザの嗜好に合わない者が受信後すぐに消去してしまうがゆえにコンテンツが流通しないという状況を防ぐことができる。
以上の実施の形態によれば、情報端末装置において、使用者の嗜好などの情報を他に公開することなく、効果的に情報を収集することができる。また、嗜好にマッチしない端末を経由した情報共有が可能となる。
次に、本発明の第四の実施例を説明する。第四の実施例は、生存時間を付与されて配信されたコンテンツを、さらに他のP2Pノードへ再配信する情報端末装置及びシステムに関するものである。この実施例では、ポイントコンテンツとそれ以外の通常のコンテンツで生存時間の取り扱いを変えることを特徴とするものである。また、ポイントコンテンツを通常のコンテンツより優先的に取り扱うもので、その報酬としてポイントを与えることを特徴としている。ここで、ポイントコンテンツとは、この実施例で述べるポイントシステムで配信されたコンテンツを意味する。
以下、上記第一から第三の実施例を用いた例を説明するが、これに限るものではない。例えば、タイプアクション910やステートアクション920のコンテンツアクション804を行わないシステムにおいて、ポイントコンテンツであるか通常のコンテンツであるか否かで付与された生存時間を変更する、又は、変更する割合を変えるようにした実施例を用いた例でも構わない。
第四の実施例は、情報配信事業者がP2Pノードに配信した広告などのポイントコンテンツの生存時間を優先的に取り扱い、優先的に取り扱った対価を情報配信事業者が支払うシステムである。延長の対価はポイントとして評価される。ポイントコンテンツの生存時間を優先的に取り扱うとは、次の例がある。ノードのP2Pシステムのために提供した記憶領域に余裕がある場合には、ポイントコンテンツを通常のコンテンツよりも生存時間をより長い割合で延長すること。また、該記憶領域に余裕がない場合には、ポイントコンテンツを通常のコンテンツよりも生存時間を短い割合で短縮することや、ポイントコンテンツの生存時間をそのままにして、通常のコンテンツの生存時間のみを短縮する例がある。
第一から第三の実施例では、生存時間を変更する条件や変更の程度は、情報配信事業者の裁量に委ねられている。このような状況では、情報配信事業者の一部は、コンテンツの生存時間の延長の程度を必要以上に十分長く設定し、結果として生存時間が事実上無限となる可能性がある。P2Pノードすべてを1つのシステムと考えると、システム内のコンテンツの多くはこれらのコンテンツで埋め尽くされる。すると、多くのノードの記憶領域は常に上限まで使用され、生存時間に達する前にノードはコンテンツを削除する。つまり、生存時間そのものが全く意味を成さなくなる。これは、不要な広告メールが頻繁に送信される電子メールにおいて、不要な広告メールでメールボックスの容量をオーバーし、ユーザにとって必要なメールが届かない状態に近い。
そこで、第四の実施例では、会員制サービスとして、情報配信事業者と、ユーザが共存できる仕組みを提供する。特に中心となる点は、ノード上のポイントコンテンツを通常のコンテンツよりも優先的に取り扱う(例えば、生存時間に達するまでポイントコンテンツを消去することができない設定とする)代償として、情報配信事業者はユーザにポイントを付与する仕組みと、情報配信事業者が希望する生存時間を様々な条件によりポイント管理センタがシステム全体として最適な値に修正する仕組みである。なお、ポイントコンテンツを通常のコンテンツよりも優先的に取り扱わないと(例えば、ポイントコンテンツを生存時間に達する前にユーザが消去すると)、ポイントも自動的に抹消される。
以下、第四の実施例について図面を用いて説明する。図22はポイント付き生存時間延長システムのシステム構成図である。2201は広域ネットワーク、2202はポイント管理センタ、2203は情報配信業者端末、2204から2206はP2P接続するノードである。ポイント管理センタ2202は、生存時間の延長への対価にポイントを付加するシステムを統括する端末である。2203は情報配信事業者の端末であり、例えばレストランやコンビニエンスストアのPOS端末などに相当する。2204から2206は第一から第三の実施例で説明したノードおよび、第四の実施例で説明するノードである。2204から2206とポイント管理センタ2202は常時接続されている必要は無く、ポイント管理センタ2202を使用する場合のみ接続されていれば良い。
次に、図23から図26を用いて、ポイント付き生存時間延長システムのフローを説明する。情報配信事業者は、ポイント管理センタに対し利用登録を行う(2301)。利用登録データ送信において送信される利用登録データは、情報配信事業者を識別する事業者IDおよび/又は事業者名および、生存時間を延長したことに対する課金の条件である。事業者IDはポイント管理センタが付与しても良い。課金条件とは、ノードがポイントコンテンツを情報配信事業者に対して行使した場合に、行使の回数に付き一定の金額を課金する、行使した際にノードが支払った金額の一定割合を課金する、ノードがポイントコンテンツの生存時間を延長したことに対して一定の金額を課金する、ノードが生存時間の再設定として生存時間を増加させる場合にその増加量に1以上の係数を掛けたことに対して一定の金額を課金する、などである。これら課金条件にはポイントコンテンツの生存時間を延長したことに対する報酬としての課金や、ポイントコンテンツを行使したことに対する成果報酬としての課金で、上記以外の類似の課金条件を含む。また、情報配信事業者は、課金の上限を設定しても良い。利用登録を受信したポイント管理センタは、これらの条件やデータをポイント管理センタに登録する。
次に、ポイント管理センタはポイントシステムの使用権を情報配信事業者に提供する(2302)。ポイントシステムの使用権は、生存時間延長係数を含んだ証明書を、ポイント管理センタに作成させる権利である証明書依頼権を含む。以上の処理2301および2302は、情報配信事業者が本システムを利用する準備として、ポイント管理センタとの間で行う処理である。
次に、情報配信事業者がポイントシステムを使用する際の、ポイントコンテンツを送信する前の処理である2303および2800および2304について説明する。
証明書依頼権を行使する場合は、情報配信事業者はノードに配布するポイントコンテンツについてのメタデータであるポイントコンテンツメタデータ2700を送信し、ポイント管理センタが受信する(2303)。ポイント管理センタは、受信したコンテンツメタデータを保存し、ポイントコンテンツメタデータから生存時間延長係数を算出する(2800)。ポイント管理センタは算出した係数を含むポイントシステム証明書を作成し、情報配信事業者端末に送信する(2304)。ポイントシステム証明書は、ポイント管理センタが秘密鍵で暗号化しても良く、ノードなどに公開鍵を配布することで証明書の信頼性を保証することができる。なお、ステップ2304は、ポイント管理センタが生存時間延長係数を変更すると判断した任意のタイミングで実行してよい。例えば、最初に発行した証明書の生存時間延長係数が効果のある値でなく、使用報告2309が情報配信事業者の予定より過少である場合や、生存時間延長係数が大きすぎて、使用報告2309が情報配信事業者の予定より過大に実行される場合、などをポイント管理センタが検知したタイミングに実行される。
次に、ノードがポイントシステムを利用する準備として、ポイント管理センタとの間で行う処理2305および2306について説明する。ノードはポイント管理センタに対し利用登録を行う(2305)。ノードの利用登録では、ノードは識別するノードIDおよび/又はユーザ名をポイント管理センタに送信する。ノードIDはポイント管理センタが付与しても良い。ノードは、利用登録時にノードに保存されているユーザの嗜好などのデータを渡しても良い。ノードは、利用登録の際にポイント管理センタからポイントシステム証明書の公開鍵を受信する(2306)。
次に、本ポイントシステムを使用してコンテンツを配信する処理2307および2308について説明する。情報配信業者端末は、ノードに対しポイントコンテンツを送信する(2307)。ノードがポイントシステムの利用登録をしていない場合は、受信したノードは第一から第三の実施例のように通常のコンテンツとして動作する。ノードがポイントシステムの利用登録をしている場合、つまり本サービスの会員である場合は、後述する生存時間延長処理2308を行う。なお、本処理は情報配信端末からポイントコンテンツを直接受信した場合だけでなく、2205や2206のように他のノードからポイントコンテンツを受信した場合にも実行される。
ノードはユーザの意思や生存時間延長係数により延長されたポイントコンテンツの生存時間内において、例えばコンビニエンスストアのPOS端末である情報配信事業者端末と直接通信可能な場合に、ポイントコンテンツを保持することを情報配信事業者端末に報告する(2309)。報告されたデータはポイント管理センタにも転送する。なお、ステップ2307で配信したポイントコンテンツにはクーポンや情報配信事業者の位置情報など、情報配信事業者端末とノードが直接通信するまでポイントコンテンツを保持することが有益である情報を含んでも良い。ステップ2309はポイントコンテンツの伝達範囲や有効性を検証するために情報配信事業者端末が使用報告を受信するステップであり、ノードによっては本ステップを実行しない場合がある。
次に、ノードのポイント報告に基づき、情報配信事業者がポイント管理センタに配信料を支払う処理2310および2311および2312について説明する。ノードは、定期的もしくはある程度ポイントが蓄積された場合に、自動的もしくはユーザの指示でポイント管理センタに対して保持するポイントを行使する(2310)。ポイントを行使するとノード上のポイントは、行使した分減少する。ポイントはポイント管理センタが指定したレートで、金銭などの有価物や、情報配信事業者端末で行使できる仮想通貨などと交換される。交換した結果はノードに送信されても良い(2311)。
情報配信事業者端末は、ポイントコンテンツの使用実績などからポイントコンテンツの配信料を支払う(2312)。なお、配信料の算出では、2301で設定した課金条件を用いてもよい。
図27はポイントコンテンツメタデータの説明図である。ポイントコンテンツメタデータは、320に示すコンテンツデータを詳細に説明したデータであり、313に示すコンテンツタイプおよび314に示すコンテンツアクションのデータの一部を拡張したものである。2701から2705はポイントコンテンツメタデータの一例であり、ポイントコンテンツを説明するデータであればよい。ポイント管理センタはポイントコンテンツメタデータの一部を用いて生存時間延長係数を算出する。
生存時間延長係数を、図28の算出フロー図と図29の表を用いて説明する。処理を開始すると、まず基準値を計算し、延長係数に付加する(2801)。基準値とは金額のみで決定される延長係数であり、計算式は例えば2811のような関数形式で与えられる。2811では、例えば基本金額が10万円だと基準値は1.5、基本金額が100万円だと基準値は3といった値をポイント管理センタが保持する基本レート関数を用いて算出する。次に、データベース2812を用いてメタデータフィット係数を求め、延長係数に付加する(2802)。メタデータフィット係数とは、図5のコンテンツ収集設定や、ノードに設定されているユーザの年齢等のデータにメタデータ2902がマッチした場合に、コンテンツの生存時間に掛けられる係数値の導出に使用される値である。データベース2812は、ポイント管理センタが経験などにより求めた係数値の集合であり、例えばポイントシステムにおいて対象年齢2911が重要なパラメータである場合には対象年齢のフィット係数が高くなる。次に、延長係数にバランスデータを付加する(2803)。バランスデータとは、基準値2921とフィット係数2903をすべて合計した値に掛ける調整値である。
バランスデータは、2801および2802において求められた延長時間が該当ポイントコンテンツの最適解に近づけるために用いる値である。例えば、2801および2802により求められた値は、ポイント管理センタが経験等に基づき同定した値であるが、必ずしもポイントコンテンツにとって正しい値とは言えない。季節や天候、ネットワーク負荷等、様々な要因によって最適解は変動し、またその最適解は計算による同定がほぼ不可能だからである。このためポイント管理センタは、バランスデータを用いて延長係数を変動させ、情報配信事業者が想定する使用報告2309に近づける。2813は、このような経験に基づくバランスデータのデータベースである。
なお、2801から2803は延長係数算出の一例であり、最終的に生存時間に掛ける係数を、ノードが持つデータを用いて決定できるのであれば、他の算出方法を用いてよい。また、バランスデータは、システムの負荷に応じた調整値としての機能も有する。例えば、ポイントコンテンツがシステムの限界の容量までノード間で流通している場合、大部分のノードの記憶領域はポイントコンテンツで満たされるため、生存時間に達する前にノードの判断で削除するか、新たなコンテンツの受信を拒否する必要がある。このような状況では、生存時間システムが十分に機能しないため、システムの負荷を下げる必要がある。このとき、バランスデータを小さくし、新たに配信するポイントコンテンツの生存時間を短縮すれば、システムの負荷が下がり、ノードの記憶領域に余裕ができ、ポイントコンテンツは生存時間に達するまでノード上に生存することができる。また、多くのノードの記憶領域に十分な余裕があり、つまりシステムの容量に余裕がある場合は、バランスデータの値を大きくし、システムの負荷を上げても良い。このバランスデータの値は、主に2309の使用報告や、ネットワークのモニタリング、モニターとして協力するノードによる報告などにより、システムの負荷を計測し、経験に基づき値を決定する。
求められた生存時間延長係数は、ノードが持つデータの種類を示すタイプ2901と、そのデータ2902、ノードが持つデータにマッチした場合に用いるフィット係数2903、基準値2921、バランスデータ2922からなる。本例では、例えばノードを保持するユーザの年齢が24歳、収集コンテンツとして大分類がショッピング、中分類がディスカウント、小分類がタイヤであった場合、フィット係数は大分類2912の0.1および中分類2913の0.2を用い、フィット係数の合計は0.3となる。これに基準値を加え、バランスデータを掛けると、最終的な延長係数は1.425と求められる。
以上のような過程で求められた生存時間延長係数を用いた生存時間延長処理2308について説明する。生存時間延長処理2308は、生存時間延長係数を用い、ノードの持つデータから最終的な延長係数を計算する。なお、生存時間延長処理2308はアクション処理901から925において実行される。912および922は、ポイントシステムを利用しなくても設定される生存時間を計算する。ポイントシステムを利用する場合は、この求められた生存時間を延長するため、911から922までのいずれかのステップで、最終的な延長係数を生存時間に掛け、生存時間を延長する。なお、延長された生存時間は、設定により上限を生存上限時間316もしくは、ポイントコンテンツメタデータに新たに付加した生存上限時間とする。また、本システムを用いた場合、ノードはポイントコンテンツと通常のコンテンツを、生存時間に達する前の削除において区別して扱う必要がある。ノードは、ポイントコンテンツを生存時間に達する前に削除することができるが、削除と同時にノードは必ず対応するポイントを削除する。
次に、生存時間延長処理2308において、ノードの記憶領域に得られたポイントを書き込む手順について説明する。得られたポイントは、2308において求められた最終的な延長係数もしくは、延長した生存時間とする。得られたポイントをノードのポイント保存領域に書き込む。ノードのポイント保存領域とは、ユーザが改変不可能なノード上のデータ保存領域である。ポイント保存領域には、ポイントシステムに対応したP2Pミドルウェアがデータを書き込むことができる。P2Pミドルウェアは秘密鍵および公開鍵を保持しており、ポイント情報を変更する場合に秘密鍵を用いてポイント情報を書き込む。また、ミドルウェアがポイント情報を読み込む必要がある場合には、公開鍵を用いてポイント情報を読み込む。例えば、ノードがポイント付き情報を受信し、生存時間を延長した場合、既に得ているポイントに新たに取得したポイントを追加する必要がある。このとき、公開鍵を用いてポイント情報を読み込み、秘密鍵を用いてポイント情報を書き込む。この公開鍵はポイント管理センタも同じものを保持し、ポイント報告2309において使用される。
このように、この第四の実施例では、ポイントコンテンツとは、ノードにおいてポイントシステムを利用するために必要な証明書や生存時間延長係数などのデータを付加したコンテンツである。ポイントシステムを利用しないノードでは、ポイントコンテンツに付加した領域を使用しないので通常のコンテンツと同様に扱うことができる。ポイントコンテンツを利用するノードでは、ポイントコンテンツに付加した領域をノードが参照し、ポイントシステムを利用するコンテンツであることを認識する。
第四の実施例では、ポイントコンテンツの生存時間を優先的に取り扱うため、ポイント管理センタで生存時間延長係数算出2800している。しかし、ノードで生存時間延長係数を算出するようにした方が良い場合もある。この場合にも、ポイントコンテンツの生存時間を優先的に取り扱う報酬としてポイントを付与する。しかし、ポイント管理センタは生存時間延長係数を直接算出していないため、ポイント管理センタが算出する生存時間延長係数に比較して、より多くのポイントをノードが付与する可能性がある。従って、ポイントを付与する割合を、ポイント管理センタで制御している場合よりも小さくして適切なポイント付与を実現しても良い。
第四の実施例を用いると、以下に述べる効果が得られる。システム内のコンテンツ量がある程度増加すると、ノードの記憶領域が不足する。このような場合に、ノードもしくはノードの使用者であるユーザは、コンテンツを生存時間前に削除する必要が発生する。このとき、ポイントコンテンツは、生存時間までノード上に存在することができ、システム内で流通することができる。一方、ポイントシステムを用いない通常のコンテンツは削除候補となり、ポイントコンテンツに比較して早期にノード上から消去される。つまり、情報配信事業者にとっては、ポイント付き生存時間延長システムを用いると、広告などのコンテンツの流通の可能性を増加させることができる効果がある。
また、情報端末装置において、ユーザは他人が送信した広告などをより多くの別の他人に配布することに貢献したことに対する報酬を得ることができる。広告などの配信者は、本システムを利用しない配信者に対して、広告などの配信を優位に行うことができ、広告の生存時間はシステムに適した量であるため、効果的に流通することができる。また、ポイント管理センタは、本システムの使用料を配信者から得ることができる。
なお、これまでの実施例での「情報端末装置」は、エンドユーザが所持し端末で情報処理するものを例として説明してきたが、端末ではなく途中で、実施例に記載した情報処理を行う装置であっても、これまでの実施例を適用できることはいうまでもない。
801…コンテンツ受信ステップ、802…コールバック登録判断ステップ、803…コールバック処理ステップ、804…コンテンツアクション処理ステップ、805…キャッシュ書き込みステップ、806…処理終了ステップ、811…定期発火タイマ開始ステップ、812…タイマ発火ステップ、813…生存時間確認ステップ、814…生存時間経過判断ステップ、815…削除処理ステップ、820…キャッシュ