(57)【要約】【課題】大容量のマルチメディアコンテンツデータを高速に提供することができるコンテンツ提供方法及びシステムを提供する。【解決手段】コンテンツを要請する複数のクライアント（２０２〜２１６）は、メッシュ方式に連結され、コンテンツを貯蔵しているコンテンツサーバー２００または他のクライアント（ノード）からコンテンツを受信する。コンテンツを要請するクライアントは、複数のノードにコンテンツを要請し、並列／分散方式により、さらに安定してデータを受信する。コンテンツを要請する使用者が多くなってもコンテンツサーバー２００とクライアント（２０２〜２１６）が分担してコンテンツデータを転送するため、サーバーの負担が軽減される。【選択図】　　　図４
2004133877.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツサーバー及び複数のクライアントがネットワークを通じて連結され、前記複数のクライアントには、他のクライアントまたはコンテンツサーバーと通信するための通信エイジェントが設けられているシステムにおいて、コンテンツをクライアントに提供する方法であって、
コンテンツサーバーに接続されている複数のクライアントから、各クライアントが貯蔵しているコンテンツ情報を受信する段階（ａ）と、
クライアントからコンテンツ転送要請信号を受信する段階（ｂ）と、
前記段階（ａ）で受信した情報を利用して、前記コンテンツを要請したクライアントに、要請したコンテンツを貯蔵しているノード情報を提供する段階（ｃ）とを含み、
前記クライアントに設けられた通信エイジェントによって、前記提供されたノード情報を利用して複数のノードに連結を設定し、連結が設定されたノードから並列／分散方式によりコンテンツを受信するように、前記クライアントを制御することを特徴とするコンテンツ提供方法。
【請求項２】
コンテンツのメタ情報を含み、前記クライアントに転送するコンテンツの実行に必要とする情報を提供する段階をさらに含むことを特徴とする請求項１に記載のコンテンツ提供方法。
【請求項３】
前記コンテンツサーバー及び前記複数のクライアントに貯蔵されるコンテンツは、全てのコンテンツデータを予め設定された単位に分けた複数のブロックにより構成され、前記ブロックはこれを予め設定された単位に分けた複数のサブブロックにより構成されることを特徴とする請求項１に記載コンテンツ提供方法。
【請求項４】
前記通信エイジェントは、
前記コンテンツサーバーに、クライアントに貯蔵しているコンテンツ情報及びクライアント識別情報を提供し、クライアントの使用者がコンテンツを要請する場合、コンテンツ要請情報を前記コンテンツサーバーに転送するエイジェント管理モジュールと、
クライアントに貯蔵されているコンテンツ情報を管理するキャッシュ（ｃａｃｈｅ）管理モジュールと、
使用者が転送を要請したコンテンツを貯蔵しているノードに連結を設定して、並列／分散方式により、要請したコンテンツを受信するメッシュ（ｍｅｓｈ）管理モジュールと、
使用者のコンテンツ要請情報を前記エイジェント管理モジュールに提供し、受信したコンテンツをコンテンツプレイヤ（ｃｏｎｔｅｎｔｓ　ｐｌａｙｅｒ）に提供するプレイヤ制御モジュールとを含むことを特徴とする請求項１に記載のコンテンツ提供方法。
【請求項５】
前記メッシュ管理モジュールは、
前記段階（ｃ）により前記コンテンツサーバーから受信される要請したコンテンツを貯蔵しているノード情報を管理するノード管理モジュールと、
前記段階（ｃ）により受信したノード情報を利用して、要請したコンテンツを貯蔵しているノードのうち、予め設定された受信ノードに連結を設定し、連結が設定されたノードから各々他のサブブロックデータを受信する連結制御モジュールと、
一つのブロックを構成する全てのサブブロックデータが受信されるか否かを判断するサブブロック管理モジュールと、
一つのブロックを構成する全てのサブブロックデータが受信される場合、全てのサブブロックが受信されたブロックデータを、前記プレイヤ制御モジュールに提供するブロック管理モジュールとを含むことを特徴とする請求項３または４に記載のコンテンツ提供方法。
【請求項６】
前記連結制御モジュールは、
連結が設定されたノードのうちの一部のノードでサブブロックデータ受信誤謬が発生した場合、連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがあるか否かを判断するモジュールと、
連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがある場合、該当ノードに受信誤謬が発生したサブブロックデータを要請するモジュールと、
連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがない場合、前記段階（ｃ）により提供されたノード情報を利用して連結が設定されないノードに対して連結を設定して、受信誤謬が発生したサブブロックデータを受信するモジュールとを含むことを特徴とする請求項５に記載のコンテンツ提供方法。
【請求項７】
前記受信されるサブブロックデータは、使用者が要請したコンテンツのリソース識別者、ブロック番号、サブブロック番号を含むヘッダ情報と、前記ヘッダ情報に相応するサブブロックデータを含むことを特徴とする請求項５に記載のコンテンツ提供方法。
【請求項８】
クライアントからコンテンツ予約要請情報を受信する段階と、
前記予約を要請したコンテンツを貯蔵しているノード情報を、コンテンツ予約要請情報を転送したクライアントに提供する段階をさらに含むことを特徴とする請求項１に記載のコンテンツ提供方法。
【請求項９】
前記コンテンツ実行に必要とする情報を提供する段階は、
前記クライアントから認証要請信号を受信する段階と、
使用者認証要請に対する応答信号を前記クライアントに転送する段階と、
使用者が認証される場合、前記クライアントからメタデータ要請信号を受信する段階と、
使用者が要請したメタデータを前記クライアントに転送する段階とを含むことを特徴とする請求項２に記載のコンテンツ提供方法。
【請求項１０】
前記通信エイジェントは、前記コンテンツサーバーに予約要請情報を転送し、受信される予約コンテンツ情報を管理する予約管理モジュールをさらに含むことを特徴とする請求項４または８に記載のコンテンツ提供方法。
【請求項１１】
前記コンテンツサーバーに前記クライアントの接続要請情報及び前記接続要請をするクライアントに貯蔵されたコンテンツ情報を転送する段階と、
前記コンテンツサーバーにコンテンツ要請信号を転送する段階と、
前記コンテンツサーバーから要請したコンテンツを貯蔵しているノード情報を受信する段階と、
前記受信したノード情報を利用してコンテンツを受信しようとする複数のノードに連結を設定する段階と、
連結を設定したノードから要請したコンテンツを並列／分散方式により受信する段階とを、前記クライアントが実行するように、前記クライアントを前記通信エイジェントによって制御することを特徴とする請求項１に記載のコンテンツ転送方法。
【請求項１２】
前記並列／分散方式により受信するコンテンツを前記クライアントのキャッシュに貯蔵する段階をさらに実行するように、前記クライアントを前記通信エイジェントによって制御することを特徴とする請求項１１に記載のコンテンツ転送方法。
【請求項１３】
連結が設定されたノードのうちの一部のノードでサブブロックデータ受信誤謬が発生した場合、連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがあるか否かを判断する段階と、
連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがある場合、該当ノードに受信誤謬が発生したサブブロックデータを要請する段階と、
連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがない場合、前記段階（ｃ）により提供されたノード情報を利用して連結が設定されないノードに対して連結を設定して受信誤謬が発生したサブブロックデータを受信する段階とを、さらに前記クライアントが実行するように、前記クライアントを前記通信エイジェントによって制御することを特徴とする請求項３または１１に記載のコンテンツ転送方法。
【請求項１４】
複数のクライアントと、前記複数のクライアントとネットワークを通じて連結されているコンテンツサーバーとを含むコンテンツ提供システムにおいて、
前記コンテンツサーバーは、
前記接続されている複数のクライアントから各クライアントが貯蔵しているコンテンツ情報を受信し、コンテンツ転送を要請するクライアントに要請したコンテンツを貯蔵しているノード情報を提供するメッシュ制御モジュールと、
クライアントが要請するコンテンツを転送するコンテンツ転送モジュールと、前記メッシュ制御モジュールで受信する各クライアントが貯蔵しているコンテンツ情報を貯蔵するメッシュ情報データベースとを含み、
前記複数のクライアントは、通信エイジェントを含み、前記通信エイジェントは、前記提供されたノード情報を利用して複数のノードに連結を設定し、連結が設定されたノードから並列／分散方式によりコンテンツを受信するようにクライアントを制御することを特徴とするコンテンツ提供システム。
【請求項１５】
前記コンテンツサーバーは、前記要請するコンテンツの実行に必要とするメタ情報を貯蔵するメタ情報データベースをさらに含むことを特徴とする請求項１４に記載のコンテンツ提供システム。
【請求項１６】
前記通信エイジェントは、
前記コンテンツサーバーに、クライアントに貯蔵されているコンテンツ情報及びクライアント識別情報を提供し、クライアントの使用者がコンテンツを要請する場合、コンテンツ要請情報を前記コンテンツサーバーに転送するエイジェント管理モジュールと、
クライアントに貯蔵されているコンテンツ情報を管理するキャッシュ管理モジュールと、
使用者が転送を要請したコンテンツを貯蔵しているノードに連結を設定して、並列／分散方式により、要請したコンテンツを受信するメッシュ管理モジュールと、
使用者のコンテンツ要請情報を前記エイジェント管理モジュールに提供し、受信したコンテンツをコンテンツプレイヤに提供するプレイヤ制御モジュールとを含むことを特徴とする請求項１４に記載のコンテンツ提供システム。
【請求項１７】
前記複数のクライアントに貯蔵されるコンテンツは、全てのコンテンツデータを予め設定された単位に分けた複数のブロックにより構成され、前記ブロックはこれを予め設定された単位に分けた複数のサブブロックにより構成されることを特徴とする請求項１４に記載のコンテンツ提供システム。
【請求項１８】
前記通信エイジェントは、
連結が設定されたノードのうちの一部のノードで、サブブロックデータ受信誤謬が発生した場合、連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがあるか否かを判断するモジュールと、
連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがある場合、該当ノードに受信誤謬が発生したサブブロックデータを要請するモジュールと、
連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがない場合、前記メッシュ制御モジュールにより提供されたノード情報を利用して連結が設定されないノードに対して連結を設定して、受信誤謬が発生したサブブロックデータを受信するモジュールとを含むことを特徴とする請求項１４に記載のコンテンツ提供システム。
【請求項１９】
コンテンツサーバー及び複数のクライアントがネットワークを通じて連結されているシステムにおいて、前記複数のクライアントの各々に設けられる通信エイジェントプログラムであって、
前記コンテンツサーバーへクライアントに貯蔵されているコンテンツ情報及びクライアント識別情報を提供し、クライアントの使用者がコンテンツを要請する場合に、コンテンツ要請情報を前記コンテンツサーバーに転送し、使用者が要請したコンテンツを貯蔵しているノード情報を受信するエイジェント管理モジュールと、
クライアントに貯蔵されているコンテンツ情報を管理するキャッシュ管理モジュールと、
使用者が転送を要請したコンテンツを貯蔵しているノードに連結を設定して、並列／分散方式により、要請したコンテンツを受信するメッシュ管理モジュールと、
使用者のコンテンツ要請情報を前記エイジェント管理モジュールに提供し、受信したコンテンツをコンテンツプレイヤに提供するプレイヤ制御モジュールとを含むことを特徴とする通信エイジェントプログラム。
【請求項２０】
前記受信するコンテンツは、全てのコンテンツデータを予め設定された単位に分けた複数のブロックにより構成され、前記ブロックはこれを予め設定された単位に分けた複数のサブブロックにより構成され、
前記メッシュ管理モジュールは、
前記コンテンツサーバーから受信される要請したコンテンツを貯蔵しているノード情報を管理するノード管理モジュールと、
受信したノード情報を利用して要請したコンテンツを貯蔵しているノードのうち、予め設定された数のノードに連結を設定し、連結が設定されたノードから各々他のサブブロックデータを受信する連結制御モジュールと、
一つのブロックを構成する全てのサブブロックデータが受信されたか否かを判断するサブブロック管理モジュールと、
一つのブロックを構成する全てのサブブロックデータが受信された場合、全てのサブブロックが受信されたブロックデータを前記プレイヤ制御モジュールに提供するブロック管理モジュールとを含むことを特徴とする請求項１９に記載の通信エイジェントプログラム。
【請求項２１】
コンテンツサーバー及び複数のクライアントがネットワークを通じて連結され、前記複数のクライアントには他のクライアント、または、前記コンテンツサーバーと通信するための通信エイジェントが設けられ、前記コンテンツサーバーでインターネット放送サービスを提供する方法において、
クライアントから放送転送要請信号を受信する段階（ａ）と、
前記コンテンツサーバーに接続して放送を視聴している他のクライアントの住所情報を、前記段階（ａ）において放送転送要請信号を送信したクライアントに提供する段階（ｂ）とを含み、
前記放送転送を要請したクライアントに設けられた通信エイジェントによって、前記段階（ｂ）で提供された情報を利用して放送を視聴している他のクライアントのうちの少なくとも一つのクライアントに連結を設定し、連結が設定されたクライアントから放送情報を受信するように前記クライアントを制御することを特徴とする放送コンテンツ提供方法。
【請求項２２】
前記通信エイジェントによって、並列／分散方式により放送情報を受信するように前記クライアントを制御することを特徴とする請求項２２に記載の放送コンテンツ提供方法。
【請求項２３】
コンテンツサーバー及び複数のクライアントがネットワークを通じて連結されているシステムにおいてクライアントがコンテンツを受信する方法であって、
前記コンテンツサーバーにコンテンツ転送要請信号を転送する段階（ａ）と、前記コンテンツサーバーから要請したコンテンツを貯蔵しているノード情報を受信する段階（ｂ）と、
前記段階（ｂ）で受信したノード情報を利用して複数のノードに連結を設定する段階（ｃ）と、
前記段階（ｃ）で連結が設定された複数のノードから、要請したコンテンツを並列／分散方式により受信する段階（ｄ）とを含むことを特徴とするコンテンツ受信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンテンツ提供方法及びシステムに関するものであり、より詳細には、映画やアニメーションのような大容量のコンテンツ（ｃｏｎｔｅｎｔｓ）をインターネットのようなネットワークを通じてより速い速度で転送する方法及びシステムに関するものである。
【０００２】
【従来の技術】
インターネットは、初期には情報の共有及び情報提供の手段に活用されたが、急速に普及されるにつれて、このような用途に限定されずに、コンテンツ提供、電子商取引、広告など多様な用途に活用されている。そのため、インターネットを利用したビジネスがオフラインに劣らずに、重要なビジネスとして位置している。
【０００３】
初期にインターネットを通じて提供されるコンテンツは、文書や絵のような低容量のデータが大部分であったが、データ転送技術及び装備が発展するにつれて、マルチメディアコンテンツの提供も活発に行われている。
【０００４】
図１は従来のコンテンツ転送システムの一例を示した図面である。
【０００５】
図１に示したように、従来のコンテンツ転送システムでは、一つのコンテンツサーバーに全てのクライアントコンピュータ（以下、単に、「クライアント」という）が接続されてコンテンツが転送されていた。
【０００６】
図１のシステムで、コンテンツサーバーが使用することができる帯域幅には限界があるために、多数のクライアントがコンテンツサーバーに接続されてコンテンツが要請される場合、コンテンツを提供することができないという問題点があった。
【０００７】
また、クライアントとコンテンツサーバーとの間のデータ転送経路が複雑な場合、データの損失が生ずる問題点があった。
【０００８】
従って、図１のようなコンテンツ転送システムは、高速のデータ転送を必要とするマルチメディアデータを転送する場合には適合しなかった。
【０００９】
図１のようなシステムにおいてデータ転送経路を効率的に改善するために、クライアントとコンテンツサーバーとの間にプロキシサーバー（Ｐｒｏｘｙ　ｓｅｒｖｅｒ）、キャッシュサーバー（Ｃａｃｈｅ　ｓｅｒｖｅｒ）、ロードバランシングサーバーなどを置いてデータの損失を最少化する方法が開発された。
【００１０】
しかし、前記の方法はサーバーの負荷増大によるコンテンツ転送失敗という問題点を克服できないという限界があった。
【００１１】
図２は、従来の他のコンテンツ転送システムの構成を示した図面である。
【００１２】
図２に示したシステムは、コンテンツサーバー以外に複数のマルチキャストルーター（Ｍｕｌｔｉｃａｓｔ　Ｒｏｕｔｅｒ）を備えている。
【００１３】
図２に示したシステムで、コンテンツサーバーは複数のマルチキャストルーターにコンテンツを提供し、マルチキャストルーターはサーバーから提供されるコンテンツをクライアントの使用者（以下、単に「使用者」という）に提供し、使用者はサーバーまたはマルチキャストルーターからコンテンツを受信するので、サーバーの負担は、図１に示したシステムに比べて軽減される。
【００１４】
しかし、図２に示したシステムは複数の使用者が同一のコンテンツを必要とするインターネット生放送の場合にのみ適用することができ、相異するコンテンツを必要とするオンディマンド（Ｏｎ−Ｄｅｍａｎｄ）方式には適用することができないシステムである。
【００１５】
これと共に、マルチキャストルーターの設置に多額の費用を要し、既存のネットワークを構成するルーターをマルチキャストルーターに一つ一つ交替しなければならないという問題点がある。
【００１６】
図３は従来のＣＤＮコンテンツ転送システムの構成を示した図面である。
【００１７】
ＣＤＮ（Ｃｏｎｔｅｎｔｓ　Ｄｅｌｉｖｅｒｌｙ　Ｎｅｔｗｏｒｋ）システムは複数のエッジサーバーを備え、複数のエッジサーバーが近接した使用者にコンテンツを提供するシステムである。
【００１８】
ＣＤＮシステムによると、従来の一つのサーバーにクライアントが接続されたものと異なり、複数のエッジサーバーに分散されてクライアントが接続されるので、サーバーの負荷を軽減することは可能である。しかし、ＣＤＮシステムは複数のエッジサーバーを必要とするので、費用がかさみ、従って広範囲な地域にサービスを提供することができないという問題点がある。
【００１９】
また、使用者が多ければ多いほど分散されたエッジサーバーの負荷が増加するので、サーバーの負荷の増加という根本的な問題点を解決したシステムとは言えない。
【００２０】
【発明が解決しようとする課題】
本発明の第１目的は、多数の使用者がコンテンツを要請してもサーバーの負荷の増加なしにコンテンツを効果的に転送することができる方法及びシステムを提供することにある。
【００２１】
本発明の第２目的は、多数の使用者がコンテンツを要請するほど、さらに迅速にコンテンツを提供することができる方法及びシステムを提供することにある。
【００２２】
また、本発明の第３目的は、メッシュ構造に連結されたクライアント間の通信を通じて使用者が要請したコンテンツを提供する方法及びシステムを提供することにある。
【００２３】
また、本発明の第４目的は、並列／分散方式によりコンテンツを受信して、より安定してコンテンツを受信することができるコンテンツ提供方法およびシステムを提供することにある。
【００２４】
【課題を解決するための手段】
上述した目的を達成するための本発明は、コンテンツサーバー及び複数のクライアントがネットワークを通じて連結され、前記複数のクライアントには他のクライアントまたはコンテンツサーバーと通信するための通信エイジェント（ａｇｅｎｔ）が設けられているシステムにおいて、コンテンツをクライアントに提供する方法であって、コンテンツサーバーに接続されている複数のクライアントから、各クライアントが貯蔵しているコンテンツ情報を受信する段階（ａ）と、クライアントから、コンテンツ転送要請信号を受信する段階（ｂ）と、前記段階（ａ）で受信した情報を利用して、前記コンテンツを要請したクライアントに、要請したコンテンツを貯蔵しているノード情報を提供する段階（ｃ）を含み、前記クライアントに設けられた通信エイジェントによって、前記提供されたノード情報を利用して複数のノードに連結を設定し、連結が設定されたノードから並列／分散方式によりコンテンツを受信するように、前記クライアントを制御するコンテンツ提供方法が提供される。
【００２５】
一方、本発明によると、前記クライアントに転送するコンテンツの実行に必要とする情報（コンテンツのメタ情報を含む）を提供する段階をさらに含む。
【００２６】
前記コンテンツサーバー及び前記複数のクライアントに貯蔵されるコンテンツは、全てのコンテンツデータを予め設定された単位に分けた複数のブロックにより構成され、前記ブロックはこれを予め設定された単位に分けた複数のサブブロックにより構成される。
【００２７】
前記通信エイジェントは、前記コンテンツサーバーに、クライアントに貯蔵しているコンテンツ情報及びクライアント識別情報を提供し、使用者がコンテンツを要請する場合、コンテンツ要請情報を前記コンテンツサーバーに転送するエイジェント管理モジュールと、クライアントに貯蔵されているコンテンツ情報を管理するキャッシュ（ｃａｃｈｅ）管理モジュールと、使用者が転送を要請したコンテンツを貯蔵しているノードに連結を設定して、並列／分散方式により要請したコンテンツを受信するメッシュ（Ｍｅｓｈ）管理モジュールと、使用者のコンテンツ要請情報を前記エイジェント管理モジュールに提供し、受信したコンテンツをコンテンツプレイヤに提供するプレイヤ制御モジュールを含む。
【００２８】
前記メッシュ管理モジュールは、前記段階（ｃ）により前記コンテンツサーバーから受信される要請したコンテンツを貯蔵しているノード情報を管理するノード管理モジュールと、前記段階（ｃ）により受信したノード情報を利用して要請したコンテンツを貯蔵しているノードのうち、予め設定された受信ノードに連結を設定し、連結が設定されたノードから各々他のサブブロックデータを受信する連結制御モジュールと、一つのブロックを構成する全てのサブブロックデータが受信されるか否かを判断するサブブロック管理モジュールと、一つのブロックを構成する全てのサブブロックデータが受信される場合、全てサブブロックが受信されたブロックデータを前記プレイヤ制御モジュールに提供するブロック管理モジュールとを含む。
【００２９】
前記連結制御モジュールは、連結が設定されたノードのうちの一部のノードでサブブロックデータ受信誤謬が発生した場合、連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがあるか否かを判断するモジュールと、連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがある場合、該当ノードに受信誤謬が発生したサブブロックデータを要請するモジュールと、連結が設定されたノードのうちのサブブロックデータ送信が完了されたノードがない場合、前記段階（ｃ）により提供されたノード情報を利用して連結が設定されないノードに対して連結を設定して受信誤謬が発生したサブブロックデータを受信するモジュールとを含む。
【００３０】
前記受信されるサブブロックデータは、使用者が要請したコンテンツのリソース識別、ブロック番号、サブブロック番号を含むヘッダ情報と、前記ヘッダ情報に相応するサブブロックデータを含む。
【００３１】
また、本発明によると、クライアントからコンテンツ予約情報を受信する段階と、前記予約を要請したコンテンツを貯蔵しているノード情報を、コンテンツ予約要請情報を転送したクライアントに提供する段階を含む。
【００３２】
前記コンテンツ実行に必要である情報を提供する段階は、前記クライアントから認証要請信号を受信する段階と、使用者認証要請に対する応答信号を前記クライアントに転送する段階と、使用者が認証される場合、前記クライアントからメタデータ要請信号を受信する段階と、使用者が要請したメタデータを前記クライアントに転送する段階を含む。
【００３３】
前記通信エイジェントは、前記コンテンツサーバーに予約要請情報を転送し、受信される予約コンテンツ情報を管理する予約管理モジュールをさらに含む。
【００３４】
【発明の実施の形態】
以下、図面を参照して本発明の望ましい一実施形態をより詳細に説明する。
【００３５】
図４は本発明の望ましい一実施形態に係るコンテンツ転送システムの網構成図を示した図面である。
【００３６】
図４に示したように、本発明の望ましい実施形態によるコンテンツ転送システムはコンテンツサーバー２００とメッシュ方式に連結されている複数のクライアント２０２〜２１６を含み、各々のクライアントには通信エイジェント２１８が設けられている。
【００３７】
本実施形態では、転送されるコンテンツが映画、アニメーションのような動画像の映像コンテンツである場合について説明し、動画映像コンテンツ以外のコンテンツであっても本発明に適用されることができる。
【００３８】
本発明によると、オーバーレイマルチキャスティング方法によりクライアントに使用者が要請したコンテンツが転送される。従って、使用者が特定コンテンツの転送を要請する場合、要請したコンテンツをコンテンツサーバー２００からクライアントに直接転送させることもでき、使用者が要請したコンテンツを貯蔵している他のクライアントから要請したクライアントに転送させることもできる。
【００３９】
コンテンツサーバー２００は使用者が要請したコンテンツを提供し、コンテンツを要請した使用者が該当コンテンツを貯蔵している他のクライアントから受信することができるように、該当コンテンツを貯蔵しているクライアントに関する情報を提供する。
【００４０】
例えば、図４に示したクライアント２０２〜２１６のうち、いずれか一つのクライアント２０４が特定コンテンツの転送をコンテンツサーバー２００に要請する場合、コンテンツサーバー２００は要請されたコンテンツをクライアント２０４に直接提供したり、または要請されたコンテンツを貯蔵している他のクライアントに関する情報を提供する。
【００４１】
通信エイジェント２１８は、コンテンツの受信及び送信のために、各々のクライアントに設けられるプログラムである。本実施形態では、通信エイジェント２１８がコンピュータソフトウェアである場合に対して説明するが、通信エイジェントは、ソフトウェア以外に、例えば、装置やカードの形態に具現されて、クライアントに設けることができる。
【００４２】
使用者は、通信エイジェント２１８をコンテンツサーバー２００または他のインターネット上の情報提供サーバーからダウンロードして設けることができる。
【００４３】
前記コンテンツを要請した一つのクライアント２０４が、コンテンツサーバー２００から、要請したコンテンツを貯蔵しているクライアント２０６、２０８、２１０、２１２に関する情報を受信した場合、クライアント２０４に設けられた通信エイジェント２１８は、該当コンテンツを貯蔵しているクライアント２０６、２０８、２１０、２１２の全部または一部に該当コンテンツの転送を要請する。
【００４４】
本発明の望ましい実施形態によると、コンテンツを要請したクライアント２０４は、並列／分散方式により、要請したコンテンツを受信する。即ち、コンテンツを要請したクライアント２０４は、要請したコンテンツを貯蔵しているいずれか一つのクライアントからのみコンテンツを受信せずに、複数のクライアントからコンテンツを受信する。例えば、クライアント２０４は、要請したコンテンツを貯蔵しているクライアント２０６、２０８、２１０、２１２のうち、一部のクライアント２０６、２１０、２１２から要請したコンテンツを受信することもできる。コンテンツを受信したクライアント２０４には、受信したコンテンツを他のクライアントにも転送することができるように、受信したコンテンツが貯蔵される。
【００４５】
本発明のように、他のクライアントからコンテンツを受信する場合、コンテンツを提供するクライアントとの接続が切られたり、または連結状態が不安定になる場合にコンテンツ受信にエラーが発生することが多くなるので、複数のクライアントと連結状態を維持してコンテンツを受信するようにする。コンテンツを並列／分散方式により受信する方法について、別途の図面を通じて詳細に説明する。
【００４６】
図４のようにシステムが構成される場合、コンテンツを要請したクライアントはコンテンツサーバー２００または要請したコンテンツを貯蔵している他のクライアントからコンテンツを受信するので、多数の使用者がコンテンツを要請してもサーバーの負担が増大されない。特に、実時間動画映像放送の場合、複数の使用者が同じ映像データを受信しているので、多数の使用者がコンテンツを要請するほどさらに早い速度でコンテンツを提供することができるようになる。
【００４７】
図５は、本発明の望ましい一実施形態によるコンテンツサーバーのモジュール構成及びコンテンツサーバーと結合されたデータベースを示した図面である。
【００４８】
図５に示すように、コンテンツサーバー２００は、メッシュ制御モジュール３００、コンテンツ転送モジュール３０２、ＦＥＣエンコーディングモジュール３０４及び認証モジュール３０６を含む。コンテンツサーバー２００には、使用者データベース３０８、メタ情報データベース３１０、メッシュ情報データベース３１２及びコンテンツデータベース３１４が結合されている。図５ではデータベースが別途に構成される場合を示したが、サーバー２００に含ませることもできる。
【００４９】
図５で、メッシュ制御モジュール３００は、通信エイジェント２１８を通じてコンテンツサーバー２００と接続されているクライアントの情報を管理する機能を有する。通信エイジェント２１８を有するクライアントが接続される場合、クライアントは貯蔵しているコンテンツ情報をコンテンツサーバー２００に転送し、メッシュ制御モジュール３００は転送されたコンテンツ情報を受信してメッシュ情報データベース３１２に貯蔵する。
【００５０】
また、メッシュ制御モジュール３００は、使用者が特定コンテンツの転送を要請する場合、該当コンテンツを貯蔵しているクライアントに関する情報をメッシュ情報データベース３１２を照会して抽出し、これをコンテンツ転送を要請したクライアントに提供する。
【００５１】
コンテンツ転送モジュール３０２は、使用者が要請したコンテンツをクライアントに転送する機能を有する。コンテンツ転送モジュール３０２はコンテンツデータベース３１４を照会して使用者が要請したコンテンツを提供する。
【００５２】
ＦＥＣ（Ｆｏｒｗａｒｄ　Ｅｒｒｏｒ　Ｃｏｒｒｅｃｔｉｏｎ）　エンコーディングモジュール３０４は、コンテンツデータベース３１４に貯蔵されているコンテンツ情報をＦＥＣエンコーディングしてコンテンツ転送モジュール３０２に提供する。ＦＥＣエンコーディングは広く知られた公知の技術であるので、これに対する詳細な説明は省略する。ＦＥＣエンコーディングモジュール３０４は、本発明に必ず必要とする構成要素ではなく、転送上の効率のために使用されたり、または使用されないこともある。従って、ＦＥＣエンコーディングが行われる場合、コンテンツデータベース３１４に貯蔵されたコンテンツは、ＦＥＣエンコーディングモジュール３０４によりエンコーディングされてコンテンツ転送モジュール３０２に提供され、ＦＥＣエンコーディングが行われない場合には、コンテンツデータベース３１４のコンテンツが直接、コンテンツ転送モジュール３０２に提供される。
【００５３】
ＦＥＣエンコーディングが行われる場合、並列／分散転送に誤謬（エラー）が発生する場合、これを容易に解決することができるという長所があるが、ＦＥＣエンコーディング及びデコーディングのためにＣＰＵに負担がかかるという短所がある。
【００５４】
コンテンツ転送モジュール３０２によって転送されるコンテンツデータのフォーマット及び転送方法について、別途の図面を通じて詳細に説明する。
【００５５】
認証モジュール３０６は、コンテンツを要請する使用者を認証し、課金情報を処理する機能を有する。使用者がコンテンツを要請する場合、使用者ＩＤ及び秘密番号を含む認証キー情報がコンテンツサーバー２００に転送され、認証モジュール３０６はメッシュ制御モジュール３００との通信を通じて登録された使用者であるか否かを判断する。また、認証モジュール３０６は外部課金サーバー（図示せず）と連係されコンテンツを要請した使用者がコンテンツ要請による金額を支払ったか否かを判断する。
【００５６】
使用者データベース３０８には登録された使用者のＩＤ、秘密番号、身上情報などが貯蔵され、コンテンツデータベース３１４には、提供するコンテンツが貯蔵される。
【００５７】
メタ情報データベース３１０にはコンテンツのコーディング方式、著作者などに関する情報が貯蔵される。コンテンツを要請した使用者が認証されると、メッシュ制御モジュール３００はコンテンツを要請した使用者に要請したコンテンツのメタ情報を提供する。メタ情報は動画映像コンテンツの再生のために必ず必要とする情報であり、コンテンツのデータファイルがあるとしても、メタ情報がなければコンテンツを再生することができない。
【００５８】
メッシュ情報データベース３１２には、コンテンツサーバー２００に接続されているクライアント及びクライアントに貯蔵されているコンテンツ情報が貯蔵される。また、使用者が実時間生放送を視聴している場合、このような情報もメッシュ情報データベース３１２に貯蔵される。
【００５９】
図６は、本発明の望ましい実施形態による通信エイジェント２１８のモジュール構成を示したブロック図である。
【００６０】
図６に示すように、通信エイジェント２１８は、エイジェント管理モジュール４００、キャッシュ管理モジュール４０２、メッシュ管理モジュール４０４、プレイヤ制御モジュール４０６、予約管理モジュール４０８及びＦＥＣデコーディングモジュール４１０を含む。メッシュ管理モジュール４０４は、連結制御モジュール４１２、ノード管理モジュール４１４、ブロック管理モジュール４１６及びサブブロック管理モジュール４１８を含む。
【００６１】
図６において、エイジェント管理モジュール４００はコンテンツサーバー２００のメッシュ制御モジュール３００との通信を担当し、クライアントが接続されたり、通信エイジェントが実行される場合、クライアントのＩＰ及びポート（Ｐｏｒｔ）番号を含むクライアント情報とクライアントに貯蔵されているコンテンツ情報をメッシュ制御モジュール３００に提供する機能を有する。
【００６２】
また、エイジェント管理モジュール４００は、使用者がコンテンツ転送を要請する場合、コンテンツ要請情報をコンテンツサーバー２００のメッシュ制御モジュール３００に転送し、要請したコンテンツに対するメタ情報を、コンテンツを実施するプレイヤに提供する。
【００６３】
キャッシュ管理モジュール４０２は、コンテンツサーバー２００または他のクライアントから受信したコンテンツを管理するモジュールである。キャッシュ管理モジュール４０２は、現在残留しているキャッシュの容量、貯蔵されているコンテンツの情報を貯蔵しており、クライアントが接続された場合や通信エイジェントが実行された場合に、前記貯蔵している情報をエイジェント管理モジュール４００に提供する。また、キャッシュ管理モジュール４０２は、コンテンツデータの再生時にキャッシュに貯蔵しているデータを提供する。
【００６４】
メッシュ管理モジュール４０４は、使用者が要請するコンテンツデータをコンテンツサーバー２００または他のクライアントに要請して並列／分散方式により受信する機能を有する。
【００６５】
メッシュ管理モジュール４０４の連結制御モジュール４１２は、使用者が要請したコンテンツを貯蔵している他のクライアント（以下、“ノード”と称する）またはコンテンツサーバー２００に連結を設定する機能を有する。前述したように、コンテンツサーバー２００のメッシュ制御モジュール３００が、メッシュ情報データベース３１２を照会してノード情報を通信エイジェント２１８に提供する。
【００６６】
並列／分散方式によりコンテンツデータを受信するために、連結制御モジュール４１２は、複数のノードにコンテンツデータを要請する。この時、連結制御モジュール４１２は、複数のノードに各々他のデータを要請し、複数の経路を通じて各々の他のデータを受信する。
【００６７】
図８は、コンテンツサーバー２００とコンテンツを要請したクライアント間において、またはノードとコンテンツを要請したクライアント間において送受信されるコンテンツデータのフォーマットを示した図面である。
【００６８】
図８に示したように、本発明の望ましい実施形態によるコンテンツデータのフォーマットは、リソース識別者６００、ブロック番号６０２、サブブロック番号６０４、サブブロックデータ６０６により構成される。
【００６９】
本発明によると、コンテンツデータの分散転送のために、コンテンツデータはブロックとサブブロックにより構成される。再度、全てのコンテンツデータは複数個のブロックにより構成され、各々のブロックは複数のサブブロックにより構成され、実際に転送されるデータはサブブロック単位で転送される。
【００７０】
図８において、リソース識別者６００は、使用者が要請したコンテンツの識別番号である。例えば、提供するコンテンツが映画である場合、各映画の識別番号に対する情報がリソース識別者６００に記録される。
【００７１】
ブロック番号６０２は、転送されるコンテンツデータが全てのコンテンツデータのうちの何番目ブロックに該当するコンテンツであるかを示すヘッダ情報である。
【００７２】
サブブロック番号６０４は転送されるコンテンツデータが該当ブロックの何番目のサブブロックに該当するかを示すヘッダ情報である。
【００７３】
図７は、連結制御モジュール４１２によって、並列／分散方式によりコンテンツデータを受信する方法を示す概念図である。
【００７４】
図７に示したように、複数のノード５００、５０２、５０４にサブブロックデータを要請し、各々のノードに相異するサブブロックデータを要請する。図７では、三つのノードから三つのサブブロックを同時に受信する場合が示されているが、分散要請をするノード及びサブブロックの個数が設定により変更される。
【００７５】
また、連結設定をしたノードのうち、特定ノードの転送速度が速い場合には、他のノードより多いサブブロックを要請することもできる。例えば、ノード１（５００）の速度が、他のノード５０２、５０４より速いと判断される場合、ノード１（５００）に第１サブブロック５０６以外に他のサブブロックを要請することもできる。
【００７６】
図７のように、並列／分散方式を利用する場合、いずれか一つのノードと接続が切れる場合、データ受信に誤謬が発生することがあり、これを解決するための連結制御モジュール４１２のアルゴリズムについては別途の図面を通じて説明する。
【００７７】
ノード管理モジュール４１４は、コンテンツサーバー２００のメッシュ制御モジュール３００から提供されるノード情報を連結制御モジュール４１２に提供する機能を有する。ノード情報にはノードのＩＰ住所とポート番号及び貯蔵しているコンテンツ情報が含まれる。使用者のコンテンツ要請時に、エイジェント管理モジュール４００は、使用者が要請したコンテンツを貯蔵しているノード情報をコンテンツサーバーのメッシュ制御モジュール３００に要請し、ノード情報を受信してノード管理モジュール４１４に提供する。コンテンツを貯蔵している他のクライアントの電源が切られたり、連結が不安定になることがあるので、ノード情報は続けて更新される。
【００７８】
ブロック管理モジュール４１６は、コンテンツデータのブロックを、プレイヤを含む再生装置に提供する機能を有する。プレイヤ制御モジュール４０６から特定ブロックの転送要請がある場合、ブロック管理モジュール４１６はキャッシュ管理モジュール４０２に該当ブロックを提供することを要請する。要請したブロックがキャッシュに貯蔵されている場合、ブロック管理モジュール４１６はこれをプレイヤ制御モジュール４０６に提供し、キャッシュに要請したブロックが貯蔵されていない場合、ブロック管理モジュール４１６は連結制御モジュール４１２に該当ブロックを受信することを要請する。
【００７９】
サブブロック管理モジュール４１８は、ノードからサブブロックを受信し、特定ブロックに含まれる全てのサブブロックが受信されたか否かを判断して、これをキャッシュ管理モジュール４０２またはブロック管理モジュール４１６に提供する機能を有する。
【００８０】
プレイヤ制御モジュール４０６は、使用者が特定コンテンツの再生を要請してプレイヤを実行した場合、プレイヤの実行及び要請したコンテンツ情報をエイジェント管理モジュール４００に提供し、ブロック管理モジュール４１６から要請したコンテンツのブロックデータを受信してプレイヤに提供する機能を有する。
【００８１】
予約管理モジュール４０８は、コンテンツを予め予約して受信する機能を有するモジュールである。予約管理モジュール４０８は、本発明の必須的な構成要素ではなく、使用者のネットワーク接続環境がコンテンツ転送速度を支援できない場合に、有用に使用されるモジュールである。
【００８２】
本発明によると、帯域幅が限定されていてもコンテンツデータの転送がサーバーとクライアントで共に行われるので、速い速度にてコンテンツを提供することができる。例えば、提供するコンテンツが映画コンテンツである場合、秒当り２メガ以上の速度にてコンテンツを転送することができる。しかし、使用者のインターネット接続環境がこのような転送速度に対応できない場合がある。従って、このような場合には、映画を直接再生させる前に、予約して映画データを予めキャッシュに貯蔵させるようにして、予約管理モジュール４０８はこのような予約のための処理過程を実施する。
【００８３】
予約管理モジュール４０８は、使用者が予約を要請したコンテンツ情報及び要請したコンテンツを受信したか否かに対する情報を管理し、要請したコンテンツが全て受信されるまで連結制御モジュール４１２を通じて必要とするデータを要請する。
【００８４】
ＦＥＣデコーディングモジュール４１０は、コンテンツサーバー２００またはノードから受信される情報がＦＥＣデコーディングされている場合、これをデコーディングする機能をする。前述したように、ＦＥＣデコーディング及びデコーディングは、本発明に必ず必要とする要素ではない。
【００８５】
図９は、通信エイジェントの連結制御モジュール４１２が並列／分散方式のデータ受信を制御する過程を示す手順図である。
【００８６】
図９に示すように、まず、連結制御モジュール４１２は、ノード管理モジュール４１４から使用者が要請したコンテンツデータを貯蔵しているノード情報を受信する（Ｓ７００）。
【００８７】
ノード情報を受信した後、連結制御モジュール４１２は、受信したノードのうち、予め設定されたＮ個のノードに連結を設定する（Ｓ７０２）。段階Ｓ７００で受信するノード情報は、前記Ｎ個以上のノード情報であり、連結制御モジュール４１２はこのうちの一部を選択して連結を設定する。連結設定のための通信エイジェント間の通信は、エイジェント管理モジュール４００で実行することもでき、連結制御モジュール４１２で直接実行することもできる。連結設定をする詳細な過程については、別途の図面を通じて後述する。
【００８８】
複数のノードとの連結が設定されると、連結制御モジュール４１２は、各々のノードに使用者が要請したコンテンツのサブブロック（各ノード毎に他のサブブロックを要請するということは、予め説明した）を要請してこれを受信する（Ｓ７０４）。
【００８９】
サブブロック管理モジュール４１６は、特定ブロックに含まれる全てのサブブロックが正しく受信されるか否かを判断する（Ｓ７０６）。
【００９０】
設定されたＮ個の経路のうち、一部経路でサブブロック受信に誤謬が発生した場合、連結制御モジュール４１２は誤謬が発生しない他の経路のうち、サブブロック受信が完了された経路が存在するか否かを判断する（Ｓ７０８）。
【００９１】
サブブロック受信が完了された経路が存在する場合、連結制御モジュール４１２は、受信が完了された経路から、受信誤謬が発生したサブブロックを要請して受信する（Ｓ７１０）。予めサブブロックの受信が完了されると、連結状態がよいと判断することができるので、連結制御モジュール４１２は、受信誤謬が発生した場合に、受信が完了された経路に受信誤謬が発生したサブブロックを要請する。
【００９２】
受信誤謬が発生しない他の経路のうち、サブブロック受信が完了した経路が存在しない場合、連結制御モジュール４１２は前記段階Ｓ７００で受信したノード情報を利用して、新しいノードに対して連結を設定する（Ｓ７１２）。
【００９３】
連結設定が完了されると、新しく設定された経路から受信誤謬が発生したサブブロックを受信する（Ｓ７１４）。
【００９４】
図１０は、クライアントの電源が投入された時、通信エイジェント２１８がコンテンツサーバー２００にクライアントを登録する過程を示す手順図である。
【００９５】
図１０に示したように、まずクライアントの電源が投入されると、通信エイジェントのエイジェント管理モジュール４００は、コンテンツサーバー２００にＴＣＰ接続を実行する（Ｓ８００）。
【００９６】
コンテンツサーバー２００へのＴＣＰ接続が完了されると、エイジェント管理モジュール４００はノード情報登録要請メッセージをコンテンツサーバー２００に転送する（Ｓ８０２）。
【００９７】
ノード情報登録要請メッセージにはクライアントのＩＰ住所、クライアントのポート番号、クライアントのキャッシュ情報が含まれ、前記キャッシュ情報にはキャッシュに貯蔵されているコンテンツの識別番号が含まれる。
【００９８】
コンテンツサーバー２００のメッシュ制御モジュール３００は、ノード情報登録要請メッセージを受信した後、メッシュ情報データベース３１２にノード情報登録要請メッセージに含まれるクライアントのＩＰ情報、ポート番号及びキャッシュ情報などを貯蔵する。
【００９９】
従って、クライアントの電源が投入されると、コンテンツサーバー２００はクライアントのＩＰと貯蔵しているコンテンツ情報を把握することができる。
【０１００】
ノード情報登録要請メッセージを受信したコンテンツサーバー２００はクライアントにＴＣＰ接続を実行する（Ｓ８０４）。
【０１０１】
ＴＣＰ接続が正常に完了されると、コンテンツサーバー２００はノードタイプチェック信号をクライアントに転送する（Ｓ８０６）。ノードタイプチェック信号にはノード識別番号が含まれ、ノードタイプチェック信号を受信したクライアントは、ノードタイプチェック応答信号をコンテンツサーバー２００に転送する（Ｓ８０８）。
【０１０２】
ノードタイプチェック応答信号を受信したコンテンツサーバー２００は、ノード登録手続が完了されたと判断し、クライアントとのＴＣＰ接続を解除する（Ｓ８１０）。
【０１０３】
図１１は、本発明の望ましい実施形態による、使用者プレイヤを実行しながらコンテンツを要請した場合の、プレイヤ制御モジュール４０６、エイジェント管理モジュール４００及びコンテンツサーバー２００の通信過程を示した手順図である。
【０１０４】
使用者がコンテンツの転送を要請すると、プレイヤ制御モジュール４０６は、プレイヤオープン要請信号をエイジェント管理モジュール４００に転送する（Ｓ９００）。プレイヤオープン要請信号には使用者が受信しようとするコンテンツ識別情報、使用者ＩＤ及び認証キー情報が含まれる。
【０１０５】
プレイヤオープン要請信号を受信したエイジェント管理モジュール４００は、コンテンツサーバー２００に認証要請信号を転送する（Ｓ９０２）。前記認証要請信号には使用者のＩＤ及び認証キー情報が含まれる。
【０１０６】
認証要請信号を受信したコンテンツサーバー２００の認証モジュール３０６は、受信した使用者ＩＤ及び認証キー情報を通じて、登録された使用者であり、コンテンツの受信による費用を支払ったか否かを判断し、認証応答信号をエイジェント管理モジュール４００に転送する（Ｓ９０４）。
【０１０７】
認証が正常に完了した場合、エイジェント管理モジュール４００に認証完了信号を転送して認証が完了したことを知らせる（Ｓ９０６）。
【０１０８】
エイジェント管理モジュール４００は、使用者が転送を要請したコンテンツに対するメタデータを要請するメタデータ要請信号をコンテンツサーバー２００に転送する（Ｓ９０８）。メタデータ要請信号にはクライアントの識別番号と要請するコンテンツの識別番号が含まれる。
【０１０９】
メタデータ要請信号を受信したコンテンツサーバーのメッシュ制御モジュール３００は、メタ情報データベース３１０を照会して使用者が要請したコンテンツのメタデータを抽出し、抽出したメタデータをエイジェント管理モジュール４００に転送する（Ｓ９１０）。
【０１１０】
メタデータを受信したエイジェント管理モジュール４００は、プレイヤ制御モジュール４０６に、プレイヤをオープンする用意が完了されたことを知らせるオープン完了信号を転送する（Ｓ９１２）。
【０１１１】
図１２は、本発明の望ましい一実施形態による、コンテンツサーバー２００からノード情報を受信して連結を設定する過程を示す手順図である。
【０１１２】
クライアントのキャッシュに使用者が要請したコンテンツデータが貯蔵されていない場合、通信エイジェント２１８はコンテンツサーバー２００にノードリスト要請信号を転送する（Ｓ１０００）。ノードリスト要請信号には要請したコンテンツの識別番号及び受信しようとするブロックのブロック番号が含まれている。
【０１１３】
ノードリスト要請情報を受信したコンテンツサーバー２００は、メッシュ情報データベース３１２を照会して要請したブロックを貯蔵しているノードのリストを抽出する（Ｓ１００２）。
【０１１４】
コンテンツサーバー２００は、前記抽出したノードリストを利用してノードリストセットを生成する（Ｓ１００４）。ノードリストセットにはコンテンツ識別番号、提供するノード個数及び各ノードのＩＰ住所、ポート番号及びノードタイプに対応する情報が含まれる。
【０１１５】
生成されたノードリストセットは、コンテンツサーバー２００によってクライアントの通信エイジェント２１８に転送される（Ｓ１００６）。
【０１１６】
ノードリストセットを受信した通信エイジェント２１８は、受信したノードリストのうち、予め設定された数のノードと連結を設定する（Ｓ１００８）。前述したように、連結制御モジュール４１２が各ノードと連結を設定する作業を実施する。
【０１１７】
通信エイジェント２１８は、予め設定された数の全てのノードと連結が設定されたか否かを判断し（Ｓ１０１０）、連結設定が完了されるとノードから要請したブロックに含まれるサブブロックデータ６０６を並列／分散方式により受信する（Ｓ１０１４）。
【０１１８】
予め設定された数の全てのノードと連結が設定されなければ、受信したノードリストの情報のうちの連結設定を意図しない他のノードと連結を設定し（Ｓ１０１２）、連結設定が完了されると要請したブロックに含まれるサブブロックデータ６０６を並列／分散方式により受信する（Ｓ１０１４）。
【０１１９】
図１３は、コンテンツを受信するクライアントがノードに連結を設定する過程を示す手順図である。
【０１２０】
図１３に示したように、まずクライアントの通信エイジェント２１８は、ノードにＴＣＰ接続を実行する（Ｓ１１００）。
【０１２１】
ＴＣＰ接続が完了すると、通信エイジェント２１８は受信者登録要請信号を転送する（Ｓ１１０２）。受信者登録要請信号にはノードに接続要請をするクライアントのＩＰ住所、ポート番号、ノードに要請しようとするコンテンツ情報が含まれる。
【０１２２】
受信者登録要請信号を受信したノードは、要請するコンテンツを貯蔵しているか否か及び接続を要請するクライアントと連結を設定することができる状態（例えば、予め設定された数以上のクライアントが接続を要請する場合に、接続を拒否する）であるか否かを判断する。
【０１２３】
判断の結果、要請したコンテンツを貯蔵していて連結を設定することができると、ノードは、受信者登録を完了し、受信者登録完了信号をクライアントに転送する（Ｓ１１０４）。
【０１２４】
図１４及び図１５は、コンテンツ再生に必要とされるブロックデータがプレイヤ制御モジュール４０６に提供される過程を示した手順図である。
【０１２５】
まず、プレイヤ制御モジュール４０６は、コンテンツ再生に必要とされるブロックデータをエイジェント管理モジュール４００に要請する（Ｓ１２００）。プレイヤ制御モジュール４０６がエイジェント管理モジュール４００に要請する信号にはブロック番号情報が含まれる。
【０１２６】
プレイヤ制御モジュール４０６からブロック要請を受けたエイジェント管理モジュール４００は、ブロック管理モジュール４１６に該当ブロックを要請する（Ｓ１２０２）。
【０１２７】
エイジェント管理モジュール４００から要請を受けたブロック管理モジュール４１６は、キャッシュ管理モジュール４０２に該当ブロックを要請する（Ｓ１２０４）。
【０１２８】
キャッシュ管理モジュール４０２は、ブロック管理モジュール４１６が要請したブロックデータがキャッシュに貯蔵されているか否かを判断する（Ｓ１２０６）。
【０１２９】
ブロック管理モジュール４１６が要請したブロックデータがキャッシュに貯蔵されている場合、キャッシュ管理モジュール４０２は該当ブロックをブロック管理モジュール４１６に提供する（Ｓ１２０８）。
【０１３０】
ブロック管理モジュール４１６が要請したブロックデータがキャッシュに貯蔵されていない場合、キャッシュ管理モジュール４０２は連結制御モジュール４１２に該当ブロックを受信することを要請する（Ｓ１２１０）。
【０１３１】
連結制御モジュール４１２は、ノード管理モジュール４１４と通信して該当ブロックを貯蔵しているノード情報を受信する（Ｓ１２１２）。ノード管理モジュール４１４がノード情報を受信する詳細な過程については、前述したので詳細な説明は省略する。
【０１３２】
ノード管理モジュール４１４からのノード情報を受信した連結制御モジュール４１２は、提供されたノードのうち、予め設定されたＮ個のノードと連結を設定し、並列／分散方式により該当ブロックのサブブロックデータを受信する（Ｓ１２１４）。
【０１３３】
サブブロック管理モジュール４１８は、複数のノードから要請したブロックの全てのサブブロックが受信されたか否かを判断する（Ｓ１２１６）。
【０１３４】
サブブロック受信に誤謬が発生した場合、連結制御モジュール４１２は、前述したように、新しい経路を設定したり、サブブロック受信が完了された他のノードから、受信に誤謬が発生したサブブロックを再受信する（Ｓ１２１８）。
【０１３５】
要請したブロックに含まれる全てのサブブロックが受信されると、サブブロック管理モジュール４１８は、受信したサブブロックをキャッシュ管理モジュール４０２に提供し、キャッシュ管理モジュール４０２はこれをキャッシュに貯蔵する（Ｓ１２２０）。キャッシュに貯蔵されるコンテンツデータは、スクランブリングされた状態で貯蔵されることが望ましい。
【０１３６】
キャッシュ管理モジュール４０２は、全てのサブブロックが受信されたブロックデータをブロック管理モジュール４１６に提供する（Ｓ１２２２）。図１４と図１５には、サブブロック管理モジュール４１８が受信したサブブロックをキャッシュ管理モジュール４０２に提供し、キャッシュ管理モジュール４０２がこれをブロック管理モジュール４１６に提供することが示されたが、サブブロック管理モジュール４１８がブロック管理モジュール４１６に直接サブブロックを提供することができるということは当業者において自明である。また、これ以外にも各プロセスを処理するモジュールが運営者の設定により変更されることができ、このような変更が本発明の範囲に属することは当業者において自明である。
【０１３７】
図１６は、本発明の望ましい一実施形態によるコンテンツ予約過程を示した手順図である。
【０１３８】
使用者がコンテンツの予約を要請すると、予約管理モジュール４０８は、使用者の予約情報をエイジェント管理モジュール４００に提供する（Ｓ１３００）。
【０１３９】
エイジェント管理モジュール４００は、コンテンツサーバー２００に予約要請信号を転送する（Ｓ１３０２）。予約要請情報には予約を要請するクライアントの情報及び予約しようとするコンテンツ識別番号が含まれる。
【０１４０】
予約要請信号を受信したコンテンツサーバー２００は、予約情報セットを、予約を要請したクライアントのエイジェント管理モジュール４００に転送する（Ｓ１３０４）。予約情報セットには予約を要請したコンテンツ識別番号、コンテンツの全てブロック数、必要な帯域幅、予約リンクの大きさに対応する情報が含まれる。
【０１４１】
予約情報セットを受信したエイジェント管理モジュール４００は、予約管理モジュール４０８に予約情報セットを提供する（Ｓ１３０６）。
【０１４２】
予約管理モジュール４０８は、プレイヤ制御モジュール４０６に予約コンテンツに関する情報を提供する（Ｓ１３０８）。
【０１４３】
プレイヤ制御モジュール４０６は、前述したコンテンツ転送手続のようにエイジェント管理モジュール４００にブロック情報を要請し、連結制御モジュール４１２に必要とするブロックを貯蔵しているノードへの連結を設定し、並列／分散方式によりサブブロックを受信する手続が進行される（Ｓ１３１０）。
【０１４４】
コンテンツ転送手続は、予約を要請したコンテンツの全てのサブブロックが受信されるまで自動的に実行され、受信されるブロックデータはキャッシュに貯蔵される（Ｓ１３１２）。
【０１４５】
以上、本発明の実施形態によって詳細に説明したが、本発明はこれに限定されず、本発明が属する技術分野において通常の知識を有するものであれば本発明の思想と精神を離れることなく、本発明を変更できる。
【０１４６】
【発明の効果】
本発明によるコンテンツ提供方法及びシステムによると、多数のクライアントがサーバーにコンテンツを要請しても、サーバーの負荷を増大させることなくコンテンツを効果的に転送することができるという長所がある。
【０１４７】
また、本発明によると、コンテンツを要請する使用者が多くなるほどさらに速い速度でコンテンツを提供することができるという長所がある。
【０１４８】
これと共に、並列／分散方式によりコンテンツが提供されるために、いずれか一つのノードとの接続が切れるとしても、安定してコンテンツを提供することができるという長所がある。
【図面の簡単な説明】
【図１】従来のコンテンツ転送システムの一例を示した図面である。
【図２】また他の従来のコンテンツ転送システムの構成を示した図面である。
【図３】従来のＣＤＮコンテンツ転送システムの構成を示した図面である。
【図４】本発明の望ましい一実施形態によるコンテンツ転送システムの網構成図を示した図面である。
【図５】本発明の望ましい一実施形態によるコンテンツサーバーのモジュール構成及びコンテンツサーバーと結合されたデータベースを示した図面である。
【図６】本発明の望ましい一実施形態による通信エイジェントのモジュール構成を示したブロック図である。
【図７】連結制御モジュールで並列／分散方式によりコンテンツデータを受信する方法を示した概念図である。
【図８】コンテンツサーバーとコンテンツを要請したクライアント間において、またはノードとコンテンツを要請したクライアント間において送受信されるコンテンツデータのフォーマットを示した図面である。
【図９】通信エイジェントの連結制御モジュールが並列／分散方式のデータ受信を制御する過程を示した手順図である。
【図１０】本発明の望ましい一実施形態による、クライアントの電源が投入された時、通信エイジェントがコンテンツサーバーにクライアントを登録する過程を示す手順図である。
【図１１】本発明の望ましい実施形態による、使用者がプレイヤを実行しながらコンテンツを要請した場合のプレイヤ制御モジュール、エイジェント管理モジュール及びコンテンツサーバー間の通信過程を示した手順図である。
【図１２】本発明の望ましい一実施形態による、コンテンツサーバーからノード情報を受信して連結を設定する過程を示す手順図である。
【図１３】本発明の望ましい一実施形態による、コンテンツを受信するクライアントがノードに連結を設定する過程を示す手順図である。
【図１４】コンテンツ再生に必要とするブロックデータがプレイヤ制御モジュールに提供される過程を示す手順図である。
【図１５】コンテンツ再生に必要とするブロックデータがプレイヤ制御モジュールに提供される過程を示す手順図である。
【図１６】本発明の望ましい一実施形態によるコンテンツ予約過程を示した手順図である。
【符号の説明】
２００　　コンテンツサーバー
２０２〜２１６　　クライアント
２１８　　通信エイジェント
３００　　メッシュ制御モジュール
３０２　　コンテンツ転送モジュール
３０４　　ＦＥＣエンコーディングモジュール
３０６　　認証モジュール
３０８　　使用者データベース
３１０　　メタ情報データベース
３１２　　メッシュ情報データベース
４００　　エイジェント管理モジュール
４０２　　キャッシュ管理モジュール
４０４　　メッシュ管理モジュール
４０６　　プレイヤ制御モジュール
４０８　　予約管理モジュール
４１０　　ＦＥＣデコーディングモジュール
４１２　　連結制御モジュール
４１４　　ノード管理モジュール
４１６　　ブロック管理モジュール
４１８　　サブブロック管理モジュール
５００，５０２，５０４　　ノード１，２，３
６００　　リソース識別者
６０２　　ブロック番号
６０４　　サブブロック番号
６０６　　サブブロックデータ
【図１】
2004133877.tif 000003
【図２】
2004133877.tif 000004
【図３】
2004133877.tif 000005
【図４】
2004133877.tif 000006
【図５】
2004133877.tif 000007
【図６】
2004133877.tif 000008
【図７】
2004133877.tif 000009
【図８】
2004133877.tif 000010
【図９】
2004133877.tif 000011
【図１０】
2004133877.tif 000012
【図１１】
2004133877.tif 000013
【図１２】
2004133877.tif 000014
【図１３】
2004133877.tif 000015
【図１４】
2004133877.tif 000016
【図１５】
2004133877.tif 000017
【図１６】
2004133877.tif 000018