(57)【要約】【課題】アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーション機能を実現することのできる情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体を提供する。【解決手段】情報処理装置１００は、アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手段４１を有し、情報処理手段４１を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理装置１００であって、情報処理手段４１の実行結果に応じて分岐処理を行う分岐処理実行手段４３を有することを特徴とする。【選択図】図４
2009048485.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手段を有し、前記情報処理手段を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理装置であって、
前記情報処理手段の実行結果に応じて分岐処理を行う分岐処理実行手段を有することを特徴とする情報処理装置。
【請求項２】
当該情報処理装置は、
前記情報処理手段の実行結果に応じて分岐処理するための条件を示す分岐条件情報と、分岐した後に実行される情報処理手段の実行順序を示す実行順序情報と、分岐した後に実行する情報処理手段で処理されるデータを示す処理対象情報とを定義した定義データを生成する定義データ生成手段を有し、
前記分岐処理実行手段は、
前記定義データ生成手段により生成された定義データに基づいて前記分岐処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記定義データ生成手段は、
前記定義データの前記分岐条件情報に、前記小機能を実現する前記情報処理手段を識別する識別情報と、前記情報処理手段の属性情報とを定義することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手順を有し、前記情報処理手順を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理方法であって、
前記情報処理手順を前記所定の実行順序に従って実行するときに、
前記情報処理手順を実行して得た実行結果に応じて分岐処理を行う分岐処理実行手順を有することを特徴とする情報処理手順。
【請求項５】
アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手段を有し、前記情報処理手段を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理プログラムであって、
コンピュータを、
前記情報処理手段の実行結果に応じて分岐処理を行うように実行させる情報処理プログラム。
【請求項６】
請求項５に記載の情報処理プログラムを記録した、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デスクトップアプリケーションに係り、特に複数の小機能（最小単位の機能）を所定の実行順序に従って実行することで、アプリケーションが有する１つの機能を実現する情報処理装置に関するものである。
【背景技術】
【０００２】
同じアプリケーションであっても、そのアプリケーションを使用するユーザによって使用目的や用途は様々である。
【０００３】
そのため、アプリケーションを開発し、ユーザに提供する企業にとっては、提供したアプリケーションがユーザの使用目的や用途に十分に対応できているか否か、すなわち、自社のアプリケーションがユーザから高い顧客満足度を得られるか否かと言う点が、アプリケーションを販売する上で重要となる。
【０００４】
そこで、アプリケーションの多くは、ユーザサイドにおいて、必要な機能が拡張できるように、予め、全てのユーザに共通して提供する基本的な機能（以下、「基本機能」と言う。）と、ユーザが必要なときに拡張可能な機能（以下、「拡張機能」と言う。）とに分けて開発され、ユーザに提供されている。
【０００５】
その結果、ユーザは、必要に応じて、「基本機能」を搭載したアプリケーションが動作する情報処理装置に、アプリケーション本体のプログラムとは別の形で提供された「拡張機能」用のプログラムをインストールすることにより、使用目的や用途に応じた機能拡張を行うことができる。
【０００６】
このような、機能拡張を実現するために開発された「拡張機能」用のプログラムを、「プラグイン」と言う。
【０００７】
例えば、特許文献１には、システムが有する複数個の文書管理DB（Data Base）との間でデータ通信を行うためにDBそれぞれを接続する機能を、文書管理ソフトウェア（アプリケーション本体）のプログラムとは別のプログラム（DB接続機能プラグイン）として構成する統合文書管理システムが提案されている。
【０００８】
このように、統合文書管理システムを構成することで、ユーザが、UI（User Interface）を介して文書操作を行う際に、システムが有するDBの種類を意識することなく操作を行うことができる他、DB間のデータ通信に関する仕様変更やDBの設計変更、また新たなDBの追加などが発生した場合でも、開発サイドは、その変更点への対応をプラグイン単位で行えば良いため、カスタマイズが容易であるなどの効果が挙げられている。
【０００９】
しかし、上記のようなプラグインを用いてアプリケーションの機能拡張を行い、プラグインにより提供される各機能を組み合わせて一連の処理を行う場合、例えば、各機能の実行をその都度ユーザが指示しなければならないなど、一連の処理を終えるまでの操作が煩雑になると言う問題点がある。
【００１０】
現在では、より簡便に一連の処理を行うために、拡張された最小単位の機能である小機能を所定の実行順序に従って実行することで、１つの機能として一連の処理を実現するアプリケーションが提案されている。
【特許文献１】特開２００１−５１８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の「複数の小機能を所定の実行順序に従って実行することで１つの機能を実現するアプリケーション」では、一連の処理の中で実行する小機能及びその実行順序を予め決めておく必要がある。そのため、既に実行した小機能の実行結果に応じて、これから実行する小機能を動的に決定することができない。すなわち、実行結果に応じた分岐処理を行うことができなかった。
【００１２】
例えば、ユーザが所定の画像処理を行った画像データの印刷を行うときに、画像データの色特性（カラー画像かモノクロ画像か）に応じてカラー印刷又はモノクロ印刷を切り替えて動作させたい場合には、カラー印刷を行う機能とモノクロ印刷を行う機能と、それぞれの印刷機能に対して実行する小機能及びその実行順序を予め決めておく必要があり、１つの印刷機能の中でカラー印刷又はモノクロ印刷を分岐処理することができない。
【００１３】
そこで、本発明では、上記従来技術の問題点に鑑み、アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーション機能を実現することができる情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の情報処理装置は、アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手段を有し、前記情報処理手段を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理装置であって、前記情報処理手段の実行結果に応じて分岐処理を行う分岐処理実行手段を有することを特徴とする。
【００１５】
これによって、本発明の情報処理装置は、小機能の実行結果に応じた分岐処理を行い、次に実行する小機能を動的に決定することにより、アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーション機能を実現することができる。
【００１６】
また、上記目的を達成するため、本発明の情報処理装置は、前記情報処理手段の実行結果に応じて分岐処理するための条件を示す分岐条件情報と、分岐した後に実行される情報処理手段の実行順序を示す実行順序情報と、分岐した後に実行する情報処理手段で処理されるデータを示す処理対象情報とを定義した定義データを生成する定義データ生成手段を有し、前記分岐処理実行手段が、前記定義データ生成手段により生成された定義データに基づいて前記分岐処理を行うことを特徴とする。
【００１７】
また、上記目的を達成するため、本発明の情報処理装置は、前記定義データ生成手段において、前記定義データの前記分岐条件情報に、前記小機能を実現する前記情報処理手段を識別する識別情報と、前記情報処理手段の属性情報とを定義することを特徴とする。
【００１８】
上記目的を達成するため、本発明の情報処理方法は、アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手順を有し、前記情報処理手順を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理方法であって、前記情報処理手順を前記所定の実行順序に従って実行するときに、前記情報処理手順を実行して得た実行結果に応じて分岐処理を行う分岐処理実行手順を有することを特徴とする。
【００１９】
これによって、本発明の情報処理方法は、小機能の実行結果に応じた分岐処理を行い、次に実行する小機能を動的に決定することにより、アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーション機能を実現することができる。
【００２０】
上記目的を達成するため、本発明の情報処理プログラムは、アプリケーションが有する１つの機能を構成する複数の小機能それぞれを実現する小機能ごとの情報処理手段を有し、前記情報処理手段を所定の実行順序に従って実行することで前記アプリケーションの機能を実現する情報処理プログラムであって、コンピュータを、前記情報処理手段の実行結果に応じて分岐処理を行うように実行させる。
【００２１】
これによって、本発明の情報処理プログラムは、コンピュータを、小機能の実行結果に応じて次に実行する小機能を決定する分岐処理を行うように実行させることができる。
【００２２】
よって、本発明の情報処理プログラムは、アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーションを実現することができる。
【発明の効果】
【００２３】
本発明によれば、小機能の実行結果に応じた分岐処理を行い、次に実行する小機能を動的に決定することにより、アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーション機能を実現するできる情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体を提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の好適な実施の形態（以下、「実施形態」と言う。）について、図面を用いて詳細に説明する。
【００２５】
［第１の実施形態］
＜情報処理装置のハードウェア構成について＞
まず、本実施形態に係る情報処理装置１００のハードウェア構成について、図１を用いて説明する。
【００２６】
図１は、本発明の実施形態１に係る情報処理装置１００のハードウェア構成の一例を示す図である。
【００２７】
図１に示すように、本実施形態に係る情報処理装置１００は、制御部１１、主記憶部１２、補助記憶部１３、ネットワークI/F１４、外部記憶装置I/F１５、外部装置I/F１６、出力装置I/F１７、及び入力装置I/F１８とから構成されている。
【００２８】
制御部（CPU：Central Processing Unit）１１は、以下に説明する主記憶部１２、補助記憶部１３、及びネットワークI/F１４など、本実施形態に係る情報処理装置１００が有する各装置の制御を行う。また、制御部１１は、主記憶部１２や補助記憶部１３などに記憶されたプログラムを実行する装置で、入力装置や記憶装置からデータを受け取り、データを演算・加工した上で、出力装置や記憶装置に出力する（例えば、キーボードで入力した文字をディスプレイに表示するなど）。
【００２９】
主記憶部（ROM：Read Only Memory、RAM：Random Access Memory）１２は、制御部１１が実行するプログラムや関連するデータを記憶（一時的に保持する場合も含む）する装置である。ROMには、制御部１１が実行するプログラムや関連するデータが記憶されており、記憶されたプログラムや関連するデータは、制御部１１により、必要に応じてRAM上へ展開（ロード）され、展開（ロード）されたプログラムや関連するデータは、制御部１１により、演算・加工される。
【００３０】
補助記憶部（HD：Hard Disk）１３は、基本ソフトウェアであるOS（Operating System）や本実施形態に係る情報処理プログラムを含むアプリケーションプログラムや機能拡張用のプラグインなどを関連するデータとともに記憶する装置である。また、補助記憶部１３には、本実施形態に係る情報処理装置１００が管理する各種情報（例えば、プラグインの実行条件や実行順序を定義した定義情報など。）が格納され、DBやファイルシステム（File System）などにより管理される。
【００３１】
ネットワークI/F１４は、有線及び／又は無線回線などのデータ伝送路により構築されたLAN（Local Area Network）、WAN（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器（例えば、他の情報処理装置や画像形成装置など。）と本実施形態に係る情報処理装置１００とのインタフェースである。
【００３２】
外部記憶装置I/F１５は、USB（Universal Serial Bus）などのデータ伝送路を介して接続された外部記憶装置（例えば、記憶メディアドライブなど。）と本実施形態に係る情報処理装置１００とのインタフェースである。
【００３３】
外部装置I/F１６は、USBなどのデータ伝送路を介して接続された外部装置（例えば、外付けHDやUSBメモリなど。）と本実施形態に係る情報処理装置１００とのインタフェースである。
【００３４】
本実施形態に係る情報処理装置１００は、これらのインタフェースを介して、外部と各種データのやり取り（送受信や読み込み／書き込み）を行う。
【００３５】
出力装置I/F１７は、専用ケーブルなどのデータ伝送路を介して接続された出力装置（例えば、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）など。）と本実施形態に係る情報処理装置１００とのインタフェースである。
【００３６】
入力装置I/F１８は、USBなどのデータ伝送路を介して接続された入力装置（例えば、キーボードやマウスなど。）と本実施形態に係る情報処理装置１００とのインタフェースである。
【００３７】
このように、本実施形態に係る情報処理装置１００は、制御部１１によって、補助記憶部１３に格納された本実施形態に係る情報処理プログラムを主記憶部１２のRAM上に展開（ロード）し、展開（ロード）したプログラムを実行することで、以降に説明する「ユーザの使用目的や用途に対して柔軟に対応可能なデスクトップアプリケーション」を実現している。
【００３８】
＜情報処理装置のソフトウェア構成について＞
次に、本実施形態に係る情報処理装置１００のソフトウェア構成について、図３を用いて説明する。
【００３９】
図２は、本発明の第１の実施形態に係る情報処理装置１００のソフトウェア構成の一例を示す図である。
【００４０】
図２に示すように、本実施形態に係る情報処理装置１００に実装するデスクトップアプリケーション２０に関するソフトウェアは、デスクトップアプリケーション２０、機能プラグイン３０、及びコアプログラム（コアモジュール群）３１とから構成されている。
【００４１】
デスクトップアプリケーション２０は、定義データ２１、UIプラグイン（UIパーツ）２２、及びアプリケーションプロセス２３とから構成されている。
【００４２】
定義データ２１は、デスクトップアプリケーション２０によって行う処理を実現するために必要なプラグインの実行条件や実行順序などの動作に関する情報が所定の形式に従って定義されたデータであり、複数個のデータ（データ群）によって構成されている。
【００４３】
図３は、本発明の第１の実施形態に係る定義データ２１のデータ構造の一例（条件分岐がない場合）を示す図である。
【００４４】
図３に示すデータは、XML（Extensible Markup Language）と言われるマークアップ言語によって記述した定義データ２１に一例である。
【００４５】
XMLは、タグと呼ばれる特定の文字列によって文書やデータの意味や構造を記述するマークアップ言語の１つで、ユーザが独自のタグを指定することができる。
【００４６】
このような言語特性から、本実施形態に係る定義データ２１では、独自の「定義開始タグ」（例えば"＜Tag＞"など）と「定義終了タグ」（例えば"＜/Tag＞"など）との間に、動作に関する情報（例えばProc_1など）を記述することで定義する（例えば"＜Tag＞Proc_1＜/Tag＞"など）。よって、上記の「所定の形式」とは、開始タグと終了タグとの間に、動作に関する情報を配置する形式を意味する。
【００４７】
また、本実施形態に係る定義データ２１では、「開始タグ」と「終了タグ」とから、定義するデータ構造を階層化する。例えば、定義Ａの「開始タグ」に対応する定義Ａの「終了タグ」との間に、定義Ｂの「開始タグ」と「終了タグ」を埋め込み、更に、定義Ｂの「開始タグ」に対応する定義Ｂの「終了タグ」との間に、定義Ｃの「開始タグ」と「終了タグ」及び定義Ｄの「開始タグ」と「終了タグ」とを埋め埋め込んだ場合、定義Ａの構成要素が定義Ｂとなり、定義Ｂの構成要素が定義Ｃ及びＤとなる。このように、一対のタグの間に、別のタグを入れ子のように埋め込んでいくことで、定義するデータを階層化することができる。
【００４８】
定義データ２１に定義する動作に関する情報には、主に、デスクトップアプリケーション２０によって行う処理を１つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション２０によって行う処理を実現するために必要な機能プラグイン（小機能）３０の「実行条件や実行順序に関する情報」と、機能プラグイン（小機能）３０の「処理対象に関する情報」の３つの情報がある。
【００４９】
＜＜機能に関する情報＞＞
（a）定義名（機能名）
複数個の機能プラグイン（小機能）３０によって行う処理を１つの機能として定義したときの定義名を示す情報（複数個の機能プラグイン（小機能）３０を実行することで実現される機能名を示す情報）。
（b）定義種類
定義した機能の種類（例えば、システムサイドの機能やユーザサイドの機能など。）を示す情報。
（c）メニュー名
定義した機能が、デスクトップアプリケーション２０のメニュー項目の１つとして表示するときに該当するメニュー名を示す情報。
（d）メニュー項目領域
定義した機能が、デスクトップアプリケーション２０のメニュー項目の１つとして表示するときに、該当するメニューのうち、表示するメニュー項目の領域を示す情報。
【００５０】
＜＜実行条件や実行順序に関する情報＞＞
（e）実行条件
情報処理手段４１（機能プラグイン（小機能）３０）で処理を行うときに、処理を制御するためのパラメータ。
（f）実行順序
複数個の機能プラグイン（小機能）３０を並べた順番（記述された順番（図３の処理Ａと処理Ｂ））。
【００５１】
＜＜処理対象に関する定義＞＞
（g）処理対象
機能プラグイン（小機能）３０の処理対象であるデータの名前や、そのデータを出力した機能プラグイン（小機能）３０の名前を示す情報。
【００５２】
図３に示す定義データ２１では、これらの情報を各情報に対応した「開始タグ」と「終了タグ」によって定義している。
【００５３】
よって、定義データ２１は、「機能に関する情報」を定義するデータ７１と、「実行条件、実行順序、及び処理対象に関する情報」を定義するデータ７２とから構成される。
【００５４】
図２に戻り、UIプラグイン（UIパーツ）２２は、デスクトップアプリケーション２０のUIを構成するプログラム（UIを構成する最小単位の機能（小機能））であり、複数個のプログラム（モジュール群）によって構成されている。
【００５５】
アプリケーションプロセス２３は、OSから主記憶部１２のRAM上に使用可能なメモリ領域の割り当てを受けて、処理を実行するプログラムである。アプリケーションプロセス２３によって実行される処理は、例えば、UIプラグイン（UIパーツ）２２を用いてCRTやLCDなどの出力装置にUIを表示するための描画処理、定義データ２１に定義された動作条件や動作順序などの動作に関する情報に従って機能プラグイン（小機能）３０の動作を指示するプラグイン実行処理、UIから受け付けた動作に関する情報を基に定義データ２１を生成する定義データ生成処理などである。
【００５６】
機能プラグイン３０は、デスクトップアプリケーション２０の機能を実現するために所定の情報処理を行うプログラムであり、複数個のプログラム（モジュール群）によって構成されている。ここで言う「所定の情報処理」とは、例えば、「ファイル選択」、「リサイズ（変倍）」、「カラー印刷」、「モノクロ印刷」、及び「メッセージ表示」などのような、デスクトップアプリケーション２０の機能を構成する最小単位の機能（小機能）を実現する処理を意味する。
【００５７】
機能プラグイン３０が実現する最小単位の機能（小機能）は、主に、情報処理装置１００に入力された入力データに対して画像処理を行う処理（画像処理機能）と、入力データ及び／又は画像処理後のデータの出力を行う処理（出力機能）と、画像処理及び出力処理を行うときにその実行状態や実行結果などの情報をCRTやLCDなどの出力装置を介してユーザに通知する処理（情報通知機能）との３つの機能分類に含まれるいずれか１つの機能である。
【００５８】
このような機能プラグイン（小機能）３０は、デスクトップアプリケーション２０を情報処理装置１００にインストールしたときや必要に応じて追加インストールしたときに、インストーラーによって補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域に格納される。ここで言う「所定の記憶領域」とは、インストーラーによって指定される格納先アドレス（例えばディレクトリパスやフォルダパス）が示す記憶領域を意味する。
【００５９】
コアプログラム３１は、アプリケーションプロセス２３からの動作指示に従って機能プラグイン（小機能）３０を実行するプログラムや、アプリケーションプログラムとプラグインモジュールとの間のデータインタフェース（以下、「データI/F」と言う。）プログラムと言った、アプリケーションプログラムとプラグインモジュールとの間で共通化されたプログラムであり、複数個のプログラム（モジュール群）によって構成されている。
【００６０】
上記の構成により、本実施形態に係るデスクトップアプリケーション２０に関するソフトウェアは、以下のように動作する。この動作は、ユーザが、「デスクトップアプリケーション２０のメニュー項目を選択した」ときの一例である。
（１） UIを介してユーザからの機能動作指示を受け取る。
（２） アプリケーションプロセス２３は、UIから受け取った動作指示を、データI/Fを介してコアプログラム３１に渡す。
（３） コアプログラム３１は、アプリケーションプロセス２３から受け取った動作指示に従って、指示された機能の動作に関する情報が定義された定義データ２１を特定する（複数個ある定義データ２１の中から、UI上のメニュー項目に対応付けられた定義データ２１を、例えば、定義データ２１のファイル名や定義データ２１に定義された「機能に関する情報」などを基に特定する）。コアプログラム３１は、特定した定義データ２１を基に、定義された実行条件や実行順序などの動作に関する情報に従って機能プラグイン（小機能）３０を実行する。
【００６１】
このように、本実施形態に係るデスクトップアプリケーション２０に関するソフトウェアは、ユーザの機能動作指示に従って、OSから割り当てられた主記憶部１２のRAM上のメモリ領域に、上記に説明したプログラムやデータを展開（ロード）し、展開（ロード）したプログラムを制御部１１により実行することでアプリケーションが有する１つの機能を実現している。
【００６２】
＜情報処理装置の主な機能を構成する手段について＞
では、本実施形態に係る情報処理装置１００が、図１のハードウェア構成及び図２のソフトウェア構成によって実現されるデスクトップアプリケーション２０において、機能プラグイン（小機能）３０の実行結果に応じた分岐処理を行うための主な機能を構成する各手段について、図４〜１４を用いて説明する。
【００６３】
図４は、本発明の第１の実施形態に係る情報処理装置１００の主な機能を構成する手段の一例を示すブロック図である。
【００６４】
本実施形態に係る情報処理装置１００が有するデスクトップアプリケーション２０において、機能プラグイン（小機能）３０の実行結果に応じた分岐処理を行うための主な機能は、情報処理手段４１、定義データ生成手段４２、及び分岐処理実行手段４３とから構成されている。以下に、各手段について説明する。
【００６５】
情報処理手段４１は、デスクトップアプリケーション２０の機能を実現するために所定の情報処理を行うものであり、図２で説明した機能プラグイン（小機能）３０を制御部１１で実行することにより行われる。
【００６６】
よって、情報処理手段４１は、予め、補助記憶部１３などの不揮発性の記憶装置に格納された機能プラグイン（小機能）３０が、必要に応じて（ユーザの動作指定に応じて）主記憶部１２のRAM上に展開（ロード）され制御部１１によって実行されることで、デスクトップアプリケーション２０の機能を構成する最小単位の機能（小機能）を実現する。
【００６７】
図４には、その一例として、画像処理機能である「ファイル選択」の処理を行う情報処理手段４１a（ファイル選択プラグイン）と「リサイズ（変倍）」を行う情報処理手段４１b（リサイズプラグイン）、また、出力機能である「カラー印刷」を行う情報処理手段４１c（カラー印刷プラグイン）と「モノクロ印刷」を行う情報処理手段４１d（モノクロ印刷プラグイ）、更に、情報通知機能である「メッセージ表示」を行う情報処理手段４１d（メッセージ表示プラグイン）とが示されている。
【００６８】
次に、定義データ生成手段４２は、デスクトップアプリケーション２０によって行う処理を実現するために必要な機能プラグイン（小機能）３０の実行条件や実行順序などの動作に関する情報を、図３に示すような所定の形式に従って定義して定義データ２１を生成する。
【００６９】
定義データ生成手段４２では、独自のタグを用いた所定の形式に従って、動作に関する情報の意味を記述した定義データ２１を生成することによって、複数個の機能プラグイン（小機能）３０（例えば図４に示す情報処理手段４１a〜４１e）により行われる処理を、デスクトップアプリケーション２０の１つの機能（複数個の小機能から構成される機能）として定義する。
【００７０】
そのため、本実施形態に係る情報処理装置１００では、ユーザがデスクトップアプリケーション２０によって行いたい処理の実行条件や実行順序などの動作に関する情報を、定義データ２１に定義することで、デスクトップアプリケーション２０の１つの機能として実行させることができる。
【００７１】
図３に示す定義データ２１には、機能プラグイン（小機能）３０が行う処理Ａの次に、無条件で他の機能プラグイン（小機能）３０が行う処理Ｂが実行され、デスクトップアプリケーション２０の１つの機能を実現すると言う一連の処理を実現する実行順序が定義されたデータ例が示されている。
【００７２】
例えば、ユーザが、処理Ａ及び処理Ｂを行った後に、処理Ａ又は処理Ｂの実行結果に応じて、後に行う処理を動的に切り替えて機能させたい場合がある。
【００７３】
このような場合、従来のデスクトップアプリケーション２０では、処理Ｂの実行後に行う処理の実行順序を、本来動的に切り替えて機能させたい処理パターンの数だけ、処理Ａ及び処理Ｂを行う実行順序を定義した定義データ２１とは別の定義データ２１に定義しておき、処理Ｂを実行した後に、処理Ｂの実行後に行う処理の実行順序を定義した複数の定義データ２１から、ユーザ自身が処理Ａ又は処理Ｂの実行結果に応じて適切な定義データ２１を選択し、機能を実現しなければならなかった。
【００７４】
そこで、定義データ生成手段４２では、デスクトップアプリケーション２０で行いたい「機能に関する情報」や機能を実現するための機能プラグイン（小機能）３０の「実行条件、実行順序、及び処理対象に関する情報」などを定義し、更に、機能プラグイン（小機能）３０の実行結果に応じて分岐処理を行う「分岐処理に関する情報」を定義した定義データ２１を生成する。このとき、定義データ生成手段４２は、「機能に関する情報」や「実行条件、実行順序、及び処理対象に関する情報」を定義したときと同様の方法、すなわち独自のタグを用いた所定の形式に従って「分岐処理に関する情報」を定義する。
【００７５】
定義データ生成手段４２は、以下に示す分岐処理の定義するときの方針に基づいて、「分岐処理に関する情報」を定義した定義データ２１を生成している。
（方針１）１つ以上の機能プラグイン（小機能）３０が所定の実行順序に従って行う処理のまとまりを１つの「処理状態」（以下、「状態」と言う。）とみなす。
（方針２）分岐処理は、（方針１）に示した状態の遷移によって定義する。
【００７６】
例えば、ユーザが、処理Ａ及び処理Ｂを行った後に、処理Ａ又は処理Ｂの実行結果に応じて、処理Ｃ及び処理Ｄを組み合わせた処理と、処理Ｅ及び処理Ｆを組み合わせた処理とを動的に切り替えて機能させたい場合、図５のフローに示すような処理の流れになる。
【００７７】
図５は、本発明の第１の実施形態に係る分岐処理を定義するデータ構造の一例（その１）を示す図である。
【００７８】
図５には、状態１において既に実行した処理Ａ又は処理Ｂの実行結果に応じて所定の分岐処理を行い、実行結果が分岐条件１に該当した場合には、状態１から処理Ｃ及び処理Ｄを行う状態２へ遷移し、また実行結果が分岐条件２に該当した場合には、状態１から処理Ｅ及び処理Ｆを行う状態３へ遷移することで、分岐後の処理を動的に切り替える処理の流れが示されている。
【００７９】
よって、定義データ生成手段２１により生成された定義データ２１は、「状態に関する情報」を定義するデータと「分岐処理に関する情報」を定義するデータ７３とから構成される。
【００８０】
図５には、図中のフローに示す処理の流れを基に、「分岐処理に関する情報」を定義したデータ７３の一例が示されている。
【００８１】
図５に示す「分岐処理に関する情報」を定義したデータ７３からも分かるように、定義データ生成手段４２は、「状態に関する情報」及び「分岐処理に関する情報」を、以下に挙げる独自のタグによって定義する。
【００８２】
＜＜状態を定義するタグ＞＞
＜State name = "状態N"＞・・・＜/State＞
機能プラグイン（小機能）３０が行う処理のまとまりである「状態N」を定義する開始・終了タグ。
【００８３】
＜＜分岐処理を定義するタグ＞＞
＜Choose name = "分岐名"＞・・・＜/Choose＞
分岐処理を定義する開始・終了タグ。
＜When test = "条件式（分岐条件１or２）"＞・・・＜/When＞
条件式の分岐条件を満たした場合の状態遷移を定義する開始・終了タグ。
＜otherwise＞・・・＜/otherwise＞
条件式の分岐条件を満たさなかった場合の状態遷移を定義する開始・終了タグ。
＜Next State＞ 状態X ＜/Next State＞
分岐処理によって遷移する「状態X」を定義する開始・終了タグ。
【００８４】
また、定義データ生成手段４２は、上記に示した［＜When＞］タグの中で、図６及び図７に示すような所定の規則に従って分岐処理の条件式を定義する。
【００８５】
図６は、本発明の第１の実施形態に係る条件分岐における条件式５２の一例を示す図である。また、図７は、本発明の第１の実施形態に係る条件分岐における条件式５２の比較演算子５１の一例を示す図である。
【００８６】
図６には、状態１の処理Ｂの実行結果の値「PropertyValue」が「X」以上か否かが分岐条件として定義された条件式５２の一例が示されている。
【００８７】
ここで、図６の中に示す「状態１の処理Ｂの実行結果の値」について説明する。本実施形態に係る機能プラグイン（小機能）３０は、プラグイン処理の中で取り扱うオブジェクトの性質を表す属性情報を持っている。例えば、オブジェクトが画像データの場合には、色情報（Color）や幅（Width）及び高さ（Height）などを属性情報として持つ。機能プラグイン（小機能）３０において、具体的に「どういった属性情報を持つか」については、プラグインによって異なり、機能提供する開発者側で機能プラグイン（小機能）３０の中で取り扱うオブジェクトの性質に応じて設定する。
【００８８】
本実施形態では、上記の属性情報を持つ機能プラグイン（小機能）３０によって機能を実現する構成としたことで、機能プラグイン（小機能）３０の中で取り扱うオブジェクトの属性情報を処理途中の実行結果として条件分岐時に参照し、分岐処理を実現している。よって、定義データ生成手段４２は、図６に示すように、生成する定義データ２１の中で、「機能プラグイン（小機能）３０の属性情報の値（実行結果の値）」、「比較演算子」、及び「比較条件値」とを所定の規則に従って分岐条件として設定している。
【００８９】
上記の点を踏まえて、以下に、定義データ生成手段４２による分岐条件を含む定義データの生成について説明する。
【００９０】
定義データ生成手段４２は、機能プラグイン（小機能）３０の実行結果の値（"状態１．処理Ｂ．PropertyValue"）と、図７に示す比較演算子５１（"&gt;="）と、比較条件値（'X'）とを連結した文字列（"状態１．処理Ｂ．PropertyValue &gt;= X"）を生成する。
【００９１】
次に、定義データ生成手段４２は、生成した文字列（"状態１．処理Ｂ．PropertyValue &gt;= X"）を、条件式５２を示す文字列（"FuncRet：//"）に連結し、図６に示すような条件式５２を生成する。
【００９２】
生成された条件式５２は、定義データ生成手段４２によって、「＜When＞」タグの中に埋め込まれる。
【００９３】
このように、定義データ生成手段４２は、上記の方法によって、「機能に関する情報」、「実行条件、実行順序、及び処理対象に関する情報」、「状態に関する情報」、及び「分岐処理に関する情報」を、所定の形式に従って定義し、図８に示すような定義データ２１を生成する。
【００９４】
図８は、本発明の第１の実施形態に係る定義データ２１のデータ構造の一例（条件分岐がある場合）を示す図である。
【００９５】
図８には、処理Ａ及び処理Ｂを行う状態１から、所定の分岐条件を基に、処理Ａ又は処理Ｂの実行結果に応じて、状態１から処理Ｃ及び処理Ｄを行う状態２又は処理Ｅ及び処理Ｆを行う状態３のどちらか一方の状態に遷移すると言う分岐処理の流れを定義した定義データ２１の一例が示されている。
【００９６】
定義データ生成手段４２により生成された定義データ２１は、定義の開始タグ［＜CookFlowRecipe＞］と終了タグ［＜/CookFlowPecipe＞］との間に、「機能に関する情報」と「状態に関する情報」とが定義される。
【００９７】
更に、「状態に関する情報」には、機能を実現するために必要な状態（図８では状態１〜３）が定義される。
【００９８】
開始タグ［＜State＞］と終了タグ［＜/State＞］との間に定義された状態には、分岐処理を含む状態（図８では状態１）と、分岐処理後に遷移する状態（図８では状態２又は状態３）がある。分岐処理を含む状態（図８では状態１）には、機能プラグイン（小機能）３０の「実行条件及び実行順序に関する情報」や「分岐処理に関する情報」が定義され、一方、分岐処理後に遷移する状態（図８では状態２又は状態３）には、機能プラグイン（小機能）３０の「実行条件、実行順序、及び処理対象に関する情報」が定義される。
【００９９】
また、分岐処理後に遷移する状態（図８では状態２又は状態３）には、分岐処理後に所定の情報処理を行うデータを示す「データ名」と、このデータを生成した所定の情報処理を示す「処理名」とを含む「処理対象に関する情報」が定義される。
【０１００】
では、本実施形態に係る情報処理装置１００において、「ユーザが行いたい処理の実行条件、実行順序、及び分岐処理などの動作に関する情報をどのような方法で設定し、定義データ生成手段４２によって定義データ２１を生成するのか」について、以下に、図９〜１２を用いて説明する。
【０１０１】
以下の説明では、ユーザが、「リサイズ後（変倍後）の画像データがカラー画像の場合にカラー印刷、またモノクロ画像の場合にモノクロ印刷を行う」と言う変倍印刷処理を、デスクトップアプリケーション２０の１つの機能（変倍印刷機能）として定義データ２１に定義する場合を例にしている。
【０１０２】
＜＜機能に関する情報の定義＞＞
まず、本実施形態に係る情報処理装置１００において、ユーザが、「機能に関する情報」を定義する方法について説明する。
【０１０３】
図９は、本発明の第１の実施形態に係る画像処理機能に関する定義データ生成時の表示画面の一例を示す図である。
【０１０４】
情報処理装置１００は、ユーザによってデスクトップアプリケーション２０が起動されると、アプリケーションプロセス２３によって、図９に示すようなUIを備えたアプリケーションウィンドウ６１をCRTやLCDなどの出力装置に表示する。
【０１０５】
アプリケーションウィンドウ６１は、「機能に関する情報」を設定するUI領域として機能情報設定領域６２を備えている。
【０１０６】
機能情報設定領域６２は、「定義名（機能名）」を入力するテキストボックス６２a、「定義種類」を設定するプルダウンメニュー６２b、定義した機能をデスクトップアプリケーション２０のメニュー項目の１つとして表示するときに該当する「メニュー名」を設定するプルダウンメニュー６２c、定義した機能をデスクトップアプリケーション２０のメニュー項目の１つとして表示するときに該当するメニューのうち、表示する「メニュー項目領域」を設定するテキストボックス６２d、並びに、機能に関する情報や実行条件及び実行順序に関する情報について行った定義情報を確定する［確定］ボタン６２eとから構成されている。
【０１０７】
ユーザは、上記に説明した機能情報設定領域６２が備えるテキストボックス６２a及び６２dに、キーボードなどの入力装置から設定値（テキストデータ）を入力し、プルダウンメニュー６２b及び６２cから設定値を選択することで、定義データ生成手段４２により定義データ２１（機能に関する情報を定義するデータ７１）を生成するときに必要な情報を設定する。
【０１０８】
図９では、ユーザが、上記の各UIを介して、「定義名（機能名）」を"変倍印刷"、「定義種類」を"ユーザコマンド"、「メニュー名」を"ファイル"、「メニュー項目領域」を"Output"と設定し、変倍印刷機能をデスクトップアプリケーション２０の１つの機能として設定した例が示されている。
【０１０９】
これによって、定義データ生成手段４２は、ユーザが、UIを介して設定した設定値を基に、図３に示した開始タグ［＜RecipeProperty＞］と終了タグ［＜/RecipeProperty＞］との間に、「定義名（機能名）」、「定義種類」、「メニュー名」、及び「メニュー項目領域」のそれぞれを定義するタグとともに対応する値（例えば文字列や数値など）を、所定の形式に従って配置し、機能に関する情報を定義するデータ７１を生成する。
【０１１０】
＜＜実行条件、実行順序、処理対象、及び分岐処理に関する情報の定義＞＞
次に、本実施形態に係る情報処理装置１００において、ユーザが、「実行条件、実行順序、及び処理対象に関する情報」や「分岐処理に関する情報」などを定義する方法について説明する。
【０１１１】
図９に示すアプリケーションウィンドウ６１は、「実行条件、実行順序、及び処理対象に関する情報」を設定するUI領域として、「実行順序及び処理対象に関する情報」を設定する実行順序設定領域６４と、「実行条件に関する情報」を設定する実行条件設定領域６５とを備えている。
【０１１２】
また、アプリケーションウィンドウ６１は、「実行条件、実行順序、及び処理対象に関する情報」を設定するときに、設定の対象となる機能プラグイン（小機能）３０を選択するためのプラグイン選択領域６３を備えている。図９に示すように、プラグイン選択領域６３には、現在、情報処理装置１００にインストールされた（補助記憶部１３などの不揮発性の記憶装置に格納された）機能プラグイン（小機能）３０の一覧が表示される。
【０１１３】
ユーザは、「実行順序に関する情報」について設定を行う場合、選択可能な機能プラグイン（小機能）３０の一覧が表示されたプラグイン選択領域６３から、デスクトップアプリケーション２０によって行いたい処理を実現するために必要な機能プラグイン（小機能）３０を、マウスなどのポインティングデバイスを介して選択（マウスの場合には「ドラッグ」）し、選択したままの状態で実行順序設定領域６４へ移動し、選択解除（マウスの場合には「ドロップ」）することで、定義データ生成手段４２により定義データ２１（実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２）を生成するときに必要な実行順序を設定する。以降では、ユーザが用いるポインティングデバイスにマウスを使うことを想定して説明する。
【０１１４】
（Ａ）画像処理の定義
情報処理装置１００にインストールされた機能プラグイン（小機能）３０が有する画像処理機能について設定を行う場合、ユーザは、まず、プラグイン選択領域６３に画像処理機能に関する機能プラグイン（小機能）３０の一覧（画像処理機能のプラグイン選択領域６３a）を表示させるため、領域内の［画像処理］タブをクリックする。
【０１１５】
次に、表示された画像処理機能に関する機能プラグイン（小機能）３０の一覧から、必要な機能プラグイン（小機能）３０をドラッグし、実行順序設定領域６４にドロップする。
【０１１６】
図９では、ユーザが、画像データのリサイズ（変倍）処理を実現するために、「ファイル選択」の次に行う「リサイズ（変倍）」の処理に対応したリサイズプラグイン４１bを、画像処理機能のプラグイン選択領域６３aからドラッグし、実行順序設定領域６４において、「ファイル選択」の処理を行うファイル選択プラグイン４１aの処理の次に行う処理に位置する領域（図中の［カレントファイル］の下）にドロップした例（図中の［リサイズ］）が示されている。
【０１１７】
このように、実行順序において機能プラグイン（小機能）３０の前後関係が１対１の場合には、後に行う機能プラグイン（小機能）３０が処理するデータ、すなわち後に行う処理対象が明確であるため、「処理対象に関する情報」について設定を行う必要がない。
【０１１８】
また、機能プラグイン（小機能）３０の中には、実行条件（制御パラメータ）が設定できるものがあり、図９に示すように、アプリケーションウィンドウ６１が、テキストボックスやプルダウンメニューなどから実行条件（制御パラメータ）を設定する実行条件設定領域６５を備えている。
【０１１９】
ユーザは、「実行順序に関する情報」について設定を行う場合、実行条件設定領域６５のテキストボックスやプルダウンメニューから、実行条件（制御パラメータ）の値を設定する（テキストボックスの場合にはキーボードから値を入力し、プルダウンメニューの場合には該当するメニュー項目をマウスで選択する。）ことで、定義データ生成手段４２により定義データ２１（実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２）を生成するときに必要な実行条件を設定する。
【０１２０】
図９では、ユーザが、画像データを75％に変倍するために、リサイズ（変倍）の倍率を示す「変倍率（％）」に"75"を入力し、リサイズプラグイン４１bの実行条件（制御パラメータ）の値を設定した例が示されている。
【０１２１】
（Ｂ）出力処理の定義
情報処理装置１００にインストールされた機能プラグイン（小機能）３０が有する出力機能について設定を行う場合、画像処理機能の場合と同様に、ユーザは、プラグイン選択領域６３に出力機能に関する機能プラグイン（小機能）３０の一覧（出力機能のプラグイン選択領域６３b）を表示させるため、領域内の［出力］タブをクリックする。
【０１２２】
次に、表示された画像処理機能に関する機能プラグイン（小機能）３０の一覧から、必要な機能プラグイン（小機能）３０をドラッグし、実行順序設定領域６４にドロップする。
【０１２３】
図１０は、本発明の第１の実施形態に係る出力機能に関する定義データ生成時の表示画面の一例を示す図である。
【０１２４】
図１０では、ユーザが、リサイズ後（変倍後）の画像データを基にカラー印刷又はモノクロ印刷の切り替え処理を実現するために、リサイズプラグイン４１bの実行結果に応じて、次に行う「カラー印刷」又は「モノクロ印刷」の処理に対応したカラー印刷プラグイン４１c又はモノクロ印刷プラグイン４１dを、出力機能のプラグイン選択領域６３bからドラッグし、実行順序設定領域６４において、リサイズプラグイン４１bの処理の次に行う処理に位置する領域（図中の［リサイズ］の下）にドロップした例（図中の［モノクロ印刷］及び［カラー印刷］）が示されている。
【０１２５】
実行順序において機能プラグイン（小機能）３０の前後関係が、分岐処理によって１対nになる場合には、分岐処理後に行うn個の機能プラグイン（小機能）３０が処理するデータ、すなわち処理対象を明確するため、「処理対象に関する情報」について設定を行う必要がある。
【０１２６】
そのため、図１０に示すように、ユーザは、機能プラグイン（小機能）３０の実行順序を設定するときに用いた実行順序設定領域６４を介して、分岐処理後に行う機能プラグイン（小機能）３０において処理するデータ、すなわち処理対象を設定する。
【０１２７】
ユーザは、「処理対象に関する情報」について設定を行う場合、実行順序設定領域６４に配置された、分岐処理前に行う機能プラグイン（小機能）３０のデータを示すドラッグポイント（図中の黒く塗りつぶされた丸）をドラッグし、分岐処理後に行う機能プラグイン（小機能）３０を示すブロック領域（図中の［カラー印刷］又は［モノクロ印刷］）にドロップすることで、定義データ生成手段４２により定義データ２１（実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２）を生成するときに必要な処理対象を設定する。
【０１２８】
図１０では、ユーザが、リサイズプラグイン４１bにより所定の画像処理が行われた画像データを、分岐処理後に行うカラー印刷プラグイン４１c又はモノクロ印刷プラグイン４１dで処理する処理対象として設定した例が示されている。
【０１２９】
また、このタイミングで、リサイズプラグイン４１bの実行結果に応じて、次に行う処理を「カラー印刷」又は「モノクロ印刷」のどちらか一方とする分岐処理の分岐条件を設定する必要がある。
【０１３０】
そのため、図１０に示すように、ユーザは、機能プラグイン（小機能）３０の実行条件を設定するときに用いた実行条件設定領域６５を介して分岐条件を設定する。
【０１３１】
ユーザは、「分岐処理に関する情報」について設定を行う場合、実行条件設定領域６５のテキストボックスから分岐条件の条件式５２を設定する（テキストボックスの場合にはキーボードから値を入力する）ことで、定義データ生成手段４２により定義データ２１（分岐処理に関する情報を定義するデータ７３）を生成するときに必要な分岐条件を設定する。
【０１３２】
図１０では、ユーザが、画像データの色情報を基に「カラー印刷」又は「モノクロ印刷」の切り替え処理を実現するために、リサイズプラグイン４１bがリサイズ（変倍）した画像データの属性情報である色情報「Color」の値を実行結果の値として２より大きいか否かの分岐条件を表現した文字列（"Color ＞ 2"）を入力し、リサイズプラグイン４１bの実行後に行う分岐処理の分岐条件を設定した例が示されている。このように分岐条件が設定されると、定義データ生成手段４２によって、「プラグイン名．属性情報（色情報："Color"）」と、「比較演算子（'＜'）」と、「比較条件値（'2'）」とに基づいて、分岐条件の条件式５２を生成し、定義データ２１に定義する。
【０１３３】
（Ｃ）情報通知処理の定義
情報処理装置１００にインストールされた機能プラグイン（小機能）３０が有する情報通知機能について設定を行う場合、画像処理機能の場合と同様に、ユーザは、プラグイン選択領域６３に情報通知機能に関する機能プラグイン（小機能）３０の一覧（情報通知機能のプラグイン選択領域６３c）を表示させるため、領域内の［通知］タブをクリックする。
【０１３４】
次に、表示された画像処理機能に関する機能プラグイン（小機能）３０の一覧から、必要な機能プラグイン（小機能）３０をドラッグし、実行順序設定領域６４にドロップする。
【０１３５】
図１１は、本発明の第１の実施形態に係る情報通知機能に関する定義データ生成時の表示画面の一例を示す図である。
【０１３６】
図１１では、ユーザが、カラー印刷又はモノクロ印刷を行った後にその結果を通知する印刷結果通知処理を実現するために、「カラー印刷」又は「モノクロ印刷」の次に行う「メッセージ表示」の処理に対応したメッセージ表示プラグイン４１eを、情報通知機能のプラグイン選択領域６３bからドラッグし、実行順序設定領域６４において、カラー印刷プラグイン４１c及びモノクロ印刷プラグイン４１dそれぞれの処理の次に行う処理に位置する領域（図中の［カラー印刷］又は［モノクロ印刷］の下）にドロップした例（図中の［メッセージボックス］）が示されている。
【０１３７】
また、図１１に示すように、メッセージ表示プラグイン４１eは、実行条件（制御パラメータ）が設定できる。
【０１３８】
図１１では、ユーザが、実行条件設定領域６５のテキストボックスにおいて、分岐処理後にカラー印刷プラグイン４１cが行われた場合に表示するメッセージを示す「メッセージ」として実行結果文字列（"カラー印刷が終了しました。"）を入力し、また、メッセージウィンドウのタイトルを示す「タイトル」として実行機能文字列（"Color Print"）を入力し、メッセージ表示プラグイン４１eの実行条件（制御パラメータ）の値を設定した例が示されている。
【０１３９】
このように、本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０のアプリケーションウィンドウ６１が備える実行順序設定領域６４や実行条件設定領域６５などのGUI（Graphical User Interface）を介して、定義データ生成手段４２によって定義データ２１を生成するために必要な各種情報（機能を実現する機能プラグイン（小機能）３０の実行条件、実行順序、処理対象、分岐処理に関する情報）を設定ことができる。
【０１４０】
図４に戻り、定義データ生成手段４２は、図９〜１１を用いて説明を行った方法によって設定された情報を基に、機能プラグイン（小機能）３０の「実行条件、実行順序、及び処理対象に関する情報」や「分岐処理に関する情報」などを定義する独自のタグを用いて定義データ２１を生成する。
【０１４１】
図１２は、本発明の第１の実施形態に係る生成された定義データ２１の一例を示す図であり、図９〜１１に示した各種情報設定によって、定義データ生成手段４２により生成された変倍印刷機能の定義データ２１である。
【０１４２】
図１２に示すような定義データ２１は、定義データ生成手段４２により生成された後に、主記憶部１２のRAM上に一時保持される。主記憶部１２のRAM上に一時保持された定義データ２１は、図１１に示すアプリケーションウィンドウ６１の［確定］ボタン６２eが、ユーザによって選択されたときに、補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域に、例えば「定義名（機能名）」をファイル名として格納される。
【０１４３】
また、本実施形態に係る情報処理装置１００では、図１１に示すアプリケーションウィンドウ６１の［確定］ボタン６２eを選択する前に、［フローテスト実行］ボタン６６を選択することによって、主記憶部１２のRAM上に一時保持されている定義データ２１が、デスクトップアプリケーション２０で処理可能なデータとなっているか否かをチェックすることができる。例えは、定義データ２１に定義された機能プラグイン（小機能）３０の実行順序が、出力機能のプラグイン（小機能）３０を実行した後に、画像処理機能のプラグイン（小機能）３０を実行するような順序になっていた場合には、実行順序の定義に誤りがある（デスクトップアプリケーション２０で処理できない）旨をユーザに通知する。
【０１４４】
図４に戻り、定義データ生成手段４２は、図２で説明したアプリケーションプロセス２３を制御部１１で実行することにより行われる手段である。
【０１４５】
これによって、本実施形態に係る情報処理装置１００は、ユーザが行いたい処理を実現するために必要な機能プラグイン（小機能）３０（情報処理手段４１）の実行条件や実行順序などの動作に関する情報に加えて、分岐処理に関する情報を所定の形式に従ったデータとして定義することができる。
【０１４６】
定義データ生成手段４２によって定義データ２１が生成されると、図１３及び図１４に示すようにデスクトップアプリケーション２０のメニュー項目に表示される。
【０１４７】
図１３及び図１４は、本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その１及びその２）を示す図である。
【０１４８】
図１３及び図１４に示すように、定義データ２１のファイル名や定義データ２１に定義された「定義名（機能名）」などが、新たに追加された機能として、デスクトップアプリケーション２０のツールバー８１やメニュー９１のメニュー項目領域９２に表示される。
【０１４９】
このように、デスクトップアプリケーション２０のツールバー８１やメニュー項目領域９２に表示された「定義名（機能名）」がユーザによってマウスなどのポインティングデバイスにより選択されると、UIプラグイン（UIパーツ）２２からコアプログラム３１（機能を実行する手段）へ、選択された機能の動作が要求される。
【０１５０】
機能動作要求を受け付けたコアプログラム３１（機能を実行する手段）は、まず、ツールバー８１やメニュー項目領域９２に表示された「定義名（機能名）」がユーザによって選択されたときに、UIプラグイン（UIパーツ）２２から受け取った機能名を基に、補助記憶部１３などの不揮発性の記憶装置に格納された複数個の定義データ２１の中から、選択された機能に対応する定義データ２１（実行指示された機能名とファイル名が同じ定義データ２１、又は定義されている「定義名（機能名）」が同じ定義データ２１）を特定する。
【０１５１】
次に、コアプログラム３１（機能を実行する手段）は、定義データ２１を記述した言語を解釈可能なプログラム（例えば、XMLの場合はXMLパーサ（XML parser）。）により、特定した定義データ２１の構文解析を行う。
【０１５２】
その結果、コアプログラム３１（機能を実行する手段）は、構文解析によって得られた情報のうち、「分岐処理に関する情報」に基づいて分岐処理実行手段４３により分岐処理を実行する。
【０１５３】
分岐処理実行手段４３は、まず、条件式５２の文字列から、機能プラグイン（小機能）３０の実行結果の値と、比較演算子５１と、比較条件値とを抽出し、抽出した比較演算子５１を基に分岐条件を判断する。例えば、抽出した比較演算子５１が「>=」又は「gt;=」の場合には、「機能プラグイン（小機能）３０の実行結果の値が比較条件値以上であるか否か」と言う分岐条件であることを判断する。
【０１５４】
次に、分岐処理実行手段４３は、機能プラグイン（小機能）３０の実行結果の値が、条件式５２の分岐条件を満たしているか否かを判定する。
【０１５５】
分岐処理実行手段４３は、分岐条件の判定結果を基に、「状態に関する情報」から分岐処理後に実行される機能プラグイン（小機能）３０を特定し、構文解析によって得られた「実行条件、実行順序、及び処理対象に関する情報」に従って特定した機能プラグイン（小機能）３０に動作を指示する。
【０１５６】
その結果、分岐処理実行手段４３から動作指示を受け付けた機能プラグイン（小機能）３０（情報処理手段４１）は、補助記憶部１３などの不揮発性の記憶装置から主記憶部１２のRAM上に展開（ロード）され、制御部１１により実行される。
【０１５７】
分岐処理実行手段４３は、図２で説明したコアプログラム３１を制御部１１で実行することにより行われる手段である。
【０１５８】
これによって、本実施形態に係る情報処理装置１００は、機能プラグイン（小機能）３０の実行結果に応じた分岐処理を含むデスクトップアプリケーション２０の機能を実行することができる。
【０１５９】
本実施形態に係る情報処理装置１００は、上記に説明した各手段が以下の手順に従って動作することで、「機能プラグイン（小機能）３０の実行結果に応じて分岐処理を行う」と言う処理を実現している。
【０１６０】
（手順１）分岐処理に関する情報の設定
本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０のUIプラグイン（UIパーツ）２２を介して、ユーザから、アプリケーションによって行いたい処理を実現するために必要な機能プラグイン（小機能）３０（情報処理手段４１）の実行条件や実行順序などの動作に関する情報に加え、必要に応じて「分岐処理に関する情報」が設定される。
【０１６１】
（手順２）定義データ２１の生成
本実施形態に係る情報処理装置１００は、定義データ生成手段４２により、（手順１）で設定された「実行条件、実行順序、及び処理対象に関する情報」及び「分岐処理に関する情報」が、所定の形式に従って定義された定義データ２１を生成する。
情報処理装置１００は、「実行条件、実行順序、及び処理対象に関する情報」が定義されている定義データ２１に、独自のタグを用いて、ユーザから設定された設定値を基に生成した条件式５２などを配置し、「分岐処理に関する情報」を定義する。
情報処理装置１００は、生成した後に主記憶部１２のRAM上に一時保持された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域に格納する。
【０１６２】
（手順３）定義データ２１の実行
本実施形態に係る情報処理装置１００は、分岐処理実行手段４３により、定義データ２１に定義されている「分岐処理に関する情報」に基に、比較演算子５１から判断した分岐条件の判定結果に従って、特定された機能プラグイン（小機能）３０（情報処理手段４１）に動作を指示する。
その結果、情報処理装置１００は、動作指示された機能プラグイン（小機能）３０（情報処理手段４１）が、補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域から、主記憶部１２のRAM上に展開（ロード）され、制御部１１により実行される。
【０１６３】
このように、本実施形態に係る情報処理装置１００は、上記に説明した（手順１）〜（手順３）により、「機能プラグイン（小機能）３０の実行結果に応じた分岐処理」を実現している。
【０１６４】
＜情報処理装置の基本処理手順について＞
これまでに説明した本実施形態に係る情報処理装置１００の具体的な処理手順について、図１５〜１８を用いて説明する。
【０１６５】
本実施形態に係る情報処理装置１００は、例えば、補助記憶部１３に格納された「デスクトップアプリケーション２０」の処理を行う情報処理プログラムを主記憶部１２のRAM上に展開（ロード）し、制御部１１で実行する。
【０１６６】
図１５は、本発明の第１の実施形態に係るデスクトップアプリケーション２０における定義データ生成時の処理手順の一例を示すフローチャートである。
【０１６７】
本実施形態に係る情報処理装置１００は、図９に示す［フロー設定］タブがマウスによって選択され、ユーザからの新規定義データの生成要求を受け付けるまで待つ（Ｓ１０１がNOの間）。
【０１６８】
情報処理装置１００は、ユーザからの新規定義データ生成要求を受け付けた場合（Ｓ１０１がYESの場合）、アプリケーションプロセス２３によって、ユーザが行いたい処理をデスクトップアプリケーション２０の１つの機能として定義するための機能に関する情報を設定する機能情報設定領域６２、既に補助記憶部１３などの不揮発性の記憶装置に格納された機能プラグイン（小機能）３０の中からユーザが行いたい処理を実現するために必要な機能プラグイン（小機能）３０を選択するプラグイン選択領域６３、機能プラグイン（小機能）３０を実行する順序を設定する実行順序設定領域６４、及び実行する機能プラグイン（小機能）３０の実行条件（制御パラメータ）を設定する実行条件設定領域６５などの設定用のUI部を構成するために必要なUIプラグイン（UIパーツ）２２を実行し、ユーザが、定義データ２１を生成するためのUIを、CRTやLCDなどの出力装置の表示画面に描画する（Ｓ１０２）。
【０１６９】
情報処理装置１００は、新規定義データ生成に必要な設定用のUIを描画した後、アプリケーションプロセス２３によって、UIを介してユーザから受け付けた機能定義の設定指示に従い、ユーザが行いたい処理を実現するための定義データ２１を生成する（Ｓ１０３）。
【０１７０】
情報処理装置１００は、ユーザから定義データ２１の内容を確定する指示を受け付けるまで待つ（Ｓ１０４がNOの間）。例えば、ユーザが、図１１に示す機能情報設定領域６２の［確定］ボタン６２eをクリックすることにより定義データ２１の内容を確定する指示を受け付けるまで待つ。
【０１７１】
情報処理装置１００は、UIを介して定義データ２１の内容を確定する指示を受け付けた場合（Ｓ１０４がYESの場合）、アプリケーションプロセス２３によって、定義データ２１を補助記憶部１３などの不揮発性の記憶装置に格納する（Ｓ１０５）。
【０１７２】
情報処理装置１００は、図１１に示す［ブラウズテスト］タブがマウスによって選択された場合など、アプリケーションウィンドウ６１の再描画を行うタイミングで、アプリケーションプロセス２３によって、補助記憶部１３などの不揮発性の記憶装置に格納された定義データ２１を基にメニュー表示を更新する（Ｓ１０６）。
【０１７３】
このように、本実施形態に係る情報処理装置１００は、図１５に示す処理手順Ｓ１０１〜Ｓ１０６によって定義データ２１の生成を実現している。
【０１７４】
図１６は、本発明の第１の実施形態に係る定義データ生成処理の処理手順の一例を示すフローチャートである。
【０１７５】
図１６に示す処理手順Ｓ２０１〜Ｓ２０４は、図１５を用いて説明を行った処理手順Ｓ１０３で行う定義データ生成処理の処理手順である。
【０１７６】
情報処理装置１００は、まず、アプリケーションプロセス２３によって、生成する定義データ２１のうち、「機能に関する情報」を定義するデータ７１を生成する。アプリケーションプロセス２３は、UIを介して設定された「機能に関する情報」（例えば、定義した機能名を示す「定義名（機能名）」、定義した機能の種類を示す「定義種類」、メニュー項目９２に表示するときの表示位置情報である「メニュー名」及び「メニュー項目領域」など。）の各設定値を基に、それぞれの情報に対応した独自のタグ（定義の「開始タグ」と「終了タグ」）とともに設定値を所定の形式に従って配置し、「機能に関する情報」を定義したデータ７１を生成する（Ｓ２０１）。
【０１７７】
次に、情報処理装置１００は、UIを介して「分岐処理に関する情報」が設定されたか否かを判定する（Ｓ２０２）。
【０１７８】
情報処理装置１００は、「分岐処理に関する情報」が設定された場合（Ｓ２０２がYESの場合）、アプリケーションプロセス２３によって、生成する定義データ２１のうち、「分岐処理に関する情報」を定義したデータ７３を生成する。アプリケーションプロセス２３は、UIを介して設定された「分岐処理に関する情報」（例えば、分岐条件を示す条件式５２など。）の設定値を基に、それぞれの情報に対応した独自のタグ（定義の「開始タグ」と「終了タグ」）とともに設定値を所定の形式に従って配置し、「分岐処理に関する情報」を定義したデータ７３を生成する（Ｓ２０３）。
【０１７９】
また、情報処理装置１００は、「分岐処理に関する情報」が設定されていない場合（Ｓ２０２がNOの場合）、処理手順Ｓ２０４へ移る。
【０１８０】
情報処理装置１００は、アプリケーションプロセス２３によって、生成する定義データ２１のうち、機能プラグイン（小機能）３０の「実行条件、実行順序、及び処理対象に関する情報」を定義したデータ７２を生成する。アプリケーションプロセス２３は、ユーザが、必要な機能プラグイン（小機能）３０を実行順序設定領域６４にドロップして並べた順番（例えば、図１１の実行順序設定領域６４に示すフローの順番。）を基に、機能プラグイン（小機能）３０（情報処理手段４１）の処理対象名（機能プラグイン（小機能）３０が処理するデータの名前と、そのデータを出力した１つ前に定義された機能プラグイン（小機能）３０の名前）と処理対象を定義するタグ、及び必要に応じて実行条件設定領域６５で設定した条件値（制御パラメータ値）と実行条件を定義するタグとを所定の形式に従って配置し、実行する機能プラグイン（小機能）３０の数だけ、繰り返すことによって、「実行条件、実行順序、及び処理対象に関する情報」を定義したデータ７２を生成する（Ｓ２０４）。
【０１８１】
情報処理装置１００は、アプリケーションプロセス２３によって、「機能に関する情報」を定義したデータ７１と、「実行条件、実行順序、及び処理対象に関する情報」を定義したデータ７２と、「分岐処理に関する情報」を定義したデータ７３とを基に、最終的な定義データ２１を生成し、生成した定義データ２１を主記憶部１２のRAM上に一時保管する。
【０１８２】
このように、主記憶部１２のRAM上に一時保管されている定義データ２１は、図１５の処理手順Ｓ１０５で説明したように、アプリケーションプロセス２３によって、補助記憶部１３などの不揮発性の記憶装置に格納される。
【０１８３】
図１７は、本発明の第１の実施形態に係るデスクトップアプリケーション機能実行時の処理手順の一例を示すフローチャートである。
【０１８４】
本実施形態に係る情報処理装置１００は、マウスによるメニュー選択など、ユーザからの機能動作要求を受け付けるまで待つ（Ｓ３０１がNOの間）。
【０１８５】
情報処理装置１００は、ユーザからの機能動作要求を受け付けた場合（Ｓ３０１がYESの場合）、アプリケーションプロセス２３が、UIを介して受け付けたユーザからの機能動作要求を、データI/Fを介してコアプログラム３１に渡し、要求を受け取ったコアプログラム３１によって、メニュー項目９２に表示された「定義名（機能名）」に対応する定義データ２１（「定義名（機能名）」が定義された定義データ２１）を、格納された補助記憶部１３などの不揮発性の記憶装置から読み取り、定義データ２１を記述した言語が解釈可能なプログラム（例えば、XML言語の場合XMLパーサ。）をコアプログラム３１から起動し、読み取った定義データ２１を構文解析する（Ｓ３０２）。
【０１８６】
情報処理装置１００は、コアプログラム３１によって、構文解析で特定した機能プラグイン（小機能）３０に動作を指示する（Ｓ３０３）。
【０１８７】
また、情報処理装置１００は、コアプログラム３１によって、実行順序に従ってユーザが行いたい処理を実現するために必要な全ての機能プラグイン（小機能）３０に対して動作を指示したか否かを判定する（Ｓ３０４）。
【０１８８】
情報処理装置１００は、必要な機能プラグイン（小機能）３０に対して動作が指示された場合（Ｓ３０４がYESの場合）、動作指示を受け取った機能プラグイン（小機能）３０によって、実行条件や処理対象であるデータを基に所定の情報処理が実行され、その実行結果を、CRTやLCDなどの出力装置の表示面に表示する（Ｓ３０５）。例えば、実行結果を知らせるメッセージを、アプリケーションウィンドウ６１とは別のウィンドウに表示する。表示後は、処理手順Ｓ３０１に戻り、再びユーザからの機能動作要求を待つ。
【０１８９】
また、情報処理装置１００は、まだ動作指示されていない機能プラグイン（小機能）３０が残っている場合（Ｓ３０５がNOの場合）、処理手順Ｓ３０３に戻り、定義データ２１を読み取ったときに取得した、動作に関する情報（定義データ２１を記述した言語が解釈可能なプログラムにより構文解析した結果）のうちの機能プラグイン（小機能）３０の実行順序に従って、次に実行する機能プラグイン（小機能）３０に対して、処理手順Ｓ３０３以降の処理を行う。
【０１９０】
このように、本実施形態に係る情報処理装置１００は、図１７に示す処理手順Ｓ３０１〜Ｓ３０５によって、ユーザが行いたい処理を実現するために必要な（アプリケーションの１つの機能を実現するために必要な）機能プラグイン（小機能）３０の実行を実現している。
【０１９１】
図１８は、本発明の第１の実施形態に係る定義データ実行処理の処理手順の一例を示すフローチャートである。
【０１９２】
図１８に示す処理手順Ｓ４０１〜Ｓ４０４は、図１７を用いて説明を行った処理手順Ｓ３０３で行う機能プラグイン（小機能）実行処理の処理手順である。
【０１９３】
情報処理装置１００は、コアプログラム３１によって、定義データ２１に定義された、ユーザが行いたい処理を実現するために必要な機能プラグイン（小機能）３０の動作に関する情報（定義データ２１を記述した言語が解釈可能なプログラムにより構文解析した結果）のうち、「分岐処理に関する情報」を定義するデータ７３があるか否かを判定する（Ｓ４０１）。
【０１９４】
情報処理装置１００は、「分岐処理に関する情報」を定義するデータ７３がない場合（Ｓ４０１がNOの場合）、コアプログラム３１によって、機能プラグイン（小機能）３０の実行条件（制御パラメータ）の設定値及び機能プラグイン（小機能）３０の処理対象名を参照し（Ｓ４０２）、実行条件の設定値及び処理対象名（処理対象であるデータ名）を基に、機能プラグイン（小機能）３０に動作を指示する（Ｓ４０３）。
【０１９５】
また、情報処理装置１００は、「分岐処理に関する情報」を定義するデータ７３があった場合（Ｓ４０１がYESの場合）、分岐処理の分岐条件である条件式５２を参照し、条件式５２基に、機能プラグイン（小機能）３０の実行結果に応じて指定された状態、すなわち分岐処理後に行う機能プラグイン（小機能）３０の処理のまとまり（分岐処理後の実行順序）に遷移する（Ｓ４０４）。状態遷移後、情報処理装置１００は、処理手順Ｓ４０２へ移る。
【０１９６】
このように、状態遷移後、遷移した状態で行われる機能プラグイン（小機能）３０の実行条件（制御パラメータ）の設定値及び機能プラグイン（小機能）３０の処理対象名を参照し、実行条件の設定値及び処理対象名（処理対象であるデータ名）を基に、遷移した状態で行われる機能プラグイン（小機能）３０に動作を指示する。
【０１９７】
図１９は、本発明の第１の実施形態に係る機能実行時の表示画面の一例（変倍印刷機能の場合）を示す図である。
【０１９８】
例えば、図９〜１１の説明で例に挙げた変倍印刷機能では、図１５〜１８で説明した情報処理プログラムを、本実施形態に係る情報処理装置１００の制御部１１で実行することで、図１９に示すような動作結果が得られる。
【０１９９】
図１９では、データ閲覧領域８２に表示されたカラー画像である画像データが選択され、タスクバー８１に表示された［変倍印刷］のメニュー項目９２がマウスによってクリックされた後に、図１２に示した定義データ２１に従って、カラー画像変倍後にカラー印刷が実行され、メッセージ表示プラグイン４１eによって、実行条件で設定された印刷終了を通知するメッセージ「カラー印刷が終了しました。」を、アプリケーションウィンドウ６１と別のウィンドウであるメッセージウィンドウ８３に表示した例が示されている。
【０２００】
このように、本実施形態に係るデスクトップアプリケーション２０は、動作環境（プラットフォーム）にあったプログラミング言語で上記図１５〜１８に示す各処理手順がコード化された情報処理プログラムを、制御部１１で実行することにより実現される。よって、本実施形態に係る情報処理プログラム（デスクトップアプリケーション２０を実現するプログラム）は、コンピュータが読み取り可能な記録媒体に格納することができる。
【０２０１】
その結果、本実施形態に係る情報処理装置１００は、外部記憶装置I/F１５を介してこの記録媒体から情報処理プログラムを読み取り、インストール（補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域に格納）することで、本実施形態に係るデスクトップアプリケーション２０を機能させることができる。
【０２０２】
＜分岐処理を利用したデスクトップアプリケーションの機能例＞
本実施形態に係る情報処理装置１００では、デスクトップアプリケーション２０の１つの機能一例として説明を行ってきた「変倍印刷機能」の他、分岐処理を利用して様々な機能を実現することができる。
【０２０３】
図２０は、本発明の第１の実施形態に係る分岐処理が定義された定義データ２１を用いた画像表示切り替え機能の例を示す図である。
【０２０４】
図２０には、画像データの類似度に応じて分岐処理を行い、画像データの表示形式を、画像データの編集が可能な表示スタイルＡ又は編集不可能な表示スタイルＢを切り替えて機能させる例が示されている。
【０２０５】
このような場合、従来のデスクトップアプリケーション２０では、定義データ２１において機能プラグイン（小機能）３０の一連の動作に関する情報しか定義することができなかったため、編集可能な表示スタイルＡと編集不可能な表示スタイルＢのそれぞれにおいて別の定義データ２１を生成しておき（一連の動作単位で定義データ２１を生成しておき）、画像データの類似度判定結果を基に、ユーザによって表示スタイルＡと表示スタイルＢとを切り替えて使用する（条件に応じて複数の定義データ２１を適宜組み合わせて使用する）必要があり、定義データ２１に定義できる機能プラグイン（小機能）３０の動作に関する情報が制限されていた。その結果、デスクトップアプリケーション２０において、定義データ２１を用いて実行可能な機能も限られた機能範囲でしか実現できなかった。
【０２０６】
しかし、本実施形態に係るデスクトップアプリケーション２０は、予め設定しておいた分岐条件を基に機能プラグイン（小機能）３０の実行結果に応じて分岐処理を行い、次に実行する機能プラグイン（小機能）３０を動的に決定することによって、一連の動作を連携させた複雑な機能プラグイン（小機能）３０の動作に関する情報を定義データ２１に定義することができる。
【０２０７】
図２１及び図２２は、本発明の第１の実施形態に係る分岐処理を定義するデータ構造の一例（その２及びその３）を示す図である。
【０２０８】
例えば、図２１に示すような「分岐処理に関する情報」を定義したデータ７３を利用することで、一定の条件（図中の分岐条件１）を満たした場合にのみ所定の情報処理（図中の処理Ｃ及び処理Ｄ）を行うことができる。この分岐処理によって、デスクトップアプリケーション２０の機能の中で例外処理（エラー処理）を実現することができる。
【０２０９】
また、図２２に示すような「分岐処理に関する情報」を定義したデータ７３を利用することで、分岐条件に一定の範囲を持たせ、各条件の範囲に対応する所定の情報処理を行うことができる。この分岐処理によって、デスクトップアプリケーション２０の機能の中で多段分岐処理を実現することができる。
【０２１０】
このように、本実施形態に係るデスクトップアプリケーション２０では、アプリケーションの１つの機能が実現する機能範囲が拡がり、ユーザの使用目的や用途に対して柔軟に対応することができる。
【０２１１】
＜まとめ＞
以上のように、本発明の第１の実施形態によれば、本実施形態に係る情報処理装置１００は、「機能プラグイン（小機能）３０の実行結果に応じて分岐処理を行う」と言う機能を、以下の処理手順により実現している。
【０２１２】
（手順１）分岐処理に関する情報の設定
本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０のUIプラグイン（UIパーツ）２２を介して、ユーザから、アプリケーションによって行いたい処理を実現するために必要な機能プラグイン（小機能）３０（情報処理手段４１）の実行条件や実行順序などの動作に関する情報に加え、必要に応じて「分岐処理に関する情報」が設定される。
【０２１３】
（手順２）定義データ２１の生成
本実施形態に係る情報処理装置１００は、定義データ生成手段４２により、（手順１）で設定された「実行条件、実行順序、及び処理対象に関する情報」及び「分岐処理に関する情報」が、所定の形式に従って定義された定義データ２１を生成する。
情報処理装置１００は、「実行条件、実行順序、及び処理対象に関する情報」が定義されている定義データ２１に、独自のタグを用いて、ユーザから設定された設定値を基に生成した条件式５２などを配置し、「分岐処理に関する情報」を定義する。
情報処理装置１００は、生成した後に主記憶部１２のRAM上に一時保持された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域に格納する。
【０２１４】
（手順３）定義データ２１の実行
本実施形態に係る情報処理装置１００は、分岐処理実行手段４３により、定義データ２１に定義されている「分岐処理に関する情報」に基に、比較演算子５１から判断した分岐条件の判定結果に従って、特定された機能プラグイン（小機能）３０（情報処理手段４１）に動作を指示する。
その結果、情報処理装置１００は、動作指示された機能プラグイン（小機能）３０（情報処理手段４１）が、補助記憶部１３などの不揮発性の記憶装置の所定の記憶領域から、主記憶部１２のRAM上に展開（ロード）され、制御部１１により実行される。
【０２１５】
このように、本実施形態に係る情報処理装置１００は、上記（手順１）〜（手順３）によって、機能プラグイン（小機能）３０の実行結果に応じて分岐処理を行い、次に実行する機能プラグイン（小機能）３０を動的に決定することができる。
【０２１６】
よって、本実施形態に係る情報処理装置１００は、アプリケーションの１つの機能が実現する機能範囲を拡げ、ユーザの使用目的や用途に対して柔軟に対応可能なアプリケーション機能を提供することができる。
【０２１７】
第１の実施形態に基づき本発明の説明を行ってきたが、本発明の第１の実施形態に係る情報処理装置１００の「定義データ２１」は、本実施形態において説明した方法によって生成する他、例えば、定義データ２１を記述する言語仕様に従って、情報処理装置１００が有するエディタソフトを用いて編集しても良い。
【０２１８】
また、本発明の第１の実施形態に係る情報処理装置１００の「条件式５２」は、本実施形態において説明した数値による比較条件値によって構成される他、例えば、処理状態や処理結果などを比較条件として用いても良い。
【０２１９】
また、本発明の第１の実施形態に係る情報処理装置１００の「定義データ２１」は、本実施形態において説明した補助記憶部１３に格納する他、外部記憶装置I/F１５を介して、メモリカードなどの他の不揮発性の記憶装置に格納しても良い。
【０２２０】
最後に、上記各実施形態に挙げた形状に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【０２２１】
【図１】本発明の第１の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図２】本発明の第１の実施形態に係る情報処理装置のソフトウェア構成の一例を示す図である。
【図３】本発明の第１の実施形態に係る定義データのデータ構造の一例（条件分岐がない場合）を示す図である。
【図４】本発明の第１の実施形態に係る情報処理装置の主な機能を構成する手段の一例を示すブロック図である。
【図５】本発明の第１の実施形態に係る分岐処理を定義するデータ構造の一例（その１）を示す図である。
【図６】本発明の第１の実施形態に係る条件分岐における条件式の一例を示す図である。
【図７】本発明の第１の実施形態に係る条件分岐における条件式の比較演算子の一例を示す図である。
【図８】本発明の第１の実施形態に係る定義データのデータ構造の一例（条件分岐がある場合）を示す図である。
【図９】本発明の第１の実施形態に係る画像処理機能に関する定義データ生成時の表示画面の一例を示す図である。
【図１０】本発明の第１の実施形態に係る出力機能に関する定義データ生成時の表示画面の一例を示す図である。
【図１１】本発明の第１の実施形態に係る情報通知機能に関する定義データ生成時の表示画面の一例を示す図である。
【図１２】本発明の第１の実施形態に係る生成された定義データの一例（変倍印刷機能の場合）を示す図である。
【図１３】本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その１）を示す図である。
【図１４】本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その２）を示す図である。
【図１５】本発明の第１の実施形態に係るデスクトップアプリケーションにおける定義データ生成時の処理手順の一例を示すフローチャートである。
【図１６】本発明の第１の実施形態に係る定義データ生成処理の処理手順の一例を示すフローチャートである。
【図１７】本発明の第１の実施形態に係るデスクトップアプリケーション機能実行時の処理手順の一例を示すフローチャートである。
【図１８】本発明の第１の実施形態に係る定義データ実行処理の処理手順の一例を示すフローチャートである。
【図１９】本発明の第１の実施形態に係る機能実行時の表示画面の一例（変倍印刷機能の場合）を示す図である。
【図２０】本発明の第１の実施形態に係る分岐処理が定義された定義データを用いた画像表示切り替え機能の例を示す図である。
【図２１】本発明の第１の実施形態に係る分岐処理を定義するデータ構造の一例（その２）を示す図である。
【図２２】本発明の第１の実施形態に係る分岐処理を定義するデータ構造の一例（その３）を示す図である。
【符号の説明】
【０２２２】
１１  制御部（CPU）
１２  主記憶部（ROM,RAM）
１３  補助記憶部（HD）
１４  ネットワークI/F
１５  外部記憶装置I/F
１６  外部装置I/F
１７  出力装置I/F
１８  入力装置I/F
２０  デスクトップアプリケーション
２１  定義データ
２２  ユーザインタフェース（UI）プラグイン（UIパーツ）
２３  アプリケーションプロセス
３０  機能プラグイン
３１  コアプログラム（コアモジュール群）
４１  情報処理手段（機能プラグイン）
４１a  情報処理手段（ファイル選択プラグイン）
４１b  情報処理手段（リサイズプラグイン）
４１c  情報処理手段（カラー印刷プラグイン）
４１d  情報処理手段（モノクロ印刷プラグイン）
４１e  情報処理手段（メッセージ表示プラグイン）
４２  定義データ生成手段
４３  分岐処理実行手段
５１  比較演算子
５２  条件式
６１  アプリケーションウィンドウ
６２  機能情報設定領域
６２a  定義名（機能名）入力用テキストボックス
６２b  定義種類設定用プルダウンメニュー
６２c  メニュー名設定用プルダウンメニュー
６２d  メニュー項目追加領域入力用テキストボックス
６２e  定義情報設定確定ボタン
６３  プラグイン選択領域
６３a  画像処理機能のプラグイン選択領域
６３b  出力機能のプラグイン選択領域
６３c  情報通知機能のプラグイン選択領域
６４  実行順序設定領域
６５  実行条件設定領域
７１  機能に関する情報を定義するデータ
７２  実行条件、実行順序、及び処理対象に関する情報を定義するデータ
７３  分岐処理に関する情報を定義するデータ
８１  ツールバー
８２  データ閲覧領域
８３  メッセージウィンドウ（メッセージボックス）
９１  メニュー
９２  メニュー項目領域
１００  情報処理装置
【図１】
2009048485.tif 000003
【図２】
2009048485.tif 000004
【図３】
2009048485.tif 000005
【図４】
2009048485.tif 000006
【図５】
2009048485.tif 000007
【図６】
2009048485.tif 000008
【図７】
2009048485.tif 000009
【図８】
2009048485.tif 000010
【図９】
2009048485.tif 000011
【図１０】
2009048485.tif 000012
【図１１】
2009048485.tif 000013
【図１２】
2009048485.tif 000014
【図１３】
2009048485.tif 000015
【図１４】
2009048485.tif 000016
【図１５】
2009048485.tif 000017
【図１６】
2009048485.tif 000018
【図１７】
2009048485.tif 000019
【図１８】
2009048485.tif 000020
【図１９】
2009048485.tif 000021
【図２０】
2009048485.tif 000022
【図２１】
2009048485.tif 000023
【図２２】
2009048485.tif 000024