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