(57)【要約】本発明は、Ｐ２Ｐシステムにおけるピア管理サーバーに関する。本発明のピア管理サーバーは、Ｐ２Ｐシステムに接続したピアとのコネクションを設定して前記ピアからメッセージを受信し、メッセージ処理のために前記受信したメッセージに相応するクエリ名及びパラメーターを生成するフロントエンドプロセス処理部、前記クエリ名及びパラメーターをクエリ文にマッピングするためのマッピング情報を含み、前記フロントエンドプロセス処理部から受信した前記クエリ名及びパラメーターに相応するクエリ文を出力するＳＱＬマッププロセス処理部、及びアクティブピアとして動作するピア情報及び各ピアが保有するコンテンツ情報を保持し、前記ＳＱＬマッププロセス処理部から出力される前記クエリ文によってデータを更新、または抽出するピアデータベースを含む。
2010511222.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐシステムに接続したピアとのコネクションを設定して前記ピアからメッセージを受信し、メッセージ処理のために前記受信したメッセージに相応するクエリ名及びパラメーターを生成するフロントエンドプロセス処理部、
前記クエリ名及びパラメーターをクエリ文にマッピングするためのマッピング情報を含み、前記フロントエンドプロセス処理部から受信した前記クエリ名及びパラメーターに相応するクエリ文を出力するＳＱＬマッププロセス処理部、及び
アクティブピアとして動作するピアの情報及び各ピアが保有するコンテンツ情報を保持し、前記ＳＱＬマッププロセス処理部から出力される前記クエリ文によってデータを更新、または抽出するピアデータベースを含むことを特徴とするＰ２Ｐシステムにおけるピア管理サーバー。
【請求項２】
前記ピアの接続及びメッセージ処理状態と、前記クエリ文の生成状態と、をチェックする状態判断部、及び
前記状態判断部の判断結果に相応して前記フロントエンドプロセス処理部及び前記ＳＱＬマッププロセス処理部の生成と消滅を制御する制御部をさらに含むことを特徴とする、請求項１に記載のＰ２Ｐシステムにおけるピア管理サーバー。
【請求項３】
前記ピアから受信されるメッセージは、ピア登録要求メッセージ、ピア登録解除要求メッセージ、及びコンテンツ登録要求メッセージのうち、少なくとも一つを含むことを特徴とする、請求項１に記載のＰ２Ｐシステムにおけるピア管理サーバー。
【請求項４】
前記ピア登録要求メッセージは、前記ピアがダウンロード状態の場合、前記ピアをアクティブピアに登録するためのメッセージであり、前記ピア登録解除要求メッセージは、前記ピアがダウンロード完了状態の場合、前記ピアをアクティブピアから解除するためのメッセージであることを特徴とする、請求項３に記載のＰ２Ｐシステムにおけるピア管理サーバー。
【請求項５】
前記ピア登録要求メッセージは、ユーザＩＤ、アドレス、及び保有コンテンツ情報を含み、前記フロントエンドプロセス処理部は、前記ピア登録要求メッセージに相応する予め設定されたクエリ名と、前記ユーザＩＤ、アドレス、及び保有コンテンツ情報に相応するパラメーターと、を生成し、前記ＳＱＬマッププロセス処理部は、前記クエリ名及びパラメーターを分析することで、前記クエリ文を生成して前記ピアデータベースからピア情報を抽出することを特徴とする、請求項３に記載のＰ２Ｐシステムにおけるピア管理サーバー。
【請求項６】
前記ＳＱＬマッププロセス処理部は、前記マッピング情報をＸＭＬ文書の形態にて格納することを特徴とする、請求項１に記載のＰ２Ｐシステムにおけるピア管理サーバー。
【請求項７】
前記フロントエンドプロセス処理部は、
前記Ｐ２Ｐシステムに連結される前記ピアが認証されたピアか否かを判断する認証モジュール、
前記ピアが認証されたピアである場合、前記ピアと前記Ｐ２Ｐシステムの間の連結を設定する連結設定モジュール、
前記ピアから前記メッセージを受信し、前記メッセージに相応する応答メッセージを前記ピアに転送するエージェント通信モジュール、
前記ピアから前記ピアの登録要求メッセージが受信される場合、前記登録要求されたピアにランダムＩＤを割り当てするランダムＩＤ割り当てモジュール、
前記ピアからコンテンツ要求メッセージが受信される場合、要求されたコンテンツを含んでいる他のピアの選択のための選択範囲をランダムに設定するランダム範囲設定モジュール、及び
前記エージェント通信モジュールによって受信されたメッセージの処理のためのクエリ名及びパラメーターを生成するクエリ名/パラメートル生成モジュールを含むことを特徴とする、請求項１に記載のＰ２Ｐシステムにおけるピア管理サーバー。
【請求項８】
Ｐ２Ｐシステムでピア情報を管理する方法であって、
Ｐ２Ｐシステムに接続したピアからピア登録要求メッセージを受信するステップ、
前記ピア登録要求メッセージに相応するクエリ名及びパラメーターを生成するステップ、
前記クエリ名及びパラメーターをクエリ文にマッピングするためのマッピング情報を用いて、前記ピア登録要求メッセージに相応するクエリ文を生成するステップ、及び
前記クエリ文を用いてピア情報データベースに前記ピアをアクティブピアに登録するステップを含むことを特徴とするピア情報管理方法。
【請求項９】
前記ピア登録要求メッセージ受信ステップにおいて、
前記ピア登録要求メッセージは、前記ピアがダウンロード状態の場合、前記ピアをアクティブピアに登録するために前記ピアから受信されることを特徴とする、請求項８に記載のピア情報管理方法。
【請求項１０】
前記パラメーターは、前記ピア登録要求メッセージに含まれたユーザＩＤ、アドレス、及び保有コンテンツ情報に相応して生成されることを特徴とする、請求項８に記載のピア情報管理方法。
【請求項１１】
前記マッピング情報は、ＸＭＬ形態にて格納されることを特徴とする、請求項８に記載のピア情報管理方法。
【請求項１２】
前記ピアからコンテンツ要求メッセージを受信するステップ、
前記コンテンツ要求メッセージに相応するクエリ名及び前記コンテンツ要求メッセージに含まれたコンテンツＩＤに対するパラメーターを生成するステップ、
前記マッピング情報を用いて前記コンテンツ要求メッセージに相応するクエリ名及び前記パラメーターに相応するピア選択クエリ文を生成するステップ、及び
前記ピア選択クエリ文によって前記ピアデータベースから前記コンテンツＩＤと関連したコンテンツを保有するピア情報を抽出して前記ピアに提供するステップをさらに含むことを特徴とする、請求項８に記載のピア情報管理方法。
【請求項１３】
前記クエリ名及びパラメーター生成ステップと、前記クエリ文生成ステップは、別途のプロセスによって処理され、前記クエリ名及びパラメーター生成ステップと、前記クエリ文生成ステップとの処理のために、前記Ｐ２Ｐシステムの資源割り当て状態を調節するステップをさらに含むことを特徴とする、請求項８に記載のピア情報管理方法。
【請求項１４】
請求項８乃至 請求項１３のいずれかに記載の方法を実行するコマンドが具現されたプログラムであり、デジタルデータ処理装置に設けられて、前記デジタルデータ処理装置によって読み取り可能なプログラムを記録した記録媒体。
【請求項１５】
Ｐ２Ｐシステムに接続されるピアに組み込まれ、前記ピアがＰ２Ｐサービスの提供を受けるようにするエージェントプログラムが記録された記録媒体であって、
前記ピアと前記Ｐ２Ｐシステムとの間の連結を設定する連結設定モジュール、
前記Ｐ２Ｐシステムにコンテンツ要求メッセージを生成して転送し、前記Ｐ２Ｐシステムから前記コンテンツを含んでいる他のピア情報を受信するピア情報受信モジュール、
前記ピア情報受信モジュールによって受信された前記他のピア情報を基にして前記他のピアとの連結を設定することで、前記他のピアから前記コンテンツをダウンロードするピア連結設定モジュール、
前記ピアが前記コンテンツをダウンロードしているか否かをチェックするダウンロードチェックモジュール、
前記ダウンロードチェックモジュールによるチェック結果によって、ピア登録要求メッセージやピア登録解除要求メッセージを生成し、前記Ｐ２Ｐシステムに転送するピア登録/解除モジュールを含むことを特徴とするエージェントプログラムが記録された記録媒体。
【請求項１６】
前記ピア登録/解除モジュールは、
前記ダウンロードチェックモジュールによって、前記ピアが前記コンテンツをダウンロードしていると判断された場合、前記ピア登録要求メッセージを生成して転送し、前記ダウンロードチェックモジュールによって前記ピアが前記コンテンツのダウンロードを完了したと判断される場合、前記ピア登録解除要求メッセージを生成して転送することを特徴とする、請求項１５に記載のエージェントプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｐ２Ｐシステムのピア管理サーバーに関し、より詳しくは、ピアの間のファイルの送受信のためにピア情報を提供するピア管理サーバー及びピア管理方法に関する。
【背景技術】
【０００２】
Ｐ２Ｐシステムは、既存のクライアントサーバーの概念から離れて、パソコン（ピア）同士で直接連結かつ検索することで、全ての参加者が供給者及び需要者となる形態の通信システムである。
【０００３】
このようなＰ２Ｐシステムは、アメリカの「ナップスター(Ｎａｐｓｔｅｒ)」、韓国内の「ソリバダ(Ｓｏｒｉｂａｄａ)」等のようなサービスによって、音楽ファイルの共有のために初めて試されたものであり、近来は単なる音楽ファイルの共有ではなく、様々なサービスから利用されている。
【０００４】
例えば、Ｐ２Ｐシステムは、ゲームシステムにおいて、クライアントの間のゲームパケットの交換に使われていると共に、コンテンツ提供業者がサーバーの負担を減らすための手段としても活用されている。
【０００５】
このようなＰ２Ｐシステムは、個人クライアント同士を連結するためにピア情報を提供すべきであり、Ｐ２Ｐサービスプロバイダーは、ピア管理サーバーを用いてＰ２Ｐシステムに接続したピア情報を管理する。
【０００６】
従来の場合、Ｐ２Ｐシステムに接続したピア情報は、ツリー構造(Ｔｒｅｅ  Ｓｔｒｕｃｕｔｒｅ)のデータ構造(Ｄａｔａ Ｓｔｒｕｃｔｕｒｅ)によって管理されることが一般的であった。図１は、従来のピア情報を管理するツリー構造のデータ構造を示した図である。
【０００７】
図１に示すように、従来は親ノードと子ノードが有機的に連結されたツリー構造リストによって接続したピア情報が管理され、ピアの接続及び解除を処理するアルゴリズムによってピア情報が更新されていた。
【０００８】
このように、データ構造によって接続したピア情報が管理される場合、接続したピア情報の一部が失われる問題があり、ピア情報をデータベースではなくデータ構造によって管理することで、サーバーのメモリー空間を占めすぎるという問題があった。
【０００９】
特に、管理すべきピア情報が増えていく場合、サーバーのメモリー空間には限界があるものであるため、データ構造によってピア情報を管理することは有効ではなかった。
【００１０】
また、従来はユーザのＩＤと個人情報のように、静的な情報のみがデータベースによって管理されていたが、ピア情報をより効率良く処理するために、データベースにおけるピア情報管理及びデータベースにおける有効なピア情報管理のためのサーバープロセスが求められている。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明では、前記のような従来技術の問題点を解決するため、Ｐ２Ｐシステムに接続したピア情報をデータベースによって効率良く管理できるＰ２Ｐシステムにおけるピア管理サーバー及びその方法を提案する。
【００１２】
本発明の他の目的は、ピア管理サーバーの状態によってフロントエンドプロセス及びＳＱＬマッププロセスの生成と消滅が制御できるＰ２Ｐシステムにおけるピア管理サーバー及びその方法を提案することである。
【００１３】
本発明の他の目的は、データベースの管理とクライアントのメッセージ処理を２元化できるＰ２Ｐシステムにおけるピア管理サーバー及びその方法を提案することである。
【００１４】
本発明の他の目的は、コンテンツダウンロード時のみにピアがアクティブピアとして動作されるようにするＰ２Ｐシステムにおけるピア管理サーバー及びその方法を提案することである。
【課題を解決するための手段】
【００１５】
前記のような目的を達成するために、本発明の一側面によると、Ｐ２Ｐシステムに接続したピアとのコネクションを設定して前記ピアからメッセージを受信し、メッセージ処理のために前記受信したメッセージに相応するクエリ名及びパラメーターを生成するフロントエンドプロセス処理部、前記クエリ名及びパラメーターをクエリ文にマッピングするためのマッピング情報を含み、前記フロントエンドプロセス処理部から受信した前記クエリ名及びパラメーターに相応するクエリ文を出力するＳＱＬマッププロセス処理部、及びアクティブピアとして動作するピア情報及び各ピアが保有するコンテンツ情報を保持し、前記ＳＱＬマッププロセス処理部から出力される前記クエリ文によってデータを更新、または抽出するピアデータベースを含むことを特徴とするＰ２Ｐシステムにおけるピーア管理サーバーが提供される。
【００１６】
なお、前記ピア管理サーバーは、前記ピア接続及びメッセージ処理状態と、前記クエリ文生成状態と、をチェックする状態判断部、及び前記状態判断部の判断結果に相応して前記フロントエンドプロセス処理部及び前記ＳＱＬマッププロセス処理部の生成と消滅を制御する制御部をさらに含むことができる。
【００１７】
ここで、前記ピアから受信されるメッセージは、ピア登録要求メッセージ、ピア登録解除要求メッセージ、及びコンテンツ登録要求メッセージのうち、少なくとも一つを含む。ピア登録要求メッセージは、前記ピアがダウンロード状態の場合、前記ピアをアクティブピアに登録するためのメッセージであり、前記ピア登録解除要求メッセージは、前記ピアがダウンロード完了状態の場合、前記ピアをアクティブピアから解除するためのメッセージである。
【００１８】
この際、ピア登録要求メッセージは、ユーザＩＤ、アドレス、及び保有コンテンツ情報を含み、前記フロントエンドプロセス処理部は、前記ピア登録要求メッセージに相応する予め設定されたクエリ名と、前記ユーザＩＤ、アドレス、及び保有コンテンツ情報に相応するパラメーターと、を生成し、前記ＳＱＬマッププロセス処理部は、前記クエリ名及びパラメーターを分析することで、前記クエリ文を生成して前記ピアデータベースからピア情報を抽出する。
【００１９】
なお、前記ＳＱＬマッププロセス処理部は、前記マッピング情報をＸＭＬ文書の形態にて格納する。
【００２０】
本発明の他の側面によると、Ｐ２Ｐシステムでピア情報を管理する方法は、Ｐ２Ｐシステムに接続したピアからピア登録要求メッセージを受信するステップ、前記ピア登録要求メッセージに相応するクエリ名及びパラメーターを生成するステップ、前記クエリ名及びパラメーターをクエリ文にマッピングするためのマッピング情報を用いて、前記ピア登録要求メッセージに相応するクエリ文を生成するステップ、及び前記クエリ文を用いてピア情報データベースに前記ピアをアクティブピアに登録するステップを含むことを特徴とするピア情報管理方法が提供される。
【００２１】
前記ピア登録要求メッセージ受信ステップにおいて、前記ピア登録要求メッセージは、前記ピアがダウンロード状態の場合、前記ピアをアクティブピアに登録するために前記ピアから受信される。
【００２２】
また、前記ピア管理方法は、前記ピアからコンテンツ要求メッセージを受信するステップ、前記コンテンツ要求メッセージに相応するクエリ名及び前記コンテンツ要求メッセージに含まれたコンテンツＩＤに対するパラメーターを生成するステップ、前記マッピング情報を用いて前記コンテンツ要求メッセージに相応するクエリ名及び前記パラメーターに相応するピア選択クエリ文を生成するステップ、及び前記ピア選択クエリ文によって前記ピアデータベースから前記コンテンツＩＤと関連したコンテンツを保有するピア情報を抽出して前記ピアに提供するステップをさらに含む。
【００２３】
この際、前記クエリ名及びパラメーター生成ステップと、前記クエリ文生成ステップは、別途のプロセスによって処理され、前記ピア管理方法は、前記クエリ名及びパラメーター生成ステップと、前記クエリ文生成ステップとの処理のために、前記Ｐ２Ｐシステムの資源割り当て状態を調節するステップをさらに含む。
【００２４】
本発明の他の側面によると、前述の方法を実行するコマンドが具現されたプログラムであり、デジタルデータ処理装置に設けられて、前記デジタルデータ処理装置によって読み取り可能なプログラムを記録した記録媒体が提供される。
【００２５】
本発明の他の側面によると、Ｐ２Ｐシステムに接続されるピアに組み込まれ、前記ピアがＰ２Ｐサービスの提供を受けるようにするエージェントプログラムが記録された記録媒体であって、前記ピアと前記Ｐ２Ｐシステムとの間の連結を設定する連結設定モジュール、前記Ｐ２Ｐシステムにコンテンツ要求メッセージを生成して転送し、前記Ｐ２Ｐシステムから前記コンテンツを含んでいる他のピア情報を受信するピア情報受信モジュール、前記ピア情報受信モジュールによって受信された前記他のピア情報を基にして前記他のピアとの連結を設定することで、前記他のピアから前記コンテンツをダウンロードするピア連結設定モジュール、前記ピアが前記コンテンツをダウンロードしているか否かをチェックするダウンロードチェックモジュール、前記ダウンロードチェックモジュールによるチェック結果によって、ピア登録要求メッセージやピア登録解除要求メッセージを生成し、前記Ｐ２Ｐシステムに転送するピア登録/解除モジュールを含むことを特徴とするエージェントプログラムが記録された記録媒体が提供される。
【図面の簡単な説明】
【００２６】
【図１】従来のピア情報を管理するツリー構造のデータ構造の一例を示した図。
【図２】本発明の一実施の形態に係るピア管理サーバーが適用されるＰ２Ｐシステムの構成を示した図。
【図３】本発明の一実施の形態に係るピア管理サーバーの構成を示したブロック図。
【図４】本発明の一実施の形態に係るフロントエンドサーバーのモジュール構成を示したブロック図。
【図５】本発明の一実施の形態に係るＳＱＬマッププロセスの動作構造を示した図。
【図６】本発明の一実施の形態に係るＳＱＬマッププロセスとピアデータベースとの連結構造の一例を示した図。
【図７】本発明の一実施の形態に係るエージェントプログラムのモジュール構成を示したブロック図。
【図８】本発明の一実施の形態に係るユーザクライアントがピア登録及びピア登録解除を要求する動作を示したフローチャート。
【図９】本発明の一実施の形態に係るピア登録過程を示したフローチャート。
【図１０】本発明の一実施の形態に係るピア管理サーバーからピア情報を提供する過程を示したフローチャート。
【図１１】本発明の一実施の形態によってユーザが要求したコンテンツを保有するピアをランダムに選択するための過程を示したフローチャート。
【図１２】本発明の一実施の形態に係るピア登録要求メッセージのフィールド構成を示した図。
【発明を実施するための形態】
【００２７】
以下、添付の図を参照して、本発明によるピア管理サーバーの実施の形態を詳細に説明する。
【００２８】
図２は、本発明の一実施の形態に係るピア管理サーバーが適用されるＰ２Ｐシステムの構成を示した図である。同図に示すように、本発明の一実施の形態に係るＰ２Ｐシステムは、複数のユーザクライアント及びピア管理サーバー２００を含み、各々のユーザクライアントにはＰ２Ｐエージェントプログラムが設置される。
【００２９】
本発明が適用されるＰ２Ｐシステムは、様々な形態のＰ２Ｐサービスに適用可能である。本発明のＰ２Ｐシステムは、一般の音楽や動画ファイルを共有するためのファイル共有サービスに適用可能である。ファイル共有サービスは、ユーザが有しているファイルリストをＰ２Ｐサービスシステムに接続したユーザが確認でき、特定のファイルを特定のピアからダウンロード可能にしたサービスである。
【００３０】
このような一般的なファイル共有サービス以外にも、本発明は、Ｐ２Ｐを用いたコンテンツ転送サービスにも利用できる。通常、コンテンツプロバイダにおけるコンテンツ提供は、ＣＤＮ（Ｃｏｎｔｅｎｔｓ  Ｄｅｌｉｖｅｒｙ  Ｎｅｔｗｏｒｋ）を用いてなされるが、本発明によるＰ２Ｐシステムを用いて所定の費用がかかるＣＤＮを用いずにコンテンツを提供することが可能である。この場合、ユーザがサービスプロバイダから提供を受けようとするコンテンツを格納しているピアリストがコンテンツを要求したユーザに提供され、ユーザはピアリストに含まれたピアのうち、特定のピアからコンテンツをダウンロードすることで、ＣＤＮを用いずにコンテンツを提供することが可能である。
【００３１】
前述のサービス以外にも、本発明は、Ｐ２Ｐを用いて提供できる様々なサービスに適用可能である。
【００３２】
以下、Ｐ２Ｐを用いてコンテンツプロバイダがユーザによって要求されたコンテンツを提供する場合を主な例にして本発明を説明する。
【００３３】
ユーザクライアントは、ネットワークを介して通信可能であり、Ｐ２Ｐエージェントプログラムが駆動可能な如何なる種類の装置も含むことができる。ユーザクライアントとしては、一般のＰＣは勿論、ノート・パンコン、ＰＤＡ及び移動通信端末のような装置が使われることができる。
【００３４】
Ｐ２Ｐシステムに接続した各々のユーザクライアントは一つのピアとして動作し、本明細書において、ピアとユーザクライアントという用語を併用するようにする。
【００３５】
ピア管理サーバー２００は、ユーザから特定のコンテンツが要求される場合、要求されたコンテンツが提供可能なピア情報を提供する。例えば、ユーザから『ムーランルージュ』という映画が要求された場合、ピア管理サーバー２００は、『ムーランルージュ』という映画ファイルが提供可能なピア情報を抽出して当該クライアントに提供する。
【００３６】
ピア管理サーバー２００は、ユーザから要求されたコンテンツが提供可能なピア情報を提供するために、Ｐ２Ｐシステムに接続し、コンテンツ提供ができるピアリスト及び各ピアが格納しているコンテンツ情報を管理する。
【００３７】
前述のように、従来の場合、ピア管理サーバーはＰ２Ｐシステムに接続したピアリスト及び各ピアが格納しているコンテンツ情報をデータ構造(Ｄａｔａ Ｓｔｒｕｃｔｕｒｅ)の形態として管理していた。従来の場合、ピアリスト及び各ピアが格納しているコンテンツをデータ構造の形態としてメモリーで管理し、ユーザＩＤのように変わらない静的な情報のみをデータベースで管理することが一般的であった。また、ユーザからピア情報の要求のような要求メッセージが受信される場合、ピア管理サーバーは、データ構造に対して予め設定されたアルゴリズムを実行し、ユーザの要求情報を処理していた。
【００３８】
しかし、本発明の一実施の形態に係るピア管理サーバーは、Ｐ２Ｐシステムに接続したピアリスト及び各ピアが格納しているコンテンツ情報をデータベースで管理するようにする。
【００３９】
本発明の一実施の形態に係ると、ピア情報をデータベースで管理することによって、管理すべきピア用量が増えていく場合、多数のデータベースでピア情報を管理することも可能である。
【００４０】
また、本発明の一実施の形態に係るピア管理サーバーは、接続したピア情報をデータベースで管理するために、クライアントの接続及びクライアントから受信したメッセージを処理するプロセスと、データベースのクエリ文を生成するプロセスと、を独立的に運営する。
【００４１】
ピア情報を、データ構造を用いて管理していた従来の場合、クライアントの接続及びメッセージ処理と、データ構造にデータを挿入、抽出及び更新するアルゴリズムは、一つのプロセスによって実行されるしかなかった。さらに、従来の場合、静的な情報はデータベースで管理されていたが、データベースに対するクエリ文も同一な単一のプロセスによって生成されていた。しかし、本発明によると、一つのプロセスによって行なわれていた機能が別個のプロセスによって行なわれる。
【００４２】
クライアントの接続とメッセージ処理及びデータベースクエリ文の生成を別個のプロセスによって処理する方法、及びこれによる利点に対する詳細な説明は、他の図を参照して行う。
【００４３】
各ユーザクライアントに設置されるエージェントプログラムは、ユーザクライアントがＰ２Ｐネットワークにおいてピアとして動作するように、ピア管理サーバーとの通信を介してピア登録を行う。
【００４４】
本発明の一実施の形態に係ると、エージェントプログラムは、ユーザクライアントが他のピアからコンテンツをダウンロードしている場合のみにピアとして動作するように、ピア登録及びピア登録解除を行う。
【００４５】
従来の場合、Ｐ２Ｐのためにユーザクライアントに設けられるエージェントプログラムは、ユーザクライアントの動作のうち、ユーザクライアントが常にコンテンツを提供するピアとして動作するように制御することが一般的であった。
【００４６】
しかし、このようにユーザクライアントが常にピアとして動作するように設定される場合、ユーザクライアントのリソースがＰ２Ｐ通信によって無駄に使われてしまう問題があった。例えば、Ｐ２Ｐコネクションの処理によって、ユーザが行う他の作業処理が遅延したり、ＣＰＵに過度な負荷が生じたりする問題などが発生した。
【００４７】
本発明では、このような従来の問題点を解決するために、ユーザクライアントが他のピアからコンテンツをダウンロードしている場合のみに、他のクライアントにコンテンツを提供するピアとして動作するようにする。
【００４８】
前述のピア登録動作以外にも、エージェントプログラムは、ピア管理サーバーからユーザが要求したコンテンツを保有するピア情報を受信し、当該ピアとの連結を設定してコンテンツをダウンロードする機能を行う。
【００４９】
図３は、本発明の好ましい一実施の形態に係るピア管理サーバーの構成を示したブロック図である。同図に示すように、ピア管理サーバー２００は、状態判断部３００、制御部３０２、フロントエンドプロセス処理部３０４、ＳＱＬマッププロセス処理部３０６及びピアデータベース３０８を含むことができる。
【００５０】
図３において、フロントエンドプロセス処理部３０４は、各ピアに設置されるエージェントプログラムとの通信を担当することで、フロントエンドプロセス機能を行う。ここで、フロントエンドプロセス機能とは、ユーザクライアントとの連結設定機能と、ユーザクライアントから受信される要求メッセージの処理機能と、を含む。
【００５１】
ユーザクライアントとの連結設定のために、フロントエンド処理部３０４は、ユーザクライアントから連結設定が要求される場合、ユーザクライアントとのコネクションを保持するが、ここでコネクションはＴＣＰコネクション、またはＵＤＰコネクションである。
【００５２】
フロントエンド処理部３０４がユーザクライアントから受信して処理する要求メッセージは、ピア登録要求メッセージ、ピア登録解除要求メッセージ及びコンテンツ要求メッセージを含むことができる。
【００５３】
ピア登録要求メッセージは、ピアが、自分をコンテンツ提供ができるアクティブピアとして登録するように要求するメッセージである。前述のように、本発明の一実施の形態によると、エージェントプログラムは、他のピアからのコンテンツダウンロードが感知されると、ピア登録要求メッセージを生成してフロントエンド処理部３０４に転送する。
【００５４】
ピア登録解除要求メッセージは、アクティブピアとして登録されているピアの登録解除を要求するメッセージである。本発明の一実施の形態によると、エージェントプログラムは、他のピアからコンテンツのダウンロードが完了する場合、ピア登録解除要求メッセージを生成して、フロントエンド処理部３０４に転送する。
【００５５】
コンテンツ要求メッセージは、特定のコンテンツを格納しているピア情報を要求するメッセージである。ユーザが特定のコンテンツのダウンロードを要求する場合、エージェントプログラムは、当該コンテンツのＩＤ情報を含むコンテンツ要求メッセージを生成して、フロントエンド処理部３０４に転送する。
【００５６】
前述のメッセージ以外にも、様々な種類のメッセージがピアからフロントエンド処理部３０４に伝達でき、フロントエンド処理部３０４は、エージェントプログラムによって生成されたメッセージを受信し、これに相応するクエリ名/パラメーターを生成する機能を有する。
【００５７】
従来の場合、ピア管理サーバーは、ピアから前述の要求メッセージを受信する場合、要求に相応するアルゴリズムを実行してデータ構造のデータにピアを登録、またはデータ構造のデータからピアを選択する機能を行っていた。さらに、データベースとの通信が必要な場合、ユーザの要求メッセージを分析して、一つのプロセスでクエリ文を生成していた。
【００５８】
しかし、本発明の好ましい実施の形態に係るフロントエンド処理部３０４は、要求メッセージを受信する場合、直接クエリ文を生成することなく、要求メッセージに相応するクエリ名及びパラメーターのみを生成して、ＳＱＬマップ処理部３０６に提供する。
【００５９】
ここで、クエリ名はフロントエンド処理部３０４及びＳＱＬマッププロセス処理部３０６の間に任意に定められたクエリ名であり、パラメーターは、コンテンツＩＤ、ユーザＩＤなどのように、クエリ文の生成に必要な情報を意味する。
【００６０】
このようなフロントエンドプロセス処理部のモジュール構成に対する一実施の形態が図４に示されてある。図４に示すように、本発明の一実施の形態に係るフロントエンドプロセス処理部３０４は、認証モジュール５００、連結設定モジュール５０２、エージェント通信モジュール５０４、ランダムＩＤ割り当てモジュール５０６、クエリ名/パラメーター生成モジュール５０８、及びランダム範囲設定モジュール５１０を含むことができる。
【００６１】
認証モジュール５００は、連結設定を要求するユーザが、認証されたユーザか否かを判断する機能を有する。一例として、認証モジュール５００は、ユーザＩＤ及びパスワード情報を用いて、認証されたユーザか否かを判断することができる。勿論、この他にも、認証書を利用した認証方式のように、公知の様々な認証方式が利用されることができる。認証モジュール５００は、別途の認証サーバーと連動して、ユーザ認証を処理することができる。
【００６２】
連結設定モジュール５０２は、Ｐ２Ｐネットワークに接続しようとするユーザクライアントとの連結設定を行う。連結設定は、エージェントプログラムによって制御されるユーザクライアントがＴＣＰ接続要求メッセージを転送し、連結設定モジュール５０２がこれを受諾する方式で行われることができる。勿論、必要に応じてＵＤＰコネクションが設定されることもできる。
【００６３】
エージェント通信モジュール５０４は、エージェントプログラムが生成する要求メッセージを受信し、これに対する回答メッセージをユーザクライアントに転送する機能を有する。前述のように、要求メッセージは、ピア登録要求メッセージ、ピア登録解除要求メッセージ、及びコンテンツ要求メッセージを含むことができ、エージェント通信モジュール５０４は、前述のメッセージに対する回答メッセージを当該ユーザクライアントに転送する。
【００６４】
ランダムＩＤ割り当てモジュール５０６は、ピア登録要求メッセージを受信する場合、各ピアにランダムＩＤを割り当てる機能を有する。ランダムＩＤ割り当ては、ピア情報をクライアントに提供する時に、ランダムにピア情報を提供するために行われる作業である。本発明の実施の形態によって動的に変わるピア情報がデータベースに格納される場合、データベースクエリ文を通じてユーザの要求に相応するピア情報をランダムに抽出することができない。ランダムＩＤ割り当てモジュール５０６は、このような問題を解決するための作業である。
【００６５】
ランダム範囲設定モジュール５１０は、コンテンツ要求メッセージのように、ピア選択を要求するメッセージが受信される場合、ピア選択のための番号範囲をランダムに設定する機能を有する。ランダムに設定された範囲はパラメーターに出力され、ＳＱＬマッププロセス処理部３０６は、ピアを選択する時に、ランダム範囲設定モジュールから設定した範囲を用いてピア選択クエリ文を生成する。
【００６６】
前述の実施の形態においては、各ピアの番号もランダムに付与し、ピアを選択するための範囲もランダムに設定すると記載した。しかし、ピアの番号は順次に付与するが、範囲をランダムに設定したり、ピアの番号はランダムに付与するが、範囲は固定的に設定したりすると、ピアのランダム選択が可能となるはずである。ピアのランダム選択のためのより詳細な方法は、別途の図を通じて説明する。
【００６７】
クエリ名/パラメーター生成モジュール５０８は、エージェント通信モジュール５０４が受信したメッセージ処理のためのクエリ名及びパラメーターを生成する。前述のように、フロントエンドプロセス処理部３０４は、メッセージ処理のためのクエリ文を直接生成することなく、受信したメッセージに相応するクエリ名及びパラメーターのみを生成して、ＳＱＬマッププロセス処理部３０６に伝達する。
【００６８】
例えば、ピア登録要求メッセージを受信した場合、クエリ名/パラメーター生成モジュール５０８は、ＲｅｇｉｓｔｅｒＰｅｅｒという予め設定されたクエリ名とピア登録要求メッセージに含まれたユーザＩＤ、アドレス及びコンテンツ情報に相応するパラメーターを生成して、ＳＱＬマッププロセス処理部３０６に伝達する。
【００６９】
また、図３を参照すると、ＳＱＬマッププロセス処理部３０６は、ＳＱＬマッププロセスを処理する機能を行うものであって、ここで、ＳＱＬマッププロセスとは、フロントエンドプロセス処理部３０４からクエリ名/パラメーターを受信して、クエリ名/パラメーターに相応するクエリ文を生成する機能を含む。生成されたクエリ文は、ピアデータベース３０８から認識できる言語として、ピアデータベース３０８に提供される。
【００７０】
このようなＳＱＬマッププロセス処理部３０６の動作構造を、図５を参照して具体的に説明する。同図に示すように、ＳＱＬマッププロセス処理部３０６は、フロントエンドプロセス処理部３０４からクエリ名及びパラメーターを受信する。図５には、クエリ名「ＧｅｔＵｓｅｒＩｎｆｏ」と、パラメーター「ｆｏｏ」をフロントエンドプロセス処理部３０４から受信することが示されている。
【００７１】
ＳＱＬマッププロセス処理部３０６は、クエリ名及びパラメーターをＳＱＬ文にマッピングするための情報を有し、クエリ名及びパラメーターを受信したＳＱＬマッププロセス処理部３０６は、前記マッピング情報を用いてデータベースランゲージであるクエリ文を出力する。
【００７２】
このようなクエリ文は、データベースのスキーマ、または客体の間の関係を定義するデータベース定義文、データベースデータの挿入/削除/更新のような操作のためのデータベース操作文、データベースのデータを正しく保持し、無欠性を確保するためのデータベース制御文を全て含むことができる。
【００７３】
本発明の一実施の形態によると、マッピング情報は、ＸＭＬ形態の文書にて格納することができる。具体的に、クエリ名「ＧｅｔＵｓｅｒＩｎｆｏ」に対するマッピングのためのＸＭＬ文書は、図５の左側のボックスに示されたように定義することができる。
【００７４】
ＳＱＬマッププロセス処理部３０６は、前述のようなＸＭＬマッピング情報を用いて、図５に示すように、ＳＥＬＥＣＴ．．．ＷＨＥＲＥ  ＩＤ＝：ｉｄ、：ｉｄ＝「ｆｏｏ」というクエリ文を生成してピアデータベース３０８に提供し、ピアデータベースは、このようなクエリ文を受信してｆｏｏというユーザのユーザ情報を抽出する。
【００７５】
このように、ユーザから受信される要求メッセージを処理するプロセス（フロントエンドプロセス）と、ユーザの要求メッセージに相応するクエリ文を生成するプロセス（ＳＱＬマッププロセス）と、を分離する本発明の実施の形態は様々な利点を有している。
【００７６】
まず、メッセージ及びコネクション処理プロセスとクエリ文生成プロセスを分離することで、ピア管理サーバーの状態によって行うプロセスを有効に調節することができる。例えば、コネクション処理及びメッセージ処理要求がクエリ文生成要求に比べて多い場合、ピア管理サーバーはより多い数のフロントエンドプロセス処理部３０４を生成して運用することができる。また、メッセージ処理に比べて、クエリ文の生成により多いリソースがかかる場合、ピア管理サーバーは、より多い数のＳＱＬマッププロセス処理部４０６を生成して運用することができる。つまり、ピア管理サーバーの状態によって、フロントエンドプロセス処理部３０４及びＳＱＬマッププロセス処理部３０６を適宜生成することで、制限されたリソースを有効に活用することができる。
【００７７】
さらに、データベースが変更されても、ＳＱＬマッププロセスのみが更新されるだけであり、フロントエンドプロセスは更新される必要がないため、データベースのアップデート時にかかる時間及び費用を減らすことができ、多数のデータベースが使われる場合、これらに対する中央集中的な管理が容易になる。
【００７８】
ピアデータベース３０８には、ＳＱＬマッププロセス処理部３０６によって生成されたクエリ文に従って接続したピア情報が追加/削除/更新される。本発明の一実施の形態によると、ピアデータベース３０８には、登録されたピアのユーザＩＤ、ピアアドレス、ピアが格納しているコンテンツ情報が格納されることができる。また、ピアデータベース３０８には、各ピア別に後述するランダムＩＤ情報が格納される。
【００７９】
また図３を参照すると、状態判断部３００は、ピア管理サーバー２００の状態を判断する機能を有し、ここで状態判断は、メッセージ及びコネクション処理のためにサーバーリソースが多くかかるか否か、または、クエリ文の生成のためにサーバーリソースが多くかかるか否か、を判断する。
【００８０】
制御部３０２は、状態判断部３００の判断結果によって、フロントエンドプロセス処理部３０４、またはＳＱＬマッププロセス処理部３０６を生成や消滅させる機能を有する。
【００８１】
図３には、ピア管理サーバーがフロントエンドプロセス処理部３０４及びＳＱＬマッププロセス処理部３０６を両方含むと示されてあるが、変形された実施の形態においては、フロントエンドプロセス処理部３０４及びＳＱＬマッププロセス処理部３０６が、別個のサーバーに含まれることもできるということは、当業者にとって自明なことである。
【００８２】
図６は、本発明の一実施の形態に係るＳＱＬマッププロセス処理部とピアデータベースとの連結構造を示した図である。同図に示すように、ＳＱＬマッププロセス処理部３０６は、フロントエンドプロセス処理部３０４とは独立的に多数のピアデータベース３０８と連結されることができる。また、ピアデータベース３０８が追加されても、フロントエンドプロセス処理部３０４及びクライアントのエージェントプログラムのコードは変更される必要がなく、ＳＱＬマッププロセス処理部３０６のコードのみが変更される。
【００８３】
さらに、コード及びＳＱＬが混ざることがなく、ＳＱＬがＳＱＬマッププロセス処理部３０６で管理されるため、ＳＱＬに対する中央集中的な管理が可能となる。特に、モニタリング及び統計情報を算出することが容易であり、遂行時間の長い非正常なクエリ文も容易に検出することができる。
【００８４】
図７は、本発明の一実施の形態に係るエージェントプログラムのモジュール構成を示したブロック図である。このようなエージェントプログラムは、ユーザクライアントに組み込まれ、ユーザクライアントが本発明に係るピア管理サーバーに接続できるようにする。同図に示すように、エージェントプログラムは、ダウンロードチェックモジュール４００、連結設定モジュール４０２、ピア登録/解除モジュール４０４、ピア情報受信モジュール４０６、ピア連結設定モジュール４０８、及びコンテンツ格納モジュール４１０を含むことができる。
【００８５】
ダウンロードチェックモジュール４００は、エージェントプログラムが他のピアからコンテンツをダウンロードしているか否かをチェックする機能を有する。前述のように、本発明の一実施の形態によると、ダウンロードしているか否かによって、ピアがアクティブまたはインアクティブ状態に登録されるところ、ダウンロードチェックモジュール４００は、エージェントプログラムがダウンロードしているか否かを持続的にチェックする。
【００８６】
連結設定モジュール４０２は、ピア管理サーバー２００との連結を設定する機能を有する。通常、Ｐ２Ｐエージェントプログラムは、連結設定の時にピア登録要求メッセージを転送するが、本発明の一実施の形態によると、連結設定モジュール４０２は、ピア管理サーバー２００との連結設定のみを行い、連結設定の時にピア登録要求メッセージを転送することはない。前述のように、連結設定モジュール４０２は、ピア管理サーバー２００とＴＣＰ連結設定を行うことができ、必要に応じてＵＤＰコネクションを設定することもできる。
【００８７】
ピア登録/解除モジュール４０４は、ダウンロードチェックモジュール４００のダウンロードチェック結果によって、ピア登録要求メッセージまたはピア登録解除要求メッセージを生成して転送する機能を有する。
【００８８】
ダウンロードチェックモジュール４００からダウンロード状態が感知された場合、ピア登録/解除モジュール４０４は、ピア登録要求メッセージをピア管理サーバー２００に転送し、ピア管理サーバー２００は、ピア登録手続きを行う。ピア登録要求の時、クライアントに格納されたコンテンツ情報がピア登録要求メッセージに含まれる。
【００８９】
ダウンロードチェックモジュール４００からダウンロード完了状態が感知された場合、ピア登録/解除モジュール４０４は、ピア登録解除要求メッセージをピア管理サーバー２００に転送し、ピア管理サーバー２００はピア登録解除手続きを行う。
【００９０】
ピア情報受信モジュール４０６は、ピア管理サーバー２００にコンテンツを要求し、ピア管理サーバー２００からピア情報を受信する機能を有する。ピア情報受信モジュール４０６は、コンテンツ要求メッセージを生成してピア管理サーバー２００に転送し、コンテンツ要求メッセージには、コンテンツを識別することができるコンテンツＩＤ情報が含まれる。ピア情報受信モジュール４０６は、コンテンツ要求メッセージに応答するピア情報をピア管理サーバー２００から受信する。ここで、ピア情報は、一つのピアのみを含むこともでき、複数のピアリストを含むこともできる。
【００９１】
ピア連結設定モジュール４０８は、ピア情報受信モジュール４０６が受信したピア情報を基にしてコンテンツを受信するピアとの連結を設定して、コンテンツをダウンロードする機能を有する。ピアとの連結を設定してコンテンツをダウンロードすることは一般的なＰ２Ｐ技術に過ぎないため、これに対する詳細な説明は省略する。
【００９２】
コンテンツ格納モジュール４１０は、他のピアから受信するコンテンツ情報を予め設定された領域に格納する機能を有する。ユーザが受信したコンテンツが不法的に用いられることを防ぐために、コンテンツ格納モジュール４１０は、受信したコンテンツを暗号化して格納した方が望ましい。
【００９３】
図８は、本発明の一実施の形態に係るユーザクライアントが、ピア登録及びピア登録解除を要求する動作を示したフローチャートである。
【００９４】
図８を参照すると、まず、ユーザクライアントは、エージェントプログラムを通じて特定のコンテンツを要求するコンテンツ要求メッセージをピア管理サーバーに転送する（Ｓ６００）。
【００９５】
ユーザクライアントは、コンテンツ要求メッセージに相応してピア管理サーバー２００から転送されるピア情報を受信する（Ｓ６０２）。本発明の一実施の形態によると、ピア管理サーバー２００は、特定のコンテンツを格納しているピア情報がユーザクライアントに均等に提供されるようにピアをランダムに選択するが、これに対する詳細な説明は後述する。
【００９６】
ピア情報を受信したユーザクライアントは、エージェントプログラムによってピア情報に含まれたアドレス情報を用いて、当該ピアとの連結を設定する（Ｓ６０４）。当該ピアとの連結が設定されると、ユーザクライアントは連結が設定されたピアからコンテンツをダウンロードする（Ｓ６０６）。
【００９７】
他のピアからダウンロードを開始するのが感知されると、エージェントプログラムはユーザクライアントがアクティブピアに登録されるようにピア登録要求メッセージをピア管理サーバー２００に転送することで、ピア登録手続きを行う（Ｓ６０８）。
【００９８】
このようなピア登録手続きを通じて、当該ピアがアクティブピアに登録されると、他のユーザクライアントがコンテンツを要求するようになり、これを通じて当該ピアは他のユーザクライアントのコンテンツ要求に応答してコンテンツを転送するようになる。
【００９９】
以後、エージェントプログラムは、ユーザクライアントのダウンロードが完了したか否かをモニタリングする（Ｓ６１２）。
【０１００】
ダウンロードが完了すると、エージェントプログラムは、ピア登録解除要求メッセージをピア管理サーバー２００に伝達し、ピア登録解除手続きを行うことで、当該ピアのアクティブ状態を解除する（Ｓ６１４）。
【０１０１】
図９は、本発明の一実施の形態に係るピア登録過程を示したフローチャートである。
【０１０２】
図９を参照すると、ユーザクライアントに設置されたエージェントプログラムは、ユーザクライアントが他のピアからコンテンツをダウンロードしているか否かをモニタリングする（Ｓ９００）。
【０１０３】
コンテンツダウンロードが感知された場合、エージェントプログラムは、ピア登録要求メッセージを生成する（Ｓ９０２）。このようなピア登録要求メッセージのフィールド構成に対する一実施の形態が図１２に示されてある。同図に示すように、ピア登録要求メッセージは、識別子フィールド１２００、ユーザＩＤフィールド１２０２、アドレスフィールド１２０４及びコンテンツＩＤフィールド１２０６のうち、少なくとも一つを含む。
【０１０４】
識別者フィールド１２００には、ピア登録要求メッセージであることを識別するための識別子が予め設定されたコード形態に記録される。
【０１０５】
ユーザＩＤフィールド１２０２には、ピア登録を要求するユーザのＩＤ情報が記録され、アドレス１２０４フィールドにはユーザクライアントのＩＰアドレス及びポート番号が記録される。コンテンツＩＤ１２０６フィールドには、ユーザクライアントが保有しているコンテンツを識別することができるＩＤ情報が記録される。ここで、コンテンツＩＤに相応するコンテンツは、サービス提供者によって提供されるコンテンツは勿論、ユーザによって製作されたコンテンツ（Ｕｓｅｒ  Ｃｒｅａｔｅｄ  Ｃｏｎｔｅｎｔｓ：ＵＣＣ）も含むことができる。
【０１０６】
生成されたピア登録要求メッセージは、フロントエンドプロセス処理部３０４から受信され（Ｓ９０４）、フロントエンドプロセス処理部３０４は、ピア登録要求メッセージに相応するクエリ名及びピア登録要求メッセージに含まれたユーザＩＤ、アドレス及びコンテンツＩＤに対するパラメーターを生成する（Ｓ９０６）。
【０１０７】
生成されたクエリ名及びパラメーターは、ＳＱＬマッププロセス処理部３０６に伝達され、ＳＱＬマッププロセス処理部３０６は、マッピング情報を用いて伝達されたクエリ名及びパラメーターに相応するクエリ文を生成する（Ｓ９１０）。この時、生成されたクエリ文は新しいピア情報（ユーザＩＤ、アドレス、コンテンツＩＤ）をデータベースに挿入するためのクエリ文である。
【０１０８】
図１０は、本発明の一実施の形態に係るピア管理サーバーからピア情報を提供する過程を示したフローチャートである。
【０１０９】
図１０を参照すると、ユーザクライアントから特定のコンテンツのＩＤ情報を含むコンテンツ要求メッセージがフロントエンドプロセス処理部３０４に転送される（Ｓ１０００）。
【０１１０】
フロントエンドプロセス処理部３０４は、コンテンツ要求メッセージに相応するクエリ名及びコンテンツ要求メッセージに含まれたコンテンツＩＤに対するパラメーターを生成する（Ｓ１００２）。
【０１１１】
生成されたクエリ名及びパラメーターは、ＳＱＬマッププロセス処理部３０６に伝達され、ＳＱＬマッププロセス３０６は、パラメーター及びクエリ名を利用して要求されたコンテンツを保有しているピアをランダムに選択するためのクエリ文を生成する（Ｓ１００６）。ランダム選択のためのクエリ文は、図１１を参照して後述する。
【０１１２】
ＳＱＬマッププロセス処理部３０６は、生成されたクエリ文に相応するピア情報をピアデータベース３０８から受信し（１００８）、受信されたピア情報をフロントエンドプロセス処理部３０４に提供する（Ｓ１０１０）。
【０１１３】
フロントエンドプロセス処理部３０４は、ピア情報をユーザクライアントに転送する（Ｓ１０１２）。このような過程を通じてピア情報を受信したユーザクライアントは、提供されたピア情報を用いて当該ピアとの連結を設定し、コンテンツをダウンロードする。
【０１１４】
図１１は、本発明の一実施の形態によってユーザが要求したコンテンツを保有するピアをランダムに選択するための過程を示したフローチャートである。
【０１１５】
前述のように、本発明のように動的に変わり続けるピア情報がピアデータベースによって管理される場合、各ピアに対するコネクションが均一に保持されるようにピアをランダムに選択しにくい。これは、データベースが特定の条件に当たるデータを抽出するように構成され、ランダム選択のためのデータベースクエリ文が提供されないためである。
【０１１６】
このために、本発明の一実施の形態によると、フロントエンドプロセス処理部３０４は、ユーザクライアントからピア登録が要求されると、各ユーザクライアントにランダムに番号形態のＩＤを割り当てる（Ｓ１１００）。フロントエンドプロセス処理部３０４は、データベース及びクエリ文とは関係無いプロセスであるため、一般的なランダム関数を用いて各ピアにランダムＩＤを付与するのが可能である。
【０１１７】
ランダムＩＤが付与されると、ＳＱＬマッププロセス処理部３０６は、ランダムＩＤがピア情報に含まれたユーザＩＤ、アドレス及びコンテンツ情報と共に、ピアデータベース３０８に格納されるようにする（Ｓ１１０２）。
【０１１８】
特定のコンテンツを格納しているピア情報が要求される場合（Ｓ１１０４）、フロントエンドプロセス処理部３０４は、ランダムにピアを選択するための範囲を設定し、ランダムに設定された範囲を指定するパラメーターを出力し、ＳＱＬマッププロセス処理部３０６は、前記パラメーターを用いて指定された範囲にあるピアを選択するためのクエリ文を生成する（Ｓ１１０６）。
【０１１９】
このようなクエリ文は、一般的なＳＥＬＥＣＴ構文及びＳＥＬＥＣＴ構文から提供される範囲指定（＜＝、＞＝、ｂｅｔｗｅｅｎ）方式を用いて生成することができる。例えば、ランダムＩＤ１０〜２０のピアを選択するためのクエリ文が生成されることができ、ランダムＩＤ５以下のピアを選択するためのクエリ文が生成されることもできる。
【０１２０】
ピアデータベース３０８は、ＳＥＬＥＣＴ構文に相応するピアを選択し、ＳＱＬマッププロセス処理部３０６に提供する（Ｓ１１０８）。
【０１２１】
前述のように、ピアをランダムに選択することは、ランダムＩＤ付与及びランダム範囲設定の中、いずれか一つのみをランダムに処理することで行われることもある。例えば、番号ＩＤは、ランダムにではなく順次に付与するが、ピア選択のための番号範囲をランダムに設定することで、ピアに対するランダム選択ができるはずである。
【０１２２】
また、他の例として、各ピアにはランダムに番号ＩＤを付与するが、ピア選択のための範囲は固定的に設定することで、ピアに対するランダム選択ができるはずである。
【０１２３】
このように、各ピアにランダムＩＤを付与し、付与されたランダムＩＤがデータベースで共に管理されるようにすることで、コンテンツを保有したピアに対するランダム選択が可能であり、これによって、ピアの間のコネクション設定の時、特定のピアにコネクションが偏重されることなく、コネクションが均一に分布されるように制御することができる。
【産業上の利用可能性】
【０１２４】
以上で説明したように、本発明によると、Ｐ２Ｐシステムに接続したピア情報をデータベースによって有効に管理することができるという利点がある。
【０１２５】
また、本発明によると、フロントエンドプロセス及びＳＱＬマッププロセスをサーバー状態によって生成することで、サーバーリソースをより有効に活用することができるという利点がある。
【０１２６】
さらに、本発明によると、データベースの管理とクライアントのメッセージ処理を２元化することで、データベースの拡張及びシステムアップグレードの時、最小限の修正によって拡張及びアップグレードができるという利点がある。
【０１２７】
さらに、本発明によると、ダウンロード時のみにユーザクライアントがアクティブピアとして動作するようにすることで、Ｐ２Ｐシステムの利用時、ユーザクライアントの負荷を最小化することができるという利点がある。
【図１】
2010511222.tif 000003
【図２】
2010511222.tif 000004
【図３】
2010511222.tif 000005
【図４】
2010511222.tif 000006
【図５】
2010511222.tif 000007
【図６】
2010511222.tif 000008
【図７】
2010511222.tif 000009
【図８】
2010511222.tif 000010
【図９】
2010511222.tif 000011
【図１０】
2010511222.tif 000012
【図１１】
2010511222.tif 000013
【図１２】
2010511222.tif 000014
【国際調査報告】
2010511222.tif 000015
2010511222.tif 000016