(57)【要約】【課題】  システム全体の信頼性を損なうことなく、コンテンツの読み出し速度を速めることが可能な自律分散型サーバを提供する。【解決手段】  自律分散型サーバ１は、複数の自律ストレージ装置２にコンテンツＣｏを多重化して記憶し、クライアントコンピュータ５からのコンテンツＣｏの配信要求に対して、コンテンツＣｏの部分データであるブロックごとに、異なる送信経路で、クライアントコンピュータ５にブロックを送信し、当該ブロックがクライアントコンピュータ５に受信された送信経路に、次に送信するブロックを割り当てることを特徴とする。【選択図】      図１
2007065713.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたデータ参照装置からの要求に基づいて、複数のストレージ装置間で多重化されているデータの読み出し制御を行う多重データ読み出し制御装置であって、
前記データを記憶している前記複数のストレージ装置に、前記データの部分データであるブロックを対応付けて、当該複数のストレージ装置に対して、それぞれ異なる前記ブロックを前記データ参照装置に送信する旨を示すブロック送信要求を送信する送信要求手段と、
この送信要求手段で前記ブロックの送信を要求されたストレージ装置から、当該ブロックが前記データ参照装置に受信されたことを示す受信完了通知を受信することで、前記ブロックの送受信の完了を監視する送受信監視手段と、
この送受信監視手段によってブロックの送受信が完了したストレージ装置を、次に送信するブロックの送信元として設定する送信経路設定手段と、
を備えていることを特徴とする多重データ読み出し制御装置。
【請求項２】
ネットワークに接続されたデータ参照装置からの要求に基づいて、複数のストレージ装置間で多重化されているデータの読み出し制御を行う多重データ読み出し制御装置であって、
前記データを記憶している前記複数のストレージ装置から前記データ参照装置までの、ネットワークの送信経路の有無を確認する経路確認手段と、
この経路確認手段で送信経路が確認された場合に、当該送信経路に、前記データの部分データであるブロックを対応付けて、前記複数のストレージ装置に対して、それぞれ異なる前記ブロックを前記データ参照装置に送信する旨を示すブロック送信要求を送信する送信要求手段と、
この送信要求手段で前記ブロックの送信を要求されたストレージ装置から、当該ブロックが前記データ参照装置に受信されたことを示す受信完了通知を受信することで、前記ブロックの送受信の完了を監視する送受信監視手段と、
この送受信監視手段によってブロックの送受信が完了した送信経路を、次に送信するブロックの送信経路として設定する送信経路設定手段と、
を備えていることを特徴とする多重データ読み出し制御装置。
【請求項３】
ネットワークに複数接続されて、データを多重化して記憶するとともに、前記ネットワークに接続されたデータ参照装置からの要求に基づいて、前記データの読み出しを行う自律ストレージ装置であって、
前記データを多重化して記憶している他の自律ストレージ装置に、前記データの部分データであるブロックを対応付けて、当該他の自律ストレージ装置に対して、それぞれ異なる前記ブロックを前記データ参照装置に送信する旨を示すブロック送信要求を送信する送信要求手段と、
この送信要求手段で前記ブロックの送信を要求された他の自律ストレージ装置から、当該ブロックが前記データ参照装置に受信されたことを示す受信完了通知を受信することで、前記ブロックの送受信の完了を監視する送受信監視手段と、
この送受信監視手段によってブロックの送受信が完了した他の自律ストレージ装置を、次に送信するブロックの送信元として設定する送信経路設定手段と、
前記ブロック送信要求を他の自律ストレージ装置から受信したときに、前記データにおける対応するブロックを、前記データ参照装置に送信するブロック送信手段と、
前記データ参照装置から前記送信したブロックに対する応答を受信した段階で、前記ブロック送信要求を送信した他の自律ストレージ装置に対して、前記受信完了通知を送信する完了通知送信手段と、
を備えていることを特徴とする自律ストレージ装置。
【請求項４】
ネットワークに複数接続されて、データを多重化して記憶するとともに、前記ネットワークに接続されたデータ参照装置からの要求に基づいて、前記データの読み出しを行う自律ストレージ装置であって、
前記データ参照装置までのネットワークの送信経路を探索する経路探索手段と、
前記データを多重化して記憶している他の自律ストレージ装置から、前記送信経路の有無を確認する経路確認手段と、
この経路確認手段で送信経路が確認された場合に、当該送信経路に、前記データの部分データであるブロックを対応付けて、前記複数の自律ストレージ装置に対して、それぞれ異なる前記ブロックを前記データ参照装置に送信する旨を示すブロック送信要求を送信する送信要求手段と、
この送信要求手段で前記ブロックの送信を要求された他の自律ストレージ装置から、当該ブロックが前記データ参照装置に受信されたことを示す受信完了通知を受信することで、前記ブロックの送受信の完了を監視する送受信監視手段と、
この送受信監視手段によってブロックの送受信が完了した送信経路を、次に送信するブロックの送信経路として設定する送信経路設定手段と、
前記ブロック送信要求を他の自律ストレージ装置から受信したときに、前記データにおいて要求のあったブロックを、前記データ参照装置に送信するブロック送信手段と、
前記データ参照装置から前記送信したブロックに対する応答を受信した段階で、前記ブロック送信要求を送信した他の自律ストレージ装置に対して、前記受信完了通知を送信する完了通知送信手段と、
を備えていることを特徴とする自律ストレージ装置。
【請求項５】
データを多重化して記憶し、データ参照装置からの要求に基づいて、前記データの読み出しを行う自律分散型サーバであって、
前記データを多重化して記憶する請求項３または請求項４に記載の自律ストレージ装置を複数備え、
この複数の自律ストレージ装置から、前記データの部分データであるブロックごとに、それぞれ異なる前記ブロックを前記データ参照装置に送信することを特徴とする自律分散型サーバ。
【請求項６】
ネットワークに接続されたデータ参照装置からの要求に基づいて、複数のストレージ装置間で多重化されているデータの読み出しを行うために、コンピュータを、
前記データを記憶している前記複数のストレージ装置に、前記データの部分データであるブロックを対応付けて、当該複数のストレージ装置に対して、それぞれ異なる前記ブロックを前記データ参照装置に送信する旨を示すブロック送信要求を送信する送信要求手段、
この送信要求手段で前記ブロックの送信を要求されたストレージ装置から、当該ブロックが前記データ参照装置に受信されたことを示す受信完了通知を受信することで、前記ブロックの送受信の完了を監視する送受信監視手段、
この送受信監視手段によってブロックの送受信が完了したストレージ装置を、次に送信するブロックの送信元として設定する送信経路設定手段、
として機能させることを特徴とする多重データ読み出しプログラム。
【請求項７】
ネットワークに接続されたデータ参照装置からの要求に基づいて、複数のストレージ装置間で多重化されているデータの読み出しを行うために、コンピュータを、
前記データを多重化して記憶している前記複数のストレージ装置から前記データ参照装置までの、ネットワークの送信経路の有無を確認する経路確認手段、
この経路確認手段で送信経路が確認された場合に、当該送信経路に、前記データの部分データであるブロックを対応付けて、前記複数のストレージ装置に対して、それぞれ異なる前記ブロックを前記データ参照装置に送信する旨を示すブロック送信要求を送信する送信要求手段、
この送信要求手段で前記ブロックの送信を要求されたストレージ装置から、当該ブロックが前記データ参照装置に受信されたことを示す受信完了通知を受信することで、前記ブロックの送受信の完了を監視する送受信監視手段、
この送受信監視手段によってブロックの送受信が完了した送信経路を、次に送信するブロックの送信経路として設定する送信経路設定手段、
として機能させることを特徴とする多重データ読み出しプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多重化されて複数の記憶装置に記憶されたデータを読み出す多重データ読み出し制御技術に関する。
【背景技術】
【０００２】
近年、コンピュータで利用される映像、音声等のデータ（以下、コンテンツという）のデータ量は増加し続けており、それに伴いコンテンツを記憶するハードディスク等の記憶装置（ストレージ装置）の容量も増大している。
このとき、１台のストレージ装置のみにコンテンツを記憶すると、当該ストレージ装置に読み出し／書き込みの負荷が集中し、読み出し／書き込み速度が低下してしまうため、コンテンツを複数のストレージ装置に分散して記憶し、負荷を分散させる手法が一般的に用いられている。
【０００３】
ここで、図７を参照して、従来の負荷分散手法について説明する。図７は、従来の分散型サーバのシステム構成例を示す構成図である。図７に示すように、分散型サーバ１Ｂは、ネットワークＮに接続された１台の管理サーバ３と、複数のストレージ装置２Ｂとで構成され、同じくネットワークＮに接続されたクライアントコンピュータ５からの要求に基づいて、コンテンツ（Ｃ１，Ｃ２，Ｃ３，…，Ｃｎ）の読み出し／書き込みを行うものである。
【０００４】
管理サーバ３は、各ストレージ装置２Ｂに記憶されているコンテンツのデータ量を管理するとともに、各ストレージ装置２Ｂに分散して記憶されたコンテンツの読み出し／書き込み管理を行うものである。
【０００５】
ストレージ装置２Ｂは、コンテンツを記憶するものであって、クライアントコンピュータ５からの要求によって、コンテンツの読み出し／書き込みを行う。
例えば、コンテンツの書き込みを行う場合、クライアントコンピュータ５は、管理サーバ３に対して、コンテンツの書き込み先（記憶先）を問い合わせる。そして、管理サーバ３は、各ストレージ装置２Ｂにおいて、コンテンツを記憶した場合に、記憶容量に対するデータ量の割合が最も少なくなるストレージ装置２Ｂをクライアントコンピュータ５に通知する。そして、クライアントコンピュータ５は、通知されたストレージ装置２Ｂに対して、コンテンツの書き込みを行う。
【０００６】
また、コンテンツの読み出しを行う場合、クライアントコンピュータ５は、管理サーバ３に対して、コンテンツの読み出し元（記憶元）を問い合わせる。そして、管理サーバ３は、当該コンテンツを記憶しているストレージ装置２Ｂを読み出し元としてクライアントコンピュータ５に通知する。そして、クライアントコンピュータ５は、通知されたストレージ装置２Ｂから、コンテンツの読み出しを行う。
このように、コンテンツを複数のストレージ装置２Ｂに分散して記憶させることで、１台のストレージ装置２Ｂに対する負荷を分散させることができる。
【０００７】
また、負荷分散を行う他の手法として、図８に示すようなそれぞれの装置（自律ストレージ装置）が負荷情報を交換し、予め定めた自律分散管理ルールに基づいて、他の装置と協働しながら、コンテンツの記憶を行う手法が提案されている（例えば、特許文献１参照）。
図８は、従来の自律分散型サーバのシステム構成例を示す構成図である。図８に示すように、自律分散型サーバ１Ｃは、ネットワークＮに接続された複数の自律ストレージ装置２Ｃで構成され、同じくネットワークＮに接続されたクライアントコンピュータ５からの要求に基づいて、コンテンツの読み出し／書き込みを行うものである。
自律ストレージ装置２Ｃは、システム管理手段２０Ｃと、コンテンツ記憶手段３０Ｃとを備え、各自律ストレージ装置２Ｃのシステム管理手段２０Ｃ間で負荷情報を交換することで、コンテンツの記憶先を決定し、該当する自律ストレージ装置２Ｃのコンテンツ記憶手段３０Ｃにコンテンツを記憶するものである。
【０００８】
例えば、コンテンツの書き込みを行う場合、クライアントコンピュータ５は、任意の自律ストレージ装置２Ｃに対して、コンテンツの書き込み先（記憶先）を問い合わせる。そして、問い合わせを受けた自律ストレージ装置２Ｃは、システム管理手段２０Ｃによって、他の自律ストレージ装置２Ｃと協働して、コンテンツを記憶した場合に、記憶容量に対するデータ量の割合が最も少なくなる自律ストレージ装置２Ｃを探索し、その結果をクライアントコンピュータ５に通知する。そして、クライアントコンピュータ５は、通知された自律ストレージ装置２Ｃに対して、コンテンツの書き込みを行う。
【０００９】
また、コンテンツの読み出しを行う場合、クライアントコンピュータ５は、任意の自律ストレージ装置２Ｃに対して、コンテンツの読み出し元（記憶元）を問い合わせる。そして、システム管理手段２０Ｃによって、他の自律ストレージ装置２Ｃと協働して、当該コンテンツを記憶している自律ストレージ装置２Ｃを読み出し元としてクライアントコンピュータ５に通知する。そして、クライアントコンピュータ５は、通知された自律ストレージ装置２Ｃから、コンテンツの読み出しを行う。
【００１０】
なお、自律ストレージ装置２Ｃは、コンテンツ記憶手段３０Ｃに、元のコンテンツ（原コンテンツ：Ｃ１Ｐ，Ｃ２Ｐ等）を記憶するプライマリ領域Ｐと、原コンテンツの複製であるバックアップコンテンツ（Ｃ１Ｂ，Ｃ２Ｂ等）を記憶するバックアップ領域Ｂとを備えている。そして、自律ストレージ装置２Ｃは、プライマリ領域Ｐに記憶した原コンテンツの複製を生成し、論理的に隣接する自律ストレージ装置２のバックアップ領域Ｂにバックアップコンテンツとして記憶する。
このように、自律分散型サーバ１Ｃを構成することで、コンテンツの読み出し／書き込みの負荷を分散させることができる。さらに、自律分散型サーバ１Ｃは、どの自律ストレージ装置２Ｃが故障した場合であっても、バックアップコンテンツを用いて、サービスを継続することができる。
【特許文献１】特開２００４−３３４７３９号公報（段落０００４〜０００６、図９）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来の分散型サーバ（図７参照）は、コンテンツの読み出し等が、複数のストレージ装置に分散されるため、各ストレージ装置の負荷を軽減することができる。しかし、従来の分散型サーバは、コンテンツを１つのストレージ装置から読み出して、１つのネットワークを介してクライアントコンピュータに転送するため、コンテンツの転送スピードが、ストレージ装置の読み出し性能や、ネットワークの転送帯域に制限され、さらなる高速化を実現することができないという問題があった。
また、従来の分散型サーバは、管理サーバが故障すると、分散型サーバ全体の機能が停止してしまう。さらに、分散型サーバを構成するストレージ装置の１つが故障すると、当該ストレージ装置に記憶されているコンテンツが消滅してしまう。このように、従来の分散型サーバは、信頼性の面で大きな問題を有していた。
【００１２】
また、従来の自律分散型サーバ（図８参照）は、どの自律ストレージ装置が故障した場合であっても、サービスを継続できるため、分散型サーバに比べて優れている。しかし、従来の自律分散型サーバにおいても、コンテンツを１つの自律ストレージ装置から読み出して、１つのネットワークを介してクライアントコンピュータに転送するため、コンテンツの転送スピードが、自律ストレージ装置の読み出し性能や、ネットワークの転送帯域に制限されてしまう。そこで、従来の自律分散型サーバに対して、さらなる高速化が望まれていた。
【００１３】
本発明は、以上のような問題点に鑑みてなされたものであり、システム全体の信頼性を損なうことなく、コンテンツ（データ）の読み出し速度を速めることが可能な自律ストレージ装置および自律分散型サーバ、ならびに、多重データ読み出し制御装置およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、前記目的を達成するために創案されたものであり、まず、請求項１に記載の多重データ読み出し制御装置は、ネットワークに接続されたデータ参照装置からの要求に基づいて、複数のストレージ装置間で多重化されているデータの読み出し制御を行う多重データ読み出し制御装置であって、送信要求手段と、送受信監視手段と、送信経路設定手段とを備える構成とした。
【００１５】
かかる構成において、多重データ読み出し制御装置は、送信要求手段によって、データを記憶している複数のストレージ装置に、データの部分データであるブロックを対応付けて、当該複数のストレージ装置に対して、それぞれ異なるブロックをデータ参照装置に送信する旨を指示し、ストレージ装置がそれぞれ異なるブロックをデータ参照装置に送信する。すなわち、データは多重化されて複数のストレージ装置に記憶されているため、データを記憶している複数のストレージ装置に、そのデータを分割したブロックを対応付けることで、読み出しを担当するストレージ装置を複数の装置に分担する。これによって、データを読み出すストレージ装置が１台ではなく、複数のストレージ装置に分散されることになる。
【００１６】
そして、多重データ読み出し制御装置は、送受信監視手段によって、ブロックの送信を要求されたストレージ装置から、当該ブロックがデータ参照装置に受信されたことを示す受信完了通知を受信することで、ブロックの送受信の完了を監視する。これによって、どのストレージ装置から送信されたブロックが早くデータ参照装置に到達したのかを認識することができる。
そして、多重データ読み出し制御装置は、送信経路設定手段によって、ブロックの送受信が完了したストレージ装置を、次に送信するブロックの送信元として設定する。これによって、負荷の少ないストレージ装置から、より多くのブロックがデータ参照装置に送信されることになる。
【００１７】
なお、ストレージ装置からデータ参照装置までのネットワーク経路（送信経路）が複数存在する場合は、ストレージ装置ごとではなく、送信経路ごとにブロックを対応付けて、それぞれ異なるブロックをデータ参照装置に送信することとしもよい（請求項２）。
この場合、多重データ読み出し制御装置は、さらに経路確認手段を備え、当該経路確認手段によって、データを多重化して記憶している複数のストレージ装置から、データ参照装置までのネットワークの送信経路の有無を確認する。なお、ストレージ装置に複数の通信用のポートが存在する場合は、そのポートごとの送信経路を取得する。なお、送信経路は、各ストレージ装置において、例えば、トレースルート（trace route）等の一般的な技術を用いて探索することができる。
【００１８】
また、請求項３に記載の自律ストレージ装置は、ネットワークに複数接続されて、データを多重化して記憶するとともに、前記ネットワークに接続されたデータ参照装置からの要求に基づいて、前記データの読み出しを行う自律ストレージ装置であって、送信要求手段と、送受信監視手段と、送信経路設定手段と、ブロック送信手段と、完了通知送信手段とを備える構成とした。
【００１９】
かかる構成において、自律ストレージ装置は、送信要求手段によって、データを多重化して記憶している他の自律ストレージ装置に、データの部分データであるブロックを対応付けて、当該他の自律ストレージ装置に対して、それぞれ異なるブロックをデータ参照装置に送信する旨を指示し、他の自律ストレージ装置がそれぞれ異なるブロックをデータ参照装置に送信する。すなわち、データは多重化されて複数の自律ストレージ装置に記憶されているため、データを記憶している他のストレージ装置に、そのデータを分割したブロックを対応付けることで、読み出しを担当する自律ストレージ装置を複数の装置に分担する。
そして、自律ストレージ装置は、送受信監視手段によって、他の自律ストレージ装置から、当該ブロックがデータ参照装置に受信されたことを示す受信完了通知を受信することで、ブロックの送受信の完了を監視する。
そして、自律ストレージ装置は、送信経路設定手段によって、ブロックの送受信が完了した他の自律ストレージ装置を、次に送信するブロックの送信元として設定する。
なお、当該自律ストレージ装置に多重化されたデータが記憶されている場合は、他の自律ストレージ装置と同様にブロックを送信する役割を担うこととする。
【００２０】
また、当該自律ストレージ装置が、他の自律ストレージ装置からブロックをデータ参照装置に送信する旨を指示された場合は、ブロック送信手段によって、対応するブロックを、データ参照装置に送信し、完了通知送信手段によって、データ参照装置から送信したブロックに対する応答を受信した段階で、その旨をブロック送信要求を送信した他の自律ストレージ装置に通知する。
これによって、自律ストレージ装置は、他の自律ストレージ装置と協働して、データを分割してデータ参照装置に送信することになる。
【００２１】
なお、自律ストレージ装置からデータ参照装置までのネットワーク経路（送信経路）が複数存在する場合は、自律ストレージ装置ごとではなく、送信経路ごとにブロックを対応付けて、それぞれ異なるブロックをデータ参照装置に送信することとしもよい（請求項４）。
この場合、自律ストレージ装置は、さらに経路確認手段を備え、当該経路確認手段によって、データを多重化して記憶している他の自律ストレージ装置から、データ参照装置までのネットワークの送信経路の有無を確認する。
【００２２】
さらに、請求項５に記載の自律分散型サーバは、データを多重化して記憶し、データ参照装置からの要求に基づいて、前記データの読み出しを行う自律分散型サーバであって、請求項３または請求項４に記載の自律ストレージ装置を複数備え、この複数の自律ストレージ装置から、前記データの部分データであるブロックごとに、それぞれ異なるブロックを前記データ参照装置に送信する構成とした。
【００２３】
かかる構成において、自律分散型サーバは、いずれか１台の自律ストレージ装置に対して、データの読み出し要求があった場合に、他の自律ストレージ装置と協働して、データを分割してデータ参照装置に送信する。これによって、各自律ストレージ装置の負荷が分散されることになる。
【００２４】
また、請求項６に記載の多重データ読み出しプログラムは、ネットワークに接続されたデータ参照装置からの要求に基づいて、複数のストレージ装置間で多重化されているデータの読み出しを行うために、コンピュータを、送信要求手段、送受信監視手段、送信経路設定手段として機能させる構成とした。
【００２５】
かかる構成において、多重データ読み出しプログラムは、送信要求手段によって、データを記憶している複数のストレージ装置に、データの部分データであるブロックを対応付けて、当該複数のストレージ装置に対して、それぞれ異なるブロックをデータ参照装置に送信する旨を指示し、ストレージ装置がそれぞれ異なるブロックをデータ参照装置に送信する。
そして、多重データ読み出しプログラムは、送受信監視手段によって、ブロックの送信を要求されたストレージ装置から、当該ブロックがデータ参照装置に受信されたことを示す受信完了通知を受信することで、ブロックの送受信の完了を監視する。これによって、どのストレージ装置から送信されたブロックが早くデータ参照装置に到達したのかを認識することができる。
そして、多重データ読み出しプログラムは、送信経路設定手段によって、ブロックの送受信が完了したストレージ装置を、次に送信するブロックの送信元として設定する。これによって、負荷の少ないストレージ装置から、より多くのブロックがデータ参照装置に送信されることになる。
【００２６】
なお、ストレージ装置からデータ参照装置までのネットワーク経路（送信経路）が複数存在する場合は、ストレージ装置ごとではなく、送信経路ごとにブロックを対応付けて、それぞれ異なるブロックをデータ参照装置に送信することとしもよい（請求項７）。
この場合、多重データ読み出しプログラムは、コンピュータを、さらに経路確認手段として機能させることで、当該経路確認手段によって、データを多重化して記憶している複数のストレージ装置から、データ参照装置までのネットワークの送信経路を取得する。なお、ストレージ装置に複数の通信用のポートが存在する場合は、そのポートごとに送信経路を取得する。
【発明の効果】
【００２７】
請求項１または請求項６に記載の発明によれば、データを装置間で多重化して記憶しているストレージ装置から、データのそれぞれ異なるブロックを読み出して、データ参照装置に送信するため、１台のストレージ装置からデータを読み出す場合に比べ、高速にデータを読み出すことができる。また、本発明によれば、あるストレージ装置に負荷がかかっている場合や、障害が発生した場合であっても、他のストレージ装置が代わってブロックの送信を行うことができるので、システム全体の信頼性を確保することができる。
【００２８】
請求項２または請求項７に記載の発明によれば、データを装置間で多重化して記憶しているストレージ装置から、送信経路ごとに、データのそれぞれ異なるブロックを読み出して、データ参照装置に送信するため、１台のストレージ装置からデータを読み出す場合に比べ、高速にデータを読み出すことができる。また、本発明によれば、あるストレージ装置に負荷がかかっている場合、障害が発生した場合、あるいは、あるネットワークの経路に負荷がかかっている場合であっても、その経路を回避してデータを送信するため、データの読み出しを高速に行うことができ、さらに、システムの信頼性を確保することができる。
【００２９】
請求項３に記載の発明によれば、自律ストレージ装置間で協働して、データのそれぞれ異なるブロックをデータ参照装置に送信するため、高速にデータを読み出すことができる。また、本発明によれば、ある自律ストレージ装置に負荷がかかっている場合や、障害が発生した場合であっても、他の自律ストレージ装置が代わってブロックの送信を行うことができるので、システム全体の信頼性を確保することができる。
【００３０】
請求項４に記載の発明によれば、自律ストレージ装置間で協働して、送信経路ごとに、データのそれぞれ異なるブロックを読み出して、データ参照装置に送信するため、１台の自律ストレージ装置からデータを読み出す場合に比べ、高速にデータを読み出すことができる。また、本発明によれば、ある自律ストレージ装置に負荷がかかっている場合、障害が発生した場合、あるいは、あるネットワークの経路に負荷がかかっている場合であっても、その経路を回避してデータを送信するため、データの読み出しを高速に行うことができ、さらに、システムの信頼性を確保することができる。
【００３１】
請求項５に記載の発明によれば、自律ストレージ装置間で協働して、データのそれぞれ異なるブロックを読み出して、データ参照装置に送信する。このため、データ参照装置は、それぞれのブロックが記憶されている場所を認識してデータの読み出しを行う必要がなく、ある自律ストレージ装置にデータの要求を行うだけで、データを取得することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について図面を参照して説明する。
［自律分散型サーバの概要］
最初に、図１を参照して、本発明に係る自律分散型サーバの構成について、その概要を説明する。図１は、本発明に係る自律分散型サーバの構成を示す構成図である。
図１に示すように、自律分散型サーバ１は、複数の自律ストレージ装置２（２１，２２，２３，２４）で構成され、コンテンツＣｏを２つ以上の自律ストレージ装置２（ここでは２３，２４）に多重化して記憶するものである。
ここでは、自律分散型サーバ１は、複数のネットワークＮ（Ｎ１，Ｎ２，Ｎ３）を介して、データ参照装置であるクライアントコンピュータ５と接続され、クライアントコンピュータ５からの要求に基づいて、コンテンツＣｏの書き込み／読み出しを行う。
【００３３】
さらに、自律分散型サーバ１は、クライアントコンピュータ５から、コンテンツＣｏの読み出しの要求があった場合、コンテンツＣｏを記憶している自律ストレージ装置２同士で協働し、コンテンツＣｏを当該コンテンツＣｏの部分データとなるブロック単位で、それぞれ異なるブロックをクライアントコンピュータ５に送信する。そして、クライアントコンピュータ５は、受信したそれぞれのブロックを再構成することで、コンテンツＣｏを復元する。
【００３４】
例えば、図１において、クライアントコンピュータ５から、コンテンツＣｏの読み出しの要求があった場合、自律分散型サーバ１は、自律ストレージ装置２３に記憶されているコンテンツＣｏをブロックに分割したときのブロックＢ１，Ｂ２，Ｂ３，…を順次クライアントコンピュータ５に送信し、自律ストレージ装置２４に記憶されているコンテンツＣｏをブロックに分割したときの自律ストレージ装置２３が送信するブロックとは異なるブロックＢ４，Ｂ５，Ｂ６，…を順次クライアントコンピュータ５に送信する。そして、クライアントコンピュータ５は、受信したブロックＢ１、Ｂ２、Ｂ３、Ｂ４、…を再構成することで、コンテンツＣｏを復元する。
【００３５】
なお、自律分散型サーバ１は、コンテンツＣｏを記憶している自律ストレージ装置２が順番にブロックを送信する必要はなく、あるネットワークの負荷や、自律ストレージ装置２の負荷（例えば、ＣＰＵ負荷等）が増大し、ブロックがクライアントコンピュータ５に遅れて到着する場合は、他の自律ストレージ装置２が次のブロックの送信を担当する。
このように、コンテンツを多重化して記憶し、負荷に応じてコンテンツ（ブロック）の送信元を替えることで、コンテンツの読み出し速度を速めることができる。
また、自律ストレージ装置２が複数の通信用のポートを有している場合は、ブロックを送信するポートを替えることでも、コンテンツの読み出し速度を速めることができる。
以下、自律分散型サーバ１を構成する自律ストレージ装置２の構成について詳細に説明する。
【００３６】
（自律ストレージ装置の構成）
図２を参照（適宜図１参照）して、自律ストレージ装置２の構成について説明する。図２は、本発明に係る自律ストレージ装置のブロック構成を示すブロック図である。自律ストレージ装置２は、図１で説明したように、他の自律ストレージ装置とコンテンツを多重化して記憶し、他の自律ストレージ装置と協働して、コンテンツを要求するクライアントコンピュータ５に対して、コンテンツを送信するものである。
ここでは、自律ストレージ装置２は、通信送受信手段１０と、システム管理手段２０と、記憶手段３０とを備えている。
【００３７】
通信送受信手段１０は、ネットワークＮを介して、クライアントコンピュータ５と、データの送受信を行うものである。例えば、通信送受信手段１０は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の通信プロトコルによってデータの送受信を行う通信ボードである。
ここで、ネットワークＮ（Ｎ１，Ｎ２，Ｎ３）は、ポートによって論理的に区分された複数のネットワークとする。なお、ネットワークＮは、物理的に異なる複数のネットワークとしてもよく、その場合は、通信送受信手段１０が、そのネットワークの数だけ存在することになる。
【００３８】
システム管理手段２０は、自律ストレージ装置２全体の制御を行うものである。ここでは、システム管理手段２０は、コンテンツ格納手段２１と、コンテンツ配信手段２２と、コンテンツ管理手段２３と、制御情報送受信手段２４とを備えている。
【００３９】
コンテンツ格納手段２１は、通信送受信手段１０を介してコンテンツを受信（入力）し記憶手段３０に記憶するものである。ここでは、コンテンツ格納手段２１は、コンテンツ受信手段２１ａと、コンテンツ書き込み手段２１ｂとを備えている。
【００４０】
コンテンツ受信手段２１ａは、通信送受信手段１０を介してコンテンツを受信するものである。このコンテンツ受信手段２１ａは、コンテンツ管理手段２３から通知されるコンテンツの送信元（例えば、クライアントコンピュータ５）から、通信送受信手段１０を介してコンテンツを受信する。このコンテンツ受信手段２１ａで受信されたコンテンツは、コンテンツ書き込み手段２１ｂに出力される。
【００４１】
コンテンツ書き込み手段２１ｂは、コンテンツ受信手段２１ａで受信されたコンテンツを、コンテンツ管理手段２３から指示される記憶手段３０上の書き込みアドレスに書き込むものである。
【００４２】
コンテンツ配信手段２２は、通信送受信手段１０を介して、記憶手段３０に記憶されているコンテンツを、そのコンテンツを要求した要求元（クライアントコンピュータ５）に、当該コンテンツの部分データとなるブロック単位で配信するものである。なお、コンテンツ配信手段２２は、コンテンツを他の自律ストレージ装置に多重化して記憶する場合、コンテンツ管理手段２３から指示されるコンテンツの多重先である他の自律ストレージ装置にコンテンツを配信する。
ここでは、コンテンツ配信手段２２は、コンテンツ／ブロック読み出し手段２２ａと、コンテンツ／ブロック送信手段２２ｂとを備えている。
【００４３】
コンテンツ／ブロック読み出し手段２２ａは、コンテンツ管理手段２３から指示されるコンテンツ、または、当該コンテンツを部分データとなるブロック単位で分割したときのブロックを、記憶手段３０から読み出すものである。
なお、コンテンツ／ブロック読み出し手段２２ａは、コンテンツ管理手段２３からコンテンツ全体を読み出す旨を指示された場合は、記憶手段３０からコンテンツ全体を読み出してコンテンツ／ブロック送信手段２２ｂに出力する。
【００４４】
また、コンテンツ／ブロック読み出し手段２２ａは、コンテンツ管理手段２３からコンテンツをブロックとして部分的に読み出す旨を指示された場合は、記憶手段３０からコンテンツを部分的に読み出してコンテンツ／ブロック送信手段２２ｂに出力する。また、コンテンツ管理手段２３からは、ブロックを特定するアドレスまたは番号が、コンテンツ／ブロック読み出し手段２２ａに対して指示されるものとする。
このブロックの大きさ（データ長）は、例えば、数ＧＢ（ギガバイト）の映像のコンテンツに対して、数百ＫＢ（キロバイト）等、予め定められたデータ長とする。
なお、このブロックの大きさは、一定長である必要はなく、コンテンツの最初からバイトを単位として適応的に割り振った大きさでであって、コンテンツの部分データとなる大きさであればよい。
【００４５】
コンテンツ／ブロック送信手段２２ｂ（ブロック送信手段）は、コンテンツ／ブロック読み出し手段２２ａで読み出されたコンテンツを、コンテンツ管理手段２３から通知される他の自律ストレージ装置に送信したり、同じくコンテンツ／ブロック読み出し手段２２ａで読み出されたブロックを、コンテンツ管理手段２３から通知されるクライアントコンピュータ５に送信したりするものである。なお、コンテンツおよびブロックは、通信送受信手段１０を介して、他の自律ストレージ装置またはクライアントコンピュータ５に送信される。
このように、コンテンツ配信手段２２は、他の自律ストレージ装置にコンテンツを送信する場合には、コンテンツ全体を送信し、クライアントコンピュータ５にコンテンツを送信する場合は、当該自律ストレージ装置２が担当するブロックのみを送信することになる。
【００４６】
コンテンツ管理手段２３は、制御情報送受信手段２４で受信した制御情報に基づいて、コンテンツを管理するものである。ここでは、コンテンツ管理手段２３は、多重コンテンツ書き込み制御手段２３１と、多重コンテンツ読み出し制御手段２３２と、負荷状態監視手段２３３と、経路探索手段２３４とを備えている。
【００４７】
多重コンテンツ書き込み制御手段２３１は、制御情報として、コンテンツの格納要求（「コンテンツ格納要求」）を受信した場合に、当該コンテンツを複数の自律ストレージ装置２に多重化して記憶させる制御を行うものである。
すなわち、多重コンテンツ書き込み制御手段２３１は、コンテンツの格納要求を受信した場合に、他の自律ストレージ装置から、負荷状態（例えば、記憶容量に対する現在記憶されているデータ量の割合等）を制御情報として取得し、負荷の少ない自律ストレージ装置から順に、コンテンツの多重先（記憶元）を決定する。なお、コンテンツの多重先（記憶元）は、記憶元情報として記憶手段３０に記憶しておくとともに、他の自律ストレージ装置に送信することで、各自律ストレージ装置２で同じ情報を記憶しておくものとする。
【００４８】
そして、多重コンテンツ書き込み制御手段２３１は、コンテンツ格納手段２１により、記憶手段３０にそのコンテンツを記憶させる。さらに、多重コンテンツ書き込み制御手段２３１は、そのコンテンツと多重先（記憶元）とを、コンテンツ配信手段２２に通知することで、他の自律ストレージ装置にコンテンツを送信する。
これによって、コンテンツは、複数の自律ストレージ装置２に多重化されて記憶されることになる。なお、ここでは、負荷状態によって、コンテンツの多重先を決定したが、予め定めた複数の自律ストレージ装置２にコンテンツを多重化させることとしてもよい。
【００４９】
多重コンテンツ読み出し制御手段２３２（多重データ読み出し制御装置）は、制御情報として、コンテンツの配信要求（「コンテンツ配信要求」）を受信した場合に、当該コンテンツを記憶している他の自律ストレージ装置と協働して、多重化されたコンテンツの読み出し制御を行うものである。ここでは、多重コンテンツ読み出し制御手段２３２は、役割設定手段２３２ａと、経路確認手段２３２ｂと、送信経路設定手段２３２ｃと、送信実行・要求手段２３２ｄと、完了通知送信手段２３２ｅ、送受信監視手段２３２ｆとを備えている。
【００５０】
役割設定手段２３２ａは、コンテンツの読み出しを行う際に、要求のあったコンテンツを記憶している自律ストレージ装置２の中から、１台の自律ストレージ装置２を読み出し制御を司るコーディネータとして設定するものである。
この役割設定手段２３２ａは、要求のあったコンテンツを記憶している自律ストレージ装置２から、負荷状態（例えば、ＣＰＵ負荷等）を制御情報（負荷情報）として取得し、負荷の最も少ない自律ストレージ装置２をコーディネータとして設定し、その自律ストレージ装置２に対して、制御情報として、コーディネータとなる旨の指示（「コーディネータ移行指示」）を送信するとともに、コンテンツの読み出し制御をそのコーディネータに移行する。なお、コーディネータとなった自律ストレージ装置２は、要求のあったコンテンツを記憶している他の自律ストレージ装置に対して、制御情報として、自身がコーディネータとなった旨の通知（「コーディネータ通知」）を送信する。
【００５１】
経路確認手段２３２ｂは、自身の自律ストレージ装置２がコーディネータである場合に、他の自律ストレージ装置からクライアントコンピュータ５までのネットワークの送信経路の有無を確認するものである。ここでは、経路確認手段２３２ｂは、送信経路が存在する場合に、その送信経路を経路情報として他の自律ストレージ装置から取得することとする。
なお、自律ストレージ装置２がコーディネータである場合には、後記する経路探索手段２３４から自身の自律ストレージ装置２の経路情報を取得し、他の自律ストレージ装置の経路情報は、制御情報として、制御情報送受信手段２４を介して取得する。なお、経路確認手段２３２ｂは、ネットワークＮが複数存在する場合は、そのネットワーク（ポート）ごとに経路情報を取得するものとする。
【００５２】
また、送信経路は、自律ストレージ装置からクライアントコンピュータ５までのネットワーク経路である必要はない。例えば、経路確認手段２３２ｂは、自律ストレージ装置が複数のインターネット用のポートを有している場合に、それぞれのポートがクライアントコンピュータ５と通信できるか否かを事前に確認し、その情報を経路情報として取得することとしてもよい。
この場合、経路確認手段２３２ｂは、自律ストレージ装置が有するすべてのポートにブロックを送出し、伝送障害を検出することによって、当該ポートがクライアントコンピュータ５と通信可能か否かを認識する。
【００５３】
送信経路設定手段２３２ｃは、自身の自律ストレージ装置２がコーディネータである場合に、経路確認手段２３２ｂで取得された経路情報および他の自律ストレージ装置から取得した経路情報に基づいて、コンテンツを当該コンテンツの部分データとなるブロック単位で分割したときのブロックの送信経路を設定するものである。なお、この送信経路設定手段２３２ｃで設定された送信経路は、送信実行・要求手段２３２ｄに出力される。
この送信経路設定手段２３２ｃは、自律ストレージ装置２のポートごとに、経路情報で距離が最も短い経路（例えば、途中のルータの数が最も少ない経路）、あるいは、送信時間が最も短い経路から順番にブロックの送信経路として設定する。
【００５４】
なお、送信経路設定手段２３２ｃは、後記する送受信監視手段２３２ｆから、ブロックの送信が正常に終了した旨の通知があった場合は、当該ブロックを送信したポートに対して、次に送信するブロックの送信経路を設定する。
また、送受信監視手段２３２ｆから、ブロックの送信が正常に終了しなかった旨の通知があった場合、送信経路設定手段２３２ｃは、当該ブロックを他の送信経路に再送用ブロックとして設定し直す。なお、ブロックの送信が正常に終了しなかった送信経路は、ネットワーク負荷の増大等も考えられるため、一時的なビジー状態とみなし、次に送信するブロックの送信経路として設定する。
これによって、ネットワークの負荷が一時的に増大した場合であっても、他のネットワークを経由してブロックが送信されることになる。
また、ブロックの送信が正常に終了しなかった送信経路のビジー状態が継続する場合、送信経路設定手段２３２ｃは、ネットワークに障害が発生したものとみなし、当該送信経路の使用を中止する。
【００５５】
なお、送信経路設定手段２３２ｃは、送信経路（ポート）ごとに、送信を行うブロックと、現在のポートの状態との対応を、送信管理テーブルで管理するものとする。ここで、図３を参照して、送信管理テーブルの内容について説明する。
図３に示すように、送信管理テーブルＴは、ポート（Ｐ１〜Ｐｎ）ごとに、現在割り当てられているブロックを特定するブロック番号ＢＮと、そのポートの現在の状態ＳＴとを対応付けたものである。
【００５６】
ここで、「状態ＳＴ」は、予め定めた値によって意味付けられたものであって、例えば、まだブロックが割り当てられていない状態を示す“空”（値“０”）、ブロック送信後、受信完了通知を待っている状態を示す“受信完了待ち”（値“１”）、障害が発生したことを示す“障害”（値“２”）とする。なお、状態ＳＴが“受信完了待ち”の場合には、さらに、ビジーと判定した回数も同時に「状態ＳＴ」に書き込むこととする。
なお、障害が発生した場合は、「状態ＳＴ」に、通信ができなくなった原因等、その情報を書き込んでおく（図示せず）。これによって、障害が恒久的なものであるのか、一時的なものであるのかを認識することができる。
このように、送信管理テーブルＴを設定することで、現在のポートの状態が一元管理されることになる。
図２に戻って、自律ストレージ装置２に構成ついて説明を続ける。
【００５７】
送信実行・要求手段２３２ｄ（送信要求手段）は、コンテンツを、送信経路設定手段２３２ｃで設定された送信経路に基づいて、ブロック単位で送信したり、他の自律ストレージ装置に送信させたりするものである。
この送信実行・要求手段２３２ｄは、自身の自律ストレージ装置２がコーディネータである場合に、コンテンツ配信手段２２に対して、ブロックを特定する番号等と、コンテンツを要求した要求元とを通知し、ブロックの送信を実行する。また、送信実行・要求手段２３２ｄは、他の自律ストレージ装置に対して、制御情報として、ブロックを特定する番号等と、コンテンツを要求した要求元とを含んだブロックを送信する旨の指示（「ブロック送信要求」）を送信する。これによって、他の自律ストレージ装置からクライアントコンピュータ５に対してブロックが送信される。
【００５８】
また、送信実行・要求手段２３２ｄは、自身の自律ストレージ装置２がコーディネータではない場合は、コーディネータから制御情報として通知される「ブロック送信要求」に基づいて、コンテンツ配信手段２２に対して、ブロックを特定する番号等と、コンテンツを要求した要求元とを通知し、ブロックの送信を実行する。
なお、送信実行・要求手段２３２ｄは、１つずつブロックを送信する必要はなく、予め定めた数のブロックをまとめて送信することとしてもよい。
【００５９】
完了通知送信手段２３２ｅは、クライアントコンピュータ５からブロックが受信されたことを示す通知（「受信完了通知」）を通知された段階で、コーディネータに対してその通知（「受信完了通知」）を転送するものである。
【００６０】
送受信監視手段２３２ｆは、ブロックが、クライアントコンピュータ５に受信されたか否かを監視するものである。
この送受信監視手段２３２ｆは、自身の自律ストレージ装置２がコーディネータである場合に、クライアントコンピュータ５または他の自律ストレージ装置から通知される「受信完了通知」によって、ブロックが正常にクライアントコンピュータ５に受信されたか否かを監視する。
なお、送受信監視手段２３２ｆは、送信したブロックの中で、予め定めた数以上前のブロックに対して、「受信完了通知」が通知されない場合は、送信経路設定手段２３２ｃに対して、ブロックの送信が正常に終了しなかった旨を通知する。
【００６１】
負荷状態監視手段２３３は、自律ストレージ装置２内の負荷状態を監視するものである。ここで、負荷状態とは、例えば、記憶手段３０の記憶容量に対する現在記憶されているデータ量の割合、ＣＰＵの負荷率等である。この負荷状態監視手段２３３で監視を行っている負荷状態は、役割設定手段２３２ａにおいて、コーディネータを決定する際に使用される。
【００６２】
経路探索手段２３４は、通信送受信手段１０から、クライアントコンピュータ５までのネットワークの経路情報を探索するものである。なお、経路探索手段２３４は、例えば、通信送受信手段１０を介して、ネットワークＮにパケットを送出し、パケットがクライアントコンピュータ５に到達するまでの経路と時間を経路情報とする。この経路探索手段２３４で探索された経路情報は、コーディネータとなる自律ストレージ装置２の経路確認手段２３２ｂで収集される。
【００６３】
制御情報送受信手段２４は、通信送受信手段１０を介して、クライアントコンピュータ５や他の自律ストレージ装置と、コンテンツ以外の情報である制御情報を送受信するものである。なお、制御情報送受信手段２４で受信した制御情報は、コンテンツ管理手段２３に出力される。
ここで、制御情報は、例えば、自律ストレージ装置２とクライアントコンピュータ５との間で送受信される、コンテンツを格納する（書き込む）旨の要求を示す「コンテンツ格納要求」、コンテンツを配信する（読み出す）旨の要求を示す「コンテンツ配信要求」等、あるいはこれらの指示に対する応答等である。
【００６４】
さらに、制御情報として、自律ストレージ装置２同士で送受信される、コーディネータとなる旨の指示を示す「コーディネータ移行指示」、ある自律ストレージ装置２がコーディネータになったことを他の自律ストレージ装置に対して通知する「コーディネータ通知」、コーディネータからブロックを送信する旨の要求を示す「ブロック送信要求」等である。
【００６５】
記憶手段３０は、コンテンツ、コンテンツの多重先（記憶元）を示す記憶元情報を記憶するものであって、ハードディスク等の一般的な記憶装置である。
【００６６】
以上説明したように、自律ストレージ装置２を構成することで、コンテンツが多重化されて記憶されるとともに、ネットワークの経路が多重化されるため、システム全体の信頼性を高めることができる。また、ネットワークの経路に負荷が発生した場合であっても、他のネットワーク経路を経由してコンテンツ（ブロック）を送信することができるため、コンテンツの読み出し速度の低下を抑えることができる。
【００６７】
なお、ここでは、ネットワークを多重化した構成としたが、コンテンツの伝送帯域に対してネットワークの帯域が十分確保されている場合は、１つのネットワークによって運用することとしてもよい。この場合であっても、ある自律ストレージ装置に負荷が集中したときに、他の自律ストレージ装置にブロックの転送を切り換えることができ、コンテンツの読み出し速度の低下を抑えることができる。この場合、自律ストレージ装置２から経路確認手段２３２ｂや経路探索手段２３４を省いて構成することができる。
【００６８】
また、自律ストレージ装置２におけるシステム管理手段２０は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等を備えたコンピュータであって、そのコンピュータを、システム管理手段２０内の各手段として機能させるプログラム（多重データ読み出しプログラム）により動作させることができる。
【００６９】
［自律分散型サーバの動作］
次に、図４および図５を参照して、本発明に係る自律分散型サーバの特徴となる多重化されたコンテンツの読み出し動作について説明する。図４は、本発明に係る自律分散型サーバの多重化されたコンテンツの読み出し動作全体を示すフローチャートである。図５は、本発明に係る自律分散型サーバのブロック送信時における詳細な動作を示すフローチャートである。
【００７０】
（全体動作）
まず、図４を参照（適宜図１および図２参照）して、自律分散型サーバ１の多重化コンテンツの読み出し動作について説明する。
最初に、クライアントコンピュータ５が、自律分散型サーバ１のある自律ストレージ装置２（ここでは、自律ストレージ装置２２とする）に対して、コンテンツの配信を要求する「コンテンツ配信要求」を、制御情報として送信する（ステップＳ１）。
そして、「コンテンツ配信要求」を受信した自律ストレージ装置２２は、役割設定手段２３２ａによって、記憶手段３０に記憶されている記憶元情報を参照して、要求のあったコンテンツを記憶している自律ストレージ装置を特定し、その自律ストレージ装置に対して負荷情報（ＣＰＵ負荷）を要求する「負荷情報要求」を制御情報として送信する（ステップＳ２）。なお、ここでは、クライアントコンピュータ５が要求しているコンテンツは、自律ストレージ装置２３および２４に多重化して記憶されているものとする。
【００７１】
この「負荷情報要求」を受信した自律ストレージ装置２３および２４は、それぞれ負荷状態監視手段２３３において監視している負荷状態（負荷情報）を、制御情報（「負荷情報通知」）として制御情報送受信手段２４を介し、自律ストレージ装置２２に送信する（ステップＳ３およびＳ４）。
【００７２】
そして、「負荷情報通知」を受信した自律ストレージ装置２２は、役割設定手段２３２ａによって、負荷の最も少ない自律ストレージ装置２（ここでは、自律ストレージ装置２３とする）をコーディネータとして設定し、その自律ストレージ装置２３に対して、コーディネータとなる旨の指示である「コーディネータ移行指示」を、制御情報として送信する（ステップＳ５）。
【００７３】
この「コーディネータ移行指示」を受信した自律ストレージ装置２３は、役割設定手段２３２ａによって、クライアントコンピュータ５が要求しているコンテンツを記憶している他の自律ストレージ装置（ここでは、自律ストレージ装置２４）に対して、自身がコーディネータになったことを示す「コーディネータ通知」を、制御情報として送信する。さらに、自律ストレージ装置２３は、経路確認手段２３２ｂによって、自律ストレージ装置２４に、経路情報を要求する「経路情報要求」を、制御情報として送信する（ステップＳ６）。
【００７４】
そして、「経路情報要求」を受信した自律ストレージ装置２４は、経路探索手段２３４によって、クライアントコンピュータ５までのネットワーク経路を探索し、その経路を示す経路情報を、制御情報（「経路情報通知」）として制御情報送受信手段２４を介し、コーディネータである自律ストレージ装置２３に送信する（ステップＳ７）。
一方、自律ストレージ装置２３は、クライアントコンピュータ５までのネットワーク経路（経路情報）を経路探索手段２３４によって探索する（ステップＳ８）。
【００７５】
そして、自律ストレージ装置２３は、送信経路設定手段２３２ｃによって、ステップＳ７により受信した自律ストレージ装置２４の経路情報と、ステップＳ８で探索した自身の経路情報とに基づいて、コンテンツを当該コンテンツの部分データとなるブロック単位で分割したときのブロックの送信経路を設定する（ステップＳ９）。
そして、自律ストレージ装置２３は、送信実行・要求手段２３２ｄによって、ブロック番号、クライアントコンピュータ５のアドレス、ブロックを送信する送信経路を含んだ「ブロック送信要求」を、制御情報として自律ストレージ装置２４に送信する（ステップＳ１０）。
【００７６】
この「ブロック送信要求」を受信した自律ストレージ装置２４は、送信実行・要求手段２３２ｄによって、要求のあったブロックをコンテンツ配信手段２２に通知する。そして、自律ストレージ装置２４は、コンテンツ／ブロック読み出し手段２２ａによって、記憶手段３０に記憶されているコンテンツから、要求のあったブロックを読み出し、コンテンツ／ブロック送信手段２２ｂによって、通信送受信手段１０を介して、クライアントコンピュータ５にブロックを送信する（ステップＳ１１）。
【００７７】
一方、自律ストレージ装置２３は、送信実行・要求手段２３２ｄによって、ステップＳ９において自身に設定されたブロックの送信経路により、当該ブロックを送信する旨をコンテンツ配信手段２２に通知する。そして、自律ストレージ装置２３は、コンテンツ／ブロック読み出し手段２２ａによって、記憶手段３０に記憶されているコンテンツから、ブロックを読み出し、コンテンツ／ブロック送信手段２２ｂによって、通信送受信手段１０を介して、クライアントコンピュータ５にブロックを送信する（ステップＳ１２）。
【００７８】
そして、クライアントコンピュータ５は、各自律ストレージ装置２（自律ストレージ装置２３、自律ストレージ装置２４）からブロックを受信し、当該ブロックを受信した旨を示す「受信完了通知」を、制御情報として、各自律ストレージ装置２（自律ストレージ装置２３、自律ストレージ装置２４）に送信する（ステップＳ１３）。また、クライアントコンピュータ５は、受信したブロックを結合し、コンテンツを再生する（ステップ１４）。なお、クライアントコンピュータ５は、図示を省略した記憶手段（バッファ）を備え、予め定めた数のブロックを一時的に記憶し、送信されてくるブロックの順番がずれた場合であっても、コンテンツを再生することが可能であるものとする。
【００７９】
また、「受信完了通知」を受信したコーディネータ以外の自律ストレージ装置２（自律ストレージ装置２４）は、コーディネータ（自律ストレージ装置２３）に対して、「受信完了通知」を転送する（ステップＳ１５）。
そして、自律ストレージ装置２３は、送信実行・要求手段２３２ｄによって、コンテンツの配信が完了したかどうかを判定する（ステップＳ１６）。
そして、まだコンテンツの配信が完了していない場合（ステップＳ１６でＮｏ）、自律ストレージ装置２３は、ステップＳ９に戻って動作を継続する。一方、コンテンツの配信が完了した場合（ステップＳ１６でＹｅｓ）、自律ストレージ装置２３は動作を終了する。
以上の動作によって、自律分散型サーバ１における多重化コンテンツの読み出し動作が完了する。
【００８０】
（ブロック送信の詳細動作）
次に、図３および図５を参照（構成については適宜図１および図２参照）して、自律分散型サーバ１のブロック送信時における障害等を考慮した詳細な動作について説明する。なお、図５の動作は、図４のステップＳ９、Ｓ１０、Ｓ１２およびＳ１６に相当する。
【００８１】
まず、コーディネータ（自律ストレージ装置２３）は、送信経路設定手段２３２ｃによって、送信するブロックの番号を示す送信対象ブロック番号（ｉ：変数）を初期化（値“１”）する（ステップＳ２１）。
そして、自律ストレージ装置２３は、送信経路設定手段２３２ｃによって、送信管理テーブルＴの送信経路を示す各ポート（ポート番号１〜ｎ）のブロック番号ＢＮに送信対象ブロック番号を順次設定し、各ポートの状態ＳＴに“受信完了待ち”を設定する（ステップＳ２２）。このとき、さらに、状態ＳＴのビジー回数を初期化（値“０”）しておく（ステップとして図示せず）。
【００８２】
そして、自律ストレージ装置２３は、送信実行・要求手段２３２ｄによって、各ブロックの送信を行う（ステップＳ２３）。すなわち、送信実行・要求手段２３２ｄは、ブロックを送信する旨をコンテンツ配信手段２２または他の自律ストレージ装置（ここでは自律ストレージ装置２４）に通知する。
ここで、送信経路設定手段２３２ｃは、送信対象ブロック番号ｉを“ｎ＋１”とし、次に送信するブロックの番号を更新しておく（ステップＳ２４）。
【００８３】
そして、自律ストレージ装置２３は、送受信監視手段２３２ｆにおいて、クライアントコンピュータ５または自律ストレージ装置２４から「受信完了通知」を受信するまで待機する（ステップＳ２５）。そして、「受信完了通知」を受信した段階で（ステップＳ２５でＹｅｓ）、送信経路設定手段２３２ｃは、「受信完了通知」を受信したポートに対応する送信管理テーブルＴの状態ＳＴに“空”を設定する（ステップＳ２６）。
ここで、送信経路設定手段２３２ｃは、これから送信しようとするブロックの番号（送信対象ブロック番号ｉ）と、まだ受信完了通知が受信されていないブロックの最小の番号（“受信完了待ち”ブロック番号）との差分をとることで、遅延が発生しているブロックの間隔（遅延ブロック数）を算出する（ステップＳ２７）。
【００８４】
そして、自律ストレージ装置２３は、送信経路設定手段２３２ｃによって、遅延ブロック数と、ビジー状態を判定するために予め定めた閾値（ビジー判定閾値）とを比較する（ステップＳ２８）。
ここで、遅延ブロック数がビジー判定閾値より小さい場合（ステップＳ２８でＹｅｓ）、送信経路設定手段２３２ｃは、当該ポートがビジー状態となっていないと判定し、送信管理テーブルＴの状態ＳＴに“空”が設定されているポートのブロック番号ＢＮに送信対象ブロック番号ｉ、状態ＳＴに“受信完了待ち”を設定するとともに、ビジー回数を初期化（値“０”）する（ステップＳ２９）。
そして、自律ストレージ装置２３は、送信実行・要求手段２３２ｄによって、送信対象ブロック番号ｉのブロックの送信を行い（ステップＳ３０）、送信経路設定手段２３２ｃによって、送信対象ブロック番号ｉを“ｉ＋１”とし、次に送信するブロックの番号を更新する（ステップＳ３１）。そして、自律ストレージ装置２３は、ステップＳ４０に動作を進める。
【００８５】
一方、遅延ブロック数がビジー判定閾値以上である場合（ステップＳ２８でＮｏ）、まだ受信完了通知が受信されていないブロック（“受信完了待ち”ブロック）の状態ＳＴのビジー回数と、障害を判定するために予め定めた閾値（障害判定閾値）とを比較する（ステップＳ３２）。
ここで、ビジー回数が障害判定閾値より小さい場合（ステップＳ３２でＹｅｓ）、送信経路設定手段２３２ｃは、“受信完了待ち”が設定されているポートのブロック番号ＢＮに送信対象ブロック番号ｉを設定する。そして、状態ＳＴのビジー回数を増加（＋１）させる（ステップＳ３３）。そして、送信実行・要求手段２３２ｄは、送信対象ブロック番号ｉのブロックの送信を行う（ステップＳ３４）。
【００８６】
そして、自律ストレージ装置２３は、送信経路設定手段２３２ｃによって、送信管理テーブルＴの状態ＳＴに“空”が設定されているポートのブロック番号ＢＮに、受信完了通知が受信されていないブロックの番号（受信完了待ちブロック番号）、状態ＳＴに“受信完了待ち”を設定するとともに、ビジー回数を初期化（値“０”）する（ステップＳ３５）。そして、送信実行・要求手段２３２ｄによって、受信完了通知が受信されていないブロックの再送信を行い（ステップＳ３６）、ステップＳ３１に進む。
【００８７】
一方、ビジー回数が障害判定閾値以上である場合（ステップＳ３２でＮｏ）、自律ストレージ装置２３は、送信経路設定手段２３２ｃによって、当該ポートに障害が発生したと判定し、当該ポートの状態ＳＴに“障害”を設定する（ステップＳ３７）。
また、自律ストレージ装置２３は、送信経路設定手段２３２ｃによって、送信管理テーブルＴの状態ＳＴに“空”が設定されているポートのブロック番号ＢＮに、受信完了通知が受信されていないブロックの番号（受信完了待ちブロック番号）、状態ＳＴに“受信完了待ち”を設定するとともに、ビジー回数を初期化（値“０”）する（ステップＳ３８）。そして、送信実行・要求手段２３２ｄによって、受信完了通知が受信されていないブロックの再送信を行い（ステップＳ３９）、ステップＳ４０に進む。
【００８８】
そして、自律ストレージ装置２３は、送信実行・要求手段２３２ｄによって、コンテンツの配信が完了したかどうかを判定する（ステップＳ４０）。
そして、まだコンテンツの配信が完了していない場合（ステップＳ４０でＮｏ）、自律ストレージ装置２３は、ステップＳ２５に戻って動作を継続する。一方、コンテンツの配信が完了した場合（ステップＳ４０でＹｅｓ）、自律ストレージ装置２３は動作を終了する。
【００８９】
以上の動作によって、コーディネータ（自律ストレージ装置２３）は、ブロックがクライアントコンピュータ５に早く到達した送信経路（ポート）から順次、次のブロックを割り当てるため、あるネットワーク経路や、自律ストレージ装置に負荷が集中している場合であっても、それを回避してブロックの送信を行うことができる。
【００９０】
（ブロック送信の具体例）
ここで、図６を参照（適宜図１参照）して、自律分散型サーバ１が行うブロックの送信について、具体例を示して説明を行う。図６は、ブロック送信の具体例を説明するための図であって、（ａ）は、コンテンツとポートの関係を示し、（ｂ）は、ブロックの送信順序を示している。
【００９１】
図６（ａ）に示すように、ここでは、自律分散型サーバ１内の自律ストレージ装置２（２１および２２）にコンテンツが多重化され、各自律ストレージ装置２は、それぞれ、Ｐ１〜Ｐ３およびＰ４〜Ｐ６の３つずつのポートを備えている例を示している。
ここで、図６（ｂ）の（ｂ−１）に示すように、自律分散型サーバ１は、ポートＰ１、Ｐ２、Ｐ３、…、Ｐ６から、ブロックＢ１、Ｂ２、Ｂ３、…、Ｂ６を、それぞれ、この送信順序でクライアントコンピュータ５に送信する。このとき、クライアントコンピュータ５に受信された順番（受信完了順序）が、ブロックＢ３、Ｂ５、Ｂ２、Ｂ４、Ｂ６であったとする。なお、この段階では、まだ、ブロックＢ１は受信が完了していないものとする。
【００９２】
このとき、図６（ｂ）の（ｂ−２）に示すように、自律分散型サーバ１は、次に送信するブロックＢ７を、最も早く受信が完了したポートＰ３により行う。
以下、図６（ｂ）の（ｂ−３）に示すように、順次、クライアントコンピュータ５に受信された順番によって、送信するポートを切り換えてブロックを送信する。これによって、ネットワーク経路や個々の自律ストレージ装置の負荷の影響を最小限に抑えて、コンテンツの配信を行うことができる。
【図面の簡単な説明】
【００９３】
【図１】本発明に係る自律分散型サーバの構成を示す構成図である。
【図２】本発明に係る自律ストレージ装置のブロック構成を示すブロック図である。
【図３】本発明に係る自律ストレージ装置の送信経路設定手段が管理する送信管理テーブルの一例を示す図である。
【図４】本発明に係る自律分散型サーバの多重化コンテンツの読み出し動作全体を示すフローチャートである。
【図５】本発明に係る自律分散型サーバのブロック送信時における詳細な動作を示すフローチャートである。
【図６】ブロック送信の具体例を説明するための図であって、（ａ）は、コンテンツとポートの関係を示し、（ｂ）は、ブロックの送信順序を示している。
【図７】従来の分散型サーバのシステム構成例を示す構成図である。
【図８】従来の自律分散型サーバのシステム構成例を示す構成図である。
【符号の説明】
【００９４】
１        自律分散型サーバ
２        自律ストレージ装置（ストレージ装置）
５        クライアントコンピュータ（データ参照装置）
１０      通信送受信手段
２０      システム管理手段
２１      コンテンツ格納手段
２１ａ    コンテンツ受信手段
２１ｂ    コンテンツ書き込み手段
２２      コンテンツ配信手段
２２ａ    コンテンツ／ブロック読み出し手段
２２ｂ    コンテンツ／ブロック送信手段（ブロック送信手段）
２３      コンテンツ管理手段
２３１    多重コンテンツ書き込み制御手段
２３２    多重コンテンツ読み出し制御手段（多重データ読み出し制御装置）
２３２ａ  役割設定手段
２３２ｂ  経路確認手段
２３２ｃ  送信経路設定手段
２３２ｄ  送信実行・要求手段（送信要求手段）
２３２ｅ  完了通知送信手段
２３２ｆ  送受信監視手段
２３３    負荷状態監視手段
２３４    経路探索手段
２４      制御情報送受信手段
３０      記憶手段
【図１】
2007065713.tif 000003
【図２】
2007065713.tif 000004
【図３】
2007065713.tif 000005
【図４】
2007065713.tif 000006
【図５】
2007065713.tif 000007
【図６】
2007065713.tif 000008
【図７】
2007065713.tif 000009
【図８】
2007065713.tif 000010