(57)【特許請求の範囲】
【請求項１】
選択された複数の小機能を実現することで所定の処理を実行する情報処理装置であって、
複数の小機能により構成される機能毎に、前記小機能を実現するためのプログラムの選択を受け付ける第一の領域と、該選択を受け付けたプログラムに対応する小機能の実行順を表示する第二の領域と、該小機能が実行条件を設定可能な機能である場合には、該小機能に対応する実行条件を設定する第三の領域と、前記所定の処理に関する情報を設定する第四の領域と、を有するデータ生成画面を表示するユーザインタフェース手段と、
前記データ生成画面への入力操作に従って、当該情報処理装置により実行される前記所定の処理を機能として定義した第一の情報と、該情報処理装置により実行される前記小機能の実行順序及び該小機能が実行条件を設定可能な場合の実行条件に関する第二の情報と、該情報処理装置により実行する処理対象に関する第三の情報とを対応づけて定義した定義データを生成する定義データ生成手段と、
前記定義データに基づいて、所定の処理を実行する情報処理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記定義データ生成手段により生成された前記定義データを、記憶装置に格納する定義データ格納手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ユーザインタフェース手段は、前記データ生成画面により生成されたデータに応じたメニューを表示するメニュー表示画面を更に有し、該メニュー表示画面でメニューの追加又は削除することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記データ生成画面により生成されたデータは、
前記メニュー表示画面のメニューに、表示するための表示位置を示す表示位置情報が定義されていることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記定義データ生成手段は、
選択された順番を基に前記実行順序を定義し、選択されたプログラムに対応する小機能に対応して入力された入力値を基に前記実行条件を定義し、前記定義データを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記複数の小機能により構成される機能は、
当該情報処理装置に入力された入力データに対して所定の画像処理を行う画像処理機能と、
前記入力データ又は前記画像処理機能によって画像処理されたデータを出力する出力機能と、
前記画像処理機能及び／又は前記出力機能を実行するときに、実行状態や実行結果を示す情報を通知する情報通知機能であることを特徴とする請求項１ないし５のいずれか一項に記載の情報処理装置。
【請求項７】
前記複数の小機能の一つは、
反転機能又は回転機能であることを特徴とする請求項１ないし６のいずれか一項に記載の情報処理装置。
【請求項８】
前記情報処理手段は、
前記定義データを前記記憶装置から読み出して、読み出された定義データに定義された、実行条件や実行順序に従って、前記選択された複数の小機能を実現することを特徴とする請求項２に記載の情報処理装置。
【請求項９】
選択された複数の小機能を実現することで所定の処理を実行する情報処理装置によって実行される情報処理方法であって、
複数の小機能により構成される機能毎に、前記小機能を実現するためのプログラムの選択を受け付ける第一の領域と、該選択を受け付けたプログラムに対応する小機能の実行順を表示する第二の領域と、該小機能が実行条件を設定可能な機能である場合には、該小機能に対応する実行条件を設定する第三の領域と、前記所定の処理に関する情報を設定する第四の領域と、を有するデータ生成画面を表示するユーザインタフェース手順と、
前記データ生成画面への入力操作に従って、当該情報処理装置により実行される前記所定の処理を機能として定義した第一の情報と、該情報処理装置により実行される前記小機能の実行順序及び該小機能が実行条件を設定可能な場合の実行条件に関する第二の情報と、該情報処理装置により実行する処理対象に関する第三の情報とを対応づけて定義した定義データを生成する定義データ生成手順と、
前記定義データに基づいて、所定の処理を実行する情報処理手順と、
を有することを特徴とする情報処理方法。
【請求項１０】
選択された複数の小機能を実現することで所定の処理を実行する情報処理装置に搭載された情報処理プログラムであって、
コンピュータに、
複数の小機能により構成される機能毎に、前記小機能を実現するためのプログラムの選択を受け付ける第一の領域と、該選択を受け付けたプログラムに対応する小機能の実行順を表示する第二の領域と、該小機能が実行条件を設定可能な機能である場合には、該小機能に対応する実行条件を設定する第三の領域と、前記所定の処理に関する情報を設定する第四の領域と、を有するデータ生成画面を表示するユーザインタフェース手順と、
前記データ生成画面への入力操作に従って、当該情報処理装置により実行される前記所定の処理を機能として定義した第一の情報と、該情報処理装置により実行される前記小機能の実行順序及び該小機能が実行条件を設定可能な場合の実行条件に関する第二の情報と、該情報処理装置により実行する処理対象に関する第三の情報とを対応づけて定義した定義データを生成する定義データ生成手順と、
前記定義データに基づいて、所定の処理を実行する情報処理手順と、
を実行させることを特徴とする情報処理プログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータが読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デスクトップアプリケーションを実行する情報処理装置に関するものである。
【背景技術】
【０００２】
同じアプリケーションであっても、そのアプリケーションを使用するユーザによって使用目的や用途は様々である。
【０００３】
そのため、アプリケーションを開発し、ユーザに提供する企業にとっては、提供したアプリケーションがユーザの使用目的や用途に十分に対応できているか否か、すなわち、自社のアプリケーションがユーザから高い顧客満足度を得られるか否かと言う点が、アプリケーションを販売する上で重要となる。
【０００４】
そこで、アプリケーションの多くは、ユーザサイドにおいて、必要な機能が拡張できるように、予め、全てのユーザに共通して提供する基本的な機能（以下、「基本機能」と言う。）と、ユーザが必要なときに拡張可能な機能（以下、「拡張機能」と言う。）とに分けて開発され、ユーザに提供されている。
【０００５】
その結果、ユーザは、必要に応じて、「基本機能」を搭載したアプリケーションが動作する情報処理装置に、アプリケーション本体のプログラムとは別の形で提供された「拡張機能」用のプログラムをインストールすることにより、使用目的や用途に応じた機能拡張を行うことができる。
【０００６】
このような、機能拡張を実現するために開発された「拡張機能」用のプログラムを、「プラグイン」と言う。
【０００７】
例えば、特許文献１には、システムが有する複数個の文書管理データベース（以下、「DB：Data Base」と言う。）との間でデータ通信を行うためにDBそれぞれを接続する機能を、文書管理ソフトウェア（アプリケーション本体）のプログラムとは別のプログラム（DB接続機能プラグイン）として構成する統合文書管理システムが提案されている。
【０００８】
このように、統合文書管理システムを構成することで、ユーザが、ユーザインタフェース（以下、「UI：User Interface」と言う。）を介して文書操作を行う際に、システムが有するDBの種類を意識することなく操作を行うことができる他、DB間のデータ通信に関する仕様変更やDBの設計変更、また新たなDBの追加などが発生した場合でも、開発サイドは、その変更点への対応をプラグイン単位で行えば良いため、カスタマイズが容易であるなどの効果が挙げられている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、実際、ユーザがアプリケーションを使用するときは、使用目的や用途に応じて、プラグインにより提供された各機能を組み合わせて処理を行う。
【００１０】
例えば、図１に示すように、「入力された画像データを色変換して印刷する」と言う処理をユーザが行いたい場合、従来の方法では、プラグインとしてインストールされた、画像データを色変換する「色変換機能プラグインＰ１」（以下、「プラグインＰ１」と言う。）と画像データを印刷する「印刷機能プラグインＰ２」（以下、「プラグインＰ２」と言う。）とに、アプリケーションのUI（例えば、メニュー項目など。）を介して、処理を実行するための指示（図中の（１）及び（２））をしなければならない。すなわち、従来の方法では、ユーザが行いたい処理を実現するために、ユーザ自身が、処理を行うために必要なプラグインＰ１及びＰ２それぞれに対して（プラグイン単位で）実行の指示を行う必要がある。
【００１１】
このように、従来の方法では、使用目的や用途に応じて、プラグインにより提供された各機能を組み合わせて処理を行うときの操作がユーザにとって煩雑なものとなり、ユーザが行いたい処理に対応した拡張性のあるアプリケーションとしては、十分であると言えない。
【００１２】
また、例えば、開発サイドにおいて、ユーザが行いたい処理を１つのプラグインとして開発し、ユーザに提供すると言う対応も考えられるが、ユーザレベルに対応するプラグインの開発にかかるコストや時間などから開発サイドの負担が大きく現実的ではない。
【００１３】
そこで、本発明では、ユーザがアプリケーションによって行いたい処理を実現するために必要なプラグインＰ１及びＰ２の実行条件や実行順序などの動作に関する情報を、所定の形式に従ったデータＤとして定義し、そのデータＤを基にプラグインＰ１及びＰ２を自動的に実行すると言う方法によって、デスクトップアプリケーションが実行する処理を使用目的や用途などに応じて容易に変更できる情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の情報処理装置は、選択された複数の小機能を実現することで所定の処理を実行する情報処理装置であって、
複数の小機能により構成される機能毎に、前記小機能を実現するためのプログラムの選択を受け付ける第一の領域と、該選択を受け付けたプログラムに対応する小機能の実行順を表示する第二の領域と、該小機能が実行条件を設定可能な機能である場合には、該小機能に対応する実行条件を設定する第三の領域と、前記所定の処理に関する情報を設定する第四の領域と、を有するデータ生成画面を表示するユーザインタフェース手段と、
前記データ生成画面への入力操作に従って、当該情報処理装置により実行される前記所定の処理を機能として定義した第一の情報と、該情報処理装置により実行される前記小機能の実行順序及び該小機能が実行条件を設定可能な場合の実行条件に関する第二の情報と、該情報処理装置により実行する処理対象に関する第三の情報とを対応づけて定義した定義データを生成する定義データ生成手段と、
前記定義データに基づいて、所定の処理を実行する情報処理手段と、
を有することを特徴とする。
【００１５】
これによって、本発明の情報処理装置は、ユーザがアプリケーションによって行いたい処理を実現するために必要なプラグイン（複数個の小機能）の実行条件や実行順序などの動作に関する情報を、所定の形式に従ったデータとして定義し、そのデータを基にプラグイン（複数個の小機能）を自動的に実行することにより、デスクトップアプリケーションが実行する処理を使用目的や用途などに応じて容易に変更することができる。
【００１６】
また、これによって、本発明の情報処理装置は、デスクトップアプリケーションにおける機能追加又は変更などの対応を定義データのみで行うことができ、アプリケーション本体やプラグイン（小機能）と言ったプログラムを変更する必要がない。また、本発明の情報処理装置は、定義データを削除しても、アプリケーション本体の動作に影響することがない。
【発明の効果】
【００１７】
本発明によれば、デスクトップアプリケーションが実行する処理を使用目的や用途などに応じて容易に変更できる情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】従来技術における問題点を明らかにした図である。
【図２】本発明の第１の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施形態に係る情報処理装置のソフトウェア構成の一例を示す図である。
【図４】本発明の第１の実施形態に係る情報処理装置の主な機能を構成する手段の一例を示すブロック図である。
【図５】本発明の第１の実施形態に係るインストールされた機能プラグインが格納されている例を示す図である。
【図６】本発明の第１の実施形態に係る定義データのデータ構造に一例（XMLデータの場合）を示す図である。
【図７】本発明の第１の実施形態に係る画像処理機能に関する定義データ生成時の表示画面の一例を示す図である。
【図８】本発明の第１の実施形態に係る出力機能に関する定義データ生成時の表示画面の一例を示す図である。
【図９】本発明の第１の実施形態に係る情報通知機能に関する定義データ生成時の表示画面の一例を示す図である。
【図１０】本発明の第１の実施形態に係る生成された定義データの一例（モノクロ印刷機能の場合）を示す図である。
【図１１】本発明の第１の実施形態に係る生成された定義データが格納された様子の一例を示す図である。
【図１２】本発明の第１の実施形態に係る定義データに応じたメニュー表示の一例を示す図である。
【図１３】本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その１）を示す図である。
【図１４】本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その２）を示す図である。
【図１５】本発明の第１の実施形態に係る追加メニュー項目削除時の表示画面の一例（その１）を示す図である。
【図１６】本発明の第１の実施形態に係る追加メニュー項目削除時の表示画面の一例（その２）を示す図である。
【図１７】本発明の第１の実施形態に係るデスクトップアプリケーション起動時の処理手順を示すフローチャートである。
【図１８】本発明の第１の実施形態に係るデスクトップアプリケーションにおける定義データ生成時の処理手順を示すフローチャートである。
【図１９】本発明の第１の実施形態に係るデスクトップアプリケーション機能実行時の処理手順を示すフローチャートである。
【図２０】本発明の第１の実施形態に係る機能実行時の表示画面の一例（モノクロ印刷機能の場合）を示す図である。
【図２１】本発明の第１の実施形態に係る反転印刷機能に関する定義データ生成時の表示画面の一例を示す図である。
【図２２】本発明の第１の実施形態に係る反転印刷機能に関する定義データの一例を示す図である。
【図２３】本発明の第１の実施形態に係る反転印刷機能実行時の表示画面の一例を示す図である。
【図２４】本発明の第１の実施形態に係るに画像回転機能（右90度）に関する定義データ生成時の表示画面の一例を示す図である。
【図２５】本発明の第１の実施形態に係る画像回転機能（右90度）に関する定義データの一例を示す図である。
【図２６】本発明の第１の実施形態に係る画像回転機能実行時の表示画面の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の好適な実施の形態（以下、「実施形態」と言う。）について、図面を用いて詳細に説明する。
【００２０】
［第１の実施形態］
＜情報処理装置のハードウェア構成について＞
まず、本実施形態に係る情報処理装置１００のハードウェア構成について、図２を用いて説明する。
【００２１】
図２は、本発明の実施形態１に係る情報処理装置１００のハードウェア構成の一例を示す図である。
【００２２】
図２に示すように、本実施形態に係る情報処理装置１００は、制御部１１、主記憶部１２、補助記憶部１３、ネットワーク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やファイルシステム（FS：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などのデータ伝送路を介して接続された入力装置（例えば、キーボードやマウスなど。）と本実施形態に係る情報処理装置１００とのインタフェースである。
【００３２】
このように、本実施形態に係る情報処理装置１００は、主記憶部１２や補助記憶部１３などの記憶装置に格納された本実施形態に係る情報処理プログラムを実行し、各装置を制御することで、以降に説明する「コンピュータで実行する処理を使用目的や用途などに応じて容易に変更可能なデスクトップアプリケーション」を実現している。
【００３３】
＜情報処理装置のソフトウェア構成について＞
次に、本実施形態に係る情報処理装置１００のソフトウェア構成について、図３を用いて説明する。
【００３４】
図３は、本発明の第１の実施形態に係る情報処理装置１００のソフトウェア構成の一例を示す図である。
【００３５】
図３に示すように、本実施形態に係る情報処理装置１００に実装するデスクトップアプリケーション２０に関するソフトウェアは、デスクトップアプリケーション２０、機能プラグイン３０、及びコアプログラム（コアモジュール群）３１とから構成されている。
【００３６】
デスクトップアプリケーション２０は、定義データ２１、UIプラグイン（UIパーツ）２２、及びアプリケーションプロセス２３とから構成されている。
【００３７】
定義データ２１は、デスクトップアプリケーション２０によって行う処理を実現するために必要なプラグインの実行条件や実行順序などの動作に関する情報が所定の形式に従って定義されたデータであり、複数個のデータ（データ群）によって構成されている。
【００３８】
UIプラグイン（UIパーツ）２２は、デスクトップアプリケーション２０のUIを構成するプログラム（UIを構成する最小単位の機能（小機能））であり、複数個のプログラム（モジュール群）によって構成されている。
【００３９】
アプリケーションプロセス２３は、OSから主記憶部１２のRAM上に使用可能なメモリ領域の割り当てを受けて、処理を実行するプログラムである。アプリケーションプロセス２３によって実行される処理は、例えば、UIプラグイン（UIパーツ）２２を用いてCRTやLCDなどの出力装置にUIを表示するための描画処理や、表示されたUIから受け付けた動作に関する情報を基にした定義データ２１の生成処理などである。
【００４０】
次に、機能プラグイン３０は、デスクトップアプリケーション２０の機能を実現するために所定の情報処理を行うプログラムであり、複数個のプログラム（モジュール群）によって構成されている。ここで言う「所定の情報処理」とは、例えば、「ファイル選択」、「色変換」、「印刷」、「メッセージ表示」などのような、デスクトップアプリケーション２０の機能を構成する最小単位の機能（小機能）を実現する情報処理を意味する。
【００４１】
次に、コアプログラム３１は、定義データ２１に定義された動作条件や動作順序などの動作に関する情報に従って、機能プラグイン（小機能）３０を実行するプログラムや、アプリケーションプログラムとプラグインとの間のデータインタフェース（以下、「データI/F」と言う。）プログラムと言った、アプリケーションプログラムとプラグインとの間で共通化されたプログラム（モジュール）であり、複数個のプログラム（モジュール群）によって構成されている。
【００４２】
上記のように構成された、本実施形態に係る情報処理装置１００に実装するデスクトップアプリケーション２０に関するソフトウェアは、以下のように動作する。以下に説明する動作は、ユーザが、「デスクトップアプリケーション２０のメニュー項目を選択した」ときの一例である。
（１） UIがユーザからの動作指示を受け取る。
（２） アプリケーションプロセス２３は、UIから受け取った動作指示を、データI/Fを介してコアプログラム３１に渡す。
（３） コアプログラム３１は、アプリケーションプロセス２３から受け取った動作指示から、指示された動作に関する情報が定義された定義データ２１を特定し（複数個ある定義データ２１の中から、UI上のメニュー項目に対応付けられた定義データ２１を特定する。）、特定した定義データを基に、定義された実行条件や実行順序などの動作に関する情報に従って機能プラグイン３０を実行する。
【００４３】
このように、本実施形態に係るデスクトップアプリケーション２０に関するソフトウェアは、ユーザの起動指示に従って、OSから割り当てられた主記憶部１２のRAM上のメモリ領域に、上記に説明した各プログラムやデータを展開（ロード）し、展開（ロード）した各プログラムを制御部１１により実行することで、デスクトップアプリケーション２０においてユーザが行いたい処理を実現している。
【００４４】
＜情報処理装置の主な機能を構成する手段について＞
では、本実施形態に係る情報処理装置１００が、図２のハードウェア構成及び図３のソフトウェア構成によって実現する主な機能を構成する各手段について、図４〜１６を用いて説明する。
【００４５】
図４は、本発明の第１の実施形態に係る情報処理装置１００の主な機能を構成する手段の一例を示すブロック図である。
【００４６】
本実施形態に係る情報処理装置１００が有する機能は、情報処理手段４１、定義データ生成手段４２、定義データ格納手段４３、メニュー項目表示手段４４、及び情報処理実行手段４５とから構成されている。
【００４７】
情報処理手段４１は、デスクトップアプリケーション２０の機能を実現するために所定の情報処理を行う。
【００４８】
情報処理手段４１は、デスクトップアプリケーション２０の機能を構成する最小単位の機能（小機能）を実現する、「ファイル選択」、「色変換」、「印刷」、「メッセージ表示」などの処理を行う。
【００４９】
情報処理手段４１は、図３で説明した機能プラグイン３０を制御部１１で実行することにより行われる手段である。
【００５０】
図５は、本発明の第１の実施形態に係るインストールされた機能プラグイン３０が格納されている例を示す図である。
【００５１】
図５に示すように、機能プラグイン（小機能）３０は、デスクトップアプリケーション２０を情報処理装置１００にインストールしたときや必要に応じて追加インストールしたときに、インストーラーによって補助記憶部１３などの不揮発性の記憶装置内の所定の領域に格納される。
【００５２】
インストーラーは、図中に示す"C：\Documents and Settings\user01\aaa\bbb\Plugins"のような格納先アドレス（フォルダパス）を基に、補助記憶部１３などの不揮発性の記憶装置内の格納領域を指定し、機能プラグイン３０を決められたフォルダ内に格納する。よって、上記「所定の領域」とは、格納先アドレスで指定された補助記憶部１３などの不揮発性の記憶装置内の領域を意味する。
【００５３】
図５では、Explorer（登録商標）などのファイルやフォルダを管理するツールの閲覧ウィンドウ５１を介して、機能プラグイン（小機能）３０が格納されたフォルダ群（格納先）の一覧を閲覧した例を示している。
【００５４】
図４に戻り、情報処理手段４１は、予め、補助記憶部１３などの不揮発性の記憶装置に格納された機能プラグイン（小機能）３０が、必要に応じて（ユーザの動作指定に応じて）主記憶部１２のRAM上に展開（ロード）され制御部１１で実行されることで、デスクトップアプリケーション２０の機能を構成する最小単位の機能（小機能）を実現する、「ファイル選択」、「色変換」、「印刷」、「メッセージ表示」などの処理を行う。
【００５５】
また、情報処理手段４１は、主に、情報処理装置１００に入力された入力データに対して画像処理を行う処理（画像処理機能）、入力データ及び／又は画像処理後のデータの出力を行う処理（出力機能）、画像処理及び出力処理を行うときに、その実行状態や実行結果などの情報を、CRTやLCDなどの出力装置を介してユーザに通知する処理（情報通知機能）を行う。
【００５６】
図４では、その一例として、「ファイル選択」の処理を行う情報処理手段４１a（ファイル選択プラグイン）、「色変換」を行う情報処理手段４１b（色変換プラグイン）、「印刷」を行う情報処理手段４１c（印刷プラグイン）、及び「メッセージ表示」を行う情報処理手段４１d（メッセージ表示プラグイン）が示されている。
【００５７】
次に、定義データ生成手段４２は、デスクトップアプリケーション２０によって行う処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の実行条件や実行順序などの動作に関する情報が、所定の形式に従って定義された定義データ２１を生成する。
【００５８】
まず、定義データ２１について、図６を用いて説明する。
【００５９】
図６は、本発明の第１の実施形態に係る定義データ２１のデータ構造に一例（XMLデータの場合）を示す図である。
【００６０】
ここで例に挙げるデータは、XML（Extensible Markup Language）と言われる言語によって記述した定義データ２１である。
【００６１】
XMLは、タグと呼ばれる特定の文字列で、文書やデータの意味や構造を記述するマークアップ言語の１つで、ユーザが独自のタグを指定することができる。
【００６２】
このような言語特性から、本実施形態に係る定義データ２１では、独自の「定義開始タグ」（例えば、"<Tag>"など。）と「定義終了タグ」（例えば、"</Tag>"など。）との間に、動作に関する情報（例えば、Proc_1など。）を記述することで定義する（例えば、"<Tag>Proc_1</Tag>"など）。よって、上記の「所定の形式」とは、開始タグと終了タグとの間に、動作に関する情報を配置する形式を意味する。
【００６３】
また、「定義開始タグ」と「定義終了タグ」とから、定義するデータ構造を階層化することができる。例えば、定義Ａの「開始タグ」に対応する定義Ａの「終了タグ」との間に、定義Ｂの「開始タグ」と「終了タグ」を埋め込み、更に、定義Ｂの「開始タグ」に対応する定義Ｂの「終了タグ」との間に、定義Ｃの「開始タグ」と「終了タグ」及び定義Ｄの「開始タグ」と「終了タグ」とを埋め埋め込んだ場合、定義Ａの構成要素が定義Ｂとなり、定義Ｂの構成要素が定義Ｃ及びＤとなる。このように、１対のタグの間に、別のタグを入れ子のように埋め込んでいくことで、定義するデータを階層化することができる。
【００６４】
定義データ２１に定義する動作に関する情報には、主に、デスクトップアプリケーション２０によって行う処理を１つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション２０によって行う処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の「実行条件や実行順序に関する情報」と、情報処理手段４１（機能プラグイン（小機能）３０）の「処理対象に関する情報」の３つの情報がある。
【００６５】
＜＜機能に関する情報＞＞
（a）定義名（機能名）
複数個の情報処理手段４１（機能プラグイン（小機能）３０）によって行う処理を１つの機能として定義したときの定義名を示す情報（複数個の情報処理手段４１（機能プラグイン（小機能）３０）を実行することで実現される機能名を示す情報）。
（b）定義種類
定義した機能の種類（例えば、システムサイドの機能やユーザサイドの機能など。）を示す情報。
（c）メニュー名
定義した機能が、デスクトップアプリケーション２０のメニュー項目の１つとして表示するときに該当するメニュー名を示す情報。
（d）メニュー項目領域
定義した機能が、デスクトップアプリケーション２０のメニュー項目の１つとして表示するときに、該当するメニューのうち、表示するメニュー項目の領域を示す情報。
【００６６】
＜＜実行条件や実行順序に関する情報＞＞
（e）実行条件
情報処理手段４１（機能プラグイン（小機能）３０）で処理を行うときに、処理を制御するためのパラメータ。
（f）実行順序
複数個の情報処理手段４１（機能プラグイン（小機能）３０）を並べた順番（記述された順番（図６の処理１と処理２））。
【００６７】
＜＜処理対象に関する定義＞＞
（g）処理対象
情報処理手段４１（機能プラグイン（小機能）３０）の処理対象であるデータの名前や、そのデータを出力した情報処理手段４１（機能プラグイン（小機能）３０）の名前を示す情報。
【００６８】
これらの情報を、図６に示す定義データ２１では、以下に挙げる独自のタグによって定義している。
【００６９】
＜＜複数個の情報処理手段４１（機能プラグイン（小機能）３０）によって行う処理を１つの機能として定義するタグ＞＞
<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」を処理対象とする小機能の「処理対象に関する情報」を定義する開始・終了タグ。
【００７３】
よって、上記に挙げた、開始タグと終了タグとを用いて定義されるデータ（定義データ２１）は、図６に示すように、機能に関する情報を定義するデータ７１、実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２とから構成される。
【００７４】
図４に戻り、定義データ生成手段４２では、独自のタグを用いた所定の形式に従って、動作に関する情報の意味を記述した定義データ２１を生成する。
【００７５】
このように、定義データ生成手段４２は、複数個の情報処理手段４１（図４では、情報処理手段４１a〜４１d）により実現される処理、すなわち、複数個の機能プラグイン３０（複数個の小機能）を組み合わせて行う処理を、デスクトップアプリケーション２０の１つの機能（複数個の小機能から構成される機能）として定義する。
【００７６】
そのため、本実施形態に係る情報処理装置１００では、ユーザがデスクトップアプリケーション２０によって行いたい処理の実行条件や実行順序などの動作に関する情報を、定義データ２１に定義することで、デスクトップアプリケーション２０の１つの機能として実行させることができる。
【００７７】
では、本実施形態に係る情報処理装置１００において、「ユーザが行いたい処理の実行条件や実行順序などの動作に関する情報をどのような方法で定義し、定義データ生成手段４２によって定義データ２１を生成するのか」について、以下に、図７〜１０を用いて説明する。
【００７８】
以下の説明では、ユーザが、「色変換後の画像データを印刷する」と言う処理を、デスクトップアプリケーション２０の１つの機能（モノクロ印刷機能）として定義する場合である。
【００７９】
＜＜機能に関する情報の定義＞＞
まず、本実施形態に係る情報処理装置１００において、ユーザが、「機能に関する情報」を定義する方法を、図７を用いて説明する。
【００８０】
図７は、本発明の第１の実施形態に係る画像処理機能に関する定義データ生成時の表示画面の一例を示す図である。
【００８１】
情報処理装置１００は、ユーザによってデスクトップアプリケーション２０が起動されると、アプリケーションプロセス２３によって、図７に示すようなUIを備えたアプリケーションウィンドウ６１を表示装置に表示する。
【００８２】
アプリケーションウィンドウ６１は、「機能に関する情報」を設定するUI領域として機能情報設定領域６２を備えている。
【００８３】
機能情報設定領域６２は、「定義名（機能名）」を入力するテキストボックス６２a、「定義種類」を設定するプルダウンメニュー６２b、定義した機能をデスクトップアプリケーション２０のメニュー項目の１つとして表示するときに該当する「メニュー名」を設定するプルダウンメニュー６２c、定義した機能をデスクトップアプリケーション２０のメニュー項目の１つとして表示するときに該当するメニューのうち、表示する「メニュー項目領域」を設定するテキストボックス６２d、並びに、機能に関する情報や実行条件及び実行順序に関する情報について行った定義情報を確定する［確定］ボタン６２eとから構成されている。
【００８４】
ユーザは、上記に説明した機能情報設定領域６２が備えるテキストボックス６２a及び６２dに、キーボードなどの入力装置から設定値（テキストデータ）を入力し、プルダウンメニュー６２b及び６２cから設定値を選択することで、定義データ生成手段４２により定義データ２１（機能に関する情報を定義するデータ７１）を生成するときに必要な情報を設定する。
【００８５】
図７では、ユーザが、「色変換後の画像データを印刷する」と言う処理を、上記の各UIを介して、「定義名（機能名）」を"印刷（モノクロ）"、「定義種類」を"ユーザコマンド"、「メニュー名」を"ファイル"、「メニュー項目領域」を"Output"と設定し、デスクトップアプリケーション２０の１つの機能として定義した例が示されている。
【００８６】
これによって、定義データ生成手段４２は、ユーザが、機能情報設定領域６２を備えたUIを介して設定した設定値を基に、図６で説明した［<RecipePropaty>］と［</RecipePropaty>］の間に、「定義名（機能名）」、「定義種類」、「メニュー名」、及び「メニュー項目領域」それぞれを定義するタグ（「定義開始タグ」と「定義終了タグ」）とともに対応する値（例えば、文字列や数値など。）を埋め込み、機能に関する情報を定義するデータ７１を生成する。
【００８７】
＜＜実行条件、実行順序、及び処理対象に関する情報の定義＞＞
次に、本実施形態に係る情報処理装置１００において、ユーザが、「実行条件や実行順序に関する情報」を定義する方法を、図７〜９を用いて説明する。
【００８８】
図７に示す、アプリケーションウィンドウ６１は、「実行条件や実行順序に関する情報」を設定するUI領域として、「実行順序に関する情報」を設定する実行順序設定領域６４と、「実行条件に関する情報」を設定する実行条件設定領域６５とを備えている。
【００８９】
また、アプリケーションウィンドウ６１は、「実行条件及び実行順序に関する情報」を設定するときに、設定の対象となる機能プラグイン（小機能）３０を選択するためのプラグイン選択領域６３を備えている。図７に示すように、プラグイン選択領域６３には、現在、情報処理装置１００にインストールされた（補助記憶部１３などの不揮発性の記憶装置に格納された）機能プラグイン（小機能）３０の一覧が表示される。
【００９０】
ユーザは、「実行順序に関する情報」について設定を行う場合、選択可能な機能プラグイン（小機能）３０の一覧が表示されたプラグイン選択領域６３から、自身がデスクトップアプリケーション２０によって行いたい処理を実現するために必要な機能プラグイン（小機能）３０を、マウスなどのポインティングデバイスを介して選択（マウスの場合には「ドラッグ」。）し、選択したままの状態で実行順序設定領域６４に移動し、選択解除（マウスの場合には「ドロップ」。）することで定義データ生成手段４２により定義データ２１（実行条件及び実行順序に関する情報を定義するデータ７２）を生成するときに必要な実行順序を設定する。以降では、ユーザが用いるポインティングデバイスにマウスを使うことを想定して説明する。
【００９１】
（Ａ）画像処理の定義
情報処理装置１００にインストールされた機能プラグイン（小機能）３０が有する画像処理機能について設定を行う場合、ユーザは、まず、プラグイン選択領域６３に画像処理機能に関する機能プラグイン（小機能）３０の一覧（画像処理機能のプラグイン選択領域６３a）を表示させるため、領域内の［画像処理］タブをマウスでクリックする。
次に、表示された画像処理機能に関する機能プラグイン（小機能）３０の一覧から、必要な機能プラグイン（小機能）３０をマウスでドラッグし、実行順序設定領域６４にドロップする。
【００９２】
図７では、ユーザが、「色変換後の画像データを印刷する」と言う処理を実現するために、「ファイル選択」の次に行わなければならない「色変換」の処理に対応した色変換プラグイン４１bを、画像処理機能のプラグイン選択領域６３aからドラッグし、実行順序設定領域６４において、「ファイル選択」の処理を行うファイル選択プラグイン４１aの処理の次に行う処理に位置する領域（図中では、［カレントファイル］の下。）にドロップした例（図中の［色変換］。）を示している。
【００９３】
また、機能プラグイン（小機能）３０の中には、実行条件（制御パラメータ）が設定できるものがある。
【００９４】
図７に示すように、アプリケーションウィンドウ６１は、テキストボックスやプルダウンメニューなどから実行条件（制御パラメータ）を設定する実行条件設定領域６５を備えている。
【００９５】
ユーザは、「実行条件に関する情報」について設定を行う場合、実行条件設定領域６５のテキストボックスやプルダウンメニューから、実行条件（制御パラメータ）の値を設定する（テキストボックスの場合には、キーボードから値を入力し、プルダウンメニューの場合には、該当するメニュー項目を選択する。）ことで定義データ生成手段４２により定義データ２１（実行条件及び実行順序に関する情報を定義するデータ７２）を生成するときに必要な実行条件を設定する。
【００９６】
図７では、ユーザが、色変換の変換方法を示す「変換方法」に"モノクロ"を選択し、色変換プラグイン４１bの実行条件（制御パラメータ）の値を設定した例が示されている。
【００９７】
（Ｂ）出力処理の定義
情報処理装置１００にインストールされた機能プラグイン（小機能）３０が有する出力機能について設定を行う場合、画像処理機能の場合と同様に、ユーザは、プラグイン選択領域６３に出力機能に関する機能プラグイン（小機能）３０の一覧（出力機能のプラグイン選択領域６３b）を表示させるため、領域内の［出力］タブをマウスでクリックする。
次に、表示された画像処理機能に関する機能プラグイン（小機能）３０の一覧から、必要な機能プラグイン（小機能）３０をマウスでドラッグし、実行順序設定領域６４にドロップする。
【００９８】
図８は、本発明の第１の実施形態に係る出力機能に関する定義データ生成時の表示画面の一例を示す図である。
【００９９】
図８では、ユーザが、「色変換後の画像データを印刷する」と言う処理を実現するために、「色変換」の次に行わなければならない「印刷」の処理に対応した印刷プラグイン４１cを、出力機能のプラグイン選択領域６３bからドラッグし、実行順序設定領域６４において、色変換プラグイン４１bの処理の次に行う処理に位置する領域（図中では、［色変換］の下。）にドロップした例（図中の［印刷］。）を示している。
【０１００】
（Ｃ）情報通知処理の定義
情報処理装置１００にインストールされた機能プラグイン（小機能）３０が有する情報通知機能について設定を行う場合、画像処理機能の場合と同様に、ユーザは、プラグイン選択領域６３に情報通知機能に関する機能プラグイン（小機能）３０の一覧（情報通知機能のプラグイン選択領域６３c）を表示させるため、領域内の［通知］タブをマウスでクリックする。
次に、表示された画像処理機能に関する機能プラグイン（小機能）３０の一覧から、必要な機能プラグイン（小機能）３０をマウスでドラッグし、実行順序設定領域６４にドロップする。
【０１０１】
図９は、本発明の第１の実施形態に係る情報通知機能に関する定義データ生成時の表示画面の一例を示す図である。
【０１０２】
図９では、ユーザが、「色変換後の画像データを印刷する」と言う処理を実現するために、「印刷」の次に行わなければならない「メッセージ表示」の処理に対応したメッセージ表示プラグイン４１dを、情報通知機能のプラグイン選択領域６３bからドラッグし、実行順序設定領域６４において、印刷プラグイン４１cの処理の次に行う処理に位置する領域（図中では、［印刷］の下。）にドロップした例（図中の［メッセージボックス］。）を示している。
【０１０３】
また、図９に示すように、メッセージ表示プラグイン４１dは、実行条件（制御パラメータ）が設定できる。
【０１０４】
図９では、ユーザが、表示するメッセージを示す「メッセージ」に"印刷が終了しました。"を、また、メッセージウィンドウのタイトルを示す「タイトル」に"B/W Print"を入力し、メッセージ表示プラグイン４１dの実行条件（制御パラメータ）の値を設定した例が示されている。
【０１０５】
これによって、定義データ生成手段４２は、ユーザが、処理を行うのに必要な情報処理手段４１（機能プラグイン（小機能）３０）を、実行順序設定領域６４にドロップして並べた順番（図９の実行順序設定領域６４に示すフローの順番）に基づいて、図６で説明した、［<FlowPlugin name = "XXXX" >］と［</FlowPlugin>］との間に、情報処理手段４１（機能プラグイン（小機能）３０）の処理対象名（機能プラグイン（小機能）３０が処理するデータの名前と、そのデータを出力した１つ前に定義された機能プラグイン（小機能）３０の名前）と処理対象を定義するタグ（「定義開始タグ」と「定義終了タグ」）、及び必要に応じて実行条件設定領域６５で設定した条件値（制御パラメータ値：例えば、文字列や数値など。）と実行条件（制御パラメータ）を定義するタグ（「定義開始タグ」と「定義終了タグ」）とを埋め込み、実行する情報処理手段４１（機能プラグイン（小機能）３０）の数だけ繰り返すことにより、実行条件、実行順序、及び処理対象に関する情報を定義したデータ７２を生成する。
【０１０６】
このように、情報処理手段４１（機能プラグイン（小機能）３０）の実行順序が決定すれば、定義された情報処理手段４１（機能プラグイン（小機能）３０）毎の処理対象も決定される。よって、実行条件及び実行順序に関する情報が定義されれば、情報処理手段４１（機能プラグイン（小機能）３０）毎の処理対象に関する情報も定義される。
【０１０７】
本実施形態に係る情報処理装置１００では、ユーザが、上記に説明した（Ａ）〜（Ｃ）に示す手順により、デスクトップアプリケーション２０で行う処理の動作に関する情報を設定する。
【０１０８】
図１０は、本発明の第１の実施形態に係る生成された定義データの一例（モノクロ印刷機能の場合）を示す図である。
【０１０９】
図１０では、ユーザが、上記に説明した（Ａ）〜（Ｃ）に示す手順に従って、デスクトップアプリケーション２０のUIを介して、自身が行いたい「色変換後の画像データを印刷する」と言う処理の動作に関する情報を設定した場合、定義データ生成手段４２により生成された定義データ２１（モノクロ印刷機能に関する定義データ２１）の例を示している。
【０１１０】
［<RecipePropaty>］と［</RecipePropaty>］との間には、図７を用いて説明した方法で設定された値を基にした機能に関する情報を定義したデータ７１が生成されている。
【０１１１】
［<FlowPlugin name = "カレントファイル" >］と最後の［</FlowPlugin>］との間には、図７〜９を用いて説明した手順（Ａ）〜（Ｃ）で設定された順番（実行順序設定領域６４に配置されたフローの順番）を基にした、処理の実行順序に関する情報を定義したデータ７２が生成されている。
【０１１２】
［<FlowPlugin name = "色変換" >］と次の［</FlowPlugin>］との間には、図７を用いて説明した手順（Ａ）で設定された値を基にした画像処理機能の実行条件に関する情報を定義したデータ７２aが生成されている。また、画像処理機能の実行条件に関する情報を定義したデータ７２aの前に、画像処理機能の処理対象に関する情報を定義したデータが生成されている。「画像処理機能の処理対象」とは、色変換プラグイン４１bが処理するデータ、すなわち色変換プラグイン４１bの１つ前のファイル選択プラグイン４１aによって処理され出力されたデータである。
【０１１３】
図１０では、「色変換プラグイン４１bの処理対象」として、色変換プラグイン４１bが処理するデータ名"InputImage"と、データを出力した機能プラグイン（小機能）３０"カレントファイル"を定義した例が示されている。
【０１１４】
［<FlowPlugin name = "印刷" >］と次の［</FlowPlugin>］との間には、図８を用いて説明した手順（Ａ）で設定された出力機能の処理対象に関する情報を定義したデータが生成されている。図１０の場合、「出力機能の処理対象」とは、印刷プラグイン４１cが処理するデータ、すなわち印刷プラグイン４１cの１つ前の色変換プラグイン４１bによって処理され出力されたデータである。
【０１１５】
図１０では、「印刷プラグイン４１cの処理対象」として、印刷プラグイン４１cが処理するデータ名"InputImage"と、データを出力した機能プラグイン（小機能）３０"色変換"を定義した例が示されている。
【０１１６】
［<FlowPlugin name = "メッセージボックス" >］と次の［</FlowPlugin>］との間には、図９を用いて説明した手順（Ｃ）で設定された値を基にした情報通知機能の実行条件に関する情報を定義するデータ７２bが定義されている。また、図１０に示す情報通知機能には、処理対象に関する情報を定義するデータが生成されていない。これは、図１０に示すメッセージ表示プラグイン４１dが、他のプラグインで処理され出力されたデータを処理対象としないことを意味している。
【０１１７】
定義データ生成手段４２は、図１０のように生成した定義データ２１を、主記憶部１２のRAM上に一時保持する。
【０１１８】
また、本実施形態に係る情報処理装置１００では、図９に示すアプリケーションウィンドウ６１の［フローテスト実行］ボタン６６を選択することによって、主記憶部１２のRAM上に一時保持された定義データ２１に定義された実行条件、実行順序、及び処理対象が、デスクトップアプリケーション２０が処理可能な設定となっているか否かをチェックすることができる。例えは、定義データ２１に定義された機能プラグイン（小機能）３０の実行順序が、印刷プラグイン４１bを実行した後に、色変換プラグイン４１aを実行するような順序になっていた場合には、実行順序の定義に誤りがある（デスクトップアプリケーション２０で処理できない）旨をユーザに通知する。
【０１１９】
図４に戻り、定義データ生成手段４２は、図３で説明したアプリケーションプロセス２３を制御部１１で実行することにより行われる手段である。
【０１２０】
これによって、本実施形態に係る情報処理装置１００は、ユーザが行いたい処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の実行条件や実行順序などの動作に関する情報を、所定の形式に従ったデータとして定義することができる。
【０１２１】
次に、定義データ格納手段４３は、定義データ生成手段４２により生成された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置に格納する。
【０１２２】
定義データ格納手段４３は、アプリケーションウィンドウ６１の［確定］ボタン６２eが、ユーザによって選択されたときに、定義データ生成手段４２により生成され、主記憶部１２のRAM上に一時保持された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置内の所定の領域に格納する。また、定義データ格納手段４３は、データを格納するとき、例えば「定義名（機能名）」を、定義データ２１のファイル名とする。
【０１２３】
図１１は、本発明の第１の実施形態に係る生成された定義データ２１が格納された様子の一例を示す図である。
【０１２４】
定義データ格納手段４３は、図中に示す"C：\Documents and Settings\user01\aaa\bbb\Recipe"のような格納先アドレス（フォルダパス）を基に、補助記憶部１３などの不揮発性の記憶装置内の格納領域を指定し、指定したフォルダ内に定義データ２１を格納する。よって、上記「所定の領域」とは、格納先アドレスで指定された補助記憶部１３などの不揮発性の記憶装置内の領域を意味する。
【０１２５】
図１１では、Explorer（登録商標）などのファイルやフォルダを閲覧・管理するツールの閲覧ウィンドウ５１を介して、格納された定義データ２１の一覧を閲覧した例を示している。
【０１２６】
図４に戻り、定義データ格納手段４３は、図３で説明したアプリケーションプロセス２３を制御部１１で実行することにより行われる手段である。
【０１２７】
このように、本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０における機能追加又は変更など、ユーザの使用目的や用途に応じた対応を定義データのみで行うことができる。すなわち、ユーザは、デスクトップアプリケーション２０の機能（ユーザが行いたい処理の定義）を、アプリケーション本体やプラグイン（小機能）と言ったプログラムを変更することなく、定義データ２１のみを追加、編集、又は削除することで管理することができる。また、定義データを削除しても、アプリケーション本体の動作に影響することがない。
【０１２８】
次に、メニュー項目表示手段４４は、定義データ格納手段４３により格納された定義データ２１を基に、定義データ２１に定義された「定義名（機能名）」を、メニュー項目の１つとして、デスクトップアプリケーション２０のメニューに表示する。
【０１２９】
メニュー項目表示手段４４は、定義データ２１に定義された「定義名（機能名）」を、定義データ２１に定義された表示位置情報を基に、メニューの表示領域のうち、所定の領域に表示する。
【０１３０】
以下に、メニュー項目表示手段４４の詳細について、図１２〜１６を用いて説明する。
【０１３１】
図１２は、本発明の第１の実施形態に係る定義データ２１に応じたメニュー表示の一例を示す図である。
【０１３２】
メニュー項目表示手段４４は、まず、「デスクトップアプリケーション２０が有する複数個のメニュー９１のうち、どのメニュー９１のメニュー項目９２に表示させるか」を決定する。
【０１３３】
そこで、メニュー項目表示手段４４では、定義データ２１に定義された「メニュー名」を基に、複数個あるメニュー９１のうち、メニュー項目９２として表示するメニュー９１を特定する。
【０１３４】
図１２では、「定義名（機能名）」に"印刷（モノクロ）"、「メニュー名」に"ファイル"、及び「メニュー項目領域」に"Output"とが定義された、定義データ２１の機能に関する情報を定義するデータ７１を基にしたメニュー表示の例を示している。
【０１３５】
このような場合、メニュー項目表示手段４４は、定義データ２１に定義された「メニュー名」の設定値（"ファイル"）を基に、デスクトップアプリケーション２０が有する複数個のメニュー９１から、メニュー項目９２として表示する「ファイル」メニュー９１を特定する。
【０１３６】
次に、メニュー項目表示手段４４は、「特定したメニュー９１の表示領域のどの位置に表示させるか」を決定する。
【０１３７】
そこで、メニュー項目表示手段４４では、定義データ２１に定義された「メニュー項目領域」を基に、特定したメニュー９１の表示領域のうち、メニュー項目９２として「定義名（機能名）」を表示する領域を決定する。
【０１３８】
図１２に示すように、特定した「ファイル」メニュー９１の表示領域には、例えば、「メニュー項目領域」"New"に対応する新規作成に関するメニュー項目領域９２a、「メニュー項目領域」"Search"に対応するに検索に関するメニュー項目領域９２b、「メニュー項目領域」"Output"に対応する出力に関するメニュー項目領域９２c、及び「メニュー項目領域」"FilePropaty"に対応するファイルプロパティに関するメニュー項目領域９２dなどがある。
【０１３９】
このような場合、メニュー項目表示手段４４は、定義データ２１に定義された「メニュー名」の設定値（"Output"）を基に、特定した「ファイル」メニュー９１の表示領域のうち、「メニュー項目領域」"Output"に対応する出力に関するメニュー項目領域９２cを、メニュー項目として「定義名（機能名）」を表示する領域として決定する。
【０１４０】
その結果、図１２に示すように、メニュー項目表示手段４４は、「ファイル」メニュー９１の表示領域のうち、「メニュー項目領域」"Output"のメニュー項目領域９２cに、「定義名（機能名）」"印刷（モノクロ）"を表示する。
【０１４１】
このように、メニュー項目表示手段４４は、定義データ２１に定義された「メニュー名」及び「メニュー項目領域」の表示位置情報を基に、「定義名（機能名）」をデスクトップアプリケーション２０のメニュー９１に表示する。
【０１４２】
図１３は、本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その１）を示す図である。また、図１４は、本発明の第１の実施形態に係る新規メニュー項目追加時の表示画面の一例（その２）を示す図である。
【０１４３】
図１３では、新規メニュー項目として「定義名（機能名）」"印刷（モノクロ）"が、アプリケーションウィンドウ６１のツールバー８１に追加表示された例（図中の破線枠）、また、図１４では、「ファイル」メニュー９１のメニュー項目領域９２cに追加表示された例（図中の破線枠）を示している。
【０１４４】
図４に戻り、メニュー項目表示手段４４は、「機能名」をメニュー項目９２として表示するときに、表示する「定義名（機能名）」と「定義名（機能名）」が定義された定義データ２１とを対応付ける。
【０１４５】
メニュー項目表示手段４４では、例えば、表示される「定義名（機能名）」の文字列（例えば、"印刷（モノクロ）"など。）と「定義名（機能名）」が定義された定義データ２１の格納先アドレス（ファイルパス）を示す文字列（例えば、"C:\Documents and Settings\user01\aaa\bbb\Recipe\印刷（モノクロ）.xml"など。）とを、テーブル形式のデータ管理によって関連付けることで、表示する「定義名（機能名）」と「定義名（機能名）」が定義された定義データ２１とを対応付けている。
【０１４６】
図１５は、本発明の第１の実施形態に係る追加メニュー項目削除時の表示画面の一例（その１）を示す図である。また、図１６は、本発明の第１の実施形態に係る追加メニュー項目削除時の表示画面の一例（その２）を示す図である。
【０１４７】
図１５では、新規メニュー項目として追加表示されていた「定義名（機能名）」"印刷（モノクロ）"が、アプリケーションウィンドウ６１のツールバー８１から削除され表示されなくなった例、また、図１４では、「ファイル」メニュー９１のメニュー項目領域９２cから削除され表示されなくなった例を示している。
【０１４８】
このように、メニュー項目表示手段４４は、定義データ２１の追加（新規作成）又は削除など、定義データ２１が、補助記憶部１３などの不揮発性の記憶装置内の所定の領域に格納されているか否かに応じて、定義データ２１に定義された「定義名（機能名）」をメニュー項目へ表示するか否かを制御する。
【０１４９】
図４に戻り、メニュー項目表示手段４４は、図３で説明したアプリケーションプロセス２３を制御部１１で実行することにより行われる手段である。
【０１５０】
次に、情報処理実行手段４５は、定義データ２１に基づいて情報処理手段４１（機能プラグイン（小機能）３０）を実行する。
【０１５１】
情報処理実行手段４５は、まず、メニュー項目表示手段４４によりメニュー項目として表示された「定義名（機能名）」が、ユーザからデスクトップアプリケーション２０のUIを介して選択されたときに、補助記憶部１３などの不揮発性の記憶装置に格納された複数個の定義データ２１の中から、ユーザが選択した機能に対応する（選択された「定義名（機能名）」が定義されている）定義データ２１を特定する。
【０１５２】
情報処理実行手段４５は、例えば、メニュー項目表示手段４４から、表示された「機能名」に対応する定義データ２１の格納先アドレス（ファイルパスの文字列）を受け取り、受け取った格納先アドレス（ファイルパスの文字列）を基に、補助記憶部１３などの不揮発性の記憶装置に格納された複数個の定義データ２１の中から、１つの定義データ２１を特定する。
【０１５３】
次に、情報処理実行手段４５は、定義データ２１を記述した言語を解釈することのできるパーサー（例えば、XMLの場合では、XMLパーサー。）により、特定した定義データ２１の構文解析を行う。
【０１５４】
その結果、情報処理実行手段４５は、構文解析によって得られた情報、すなわち、定義データ２１に定義された、機能を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の実行条件や実行順序に従って、情報処理手段４１（機能プラグイン（小機能）３０）に実行を指示する（補助記憶部１３などの不揮発性の記憶装置に格納された情報処理手段４１（機能プラグイン（小機能）３０）を、主記憶部１２のRAM上に展開（ロード）する）。
【０１５５】
情報処理実行手段４５は、図３で説明したコアプログラム３１を制御部１１で実行することにより行われる手段である。
【０１５６】
これによって、本実施形態に係る情報処理装置１００は、アプリケーションのメニュー項目９２から、ユーザが定義した機能を選択することで、自身が定義した機能プラグイン（小機能）３０の実行条件や実行順序などの動作に関する情報に従って、機能プラグイン（小機能）３０を自動的に実行することができる。
【０１５７】
本実施形態に係る情報処理装置１００は、上記に説明した各手段を以下の手順に従って実施する。
【０１５８】
（手順１）動作に関する情報の設定
本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０のUIを介して、ユーザから、自身がアプリケーションによって行いたい処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の実行条件や実行順序などの動作に関する情報が設定される。
その結果、情報処理装置１００は、デスクトップアプリケーション２０によって行う処理を１つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション２０によって行う処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の「実行条件及び実行順序に関する情報」と、情報処理手段４１（機能プラグイン（小機能）３０）の「処理対象に関する情報」とを取得する。
【０１５９】
（手順２）定義データ２１の生成
本実施形態に係る情報処理装置１００は、定義データ生成手段４２により、（手順１）で取得した「機能に関する情報」、「実行条件及び実行順序に関する情報」、及び「処理対象に関する情報」が、所定の形式に従って定義された定義データ２１を生成する。
（手順２−１）機能に関する情報を定義するデータ７１の生成
情報処理装置１００は、ユーザから設定された「機能に関する情報」の各設定値を基に、機能に関する情報を定義するタグの間に、「定義名（機能名）」、「定義種類」、「メニュー名」、及び「メニュー項目領域」それぞれを定義するタグとともに対応する値（例えば、文字列や数値など。）を埋め込み、機能に関する情報を定義するデータ７１を生成する。
（手順２−２）実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２の生成
情報処理装置１００は、ユーザから設定された「実行条件及び実行順序に関する情報」の各設定値を基に、実行順序に従って、実行順序に関する情報を定義するタグの間に、情報処理手段４１（機能プラグイン（小機能）３０）の処理対象名と処理対象を定義するタグ（「定義開始タグ」と「定義終了タグ」）、及び条件値（制御パラメータ値：例えば、文字列や数値など。）と実行条件（制御パラメータ）を定義するタグ（「定義開始タグ」と「定義終了タグ」）とを埋め込み、実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２を生成する。
情報処理装置１００は、定義データ格納手段４３により、生成された後に、主記憶部１２のRAM上に一時保持された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置内の所定の領域に格納する。
【０１６０】
（手順３）定義データ２１の実行
本実施形態に係る情報処理装置１００は、情報処理実行手段４５により、定義データ２１に基づいて情報処理手段４１（機能プラグイン（小機能）３０）を実行する。
（手順３−１）定義データ２１の特定
情報処理装置１００は、メニュー項目表示手段４４によりメニュー項目９２として表示された「定義名（機能名）」が、ユーザから選択されたときに、補助記憶部１３などの不揮発性の記憶装置に格納された複数個の定義データ２１の中から、ユーザが選択した機能に対応する（選択された「定義名（機能名）」が定義されている）定義データ２１を特定する。
（手順３−２）定義データの解析
情報処理装置１００は、定義データ２１を記述した言語を解釈することのできるパーサー（例えば、XMLパーサー。）により、特定した定義データ２１の構文解析を行う。
（手順３−３）機能プラグイン（小機能）３０の実行
情報処理装置１００は、構文解析によって得られた情報、すなわち、定義データ２１に定義された、機能を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の処理対象、実行条件、及び実行順序に従って、情報処理手段４１（機能プラグイン（小機能）３０）に実行を指示する（補助記憶部１３などの不揮発性の記憶装置に格納された情報処理手段４１（機能プラグイン（小機能）３０）を、主記憶部１２のRAM上に展開（ロード）する）。
【０１６１】
このように、本実施形態に係る情報処理装置１００は、上記に説明した（手順１）〜（手順３）により、「デスクトップアプリケーション２０が実行する処理を使用目的や用途などに応じて容易に変更する」処理を実現している。
【０１６２】
＜情報処理装置の基本処理手順について＞
これまでに説明した本実施形態に係る情報処理装置１００の具体的な処理手順について、図１７〜２０を用いて説明する。
【０１６３】
本実施形態に係る情報処理装置１００は、例えば、補助記憶部１３に格納された「デスクトップアプリケーション２０」の処理を行う情報処理プログラムを主記憶部１２であるRAM上に展開（ロード）し、制御部１１で実行する。このとき、以下の図１７に示す処理手順（Ｓ１０１〜Ｓ１０６）、図１８に示す処理手順（Ｓ２０１〜Ｓ２０７）、及び図１９に示す（Ｓ３０１〜Ｓ３０６）が実行される。
【０１６４】
図１７は、本発明の第１の実施形態に係るデスクトップアプリケーション起動時の処理手順を示すフローチャートである。
【０１６５】
本実施形態に係る情報処理装置１００は、ユーザからデスクトップアプリケーション２０の起動指示を受け付ける。例えば、ユーザが、表示装置の表示画面上に表示された、デスクトップアプリケーション２０が有するアプリケーションプロセス２３の実行プログラム（例えば、DesktopApprRun.exeなど。）がリンクしたアイコンを、マウスでクリックする。これによって、情報処理装置１００は、デスクトップアプリケーション２０のプログラム及び関連データを、OSから割り当てられた主記憶部１２のRAM上のメモリ領域に展開（ロード）し、制御部１１で実行する（Ｓ１０１）。
【０１６６】
情報処理装置１００は、起動されたアプリケーションプロセス２３によって、予め、補助記憶部１３などの不揮発性の記憶装置に格納された、アプリケーションウィンドウ６１を構成するために必要な各UIについて定義された表示用定義データを読み取り、表示用定義データを記述した言語が解釈可能なパーサーをアプリケーションプロセス２３から起動し、読み取った表示用定義データを構文解析する。（Ｓ１０２）。
【０１６７】
情報処理装置１００は、アプリケーションプロセス２３によって、表示用定義データに定義されたUIに関する情報（パーサーにより構文解析した結果）に従って、必要なUIを実現するUIプラグイン（UIパーツ）２２に起動を指示する（Ｓ１０３）。
【０１６８】
情報処理装置１００は、アプリケーションプロセス２３によって、アプリケーションウィンドウ６１を、CRTやLCDなどの出力装置の表示画面に描画する（Ｓ１０４）。
【０１６９】
情報処理装置１００は、必要なUIを実現するUIプラグイン（UIパーツ）２２を全てに対して起動を指示したか否かを判定する（Ｓ１０５）。
【０１７０】
全てのUIプラグイン（UIパーツ）２２に対して起動を指示した場合（Ｓ１０５がYESの場合）、デスクトップアプリケーション２０の起動処理を終了し、UIを介したユーザからの動作指示を待つ（Ｓ１０６）。
【０１７１】
また、起動指示を行っていないUIプラグイン（UIパーツ）２２が残っている場合（Ｓ１０５がNOの場合）、Ｓ１０３の処理手順に戻る。
【０１７２】
このように、本実施形態に係る情報処理装置１００は、図１７に示すＳ１０１〜Ｓ１０６によって、デスクトップアプリケーション２０の起動を実現している。
【０１７３】
図１８は、本発明の第１の実施形態に係るデスクトップアプリケーション２０における定義データ生成時の処理手順を示すフローチャートである。
【０１７４】
ここで説明するＳ２０１〜Ｓ２０７の処理手順は、図１７のＳ１０６で説明した、デスクトップアプリケーション２０が起動され、UIを介したユーザからの動作指示を待っているときの処理である。
【０１７５】
本実施形態に係る情報処理装置１００は、図７に示す［フロー設定］タブがマウスによって選択され、ユーザからの新規定義データ生成要求を受け付けるまで待つ（Ｓ２０１）。
【０１７６】
情報処理装置１００は、ユーザからの新規定義データ生成要求を受け付けた場合（Ｓ２０１がYESの場合）、アプリケーションプロセス２３によって、ユーザが行いたい処理を、デスクトップアプリケーション２０の１つの機能として定義するための機能に関する情報を設定する機能情報設定領域６２、既に補助記憶部１３などの不揮発性の記憶装置に格納された機能プラグイン（小機能）３０の中から、ユーザが行いたい処理を実現するために必要な機能プラグイン（小機能）３０を選択するプラグイン選択領域６３、機能プラグイン（小機能）３０を実行する順序を設定する実行順序設定領域６４、及び実行する機能プラグイン（小機能）３０の実行条件（制御パラメータ）を設定する実行条件設定領域６５などの設定用のUI部を構成するために必要なUIプラグイン（UIパーツ）２２を実行し、ユーザが、定義データ２１を生成するためのUIを、表示装置の表示画面に描画する（２０２）。
【０１７７】
情報処理装置１００は、新規定義データ生成に必要な設定用のUIを描画した後、UIを介して受け付けたユーザからの新規定義データ生成要求を受け付けたアプリケーションプロセス２３によって、生成する定義データ２１のうち、機能に関する情報を定義するデータ７１を生成する。アプリケーションプロセス２３は、UIを介して設定された機能に関する情報（定義した機能名を示す「定義名（機能名）」、定義した機能の種類を示す「定義種類」、メニュー項目９２に表示するときの表示位置情報である「メニュー名」及び「メニュー項目領域」。）の各設定値（例えば、文字列や数値など。）を基に、それぞれの情報に対応した独自のタグ（「定義開始タグ」と「定義終了タグ」）とともに設定値を埋め込み、機能に関する情報を定義したデータ７１を生成する（Ｓ２０３）。
【０１７８】
情報処理装置１００は、アプリケーションプロセス２３によって、生成する定義データ２１のうち、機能プラグイン（小機能）３０の実行条件、実行順序、及び処理対象に関する情報を定義したデータ７２を生成する。アプリケーションプロセス２３は、ユーザが、必要な機能プラグイン（小機能）３０を、実行順序設定領域６４にドロップして並べた順番（例えば、図９の実行順序設定領域６４に示すフローの順番。）を基に、情報処理手段４１（機能プラグイン（小機能）３０）の処理対象名（機能プラグイン（小機能）３０が処理するデータの名前と、そのデータを出力した１つ前に定義された機能プラグイン（小機能）３０の名前）と処理対象を定義するタグ（「定義開始タグ」と「定義終了タグ」）、及び必要に応じて実行条件設定領域６５で設定した条件値（制御パラメータ値：例えば、文字列や数値など。）と実行条件（制御パラメータ）を定義するタグ（「定義開始タグ」と「定義終了タグ」）とを埋め込み、実行する機能プラグイン（小機能）３０の数だけ、繰り返すことによって、実行条件、実行順序、及び処理対象に関する情報を定義したデータ７２を生成する（Ｓ２０４）。
【０１７９】
情報処理装置１００は、アプリケーションプロセス２３によって、機能に関する情報を定義したデータ７１と実行条件、実行順序、及び処理対象に関する情報を定義したデータ７２とを基に、最終的な定義データ２１を生成し、生成された定義データ２１を主記憶部１２のRAM上に一時保管する。
【０１８０】
情報処理装置１００は、ユーザから、主記憶部１２のRAM上に一時保持された定義データ２１の内容を確定する指示を受け付けるまで待つ（Ｓ２０５）。例えば、ユーザが、図９に示す機能情報設定領域６２の［確定］ボタン６２eをマウスでクリックすることにより、主記憶部１２のRAM上に一時保持された定義データ２１の内容を確定する指示を受け付ける。
【０１８１】
UIを介して、主記憶部１２のRAM上に一時保持された定義データ２１の内容を確定する指示を受け付けた場合（Ｓ２０５がYESの場合）、アプリケーションプロセス２３は、主記憶部１２のRAM上に一時保持された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置に格納する（Ｓ２０６）。
【０１８２】
情報処理装置１００は、図９に示す［ブラウズテスト］タブがマウスによって選択された場合など、アプリケーションウィンドウ６１の再描画を行うタイミングで、アプリケーションプロセス２３によって、補助記憶部１３などの不揮発性の記憶装置に格納された新規定義データ２１を基に、メニュー表示を更新する（Ｓ２０７）。アプリケーションプロセス２３は、新規の定義データ２１に定義された「メニュー名」及び「メニュー項目領域」の表示位置情報を基に、メニュー９１の表示領域のうち、「定義名（機能名）」を表示させるメニュー項目領域を決定し、決定した領域に、「定義名（機能名）」を表示する。
【０１８３】
その後、情報処理装置１００は、図９に示す［ブラウズテスト］タブがマウスによって選択されたことにより、アプリケーションウィンドウ６１が、新規定義データ生成用のUI表示から機能実行用のUI表示へ変わっているため、次に説明する図１９のＳ３０１の処理手順に移行し、ユーザからの動作指示を待つ。
【０１８４】
このように、本実施形態に係る情報処理装置１００は、図１８に示すＳ２０１〜Ｓ２０７によって、定義データ２１の生成を実現している。
【０１８５】
図１９は、本発明の第１の実施形態に係るデスクトップアプリケーション機能実行時の処理手順を示すフローチャートである。
【０１８６】
ここで説明するＳ３０１〜Ｓ３０６の処理手順は、図１７のＳ１０６で説明した、デスクトップアプリケーション２０が起動され、UIを介したユーザからの動作指示を待っているときの処理である。
【０１８７】
本実施形態に係る情報処理装置１００は、マウスによるメニュー選択など、ユーザからの動作指示を受け付けるまで待つ（Ｓ３０１）。
【０１８８】
情報処理装置１００は、ユーザからの動作指示を受け付けた場合（Ｓ３０１がYESの場合）、アプリケーションプロセス２３が、UIを介して受け付けたユーザからの動作指示を、データI/Fを介してコアプログラム３１に渡し、動作指示を受け取ったコアプログラム３１によって、メニュー項目９２に表示された「定義名（機能名）」に対応付けられた定義データ２１（「定義名（機能名）」が定義された定義データ２１）を、格納された補助記憶部１３などの不揮発性の記憶装置から読み取り、定義データ２１を記述した言語が解釈可能なパーサーをコアプログラム３１から起動し、読み取った定義データ２１を構文解析する（Ｓ３０２）。
【０１８９】
情報処理装置１００は、コアプログラム３１によって、定義データ２１に定義された、ユーザが行いたい処理を実現するために必要な機能プラグイン（小機能）３０の動作に関する情報（パーサにより構文解析した結果）のうち、機能プラグイン（小機能）３０の実行条件（制御パラメータ）の設定値及び機能プラグイン（小機能）３０の処理対象名を取得する（Ｓ３０３）。
【０１９０】
情報処理装置１００は、コアプログラム３１によって、取得した実行条件の設定値及び処理対象名（処理対象であるデータ名）を基に、機能プラグイン（小機能）３０に起動を指示する（Ｓ３０４）。
【０１９１】
情報処理装置１００は、実行順序に従い、ユーザが行いたい処理を実現するために必要な機能プラグイン（小機能）３０に対して起動を指示したか否かを判定する（Ｓ３０５）。
【０１９２】
必要な機能プラグイン（小機能）３０に対して起動を指示した場合（Ｓ３０５がYESの場合）、起動指示された機能プラグイン（小機能）３０によって、実行条件や処理対象であるデータを基に処理が実行され、その実行結果を、表示装置の表示面に表示する（Ｓ３０６）。例えば、実行結果を知らせるメッセージを、アプリケーションウィンドウ６１とは別のウィンドウに表示する。表示後は、Ｓ３０１の処理手順に戻り、再びユーザからの動作指示を待つ。
【０１９３】
また、起動指示を行っていない機能プラグイン（小機能）３０が残っている場合（Ｓ３０５がNOの場合）、Ｓ３０３の処理手順に戻り、定義データ２１を読み取ったときに取得した、動作に関する情報（パーサーにより構文解析した結果）のうちの機能プラグイン（小機能）３０の実行順序に従って、次に実行する対象となる機能プラグイン（小機能）３０に対して、Ｓ３０３以降の処理を行う。
【０１９４】
このように、本実施形態に係る情報処理装置１００は、図１９に示すＳ３０１〜Ｓ３０６によって、機能プラグイン（小機能）３０の実行を実現している。
【０１９５】
図２０は、本発明の第１の実施形態に係る機能実行時の表示画面の一例（モノクロ印刷機能の場合）を示す図である。
【０１９６】
例えば、図７〜１０の説明で例に挙げた「色変換後の画像データを印刷する」と言う処理（モノクロ印刷機能）では、図１７〜１９で説明した情報処理プログラム（具体的な処理手順）を、本実施形態に係る情報処理装置１００が有する制御部１１で実行することで、図２０に示すような動作結果が得られる。
【０１９７】
図２０では、タスクバー８１に表示された［印刷（モノクロ）］のメニュー項目９２が、マウスによってクリックされた後、図１０に示した定義データ２１に従って、モノクロ印刷が実行され、メッセージ表示プラグイン４１dによって、実行条件で設定された印刷終了を通知するメッセージ「印刷が終了しました。」を、アプリケーションウィンドウ６１と別のウィンドウ６１であるメッセージウィンドウ８３に表示した例を示している。
【０１９８】
このように、本実施形態に係る情報処理装置１００のデスクトップアプリケーション２０は、動作環境（プラットフォーム）にあったプログラミング言語で、上記図１７〜２０において説明した各処理手順をコード化したプログラムを、コンピュータで実行することにより実現する。よって、本実施形態に係る情報処理装置１００のデスクトップアプリケーション２０を実現するプログラム（情報処理プログラム）は、コンピュータが読み取り可能な記憶媒体に格納することができる。
【０１９９】
＜ユーザによる機能定義の例＞
本実施形態に係る情報処理装置１００は、ユーザが、「色変換後の画像データを印刷する」と言う処理を、デスクトップアプリケーション２０のモノクロ印刷機能として定義した場合を例に説明を行った。
【０２００】
ここからは、モノクロ印刷機能以外で、ユーザにより機能定義された「反転印刷機能」と「画像回転機能」について、図２１〜図２６を用いて説明する。
【０２０１】
＜＜反転印刷機能＞＞
「反転印刷機能」は、「画像データを反転する画像処理を行い、反転された画像データを印刷する」と言う処理を、ユーザが、デスクトップアプリケーション２０の１つの機能として定義したものである。
【０２０２】
図２１は、本発明の第１の実施形態に係る反転印刷機能に関する定義データ生成時の表示画面の一例を示す図である。
【０２０３】
ユーザは、アプリケーションウィンドウ６１の機能情報設定領域６２で、「画像データを反転する画像処理を行い、反転された画像データを印刷する」と言う処理を、デスクトップアプリケーション２０の「反転印刷機能」として定義するための機能に関する情報を設定する。また、ユーザは、アプリケーションウィンドウ６１のプラグイン選択領域６３で選択した「反転印刷機能」を実現するために必要な機能プラグイン（小機能）３０を、実行順序（「カレントファイル」→「反転」→「印刷」の順）に従って、実行順序設定領域６４にドラッグ＆ドロップし、「反転印刷機能」を行うフロー（実行順序）を設定する。
【０２０４】
これによって、本実施形態に係る情報処理装置１００は、「反転印刷機能」の動作に関する情報（反転印刷機能に関する情報、並びに、反転印刷を行うために必要な機能プラグイン（小機能）３０の実行順序に関する情報。）の各設定値を取得する。
【０２０５】
図２２は、本発明の第１の実施形態に係る反転印刷機能に関する定義データ２１の一例を示す図である。
【０２０６】
本実施形態に係る情報処理装置１００は、定義データ生成手段４２によって、図２１で説明した方法で設定された「反転印刷機能」の動作に関する情報を基に、図２２に示すような、機能に関する情報を定義するデータ７１、並びに画像処理機能及び出力機能の実行順序及び処理対象に関する情報を定義するデータ７２とから構成する定義データ２１を生成し、定義データ格納手段４３によって、補助記憶部１３などの不揮発性の記憶装置に格納する。
【０２０７】
図２３は、本発明の第１の実施形態に係る反転印刷機能実行時の表示画面の一例を示す図である。
【０２０８】
本実施形態に係る情報処理装置１００は、タスクバー８１のメニュー項目９２のうち、［反転印刷］がマウスによってクリックされると、情報処理実行手段４５によって、補助記憶部１３などの不揮発性の記憶装置に格納された「反転印刷機能」の定義データ２１を読み出し、読み出した定義データ２１に定義された機能プラグイン（小機能）３０の実行順序に従い、予め、補助記憶部１３などの不揮発性の記憶装置に格納された機能プラグイン（小機能）３０のうち、「反転印刷機能」を実現するために必要な機能プラグイン（小機能）３０を実行する。
【０２０９】
その結果、ユーザは、図２３に示すような実行結果を得ることができる。
【０２１０】
図２３では、ユーザによって選択された画像データ"car_01.jpg"に対して、画像を反転する処理を行い、反転された画像データの印刷結果を、表示画面上で確認するための実行結果表示ウィンドウ８４に表示した例を示している。
【０２１１】
＜＜画像回転機能＞＞
「画像回転機能」は、「画像データを９０度右方向に回転する画像処理を行う」と言う処理を、ユーザが、デスクトップアプリケーション２０の１つの機能として定義したものである。
【０２１２】
図２４は、本発明の第１の実施形態に係るに画像回転機能（右90度）に関する定義データ生成時の表示画面の一例を示す図である。
【０２１３】
ユーザは、アプリケーションウィンドウ６１の機能情報設定領域６２で、「画像データを９０度右方向に回転する画像処理を行う」と言う処理を、デスクトップアプリケーション２０の「画像回転機能」として定義するための機能に関する情報を設定する。また、ユーザは、アプリケーションウィンドウ６１のプラグイン選択領域６３で選択した「画像回転機能」を実現するために必要な機能プラグイン（小機能）３０を、実行順序（「ファイル操作」→「回転」の順）に従って、実行順序設定領域６４にドラッグ＆ドロップし、「画像回転機能」を行うフロー（処理手順）を設定する。このとき、ユーザは、選択した機能プラグイン（小機能）３０に実行条件が設定できる場合（画像の回転方向及び回転角度の組み合わせ）、実行条件設定領域６５で条件値（制御パラメータ値）を設定する（右方向に９０度回転する条件値（制御パラメータ値）を設定する）。
【０２１４】
これによって、本実施形態に係る情報処理装置１００は、「画像回転機能」の動作に関する情報（画像回転機能に関する情報、並びに、画像回転を行うために必要な機能プラグイン（小機能）３０の実行条件及び実行順序に関する情報。）の各設定値を取得する。
【０２１５】
図２５は、本発明の第１の実施形態に係る画像回転機能（右90度）に関する定義データ２１の一例を示す図である。
【０２１６】
本実施形態に係る情報処理装置１００は、定義データ生成手段４２によって、図２４で説明した方法で設定された「画像回転機能」の動作に関する情報を基に、図２５に示すような、機能に関する情報を定義するデータ７１、並びに画像処理機能の実行順序及び処理対象に関する情報を定義するデータ７２とから構成する定義データ２１を生成し、定義データ格納手段４３によって、補助記憶部１３などの不揮発性の記憶装置に格納する。
【０２１７】
図２６は、本発明の第１の実施形態に係る画像回転機能実行時の表示画面の一例を示す図である。
【０２１８】
本実施形態に係る情報処理装置１００は、タスクバー８１のメニュー項目９２のうち、［右回転］がマウスによってクリックされると、情報処理実行手段４５によって、補助記憶部１３などの不揮発性の記憶装置に格納された「画像回転機能」の定義データ２１を読み出し、読み出した定義データ２１に定義された機能プラグイン（小機能）３０の実行順序に従い、予め、補助記憶部１３などの不揮発性の記憶装置に格納された機能プラグイン（小機能）３０のうち、「画像回転機能」を実現するために必要な機能プラグイン（小機能）３０を実行する。
【０２１９】
その結果、ユーザは、図２６に示すような実行結果を得ることができる。
【０２２０】
図２６では、ユーザによって選択された画像データ"20060124.tif"に対して、画像を右方向に９０度回転する処理を行い、回転された画像データの結果を、表示画面上で確認するための実行結果表示ウィンドウ８４に表示した例を示している。
【０２２１】
＜まとめ＞
以上のように、本発明の第１の実施形態によれば、本実施形態に係る情報処理装置１００は、「デスクトップアプリケーション２０が実行する処理を使用目的や用途などに応じて容易に変更する」と言う機能を、以下の処理手順により実現している。
【０２２２】
（手順１）動作に関する情報の設定
本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０のUIを介して、ユーザから、自身がアプリケーションによって行いたい処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の実行条件や実行順序などの動作に関する情報が設定される。
その結果、情報処理装置１００は、デスクトップアプリケーション２０によって行う処理を１つの機能として定義した場合の「機能に関する情報」と、デスクトップアプリケーション２０によって行う処理を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の「実行条件及び実行順序に関する情報」と、情報処理手段４１（機能プラグイン（小機能）３０）の「処理対象に関する情報」とを取得する。
【０２２３】
（手順２）定義データ２１の生成
本実施形態に係る情報処理装置１００は、定義データ生成手段４２により、（手順１）で取得した「機能に関する情報」、「実行条件及び実行順序に関する情報」、及び「処理対象に関する情報」とが、所定の形式に従って定義された定義データ２１を生成する。
（手順２−１）機能に関する情報を定義するデータ７１の生成
情報処理装置１００は、ユーザから設定された「機能に関する情報」の各設定値を基に、機能に関する情報を定義するタグの間に、「定義名（機能名）」、「定義種類」、「メニュー名」、及び「メニュー項目領域」それぞれを定義するタグとともに対応する値（例えば、文字列や数値など。）を埋め込み、機能に関する情報を定義するデータ７１を生成する。
（手順２−２）実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２の生成
情報処理装置１００は、ユーザから設定された「実行条件及び実行順序に関する情報」の各設定値を基に、情報処理手段４１（機能プラグイン（小機能）３０）の処理対象名と処理対象を定義するタグ（「定義開始タグ」と「定義終了タグ」）、及び条件値（制御パラメータ値：例えば、文字列や数値など。）と実行条件（制御パラメータ）を定義するタグ（「定義開始タグ」と「定義終了タグ」）とを埋め込み、実行条件、実行順序、及び処理対象に関する情報を定義するデータ７２を生成する。
情報処理装置１００は、定義データ格納手段４３により、生成された後に、主記憶部１２のRAM上に一時保持された定義データ２１を、補助記憶部１３などの不揮発性の記憶装置内の所定の領域に格納する。
【０２２４】
（手順３）定義データ２１の実行
本実施形態に係る情報処理装置１００は、情報処理実行手段４５により、定義データ２１に基づいて情報処理手段４１（機能プラグイン（小機能）３０）を実行する。
（手順３−１）定義データ２１の特定
情報処理装置１００は、メニュー項目表示手段４４によりメニュー項目９２として表示された「定義名（機能名）」が、ユーザから選択されたときに、補助記憶部１３などの不揮発性の記憶装置に格納された複数個の定義データ２１の中から、ユーザが選択した機能に対応する（選択された「定義名（機能名）」が定義されている）定義データ２１を特定する。
（手順３−２）定義データの解析
情報処理装置１００は、定義データ２１のデータ構造を解釈することのできるパーサー（例えば、XMLパーサー。）により、特定した定義データ２１の構文解析を行う。
（手順３−３）機能プラグイン（小機能）３０の実行
情報処理装置１００は、構文解析によって得られた情報、すなわち、定義データ２１に定義された、機能を実現するために必要な情報処理手段４１（機能プラグイン（小機能）３０）の処理対象、実行条件、及び実行順序に従って、情報処理手段４１（機能プラグイン（小機能）３０）に実行を指示する（補助記憶部１３などの不揮発性の記憶装置に格納された情報処理手段４１（機能プラグイン（小機能）３０）を、主記憶部１２のRAM上に展開（ロード）する）。
【０２２５】
このように、本実施形態に係る情報処理装置１００は、上記（手順１）〜（手順３）によって、ユーザが、アプリケーションによって行いたい処理を実現するために必要な機能プラグイン（小機能）３０の実行条件や実行順序などの動作に関する情報を、データとして所定の形式に従って定義し、そのデータを基に機能プラグイン（小機能）３０を自動的に実行することができる。
【０２２６】
よって、本実施形態に係る情報処理装置１００は、デスクトップアプリケーション２０が実行する処理を使用目的や用途などに応じて容易に変更することができる。
【０２２７】
第１の実施形態に基づき本発明の説明を行ってきたが、本発明の第１の実施形態に係る情報処理装置１００の「定義データ２１」は、本実施形態において説明した方法によって生成する他、例えば、定義データ２１を記述する言語仕様に従って、情報処理装置１００が有するエディタソフトを用いて編集しても良い。
【０２２８】
また、本発明の第１の実施形態に係る情報処理装置１００の「情報通知機能」は、本実施形態において説明した方法によって通知する他、例えば、タスクバー８１のポップアップによって表示させても良い。
【０２２９】
最後に、上記各実施形態に挙げた形状に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【０２３０】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０２３１】
１１  制御部（CPU）
１２  主記憶部（ROM,RAM）
１３  補助記憶部（HD）
１４  ネットワークI/F
１５  外部記憶装置I/F
１６  外部装置I/F
１７  出力装置I/F
１８  入力装置I/F
２０  デスクトップアプリケーション
２１  定義データ
２２  ユーザインタフェース（UI）プラグイン（UIパーツ）
２３  アプリケーションプロセス
３０  機能プラグイン
３１  コアプログラム（コアモジュール群）
４１  情報処理手段（機能プラグイン）
４１a  情報処理手段（ファイル選択プラグイン）
４１b  情報処理手段（色変換プラグイン）
４１c  情報処理手段（印刷プラグイン）
４１d  情報処理手段（メッセージ表示プラグイン）
４２  定義データ生成手段
４３  定義データ格納手段
４４  メニュー項目表示手段
４５  情報処理実行手段
５１  ファイル閲覧ウィンドウ
６１  アプリケーションウィンドウ
６２  機能情報設定領域
６２a  定義名（機能名）入力用テキストボックス
６２b  定義種類設定用プルダウンメニュー
６２c  メニュー名設定用プルダウンメニュー
６２d  メニュー項目追加領域入力用テキストボックス
６２e  定義情報設定確定ボタン
６３  プラグイン選択領域
６３a  画像処理機能のプラグイン選択領域
６３b  出力機能のプラグイン選択領域
６３c  情報通知機能のプラグイン選択領域
６４  実行順序設定領域
６５  実行条件設定領域
７１  機能に関する情報を定義するデータ
７２  実行条件、実行順序、及び処理対象に関する情報を定義するデータ
７２a、７２b  実行条件に関する情報を定義するデータ
８１  ツールバー
８２  データ閲覧領域
８３  メッセージウィンドウ（メッセージボックス）
８４  実行結果表示ウィンドウ
９１  メニュー
９２  メニュー項目領域
９２a  新規作成に関するメニュー項目領域
９２b  検索に関するメニュー項目領域
９２c  出力に関するメニュー項目領域
９２d  ファイルプロパティに関するメニュー項目領域
１００  情報処理装置
【先行技術文献】
【特許文献】
【０２３２】
【特許文献１】特開２００１−５１８４０号公報
【図１】
0005510502.tif 000002
【図２】
0005510502.tif 000003
【図３】
0005510502.tif 000004
【図４】
0005510502.tif 000005
【図５】
0005510502.tif 000006
【図６】
0005510502.tif 000007
【図７】
0005510502.tif 000008
【図８】
0005510502.tif 000009
【図９】
0005510502.tif 000010
【図１０】
0005510502.tif 000011
【図１１】
0005510502.tif 000012
【図１２】
0005510502.tif 000013
【図１３】
0005510502.tif 000014
【図１４】
0005510502.tif 000015
【図１５】
0005510502.tif 000016
【図１６】
0005510502.tif 000017
【図１７】
0005510502.tif 000018
【図１８】
0005510502.tif 000019
【図１９】
0005510502.tif 000020
【図２０】
0005510502.tif 000021
【図２１】
0005510502.tif 000022
【図２２】
0005510502.tif 000023
【図２３】
0005510502.tif 000024
【図２４】
0005510502.tif 000025
【図２５】
0005510502.tif 000026
【図２６】
0005510502.tif 000027