(57)【要約】【課題】  画像管理装置と接続可能な複数の格納装置の負荷を分散するための技術を提供すること。【解決手段】  画像ファイルを格納する複数の格納装置に読み込み要求を割り振る際に、対象ファイルの代わりとなる代替ファイルが存在するか否かを編集履歴に基づいて判定する。そして、対象ファイルを格納する格納装置の負荷よりも、代替ファイルを格納する格納装置の負荷が低い場合には、代替ファイルを格納する格納装置に読み込み要求を割り振る。【選択図】  図２
2014092912.tif 000002
【特許請求の範囲】
【請求項１】
画像ファイルを格納する接続可能な複数の格納装置からクライアントの要求に応じて前記画像ファイルを読み込む仲介をする画像管理装置であって、
前記画像ファイルを格納している格納装置および編集履歴を管理する管理手段と、
前記複数の格納装置の負荷状況を取得する取得手段と、
前記画像ファイルを取得する要求を受信した際に、要求された対象ファイルを読み込むために、前記負荷状況に応じて前記複数の格納装置に前記要求を割り振る要求割り振り手段と、
を備え、
前記要求割り振り手段は、前記編集履歴を参照した結果、前記対象ファイルを生成可能な代替ファイルが存在する場合、前記代替ファイルを格納する格納装置を含めて前記要求を割り振る
ことを特徴とする画像管理装置。
【請求項２】
前記要求割り振り手段は、前記対象ファイルを格納する格納装置と前記代替ファイルを格納する格納装置のうち、負荷が低い格納装置を優先して前記要求を割り振ることを特徴とする請求項１記載の画像管理装置。
【請求項３】
前記要求割り振り手段は、前記要求をする格納装置が予め指定されている場合、前記代替ファイルを格納する格納装置に要求を変換することを特徴とする請求項１記載の画像管理装置。
【請求項４】
前記管理手段は、前記格納装置に格納されている各画像ファイルが、前記格納装置に格納されている他の画像ファイルに画像編集を施すことで生成できるか否かについての情報を編集履歴として管理し、
前記要求割り振り手段は、画像編集を施すことで前記対象ファイルを生成できる画像ファイルを、その対象ファイルの代替ファイルとして判定する
ことを特徴とする請求項１に記載の画像管理装置。
【請求項５】
前記管理手段では、前記格納装置に格納されている画像ファイルのオリジナル画像ファイルを示す情報を前記編集履歴と対応させて管理していることを特徴とする請求項１記載の画像管理装置。
【請求項６】
前記管理手段では、前記格納装置に格納されている画像ファイルをオリジナル画像ファイルに戻すことが可能か可逆性を示す情報を管理していることを特徴とする請求項１記載の画像管理装置。
【請求項７】
前記対象ファイルがオリジナル画像ファイルであり、前記編集履歴を参照して、前記格納装置に格納されている画像ファイルをオリジナル画像ファイルに戻すことが可能な場合に、前記格納されている画像ファイルを前記対象ファイルの代替画像であるとすることを特徴とする請求項６記載の画像管理装置。
【請求項８】
前記代替ファイルは、前記対象ファイルのオリジナル画像ファイルであることを特徴とする請求項１記載の画像管理装置。
【請求項９】
前記対象ファイルの代わりに前記代替ファイルを前記格納装置から読み込んだ際に、その代替ファイルに画像編集を施すことによって前記対象ファイルを生成することを前記格納装置に指示する指示手段を更に備える
ことを特徴とする請求項１に記載の画像管理装置。
【請求項１０】
前記要求割り振り手段は、前記画像ファイルおよびその代わりとなる代替ファイルへの前記要求を受信した回数が所定値を超えた場合には、その画像ファイルを格納していない他の前記格納装置に、その画像ファイルの複製を作成する作成手段を更に備える
ことを特徴とする請求項１に記載の画像管理装置。
【請求項１１】
前記要求割り振り手段は、前記格納装置に割り振り済みでまだ読み込み処理されていない未処理要求の中に、前記要求の対象ファイルと同一の画像ファイル、もしくはその代替ファイルと同一の画像ファイルを読み込むための前記未処理要求が存在する場合には、その未処理要求が割り振られている格納装置に前記要求を割り振る
ことを特徴とする請求項１に記載の画像管理装置。
【請求項１２】
画像ファイルを格納する接続可能な複数の格納装置からクライアントの要求に応じて前記画像ファイルを読み込む仲介をする画像管理方法であって、
前記画像ファイルを格納している格納装置および編集履歴を管理する管理工程と、
前記格納装置の負荷状況を取得する取得工程と、
前記画像ファイルを取得する要求を受信した際に、要求された対象ファイルを読み込むために、前記負荷状況に応じて前記複数の格納装置に前記要求を割り振る要求割り振り工程と、
を備え、
前記要求割り振り工程は、前記編集履歴を参照した結果、前記対象ファイルを生成可能な代替ファイルが存在する場合、前記代替ファイルを格納する格納装置を含めて前記要求を割り振る
ことを特徴とする画像管理方法。
【請求項１３】
コンピュータを請求項１から１１のいずれか１項に記載の画像管理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像ファイルを格納する複数の格納装置を有する画像管理装置、画像管理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラ等で生成された画像ファイルをサーバに送信し、サーバ上で画像ファイルを管理する画像管理サービスが提供されている。多くの画像管理サービスは、インデックス表示用や携帯端末への配信用として、複数サイズのサムネイルをあらかじめ作成している。また、画像編集機能を有する画像管理サービスにおいては、ユーザからの指示に基づいて編集された画像ファイルを作成する。このように、画像管理サービスにおいては、オリジナルの画像ファイルだけでなく、サムネイルや編集された画像ファイル（以下、関連画像ファイルと呼ぶ）を作成し、保管している場合が多い。
【０００３】
画像管理サービスのシステムは、画像ファイルを格納するコンテンツサーバ群から構成される。コンテンツサーバは多数の画像ファイルをデータ記憶装置に記憶し、クライアント上のアプリケーションから要求された画像ファイルの読み込み処理や書き込み処理を行う。このようなシステムにおいては、一部の画像ファイルへのクライアントからのアクセスが頻発し、その画像ファイルを格納しているコンテンツサーバに負荷が集中することがある。また、データアクセスの傾向として、読み込み要求の割合が、書き込み要求の割合よりも極めて大きくなることがある。そのため、特に読み込み要求による負荷を分散することが、システム全体の性能向上に大きく影響する。
【０００４】
一部のコンテンツサーバへの負荷集中を軽減するための方法として、アクセスが頻発するファイルの複製を他のコンテンツサーバに作成し、アクセスを分散させる技術がある。
【０００５】
例えば、特許文献１では、複数のコンテンツサーバの負荷状況を計測し、クライアントからアクセス要求を受け付けた際に、負荷の低いサーバをアクセス対象として選定する。より具体的には、読み込み要求を受けた際には、ファイルの複製が格納されているサーバの中で負荷の最も低いサーバを読み込み対象として選定する。また、書き込み要求を受けた際には、負荷の最も低いサーバを書き込み対象として選定する。これによって、負荷状況に応じたアクセス要求の分散を可能にしている。
【０００６】
また、特許文献２では、クライアントからの読み込み要求に従ってデータを転送した回数を記録し、その回数が所定数を超えたファイルを他のコンテンツサーバに複製する。これによって、頻繁に読み込み要求が行われるファイルに対して複数のコンテンツサーバへの負荷分散を可能にしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平６−３３２７８２号公報
【特許文献２】特開２００２−７３６５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、コンテンツサーバに格納されているデータが画像ファイルであり、それを読み込む場合の負荷分散制御としては、最適な効率化が実現できない場合がある。
【０００９】
先行技術ではファイルの複製を作成することで負荷を分散しているが、アクセス頻度が高いファイルが広範囲にわたる場合には、複製対象が増加してコンテンツサーバの記憶領域を圧迫する。また、アクセス頻度が高いファイルが時々刻々と変化するような場合には、複製の作成および削除が頻発し、ネットワーク負荷や処理負荷が高まる。そのため、負荷分散を効率的に行い、複製を最小限に留めることが望ましい。
【００１０】
一方、上述のように、コンテンツサーバには、オリジナルの画像ファイルだけでなく関連画像ファイルも格納されていることが想定される。関連画像ファイルは、オリジナルの画像ファイルや他の関連画像ファイルを編集することによって生成可能である。また、関連画像ファイルに施した編集内容によっては、関連画像ファイルからオリジナルの画像ファイルと同一の画像ファイルを生成可能である。つまり、それらの画像ファイルは代替可能な関係にある。
【００１１】
コンテンツサーバ群において、読み込み要求が集中している画像ファイルを格納しているコンテンツサーバの負荷が高まっていても、その画像ファイルと代替可能な画像ファイルを格納しているコンテンツサーバの負荷は低い可能性がある。すなわち、画像ファイルをコンテンツサーバから読み込む際に、オリジナルの画像ファイルおよび各関連画像ファイルの代替可能性を考慮して割り振りを制御することによって、より効率的に負荷を分散することが行われていなかった。
【００１２】
上述の先行技術によれば、アクセス要求の割り振り対象としているのは複製ファイルを格納しているコンテンツサーバであり、代替可能なファイルを考慮した負荷分散は行われていない。
【００１３】
本発明は上記の課題に鑑みてなされたものであり、コンテンツサーバに格納されているデータが例えば画像ファイルである場合に、ファイル間の代替可能性を考慮することで、効率的に負荷を分散する画像管理装置を提供することを目的とする。また、その方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る画像管理装置は、以下の構成を備える。即ち、画像ファイルを格納する接続可能な複数の格納装置からクライアントの要求に応じて前記画像ファイルを読み込む仲介をする画像管理装置であって、前記画像ファイルを格納している格納装置および編集履歴を管理する管理手段と、前記複数の格納装置の負荷状況を取得する取得手段と、前記画像ファイルを取得する要求を受信した際に、要求された対象ファイルを読み込むために、前記負荷状況に応じて前記複数の格納装置に前記要求を割り振る要求割り振り手段と、を備え、前記要求割り振り手段は、前記編集履歴を参照した結果、前記対象ファイルを生成可能な代替ファイルが存在する場合、前記代替ファイルを格納する格納装置を含めて前記要求を割り振ることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、コンテンツサーバから画像ファイルを読み込む際に、画像ファイルの代替可能性を考慮して要求を割り振るので、コンテンツサーバの負荷を効率的に分散することができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態のシステムの構成例を示すブロック図。
【図２】コンテンツサーバ、仲介サーバ、クライアントの機能構成例を示すブロック図。
【図３】コンテンツサーバに格納されている画像ファイルの一例。
【図４】格納情報管理部が管理する格納情報の一例。
【図５】クライアントが画像ファイルを取得するためにコンテンツサーバに対して行う要求のメッセージ例。
【図６】仲介サーバが行う処理の流れを示すフローチャート。
【図７】コンテンツサーバが行う処理の流れを示すフローチャート。
【図８】読込タスクをＸＭＬ形式で表した一例。
【図９】格納情報管理部が管理するアクセス履歴情報の一例。
【図１０】画像ファイルの複製処理の流れを示すフローチャート。
【図１１】仲介サーバが行う処理の流れを示すフローチャート。
【図１２】コンテンツサーバ、仲介サーバ、クライアントの機能構成例を示すブロック図。
【発明を実施するための形態】
【００１７】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１８】
＜実施形態１＞
本実施形態に係るシステムの構成例について、図１のブロック図を用いて説明する。
【００１９】
システムは、複数のコンテンツサーバ１００、１０１、１０２、仲介サーバ１０３、クライアント１０４、ネットワーク１２２から構成されている。ここで、コンテンツサーバ１００〜１０２は共に同様の構成を有するものである。そのため、以下では、コンテンツサーバ１００としてシステムの構成例を説明する。
【００２０】
コンテンツサーバ１００、仲介サーバ１０３、クライアント１０４は、ネットワーク１２２を介して接続可能でお互いに通信することが可能である。図１では、コンテンツサーバの台数は３台、仲介サーバおよびクライアントの台数はそれぞれ１台としているが、この台数に限るものではない。
【００２１】
コンテンツサーバ１００は、画像ファイルを格納し、クライアント１０４に配信するための機能を提供する。コンテンツサーバ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０５、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０６、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０７、ネットワークインタフェース１０８、外部記憶装置１０９を少なくとも備えている。
【００２２】
ＣＰＵ１０５は、コンテンツサーバ１００を構成する各部の動作制御を行うと共に、コンテンツサーバ１００が行うものとして後述する各種の処理を実行する主体となる。
【００２３】
ＲＡＭ１０６は、データや制御情報を一時的に格納するメモリであり、ＣＰＵ１０５が各種の処理を実行する際に用いるワークエリアとなる。
【００２４】
ＲＯＭ１０７には、コンテンツサーバ１００の固定の動作パラメータや動作プログラム等が格納される。
【００２５】
ネットワークインタフェース１０８は、ネットワーク１２２に接続して通信するための機能を提供するものである。コンテンツサーバ１００は、このネットワークインタフェース１０８によって、仲介サーバ１０３、クライアント１０４とデータの送受信を行うことができる。
【００２６】
外部記憶装置１０９は、データを記憶する装置であり、データの読み書きを行うためのＩ／Ｏコマンドを受け付けるインタフェースを持つ。外部記憶装置１０９は、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ、半導体記憶装置またはその他の記憶装置であってもよい。外部記憶装置１０９は、コンテンツサーバ１００が行うものとして後述する各処理をＣＰＵ１０５に実行させるためのコンピュータプログラムやデータが格納されている。
【００２７】
仲介サーバ１０３は、クライアント１０４からコンテンツサーバ１００への要求を仲介するための機能を提供する。仲介サーバ１０３は、ＣＰＵ１１０、ＲＡＭ１１１、ＲＯＭ１１２、ネットワークインタフェース１１３、外部記憶装置１１４を少なくとも備えている。
【００２８】
ＣＰＵ１１０は、仲介サーバ１０３を構成する各部の動作制御を行うと共に、仲介サーバ１０３が行うものとして後述する各種の処理を実行する主体となる。
【００２９】
ＲＡＭ１１１は、データや制御情報を一時的に格納するメモリであり、ＣＰＵ１１０が各種の処理を実行する際に用いるワークエリアとなる。
【００３０】
ＲＯＭ１１２には、仲介サーバ１０３の固定の動作パラメータや動作プログラム等が格納される。
【００３１】
ネットワークインタフェース１１３は、ネットワーク１２２に接続して通信するための機能を提供するものである。仲介サーバ１０３は、このネットワークインタフェース１１３によって、コンテンツサーバ１００、クライアント１０４とデータの送受信を行うことができる。
【００３２】
外部記憶装置１１４は、データを記憶する装置であり、データの読み書きを行うためのＩ／Ｏコマンドを受け付けるインタフェースを持つ。外部記憶装置１１４は、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ、半導体記憶装置またはその他の記憶装置であってもよい。外部記憶装置１１４は、仲介サーバ１０３が行うものとして後述する各処理をＣＰＵ１１０に実行させるためのコンピュータプログラムやデータが格納されている。
【００３３】
クライアント１０４では、画像ファイルを処理するアプリケーションが動作しており、アプリケーションが必要とする画像ファイルをコンテンツサーバ１００に要求する。クライアント１０４は、ＣＰＵ１１５、ＲＡＭ１１６、ＲＯＭ１１７、ネットワークインタフェース１１８、外部記憶装置１１９を少なくとも備えている。また、クライアント１０４の形態によっては、入力装置１２０、出力装置１２１を備えている。
【００３４】
ＣＰＵ１１５は、クライアント１０４を構成する各部の動作制御を行うと共に、クライアント１０４が行うものとして後述する各種の処理を実行する主体となる。
【００３５】
ＲＡＭ１１６は、データや制御情報を一時的に格納するメモリであり、ＣＰＵ１１５が各種の処理を実行する際に用いるワークエリアとなる。
【００３６】
ＲＯＭ１１７には、クライアント１０４の固定の動作パラメータや動作プログラム等が格納される。
【００３７】
ネットワークインタフェース１１８は、ネットワーク１２２に接続して通信するための機能を提供するものである。クライアント１０４は、このネットワークインタフェース１１８によって、コンテンツサーバ１００、仲介サーバ１０３とデータの送受信を行うことができる。
【００３８】
外部記憶装置１１９は、データを記憶する装置であり、データの読み書きを行うためのＩ／Ｏコマンドを受け付けるインタフェースを持つ。外部記憶装置１１９は、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ、半導体記憶装置またはその他の記憶装置であってもよい。外部記憶装置１１９は、クライアント１０４が行うものとして後述する各処理をＣＰＵ１１５に実行させるためのコンピュータプログラムやデータが格納されている。
【００３９】
入力装置１２０は、例えば、キーボードやマウス、タッチパネルである。出力装置１２１は、例えば、ディスプレイである。
【００４０】
次に、コンテンツサーバ１００、仲介サーバ１０３およびクライアント１０４の機能構成例について、図２のブロック図を用いて説明する。上述のように、コンテンツサーバ１００〜１０２は共に同様の機能を有するものであるため、図２ではそれらをコンテンツサーバ１００として示している。
【００４１】
コンテンツサーバ１００は、要求処理部２０１、読込制御部２０２、データ入出力部２０３を備える。
【００４２】
要求処理部２０１は、クライアント１０４が生成した、画像ファイルを取得するための要求を受け付ける。要求処理部２０１には、クライアント１０４から要求を受信するための要求受信部２０４と、要求に対応した画像ファイルをクライアント１０４に送信するための画像送信部２０５が含まれる。
【００４３】
読込制御部２０２は、要求処理部２０１が受け付けたクライアント１０４からの要求の実行制御を行う。読込制御部２０２には、待機キュー２０６、負荷計測部２０７、画像編集部２０８が含まれる。待機キュー２０６は、要求処理部２０１が受け付けた要求に対応した画像ファイルの読込タスクを蓄積しておくために用いられる。負荷計測部２０７は、待機キュー２０６中に蓄積されている読込タスクから、コンテンツサーバ１００の負荷状況を計測する。例えば、蓄積されている読込待ちタスク数を負荷として計測する。または、読込待ちタスクが読み込み対象としているファイルのデータサイズを負荷として計測してもよい。画像編集部２０８は、必要に応じて、データ入出力部２０３から読み込まれた画像ファイルの編集処理を行う。
【００４４】
データ入出力部２０３は、読込制御部２０２から指示された読込タスクを、外部記憶装置１０９が解釈可能なＩ／Ｏコマンドに変換して実行する。これにより外部記憶装置１０９から、画像ファイルを構成するデータが読み込まれる。
【００４５】
コンテンツサーバ１００〜１０２に格納されている画像ファイルの一例を図３に示す。画像ファイル３０１は、オリジナル画像であり、例えば、ユーザ等から受け取った画像である。画像ファイル３０２は、オリジナル画像を半分のサイズに縮小した画像であり、例えば、サムネイル表示等に用いられる。画像ファイル３０３は、オリジナル画像を９０度回転させた画像であり、例えば、ユーザからの編集指示によって生成されたものである。本実施形態においては、オリジナルの画像ファイルだけでなく、サムネイルや編集画像等の複数の関連画像ファイルが別々のコンテンツサーバ１００〜１０２に格納されている。
【００４６】
画像ファイル３０２は、画像ファイル３０１を縮小することで生成できる。そのため、コンテンツサーバ１０１に格納されている画像ファイル３０２を読み込みたい場合、コンテンツサーバ１００に格納さている画像ファイル３０１は代替ファイルとなりうる。また、画像ファイル３０３は、−９０度回転することでオリジナルの画像ファイル３０１に戻すことができる。そのため、コンテンツサーバ１００から画像ファイル３０１を読み込みたい場合、コンテンツサーバ１０２に格納されている画像ファイル３０３は代替ファイルとなりうる。
【００４７】
仲介サーバ１０３は、要求仲介部２０９、割り振り制御部２１０を備える。
【００４８】
要求仲介部２０９には、クライアント１０４からの要求を受け付ける要求受付部２１１、要求をコンテンツサーバ１００〜１０２に転送する要求転送部２１２が含まれる。
【００４９】
割り振り制御部２１０には、格納情報管理部２１３、要求割り振り部２１４が含まれる。格納情報管理部２１３は、コンテンツサーバ１００〜１０２や、コンテンツサーバ１００〜１０２に格納されている画像ファイルに関する格納情報を管理する。格納情報は、画像ファイルを新たにコンテンツサーバ１００〜１０２に格納する際、およびコンテンツサーバ１００〜１０２から画像ファイルを削除する際に更新される。格納情報については、図４を用いて後述する。要求割り振り部２１４は、クライアント１０４からの要求を割り振るコンテンツサーバを決定する。具体的には、まず、要求で指定されている対象ファイルおよび代替ファイルを格納しているコンテンツサーバを、格納情報管理部２１３が管理している格納情報に基づいて検索する。次に、その中から負荷の低いものを選出して、負荷の低いコンテンツサーバに優先して要求の割り振りを行う。例えば、コンテンツサーバ１０１が要求の対象ファイルを、コンテンツサーバ１００が代替ファイルを格納しているとする。そして、コンテンツサーバ１０１よりコンテンツサーバ１００の負荷が低い場合、要求割り振り部２１４はコンテンツサーバ１００に要求を割り振る。この際、コンテンツサーバ１００では、読み込んだ代替ファイルを編集して対象ファイルを生成する必要がある。これは画像編集部２０８によって行われる。
【００５０】
クライアント１０４上では、画像ファイルを処理する様々なアプリケーション２１５が動作している。クライアント１０４は、アプリケーション２１５が必要とする画像ファイルをコンテンツサーバ１００〜１０２に要求するための要求生成部２１６を備える。要求生成部２１６は、コンテンツサーバに要求を送信するための要求送信部２１７と、要求した画像ファイルを受信するための画像受信部２１８を含む。
【００５１】
図４は、格納情報管理部２１３が管理する格納情報の一例を示している。格納情報は、画像ファイルＩＤ４０１、サイズ情報４０２、編集履歴情報４０３、格納サーバ情報４０４を含んでいる。画像ファイルＩＤ４０１は、コンテンツサーバ１００に格納されている画像ファイルを一意に特定するための識別子である。サイズ情報４０２は、各画像ファイルのデータサイズを表す。編集履歴情報４０３は、各画像ファイルに施された編集処理の履歴であり、オリジナル画像ファイルＩＤ４０５、画像処理内容４０６、その処理の可逆性情報４０７が含まれる。オリジナル画像ファイルＩＤ４０５は、編集処理される前のオリジナルの画像ファイルを示す画像ファイルＩＤである。可逆性情報４０７は、その処理と逆の処理によって、オリジナル画像に戻すことが可能であるか否かを表す。
【００５２】
編集履歴情報４０３に基づいて、ある画像ファイルの代わりとなる代替ファイルを判定できる。例えば、画像ファイルＩＤ４０１が示すある画像ファイルは、オリジナル画像ファイルＩＤ４０５が示す画像ファイルに画像処理内容４０６を施すことで生成できる。すなわち、オリジナル画像ファイルＩＤ４０５が示す画像ファイルは、画像ファイルＩＤ４０１が示す画像ファイルにとっての代替ファイルとなる。また、可逆性情報４０７が可逆を示す場合には、画像ファイルＩＤ４０１が示す画像ファイルに画像処理内容４０６と逆の処理を施すことでオリジナル画像ファイルＩＤ４０５が示す画像ファイルを生成できる。すなわち、画像ファイルＩＤ４０１が示す画像ファイルは、オリジナル画像ファイルＩＤ４０５が示す画像ファイルにとっての代替ファイルとなる。編集履歴情報４０３を参照した結果、例えば、以上の代替画像ファイルの情報が存在することが分かる。
【００５３】
格納サーバ情報４０４は、各画像ファイルが格納されているコンテンツサーバを表す情報である。格納サーバ情報４０４には、各コンテンツサーバを一意に特定するための識別子であるサーバＩＤ４０８と、アドレス情報４０９が含まれる。
【００５４】
図５は、クライアント１０４が画像ファイルを取得するためにコンテンツサーバに対して行う要求のメッセージ例を示す図である。リクエストメッセージ５０１はクライアント１０４が送信するメッセージ、レスポンスメッセージ５０４はクライアント１０４が受信するメッセージである。要求のメッセージは、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のプロトコルに従った構文によって構成される。リクエストメッセージ５０１において、取得対象の画像ファイルはＨＴＴＰのパス部５０２によって指定される。また、リクエストに関するメタ情報はヘッダ部５０３に付加される。レスポンスメッセージ５０４では、ヘッダ部５０６に付加されたメタ情報とともに、要求した画像ファイル５０７が添付されている。
【００５５】
次に、仲介サーバ１０３が行う処理について、同処理のフローチャートを示す図６を用いて説明する。フローチャートは、ＣＰＵが制御プログラムを実行することにより実現される。
【００５６】
まず、ステップＳ６０１で、要求受付部２１１が、コンテンツサーバ１００〜１０２に格納されている画像ファイルを取得するための要求を、クライアント１０４から受信する。
【００５７】
次に、ステップＳ６０２で、要求割り振り部２１４が、要求の対象ファイルを格納しているコンテンツサーバを検索し、負荷状況を取得する。コンテンツサーバの検索は、格納情報管理部２１３が管理する格納情報に基づいて行われる。負荷状況は要求の受信の度にコンテンツサーバから取得してもよいし、あらかじめ一定間隔でコンテンツサーバから取得しておいてもよい。負荷状況は、コンテンツサーバの負荷計測部２０７が管理している。
【００５８】
続いて、ステップＳ６０３で、要求の対象ファイルの代わりとなる代替ファイルが存在するか否かを判定する。判定は、上述のように、格納情報管理部２１３が保持する編集履歴情報４０３に基づいて行われる。代替ファイルが存在しない場合は、ステップＳ６０４に進み、存在する場合はステップＳ６０５に進む。ステップＳ６０４では、対象ファイルを格納しているコンテンツサーバの中から最も負荷の低いサーバを選出する。
【００５９】
ステップＳ６０５では、ステップＳ６０２と同様の方法により、代替ファイルを格納しているコンテンツサーバの負荷状況を取得する。そして、ステップＳ６０６で、代替ファイルを格納しているコンテンツサーバのうち、対象ファイルを格納しているコンテンツサーバよりも負荷の低いものが存在するか否かを判定する。存在する場合には、ステップＳ６０６に進み、存在しない場合にはステップＳ６０４に進む。ステップＳ６０７では、代替ファイルを格納しているコンテンツサーバの中から最も負荷の低いサーバを選出する。
【００６０】
続いて、ステップＳ６０８では、対象ファイルの代わりに代替ファイルを読み込むように、要求を変換する。変換は、例えば、要求のパス部５０２を、代替ファイルを示す情報に書き換え、ヘッダ部５０３に代替ファイルから対象ファイルを生成するために必要な編集処理内容を追記することによって行われる。要求のリクエストメッセージ５０１を変換した例をリクエストメッセージ５０８に示す。変換されたリクエストメッセージでは、パス部５０９が、対象ファイルの「００２．ｊｐｇ」から代替ファイルの「００１．ｊｐｇ」に書き換えられている。また、ヘッダ部５１０に、代替ファイルから対象ファイルを生成するのに必要な編集処理内容「Ｓｉｚｅ＝１／２」が追記されている。
【００６１】
最後に、ステップＳ６０９で、ステップＳ６０４またはステップＳ６０７で選出されたコンテンツサーバに対して、要求転送部２１２が要求を転送する。なお、要求の転送は、仲介サーバ１０３が直接コンテンツサーバに要求を転送してもよいし、割り振り先をクライアント１０４に通知し、クライアント１０４がコンテンツサーバにリダイレクトしてもよい。
【００６２】
次に、コンテンツサーバ１００〜１０２が行う処理について、同処理のフローチャートを示す図７を用いて説明する。フローチャートは、ＣＰＵが制御プログラムを実行することにより実現される。
【００６３】
まず、ステップＳ７０１で、要求受信部２０４が割り振られた要求を受信する。そして、要求に対応した読込タスクを生成し、待機キュー２０６に蓄積する。
【００６４】
読込タスクをＸＭＬ形式で表した一例を図８に示す。読込タスクは、タスクＩＤ８０１、対象ファイル８０２、生成日時８０３、関連要求情報８０４を含む。タスクＩＤ８０１は、読込タスクを一意に特定するための識別子である。対象ファイル８０２は、読込タスクが読み込む対象としている画像ファイルを表す。生成日時８０３は、読込タスクが生成された日時を表す。関連要求情報８０４は、その読込タスクによって読み込まれる画像ファイルを要求している、クライアント１０４からのリクエスト情報である。関連要求情報８０４は、要求ＩＤ８０５と、編集処理情報８０６を含む。要求ＩＤ８０５は、ステップＳ６０３で受信した要求を一意に特定するための識別子である。編集処理情報８０６は、読み込んだ画像ファイルに対して施す必要がある編集処理を示している。これは、要求された対象ファイルの代わりに代替ファイルが読み込まれた場合に、対象ファイルを生成するのに必要な処理であり、要求のヘッダ部５１０で指定されている。
【００６５】
次に、ステップＳ７０２で、待機キュー２０６から、先頭に位置している読込タスクを取り出す。そして、データ入出力部２０３が、取り出された読込タスクが対象とする画像ファイルのデータを読み込むため、外部記憶装置１０９にアクセスしてＩ／Ｏコマンドを実行する。
【００６６】
続いて、ステップＳ７０３で、画像編集部２０８が、読み込まれた画像ファイルに対して画像編集が必要か否かを判定する。判定は、読込タスクに編集処理情報８０６が指定されているか否かによって行われる。画像編集が必要な場合には、ステップＳ７０４で、編集処理を行うことによって、対象ファイルを生成する。
【００６７】
最後に、ステップＳ７０５で、画像送信部２０５が、ステップＳ７０２で外部記憶装置１０９から読み込まれた画像ファイル、もしくはステップＳ７０４で生成された画像ファイルをクライアント１０４に送信する。
【００６８】
以上のように、本実施形態のシステムによれば、コンテンツサーバ群の中から、要求の対象ファイルを格納しているサーバだけでなく、代替ファイルを格納しているサーバも含めて、負荷の低いサーバを割り振り先として選ぶことができる。そのため、コンテンツサーバ群に対して効率的に負荷の分散を行うことが可能となる。
【００６９】
＜実施形態２＞
実施形態１では、要求の対象ファイルだけでなく、代替ファイルを格納しているコンテンツサーバ間で要求を割り振ることで、負荷の分散を行った。本実施形態では、実施形態１の方法だけでは負荷が十分に分散できない場合に、さらに画像ファイルの複製を作成する例を説明する。ファイルの複製を作成することによって負荷を分散する方法については上述の先行技術等にも開示されているが、本実施形態においては、画像ファイルの代替可能性を考慮して複製を作成する点が異なる。なお、本実施形態は、基本的には実施形態１を前提としているため、以下では、実施形態１との差分について説明する。なお、本実施形態に係るシステム構成は、図１、２に示す構成と同じである。
【００７０】
本実施形態においては、画像ファイルの複製処理は、仲介サーバ１０３が、ステップＳ６０９で割り振り先のコンテンツサーバに要求の転送を行った後に行うものとして説明する。しかし、複製処理を行うタイミングはこれに限るものではなく、例えば、ある一定の時間が経過するごとに定期的に行なってもよい。
【００７１】
本実施形態の格納情報管理部２１３は、図４に示した格納情報だけでなく、図９に示すアクセス履歴情報を管理している。アクセス履歴情報は、要求ＩＤ９０１、要求日時９０２、対象ファイル情報９０３、アクセスしたコンテンツサーバ情報９０４を含む。
【００７２】
画像ファイルの複製処理について、同処理のフローチャートを示す図１０を用いて説明する。フローチャートは、ＣＰＵが制御プログラムを実行することにより実現される。
【００７３】
まず、ステップＳ１００１で、格納情報管理部２１３が管理しているアクセス履歴情報を参照し、対象ファイルの一定期間内のアクセス数を算出する。次に、ステップＳ１００２で、一定期間内のアクセス数が所定値以上か否かを判定する。所定値以上のアクセスがある場合にはステップＳ１００３に進み、ない場合には処理を終了する。
【００７４】
続いて、ステップＳ１００３で、対象ファイルの代わりとなる代替ファイルが存在するか否かを判定する。代替ファイルが存在する場合はステップＳ１００４に進み、代替ファイルが存在しない場合はステップＳ１００６に進む。ステップＳ１００４では、ステップＳ１００１と同様の方法により、代替ファイルの一定期間内のアクセス数を算出する。そして、ステップＳ１００５で、一定期間内のアクセス数が所定値以上か否かを判定する。所定値以上のアクセスがある場合にはステップＳ１００６に進み、ない場合には処理を終了する。
【００７５】
最後に、ステップＳ１００６で、対象ファイルの複製を作成する。複製は、例えば、対象ファイルおよび代替ファイルが格納されていないコンテンツサーバの中で、一定期間内のアクセス数が最も少ないサーバに対して行う。
【００７６】
以上、画像ファイルの複製処理の一例として、対象ファイルへのアクセスが頻発している場合に、代替ファイルが存在しない、もしくは代替ファイルへもアクセスが頻発しているなら複製を作成する、という方法を示した。なお、画像ファイルの複製処理に関しては様々な方法が考えられるため、上述の方法に限るものではなく、他の方法を用いて実現してもよい。
【００７７】
＜実施形態３＞
本実施形態では、仲介サーバ１０３が要求を受信して割り振りを行う際に、要求のマージも考慮する例を説明する。要求のマージとは、複数の要求を一つにまとめることを指す。これによって、コンテンツサーバ１００〜１０２において画像ファイルを読み込むための処理負荷を減らすことができる。本実施形態は、基本的には実施形態１を前提としているため、以下では、実施形態１との差分について説明する。
【００７８】
本実施形態の仲介サーバ１０３が行う処理について、同処理のフローチャートを示す図１１を用いて説明する。フローチャートは、ＣＰＵが制御プログラムを実行することにより実現される。
【００７９】
まず、ステップＳ１１０１で、要求受付部２１１が、コンテンツサーバ１００〜１０２に格納されている画像ファイルを取得するための要求を、クライアント１０４から受信する。
【００８０】
次に、ステップＳ１１０２で、要求割り振り部２１４が、要求の対象ファイルを格納しているコンテンツサーバを検索し、同一の画像ファイルを対象にしている実行待ち要求が存在するか否かを問い合わせる。コンテンツサーバの検索は、格納情報管理部２１３が管理する格納情報に基づいて行われる。実行待ち要求とは、コンテンツサーバにおいて、その要求によって生成された読込タスクが待機キュー２０６に蓄積されている状態の要求であり未処理要求である。そして、実行待ち要求が存在する場合にはステップＳ１１０４に進み、存在しない場合にはステップＳ１１０５に進む（ステップＳ１１０３）。
【００８１】
ステップＳ１１０４では、該当する実行待ち要求が存在するコンテンツサーバに要求を転送する。
【００８２】
ステップＳ１１０５では、要求の対象ファイルの代わりとなる代替ファイルが存在するか否かを判定する。判定は、格納情報管理部２１３が保持する編集履歴情報４０３に基づいて行われる。代替ファイルが存在しない場合はステップＳ１１０６（すなわち、ステップＳ６０２）に進み、存在する場合はステップＳ１１０７に進む。
【００８３】
ステップＳ１１０７では、ステップＳ１１０２と同様の方法により、代替ファイルを格納しているコンテンツサーバを検索し、同一の画像ファイルを対象にしている実行待ち要求が存在するか否かを問い合わせる。そして、実行待ち要求が存在する場合にはステップＳ１１０９に進み、存在しない場合にはステップＳ１１０６に進む（ステップＳ１１０８）。
【００８４】
ステップＳ１１０９では、対象ファイルの代わりに代替ファイルを読み込むように、要求を変換する。変換は、ステップＳ６０８と同様の方法により行われる。そして、ステップＳ１１０４で、該当する実行待ち要求が存在するコンテンツサーバに要求を転送する。
【００８５】
要求を受信したコンテンツサーバでは、ステップＳ７０１において、新規要求の対象ファイルと同一の画像ファイルを読み込むための読込タスクが待機キュー２０６に存在する場合には、新たに読込タスクを生成しない。その代わりに、待機キュー２０６内の既存の読込タスクの関連要求情報８０４に、新規要求の情報を追加する。これによって、複数の要求が一つの読込タスクにマージされたことになる。読み込んだ画像ファイルに対しては、ステップＳ７０３〜７０５を、関連要求情報８０４に登録されている要求の分だけ繰り返す。すなわち、一回の画像ファイル読み込みで、その画像ファイルを対象としている複数の要求に対応することができる。
【００８６】
このように本実施形態では、仲介サーバ１０３が、要求のマージも考慮して割り振りを行う。そのため、コンテンツサーバの負荷を軽減することが可能になる。
【００８７】
＜実施形態４＞
実施形態１では、コンテンツサーバ１００〜１０２で代替ファイルが読み込まれた場合に、対象ファイルを生成するための画像編集処理がコンテンツサーバにおいて実行されていた。本実施形態では、画像編集処理をクライアント１０４において実行する例を説明する。
【００８８】
本実施形態における、コンテンツサーバ１００、仲介サーバ１０３およびクライアント１０４の機能構成例を図１２に示す。画像編集処理を行う画像編集部１２０１がクライアント１０４に備わっている。
【００８９】
コンテンツサーバ１００の画像送信部２０５がクライアント１０４に送信するメッセージは、レスポンスメッセージ５１１のようになる。ヘッダ部５１３に、添付された代替ファイル５１４に対して実行すべき編集処理の内容が含まれている。クライアント１０４の画像編集部１２０１でこの編集処理を行うことによって、アプリケーション２１５が要求した画像ファイルが生成される。
【００９０】
このように本実施形態では、代替ファイルが読み込まれた際に必要となる画像編集処理がクライアント１０４で実施される。そのため、コンテンツサーバ１００においてＣＰＵ使用率が高い場合など、コンテンツサーバ１００において画像編集処理を実行するのが適切でない場合に有効となる。
【００９１】
＜その他の実施形態＞
以上、実施形態例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体（記憶媒体）等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮像装置、Ｗｅｂアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００９２】
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコード（コンピュータプログラム）を記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【図１】
2014092912.tif 000003
【図２】
2014092912.tif 000004
【図３】
2014092912.tif 000005
【図４】
2014092912.tif 000006
【図５】
2014092912.tif 000007
【図６】
2014092912.tif 000008
【図７】
2014092912.tif 000009
【図８】
2014092912.tif 000010
【図９】
2014092912.tif 000011
【図１０】
2014092912.tif 000012
【図１１】
2014092912.tif 000013
【図１２】
2014092912.tif 000014