(57)【要約】【課題】配信データを配信するサーバの負荷軽減を図りつつ、当該配信データの連続性を確保できるようにする。【解決手段】カメラサーバ１１１では、配信データを中継するための中継サーバ（カメラサーバ１１２）を選定し（Ｓ６０４〜Ｓ６０７）、自装置が高負荷状態の場合に、中継サーバ１１２を中継して、順番情報を付与した配信データを配信する。この際、カメラサーバ１１１では、クライアント１２１、１２２に対して、サーバ切替え通知を行う（Ｓ６０８、Ｓ６０９）。クライアント１２１、１２２では、カメラサーバ１１１から配信データを受信している状態で、サーバ切替え通知を受けた場合に、カメラサーバ１１１から最後に受信した配信データの順番情報に示される順番の次の順番に係る情報を、中継サーバ１１２に配信要求として送信する（Ｓ６１０、Ｓ６１２）。【選択図】図６
2009260569.tif 000002
【特許請求の範囲】
【請求項１】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムであって、
前記サーバは、
前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定手段と、
順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信手段と、
前記配信手段で前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して、前記中継サーバを中継して前記配信データを配信するための通知を行う通知手段と
を有し、
前記クライアントは、
前記サーバまたは前記中継サーバから前記配信データを受信する受信手段と、
前記受信手段で前記サーバから前記配信データを受信している状態で、前記通知手段による通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替え手段と、
前記サーバ切替え手段で前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信手段と
を有することを特徴とするデータ配信システム。
【請求項２】
前記ネットワークには、前記クライアントとして複数のクライアントが接続されており、
前記サーバは、前記複数のクライアントの中から、前記中継サーバを介して前記配信データを配信する、一または複数のクライアントを選定するクライアント選定手段を更に有することを特徴とする請求項１に記載のデータ配信システム。
【請求項３】
前記サーバは、前記クライアントが前記サーバ切替え手段によるサーバの切替えにより通信を中断した場合、前記クライアントに最後に配信した配信データの前記順番情報を保持しておき、前記配信手段は、当該保持している順番情報の次の順番を示す順番情報が付与された配信データを前記中継サーバに送信することを特徴とする請求項１又は２に記載のデータ配信システム。
【請求項４】
前記サーバは、前記クライアントが前記サーバ切替え手段によるサーバの切替えを行う際に、一定期間は、当該サーバによる前記配信データの配信と前記中継サーバを介した前記配信データの配信との重複配信を許可することを特徴とする請求項１乃至３のいずれか１項に記載のデータ配信システム。
【請求項５】
前記中継サーバは、自装置の負荷状態に応じて前記サーバに前記配信データの中継配信の停止を通知し、前記サーバに前記中継配信の停止を通知した場合に、前記クライアントに対して、前記サーバに前記配信データにおける配信要求を送信するための通知をすることを特徴とする請求項１乃至４のいずれか１項に記載のデータ配信システム。
【請求項６】
前記クライアント選定手段は、前記複数のクライアントの中からクライアントを選定する際に、同一の前記配信データを受信している複数のクライアントを優先して選定する、または、リアルタイム性が低いクライアントを優先して選定することを特徴とする請求項２に記載のデータ配信システム。
【請求項７】
前記配信手段は、自装置の負荷状態が所定の閾値よりも高い負荷状態の場合に、前記中継サーバに前記配信データを配信することを特徴とする請求項１乃至６のいずれか１項に記載のデータ配信システム。
【請求項８】
前記中継サーバは、自装置の負荷状態が所定の閾値よりも高い負荷状態の場合に、前記サーバに前記配信データの中継配信の停止を通知することを特徴とする請求項５に記載のデータ配信システム。
【請求項９】
前記自装置の負荷状態は、前記クライアントの数、前記配信データの種類、及び、ＣＰＵの負荷のうちの少なくとも１つを指標とするものであることを特徴とする請求項７又は８に記載のデータ配信システム。
【請求項１０】
前記中継サーバとなり得る機器としては、前記ネットワークに接続されたサーバ、ルータ、クライアント及び専用サーバを含むことを特徴とする請求項１乃至９のいずれか１項に記載のデータ配信システム。
【請求項１１】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムのデータ配信方法であって、
前記サーバでは、
前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定ステップと、
順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信ステップと、
前記配信ステップで前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して、前記中継サーバを中継して前記配信データを配信するための通知を行う通知ステップと
を行い、
前記クライアントでは、
前記サーバまたは前記中継サーバから前記配信データを受信手段で受信する受信ステップと、
前記受信手段で前記サーバから前記配信データを受信している状態で、前記通知ステップによる通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替えステップと、
前記サーバ切替えステップで前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信ステップと
を行うことを特徴とするデータ配信方法。
【請求項１２】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記サーバであって、
前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定手段と、
順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信手段と、
前記配信手段で前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して前記中継サーバの情報を通知する通知手段と
を有することを特徴とするサーバ。
【請求項１３】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記クライアントであって、
前記サーバ、または、当該サーバにおいて前記ネットワークに接続された他のサーバの中から選定された中継サーバから、順番情報が付与された前記配信データを受信する受信手段と、
前記受信手段で前記サーバから前記配信データを受信している状態で、当該サーバから、前記中継サーバを中継して前記配信データを配信するための通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替え手段と、
前記サーバ切替え手段で前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信手段と
を有することを特徴とするクライアント。
【請求項１４】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記サーバの制御方法であって、
前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定ステップと、
順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信ステップと、
前記配信ステップで前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して前記中継サーバの情報を通知する通知ステップと
を有することを特徴とするサーバの制御方法。
【請求項１５】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記クライアントの制御方法であって、
前記サーバ、または、当該サーバにおいて前記ネットワークに接続された他のサーバの中から選定された中継サーバから、順番情報が付与された前記配信データを受信手段で受信する受信ステップと、
前記受信手段で前記サーバから前記配信データを受信している状態で、当該サーバから、前記中継サーバを中継して前記配信データを配信するための通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替えステップと、
前記サーバ切替えステップで前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信ステップと
を有することを特徴とするクライアントの制御方法。
【請求項１６】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記サーバの制御方法をコンピュータに実行させるためのプログラムであって、
前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定ステップと、
順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信ステップと、
前記配信ステップで前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して前記中継サーバの情報を通知する通知ステップと
をコンピュータに実行させるためのプログラム。
【請求項１７】
画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記クライアントの制御方法をコンピュータに実行させるためのプログラムであって、
前記サーバ、または、当該サーバにおいて前記ネットワークに接続された他のサーバの中から選定された中継サーバから、順番情報が付与された前記配信データを受信手段で受信する受信ステップと、
前記受信手段で前記サーバから前記配信データを受信している状態で、当該サーバから、前記中継サーバを中継して前記配信データを配信するための通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替えステップと、
前記サーバ切替えステップで前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信ステップと
をコンピュータに実行させるためのプログラム。
【請求項１８】
請求項１６又は１７に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデータの配信を行うデータ配信システム及びデータ配信方法に関するものである。さらに、本発明は、データ配信システムを構成するクライアント及びサーバ、これらの制御方法、当該制御方法をコンピュータに実行させるためのプログラム、並びに、当該プログラムを記憶したコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
近年、インターネットなどのＩＰ（Internet Protocol）ネットワークを利用したデータ配信システムが増加してきている。このデータ配信システムは、例えば、スキー場や動物園の状況を配信するインターネットサイトに採用されており、他にも、店舗監視やビル監視などに採用されている。このデータ配信システムの具体例として、ネットワークカメラを用いたデータ配信システムが存在している。
【０００３】
上述したデータ配信システムは、例えば、ネットワークカメラなどのサーバと、画像データや音声データなどの配信データを表示、再生、蓄積等するクライアントから構成され、各クライアントが所望のサーバに直接要求し、配信データを受信する。このため、１台のサーバが複数のクライアントに対して同じデータを配信する場合が発生する。
【０００４】
これらに対する先行技術としては、例えば、下記の特許文献１に示す技術などが挙げられる。具体的に、特許文献１では、各仮想計算機で実行するＷｅｂサーバプログラムの負荷を監視し、負荷が増大した仮想計算機における配信データを負荷に余裕のある仮想計算機に転送することで、負荷分散を実現している。
【０００５】
【特許文献１】特開２００２−１４０２０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、データ配信システムにおいて、特定のサーバが多数のクライアントにデータを配信している場合には、サーバの１クライアント当りの配信能力が低下するという問題があった。また、上述したネットワークカメラを用いたデータ配信システムでは、多数のクライアントが１台のネットワークカメラにデータの配信を要求すると、画像データの配信フレームレートの低下や音声データの到着遅延などの問題が発生していた。この場合、ネットワークカメラのような比較的処理能力の低い機器がサーバとなっている場合には、一般のＷｅｂサーバよりも少ないクライアント数でこのような問題が発生する。
【０００７】
さらに、従来においては、例えば、サーバから直接、配信データを配信している際に、当該サーバの負荷分散を目的して負荷に余裕のあるサーバを中継して配信する処理に切替えた場合、配信データの連続性を確保することが困難であるという問題があった。
【０００８】
即ち、従来では、配信データを配信するサーバの負荷軽減を図りつつ、当該配信データの連続性を確保することが困難であるという問題があった。
【０００９】
本発明は上述した問題点に鑑みてなされたものであり、配信データを配信するサーバの負荷軽減を図りつつ、当該配信データの連続性を確保できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のデータ配信システムは、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムであって、前記サーバは、前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定手段と、順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信手段と、前記配信手段で前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して、前記中継サーバを中継して前記配信データを配信するための通知を行う通知手段とを有し、前記クライアントは、前記サーバまたは前記中継サーバから前記配信データを受信する受信手段と、前記受信手段で前記サーバから前記配信データを受信している状態で、前記通知手段による通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替え手段と、前記サーバ切替え手段で前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信手段とを有する。
【００１１】
本発明のデータ配信方法は、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムのデータ配信方法であって、前記サーバでは、前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定ステップと、順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信ステップと、前記配信ステップで前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して、前記中継サーバを中継して前記配信データを配信するための通知を行う通知ステップとを行い、前記クライアントでは、前記サーバまたは前記中継サーバから前記配信データを受信手段で受信する受信ステップと、前記受信手段で前記サーバから前記配信データを受信している状態で、前記通知ステップによる通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替えステップと、前記サーバ切替えステップで前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信ステップとを行う。
【００１２】
本発明のサーバは、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記サーバであって、前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定手段と、順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信手段と、前記配信手段で前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して前記中継サーバの情報を通知する通知手段とを有する。
【００１３】
本発明のクライアントは、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記クライアントであって、前記サーバ、または、当該サーバにおいて前記ネットワークに接続された他のサーバの中から選定された中継サーバから、順番情報が付与された前記配信データを受信する受信手段と、
前記受信手段で前記サーバから前記配信データを受信している状態で、当該サーバから、前記中継サーバを中継して前記配信データを配信するための通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替え手段と、前記サーバ切替え手段で前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信手段とを有する。
【００１４】
本発明のサーバの制御方法は、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記サーバの制御方法であって、前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定ステップと、順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信ステップと、前記配信ステップで前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して前記中継サーバの情報を通知する通知ステップとを有する。
【００１５】
本発明のクライアントの制御方法は、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記クライアントの制御方法であって、前記サーバ、または、当該サーバにおいて前記ネットワークに接続された他のサーバの中から選定された中継サーバから、順番情報が付与された前記配信データを受信手段で受信する受信ステップと、前記受信手段で前記サーバから前記配信データを受信している状態で、当該サーバから、前記中継サーバを中継して前記配信データを配信するための通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替えステップと、前記サーバ切替えステップで前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信ステップとを有する。
【００１６】
本発明のプログラムは、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記サーバの制御方法をコンピュータに実行させるためのプログラムであって、前記ネットワークに接続された他のサーバの中から前記配信データを中継するための中継サーバを選定する中継サーバ選定ステップと、順番情報を付与した前記配信データを、自装置の負荷状態に応じて前記クライアントまたは前記中継サーバに配信する配信ステップと、前記配信ステップで前記中継サーバに前記配信データを配信する場合に、前記クライアントに対して前記中継サーバの情報を通知する通知ステップとをコンピュータに実行させるためのものである。
【００１７】
本発明のプログラムの他の態様は、画像データ及び音声データのうちの少なくとも１つを配信データとして配信する複数のサーバと、前記配信データを受信するクライアントとがネットワークを介して接続されたデータ配信システムにおける前記クライアントの制御方法をコンピュータに実行させるためのプログラムであって、前記サーバ、または、当該サーバにおいて前記ネットワークに接続された他のサーバの中から選定された中継サーバから、順番情報が付与された前記配信データを受信手段で受信する受信ステップと、前記受信手段で前記サーバから前記配信データを受信している状態で、当該サーバから、前記中継サーバを中継して前記配信データを配信するための通知を受けた場合に、前記受信手段による前記配信データの受信を前記サーバから前記中継サーバに切替えるサーバ切替えステップと、前記サーバ切替えステップで前記中継サーバに切替える際に、前記受信手段で最後に受信した前記配信データの前記順番情報に示される順番の次の順番に係る情報を前記中継サーバに送信する送信ステップとをコンピュータに実行させるためのものである。
【００１８】
本発明のコンピュータ読み取り可能な記憶媒体は、前記プログラムを記憶する。
【発明の効果】
【００１９】
本発明によれば、配信データを配信するサーバの負荷軽減を図ると共に、当該配信データの連続性を確保することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態について、添付図面を用いながら説明する。なお、以下に示す本発明の実施形態においては、配信データとして、主として画像データを適用した例について説明を行うが、音声データを適用することも可能である。この際、音声データの配信処理は、画像データの配信処理とデータの内容が異なるだけで同列に扱うことが可能である。
【００２１】
図１は、本発明の実施形態に係るデータ配信システムの概略構成の一例を示す模式図である。
図１に示すデータ配信システム１００は、複数のカメラサーバ１１１及び１１２と、複数のクライアント１２１及び１２２と、これらの装置を通信可能に接続するネットワーク１３０を有して構成されている。
【００２２】
カメラサーバ１１１及び１１２は、画像データ及び音声データのうちの少なくとも１つを配信データとして配信するものであり、本実施形態では、主として、画像データを配信データとして配信する。このカメラサーバ１１１及び１１２は、撮影画角が可変もしくは撮影画角が固定のカメラを備えており、撮影により得られた画像データを、ネットワーク１３０を介して配信することが可能に構成されている。また、カメラサーバ１１１とカメラサーバ１１２とは、それぞれ、独立の動作を行う。
【００２３】
クライアント１２１及び１２２は、カメラサーバ１１１または１１２から配信される配信データ（本実施形態では、主として画像データ）を受信して取得するものである。例えば、クライアント１２１及び１２２は、ネットワーク１３０を介して、カメラサーバ１１１及び１１２に対して個別にアクセスし、ライブ画像の画像データまたは蓄積画像の画像データ等を受信して取得する。
【００２４】
なお、図１では、説明の簡略化のために、カメラサーバとクライアントの台数は２台としているが、３台以上あっても構わない。また、例えば、クライアント１２１及び１２２以外にも、カメラサーバ１１１及び１１２にアクセスして、画像データの受信及び蓄積を行う他のクライアントがあっても構わない。
【００２５】
ネットワーク１３０は、例えば、Ethernet（登録商標）等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される通信媒体である。本実施形態のネットワーク１３０は、各サーバ・クライアント間の通信が支障なく行えるものであれば、その通信規格、規模及び構成は何ら制約されることなく適用可能である。したがって、ネットワーク１３０としては、例えば、インターネットからＬＡＮ（Local Area Network）にまで適用可能である。
【００２６】
図２は、図１に示すカメラサーバ１１１及び１１２の内部構成の一例を示すブロック図である。
カメラサーバ１１１及び１１２は、その内部に内部バス２０１が構成されている。そして、カメラサーバ１１１及び１１２は、内部バス２０１に接続された、ＣＰＵ２００、１次記憶装置２１０、２次記憶装置２２０、及び、各種のインターフェース（Ｉ／Ｆ）２３０〜２５０を有して構成されている。具体的に、カメラサーバ１１１及び１１２には、各種のＩ／Ｆとして、画像キャプチャＩ／Ｆ２３０、音声キャプチャＩ／Ｆ２４０、及び、ネットワークＩ／Ｆ２５０が構成されている。さらに、カメラサーバ１１１及び１１２は、画像キャプチャＩ／Ｆ２３０に接続されたカメラ２６０、及び、音声キャプチャＩ／Ｆ２４０に接続されたマイク２７０を有して構成されている。
【００２７】
ＣＰＵ２００は、当該カメラサーバにおける動作を統括的に制御するものである。
【００２８】
１次記憶装置２１０は、例えば、ＲＡＭに代表される書き込み可能な高速の記憶装置である。この１次記憶装置２１０は、例えば、ＯＳ（オペレーティングシステム）や各種のプログラム及び各種のデータ等がロードされ、また、ＣＰＵ２００がＯＳや各種のプログラム等を実行する際の作業領域としても使用される。
【００２９】
２次記憶装置２２０は、例えば、ＦＤＤやＨＤＤ、フラッシュメモリ、ＣＤ−ＲＯＭドライブ等に代表される不揮発性の記憶装置である。この２次記憶装置２２０は、ＯＳや各種のプログラム及び各種のデータ等の永続的な記憶領域として使用される他に、短期的な各種のデータ等の記憶領域としても使用される。
【００３０】
画像キャプチャＩ／Ｆ２３０は、接続されているカメラ２６０で撮影された画像の画像データを所定のフォーマットに変換・圧縮して、例えば、１次記憶装置２１０に転送する。
【００３１】
音声キャプチャＩ／Ｆ２４０は、接続されているマイク２７０で集音された音声の音声データを所定のフォーマットに変換・圧縮して、例えば、１次記憶装置２１０に転送する。
【００３２】
ネットワークＩ／Ｆ２５０は、図１に示すネットワーク１３０と接続するためのインターフェースであり、ネットワーク１３０を介して、クライアント１２１及び１２２等との通信を担う。
【００３３】
図３は、図１に示すクライアント１２１及び１２２の内部構成の一例を示すブロック図である。
クライアント１２１及び１２２は、その内部に内部バス３０１が構成されている。そして、クライアント１２１及び１２２は、内部バス３０１に接続された、ＣＰＵ３００、１次記憶装置３１０、２次記憶装置３２０、ユーザ入出力Ｉ／Ｆ３３０、及び、ネットワークＩ／Ｆ３４０を有して構成されている。さらに、クライアント１２１及び１２２は、ユーザ入出力Ｉ／Ｆ３３０に接続された入出力機器（Ｉ／Ｏ機器）３５０を有して構成されている。
【００３４】
ＣＰＵ３００は、当該クライアントにおける動作を統括的に制御するものである。
【００３５】
１次記憶装置３１０は、例えば、ＲＡＭに代表される書き込み可能な高速の記憶装置である。この１次記憶装置３１０は、例えば、ＯＳや各種のプログラム及び各種のデータ等がロードされ、また、ＣＰＵ３００がＯＳや各種のプログラム等を実行する際の作業領域としても使用される。
【００３６】
２次記憶装置３２０は、例えば、ＦＤＤやＨＤＤ、フラッシュメモリ、ＣＤ−ＲＯＭドライブ等に代表される不揮発性の記憶装置である。この２次記憶装置３２０は、ＯＳや各種のプログラム及び各種のデータ等の永続的な記憶領域として使用される他に、短期的な各種のデータ等の記憶領域としても使用される。
【００３７】
ユーザ入出力Ｉ／Ｆ３３０は、接続されているＩ／Ｏ機器３５０を介してユーザとの入出力を司るものである。
【００３８】
ネットワークＩ／Ｆ３４０は、図１に示すネットワーク１３０と接続するためのインターフェースであり、ネットワーク１３０を介して、カメラサーバ１１１及び１１２等との通信を担う。
【００３９】
Ｉ／Ｏ機器３５０は、例えば、キーボード、マウス、ディスプレイ等から構成される入出力機器である。
【００４０】
次に、カメラサーバ１１１及び１１２の１次記憶装置２１０に記憶される各種のプログラム等について説明する。
【００４１】
図４は、図２に示すカメラサーバ１１１及び１１２の１次記憶装置２１０に記憶される各種のプログラム等の一例を示す模式図である。ここで、各種のプログラム等の１次記憶装置２１０における位置（番地）や大きさは、ＯＳ４００が管理する。
【００４２】
図４に示すように、本実施形態では、１次記憶装置２１０に、ＯＳ４００、中継サーバ選定プログラム４１０、中継クライアント選定プログラム４２０、中継サーバ通知プログラム４３０、及び、配信プログラム４４０がロードされる。さらに、本実施形態では、１次記憶装置２１０に、中継配信プログラム４５０、サーバリスト管理プログラム４６０、及び、負荷監視プログラム４７０がロードされる。
【００４３】
ＯＳ４００は、当該カメラサーバの全体を制御するための基本プログラムである。
【００４４】
中継サーバ選定プログラム４１０は、自装置が所属するサーバ群の中から、配信データの配信処理を代わりに行うことが可能な中継サーバを選定する処理を行う。具体的には、保持するサーバリストに示されている各サーバから負荷状態を取得し、取得した各サーバの負荷状態に基づいて中継配信が可能と予想できるサーバを選定して、当該サーバに中継処理が可能か否かを問い合わせる処理を行う。ここで、中継サーバになり得る機器としては、カメラサーバに限らず、ルータ、クライアント、専用サーバなども適用することができ、その形態、処理能力を問わない。
【００４５】
中継クライアント選定プログラム４２０は、当該カメラサーバが配信処理中のクライアントの中から、中継サーバ経由で配信データを配信するクライアント（中継クライアント）を選定する処理を行う。具体的には、同一データを受信している複数のクライアントや、蓄積用途などの高いリアルタイム性が要求されていない（即ち、リアルタイム性が低い）クライアント等を優先して選定する。
【００４６】
中継サーバ通知プログラム４３０は、中継クライアント選定プログラム４２０の処理で選定された１台または複数台のクライアントに対して、中継サーバ選定プログラム４１０の処理で選定された中継サーバの情報を含むサーバ切替え通知を送信する処理を行う。
【００４７】
配信プログラム４４０は、各種のクライアントからのリクエストに応じて、例えば、カメラ２６０によって撮影した画像の画像データや、２次記憶装置２２０に保存した撮影済みの画像データをレスポンスとして配信する処理を行う。
【００４８】
また、配信プログラム４４０は、負荷監視プログラム４７０の処理で得られた自装置の負荷状態を示す値を取得し、当該負荷状態を示す値が所定の閾値を超えたか否かを判断する処理を行う。そして、配信プログラム４４０は、自装置の負荷状態を示す値が所定の閾値を超えた場合には、自装置の配信クライアントを中継サーバに移管することで処理負荷を低減する処理を行う。この際、配信プログラム４４０は、中継サーバ選定プログラム４１０、中継クライアント選定プログラム４２０及び中継サーバ通知プログラム４３０と連携して、上述した処理負荷を低減する処理を行う。
【００４９】
中継配信プログラム４５０は、自装置が中継サーバとして動作する際に、配信元サーバから配信データを取得して、所定のクライアントに配信する処理を行う。
【００５０】
サーバリスト管理プログラム４６０は、自装置が保持するサーバ情報一覧を管理する処理を行うプログラムである。具体的には、予め自装置に入力されたサーバ情報一覧を設定し管理する、または、ネットワークを検索して得られた複数のサーバにおけるサーバ情報一覧を生成・更新して管理する処理を行う。
【００５１】
負荷監視プログラム４７０は、自装置の処理負荷を常時監視する処理を行うプログラムである。例えば、負荷監視プログラム４７０は、自装置で配信接続しているクライアントの数、配信データの配信ビットレート、配信データの種類及びそのサイズ、並びに、ＣＰＵ２００の負荷等のうちの少なくとも１つを指標として、自装置の負荷状態を監視する処理を行う。
【００５２】
次に、クライアント１２１及び１２２の１次記憶装置３１０に記憶される各種のプログラム等について説明する。
【００５３】
図５は、図３に示すクライアント１２１及び１２２の１次記憶装置３１０に記憶される各種のプログラム等の一例を示す模式図である。ここで、各種プログラム等の１次記憶装置３１０における位置（番地）や大きさは、ＯＳ５００が管理する。
【００５４】
図５に示すように、本実施形態では、１次記憶装置３１０に、ＯＳ５００、配信データ受信プログラム５１０、及び、サーバ切替えプログラム５２０がロードされる。
【００５５】
ＯＳ５００は、当該カメラサーバの全体を制御するための基本プログラムである。
【００５６】
配信データ受信プログラム５１０は、カメラサーバ１１１またはカメラサーバ１１２から直接、配信データを受信する、或いは、中継サーバ経由で配信データを受信する処理を行うプログラムである。受信した配信データは、例えば、Ｉ／Ｏ機器３５０のディスプレイなどに表示され、或いは、２次記憶装置３２０に蓄積される。
【００５７】
サーバ切替えプログラム５２０は、サーバ切替え通知を受信した際に動作するプログラムであり、現在通信中のサーバとの通信を終了（中断）し、通知されたサーバとの通信を開始する処理を行う。
【００５８】
次に、図１に示すデータ配信システム１００によるデータ配信方法の処理手順について説明する。
【００５９】
図６は、図１に示すデータ配信システム１００によるデータ配信方法の処理手順の一例を示すシーケンス図である。この図６に示す処理は、カメラサーバの場合には、例えば、ＣＰＵ２００が１次記憶装置２１０に記憶されている各種のプログラムを実行することにより行われる。また、クライアントの場合には、例えば、ＣＰＵ３００が１次記憶装置３１０に記憶されている各種のプログラムを実行することにより行われる。
【００６０】
また、図６に示す処理では、サーバとクライアントとがどのように連携して動作するのかを示している。
具体的には、カメラサーバ１１１がクライアント１２１に直接、データ配信している状態から、カメラサーバ１１２を中継サーバとして経由してクライアント１２１及び１２２にデータ配信する例を示している。さらに、その後、再び、カメラサーバ１１１が直接、クライアント１２１及び１２２にデータ配信する例を示している。
【００６１】
まず、ステップＳ６０１及びＳ６０２おいて、カメラサーバ１１１のＣＰＵ２００は、クライアント１２１に直接、配信データを配信（送信）する。この際、カメラサーバ１１１のＣＰＵ２００は、各配信データに順番情報を付与して配信を行う。例えば、カメラサーバ１１１のＣＰＵ２００は、配信データである画像データの１枚毎、もしくは画像フレームの１つ毎に、シーケンシャルに増加していく一意の番号を順番情報として付与する。
【００６２】
続いて、ステップＳ６０３において、クライアント１２２のＣＰＵ３００は、カメラサーバ１１１に対して、配信データの配信要求を送信する。
【００６３】
続いて、ステップＳ６０４〜Ｓ６０７において、カメラサーバ１１１のＣＰＵ２００は、自装置の負荷状態が所定の閾値を超えることが予想される等の理由により、中継サーバの選定処理を行う。
【００６４】
具体的には、まず、ステップＳ６０４において、カメラサーバ１１１のＣＰＵ２００は、自装置に保持しているサーバリストに登録されているカメラサーバ（本例では、カメラサーバ１１２）の負荷状態を知るために、当該カメラサーバに状態要求を送信する。そして、ステップＳ６０５において、当該状態要求を受信したカメラサーバ１１２のＣＰＵ２００は、自装置の負荷状態を取得して、当該取得した負荷状態に基づく応答をカメラサーバ１１１に行う。そして、カメラサーバ１１１のＣＰＵ２００は、カメラサーバ１１２からの応答を受信する。
【００６５】
ここで、カメラサーバ１１１に保持されているサーバリストに他のサーバも存在する場合には、上述したカメラサーバ１１２に対する処理と同様の処理を、当該他のサーバに対しても行う。
【００６６】
また、本例では、必要になった時にだけ状態要求とその応答との通知を送受信しているが、定期的に負荷状態を通知するもしくは負荷状態が変わった時だけ通知する形態でも良い。
【００６７】
続いて、ステップＳ６０６において、カメラサーバ１１１のＣＰＵ２００は、ネットワーク１３０に接続された自装置以外の他のサーバの中から中継サーバを選定する。具体的に、本例では、カメラサーバ１１２を中継サーバとして選定し、カメラサーバ１１１のＣＰＵ２００は、カメラサーバ１１２に中継要求を送信する。そして、ステップＳ６０７において、カメラサーバ１１２のＣＰＵ２００は、当該中継要求に対する応答をカメラサーバ１１１に行う。この際、カメラサーバ１１２は、本例では、中継可能であることを示す許可応答をカメラサーバ１１１に行うものとする。そして、カメラサーバ１１１のＣＰＵ２００は、カメラサーバ１１２から、中継可能であることを示す許可応答を受信する。
【００６８】
続いて、ステップＳ６０８及びＳ６０９において、カメラサーバ１１１のＣＰＵ２００は、中継サーバであるカメラサーバ１１２の情報を含むサーバ切替え通知を、クライアント１２１及び１２２に送信する。
【００６９】
カメラサーバ１１１からサーバ切替え通知を受信したクライアント１２１のＣＰＵ３００は、当該サーバ切替え通知を受信したタイミングで、カメラサーバ１１１との通信を終了（中断）する。そして、ステップＳ６１０において、クライアント１２１のＣＰＵ３００は、当該サーバ切替え通知に基づいてカメラサーバ１１２に対して配信データの配信要求を行う。即ち、クライアント１２１のＣＰＵ３００は、配信データを受信しているカメラサーバ１１１からサーバ切替え通知を受けた場合、当該配信データの受信を、カメラサーバ１１１から当該サーバ切替え通知に基づく中継サーバ（カメラサーバ１１２）に切替える。また、クライアント１２１のＣＰＵ３００は、カメラサーバ１１２に配信要求を行う際、サーバ切替え通知を受信するまでに受信していた配信データの順番情報に示される順番の次の順番に係る情報を送信する。例えば、クライアント１２１は、サーバ切替え通知を受信するまでに配信データｎ−１までを受信していた場合には、カメラサーバ１１２に対して、配信データｎからの配信要求を送信して通信を再開する。
【００７０】
続いて、ステップＳ６１１において、カメラサーバ１１２のＣＰＵ２００は、クライアント１２１から配信要求を受信すると、その配信要求をカメラサーバ１１１に送信する。
【００７１】
また、カメラサーバ１１１からサーバ切替え通知を受信したクライアント１２２も、クライアント１２１と同様に、ステップＳ６１２において、当該サーバ切替え通知に基づいてカメラサーバ１１２に対して配信データの配信要求を行う。この際、カメラサーバ１１２は、クライアント１２１と同様に、クライアント１２２からの配信要求をカメラサーバ１１１に送信してもよいが、本例では、ステップＳ６１１で同じ内容の配信要求をカメラサーバ１１１に送信しているため、省略している。
【００７２】
続いて、ステップＳ６１３において、カメラサーバ１１１のＣＰＵ２００は、カメラサーバ１１２からの配信要求に基づいて、配信データｎを、中継サーバであるカメラサーバ１１２に対して配信する。
【００７３】
続いて、ステップＳ６１４及びＳ６１５において、カメラサーバ１１２のＣＰＵ２００は、カメラサーバ１１１から配信データｎを受信し、当該配信データｎを、配信要求を受けたクライアント１２１及び１２２に送信する。
【００７４】
続いて、ステップＳ６１６において、カメラサーバ１１１のＣＰＵ２００は、配信データｎ＋１を、中継サーバであるカメラサーバ１１２に対して配信する。
【００７５】
続いて、ステップＳ６１７及びＳ６１８において、カメラサーバ１１２のＣＰＵ２００は、カメラサーバ１１１から配信データｎ＋１を受信し、当該配信データｎ＋１を、配信要求を受けたクライアント１２１及び１２２に送信する。
【００７６】
続いて、ステップＳ６１９において、カメラサーバ１１１のＣＰＵ２００は、配信データｎ＋２を、中継サーバであるカメラサーバ１１２に対して配信する。
【００７７】
続いて、ステップＳ６２０及びＳ６２１において、カメラサーバ１１２のＣＰＵ２００は、カメラサーバ１１１から配信データｎ＋２を受信し、当該配信データｎ＋２を、配信要求を受けたクライアント１２１及び１２２に送信する。
【００７８】
以上、ステップＳ６１３〜Ｓ６２１に示すように、カメラサーバ１１１は、配信データの配信要求を受けると、当該配信要求に示された順番情報に基づく配信データ（本例の場合には、配信データｎ）から順番に順次、カメラサーバ１１２に配信する。そして、カメラサーバ１１２は、カメラサーバ１１１から送られた配信データを順次、配信要求を受けたクライアント１２１及び１２２に送信する。
【００７９】
このように、カメラサーバ１１１が配信データを配信するクライアント数を減らすことにより、当該カメラサーバ１１１の配信負荷を低減することができる。
【００８０】
その後、カメラサーバ１１２のＣＰＵ２００は、自装置の負荷状態が所定の閾値を超える等の状態になった時に、続いて、ステップＳ６２２において、中継配信の停止通知をカメラサーバ１１１に送信する。この際、カメラサーバ１１２は、ステップＳ６０４〜Ｓ６０７の処理と同様に、自装置のサーバリストに登録されているカメラサーバの中から中継可能な中継サーバを選定して、カメラサーバ１１１から送信される配信データの中継を行わせるようにしても良い。
【００８１】
続いて、ステップＳ６２３及びＳ６２４において、カメラサーバ１１２のＣＰＵ２００は、カメラサーバ１１１の情報を含むサーバ切替え通知を、中継配信を行っているクライアント１２１及び１２２に送信する。クライアント１２１及び１２２のＣＰＵ３００は、カメラサーバ１１２からサーバ切替え通知を受信したタイミングで、当該カメラサーバ１１２との通信を終了（中断）する。この際、クライアント１２１及び１２２では、カメラサーバ１１２からサーバ切替え通知を受信するまでに配信データｘ−１までを受信していたものとする。
【００８２】
この場合、ステップＳ６２５及びＳ６２６において、クライアント１２１及び１２２のＣＰＵ３００は、カメラサーバ１１１に対して、配信データｘからの配信要求を送信し、当該カメラサーバ１１１との通信を再開する。
【００８３】
続いて、ステップＳ６２７及びＳ６２８において、カメラサーバ１１１のＣＰＵ２００は、クライアント１２１及び１２２からの配信要求に基づいて、配信データｘを、それぞれ、クライアント１２１及び１２２に対して配信する。
【００８４】
続いて、ステップＳ６２９及びＳ６３０において、カメラサーバ１１１のＣＰＵ２００は、配信データｘ＋１を、それぞれ、クライアント１２１及び１２２に対して配信する。
【００８５】
以上、ステップＳ６２７〜Ｓ６３０に示すように、カメラサーバ１１１は、配信データの配信要求を受けると、当該配信要求に示された順番情報に基づく配信データ（本例の場合には、配信データｘ）から順番に順次、クライアント１２１及び１２２に配信する。
【００８６】
このように、サーバの負荷に応じて、配信データを配信するクライアントを移管できるようにすることで、システムとしてスループットを落とさずに多人数配信を実現することができる。
【００８７】
次に、図６に示す処理に基づく、各装置の処理手順について説明する。
【００８８】
図７は、図１に示すカメラサーバ１１１の制御方法における処理手順の一例を示すフローチャートである。この図７に示す処理は、例えば、カメラサーバ１１１のＣＰＵ２００が１次記憶装置２１０に記憶されている各種のプログラムを実行することにより行われる。また、図７には、図６におけるクライアント１２１への配信処理からサーバ切替え通知の処理までを示しており、また、クライアントからの１リクエストで配信データを連続で配信する例を示している。
【００８９】
クライアントから配信要求を受信すると、ステップＳ７０１において、カメラサーバ１１１のＣＰＵ２００は、配信プログラム４４０を起動させ、更に負荷監視プログラム４７０の処理により、自装置の負荷状態を取得する。具体的に、自装置の負荷状態を示す値を取得する。
【００９０】
続いて、ステップＳ７０２において、カメラサーバ１１１のＣＰＵ２００は、ステップＳ７０１で取得した自装置の負荷状態を示す値が、予め設定されている所定の閾値を超えている高負荷状態であるか否かを判断する。
【００９１】
ステップＳ７０２の判断の結果、高負荷状態である場合には、ステップＳ７０３に進む。ステップＳ７０３に進むと、カメラサーバ１１１のＣＰＵ２００は、中継サーバ選定プログラム４１０の処理により、中継サーバを選定する。本例では、具体的に、カメラサーバ１１１のＣＰＵ２００は、中継サーバ選定プログラム４１０の処理により、図６におけるステップＳ６０３〜Ｓ６０６の処理手順を経て、カメラサーバ１１２を中継サーバとして選定することになる。
【００９２】
続いて、ステップＳ７０４において、カメラサーバ１１１のＣＰＵ２００は、中継サーバの選定ができたか否かを判断する。
【００９３】
ステップＳ７０４の判断の結果、中継サーバの選定ができた場合には、ステップＳ７０５に進む。ステップＳ７０５に進むと、カメラサーバ１１１のＣＰＵ２００は、中継クライアント選定プログラム４２０の処理により、中継配信するクライアント（中継クライアント）を選定する。ここで、選定されるクライアントの候補としては、例えば、同一データを受信している複数のクライアントや、蓄積用途などの高いリアルタイム性を要求されていないクライアント等が挙げられる。図６に示す例では、具体的に、同一データを受信しているクライアント１２１及び１２２が選定されている。
【００９４】
続いて、ステップＳ７０６において、カメラサーバ１１１のＣＰＵ２００は、ステップＳ７０５で選定されたクライアント１２１及び１２２に対して、配信プログラム４４０の処理により、サーバ切替え通知を送信する。具体的に、本例では、ステップＳ６０８及びＳ６０９で説明したように、中継サーバであるカメラサーバ１１２の情報を含むサーバ切替え通知を、クライアント１２１及び１２２に送信する。
【００９５】
ステップＳ７０６の処理が終了した場合、ステップＳ７０２で高負荷状態でないと判断された場合、或いは、ステップＳ７０４で中継サーバの選定ができなかった場合には、ステップＳ７０７に進む。
【００９６】
ステップＳ７０７に進むと、カメラサーバ１１１のＣＰＵ２００は、配信プログラム４４０の処理により、クライアント１２１及び１２２に配信する配信データを、例えば、１次記憶装置２１０に取り込んで取得する。本実施形態では、例えば、カメラで撮影され、画像キャプチャＩ／Ｆ２３０で取得した画像データを配信データとして１次記憶装置２１０に取り込む。
【００９７】
続いて、ステップＳ７０８において、カメラサーバ１１１のＣＰＵ２００は、１次記憶装置２１０に取り込んだ配信データ（本例では、画像データ）をクライアント１２１及び１２２に送信する。
【００９８】
続いて、ステップＳ７０９において、カメラサーバ１１１のＣＰＵ２００は、配信プログラム４４０の処理により、クライアントに対してサーバ切替え通知を送信済であるか否かを判断する。
【００９９】
ステップＳ７０９の判断の結果、既にサーバ切替え通知を送信している場合には、ステップ７０７に戻って、サーバ切替えのためにクライアントとの通信が終了（中断）されるまで、配信データの取得と当該配信データのクライアントへの送信を繰り返す。
【０１００】
一方、ステップＳ７０９の判断の結果、まだサーバ切替え通知を送信していない場合には、ステップＳ７０１に戻って、再度、ステップＳ７０１からの処理を行う。
【０１０１】
図８は、図１に示すクライアント１２１及び１２２の制御方法における処理手順の一例を示すフローチャートである。この図８に示す処理は、例えば、クライアント１２１及び１２２のＣＰＵ３００が１次記憶装置３１０に記憶されている各種のプログラムを実行することにより行われる。また、図８には、図６に示すカメラサーバ１１１からカメラサーバ１１２への配信サーバの切替え処理について示している。
【０１０２】
まず、図１に示すクライアント１２１の制御方法について説明する。
配信データ受信プログラム５１０を起動すると、まず、ステップＳ８０１において、クライアント１２１のＣＰＵ３００は、配信データの配信要求をカメラサーバ１１１に対して配信する。
【０１０３】
続いて、ステップＳ８０２において、クライアント１２１のＣＰＵ３００は、カメラサーバ１１１から、何らかのデータが送信されるのを待つ。
【０１０４】
配信データ受信プログラム５１０の処理により、カメラサーバ１１１からデータを受信すると、続いて、ステップＳ８０３において、クライアント１２１のＣＰＵ３００は、受信したデータのデータ種別を判断する。具体的に、ステップＳ８０３では、受信したデータが、配信データなのか、或いは、サーバ切替え通知なのかを判断する。
【０１０５】
ステップＳ８０３の判断の結果、受信したデータが配信データである場合には、ステップＳ８０４に進む。ステップＳ８０４に進むと、クライアント１２１のＣＰＵ３００は、カメラサーバ１１１から受信した配信データの配信データ受信処理を行う。ステップＳ８０４では、例えば、配信データとして画像データを受信した場合、当該画像データをユーザ入出力Ｉ／Ｆ３３０を介してディスプレイ等のＩ／Ｏ機器３５０に出力する、或いは当該画像データを１次記憶装置３１０または２次記憶装置３２０に蓄積する。また、配信データを蓄積する際、例えば、ネットワークＩ／Ｆ３４０を介して自装置以外の他の機器に蓄積するようにしても良い。ステップＳ８０４の処理が終了すると、ステップＳ８０２に戻る。
【０１０６】
一方、ステップＳ８０３の判断の結果、受信したデータがサーバ切替え通知である場合には、ステップＳ８０５に進む。ステップＳ８０５に進むと、クライアント１２１のＣＰＵ３００は、配信データの送信に係るサーバの切替え処理を行う。続いて、ステップＳ８０６において、クライアント１２１のＣＰＵ３００は、ステップＳ８０６で切替えたサーバに対して配信要求を送信する。ステップＳ８０６の処理が終了すると、ステップＳ８０２に戻る。
【０１０７】
ここで、ステップＳ８０５及びステップＳ８０６の処理の詳細について説明する。
ステップＳ８０５のサーバ切替え処理では、図６のステップＳ６０８で説明したように、サーバ切替え通知を送信したカメラサーバ１１１との通信を終了（中断）し、サーバ切替え通知に含まれている切替え予定のカメラサーバ１１２との通信準備を行う。
【０１０８】
また、ステップＳ８０６の配信要求では、図６のステップＳ６１０で説明したように、最後に受信した配信データの順番情報（番号）に示される順番の次の順番に係る情報を、当該配信要求に含めて切替え予定のカメラサーバ１１２に送信する。このように、最後に受信した配信データの順番情報に示される順番の次の順番に係る情報を指定して切替え予定のカメラサーバ１１２に送信することで、配信データの連続性を保ちながら、カメラサーバの切替えを行うことができる。
【０１０９】
具体的に、配信データの順番情報としては、例えば、配信データである画像データの１枚毎に通し番号を付与したり、或いは、時間情報などを付与したりすることで、次の配信データを指定することができる。また、カメラサーバ１１１が一時的に一定期間だけクライアント１２１への重複配信を許容（許可）するのであれば、クライアント１２１は、カメラサーバ１１２経由で配信データを正しく受信できるまでカメラサーバ１１１からの配信データの受信を続けても良い。
【０１１０】
また、カメラサーバ１１１において、クライアント１２１に最後に送信した配信データの順番情報を保持しておき、カメラサーバ１１２経由でクライアント１２１が再度配信要求を行った時に、当該順番情報の次の順番の配信データから配信するようにしても良い。ただし、この形態の場合には、ステップＳ６１０（ステップＳ６１１）の配信要求に、当該クライアント１２１に関する情報を含める必要がある。
【０１１１】
次に、図８を用いて、図１に示すクライアント１２２の制御方法について説明する。
クライアント１２２の制御方法においても、上述したクライアント１２１の制御方法と同様である。図６に示す例の場合に、クライアント１２１との処理手順の違いは、ステップＳ８０２で最初に受信するデータがサーバ切替え通知なので、ステップＳ８０４で配信データの受信処理を行う前に、ステップＳ８０５でサーバ切替え処理を行うという点だけである。
【０１１２】
図９は、図１に示すカメラサーバ１１２の制御方法における処理手順の一例を示すフローチャートである。この図９に示す処理は、例えば、カメラサーバ１１２のＣＰＵ２００が１次記憶装置２１０に記憶されている中継配信プログラム４５０等を実行することにより行われる。また、図９には、図６におけるカメラサーバ１１２の中継配信処理が示されている。
【０１１３】
カメラサーバ１１１から中継配信要求を受信すると、ステップＳ９０１において、カメラサーバ１１２のＣＰＵ２００は、中継配信プログラム４５０を起動させ、更に負荷監視プログラム４７０の処理により、自装置の負荷状態を取得する。具体的に、自装置の負荷状態を示す値を取得する。
【０１１４】
続いて、ステップＳ９０２において、カメラサーバ１１２のＣＰＵ２００は、ステップＳ９０１で取得した自装置の負荷状態を示す値が、予め設定されている所定の閾値を超えている高負荷状態であるか否かを判断する。
【０１１５】
ステップＳ９０２の判断の結果、高負荷状態である場合には、ステップＳ９０３に進む。ステップＳ９０３に進むと、カメラサーバ１１２のＣＰＵ２００は、中継配信の停止処理を行う。具体的には、この中継配信の停止処理では、配信元サーバであるカメラサーバ１１１に対して、中継配信の停止通知を送信する。図６に示す例では、ステップＳ６２２の処理に相当する。
【０１１６】
続いて、ステップＳ９０４において、カメラサーバ１１２のＣＰＵ２００は、中継配信していたクライアントの一部または全てに対して、サーバ切替え通知を送信する。図６に示す例では、ステップＳ６２３及びＳ６２４の処理に相当する。
【０１１７】
ここで、ステップＳ９０３における中継配信の停止処理とステップＳ９０４における切替え通知の送信処理は、図７のステップＳ７０３〜Ｓ７０６で示した中継サーバの選定と中継クライアントの選定を行ってから決めても良い。
【０１１８】
ステップＳ９０４の処理が終了した場合、或いは、ステップＳ９０２で高負荷状態でないと判断された場合には、ステップＳ９０５に進む。ステップＳ９０５に進むと、カメラサーバ１１２のＣＰＵ２００は、中継配信プログラム４５０の処理により、クライアント１２１及び１２２に配信する配信データを、配信元サーバであるカメラサーバ１１１から取得する。具体的に、本例では、配信データである画像データを、配信元サーバであるカメラサーバ１１１からネットワークＩ／Ｆ２５０経由で、例えば１次記憶装置２１０に取り込んで取得する。図６に示す例では、ステップＳ６１３において、カメラサーバ１１２がカメラサーバ１１１から配信データを取得する処理に相当する。ただし、この場合、配信データを最初に取得する際には、カメラサーバ１１２は、配信要求を先にカメラサーバ１１１に送信しておく必要がある。
【０１１９】
続いて、ステップＳ９０６において、カメラサーバ１１２のＣＰＵ２００は、ステップＳ９０５で取得した配信データをクライアント１２１及び１２２へ送信する。
【０１２０】
続いて、ステップＳ９０７において、カメラサーバ１１２のＣＰＵ２００は、中継配信プログラム４５０等の処理により、クライアントに対してサーバ切替え通知を送信済であるか否かを判断する。
【０１２１】
ステップＳ９０７の判断の結果、既にサーバ切替え通知を送信している場合には、ステップ９０５に戻って、サーバ切替えのためにクライアントとの通信が終了（中断）されるまで、配信データの取得と当該配信データのクライアントへの送信を繰り返す。
【０１２２】
一方、ステップＳ９０７の判断の結果、まだサーバ切替え通知を送信していない場合には、ステップＳ９０１に戻って、再度、ステップＳ９０１からの処理を行う。
【０１２３】
上述した本実施形態における一連の処理は、ハードウェアによっても、ソフトウェアによっても実行可能である。この際、ソフトウェアを構成するプログラムは、コンピュータ読み取り可能な記憶媒体やネットワーク等を経由して外部の記憶媒体から１次記憶装置もしくは２次記憶装置に供給することも可能である。
【０１２４】
以上、説明したように、本実施形態では、自サーバ（例えば、カメラサーバ１１１）が高負荷状態である場合に、他のサーバ（例えば、カメラサーバ１１２）に配信データの中継をさせて配信負荷を分散させるようにしている。また、配信データを受信するクライアントでは、当該自サーバから最後に受信した配信データの順番情報（番号）を保持しておき、サーバの切替えの際に、当該保持した順番情報に示される順番の次の順番に係る情報を当該他のサーバに送信するようにしている。
かかる構成によれば、配信データを配信するサーバの負荷軽減を図ると共に、当該配信データの連続性を確保することができる。これにより、システムとしてスループットを落とさずに、処理性能の低いサーバでも多人数配信が可能になる。
【０１２５】
前述した本実施形態に係るデータ配信システムのデータ配信方法を示す図６の各ステップは、コンピュータのＣＰＵがＲＡＭやＲＯＭなどに記憶されたプログラムを実行することによって実現できる。また、前述した本実施形態に係るカメラサーバの制御方法を示す図７及び図９の各ステップは、コンピュータのＣＰＵがＲＡＭやＲＯＭなどに記憶されたプログラムを実行することによって実現できる。さらに、前述した本実施形態に係るクライアントの制御方法を示す図８の各ステップは、コンピュータのＣＰＵがＲＡＭやＲＯＭなどに記憶されたプログラムを実行することによって実現できる。これらのプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【０１２６】
具体的に、前記プログラムは、例えばＣＤ−ＲＯＭのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
【０１２７】
また、本発明は、コンピュータが供給されたプログラムを実行することにより本実施形態に係るデータ配信システムの機能が実現される態様に限られない。そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して本実施形態に係るデータ配信システムの機能が実現される場合も、かかるプログラムは本発明に含まれる。また、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて本実施形態に係るデータ配信システムの機能が実現される場合も、かかるプログラムは本発明に含まれる。
【０１２８】
また、前述した本実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術的思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１２９】
【図１】本発明の実施形態に係るデータ配信システムの概略構成の一例を示す模式図である。
【図２】図１に示すカメラサーバの内部構成の一例を示すブロック図である。
【図３】図１に示すクライアントの内部構成の一例を示すブロック図である。
【図４】図２に示すカメラサーバの１次記憶装置に記憶される各種のプログラム等の一例を示す模式図である。
【図５】図３に示すクライアントの１次記憶装置に記憶される各種のプログラム等の一例を示す模式図である。
【図６】図１に示すデータ配信システムによるデータ配信方法の処理手順の一例を示すシーケンス図である。
【図７】図１に示すカメラサーバの制御方法における処理手順の一例を示すフローチャートである。
【図８】図１に示すクライアントの制御方法における処理手順の一例を示すフローチャートである。
【図９】図１に示すカメラサーバの制御方法における処理手順の一例を示すフローチャートである。
【符号の説明】
【０１３０】
１００  データ配信システム
１１１、１１２  カメラサーバ
１２１、１２２  クライアント
１３０  ネットワーク
２０１  内部バス
２００  ＣＰＵ
２１０  １次記憶装置
２２０  ２次記憶装置
２３０  画像キャプチャＩ／Ｆ
２４０  音声キャプチャＩ／Ｆ
２５０  ネットワークＩ／Ｆ
２６０  カメラ
２７０  マイク
３０１  内部バス
３００  ＣＰＵ
３１０  １次記憶装置
３２０  ２次記憶装置
３３０  ユーザ入出力Ｉ／Ｆ
３４０  ネットワークＩ／Ｆ
３５０  Ｉ／Ｏ機器（入出力機器）
【図１】
2009260569.tif 000003
【図２】
2009260569.tif 000004
【図３】
2009260569.tif 000005
【図４】
2009260569.tif 000006
【図５】
2009260569.tif 000007
【図６】
2009260569.tif 000008
【図７】
2009260569.tif 000009
【図８】
2009260569.tif 000010
【図９】
2009260569.tif 000011