本発明は、アプリケーションプログラムを実行する情報処理装置にプログラムをインストールするインストール装置、インストール方法、プログラム及び記憶媒体に関する。
PC(Personal Computer)や携帯端末などでは種々のアプリケーションが実行されるが、1つのアプリケーションにおいても複数のプログラムを呼び出して各プログラムが提供する機能をアプリケーションを介して提供する実行形態が取られることが多い。
このようなプログラムとしては、例えばウェブブラウザに追加されるツールバーなどのプラグイン、また、アプリケーションの提供者と同じ提供者が提供する拡張機能用のプログラムが知られている。機能を後から追加・削除する構成を採用することで、ユーザが必要な拡張機能のみを追加・購入することができるので、アプリケーションの全ての機能が必要でないユーザにとって便利である。
このためアプリケーションの多くは、ユーザサイドにおいて、必要な機能が拡張できるように、予め、全てのユーザに共通して提供する基本的な機能(以下、「基本機能」という。)と、ユーザが必要なときに拡張可能な機能(以下、「拡張機能」と言う。)とに分けて開発され、ユーザに提供されている。
この結果、ユーザは、基本機能を搭載したアプリケーションが動作するPCに、アプリケーション本体とは別に提供された「拡張機能」用のプログラムをインストールすることで、使用目的や用途に応じた機能拡張を行うことができる(例えば、特許文献1参照。)。特許文献1には、システムが有する複数個の文書管理DB(Data Base)との間で、データの送受信を行うために異なるDB間を接続する機能を、アプリケーション本体のプログラムとは別の機能拡張プログラムとしてインストールする統合文書管理システムが記載されている。
使用したいDBが増えた場合、ユーザは、そのDBからデータを読み出すために必要な拡張機能用プログラムをインストールすれば、1つのアプリケーションを用いて必要に応じて種々のDBに対応可能な環境を得ることができる。
特開2001−51840号公報
しかしながら、特許文献1記載の統合文書管理システムは、ユーザが必要な拡張機能用プログラムを1つ1つインストールしなければならないという煩わしさが生じてしまうという問題がある。
この不都合を回避するため、ユーザが使用したい拡張機能をアプリケーションに通知することで、アプリケーションが自動的に拡張機能用のプログラムを選択的に実行することが考えられる。しかし、ユーザが利用する拡張機能用のプログラムが増減した場合や、利用可能な拡張機能用のプログラムがバージョンアップされた場合、インストールする拡張機能用のプログラムが変わるおそれがある。この場合、ユーザは使用したい拡張機能を新たにアプリケーションに通知し直したり、通知方法を変更するなどの作業が必要になるという不都合がある。
また、拡張機能のリストを生成しておくことが考えられるが、拡張機能に増減があった場合、常にリストの変更が必要になるという不都合がある。
本発明は、上記課題に鑑み、拡張機能が選択的に提供されるアプリケーションプログラムのインストール装置において、機能の増減により影響を受けずに拡張機能用のプログラムのインストールが可能なインストール装置、インストール方法、プログラム及び記憶媒体を提供することを目的とする。
上記課題に鑑み、本発明は、予め備える基本機能と、モジュール記憶手段から転送されたモジュールプログラムに対応した拡張機能と、を提供する機器において、前記拡張機能毎に、モジュールプログラムを実行するための情報が定義された定義情報を記憶する定義情報記憶手段と、表示手段に表示された複数の前記拡張機能から、入力手段により選択された複数の前記拡張機能にそれぞれ対応した前記定義情報を、定義情報記憶手段から読み出し、複数の前記定義情報に定義された各モジュールプログラムの前記情報を用いて、選択された複数の前記拡張機能に対応する1つの拡張機能の前記定義情報を作成する機能作成手段と、前記機能作成手段により作成された前記定義情報を含め、前記定義情報に基づき前記拡張機能の一覧を表示する表示手段と、前記定義情報記憶手段を参照し、該一覧から前記入力手段により選択された前記拡張機能に対応するモジュールプログラムを決定するモジュール決定手段と、前記モジュール決定手段が決定したモジュールプログラムを、前記モジュール記憶手段から転送するモジュール転送手段と、を有することを特徴とする。
定義ファイルを参照してインストールするモジュールを決定するので、使用する拡張機能をアプリケーションに通知したり、リストを作成することなく、所望の拡張機能をインストールすることができる。
本発明によれば、ユーザが複数の機能を1つの機能に定義できるので、複数の拡張機能のインストールが容易になり操作性を向上させることができる。
本発明によれば、ユーザが複数の機能を1つの機能に定義できるので、複数の拡張機能のインストールが容易になり操作性を向上させることができる。
また、本発明の一形態において、機能作成手段は、入力手段により選択された複数の拡張機能にそれぞれ対応したモジュールが、設定値を有するか否かを判定し、設定値を有する場合、設定値を入力するための設定値登録画面を表示手段に表示し、入力手段により入力された設定値を作成された拡張機能の定義ファイルに記述する、ことを特徴とする。
本発明によれば、モジュールが設定値を必要としても、定義ファイルに記述しておくことができるので、モジュールのインストール作業を容易にすることができる。
また、本発明の一形態において、機能作成手段は表示装置の表示領域を区分し、第1の表示領域に選択される拡張機能を、第2の表示領域に選択された拡張機能を時系列に、それぞれ表示する、ことを特徴とする。
本発明によれば、ビジュアルな作業により新しい拡張機能を定義することができる。
また、本発明の一形態において、機能作成手段は、作成した新たな拡張機能の定義ファイルを、定義ファイル記憶手段に記憶し、モジュール決定手段は、定義ファイル記憶手段を参照し、新たに作成された拡張機能を一覧に含めて表示手段に表示する、ことを特徴とする。
本発明によれば、作成した拡張機能を一覧表示できるので、元からある拡張機能と同じように、作成した拡張機能をインストールすることができる。
また、本発明の一形態において、モジュール転送手段は、モジュール記憶手段に記憶されたモジュールを、当該インストール装置の予め定められたフォルダに転送する、ことを特徴とする。
定められたフォルダに転送することでインストールできるので、拡張機能のインストールを容易に実行することができる。
また、本発明の一形態において、外部装置と通信して、定義ファイルを該外部装置から受信する機能取り込み手段を有し、機能取り込み手段は、受信した定義ファイルを定義ファイル記憶手段に記憶する、ことを特徴とする。
本発明によれば、外部装置の定義ファイルを取り込めるので、新たに機能を定義する作業を低減し、操作性を向上させることができる。
また、本発明の一形態において、モジュール決定手段は、定義ファイル記憶手段を参照し、外部装置から受信した拡張機能を一覧に含めて表示手段に表示する、ことを特徴とする。
本発明によれば、取り込んだ拡張機能を一覧表示できるので、元からある拡張機能と同じように、取り込んだ拡張機能をインストールすることができる。
拡張機能が選択的に提供されるアプリケーションプログラムのインストール装置において、機能の増減により影響を受けずに拡張機能用のプログラムのインストールが可能なインストール装置、インストール方法、プログラム及び記憶媒体を提供することができる。
以下、本発明を実施するための最良の形態について、図面を参照しながら実施例を挙げて説明する。
図1は、本実施形態のインストール装置100の概略を模式的に説明する図である。本実施形態では、ユーザはアプリケーションにインストールする機能を例えば「機能一覧」から選択することができる。この機能一覧では、ユーザが内容を把握しやすい「PDF変換」「Webdav」などの表示用の機能名で表示される。
インストール装置100は、選択された機能に対応したプログラムのモジュールを決定する。このモジュールが拡張機能用のプログラムである。そして、インストール装置100は、インストール装置100やサーバ等に予め記憶されているモジュールを読み出して、インストール装置100の所定のフォルダに転送してインストールを実行する。
モジュールのバージョンアップ等により、機能が追加、更新、削除(以下、単に機能の増減という)されていても、ユーザは機能の増減を意識することなく「機能」を選択するだけで、インストール装置100がインストールするモジュールを自動的に決定することができる。したがって、本実施形態のインストール装置100は、アプリケーションの機能の増減に影響を受けずに各モジュールを選択的にインストールすることができる。
なお、インストール装置100は、プリンタ、ファクシミリ、スキャナ、及び、複写機の1以上の機能を備えたMFP(Multifunction Peripheral)、又は、パーソナルコンピュータ(PC)等を実体とするが、コンピュータを備えた機器であれば好適に適用できる。
以下、拡張機能用のプログラムをモジュール、基本機能を提供するプログラムをコアプログラム、両者を区別しない場合アプリケーション又はアプリケーションプログラムという。
図2は、本実施形態のインストール装置100のハードウェア構成図の一例を示す。インストール装置100は、制御部11と、主記憶部12と、補助記憶部13と、ネットワークI/F14と、外部記憶装置I/F15と、脱着装置I/F16と、表示装置I/F17と、及び入力装置I/F18とを有する。インストール装置100はコアプログラムを実行する情報処理装置(コンピュータ)を実体とし、パーソナルコンピュータ、PDA(Personal Digital Assistant)、携帯電話等である。また、インストール装置100と情報処理装置が別体であってもよい。
アプリケーションプログラムは、全てインストール装置100単体に記憶されている場合もあるし、ネットワークを介して接続されたサーバ等からモジュールをダウンロードしてインストール装置100にインストールする場合もある。すなわち、インストールされるモジュールをインストール装置100が記憶している必要はない。
制御部11は、例えばCPU(Central Processing Unit)を実体とし、主記憶部12、補助記憶部13、及び、ネットワークI/F14などの各装置を制御する。また、制御部11は、主記憶部12や補助記憶部13などに記憶されたプログラムを実行し、入力装置24や補助記憶部13かららデータを受け取り、そのデータを演算・加工した上で、表示装置23や補助記憶部13に出力する(例えば、キーボードで入力した文字をディスプレイに表示するなど)。
主記憶部12は、例えばRAM(Random Access Memory)やROM(Read Only Memory、RAM)を実体とし、制御部11が実行するプログラムや関連するデータを記憶(一時的に保持する場合も含む)する。
補助記憶部13は、例えばハードディスクドライブ(HDD)やフラッシュメモリを実体とし、基本ソフトウェアであるOS(Operating System)、上記のアプリケーション(プログラム)や機能拡張用の各モジュール等を、関連するデータとともに記憶する記憶手段である。また、補助記憶部13には、本実施形態のインストール装置100の各機能(特許請求の範囲における「〜手段」)を実現するインストールプログラム25を記憶している。制御部11がこのインストールプログラム25を補助記憶部13から読み出して実行することで、後述する「機能一覧表示部41」等が実現される。
また、補助記憶部13には、本実施形態に係るインストール装置100が管理する各種情報(例えば、機能とモジュールを対応づける機能定義ファイル等)が格納されている。
ネットワークI/F14は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介し、外部の装置と通信する通信インターフェイスである。例えばNIC(Network Interface Card)を実体とし、データリンク層に対応したプロトコル(例えば、PPPoE)にかかる処理(データの識別、経路の選択、データのパケット化、信号の誤り訂正等)を実行する。
外部記憶装置I/F15は、光学式記憶媒体を装着してデータの読み出し及び書き込みを実行するドライブ装置や、USB(Universal Serial Bus)メモリが接続されるインターフェイスである。外部記憶装置I/F15により、記憶媒体21に記憶されたデータを読み出したり、記憶媒体21にデータを書き出すことができるようになる。
なお、インストールプログラム25は、ネットワークI/F14を介して所定のサーバからダウンロードされたり、記憶媒体21に記憶された状態から読み出され、補助記憶部13にインストールされる。
脱着装置I/F16は、USBインターフェイス、IEEE1394インターフェイス等であり、スキャナやデジタルカメラ等の脱着装置22からデータを読み出すことを可能にする。
表示装置I/F17は、DVI-D、DVI-A等の表示装置23を接続するためのインターフェイスであり、VRAMに格納された表示用データをピクセル毎の輝度情報に変換しデジタルデータ又はアナログデータとして表示装置23に送信する。表示装置23は、デジタルデータ又アナログデータに含まれる同期などの制御信号に基づき各ピクセル毎の輝度を制御する、例えば、液晶ディスプレイ、CRTである。
入力装置I/F18は、キーボードやマウスを接続するためのそれぞれ専用のインターフェイス、USBやBluetoothなどのデータ送受信用インターフェイスであり、入力装置24から入力されたユーザの操作情報を取得する。
〔インストール装置100のソフトウェア構成の概略〕
図3は、インストール装置100のソフトウェア構成の概略構成図の一例を示す。インストール装置100に実装されるアプリケーション30は、機能定義ファイル31、UIプラグイン32、アプリケーションプロセス33、コアプログラム35及びモジュール34とを有する。図3の概略構成図は、既にいくつかのモジュール34がインストールされた状態を示す。
機能定義ファイル31は、アプリケーション30によって行う処理を実現するために必要なモジュール34の実行条件や実行順序などの動作に関する情報を所定の形式に従って定義したデータであり、複数個のデータ(データ群)によって構成されている。機能定義ファイル31については後述する。
UIプラグイン(UIパーツ)32は、アプリケーション30のUI(User Interface)を構成するプログラム(UIを構成する画面形成情報、メニュー表示のための文字・記号、画面遷移情報等)であり、このUIプラグイン32も複数個のプログラム(モジュール)によって構成されている。
アプリケーションプロセス33は、OSから主記憶部12に使用可能なメモリ領域の割り当てを受けて、処理を実行するプログラムである。アプリケーションプロセス33によって実行される処理は、例えば、UIプラグイン32を用いて液晶ディスプレイやCRTなどの表示装置23にUIを表示するための描画処理や、表示されたUIから受け付けた動作に関する情報をコアプログラム35に送出する処理などである。
モジュール34は、アプリケーション30の機能を実現するために所定の情報処理を行うプログラムであり、複数個のプログラムから構成されている。ここで言う「所定の情報処理」とは、例えば、「PDF変換」、「Webdav」、「ファイルの読み込み」、「ファイルの更新」、「印刷」、「メッセージ表示」、「操作の入力受け付け」、などのような、アプリケーション30の機能を構成する最小単位の機能を実現する情報処理を意味する。
コアプログラム35は、機能定義ファイル31に定義された動作条件や動作順序などの動作に関する情報に従って、モジュール34を実行するプログラムや、UIプラグイン32やアプリケーションプロセス33とモジュール34との間のデータインタフェースプログラムといった、インストールされるモジュール34に関わらず実装され、アプリーション30の全体的な動作を制御する共通化されたプログラムである。
インストールプログラム25は、コアプログラム35を構成する複数のプログラムの一つで、アプリケーションプロセス33からの通知を受けて実行される。
上記のように構成された、インストール装置100に実装されたアプリケーション30は、以下のように動作する。
(1)UIプラグイン32がユーザからの動作指示(例えば、アプリケーション30のメニュー項目を選択した場合)を受け取る。
(2) アプリケーションプロセス33は、UIプラグイン32から受け取った動作指示をコアプログラム35に送出する。
(3) コアプログラム35は、アプリケーションプロセス33から受け取った動作指示から、指示された動作に関する情報が定義された機能定義ファイル31を特定し(複数個ある機能定義ファイル31の中から、UI上のメニュー項目に対応付けられた制御データを特定する。)、特定した制御データに基づき定義された実行条件や実行順序などの動作に関する情報に従ってモジュール34を実行する。
このように、本実施形態に係るアプリケーション30に関するソフトウェアは、ユーザの起動指示に従って、コアプログラム35とモジュール34とが連携して、アプリケーション30においてユーザが所望する処理を実現している。
〔インストール装置100の機能ブロック〕
図4は、本実施形態のインストール装置100がモジュール34をインストールするための手段をブロック図を用いて模式的に説明する図である。図2の制御部11が、補助記憶部13に記憶されたインストールプログラム25を読み出して実行することで、機能一覧表示部41、モジュール決定部42及びモジュール転送部43が実現される。なお、機能定義ファイル31及びモジュール群45は、例えば補助記憶部13に記憶されている。
始めに、機能定義ファイル31について説明する。図5は、機能定義ファイル31の一例を示す図である。機能定義ファイル31は、XML(Extensible Markup Language)と言われる言語によって記述されている。
XMLは、タグと呼ばれる特定の文字列で、文書やデータの意味や構造を記述するマークアップ言語の1つで、ユーザが独自のタグを指定することができる。このような言語特性から、本実施形態に係る機能定義ファイル31では、独自の「定義開始タグ」(例えば、"<Tag>"など。)と「定義終了タグ」(例えば、"</Tag>"など。)との間に、動作に関する情報(例えば、Proc_1など。)を記述することで定義する(例えば、"<Tag>Proc_1</Tag>"など)。
機能定義ファイル31に定義される情報は、機能を実行するための情報、例えば、機能の名前、機能を実現するモジュール34の名前、及び、モジュール34のファイル名、である。図示した機能定義ファイル31では、Functionタグがモジュール34の機能であることを示し、Processタグが各モジュール34が実行する処理であることを示している。したがって、「name」は機能名、「PluginName」はモジュール34の名前、「FileName」はモジュール34のファイル名を示している。
この機能定義ファイル31によれば、機能の名前が「PDF transfer to webdav」であり、かかる機能は「ToPDF」というモジュール34と「ToWebdav」というモジュール34により実現されることが定義されている。「ToPDF」というモジュール34は、指定されたファイルをPDFフォーマットに変換するPDF変換のためのモジュール34であり、「ToWebdav」というモジュール34は、WebサーバにPDF変換されたファイルを転送するためのモジュール34である。したがって、「PDF transfer to webdav」という機能は、PDF変換とWebdav配信を連続して行う機能となる。このような機能定義ファイル31が、各機能毎に記憶されている。
機能定義ファイル31は、アプリケーション30の管理者が各モジュール34を図5の書式に従い登録しておくことで生成される。また、管理者は、各機能に対応するモジュール34のうち最新のバージョンのモジュール34をモジュール群45に記憶しておく。これにより、機能定義ファイル31において機能の名前に対応する最新のモジュール34をモジュール群45から読み出すことができる。
モジュール34が新たに生成され機能が増えた場合、管理者は、その新たな機能に名前を付与し、「name=」に続けて""の中に記述し、「PluginName」にモジュール34の名前を、「FileName」に新たに生成されたモジュール34のファイル名をそれぞれ記述する。そして、管理者は、それらが記述された機能定義ファイル31を作成し、そのファイル名のモジュール34をモジュール群45に記憶させる。
モジュール34がモジュール群45から削除された場合(例えば、そのモジュール34の機能をアプリケーション30で提供することを終了した場合)、管理者は、その削除されたモジュール34にかかる機能定義ファイル31を補助記憶部13から削除する。
また、複数のモジュール34が担っていた複数の機能が1つのモジュール34にまとめられた場合、複数の機能に対応する機能定義ファイル31及び複数の機能に対応するモジュール34を削除し、複数の機能を提供するモジュール34の機能定義ファイル31を新たに作成する。また、1つのモジュール34が担っていた機能を複数のモジュール34に分離してそれぞれを1つのモジュール34とした場合、元の1つのモジュール34に対応する機能定義ファイル31を削除し、分離された複数のモジュール34にそれぞれ対応する機能定義ファイル31を作成する。必ずしも元のモジュール34を削除する必要はない。
なお、機能定義ファイル31には、「各機能に関する情報」や「実行順序に関する情報」の他、各モジュール34が処理を実現するために必要な「実行条件に関する情報」と、モジュール34の「処理対象に関する情報」が、同様にXMLにて定義されている。したがって、モジュール34がインストールされれば、コアプログラム35が機能定義ファイル31を参照して、ユーザの所望の機能を実現できる。
図4に戻り、機能一覧表示部41は、機能定義ファイル31を参照して表示装置23に機能一覧を表示する。ユーザが入力装置24を用いて所定のボタンを選択しインストールの開始を指示すると、インストール装置100はモジュール34のインストールを開始するための一連の処理手順を開始する。
アプリケーションプロセス33は、UIプラグイン32が検出したインストール開始操作の入力をコアプログラム35に通知する。これにより、コアプログラム35は機能一覧表示部41を起動させ、機能一覧表示部41は、機能定義ファイル31を補助記憶部13から読み出し、機能一覧を生成する。
図6は、機能一覧表示部41が生成する機能一覧の一例を示す図である。機能一覧表示部41は、ウェブブラウザを利用して表示装置23に機能の名前を一覧表示する。機能一覧表示部41は、各機能定義ファイル31から「name=」に続いて記述された""に囲まれた文字列を全て抽出して読み出す。そして、例えば読み出した順番、アルファベット順、バージョンアップされた順、等の所定の順番で一覧に表示する。なお、図示した「説明」「バージョン」「インストールに必要な空きメモリ」の各項目の内容は、機能定義ファイル31に記憶されている。
ユーザは機能一覧を見て、インストールしたい機能を探して各機能の先に設けられたチェックボックスに、マウス等の入力装置24を用いてチェックする。そしてインストールしたい機能を全て選択して、「インストール」ボタン51をクリックしたりリターンキーを押下してユーザがその選択を確定すると、UIプラグイン32が選択された機能の名前を取得する。アプリケーションプロセス33は、UIプラグイン32から機能の名前を受け取りコアプログラム35に送出するので、これによりインストールプログラム25のモジュール決定部42が起動する。
モジュール決定部42は、選択された機能の名前に基づき機能定義ファイル31を参照して、インストールするモジュール34のファイル名を決定する。例えば、「PDF transfer to webdav」が選択された場合、モジュール決定部42はインストールするモジュール34のファイル名として「ToPDF.dll」、「ToWebdav.dll」を決定する。モジュール決定部42は、このモジュール34のファイル名をモジュール転送部43に通知する。
モジュール転送部43は、モジュール決定部42により通知されたモジュール34のファイル名のモジュール34を転送する。転送先は、インストール装置100の補助記憶部13であって、アプリケーション30のコアプログラム35が記憶されたフォルダである。モジュール34がコアプログラム35と同じフォルダに転送されることで、コアプログラム35はパスを切ることなくモジュール34を実行して、ユーザに拡張機能を提供することができる。
コアプログラム35は、転送されたモジュール34を例えばモジュール番号等により認証し、認証が成立すると、モジュール34をコアプログラム35に登録する。登録により、アプリケーション30において転送されたモジュール34が利用可能になる。
なお、モジュール34は、補助記憶部13又はネットワークを介して接続されたサーバに記憶されている。サーバに記憶されている場合、モジュール転送部43にとってサーバのURL(IPアドレス)は既知であり、サーバにモジュール34のファイル名と転送要求を送信することで、モジュール34を取得することができる。
また、モジュール転送部43は、モジュール34だけでなくコアプログラム35及び各モジュール34に共通のプログラムも一緒に転送する。
〔インストール装置100の動作手順〕
図7は、インストール装置100がモジュール34をインストールする手順を示すフローチャート図である。図7のフローチャート図は、例えば、ユーザがインストール開始操作を入力するとスタートする。
まず、機能一覧表示部41が起動して、機能定義ファイル31を参照し、機能一覧を生成する(S10)。機能定義ファイル31の「name=」に続いて記述され""に囲まれた文字列が機能の名前なので、それを全て読み出し表示装置23に表示する。
ユーザが機能一覧からインストールしたい機能を選択し、その選択を確定すると、UIプラグイン32が選択された機能の名前を取得して、モジュール決定部42通知する。
モジュール決定部42は、通知された機能の名前に基づき機能定義ファイル31を参照し、転送するモジュール34の名前を決定する(S20)。転送するモジュール34の名前は、機能定義ファイル31の「Filename=」に続いて記述され""に囲まれたファイルの名前である。モジュール決定部42は、モジュール34のファイル名をモジュール転送部43に通知する。
モジュール転送部43は、モジュール転送部43から通知されたファイル名のモジュール34をモジュール群45から読み出し、所定のフォルダに転送する(S30)。
以上説明したように、本実施例のインストール装置100は、インストールする機能を実行するのに必要なモジュール34を機能定義ファイル31に登録しておくことで、ユーザが選択した機能に必要なモジュール34を自動的に判別することができるので、機能が増減してもその影響を受けずに機能をインストールすることができる。すなわち、ユーザが直接、モジュール34をアプリケーション30に指定するのでなく、機能を選択するだけでよいので、機能の増減があっても、アプリケーション30にモジュール34を通知しなおしたり、通知方法を変更する必要がない。また、インストールする機能をリストに登録した場合、機能の増減によりリストを更新する必要が生じるが、本実施形態のインストール装置100では、リストを生成しないので、機能の増減により影響を受けることがない。
実施例1では、機能定義ファイル31からユーザが所望の機能を選択することとしたが、本実施例ではユーザが既存の機能を組み合わせて新たに機能を定義できるインストール装置100について説明する。一連の複数の機能を新たに機能として登録しておけば、次回のインストール時に、機能一覧から複数の全ての機能を選択する必要がなくなり、操作性が向上する。
図8は、本実施例のインストール装置100がモジュール34をインストールするための手段をブロック図を用いて模式的に説明する図である。なお、図8において図4と同一部分には同一の符号を付しその説明は省略する。
〔新機能定義ファイル47の作成〕
本実施例のインストール装置100は、図2の制御部11が、補助記憶部13に記憶されたインストールプログラム25を読み出して実行することで実現される機能作成部46を有する。また、機能作成部46が新機能定義ファイル47を作成するため、新機能定義ファイル47が補助記憶部13に記憶される。
機能作成部46は、複数のモジュール34を組み合わせて新たな機能を作成することを可能にする。例えば、ユーザが図6の機能一覧で機能を選択する際、複数の機能から1つの機能を作成したいと考えることがある。このため、本実施例では機能一覧に「機能作成」ボタン52を設けた。
図9は、本実施例の機能一覧の一例を示す図である。図9の機能一覧において「機能作成」ボタン52を設け、この「機能作成」ボタン52をユーザが入力装置24のマウスでクリックしたり、メニューの「ツール」から「機能作成」メニュー53が選択できるようになっている。機能作成部46は、「機能作成」ボタン52又は「機能作成」メニュー53がユーザにより選択されると機能作成画面を表示装置23に表示する。
図10(a)は、機能作成部46が表示する機能作成画面の一例を示す。機能作成部46は、機能一覧表示部41と同様に又は機能一覧表示部41の機能を利用して、機能定義ファイル31から各機能の名前を読み出す。
図10(a)では読み出された各機能を機能作成画面の右側に表示した。図10(a)の右側には、「PDF変換」「Webdav配信」「名前変更」「OCR」が一覧に表示されている。図6と同様に、機能の名前をそのまま表示してもよいし、機能の名前を表示用の機能名に変換してユーザに提供してもよい。図10(a)では、表示用の機能名をボタン状に表示した機能選択ボタン50が配置されている。表示用の機能名は、UIプラグイン32が機能の名前と表示用の機能名を対応づけて記憶していることで表示される。
ユーザは、例えばマウスで表示用の機能選択ボタン50をクリックする(選択する)ことで新たに定義したい一連の機能を選択する。機能作成画面の左側には、ユーザの選択結果が反映される。図10(a)に示すように、ユーザの選択した機能は「実行開始」に続けて表示される。UIプラグイン32は、ユーザの選択した機能を取得し、順次、コアプログラム35に通知する。機能作成部46はコアプログラム35からユーザが選択した機能を取得し、ユーザが機能選択ボタン50を選択した順番に「実行開始」に機能を追加していく。
図10(b)は、ユーザの機能の選択が反映された機能作成画面の一例を示す。図10(a)は、「PDF変換」「名前変更」「Webdav配信」が順番に選択されたことを示している。ユーザは、このような新たに定義された機能に所望の表示用の機能名を付与することができる。図10(a)又は(b)では、「機能名:」で示した欄に、ユーザは表示用の機能名を付与することができる。
一連の機能が選択され、また、表示用の機能名が付与されると、機能作成部46は、選択された機能から新機能定義ファイル47を作成する。新機能定義ファイル47は、複数の機能定義ファイル31をマージすることで作成できる。
図11(a)は、機能作成部46により選択された一連の機能に対応する機能定義ファイル31を示す。図11(a)では説明を容易にするため、機能の名前を「AAA」「BBB」「CCC」とした。また、ユーザが選択した順番もアルファベット順である。また、例えば、機能作成画面でユーザが新たな表示用の機能名を「ABC」と入力したとする。
この場合、機能作成部46は、「Function name = 」に続く「""」に「ABC」と記述する。これにより、新しく作成された一例の機能に、機能の名前が付与されたことになる。そして、機能作成部46は、機能「AAA」の機能定義ファイル31、機能「BB」の機能定義ファイル31、機能「CCC」の機能定義ファイル31から、「Process PluginName 〜」の記述を順番に転記する。
図11(b)は、機能作成部46が作成した新機能定義ファイル47の一例を示す図である。このような手順により、ユーザが選択した機能の順番に、一連の機能が定義された新機能定義ファイル47を作成することができる。
なお、図11(b)では表示用の機能名をそのまま機能の名前としたが、表示用の機能名と機能の名前は異なっていてもよく、この場合、機能作成部46が適切な機能の名前(例えば、「AAABBBCCC」等)を付与することができる。また、この場合、UIプラグイン32は、ユーザの入力した表示用の機能名と、機能作成部46が付与した機能の名前を対応づけて記憶する。したがって、新たな機能が作成された後、機能作成画面の右欄の処理一覧に例えば「ABC」と表示でき、ユーザが「ABC」を選択した場合に、「AAABBBCCC」の機能を特定することができる。
このようにして、作成された新機能定義ファイル47に対応する機能の名前等は、すでに生成された機能定義ファイル31と同様に、図6の機能一覧に表示される。したがって、新機能定義ファイル47が作成された後、ユーザは機能一覧から複数の機能を選択する必要がない。
〔設定値の登録〕
ところで、モジュール34によっては、何らかの設定値を登録することができるものがある。例えば、「名前変更」の機能に対応するモジュール34は、例えばPDF変換されたファイルのファイル名を変更するが、変更後のファイルの名前に所定の固定された文字や記号を含ませたい場合がある。そこで、機能作成部46は、図10(a)の機能作成画面の右欄からユーザが選択した表示用の機能名について、何らかの設定値の登録が可能な場合は設定値の登録画面を表示する。
この設定値はモジュール34毎に異なるので、機能作成部46は、ユーザが機能作成画面で選択したモジュール34に、設定値があるか否かを問いあわせる。各モジュール34は、例えば、実行時のパラメータを規定したメタデータに設定値を登録することができるので、モジュール34はメタデータを参照して機能作成部46に設定値の有無を応答する。なお、予め、設定値を登録できるモジュール34のリストを作成しておいてもよい。
図12は、機能作成部46が表示装置23に表示する設定値登録画面の一例を示す。機能作成部46が、ユーザの選択したモジュール34に問い合わせた結果、設定値が登録可能なモジュール34の場合、機能作成部46は該モジュール34の設定値登録画面を表示するようUIプラグイン32に要求する。この時、機能作成部46はモジュール34から取得した設定値の称呼、文字列、その他の設定値情報をUIプラグイン32に通知する。図12では「接頭辞」「接尾辞」が設定値情報である。UIプラグイン32は、機能の表示眼や設定値情報を用いて設定登録画面を生成し、表示装置23に表示する。
ユーザがキーボードを用いて接頭辞に「FAX」と入力した場合、機能作成部46は作成された機能を新機能定義ファイル47に記述する。図13は、設定値が記述された新機能定義ファイル47の別の一例を示す図である。
図10(b)に示したように、「PDF変換」「名前変更」「Webdav配信」 の順にユーザが選択した場合、新機能定義ファイル47には、
「PDF変換」
<Process PluginName = "ToPDF" ModuleName = "ToPDF.dll"/>
「名前変更」
<Process PluginName = "Rename" ModuleName = "Rename.dll"/>
<Prefix> FAX </Prefix>
「Webdav配信」
<Process PluginName = "ToWebdav" ModuleName = "ToWebdav.dll"/>
のように定義される。
図12に示したように、「名前変更」の機能にはユーザが接頭語「FAX」を入力したので、接頭語を表すタグ「Prefix」に「FAX」と記述されている。また、例えば、ユーザが接尾語に「FAX」と入力した場合、接頭語を表すタグ「Postfix」に「FAX」と記述される。
〔インストール装置100の動作手順〕
図14は、インストール装置100がモジュール34をインストールする手順を示すフローチャート図である。なお、図14において、図7と同一ステップには同一の符号を付しその説明は簡単に行う。
図9の如く、機能一覧が表示装置23に表示される(S10)と、ユーザはインストールする機能を選択することができる。本実施例のインストール装置100は、ユーザが機能一覧から選択することなく、「機能作成」ボタン52等を選択することができるので、機能作成部46は、ユーザがマウス等を用いて「機能作成」ボタン52等を選択したか否かを判定する(S15)。
機能作成しない場合(S15のNo)、すなわち、ユーザが「機能作成」ボタン52等を選択しない場合は、実施例1と同様に、モジュール決定部42がユーザが選択したモジュール34を決定し(S20)、モジュール転送部43が決定されたモジュール34を所定フォルダに転送する(S30)。
機能作成する場合(S15のYes)、すなわちユーザが「機能作成」ボタン52等を選択した場合は、機能作成部46は図10(a)の如く機能作成画面を表示する(S40)。そして、機能作成部46は、UIプラグイン32が取得した、ユーザが選択した機能と表示用の機能名をアプリケーションプロセス33を介して取得する。
機能作成部46は、表示用の機能名及び選択した機能に基づき新機能定義ファイル47を作成する(S50)。すなわち、表示用の機能名から新たに作成した機能の機能名を付与し、選択した機能に基づき機能定義ファイル31を選択し、モジュール34の名前やモジュール34のファイル名を記述して、新機能定義ファイル47を作成する。
ついで、ステップS10に戻り、ユーザが新たに定義した機能は機能定義ファイル31の機能と共に、機能一覧に表示される。ユーザが、この新たに作成した機能を機能一覧で選択した場合、モジュール転送部43は一連の機能に対応する各モジュール34を、全て所定のフォルダに転送する。
以上説明したように、本実施例のインストール装置100は、実施例1の効果に加え、ユーザが複数の機能を1つの機能に定義できるので、複数のモジュール34のインストールが容易になり操作性を向上させることができる。
実施例2では、新機能定義ファイル47を作成したユーザが新たに定義された機能のモジュール34をインストール装置100がインストールすることを想定していた。しかし、機能定義ファイル31及び新機能定義ファイル47のフォーマットは各ユーザに共通なので、ユーザBが作成した新機能定義ファイル47を、ユーザAが利用してモジュール34のインストールに利用することができる。本実施例では、外部の新機能定義ファイル47を取り込むことができるインストール装置100について説明する。なお、本実施例では機能定義ファイル31と新機能定義ファイル47とを区別することなく機能定義ファイル31といい、外部から取り込んだ後の機能定義ファイル31又は新機能定義ファイル47を外部機能定義ファイル49という。
図15は、本実施例のインストール装置100がモジュール34をインストールするための手段をブロック図を用いて模式的に説明する図である。なお、図15において図8と同一部分には同一の符号を付しその説明は省略する。
〔外部の機能の新機能定義ファイル47の作成〕
本実施例のインストール装置100は、図2の制御部11が、補助記憶部13に記憶されたインストールプログラム25を読み出して実行することで実現される機能取り込み部48を有する。また、機能取り込み部48が取り込んだ外部機能定義ファイル49は補助記憶部13に記憶される。
機能取り込み部48は、外部装置から機能定義ファイル31を取得することを可能にする。外部装置とは、例えば、LANを介して接続されたコンピュータ、インターネット上のサーバ、NAS(Network Attached Storage)等である。このため、本実施例では機能一覧に「機能取り込み」ボタン54を設けた。
図16は、本実施例の機能一覧の一例を示す図である。図9の機能一覧において「機能取り込み」ボタン54を設け、この「機能取り込み」ボタン54をユーザが入力装置24のマウスでクリックしたり、メニューの「ツール」から「機能取り込み」メニュー55が選択できるようになっている。機能取り込み部48は、「機能取り込み」ボタン54又は「機能取り込み」メニュー55がユーザにより選択されると機能取り込み面を表示装置23に表示する。
図17(a)は、機能取り込み部48が表示する機能取り込み画面の一例を示す。機能取り込み部48は、例えば、所定のネットワークを介して接続されたコンピュータのフォルダに記憶されている機能定義ファイル31から各機能の名前を読み出す。機能定義ファイル31の拡張子(例えば、ist)は固定なので、そのフォルダ等に機能定義ファイル31が記憶されていればその一覧を表示することができる。
図17(a)では読み出された各機能を機能作成画面の右側に表示した。図17(a)の右側には、「PDF変換」「Webdav配信」「名前変更」「OCR」が一覧に表示されている。図17(a)で表示されるのはファイル名であるが、ユーザがファイル名から機能の名前を想起できるように、ファイル名の少なくとも一部には機能の名前又は表示用の機能名がそのまま含まれることが好ましい。
また、図17(a)の左側には、「最近使ったファイル」「マイネットワーク」「マイドキュメント」をそれぞれ選択するボタンが設けられているので、ユーザはそれぞれのボタンをマウス等で選択することで、「ファイルの場所」を指定することができる。
図17(a)のようにファイルの場所が明らかでない場合、図17(b)のように機能定義ファイル31を検索してもよい。ユーザは、検索欄61に機能の名前や表示用の機能名の一部又は全部を入力して、検索ボタン62をマウス等で選択することで所望の機能定義ファイル31を検索できる。検索にヒットした機能定義ファイル31は、リンク先のフォルダ等から取り込むことができる。なお、検索の際ユーザは、LAN内、インターネット、デスクトップ等で検索範囲63を指定して、機能定義ファイル31と関連のないファイルが検索にヒットすることを回避できるようになっている。
機能取り込み部48は、図17(a)又は17(b)の機能取り込み画面により取り込んだ機能定義ファイル31を、補助記憶部13に記憶する。補助記憶部13に記憶された機能定義ファイル31は、外部機能定義ファイル49と称される。
〔インストール装置100の動作手順〕
図18は、インストール装置100がモジュール34をインストールする手順を示すフローチャート図である。なお、図18において、図7と同一ステップには同一の符号を付しその説明は簡単に行う。
図16の如く、機能一覧が表示装置23に表示される(S10)と、ユーザはインストールする機能を選択することができる。本実施例のインストール装置100は、「機能取り込み」ボタン54等を選択することができるので、機能取り込み部48は、ユーザがマウス等を用いて「機能取り込み」ボタン54等を選択したか否かを判定する(S16)。
機能取り込みしない場合(S16のNo)、すなわち、ユーザが「機能取り込み」54等を選択しない場合は、実施例1と同様に、モジュール決定部42がユーザが選択したモジュール34を決定し(S20)、モジュール転送部43が決定されたモジュール34を所定フォルダに転送する(S30)。
機能取り込みする場合(S16のYes)、すなわちユーザが「機能取り込み」ボタン54等を選択した場合は、機能取り込み部48は図16(a)の如く機能取り込み画面を表示する(S41)。ユーザは、機能取り込み画面に表示された機能定義ファイル31から所望の機能定義ファイル31をマウス等で選択する。
そして、機能取り込み部48は、UIプラグイン32が取得した、ユーザが選択した機能定義ファイル31をアプリケーションプロセス33を介して取得する。
機能取り込み部48は、ユーザが選択した機能定義ファイル31を補助記憶部13に記憶する(S51)。すなわち、機能定義ファイル31と外部機能定義ファイル49とは同じフォーマットなので、補助記憶部13に記憶することでインストール装置100に取り込まれたことになる。インストール装置100は、元から記憶している機能定義ファイル31、ユーザが作成した新機能定義ファイル47と同様に、外部機能定義ファイル49を用いてインストールするモジュール34を指定することができる。
ついで、ステップS10に戻り、ユーザが取り込んだ外部機能定義ファイル49の機能は、機能定義ファイル31及び新機能定義ファイル47の機能と共に、機能一覧に表示される。ユーザが、この外部から取り込んだ機能を機能一覧で選択した場合、モジュール転送部43は一連の機能に対応する各モジュール34を、全て所定のフォルダに転送する。
以上説明したように、本実施例のインストール装置100は、実施例1及び2の効果に加え、ユーザが外部の機能定義ファイル31を取り込むことができるので、機能を作成することなくモジュール34のインストールが行うことができ操作性を向上させることができる。
本実施例では、サーバ300とインストール装置100が連携してモジュール34をインストールする実施形態について説明する。
図19(a)はサーバ300とインストール装置100を有するインストールシステム200の概略構成図の一例を、図19(b)はサーバ300のハードウェア構成図の一例をそれぞれ示す。インストール装置100がネットワーク101を介してサーバ300と接続されている。ネットワーク101は例えば社内、一部署、一フロア等のLAN、支店間など地理的に離れたLAN同士を接続したWAN、又は、インターネットなどである。なお、ネットワーク101は有線・無線のいずれであってもよい。
モジュール34はサーバ300に記憶しておくことができるので、インストール装置100の補助記憶部13の容量を抑制できる。また、モジュール34を決定する等の機能をサーバ300に集約できるので、各インストール装置100のコストを低減できる。図19(a)ではインストール装置100をMFPとしたが、その他の機器又は情報処理装置でもよい。
サーバ300は公知のハードウェア構成を備え、モジュール34をインストール装置100に配信する、1以上の例えばPCであるが、サーバ300をMFPで実現してもよい。
サーバ300は、それぞれバスで相互に接続されているCPU71、RAM72、ROM73、記憶媒体装着部74、NIC78、入力装置77、表示制御部76及びストレージ75を有するように構成される。
CPU71は、OS(Operating System)やインストールプログラム25をストレージ75から読み出して実行することで上記の実施例と同様の機能を提供すると共に、サーバ300が行う処理を統括的に制御する。
RAM72はCPU71がインストールプログラム25を実行する際にインストールプログラム25や処理に必要なデータを一時保管する作業メモリ(主記憶メモリ)になり、ROM73はBIOS(Basic Input Output System)やOSを起動するためのプログラム、設定ファイルを記憶している。
記憶媒体装着部74は記憶媒体が着脱可能に構成されており、記憶媒体21に記録されたインストールプログラム25やデータを読み込み、ストレージ75にインストールする際と、インストールプログラム25やデータを書き込む際に使用される。
NIC78は、ネットワーク101に接続するためのインターフェイス、例えばイーサネット(登録商標)カードであり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行する。
入力装置77は、キーボードやマウスなど、ユーザからの様々な操作指示を入力するためのデバイスである。表示制御部76は、プログラムが指示する画面情報に基づき所定の解像度や色数等で液晶などのディスプレイ79に描画する。例えば、GUI(Graphical User Interface)画面を形成し、操作に必要な各種ウィンドウやデータ等をディスプレイ79に表示する。
ストレージ75は、ハードディスクドライブ、SSD(Flash Solid State Drive)等の不揮発メモリを実体とし、本実施形態ではインストールプログラム25が記憶されている。インストールプログラム25は、記憶媒体21に記憶して配布されたり、ネットワーク101を介して接続された不図示のサーバからダウンロードされ、ストレージ75にインストールされる。
図20は、インストールシステム200がモジュール34をインストールするための手段を、ブロック図を用いて模式的に説明する図である。なお、図20において図4と同一部分には同一の符号を付しその説明は省略する。
図示するように、本実施例ではサーバ300がモジュール決定部42S、機能定義ファイル31S及びモジュール群45Sを有する点で実施例1と異なっている。なお、機能取得部81はインストール装置100から機能を取得(受信)するための手段、機能転送部82はモジュール34をインストール装置100に送信するための手段である。
機能一覧表示部41は、サーバ300から機能一覧を取得して表示装置23に機能一覧を表示する。ユーザが機能一覧を見てインストールしたい機能を選択すると、機能一覧表示部41は機能の名前をサーバ300の機能転送部82に送信する。
サーバ300の機能取得部81は機能をモジュール決定部42Sに送出するので、モジュール決定部42Sは、その機能に必要な機能定義ファイルとモジュール34を決定し、機能定義ファイル名とモジュール名を機能転送部82に送出する。機能転送部82は機能定義ファイルとモジュール34をインストール装置100に送信する。インストール装置100の機能配置部83は、基本機能を提供するコアプログラム(アップデートは不要)に、機能定義ファイルとモジュール34を合わせてモジュール34を配置する。
図21のシーケンス図を用いて詳細に説明する。図21のシーケンス図は、例えばユーザが入力装置77からインストールの開始を入力した場合、予め定めた時間やインストール装置100が使用されていなくなりリソースに余裕が生じるとスタートする。
インストールを開始すると、インストール装置100の機能一覧表示部41は、サーバ300の機能取得部81に機能一覧の取得を要求する(S110)。
サーバ300の機能取得部81は全ての機能定義ファイルから機能名を取得し、インストール装置100の機能一覧表示部41へ機能一覧を送信する(S120)。
インストール装置100の機能一覧表示部41は機能一覧を受信し、取得した機能一覧を画面に表示する(S130)。
ユーザが機能一覧画面でインストールしたい機能を選択すると、インストール装置100の機能一覧表示部41は、ユーザが選択した機能名をサーバ300の機能転送部82に送信する(S140)。機能名の送信により、機能定義ファイルと機能に必要なモジュール34の転送を要求したことになる。
サーバ300の機能転送部82は、送信された機能名をサーバ300のモジュール決定部42Sに送出し、その機能に必要な機能定義ファイルとモジュール34の決定を依頼する。サーバ300のモジュール決定部42Sは、渡された機能名に該当する機能定義ファイルを抽出し、その機能定義ファイルから必要なモジュール名を取得し、機能定義ファイル名とモジュール名をサーバ300の機能転送部82に送出する(S150)。
サーバ300の機能転送部82は、モジュール決定部42Sが決定した機能定義ファイル名とモジュール名に該当するモジュール34をインストール装置100の機能配置部83に転送する(S160)。
インストール装置100の機能配置部83は、基本機能を提供するコアプログラム(アップデートは不要)に、機能定義ファイルとモジュール34を合わせてモジュール34を配置する(S170)。なお、モジュール34の配置とは、予め定められている補助記憶媒体13の物理的・論理的なアドレス(例えば、アプリケーション30のコアプログラム35が記憶されたフォルダ)に記憶することをいう。
したがって、本実施形態のインストールシステム200によれば、実施例1の効果に加え、サーバ300にモジュール34のモジュール群45Sやインストール機能を集約することができる。
実施例4ではサーバ300のみがモジュール群45Sやインストール機能を有していたが、本実施例ではインストール装置100もモジュール群45Iやインストール機能を備えたインストールシステム200について説明する。
図22は、インストールシステム200がモジュール34をインストールするための手段を、ブロック図を用いて模式的に説明する図である。なお、図22において図20と同一部分には同一の符号を付しその説明は省略する。図示するように、本実施例では、インストール装置100が、モジュール群45I、機能定義ファイル31I、モジュール決定部42I及び機能取得部81Sを有する。サーバ300が有するモジュール群45S、機能定義ファイル31S、モジュール決定部42S及び機能取得部81Sと、インストール装置100が有するモジュール群45I、機能定義ファイル31I、モジュール決定部42I及び機能取得部81Iとはそれぞれ同じものである。
図23は、インストールシステム200がモジュール34をインストールする手順を示すシーケンス図の一例である。
インストールが開始されると、インストール装置100の機能一覧表示部41は、実施例4と同様、サーバ300の機能取得部81Sに機能一覧の取得を要求し(S110)、サーバ300に存在する機能一覧を送信するよう要求する。これにより、サーバ300の機能取得部81Sは全ての機能定義ファイル31Sから機能名を取得し、インストール装置100の機能一覧表示部41へ機能一覧を送信する(S120)。
また、インストール装置100の機能一覧表示部41は、インストール装置100の機能取得部81Iに機能一覧の取得を依頼し、インストール装置100に存在する機能一覧を取得する(S121)。
そして、インストール装置100の機能一覧表示部41は、サーバ300から受信した機能一覧、インストール装置100の機能取得部81Iが取得した機能一覧を表示装置23に表示する(S130)。
ユーザが機能一覧画面でインストールしたい機能を選択すると、インストール装置100の機能一覧表示部41は、ユーザが選択した機能のうち、サーバ300に存在する機能名をサーバ300の機能転送部82に送信し(S140)、サーバ300のモジュール決定部42Sは機能名に対応する機能定義ファイル31Sとモジュール34を決定する(S150)。サーバ300の機能転送部82は、モジュール決定部42Sが決定した機能定義ファイル名とモジュール名に該当するモジュール34をインストール装置100の機能配置部83に転送する(S160)。
また、インストール装置100の機能一覧表示部41は、ユーザが選択した機能のうち、インストール装置100に存在する機能名をインストール装置100のモジュール決定部42Iに渡し、機能定義ファイル名とモジュール名の取得を依頼する。インストール装置100のモジュール決定部42Iは、渡された機能名から機能定義ファイル31Iと必要なモジュール34を決定し(S161)、機能定義ファイル名とモジュール名をインストール装置100の機能配置部83に送出する。
そして、インストール装置100の機能配置部83は、基本機能を提供するコアプログラム(アップデートは不要)に加えて、サーバ300から転送された機能定義ファイル31Sとモジュール34、及び、インストール装置100のモジュール決定部42Iが決定した機能定義ファイル名、モジュール名に該当する機能定義ファイル31I、モジュール34を、補助記憶装置13に配置する(S170)。
したがって、本実施形態のインストールシステム200によれば、サーバ300とインストール装置100の双方から機能定義ファイル31I、31Sとモジュール34を取得でき、インストール装置100が利用できる機能を最大化できる。例えば、ネットワークに接続されていない場合でも機能をインストールすることができる。
機能を追加した場合、追加の料金が発生することがあるが、この場合、ユーザは料金に応じて機能を追加するか否かを判断できると便利である。本実施例では、課金額を表示できるインストールシステム200について説明する。サーバ300とインストール装置100が接続されていれば、サーバ300での課金の管理が容易になる。
図24は、インストールシステム200がモジュール34をインストールするための手段を、ブロック図を用いて模式的に説明する図である。なお、図24において図22と同一部分には同一の符号を付しその説明は省略する。図示するように、本実施例では、インストール装置100が、課金額表示部87、課金額算出部85I及び課金額転送部86を、サーバ300がユーザ毎の課金額DB84及び課金額算出部85Sを有する。なお、図24では、インストール装置100がモジュール群45I、機能定義ファイル31I、モジュール決定部42I及び機能取得部81Iを有するように図示したが、実施例4と同様にインストール装置100がこれらの機能を有さなくてもよい。
なお、課金額を算出するため本実施例の機能定義ファイル31I、31Sは、機能毎に課金額が登録されている。課金額は無料の機能の機能定義ファイル31I、31Sには登録されていない。
<Function name = "PDF transfer to webdav">
<Process PluginName = "ToPDF" FileName = "ToPDF.dll"/>
<Process PluginName = "ToWebdav" FileName = "ToWebdav.dll"/>
<Price> 100000</Price>
</Function>
課金額算出部85I、85Sは、ユーザに選択された機能に基づき機能定義ファイル31I、31Sを参照し、Priceタグの課金額「100000」を読み出し、複数の場合はそれらの合計を算出する。
実施例4のようにサーバ300のみがモジュール34を記憶している場合、サーバ300の課金額算出部85Sがユーザに選択された各機能の課金額を読み出し、その合計を算出する共に、各機能の課金額と合計をインストール装置100に送信する。一方、実施例5又は6のようにサーバ300とインストール装置100の双方からモジュール34をインストールする場合、それぞれの課金額算出部85I、85Sが各機能の課金額を読み出す。そして一方の課金額算出部85I又は85Sが全ての課金額の合計を算出してもよいし、インストール装置100の課金額算出部85Iがインストール装置100が記憶するモジュール34の課金額の合計を、サーバ300の課金額算出部85Sがサーバ300が記憶するモジュール34の課金額の合計をそれぞれ算出してもよい。
図25は、インストールシステム200がモジュール34をインストールする手順を示すシーケンス図の一例である。
インストールが開始されると、インストール装置100の機能一覧表示部41は、実施例5と同様にサーバ300とインストール装置100が有する機能の機能一覧を表示装置23に表示する(S110〜130)。
インストール装置100の機能一覧表示部41は、サーバ300の機能一覧をサーバ300の課金額算出部85Sに、インストール装置100の機能一覧をインストール装置100の課金額算出部85Iにそれぞれ送出し、各機能の課金額の取得を依頼する。
サーバ300の課金額算出部85Sは、送信された機能一覧から対応する機能定義ファイル31Sを探し、各機能の課金額を取得し、インストール装置100に送信する。インストール装置100の課金額算出部85Iは、機能一覧から対応する機能定義ファイル31Sを探し、各機能の課金額を取得し、課金額表示部87に送出する。
インストール装置100の課金額表示部87は、サーバ300から送信された課金額とインストール装置100の課金額算出部85Iが読み出した課金額を表示装置23に表示する(S135)。
これにより、ユーザは課金額を見ながら機能一覧画面でインストールしたい機能を選択することができる。ユーザがインストールする機能を選択すると、課金額表示部87は選択の度に課金額を合計していき、合計結果を表示装置に表示する。
図26は、機能一覧表示部41が生成する機能一覧の一例を示す図である。図26において図6と同一部には同一の符号を付しその説明は省略する。図示するように本実施例の機能一覧には「課金額」が機能毎に表示される。
例えば、ユーザが最終的に「インストール」ボタン51をクリックしたりリターンキーを押下してユーザがその選択を確定すると、実施例5と同様にインストールが開始される。すなわち、インストール装置100の機能一覧表示部41は、ユーザが選択した機能のうち、サーバ300に存在する機能名をサーバ300の機能転送部82に送信し(S140)、サーバ300のモジュール決定部42Sは機能名に対応する機能定義ファイル31Sとモジュール34を決定する(S150)。サーバ300の機能転送部82は、モジュール決定部42Sが決定した機能定義ファイル名とモジュール名に該当するモジュール34をインストール装置100の機能配置部83に転送する(S160)。
また、インストール装置100の機能一覧表示部41は、ユーザが選択した機能のうち、インストール装置100に存在する機能名をインストール装置100のモジュール決定部42Iに渡し、機能定義ファイル名とモジュール名の取得を依頼する。インストール装置100のモジュール決定部42Iは、渡された機能名から機能定義ファイル31Iと必要なモジュール34を決定し(S161)、機能定義ファイル名とモジュール名をインストール装置100の機能配置部83に送出する。
そして、インストール装置100の機能配置部83は、基本機能を提供するコアプログラム(アップデートは不要)に加えて、サーバ300から転送された機能定義ファイル31Sとモジュール34、及び、インストール装置100のモジュール決定部42Iが決定した機能定義ファイル名、モジュール名に該当する機能定義ファイル31I、モジュール34を、補助記憶装置13に配置する(S170)。
そして、インストール装置100の課金額算出部85Iはインストールした各機能の課金額の合計を課金額転送部86に送出し、課金額転送部86は、選択された各機能、数量、及び、それらの課金額の合計をサーバ300の課金額算出部85Sに送信する(S180)。サーバ300の課金額算出部85Sはこれをユーザ毎に合計・蓄積し、課金を行う際のデータとする(S190)。
本実施例のインストールシステム200には、ユーザは課金額を確認しながら、自分が利用したい機能のみにお金を支払うことができ、不必要な機能をインストールする必要がなくなる。
この課金額は、実施例2のように機能作成する際にも同様に表示されるので、ユーザは追加する機能とその課金額、及び、合計を見ながら、費用対効果を勘案しながら新機能を作成することができる。
実施例2で説明した新機能を作成した場合、及び、実施例3で説明した新機能を取り込んだ場合も、ユーザに課金することができる。
図8の新機能作成部は、新たに作成した新機能の課金額を決定し、機能定義ファイル31Iに登録する。課金額の決定方法は予め定めらており、例えば新機能に含まれる各機能の課金の合計である。また、新機能に含まれる機能の数が多い場合には、数に係数をかけて合計から減額した値を新機能の課金額としてもよい。いずれにしても、新機能の機能定義ファイル31Iには、元からある機能定義ファイルと同様に課金額情報が登録される。
なお、作成された新機能の機能定義ファイル31Iはインストール装置100側が記憶することが考えられるが、作成された新機能の機能定義ファイル31Iをサーバ300に送信することとすれば、サーバ300とインストール装置100で新機能の機能定義ファイル31Iを共有することができる。すなわち、以降はサーバ300から別のインストール装置100に新機能の機能定義ファイル31Iを送信し一覧表示することができる。
そのような使用方法が実施例3で説明した、すでに作成されている新機能を取り込む場合である。新機能の機能定義ファイル31Iには、元からある機能定義ファイル31I、31Sと同様に課金額情報が登録されているので、外部から取り込んだ後の外部機能定義ファイル49を参照することで、インストールした機能に応じて課金することができる。
したがって、本実施例のインストールシステム200は、インストール装置100において新機能が作成された場合でも同様にユーザに課金することができる。また、新機能を取り込む場合も、同様にユーザに課金することができる。
インストール装置の概略を模式的に説明する図である。
インストール装置のハードウェア構成図の一例である。
インストール装置のソフトウェア構成の概略構成図の一例である。
インストール装置100がモジュールをインストールするための手段をブロック図を用いて模式的に説明する図の一例である。
機能定義ファイルの一例を示す図である。
機能一覧表示部が生成する機能一覧の一例を示す図である。
インストール装置100がモジュールをインストールする手順を示すフローチャート図である。
インストール装置がモジュールをインストールするための手段をブロック図を用いて模式的に説明する図の一例である(実施例2)。
機能一覧の一例を示す図である。
機能作成画面の一例である。
機能作成部により選択された一連の機能に対応する機能定義ファイルの一例を示す図である。
機能作成部が表示装置に表示する設定値登録画面の一例である。
設定値が記述された新機能定義ファイルの別の一例を示す図である。
インストール装置がモジュールをインストールする手順を示すフローチャート図の一例である(実施例2)。
インストール装置がモジュールをインストールするための手段をブロック図を用いて模式的に説明する図の一例である(実施例3)。
機能一覧の一例を示す図である。
機能取り込み画面の一例を示す図である。
インストール装置がモジュールをインストールする手順を示すフローチャート図の一例である(実施例3)。
サーバとインストール装置を有するインストールシステムの概略構成図の一例である。
インストールシステムがモジュールをインストールするための手段を、ブロック図を用いて模式的に説明する図の一例である(実施例4)。
インストールシステムがモジュールをインストールする手順を示すシーケンス図の一例である(実施例4)。
インストールシステムがモジュールをインストールするための手段を、ブロック図を用いて模式的に説明する図の一例である(実施例5)。
インストールシステムがモジュールをインストールする手順を示すシーケンス図の一例である(実施例5)。
インストールシステムがモジュールをインストールするための手段を、ブロック図を用いて模式的に説明する図の一例である(実施例6)。
インストールシステムがモジュールをインストールする手順を示すシーケンス図の一例である(実施例6)。
機能一覧表示部が生成する機能一覧の一例を示す図である。
符号の説明
11 制御部
12 主記憶部
13 補助記憶部
14 ネットワークI/F
15 外部記憶装置I/F
16 脱着装置I/F
17 表示装置I/F
18 入力装置I/F
21 記憶媒体
22 脱着装置
23 表示装置
24 入力装置
25 インストールプログラム
30 アプリケーション
31 機能定義ファイル
32 UIプラグイン
33 アプリケーションプロセス
34 モジュール
35 コアプログラム
41 機能一覧表示部
42、42S、42I モジュール決定部
43 モジュール転送部
46 機能作成部
48 機能取り込み部