(57)【要約】      （修正有）【課題】拡張機能が選択的に提供されるアプリケーションプログラムのインストール装置において、機能の増減により影響を受けずに拡張機能用のプログラムのインストールが可能なインストール装置等を提供する。【解決手段】予め備える基本機能と、モジュール記憶手段４５から転送されたモジュールに対応した拡張機能と、を提供するインストール装置において、拡張機能毎に、モジュールを実行するための実行情報が定義された機能定義ファイル３１を記憶する定義ファイル記憶手段と、拡張機能の一覧を表示する機能一覧表示部４１と、定義ファイル記憶手段を参照し、一覧からポインティングデバイス等の入力手段により選択された拡張機能に対応するモジュールを決定するモジュール決定部４２と、モジュール決定部４２が決定したモジュールを、モジュール記憶手段４５から転送するモジュール転送部４３と、を有する。【選択図】図４
2010015533.tif 000002
【特許請求の範囲】
【請求項１】
予め備える基本機能と、モジュール記憶手段から転送されたモジュールプログラムに対応した拡張機能と、を提供するインストール装置において、
前記拡張機能毎に、モジュールプログラムを実行するための実行情報が定義された定義ファイルを記憶する定義ファイル記憶手段と、
前記定義ファイルに基づき前記拡張機能の一覧を表示する表示手段と、
前記定義ファイル記憶手段を参照し、一覧からポインティングデバイス等の入力手段により選択された前記拡張機能に対応するモジュールプログラムを決定するモジュール決定手段と、
前記モジュール決定手段が決定したモジュールプログラムを、前記モジュール記憶手段から転送するモジュール転送手段と、
を有することを特徴とするインストール装置。
【請求項２】
前記表示手段に表示された複数の前記拡張機能から、前記入力手段により選択された複数の前記拡張機能にそれぞれ対応した前記定義ファイルを、定義ファイル記憶手段から読み出す機能作成手段を有し、
該機能作成手段は、読み出した複数の前記定義ファイルに定義された各モジュールプログラムの前記実行情報を用いて、選択された複数の前記拡張機能に対応する１つの拡張機能の前記定義ファイルを作成する、
ことを特徴とする請求項１記載のインストール装置。
【請求項３】
前記機能作成手段は、前記入力手段により選択された複数の前記拡張機能にそれぞれ対応したモジュールプログラムが、設定値を有するか否かを判定し、  
前記設定値を有する場合、設定値を入力するための設定値登録画面を前記表示手段に表示し、前記入力手段により入力された前記設定値を作成された拡張機能の前記定義ファイルに記述する、
ことを特徴とする請求項２記載のインストール装置。
【請求項４】
前記機能作成手段は前記表示装置の表示領域を区分し、第１の表示領域に選択される前記拡張機能を、第２の表示領域に選択された前記拡張機能を時系列に、それぞれ表示する、
ことを特徴とする請求項２記載のインストール装置。
【請求項５】
該機能作成手段は、作成した新たな拡張機能の前記定義ファイルを、前記定義ファイル記憶手段に記憶し、
前記モジュール決定手段は、前記定義ファイル記憶手段を参照し、新たに作成された前記拡張機能を一覧に含めて前記表示手段に表示する、
ことを特徴とする請求項２記載のインストール装置。
【請求項６】
前記モジュール転送手段は、前記モジュール記憶手段に記憶されたモジュールプログラムを、当該インストール装置の予め定められたフォルダに転送する、
ことを特徴とする請求項１記載のインストール装置。
【請求項７】
外部装置と通信して、前記定義ファイルを該外部装置から受信する機能取り込み手段を有し、
前記機能取り込み手段は、受信した前記定義ファイルを前記定義ファイル記憶手段に記憶する、
ことを特徴とする請求項１記載のインストール装置。
【請求項８】
前記モジュール決定手段は、前記定義ファイル記憶手段を参照し、前記外部装置から受信した前記拡張機能を一覧に含めて前記表示手段に表示する、
ことを特徴とする請求項７記載のインストール装置。
【請求項９】
基本機能を備える端末と、端末の基本機能に拡張機能を追加するモジュールプログラムを記憶したサーバとを、有するインストールシステムにおいて、
前記サーバは、
モジュールプログラムを記憶した第１のモジュール記憶手段と、
拡張機能毎に、モジュールプログラムを実行するための実行情報が定義された第１の定義ファイルを記憶する第１の定義ファイル記憶手段と、
前記第１の定義ファイル記憶手段を参照して、前記端末から要求された拡張機能に対応するモジュールプログラムを決定する第１のモジュール決定手段と、
前記第１のモジュール記憶手段から読み出された前記モジュールプログラムを送信するモジュール送信手段と、を有し、
前記端末は、
前記サーバに前記第１の定義ファイルに定義された拡張機能の一覧を要求し、受信した拡張機能の一覧を表示する表示手段と、
表示された拡張機能の一覧からポインティングデバイス等の入力手段により選択された拡張機能を前記サーバに送信し、前記サーバから受信したモジュールプログラムをインストールする機能追加手段と、を有する、
ことを特徴とするインストールシステム。
【請求項１０】
前記端末は、
前記モジュールプログラムを記憶した第２のモジュール記憶手段と、
拡張機能毎に、前記モジュールプログラムを実行するための実行情報が定義された第２の定義ファイルを記憶する第２の定義ファイル記憶手段と、
前記第２の定義ファイル記憶手段を参照して、拡張機能に対応するモジュールプログラムを決定する第２のモジュール決定手段と、を有し、
前記機能追加手段は、
表示された拡張機能の一覧からポインティングデバイス等の入力手段により選択された拡張機能のうち、サーバが有する拡張機能を前記サーバに送信し、拡張機能に対応する前記モジュールプログラムをサーバから受信すると共に、
前記第２のモジュール決定手段が決定した当該端末が有する拡張機能に対応する前記モジュールプログラムを前記第２のモジュール記憶手段から読みだし、それぞれインストールする、
ことを特徴とする請求項９記載のインストールシステム。
【請求項１１】
前記第１の定義ファイルは、拡張機能の課金額情報を有し、
前記サーバは、
前記端末から要求された１以上の拡張機能の課金額情報を加算して、前記端末の算出後課金額を算出する課金額算出手段と、
端末毎に算出後課金額情報を記憶する課金額データベースと、を有する、
ことを特徴とする請求項９記載のインストールシステム。
【請求項１２】
前記第１の定義ファイルと前記第２の定義ファイルは、拡張機能の課金額情報を有し、
前記端末は、
前記サーバに要求した拡張機能の課金情報と、前記第２のモジュール記憶手段が記憶しているモジュールプログラムに対応した拡張機能の課金額とを加算して、前記端末の算出後課金額を算出する課金額算出手段と、を有し、
前記サーバは、
前記端末から送信された該端末の算出後課金額情報を端末毎に記憶する課金額データベース、を有する、
ことを特徴とする請求項１０記載のインストールシステム。
【請求項１３】
前記表示手段は、
前記課金額算出手段が算出した算出後課金額を表示する、
ことを特徴とする請求項１１又は１２記載のインストールシステム。
【請求項１４】
前記表示手段は、
表示された拡張の機能の一覧と共に、前記第１の定義ファイル又は前記第２の定義ファイルに登録された拡張機能毎の課金額を表示する、
ことを特徴とする請求項１１又は１２記載のインストールシステム。
【請求項１５】
前記表示手段に表示された複数の拡張機能から、前記入力手段により選択された複数の拡張機能にそれぞれ対応した前記定義ファイルを、定義ファイル記憶手段から読み出す機能作成手段を有し、
該機能作成手段は、読み出した複数の前記定義ファイルに定義された各モジュールプログラムの前記実行情報を用いて、選択された複数の前記拡張機能に対応する１つの拡張機能の前記定義ファイルを作成すると共に、
読み出した複数の前記定義ファイルに定義された各モジュールの課金額情報から、選択された複数の拡張機能に対応する１つの拡張機能の課金額を算出し、作成した前記定義ファイルに登録する、
ことを特徴とする請求項１１〜１４いずれか１項記載のインストールシステム。
【請求項１６】
前記端末は、
前記サーバから、新たに作成された前記定義ファイルを受信して、受信した前記定義ファイルを前記第２の定義ファイル記憶手段に記憶し、
前記課金額算出手段は、
新たに作成された前記定義ファイルに登録された課金額情報を用いて、前記端末の算出後課金額を算出する、
ことを特徴とする請求項１２記載のインストールシステム。
【請求項１７】
予め備える基本機能と、モジュール記憶手段から転送された対応するモジュールプログラムによる拡張機能と、を提供する情報処理装置のインストール方法において、
拡張機能毎に、モジュールプログラムを実行するための実行情報が定義された定義ファイルを記憶する定義ファイル記憶手段を参照し、表示手段に拡張機能の一覧を表示するステップと、
モジュール決定手段が、
一覧からポインティングデバイス等の入力手段により選択された拡張機能に対応するモジュールプログラムを決定するステップと、
モジュール転送手段が、前記モジュール決定手段が決定したモジュールプログラムを、前記モジュール記憶手段から転送するステップと、
を有することを特徴とするインストール方法。
【請求項１８】
基本機能を備える端末に、拡張機能を追加するモジュールプログラムをサーバからインストールするインストール方法において、
前記端末が前記サーバに、モジュールプログラムを実行するための実行情報が定義された第１の定義ファイルから拡張機能の一覧を読み出すよう要求し、受信した拡張機能の一覧を表示するステップと、
表示された拡張機能の一覧からポインティングデバイス等の入力手段により選択された拡張機能を前記サーバに送信するステップと、
前記サーバが、拡張機能毎に、第１の定義ファイルを記憶する第１の定義ファイル記憶手段を参照して、前記端末から要求された拡張機能に対応するモジュールプログラムを決定するステップと、
前記サーバが、モジュールプログラムを記憶した第１のモジュール記憶手段から読み出されたモジュールプログラムを送信するステップと、
前記端末が、前記サーバが送信した前記モジュールプログラムを受信して、インストールするステップと、
を有することを特徴とするインストール方法。
【請求項１９】
予め備える基本機能と、モジュール記憶手段から転送された対応するモジュールプログラムによる拡張機能と、を提供するコンピュータに、
拡張機能毎に、モジュールプログラムを実行するための実行情報が定義された定義ファイルを記憶する定義ファイル記憶手段を参照し、表示手段に拡張機能の一覧を表示するステップと、
一覧からポインティングデバイス等の入力手段により選択された拡張機能に対応するモジュールプログラムを決定するステップと、
前記モジュール決定手段が決定したモジュールプログラムを、前記モジュール記憶手段から転送するステップと、
を実行させることを特徴とするプログラム。
【請求項２０】
基本機能を備える端末にモジュールプログラムを送信して拡張機能を追加するコンピュータに、
モジュールプログラムを実行するための実行情報が定義された第１の定義ファイルから拡張機能の一覧を読み出すよう前記端末から要求された際、拡張機能の一覧を送信するステップと、
端末からユーザが選択した拡張機能を受信するステップと、
拡張機能毎に、前記第１の定義ファイル記憶手段を参照して、前記端末から要求された拡張機能に対応するモジュールプログラムを決定するステップと、
モジュールプログラムを記憶した第１のモジュール記憶手段から読み出されたモジュールプログラムを送信するステップと、
を実行させることを特徴とするプログラム。
【請求項２１】
請求項１９又は２０記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを実行する情報処理装置にプログラムをインストールするインストール装置、インストール方法、プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
PC（Personal  Computer）や携帯端末などでは種々のアプリケーションが実行されるが、１つのアプリケーションにおいても複数のプログラムを呼び出して各プログラムが提供する機能をアプリケーションを介して提供する実行形態が取られることが多い。
【０００３】
このようなプログラムとしては、例えばウェブブラウザに追加されるツールバーなどのプラグイン、また、アプリケーションの提供者と同じ提供者が提供する拡張機能用のプログラムが知られている。機能を後から追加・削除する構成を採用することで、ユーザが必要な拡張機能のみを追加・購入することができるので、アプリケーションの全ての機能が必要でないユーザにとって便利である。
【０００４】
このためアプリケーションの多くは、ユーザサイドにおいて、必要な機能が拡張できるように、予め、全てのユーザに共通して提供する基本的な機能（以下、「基本機能」という。）と、ユーザが必要なときに拡張可能な機能（以下、「拡張機能」と言う。）とに分けて開発され、ユーザに提供されている。
【０００５】
この結果、ユーザは、基本機能を搭載したアプリケーションが動作するＰＣに、アプリケーション本体とは別に提供された「拡張機能」用のプログラムをインストールすることで、使用目的や用途に応じた機能拡張を行うことができる（例えば、特許文献１参照。）。特許文献１には、システムが有する複数個の文書管理ＤＢ（Ｄａｔａ  Ｂａｓｅ）との間で、データの送受信を行うために異なるＤＢ間を接続する機能を、アプリケーション本体のプログラムとは別の機能拡張プログラムとしてインストールする統合文書管理システムが記載されている。
【０００６】
使用したいＤＢが増えた場合、ユーザは、そのＤＢからデータを読み出すために必要な拡張機能用プログラムをインストールすれば、１つのアプリケーションを用いて必要に応じて種々のＤＢに対応可能な環境を得ることができる。
【特許文献１】特開２００１−５１８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１記載の統合文書管理システムは、ユーザが必要な拡張機能用プログラムを１つ１つインストールしなければならないという煩わしさが生じてしまうという問題がある。
【０００８】
この不都合を回避するため、ユーザが使用したい拡張機能をアプリケーションに通知することで、アプリケーションが自動的に拡張機能用のプログラムを選択的に実行することが考えられる。しかし、ユーザが利用する拡張機能用のプログラムが増減した場合や、利用可能な拡張機能用のプログラムがバージョンアップされた場合、インストールする拡張機能用のプログラムが変わるおそれがある。この場合、ユーザは使用したい拡張機能を新たにアプリケーションに通知し直したり、通知方法を変更するなどの作業が必要になるという不都合がある。
【０００９】
また、拡張機能のリストを生成しておくことが考えられるが、拡張機能に増減があった場合、常にリストの変更が必要になるという不都合がある。
【００１０】
本発明は、上記課題に鑑み、拡張機能が選択的に提供されるアプリケーションプログラムのインストール装置において、機能の増減により影響を受けずに拡張機能用のプログラムのインストールが可能なインストール装置、インストール方法、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題に鑑み、本発明は、予め備える基本機能と、モジュール記憶手段から転送されたモジュールに対応した拡張機能と、を提供するインストール装置において、拡張機能毎に、モジュールを実行するための実行情報が定義された定義ファイルを記憶する定義ファイル記憶手段と、拡張機能の一覧を表示する表示手段と、定義ファイル記憶手段を参照し、一覧からポインティングデバイス等の入力手段により選択された拡張機能に対応するモジュールを決定するモジュール決定手段と、モジュール決定手段が決定したモジュールを、モジュール記憶手段から転送するモジュール転送手段と、を有することを特徴とする。
【００１２】
定義ファイルを参照してインストールするモジュールを決定するので、使用する拡張機能をアプリケーションに通知したり、リストを作成することなく、所望の拡張機能をインストールすることができる。
【００１３】
また、本発明の一形態において、表示手段に表示された複数の拡張機能から、入力手段により選択された複数の拡張機能にそれぞれ対応した定義ファイルを、定義ファイル記憶手段から読み出す機能作成手段を有し、該機能作成手段は、読み出した複数の定義ファイルに定義された各モジュールの実行情報を用いて、選択された複数の拡張機能に対応する１つの拡張機能の前記定義ファイルを作成する、ことを特徴とする。
【００１４】
本発明によれば、ユーザが複数の機能を１つの機能に定義できるので、複数の拡張機能のインストールが容易になり操作性を向上させることができる。
【００１５】
また、本発明の一形態において、機能作成手段は、入力手段により選択された複数の拡張機能にそれぞれ対応したモジュールが、設定値を有するか否かを判定し、設定値を有する場合、設定値を入力するための設定値登録画面を表示手段に表示し、入力手段により入力された設定値を作成された拡張機能の定義ファイルに記述する、ことを特徴とする。
【００１６】
本発明によれば、モジュールが設定値を必要としても、定義ファイルに記述しておくことができるので、モジュールのインストール作業を容易にすることができる。
【００１７】
また、本発明の一形態において、機能作成手段は表示装置の表示領域を区分し、第１の表示領域に選択される拡張機能を、第２の表示領域に選択された拡張機能を時系列に、それぞれ表示する、ことを特徴とする。
【００１８】
本発明によれば、ビジュアルな作業により新しい拡張機能を定義することができる。
【００１９】
また、本発明の一形態において、機能作成手段は、作成した新たな拡張機能の定義ファイルを、定義ファイル記憶手段に記憶し、モジュール決定手段は、定義ファイル記憶手段を参照し、新たに作成された拡張機能を一覧に含めて表示手段に表示する、ことを特徴とする。
【００２０】
本発明によれば、作成した拡張機能を一覧表示できるので、元からある拡張機能と同じように、作成した拡張機能をインストールすることができる。
【００２１】
また、本発明の一形態において、モジュール転送手段は、モジュール記憶手段に記憶されたモジュールを、当該インストール装置の予め定められたフォルダに転送する、ことを特徴とする。
【００２２】
定められたフォルダに転送することでインストールできるので、拡張機能のインストールを容易に実行することができる。
【００２３】
また、本発明の一形態において、外部装置と通信して、定義ファイルを該外部装置から受信する機能取り込み手段を有し、機能取り込み手段は、受信した定義ファイルを定義ファイル記憶手段に記憶する、ことを特徴とする。
【００２４】
本発明によれば、外部装置の定義ファイルを取り込めるので、新たに機能を定義する作業を低減し、操作性を向上させることができる。
【００２５】
また、本発明の一形態において、モジュール決定手段は、定義ファイル記憶手段を参照し、外部装置から受信した拡張機能を一覧に含めて表示手段に表示する、ことを特徴とする。
【００２６】
本発明によれば、取り込んだ拡張機能を一覧表示できるので、元からある拡張機能と同じように、取り込んだ拡張機能をインストールすることができる。
【００２７】
また、本発明は、基本機能を備える端末と、端末の基本機能に拡張機能を追加するモジュールプログラムを記憶したサーバとを、有するインストールシステムにおいて、サーバは、モジュールプログラムを記憶した第１のモジュール記憶手段と、拡張機能毎に、モジュールプログラムを実行するための実行情報が定義された第１の定義ファイルを記憶する第１の定義ファイル記憶手段と、第１の定義ファイル記憶手段を参照して、端末から要求された拡張機能に対応するモジュールプログラムを決定する第１のモジュール決定手段と、第１のモジュール記憶手段から読み出されたモジュールプログラムを送信するモジュール送信手段と、を有し、端末は、サーバに第１の定義ファイルに定義された拡張機能の一覧を要求し、受信した拡張機能の一覧を表示する表示手段と、表示された拡張機能の一覧からポインティングデバイス等の入力手段により選択された拡張機能をサーバに送信し、サーバから受信したモジュールプログラムをインストールする機能追加手段と、を有する、ことを特徴とする。
【発明の効果】
【００２８】
拡張機能が選択的に提供されるアプリケーションプログラムのインストール装置において、機能の増減により影響を受けずに拡張機能用のプログラムのインストールが可能なインストール装置、インストール方法、プログラム及び記憶媒体を提供することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明を実施するための最良の形態について、図面を参照しながら実施例を挙げて説明する。
【実施例１】
【００３０】
図１は、本実施形態のインストール装置１００の概略を模式的に説明する図である。本実施形態では、ユーザはアプリケーションにインストールする機能を例えば「機能一覧」から選択することができる。この機能一覧では、ユーザが内容を把握しやすい「PDF変換」「Webdav」などの表示用の機能名で表示される。
【００３１】
インストール装置１００は、選択された機能に対応したプログラムのモジュールを決定する。このモジュールが拡張機能用のプログラムである。そして、インストール装置１００は、インストール装置１００やサーバ等に予め記憶されているモジュールを読み出して、インストール装置１００の所定のフォルダに転送してインストールを実行する。
【００３２】
モジュールのバージョンアップ等により、機能が追加、更新、削除（以下、単に機能の増減という）されていても、ユーザは機能の増減を意識することなく「機能」を選択するだけで、インストール装置１００がインストールするモジュールを自動的に決定することができる。したがって、本実施形態のインストール装置１００は、アプリケーションの機能の増減に影響を受けずに各モジュールを選択的にインストールすることができる。
【００３３】
なお、インストール装置１００は、プリンタ、ファクシミリ、スキャナ、及び、複写機の１以上の機能を備えたＭＦＰ（Multifunction Peripheral）、又は、パーソナルコンピュータ（ＰＣ）等を実体とするが、コンピュータを備えた機器であれば好適に適用できる。
【００３４】
以下、拡張機能用のプログラムをモジュール、基本機能を提供するプログラムをコアプログラム、両者を区別しない場合アプリケーション又はアプリケーションプログラムという。
【００３５】
図２は、本実施形態のインストール装置１００のハードウェア構成図の一例を示す。インストール装置１００は、制御部１１と、主記憶部１２と、補助記憶部１３と、ネットワークI/F１４と、外部記憶装置I/F１５と、脱着装置I/F１６と、表示装置I/F１７と、及び入力装置I/F１８とを有する。インストール装置１００はコアプログラムを実行する情報処理装置（コンピュータ）を実体とし、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯電話等である。また、インストール装置１００と情報処理装置が別体であってもよい。
【００３６】
アプリケーションプログラムは、全てインストール装置１００単体に記憶されている場合もあるし、ネットワークを介して接続されたサーバ等からモジュールをダウンロードしてインストール装置１００にインストールする場合もある。すなわち、インストールされるモジュールをインストール装置１００が記憶している必要はない。
【００３７】
制御部１１は、例えばＣＰＵ（Central Processing Unit）を実体とし、主記憶部１２、補助記憶部１３、及び、ネットワークI/F１４などの各装置を制御する。また、制御部１１は、主記憶部１２や補助記憶部１３などに記憶されたプログラムを実行し、入力装置２４や補助記憶部１３かららデータを受け取り、そのデータを演算・加工した上で、表示装置２３や補助記憶部１３に出力する（例えば、キーボードで入力した文字をディスプレイに表示するなど）。
【００３８】
主記憶部１２は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory、RAM）を実体とし、制御部１１が実行するプログラムや関連するデータを記憶（一時的に保持する場合も含む）する。
【００３９】
補助記憶部１３は、例えばハードディスクドライブ（ＨＤＤ）やフラッシュメモリを実体とし、基本ソフトウェアであるＯＳ（Operating System）、上記のアプリケーション（プログラム）や機能拡張用の各モジュール等を、関連するデータとともに記憶する記憶手段である。また、補助記憶部１３には、本実施形態のインストール装置１００の各機能（特許請求の範囲における「〜手段」）を実現するインストールプログラム２５を記憶している。制御部１１がこのインストールプログラム２５を補助記憶部１３から読み出して実行することで、後述する「機能一覧表示部４１」等が実現される。
【００４０】
また、補助記憶部１３には、本実施形態に係るインストール装置１００が管理する各種情報（例えば、機能とモジュールを対応づける機能定義ファイル等）が格納されている。
【００４１】
ネットワークI/F１４は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介し、外部の装置と通信する通信インターフェイスである。例えばＮＩＣ（Network  Interface  Card）を実体とし、データリンク層に対応したプロトコル（例えば、PPPoE）にかかる処理（データの識別、経路の選択、データのパケット化、信号の誤り訂正等）を実行する。
【００４２】
外部記憶装置I/F１５は、光学式記憶媒体を装着してデータの読み出し及び書き込みを実行するドライブ装置や、ＵＳＢ（Universal Serial Bus）メモリが接続されるインターフェイスである。外部記憶装置I/F１５により、記憶媒体２１に記憶されたデータを読み出したり、記憶媒体２１にデータを書き出すことができるようになる。
【００４３】
なお、インストールプログラム２５は、ネットワークI/F１４を介して所定のサーバからダウンロードされたり、記憶媒体２１に記憶された状態から読み出され、補助記憶部１３にインストールされる。
【００４４】
脱着装置I/F１６は、USBインターフェイス、IEEE１３９４インターフェイス等であり、スキャナやデジタルカメラ等の脱着装置２２からデータを読み出すことを可能にする。
【００４５】
表示装置I/F１７は、DVI-D、DVI-A等の表示装置２３を接続するためのインターフェイスであり、VRAMに格納された表示用データをピクセル毎の輝度情報に変換しデジタルデータ又はアナログデータとして表示装置２３に送信する。表示装置２３は、デジタルデータ又アナログデータに含まれる同期などの制御信号に基づき各ピクセル毎の輝度を制御する、例えば、液晶ディスプレイ、ＣＲＴである。
【００４６】
入力装置I/F１８は、キーボードやマウスを接続するためのそれぞれ専用のインターフェイス、USBやBluetoothなどのデータ送受信用インターフェイスであり、入力装置２４から入力されたユーザの操作情報を取得する。
【００４７】
〔インストール装置１００のソフトウェア構成の概略〕
図３は、インストール装置１００のソフトウェア構成の概略構成図の一例を示す。インストール装置１００に実装されるアプリケーション３０は、機能定義ファイル３１、ＵＩプラグイン３２、アプリケーションプロセス３３、コアプログラム３５及びモジュール３４とを有する。図３の概略構成図は、既にいくつかのモジュール３４がインストールされた状態を示す。
【００４８】
機能定義ファイル３１は、アプリケーション３０によって行う処理を実現するために必要なモジュール３４の実行条件や実行順序などの動作に関する情報を所定の形式に従って定義したデータであり、複数個のデータ（データ群）によって構成されている。機能定義ファイル３１については後述する。
【００４９】
ＵＩプラグイン（UIパーツ）３２は、アプリケーション３０のＵＩ（User  Interface）を構成するプログラム（UIを構成する画面形成情報、メニュー表示のための文字・記号、画面遷移情報等）であり、このＵＩプラグイン３２も複数個のプログラム（モジュール）によって構成されている。
【００５０】
アプリケーションプロセス３３は、ＯＳから主記憶部１２に使用可能なメモリ領域の割り当てを受けて、処理を実行するプログラムである。アプリケーションプロセス３３によって実行される処理は、例えば、ＵＩプラグイン３２を用いて液晶ディスプレイやCRTなどの表示装置２３にＵＩを表示するための描画処理や、表示されたＵＩから受け付けた動作に関する情報をコアプログラム３５に送出する処理などである。
【００５１】
モジュール３４は、アプリケーション３０の機能を実現するために所定の情報処理を行うプログラムであり、複数個のプログラムから構成されている。ここで言う「所定の情報処理」とは、例えば、「PDF変換」、「Webdav」、「ファイルの読み込み」、「ファイルの更新」、「印刷」、「メッセージ表示」、「操作の入力受け付け」、などのような、アプリケーション３０の機能を構成する最小単位の機能を実現する情報処理を意味する。
【００５２】
コアプログラム３５は、機能定義ファイル３１に定義された動作条件や動作順序などの動作に関する情報に従って、モジュール３４を実行するプログラムや、ＵＩプラグイン３２やアプリケーションプロセス３３とモジュール３４との間のデータインタフェースプログラムといった、インストールされるモジュール３４に関わらず実装され、アプリーション３０の全体的な動作を制御する共通化されたプログラムである。
【００５３】
インストールプログラム２５は、コアプログラム３５を構成する複数のプログラムの一つで、アプリケーションプロセス３３からの通知を受けて実行される。  
上記のように構成された、インストール装置１００に実装されたアプリケーション３０は、以下のように動作する。
（１）ＵＩプラグイン３２がユーザからの動作指示（例えば、アプリケーション３０のメニュー項目を選択した場合）を受け取る。
（２） アプリケーションプロセス３３は、ＵＩプラグイン３２から受け取った動作指示をコアプログラム３５に送出する。
（３） コアプログラム３５は、アプリケーションプロセス３３から受け取った動作指示から、指示された動作に関する情報が定義された機能定義ファイル３１を特定し（複数個ある機能定義ファイル３１の中から、ＵＩ上のメニュー項目に対応付けられた制御データを特定する。）、特定した制御データに基づき定義された実行条件や実行順序などの動作に関する情報に従ってモジュール３４を実行する。
【００５４】
このように、本実施形態に係るアプリケーション３０に関するソフトウェアは、ユーザの起動指示に従って、コアプログラム３５とモジュール３４とが連携して、アプリケーション３０においてユーザが所望する処理を実現している。
【００５５】
〔インストール装置１００の機能ブロック〕
図４は、本実施形態のインストール装置１００がモジュール３４をインストールするための手段をブロック図を用いて模式的に説明する図である。図２の制御部１１が、補助記憶部１３に記憶されたインストールプログラム２５を読み出して実行することで、機能一覧表示部４１、モジュール決定部４２及びモジュール転送部４３が実現される。なお、機能定義ファイル３１及びモジュール群４５は、例えば補助記憶部１３に記憶されている。
【００５６】
始めに、機能定義ファイル３１について説明する。図５は、機能定義ファイル３１の一例を示す図である。機能定義ファイル３１は、ＸＭＬ（Extensible Markup Language）と言われる言語によって記述されている。
【００５７】
ＸＭＬは、タグと呼ばれる特定の文字列で、文書やデータの意味や構造を記述するマークアップ言語の１つで、ユーザが独自のタグを指定することができる。このような言語特性から、本実施形態に係る機能定義ファイル３１では、独自の「定義開始タグ」（例えば、"＜Tag＞"など。）と「定義終了タグ」（例えば、"＜/Tag＞"など。）との間に、動作に関する情報（例えば、Proc_1など。）を記述することで定義する（例えば、"＜Tag＞Proc_1＜/Tag＞"など）。
【００５８】
機能定義ファイル３１に定義される情報は、機能を実行するための情報、例えば、機能の名前、機能を実現するモジュール３４の名前、及び、モジュール３４のファイル名、である。図示した機能定義ファイル３１では、Functionタグがモジュール３４の機能であることを示し、Processタグが各モジュール３４が実行する処理であることを示している。したがって、「name」は機能名、「PluginName」はモジュール３４の名前、「FileName」はモジュール３４のファイル名を示している。
【００５９】
この機能定義ファイル３１によれば、機能の名前が「PDF transfer to webdav」であり、かかる機能は「ToPDF」というモジュール３４と「ToWebdav」というモジュール３４により実現されることが定義されている。「ToPDF」というモジュール３４は、指定されたファイルをＰＤＦフォーマットに変換するＰＤＦ変換のためのモジュール３４であり、「ToWebdav」というモジュール３４は、ＷｅｂサーバにＰＤＦ変換されたファイルを転送するためのモジュール３４である。したがって、「PDF transfer to webdav」という機能は、ＰＤＦ変換とWebdav配信を連続して行う機能となる。このような機能定義ファイル３１が、各機能毎に記憶されている。
【００６０】
機能定義ファイル３１は、アプリケーション３０の管理者が各モジュール３４を図５の書式に従い登録しておくことで生成される。また、管理者は、各機能に対応するモジュール３４のうち最新のバージョンのモジュール３４をモジュール群４５に記憶しておく。これにより、機能定義ファイル３１において機能の名前に対応する最新のモジュール３４をモジュール群４５から読み出すことができる。
【００６１】
モジュール３４が新たに生成され機能が増えた場合、管理者は、その新たな機能に名前を付与し、「name＝」に続けて""の中に記述し、「PluginName」にモジュール３４の名前を、「FileName」に新たに生成されたモジュール３４のファイル名をそれぞれ記述する。そして、管理者は、それらが記述された機能定義ファイル３１を作成し、そのファイル名のモジュール３４をモジュール群４５に記憶させる。
【００６２】
モジュール３４がモジュール群４５から削除された場合（例えば、そのモジュール３４の機能をアプリケーション３０で提供することを終了した場合）、管理者は、その削除されたモジュール３４にかかる機能定義ファイル３１を補助記憶部１３から削除する。
【００６３】
また、複数のモジュール３４が担っていた複数の機能が１つのモジュール３４にまとめられた場合、複数の機能に対応する機能定義ファイル３１及び複数の機能に対応するモジュール３４を削除し、複数の機能を提供するモジュール３４の機能定義ファイル３１を新たに作成する。また、１つのモジュール３４が担っていた機能を複数のモジュール３４に分離してそれぞれを１つのモジュール３４とした場合、元の１つのモジュール３４に対応する機能定義ファイル３１を削除し、分離された複数のモジュール３４にそれぞれ対応する機能定義ファイル３１を作成する。必ずしも元のモジュール３４を削除する必要はない。
【００６４】
なお、機能定義ファイル３１には、「各機能に関する情報」や「実行順序に関する情報」の他、各モジュール３４が処理を実現するために必要な「実行条件に関する情報」と、モジュール３４の「処理対象に関する情報」が、同様にＸＭＬにて定義されている。したがって、モジュール３４がインストールされれば、コアプログラム３５が機能定義ファイル３１を参照して、ユーザの所望の機能を実現できる。
【００６５】
図４に戻り、機能一覧表示部４１は、機能定義ファイル３１を参照して表示装置２３に機能一覧を表示する。ユーザが入力装置２４を用いて所定のボタンを選択しインストールの開始を指示すると、インストール装置１００はモジュール３４のインストールを開始するための一連の処理手順を開始する。
【００６６】
アプリケーションプロセス３３は、UIプラグイン３２が検出したインストール開始操作の入力をコアプログラム３５に通知する。これにより、コアプログラム３５は機能一覧表示部４１を起動させ、機能一覧表示部４１は、機能定義ファイル３１を補助記憶部１３から読み出し、機能一覧を生成する。
【００６７】
図６は、機能一覧表示部４１が生成する機能一覧の一例を示す図である。機能一覧表示部４１は、ウェブブラウザを利用して表示装置２３に機能の名前を一覧表示する。機能一覧表示部４１は、各機能定義ファイル３１から「name＝」に続いて記述された""に囲まれた文字列を全て抽出して読み出す。そして、例えば読み出した順番、アルファベット順、バージョンアップされた順、等の所定の順番で一覧に表示する。なお、図示した「説明」「バージョン」「インストールに必要な空きメモリ」の各項目の内容は、機能定義ファイル３１に記憶されている。
【００６８】
ユーザは機能一覧を見て、インストールしたい機能を探して各機能の先に設けられたチェックボックスに、マウス等の入力装置２４を用いてチェックする。そしてインストールしたい機能を全て選択して、「インストール」ボタン５１をクリックしたりリターンキーを押下してユーザがその選択を確定すると、UIプラグイン３２が選択された機能の名前を取得する。アプリケーションプロセス３３は、UIプラグイン３２から機能の名前を受け取りコアプログラム３５に送出するので、これによりインストールプログラム２５のモジュール決定部４２が起動する。
【００６９】
モジュール決定部４２は、選択された機能の名前に基づき機能定義ファイル３１を参照して、インストールするモジュール３４のファイル名を決定する。例えば、「PDF transfer to webdav」が選択された場合、モジュール決定部４２はインストールするモジュール３４のファイル名として「ToPDF.dll」、「ToWebdav.dll」を決定する。モジュール決定部４２は、このモジュール３４のファイル名をモジュール転送部４３に通知する。
【００７０】
モジュール転送部４３は、モジュール決定部４２により通知されたモジュール３４のファイル名のモジュール３４を転送する。転送先は、インストール装置１００の補助記憶部１３であって、アプリケーション３０のコアプログラム３５が記憶されたフォルダである。モジュール３４がコアプログラム３５と同じフォルダに転送されることで、コアプログラム３５はパスを切ることなくモジュール３４を実行して、ユーザに拡張機能を提供することができる。
【００７１】
コアプログラム３５は、転送されたモジュール３４を例えばモジュール番号等により認証し、認証が成立すると、モジュール３４をコアプログラム３５に登録する。登録により、アプリケーション３０において転送されたモジュール３４が利用可能になる。
【００７２】
なお、モジュール３４は、補助記憶部１３又はネットワークを介して接続されたサーバに記憶されている。サーバに記憶されている場合、モジュール転送部４３にとってサーバのURL（IPアドレス）は既知であり、サーバにモジュール３４のファイル名と転送要求を送信することで、モジュール３４を取得することができる。
【００７３】
また、モジュール転送部４３は、モジュール３４だけでなくコアプログラム３５及び各モジュール３４に共通のプログラムも一緒に転送する。
【００７４】
〔インストール装置１００の動作手順〕
図７は、インストール装置１００がモジュール３４をインストールする手順を示すフローチャート図である。図7のフローチャート図は、例えば、ユーザがインストール開始操作を入力するとスタートする。
【００７５】
まず、機能一覧表示部４１が起動して、機能定義ファイル３１を参照し、機能一覧を生成する（Ｓ１０）。機能定義ファイル３１の「name＝」に続いて記述され""に囲まれた文字列が機能の名前なので、それを全て読み出し表示装置２３に表示する。
【００７６】
ユーザが機能一覧からインストールしたい機能を選択し、その選択を確定すると、UIプラグイン３２が選択された機能の名前を取得して、モジュール決定部４２通知する。
【００７７】
モジュール決定部４２は、通知された機能の名前に基づき機能定義ファイル３１を参照し、転送するモジュール３４の名前を決定する（Ｓ２０）。転送するモジュール３４の名前は、機能定義ファイル３１の「Filename＝」に続いて記述され""に囲まれたファイルの名前である。モジュール決定部４２は、モジュール３４のファイル名をモジュール転送部４３に通知する。
【００７８】
モジュール転送部４３は、モジュール転送部４３から通知されたファイル名のモジュール３４をモジュール群４５から読み出し、所定のフォルダに転送する（Ｓ３０）。
【００７９】
以上説明したように、本実施例のインストール装置１００は、インストールする機能を実行するのに必要なモジュール３４を機能定義ファイル３１に登録しておくことで、ユーザが選択した機能に必要なモジュール３４を自動的に判別することができるので、機能が増減してもその影響を受けずに機能をインストールすることができる。すなわち、ユーザが直接、モジュール３４をアプリケーション３０に指定するのでなく、機能を選択するだけでよいので、機能の増減があっても、アプリケーション３０にモジュール３４を通知しなおしたり、通知方法を変更する必要がない。また、インストールする機能をリストに登録した場合、機能の増減によりリストを更新する必要が生じるが、本実施形態のインストール装置１００では、リストを生成しないので、機能の増減により影響を受けることがない。
【実施例２】
【００８０】
実施例１では、機能定義ファイル３１からユーザが所望の機能を選択することとしたが、本実施例ではユーザが既存の機能を組み合わせて新たに機能を定義できるインストール装置１００について説明する。一連の複数の機能を新たに機能として登録しておけば、次回のインストール時に、機能一覧から複数の全ての機能を選択する必要がなくなり、操作性が向上する。
【００８１】
図８は、本実施例のインストール装置１００がモジュール３４をインストールするための手段をブロック図を用いて模式的に説明する図である。なお、図８において図４と同一部分には同一の符号を付しその説明は省略する。
【００８２】
〔新機能定義ファイル４７の作成〕
本実施例のインストール装置１００は、図２の制御部１１が、補助記憶部１３に記憶されたインストールプログラム２５を読み出して実行することで実現される機能作成部４６を有する。また、機能作成部４６が新機能定義ファイル４７を作成するため、新機能定義ファイル４７が補助記憶部１３に記憶される。
【００８３】
機能作成部４６は、複数のモジュール３４を組み合わせて新たな機能を作成することを可能にする。例えば、ユーザが図６の機能一覧で機能を選択する際、複数の機能から１つの機能を作成したいと考えることがある。このため、本実施例では機能一覧に「機能作成」ボタン５２を設けた。
【００８４】
図９は、本実施例の機能一覧の一例を示す図である。図９の機能一覧において「機能作成」ボタン５２を設け、この「機能作成」ボタン５２をユーザが入力装置２４のマウスでクリックしたり、メニューの「ツール」から「機能作成」メニュー５３が選択できるようになっている。機能作成部４６は、「機能作成」ボタン５２又は「機能作成」メニュー５３がユーザにより選択されると機能作成画面を表示装置２３に表示する。
【００８５】
図１０（ａ）は、機能作成部４６が表示する機能作成画面の一例を示す。機能作成部４６は、機能一覧表示部４１と同様に又は機能一覧表示部４１の機能を利用して、機能定義ファイル３１から各機能の名前を読み出す。
【００８６】
図１０（ａ）では読み出された各機能を機能作成画面の右側に表示した。図１０（ａ）の右側には、「ＰＤＦ変換」「Ｗｅｂｄａｖ配信」「名前変更」「ＯＣＲ」が一覧に表示されている。図６と同様に、機能の名前をそのまま表示してもよいし、機能の名前を表示用の機能名に変換してユーザに提供してもよい。図１０（ａ）では、表示用の機能名をボタン状に表示した機能選択ボタン５０が配置されている。表示用の機能名は、ＵＩプラグイン３２が機能の名前と表示用の機能名を対応づけて記憶していることで表示される。
【００８７】
ユーザは、例えばマウスで表示用の機能選択ボタン５０をクリックする（選択する）ことで新たに定義したい一連の機能を選択する。機能作成画面の左側には、ユーザの選択結果が反映される。図１０（ａ）に示すように、ユーザの選択した機能は「実行開始」に続けて表示される。ＵＩプラグイン３２は、ユーザの選択した機能を取得し、順次、コアプログラム３５に通知する。機能作成部４６はコアプログラム３５からユーザが選択した機能を取得し、ユーザが機能選択ボタン５０を選択した順番に「実行開始」に機能を追加していく。
【００８８】
図１０（ｂ）は、ユーザの機能の選択が反映された機能作成画面の一例を示す。図１０（ａ）は、「ＰＤＦ変換」「名前変更」「Ｗｅｂｄａｖ配信」が順番に選択されたことを示している。ユーザは、このような新たに定義された機能に所望の表示用の機能名を付与することができる。図１０（ａ）又は（ｂ）では、「機能名：」で示した欄に、ユーザは表示用の機能名を付与することができる。
【００８９】
一連の機能が選択され、また、表示用の機能名が付与されると、機能作成部４６は、選択された機能から新機能定義ファイル４７を作成する。新機能定義ファイル４７は、複数の機能定義ファイル３１をマージすることで作成できる。
【００９０】
図１１（ａ）は、機能作成部４６により選択された一連の機能に対応する機能定義ファイル３１を示す。図１１（ａ）では説明を容易にするため、機能の名前を「ＡＡＡ」「ＢＢＢ」「ＣＣＣ」とした。また、ユーザが選択した順番もアルファベット順である。また、例えば、機能作成画面でユーザが新たな表示用の機能名を「ＡＢＣ」と入力したとする。
【００９１】
この場合、機能作成部４６は、「Function  name = 」に続く「""」に「ＡＢＣ」と記述する。これにより、新しく作成された一例の機能に、機能の名前が付与されたことになる。そして、機能作成部４６は、機能「AAA」の機能定義ファイル３１、機能「BB」の機能定義ファイル３１、機能「CCC」の機能定義ファイル３１から、「Process  PluginName 〜」の記述を順番に転記する。
【００９２】
図１１（ｂ）は、機能作成部４６が作成した新機能定義ファイル４７の一例を示す図である。このような手順により、ユーザが選択した機能の順番に、一連の機能が定義された新機能定義ファイル４７を作成することができる。
【００９３】
なお、図１１（ｂ）では表示用の機能名をそのまま機能の名前としたが、表示用の機能名と機能の名前は異なっていてもよく、この場合、機能作成部４６が適切な機能の名前（例えば、「AAABBBCCC」等）を付与することができる。また、この場合、ＵＩプラグイン３２は、ユーザの入力した表示用の機能名と、機能作成部４６が付与した機能の名前を対応づけて記憶する。したがって、新たな機能が作成された後、機能作成画面の右欄の処理一覧に例えば「ＡＢＣ」と表示でき、ユーザが「ＡＢＣ」を選択した場合に、「AAABBBCCC」の機能を特定することができる。
【００９４】
このようにして、作成された新機能定義ファイル４７に対応する機能の名前等は、すでに生成された機能定義ファイル３１と同様に、図６の機能一覧に表示される。したがって、新機能定義ファイル４７が作成された後、ユーザは機能一覧から複数の機能を選択する必要がない。
【００９５】
〔設定値の登録〕
ところで、モジュール３４によっては、何らかの設定値を登録することができるものがある。例えば、「名前変更」の機能に対応するモジュール３４は、例えばＰＤＦ変換されたファイルのファイル名を変更するが、変更後のファイルの名前に所定の固定された文字や記号を含ませたい場合がある。そこで、機能作成部４６は、図１０（ａ）の機能作成画面の右欄からユーザが選択した表示用の機能名について、何らかの設定値の登録が可能な場合は設定値の登録画面を表示する。
【００９６】
この設定値はモジュール３４毎に異なるので、機能作成部４６は、ユーザが機能作成画面で選択したモジュール３４に、設定値があるか否かを問いあわせる。各モジュール３４は、例えば、実行時のパラメータを規定したメタデータに設定値を登録することができるので、モジュール３４はメタデータを参照して機能作成部４６に設定値の有無を応答する。なお、予め、設定値を登録できるモジュール３４のリストを作成しておいてもよい。
【００９７】
図１２は、機能作成部４６が表示装置２３に表示する設定値登録画面の一例を示す。機能作成部４６が、ユーザの選択したモジュール３４に問い合わせた結果、設定値が登録可能なモジュール３４の場合、機能作成部４６は該モジュール３４の設定値登録画面を表示するようＵＩプラグイン３２に要求する。この時、機能作成部４６はモジュール３４から取得した設定値の称呼、文字列、その他の設定値情報をＵＩプラグイン３２に通知する。図１２では「接頭辞」「接尾辞」が設定値情報である。ＵＩプラグイン３２は、機能の表示眼や設定値情報を用いて設定登録画面を生成し、表示装置２３に表示する。
【００９８】
ユーザがキーボードを用いて接頭辞に「ＦＡＸ」と入力した場合、機能作成部４６は作成された機能を新機能定義ファイル４７に記述する。図１３は、設定値が記述された新機能定義ファイル４７の別の一例を示す図である。
【００９９】
図１０（ｂ）に示したように、「ＰＤＦ変換」「名前変更」「Ｗｅｂｄａｖ配信」  の順にユーザが選択した場合、新機能定義ファイル４７には、
「ＰＤＦ変換」
＜Process  PluginName = "ToPDF"  ModuleName = "ToPDF.dll"/＞
「名前変更」
＜Process  PluginName = "Rename"  ModuleName = "Rename.dll"/＞
＜Prefix＞ FAX ＜/Prefix＞
「Ｗｅｂｄａｖ配信」
＜Process  PluginName = "ToWebdav"  ModuleName = "ToWebdav.dll"/＞
のように定義される。
【０１００】
図１２に示したように、「名前変更」の機能にはユーザが接頭語「FAX」を入力したので、接頭語を表すタグ「Prefix」に「FAX」と記述されている。また、例えば、ユーザが接尾語に「FAX」と入力した場合、接頭語を表すタグ「Postfix」に「FAX」と記述される。
【０１０１】
〔インストール装置１００の動作手順〕
図１４は、インストール装置１００がモジュール３４をインストールする手順を示すフローチャート図である。なお、図１４において、図７と同一ステップには同一の符号を付しその説明は簡単に行う。  
図９の如く、機能一覧が表示装置２３に表示される（Ｓ１０）と、ユーザはインストールする機能を選択することができる。本実施例のインストール装置１００は、ユーザが機能一覧から選択することなく、「機能作成」ボタン５２等を選択することができるので、機能作成部４６は、ユーザがマウス等を用いて「機能作成」ボタン５２等を選択したか否かを判定する（Ｓ１５）。
【０１０２】
機能作成しない場合（Ｓ１５のＮｏ）、すなわち、ユーザが「機能作成」ボタン５２等を選択しない場合は、実施例１と同様に、モジュール決定部４２がユーザが選択したモジュール３４を決定し（Ｓ２０）、モジュール転送部４３が決定されたモジュール３４を所定フォルダに転送する（Ｓ３０）。
【０１０３】
機能作成する場合（Ｓ１５のＹｅｓ）、すなわちユーザが「機能作成」ボタン５２等を選択した場合は、機能作成部４６は図１０（ａ）の如く機能作成画面を表示する（Ｓ４０）。そして、機能作成部４６は、ＵＩプラグイン３２が取得した、ユーザが選択した機能と表示用の機能名をアプリケーションプロセス３３を介して取得する。
【０１０４】
機能作成部４６は、表示用の機能名及び選択した機能に基づき新機能定義ファイル４７を作成する（Ｓ５０）。すなわち、表示用の機能名から新たに作成した機能の機能名を付与し、選択した機能に基づき機能定義ファイル３１を選択し、モジュール３４の名前やモジュール３４のファイル名を記述して、新機能定義ファイル４７を作成する。
【０１０５】
ついで、ステップＳ１０に戻り、ユーザが新たに定義した機能は機能定義ファイル３１の機能と共に、機能一覧に表示される。ユーザが、この新たに作成した機能を機能一覧で選択した場合、モジュール転送部４３は一連の機能に対応する各モジュール３４を、全て所定のフォルダに転送する。
【０１０６】
以上説明したように、本実施例のインストール装置１００は、実施例１の効果に加え、ユーザが複数の機能を１つの機能に定義できるので、複数のモジュール３４のインストールが容易になり操作性を向上させることができる。
【実施例３】
【０１０７】
実施例２では、新機能定義ファイル４７を作成したユーザが新たに定義された機能のモジュール３４をインストール装置１００がインストールすることを想定していた。しかし、機能定義ファイル３１及び新機能定義ファイル４７のフォーマットは各ユーザに共通なので、ユーザＢが作成した新機能定義ファイル４７を、ユーザＡが利用してモジュール３４のインストールに利用することができる。本実施例では、外部の新機能定義ファイル４７を取り込むことができるインストール装置１００について説明する。なお、本実施例では機能定義ファイル３１と新機能定義ファイル４７とを区別することなく機能定義ファイル３１といい、外部から取り込んだ後の機能定義ファイル３１又は新機能定義ファイル４７を外部機能定義ファイル４９という。
【０１０８】
図１５は、本実施例のインストール装置１００がモジュール３４をインストールするための手段をブロック図を用いて模式的に説明する図である。なお、図１５において図８と同一部分には同一の符号を付しその説明は省略する。
【０１０９】
〔外部の機能の新機能定義ファイル４７の作成〕
本実施例のインストール装置１００は、図２の制御部１１が、補助記憶部１３に記憶されたインストールプログラム２５を読み出して実行することで実現される機能取り込み部４８を有する。また、機能取り込み部４８が取り込んだ外部機能定義ファイル４９は補助記憶部１３に記憶される。
【０１１０】
機能取り込み部４８は、外部装置から機能定義ファイル３１を取得することを可能にする。外部装置とは、例えば、ＬＡＮを介して接続されたコンピュータ、インターネット上のサーバ、ＮＡＳ（Network Attached Storage）等である。このため、本実施例では機能一覧に「機能取り込み」ボタン５４を設けた。
【０１１１】
図１６は、本実施例の機能一覧の一例を示す図である。図９の機能一覧において「機能取り込み」ボタン５４を設け、この「機能取り込み」ボタン５４をユーザが入力装置２４のマウスでクリックしたり、メニューの「ツール」から「機能取り込み」メニュー５５が選択できるようになっている。機能取り込み部４８は、「機能取り込み」ボタン５４又は「機能取り込み」メニュー５５がユーザにより選択されると機能取り込み面を表示装置２３に表示する。
【０１１２】
図１７（ａ）は、機能取り込み部４８が表示する機能取り込み画面の一例を示す。機能取り込み部４８は、例えば、所定のネットワークを介して接続されたコンピュータのフォルダに記憶されている機能定義ファイル３１から各機能の名前を読み出す。機能定義ファイル３１の拡張子（例えば、ist）は固定なので、そのフォルダ等に機能定義ファイル３１が記憶されていればその一覧を表示することができる。
【０１１３】
図１７（ａ）では読み出された各機能を機能作成画面の右側に表示した。図１７（ａ）の右側には、「ＰＤＦ変換」「Ｗｅｂｄａｖ配信」「名前変更」「ＯＣＲ」が一覧に表示されている。図１７（ａ）で表示されるのはファイル名であるが、ユーザがファイル名から機能の名前を想起できるように、ファイル名の少なくとも一部には機能の名前又は表示用の機能名がそのまま含まれることが好ましい。
【０１１４】
また、図１７（ａ）の左側には、「最近使ったファイル」「マイネットワーク」「マイドキュメント」をそれぞれ選択するボタンが設けられているので、ユーザはそれぞれのボタンをマウス等で選択することで、「ファイルの場所」を指定することができる。
【０１１５】
図１７（ａ）のようにファイルの場所が明らかでない場合、図１７（ｂ）のように機能定義ファイル３１を検索してもよい。ユーザは、検索欄６１に機能の名前や表示用の機能名の一部又は全部を入力して、検索ボタン６２をマウス等で選択することで所望の機能定義ファイル３１を検索できる。検索にヒットした機能定義ファイル３１は、リンク先のフォルダ等から取り込むことができる。なお、検索の際ユーザは、ＬＡＮ内、インターネット、デスクトップ等で検索範囲６３を指定して、機能定義ファイル３１と関連のないファイルが検索にヒットすることを回避できるようになっている。
【０１１６】
機能取り込み部４８は、図１７（ａ）又は１７（ｂ）の機能取り込み画面により取り込んだ機能定義ファイル３１を、補助記憶部１３に記憶する。補助記憶部１３に記憶された機能定義ファイル３１は、外部機能定義ファイル４９と称される。
【０１１７】
〔インストール装置１００の動作手順〕
図１８は、インストール装置１００がモジュール３４をインストールする手順を示すフローチャート図である。なお、図１８において、図７と同一ステップには同一の符号を付しその説明は簡単に行う。  
図１６の如く、機能一覧が表示装置２３に表示される（Ｓ１０）と、ユーザはインストールする機能を選択することができる。本実施例のインストール装置１００は、「機能取り込み」ボタン５４等を選択することができるので、機能取り込み部４８は、ユーザがマウス等を用いて「機能取り込み」ボタン５４等を選択したか否かを判定する（Ｓ１６）。
【０１１８】
機能取り込みしない場合（Ｓ１６のＮｏ）、すなわち、ユーザが「機能取り込み」５４等を選択しない場合は、実施例１と同様に、モジュール決定部４２がユーザが選択したモジュール３４を決定し（Ｓ２０）、モジュール転送部４３が決定されたモジュール３４を所定フォルダに転送する（Ｓ３０）。
【０１１９】
機能取り込みする場合（Ｓ１６のＹｅｓ）、すなわちユーザが「機能取り込み」ボタン５４等を選択した場合は、機能取り込み部４８は図１６（ａ）の如く機能取り込み画面を表示する（Ｓ４１）。ユーザは、機能取り込み画面に表示された機能定義ファイル３１から所望の機能定義ファイル３１をマウス等で選択する。
【０１２０】
そして、機能取り込み部４８は、ＵＩプラグイン３２が取得した、ユーザが選択した機能定義ファイル３１をアプリケーションプロセス３３を介して取得する。
【０１２１】
機能取り込み部４８は、ユーザが選択した機能定義ファイル３１を補助記憶部１３に記憶する（Ｓ５１）。すなわち、機能定義ファイル３１と外部機能定義ファイル４９とは同じフォーマットなので、補助記憶部１３に記憶することでインストール装置１００に取り込まれたことになる。インストール装置１００は、元から記憶している機能定義ファイル３１、ユーザが作成した新機能定義ファイル４７と同様に、外部機能定義ファイル４９を用いてインストールするモジュール３４を指定することができる。
【０１２２】
ついで、ステップＳ１０に戻り、ユーザが取り込んだ外部機能定義ファイル４９の機能は、機能定義ファイル３１及び新機能定義ファイル４７の機能と共に、機能一覧に表示される。ユーザが、この外部から取り込んだ機能を機能一覧で選択した場合、モジュール転送部４３は一連の機能に対応する各モジュール３４を、全て所定のフォルダに転送する。
【０１２３】
以上説明したように、本実施例のインストール装置１００は、実施例１及び２の効果に加え、ユーザが外部の機能定義ファイル３１を取り込むことができるので、機能を作成することなくモジュール３４のインストールが行うことができ操作性を向上させることができる。
【実施例４】
【０１２４】
本実施例では、サーバ３００とインストール装置１００が連携してモジュール３４をインストールする実施形態について説明する。
図１９（ａ）はサーバ３００とインストール装置１００を有するインストールシステム２００の概略構成図の一例を、図１９（ｂ）はサーバ３００のハードウェア構成図の一例をそれぞれ示す。インストール装置１００がネットワーク１０１を介してサーバ３００と接続されている。ネットワーク１０１は例えば社内、一部署、一フロア等のＬＡＮ、支店間など地理的に離れたＬＡＮ同士を接続したＷＡＮ、又は、インターネットなどである。なお、ネットワーク１０１は有線・無線のいずれであってもよい。
【０１２５】
モジュール３４はサーバ３００に記憶しておくことができるので、インストール装置１００の補助記憶部１３の容量を抑制できる。また、モジュール３４を決定する等の機能をサーバ３００に集約できるので、各インストール装置１００のコストを低減できる。図１９（ａ）ではインストール装置１００をＭＦＰとしたが、その他の機器又は情報処理装置でもよい。
【０１２６】
サーバ３００は公知のハードウェア構成を備え、モジュール３４をインストール装置１００に配信する、１以上の例えばＰＣであるが、サーバ３００をＭＦＰで実現してもよい。
【０１２７】
サーバ３００は、それぞれバスで相互に接続されているＣＰＵ７１、ＲＡＭ７２、ＲＯＭ７３、記憶媒体装着部７４、ＮＩＣ７８、入力装置７７、表示制御部７６及びストレージ７５を有するように構成される。
【０１２８】
ＣＰＵ７１は、ＯＳ（Operating  System）やインストールプログラム２５をストレージ７５から読み出して実行することで上記の実施例と同様の機能を提供すると共に、サーバ３００が行う処理を統括的に制御する。
【０１２９】
ＲＡＭ７２はＣＰＵ７１がインストールプログラム２５を実行する際にインストールプログラム２５や処理に必要なデータを一時保管する作業メモリ（主記憶メモリ）になり、ＲＯＭ７３はＢＩＯＳ（Basic Input Output System）やＯＳを起動するためのプログラム、設定ファイルを記憶している。
【０１３０】
記憶媒体装着部７４は記憶媒体が着脱可能に構成されており、記憶媒体２１に記録されたインストールプログラム２５やデータを読み込み、ストレージ７５にインストールする際と、インストールプログラム２５やデータを書き込む際に使用される。
【０１３１】
ＮＩＣ７８は、ネットワーク１０１に接続するためのインターフェイス、例えばイーサネット（登録商標）カードであり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行する。
【０１３２】
入力装置７７は、キーボードやマウスなど、ユーザからの様々な操作指示を入力するためのデバイスである。表示制御部７６は、プログラムが指示する画面情報に基づき所定の解像度や色数等で液晶などのディスプレイ７９に描画する。例えば、ＧＵＩ（Graphical User Interface）画面を形成し、操作に必要な各種ウィンドウやデータ等をディスプレイ７９に表示する。
【０１３３】
ストレージ７５は、ハードディスクドライブ、ＳＳＤ（Flash Solid State Drive）等の不揮発メモリを実体とし、本実施形態ではインストールプログラム２５が記憶されている。インストールプログラム２５は、記憶媒体２１に記憶して配布されたり、ネットワーク１０１を介して接続された不図示のサーバからダウンロードされ、ストレージ７５にインストールされる。
【０１３４】
図２０は、インストールシステム２００がモジュール３４をインストールするための手段を、ブロック図を用いて模式的に説明する図である。なお、図２０において図４と同一部分には同一の符号を付しその説明は省略する。
【０１３５】
図示するように、本実施例ではサーバ３００がモジュール決定部４２Ｓ、機能定義ファイル３１Ｓ及びモジュール群４５Ｓを有する点で実施例１と異なっている。なお、機能取得部８１はインストール装置１００から機能を取得（受信）するための手段、機能転送部８２はモジュール３４をインストール装置１００に送信するための手段である。
【０１３６】
機能一覧表示部４１は、サーバ３００から機能一覧を取得して表示装置２３に機能一覧を表示する。ユーザが機能一覧を見てインストールしたい機能を選択すると、機能一覧表示部４１は機能の名前をサーバ３００の機能転送部８２に送信する。
【０１３７】
サーバ３００の機能取得部８１は機能をモジュール決定部４２Ｓに送出するので、モジュール決定部４２Ｓは、その機能に必要な機能定義ファイルとモジュール３４を決定し、機能定義ファイル名とモジュール名を機能転送部８２に送出する。機能転送部８２は機能定義ファイルとモジュール３４をインストール装置１００に送信する。インストール装置１００の機能配置部８３は、基本機能を提供するコアプログラム（アップデートは不要）に、機能定義ファイルとモジュール３４を合わせてモジュール３４を配置する。
【０１３８】
図２１のシーケンス図を用いて詳細に説明する。図２１のシーケンス図は、例えばユーザが入力装置７７からインストールの開始を入力した場合、予め定めた時間やインストール装置１００が使用されていなくなりリソースに余裕が生じるとスタートする。
【０１３９】
インストールを開始すると、インストール装置１００の機能一覧表示部４１は、サーバ３００の機能取得部８１に機能一覧の取得を要求する（Ｓ１１０）。
【０１４０】
サーバ３００の機能取得部８１は全ての機能定義ファイルから機能名を取得し、インストール装置１００の機能一覧表示部４１へ機能一覧を送信する（Ｓ１２０）。
【０１４１】
インストール装置１００の機能一覧表示部４１は機能一覧を受信し、取得した機能一覧を画面に表示する（Ｓ１３０）。
【０１４２】
ユーザが機能一覧画面でインストールしたい機能を選択すると、インストール装置１００の機能一覧表示部４１は、ユーザが選択した機能名をサーバ３００の機能転送部８２に送信する（Ｓ１４０）。機能名の送信により、機能定義ファイルと機能に必要なモジュール３４の転送を要求したことになる。
【０１４３】
サーバ３００の機能転送部８２は、送信された機能名をサーバ３００のモジュール決定部４２Ｓに送出し、その機能に必要な機能定義ファイルとモジュール３４の決定を依頼する。サーバ３００のモジュール決定部４２Ｓは、渡された機能名に該当する機能定義ファイルを抽出し、その機能定義ファイルから必要なモジュール名を取得し、機能定義ファイル名とモジュール名をサーバ３００の機能転送部８２に送出する（Ｓ１５０）。
【０１４４】
サーバ３００の機能転送部８２は、モジュール決定部４２Ｓが決定した機能定義ファイル名とモジュール名に該当するモジュール３４をインストール装置１００の機能配置部８３に転送する（Ｓ１６０）。
【０１４５】
インストール装置１００の機能配置部８３は、基本機能を提供するコアプログラム（アップデートは不要）に、機能定義ファイルとモジュール３４を合わせてモジュール３４を配置する（Ｓ１７０）。なお、モジュール３４の配置とは、予め定められている補助記憶媒体１３の物理的・論理的なアドレス（例えば、アプリケーション３０のコアプログラム３５が記憶されたフォルダ）に記憶することをいう。
【０１４６】
したがって、本実施形態のインストールシステム２００によれば、実施例１の効果に加え、サーバ３００にモジュール３４のモジュール群４５Ｓやインストール機能を集約することができる。
【実施例５】
【０１４７】
実施例４ではサーバ３００のみがモジュール群４５Ｓやインストール機能を有していたが、本実施例ではインストール装置１００もモジュール群４５Ｉやインストール機能を備えたインストールシステム２００について説明する。
【０１４８】
図２２は、インストールシステム２００がモジュール３４をインストールするための手段を、ブロック図を用いて模式的に説明する図である。なお、図２２において図２０と同一部分には同一の符号を付しその説明は省略する。図示するように、本実施例では、インストール装置１００が、モジュール群４５Ｉ、機能定義ファイル３１Ｉ、モジュール決定部４２Ｉ及び機能取得部８１Ｓを有する。サーバ３００が有するモジュール群４５Ｓ、機能定義ファイル３１Ｓ、モジュール決定部４２Ｓ及び機能取得部８１Ｓと、インストール装置１００が有するモジュール群４５Ｉ、機能定義ファイル３１Ｉ、モジュール決定部４２Ｉ及び機能取得部８１Ｉとはそれぞれ同じものである。
【０１４９】
図２３は、インストールシステム２００がモジュール３４をインストールする手順を示すシーケンス図の一例である。
【０１５０】
インストールが開始されると、インストール装置１００の機能一覧表示部４１は、実施例４と同様、サーバ３００の機能取得部８１Ｓに機能一覧の取得を要求し（Ｓ１１０）、サーバ３００に存在する機能一覧を送信するよう要求する。これにより、サーバ３００の機能取得部８１Ｓは全ての機能定義ファイル３１Ｓから機能名を取得し、インストール装置１００の機能一覧表示部４１へ機能一覧を送信する（Ｓ１２０）。
【０１５１】
また、インストール装置１００の機能一覧表示部４１は、インストール装置１００の機能取得部８１Ｉに機能一覧の取得を依頼し、インストール装置１００に存在する機能一覧を取得する（Ｓ１２１）。
【０１５２】
そして、インストール装置１００の機能一覧表示部４１は、サーバ３００から受信した機能一覧、インストール装置１００の機能取得部８１Ｉが取得した機能一覧を表示装置２３に表示する（Ｓ１３０）。
【０１５３】
ユーザが機能一覧画面でインストールしたい機能を選択すると、インストール装置１００の機能一覧表示部４１は、ユーザが選択した機能のうち、サーバ３００に存在する機能名をサーバ３００の機能転送部８２に送信し（Ｓ１４０）、サーバ３００のモジュール決定部４２Ｓは機能名に対応する機能定義ファイル３１Ｓとモジュール３４を決定する（Ｓ１５０）。サーバ３００の機能転送部８２は、モジュール決定部４２Ｓが決定した機能定義ファイル名とモジュール名に該当するモジュール３４をインストール装置１００の機能配置部８３に転送する（Ｓ１６０）。
【０１５４】
また、インストール装置１００の機能一覧表示部４１は、ユーザが選択した機能のうち、インストール装置１００に存在する機能名をインストール装置１００のモジュール決定部４２Ｉに渡し、機能定義ファイル名とモジュール名の取得を依頼する。インストール装置１００のモジュール決定部４２Ｉは、渡された機能名から機能定義ファイル３１Ｉと必要なモジュール３４を決定し（Ｓ１６１）、機能定義ファイル名とモジュール名をインストール装置１００の機能配置部８３に送出する。
【０１５５】
そして、インストール装置１００の機能配置部８３は、基本機能を提供するコアプログラム（アップデートは不要）に加えて、サーバ３００から転送された機能定義ファイル３１Ｓとモジュール３４、及び、インストール装置１００のモジュール決定部４２Ｉが決定した機能定義ファイル名、モジュール名に該当する機能定義ファイル３１Ｉ、モジュール３４を、補助記憶装置１３に配置する（Ｓ１７０）。
【０１５６】
したがって、本実施形態のインストールシステム２００によれば、サーバ３００とインストール装置１００の双方から機能定義ファイル３１Ｉ、３１Ｓとモジュール３４を取得でき、インストール装置１００が利用できる機能を最大化できる。例えば、ネットワークに接続されていない場合でも機能をインストールすることができる。
【実施例６】
【０１５７】
機能を追加した場合、追加の料金が発生することがあるが、この場合、ユーザは料金に応じて機能を追加するか否かを判断できると便利である。本実施例では、課金額を表示できるインストールシステム２００について説明する。サーバ３００とインストール装置１００が接続されていれば、サーバ３００での課金の管理が容易になる。
【０１５８】
図２４は、インストールシステム２００がモジュール３４をインストールするための手段を、ブロック図を用いて模式的に説明する図である。なお、図２４において図２２と同一部分には同一の符号を付しその説明は省略する。図示するように、本実施例では、インストール装置１００が、課金額表示部８７、課金額算出部８５Ｉ及び課金額転送部８６を、サーバ３００がユーザ毎の課金額ＤＢ８４及び課金額算出部８５Ｓを有する。なお、図２４では、インストール装置１００がモジュール群４５Ｉ、機能定義ファイル３１Ｉ、モジュール決定部４２Ｉ及び機能取得部８１Ｉを有するように図示したが、実施例４と同様にインストール装置１００がこれらの機能を有さなくてもよい。
【０１５９】
なお、課金額を算出するため本実施例の機能定義ファイル３１Ｉ、３１Ｓは、機能毎に課金額が登録されている。課金額は無料の機能の機能定義ファイル３１Ｉ、３１Ｓには登録されていない。
＜Function  name = "PDF transfer to webdav"＞
＜Process  PluginName = "ToPDF"  FileName = "ToPDF.dll"/＞
＜Process  PluginName = "ToWebdav"  FileName = "ToWebdav.dll"/＞
＜Price＞ 100000＜/Price＞
＜/Function＞
課金額算出部８５Ｉ、８５Ｓは、ユーザに選択された機能に基づき機能定義ファイル３１Ｉ、３１Ｓを参照し、Priceタグの課金額「100000」を読み出し、複数の場合はそれらの合計を算出する。
【０１６０】
実施例４のようにサーバ３００のみがモジュール３４を記憶している場合、サーバ３００の課金額算出部８５Ｓがユーザに選択された各機能の課金額を読み出し、その合計を算出する共に、各機能の課金額と合計をインストール装置１００に送信する。一方、実施例５又は６のようにサーバ３００とインストール装置１００の双方からモジュール３４をインストールする場合、それぞれの課金額算出部８５Ｉ、８５Ｓが各機能の課金額を読み出す。そして一方の課金額算出部８５Ｉ又は８５Ｓが全ての課金額の合計を算出してもよいし、インストール装置１００の課金額算出部８５Ｉがインストール装置１００が記憶するモジュール３４の課金額の合計を、サーバ３００の課金額算出部８５Ｓがサーバ３００が記憶するモジュール３４の課金額の合計をそれぞれ算出してもよい。
【０１６１】
図２５は、インストールシステム２００がモジュール３４をインストールする手順を示すシーケンス図の一例である。
【０１６２】
インストールが開始されると、インストール装置１００の機能一覧表示部４１は、実施例５と同様にサーバ３００とインストール装置１００が有する機能の機能一覧を表示装置２３に表示する（Ｓ１１０〜１３０）。
【０１６３】
インストール装置１００の機能一覧表示部４１は、サーバ３００の機能一覧をサーバ３００の課金額算出部８５Ｓに、インストール装置１００の機能一覧をインストール装置１００の課金額算出部８５Ｉにそれぞれ送出し、各機能の課金額の取得を依頼する。
【０１６４】
サーバ３００の課金額算出部８５Ｓは、送信された機能一覧から対応する機能定義ファイル３１Ｓを探し、各機能の課金額を取得し、インストール装置１００に送信する。インストール装置１００の課金額算出部８５Ｉは、機能一覧から対応する機能定義ファイル３１Ｓを探し、各機能の課金額を取得し、課金額表示部８７に送出する。
【０１６５】
インストール装置１００の課金額表示部８７は、サーバ３００から送信された課金額とインストール装置１００の課金額算出部８５Ｉが読み出した課金額を表示装置２３に表示する（Ｓ１３５）。
【０１６６】
これにより、ユーザは課金額を見ながら機能一覧画面でインストールしたい機能を選択することができる。ユーザがインストールする機能を選択すると、課金額表示部８７は選択の度に課金額を合計していき、合計結果を表示装置に表示する。
【０１６７】
図２６は、機能一覧表示部４１が生成する機能一覧の一例を示す図である。図２６において図６と同一部には同一の符号を付しその説明は省略する。図示するように本実施例の機能一覧には「課金額」が機能毎に表示される。
【０１６８】
例えば、ユーザが最終的に「インストール」ボタン５１をクリックしたりリターンキーを押下してユーザがその選択を確定すると、実施例５と同様にインストールが開始される。すなわち、インストール装置１００の機能一覧表示部４１は、ユーザが選択した機能のうち、サーバ３００に存在する機能名をサーバ３００の機能転送部８２に送信し（Ｓ１４０）、サーバ３００のモジュール決定部４２Ｓは機能名に対応する機能定義ファイル３１Ｓとモジュール３４を決定する（Ｓ１５０）。サーバ３００の機能転送部８２は、モジュール決定部４２Ｓが決定した機能定義ファイル名とモジュール名に該当するモジュール３４をインストール装置１００の機能配置部８３に転送する（Ｓ１６０）。
【０１６９】
また、インストール装置１００の機能一覧表示部４１は、ユーザが選択した機能のうち、インストール装置１００に存在する機能名をインストール装置１００のモジュール決定部４２Ｉに渡し、機能定義ファイル名とモジュール名の取得を依頼する。インストール装置１００のモジュール決定部４２Ｉは、渡された機能名から機能定義ファイル３１Ｉと必要なモジュール３４を決定し（Ｓ１６１）、機能定義ファイル名とモジュール名をインストール装置１００の機能配置部８３に送出する。
【０１７０】
そして、インストール装置１００の機能配置部８３は、基本機能を提供するコアプログラム（アップデートは不要）に加えて、サーバ３００から転送された機能定義ファイル３１Ｓとモジュール３４、及び、インストール装置１００のモジュール決定部４２Ｉが決定した機能定義ファイル名、モジュール名に該当する機能定義ファイル３１Ｉ、モジュール３４を、補助記憶装置１３に配置する（Ｓ１７０）。
【０１７１】
そして、インストール装置１００の課金額算出部８５Ｉはインストールした各機能の課金額の合計を課金額転送部８６に送出し、課金額転送部８６は、選択された各機能、数量、及び、それらの課金額の合計をサーバ３００の課金額算出部８５Ｓに送信する（Ｓ１８０）。サーバ３００の課金額算出部８５Ｓはこれをユーザ毎に合計・蓄積し、課金を行う際のデータとする（Ｓ１９０）。
【０１７２】
本実施例のインストールシステム２００には、ユーザは課金額を確認しながら、自分が利用したい機能のみにお金を支払うことができ、不必要な機能をインストールする必要がなくなる。
【０１７３】
この課金額は、実施例２のように機能作成する際にも同様に表示されるので、ユーザは追加する機能とその課金額、及び、合計を見ながら、費用対効果を勘案しながら新機能を作成することができる。
【実施例７】
【０１７４】
実施例２で説明した新機能を作成した場合、及び、実施例３で説明した新機能を取り込んだ場合も、ユーザに課金することができる。
【０１７５】
図８の新機能作成部は、新たに作成した新機能の課金額を決定し、機能定義ファイル３１Ｉに登録する。課金額の決定方法は予め定めらており、例えば新機能に含まれる各機能の課金の合計である。また、新機能に含まれる機能の数が多い場合には、数に係数をかけて合計から減額した値を新機能の課金額としてもよい。いずれにしても、新機能の機能定義ファイル３１Ｉには、元からある機能定義ファイルと同様に課金額情報が登録される。
【０１７６】
なお、作成された新機能の機能定義ファイル３１Ｉはインストール装置１００側が記憶することが考えられるが、作成された新機能の機能定義ファイル３１Ｉをサーバ３００に送信することとすれば、サーバ３００とインストール装置１００で新機能の機能定義ファイル３１Ｉを共有することができる。すなわち、以降はサーバ３００から別のインストール装置１００に新機能の機能定義ファイル３１Ｉを送信し一覧表示することができる。
【０１７７】
そのような使用方法が実施例３で説明した、すでに作成されている新機能を取り込む場合である。新機能の機能定義ファイル３１Ｉには、元からある機能定義ファイル３１Ｉ、３１Ｓと同様に課金額情報が登録されているので、外部から取り込んだ後の外部機能定義ファイル４９を参照することで、インストールした機能に応じて課金することができる。
【０１７８】
したがって、本実施例のインストールシステム２００は、インストール装置１００において新機能が作成された場合でも同様にユーザに課金することができる。また、新機能を取り込む場合も、同様にユーザに課金することができる。
【図面の簡単な説明】
【０１７９】
【図１】インストール装置の概略を模式的に説明する図である。
【図２】インストール装置のハードウェア構成図の一例である。
【図３】インストール装置のソフトウェア構成の概略構成図の一例である。
【図４】インストール装置１００がモジュールをインストールするための手段をブロック図を用いて模式的に説明する図の一例である。
【図５】機能定義ファイルの一例を示す図である。
【図６】機能一覧表示部が生成する機能一覧の一例を示す図である。
【図７】インストール装置１００がモジュールをインストールする手順を示すフローチャート図である。
【図８】インストール装置がモジュールをインストールするための手段をブロック図を用いて模式的に説明する図の一例である（実施例２）。
【図９】機能一覧の一例を示す図である。
【図１０】機能作成画面の一例である。
【図１１】機能作成部により選択された一連の機能に対応する機能定義ファイルの一例を示す図である。
【図１２】機能作成部が表示装置に表示する設定値登録画面の一例である。
【図１３】設定値が記述された新機能定義ファイルの別の一例を示す図である。
【図１４】インストール装置がモジュールをインストールする手順を示すフローチャート図の一例である（実施例２）。
【図１５】インストール装置がモジュールをインストールするための手段をブロック図を用いて模式的に説明する図の一例である（実施例３）。
【図１６】機能一覧の一例を示す図である。
【図１７】機能取り込み画面の一例を示す図である。
【図１８】インストール装置がモジュールをインストールする手順を示すフローチャート図の一例である（実施例３）。
【図１９】サーバとインストール装置を有するインストールシステムの概略構成図の一例である。
【図２０】インストールシステムがモジュールをインストールするための手段を、ブロック図を用いて模式的に説明する図の一例である（実施例４）。
【図２１】インストールシステムがモジュールをインストールする手順を示すシーケンス図の一例である（実施例４）。
【図２２】インストールシステムがモジュールをインストールするための手段を、ブロック図を用いて模式的に説明する図の一例である（実施例５）。
【図２３】インストールシステムがモジュールをインストールする手順を示すシーケンス図の一例である（実施例５）。
【図２４】インストールシステムがモジュールをインストールするための手段を、ブロック図を用いて模式的に説明する図の一例である（実施例６）。
【図２５】インストールシステムがモジュールをインストールする手順を示すシーケンス図の一例である（実施例６）。
【図２６】機能一覧表示部が生成する機能一覧の一例を示す図である。
【符号の説明】
【０１８０】
１１  制御部  
１２  主記憶部
１３  補助記憶部
１４  ネットワークI/F
１５  外部記憶装置I/F
１６  脱着装置I/F
１７  表示装置I/F
１８  入力装置I/F
２１  記憶媒体
２２  脱着装置
２３  表示装置
２４  入力装置
２５  インストールプログラム
３０  アプリケーション
３１  機能定義ファイル
３２  ＵＩプラグイン
３３  アプリケーションプロセス
３４  モジュール
３５  コアプログラム
４１  機能一覧表示部
４２、４２Ｓ、４２Ｉ  モジュール決定部
４３  モジュール転送部
４６  機能作成部
４８  機能取り込み部
【図１】
2010015533.tif 000003
【図２】
2010015533.tif 000004
【図３】
2010015533.tif 000005
【図４】
2010015533.tif 000006
【図５】
2010015533.tif 000007
【図６】
2010015533.tif 000008
【図７】
2010015533.tif 000009
【図８】
2010015533.tif 000010
【図９】
2010015533.tif 000011
【図１０】
2010015533.tif 000012
【図１１】
2010015533.tif 000013
【図１２】
2010015533.tif 000014
【図１３】
2010015533.tif 000015
【図１４】
2010015533.tif 000016
【図１５】
2010015533.tif 000017
【図１６】
2010015533.tif 000018
【図１７】
2010015533.tif 000019
【図１８】
2010015533.tif 000020
【図１９】
2010015533.tif 000021
【図２０】
2010015533.tif 000022
【図２１】
2010015533.tif 000023
【図２２】
2010015533.tif 000024
【図２３】
2010015533.tif 000025
【図２４】
2010015533.tif 000026
【図２５】
2010015533.tif 000027
【図２６】
2010015533.tif 000028