(57)【要約】【課題】データ転送サーバが予め定められたネットワーク構成に従って、データのリクエストおよびデータを中継するデータ転送システムにおける個々のデータ転送サーバのリソースを無駄に使用しないようにすることのできる構成および方法の提供。【解決手段】データのリクエストおよびデータを中継するネットワークに配置されたデータ転送サーバが、他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておき、前記論理ネットワークに参加したデータ転送サーバ間で、前記リクエストに基づくデータの転送とキャッシュを行う。【選択図】図１
2011118593.tif 000002
【特許請求の範囲】
【請求項１】
データのリクエストおよびデータを中継するネットワークに配置され、
他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておき、
前記論理ネットワークに参加したデータ転送サーバ間で、前記リクエストに基づくデータの転送とキャッシュを行うデータ転送サーバ。
【請求項２】
他のデータ転送サーバからデータのリクエストを受信した際に、当該データをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、前記データのリクエストに含まれるアドレス情報を保存するとともに、前記リクエストに自身のアドレス情報を格納することにより、当該データをキャッシュするサーバの論理ネットワークに参加し、
前記リクエストを受信した際に保存したアドレス情報を用いてデータの転送を行う請求項１のデータ転送サーバ。
【請求項３】
他のデータ転送サーバからデータのリクエストを受信した際に、当該データをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、前記リクエストに自身のアドレス情報を追加することにより、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加し、
前記リクエストに含まれるアドレス情報を用いてデータの転送を行う請求項１のデータ転送サーバ。
【請求項４】
受信したリクエストにて要求されているデータを保持している場合、前記リクエストに格納されているアドレス情報を用いて、前記リクエストされているデータを送信する請求項２または３に記載のデータ転送サーバ。
【請求項５】
ネットワーク情報を参照してデータを依頼するリクエストを送信するリクエスト処理部と、
リクエストされているデータをキャッシュするか否かを判断するキャッシュ判断部と、
受信したデータを転送するデータ転送部と、
を備える請求項１から４いずれか一のデータ転送サーバ。
【請求項６】
前記データ転送部は、前記リクエストに格納されている前記アドレス情報を用いて、データ転送サーバに前記データを送信する請求項５に記載のデータ転送サーバ。
【請求項７】
さらに、前記データのリクエストに含まれるアドレス情報と、データと、を対応付けて保持するデータ転送テーブルを備える請求項２のデータ転送サーバ。
【請求項８】
前記データ転送部は、前記データ転送テーブルに格納されているアドレス情報を用いて、受信したデータを転送する請求項７のデータ転送サーバ。
【請求項９】
前記キャッシュ判断部にてリクエストされているデータをキャッシュしないと判断した場合、次のデータ転送サーバに対して前記リクエストをそのまま送信する請求項１から８いずれか一のデータ転送サーバ。
【請求項１０】
前記キャッシュ判断部にてリクエストされているデータをキャッシュしないと判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークから離脱する処理を実行する請求項１から８いずれか一のデータ転送サーバ。
【請求項１１】
前記論理ネットワークは、コンテンツデリバリーネットワークを構成する論理ツリー構造の一部である請求項１から１０いずれか一のデータ転送サーバ。
【請求項１２】
請求項１乃至１１のいずれか一に記載のデータ転送サーバを複数含んで構成されるデータ転送システム。
【請求項１３】
データのリクエストおよびデータを中継するネットワークに配置されたデータ転送サーバが、
他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておくステップと、
前記論理ネットワークに参加したデータ転送サーバ間で、前記リクエストに基づくデータの転送とキャッシュを行うステップと、を含むデータ転送方法。
【請求項１４】
データのリクエストおよびデータを中継するネットワークに配置されたデータ転送サーバに実行させるプログラムであって、
他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておく処理と、
前記論理ネットワークに参加したデータ転送サーバから前記リクエストに基づくデータを受信した際に、前記データのキャッシュと、前記論理ネットワークに参加した他のデータ転送サーバへの前記データの転送を行う処理と、を前記データ転送サーバに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送サーバ、データ転送システム、データ転送方法およびプログラムに関し、特に、キャッシュ機能を備えるデータ転送サーバ、データ転送システム、データ転送方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１に、キャッシュ機能を備えるサーバであって、グループ内で、それぞれの負荷情報、キャッシュ情報等を通知し合う構成を持つものが開示されている。同文献によると、これらのサーバは、ＰＣから共通アドレスを用いたＵＲＬ指定による第１要求を受信すると、グループでのキャッシュ状態や負荷状態に応じて処理を受け付ける。該当サーバは、最新のコンテンツデータのキャッシュが無い場合は第２要求及び第２応答によりＷｅｂサーバから取得しキャッシュしてＰＣへ第１応答として送信する。同文献によると、上記構成により、全体を管理する装置等を必要とせずに、複数のサーバでの負荷分散・均衡化を図ることができるとされている。
【０００３】
特許文献２には、クライアント端末とサーバ装置の間に設けられた通信中継装置であって、クライアント端末からの要求に基づき、メソッドチェック、ＵＲＩチェックを経て、キャッシュ可かキャッシュ不可かを判断する輻輳制御方法が開示されている。
【０００４】
その他、本発明の背景技術として、ＣＤＮ（Ｃｏｎｔｅｎｔｓ  Ｄｅｌｉｖｅｒｙ  Ｎｅｔｗｏｒｋ、コンテンツデリバリーネットワーク）がある。ＣＤＮは、カバーするユーザ数あるいは地理的範囲などに応じて階層的な論理ツリー構成を採り、ユーザからの視聴リクエストに応じて適切なコンテンツ配備を行うことにより、高速なレスポンス性、効率的なネットワーク使用などを実現している。
【０００５】
図１６は階層構成を持つＣＤＮの概略構成を表した図である。図１６の例では、カバーするユーザ数の規模で首都圏のＤＣ（Ｄａｔａ  Ｃｅｎｔｅｒ）から地方中堅都市のＤＣまで３階層のＴｉｅｒ構成をとっているが、階層の構成の仕方や階層数はこの限りではない。
【０００６】
図１６のようなＣＤＮを利用する各ユーザは最寄ＤＣにアクセスし、コンテンツの要求を行う。もし最寄ＤＣに所望のコンテンツがない場合は、他のＤＣからコンテンツを取得してくる。この際、各ＤＣで論理ネットワークを構築し、転送の途中経路のＤＣにコンテンツをキャッシュすることで、コンテンツが複数のＤＣに複製される。これにより、地理的に分散したユーザからの大量アクセスを、分散した複数のＤＣで処理することができ、負荷分散やユーザのコンテンツ取得レスポンスの向上が図られる。
【０００７】
コンテンツを他のＤＣから取得し、転送途中経路のＤＣにキャッシュする方法はいくつか考えられる。最も単純な方法は、途中経路のＤＣすべてにキャッシュするという方法である。さらに、より効率的なリソースの使用を可能とする方法として、コンテンツ人気度に応じたキャッシュ利用率やサーバの負荷などを考慮した複雑なキャッシュ方法も考えられる。このように複雑なキャッシュ方法を行う場合、コンテンツ転送時に動的にキャッシュするＤＣを決定することが想定される。例えば、コンテンツ転送時にコンテンツの人気に応じてキャッシュするか否かを判断する場合、コンテンツ毎でキャッシュされるＤＣが異なる。
【０００８】
コンテンツ転送毎に途中経路のＤＣで動的にキャッシュする単純な方法としては、転送するコンテンツを途中経路のＤＣすべてに経由させ、それぞれのＤＣでキャッシュするかを判断する方法が挙げられる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−３０１７６９号公報
【特許文献２】特開２００９−９５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記した各方法は、ＤＣ内のサーバのＣＰＵやメモリ、ネットワーク帯域などのリソースを無駄に使用するという問題点がある。その理由は、途中経路のＤＣすべてにデータを経由させ、ＤＣ内のサーバがデータを受信してからキャッシュの判断を行うためである。例えば、上記したコンテンツ転送毎に途中経路のＤＣで動的にキャッシュするか否かを判断させる方法を採った場合であっても、あるＤＣがコンテンツをキャッシュしないと判断したとき、コンテンツはそのまま次のＤＣに転送されるため、それに伴い前記「判断」に要した当該ＤＣ内のサーバのＣＰＵやメモリ、ネットワーク帯域などのリソースは無駄に使用されることになる。特に映像などコンテンツサイズが大きい場合、影響が大きい。なお、上記問題点は、ＤＣに限ったことではなく、転送データをキャッシュするキャッシュ機能を備えるデータ転送サーバ一般に当てはまる。
【００１１】
なお、特許文献１は、上記したサーバの負荷を考慮したキャッシュを行う例である。また、特許文献２には、実施例として、レイヤ７負荷分散装置を備え、クライアント端末からの要求を複数のＷｅｂ通信中継装置に振り分ける構成が開示されているが、これらＷｅｂ通信中継装置は、あくまで負荷分散のために並列設置されているのであり、それぞれ自身に割り当てられたユーザのために当該データを提供するものではない。また、クライアント端末からの要求は、レイヤ７負荷分散装置により振り分けられてしまうため、指定されていないＷｅｂ通信中継装置が当該データをキャッシュすることも無い。
【００１２】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記ＤＣの例のようにそれぞれのデータ転送サーバが予め定められたネットワーク構成に従って、データのリクエストおよびデータを中継するデータ転送システムにおける個々のデータ転送サーバのリソースを無駄に使用しないようにすることのできる構成および方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の視点によれば、データのリクエストおよびデータを中継するネットワークに配置され、他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておき、前記論理ネットワークに参加したデータ転送サーバ間で、前記リクエストに基づくデータの転送とキャッシュを行うデータ転送サーバが提供される。
【００１４】
本発明の第２の視点によれば、上記したデータ転送サーバを複数含んで構成されるデータ転送システムが提供される。
【００１５】
本発明の第３の視点によれば、データのリクエストおよびデータを中継するネットワークに配置されたデータ転送サーバが、他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておくステップと、前記論理ネットワークに参加したデータ転送サーバ間で、前記リクエストに基づくデータの転送とキャッシュを行うステップとを含むデータ転送方法が提供される。なお。本方法は、データのリクエストおよびデータを中継するネットワークに配置されたデータ転送サーバという、特定の機械に結びつけられている。
【００１６】
本発明の第４の視点によれば、データのリクエストおよびデータを中継するネットワークに配置されたデータ転送サーバに実行させるプログラムであって、他のデータ転送サーバからデータのリクエストを受信した際に、リクエストされているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理を実行しておく処理と、前記論理ネットワークに参加したデータ転送サーバから前記リクエストに基づくデータを受信した際に、前記データのキャッシュと、前記論理ネットワークに参加した他のデータ転送サーバへの前記データの転送を行う処理と、を前記データ転送サーバに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１７】
本発明によれば、リクエストに対応するデータをキャッシュしないデータ転送サーバのリソースの無駄な使用を回避できることにある。その理由はリクエスト時にキャッシュするか否かを事前に判断し、データ転送専用の論理ネットワークを構築し、データ転送時は、その論理ネットワークを利用することでキャッシュしないサーバを経由せずに転送するためである。
【図面の簡単な説明】
【００１８】
【図１】本発明の概要を説明するための図である。
【図２】本発明の第１の実施形態に係るデータ転送サーバの構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るデータ転送サーバが送信するリクエストの構成を示す図である。
【図４】本発明の第１の実施形態に係るデータ転送サーバが送信するデータの構成を示す図である。
【図５】本発明の第１の実施形態に係るデータ転送サーバが保持するデータ転送テーブルの構成を示す図である。
【図６】本発明の第１の実施形態に係るデータ転送サーバがリクエストを送信する際の動作を示す流れ図である。
【図７】本発明の第１の実施形態に係るデータ転送サーバがリクエストを受信した際の動作を示す流れ図である。
【図８】本発明の第１の実施形態に係るデータ転送サーバがデータを転送する際の動作を示す流れ図である。
【図９】本発明の第２の実施形態に係るデータ転送サーバの構成を示すブロック図である。
【図１０】本発明の第２の実施形態に係るデータ転送サーバが送信するリクエストの構成を示す図である。
【図１１】本発明の第２の実施形態に係るデータ転送サーバが送信するデータの構成を示す図である。
【図１２】本発明の第１の実施形態に係るデータ転送サーバがリクエストを受信した際の動作を示す流れ図である。
【図１３】本発明の第１の実施形態に係るデータ転送サーバがデータを転送する際の動作を示す流れ図である。
【図１４】本発明の具体的な動作を説明するためのネットワーク構成を示す図である。
【図１５】図１４のネットワーク構成の具体的動作を説明するための図である。
【図１６】階層構造を持つコンテンツデリバリーネットワーク（ＣＤＮ）の構成例である。
【発明を実施するための形態】
【００１９】
はじめに、本発明の概要について図１を参照して説明する。図１の上段のデータ転送サーバおよびルータ間の実線は物理的なネットワーク接続を示し、破線はデータのリクエストおよびデータを中継する論理的なネットワークを示している。図１の下段は、データ転送サーバ１０１ａからデータ転送サーバ１０１ｄへとデータのリクエストを送出した場合の動作シーケンスの例を示している。
【００２０】
例えば、データ転送サーバ１０１ａが図示省略するクライアントからデータ転送サーバ１０１ｄが保持するデータのリクエストを受け付けた場合を考える。データ転送サーバ１０１ａから前記リクエストを受け取ったデータ転送サーバ１０１ｂ、１０１ｃは、当該リクエストを次のノードに中継する際に、当該リクエストにて要求されているデータをキャッシュするか否かを判断し、当該データをキャッシュすると判断した場合、当該データをキャッシュするデータ転送サーバの論理ネットワークに参加する処理（例えば、当該論理ネットワークを構成するサーバリスト・アドレスリストへの自身の追加等）を実行しておく。図１の例では、データ転送サーバ１０１ｂがキャッシュすると判断し、データ転送サーバ１０１ｃはキャッシュしないと判断した例である。その後、前記リクエストに基づくデータは、データ転送サーバ１０１ｄから、論理ネットワークに参加したデータ転送サーバ１０１ｂを経由してデータ転送サーバ１０１ａへと転送される。これにより、データ転送時には、キャッシュしないデータ転送サーバ１０１ｃにリソースを消費させないようにすることできる。
【００２１】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態に係るデータ転送サーバの構成を示すブロック図である。
【００２２】
図２を参照すると、本発明の第１の実施形態のデータ転送サーバ（以下、特に断らない場合「サーバ」と略称する。）１０１は、伝送路１００を介して他のサーバと接続され、データの保持、データやリクエストの送受信および転送を行う。なお、図２には、１台のサーバを示しているが、台数の制限はない。また、サーバ間の接続構成は、図１４に示すようなものであってもよいし、図１６に示したＣＤＮのような階層構成を持つものであってもよい。
【００２３】
図２のサーバ１０１は、送受信部１０と、リクエスト処理部１１と、データ転送部１２と、論理ネットワーク情報管理部１３と、キャッシュ判断部１４と、データ保持部１５と、データ転送テーブル１６とを含む。これらはそれぞれ次のように動作する。
【００２４】
送受信部１０は、要求するデータの転送を依頼するリクエストやデータの送受信を行う。
【００２５】
図３は、個々のサーバ１０１の送受信部１０が送信するリクエストの構成を示す図である。図３の例では、データを保持するサーバの識別子と、転送を要求するデータの識別子と、当該データの転送先となるサーバの物理アドレスとが含まれている。また、サーバの識別子は論理ネットワーク上で一意に識別するものである。
【００２６】
図４は、個々のサーバ１０１の送受信部１０が送信するデータの構成を示す図である。図４の例では、データの識別子とデータ本体が対応付けられた構成となっている。例えば、リクエストを受信したサーバは、データ保持部１５から該当する識別子を持つデータを探し出すことができる。
【００２７】
リクエスト処理部１１は、受信したリクエストの解析および送信するリクエストの作成を行う。例えば、図３のようなリクエストを受信したサーバのリクエスト処理部１１は、リクエスト中のデータ識別子を参照し自身がデータを保持しているか否かを判断し、自身が保持していなければ、キャッシュを行うか否かをキャッシュ判定部１４に依頼するとともに、論理ネットワーク情報管理部１３に格納された論理ネットワーク情報を参照して次の宛先となるサーバに当該リクエストを転送する動作を行う。また前記リクエストの転送の際に、キャッシュ判定部１４からキャッシュを行うとの判断結果を受け取っている場合、リクエスト処理部１１は、リクエストの「転送先サーバ物理アドレス」フィールドの値を自身の物理アドレスに書き換える動作を行う。
【００２８】
データ転送部１２は、リクエストされたデータを要求元のサーバに向けて送信および転送を行う。具体的には、データ転送部１２は、データ転送テーブル１６を参照して、当該データをキャッシュすると判定したサーバに宛てて当該データを転送する。
【００２９】
データ転送テーブル１６はリクエストを受信し、データをキャッシュすると判断した場合、データが転送されるまで、当該データの識別子と次に転送するサーバの物理アドレスを保持しておくテーブルである。
【００３０】
図５は、データ転送テーブル１６の構成を示す図である。例えば、あるサーバからデータを受信すると、データ転送部１２は、データ転送テーブル１６から前記受信したデータの識別子に対応するサーバの物理アドレスに宛てて当該データを送信する。
【００３１】
論理ネットワーク情報管理部１３は、サーバ１０１同士の論理ネットワークおよびオーバレイネットワーク構成の情報を管理する。
【００３２】
キャッシュ判断部１４はリクエストされているデータをキャッシュするか否かを判断する。キャッシュの判断方法は、種々の方法を採ることができる。例えば、確率で決定する、負荷に応じて決定する、またサーバをクラウドサービスなどからレンタルしている場合、その使用料金で判断するなどの方法が考えられる。その他、データに含まれるメタデータを用いて自身がキャッシュすべきか否かを判断するなど、特に制限されるものではない。
【００３３】
データ保持部１５は、図４に例示した構成を持つデータを保持する。なお、データ保持部１５としては、ブロックアクセスやファイルアクセスストレージなどを用いることができ、特に制限はない。
【００３４】
続いて、本実施形態の全体の動作について詳細に説明する。以下、サーバがリクエスト送信元となる「リクエスト送信時」、サーバがリクエストを受信した際の「リクエスト受信時」、サーバがデータを転送する際の「データ転送時」について、図６、図７、図８を用いて説明する。
【００３５】
［リクエスト送信時］
図６は、サーバ１０１が、クライアントから要求されているデータを保持しておらず、他のサーバ（以下、「他サーバ」と記述する）にデータを要求する場合の動作を表した流れ図である。
【００３６】
まず、リクエスト処理部１１は、要求するデータの識別子とそのデータを保持しているサーバの識別子をリクエストに格納する（ステップＳ１００）。なお、データの識別子およびデータを保持しているサーバの識別子は何からの手段（ディレクトリサービスなど）から得ることを前提とする。
【００３７】
次に、リクエスト処理部１１は、リクエストの転送先サーバ物理アドレスフィールド（図３参照）に自身の物理アドレスを格納する（ステップＳ１０１）。物理アドレスは物理的にネットワーク上のサーバの位置を表すアドレスであり、例えばＩＰアドレスが好例である。また、ポート番号を通知する必要がある場合は、ポート番号もリクエストに格納する。
【００３８】
そして論理ネットワーク上の途中経路のサーバにリクエストを転送するため、リクエスト処理部１１は、論理ネットワーク情報管理部１３を参照して、送受信部１０に対して当該リクエストの送信を指示する（ステップＳ１０２）。
【００３９】
［リクエスト受信時］
図７は、サーバ１０１がリクエストを受信した場合の動作を表した流れ図である。まず、送受信部１０を通してリクエストを受信すると（ステップＳ２００）、サーバ１０１のリクエスト処理部１１は、データ転送部１２を通じてデータ保持部１５を参照してリクエストされているデータと一致するデータ識別子を持つデータを保持しているか否かを判断する（ステップＳ２０１）。
【００４０】
リクエストされているデータと一致するデータ識別子を持つデータを保持している場合（ステップＳ２０１のＹｅｓ）、サーバ１０１のリクエスト処理部１１は、データ転送部１２を通じて該当するデータを読み出し（ステップＳ２０６）、当該リクエストの転送先サーバ物理アドレスフィールド（図３参照）に格納されている物理アドレスに宛てて当該データを送信する（ステップＳ２０７）。前記データを受け取ったサーバは後記する図８のフローに従ってデータのキャッシュ処理と転送処理を実行することになる。
【００４１】
一方、リクエストされているデータと一致するデータ識別子を持つデータを保持していない場合（ステップＳ２０１のＮｏ）、サーバ１０１のリクエスト処理部１１は、キャッシュ判断部１４に、リクエスト対象のデータをキャッシュするか否かの判断を行わせる（ステップＳ２０２）。
【００４２】
ここで、キャッシュ判断部１４がリクエスト対象のデータをキャッシュすると判断した場合（ステップＳ２０２のＹｅｓ）、サーバ１０１のリクエスト処理部１１は、データ転送テーブル１６にリクエストに格納されているデータ識別子と転送先サーバ物理アドレスの組を格納する（ステップＳ２０３）。次に、サーバ１０１のリクエスト処理部１１は、リクエストに転送先サーバ物理アドレスフィールドの値を自身の物理アドレスに書き換えた後（ステップＳ２０４）、論理ネットワーク情報管理部１３を参照して、送受信部１０に対して前記書き換え後のリクエストの送信を指示する（ステップＳ２０５）。
【００４３】
一方、キャッシュ判断部１４がリクエスト対象のデータをキャッシュしないと判断した場合（ステップＳ２０２のＮｏ）、サーバ１０１のリクエスト処理部１１は、そのままリクエストを論理ネットワーク上の次のサーバに送信する（ステップＳ２０５）。上記キャッシュしないと判断したサーバにおけるステップＳ２０３、Ｓ２０４の処理の省略は、データ転送時の論理ネットワーク経路から自身を外すことを意味する。
【００４４】
［データ転送時］
図８は、サーバ１０１がデータを受信した場合の動作を表した流れ図である。まず、送受信部１０を通してデータを受信すると（ステップＳ３００）、サーバ１０１のデータ転送部１２は、データ保持部１５にデータを格納する（キャッシュする）。（ステップＳ３０１）。
【００４５】
次に、サーバ１０１のデータ転送部１２は、データ転送テーブル１６を参照し、当該データのデータ識別子に対応する転送先サーバ物理アドレスのサーバに宛ててデータを転送する（ステップＳ３０２）。次に、サーバ１０１のデータ転送部１２は、データ転送テーブル１６のデータ識別子に対応する行を削除する（ステップＳ３０３）。
【００４６】
その後は、前記データの転送を受けたサーバ、つまり自身のキャッシュ判断部１４にてキャッシュをすると判断したサーバにて、上記ステップＳ３０１〜Ｓ３０２の処理が繰り返される。
【００４７】
以上のように、本実施形態では、キャッシュしないサーバにおけるリソースの無駄な使用を回避することが可能になる。その理由はリクエスト時にキャッシュするサーバのアドレスを通知し、キャッシュすると判断したサーバ間でデータ転送専用の論理ネットワーク経路を構築し、データ転送時はその論理ネットワーク経路を利用することでキャッシュしないサーバを経由せずに転送するためである。
【００４８】
また、本実施の形態の副次的な効果として、途中経路のサーバにキャッシュしないようにすることで他サーバから高速にデータを取得できるという効果も得られる。その理由は、データ転送時にキャッシュしないサーバを経由せずに転送するよう構成したので、通信に掛かる時間が少なくなるためである。
【００４９】
［第２の実施形態］
続いて、本発明の第２の実施形態について図面を参照して詳細に説明する。上記した第１の実施形態では、各サーバにデータ転送テーブルを保持させて、キャッシュすると判断したサーバの物理アドレスを格納させることにより、データ転送時の論理ネットワーク経路を構築したが、第２の実施形態は、リクエストおよびデータにデータ転送時の論理ネットワーク経路情報をそれぞれ格納する形態としたものである。
【００５０】
図９は、本発明の第２の実施形態に係るデータ転送サーバの構成を示すブロック図である。図９に示すとおり、本実施形態のデータ転送サーバ２０１と、本発明の第１の実施形態のデータ転送サーバ１０１との構成上の相違点は、データ転送テーブル１６を持たない構成となっている点である。
【００５１】
図１０は、個々のサーバ２０１の送受信部１０が送信するリクエストの構成を示す図である。図１０の例では、データを保持するサーバの識別子と転送を要求するデータの識別子に加え、当該データの転送先となるサーバの物理アドレスを順次追加できる構成となっている。前記順次追加されたサーバの物理アドレスがデータ転送時の論理ネットワーク経路として使用される。
【００５２】
図１１は、個々のサーバ２０１の送受信部１０が送信するデータの構成を示す図である。図１１の例では、データの識別子とデータ本体に加えて、図１０に示したリクエストから取り出されたサーバの物理アドレスが対応付けられた構成となっている。例えば、リクエストされたデータを保持するサーバは、データ保持部１５から該当する識別子を持つデータとともに、当該データの転送時の論理ネットワーク経路を特定することができる。
【００５３】
続いて、本実施形態の全体の動作について詳細に説明する。以下、サーバがリクエスト送信元となる「リクエスト送信時」、サーバがリクエストを受信した際の「リクエスト受信時」、サーバがデータを転送する際の「データ転送時」について、図２、図１２、図１３を用いて説明する。
【００５４】
［リクエスト送信時］
本実施形態のリクエスト送信時の動作は第１の実施形態の動作と同じである（図２参照）。
【００５５】
［リクエスト受信時］
図１２は、サーバ２０１がリクエストを受信した場合の動作を表した流れ図である。図７に示した第１の実施形態との相違点は、自身がデータを保持しておらず、かつ、当該データをキャッシュすると判断した場合において（ステップＳ２０２のＹｅｓ）、図７のステップＳ２０３、Ｓ２０４の代わりに、リクエストの物理アドレス格納領域（図１０参照）に自身の物理アドレスを追加するという動作が行われる（ステップＳ２０４Ａ）。なお、物理アドレスの追加は、追加された順番が分かるように追加されていればよく、その方法に制限はない。例えば、追加する場合は必ず最後尾に追加する方法が挙げられる。
【００５６】
図７に示した第１の実施形態との第２の相違点は、自身がデータを保持している場合において（ステップＳ２０１のＹｅｓ）、リクエストされているデータを読み出した後、リクエストに含まれている物理アドレス群を、当該読み出したデータの物理アドレス格納領域（図１１参照）に格納する点と（ステップＳ２０７Ａ）、前記物理アドレス群の中で最近に追加されたアドレス、論理ネットワーク経路の始点のサーバにデータを送信する点である（ステップＳ２０８Ａ）。
【００５７】
［データ転送時］
図１３は、サーバ２０１がデータを受信した場合の動作を表した流れ図である。図８に示した第１の実施形態との相違点は、データ転送テーブルを用いる代わりに、データに格納されているサーバ２０１の物理アドレスの次の物理アドレスを取り出して当該データを転送する点である（ステップＳ３０２Ａ）。
【００５８】
以上のように、本発明の第２の実施形態によれば、第１の実施形態と比較して、データ転送テーブル１５を省略できることに加えて、データ転送時のサーバ障害に対応できるという効果が奏される。その理由は、転送されるサーバすべての情報、すなわち、キャッシュすると判断したサーバによって構成された論理ネットワーク経路がデータ自体に格納されており、あるサーバで障害が発生したとしても、そのサーバのさらに次のサーバに転送することが可能であるためである。
【００５９】
なお、上記した実施形態では、サーバ２０１は、データに格納されているサーバ２０１の物理アドレスの次の物理アドレスを取り出して当該データを転送するものとして説明したが、各サーバ２０１が転送を行う前に、当該データから前記転送に用いる物理アドレスを削除するステップを追加することも可能である。このようにすれば、各サーバはデータの特定の箇所（物理アドレス群の先頭または末尾）を参照してデータを転送すればよくなる上、データに添付される物理アドレスを減らしていくことが可能になる。
【００６０】
［具体的な動作例］
続いて、図１４に示す簡単なネットワーク構成を用いて本発明の具体的な動作を説明する。
【００６１】
図１４の実線は物理的なネットワーク接続を意味している。図１４の破線はサーバ間の論理ネットワークを意味しており、ここでは１層の直線の論理ネットワークを想定する。なお、論理ネットワークは、他にツリー状、リング状、メッシュ状が考えられ、本発明では特に限定しない。
【００６２】
各サーバには、論理ネットワーク上の識別子（ＩＤ）が与えられている。論理ネットワーク上ではこのＩＤを元に経路を決定する。また、各サーバの物理アドレスとしてＩＰアドレスを想定し、それぞれＩＤ１のサーバ１０１ａは１．１．１．１、ＩＤ２のサーバ１０１ｂは２．２．２．２、ＩＤ３のサーバ１０１ｃは３．３．３．３、ＩＤ４のサーバ１０１ｄは４．４．４．４というＩＰアドレスが設定されているものとする。なお、ポート番号の記述は省略する。
【００６３】
このとき、各サーバ１０１ａ〜１０１ｂの論理ネットワーク管理情報部１３では論理ネットワーク上のＩＤと物理アドレスの対応を管理しているとする。例えば、ＩＤ２のサーバ１０１ｂは、ＩＤ１のサーバ１０１ａのＩＰアドレスは１．１．１．１であり、ＩＤ３のサーバ１０１ｃのＩＰアドレスは３．３．３．３であるという情報を保持している。
【００６４】
ここで例えば、ＩＤ１のサーバ１０１ａがＩＤ４のサーバ１０１ｄが保持しているデータを、論理ネットワーク上の途中経路であるＩＤ２、ＩＤ３を経由してリクエストする場合を想定する。ここでは、ＩＤ２のサーバ１０１ｂはキャッシュし、ＩＤ３のサーバ１０１ｃはキャッシュしないと判断することにする。
【００６５】
まずＩＤ１のサーバ１０１ａがクライアントから識別子９９９のデータの要求を受ける。ＩＤ１のサーバ１０１ａは外部のディレクトリサービスや自身が保持しているデータベースなどから要求されるデータはＩＤ４のサーバ１０１ｄが保持していることを知る。
【００６６】
そして、ＩＤ１のサーバ１０１ａは、図１５に示すように、入手した情報を元にリクエストを作成し、そのリクエストに自身のＩＰアドレスである１．１．１．１を格納する。ＩＤ１のサーバ１０１ａは、前記作成したリクエストをＩＤ２のサーバ１０１ｂに送信する。
【００６７】
前記リクエストを受信したＩＤ２のサーバ１０１ｂは、図１５に示すように、識別子９９９のデータをキャッシュすると判断し、データ転送テーブル１６に識別子９９９とそれに対応する値として、リクエストに格納されているＩＰアドレス１．１．１．１を格納する。
【００６８】
そして、ＩＤ２のサーバ１０１ｂは、リクエストの転送先サーバ物理アドレス１．１．１．１を自身のＩＰアドレス２．２．２．２に更新して、ＩＤ３のサーバ１０１ｃにリクエストを送信する。
【００６９】
ＩＤ３のサーバ１０１ｃは、キャッシュしないと判断したので、リクエストをそのままＩＤ４のサーバ１０１ｄに転送する。
【００７０】
リクエストを受信したＩＤ４のサーバ１０１ｄは識別子９９９のデータを保持しているので、データをデータ保持部１５から読み出し、転送を開始する。転送の際には、リクエストに格納されている転送先サーバ物理アドレス２．２．２．２のサーバ１０１ｂにデータを送信する。
【００７１】
識別子９９９のデータを受信したＩＤ２のサーバ１０１ｂは、データ転送テーブル１６を参照し、アドレス１．１．１．１のサーバ１０１ａにデータを転送する。そして、データ要求をしたＩＤ１のサーバ１０１ａへのデータ転送が完了する。
【００７２】
以上のようにリクエストの時点でキャッシュするかを判断し、データ転送時にキャッシュしないサーバを経由しなくすることで、キャッシュしないサーバ（図１５のサーバ１０１ｃ）に無駄な負荷がかからず、またキャッシュしないサーバとそのルータ間の帯域を無駄に使用せず、さらにキャッシュしないサーバへの経由を回避するのでより高速にデータの取得ができる。
【００７３】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した第２の実施形態では、各サーバがリクエストされているデータをキャッシュすると判断した場合に、順次リクエストに自身の物理アドレスを追加していくものとして説明したが、リクエストに予め各サーバのアドレス情報を含めておき、リクエストされているデータをキャッシュしないと判断した場合に、各サーバがリクエストから自身の物理アドレスを削除するといった変形実施も可能である。
【産業上の利用可能性】
【００７４】
本発明は、ＣＤＮや広域環境でのデータ配置やキャッシュ、Ｐ２Ｐによるデータ配送システムといった用途に適用できる。
【符号の説明】
【００７５】
１００    伝送路
１０１、１０１ａ〜１０１ｄ、２０１  サーバ（データ転送サーバ）
１０      送受信部
１１      リクエスト処理部
１２      データ転送部
１３      論理ネットワーク情報管理部
１４      キャッシュ判断部
１５      データ保持部
１６      データ転送テーブル
【図１】
2011118593.tif 000003
【図２】
2011118593.tif 000004
【図３】
2011118593.tif 000005
【図４】
2011118593.tif 000006
【図５】
2011118593.tif 000007
【図６】
2011118593.tif 000008
【図７】
2011118593.tif 000009
【図８】
2011118593.tif 000010
【図９】
2011118593.tif 000011
【図１０】
2011118593.tif 000012
【図１１】
2011118593.tif 000013
【図１２】
2011118593.tif 000014
【図１３】
2011118593.tif 000015
【図１４】
2011118593.tif 000016
【図１５】
2011118593.tif 000017
【図１６】
2011118593.tif 000018