情報処理装置及びプログラム
【課題】指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮する。
【解決手段】実行対象の画像処理が記述された制御指示情報及び入力画像データが入力されると、実行対象の画像処理を実現するための画像処理部を構築し、構築した画像処理部の構成を規定するモジュール接続情報を生成し、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と対応付けられた出力画像データが処理結果DBに保存されているか否かを判定する(106〜114)。保存されていれば該当する出力画像データを出力し(124,126)、保存されていなければ構築した画像処理部で画像処理を行い、処理結果DBに出力画像データ等を登録した後に、出力画像データを出力する(116〜120)。
【解決手段】実行対象の画像処理が記述された制御指示情報及び入力画像データが入力されると、実行対象の画像処理を実現するための画像処理部を構築し、構築した画像処理部の構成を規定するモジュール接続情報を生成し、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と対応付けられた出力画像データが処理結果DBに保存されているか否かを判定する(106〜114)。保存されていれば該当する出力画像データを出力し(124,126)、保存されていなければ構築した画像処理部で画像処理を行い、処理結果DBに出力画像データ等を登録した後に、出力画像データを出力する(116〜120)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、それぞれ基本的、汎用的な機能のみを備えるソフトウェア(XMLで記述されたフロー定義を読み込み、タグで規定されたコマンドを順次実行する実行エンジン、GUI部品やロジック部品、画面定義を読み込み、各部品を起動して表示画面を生成するアプリケーションブラウザ等)を用意し、実質的な処理内容をXMLの電子文書で与えることにより、ソフトウェアの改変を伴うことなく、処理内容の改変を実現する技術が開示されている。
【0003】
また特許文献2には、画像処理内容が異なる複数の画像処理モジュールを用意しておき、必要な画像処理に応じて1つ以上の画像処理モジュールを選択すると共に、選択した個々の画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結されるように、個々のモジュールをパイプライン形態又は有向非循環グラフ形態で連結して画像処理部を構築する技術が開示されている。
【0004】
また特許文献3には、予約キーワードを有する複数のファイルから成るアーカイブファイルを蓄積すると共に、予約キーワードとファイルへの処理内容とが対応付けられた複数の処理内容指定データを保持しておき、複数のファイルのそれぞれのファイル名から予約キーワードを抽出し、複数の処理内容指定データのうちの抽出した予約キーワードを含む1又は複数の処理内容指定データを検索し、検索された処理内容指定データに対応するファイルへの処理内容に従って、蓄積されたドキュメントファイルに含まれる印刷すべきデータを印刷処理する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−216427号公報
【特許文献2】特開2006−338501号公報
【特許文献3】特開2008−171390号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮できる情報処理装置及び情報処理プログラムを得ることが目的である。
【課題を解決するための手段】
【0007】
請求項1記載の発明に係る情報処理装置は、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、を含んで構成されている。
【0008】
請求項2記載の発明は、請求項1記載の発明において、前記第1記憶手段には、過去に得られた前記出力データが、原データとして用いられたデータ、前記処理規定情報及び入力された前記指示情報と対応付けて記憶されており、前記判定手段は、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていないと判定した場合に、前記今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、前記出力手段は、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合にも、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する。
【0009】
請求項3記載の発明は、請求項1又は請求項2記載の発明において、前記第1記憶手段には、前記原データとして用いられたデータとして、当該データから一意に求まる原データ識別情報が記憶されており、前記判定手段は、前記今回の処理で原データとして用いられるデータから前記原データ識別情報を求め、求めた前記原データ識別情報を用いて前記判定を行う。
【0010】
請求項4記載の発明は、請求項1〜請求項3の何れか1項記載の発明において、前記第1記憶手段には、前記処理規定情報として、前記処理規定情報から一意に求まる処理規定情報識別情報が記憶されており、前記判定手段は、今回生成された前記処理規定情報から前記処理規定情報識別情報を求め、求めた前記処理規定情報識別情報を用いて前記判定を行う。
【0011】
請求項5記載の発明に係る情報処理装置は、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、を含んで構成されている。
【0012】
請求項6記載の発明は、請求項1〜請求項5の何れか1項記載の発明において、前記生成手段は、前記指示情報に基づき、前記指示情報に記述された実行対象の処理を実現する処理部として、互いに異なる処理を行う複数種の処理モジュールの中から選択した1つ以上の処理モジュールをパイプライン形態又は有向非循環グラフ形態で連結した前記処理部が構築手段によって構築されると、構築された前記処理部における前記処理モジュールの接続関係を表す情報を前記処理規定情報として生成し、前記処理手段は、構築された前記処理部により、前記指示情報に記述された実行対象の前記処理を行う。
【0013】
請求項7記載の発明は、請求項1〜請求項6の何れか1項記載の発明において、前記今回の処理で原データとして用いられるデータは、前記処理要求元から入力されるか、又は、第2記憶手段に記憶された複数のデータの中から前記処理要求元によって指定される。
【0014】
請求項8記載の発明は、請求項1〜請求項5の何れか1項記載の発明において、前記指示情報には、処理要求元の環境を表す環境情報も記述されており、前記生成手段は、生成する前記処理規定情報で規定する前記処理の詳細を、前記指示情報に記述された前記環境情報が表す処理要求元の環境に応じて相違させる。
【0015】
請求項9記載の発明は、請求項8記載の発明において、原データとして使用される複数のデータを記憶する第2記憶手段を備え、前記生成手段は、前記第2記憶手段に記憶されている複数のデータのうち、前記今回の処理で原データとして用いるデータを、前記環境情報が表す処理要求元の環境に応じて選択する。
【0016】
請求項10記載の発明に係る情報処理プログラムは、コンピュータを、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、及び、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段として機能させる。
【0017】
請求項11記載の発明に係る情報処理プログラムは、コンピュータを、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、及び、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段として機能させる。
【発明の効果】
【0018】
請求項1,5〜11記載の発明は、本構成を有しない場合と比較して、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮できる、という効果を有する。
【0019】
請求項2記載の発明は、本構成を有しない場合と比較して、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を更に短縮できる、という効果を有する。
【0020】
請求項3記載の発明は、原データとして用いられたデータ自体を記憶させる場合と比較して、記憶手段の記憶容量の節減、判定手段の判定に要する時間の短縮を実現できる、という効果を有する。
【0021】
請求項4記載の発明は、処理規定情報自体を記憶させる場合と比較して、記憶手段の記憶容量の節減、判定手段の判定に要する時間の短縮を実現できる、という効果を有する。
【図面の簡単な説明】
【0022】
【図1】第1実施形態で説明したコンピュータの概略構成を示すブロック図である。
【図2】画像処理部の構成例を示すブロック図である。
【図3】(A)は画像処理モジュール、(B)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。
【図4】制御指示受付実行部によって実行される制御指示受付実行処理の内容を示すフローチャートである。
【図5】画像処理部における画像処理の流れを説明する概略図である。
【図6】第2実施形態で説明したコンピュータ・システムの概略構成を示すブロック図である。
【図7】ウェブページ配信処理の内容を示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【0024】
〔第1実施形態〕
図1には、本発明に係る情報処理装置として機能することが可能なコンピュータ10が示されている。なお、このコンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた画像形成装置、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよく、更にPDA(Personal Digital Assistant)や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
【0025】
コンピュータ10はCPU12、メモリ14、表示部16、操作部18、記憶部20、画像データ供給部22及び画像出力部24を備えており、これらはバス26を介して互いに接続されている。コンピュータ10が上述した画像取扱機器に組み込まれている場合、表示部16や操作部18としては、画像取扱機器に設けられたLCD等から成る表示パネルやテンキー等を適用される。また、コンピュータ10が独立したコンピュータである場合、表示部16や操作部18としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用される。また、記憶部20としてはHDD(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性の記憶手段を用いてもよい。
【0026】
また、画像データ供給部22は処理対象の画像データを供給するものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部、通信回線を介して外部から画像データを受信する受信部、画像データを記憶する画像記憶部(メモリ14又は記憶部20)等が適用される。また、画像出力部24は画像処理を経た画像データ又は該画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部、画像データが表す画像をディスプレイ等に表示する表示部、画像データを記録メディアに書き込む書込装置、画像データを通信回線を介して送信する送信部が適用される。また、画像出力部24は画像処理を経た画像データを単に記憶する画像記憶部(メモリ14又は記憶部20)であっても構わない。
【0027】
図1に示すように、記憶部20には、CPU12によって実行される各種のプログラムとして、メモリ14等のリソースの管理やCPU12によるプログラムの実行の管理、コンピュータ10と外部との通信等を司るオペレーティングシステム30のプログラム、コンピュータ10を画像処理装置として機能させるための画像処理プログラム群34、CPU12が上記画像処理プログラム群を実行することで実現される画像処理装置によって実行させる実行対象の画像処理が、例えばXML(eXtensible Markup Language)形式やその他の形式で記述された各種の制御指示情報32(図1では制御指示情報群32と表記)、画像処理の処理結果(出力データ)を格納するための処理結果DB(データベース)28が各々記憶されている。
【0028】
画像処理プログラム群34は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、PC等で利用する画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、PC等の各種機器(プラットフォーム)で共通に使用可能に開発されたプログラムである。画像処理プログラム群34によって実現される画像処理装置は、制御指示情報32に記述された実行対象の画像処理に従い、実行対象の画像処理を行う画像処理部を構築し、構築した画像処理部によって画像処理を行う(詳細は後述)。画像処理プログラム群34は、所望の画像処理を記述した制御指示情報32を、所望の画像処理を行わせる入力データと共に画像処理プログラム群34に入力することで、入力データに対して所望の画像処理の実行を指示するためのインタフェースを提供している。このため、内部で画像処理を行う必要のある任意の機器を新規開発する等の場合にも、前記画像処理を行うプログラムの開発に関しては、当該機器で必要とされる画像処理を実行対象の画像処理として記述した制御指示情報32を生成するのみで済み、実際に画像処理を行うプログラムを新たに開発する必要が無くなるので、開発負荷が軽減される。
【0029】
以下、画像処理プログラム群34について説明する。図1に示すように、画像処理プログラム群34はモジュールライブラリ36と、処理構築部42のプログラムと、処理管理部46のプログラムと、制御指示受付実行部48のプログラムと、に大別される。なお、画像処理プログラム群34のうち、制御指示受付実行部48のプログラム(後述する制御指示受付実行処理を行うためのプログラム)は、本発明に係る情報処理プログラムの一例である。
【0030】
本実施形態では、例として図2に示すように、予め定められた画像処理を行う1つ以上の画像処理モジュール38と、個々の画像処理モジュール38の前段及び後段の少なくとも一方に配置され画像データを記憶するためのバッファを備えたバッファモジュール40と、がパイプライン形態又はDAG(Directed Acyclic Graph:有向非循環グラフ)形態で連結されて成る画像処理部50を構築し、構築した画像処理部50によって画像処理を行う。本第1実施形態では、制御指示情報32として、処理構築部42を構成する複数種のモジュール生成部44(後述)のうち、実行対象の画像処理を実現する画像処理部50を構築するために起動すべきモジュール生成部44及びその起動順序を指定することで、実行対象の画像処理を記述した情報を用いている。制御指示受付実行部48は、入力された制御指示情報32に従い、制御指示情報32で指定されたモジュール生成部44を、制御指示情報32で指定された起動順序で順に起動することで、処理構築部42に対して画像処理部50の構築を指示する。
【0031】
画像処理部50を構成する個々の画像処理モジュールの実体はCPU12によって実行されCPU12で画像処理を行わせるための第1プログラム、又は、CPU12によって実行されCPU12により図1に図示されていない外部の画像処理装置(例えば専用画像処理ボード等)に対する処理の実行を指示するための第2プログラムであり、上述したモジュールライブラリ36には、予め定められた互いに異なる画像処理(例えば入力処理やフィルタ処理、色変換処理、拡大・縮小処理、スキュー角検知処理、画像回転処理、画像合成処理、出力処理等)を行う複数種の画像処理モジュール38のプログラムが各々登録されている。以下では、説明を簡単にするために、画像処理部50を構成する個々の画像処理モジュールの実体が上記の第1プログラムであるものとして説明する。
【0032】
個々の画像処理モジュール38は、例として図3(A)にも示すように、画像データに対する画像処理を予め設定された単位処理データ量ずつ行う画像処理エンジン38Aと、画像処理モジュール38の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン38Aの制御を行う制御部38Bと、を備えている。個々の画像処理モジュール38における単位処理データ量は、画像の1ライン分、画像の複数ライン分、画像の1画素分、画像1面分等の中から、画像処理エンジン38Aが行う画像処理の種類等に応じて予め選択・設定されており、例えば色変換処理やフィルタ処理を行う画像処理モジュール38では単位処理データ量が1画素分とされ、拡大・縮小処理を行う画像処理モジュール38では単位処理データ量が画像の1ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール38では単位処理データ量が画像1面分とされ、画像圧縮伸長処理を行う画像処理モジュール38では単位処理データ量が実行環境に依存するNバイトとされている。
【0033】
また、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類が同一でかつ実行する画像処理の内容が異なる画像処理モジュール38も登録されている(図1では、この種の画像処理モジュールを「モジュール1」「モジュール2」と表記して示している)。例えば拡大・縮小処理を行う画像処理モジュール38については、入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38等の複数の画像処理モジュール38が各々用意されている。また、例えば色変換処理を行う画像処理モジュール38については、RGB色空間をCMY色空間へ変換する画像処理モジュール38やその逆へ変換する画像処理モジュール38、L*a*b*色空間等の他の色空間変換を行う画像処理モジュール38が各々用意されている。
【0034】
また、画像処理モジュール38の制御部38Bは、画像処理エンジン38Aが単位処理データ量ずつ処理するために必要な画像データを入力するために、自モジュールの前段のモジュール(例えばバッファモジュール40)から画像データを単位読出データ量ずつ取得し、画像処理エンジン38Aから出力される画像データを単位書込データ量ずつ後段のモジュール(例えばバッファモジュール40)へ出力する(画像処理エンジン38Aで圧縮等のデータ量の増減を伴う画像処理が行われなければ単位書込データ量=単位処理データ量となる)か、画像処理エンジン38Aによる画像処理の結果を自モジュールの外部へ出力する(例えば画像処理エンジン38Aがスキュー角検知処理等の画像解析処理を行う場合、画像データに代えてスキュー角検知結果等の画像解析処理結果が出力されることがある)処理を行うが、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類及び内容が同一で、上記の単位処理データ量や単位読出データ量、単位書込データ量が異なる画像処理モジュール38も登録されている。例えば画像回転処理を行う画像処理モジュール38における単位処理データ量についても、前述した画像1面分に限られるものではなく、同じ画像回転処理を行いかつ単位処理データ量が互いに異なる(例えば画像の1ライン分や複数ライン分等の)複数の画像処理モジュール38がモジュールライブラリ36に含まれていても良い。
【0035】
また、モジュールライブラリ36に登録されている個々の画像処理モジュール38のプログラムは、画像処理エンジン38Aに相当するプログラムと、制御部38Bに相当するプログラムから構成されているが、制御部38Bに相当するプログラムは部品化されており、個々の画像処理モジュール38のうち単位読出データ量及び単位書込データ量が同一の画像処理モジュール38は、画像処理エンジン38Aで実行される画像処理の種類や内容に拘わらず、制御部38Bに相当するプログラムが共通化されている(制御部38Bに相当するプログラムとして同一のプログラムが用いられている)。これにより、画像処理モジュール38のプログラムの開発にあたっての開発負荷が軽減される。
【0036】
なお、画像処理モジュール38の中には、入力される画像の属性が未知の状態では単位読出データ量及び単位書込データ量が確定しておらず、入力画像データの属性を取得し、取得した属性を予め定められた演算式に代入して演算することで単位読出データ量や単位書込データ量が確定するモジュールが存在しているが、この種の画像処理モジュール38については、単位読出データ量と単位書込データ量が互いに同一の演算式を用いて導出される画像処理モジュール38について、制御部38Bに相当するプログラムを共通化するようにすればよい。また、本実施形態に係る画像処理プログラム群34は、前述のように各種機器に実装できるが、画像処理プログラム群34のうちモジュールライブラリ36に登録する画像処理モジュール38の数や種類等については、画像処理プログラム群34を実装する各種機器で必要とされる画像処理に応じて、追加・削除・入替等ができることは言うまでもない。
【0037】
また、画像処理部50を構成する個々のバッファモジュール40は、例として図3(B)にも示すように、バッファ40Aと、バッファモジュール40の前段及び後段のモジュールとの画像データの入出力及びバッファ40Aの管理を行うバッファ制御部40Bを備えている。なお、バッファ40Aはコンピュータ10に設けられたメモリ14からオペレーティングシステム30及びリソース管理部46Bを通じて確保されたメモリ領域で構成される。個々のバッファモジュール40のバッファ制御部40Bもその実体はCPU12によって実行されるプログラムであり、モジュールライブラリ36にはバッファ制御部40Bのプログラムも登録されている(図1ではバッファ制御部40Bのプログラムを「バッファモジュール」と表記して示している)。
【0038】
また、制御指示受付実行部48からの指示に従って画像処理部50を構築する処理構築部42は、図1に示すように複数種のモジュール生成部44から構成されている。複数種のモジュール生成部44は互いに異なる画像処理に対応しており、制御指示受付実行部48によって起動されることで、対応する画像処理を実現するための画像処理モジュール38及びバッファモジュール40から成るモジュール群を生成する処理を行う。なお、図1ではモジュール生成部44の一例として、モジュールライブラリ36に登録されている個々の画像処理モジュール38が実行する画像処理の種類に対応するモジュール生成部44を示しているが、個々のモジュール生成部44に対応する画像処理は、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理)であってもよい。構築対象の画像処理部50によって実現される画像処理が複数種の画像処理を組み合わせた処理である場合、制御指示受付実行部48は制御指示情報32に従って複数種の画像処理の何れかに対応するモジュール生成部44を順次起動する。これにより、制御指示受付実行部48によって順次起動されたモジュール生成部44により、必要とされる画像処理を行う画像処理部50が構築されることになる。
【0039】
また図1に示すように、処理管理部46は、画像処理部50における画像処理の実行を制御するワークフロー管理部46A、画像処理部50の各モジュールによるメモリ14や各種のファイル等のコンピュータ10のリソースの使用を管理するリソース管理部46B、及び、画像処理部50で発生したエラーを管理するエラー管理部46Cを含んで構成されている。エラー管理部46Cは、画像処理部50が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群34がインストールされたコンピュータ10が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部20等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。
【0040】
次に本第1実施形態の作用を説明する。画像処理プログラム群34が実装されている機器において、何らかの画像処理を実行する必要がある状況になると、実行すべき画像処理が実行対象として記述された制御指示情報32が入力又は選択されると共に、画像処理実行対象の画像データが入力又は指定され、これに伴い制御指示受付実行部48が起動される。
【0041】
なお、画像処理を行う必要のある状況としては、例えば画像データ供給部22としての画像読取部によって画像を読み取り、画像出力部24としての画像記録部により記録材料に画像として記録するか、画像出力部24としての表示部に画像として表示させるか、画像出力部24としての書込装置により画像データを記録メディアに書き込むか、画像出力部24としての送信部により画像データを送信するか、画像出力部24としての画像記憶部に記憶させる処理の実行が利用者によって指示された場合、或いは、画像データ供給部22としての受信部によって受信されるか、画像データ供給部22としての画像記憶部に記憶されている画像データに対して、上記の記録材料への記録、表示部への表示、記録メディアへの書き込み、送信、画像記憶部への記憶の何れかを行う処理の実行が利用者によって指示された場合が挙げられる。また、画像処理を実行する必要のある状況は上記に限られるものではなく、例えば利用者からの指示に応じて制御指示受付実行部48が実行できる処理の名称等を表示部16に一覧表示している状態で、実行対象の処理が利用者によって選択された等の場合であってもよい。
【0042】
また、制御指示情報32の入力又は選択、及び、画像処理実行対象の画像データ(入力画像データ)の入力又は指定は、例えば利用者の指示に応じて起動されたアプリケーション・プログラムによって行われる。入力画像データとしては、例えば画像データ供給部22としての画像読取部によって画像が読み取られることで得られた画像データ、画像データ供給部22としての受信部によって受信された画像データ、画像データ供給部22としての画像記憶部に記憶されている画像データの何れかが入力又は指定される。また、制御指示情報32についても、記憶部20に予め記憶されている制御指示情報32のうちの何れかが選択されるか、又は、画像データ供給部22としての受信部によって入力画像データと共に受信された制御指示情報32が入力される。
【0043】
制御指示受付実行部48は、制御指示情報32が入力(又は選択)されると共に、入力画像データが入力(又は指定)されて起動されると、図4に示す制御指示受付実行処理を行う。この制御指示受付実行処理では、まずステップ100において、画像処理実行対象として入力又は指定された入力画像データからハッシュ関数を用いてハッシュ値を演算する。なお、上記の入力画像データは請求項1等に記載の原データの一例であり、入力画像データから演算したハッシュ値は請求項3に記載の原データ識別情報の一例である。
【0044】
本実施形態に係る処理結果DB28は、入力された制御指示情報32に従って過去に構築された画像処理部50によって画像処理が行われることで得られた画像データ(出力画像データ)が、入力画像データのハッシュ値、入力された制御指示情報32、及び、後述するモジュール接続情報のハッシュ値と対応付けて登録されるデータベースであり、ステップ102では、入力された制御指示情報32及びステップ100で演算した入力画像データのハッシュ値をキーとして各々用いて処理結果DB28を検索し、次のステップ104では、上記の制御指示情報32及び入力画像データのハッシュ値と各々対応付けられた出力画像データが処理結果DB28に登録されているか否か判定する。なお、ステップ102,104は請求項2,5に記載の判定手段による処理の一例である。
【0045】
ステップ104の判定は、今回入力された制御指示情報32と入力画像データの組み合わせで過去に画像処理が行われたか否かを判定しており、この判定が否定された場合はステップ106へ移行し、まずワークフロー管理部46Aのプログラムを実行するスレッドを起動した後に、今回入力された制御指示情報32で指定されたモジュール生成部44を、制御指示情報32で指定された起動順序で順に起動することで、今回入力された制御指示情報32に実行対象として記述された画像処理を実現する画像処理部50を処理構築部42によって構築させる。
【0046】
以下、画像処理部50の構築について説明する。制御指示受付実行部48は、まず画像データ供給部22として、入力画像データが格納されているバッファ領域(メモリ14の一部領域)を含むバッファモジュール40を生成する。バッファモジュール40の新規生成では、バッファモジュール40のバッファ制御部40Bのプログラムを実行するスレッド(プロセス又はオブジェクトでもよい:以下同様)を生成することでバッファ制御部40Bを生成し、生成されたバッファ制御部40Bによりバッファ40Aとして使用するメモリ領域が確保されることによって成されるが、ここでのバッファモジュール40の生成は、入力画像データが格納されているバッファ領域を既に確保されたバッファ40Aとして(バッファ制御部40Bに)認識させるパラメータを設定してバッファ制御部40Bを生成する処理を行うことによって成される。ここで生成されたバッファモジュール40は画像データ供給部22として機能する。
【0047】
続いて制御指示受付実行部48は、上記と同様に、画像処理を行った画像データの出力先としての画像出力部24の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合は、画像出力部24として指定されたバッファ領域を含むバッファモジュール40を上記と同様にして生成する。ここで生成されたバッファモジュール40は画像出力部24として機能する。
【0048】
また、制御指示受付実行部48は、今回入力された制御指示情報32で起動順序が1番目に指定されているモジュール生成部44を起動(モジュール生成部44のプログラムを実行するスレッドを生成)した後に、起動したモジュール生成部44に対し、当該モジュール生成部44によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知し、対応するモジュール群の生成を指示する処理を繰り返す。
【0049】
なお、上記の入力モジュールは、起動順序が1番目のモジュール生成部44によって生成されるモジュール群については画像データ供給部22が入力モジュールとなり、起動順序が2番目以降のモジュール生成部44によって生成されるモジュール群については前段のモジュール群の最終モジュール(通常はバッファモジュール40)が入力モジュールとなる。また、上記の出力モジュールについては、起動順序が最後のモジュール生成部44によって生成されるモジュール群では画像出力部24が出力モジュールとなるので、画像出力部24が出力モジュールとして指定されるが、その他のモジュール群では出力モジュールは未確定のために制御指示受付実行部48による指定は行われず、必要な場合はモジュール生成部44によって生成・設定される。
【0050】
一方、制御指示受付実行部48によって起動された個々のモジュール生成部44は、まず生成すべき画像処理モジュール38に入力される入力画像データの属性を表す入力画像属性情報を取得する。なお、入力画像属性情報の取得は、生成する画像処理モジュール38の前段にバッファモジュール40が存在している場合、当該バッファモジュール40に画像データの書き込みを行う更に前段の画像処理モジュール38から出力画像データの属性を取得することによって実現できる。
【0051】
次に、生成する画像処理モジュール38の後段にバッファモジュール40が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール(画像出力部24)である場合(例えば図2(A)〜(C)に示す画像処理部50における最後段の画像処理モジュール38を参照)や、例として図2(B)に示す画像処理部50においてスキュー角検知処理を行う画像処理モジュール38のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール38へ出力するモジュールである場合は否定されるが、上記以外の場合は判定が肯定され、バッファ制御部40Bを起動する(バッファ制御部40Bのプログラムを実行するスレッドを生成する)ことで、画像処理モジュールの後段に連結するバッファモジュール40を生成する。
【0052】
次に、前段のモジュール(例えばバッファモジュール40)の情報と後段のバッファモジュール40の情報、画像処理モジュール38に入力される入力画像データの属性、処理パラメータを与えて、画像処理モジュール38を生成する。なお、後段のバッファモジュール40が不要と判断された画像処理モジュール38に対しては後段のバッファモジュール40の情報は与えられず、また例えば50%縮小処理のように処理内容が固定的で特別な画像処理パラメータが必要ない場合には処理パラメータは与えられない。
【0053】
画像処理モジュールの生成では、モジュールライブラリ36に登録されており、画像処理モジュール38として利用可能な複数の候補モジュールの中から、入力画像データの属性、及び、画像処理モジュール38で実行すべき処理パラメータに合致する画像処理モジュール38が選択される。例えばモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてCMY色空間が制御指示受付実行部48から指定され、更に入力画像データがRGB色空間のデータであった場合には、モジュールライブラリ36に登録されている各種の色空間処理を行う複数種の画像処理モジュール38の中から、RGB→CMYの色空間変換を行う画像処理モジュール38が選択される。
【0054】
また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール38であり、指定された拡大縮小率が50%以外であれば、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38が選択され、指定された拡大縮小率が50%であれば、拡大縮小率50%に特化した拡大縮小処理、すなわち入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38が選択される。なお、画像処理モジュール38の選択は上記に限られるものではなく、例えば画像処理エンジン38Aによる画像処理における単位処理データ量が異なる画像処理モジュール38をモジュールライブラリ36に複数登録しておき、画像処理部50へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール38を選択する(例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール38を選択する等)ようにしてもよい。また、例えばモジュール生成処理に対応するモジュール生成部44が、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理を行う画像処理モジュール38と画像回転処理を行う画像処理モジュール38によって実現されるスキュー補正処理)を行うモジュール群を生成する場合には、2個以上の画像処理モジュール38を含むモジュール群が生成される。
【0055】
そしてモジュール生成部44は、後段のバッファモジュール40のIDと生成した画像処理モジュール38のIDの組をワークフロー管理部46Aに通知する。このIDは、個々のモジュールを一意に判別できる情報であればよく、例えば個々のモジュールの生成順に付与した番号や、バッファモジュール40や画像処理モジュール38のオブジェクトのメモリ上でのアドレス等でも良い。ワークフロー管理部46Aに通知された情報は、ワークフロー管理部46Aの内部で管理している管理テーブルに登録され、後の処理で使われる。なお、各モジュールのIDはテーブル形式に代えてリスト形式や連想配列形式等で保持するようにしてもよい。
【0056】
制御指示受付実行部48によって順次起動されたモジュール生成部44により、上述した処理が順次行われることで、例として図2(A)〜(C)に示すように、実行対象の画像処理を行う画像処理部50が構築される。
【0057】
以上の処理によって画像処理部50の構築が完了すると、次のステップ108では、処理構築部42(のうち起動したモジュール生成部44)によって生成された画像処理部50の構成(画像処理部50を構成する画像処理モジュール38の数や種類、バッファモジュール40を含む各モジュールの接続関係等)を表すモジュール接続情報を生成する。なお、上記のモジュール接続情報は請求項1等に記載の処理規定情報の一例(詳しくは、請求項6に記載の「処理モジュールの接続関係を表す情報」の一例)であり、ステップ106,108は本発明における生成手段(より詳しくは請求項6に記載の生成手段)による処理の一例である。
【0058】
ステップ110では、ステップ108で生成したモジュール接続情報からハッシュ関数を用いてハッシュ値を演算する。なお、モジュール接続情報から演算したハッシュ値は請求項4に記載の処理規定情報識別情報の一例である。ステップ112では、ステップ110で演算したモジュール接続情報のハッシュ値及びステップ100で演算した入力画像データのハッシュ値をキーとして各々用いて処理結果DB28を検索し、次のステップ114では、上記のモジュール接続情報のハッシュ値及び入力画像データのハッシュ値と各々対応付けられた出力画像データが処理結果DB28に登録されているか否か判定する。なお、ステップ112,114は請求項1に記載の判定手段による処理の一例である。
【0059】
ステップ114の判定は、今回生成されたモジュール接続情報が表す画像処理部50の構成と同一の構成の画像処理部50により、今回入力された入力画像データに対して過去に画像処理が行われたか否かを判定しており、この判定が否定された場合はステップ116へ移行し、制御指示受付実行部48は、画像処理部50による入力画像データに対する画像処理の実行をワークフロー管理部46Aに指示する。
【0060】
これにより、処理管理部46のワークフロー管理部46Aは、処理構築部42によって生成された、画像処理部50のプログラムを実行する複数のスレッドをCPU12によって並列に実行させると共に、画像処理部50の最後段に位置している画像処理モジュール38に処理要求を入力する。また、任意のバッファモジュール40からデータ要求が入力される毎に、要求元のバッファモジュール40の前段の画像処理モジュール38に処理要求を入力し、任意の画像処理モジュールから処理完了通知が入力される毎に、通知元の画像処理モジュールに処理要求を入力することを、最後段の画像処理モジュールから全体処理の終了(1面分の画像データに対する画像処理の終了)が通知される迄繰り返す。
【0061】
図3(A)に示すように、画像処理部50の個々の画像処理モジュール38は、ワークフロー管理部46Aから処理要求が入力される(図3(A)の(1)参照)度に、前段のバッファモジュール40に対して画像データを要求し(図3(A)の(2)参照)、前段のバッファモジュール40から単位データ量の画像データを読み出し(図3(A)の(3)参照)、後段のバッファモジュール40から画像データの書込領域を取得し(図3(A)の(4)参照)、前段のバッファモジュール40から読み出した画像データに対して画像処理エンジン38Aで画像処理を行い(図3(A)の(5)参照)、画像処理後の画像データを後段のバッファモジュール40へ出力し(図3(A)の(6)参照)、ワークフロー管理部46Aへ処理完了を通知する(図3(A)の(7)参照)、という一連の処理を繰り返す。
【0062】
また、図3(B)に示すように、画像処理部50の個々のバッファモジュール40は、後段の画像処理モジュール38から画像データが要求される(図3(B)の(1)参照)度に、要求された画像データが自モジュールのバッファ40Aに記憶されているか否かをチェックし(図3(B)の(2)参照)、記憶されていなければワークフロー管理部46Aに対して画像データを要求し(図3(B)の(3)参照)、ワークフロー管理部46Aから前段の画像処理モジュール38に処理要求が入力される(図3(B)の(4)参照)ことで、前段の画像処理モジュール38からバッファ40Aに画像データが書き込まれる(図3(B)の(5),(6)参照)と、書き込まれた画像データを後段の画像処理モジュール38によって読み出させる(図3(B)の(7)参照)、という一連の処理を繰り返す。
【0063】
これにより、例として図5の(1)〜(19)に示すように、ワークフロー管理部46A及び画像処理部50の各モジュール間で画像データ、処理要求、データ要求及び処理完了通知が送受されることで、個々の画像処理モジュール38における画像処理が並列に行われる。そして、画像データ供給部22のバッファに格納されている入力画像データに対し、制御指示情報32に実行対象として記述された画像処理が画像処理部50によって行われ、画像出力部24のバッファに処理結果(出力画像データ)が格納される。なお、ステップ116は本発明における処理手段による処理の一例である。
【0064】
次のステップ118では、ステップ116で得られた出力画像データを、今回入力された制御指示情報32、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と対応付けて処理結果DB28に登録する。そしてステップ120では、ステップ116で取得した出力画像データを今回入力された制御指示情報32の記述に従って出力し(例えば記録材料への画像の記録、表示部への画像の表示、記録メディアへの画像データの書き込み、画像データの送信、画像記憶部への画像データの記憶の何れか)、制御指示受付実行処理を終了する。
【0065】
一方、今回入力された制御指示情報32と入力画像データの組み合わせで過去に画像処理が行われていた場合には、制御指示受付実行処理(図4)のステップ102における処理結果DB28の検索において、入力された制御指示情報32及び入力画像データのハッシュ値と各々対応付けられた出力画像データが抽出されることで、ステップ104の判定が肯定される。また、ステップ104の判定が否定された場合にも、今回生成されたモジュール接続情報が表す画像処理部50の構成と同一の構成の画像処理部50により、今回入力された入力画像データに対して過去に画像処理が行われていた場合には、制御指示受付実行処理(図4)のステップ112における処理結果DB28の検索において、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と各々対応付けられた出力画像データが抽出されることで、ステップ114の判定が肯定される。
【0066】
なお、ステップ104の判定が否定されてステップ114の判定が肯定される場合としては、実行対象の画像処理が同一(実行対象の画像処理を実現するための画像処理部50の構成が同一)であるにも拘わらず、制御指示情報32上での記述が相違している場合等が挙げられる。本実施形態では、制御指示情報32がXML形式等で記述されるので、実行対象の画像処理が同一であっても制御指示情報32上での記述では或る程度のばらつきが許容され、実行対象の画像処理(を実現するための画像処理部50の構成)が同一であっても過去に入力された制御指示情報32と記述が異なる制御指示情報32が入力される可能性がある。これに対し、本実施形態に係る制御指示受付実行処理では、モジュール接続情報(のハッシュ値)を用いて処理結果DB28の再検索を行っているので、制御指示情報32上での記述が相違していたとしても、実行対象の画像処理(を実現するための画像処理部50の構成)が同一の制御指示情報32が入力された場合には、入力画像データも同一であれば、処理結果DB28に格納された出力画像データを利用できることが検知される。
【0067】
ステップ104又はステップ114の判定が肯定された場合にはステップ124へ移行し、ステップ102又はステップ112の検索で抽出された出力画像データを処理結果DB28から読み出す。そしてステップ126では、処理結果DB28から読み出した出力画像データを制御指示情報32に従って出力し、制御指示受付実行処理を終了する。この場合、画像処理部50による画像処理が行われないので、入力された制御指示情報32及び入力画像データに対応する出力画像データが早期に出力され、コンピュータ10に加わる負荷も低減される。なお、ステップ124,126は本発明における出力手段による処理の一例である。
【0068】
〔第2実施形態〕
次に本発明の第2実施形態について説明する。図aには、本第2実施形態に係るコンピュータ・システム200が示されている。コンピュータ・システム200は、ネットワーク202にウェブサーバ204及び複数台のクライアント端末206が各々接続されて構成されている。なお、ネットワーク202はインターネットでもよいしイントラネット等でもよい。
【0069】
ウェブサーバ204は、CPU204A、ROM及びRAMを含むメモリ204B、HDDやフラッシュメモリ等の不揮発性の記憶部204C、ネットワークI/F部204Dを備えており、ネットワークI/F部204Dを介してネットワーク202に接続されている。記憶部204Cには、ウェブサーバ204で後述するウェブページ配信処理を行うためのウェブページ配信プログラムがインストールされており、ウェブページ構成情報DB208、元データDB210及び配信済ページDB212も記憶されている(詳細は何れも後述)。
【0070】
また、クライアント端末206は、デスクトップ型のPCやノートブック型のPC、PDA、携帯電話機等の何れでもよい。これらのクライアント端末206は、ディスプレイのサイズや解像度(画素数)、階調数(表示データの1画素当りのビット数)等のディスプレイの表示環境が互いに相違しているが、ネットワーク202に接続されている複数台のクライアント端末206の中には、ディスプレイの表示環境の異なるクライアント端末206が混在している。
【0071】
次に本第2実施形態の作用を説明する。本第2実施形態に係るコンピュータ・システム200において、ウェブサーバ204はクライアント端末206の要求に応じてウェブページのデータを要求元のクライアント端末206へ配信する。クライアント端末206からウェブサーバ204へのウェブページ配信要求は、配信対象のウェブページのURL(Uniform Resource Locator)やクライアント端末206のディスプレイの表示環境を表す表示環境情報等の情報がXML形式やその他の形式で記述された制御指示情報がクライアント端末206からウェブサーバ204へ送信されることによって成される。
【0072】
ウェブサーバ204の記憶部204Cに記憶されている元データDB210には、ウェブサーバ204が配信する個々のウェブページの生成に用いる複数の元データ(例えば文書データや画像データ、表データ等)が各々記憶されている。また、ウェブサーバ204の記憶部204Cに記憶されているウェブページ構成情報DB208には、ウェブサーバ204が配信する個々のウェブページ毎に、ウェブページのレイアウトを指定したりウェブページの各領域に貼り付ける元データを指定する情報から成るウェブページ構成情報が、個々のウェブページのURLと対応付けて各々登録されている。
【0073】
更に、ウェブサーバ204の記憶部204Cに記憶されている配信済ページDB212には、ウェブサーバ204が過去に何れかのクライアント端末206へ配信したウェブページのデータが、クライアント端末206から受信した制御指示情報、配信したウェブページのデータの生成に用いた元データのハッシュ値、及び、配信したウェブページのデータの生成に用いたページ生成用処理コード(詳細は後述)のハッシュ値と各々対応付けて登録されている。
【0074】
以下、ウェブサーバ204がコンピュータ・システム200の何れかのクライアント端末206から制御指示情報を受信する度に、CPU204Aによってウェブページ配信プログラムが実行されることで実現されるウェブページ配信処理について、図7を参照して説明する。
【0075】
ウェブページ配信処理では、まずステップ220において、クライアント端末206から受信した制御指示情報から、配信対象のウェブページのURL及び表示環境情報を各々抽出する。次のステップ222では、ステップ220で制御指示情報から抽出したURLをキーにしてウェブページ構成情報DB208を検索し、当該検索によって抽出されたウェブページ構成情報(配信対象のウェブページに対応するウェブページ構成情報)をウェブページ構成情報DB208から読み出し、読み出したウェブページ構成情報に基づいて、元データDB210に記憶されている元データのうち、配信対象のウェブページの生成に用いる元データを認識する。
【0076】
ステップ224では、ステップ220で認識した元データ(配信対象のウェブページの生成に用いる元データ)を元データDB210から読み出し、読み出した元データのハッシュ値を演算する。なお、配信対象のウェブページの生成に用いる元データが複数存在している場合には、例えばウェブページのより先頭に近い位置に貼り付けされる元データをハッシュ値の演算対象として選択する等のように、予め設定された選択ルールに従ってハッシュ値演算対象の元データを選択する。ステップ226では、ウェブページ要求元のクライアント端末206から受信した制御指示情報及びステップ224で演算した元データのハッシュ値をキーとして各々用いて配信済ページDB212を検索し、次のステップ228では、上記の制御指示情報及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが配信済ページDB212に登録されているか否か判定する。なお、ステップ226,228は請求項2,5に記載の判定手段による処理の一例である。
【0077】
ステップ228の判定は、今回入力された制御指示情報と今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていたか否かを判定しており、この判定が否定された場合はステップ230へ移行し、先のステップ222でウェブページ構成情報DB208から読み出した配信対象のウェブページに対応するウェブページ構成情報、先のステップ222で配信対象のウェブページの生成に用いる元データを認識した結果、及び、先のステップ220で制御指示情報から抽出した表示環境情報に基づき、配信対象のウェブページを生成するための処理コード(ページ生成用処理コード)を生成する。
【0078】
このページ生成用処理コードの生成では、例えばウェブページ構成情報に従い、背景画像を生成したり元データを貼り付る等の処理を組み合わせて配信用のウェブページを生成する処理をCPU204Aに行わせるための処理コードが生成されるが、表示環境情報が表すウェブページ要求元のクライアント端末206のディスプレイの表示環境に応じて、ページサイズの設定や元データの変換 (例えば文字サイズを変更したり画像の解像度や階調数を変換する)等の処理も付加される。なお、ステップ230は本発明における生成手段(詳しくは請求項8に記載の生成手段)による処理の一例である。
【0079】
次のステップ232では、ステップ230で生成したページ生成用処理コードのハッシュ値を演算する。また、ステップ234では、ステップ232で演算したページ生成用処理コードのハッシュ値及び先のステップ224で演算した元データのハッシュ値をキーとして各々用いて配信済ページDB212を検索し、次のステップ236では、上記のページ生成用処理コードのハッシュ値及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが配信済ページDB212に登録されているか否か判定する。なお、ステップ234,236は請求項1に記載の判定手段による処理の一例である。
【0080】
ステップ236の判定は、今回生成したページ生成用処理コードと今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていたか否かを判定しており、この判定が否定された場合はステップ238へ移行し、先のステップ230で生成したページ生成用処理コードをCPU204Aで実行することで、配信用ウェブページのデータを生成する。なお、ステップ238は本発明における処理手段による処理の一例である。
【0081】
またステップ240では、ステップ238で生成した配信用ウェブページのデータを、クライアント端末206から今回受信した制御指示情報、先のステップ232で演算したページ生成用処理コードのハッシュ値、及び、先のステップ224で演算した元データのハッシュ値と対応付けて配信済ページDB212に登録する。そしてステップ242では、ステップ238で生成した配信用ウェブページのデータを、ウェブページ要求元のクライアント端末206へ送信(配信)し、ウェブページ配信処理を終了する。
【0082】
一方、今回入力された制御指示情報と今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていた場合には、ステップ226における配信済ページDB212の検索において、今回入力された制御指示情報及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが抽出されることで、ステップ228の判定が肯定される。また、ステップ228の判定が否定された場合にも、今回生成したページ生成用処理コードと今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていた場合には、ステップ234における配信済ページDB212の検索において、今回生成したページ生成用処理コードのハッシュ値及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが抽出されることで、ステップ236の判定が肯定される。
【0083】
なお、ステップ228の判定が否定されてステップ236の判定が肯定される場合としては、ディスプレイの表示環境が若干相違しているクライアント端末206から、同一のウェブページの配信が要求された場合等が挙げられる。本実施形態では、ディスプレイの表示環境を表す表示環境情報が制御指示情報に含まれているため、ディスプレイの表示環境が若干相違しているクライアント端末206から送信される制御指示情報は、同一のウェブページの配信を要求する情報であっても情報の一部が相違することになるが、ディスプレイの表示環境の相違が少しであれば、クライアント端末206へ配信するウェブページのデータ(及びウェブページのデータを生成するためのページ生成用処理コード)は同一でよい場合がある。
【0084】
これに対し、本実施形態に係るウェブページ配信処理では、ページ生成用処理コード(のハッシュ値)を用いて配信済ページDB212の再検索を行っているので、制御指示情報に含まれる表示環境情報が若干相違していたとしても、過去にウェブページのデータを配信したクライアント端末206と同一のデータを配信可能なクライアント端末206からの同一のウェブページの配信要求を受信した場合には、配信済ページDB212に格納された配信済ウェブページのデータを利用可能であることが検知される。
【0085】
ステップ228又はステップ236の判定が肯定された場合にはステップ244へ移行し、ステップ226又はステップ234の検索で抽出された配信済ウェブページのデータを配信済ページDB212から読み出す。そしてステップ246では、配信済ページDB212から読み出した配信用ウェブページのデータを、ウェブページ要求元のクライアント端末206へ送信(配信)し、ウェブページ配信処理を終了する。この場合、配信用ウェブページのデータを生成する処理は行われないので、受信した制御指示情報で配信が要求されたウェブページのデータが早期に送信され、ウェブサーバ204に加わる負荷も低減される。上記のステップ244,246は本発明における出力手段による処理の一例である。
【0086】
なお、第1実施形態では、出力画像データが、入力画像データのハッシュ値、入力された制御指示情報32、及び、モジュール接続情報のハッシュ値と対応付けて処理結果DB28に登録される態様を説明したが、これに限られるものではなく、入力画像データのハッシュ値に代えて入力画像データそのものを処理結果DB28に記憶させるようにしてもよいし、モジュール接続情報のハッシュ値に代えてモジュール接続情報そのものを処理結果DB28に記憶させるようにしてもよい。また、モジュール接続情報に代えて、画像処理部50として機能するプログラム実行コード、又はそのハッシュ値を処理結果DB28に記憶させて検索に用いるようにしてもよい。また、第1実施形態で説明した制御指示受付実行処理(図4)のステップ102,104は省略することも可能であり、その場合は処理結果DB28への制御指示情報32の記憶も省略可能である。
【0087】
また、第2実施形態では、配信済ウェブページのデータが、制御指示情報、ウェブページのデータの生成に用いた元データのハッシュ値、ページ生成用処理コードのハッシュ値と対応付けて配信済ページDB212に登録される態様を説明したが、これに限られるものではなく、元データのハッシュ値に代えて元データそのものを配信済ページDB212に記憶させるようにしてもよいし、ページ生成用処理コードのハッシュ値に代えてページ生成用処理コードそのものを配信済ページDB212に記憶させるようにしてもよい。また、第2実施形態で説明したウェブページ配信処理(図7)のステップ226,228は省略することも可能であり、その場合は配信済ページDB212への制御指示情報の記憶も省略可能である。
【0088】
また、第2実施形態では、配信用ウェブページのデータの生成に際し、ウェブページ要求元のクライアント端末206におけるディスプレイの表示環境に応じて元データを変換する態様を説明したが、これに限られるものではなく、同一のオブジェクト(文書や画像、表等)を表す元データを複数種の表示環境毎に予め用意して元データDB210に記憶しておき、配信用ウェブページのデータの生成に際しては、ウェブページ要求元のクライアント端末206におけるディスプレイの表示環境に応じた元データを選択する処理を行うようにしてもよい。この態様は請求項9記載の発明の一例である。
【0089】
また、第1実施形態では、本発明に係る情報処理装置として機能するコンピュータ10の記憶部20が本発明における第1記憶手段として機能し、第2実施形態では、本発明に係る情報処理装置として機能するウェブサーバ204の記憶部204Cが本発明における第1記憶手段として機能する態様を説明したが、これに限られるものではなく、本発明に係る情報処理装置とネットワーク等の通信回線を介して接続された別の情報処理装置(例えばDBサーバ)によってアクセスされる記憶手段を、本発明における第1記憶手段として機能させる(例えば第1実施形態で説明した処理結果DB28や第2実施形態で説明した配信済ページDB212を記憶させる)ようにしてもよい。
【0090】
更に、第1実施形態ではコンピュータ10を本発明に係る情報処理装置及び本発明における処理手段として機能させる態様を説明し、第2実施形態ではウェブサーバ204を本発明に係る情報処理装置及び本発明における処理手段として機能させる態様を説明したが、これに限られるものではなく、例えばデータセンタ等に設置されクラウドコンピューティング技術が適用されたサーバ群によって実現・提供される仮想マシンを、本発明に係る情報処理装置及び本発明における処理手段の少なくとも一方として機能させることも可能である。
【0091】
また、指示情報に実行対象として記述された原データから出力データを得る処理の一例として、第1実施形態では入力画像データから出力画像データを得る画像処理を、第2実施形態では元データを用いて配信用ウェブページのデータを生成する処理を説明したが、これに限られるものではなく、実行対象の処理としては、原データから出力データを得る任意の処理を適用可能である。
【0092】
また、第1実施形態では、本発明に係る情報処理プログラムの一例である制御指示受付実行部48のプログラムがコンピュータ10の記憶部20に予め記憶(インストール)されており、第2実施形態では、本発明に係る情報処理プログラムの一例であるウェブページ配信プログラムがウェブサーバ204の記憶部204Cに予め記憶(インストール)されている態様を説明したが、本発明に係る情報処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。
【符号の説明】
【0093】
10 コンピュータ
20 記憶部
28 処理結果DB
32 制御指示情報
38 画像処理モジュール
40 バッファモジュール
48 制御指示受付実行部
50 画像処理部
200 コンピュータ・システム
204 ウェブサーバ
204C 記憶部
206 クライアント端末
212 配信済ページDB
【技術分野】
【0001】
本発明は情報処理装置及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、それぞれ基本的、汎用的な機能のみを備えるソフトウェア(XMLで記述されたフロー定義を読み込み、タグで規定されたコマンドを順次実行する実行エンジン、GUI部品やロジック部品、画面定義を読み込み、各部品を起動して表示画面を生成するアプリケーションブラウザ等)を用意し、実質的な処理内容をXMLの電子文書で与えることにより、ソフトウェアの改変を伴うことなく、処理内容の改変を実現する技術が開示されている。
【0003】
また特許文献2には、画像処理内容が異なる複数の画像処理モジュールを用意しておき、必要な画像処理に応じて1つ以上の画像処理モジュールを選択すると共に、選択した個々の画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結されるように、個々のモジュールをパイプライン形態又は有向非循環グラフ形態で連結して画像処理部を構築する技術が開示されている。
【0004】
また特許文献3には、予約キーワードを有する複数のファイルから成るアーカイブファイルを蓄積すると共に、予約キーワードとファイルへの処理内容とが対応付けられた複数の処理内容指定データを保持しておき、複数のファイルのそれぞれのファイル名から予約キーワードを抽出し、複数の処理内容指定データのうちの抽出した予約キーワードを含む1又は複数の処理内容指定データを検索し、検索された処理内容指定データに対応するファイルへの処理内容に従って、蓄積されたドキュメントファイルに含まれる印刷すべきデータを印刷処理する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−216427号公報
【特許文献2】特開2006−338501号公報
【特許文献3】特開2008−171390号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮できる情報処理装置及び情報処理プログラムを得ることが目的である。
【課題を解決するための手段】
【0007】
請求項1記載の発明に係る情報処理装置は、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、を含んで構成されている。
【0008】
請求項2記載の発明は、請求項1記載の発明において、前記第1記憶手段には、過去に得られた前記出力データが、原データとして用いられたデータ、前記処理規定情報及び入力された前記指示情報と対応付けて記憶されており、前記判定手段は、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていないと判定した場合に、前記今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、前記出力手段は、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合にも、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する。
【0009】
請求項3記載の発明は、請求項1又は請求項2記載の発明において、前記第1記憶手段には、前記原データとして用いられたデータとして、当該データから一意に求まる原データ識別情報が記憶されており、前記判定手段は、前記今回の処理で原データとして用いられるデータから前記原データ識別情報を求め、求めた前記原データ識別情報を用いて前記判定を行う。
【0010】
請求項4記載の発明は、請求項1〜請求項3の何れか1項記載の発明において、前記第1記憶手段には、前記処理規定情報として、前記処理規定情報から一意に求まる処理規定情報識別情報が記憶されており、前記判定手段は、今回生成された前記処理規定情報から前記処理規定情報識別情報を求め、求めた前記処理規定情報識別情報を用いて前記判定を行う。
【0011】
請求項5記載の発明に係る情報処理装置は、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、を含んで構成されている。
【0012】
請求項6記載の発明は、請求項1〜請求項5の何れか1項記載の発明において、前記生成手段は、前記指示情報に基づき、前記指示情報に記述された実行対象の処理を実現する処理部として、互いに異なる処理を行う複数種の処理モジュールの中から選択した1つ以上の処理モジュールをパイプライン形態又は有向非循環グラフ形態で連結した前記処理部が構築手段によって構築されると、構築された前記処理部における前記処理モジュールの接続関係を表す情報を前記処理規定情報として生成し、前記処理手段は、構築された前記処理部により、前記指示情報に記述された実行対象の前記処理を行う。
【0013】
請求項7記載の発明は、請求項1〜請求項6の何れか1項記載の発明において、前記今回の処理で原データとして用いられるデータは、前記処理要求元から入力されるか、又は、第2記憶手段に記憶された複数のデータの中から前記処理要求元によって指定される。
【0014】
請求項8記載の発明は、請求項1〜請求項5の何れか1項記載の発明において、前記指示情報には、処理要求元の環境を表す環境情報も記述されており、前記生成手段は、生成する前記処理規定情報で規定する前記処理の詳細を、前記指示情報に記述された前記環境情報が表す処理要求元の環境に応じて相違させる。
【0015】
請求項9記載の発明は、請求項8記載の発明において、原データとして使用される複数のデータを記憶する第2記憶手段を備え、前記生成手段は、前記第2記憶手段に記憶されている複数のデータのうち、前記今回の処理で原データとして用いるデータを、前記環境情報が表す処理要求元の環境に応じて選択する。
【0016】
請求項10記載の発明に係る情報処理プログラムは、コンピュータを、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、及び、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段として機能させる。
【0017】
請求項11記載の発明に係る情報処理プログラムは、コンピュータを、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、及び、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段として機能させる。
【発明の効果】
【0018】
請求項1,5〜11記載の発明は、本構成を有しない場合と比較して、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮できる、という効果を有する。
【0019】
請求項2記載の発明は、本構成を有しない場合と比較して、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を更に短縮できる、という効果を有する。
【0020】
請求項3記載の発明は、原データとして用いられたデータ自体を記憶させる場合と比較して、記憶手段の記憶容量の節減、判定手段の判定に要する時間の短縮を実現できる、という効果を有する。
【0021】
請求項4記載の発明は、処理規定情報自体を記憶させる場合と比較して、記憶手段の記憶容量の節減、判定手段の判定に要する時間の短縮を実現できる、という効果を有する。
【図面の簡単な説明】
【0022】
【図1】第1実施形態で説明したコンピュータの概略構成を示すブロック図である。
【図2】画像処理部の構成例を示すブロック図である。
【図3】(A)は画像処理モジュール、(B)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。
【図4】制御指示受付実行部によって実行される制御指示受付実行処理の内容を示すフローチャートである。
【図5】画像処理部における画像処理の流れを説明する概略図である。
【図6】第2実施形態で説明したコンピュータ・システムの概略構成を示すブロック図である。
【図7】ウェブページ配信処理の内容を示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【0024】
〔第1実施形態〕
図1には、本発明に係る情報処理装置として機能することが可能なコンピュータ10が示されている。なお、このコンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた画像形成装置、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよく、更にPDA(Personal Digital Assistant)や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
【0025】
コンピュータ10はCPU12、メモリ14、表示部16、操作部18、記憶部20、画像データ供給部22及び画像出力部24を備えており、これらはバス26を介して互いに接続されている。コンピュータ10が上述した画像取扱機器に組み込まれている場合、表示部16や操作部18としては、画像取扱機器に設けられたLCD等から成る表示パネルやテンキー等を適用される。また、コンピュータ10が独立したコンピュータである場合、表示部16や操作部18としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用される。また、記憶部20としてはHDD(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性の記憶手段を用いてもよい。
【0026】
また、画像データ供給部22は処理対象の画像データを供給するものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部、通信回線を介して外部から画像データを受信する受信部、画像データを記憶する画像記憶部(メモリ14又は記憶部20)等が適用される。また、画像出力部24は画像処理を経た画像データ又は該画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部、画像データが表す画像をディスプレイ等に表示する表示部、画像データを記録メディアに書き込む書込装置、画像データを通信回線を介して送信する送信部が適用される。また、画像出力部24は画像処理を経た画像データを単に記憶する画像記憶部(メモリ14又は記憶部20)であっても構わない。
【0027】
図1に示すように、記憶部20には、CPU12によって実行される各種のプログラムとして、メモリ14等のリソースの管理やCPU12によるプログラムの実行の管理、コンピュータ10と外部との通信等を司るオペレーティングシステム30のプログラム、コンピュータ10を画像処理装置として機能させるための画像処理プログラム群34、CPU12が上記画像処理プログラム群を実行することで実現される画像処理装置によって実行させる実行対象の画像処理が、例えばXML(eXtensible Markup Language)形式やその他の形式で記述された各種の制御指示情報32(図1では制御指示情報群32と表記)、画像処理の処理結果(出力データ)を格納するための処理結果DB(データベース)28が各々記憶されている。
【0028】
画像処理プログラム群34は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、PC等で利用する画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、PC等の各種機器(プラットフォーム)で共通に使用可能に開発されたプログラムである。画像処理プログラム群34によって実現される画像処理装置は、制御指示情報32に記述された実行対象の画像処理に従い、実行対象の画像処理を行う画像処理部を構築し、構築した画像処理部によって画像処理を行う(詳細は後述)。画像処理プログラム群34は、所望の画像処理を記述した制御指示情報32を、所望の画像処理を行わせる入力データと共に画像処理プログラム群34に入力することで、入力データに対して所望の画像処理の実行を指示するためのインタフェースを提供している。このため、内部で画像処理を行う必要のある任意の機器を新規開発する等の場合にも、前記画像処理を行うプログラムの開発に関しては、当該機器で必要とされる画像処理を実行対象の画像処理として記述した制御指示情報32を生成するのみで済み、実際に画像処理を行うプログラムを新たに開発する必要が無くなるので、開発負荷が軽減される。
【0029】
以下、画像処理プログラム群34について説明する。図1に示すように、画像処理プログラム群34はモジュールライブラリ36と、処理構築部42のプログラムと、処理管理部46のプログラムと、制御指示受付実行部48のプログラムと、に大別される。なお、画像処理プログラム群34のうち、制御指示受付実行部48のプログラム(後述する制御指示受付実行処理を行うためのプログラム)は、本発明に係る情報処理プログラムの一例である。
【0030】
本実施形態では、例として図2に示すように、予め定められた画像処理を行う1つ以上の画像処理モジュール38と、個々の画像処理モジュール38の前段及び後段の少なくとも一方に配置され画像データを記憶するためのバッファを備えたバッファモジュール40と、がパイプライン形態又はDAG(Directed Acyclic Graph:有向非循環グラフ)形態で連結されて成る画像処理部50を構築し、構築した画像処理部50によって画像処理を行う。本第1実施形態では、制御指示情報32として、処理構築部42を構成する複数種のモジュール生成部44(後述)のうち、実行対象の画像処理を実現する画像処理部50を構築するために起動すべきモジュール生成部44及びその起動順序を指定することで、実行対象の画像処理を記述した情報を用いている。制御指示受付実行部48は、入力された制御指示情報32に従い、制御指示情報32で指定されたモジュール生成部44を、制御指示情報32で指定された起動順序で順に起動することで、処理構築部42に対して画像処理部50の構築を指示する。
【0031】
画像処理部50を構成する個々の画像処理モジュールの実体はCPU12によって実行されCPU12で画像処理を行わせるための第1プログラム、又は、CPU12によって実行されCPU12により図1に図示されていない外部の画像処理装置(例えば専用画像処理ボード等)に対する処理の実行を指示するための第2プログラムであり、上述したモジュールライブラリ36には、予め定められた互いに異なる画像処理(例えば入力処理やフィルタ処理、色変換処理、拡大・縮小処理、スキュー角検知処理、画像回転処理、画像合成処理、出力処理等)を行う複数種の画像処理モジュール38のプログラムが各々登録されている。以下では、説明を簡単にするために、画像処理部50を構成する個々の画像処理モジュールの実体が上記の第1プログラムであるものとして説明する。
【0032】
個々の画像処理モジュール38は、例として図3(A)にも示すように、画像データに対する画像処理を予め設定された単位処理データ量ずつ行う画像処理エンジン38Aと、画像処理モジュール38の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン38Aの制御を行う制御部38Bと、を備えている。個々の画像処理モジュール38における単位処理データ量は、画像の1ライン分、画像の複数ライン分、画像の1画素分、画像1面分等の中から、画像処理エンジン38Aが行う画像処理の種類等に応じて予め選択・設定されており、例えば色変換処理やフィルタ処理を行う画像処理モジュール38では単位処理データ量が1画素分とされ、拡大・縮小処理を行う画像処理モジュール38では単位処理データ量が画像の1ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール38では単位処理データ量が画像1面分とされ、画像圧縮伸長処理を行う画像処理モジュール38では単位処理データ量が実行環境に依存するNバイトとされている。
【0033】
また、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類が同一でかつ実行する画像処理の内容が異なる画像処理モジュール38も登録されている(図1では、この種の画像処理モジュールを「モジュール1」「モジュール2」と表記して示している)。例えば拡大・縮小処理を行う画像処理モジュール38については、入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38等の複数の画像処理モジュール38が各々用意されている。また、例えば色変換処理を行う画像処理モジュール38については、RGB色空間をCMY色空間へ変換する画像処理モジュール38やその逆へ変換する画像処理モジュール38、L*a*b*色空間等の他の色空間変換を行う画像処理モジュール38が各々用意されている。
【0034】
また、画像処理モジュール38の制御部38Bは、画像処理エンジン38Aが単位処理データ量ずつ処理するために必要な画像データを入力するために、自モジュールの前段のモジュール(例えばバッファモジュール40)から画像データを単位読出データ量ずつ取得し、画像処理エンジン38Aから出力される画像データを単位書込データ量ずつ後段のモジュール(例えばバッファモジュール40)へ出力する(画像処理エンジン38Aで圧縮等のデータ量の増減を伴う画像処理が行われなければ単位書込データ量=単位処理データ量となる)か、画像処理エンジン38Aによる画像処理の結果を自モジュールの外部へ出力する(例えば画像処理エンジン38Aがスキュー角検知処理等の画像解析処理を行う場合、画像データに代えてスキュー角検知結果等の画像解析処理結果が出力されることがある)処理を行うが、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類及び内容が同一で、上記の単位処理データ量や単位読出データ量、単位書込データ量が異なる画像処理モジュール38も登録されている。例えば画像回転処理を行う画像処理モジュール38における単位処理データ量についても、前述した画像1面分に限られるものではなく、同じ画像回転処理を行いかつ単位処理データ量が互いに異なる(例えば画像の1ライン分や複数ライン分等の)複数の画像処理モジュール38がモジュールライブラリ36に含まれていても良い。
【0035】
また、モジュールライブラリ36に登録されている個々の画像処理モジュール38のプログラムは、画像処理エンジン38Aに相当するプログラムと、制御部38Bに相当するプログラムから構成されているが、制御部38Bに相当するプログラムは部品化されており、個々の画像処理モジュール38のうち単位読出データ量及び単位書込データ量が同一の画像処理モジュール38は、画像処理エンジン38Aで実行される画像処理の種類や内容に拘わらず、制御部38Bに相当するプログラムが共通化されている(制御部38Bに相当するプログラムとして同一のプログラムが用いられている)。これにより、画像処理モジュール38のプログラムの開発にあたっての開発負荷が軽減される。
【0036】
なお、画像処理モジュール38の中には、入力される画像の属性が未知の状態では単位読出データ量及び単位書込データ量が確定しておらず、入力画像データの属性を取得し、取得した属性を予め定められた演算式に代入して演算することで単位読出データ量や単位書込データ量が確定するモジュールが存在しているが、この種の画像処理モジュール38については、単位読出データ量と単位書込データ量が互いに同一の演算式を用いて導出される画像処理モジュール38について、制御部38Bに相当するプログラムを共通化するようにすればよい。また、本実施形態に係る画像処理プログラム群34は、前述のように各種機器に実装できるが、画像処理プログラム群34のうちモジュールライブラリ36に登録する画像処理モジュール38の数や種類等については、画像処理プログラム群34を実装する各種機器で必要とされる画像処理に応じて、追加・削除・入替等ができることは言うまでもない。
【0037】
また、画像処理部50を構成する個々のバッファモジュール40は、例として図3(B)にも示すように、バッファ40Aと、バッファモジュール40の前段及び後段のモジュールとの画像データの入出力及びバッファ40Aの管理を行うバッファ制御部40Bを備えている。なお、バッファ40Aはコンピュータ10に設けられたメモリ14からオペレーティングシステム30及びリソース管理部46Bを通じて確保されたメモリ領域で構成される。個々のバッファモジュール40のバッファ制御部40Bもその実体はCPU12によって実行されるプログラムであり、モジュールライブラリ36にはバッファ制御部40Bのプログラムも登録されている(図1ではバッファ制御部40Bのプログラムを「バッファモジュール」と表記して示している)。
【0038】
また、制御指示受付実行部48からの指示に従って画像処理部50を構築する処理構築部42は、図1に示すように複数種のモジュール生成部44から構成されている。複数種のモジュール生成部44は互いに異なる画像処理に対応しており、制御指示受付実行部48によって起動されることで、対応する画像処理を実現するための画像処理モジュール38及びバッファモジュール40から成るモジュール群を生成する処理を行う。なお、図1ではモジュール生成部44の一例として、モジュールライブラリ36に登録されている個々の画像処理モジュール38が実行する画像処理の種類に対応するモジュール生成部44を示しているが、個々のモジュール生成部44に対応する画像処理は、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理)であってもよい。構築対象の画像処理部50によって実現される画像処理が複数種の画像処理を組み合わせた処理である場合、制御指示受付実行部48は制御指示情報32に従って複数種の画像処理の何れかに対応するモジュール生成部44を順次起動する。これにより、制御指示受付実行部48によって順次起動されたモジュール生成部44により、必要とされる画像処理を行う画像処理部50が構築されることになる。
【0039】
また図1に示すように、処理管理部46は、画像処理部50における画像処理の実行を制御するワークフロー管理部46A、画像処理部50の各モジュールによるメモリ14や各種のファイル等のコンピュータ10のリソースの使用を管理するリソース管理部46B、及び、画像処理部50で発生したエラーを管理するエラー管理部46Cを含んで構成されている。エラー管理部46Cは、画像処理部50が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群34がインストールされたコンピュータ10が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部20等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。
【0040】
次に本第1実施形態の作用を説明する。画像処理プログラム群34が実装されている機器において、何らかの画像処理を実行する必要がある状況になると、実行すべき画像処理が実行対象として記述された制御指示情報32が入力又は選択されると共に、画像処理実行対象の画像データが入力又は指定され、これに伴い制御指示受付実行部48が起動される。
【0041】
なお、画像処理を行う必要のある状況としては、例えば画像データ供給部22としての画像読取部によって画像を読み取り、画像出力部24としての画像記録部により記録材料に画像として記録するか、画像出力部24としての表示部に画像として表示させるか、画像出力部24としての書込装置により画像データを記録メディアに書き込むか、画像出力部24としての送信部により画像データを送信するか、画像出力部24としての画像記憶部に記憶させる処理の実行が利用者によって指示された場合、或いは、画像データ供給部22としての受信部によって受信されるか、画像データ供給部22としての画像記憶部に記憶されている画像データに対して、上記の記録材料への記録、表示部への表示、記録メディアへの書き込み、送信、画像記憶部への記憶の何れかを行う処理の実行が利用者によって指示された場合が挙げられる。また、画像処理を実行する必要のある状況は上記に限られるものではなく、例えば利用者からの指示に応じて制御指示受付実行部48が実行できる処理の名称等を表示部16に一覧表示している状態で、実行対象の処理が利用者によって選択された等の場合であってもよい。
【0042】
また、制御指示情報32の入力又は選択、及び、画像処理実行対象の画像データ(入力画像データ)の入力又は指定は、例えば利用者の指示に応じて起動されたアプリケーション・プログラムによって行われる。入力画像データとしては、例えば画像データ供給部22としての画像読取部によって画像が読み取られることで得られた画像データ、画像データ供給部22としての受信部によって受信された画像データ、画像データ供給部22としての画像記憶部に記憶されている画像データの何れかが入力又は指定される。また、制御指示情報32についても、記憶部20に予め記憶されている制御指示情報32のうちの何れかが選択されるか、又は、画像データ供給部22としての受信部によって入力画像データと共に受信された制御指示情報32が入力される。
【0043】
制御指示受付実行部48は、制御指示情報32が入力(又は選択)されると共に、入力画像データが入力(又は指定)されて起動されると、図4に示す制御指示受付実行処理を行う。この制御指示受付実行処理では、まずステップ100において、画像処理実行対象として入力又は指定された入力画像データからハッシュ関数を用いてハッシュ値を演算する。なお、上記の入力画像データは請求項1等に記載の原データの一例であり、入力画像データから演算したハッシュ値は請求項3に記載の原データ識別情報の一例である。
【0044】
本実施形態に係る処理結果DB28は、入力された制御指示情報32に従って過去に構築された画像処理部50によって画像処理が行われることで得られた画像データ(出力画像データ)が、入力画像データのハッシュ値、入力された制御指示情報32、及び、後述するモジュール接続情報のハッシュ値と対応付けて登録されるデータベースであり、ステップ102では、入力された制御指示情報32及びステップ100で演算した入力画像データのハッシュ値をキーとして各々用いて処理結果DB28を検索し、次のステップ104では、上記の制御指示情報32及び入力画像データのハッシュ値と各々対応付けられた出力画像データが処理結果DB28に登録されているか否か判定する。なお、ステップ102,104は請求項2,5に記載の判定手段による処理の一例である。
【0045】
ステップ104の判定は、今回入力された制御指示情報32と入力画像データの組み合わせで過去に画像処理が行われたか否かを判定しており、この判定が否定された場合はステップ106へ移行し、まずワークフロー管理部46Aのプログラムを実行するスレッドを起動した後に、今回入力された制御指示情報32で指定されたモジュール生成部44を、制御指示情報32で指定された起動順序で順に起動することで、今回入力された制御指示情報32に実行対象として記述された画像処理を実現する画像処理部50を処理構築部42によって構築させる。
【0046】
以下、画像処理部50の構築について説明する。制御指示受付実行部48は、まず画像データ供給部22として、入力画像データが格納されているバッファ領域(メモリ14の一部領域)を含むバッファモジュール40を生成する。バッファモジュール40の新規生成では、バッファモジュール40のバッファ制御部40Bのプログラムを実行するスレッド(プロセス又はオブジェクトでもよい:以下同様)を生成することでバッファ制御部40Bを生成し、生成されたバッファ制御部40Bによりバッファ40Aとして使用するメモリ領域が確保されることによって成されるが、ここでのバッファモジュール40の生成は、入力画像データが格納されているバッファ領域を既に確保されたバッファ40Aとして(バッファ制御部40Bに)認識させるパラメータを設定してバッファ制御部40Bを生成する処理を行うことによって成される。ここで生成されたバッファモジュール40は画像データ供給部22として機能する。
【0047】
続いて制御指示受付実行部48は、上記と同様に、画像処理を行った画像データの出力先としての画像出力部24の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合は、画像出力部24として指定されたバッファ領域を含むバッファモジュール40を上記と同様にして生成する。ここで生成されたバッファモジュール40は画像出力部24として機能する。
【0048】
また、制御指示受付実行部48は、今回入力された制御指示情報32で起動順序が1番目に指定されているモジュール生成部44を起動(モジュール生成部44のプログラムを実行するスレッドを生成)した後に、起動したモジュール生成部44に対し、当該モジュール生成部44によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知し、対応するモジュール群の生成を指示する処理を繰り返す。
【0049】
なお、上記の入力モジュールは、起動順序が1番目のモジュール生成部44によって生成されるモジュール群については画像データ供給部22が入力モジュールとなり、起動順序が2番目以降のモジュール生成部44によって生成されるモジュール群については前段のモジュール群の最終モジュール(通常はバッファモジュール40)が入力モジュールとなる。また、上記の出力モジュールについては、起動順序が最後のモジュール生成部44によって生成されるモジュール群では画像出力部24が出力モジュールとなるので、画像出力部24が出力モジュールとして指定されるが、その他のモジュール群では出力モジュールは未確定のために制御指示受付実行部48による指定は行われず、必要な場合はモジュール生成部44によって生成・設定される。
【0050】
一方、制御指示受付実行部48によって起動された個々のモジュール生成部44は、まず生成すべき画像処理モジュール38に入力される入力画像データの属性を表す入力画像属性情報を取得する。なお、入力画像属性情報の取得は、生成する画像処理モジュール38の前段にバッファモジュール40が存在している場合、当該バッファモジュール40に画像データの書き込みを行う更に前段の画像処理モジュール38から出力画像データの属性を取得することによって実現できる。
【0051】
次に、生成する画像処理モジュール38の後段にバッファモジュール40が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール(画像出力部24)である場合(例えば図2(A)〜(C)に示す画像処理部50における最後段の画像処理モジュール38を参照)や、例として図2(B)に示す画像処理部50においてスキュー角検知処理を行う画像処理モジュール38のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール38へ出力するモジュールである場合は否定されるが、上記以外の場合は判定が肯定され、バッファ制御部40Bを起動する(バッファ制御部40Bのプログラムを実行するスレッドを生成する)ことで、画像処理モジュールの後段に連結するバッファモジュール40を生成する。
【0052】
次に、前段のモジュール(例えばバッファモジュール40)の情報と後段のバッファモジュール40の情報、画像処理モジュール38に入力される入力画像データの属性、処理パラメータを与えて、画像処理モジュール38を生成する。なお、後段のバッファモジュール40が不要と判断された画像処理モジュール38に対しては後段のバッファモジュール40の情報は与えられず、また例えば50%縮小処理のように処理内容が固定的で特別な画像処理パラメータが必要ない場合には処理パラメータは与えられない。
【0053】
画像処理モジュールの生成では、モジュールライブラリ36に登録されており、画像処理モジュール38として利用可能な複数の候補モジュールの中から、入力画像データの属性、及び、画像処理モジュール38で実行すべき処理パラメータに合致する画像処理モジュール38が選択される。例えばモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてCMY色空間が制御指示受付実行部48から指定され、更に入力画像データがRGB色空間のデータであった場合には、モジュールライブラリ36に登録されている各種の色空間処理を行う複数種の画像処理モジュール38の中から、RGB→CMYの色空間変換を行う画像処理モジュール38が選択される。
【0054】
また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール38であり、指定された拡大縮小率が50%以外であれば、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38が選択され、指定された拡大縮小率が50%であれば、拡大縮小率50%に特化した拡大縮小処理、すなわち入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38が選択される。なお、画像処理モジュール38の選択は上記に限られるものではなく、例えば画像処理エンジン38Aによる画像処理における単位処理データ量が異なる画像処理モジュール38をモジュールライブラリ36に複数登録しておき、画像処理部50へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール38を選択する(例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール38を選択する等)ようにしてもよい。また、例えばモジュール生成処理に対応するモジュール生成部44が、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理を行う画像処理モジュール38と画像回転処理を行う画像処理モジュール38によって実現されるスキュー補正処理)を行うモジュール群を生成する場合には、2個以上の画像処理モジュール38を含むモジュール群が生成される。
【0055】
そしてモジュール生成部44は、後段のバッファモジュール40のIDと生成した画像処理モジュール38のIDの組をワークフロー管理部46Aに通知する。このIDは、個々のモジュールを一意に判別できる情報であればよく、例えば個々のモジュールの生成順に付与した番号や、バッファモジュール40や画像処理モジュール38のオブジェクトのメモリ上でのアドレス等でも良い。ワークフロー管理部46Aに通知された情報は、ワークフロー管理部46Aの内部で管理している管理テーブルに登録され、後の処理で使われる。なお、各モジュールのIDはテーブル形式に代えてリスト形式や連想配列形式等で保持するようにしてもよい。
【0056】
制御指示受付実行部48によって順次起動されたモジュール生成部44により、上述した処理が順次行われることで、例として図2(A)〜(C)に示すように、実行対象の画像処理を行う画像処理部50が構築される。
【0057】
以上の処理によって画像処理部50の構築が完了すると、次のステップ108では、処理構築部42(のうち起動したモジュール生成部44)によって生成された画像処理部50の構成(画像処理部50を構成する画像処理モジュール38の数や種類、バッファモジュール40を含む各モジュールの接続関係等)を表すモジュール接続情報を生成する。なお、上記のモジュール接続情報は請求項1等に記載の処理規定情報の一例(詳しくは、請求項6に記載の「処理モジュールの接続関係を表す情報」の一例)であり、ステップ106,108は本発明における生成手段(より詳しくは請求項6に記載の生成手段)による処理の一例である。
【0058】
ステップ110では、ステップ108で生成したモジュール接続情報からハッシュ関数を用いてハッシュ値を演算する。なお、モジュール接続情報から演算したハッシュ値は請求項4に記載の処理規定情報識別情報の一例である。ステップ112では、ステップ110で演算したモジュール接続情報のハッシュ値及びステップ100で演算した入力画像データのハッシュ値をキーとして各々用いて処理結果DB28を検索し、次のステップ114では、上記のモジュール接続情報のハッシュ値及び入力画像データのハッシュ値と各々対応付けられた出力画像データが処理結果DB28に登録されているか否か判定する。なお、ステップ112,114は請求項1に記載の判定手段による処理の一例である。
【0059】
ステップ114の判定は、今回生成されたモジュール接続情報が表す画像処理部50の構成と同一の構成の画像処理部50により、今回入力された入力画像データに対して過去に画像処理が行われたか否かを判定しており、この判定が否定された場合はステップ116へ移行し、制御指示受付実行部48は、画像処理部50による入力画像データに対する画像処理の実行をワークフロー管理部46Aに指示する。
【0060】
これにより、処理管理部46のワークフロー管理部46Aは、処理構築部42によって生成された、画像処理部50のプログラムを実行する複数のスレッドをCPU12によって並列に実行させると共に、画像処理部50の最後段に位置している画像処理モジュール38に処理要求を入力する。また、任意のバッファモジュール40からデータ要求が入力される毎に、要求元のバッファモジュール40の前段の画像処理モジュール38に処理要求を入力し、任意の画像処理モジュールから処理完了通知が入力される毎に、通知元の画像処理モジュールに処理要求を入力することを、最後段の画像処理モジュールから全体処理の終了(1面分の画像データに対する画像処理の終了)が通知される迄繰り返す。
【0061】
図3(A)に示すように、画像処理部50の個々の画像処理モジュール38は、ワークフロー管理部46Aから処理要求が入力される(図3(A)の(1)参照)度に、前段のバッファモジュール40に対して画像データを要求し(図3(A)の(2)参照)、前段のバッファモジュール40から単位データ量の画像データを読み出し(図3(A)の(3)参照)、後段のバッファモジュール40から画像データの書込領域を取得し(図3(A)の(4)参照)、前段のバッファモジュール40から読み出した画像データに対して画像処理エンジン38Aで画像処理を行い(図3(A)の(5)参照)、画像処理後の画像データを後段のバッファモジュール40へ出力し(図3(A)の(6)参照)、ワークフロー管理部46Aへ処理完了を通知する(図3(A)の(7)参照)、という一連の処理を繰り返す。
【0062】
また、図3(B)に示すように、画像処理部50の個々のバッファモジュール40は、後段の画像処理モジュール38から画像データが要求される(図3(B)の(1)参照)度に、要求された画像データが自モジュールのバッファ40Aに記憶されているか否かをチェックし(図3(B)の(2)参照)、記憶されていなければワークフロー管理部46Aに対して画像データを要求し(図3(B)の(3)参照)、ワークフロー管理部46Aから前段の画像処理モジュール38に処理要求が入力される(図3(B)の(4)参照)ことで、前段の画像処理モジュール38からバッファ40Aに画像データが書き込まれる(図3(B)の(5),(6)参照)と、書き込まれた画像データを後段の画像処理モジュール38によって読み出させる(図3(B)の(7)参照)、という一連の処理を繰り返す。
【0063】
これにより、例として図5の(1)〜(19)に示すように、ワークフロー管理部46A及び画像処理部50の各モジュール間で画像データ、処理要求、データ要求及び処理完了通知が送受されることで、個々の画像処理モジュール38における画像処理が並列に行われる。そして、画像データ供給部22のバッファに格納されている入力画像データに対し、制御指示情報32に実行対象として記述された画像処理が画像処理部50によって行われ、画像出力部24のバッファに処理結果(出力画像データ)が格納される。なお、ステップ116は本発明における処理手段による処理の一例である。
【0064】
次のステップ118では、ステップ116で得られた出力画像データを、今回入力された制御指示情報32、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と対応付けて処理結果DB28に登録する。そしてステップ120では、ステップ116で取得した出力画像データを今回入力された制御指示情報32の記述に従って出力し(例えば記録材料への画像の記録、表示部への画像の表示、記録メディアへの画像データの書き込み、画像データの送信、画像記憶部への画像データの記憶の何れか)、制御指示受付実行処理を終了する。
【0065】
一方、今回入力された制御指示情報32と入力画像データの組み合わせで過去に画像処理が行われていた場合には、制御指示受付実行処理(図4)のステップ102における処理結果DB28の検索において、入力された制御指示情報32及び入力画像データのハッシュ値と各々対応付けられた出力画像データが抽出されることで、ステップ104の判定が肯定される。また、ステップ104の判定が否定された場合にも、今回生成されたモジュール接続情報が表す画像処理部50の構成と同一の構成の画像処理部50により、今回入力された入力画像データに対して過去に画像処理が行われていた場合には、制御指示受付実行処理(図4)のステップ112における処理結果DB28の検索において、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と各々対応付けられた出力画像データが抽出されることで、ステップ114の判定が肯定される。
【0066】
なお、ステップ104の判定が否定されてステップ114の判定が肯定される場合としては、実行対象の画像処理が同一(実行対象の画像処理を実現するための画像処理部50の構成が同一)であるにも拘わらず、制御指示情報32上での記述が相違している場合等が挙げられる。本実施形態では、制御指示情報32がXML形式等で記述されるので、実行対象の画像処理が同一であっても制御指示情報32上での記述では或る程度のばらつきが許容され、実行対象の画像処理(を実現するための画像処理部50の構成)が同一であっても過去に入力された制御指示情報32と記述が異なる制御指示情報32が入力される可能性がある。これに対し、本実施形態に係る制御指示受付実行処理では、モジュール接続情報(のハッシュ値)を用いて処理結果DB28の再検索を行っているので、制御指示情報32上での記述が相違していたとしても、実行対象の画像処理(を実現するための画像処理部50の構成)が同一の制御指示情報32が入力された場合には、入力画像データも同一であれば、処理結果DB28に格納された出力画像データを利用できることが検知される。
【0067】
ステップ104又はステップ114の判定が肯定された場合にはステップ124へ移行し、ステップ102又はステップ112の検索で抽出された出力画像データを処理結果DB28から読み出す。そしてステップ126では、処理結果DB28から読み出した出力画像データを制御指示情報32に従って出力し、制御指示受付実行処理を終了する。この場合、画像処理部50による画像処理が行われないので、入力された制御指示情報32及び入力画像データに対応する出力画像データが早期に出力され、コンピュータ10に加わる負荷も低減される。なお、ステップ124,126は本発明における出力手段による処理の一例である。
【0068】
〔第2実施形態〕
次に本発明の第2実施形態について説明する。図aには、本第2実施形態に係るコンピュータ・システム200が示されている。コンピュータ・システム200は、ネットワーク202にウェブサーバ204及び複数台のクライアント端末206が各々接続されて構成されている。なお、ネットワーク202はインターネットでもよいしイントラネット等でもよい。
【0069】
ウェブサーバ204は、CPU204A、ROM及びRAMを含むメモリ204B、HDDやフラッシュメモリ等の不揮発性の記憶部204C、ネットワークI/F部204Dを備えており、ネットワークI/F部204Dを介してネットワーク202に接続されている。記憶部204Cには、ウェブサーバ204で後述するウェブページ配信処理を行うためのウェブページ配信プログラムがインストールされており、ウェブページ構成情報DB208、元データDB210及び配信済ページDB212も記憶されている(詳細は何れも後述)。
【0070】
また、クライアント端末206は、デスクトップ型のPCやノートブック型のPC、PDA、携帯電話機等の何れでもよい。これらのクライアント端末206は、ディスプレイのサイズや解像度(画素数)、階調数(表示データの1画素当りのビット数)等のディスプレイの表示環境が互いに相違しているが、ネットワーク202に接続されている複数台のクライアント端末206の中には、ディスプレイの表示環境の異なるクライアント端末206が混在している。
【0071】
次に本第2実施形態の作用を説明する。本第2実施形態に係るコンピュータ・システム200において、ウェブサーバ204はクライアント端末206の要求に応じてウェブページのデータを要求元のクライアント端末206へ配信する。クライアント端末206からウェブサーバ204へのウェブページ配信要求は、配信対象のウェブページのURL(Uniform Resource Locator)やクライアント端末206のディスプレイの表示環境を表す表示環境情報等の情報がXML形式やその他の形式で記述された制御指示情報がクライアント端末206からウェブサーバ204へ送信されることによって成される。
【0072】
ウェブサーバ204の記憶部204Cに記憶されている元データDB210には、ウェブサーバ204が配信する個々のウェブページの生成に用いる複数の元データ(例えば文書データや画像データ、表データ等)が各々記憶されている。また、ウェブサーバ204の記憶部204Cに記憶されているウェブページ構成情報DB208には、ウェブサーバ204が配信する個々のウェブページ毎に、ウェブページのレイアウトを指定したりウェブページの各領域に貼り付ける元データを指定する情報から成るウェブページ構成情報が、個々のウェブページのURLと対応付けて各々登録されている。
【0073】
更に、ウェブサーバ204の記憶部204Cに記憶されている配信済ページDB212には、ウェブサーバ204が過去に何れかのクライアント端末206へ配信したウェブページのデータが、クライアント端末206から受信した制御指示情報、配信したウェブページのデータの生成に用いた元データのハッシュ値、及び、配信したウェブページのデータの生成に用いたページ生成用処理コード(詳細は後述)のハッシュ値と各々対応付けて登録されている。
【0074】
以下、ウェブサーバ204がコンピュータ・システム200の何れかのクライアント端末206から制御指示情報を受信する度に、CPU204Aによってウェブページ配信プログラムが実行されることで実現されるウェブページ配信処理について、図7を参照して説明する。
【0075】
ウェブページ配信処理では、まずステップ220において、クライアント端末206から受信した制御指示情報から、配信対象のウェブページのURL及び表示環境情報を各々抽出する。次のステップ222では、ステップ220で制御指示情報から抽出したURLをキーにしてウェブページ構成情報DB208を検索し、当該検索によって抽出されたウェブページ構成情報(配信対象のウェブページに対応するウェブページ構成情報)をウェブページ構成情報DB208から読み出し、読み出したウェブページ構成情報に基づいて、元データDB210に記憶されている元データのうち、配信対象のウェブページの生成に用いる元データを認識する。
【0076】
ステップ224では、ステップ220で認識した元データ(配信対象のウェブページの生成に用いる元データ)を元データDB210から読み出し、読み出した元データのハッシュ値を演算する。なお、配信対象のウェブページの生成に用いる元データが複数存在している場合には、例えばウェブページのより先頭に近い位置に貼り付けされる元データをハッシュ値の演算対象として選択する等のように、予め設定された選択ルールに従ってハッシュ値演算対象の元データを選択する。ステップ226では、ウェブページ要求元のクライアント端末206から受信した制御指示情報及びステップ224で演算した元データのハッシュ値をキーとして各々用いて配信済ページDB212を検索し、次のステップ228では、上記の制御指示情報及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが配信済ページDB212に登録されているか否か判定する。なお、ステップ226,228は請求項2,5に記載の判定手段による処理の一例である。
【0077】
ステップ228の判定は、今回入力された制御指示情報と今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていたか否かを判定しており、この判定が否定された場合はステップ230へ移行し、先のステップ222でウェブページ構成情報DB208から読み出した配信対象のウェブページに対応するウェブページ構成情報、先のステップ222で配信対象のウェブページの生成に用いる元データを認識した結果、及び、先のステップ220で制御指示情報から抽出した表示環境情報に基づき、配信対象のウェブページを生成するための処理コード(ページ生成用処理コード)を生成する。
【0078】
このページ生成用処理コードの生成では、例えばウェブページ構成情報に従い、背景画像を生成したり元データを貼り付る等の処理を組み合わせて配信用のウェブページを生成する処理をCPU204Aに行わせるための処理コードが生成されるが、表示環境情報が表すウェブページ要求元のクライアント端末206のディスプレイの表示環境に応じて、ページサイズの設定や元データの変換 (例えば文字サイズを変更したり画像の解像度や階調数を変換する)等の処理も付加される。なお、ステップ230は本発明における生成手段(詳しくは請求項8に記載の生成手段)による処理の一例である。
【0079】
次のステップ232では、ステップ230で生成したページ生成用処理コードのハッシュ値を演算する。また、ステップ234では、ステップ232で演算したページ生成用処理コードのハッシュ値及び先のステップ224で演算した元データのハッシュ値をキーとして各々用いて配信済ページDB212を検索し、次のステップ236では、上記のページ生成用処理コードのハッシュ値及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが配信済ページDB212に登録されているか否か判定する。なお、ステップ234,236は請求項1に記載の判定手段による処理の一例である。
【0080】
ステップ236の判定は、今回生成したページ生成用処理コードと今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていたか否かを判定しており、この判定が否定された場合はステップ238へ移行し、先のステップ230で生成したページ生成用処理コードをCPU204Aで実行することで、配信用ウェブページのデータを生成する。なお、ステップ238は本発明における処理手段による処理の一例である。
【0081】
またステップ240では、ステップ238で生成した配信用ウェブページのデータを、クライアント端末206から今回受信した制御指示情報、先のステップ232で演算したページ生成用処理コードのハッシュ値、及び、先のステップ224で演算した元データのハッシュ値と対応付けて配信済ページDB212に登録する。そしてステップ242では、ステップ238で生成した配信用ウェブページのデータを、ウェブページ要求元のクライアント端末206へ送信(配信)し、ウェブページ配信処理を終了する。
【0082】
一方、今回入力された制御指示情報と今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていた場合には、ステップ226における配信済ページDB212の検索において、今回入力された制御指示情報及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが抽出されることで、ステップ228の判定が肯定される。また、ステップ228の判定が否定された場合にも、今回生成したページ生成用処理コードと今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末206へ配信されていた場合には、ステップ234における配信済ページDB212の検索において、今回生成したページ生成用処理コードのハッシュ値及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが抽出されることで、ステップ236の判定が肯定される。
【0083】
なお、ステップ228の判定が否定されてステップ236の判定が肯定される場合としては、ディスプレイの表示環境が若干相違しているクライアント端末206から、同一のウェブページの配信が要求された場合等が挙げられる。本実施形態では、ディスプレイの表示環境を表す表示環境情報が制御指示情報に含まれているため、ディスプレイの表示環境が若干相違しているクライアント端末206から送信される制御指示情報は、同一のウェブページの配信を要求する情報であっても情報の一部が相違することになるが、ディスプレイの表示環境の相違が少しであれば、クライアント端末206へ配信するウェブページのデータ(及びウェブページのデータを生成するためのページ生成用処理コード)は同一でよい場合がある。
【0084】
これに対し、本実施形態に係るウェブページ配信処理では、ページ生成用処理コード(のハッシュ値)を用いて配信済ページDB212の再検索を行っているので、制御指示情報に含まれる表示環境情報が若干相違していたとしても、過去にウェブページのデータを配信したクライアント端末206と同一のデータを配信可能なクライアント端末206からの同一のウェブページの配信要求を受信した場合には、配信済ページDB212に格納された配信済ウェブページのデータを利用可能であることが検知される。
【0085】
ステップ228又はステップ236の判定が肯定された場合にはステップ244へ移行し、ステップ226又はステップ234の検索で抽出された配信済ウェブページのデータを配信済ページDB212から読み出す。そしてステップ246では、配信済ページDB212から読み出した配信用ウェブページのデータを、ウェブページ要求元のクライアント端末206へ送信(配信)し、ウェブページ配信処理を終了する。この場合、配信用ウェブページのデータを生成する処理は行われないので、受信した制御指示情報で配信が要求されたウェブページのデータが早期に送信され、ウェブサーバ204に加わる負荷も低減される。上記のステップ244,246は本発明における出力手段による処理の一例である。
【0086】
なお、第1実施形態では、出力画像データが、入力画像データのハッシュ値、入力された制御指示情報32、及び、モジュール接続情報のハッシュ値と対応付けて処理結果DB28に登録される態様を説明したが、これに限られるものではなく、入力画像データのハッシュ値に代えて入力画像データそのものを処理結果DB28に記憶させるようにしてもよいし、モジュール接続情報のハッシュ値に代えてモジュール接続情報そのものを処理結果DB28に記憶させるようにしてもよい。また、モジュール接続情報に代えて、画像処理部50として機能するプログラム実行コード、又はそのハッシュ値を処理結果DB28に記憶させて検索に用いるようにしてもよい。また、第1実施形態で説明した制御指示受付実行処理(図4)のステップ102,104は省略することも可能であり、その場合は処理結果DB28への制御指示情報32の記憶も省略可能である。
【0087】
また、第2実施形態では、配信済ウェブページのデータが、制御指示情報、ウェブページのデータの生成に用いた元データのハッシュ値、ページ生成用処理コードのハッシュ値と対応付けて配信済ページDB212に登録される態様を説明したが、これに限られるものではなく、元データのハッシュ値に代えて元データそのものを配信済ページDB212に記憶させるようにしてもよいし、ページ生成用処理コードのハッシュ値に代えてページ生成用処理コードそのものを配信済ページDB212に記憶させるようにしてもよい。また、第2実施形態で説明したウェブページ配信処理(図7)のステップ226,228は省略することも可能であり、その場合は配信済ページDB212への制御指示情報の記憶も省略可能である。
【0088】
また、第2実施形態では、配信用ウェブページのデータの生成に際し、ウェブページ要求元のクライアント端末206におけるディスプレイの表示環境に応じて元データを変換する態様を説明したが、これに限られるものではなく、同一のオブジェクト(文書や画像、表等)を表す元データを複数種の表示環境毎に予め用意して元データDB210に記憶しておき、配信用ウェブページのデータの生成に際しては、ウェブページ要求元のクライアント端末206におけるディスプレイの表示環境に応じた元データを選択する処理を行うようにしてもよい。この態様は請求項9記載の発明の一例である。
【0089】
また、第1実施形態では、本発明に係る情報処理装置として機能するコンピュータ10の記憶部20が本発明における第1記憶手段として機能し、第2実施形態では、本発明に係る情報処理装置として機能するウェブサーバ204の記憶部204Cが本発明における第1記憶手段として機能する態様を説明したが、これに限られるものではなく、本発明に係る情報処理装置とネットワーク等の通信回線を介して接続された別の情報処理装置(例えばDBサーバ)によってアクセスされる記憶手段を、本発明における第1記憶手段として機能させる(例えば第1実施形態で説明した処理結果DB28や第2実施形態で説明した配信済ページDB212を記憶させる)ようにしてもよい。
【0090】
更に、第1実施形態ではコンピュータ10を本発明に係る情報処理装置及び本発明における処理手段として機能させる態様を説明し、第2実施形態ではウェブサーバ204を本発明に係る情報処理装置及び本発明における処理手段として機能させる態様を説明したが、これに限られるものではなく、例えばデータセンタ等に設置されクラウドコンピューティング技術が適用されたサーバ群によって実現・提供される仮想マシンを、本発明に係る情報処理装置及び本発明における処理手段の少なくとも一方として機能させることも可能である。
【0091】
また、指示情報に実行対象として記述された原データから出力データを得る処理の一例として、第1実施形態では入力画像データから出力画像データを得る画像処理を、第2実施形態では元データを用いて配信用ウェブページのデータを生成する処理を説明したが、これに限られるものではなく、実行対象の処理としては、原データから出力データを得る任意の処理を適用可能である。
【0092】
また、第1実施形態では、本発明に係る情報処理プログラムの一例である制御指示受付実行部48のプログラムがコンピュータ10の記憶部20に予め記憶(インストール)されており、第2実施形態では、本発明に係る情報処理プログラムの一例であるウェブページ配信プログラムがウェブサーバ204の記憶部204Cに予め記憶(インストール)されている態様を説明したが、本発明に係る情報処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。
【符号の説明】
【0093】
10 コンピュータ
20 記憶部
28 処理結果DB
32 制御指示情報
38 画像処理モジュール
40 バッファモジュール
48 制御指示受付実行部
50 画像処理部
200 コンピュータ・システム
204 ウェブサーバ
204C 記憶部
206 クライアント端末
212 配信済ページDB
【特許請求の範囲】
【請求項1】
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、
前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、
を含む情報処理装置。
【請求項2】
前記第1記憶手段には、過去に得られた前記出力データが、原データとして用いられたデータ、前記処理規定情報及び入力された前記指示情報と対応付けて記憶されており、
前記判定手段は、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていないと判定した場合に、前記今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、
前記出力手段は、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合にも、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する請求項1記載の情報処理装置。
【請求項3】
前記第1記憶手段には、前記原データとして用いられたデータとして、当該データから一意に求まる原データ識別情報が記憶されており、
前記判定手段は、前記今回の処理で原データとして用いられるデータから前記原データ識別情報を求め、求めた前記原データ識別情報を用いて前記判定を行う請求項1又は請求項2記載の情報処理装置。
【請求項4】
前記第1記憶手段には、前記処理規定情報として、前記処理規定情報から一意に求まる処理規定情報識別情報が記憶されており、
前記判定手段は、今回生成された前記処理規定情報から前記処理規定情報識別情報を求め、求めた前記処理規定情報識別情報を用いて前記判定を行う請求項1〜請求項3の何れか1項記載の情報処理装置。
【請求項5】
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、
前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、
を含む情報処理装置。
【請求項6】
前記生成手段は、前記指示情報に基づき、前記指示情報に記述された実行対象の処理を実現する処理部として、互いに異なる処理を行う複数種の処理モジュールの中から選択した1つ以上の処理モジュールをパイプライン形態又は有向非循環グラフ形態で連結した前記処理部が構築手段によって構築されると、構築された前記処理部における前記処理モジュールの接続関係を表す情報を前記処理規定情報として生成し、
前記処理手段は、構築された前記処理部により、前記指示情報に記述された実行対象の前記処理を行う請求項1〜請求項5の何れか1項記載の情報処理装置。
【請求項7】
前記今回の処理で原データとして用いられるデータは、前記処理要求元から入力されるか、又は、第2記憶手段に記憶された複数のデータの中から前記処理要求元によって指定される請求項1〜請求項6の何れか1項記載の情報処理装置。
【請求項8】
前記指示情報には、処理要求元の環境を表す環境情報も記述されており、
前記生成手段は、生成する前記処理規定情報で規定する前記処理の詳細を、前記指示情報に記述された前記環境情報が表す処理要求元の環境に応じて相違させる請求項1〜請求項5の何れか1項記載の情報処理装置。
【請求項9】
原データとして使用される複数のデータを記憶する第2記憶手段を備え、
前記生成手段は、前記第2記憶手段に記憶されている複数のデータのうち、前記今回の処理で原データとして用いるデータを、前記環境情報が表す処理要求元の環境に応じて選択する請求項8記載の情報処理装置。
【請求項10】
コンピュータを、
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、
及び、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段
として機能させるための情報処理プログラム。
【請求項11】
コンピュータを、
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、
及び、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段
として機能させるための情報処理プログラム。
【請求項1】
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、
前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、
を含む情報処理装置。
【請求項2】
前記第1記憶手段には、過去に得られた前記出力データが、原データとして用いられたデータ、前記処理規定情報及び入力された前記指示情報と対応付けて記憶されており、
前記判定手段は、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていないと判定した場合に、前記今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されているか否かを判定し、
前記出力手段は、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合にも、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する請求項1記載の情報処理装置。
【請求項3】
前記第1記憶手段には、前記原データとして用いられたデータとして、当該データから一意に求まる原データ識別情報が記憶されており、
前記判定手段は、前記今回の処理で原データとして用いられるデータから前記原データ識別情報を求め、求めた前記原データ識別情報を用いて前記判定を行う請求項1又は請求項2記載の情報処理装置。
【請求項4】
前記第1記憶手段には、前記処理規定情報として、前記処理規定情報から一意に求まる処理規定情報識別情報が記憶されており、
前記判定手段は、今回生成された前記処理規定情報から前記処理規定情報識別情報を求め、求めた前記処理規定情報識別情報を用いて前記判定を行う請求項1〜請求項3の何れか1項記載の情報処理装置。
【請求項5】
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、
前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段と、
を含む情報処理装置。
【請求項6】
前記生成手段は、前記指示情報に基づき、前記指示情報に記述された実行対象の処理を実現する処理部として、互いに異なる処理を行う複数種の処理モジュールの中から選択した1つ以上の処理モジュールをパイプライン形態又は有向非循環グラフ形態で連結した前記処理部が構築手段によって構築されると、構築された前記処理部における前記処理モジュールの接続関係を表す情報を前記処理規定情報として生成し、
前記処理手段は、構築された前記処理部により、前記指示情報に記述された実行対象の前記処理を行う請求項1〜請求項5の何れか1項記載の情報処理装置。
【請求項7】
前記今回の処理で原データとして用いられるデータは、前記処理要求元から入力されるか、又は、第2記憶手段に記憶された複数のデータの中から前記処理要求元によって指定される請求項1〜請求項6の何れか1項記載の情報処理装置。
【請求項8】
前記指示情報には、処理要求元の環境を表す環境情報も記述されており、
前記生成手段は、生成する前記処理規定情報で規定する前記処理の詳細を、前記指示情報に記述された前記環境情報が表す処理要求元の環境に応じて相違させる請求項1〜請求項5の何れか1項記載の情報処理装置。
【請求項9】
原データとして使用される複数のデータを記憶する第2記憶手段を備え、
前記生成手段は、前記第2記憶手段に記憶されている複数のデータのうち、前記今回の処理で原データとして用いるデータを、前記環境情報が表す処理要求元の環境に応じて選択する請求項8記載の情報処理装置。
【請求項10】
コンピュータを、
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第1記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、
及び、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段
として機能させるための情報処理プログラム。
【請求項11】
コンピュータを、
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第1記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、
及び、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第1記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第1記憶手段に記憶されている前記出力データを出力する出力手段
として機能させるための情報処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【公開番号】特開2012−118932(P2012−118932A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−270629(P2010−270629)
【出願日】平成22年12月3日(2010.12.3)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願日】平成22年12月3日(2010.12.3)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]