(57)【特許請求の範囲】
【請求項１】
配信対象のデータを保存するための記憶部と、設定されたスケジュールにしたがって該データの配信要求元となる情報処理端末へネットワークを介して該データを転送するデータ転送部とを含む複数のデータ転送装置と、
前記データおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記情報処理端末から受信すると、前記ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記ネットワークを介して前記情報処理端末に転送するためのスケジュールを求め、該スケジュールを前記複数のデータ転送装置に設定するサーバ装置と、
を有し、
前記サーバ装置は、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める、情報通信システム。
【請求項２】
それぞれが記憶部を有する複数のデータ転送装置を含むネットワークにおけるデータ転送を制御するサーバ装置であって、
配信対象のデータおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記ネットワークに接続された情報処理端末から受信すると、該ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記情報処理端末に転送するためのスケジュールを求めるスケジュール計算部と、
前記スケジュールを前記複数のデータ転送装置に設定する予約実行部と、
を有し、
前記スケジュール計算部は、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める、サーバ装置。
【請求項３】
請求項２記載のサーバ装置において、
前記スケジュール計算部は、
前記データを所定の単位で分割し、分割した単位毎に前記最小コスト経路を計算する、サーバ装置。
【請求項４】
それぞれが記憶部を有する複数のデータ転送装置を含むネットワークに対してサーバ装置が実行するデータ転送制御方法であって、
配信対象のデータおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記ネットワークに接続された情報処理端末から受信すると、該ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記情報処理端末に転送するためのスケジュールを求め、
求めたスケジュールを前記複数のデータ転送装置に設定し、
前記スケジュールを求める際、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める、データ転送制御方法。
【請求項５】
それぞれが記憶部を有する複数のデータ転送装置を含むネットワークに接続されるコンピュータに、
配信対象のデータおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記ネットワークに接続された情報処理端末から受信すると、該ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記情報処理端末に転送するためのスケジュールを求める手順と、
求めたスケジュールを前記複数のデータ転送装置に設定する手順と、
を実行させ、
前記スケジュールを求める手順において、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおいてデータの転送を制御する情報通信システム、サーバ装置、データ転送装置、データ転送制御方法、およびコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
ネットワークにおけるデータ転送技術として、近年、ルータ等のノードがストレージを備え、ノードが受信したデータをストレージに一旦、蓄積してから転送を行うCache And Forward Network （ＣＦＮ）が提案されている（非特許文献１参照）。ＣＦＮのようなデータ転送技術は、ネットワークを構成する回線が頻繁に輻輳する高負荷なネットワークや、回線が頻繁に切断するような不安定なネットワークにおいて、信頼性の高い通信を行うためには有効である。このようなデータ転送技術はMessage Ferryingと呼ばれることもあり、Message Ferryingが非特許文献２に開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Sanjoy Paul他、"THE CACHE-AND-FORWARD NETWORK ARCHITECTURE FOR EFFICIENT MOBILE CONTENT DELIVERY SERVICES IN THE FUTURE INTERNET", Innovations in NGN: Future Network and Services, 2008. K-INGN 2008. First ITU-T Kaleidoscope Academic Conference, 12-13 May 2008
【非特許文献２】Wenrui Zhao他、"A Message Ferrying Approach for Data Delivery in Sparse Mobile Ad Hoc Networks", MobiHoc '04, 24-26 May 2004
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１および非特許文献２に開示された技術では、データの配信をいつまでに完了させるかについては十分に考慮されておらず、データの到達時刻を制御することはできない。そのため、例えば、時間指定のコンテンツデータ配信サービスなどに利用することができない。
【０００５】
本発明は上述したような技術が有する問題点を解決するためになされたものであり、ネットワークの輻輳を抑えながら配信要求元へのデータの到達時刻を保証することを可能にした情報通信システム、サーバ装置、データ転送装置、データ転送制御方法、およびコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明の情報通信システムは、
配信対象のデータを保存するための記憶部と、設定されたスケジュールにしたがって該データの配信要求元となる情報処理端末へネットワークを介して該データを転送するデータ転送部とを含む複数のデータ転送装置と、
前記データおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記情報処理端末から受信すると、前記ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記ネットワークを介して前記情報処理端末に転送するためのスケジュールを求め、該スケジュールを前記複数のデータ転送装置に設定するサーバ装置と、
を有し、
前記サーバ装置は、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める構成である。
【０００７】
また、本発明のサーバ装置は、それぞれが記憶部を有する複数のデータ転送装置を含むネットワークにおけるデータ転送を制御するサーバ装置であって、
配信対象のデータおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記ネットワークに接続された情報処理端末から受信すると、該ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記情報処理端末に転送するためのスケジュールを求めるスケジュール計算部と、
前記スケジュールを前記複数のデータ転送装置に設定する予約実行部と、
を有し、
前記スケジュール計算部は、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める構成である。
【０００９】
また、本発明のデータ転送制御方法は、それぞれが記憶部を有する複数のデータ転送装置を含むネットワークに対してサーバ装置が実行するデータ転送制御方法であって、
配信対象のデータおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記ネットワークに接続された情報処理端末から受信すると、該ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記情報処理端末に転送するためのスケジュールを求め、
求めたスケジュールを前記複数のデータ転送装置に設定し、
前記スケジュールを求める際、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求めるものである。
【００１０】
さらに、本発明のプログラムは、それぞれが記憶部を有する複数のデータ転送装置を含むネットワークに接続されるコンピュータに、
配信対象のデータおよび該データの配信完了時刻を指定する情報を含む配信要求情報を前記ネットワークに接続された情報処理端末から受信すると、該ネットワークにおける帯域予約状況および前記記憶部の予約状況に基づいて、該ネットワークに発生するピーク負荷を低減し、前記配信完了時刻までに前記データを前記情報処理端末に転送するためのスケジュールを求める手順と、
求めたスケジュールを前記複数のデータ転送装置に設定する手順と、
を実行させ、
前記スケジュールを求める手順において、
前記ネットワーク内で隣接するデータ転送装置間の回線における前記データの転送を表す空間的遷移と、同一のデータ転送装置において前記記憶部における前記データの保持を表す時間的遷移とを結合したグラフを用いて、前記回線および前記記憶部の利用率に応じたコストを用いて最小コストの転送経路である最小コスト経路を計算し、最小コスト経路に基づいて前記スケジュールを求める手順を実行させるものである。
【発明の効果】
【００１１】
本発明によれば、ネットワークの輻輳を抑えるとともに、配信要求元へのデータの到達時刻を保証することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態の情報通信システムの構成を説明するためのブロック図である。
【図２】本実施形態における管理サーバ、コンテンツサーバ、ルータおよびユーザ端末の構成例を示すブロック図である。
【図３】本実施形態の情報通信システムの動作を説明するための構成例を示す図である。
【図４】本実施形態の情報通信システムの動作手順を示すシーケンス図である。
【図５】配信対象のコンテンツに対して転送スケジュールを立てるための手順を示すフローチャートである。
【図６】図３に示したネットワークをベースとしたグラフを示す図である。
【図７】図６に示したグラフに計算結果によるコストを記述したコスト付きグラフの一例を示す図である。
【図８】図７に示したグラフを用いた最小コスト経路の計算の一部を示す図である。
【発明を実施するための形態】
【００１３】
本実施形態の情報通信システムの構成を説明する。
【００１４】
図１は本実施形態の情報通信システムの構成を説明するためのブロック図である。
【００１５】
図１に示すように、予め保持したコンテンツをコンテンツの要求元に提供するコンテンツサーバ１００がネットワーク５００に接続されている。コンテンツサーバ１００にコンテンツを要求するユーザ端末３００がネットワーク５００を介してコンテンツサーバ１００と接続される。ネットワーク５００には、コンテンツのデータであるコンテンツデータを転送するルータ（不図示）が設けられている。ネットワーク５００は、例えば、インターネットである。
【００１６】
コンテンツデータの転送を制御する管理サーバ４００が、制御回線（図１に破線で示す）を介して、コンテンツサーバ１００、ユーザ端末３００およびルータ（不図示）と接続される。本実施形態の情報通信システムは、管理サーバ４００と、ルータ（不図示）とを有する構成である。以下では、ネットワーク５００に接続される、コンテンツサーバ１００、ユーザ端末３００およびルータ（不図示）を、ノードと称する。
【００１７】
図２は本実施形態における管理サーバ、コンテンツサーバ、ルータおよびユーザ端末の構成例を示すブロック図である。
【００１８】
図２に示すように、コンテンツサーバ１００は、コンテンツデータが格納されたコンテンツストレージ１０１と、予約制御部１０４が設定した転送スケジュールに基づいてコンテンツデータを隣接するノード（以下では、隣接ノードと称する）に送信するデータ送信部１０２と、回線予約帯域を管理するリソース管理部１０３と、管理サーバ４００から受信した転送スケジュールに基づいてリソース管理部１０３に回線帯域の予約を行い、データ送信部１０２に転送スケジュールを設定する予約制御部１０４とを有する。
【００１９】
回線予約帯域とは、コンテンツサーバ１００が隣接ノードと接続されるリンクに、時刻に対応して予約されている帯域（単位時間当たりの伝送量）を意味する。リソース管理部１０３で管理される回線予約帯域は、予約制御部１０４が新たに必要になった回線帯域の情報を転送スケジュールから読み出してリソース管理部１０３に通知し、リソース管理部１０３が予約制御部１０４から通知された回線帯域を新たに予約することで更新される。リソース管理部１０３は、管理サーバ４００から回線予約帯域の情報の要求があると、現在の回線予約帯域の情報である回線予約帯域状況を管理サーバ４００に通知する。
【００２０】
ルータ２００は、受信したコンテンツデータを一時的に保存するための記憶部に相当するキャッシュストレージ２０５と、隣接ノードからコンテンツデータを受信するデータ受信部２０１と、隣接ノードにコンテンツデータを送信するデータ送信部２０３と、予約制御部２０４が設定した転送スケジュールにしたがって、受信するコンテンツデータを転送およびキャッシュストレージ２０５への保存、ならびにキャッシュストレージ２０５からコンテンツデータを取り出して転送のうち、いずれかを行うデータ転送部２０２と、回線予約帯域およびストレージ予約を管理するリソース管理部２０６と、管理サーバ４００から受信した転送スケジュールに基づいてリソース管理部２０６に回線帯域とストレージを予約し、データ転送部２０２に転送スケジュールを設定する予約制御部２０４とを有する。ルータ２００は、コンテンツサーバ１１１からユーザ端末３１１にデータを転送するデータ転送装置の一例である。
【００２１】
ストレージ予約とは、キャッシュストレージ２０５でのストレージ対象のデータに関して、時刻に対応して予約されている記憶容量を意味する。リソース管理部２０６で管理される回線予約帯域およびストレージ予約は、予約制御部２０４が新たに必要になった回線帯域およびストレージ容量の情報を転送スケジュールから読み出してリソース管理部２０６に通知し、リソース管理部２０６が予約制御部２０４から通知された回線帯域およびストレージ容量を新たに予約することで更新される。リソース管理部２０６は、管理サーバ４００から回線予約帯域およびストレージ予約の情報の要求があると、回線予約帯域状況および現在のストレージ予約の情報であるストレージ予約状況を管理サーバ４００に通知する。
【００２２】
図２では、コンテンツサーバ１００から管理サーバ４００に提供される帯域予約状況、ならびにルータ２００から管理サーバ４００に提供される回線帯域予約状況およびストレージ予約状況を、リソース予約情報と表記している。
【００２３】
ユーザ端末３００は、受信したコンテンツデータを保存するためのコンテンツストレージ３０１と、隣接ノードからコンテンツデータを受信するデータ受信部３０２と、コンテンツの配信を要求する旨の情報を含む配信要求情報を管理サーバ４００に行う予約制御部３０３とを有する。配信要求情報は、ユーザが要求するコンテンツを特定するための識別情報と、いつまでにコンテンツの配信を完了して欲しいかを示す配信完了時刻の情報とを含む。予約制御部３０３は、配信要求情報を、制御回線を介して管理サーバ４００に送信する。
【００２４】
ユーザ端末３００は情報処理端末の一例であり、例えば、デスクトップ型のパーソナルコンピュータ（以下では、ＰＣと表記する）である。ユーザ端末３００は、デスクトップ型のＰＣの場合に限らず、ノートブック型のＰＣであってもよく、また、スマートフォンを含む携帯電話機およびＰＤＡ（Personal Digital Assistants）等の携帯端末であってもよい。ユーザ端末３００が携帯端末である場合、ユーザ端末３００はネットワーク５００とは、ネットワーク５００に設けられた基地局（不図示）と無線通信で接続される。本実施形態では、ユーザ端末３００が無線通信でネットワーク５００と接続される場合の詳細な説明を省略する。
【００２５】
管理サーバ４００は、ユーザ端末３００から制御回線を介して配信要求情報を受信すると、コンテンツサーバ１００およびルータ２００からネットワーク５００の回線帯域予約状況やストレージ予約状況を制御回線を介して取得し、取得した情報に基づいて転送スケジュールを求める転送スケジュール計算部４０１と、転送スケジュール計算部４０１が求めた転送スケジュールをコンテンツサーバ１００およびルータ２００に制御回線を介して設定する予約実行部４０２とを有する。
【００２６】
なお、本実施形態では、管理サーバ４００がネットワーク５００に接続される各ノードと制御回線を介して情報を送受信する場合で説明するが、管理サーバ４００がネットワーク５００に接続され、ネットワーク５００を介して各ノードと情報を送受信するようにしてもよい。
【００２７】
また、図２に示す機能ブロックの実際の構成として、各機能を実行するための回路を備えた、専用の半導体集積回路で実現可能である。また、各機能ブロックの全てが専用の半導体集積回路で構成される場合に限らず、機能ブロックの一部が次のような構成であってもよい。
【００２８】
コンテンツサーバ１００には、プログラムにしたがって処理を実行するＣＰＵ（Central Processing Unit）（不図示）と、プログラムを記憶するメモリ（不図示）とが設けられ、ＣＰＵがプログラムを実行することで、リソース管理部１０３および予約制御部１０４がコンテンツサーバ１００に仮想的に構成される。
【００２９】
ルータ２００には、プログラムにしたがって処理を実行するＣＰＵ（不図示）と、プログラムを記憶するメモリ（不図示）とが設けられ、ＣＰＵがプログラムを実行することで、リソース管理部２０６および予約制御部２０４がルータ２００に仮想的に構成される。
【００３０】
ユーザ端末３００には、プログラムにしたがって処理を実行するＣＰＵ（不図示）と、プログラムを記憶するメモリ（不図示）とが設けられ、ＣＰＵがプログラムを実行することで、予約制御部３０３がユーザ端末３００に仮想的に構成される。
【００３１】
管理サーバ４００には、プログラムにしたがって処理を実行するＣＰＵ（不図示）と、プログラムを記憶するメモリ（不図示）とが設けられ、ＣＰＵがプログラムを実行することで、転送スケジュール計算部４０１および予約実行部４０２が管理サーバ４００に仮想的に構成される。
【００３２】
次に、本実施形態の情報通信システムの動作を説明する。図３は本実施形態の情報通信システムの動作を説明するための構成例を示す図である。
【００３３】
図３に示すように、ネットワーク５００には、ルータ２１１〜２１４と、ノード間を接続するリンク６１２〜６１５とが設けられている。コンテンツサーバ１１１およびユーザ端末３１１がネットワーク５００を介して接続されている。コンテンツサーバ１１１およびユーザ端末３１１のそれぞれは、図２を参照して説明したコンテンツサーバ１００およびユーザ端末３００のそれぞれと同様な構成であるため、その詳細な説明を省略する。また、ルータ２１１〜２１４は図２を参照して説明したルータ２００と同様な構成であるため、その詳細な説明を省略する。
【００３４】
コンテンツサーバ１１１の図２に示したコンテンツストレージ１０１には、コンテンツ５０１のデータが予め保存されている。コンテンツ５０１のデータの容量を１ＧＢｙｔｅとする。ルータ２１１は、リンク６１１を介してコンテンツサーバ１１１と接続され、リンク６１４を介してルータ２１４と接続され、リンク６１２を介してルータ２１２と接続されている。ルータ２１３は、リンク６１３を介してルータ２１２と接続され、リンク６１５を介してルータ２１４と接続され、リンク６１６を介してユーザ端末３１１と接続されている。本実施形態では、説明を簡単にするために、ネットワーク５００に接続されるルータの数が４つの場合で説明するが、ルータの数は４つに限らない。
【００３５】
コンテンツサーバ１１１およびルータ２１１間のリンク６１１と、ルータ２１１〜２１４の各ルータ間のリンク６１２〜６１５と、ルータ２１３およびユーザ端末３１１間のリンク６１６のそれぞれの回線（図３に実線で示す）の容量は、いずれも１００Ｍｂｐｓであるものとする。管理サーバ４１１および他のノード間の回線（図３に破線で示す）は、転送スケジュールを含む制御メッセージを伝送するための制御回線である。また、ルータ２１１〜２１４の各キャッシュストレージ２０５はコンテンツデータ保存用の記憶部として１ＧＢｙｔｅの容量を備えているものとする。
【００３６】
管理サーバ４１１が受け付け可能な、コンテンツ５０１の配信開始時刻は、ユーザ端末３１１から配信要求情報を受信してから５分後であるものとする。
【００３７】
図３を参照して説明した構成および条件の元に、各装置の動作を順に説明する。図４は本実施形態の情報通信システムの動作手順を示すシーケンス図である。
【００３８】
時刻７：５５に、図４に示すように、ユーザ端末３１１の予約制御部３０３が、コンテンツ５０１を時刻８：２０までに取得したい旨の情報を含む配信要求情報を、制御回線を介して管理サーバ４１１に送信する（ステップ１００１）。この場合、コンテンツ５０１の配信開始の可能な時刻は、ユーザ端末３１１から配信要求情報を受信した時刻７：５５から５分後なので、時刻８：００とする。
【００３９】
管理サーバ４１１の転送スケジュール計算部４０１は、ユーザ端末３１１から配信要求情報を受信すると、コンテンツサーバ１１１から回線予約状況を制御回線を介して取得し（ステップ１００２）、ルータ２１１〜２１４から回線予約状況およびストレージ予約状況を制御回線を介して取得する（ステップ１００３）。ここでは、予約される帯域と予約されるストレージは、分単位で管理されているものとする。また、ステップ１００２とステップ１００３の処理の順番は図４に示す場合に限らない。
【００４０】
続いて、転送スケジュール計算部４０１は、コンテンツサーバ１１１およびルータ２１１〜２１４から取得した情報に基づいて、ネットワーク５００の輻輳を抑えながらコンテンツ５０１のユーザ端末３１１への配信完了時刻を保証できるように転送経路について最小コスト経路を計算し、その計算結果に基づいて転送スケジュールを求める（ステップ１００４）。
【００４１】
ここで、ステップ１００４における、転送スケジュール計算部４０１の動作を詳細に説明する。転送スケジュール計算部４０１は、次の（１）〜（５）の手順で、配信対象のコンテンツ５０１ついてユーザ端末３１１への転送スケジュールを求める。図５は配信対象のコンテンツに対して転送スケジュールを立てるための手順を示すフローチャートである。
【００４２】
（１）コンテンツの配信単位の設定（図５に示すステップ１１０１）
転送スケジュール計算部４０１は、コンテンツを等分の配信単位に分割する。何等分するかは、配信時間（＝配信完了時刻−配信開始時刻）の長さや、コンテンツのサイズによって変更できる。ここでは、配信時間が２０分間なのでコンテンツ５０１のデータを２０等分し、１つの配信単位を、１ＧＢｙｔｅ／２０＝５０ＭＢｙｔｅとする。
別の方法としては、１回線で予約できる帯域を決め、それに合わせて分割する方法でもよい。例えば、１回線で５Ｍｂｐｓの予約が一回にできるとすると、１分間で送れる容量は５Ｍ／８＊６０＝３７．５ＭＢｙｔｅとなる。これを１単位として分割すると、コンテンツは１ＧＢｙｔｅ／３７．５ＭＢｙｔｅ＝２７分割される。また、余裕を見て３０ＭＢｙｔｅを１配信単位として、３４分割することもできる。
コンテンツ５０１のデータを分割してネットワーク５００を介して送信する方法として、例えば、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）の通信規約にしたがってデータをパケットに分割して送信する方法がある。本実施形態では、コンテンツのデータ転送方法にＴＣＰ／ＩＰを適用することが可能であり、その詳細な説明を省略する。
【００４３】
（２）グラフの作成（図５に示すステップ１１０２）
転送スケジュール計算部４０１は、ネットワークトポロジーと配信時間を入れたグラフを作成する。図６に、図３に示したネットワークをベースとしたグラフを示す。縦方向に移動するリンクは、コンテンツデータがノード間をネットワーク５００の回線を介して転送されること（空間的遷移）を示している。横方向に移動するリンクは、コンテンツデータがそのノード内のストレージで保持されて時間が経過すること（時間的遷移）を示している。ネットワークトポロジーの情報は転送スケジュール計算部４０１内のメモリ（不図示）に予め登録されている。
【００４４】
（３）各リンクのコストの設定（図５に示すステップ１１０３）
転送スケジュール計算部４０１は、コンテンツサーバ１１１から取得した回線予約状況と、ルータ２１１〜２１４から取得した回線予約状況およびストレージ予約状況とに基づく、単位時間毎の帯域およびストレージの予約状況から、各リンクのコストを計算する。転送スケジュール計算部４０１は、ネットワーク５００の回線に対応するリンクのコストを、例えば、次のように計算する。
【００４５】
【数１】
0005861929.tif 000002
【００４６】
ここで、ｆは当該データの送信帯域を予約した場合の回線使用率（予約帯域／回線容量）である。［数１］は転送スケジュール計算部４０１内のメモリ（不図示）に予め登録されている。
【００４７】
例えば、ｔ１＝８：００〜８：０１の時点でのコンテンツサーバ１１１とルータ２１１間のリンク６１１の予約帯域が５５Ｍｂｐｓである場合を考える。配信単位５０ＭＢｙｔｅを１分間で転送するためには、５０＊８／６０＝６．７Ｍｂｐｓの予約が必要となる。そのため、この配信単位を転送する場合、リンク６１１は５５＋６．７＝６１．７Ｍｂｐｓが帯域消費される。リンク６１１の使用率ｆは、６１．７／１００＊１００＝６１．７％となり、ｔ＝８：００でのリンク６１１に対応するグラフのリンクのコストは、［数１］を参照すると、「６４」となる。また、上記計算結果では、新たな配信単位に必要な帯域が６．７Ｍｂｐsであるが、新たに予約する帯域を、余裕を見て７Ｍｂｐｓ〜８Ｍｂｐｓとしてもよい。
【００４８】
また、転送スケジュール計算部４０１は、ストレージに対応するリンクのコストを、例えば、次のように計算する。
【００４９】
【数２】
0005861929.tif 000003
【００５０】
ここで、ｇは当該データを保存した場合のストレージ使用率（＝保存データ量／ストレージ容量）である。［数２］は転送スケジュール計算部４０１内のメモリ（不図示）に予め登録されている。
【００５１】
例えば、ｔ２＝８：０１〜８：０２の間、ルータ２１１に配信単位を保存する場合を考える。ｔ＝８：０１でのルータ２１１のストレージの保存データ量が４７０ＭＢｙｔｅであったとする。そこに配信単位５０ＭＢｙｔｅを保存した場合、全保存量は５２０ＭＢｙｔｅとなり、ストレージ使用率ｇは５２０／１０００＊１００＝５２％となる。そのため、ｔ＝８：０１からｔ＝８：０２へのルータ２１１のストレージに対応するグラフのリンクのコストは、［数２］を参照すると、「３」となる。
【００５２】
上述のようにして、転送スケジュール計算部４０１は、各リンクに既に予定されている予約帯域に新たな転送対象となる配信単位に必要な帯域を加算した結果からコストを求め、また、各ストレージに既に予定されている予約ストレージに新たな転送対象となる配信単位に必要な容量を加算した結果からコストを求め、求めたコストを図６に示したグラフに記述する。
【００５３】
図７は図６に示したグラフに計算結果によるコストを記述したコスト付きグラフの一例を示す図である。図７では、回線に対応するリンクのコストと、ストレージに対応するリンクのコストとを見分けやすくするために、ストレージに対応するリンクのコストを（  ）で示す。具体例を説明すると、図７では、ｔ１において、コンテンツサーバ１１１およびルータ２１１間の回線に対応するリンクに、上述の計算結果によるコスト「６４」が記述されており、ｔ２において、ルータ２１１のストレージに対応するリンクに、上述の計算結果によるコスト「３」が（  ）内に記述されていることがわかる。
【００５４】
ただし、コンテンツサーバ１１１がコンテンツデータの送信開始を遅らせることを意味するリンク、つまり図６のｔ＝ｔｎ（ただし、ｎは１〜１９のうちの任意の整数）のコンテンツサーバ１１１とｔ＝ｔ（ｎ＋１）のコンテンツサーバ１１１の間のリンクについては、コンテンツサーバ１１１が送信を遅らせる間コンテンツを保持するコストはほとんど無視できる。そのため、そのリンクには、Ｃｓｔｒ＝０．００００１など非常に小さい固定値を設定する。図７では、コンテンツサーバ１１１における時間的遷移のコストをｓで表記している。
【００５５】
（４）最小コスト経路の計算（図５に示すステップ１１０４）
転送スケジュール計算部４０１は、上記（２）〜（３）で作成したコスト付きグラフにおいて、ダイクストラ法を用いて、１番目の配信単位について、ｔ＝ｔ１のコンテンツサーバ１１１を始点とし、任意のｔのユーザ端末３１１を終点とする最小コスト経路の計算を行う。図８は図７に示したグラフを用いた最小コスト経路の計算の一部を示す図である。図８では、選択された経路を太線の矢印で示している。図８に示すように、転送スケジュール計算部４０１が、ｔ１において１番目の配信単位のデータをコンテンツサーバ１１１からルータ２１１に送信させることを選択したので、コストが６４となり、ｔ２においてデータをルータ２１１のストレージに保持させることを選択したので、コストは６４に３を加算して６７となり、さらに、ｔ３でルータ２１１に保存したデータをルータ２１４に転送させることを選択したので、コストは６７に２を加算して６９となっている。転送スケジュール計算部４０１は、このようなコスト計算を、ダイクストラ法にしたがってリンクを選択しながら、転送経路がユーザ端末３１１に到達するまで行う。
【００５６】
上述のようにして、転送スケジュール計算部４０１は、１番目の配信単位についての最小コスト経路を求めると、求めた最小コスト経路の情報を保持するとともに、その経路に沿って各リンクと各ストレージの予約状況を更新する。これにより、２番目の配信単位による最小コスト経路の計算に用いるコスト付きグラフに、１番目の配信単位の転送処理に対応した、コストの変化が反映される。
なお、ここでは、最小コスト経路の計算に、重み付き無向リンクで構成されたグラフ上で最小コスト経路を計算するアルゴリズムの一例としてダイクストラ法を用いる場合で説明したが、最小コスト経路の計算に用いるアルゴリズムは、ダイクストラ法以外のアルゴリズムであってもよい。
【００５７】
（５）最小コスト経路の計算を分割数分、繰り返す（図５に示すステップ１１０５）
上記（１）においてコンテンツ５０１のデータが２０分割されているので、転送スケジュール計算部４０１は、残りの１９個分の配信単位に対して、２０番目の配信単位まで順に、１番目の配信単位と同様に上記（３）〜（４）の計算を行う。その結果、各配信単位の転送スケジュールが決定される。
【００５８】
続いて、図４に戻って、ステップ１００４以降の動作手順を説明する。
【００５９】
ステップ１００４の後、管理サーバ４１１の予約実行部４０２は、コンテンツサーバ１１１の予約制御部１０４に対して、転送スケジュールを送信する（ステップ１００５）。予約制御部１０４は、管理サーバ４１１から転送スケジュールを受信すると、転送スケジュールに対応してリソース管理部１０３に対して回線帯域の予約を行い（ステップ１００６）、データ送信部１０２に対して各配信単位に対するネットワーク５００での転送スケジュールを設定する。
【００６０】
さらに、管理サーバ４１１の予約実行部４０２は、ルータ２１１〜２１４の予約制御部２０４に対して、転送スケジュールを送信する（ステップ１００７）。ルータ２１１〜２１４の予約制御部２０４は、リソース管理部２０６に対して回線帯域の予約およびストレージの予約を行う（ステップ１００８）。さらに、予約制御部２０４は、データ転送部２０２に対して、各配信単位に対するネットワーク５００での転送スケジュールおよびストレージへの保持スケジュールの設定を行う。なお、ステップ１００５とステップ１００７の処理の順番は図４に示す場合に限らない。
【００６１】
転送スケジュール計算部４０１がルータ２１１へ通知する転送スケジュールの一例を以下に示す。
UnitVolume = 50MByte
C-ID   UnitNo action  start  end
pict123    1  receive 8:01   8:02   from 111
pict123    1  store   8:01   8:03
pict123    1  forward 8:03   8:04   to 212
pict123    2  receive 8:04   8:05   from 111
pict123    2  store   8:04   8:05
pict123    2  forward 8:05   8:06   to 214
pict123    3  receive 8:05   8:06   from 111
pict123    3  forward 8:05   8:06   to 214
・・・（以下、省略）。
【００６２】
上記の転送スケジュールにおいて、C-IDはコンテンツを識別するためのID（Identifier）、UnitNoは転送単位を識別する番号、actionはルータに実行させる動作、startは動作の開始時刻、endは動作の完了時刻である。from Xは隣接ノードXからの受信、to Xは隣接ノードXへの転送を意味する。
【００６３】
上記の転送スケジュールのうち、時刻８：０１〜８：０３に注目すると、コンテンツデータ識別子ｐｉｃｔ１２３のデータの第１配信単位を、時刻８：０１〜８：０２の間にコンテンツサーバ１１１から受信し、受信した第１配信単位を時刻８：０３まで保存した後、ルータ２１２に転送する旨の指示が記述されていることがわかる。
【００６４】
図４を参照すると、ステップ１００８の後、コンテンツの配信開始時刻になると、コンテンツサーバ１１１はコンテンツデータを配信単位で送信を開始する。具体的には、コンテンツサーバ１１１のデータ送信部１０２は、コンテンツストレージ１０１からコンテンツデータを取り出し、指定された隣接ノードへと送信する（ステップ１００９）。
【００６５】
ルータ２１１のデータ受信部２０１は、コンテンツサーバ１１１からデータを受信すると、受信したデータをデータ転送部２０２に渡す。データ転送部２０２は、設定された転送スケジュールにしたがって、受信した配信単位のデータをキャッシュストレージ２０５に保存するか、データ送信部２０３に渡して隣接ノードに転送させる。キャッシュストレージ２０５に保存する場合には、データ転送部２０２は、次にそのデータを取り出して転送する時刻のタイマー（不図示）をセットする。そのタイマーが切れたとき、データ転送部２０２はキャッシュストレージ２０５から該当するデータを取り出して、データ送信部２０３へ渡す。データ送信部２０３は、データ転送部２０２からデータを受け取ると、データを隣接ノードに転送する（ステップ１０１０）。
【００６６】
ステップ１０１０で、ユーザ端末３１１は、ルータ２１３から複数の配信単位でコンテンツ５０１のデータを受け取ると、受け取った複数の配信単位でコンテンツ５０１のデータを組み立て、組み立てたコンテンツ５０１をコンテンツストレージ３０１に保存する。
【００６７】
本実施形態によれば、ストレージを備えた各ルータに対して、配信対象のデータが指定された時刻までに要求元のユーザ端末に配信されるように、受信するデータを一時的に保存するか、そのまま隣接する他のルータに転送するかなどの指示内容を含むスケジュールが、ネットワークの回線および各ルータのストレージに予約されている情報に基づいて、ネットワークのピーク負荷が低減するように設定される。そのため、ネットワークの輻輳を抑えるとともに、ユーザ端末へのデータの到達時刻を保証することが可能となる。その結果、ネットワークのピーク負荷を抑制して輻輳を回避しながら、ユーザの所望する時刻までにコンテンツデータを届けることができる。本実施形態で説明したような、安定した、信頼性の高いネットワークを、コンテンツ配信時刻を指定できる、時間指定のコンテンツデータ配信サービスなどに利用することができる。
【００６８】
また、ネットワークのピーク負荷が低減するようにスケジュールを求める際、ネットワーク回線およびストレージの利用率をコストとして、ネットワークでの隣接ノード間のデータ転送を表す空間的遷移と、同一ノード内でのデータのストレージでの保持を表す時間的遷移を結合したグラフを用いて、最小コスト経路を計算する方法を用いることが可能である。データ転送の制御のためのスケジュールの決定に、上述の最小コスト経路を用いることで、ネットワークの輻輳を回避しながら、データの到達時刻を保証するデータ転送を行うことができる。
【符号の説明】
【００６９】
１００、１１１    コンテンツサーバ
２００、２１１〜２１４    ルータ
２０２    データ転送部
２０４    予約制御部
３００、３１１    ユーザ端末
４００、４１１    管理サーバ
４０１    転送スケジュール計算部
４０２    予約実行部
【図１】
0005861929.tif 000004
【図２】
0005861929.tif 000005
【図３】
0005861929.tif 000006
【図４】
0005861929.tif 000007
【図５】
0005861929.tif 000008
【図６】
0005861929.tif 000009
【図７】
0005861929.tif 000010
【図８】
0005861929.tif 000011