説明

画像処理装置、画像処理方法

【課題】 キャッシュデータの使用効率を向上させるための技術を提供すること。
【解決手段】 受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて画像処理サーバ104が処理した画像をクライアント端末装置101に送信する。受信画像処理リクエストと同じ画像情報を含み且つ該受信画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストが存在するとする。この場合、該画像処理リクエストに応じて画像処理サーバ104が処理した画像を示す画像情報、受信画像処理リクエストに含まれている画像処理情報、上記一部を示す情報、を含むリクエストを作成して画像処理サーバ104に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部からのリクエスト処理結果をキャッシュする為の技術に関するものである。
【背景技術】
【0002】
サーバ上で画像データを管理し、クライアントに対してリクエストに応じた画像データの配信を行うようなサービスの提供が行われている。一般的に、そのような画像データの配信を行うネットワークシステムにおけるサーバは、リクエストに応じた画像データ生成処理を行う画像処理サーバ、画像データを管理するデータベースサーバ、により構成される。また、キャッシュサーバを配置し、リクエストに対する処理結果である画像データをキャッシュしておくことが多い。キャッシュサーバを配置することで、リクエストを処理する本来のサーバへのアクセスおよび処理負荷を軽減することができるため、クライアントへの応答速度を向上させることができる。ネットワークシステム全体の処理性能を安定させるためには、できる限りキャッシュの使用効率を高めることが望ましい。
【0003】
一方、毎回処理結果が異なるような画像データ生成処理を伴うリクエストに対しては、キャッシュサーバにおけるキャッシュは有効に機能しない。そのため、リクエスト受信時には、リクエストごとに毎回画像処理サーバで画像データ生成処理を行うことになる。このような場合に画像データ生成処理の効率を向上させるために、共通の処理を施した途中状態の画像データをデータベースサーバに保持しておく、といった手法もある(特許文献1)。画像処理サーバでは、画像データ生成処理時に途中状態の画像データを使用することにより、同一の処理を重複して行うことを防ぐことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−304446号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、リクエストに合致する場合にのみ、キャッシュサーバに格納されているキャッシュデータを使用する従来の手法では、キャッシュに合致しないリクエストが集中した際に、画像処理サーバの負荷が増大する。共通の処理を施した途中状態の画像データをデータベースに格納しておく手法によって、処理負荷を軽減することはできるものの、データベースへのアクセス負荷を軽減することはできない。
【0006】
本発明は、このような問題に鑑みてなされたものであり、キャッシュデータの使用効率を向上させるための技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、例えば、本発明の画像処理装置は、画像を特定するための画像情報、該画像に対して画像処理サーバに行わせる画像処理を示す画像処理情報、を含む画像処理リクエストを外部装置から受信する受信手段と、前記受信手段が過去に受信した画像処理リクエスト、該画像処理リクエストに応じて前記画像処理サーバが処理した画像、を管理する管理手段と、前記管理手段が管理している画像処理リクエストの中に、前記受信手段が受信した受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて前記画像処理サーバが処理した画像を前記管理手段から取得し、前記外部装置に送信する第1の送信手段と、前記管理手段が管理している画像処理リクエストの中に、前記受信画像処理リクエストと同じ画像情報を含み、且つ該受信画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて前記画像処理サーバが処理した画像を示す画像情報と、前記受信画像処理リクエストに含まれている画像処理情報と、前記一部を示す情報と、を含むリクエストを作成して前記画像処理サーバに送信する第2の送信手段とを備えることを特徴とする。
【発明の効果】
【0008】
本発明の構成によれば、キャッシュデータの使用効率を向上させることができる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係るシステムの構成例を示すブロック図。
【図2】キャッシュサーバ102、画像処理サーバ104の機能構成例を示すブロック図。
【図3】リクエストの構成例を示す図。
【図4】画像処理サーバ104が行う処理のフローチャート。
【図5】キャッシュ情報の構成例を示す図。
【図6】キャッシュサーバ102及び画像処理サーバ104が行う処理のフローチャート。
【図7】キャッシュポリシーの設定例を示す図。
【図8】ステップS611における処理のフローチャート。
【図9】リクエストの構成例を示す図。
【図10】画像処理サーバ104が行う処理のフローチャート。
【図11】キャッシュサーバ102、画像処理サーバ104の機能構成例を示すブロック図。
【発明を実施するための形態】
【0010】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の一つである。
【0011】
[第1の実施形態]
先ず、本実施形態に係るシステムの構成例について、図1のブロック図を用いて説明する。図1に示す如く、ネットワーク103には、クライアント(クライアント端末装置)101a、102b、キャッシュサーバ102a、102bが接続されている。図1ではクライアント端末装置、キャッシュサーバの台数はそれぞれ2台としているが、この台数に限るものではないし、ネットワーク103は無線、有線の何れであってもよいし、その組み合わせでもよい。
【0012】
また、図1に示す如く、ネットワーク105には、キャッシュサーバ102a、102b、画像処理サーバ104a、104bが接続されている。図1ではキャッシュサーバ、画像処理サーバの台数はそれぞれ2台としているが、この台数に限るものではないし、ネットワーク105は無線、有線の何れであってもよいし、その組み合わせでもよい。
【0013】
また、図1に示す如く、ネットワーク107には、画像処理サーバ104a、104b、データベースサーバ106が接続されている。図1では画像処理サーバ、データベースサーバの台数はそれぞれ2台、1台としているが、この台数に限るものではないし、ネットワーク107は無線、有線の何れであってもよいし、その組み合わせでもよい。
【0014】
クライアント端末装置101a、101bは、画像に対して任意の画像処理を施した結果の取得要求を、画像処理リクエストとして発信可能であり、画像処理リクエストはネットワーク103を介してキャッシュサーバ102a、102bの何れかに送信される。クライアント端末装置101a、101bには、例えば、一般のPC(パーソナルコンピュータ)や携帯電話、PDA等が適用可能である。
【0015】
クライアント端末装置101aは係る構成において、画像を特定するための画像情報、該画像に対して画像処理サーバに行わせる画像処理を示す画像処理情報、を含む画像処理リクエストを、キャッシュサーバ102a、102bの何れかに送信する。
【0016】
次にキャッシュサーバ102a、102bについて説明する。なお、本実施形態では、キャッシュサーバ102bはキャッシュサーバ102aと同じ構成を有するものとするため、以下では、キャッシュサーバ102aについて説明する。即ち、キャッシュサーバ102aに対する説明は同様に、キャッシュサーバ102bに対する説明でもある。しかし、キャッシュサーバ102aの構成とキャッシュサーバ102bの構成とを同一にすることは必須ではなく、それぞれの構成は、以下に説明する動作が可能であるならば、如何なる構成を適用してもよい。
【0017】
制御部108は、キャッシュサーバ102aを構成する各部の動作制御を行うと共に、キャッシュサーバ102aが行うものとして後述する各処理を実行する主体となる。
【0018】
記憶部109は、RAMやハードディスクドライブ装置などのメモリとして機能するものであり、制御部108が各種の処理を実行する際に用いるワークエリアや、後述する様々な情報を保存するためのエリア等を有する。即ち、記憶部109は、様々なエリアを適宜提供することができる。また、記憶部109には、キャッシュサーバ102aが行うものとして後述する各処理を制御部108に実行させるためのコンピュータプログラムやデータが格納されている。
【0019】
クライアント通信部110は、クライアント端末装置101aやクライアント端末装置101bと通信するための通信インターフェースとして機能するものである。キャッシュサーバ102aは、このクライアント通信部110を介してクライアント端末装置101a、102bとデータの送受信を行うことができる。
【0020】
サーバ通信部111は、画像処理サーバ104aや画像処理サーバ104bと通信するための通信インターフェースとして機能するものである。キャッシュサーバ102aは、このサーバ通信部111を介して画像処理サーバ104a、104bとデータの送受信を行うことができる。
【0021】
キャッシュサーバ102aは係る構成において、クライアント端末装置101a、101bの何れかから送信された画像処理リクエストを受信し、この画像処理リクエストに応じた結果を、この画像処理リクエストの送信元に対して送信する。
【0022】
次に、画像処理サーバ104a、104bについて説明する。なお、本実施形態では、画像処理サーバ104bは画像処理サーバ104aと同じ構成を有するものとするため、以下では、画像処理サーバ104aについて説明する。即ち、画像処理サーバ104aに対する説明は同様に、画像処理サーバ104に対する説明でもある。しかし、画像処理サーバ104aの構成と画像処理サーバ104bの構成とを同一にすることは必須ではなく、それぞれの構成は、以下に説明する動作が可能であるならば、如何なる構成を適用してもよい。
【0023】
制御部112は、画像処理サーバ104aを構成する各部の動作制御を行うと共に、画像処理サーバ104aが行うものとして後述する各処理を実行する主体となる。
【0024】
記憶部113は、RAMやハードディスクドライブ装置などのメモリとして機能するものであり、制御部112が各種の処理を実行する際に用いるワークエリアや、後述する様々な情報を保存するためのエリア等を有する。即ち、記憶部113は、様々なエリアを適宜提供することができる。また、記憶部113には、画像処理サーバ104aが行うものとして後述する各処理を制御部112に実行させるためのコンピュータプログラムやデータが格納されている。
【0025】
キャッシュ通信部114は、キャッシュサーバ102aやキャッシュサーバ102bと通信するための通信インターフェースとして機能するものである。画像処理サーバ104aは、このキャッシュ通信部114を介してキャッシュサーバ102a、102bとデータの送受信を行うことができる。
【0026】
データベース通信部115は、データベースサーバ106と通信するための通信インターフェースとして機能するものである。画像処理サーバ104aは、このデータベース通信部115を介してデータベースサーバ106とデータの送受信を行うことができる。
【0027】
画像処理サーバ104aは係る構成において、クライアント端末装置101aから送信された画像処理リクエストに応じた画像処理が施された画像を生成する。なお、キャッシュサーバ102aは、複数台の並列構成または階層構成を取ることも可能である。その際には、例えば、CARP(Cache Array Routing Protocol)のようなプロトコルを用いて分散化が行われる。また、画像処理サーバ104aも処理の負荷状況に応じて複数台の並列構成を取ることにより、負荷の分散を行うことが可能である。
【0028】
データベースサーバ106は、多数の画像を管理する装置であり、画像処理サーバ104a、104bからの要求に応じた画像を配信する。データベースサーバ106の構成は特に限るものではなく、1台の装置によって構成されてもよいし、複数台の装置によって構成されてもよい。
【0029】
次に、キャッシュサーバ102a、102b、画像処理サーバ104a、104bの機能構成例について、図2のブロック図を用いて説明する。上記の通り、クライアント端末装置101a、101bは共に同様の機能を有するため、図2ではクライアント端末装置101a、101bをクライアント端末装置101として示している。また、上記の通り、キャッシュサーバ102a、102bは同様の機能を有するため、図2ではキャッシュサーバ102a、102bをキャッシュサーバ102として示している。また、上記の通り、画像処理サーバ104a、104bは共に同様の機能を有するため、図2では画像処理サーバ104a、104bを画像処理サーバ104として示している。
【0030】
リクエスト処理部201は、クライアント端末装置101から送信された画像処理リクエストを受信すると、リクエスト解析部202にこの画像処理リクエストを解析させる。リクエスト解析部202は、画像処理リクエストを解析し、この画像処理リクエストから、画像処理対象としての画像を特定するための画像情報、該画像処理を示す画像処理情報、を抽出する。画像処理リクエストの構成例を図3(a)に示す。
【0031】
画像処理リクエスト301は、HTTPのプロトコルに従った構文によって構成される。画像処理リクエスト301によって要求する画像を特定するための画像情報(ここでは画像データ識別子)は、パス部302として記述されている。また、この画像に対して画像処理サーバ104に行わせる画像処理を示す画像処理情報(画像加工内容)は、HTTPのパラメータ部303として記述されている。パラメータ部303には、例えば、画像のフォーマット、サイズ、回転角度などが記述されている。図3(a)に示した画像処理リクエスト301は、パス部302が示すパスに位置する画像を、JPEGフォーマットに変換し、サムネイルサイズに加工してから配信する要求を示している。
【0032】
そしてリクエスト処理部201は、抽出した画像情報及び画像処理情報と同じ画像情報及び画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているか否かをキャッシュ格納部203に問い合わせる。
【0033】
キャッシュ格納部203は、過去にクライアント端末装置101から受信した画像処理リクエスト、該画像処理リクエストに応じて画像処理サーバ104が処理した画像、を管理している。
【0034】
キャッシュ格納部203が管理している情報(キャッシュ情報)の構成例を図5に示す。キャッシュ格納部203には、キャッシュ識別子(画像処理リクエスト)501毎に、該画像処理リクエストに応じて処理された画像に関する情報としてのキャッシュデータ502が格納されている。
【0035】
例えば行503には、画像IDが「id12345」の画像に対して画像処理サーバ104がJPEGフォーマットへの変換処理を行った画像は「file12345−01」というファイル名でキャッシュ格納部203に格納されていることが登録されている。また、行503には、ファイル名が「file12345−01」である画像の使用情報(この画像が読み出された回数、最後に読み出された日時など)が「time1」であることが登録されている。
【0036】
このように、キャッシュ格納部203には、処理対象画像を示す情報、この画像に対する画像処理を示す情報、画像処理が施された画像を特定するための情報、画像処理が施された画像に対する使用情報、が登録されている。
【0037】
キャッシュ判定部204は、リクエスト解析部202からの問い合わせに応じ、リクエスト処理部201が受信した画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているかを判断する。この判断の結果、格納されていれば、この格納されている画像処理リクエストに応じて画像処理サーバ104が処理した画像をキャッシュ格納部203から取得してリクエスト処理部201に返す。これによりリクエスト処理部201は、この返された画像を、クライアント端末装置101からの画像処理リクエストに対する応答結果として、クライアント端末装置101に対して送信する。一方、この判断の結果、格納されていない場合はその旨を画像サーバアクセス部205に通知する。
【0038】
画像サーバアクセス部205は、キャッシュ格納部203に対して次のような問い合わせを行う。即ちリクエスト処理部201が受信した画像処理リクエストと同じ画像情報を含み、且つ該画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているかを問い合わせる。キャッシュ判定部204はこの問い合わせに応じ、次のような判断処理を行う。即ちリクエスト処理部201が受信した画像処理リクエストと同じ画像情報を含み、且つ該画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているかを判断する。この判断の結果、格納されていなかった場合、画像サーバアクセス部205は、リクエスト処理部201がクライアント端末装置101から受けた画像処理リクエストをそのまま画像処理サーバ104に転送する。また、この判断の結果、格納されている場合、リクエスト変換部206は、次の項目を含むリクエストを作成する。
【0039】
・ この格納されていた画像処理リクエストに応じて画像処理サーバ104が処理した画像を特定する為の情報。
【0040】
・ リクエスト処理部201が受信した画像処理リクエスト中の画像情報及び画像処理情報。
【0041】
・ 上記一部を示す情報。
【0042】
リクエスト処理部201が図3(a)に示す画像処理リクエスト301を受信し、パス部302が示すパスに格納されている画像がJPEGフォーマットを有している場合に、リクエスト変換部206が生成するリクエストの構成例を図3(b)に示す。リクエスト401は、HTTPのプロトコルに従った構文によって構成される。リクエスト401におけるパス部402,パラメータ部403は、画像処理リクエスト301におけるパス部302、パラメータ部303をそのまま用いている。HTTPヘッダ部404には、パス部302が示すパスに格納されている画像に関する情報が記されている。HTTPヘッダ部404には、パス部402が示すパスに格納されている画像の格納場所「http://cache−server/…」、この画像のID「cache12345」、この画像のフォーマット「JPEGフォーマット」が記されている。
【0043】
そして画像サーバアクセス部205は、リクエスト変換部206が作成したリクエストを画像処理サーバ104に対して送信する。画像処理サーバ104はキャッシュサーバ102から送信されたリクエストに応じて画像を生成する。このリクエストが、画像サーバアクセス部205がリクエスト処理部201からの画像処理リクエストをそのまま出力したものである場合、画像処理サーバ104はこのリクエスト中のパス部で特定される画像をデータベースサーバ106から取得する。一方、このリクエストが、リクエスト変換部206によって生成されたリクエストである場合、画像処理サーバ104は、キャッシュサーバ102のキャッシュ格納部203に格納されている画像の取得要求をキャッシュサーバ102に対して送信する。キャッシュサーバ102におけるキャッシュリクエスト処理部207は、この画像の取得要求を受けると、要求された画像をキャッシュ格納部203から読み出して画像処理サーバ104に対して返信する。そして画像処理サーバ104は、この何れかの方法で得た画像を用いて、キャッシュサーバ102から受信したリクエストに応じた画像を生成し、生成した画像をキャッシュサーバ102に対して送信する。リクエスト処理部201は、画像処理サーバ104から送信されたこの画像を、クライアント端末装置101からの画像処理リクエストに対する応答結果として、クライアント端末装置101に対して送信する。
【0044】
次に、画像処理サーバ104について説明する。リクエスト処理部208は、キャッシュサーバ102から送信されたリクエストを受信すると、このリクエストをリクエスト解析部209に解析させる。このリクエスト中にHTTPヘッダ部が存在すれば、このリクエストによる処理対象画像はキャッシュ格納部203に格納された画像であるので、その場合、リクエスト処理部208はその旨をキャッシュアクセス部210に通知する。キャッシュアクセス部210は、HTTPヘッダ部で特定される画像をキャッシュサーバ102に要求する。そしてキャッシュアクセス部210は、この要求に応じてキャッシュサーバ102から送信される画像を受けると、この画像をリクエスト処理部208に送出する。一方、このリクエストにHTTPヘッダ部が存在しなければ、このリクエストによる処理対象画像はデータベースサーバ106に格納された画像であるので、その場合、リクエスト処理部201はその旨をデータベースアクセス部211に通知する。データベースアクセス部211はクエリ生成部212に、このリクエスト中のパス部で特定される画像を取得するためのクエリを作成させ、データベースサーバ106に送信させる。そしてデータベースアクセス部211は、このクエリの送信に応じてデータベースサーバ106から送信された画像を受信すると、この受信した画像をリクエスト処理部208に送出する。
【0045】
リクエスト処理部208は、キャッシュアクセス部210もしくはデータベースアクセス部211から取得した画像を画像加工処理部213に送出する。画像加工処理部213は、加工処理部214に、リクエスト処理部208から受けた画像に対して、リクエスト処理部208がキャッシュサーバ102から受信したリクエストに応じた画像処理を施す。画像処理を施した画像は、キャッシュサーバ102に送信される。
【0046】
次に、キャッシュサーバ102及び画像処理サーバ104のそれぞれの装置が行う処理について、同処理のフローチャートを示す図6を用いて説明する。なお、以下の説明において、キャッシュサーバ102が行うものとして説明する処理の主体は制御部108であり、画像処理サーバ104が行うものとして説明する処理の主体は制御部112である。
【0047】
ステップS601でリクエスト解析部202は、クライアント端末装置101から送信された画像処理リクエスト(受信画像処理リクエスト)を解析する。そして、この画像処理リクエストから、画像処理対象としての画像を特定するための画像情報、該画像処理を示す画像処理情報、を抽出する。
【0048】
ステップS602でリクエスト処理部201は、抽出した画像情報及び画像処理情報と同じ画像情報及び画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているか否かをキャッシュ格納部203に問い合わせる。キャッシュ判定部204は、リクエスト解析部202からの問い合わせに応じ、受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているかを判断する。この判断の結果、格納されていれば処理はステップS603に進み、格納されていなければ処理はステップS606に進む。
【0049】
ステップS603ではキャッシュ判定部204は、この格納されている画像処理リクエストに応じて画像処理サーバ104が処理した画像をキャッシュ格納部203から取得してリクエスト処理部201に返す。
【0050】
ステップS604ではキャッシュ判定部204は、ステップS603で読み出した画像の使用情報(この格納されている画像処理リクエストに対する使用情報)を更新する。例えば、使用情報が最新の読み出し日時を示す場合、この使用情報をステップS603で画像を取得した日時に更新する。また、使用情報が読み出し回数を示す場合、この使用情報を、ステップS603で画像を取得するまえの使用情報が示す読み出す回数に1を加えた回数を表すように更新する。
【0051】
ステップS604からステップS605に進んだ場合、ステップS605でリクエスト処理部201は、キャッシュ判定部204から返された画像を受信画像処理リクエストに対する応答結果としてクライアント端末装置101に対して送信(第1の送信)する。
【0052】
ステップS606では画像サーバアクセス部205は、キャッシュ格納部203に対して次のような問い合わせを行う。即ち、受信画像処理リクエストと同じ画像情報を含み且つ受信画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているかを問い合わせる。キャッシュ判定部204はこの問い合わせに応じて、このような画像処理リクエストがキャッシュ格納部203に格納されているかを判断する。この判断の結果、格納されていなかった場合、処理はステップS610に進み、格納されていた場合、処理はステップS607に進む。
【0053】
ステップS606からステップS610に進んだ場合、ステップS610では、画像サーバアクセス部205は、受信画像処理リクエストをそのまま画像処理サーバ104に転送する。
【0054】
一方、ステップS607では、リクエスト変換部206は、この格納されていた画像処理リクエストに応じて画像処理サーバ104が処理した画像を、キャッシュ格納部203から取得する。ステップS608ではキャッシュ判定部204は、ステップS607で読み出した画像の使用情報を、ステップS604と同様にして更新する。
【0055】
ステップS609ではリクエスト変換部206は、ステップS607で取得した画像を特定する為の情報、受信画像処理リクエスト中の画像情報及び画像処理情報、上記一部を示す情報、を含むリクエストを作成する。なお、本ステップで、リクエストに受信画像処理リクエスト中の画像情報を含めることは必須ではない。
【0056】
ステップS609からステップS610に進んだ場合、ステップS610では、画像サーバアクセス部205は、ステップS609で作成したリクエストを画像処理サーバ104に対して送信(第2の送信)する。
【0057】
ステップS611では画像処理サーバ104は、キャッシュサーバ102から受信したリクエストに基づいて画像を生成し、キャッシュサーバ102に送信する。ステップS611における処理については、図8を用いて後述する。
【0058】
ステップS612では画像サーバアクセス部205は、画像処理サーバ104から送信された画像を受信する。ステップS613で画像サーバアクセス部205は、ステップS612で受信した画像をキャッシュ格納部203に格納すると共に、この画像のキャッシュ識別子501、キャッシュデータ502を図5に示す如くキャッシュ格納部203に格納する。
【0059】
ステップS613からステップS605に進んだ場合、ステップS605ではリクエスト処理部201は、ステップS612で受信した画像を、受信画像処理リクエストに対する応答結果としてクライアント端末装置101に送信する。
【0060】
なお、ステップS613において格納処理(キャッシュ)を行うか否かは、キャッシュサーバ102が保持するキャッシュポリシーに従って決定してもよいし、画像処理サーバ104からの応答メッセージに付加された情報に従って決定してもよい。
【0061】
キャッシュサーバ102が保持するキャッシュポリシーの設定例を図7に示す。キャッシュポリシー設定は、例えば、XMLファイル701として定義される。設定項目702には、デフォルトのキャッシュ設定が定義されている。設定項目703a、703bには、処理内容ごとにキャッシュ対象とするか否かが定義されている。例えば、設定項目703aはフォーマットがTIFFの場合にはキャッシュを無効にする、設定項目703bはサイズが“large”の場合にはキャッシュを無効にする、という設定を表わしている。
【0062】
また、ステップS613において格納処理を行う場合に、格納するデータのサイズ(キャッシュサイズ)が定められた容量を超える場合には、使用情報に基づいて破棄するキャッシュデータを判断する。上述のように、使用情報は、キャッシュ格納部203に格納されている画像が読み出される場合に更新される。そのため、例えば、キャッシュ置き換えアルゴリズムとしてLRU(Least Recently Used)方式を使用する場合には、読み出すための2つの要求に対して最も使用頻度の低い方から破棄されていくことになる。キャッシュ置き換えアルゴリズムは任意の方式を選択可能である。また、使用情報以外の情報(例えば、データサイズ等)を組み合わせてキャッシュの優先度を決定してもよい。
【0063】
次に、ステップS611における処理について、同処理のフローチャートを示す図8を用いて説明する。ステップS801ではリクエスト処理部208は、キャッシュサーバ102から送信されたリクエストを受信すると、このリクエストをリクエスト解析部209に解析させる。このリクエスト中にHTTPヘッダ部が存在すれば、処理はステップS802を介してステップS803に進み、存在しなければ、処理はステップS802を介してステップS804に進む。
【0064】
ステップS803ではキャッシュアクセス部210は、HTTPヘッダ部で特定される画像をキャッシュサーバ102に要求する。そしてキャッシュアクセス部210は、この要求に応じてキャッシュサーバ102から送信される画像を受けると、この画像をリクエスト処理部208に送出する。
【0065】
一方、ステップS804では、データベースアクセス部211はクエリ生成部212に、ステップS801で受信したリクエスト中のパス部で特定される画像を取得するためのクエリを作成させ、データベースサーバ106に送信させる。そしてデータベースアクセス部211は、このクエリの送信に応じてデータベースサーバ106から送信された画像を受信すると、この受信した画像をリクエスト処理部208に送出する。
【0066】
ステップS805ではリクエスト処理部208は、キャッシュアクセス部210もしくはデータベースアクセス部211から取得した画像を画像加工処理部213に送出する。画像加工処理部213は、加工処理部214に、リクエスト処理部208から受けた画像に対して、リクエスト処理部208がキャッシュサーバ102から受信したリクエスト(パラメータ部)に応じた画像処理を施す。
【0067】
なお、リクエスト変換部206が作成したリクエストに応じて画像処理を行う場合、この画像処理は、対象画像がすでに受けている画像処理を除いたものとなる。例えば、図3(b)に示したリクエスト401に応じて画像処理を行う場合を考える。このリクエスト401に応じた画像処理とは上記の通り、対象画像をJPEGフォーマットに変換し、サムネイルサイズに加工する処理である。しかし、対象画像はすでにJPEGフォーマットに変換されているので、加工処理部214は、この対象画像に対してはサムネイルサイズに加工する処理を行う。これにより画像加工の処理効率を向上させることができる。
【0068】
このように、対象画像がどこまでの処理が施された画像で、この画像に対してどのような処理を行えば受信画像処理リクエストに応じた画像処理が達成できるのかを特定することができるリクエストであればよい。
【0069】
ステップS806ではリクエスト処理部208は、ステップS805で画像処理が施された画像(画像処理済み画像)を、キャッシュサーバ102に対して送信する。もちろん、送信先はキャッシュサーバ102に限らず、直接クライアント端末装置101に対して送信してもよい。
【0070】
[第2の実施形態]
第1の実施形態では、キャッシュサーバ102が画像処理サーバ104に対して送信するリクエストには、画像そのものではなく画像の格納場所が添付されていた。本実施形態では、キャッシュサーバ102が画像処理サーバ104に対して送信するリクエストには、画像そのものを添付する。本実施形態は、基本的には第1の実施形態を前提としているため、以下では、第1の実施形態との差分のみについて説明する。
【0071】
リクエスト処理部201が図3(a)に示す画像処理リクエスト301を受信し、パス部302が示すパスに格納されている画像がJPEGフォーマットを有している場合に、本実施形態でリクエスト変換部206が生成するリクエストの構成例を図9に示す。
【0072】
リクエスト901は、HTTPのプロトコルに従った構文によって構成される。リクエスト901におけるHTTPパス部902には、このリクエスト901に添付する画像のデータ905(HTTPボディー部)を示す値が記されている。パラメータ部903は、リクエスト処理部201が受信した画像処理リクエスト中のパラメータ部から、画像のデータ905がすでに受けている画像処理を除いたものとなっている。即ち、パラメータ部903には、画像のデータ905に対して行う画像処理を示す情報が記されている。HTTPヘッダ部904には、画像のデータ905に関する情報が記されている。HTTPヘッダ部904には、画像のデータ905のフォーマット「JPEGフォーマット」等が記されている。
【0073】
画像処理リクエスト301のパラメータ部303によれば、パス部302が示すパスに位置する画像(画像のデータ905)に対して、JPEGフォーマットに変換し、サムネイルサイズに加工することが要求されている。しかし、リクエスト901のHTTPヘッダ部904に示す如く、この画像はすでにJPEGフォーマットへの変換処理が施されたものであるため、この画像に対して行うべき処理はサムネイルサイズに加工する処理だけである。然るにリクエスト901のパラメータ部903には、サムネイルサイズに加工する処理だけが指定されている。
【0074】
本実施形態において画像処理サーバ104が行う処理について、同処理のフローチャートを示す図10を用いて説明する。ステップS1001ではリクエスト処理部208は、キャッシュサーバ102から送信されたリクエストを受信すると、このリクエストをリクエスト解析部209に解析させる。このリクエスト中にHTTPボディー部、即ち画像が添付されていれば、処理はステップS1002を介してステップS1003に進み、添付されていなければ、処理はステップS1002を介してステップS1004に進む。リクエストに画像が添付されているか否かは、リクエストのパス部に画像のデータを示す値が指定されているか否かで判断すればよい。
【0075】
ステップS1003ではリクエスト解析部209は、ステップS1001で受信したリクエストから、HTTPボディー部としての画像のデータを読み出す。一方、ステップS1004では、データベースアクセス部211はクエリ生成部212に、ステップS1001で受信したリクエスト中のパス部で特定される画像を取得するためのクエリを作成させ、データベースサーバ106に送信させる。そしてデータベースアクセス部211は、このクエリの送信に応じてデータベースサーバ106から送信された画像を受信すると、この受信した画像をリクエスト処理部208に送出する。
【0076】
ステップS1005ではリクエスト処理部208は、リクエスト解析部209もしくはデータベースアクセス部211から取得した画像を画像加工処理部213に送出する。画像加工処理部213は、加工処理部214に、リクエスト処理部208から受けた画像に対して、リクエスト処理部208がキャッシュサーバ102から受信したリクエスト(パラメータ部)に応じた画像処理を施す。
【0077】
ステップS1006ではリクエスト処理部208は、ステップS1005で画像処理が施された画像を、キャッシュサーバ102に対して送信する。もちろん、送信先はキャッシュサーバ102に限らず、直接クライアント端末装置101に対して送信してもよい。
【0078】
このように本実施形態では、キャッシュ格納部203に格納されている画像のデータをリクエストに添付するため、画像処理サーバ104は、この画像のデータを取得するためにキャッシュサーバ102にアクセスする必要はない。そのため、第1の実施形態に比べ、処理効率を向上させることができる。
【0079】
[第3の実施形態]
第1,2の実施形態では、キャッシュサーバ102は、クライアント端末装置101と画像処理サーバ104との仲介役を担っていた。本実施形態では、画像処理サーバ104がクライアント端末装置101と直接通信を行い、キャッシュサーバ102には適宜アクセスする。
【0080】
キャッシュサーバ102、画像処理サーバ104の機能構成例を図11に示す。図11において、図2と同じ構成要件については同じ参照番号をつけている。画像処理サーバ104が行う処理について、同処理のフローチャートを示す図4を用いて説明する。
【0081】
ステップS1201でリクエスト解析部209は、クライアント端末装置101から送信された画像処理リクエスト(受信画像処理リクエスト)を解析する。そして、この画像処理リクエストから、画像処理対象としての画像を特定するための画像情報、該画像処理を示す画像処理情報、を抽出する。
【0082】
ステップS1202でキャッシュアクセス部210は、受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているか否かをキャッシュ格納部203に問い合わせる。
【0083】
ステップS1203では、キャッシュリクエスト処理部207がステップS1202による問い合わせを受ける。これに応じ、キャッシュ判定部204は、受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストがキャッシュ格納部203に格納されているかを判断する。この判断の結果、格納されていれば、キャッシュ判定部204は、この格納されている画像処理リクエストに応じて画像処理サーバ104が処理した画像をキャッシュ格納部203から取得する。格納されていない場合、キャッシュ判定部204は、受信画像処理リクエストと同じ画像情報を含み且つ受信画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストをキャッシュ格納部203から特定する。そしてキャッシュ判定部204は、この特定した画像処理リクエストに応じて画像処理が施された画像をキャッシュ格納部203から取得する。そしてキャッシュリクエスト処理部207は、キャッシュ判定部204が取得した画像を添付した応答メッセージを画像処理サーバ104に送信する。また、受信画像処理リクエストに含まれている画像情報を含む画像処理リクエストがキャッシュ格納部203に格納されていない場合、キャッシュリクエスト処理部207は、画像が添付されていない応答メッセージを画像処理サーバ104に送信する。
【0084】
ステップS1204では、キャッシュアクセス部210が、キャッシュサーバ102からの応答メッセージを受信すると、リクエスト処理部208は、この応答メッセージに、受信画像処理リクエストが要求した画像が添付されているか否かを判断する。この判断の結果、添付されている場合は処理はステップS1205に進み、添付されていない場合は、処理はステップS1206に進む。
【0085】
ステップS1204からステップS1205に処理が進んだ場合、ステップS1205ではリクエスト処理部208は、この添付されていた画像をクライアント端末装置101に対して送信する。
【0086】
一方、ステップS1206では、リクエスト処理部208は、この応答メッセージに、上記一部の画像処理が施された画像が添付されているか否かを判断する。この判断の結果、添付されている場合は、処理はステップS1208に進み、添付されていない場合は、処理はステップS1207に進む。
【0087】
ステップS1207では、データベースアクセス部211はクエリ生成部212に、受信画像処理リクエスト中のパス部で特定される画像を取得するためのクエリを作成させ、データベースサーバ106に送信させる。そしてデータベースアクセス部211は、このクエリの送信に応じてデータベースサーバ106から送信された画像を受信すると、この受信した画像をリクエスト処理部208に送出する。
【0088】
ステップS1208では加工処理部214は、受信画像処理リクエストが要求した画像、若しくはデータベースサーバ106から受信した画像に対して、画像処理を行う。この画像処理については、第1の実施形態で説明したとおりである。
【0089】
ステップS1209では、キャッシュ判定部204は、ステップS1208で生成した画像、この画像のキャッシュ識別子501、キャッシュデータ502を図5に示す如くキャッシュ格納部203に格納する。
【0090】
ステップS1209からステップS1205に処理が進んだ場合、ステップS1205でリクエスト処理部201はステップS1208で画像処理が施された画像を受信画像処理リクエストに対する応答結果としてクライアント端末装置101に対して送信する。
【0091】
第1,2の実施形態では、キャッシュサーバ102が画像処理リクエストを受信する受信元としての外部装置はクライアント端末装置101であり、第3の実施形態では画像処理サーバ104であった。しかし、システムの構成は様々な構成を考えうるため、外部装置はこれらに限るものではない。
【0092】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
画像を特定するための画像情報、該画像に対して画像処理サーバに行わせる画像処理を示す画像処理情報、を含む画像処理リクエストを外部装置から受信する受信手段と、
前記受信手段が過去に受信した画像処理リクエスト、該画像処理リクエストに応じて前記画像処理サーバが処理した画像、を管理する管理手段と、
前記管理手段が管理している画像処理リクエストの中に、前記受信手段が受信した受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて前記画像処理サーバが処理した画像を前記管理手段から取得し、前記外部装置に送信する第1の送信手段と、
前記管理手段が管理している画像処理リクエストの中に、前記受信画像処理リクエストと同じ画像情報を含み、且つ該受信画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて前記画像処理サーバが処理した画像を示す画像情報と、前記受信画像処理リクエストに含まれている画像処理情報と、前記一部を示す情報と、を含むリクエストを作成して前記画像処理サーバに送信する第2の送信手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記第2の送信手段は、前記管理手段が管理している画像処理リクエストの中に、前記受信画像処理リクエストと同じ画像情報を含む画像処理リクエストが存在しなかった場合、前記受信画像処理リクエストを前記画像処理サーバに送信することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像処理サーバは、前記第2の送信手段が送信したリクエストを受信すると、該リクエスト中の画像情報が示す画像に対して、該リクエスト中の画像処理情報が示す画像処理から前記一部を除いた画像処理を施した結果である画像処理済み画像を生成して前記画像処理装置に送信し、
前記画像処理装置は更に、前記画像処理サーバから送信された前記画像処理済み画像を前記外部装置に送信する手段を備えることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記第2の送信手段は更に、前記一部の処理が施された画像を前記管理手段から取得し、該取得した画像を更に含むリクエストを作成して前記画像処理サーバに送信することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の受信手段が、画像を特定するための画像情報、該画像に対して画像処理サーバに行わせる画像処理を示す画像処理情報、を含む画像処理リクエストを外部装置から受信する受信工程と、
前記画像処理装置の管理手段が、過去に前記受信工程で受信した画像処理リクエスト、該画像処理リクエストに応じて前記画像処理サーバが処理した画像、を管理する管理工程と、
前記画像処理装置の第1の送信手段が、前記管理工程で管理している画像処理リクエストの中に、前記受信工程で受信した受信画像処理リクエストと同じ画像情報及び画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて前記画像処理サーバが処理した画像を前記管理手段から取得し、前記外部装置に送信する第1の送信工程と、
前記画像処理装置の第2の送信手段が、前記管理工程で管理している画像処理リクエストの中に、前記受信画像処理リクエストと同じ画像情報を含み、且つ該受信画像処理リクエスト中の画像処理情報が示す画像処理の一部を示す画像処理情報を含む画像処理リクエストが存在する場合、該画像処理リクエストに応じて前記画像処理サーバが処理した画像を示す画像情報と、前記受信画像処理リクエストに含まれている画像処理情報と、前記一部を示す情報と、を含むリクエストを作成して前記画像処理サーバに送信する第2の送信工程と
を備えることを特徴とする画像処理方法。
【請求項6】
コンピュータを請求項1乃至4の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate