(57)【要約】【課題】画像SNSサービスにおいて、サーバ機器の現在の負荷状況に応じて、クライアント機器側における処理を調整することで、システム全体での処理効率を向上させる。【解決手段】サーバ機器は、データをアップロード/ダウンロードする第1/第2のクライアント機器の各台数情報、アップロードの発生頻度情報、及び第1のクライアント機器におけるアップロード対象データの生成条件を取得する(S810〜S830)。これら各情報に基づき、サーバ機器においてデータ配信により発生するであろう予測負荷を算出する(S830)。さらに、サーバ機器におけるデータ配信以外の処理による現在の負荷状況に応じて目標負荷を算出する(S840)。そして、予測負荷が目標負荷を満たすように、第1のクライアント機器における生成条件を変更する(S850〜S880)。【選択図】図8
2014041487.tif 000002
【特許請求の範囲】
【請求項１】
サーバ機器に複数のクライアント機器がネットワークを介して接続され、第1のクライアント機器から前記サーバ機器にアップロードされたデータを、第2のクライアント機器にダウンロードするデータ配信システムであって、前記サーバ機器は、
前記アップロードを行う第1のクライアント機器の台数情報、前記ダウンロードを行う第2のクライアント機器の台数情報、および前記アップロードの頻度情報を取得する第1の情報取得手段と、
前記アップロードを行うクライアント機器のそれぞれについて予め設定された、アップロード対象データの生成条件を取得する第2の情報取得手段と、
前記台数情報、前記頻度情報、および前記生成条件に応じて、当該サーバ機器においてデータ配信により発生する予測負荷を算出する予測負荷算出手段と、
当該サーバ機器における前記データ配信以外の処理による負荷状況と、前記台数情報、前記頻度情報、および前記生成条件に応じて、当該サーバ機器における前記データ配信に関する目標負荷を算出する目標負荷算出手段と、
前記予測負荷が前記目標負荷を満たすように、前記第1のクライアント機器における前記生成条件を変更する変更手段と、
を有することを特徴とするデータ配信システム。
【請求項２】
前記変更手段は、複数の第1のクライアント機器から、前記生成条件の変更対象となるものを選択し、該選択された前記第1のクライアント機器における前記生成条件を変更することを、該変更後の前記生成条件に応じて前記予測負荷算出手段で算出される前記予測負荷が前記目標負荷を満たすまで繰り返すことを特徴とする請求項1に記載のデータ配信システム。
【請求項３】
前記生成条件は、前記アップロード対象データのデータ量を制御する条件であることを特徴とする請求項1または2に記載のデータ配信システム。
【請求項４】
前記変更手段は、前記予測負荷が前記目標負荷よりも大きい場合に、前記第1のクライアント機器を、前記生成条件を変更することによる前記アップロード対象データのデータ量の変化が大きい順に選択し、該選択された前記第1のクライアント機器における前記生成条件を、前記データ量が低減するように変更することを特徴とする請求項3に記載のデータ配信システム。
【請求項５】
前記変更手段は、前記予測負荷が前記目標負荷よりも小さい場合に、前記第1のクライアント機器を、前記生成条件を変更することによる前記アップロード対象データのデータ量の変化が小さい順に選択し、該選択された前記第1のクライアント機器における前記生成条件を、前記データ量が増加するように変更することを特徴とする請求項3に記載のデータ配信システム。
【請求項６】
前記生成条件はさらに、前記アップロード対象データを生成する時間間隔の情報を含むことを特徴とする請求項3に記載のデータ配信システム。
【請求項７】
さらに、前記変更手段により前記生成条件が変更された前記第1のクライアント機器から前記ストリームにアップロードされたデータを、前記第2のクライアント機器にダウンロードする配信手段を有することを特徴とする請求項1乃至6のいずれか1項に記載のデータ配信システム。
【請求項８】
さらに、前記第1のクライアント機器において、前記変更手段による変更内容を報知する報知手段を有することを特徴とする請求項1乃至7のいずれか1項に記載のデータ配信システム。
【請求項９】
前記第1のクライアント機器は、撮影画像をアップロードする撮像装置であることを特徴とする請求項1乃至8のいずれか1項に記載のデータ配信システム。
【請求項１０】
前記サーバ機器は複数のストリームを提供し、前記第1および第2のクライアント機器は、前記複数のストリームのうちの1つに接続されることを特徴とする請求項1乃至9のいずれか1項に記載のデータ配信システム。
【請求項１１】
第1の情報取得手段、第2の情報取得手段、予測負荷算出手段、目標負荷算出手段、および変更手段を有するサーバ機器に複数のクライアント機器がネットワークを介して接続され、第1のクライアント機器から前記サーバ機器にアップロードされたデータを、第2のクライアント機器にダウンロードするデータ配信システムの制御方法であって、前記サーバ機器において、
前記第1の情報取得手段が、前記アップロードを行う第1のクライアント機器の台数情報、前記ダウンロードを行う第2のクライアント機器の台数情報、および前記アップロードの頻度情報を取得し、
前記第2の情報取得手段が、前記アップロードを行うクライアント機器のそれぞれについて予め設定された、アップロード対象データの生成条件を取得し、
前記予測負荷算出手段が、前記台数情報、前記頻度情報、および前記生成条件に応じて、当該サーバ機器においてデータ配信により発生する予測負荷を算出し、
前記目標負荷算出手段が、当該サーバ機器における前記データ配信以外の処理による負荷状況と、前記台数情報、前記頻度情報、および前記生成条件に応じて、当該サーバ機器における前記データ配信に関する目標負荷を算出し、
前記変更手段が、前記予測負荷が前記目標負荷を満たすように、前記第1のクライアント機器における前記生成条件を変更する、
を有することを特徴とするデータ配信システムの制御方法。
【請求項１２】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至10のいずれか1項に記載のデータ配信システムにおける前記サーバ機器として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ機器にネットワークを介して接続された複数のクライアント機器において、データのアップロードおよびダウンロードを可能とするデータ配信システムおよびその制御方法に関する。
【背景技術】
【０００２】
電子計算機技術の進歩により、複写機等の事務機器やデジタルカメラ等の家庭用撮像機器においても、ネットワークを介した処理を可能にするための多様なソフトウェアが搭載されるようになった。その結果、上記各種機器も、インターネット上に設けられたネットサービスにクライアント機器として接続することが可能である。ここでクライアント機器は、サーバ機器に対しインターネットを介してデータの送受信を行う機能を有する。またサーバ機器は、クライアント機器より送受信されたデータを格納し、また要求に応じてクライアント機器へデータを送信する機能を有する。
【０００３】
このようなクライアント機器に対してネットサービスを提供する場合には、URLやHTTPに代表されるようなインターネット技術を基盤として用いる必要がある。ここでURLとは、Uniform Resource Locatorの略であり、インターネット上に存在するデータの場所を示す記述方式である。URLは情報のアクセス手段やサーバのアドレス、ポート番号、パス名等で構成される。またHTTPとは、Hypertext Transfer Protocolの略であり、URLで指定されたデータをサーバ機器とクライアント機器が送受信する際に用いられるプロトコルである。HTTPにより、サーバ機器とクライアント機器の間で各種のデータをやり取りすることができる。
【０００４】
これらのインターネット技術を用いて、多数のクライアント機器からのアクセス要求をサーバ機器側で高速に処理するための技術として、予め複数のサーバ機器を用意しておき、処理の負荷を分散させる分散処理技術が知られている。
【０００５】
ここで、コンパクトデジタルカメラ等、一般消費者向けに大量に販売される機器がクライアント機器としてネットサービスに接続されることは、今後普及していくものと考えられる。したがって、サーバ機器側においてもより高いレベルでの負荷分散性能が要求されるようになる。
【０００６】
具体的には、ネットワーク対応のデジタルカメラを用いて、リアルタイムに撮影画像を共有する、画像ストリーム型ソーシャルネットワークサービス(以降、画像SNSサービスと称する)を提供する場合における、性能要求の課題が挙げられる。こうしたサービスでは、複数のユーザが撮影した多数の画像を一連の流れ(ストリーム)としてユーザ間で共有するために、複数のクライアント機器とサーバ機器との間で、ほぼリアルタイムで画像の送受信処理を行わなければならない。しかしながら、画像を次々と送信してくるクライアント機器の数が増大した場合、サーバ機器から他のクライアント機器に対する画像の配信時間を常に一定に維持するためには、サーバ機器側での分散処理技術による処理能力拡大だけでは不十分となる。何故ならば、販売台数に比例して際限なく増加するクライアント機器からのアクセス要求を、相対的な台数に限界のあるサーバ機器の効率性向上だけで収容することには限界があるためである。
【０００７】
したがって、こうした画像SNSサービスにおいては、サーバ機器の処理能力拡大が限界に達した段階で、サービスに参加している他のクライアント機器(ユーザ)への画像配信時間の遅延を許容するしかない。つまり、画像SNSサービスのような、大量のクライアント機器の接続を想定しなければならないサービスにおいては、サーバ機器側の効率向上を行う手段だけでは、システム全体としての応答性能を維持することは困難となる。そのため、何らかの手段を用いて、クライアント機器側での効率向上も実現する必要がある。
【０００８】
このように、システム全体で大規模化する処理要求を効率的に処理するために、サーバ機器のみならずクライアント機器にも一定の役割を担わせるという課題に対応するために、以下のような技術が提案されている。
【０００９】
まず特許文献1に、ある端末(クライアント機器)がアイドル状態になった場合に、サーバ機器に代わって、同一拠点内にある別の端末(クライアント機器)から情報の配信を受けるように、端末に関する設定を自動的に変更するという技術が記載されている。
【００１０】
また特許文献2に、サーバ機器に撮影した画像を送信できるカメラ(クライアント機器)に対し、サーバ機器から撮影のアドバイス情報を送信することによって、カメラ(クライアント機器)の設定を変更するという技術が記載されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開2011-114699号公報
【特許文献２】特願2001-186206号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述したように従来の画像SNSサービスにおいては、システム全体で大規模化する処理要求を効率的に処理するために、複数台のサーバ機器による分散制御のみならず、クライアント機器側にも何らかの役割を担わせる必要がある。すなわち、サーバ機器の負荷状況に応じてクライアント機器の処理状況を調整することで、システム全体の処理効率を向上させることが課題となる。
【００１３】
しかしながら上記特許文献1に記載された技術では、スリープ(休止)状態に入った端末(クライアント機器)がネットワークから切り離される場合を想定しており、アクティブ状態の端末の増大には対応できない。一般に画像SNSサービスにおいては、ユーザが撮影用にアクティブ状態を維持しているデジタルカメラがクライアント機器となるため、この技術では上記画像SNSサービスにおける課題には対応できない。
【００１４】
また特許文献2に記載された技術は、カメラがアップロードした画像から、サーバ機器上でアドバイス情報を生成し、それに基づいて対象のカメラの設定を変化させることを目的としている。すなわち、クライアント機器であるカメラの設定は、そのカメラ自身が撮影した情報に基づいて変更されるのであって、サーバ機器の負荷情報等に基づいて変更されるものではない。したがって特許文献2に記載の技術では、サーバ機器側の負荷状況に応じてクライアント機器の設定を変更することはできない。
【００１５】
本発明は上述した課題を解決するために、サーバ機器の現在の負荷状況に応じて、クライアント機器側における処理を調整することで、システム全体での処理効率を向上させるデータ配信システムおよびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するための一手段として、本発明のデータ配信システムは以下の構成を備える。すなわち、サーバ機器に複数のクライアント機器がネットワークを介して接続され、第1のクライアント機器から前記サーバ機器にアップロードされたデータを、第2のクライアント機器にダウンロードするデータ配信システムであって、前記サーバ機器は、前記アップロードを行う第1のクライアント機器の台数情報、前記ダウンロードを行う第2のクライアント機器の台数情報、および前記アップロードの頻度情報を取得する第1の情報取得手段と、前記アップロードを行うクライアント機器のそれぞれについて予め設定された、アップロード対象データの生成条件を取得する第2の情報取得手段と、前記台数情報、前記頻度情報、および前記生成条件に応じて、当該サーバ機器においてデータ配信により発生する予測負荷を算出する予測負荷算出手段と、当該サーバ機器における前記データ配信以外の処理による負荷状況と、前記台数情報、前記頻度情報、および前記生成条件に応じて、当該サーバ機器における前記データ配信に関する目標負荷を算出する目標負荷算出手段と、前記予測負荷が前記目標負荷を満たすように、前記第1のクライアント機器における前記生成条件を変更する変更手段と、を有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、サーバ機器の負荷状況に応じて、クライアント機器側における処理を調整することで、システム全体での処理効率を向上させるデータ配信システムおよびその制御方法を提供することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明における一実施形態のデータ配信システムにおけるクライアント機器およびサーバ機器のハードウェアの構成を示すブロック図、
【図２】本実施形態のクライアント機器における主要機能構成を示すブロック図、
【図３】本実施形態のサーバ機器における主要機能構成を示すブロック図、
【図４】サーバ機器が負荷調整を行わない場合の、クライアント機器との間における処理シーケンス例を示す図、
【図５】サーバ機器が負荷調整を行う場合の、クライアント機器との間における処理シーケンス例を示す図、
【図６】サーバ機器におけるストリーム管理用データの構造を示す図、
【図７】サーバ機器におけるクライアント機器管理用データの構造を示す図、
【図８】サーバ機器における負荷調整処理を示すフローチャート、
【図９】第4実施形態においてクライアント機器がデジタルカメラである場合の、操作/表示パネル例を示す図、
【図１０】第5実施形態におけるサーバ機器とクライアント機器との間における処理シーケンス例を示す図、である。
【発明を実施するための形態】
【００１９】
以下、添付の図面を用いて本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００２０】
本発明は、画像SNSサービスを実現するデータ配信システムに関する。該システムにおいてはすなわち、サーバ機器に複数のクライアント機器がネットワークを介して接続され、第1のクライアント機器から前記サーバ機器にアップロードされたデータを、第2のクライアント機器にダウンロードする。本発明のサーバ機器は、自身の現在の負荷状況に応じて、クライアント機器側におけるデータの生成条件を調整することで、システム全体での処理効率を向上させることを目的として、以下の機能を実現することを特徴とする。まず、アップ/ダウンロードを行う第1/第2のクライアント機器の台数情報、およびアップロードの頻度情報を取得する(第1の情報取得処理)。さらに、アップロードを行うクライアント機器のそれぞれについて予め設定された、アップロード対象データの生成条件を取得する(第2の情報取得処理)。そして、上記台数情報、頻度情報、および生成条件に応じて、当該サーバ機器においてデータ配信により発生する予測負荷を算出する(予測負荷算出処理)。さらに、当該サーバ機器におけるデータ配信以外の処理による負荷状況と、台数情報、頻度情報、および生成条件に応じて、当該サーバ機器におけるデータ配信に関する目標負荷を算出する(目標負荷算出処理)。そして、予測負荷が目標負荷を満たすように、第1のクライアント機器における生成条件を変更する(変更処理)。
【００２１】
＜第1実施形態＞
図1は、本実施形態のデータ配信システムにおけるクライアント機器およびサーバ機器として用いられる、コンピュータ装置100のハードウェアの構成を示すブロック図である。同図において、101はコンピュータ装置100の全体を制御するCentral Processing Unit(CPU)である。102は変更を必要としないプログラムやパラメータを格納するRead Only Memory(ROM)である。103は外部装置などから供給されるプログラムやデータを一時記憶するRandom Access Memory(RAM)である。104はコンピュータ装置100に接続されたハードディスクやメモリカード等を含む外部記憶装置である。105はユーザの操作を受け、データを入力するポインティングデバイスやキーボード等の入力機器(不図示)とのインタフェース(I/F)である。106はコンピュータ装置100の保持するデータや供給されたデータを表示するための出力装置(不図示)とのI/Fである。107はインターネット等のネットワーク回線(不図示)に接続するためのネットワークI/Fである。108は101〜107の各ユニットを互いに通信可能となるように接続するシステムバスである。
【００２２】
●クライアント機器構成
以下、上記図1に示すコンピュータ装置100を、本実施形態におけるクライアント機器200として用いた場合に実現される機能について説明する。図2は、図1に示すコンピュータ装置100がクライアント機器200として用いられた場合における、主要機能構成を示すブロック図である。クライアント機器200としては、静止画像・動画像を撮影可能な撮像装置であるデジタルカメラを想定する。このクライアント機器200は、IPアドレスに代表されるような、個別の機器を識別する機能を有する機器識別手段によって、他の機器から特定される。以下、クライアント機器200を構成する各部に関して、より詳細に説明する。
【００２３】
クライアントOS部201は、クライアント機器200を構成するハードウェアの各種構成要素を、計算機資源としてソフトウェアから抽象的に扱えるようにするものである。クライアントOS部201があることによって、クライアント機器200で動作する他の各ソフトウェア構成部が、直接ハードウェアに関する制御を行う必要がなくなる。クライアントアプリ部202は、クライアント機器200における機種固有の機能を、ユーザに提供するための機能を有する。ここでクライアント機器200はデジタルカメラであるため、機種固有の機能として、画像の撮影・保管・編集・表示や、画像の撮影に関する設定を制御する機能等が考えられる。クライアントアプリ部202はすなわち、これら機能を実現するためのソフトウェアである。
【００２４】
クライアントデータ解析部203は、クライアントアプリ部202からのデータ送信要求を解析してクライアントデータ送信部204に転送したり、クライアントデータ受信部207から依頼された処理を解析してクライアントアプリ部202へ転送する。クライアントアプリ部202がネットワークを介してサーバ機器とのデータの送受信要求を行う場合には、まずクライアントデータ解析部203がその要求を受理する。そして、クライアントデータ送信部204が、クライアントOS部201を介してネットワーク処理を行うハードウェアを駆動する。つまりクライアントデータ解析部203では、クライアントアプリ部202が要求するデータの形式をクライアントデータ送信部204が処理可能な形式に変換する。
【００２５】
ここで、クライアント機器200が、ネットワークにあるサーバ機器へ撮影した画像をアップロードする場合の処理について説明する。まずクライアントアプリ部202がクライアントデータ解析部203に対し、処理対象である画像を、ネットワーク上のサーバ機器が提供する特定の論理的な集合(ストリーム)に保存されるファイルとしてアップロードするように要求する。するとクライアントデータ解析部203はその要求を解析し、実際のサーバ機器に対応したホスト名やIPアドレス、エンドポイントURLといった送信先アドレスと、HTTPに準拠した形式の画像情報を含む送信データを生成する。このようにクライアントデータ解析部203は、特定のアドレスを有するサーバ機器に対してデータを追加・取得する。同様に、クライアントアプリ部202が管理している、撮影に関する設定情報をサーバ機器に送信するための機能も、クライアントアプリ部202からの要求を受けたクライアントデータ解析部203が実現する。
【００２６】
クライアントデータ送信部204は、クライアントデータ解析部203からの処理要求を、クライアントOS部201に転送する。例えば、クライアントデータ解析部203が変換した送信先アドレスと送信データに基づき、クライアントOS部201を制御する。具体的には、TCP/IPのセッションを開設し、実際のHTTPデータを送信するといった制御を行う。
【００２７】
クライアントデータ管理部205は、クライアントアプリ部202が取り扱うデータ(対象データ)を、クライアントデータ保持部206を用いて管理する。クライアントデータ保持部206は、具体的には機器に内蔵された不揮発性のメモリやハードディスクであり、クライアントデータ管理部205によって、実際にデータを保持しておくための記憶領域が制御される。なお、デジタルカメラであるクライアント機器200における対象データとはすなわち、撮影された画像データである。
【００２８】
クライアントデータ受信部207は、サーバ機器から発行される要求を受信する。ネットワーク上にあるサーバ機器からの要求は、クライアントOS部201を経由して受信され、クライアントデータ受信部207に到達する。データを受信したクライアントデータ受信部207は、それをクライアントデータ解析部203に転送する。ここで、クライアントOS部201が開設するTCP/IPのポート番号80において、サーバ機器からHTTPによる接続があった場合の処理について説明する。この時、HTTPによるURLやヘッダ、あるいはペイロード等のデータを解析して、クライアントデータ解析部203に転送するのが、クライアントデータ受信部207の役割である。データを受け取ったクライアントデータ解析部203は、その内容を解析して処理すべき情報をまとめ、クライアントアプリ部202に転送する。例えば、サーバ機器から要求された撮影に関する設定情報を、クライアントデータ受信部207経由で受け取り、その要求内容をクライアントアプリ部202が解釈可能な形式に変換した上で送信する。
【００２９】
クライアント機器200は上記のようなソフトウェア構成をとることにより、ネットワーク上にあるサーバ機器へ要求やデータを送信するだけではなく、サーバ機器からの要求を受信して処理することができる機能を有する。
【００３０】
クライアント機器200におけるクライアントアプリ部202はまた、サーバ機器が提供する画像SNSサービスに参加するための機能も有する。ここでサーバ機器は、クライアントアプリ部202に対して、ネットワークを経由して画像データを共有するための論理的な単位である、ストリームを識別するための情報を提供する。クライアント機器200のクライアントアプリ部202は、サーバ機器から提供されたストリームに対して、以下の2つの役割で参加する。まず、当該ストリームに対して画像の提供は行わずに閲覧のみを行う役割である。この場合、クライアント機器200は必ずしもデジタルカメラである必要はなく、通常の携帯端末やディスプレイ装置等であっても構わない。もう一つの役割は、クライアント機器200がデジタルカメラのように画像の生成能力を有する機器である場合に、当該ストリームに対して、画像の閲覧だけでなく追加も行えるということである。どのような役割でどのストリームに参加するのかは、クライアントアプリ部202が判断する。
【００３１】
●サーバ機器構成
以下、上記図1に示すコンピュータ装置100を、本実施形態におけるサーバ機器300として用いた場合に実現される機能について説明する。図3は、図1に示すコンピュータ装置100がサーバ機器300として用いられた場合における、主要機能構成を示すブロック図である。サーバ機器300としては、ネットワーク対応のクライアント機器(200)であるデジタルカメラを用いてリアルタイムに撮影画像を共有する、画像ストリーム型ソーシャルネットワークサービス(画像SNSサービス)を提供するための機器を想定する。画像SNSサービスでは、複数のユーザが撮影した多数の写真を、一連の流れ(ストリーム)として、クライアント機器間(ユーザ間)で共有することができる。したがってサーバ機器300は、複数のクライアント機器との間で、ほぼリアルタイムに画像を取り扱う機能を有している。なおサーバ機器300は、IPアドレスに代表されるような、個別の機器を識別する機能を有する機器識別手段によって、他の機器から特定される。以下、サーバ機器300を構成する各部に関して、より詳細に説明する。
【００３２】
サーバOS部301は、クライアント機器200のクライアントOS部201と基本的に同様の機能を有し、すなわち、サーバ機器300を構成するハードウェアの各種構成要素を、計算機資源としてソフトウェアから抽象的に扱えるようにするものである。サーバOS部301があることによって、サーバ機器300で動作する他の各ソフトウェア構成部は、直接ハードウェアに関する制御を行う必要がなくなる。サーバOS部301は、サーバ機器300のハードウェアに関する制御を行う必要上、自装置内における(図1に示す)CPU101やシステムバス108、そしてネットワークI/F107等の処理状況を把握することができる。すなわちサーバOS部301は、コンピュータ装置100としてのサーバ機器300を構成するハードウェアの各部分における処理負荷の状況を、サーバ機器300を構成する他のソフトウェアの要求に応じて報告することができる。
【００３３】
サーバアプリ部302は、サーバ機器300における画像SNSサービス固有の機能を有し、具体的には、ストリームの管理・ストリームに対する画像の受信・保管・検索・送信等の制御を行うためのソフトウェアである。サーバアプリ部302において行われる処理の詳細については、図4、図5及び図8を用いて後述する。
【００３４】
サーバデータ解析部303は、サーバアプリ部302からのデータ解析要求を受理し、サーバデータ送信部304に処理を依頼する。サーバアプリ部302がネットワークを介してクライアント機器へデータの送受信要求を行う場合、まずサーバデータ解析部303がその要求を受理する。その後、サーバデータ送信部304がサーバOS部301を介して、ネットワーク処理を行うハードウェアを駆動する。言い換えると、サーバデータ解析部303は、サーバアプリ部302が要求するデータの形式を、サーバデータ送信部304が処理可能な形式に変換する処理を行う。
【００３５】
ここで、画像SNSサービスを提供するサーバ機器300における、サーバアプリ部302の動作について説明する。サーバアプリ部302が、特定のクライアント機器に対して撮影に関する設定情報を変更する必要があると判断した場合、次のような処理が行われる。サーバアプリ部302はサーバデータ解析部303に対して、該特定のクライアント機器を識別するための機器識別手段に関する情報と、設定の変更内容をサーバデータ解析部303に対して転送する。するとサーバデータ解析部303はその要求を解析し、当該クライアント機器に対応した実際のホスト名やIPアドレスといった送信先アドレスと、クライアント機器が受信可能な形式の送信データを生成する。そしてサーバデータ送信部304が、サーバデータ解析部303からの処理要求を、サーバOS部301に転送する。例えば、サーバデータ解析部303が変換した送信先アドレスと送信データに基づき、サーバOS部301を制御する。具体的には、TCP/IPのセッションを開設し、実際のデータを送信するといった制御を行う。
【００３６】
サーバデータ管理部305は、サーバ機器300で保持されているいくつかの主要なデータを管理する。サーバ制御データ保持部308は、サーバ機器300とクライアント機器の負荷分散制御に関係するデータを保持する。サーバ制御データ保持部308で保持されるデータの詳細については、図6及び図7を用いて後述する。サーバ共有データ保持部306は、クライアント機器同士がサーバ機器300を経由して画像を共有するための論理的な単位であるストリームと、クライアント機器間で共有されるデータを保持する。サーバ制御データ保持部308及びサーバ共有データ保持部306は、サーバ機器300に接続されている、不揮発性のメモリやハードディスクを用いてデータの保存を実施する。
【００３７】
サーバデータ受信部307は、クライアント機器から発行される要求を受信する。ネットワーク上にあるクライアント機器からの要求は、サーバOS部301を経由して受信され、サーバデータ受信部307に到達する。データを受信したサーバデータ受信部307は、それをサーバデータ解析部303が処理可能な形式に変換する。ここで、サーバOS部301が開設するTCP/IPのポート番号80において、外部機器からHTTPによる接続があった場合の処理について説明する。この時、HTTPによるURLやヘッダ、あるいはペイロード等のデータを解析して、サーバデータ解析部303に転送するのが、サーバデータ受信部307の役割である。
【００３８】
サーバ機器300は、クライアント機器に対して論理的なデータの流れをとりまとめる単位であるストリームを複数提供することができる。このストリームを構成するために必要な情報(ストリーム情報)は、すべてサーバ制御データ保持部308に格納され、サーバデータ管理部305によって管理される。ストリーム情報とは例えば、現時点でストリームに参加しているクライアント機器のリストやストリームに保存された画像のリスト等である。
【００３９】
サーバ機器300は上記のようなソフトウェア構成をとることにより、ネットワーク上にあるクライアント機器からの要求を受信するだけではなく、クライアント機器へ要求を送信して処理させることができる機能を有する。
【００４０】
サーバアプリ部302は、サーバデータ管理部305が管理するサーバ制御データ保持部308に保持された情報によって、サーバデータ解析部303を制御することで、クライアント機器に対してストリームを複数提供する。各ストリームには固有の識別情報が付与されて、サーバ制御データ保持部308に格納されている。クライアント機器は、この識別情報によって、参加しているストリームを識別することができる。また、サーバ機器は当該のクライアント機器が画像データの追加(アップロード)を行うのか、それとも取得(ダウンロード)だけを行うのかを判別し、その判別結果をクライアント機器を識別する機器識別情報とともにサーバ制御データ保持部308に記録する。
【００４１】
またサーバアプリ部302は、サーバ制御データ保持部308に格納されたデータと、サーバOS部301から取得した現在の処理負荷の状況から、各クライアント機器における画像の生成条件(追加画像条件)の設定を変更すべきかを判断し、決定する。また、サーバアプリ部302はサーバデータ解析部303及びサーバデータ送信部304を介して、各クライアントに対して追加画像条件を変更するよう要求することができる。
【００４２】
●処理シーケンス
以下、本実施形態におけるクライアント機器とサーバ機器における、主要な処理シーケンスについて説明する。
【００４３】
まず、サーバ機器が特に負荷調整を行わない場合の処理シーケンスを図4に示す。図4において、401、402、403は、それぞれ図2にクライアント機器200として構成を示したクライアント機器A、B、Cである。クライアント機器A401及びクライアント機器B402は、撮影能力をもったカメラであり、クライアント機器C403は撮影能力をもたないディスプレイである。404は、図3においてサーバ機器300として構成を示した、画像SNSサービスを提供する機能を有するサーバ機器である。クライアント機器A401、B402、C403及びサーバ機器404は、それぞれ図4に示すようなIPアドレスによって識別される。
【００４４】
図4において、まずS450で、クライアント機器A401は、サーバ機器404の画像SNSサービスが提供するストリームを識別し、それに参加する。同様に、クライアント機器B402はS451で、クライアント機器C403はS452で、サーバ機器404の画像SNSサービスが提供するストリームに参加する。ここでは、3つのクライアント機器A401〜C403は、サーバ機器404が提供する複数のストリームのうち、同じ識別子を有するストリームに参加したものとする。
【００４５】
こうして参加したストリームに対し、クライアント機器A401はS460で、撮影した画像の追加をサーバ機器D404に対して要求する。要求を受理したサーバ機器404は、同一のストリームに参加している他のクライアント機器B402に対し、S461で当該画像の配信を行う。同様にサーバ機器D404はS462で、クライアント機器A401と同じストリームに参加している他のクライアント機器C403に対しても、当該画像の配信を行う。このように、クライアント機器B402、C403は、サーバ機器404が提供するストリームを介して、クライアント機器A401が撮影した画像を共有することが可能となる。
【００４６】
次に、サーバ機器が本実施形態の特徴である負荷調整を行う場合の処理シーケンスを図5に示す。図5において、各クライアント機器及びサーバ機器は、図4に示したものと同様である。すなわち、クライアント機器A401、B402は撮影能力をもったカメラ、クライアント機器C403は撮影能力を有さないディスプレイであり、サーバ機器404は画像SNSサービスを提供する機能を有する。また、クライアント機器A401〜C403及びサーバ機器404は、それぞれ図5に示すようなIPアドレスによって識別される。
【００４７】
図5において、まずS550で上記図4のS450と同様に、クライアント機器A401は、サーバ機器404の画像SNSサービスが提供するストリームを識別し、それに参加する。次にS551で、クライアント機器A401はストリームへの参加役割と追加画像条件の設定内容を、サーバ機器404に通知する。ここで、クライアント機器A401が通知した参加役割は"画像を「追加」するクライアント機器"であり、追加画像条件は"画像サイズ＝L、画質＝高"であるとする。
【００４８】
次にS552では、上記図4のS451と同様に、クライアント機器B402がサーバ機器D404の画像SNSサービスが提供するストリームに参加する。そしてS553で、クライアント機器B402がストリームへの参加役割と現在の追加画像条件を、サーバ機器404に通知する。ここで、クライアント機器B402が通知した参加役割は"画像を「追加」するクライアント機器"であり、追加画像条件は"画像サイズ＝M、画質＝低"であるとする。
【００４９】
次にS554では、上記図4のS452と同様に、クライアント機器C403がサーバ機器404の画像SNSサービスが提供するストリームに参加する。そしてS555で、クライアント機器C403がストリームへの参加役割と現在の追加画像条件を、サーバ機器404に通知する。ここで、クライアント機器C403が通知した参加役割は"画像を「取得」するクライアント機器"であり、追加画像条件は"なし"であるとする。
【００５０】
各クライアント機器からのデータを受信したサーバ機器404は、S560で、各クライアント機器に対する追加画像条件を決定するが、その詳細については図8を用いて後述する。
【００５１】
その後、サーバ機器404は、S560で決定した追加画像条件を、S561でクライアント機器A401に、S562でクライアント機器B402に対してそれぞれ適用する。
【００５２】
次にS570でクライアント機器A401が、上記図4のS460と同様に、参加したストリームに対し、撮影した画像の追加をサーバ機器404に対して要求する。要求を受理したサーバ機器404は、同一のストリームに参加している他のクライアント機器B402に対し、S571で当該画像の配信を行う。同様にサーバ機器404はS572で、クライアント機器C403に対しても当該画像の配信を行う。このように、クライアント機器B402、C403は、サーバ機器404が提供するストリームを介して、クライアント機器A401が撮影した画像を共有することが可能となる。
【００５３】
●データ構造
ここで図6に、本実施形態のサーバ機器300において、サーバ制御データ保持部308によって管理される、ストリーム管理用データの構造例を示す。同図に示すようにサーバ制御データ保持部308は、サーバ機器300が管理する複数のストリームに対して、現在参加しているクライアント機器の台数と、実際のデータ更新頻度の情報を保持している。同図に示すストリームAについてのデータ例によれば、ストリームAに画像を「追加」する役割で参加しているクライアント機器は、この時点で1000台である。また、ストリームAから画像を「取得」する役割で参加しているクライアント機器は、この時点で10000台である。なお、画像を「追加」するクライアントは同時に「取得」するクライアントでもあることが多い。また、ストリームAにはクライアント機器からのデータの追加が、平均して1秒未満に1回以上は行われている。ストリームB、ストリームCについても同様に、参加しているクライアント機器の台数と、データ追加の発生頻度が示されている。これらのストリーム管理用データは、サーバ制御データ保持部308によって管理され、サーバアプリ部302によって常に最新の状態に更新される。
【００５４】
また図7に、サーバ機器300においてサーバ制御データ保持部308によって管理される、クライアント機器管理用データの構造例を示す。同図に示すようにサーバ制御データ保持部308は、サーバ機器300が管理する複数のストリームに対して、現在参加しているクライアント機器を識別するための情報と、各クライアント機器における追加画像条件の設定状況を保持している。
【００５５】
本実施形態におけるクライアント機器200は、画像生成を行う際の条件(追加画像条件)として、画像サイズおよび画質を設定することができる。画像サイズの設定値としては例えば、"L(大きい)"、"M(中間)"、"S(小さい)"の設定値がある。また画質の設定値としては例えば、"高(高画質)"と"低(低画質)"がある。本実施形態のクライアント機器200とサーバ機器300との間で実際に転送される画像のデータ量は、該画像に設定された画像サイズと画質の双方のパラメータにより決定される。すなわち、"画像サイズ＝L、画質＝高"の場合が最もデータ量が大きくなり、"画像サイズ＝S、画質＝低"の場合に最も小さくなる。サーバ制御データ保持部308は、複数のストリームに対し、現在参加しているクライアント機器における追加画像条件の設定内容として、これら画像サイズおよび画質のパラメータを保持している。
【００５６】
また、複数のストリームに対し、現在参加しているクライアント機器を識別するための情報として、IPアドレスが保持されている。ただし、ここで管理されるクライアント機器としては、画像を「追加」する役割で参加しているクライアント機器に限定される。図7の例でば、ストリームAにはIPアドレス150.61.1.8で識別されるクライアント機器が参加しており、当該クライアント機器の撮影に関して設定された追加画像条件は"画像サイズ＝L,画質＝高"である。ストリームAにはまた、IPアドレス150.61.4.10で識別されるクライアント機器が参加しており、当該クライアント機器の撮影に関して設定された追加画像条件は"画像サイズ＝S,画質＝低"である。ストリームB、ストリームCについても同様に、画像を「追加」する役割で参加しているクライアント機器を識別するためのIPアドレスのリストと、各クライアント機器の追加画像条件が保持されている。これらのクライアント機器管理用データは、サーバ制御データ保持部308によって管理され、サーバアプリ部302によって常に最新の状態に常に更新される。
【００５７】
●サーバ処理
以下、本実施形態のサーバ機器300において、調整対象となるストリーム(以下、対象ストリームと称する)について実行される負荷調整処理、すなわち上記図5に示した負荷調整処理について、図8のフローチャートを用いて詳細に説明する。図8はすなわち、上記図5に示すサーバ機器404におけるS560〜S562の詳細を示すものであり、サーバアプリ部302によって実行される。サーバアプリ部302では、サーバデータ管理部305と、上記図6及び図7に示した、サーバ制御データ保持部308で保持されたデータを用いて負荷調整を行う。
【００５８】
まずS810で、対象ストリームに対し、画像を「追加」する役割を有しているクライアント機器の台数を確認する。これは、図6に示したストリーム管理用データを用いることによって行われる。同様にS820で、対象ストリームに対し画像を「取得」する役割を有しているクライアント機器の台数を確認する。これも、図7に示したクライアント機器管理用データを用いて行われる。
【００５９】
次にS830で、画像がクライアント機器から追加される頻度と、各役割のクライアント機器の台数および追加画像条件から、対象ストリームについて予測されるサーバ機器の最大負荷(予測負荷)を以下のように算出する。まず、画像が追加される頻度は図6に示したストリーム管理用データによって確認できる。また、画像の追加あるいは取得の役割をもつクライアント機器の台数(比率)については、上記S810及びS820で図6に示したストリーム管理用データから取得されている。したがって、S830ではこれらの情報を用いて、対象ストリームに対して発生が予測されるサーバ機器の最大負荷(予測負荷)を算出することができる。具体的には、対象ストリームに対し、所定時間内に追加される画像データ量を上記各データから算出し、これを予測負荷とすれば良い。
【００６０】
次にS840で、サーバ機器300の現時点における、対象ストリーム以外の処理による負荷状況に基づき、対象ストリームに対して許容されるサーバの負荷(目標負荷)を以下のように算出する。まず、現時点でのサーバ機器の処理負荷状況に関しては、サーバOS部301に問い合わせることによって取得が可能である。また、画像が追加される頻度の情報が図6に示したストリーム管理用データから取得できる。また、対象ストリームに接続してくる可能性のあるクライアント機器の総数と役割については、上記S810及びS820で図6に示したストリーム管理用データから取得されている。また、各クライアント機器の現在の追加画像条件に関しては、図7に示したクライアント機器管理用データから得られる。したがって、S840ではこれらの情報を用いて、対象ストリームが目標とすべき、サーバ機器の許容付加負荷(目標負荷)を算出することができる。具体的には、対象ストリームについて、現在のサーバ機器での負荷状況下において、所定時間内に追加可能となる画像データ量を上記各データに基づいて算出し、これを目標負荷とすれば良い。
【００６１】
次にS850において、S830で算出した予測負荷を、S840で算出した目標負荷と比較する。該比較の結果、予測負荷が目標負荷を超える場合にはS860で、追加画像条件の変更対象となるクライアント機器を選択する。
【００６２】
S860では例えば、追加画像条件に所定の変更を施した結果、対象ストリームに対するサーバ機器の負荷が最も低減するであろうクライアント機器を1台選択する。この選択は、図7に示したクライアント機器管理用データを用いて行う。なお、追加画像条件の変更としては、ストリームに追加される画像のデータ量が削減されるような変更(低画質化)を行えば良い。例えば、画像サイズや画像フォーマットの変更(RAW→JPEG等)、低解像度化、高圧縮率化の他、撮影時のズーム方法を光学ズームからデジタルズームへ強制切り替えする、等が考えられる。例えば、追加画像条件の変更として画像サイズの変更がなされるとし、図7に示す例においてストリームAの負荷を低減するには、IPアドレス150.61.1.8のクライアント機器が、負荷低減に寄与する可能性が高いために変更対象として選択される。これは、該クライアント機器が、ストリームAに対する他のIPアドレス150.61.4.10のクライアント機器よりも、画像サイズが高い設定となっているためである。すなわち、IPアドレス150.61.1.8のクライアント機器の方が、例えば画像サイズを1段階下げるような変更がなされた場合に、より画像データ量が作成され、負荷低減に寄与する可能性が高いと判定される。
【００６３】
次にS870で、S860で選択した変更対象のクライアント機器について、追加画像条件に所定の変更を施した場合に、対象ストリームについて予測されるサーバ機器の負荷(予測負荷)を算出する。この予測負荷の算出は、上記S830と同様の手法により行われる。
【００６４】
S870でクライアント機器の追加画像条件変更後の予測負荷を算出した後、S850で該予測負荷を再度、目標負荷と比較する。すなわち本実施形態では、S830で算出された予測負荷を初期値として、S870で該予測負荷を更新しながら、目標負荷との比較を行う。
【００６５】
S850での比較の結果、依然として予測負荷が目標負荷を超える場合には、S860で追加となるクライアント機器選定を行うことで、追加画像条件変更の対象となるクライアント機器の台数を増加させる。すなわちS860では、既に変更対象として選出されたクライアント機器を除いて、追加画像条件変更によるサーバ機器の負荷の低減が最も顕著となるクライアント機器をさらに1台選出する。以降は、S870で変更後の予測負荷を再度算出し、S850で該予測負荷が目標負荷以下となるまで、上記処理を繰り返す。
【００６６】
S850で予測負荷が目標負荷以下である場合にはS880に進み、S860で選択された変更対象のクライアント機器の全てに対して、追加画像条件の変更を実施する。
【００６７】
なお、図8に示したS810〜S870における処理が、図5のS560における各クライアント機器に対する追加画像条件の決定処理に対応する。同様に、S880における追加画像条件変更処理が、図5のS561及びS562に示したクライアント機器への変更後追加画像条件の適用処理に対応する。
【００６８】
なお本実施形態ではS850〜S870において、予想負荷が目標負荷に達するまで、変更対象となるクライアント機器を増やしていく例を示したが、上記条件を満たす前に、変更対象のクライアント数が上限に達してしまう場合が考えられる。この場合、もちろん適切なエラー処理を行っても良いが、追加画像条件をさらに変更することも有効である。
【００６９】
以上説明したように本実施形態によれば、クライアント機器からのデータ送信要求がサーバ機器の現在の処理能力を超えると予想される場合に、該送信が可能となるように、クライアント機器からストリームに追加されるデータ量が制御される。これにより、サーバ機器の処理負荷とデータ配信にかかる時間とのバランスをとることが可能となる。
【００７０】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。第2実施形態におけるサーバ機器およびクライアント機器の構成は上述した第1実施形態と同様であるため、説明を省略する。第2実施形態においても第1実施形態と同様の負荷調整を行うが、第1実施形態とは、図8のS830,S870で行われるサーバ機器の予測負荷算出処理が異なる。第1実施形態ではS830において、クライアント機器から画像が追加される頻度と、各役割のクライアント機器の台数および追加画像条件から、ストリーム毎に予測されるサーバ機器の負荷(予測負荷)を算出する例を示した。第2実施形態では、ストリームに参加するクライアント機器の台数情報のみ、あるいは画像追加の頻度情報のみを用いて、ストリーム毎のサーバ機器の予測負荷を算出することを特徴とする。以下、予測負荷を算出することを単に「負荷予測」と称する。
【００７１】
まず、画像追加の頻度情報を用いずに負荷予測を行う場合、既に画像データが当該ストリームに追加されているかどうかは無関係となる。このような負荷予測による負荷調整は、参加を表明しているクライアント機器の台数が非常に多い場合における負荷増大の予防的措置として有効である。例えば、開始時刻が予め決定されているような催事に対応したストリームの負荷予測を実施するような場合において、一定の応答性能を確保するために有効である。なおこの場合、図6に示したストリーム管理用データにおいて、データ更新頻度の情報が不要となる。
【００７２】
ここで、上記催事において、第1実施形態のように負荷予測に画像追加の頻度を用いる場合には、催事の開始後でないと、クライアント機器の追加画像条件に基づく負荷予測は行えない。そこで第2実施形態のように画像追加の頻度情報を用いないことで、参加クライアント数のみに基づいた負荷予測により、事前に予防的措置を講ずることが可能となる。
【００７３】
また、クライアント機器の参加状況が頻繁に変更されるような催事に対しては、画像追加の頻度のみを用いた負荷予測が有効となる。例えば、数日から数週間等の長期間の催事に対するストリームについて考えると、クライアント機器であるデジタルカメラにおいては頻繁に電源断状態となることが予想される。このような場合に、参加クライアント数に基づいた負荷予測を行うと、参加クライアント数が電源断によって頻繁に増減してしまうため、正確な予測が行えない。そこで、クライアント台数を用いずに、画像追加の頻度情報のみに基づいた負荷予測を行うことによって、より適切な予測結果を得ることが可能となる。なおこの場合、図6に示したストリーム管理用データにおいて、役割が"追加"のクライアント機器の台数情報が不要となる。
【００７４】
以上説明したように第2実施形態によれば、サーバ機器の負荷予測を、クライアント機器における画像データの追加頻度情報のみ、またはクライアント機器の台数情報のみに基づいて行うことによって、適応的な負荷調整が可能となる。
【００７５】
＜第3実施形態＞
以下、本発明に係る第3実施形態について説明する。第3実施形態におけるサーバ機器およびクライアント機器の構成は上述した第1実施形態と同様であるため、説明を省略する。第3実施形態においても第1実施形態と同様の負荷調整を行う。第1実施形態とは、図7のクライアント機器管理用データに示した各クライアント機器の追加画像条件と、図8のS870およびS880で行われるクライアント機器の追加画像条件変更に関する処理が異なる。
【００７６】
第1実施形態では、図7に示すクライアント機器管理用データの「追加画像条件」欄の内容として、画像サイズと画質の情報を保持する例を示した。第3実施形態ではこの「追加画像条件」欄の内容としてさらに、各クライアント機器が当該ストリームに画像を追加可能とする「時間間隔」の情報を追加することを特徴とする。すなわち第3実施形態においては、当該クライアントが特定のストリームに画像を追加した場合、「時間間隔」によって規定された時間が経過するまで、次の画像を追加することができない。サーバ機器では、クライアント機器管理用データにおける「時間間隔」の情報を、図8のS870およびS880における追加画像条件変更の対象とする。なお、S830における負荷予測の際には上記「時間間隔」設定は参照せず、図6のストリーム管理用データにおける画像追加の頻度情報を参照する。そして、S870およびS880におけるサーバ機器による「時間間隔」設定の変更に応じて、図6のストリーム管理用データにおけるデータの追加頻度情報が変更される。
【００７７】
以上説明したように第3実施形態によれば、クライアント機器における追加画像条件として画像追加の「時間間隔」情報を追加することによって、より適応的な負荷調整が可能となる。
【００７８】
＜第4実施形態＞
以下、本発明に係る第4実施形態について説明する。第4実施形態におけるサーバ機器およびクライアント機器の構成は上述した第1実施形態と同様であるため、説明を省略する。第4実施形態は、第1実施形態における負荷調整を行った際に、図5のS561やS562で実行されるクライアント機器の追加画像条件変更処理に伴い、該変更内容をユーザへ報知することを特徴とする。
【００７９】
第4実施形態では、上述した第1実施形態におけるクライアント機器200がデジタルカメラである場合を想定する。図9は、第4実施形態におけるクライアント機器としてのデジタルカメラ(以下、単にカメラと称する)において、背面に配置される操作パネルおよび表示パネル、およびボタン類を模式的に示した図である。同図において、901はファインダーであり、当該カメラが撮影しようとしている画像をユーザに対して視覚的に表示する。902はシャッターボタンであり、ユーザによる押下に応じて、静止画あるいは動画の撮影が実施される。903は状態ランプであり、当該カメラの通電状態や残りメモリ量の状況等、カメラにおいて変化する情報をユーザに示す。904は操作ボタンであり、ユーザが表示パネル905上に表示されるメニュー等を選択・決定する際に使用される。905は表示パネルであり、撮影画像の表示や現在の追加画像条件、あるいは各種の機能を呼び出すメニューの表示等が行われる。906はスピーカであり、音声を出力することができる。
【００８０】
第4実施形態では、例えば図5のS561においてサーバ機器から追加画像条件の変更が要求されたカメラにおいて、その変更がなされたことを、上記表示パネル905等を用いてユーザに報知する。第4実施形態ではこの報知方法として、以下のいずれかの方法を単独で、あるいは組み合わせて実行する。
【００８１】
まず図9に示すように、表示パネル905に現時点における追加画像条件を表示する。図9の例では、表示パネル905の左上に現時点での追加画像条件として「L・高画質」が表示されている。さらに、この追加画像条件がサーバ機器により変更されたものであるか否かが分かるような表示を行っても良い。
【００８２】
また、上述した第3実施形態のように、所定時間が経過しないと次の画像が撮影できないような設定がなされている場合には、表示パネル905の右上に「残り時間：15秒」と例示されているように、撮影再開までの残り時間を逐次表示しても良い。
【００８３】
また、表示パネル905への表示に代えて、状態ランプ903の明滅や点灯を用いて、またはスピーカ906からの音声出力によって、カメラの追加画像条件が変更された旨を報知しても良い。また、筐体自体を振動させるなどの方法による通知を行っても良い。
【００８４】
また、上述した第3実施形態における時間間隔の制限等により、当該カメラが撮影不可の状態にある場合には、シャッターボタン902や操作ボタン904等の操作部を機械的にロックすることで、ユーザに操作不可状態である旨を示しても良い。
【００８５】
以上説明したように第4実施形態によれば、クライアント機器の追加画像条件がサーバ機器より変更された場合に、クライアント機器側のユーザに対してその旨を適切に報知することができる。
【００８６】
＜第5実施形態＞
以下、本発明に係る第5実施形態について説明する。第5実施形態におけるサーバ機器およびクライアント機器の構成は上述した第1実施形態と同様であるため、説明を省略する。第5実施形態は、サーバ機器が上述した第1実施形態と同様に図5に示した処理シーケンスによる負荷調整を実行した後に、さらにクライアント機器の追加画像条件を変更して、再度の負荷調整を行うことを特徴とする。
【００８７】
図10に、第5実施形態における負荷調整の処理シーケンス例を示す。図10において、各クライアント機器及びサーバ機器は、図4に示したものと同様であり、さらに、S560,S561,S562およびS570,S571,S572の各シーケンスは、図5に示したシーケンスと同様である。図10に示すように第5実施形態では、図5と同様のシーケンス(S560〜S572)により負荷調整を実行した後、さらにクライアントの追加画像条件を変更すべく、S1010以降のシーケンスを実行する。すなわち図10は、2回目の負荷調整(S1010)において、前回(S560)とは異なる調整結果が得られた場合に、S1020〜S1070の処理を行う旨を示している。
【００８８】
図10では、S560において、各クライアントの追加画像条件を低解像度設定に変更するという判断がなされたものとする。しかしながらその後、ストリーム参加クライアント数の増減等の状況変化に伴い、S1010において再び各クライアントの追加画像条件を高解像度設定に変更するという判断がなされた場合を示す。この場合すなわち、S560とS1010とで、算出される予測負荷および目標負荷の値が異なり、S850における比較結果が逆転する。すなわちS1010では、予測負荷が目標負荷を大きく下回る。
【００８９】
この場合、S1020ではS561と同様に、クライアントAに対して追加画像条件の変更を要求する。ここでの変更内容は、S561が低解像度化であったのに対し、S1020では高解像度化が要求される点が異なる。またS1030でもS562と同様に、クライアントBに対して追加画像条件の変更を要求するが、S562での低解像度化が要求されたのに対し、S1030では高解像度化が要求される。なお、このようにサーバ機器からクライアント機器への高解像度化設定が要求される場合には、図8に示すフローチャートにおいてS860ではサーバ負荷増加への寄与が小さいものから順次、クライアントを選択していくようにする。これにより、より多くのクライアント機器において、高解像度画像を配信することができる。
【００９０】
S1020で追加画像条件の変更要求を受けたクライアント機器Aは、前回の負荷調整時にS570で低解像度設定によりストリームに追加(送信)した画像データを、今度は高解像設定でストリームに追加されるよう、S1040でサーバ機器に要求し直す。
【００９１】
このとき、クライアント機器B,CはそれぞれS571,S572で、クライアント機器Aが撮影してS570でストリームに追加した画像の配信を受けているが、第5実施形態ではさらにS1040での再送に応じた配信を行う。すなわち、クライアント機器B,CはそれぞれS1060,S1070で、より高解像度の画像の再配信を受けることができる。
【００９２】
以上説明したように第5実施形態では、一旦低解像度の画像を配信した場合においても、状況の変化によって高解像度の画像が配信可能になった場合には、過去に送信済みである当該画像を、再度、高解像度で配信することができる。
【００９３】
なお、第5実施形態では一旦、クライアント機器に対してデータの低解像度化設定を行った後に、サーバ負荷状況が改善したら高解像度化設定を行う例を示した。しかしながら、クライアント設定の変更はこのような時系列順に限らない。例えばS850で予測負荷が目標負荷より大きければ図8に示すS860以降の処理を行い、予測負荷が目標負荷を所定の閾値以上に下回っていた場合には、クライアント機器の高解像度化設定を行うようにしても良い。
【００９４】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【図１】
2014041487.tif 000003
【図２】
2014041487.tif 000004
【図３】
2014041487.tif 000005
【図４】
2014041487.tif 000006
【図５】
2014041487.tif 000007
【図６】
2014041487.tif 000008
【図７】
2014041487.tif 000009
【図８】
2014041487.tif 000010
【図９】
2014041487.tif 000011
【図１０】
2014041487.tif 000012