以下、本発明の好適な実施の形態(以下、「実施形態」と言う。)について、図面を用いて詳細に説明する。
[第1の実施形態]
<情報処理装置のハードウェア構成について>
まず、本実施形態に係る情報処理装置100のハードウェア構成について、図2を用いて説明する。
図2は、本発明の実施形態1に係る情報処理装置100のハードウェア構成の一例を示す図である。
図2に示すように、本実施形態に係る情報処理装置100は、制御部11、主記憶部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部装置I/F16、出力装置I/F17、及び入力装置I/F18とから構成されている。
制御部(CPU:Central Processing Unit)11は、以下に説明する主記憶部12、補助記憶部13、及びネットワークI/F14など、本実施形態に係る情報処理装置100が有する各装置の制御を行う。また、制御部11は、主記憶部12や補助記憶部13などに記憶されたプログラムを実行する装置で、入力装置や記憶装置からデータを受け取り、データを演算・加工した上で、出力装置や記憶装置に出力する(例えば、キーボードで入力した文字をディスプレイに表示するなど)。
主記憶部(ROM:Read Only Memory、RAM:Random Access Memory)12は、制御部11が実行するプログラムや関連するデータを記憶(一時的に保持する場合も含む)する装置である。ROMには、制御部11が実行するプログラムや関連するデータが記憶されており、記憶されたプログラムや関連するデータは、制御部11により、必要に応じてRAM上へ展開(ロード)され、展開(ロード)されたプログラムや関連するデータは、制御部11により、演算・加工される。
補助記憶部(HD:Hard Disk)13は、基本ソフトウェアであるOS(Operating System)や本実施形態に係る情報処理プログラムを含むアプリケーションプログラムや機能拡張用のプラグインなどを関連するデータとともに記憶する装置である。また、補助記憶部13には、本実施形態に係る情報処理装置100が管理する各種情報(例えば、プラグインの実行条件や実行順序を定義した定義情報など。)が格納され、DBやファイルシステム(FS:File System)などにより管理される。
ネットワークI/F14は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器(例えば、他の情報処理装置や画像形成装置など。)と本実施形態に係る情報処理装置100とのインタフェースである。
外部記憶装置I/F15は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された外部記憶装置(例えば、記憶メディアドライブなど。)と本実施形態に係る情報処理装置100とのインタフェースである。
外部装置I/F16は、USBなどのデータ伝送路を介して接続された外部入力装置(例えば、外付けHDやUSBメモリなど。)と本実施形態に係る情報処理装置100とのインタフェースである。
本実施形態に係る情報処理装置100は、これらのインタフェースを介して、外部と各種データのやり取り(送受信や読み込み/書き込み)を行う。
出力装置I/F17は、専用ケーブルなどのデータ伝送路を介して接続された出力装置(例えば、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)など。)と本実施形態に係る情報処理装置100とのインタフェースである。
入力装置I/F18は、USBなどのデータ伝送路を介して接続された入力装置(例えば、キーボードやマウスなど。)と本実施形態に係る情報処理装置100とのインタフェースである。
このように、本実施形態に係る情報処理装置100は、主記憶部12や補助記憶部13などの記憶装置に格納された本実施形態に係る情報処理プログラムを実行し、各装置を制御することで、以降に説明する「コンピュータで実行する処理を使用目的や用途などに応じて容易に変更可能なデスクトップアプリケーション」を実現している。
<情報処理装置のソフトウェア構成について>
次に、本実施形態に係る情報処理装置100のソフトウェア構成について、図3を用いて説明する。
図3は、本発明の第1の実施形態に係る情報処理装置100のソフトウェア構成の一例を示す図である。
図3に示すように、本実施形態に係る情報処理装置100に実装するデスクトップアプリケーション20に関するソフトウェアは、デスクトップアプリケーション20、機能プラグイン30、及びコアプログラム(コアモジュール群)31とから構成されている。
デスクトップアプリケーション20は、定義データ21、UIプラグイン(UIパーツ)22、及びアプリケーションプロセス23とから構成されている。
定義データ21は、デスクトップアプリケーション20によって行う処理を実現するために必要なプラグインの実行条件や実行順序などの動作に関する情報が所定の形式に従って定義されたデータであり、複数個のデータ(データ群)によって構成されている。
UIプラグイン(UIパーツ)22は、デスクトップアプリケーション20のUIを構成するプログラム(UIを構成する最小単位の機能(小機能))であり、複数個のプログラム(モジュール群)によって構成されている。
アプリケーションプロセス23は、OSから主記憶部12のRAM上に使用可能なメモリ領域の割り当てを受けて、処理を実行するプログラムである。アプリケーションプロセス23によって実行される処理は、例えば、UIプラグイン(UIパーツ)22を用いてCRTやLCDなどの出力装置にUIを表示するための描画処理や、表示されたUIから受け付けた動作に関する情報を基にした定義データ21の生成処理などである。
次に、機能プラグイン30は、デスクトップアプリケーション20の機能を実現するために所定の情報処理を行うプログラムであり、複数個のプログラム(モジュール群)によって構成されている。ここで言う「所定の情報処理」とは、例えば、「ファイル選択」、「色変換」、「印刷」、「メッセージ表示」などのような、デスクトップアプリケーション20の機能を構成する最小単位の機能(小機能)を実現する情報処理を意味する。
次に、コアプログラム31は、定義データ21に定義された動作条件や動作順序などの動作に関する情報に従って、機能プラグイン(小機能)30を実行するプログラムや、アプリケーションプログラムとプラグインとの間のデータインタフェース(以下、「データI/F」と言う。)プログラムと言った、アプリケーションプログラムとプラグインとの間で共通化されたプログラム(モジュール)であり、複数個のプログラム(モジュール群)によって構成されている。
上記のように構成された、本実施形態に係る情報処理装置100に実装するデスクトップアプリケーション20に関するソフトウェアは、以下のように動作する。以下に説明する動作は、ユーザが、「デスクトップアプリケーション20のメニュー項目を選択した」ときの一例である。
(1) UIがユーザからの動作指示を受け取る。
(2) アプリケーションプロセス23は、UIから受け取った動作指示を、データI/Fを介してコアプログラム31に渡す。
(3) コアプログラム31は、アプリケーションプロセス23から受け取った動作指示から、指示された動作に関する情報が定義された定義データ21を特定し(複数個ある定義データ21の中から、UI上のメニュー項目に対応付けられた定義データ21を特定する。)、特定した定義データを基に、定義された実行条件や実行順序などの動作に関する情報に従って機能プラグイン30を実行する。
このように、本実施形態に係るデスクトップアプリケーション20に関するソフトウェアは、ユーザの起動指示に従って、OSから割り当てられた主記憶部12のRAM上のメモリ領域に、上記に説明した各プログラムやデータを展開(ロード)し、展開(ロード)した各プログラムを制御部11により実行することで、デスクトップアプリケーション20においてユーザが行いたい処理を実現している。
<情報処理装置の主な機能を構成する手段について>
では、本実施形態に係る情報処理装置100が、図2のハードウェア構成及び図3のソフトウェア構成によって実現する主な機能を構成する各手段について、図4〜16を用いて説明する。
図4は、本発明の第1の実施形態に係る情報処理装置100の主な機能を構成する手段の一例を示すブロック図である。
本実施形態に係る情報処理装置100が有する機能は、情報処理手段41、定義データ生成手段42、定義データ格納手段43、メニュー項目表示手段44、及び情報処理実行手段45とから構成されている。
情報処理手段41は、デスクトップアプリケーション20の機能を実現するために所定の情報処理を行う。
情報処理手段41は、デスクトップアプリケーション20の機能を構成する最小単位の機能(小機能)を実現する、「ファイル選択」、「色変換」、「印刷」、「メッセージ表示」などの処理を行う。
情報処理手段41は、図3で説明した機能プラグイン30を制御部11で実行することにより行われる手段である。
図5は、本発明の第1の実施形態に係るインストールされた機能プラグイン30が格納されている例を示す図である。
図5に示すように、機能プラグイン(小機能)30は、デスクトップアプリケーション20を情報処理装置100にインストールしたときや必要に応じて追加インストールしたときに、インストーラーによって補助記憶部13などの不揮発性の記憶装置内の所定の領域に格納される。
インストーラーは、図中に示す"C:\Documents and Settings\user01\aaa\bbb\Plugins"のような格納先アドレス(フォルダパス)を基に、補助記憶部13などの不揮発性の記憶装置内の格納領域を指定し、機能プラグイン30を決められたフォルダ内に格納する。よって、上記「所定の領域」とは、格納先アドレスで指定された補助記憶部13などの不揮発性の記憶装置内の領域を意味する。
図5では、Explorer(登録商標)などのファイルやフォルダを管理するツールの閲覧ウィンドウ51を介して、機能プラグイン(小機能)30が格納されたフォルダ群(格納先)の一覧を閲覧した例を示している。
図4に戻り、情報処理手段41は、予め、補助記憶部13などの不揮発性の記憶装置に格納された機能プラグイン(小機能)30が、必要に応じて(ユーザの動作指定に応じて)主記憶部12のRAM上に展開(ロード)され制御部11で実行されることで、デスクトップアプリケーション20の機能を構成する最小単位の機能(小機能)を実現する、「ファイル選択」、「色変換」、「印刷」、「メッセージ表示」などの処理を行う。
また、情報処理手段41は、主に、情報処理装置100に入力された入力データに対して画像処理を行う処理(画像処理機能)、入力データ及び/又は画像処理後のデータの出力を行う処理(出力機能)、画像処理及び出力処理を行うときに、その実行状態や実行結果などの情報を、CRTやLCDなどの出力装置を介してユーザに通知する処理(情報通知機能)を行う。
図4では、その一例として、「ファイル選択」の処理を行う情報処理手段41a(ファイル選択プラグイン)、「色変換」を行う情報処理手段41b(色変換プラグイン)、「印刷」を行う情報処理手段41c(印刷プラグイン)、及び「メッセージ表示」を行う情報処理手段41d(メッセージ表示プラグイン)が示されている。
次に、定義データ生成手段42は、デスクトップアプリケーション20によって行う処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の実行条件や実行順序などの動作に関する情報が、所定の形式に従って定義された定義データ21を生成する。
まず、定義データ21について、図6を用いて説明する。
図6は、本発明の第1の実施形態に係る定義データ21のデータ構造に一例(XMLデータの場合)を示す図である。
ここで例に挙げるデータは、XML(Extensible Markup Language)と言われる言語によって記述した定義データ21である。
XMLは、タグと呼ばれる特定の文字列で、文書やデータの意味や構造を記述するマークアップ言語の1つで、ユーザが独自のタグを指定することができる。
このような言語特性から、本実施形態に係る定義データ21では、独自の「定義開始タグ」(例えば、"<Tag>"など。)と「定義終了タグ」(例えば、"</Tag>"など。)との間に、動作に関する情報(例えば、Proc_1など。)を記述することで定義する(例えば、"<Tag>Proc_1</Tag>"など)。よって、上記の「所定の形式」とは、開始タグと終了タグとの間に、動作に関する情報を配置する形式を意味する。
また、「定義開始タグ」と「定義終了タグ」とから、定義するデータ構造を階層化することができる。例えば、定義Aの「開始タグ」に対応する定義Aの「終了タグ」との間に、定義Bの「開始タグ」と「終了タグ」を埋め込み、更に、定義Bの「開始タグ」に対応する定義Bの「終了タグ」との間に、定義Cの「開始タグ」と「終了タグ」及び定義Dの「開始タグ」と「終了タグ」とを埋め埋め込んだ場合、定義Aの構成要素が定義Bとなり、定義Bの構成要素が定義C及びDとなる。このように、1対のタグの間に、別のタグを入れ子のように埋め込んでいくことで、定義するデータを階層化することができる。
定義データ21に定義する動作に関する情報には、主に、デスクトップアプリケーション20によって行う処理を1つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション20によって行う処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の「実行条件や実行順序に関する情報」と、情報処理手段41(機能プラグイン(小機能)30)の「処理対象に関する情報」の3つの情報がある。
<<機能に関する情報>>
(a)定義名(機能名)
複数個の情報処理手段41(機能プラグイン(小機能)30)によって行う処理を1つの機能として定義したときの定義名を示す情報(複数個の情報処理手段41(機能プラグイン(小機能)30)を実行することで実現される機能名を示す情報)。
(b)定義種類
定義した機能の種類(例えば、システムサイドの機能やユーザサイドの機能など。)を示す情報。
(c)メニュー名
定義した機能が、デスクトップアプリケーション20のメニュー項目の1つとして表示するときに該当するメニュー名を示す情報。
(d)メニュー項目領域
定義した機能が、デスクトップアプリケーション20のメニュー項目の1つとして表示するときに、該当するメニューのうち、表示するメニュー項目の領域を示す情報。
<<実行条件や実行順序に関する情報>>
(e)実行条件
情報処理手段41(機能プラグイン(小機能)30)で処理を行うときに、処理を制御するためのパラメータ。
(f)実行順序
複数個の情報処理手段41(機能プラグイン(小機能)30)を並べた順番(記述された順番(図6の処理1と処理2))。
<<処理対象に関する定義>>
(g)処理対象
情報処理手段41(機能プラグイン(小機能)30)の処理対象であるデータの名前や、そのデータを出力した情報処理手段41(機能プラグイン(小機能)30)の名前を示す情報。
これらの情報を、図6に示す定義データ21では、以下に挙げる独自のタグによって定義している。
<<複数個の情報処理手段41(機能プラグイン(小機能)30)によって行う処理を1つの機能として定義するタグ>>
<CookFlowRecipe>
定義の開始タグ。
</CookFlowRecipe>
定義の終了タグ。
<<機能に関する情報を定義するタグ>>
<RecipePropaty>
「機能に関する情報」の定義の開始タグ。
<RecipeName>AAA</RecipeName>
定義名(機能名)を示す情報「AAA」を定義する開始・終了タグ。
<RecipeType>BBB</RecipeType>
定義種類を示す情報「BBB」を定義する開始・終了タグ。
<MenuName>CCC</MenuName>
メニュー名を示す情報「CCC」を定義する開始・終了タグ。
<MenuZone>DDD</MenuZone>
メニュー項目領域を示す情報「DDD」を定義する開始・終了タグ。
</RecipePropaty>
「機能に関する情報」の定義の終了タグ。
<<実行条件や実行順序に関する情報を定義するタグ>>
<FlowPlugin name = "XXXX" >
処理「XXXX」における「実行条件及び実行順序に関する情報」の定義の開始タグ。
<FunctionProperty name = "EEE" >aaa</FunctionProperty>
制御パラメータ「EEE」の値[aaa]の実行条件を定義する開始・終了タグ。
</FlowPlugin>
処理「XXXX」における「実行条件及び実行順序に関する情報」の定義の終了タグ。
<<処理対象に関する情報を定義するタグ>>
<RequestTypeName name = "GGG" ref = "XXXX" ></RequestTypeName>
処理「XXXX」が出力したデータ「GGG」を処理対象とする小機能の「処理対象に関する情報」を定義する開始・終了タグ。
よって、上記に挙げた、開始タグと終了タグとを用いて定義されるデータ(定義データ21)は、図6に示すように、機能に関する情報を定義するデータ71、実行条件、実行順序、及び処理対象に関する情報を定義するデータ72とから構成される。
図4に戻り、定義データ生成手段42では、独自のタグを用いた所定の形式に従って、動作に関する情報の意味を記述した定義データ21を生成する。
このように、定義データ生成手段42は、複数個の情報処理手段41(図4では、情報処理手段41a〜41d)により実現される処理、すなわち、複数個の機能プラグイン30(複数個の小機能)を組み合わせて行う処理を、デスクトップアプリケーション20の1つの機能(複数個の小機能から構成される機能)として定義する。
そのため、本実施形態に係る情報処理装置100では、ユーザがデスクトップアプリケーション20によって行いたい処理の実行条件や実行順序などの動作に関する情報を、定義データ21に定義することで、デスクトップアプリケーション20の1つの機能として実行させることができる。
では、本実施形態に係る情報処理装置100において、「ユーザが行いたい処理の実行条件や実行順序などの動作に関する情報をどのような方法で定義し、定義データ生成手段42によって定義データ21を生成するのか」について、以下に、図7〜10を用いて説明する。
以下の説明では、ユーザが、「色変換後の画像データを印刷する」と言う処理を、デスクトップアプリケーション20の1つの機能(モノクロ印刷機能)として定義する場合である。
<<機能に関する情報の定義>>
まず、本実施形態に係る情報処理装置100において、ユーザが、「機能に関する情報」を定義する方法を、図7を用いて説明する。
図7は、本発明の第1の実施形態に係る画像処理機能に関する定義データ生成時の表示画面の一例を示す図である。
情報処理装置100は、ユーザによってデスクトップアプリケーション20が起動されると、アプリケーションプロセス23によって、図7に示すようなUIを備えたアプリケーションウィンドウ61を表示装置に表示する。
アプリケーションウィンドウ61は、「機能に関する情報」を設定するUI領域として機能情報設定領域62を備えている。
機能情報設定領域62は、「定義名(機能名)」を入力するテキストボックス62a、「定義種類」を設定するプルダウンメニュー62b、定義した機能をデスクトップアプリケーション20のメニュー項目の1つとして表示するときに該当する「メニュー名」を設定するプルダウンメニュー62c、定義した機能をデスクトップアプリケーション20のメニュー項目の1つとして表示するときに該当するメニューのうち、表示する「メニュー項目領域」を設定するテキストボックス62d、並びに、機能に関する情報や実行条件及び実行順序に関する情報について行った定義情報を確定する[確定]ボタン62eとから構成されている。
ユーザは、上記に説明した機能情報設定領域62が備えるテキストボックス62a及び62dに、キーボードなどの入力装置から設定値(テキストデータ)を入力し、プルダウンメニュー62b及び62cから設定値を選択することで、定義データ生成手段42により定義データ21(機能に関する情報を定義するデータ71)を生成するときに必要な情報を設定する。
図7では、ユーザが、「色変換後の画像データを印刷する」と言う処理を、上記の各UIを介して、「定義名(機能名)」を"印刷(モノクロ)"、「定義種類」を"ユーザコマンド"、「メニュー名」を"ファイル"、「メニュー項目領域」を"Output"と設定し、デスクトップアプリケーション20の1つの機能として定義した例が示されている。
これによって、定義データ生成手段42は、ユーザが、機能情報設定領域62を備えたUIを介して設定した設定値を基に、図6で説明した[<RecipePropaty>]と[</RecipePropaty>]の間に、「定義名(機能名)」、「定義種類」、「メニュー名」、及び「メニュー項目領域」それぞれを定義するタグ(「定義開始タグ」と「定義終了タグ」)とともに対応する値(例えば、文字列や数値など。)を埋め込み、機能に関する情報を定義するデータ71を生成する。
<<実行条件、実行順序、及び処理対象に関する情報の定義>>
次に、本実施形態に係る情報処理装置100において、ユーザが、「実行条件や実行順序に関する情報」を定義する方法を、図7〜9を用いて説明する。
図7に示す、アプリケーションウィンドウ61は、「実行条件や実行順序に関する情報」を設定するUI領域として、「実行順序に関する情報」を設定する実行順序設定領域64と、「実行条件に関する情報」を設定する実行条件設定領域65とを備えている。
また、アプリケーションウィンドウ61は、「実行条件及び実行順序に関する情報」を設定するときに、設定の対象となる機能プラグイン(小機能)30を選択するためのプラグイン選択領域63を備えている。図7に示すように、プラグイン選択領域63には、現在、情報処理装置100にインストールされた(補助記憶部13などの不揮発性の記憶装置に格納された)機能プラグイン(小機能)30の一覧が表示される。
ユーザは、「実行順序に関する情報」について設定を行う場合、選択可能な機能プラグイン(小機能)30の一覧が表示されたプラグイン選択領域63から、自身がデスクトップアプリケーション20によって行いたい処理を実現するために必要な機能プラグイン(小機能)30を、マウスなどのポインティングデバイスを介して選択(マウスの場合には「ドラッグ」。)し、選択したままの状態で実行順序設定領域64に移動し、選択解除(マウスの場合には「ドロップ」。)することで定義データ生成手段42により定義データ21(実行条件及び実行順序に関する情報を定義するデータ72)を生成するときに必要な実行順序を設定する。以降では、ユーザが用いるポインティングデバイスにマウスを使うことを想定して説明する。
(A)画像処理の定義
情報処理装置100にインストールされた機能プラグイン(小機能)30が有する画像処理機能について設定を行う場合、ユーザは、まず、プラグイン選択領域63に画像処理機能に関する機能プラグイン(小機能)30の一覧(画像処理機能のプラグイン選択領域63a)を表示させるため、領域内の[画像処理]タブをマウスでクリックする。
次に、表示された画像処理機能に関する機能プラグイン(小機能)30の一覧から、必要な機能プラグイン(小機能)30をマウスでドラッグし、実行順序設定領域64にドロップする。
図7では、ユーザが、「色変換後の画像データを印刷する」と言う処理を実現するために、「ファイル選択」の次に行わなければならない「色変換」の処理に対応した色変換プラグイン41bを、画像処理機能のプラグイン選択領域63aからドラッグし、実行順序設定領域64において、「ファイル選択」の処理を行うファイル選択プラグイン41aの処理の次に行う処理に位置する領域(図中では、[カレントファイル]の下。)にドロップした例(図中の[色変換]。)を示している。
また、機能プラグイン(小機能)30の中には、実行条件(制御パラメータ)が設定できるものがある。
図7に示すように、アプリケーションウィンドウ61は、テキストボックスやプルダウンメニューなどから実行条件(制御パラメータ)を設定する実行条件設定領域65を備えている。
ユーザは、「実行条件に関する情報」について設定を行う場合、実行条件設定領域65のテキストボックスやプルダウンメニューから、実行条件(制御パラメータ)の値を設定する(テキストボックスの場合には、キーボードから値を入力し、プルダウンメニューの場合には、該当するメニュー項目を選択する。)ことで定義データ生成手段42により定義データ21(実行条件及び実行順序に関する情報を定義するデータ72)を生成するときに必要な実行条件を設定する。
図7では、ユーザが、色変換の変換方法を示す「変換方法」に"モノクロ"を選択し、色変換プラグイン41bの実行条件(制御パラメータ)の値を設定した例が示されている。
(B)出力処理の定義
情報処理装置100にインストールされた機能プラグイン(小機能)30が有する出力機能について設定を行う場合、画像処理機能の場合と同様に、ユーザは、プラグイン選択領域63に出力機能に関する機能プラグイン(小機能)30の一覧(出力機能のプラグイン選択領域63b)を表示させるため、領域内の[出力]タブをマウスでクリックする。
次に、表示された画像処理機能に関する機能プラグイン(小機能)30の一覧から、必要な機能プラグイン(小機能)30をマウスでドラッグし、実行順序設定領域64にドロップする。
図8は、本発明の第1の実施形態に係る出力機能に関する定義データ生成時の表示画面の一例を示す図である。
図8では、ユーザが、「色変換後の画像データを印刷する」と言う処理を実現するために、「色変換」の次に行わなければならない「印刷」の処理に対応した印刷プラグイン41cを、出力機能のプラグイン選択領域63bからドラッグし、実行順序設定領域64において、色変換プラグイン41bの処理の次に行う処理に位置する領域(図中では、[色変換]の下。)にドロップした例(図中の[印刷]。)を示している。
(C)情報通知処理の定義
情報処理装置100にインストールされた機能プラグイン(小機能)30が有する情報通知機能について設定を行う場合、画像処理機能の場合と同様に、ユーザは、プラグイン選択領域63に情報通知機能に関する機能プラグイン(小機能)30の一覧(情報通知機能のプラグイン選択領域63c)を表示させるため、領域内の[通知]タブをマウスでクリックする。
次に、表示された画像処理機能に関する機能プラグイン(小機能)30の一覧から、必要な機能プラグイン(小機能)30をマウスでドラッグし、実行順序設定領域64にドロップする。
図9は、本発明の第1の実施形態に係る情報通知機能に関する定義データ生成時の表示画面の一例を示す図である。
図9では、ユーザが、「色変換後の画像データを印刷する」と言う処理を実現するために、「印刷」の次に行わなければならない「メッセージ表示」の処理に対応したメッセージ表示プラグイン41dを、情報通知機能のプラグイン選択領域63bからドラッグし、実行順序設定領域64において、印刷プラグイン41cの処理の次に行う処理に位置する領域(図中では、[印刷]の下。)にドロップした例(図中の[メッセージボックス]。)を示している。
また、図9に示すように、メッセージ表示プラグイン41dは、実行条件(制御パラメータ)が設定できる。
図9では、ユーザが、表示するメッセージを示す「メッセージ」に"印刷が終了しました。"を、また、メッセージウィンドウのタイトルを示す「タイトル」に"B/W Print"を入力し、メッセージ表示プラグイン41dの実行条件(制御パラメータ)の値を設定した例が示されている。
これによって、定義データ生成手段42は、ユーザが、処理を行うのに必要な情報処理手段41(機能プラグイン(小機能)30)を、実行順序設定領域64にドロップして並べた順番(図9の実行順序設定領域64に示すフローの順番)に基づいて、図6で説明した、[<FlowPlugin name = "XXXX" >]と[</FlowPlugin>]との間に、情報処理手段41(機能プラグイン(小機能)30)の処理対象名(機能プラグイン(小機能)30が処理するデータの名前と、そのデータを出力した1つ前に定義された機能プラグイン(小機能)30の名前)と処理対象を定義するタグ(「定義開始タグ」と「定義終了タグ」)、及び必要に応じて実行条件設定領域65で設定した条件値(制御パラメータ値:例えば、文字列や数値など。)と実行条件(制御パラメータ)を定義するタグ(「定義開始タグ」と「定義終了タグ」)とを埋め込み、実行する情報処理手段41(機能プラグイン(小機能)30)の数だけ繰り返すことにより、実行条件、実行順序、及び処理対象に関する情報を定義したデータ72を生成する。
このように、情報処理手段41(機能プラグイン(小機能)30)の実行順序が決定すれば、定義された情報処理手段41(機能プラグイン(小機能)30)毎の処理対象も決定される。よって、実行条件及び実行順序に関する情報が定義されれば、情報処理手段41(機能プラグイン(小機能)30)毎の処理対象に関する情報も定義される。
本実施形態に係る情報処理装置100では、ユーザが、上記に説明した(A)〜(C)に示す手順により、デスクトップアプリケーション20で行う処理の動作に関する情報を設定する。
図10は、本発明の第1の実施形態に係る生成された定義データの一例(モノクロ印刷機能の場合)を示す図である。
図10では、ユーザが、上記に説明した(A)〜(C)に示す手順に従って、デスクトップアプリケーション20のUIを介して、自身が行いたい「色変換後の画像データを印刷する」と言う処理の動作に関する情報を設定した場合、定義データ生成手段42により生成された定義データ21(モノクロ印刷機能に関する定義データ21)の例を示している。
[<RecipePropaty>]と[</RecipePropaty>]との間には、図7を用いて説明した方法で設定された値を基にした機能に関する情報を定義したデータ71が生成されている。
[<FlowPlugin name = "カレントファイル" >]と最後の[</FlowPlugin>]との間には、図7〜9を用いて説明した手順(A)〜(C)で設定された順番(実行順序設定領域64に配置されたフローの順番)を基にした、処理の実行順序に関する情報を定義したデータ72が生成されている。
[<FlowPlugin name = "色変換" >]と次の[</FlowPlugin>]との間には、図7を用いて説明した手順(A)で設定された値を基にした画像処理機能の実行条件に関する情報を定義したデータ72aが生成されている。また、画像処理機能の実行条件に関する情報を定義したデータ72aの前に、画像処理機能の処理対象に関する情報を定義したデータが生成されている。「画像処理機能の処理対象」とは、色変換プラグイン41bが処理するデータ、すなわち色変換プラグイン41bの1つ前のファイル選択プラグイン41aによって処理され出力されたデータである。
図10では、「色変換プラグイン41bの処理対象」として、色変換プラグイン41bが処理するデータ名"InputImage"と、データを出力した機能プラグイン(小機能)30"カレントファイル"を定義した例が示されている。
[<FlowPlugin name = "印刷" >]と次の[</FlowPlugin>]との間には、図8を用いて説明した手順(A)で設定された出力機能の処理対象に関する情報を定義したデータが生成されている。図10の場合、「出力機能の処理対象」とは、印刷プラグイン41cが処理するデータ、すなわち印刷プラグイン41cの1つ前の色変換プラグイン41bによって処理され出力されたデータである。
図10では、「印刷プラグイン41cの処理対象」として、印刷プラグイン41cが処理するデータ名"InputImage"と、データを出力した機能プラグイン(小機能)30"色変換"を定義した例が示されている。
[<FlowPlugin name = "メッセージボックス" >]と次の[</FlowPlugin>]との間には、図9を用いて説明した手順(C)で設定された値を基にした情報通知機能の実行条件に関する情報を定義するデータ72bが定義されている。また、図10に示す情報通知機能には、処理対象に関する情報を定義するデータが生成されていない。これは、図10に示すメッセージ表示プラグイン41dが、他のプラグインで処理され出力されたデータを処理対象としないことを意味している。
定義データ生成手段42は、図10のように生成した定義データ21を、主記憶部12のRAM上に一時保持する。
また、本実施形態に係る情報処理装置100では、図9に示すアプリケーションウィンドウ61の[フローテスト実行]ボタン66を選択することによって、主記憶部12のRAM上に一時保持された定義データ21に定義された実行条件、実行順序、及び処理対象が、デスクトップアプリケーション20が処理可能な設定となっているか否かをチェックすることができる。例えは、定義データ21に定義された機能プラグイン(小機能)30の実行順序が、印刷プラグイン41bを実行した後に、色変換プラグイン41aを実行するような順序になっていた場合には、実行順序の定義に誤りがある(デスクトップアプリケーション20で処理できない)旨をユーザに通知する。
図4に戻り、定義データ生成手段42は、図3で説明したアプリケーションプロセス23を制御部11で実行することにより行われる手段である。
これによって、本実施形態に係る情報処理装置100は、ユーザが行いたい処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の実行条件や実行順序などの動作に関する情報を、所定の形式に従ったデータとして定義することができる。
次に、定義データ格納手段43は、定義データ生成手段42により生成された定義データ21を、補助記憶部13などの不揮発性の記憶装置に格納する。
定義データ格納手段43は、アプリケーションウィンドウ61の[確定]ボタン62eが、ユーザによって選択されたときに、定義データ生成手段42により生成され、主記憶部12のRAM上に一時保持された定義データ21を、補助記憶部13などの不揮発性の記憶装置内の所定の領域に格納する。また、定義データ格納手段43は、データを格納するとき、例えば「定義名(機能名)」を、定義データ21のファイル名とする。
図11は、本発明の第1の実施形態に係る生成された定義データ21が格納された様子の一例を示す図である。
定義データ格納手段43は、図中に示す"C:\Documents and Settings\user01\aaa\bbb\Recipe"のような格納先アドレス(フォルダパス)を基に、補助記憶部13などの不揮発性の記憶装置内の格納領域を指定し、指定したフォルダ内に定義データ21を格納する。よって、上記「所定の領域」とは、格納先アドレスで指定された補助記憶部13などの不揮発性の記憶装置内の領域を意味する。
図11では、Explorer(登録商標)などのファイルやフォルダを閲覧・管理するツールの閲覧ウィンドウ51を介して、格納された定義データ21の一覧を閲覧した例を示している。
図4に戻り、定義データ格納手段43は、図3で説明したアプリケーションプロセス23を制御部11で実行することにより行われる手段である。
このように、本実施形態に係る情報処理装置100は、デスクトップアプリケーション20における機能追加又は変更など、ユーザの使用目的や用途に応じた対応を定義データのみで行うことができる。すなわち、ユーザは、デスクトップアプリケーション20の機能(ユーザが行いたい処理の定義)を、アプリケーション本体やプラグイン(小機能)と言ったプログラムを変更することなく、定義データ21のみを追加、編集、又は削除することで管理することができる。また、定義データを削除しても、アプリケーション本体の動作に影響することがない。
次に、メニュー項目表示手段44は、定義データ格納手段43により格納された定義データ21を基に、定義データ21に定義された「定義名(機能名)」を、メニュー項目の1つとして、デスクトップアプリケーション20のメニューに表示する。
メニュー項目表示手段44は、定義データ21に定義された「定義名(機能名)」を、定義データ21に定義された表示位置情報を基に、メニューの表示領域のうち、所定の領域に表示する。
以下に、メニュー項目表示手段44の詳細について、図12〜16を用いて説明する。
図12は、本発明の第1の実施形態に係る定義データ21に応じたメニュー表示の一例を示す図である。
メニュー項目表示手段44は、まず、「デスクトップアプリケーション20が有する複数個のメニュー91のうち、どのメニュー91のメニュー項目92に表示させるか」を決定する。
そこで、メニュー項目表示手段44では、定義データ21に定義された「メニュー名」を基に、複数個あるメニュー91のうち、メニュー項目92として表示するメニュー91を特定する。
図12では、「定義名(機能名)」に"印刷(モノクロ)"、「メニュー名」に"ファイル"、及び「メニュー項目領域」に"Output"とが定義された、定義データ21の機能に関する情報を定義するデータ71を基にしたメニュー表示の例を示している。
このような場合、メニュー項目表示手段44は、定義データ21に定義された「メニュー名」の設定値("ファイル")を基に、デスクトップアプリケーション20が有する複数個のメニュー91から、メニュー項目92として表示する「ファイル」メニュー91を特定する。
次に、メニュー項目表示手段44は、「特定したメニュー91の表示領域のどの位置に表示させるか」を決定する。
そこで、メニュー項目表示手段44では、定義データ21に定義された「メニュー項目領域」を基に、特定したメニュー91の表示領域のうち、メニュー項目92として「定義名(機能名)」を表示する領域を決定する。
図12に示すように、特定した「ファイル」メニュー91の表示領域には、例えば、「メニュー項目領域」"New"に対応する新規作成に関するメニュー項目領域92a、「メニュー項目領域」"Search"に対応するに検索に関するメニュー項目領域92b、「メニュー項目領域」"Output"に対応する出力に関するメニュー項目領域92c、及び「メニュー項目領域」"FilePropaty"に対応するファイルプロパティに関するメニュー項目領域92dなどがある。
このような場合、メニュー項目表示手段44は、定義データ21に定義された「メニュー名」の設定値("Output")を基に、特定した「ファイル」メニュー91の表示領域のうち、「メニュー項目領域」"Output"に対応する出力に関するメニュー項目領域92cを、メニュー項目として「定義名(機能名)」を表示する領域として決定する。
その結果、図12に示すように、メニュー項目表示手段44は、「ファイル」メニュー91の表示領域のうち、「メニュー項目領域」"Output"のメニュー項目領域92cに、「定義名(機能名)」"印刷(モノクロ)"を表示する。
このように、メニュー項目表示手段44は、定義データ21に定義された「メニュー名」及び「メニュー項目領域」の表示位置情報を基に、「定義名(機能名)」をデスクトップアプリケーション20のメニュー91に表示する。
図13は、本発明の第1の実施形態に係る新規メニュー項目追加時の表示画面の一例(その1)を示す図である。また、図14は、本発明の第1の実施形態に係る新規メニュー項目追加時の表示画面の一例(その2)を示す図である。
図13では、新規メニュー項目として「定義名(機能名)」"印刷(モノクロ)"が、アプリケーションウィンドウ61のツールバー81に追加表示された例(図中の破線枠)、また、図14では、「ファイル」メニュー91のメニュー項目領域92cに追加表示された例(図中の破線枠)を示している。
図4に戻り、メニュー項目表示手段44は、「機能名」をメニュー項目92として表示するときに、表示する「定義名(機能名)」と「定義名(機能名)」が定義された定義データ21とを対応付ける。
メニュー項目表示手段44では、例えば、表示される「定義名(機能名)」の文字列(例えば、"印刷(モノクロ)"など。)と「定義名(機能名)」が定義された定義データ21の格納先アドレス(ファイルパス)を示す文字列(例えば、"C:\Documents and Settings\user01\aaa\bbb\Recipe\印刷(モノクロ).xml"など。)とを、テーブル形式のデータ管理によって関連付けることで、表示する「定義名(機能名)」と「定義名(機能名)」が定義された定義データ21とを対応付けている。
図15は、本発明の第1の実施形態に係る追加メニュー項目削除時の表示画面の一例(その1)を示す図である。また、図16は、本発明の第1の実施形態に係る追加メニュー項目削除時の表示画面の一例(その2)を示す図である。
図15では、新規メニュー項目として追加表示されていた「定義名(機能名)」"印刷(モノクロ)"が、アプリケーションウィンドウ61のツールバー81から削除され表示されなくなった例、また、図14では、「ファイル」メニュー91のメニュー項目領域92cから削除され表示されなくなった例を示している。
このように、メニュー項目表示手段44は、定義データ21の追加(新規作成)又は削除など、定義データ21が、補助記憶部13などの不揮発性の記憶装置内の所定の領域に格納されているか否かに応じて、定義データ21に定義された「定義名(機能名)」をメニュー項目へ表示するか否かを制御する。
図4に戻り、メニュー項目表示手段44は、図3で説明したアプリケーションプロセス23を制御部11で実行することにより行われる手段である。
次に、情報処理実行手段45は、定義データ21に基づいて情報処理手段41(機能プラグイン(小機能)30)を実行する。
情報処理実行手段45は、まず、メニュー項目表示手段44によりメニュー項目として表示された「定義名(機能名)」が、ユーザからデスクトップアプリケーション20のUIを介して選択されたときに、補助記憶部13などの不揮発性の記憶装置に格納された複数個の定義データ21の中から、ユーザが選択した機能に対応する(選択された「定義名(機能名)」が定義されている)定義データ21を特定する。
情報処理実行手段45は、例えば、メニュー項目表示手段44から、表示された「機能名」に対応する定義データ21の格納先アドレス(ファイルパスの文字列)を受け取り、受け取った格納先アドレス(ファイルパスの文字列)を基に、補助記憶部13などの不揮発性の記憶装置に格納された複数個の定義データ21の中から、1つの定義データ21を特定する。
次に、情報処理実行手段45は、定義データ21を記述した言語を解釈することのできるパーサー(例えば、XMLの場合では、XMLパーサー。)により、特定した定義データ21の構文解析を行う。
その結果、情報処理実行手段45は、構文解析によって得られた情報、すなわち、定義データ21に定義された、機能を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の実行条件や実行順序に従って、情報処理手段41(機能プラグイン(小機能)30)に実行を指示する(補助記憶部13などの不揮発性の記憶装置に格納された情報処理手段41(機能プラグイン(小機能)30)を、主記憶部12のRAM上に展開(ロード)する)。
情報処理実行手段45は、図3で説明したコアプログラム31を制御部11で実行することにより行われる手段である。
これによって、本実施形態に係る情報処理装置100は、アプリケーションのメニュー項目92から、ユーザが定義した機能を選択することで、自身が定義した機能プラグイン(小機能)30の実行条件や実行順序などの動作に関する情報に従って、機能プラグイン(小機能)30を自動的に実行することができる。
本実施形態に係る情報処理装置100は、上記に説明した各手段を以下の手順に従って実施する。
(手順1)動作に関する情報の設定
本実施形態に係る情報処理装置100は、デスクトップアプリケーション20のUIを介して、ユーザから、自身がアプリケーションによって行いたい処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の実行条件や実行順序などの動作に関する情報が設定される。
その結果、情報処理装置100は、デスクトップアプリケーション20によって行う処理を1つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション20によって行う処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の「実行条件及び実行順序に関する情報」と、情報処理手段41(機能プラグイン(小機能)30)の「処理対象に関する情報」とを取得する。
(手順2)定義データ21の生成
本実施形態に係る情報処理装置100は、定義データ生成手段42により、(手順1)で取得した「機能に関する情報」、「実行条件及び実行順序に関する情報」、及び「処理対象に関する情報」が、所定の形式に従って定義された定義データ21を生成する。
(手順2−1)機能に関する情報を定義するデータ71の生成
情報処理装置100は、ユーザから設定された「機能に関する情報」の各設定値を基に、機能に関する情報を定義するタグの間に、「定義名(機能名)」、「定義種類」、「メニュー名」、及び「メニュー項目領域」それぞれを定義するタグとともに対応する値(例えば、文字列や数値など。)を埋め込み、機能に関する情報を定義するデータ71を生成する。
(手順2−2)実行条件、実行順序、及び処理対象に関する情報を定義するデータ72の生成
情報処理装置100は、ユーザから設定された「実行条件及び実行順序に関する情報」の各設定値を基に、実行順序に従って、実行順序に関する情報を定義するタグの間に、情報処理手段41(機能プラグイン(小機能)30)の処理対象名と処理対象を定義するタグ(「定義開始タグ」と「定義終了タグ」)、及び条件値(制御パラメータ値:例えば、文字列や数値など。)と実行条件(制御パラメータ)を定義するタグ(「定義開始タグ」と「定義終了タグ」)とを埋め込み、実行条件、実行順序、及び処理対象に関する情報を定義するデータ72を生成する。
情報処理装置100は、定義データ格納手段43により、生成された後に、主記憶部12のRAM上に一時保持された定義データ21を、補助記憶部13などの不揮発性の記憶装置内の所定の領域に格納する。
(手順3)定義データ21の実行
本実施形態に係る情報処理装置100は、情報処理実行手段45により、定義データ21に基づいて情報処理手段41(機能プラグイン(小機能)30)を実行する。
(手順3−1)定義データ21の特定
情報処理装置100は、メニュー項目表示手段44によりメニュー項目92として表示された「定義名(機能名)」が、ユーザから選択されたときに、補助記憶部13などの不揮発性の記憶装置に格納された複数個の定義データ21の中から、ユーザが選択した機能に対応する(選択された「定義名(機能名)」が定義されている)定義データ21を特定する。
(手順3−2)定義データの解析
情報処理装置100は、定義データ21を記述した言語を解釈することのできるパーサー(例えば、XMLパーサー。)により、特定した定義データ21の構文解析を行う。
(手順3−3)機能プラグイン(小機能)30の実行
情報処理装置100は、構文解析によって得られた情報、すなわち、定義データ21に定義された、機能を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の処理対象、実行条件、及び実行順序に従って、情報処理手段41(機能プラグイン(小機能)30)に実行を指示する(補助記憶部13などの不揮発性の記憶装置に格納された情報処理手段41(機能プラグイン(小機能)30)を、主記憶部12のRAM上に展開(ロード)する)。
このように、本実施形態に係る情報処理装置100は、上記に説明した(手順1)〜(手順3)により、「デスクトップアプリケーション20が実行する処理を使用目的や用途などに応じて容易に変更する」処理を実現している。
<情報処理装置の基本処理手順について>
これまでに説明した本実施形態に係る情報処理装置100の具体的な処理手順について、図17〜20を用いて説明する。
本実施形態に係る情報処理装置100は、例えば、補助記憶部13に格納された「デスクトップアプリケーション20」の処理を行う情報処理プログラムを主記憶部12であるRAM上に展開(ロード)し、制御部11で実行する。このとき、以下の図17に示す処理手順(S101〜S106)、図18に示す処理手順(S201〜S207)、及び図19に示す(S301〜S306)が実行される。
図17は、本発明の第1の実施形態に係るデスクトップアプリケーション起動時の処理手順を示すフローチャートである。
本実施形態に係る情報処理装置100は、ユーザからデスクトップアプリケーション20の起動指示を受け付ける。例えば、ユーザが、表示装置の表示画面上に表示された、デスクトップアプリケーション20が有するアプリケーションプロセス23の実行プログラム(例えば、DesktopApprRun.exeなど。)がリンクしたアイコンを、マウスでクリックする。これによって、情報処理装置100は、デスクトップアプリケーション20のプログラム及び関連データを、OSから割り当てられた主記憶部12のRAM上のメモリ領域に展開(ロード)し、制御部11で実行する(S101)。
情報処理装置100は、起動されたアプリケーションプロセス23によって、予め、補助記憶部13などの不揮発性の記憶装置に格納された、アプリケーションウィンドウ61を構成するために必要な各UIについて定義された表示用定義データを読み取り、表示用定義データを記述した言語が解釈可能なパーサーをアプリケーションプロセス23から起動し、読み取った表示用定義データを構文解析する。(S102)。
情報処理装置100は、アプリケーションプロセス23によって、表示用定義データに定義されたUIに関する情報(パーサーにより構文解析した結果)に従って、必要なUIを実現するUIプラグイン(UIパーツ)22に起動を指示する(S103)。
情報処理装置100は、アプリケーションプロセス23によって、アプリケーションウィンドウ61を、CRTやLCDなどの出力装置の表示画面に描画する(S104)。
情報処理装置100は、必要なUIを実現するUIプラグイン(UIパーツ)22を全てに対して起動を指示したか否かを判定する(S105)。
全てのUIプラグイン(UIパーツ)22に対して起動を指示した場合(S105がYESの場合)、デスクトップアプリケーション20の起動処理を終了し、UIを介したユーザからの動作指示を待つ(S106)。
また、起動指示を行っていないUIプラグイン(UIパーツ)22が残っている場合(S105がNOの場合)、S103の処理手順に戻る。
このように、本実施形態に係る情報処理装置100は、図17に示すS101〜S106によって、デスクトップアプリケーション20の起動を実現している。
図18は、本発明の第1の実施形態に係るデスクトップアプリケーション20における定義データ生成時の処理手順を示すフローチャートである。
ここで説明するS201〜S207の処理手順は、図17のS106で説明した、デスクトップアプリケーション20が起動され、UIを介したユーザからの動作指示を待っているときの処理である。
本実施形態に係る情報処理装置100は、図7に示す[フロー設定]タブがマウスによって選択され、ユーザからの新規定義データ生成要求を受け付けるまで待つ(S201)。
情報処理装置100は、ユーザからの新規定義データ生成要求を受け付けた場合(S201がYESの場合)、アプリケーションプロセス23によって、ユーザが行いたい処理を、デスクトップアプリケーション20の1つの機能として定義するための機能に関する情報を設定する機能情報設定領域62、既に補助記憶部13などの不揮発性の記憶装置に格納された機能プラグイン(小機能)30の中から、ユーザが行いたい処理を実現するために必要な機能プラグイン(小機能)30を選択するプラグイン選択領域63、機能プラグイン(小機能)30を実行する順序を設定する実行順序設定領域64、及び実行する機能プラグイン(小機能)30の実行条件(制御パラメータ)を設定する実行条件設定領域65などの設定用のUI部を構成するために必要なUIプラグイン(UIパーツ)22を実行し、ユーザが、定義データ21を生成するためのUIを、表示装置の表示画面に描画する(202)。
情報処理装置100は、新規定義データ生成に必要な設定用のUIを描画した後、UIを介して受け付けたユーザからの新規定義データ生成要求を受け付けたアプリケーションプロセス23によって、生成する定義データ21のうち、機能に関する情報を定義するデータ71を生成する。アプリケーションプロセス23は、UIを介して設定された機能に関する情報(定義した機能名を示す「定義名(機能名)」、定義した機能の種類を示す「定義種類」、メニュー項目92に表示するときの表示位置情報である「メニュー名」及び「メニュー項目領域」。)の各設定値(例えば、文字列や数値など。)を基に、それぞれの情報に対応した独自のタグ(「定義開始タグ」と「定義終了タグ」)とともに設定値を埋め込み、機能に関する情報を定義したデータ71を生成する(S203)。
情報処理装置100は、アプリケーションプロセス23によって、生成する定義データ21のうち、機能プラグイン(小機能)30の実行条件、実行順序、及び処理対象に関する情報を定義したデータ72を生成する。アプリケーションプロセス23は、ユーザが、必要な機能プラグイン(小機能)30を、実行順序設定領域64にドロップして並べた順番(例えば、図9の実行順序設定領域64に示すフローの順番。)を基に、情報処理手段41(機能プラグイン(小機能)30)の処理対象名(機能プラグイン(小機能)30が処理するデータの名前と、そのデータを出力した1つ前に定義された機能プラグイン(小機能)30の名前)と処理対象を定義するタグ(「定義開始タグ」と「定義終了タグ」)、及び必要に応じて実行条件設定領域65で設定した条件値(制御パラメータ値:例えば、文字列や数値など。)と実行条件(制御パラメータ)を定義するタグ(「定義開始タグ」と「定義終了タグ」)とを埋め込み、実行する機能プラグイン(小機能)30の数だけ、繰り返すことによって、実行条件、実行順序、及び処理対象に関する情報を定義したデータ72を生成する(S204)。
情報処理装置100は、アプリケーションプロセス23によって、機能に関する情報を定義したデータ71と実行条件、実行順序、及び処理対象に関する情報を定義したデータ72とを基に、最終的な定義データ21を生成し、生成された定義データ21を主記憶部12のRAM上に一時保管する。
情報処理装置100は、ユーザから、主記憶部12のRAM上に一時保持された定義データ21の内容を確定する指示を受け付けるまで待つ(S205)。例えば、ユーザが、図9に示す機能情報設定領域62の[確定]ボタン62eをマウスでクリックすることにより、主記憶部12のRAM上に一時保持された定義データ21の内容を確定する指示を受け付ける。
UIを介して、主記憶部12のRAM上に一時保持された定義データ21の内容を確定する指示を受け付けた場合(S205がYESの場合)、アプリケーションプロセス23は、主記憶部12のRAM上に一時保持された定義データ21を、補助記憶部13などの不揮発性の記憶装置に格納する(S206)。
情報処理装置100は、図9に示す[ブラウズテスト]タブがマウスによって選択された場合など、アプリケーションウィンドウ61の再描画を行うタイミングで、アプリケーションプロセス23によって、補助記憶部13などの不揮発性の記憶装置に格納された新規定義データ21を基に、メニュー表示を更新する(S207)。アプリケーションプロセス23は、新規の定義データ21に定義された「メニュー名」及び「メニュー項目領域」の表示位置情報を基に、メニュー91の表示領域のうち、「定義名(機能名)」を表示させるメニュー項目領域を決定し、決定した領域に、「定義名(機能名)」を表示する。
その後、情報処理装置100は、図9に示す[ブラウズテスト]タブがマウスによって選択されたことにより、アプリケーションウィンドウ61が、新規定義データ生成用のUI表示から機能実行用のUI表示へ変わっているため、次に説明する図19のS301の処理手順に移行し、ユーザからの動作指示を待つ。
このように、本実施形態に係る情報処理装置100は、図18に示すS201〜S207によって、定義データ21の生成を実現している。
図19は、本発明の第1の実施形態に係るデスクトップアプリケーション機能実行時の処理手順を示すフローチャートである。
ここで説明するS301〜S306の処理手順は、図17のS106で説明した、デスクトップアプリケーション20が起動され、UIを介したユーザからの動作指示を待っているときの処理である。
本実施形態に係る情報処理装置100は、マウスによるメニュー選択など、ユーザからの動作指示を受け付けるまで待つ(S301)。
情報処理装置100は、ユーザからの動作指示を受け付けた場合(S301がYESの場合)、アプリケーションプロセス23が、UIを介して受け付けたユーザからの動作指示を、データI/Fを介してコアプログラム31に渡し、動作指示を受け取ったコアプログラム31によって、メニュー項目92に表示された「定義名(機能名)」に対応付けられた定義データ21(「定義名(機能名)」が定義された定義データ21)を、格納された補助記憶部13などの不揮発性の記憶装置から読み取り、定義データ21を記述した言語が解釈可能なパーサーをコアプログラム31から起動し、読み取った定義データ21を構文解析する(S302)。
情報処理装置100は、コアプログラム31によって、定義データ21に定義された、ユーザが行いたい処理を実現するために必要な機能プラグイン(小機能)30の動作に関する情報(パーサにより構文解析した結果)のうち、機能プラグイン(小機能)30の実行条件(制御パラメータ)の設定値及び機能プラグイン(小機能)30の処理対象名を取得する(S303)。
情報処理装置100は、コアプログラム31によって、取得した実行条件の設定値及び処理対象名(処理対象であるデータ名)を基に、機能プラグイン(小機能)30に起動を指示する(S304)。
情報処理装置100は、実行順序に従い、ユーザが行いたい処理を実現するために必要な機能プラグイン(小機能)30に対して起動を指示したか否かを判定する(S305)。
必要な機能プラグイン(小機能)30に対して起動を指示した場合(S305がYESの場合)、起動指示された機能プラグイン(小機能)30によって、実行条件や処理対象であるデータを基に処理が実行され、その実行結果を、表示装置の表示面に表示する(S306)。例えば、実行結果を知らせるメッセージを、アプリケーションウィンドウ61とは別のウィンドウに表示する。表示後は、S301の処理手順に戻り、再びユーザからの動作指示を待つ。
また、起動指示を行っていない機能プラグイン(小機能)30が残っている場合(S305がNOの場合)、S303の処理手順に戻り、定義データ21を読み取ったときに取得した、動作に関する情報(パーサーにより構文解析した結果)のうちの機能プラグイン(小機能)30の実行順序に従って、次に実行する対象となる機能プラグイン(小機能)30に対して、S303以降の処理を行う。
このように、本実施形態に係る情報処理装置100は、図19に示すS301〜S306によって、機能プラグイン(小機能)30の実行を実現している。
図20は、本発明の第1の実施形態に係る機能実行時の表示画面の一例(モノクロ印刷機能の場合)を示す図である。
例えば、図7〜10の説明で例に挙げた「色変換後の画像データを印刷する」と言う処理(モノクロ印刷機能)では、図17〜19で説明した情報処理プログラム(具体的な処理手順)を、本実施形態に係る情報処理装置100が有する制御部11で実行することで、図20に示すような動作結果が得られる。
図20では、タスクバー81に表示された[印刷(モノクロ)]のメニュー項目92が、マウスによってクリックされた後、図10に示した定義データ21に従って、モノクロ印刷が実行され、メッセージ表示プラグイン41dによって、実行条件で設定された印刷終了を通知するメッセージ「印刷が終了しました。」を、アプリケーションウィンドウ61と別のウィンドウ61であるメッセージウィンドウ83に表示した例を示している。
このように、本実施形態に係る情報処理装置100のデスクトップアプリケーション20は、動作環境(プラットフォーム)にあったプログラミング言語で、上記図17〜20において説明した各処理手順をコード化したプログラムを、コンピュータで実行することにより実現する。よって、本実施形態に係る情報処理装置100のデスクトップアプリケーション20を実現するプログラム(情報処理プログラム)は、コンピュータが読み取り可能な記憶媒体に格納することができる。
<ユーザによる機能定義の例>
本実施形態に係る情報処理装置100は、ユーザが、「色変換後の画像データを印刷する」と言う処理を、デスクトップアプリケーション20のモノクロ印刷機能として定義した場合を例に説明を行った。
ここからは、モノクロ印刷機能以外で、ユーザにより機能定義された「反転印刷機能」と「画像回転機能」について、図21〜図26を用いて説明する。
<<反転印刷機能>>
「反転印刷機能」は、「画像データを反転する画像処理を行い、反転された画像データを印刷する」と言う処理を、ユーザが、デスクトップアプリケーション20の1つの機能として定義したものである。
図21は、本発明の第1の実施形態に係る反転印刷機能に関する定義データ生成時の表示画面の一例を示す図である。
ユーザは、アプリケーションウィンドウ61の機能情報設定領域62で、「画像データを反転する画像処理を行い、反転された画像データを印刷する」と言う処理を、デスクトップアプリケーション20の「反転印刷機能」として定義するための機能に関する情報を設定する。また、ユーザは、アプリケーションウィンドウ61のプラグイン選択領域63で選択した「反転印刷機能」を実現するために必要な機能プラグイン(小機能)30を、実行順序(「カレントファイル」→「反転」→「印刷」の順)に従って、実行順序設定領域64にドラッグ&ドロップし、「反転印刷機能」を行うフロー(実行順序)を設定する。
これによって、本実施形態に係る情報処理装置100は、「反転印刷機能」の動作に関する情報(反転印刷機能に関する情報、並びに、反転印刷を行うために必要な機能プラグイン(小機能)30の実行順序に関する情報。)の各設定値を取得する。
図22は、本発明の第1の実施形態に係る反転印刷機能に関する定義データ21の一例を示す図である。
本実施形態に係る情報処理装置100は、定義データ生成手段42によって、図21で説明した方法で設定された「反転印刷機能」の動作に関する情報を基に、図22に示すような、機能に関する情報を定義するデータ71、並びに画像処理機能及び出力機能の実行順序及び処理対象に関する情報を定義するデータ72とから構成する定義データ21を生成し、定義データ格納手段43によって、補助記憶部13などの不揮発性の記憶装置に格納する。
図23は、本発明の第1の実施形態に係る反転印刷機能実行時の表示画面の一例を示す図である。
本実施形態に係る情報処理装置100は、タスクバー81のメニュー項目92のうち、[反転印刷]がマウスによってクリックされると、情報処理実行手段45によって、補助記憶部13などの不揮発性の記憶装置に格納された「反転印刷機能」の定義データ21を読み出し、読み出した定義データ21に定義された機能プラグイン(小機能)30の実行順序に従い、予め、補助記憶部13などの不揮発性の記憶装置に格納された機能プラグイン(小機能)30のうち、「反転印刷機能」を実現するために必要な機能プラグイン(小機能)30を実行する。
その結果、ユーザは、図23に示すような実行結果を得ることができる。
図23では、ユーザによって選択された画像データ"car_01.jpg"に対して、画像を反転する処理を行い、反転された画像データの印刷結果を、表示画面上で確認するための実行結果表示ウィンドウ84に表示した例を示している。
<<画像回転機能>>
「画像回転機能」は、「画像データを90度右方向に回転する画像処理を行う」と言う処理を、ユーザが、デスクトップアプリケーション20の1つの機能として定義したものである。
図24は、本発明の第1の実施形態に係るに画像回転機能(右90度)に関する定義データ生成時の表示画面の一例を示す図である。
ユーザは、アプリケーションウィンドウ61の機能情報設定領域62で、「画像データを90度右方向に回転する画像処理を行う」と言う処理を、デスクトップアプリケーション20の「画像回転機能」として定義するための機能に関する情報を設定する。また、ユーザは、アプリケーションウィンドウ61のプラグイン選択領域63で選択した「画像回転機能」を実現するために必要な機能プラグイン(小機能)30を、実行順序(「ファイル操作」→「回転」の順)に従って、実行順序設定領域64にドラッグ&ドロップし、「画像回転機能」を行うフロー(処理手順)を設定する。このとき、ユーザは、選択した機能プラグイン(小機能)30に実行条件が設定できる場合(画像の回転方向及び回転角度の組み合わせ)、実行条件設定領域65で条件値(制御パラメータ値)を設定する(右方向に90度回転する条件値(制御パラメータ値)を設定する)。
これによって、本実施形態に係る情報処理装置100は、「画像回転機能」の動作に関する情報(画像回転機能に関する情報、並びに、画像回転を行うために必要な機能プラグイン(小機能)30の実行条件及び実行順序に関する情報。)の各設定値を取得する。
図25は、本発明の第1の実施形態に係る画像回転機能(右90度)に関する定義データ21の一例を示す図である。
本実施形態に係る情報処理装置100は、定義データ生成手段42によって、図24で説明した方法で設定された「画像回転機能」の動作に関する情報を基に、図25に示すような、機能に関する情報を定義するデータ71、並びに画像処理機能の実行順序及び処理対象に関する情報を定義するデータ72とから構成する定義データ21を生成し、定義データ格納手段43によって、補助記憶部13などの不揮発性の記憶装置に格納する。
図26は、本発明の第1の実施形態に係る画像回転機能実行時の表示画面の一例を示す図である。
本実施形態に係る情報処理装置100は、タスクバー81のメニュー項目92のうち、[右回転]がマウスによってクリックされると、情報処理実行手段45によって、補助記憶部13などの不揮発性の記憶装置に格納された「画像回転機能」の定義データ21を読み出し、読み出した定義データ21に定義された機能プラグイン(小機能)30の実行順序に従い、予め、補助記憶部13などの不揮発性の記憶装置に格納された機能プラグイン(小機能)30のうち、「画像回転機能」を実現するために必要な機能プラグイン(小機能)30を実行する。
その結果、ユーザは、図26に示すような実行結果を得ることができる。
図26では、ユーザによって選択された画像データ"20060124.tif"に対して、画像を右方向に90度回転する処理を行い、回転された画像データの結果を、表示画面上で確認するための実行結果表示ウィンドウ84に表示した例を示している。
<まとめ>
以上のように、本発明の第1の実施形態によれば、本実施形態に係る情報処理装置100は、「デスクトップアプリケーション20が実行する処理を使用目的や用途などに応じて容易に変更する」と言う機能を、以下の処理手順により実現している。
(手順1)動作に関する情報の設定
本実施形態に係る情報処理装置100は、デスクトップアプリケーション20のUIを介して、ユーザから、自身がアプリケーションによって行いたい処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の実行条件や実行順序などの動作に関する情報が設定される。
その結果、情報処理装置100は、デスクトップアプリケーション20によって行う処理を1つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション20によって行う処理を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の「実行条件及び実行順序に関する情報」と、情報処理手段41(機能プラグイン(小機能)30)の「処理対象に関する情報」とを取得する。
(手順2)定義データ21の生成
本実施形態に係る情報処理装置100は、定義データ生成手段42により、(手順1)で取得した「機能に関する情報」、「実行条件及び実行順序に関する情報」、及び「処理対象に関する情報」とが、所定の形式に従って定義された定義データ21を生成する。
(手順2−1)機能に関する情報を定義するデータ71の生成
情報処理装置100は、ユーザから設定された「機能に関する情報」の各設定値を基に、機能に関する情報を定義するタグの間に、「定義名(機能名)」、「定義種類」、「メニュー名」、及び「メニュー項目領域」それぞれを定義するタグとともに対応する値(例えば、文字列や数値など。)を埋め込み、機能に関する情報を定義するデータ71を生成する。
(手順2−2)実行条件、実行順序、及び処理対象に関する情報を定義するデータ72の生成
情報処理装置100は、ユーザから設定された「実行条件及び実行順序に関する情報」の各設定値を基に、情報処理手段41(機能プラグイン(小機能)30)の処理対象名と処理対象を定義するタグ(「定義開始タグ」と「定義終了タグ」)、及び条件値(制御パラメータ値:例えば、文字列や数値など。)と実行条件(制御パラメータ)を定義するタグ(「定義開始タグ」と「定義終了タグ」)とを埋め込み、実行条件、実行順序、及び処理対象に関する情報を定義するデータ72を生成する。
情報処理装置100は、定義データ格納手段43により、生成された後に、主記憶部12のRAM上に一時保持された定義データ21を、補助記憶部13などの不揮発性の記憶装置内の所定の領域に格納する。
(手順3)定義データ21の実行
本実施形態に係る情報処理装置100は、情報処理実行手段45により、定義データ21に基づいて情報処理手段41(機能プラグイン(小機能)30)を実行する。
(手順3−1)定義データ21の特定
情報処理装置100は、メニュー項目表示手段44によりメニュー項目92として表示された「定義名(機能名)」が、ユーザから選択されたときに、補助記憶部13などの不揮発性の記憶装置に格納された複数個の定義データ21の中から、ユーザが選択した機能に対応する(選択された「定義名(機能名)」が定義されている)定義データ21を特定する。
(手順3−2)定義データの解析
情報処理装置100は、定義データ21のデータ構造を解釈することのできるパーサー(例えば、XMLパーサー。)により、特定した定義データ21の構文解析を行う。
(手順3−3)機能プラグイン(小機能)30の実行
情報処理装置100は、構文解析によって得られた情報、すなわち、定義データ21に定義された、機能を実現するために必要な情報処理手段41(機能プラグイン(小機能)30)の処理対象、実行条件、及び実行順序に従って、情報処理手段41(機能プラグイン(小機能)30)に実行を指示する(補助記憶部13などの不揮発性の記憶装置に格納された情報処理手段41(機能プラグイン(小機能)30)を、主記憶部12のRAM上に展開(ロード)する)。
このように、本実施形態に係る情報処理装置100は、上記(手順1)〜(手順3)によって、ユーザが、アプリケーションによって行いたい処理を実現するために必要な機能プラグイン(小機能)30の実行条件や実行順序などの動作に関する情報を、データとして所定の形式に従って定義し、そのデータを基に機能プラグイン(小機能)30を自動的に実行することができる。
よって、本実施形態に係る情報処理装置100は、デスクトップアプリケーション20が実行する処理を使用目的や用途などに応じて容易に変更することができる。
第1の実施形態に基づき本発明の説明を行ってきたが、本発明の第1の実施形態に係る情報処理装置100の「定義データ21」は、本実施形態において説明した方法によって生成する他、例えば、定義データ21を記述する言語仕様に従って、情報処理装置100が有するエディタソフトを用いて編集しても良い。
また、本発明の第1の実施形態に係る情報処理装置100の「情報通知機能」は、本実施形態において説明した方法によって通知する他、例えば、タスクバー81のポップアップによって表示させても良い。
最後に、上記各実施形態に挙げた形状に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。