以下に添付図面を参照して、この発明にかかる画像形成装置、画像形成方法、その方法をコンピュータに実行させるプログラムの最良な実施の形態を詳細に説明する。なお、以下の説明では画像形成装置がMFP(Multi Function Printer)である場合を画像形成装置の一例として説明する。また、ここではMFPがコピー処理に関する複数の機能(2面集約機能、4面集約機能、ステープル機能など)を有する場合をMFPの一例として説明する。
(実施の形態)
図1は、本発明の第1の実施の形態にかかるMFPを備えた通信ネットワークシステムの構成を示すである。通信ネットワークシステム100は、通信ネットワーク7を介してサーバ6、MFP1,2、LP(Laser Printer)3、PC(Personal Computer)4,5を接続している。
MFP1,2は、コピー、プリント、FAX、スキャン等の種々の処理を一台で提供する装置(画像処理機能の中の所定の画像処理機能を用いて画像処理、用紙の編集処理を実行する装置)であり、例えばコピー処理などに関する種々の機能をダウンロード、インストールしてコピー処理などを行なう。MFP1,2がダウンロード、インストールする新規プラグイン機能は、MFP1に標準搭載されている機能(後述の標準搭載機能)、以前にプラグインされた機能(後述の標準プラグイン機能)との間の機能間の関係(処理依存関係)に関する情報を含んでいる。MFP1,2は、例えばPC4,5から通信ネットワーク7を介して送信されるデータを所定の用紙に印刷する。
LP3は、レーザ光によって感光体にトナーを付着させて印刷を行なうプリンタであり、例えばPC4,5から通信ネットワーク7を介して送信されるデータを所定の用紙に印刷する。LP3は、FAXやコピーなどの機能を持つ複合機であってもよい。PC4,5はPC4,5が格納するコピー用(印刷用)のデータをMFP1,2やLP3に送信する。
つぎに、実施の形態にかかるMFP1,2の詳細な構成について説明する。なお、MFP1,2は同様の構成を有するので、ここではMFP1を例にとって説明する。図2は、MFPを備えた通信ネットワークシステムの詳細な構成を示すブロック図である。なお、ここでの通信ネットワークシステム100では、MFP1、サーバ6、PC4のみを図示し、MFP2、PC5の図示を省略している。
サーバ6は、記憶部61、制御部62、判断部63、ネットワークI/F64を備えている。記憶部61は、MFP1,2に提供するためのプラグイン(プログラム)や、プラグインの一覧を示すプラグインリスト、プラグインのインストール条件などを記憶している。
判断部63は、MFP1,2からの要求に基づいて、記憶部61に記憶しているプラグインリスト、プラグイン自体、プラグインのインストール条件などをMFP1,2に送信するか否かを判断する。判断部63は、MFP1,2に送信すると判断した情報(プラグインなど)を、ネットワークI/F64からMFP1,2に送信させる。
ネットワークI/F64は、通信ネットワーク7と接続する通信インタフェースである。ここでのネットワークI/F64は、通信ネットワーク7を介してMFP1やPC4と接続している。ネットワークI/F64は、例えばMFP1からプラグインリストの要求(要求情報)、プラグインのインストール条件の要求(要求情報)、プラグインのダウウンロードの要求(要求情報)などを受信し、受信した情報を判断部63に送信する。また、ネットワークI/F64は、判断部63からの指示に基づいて、MFP1へプラグインリスト、プラグインのインストール条件、プラグイン自体を送信する。制御部62は、記憶部61、判断部63、ネットワークI/F64を制御する。
MFP1は、ネットワークI/F11、記憶部12、機能管理部(設定制御部)13、オペレーションパネル14を備えている。ネットワークI/F11は、通信ネットワーク7と接続する通信インタフェースである。ここでのネットワークI/F11は、通信ネットワーク7を介してサーバ6やPC4と接続している。
ネットワークI/F11は、機能管理部13やユーザからの指示に基づいて、サーバ6へプラグインリストの要求(要求情報)、プラグインのインストール条件の要求(要求情報)、プラグインのダウウンロードの要求(要求情報)などを送信する。ネットワークI/F11は、サーバ6からMFP1へプラグインリスト、プラグインのインストール条件、プラグイン自体を受信し、受信した情報を機能管理部13に送信する。
オペレーションパネル14は、タッチパネルなどによって構成され、操作部(指示入力部)15、表示部16を備えている。操作部15は、コピー処理を行なうための指示情報(機能を選択する指定情報)やプラグインを行なうための指示情報を入力する手段であり、表示部16は操作部15をパネル上へ入力ボタンとして表示するとともに、機能を選択するための画面(機能選択画面)などを表示する手段である。
記憶部12は、RAM(Random Access Memory)やROM(Read Only Memory)を含んで構成され、プラグインを行なうためのアプリケーション(後述のアプリケーション17)、コピー処理を行なうためのアプリケーション(後述のアプリケーション18)などを記憶する。また、記憶部12は、サーバ6からダウンロードしてインストールしたプラグインやプラグインの管理に関する情報を記憶する。ここでの記憶部12は、機能管理部13によって作成されるプラグインに関する情報として、MFP1が備える複数の機能の機能間関係(処理依存関係)を管理するためのテーブル(後述の機能間関係管理テーブル31)などを記憶する。
機能管理部13は、図示しないCPU(Central Processing Unit)を含んで構成されており、記憶部12のROM内に格納されるアプリケーション17,18などを、読み出して記憶部12のRAMのプログラム格納領域に展開して各種処理を実行し、この処理に際して生じる各種データをRAM内に形成されるデータ格納領域に一時的に記憶して、MFP1の各処理部を制御する機能を有している。
機能管理部13は、オペレーションパネル14を介してユーザからプラグインのインストール条件の要求やプラグインのダウウンロードの要求が入力されると、サーバ6にプラグインのインストール条件の要求やプラグインのダウウンロードの要求を行なう。
機能管理部13は、サーバ6から受信するプラグインのインストール条件に基づいて、プラグインのインストールの可否を判断する。機能管理部13は、サーバ6からプラグインをダウンロードすると、ダウンロードしたプラグインをインストールする。機能管理部13は、プラグインをインストールする際、インストールしたプラグインに基づいて機能間関係管理テーブル(処理依存関係情報)31を作成し、記憶部12に記憶(更新)させておく。また、機能管理部13は、プラグインをインストールする際、プラグインを管理するため情報、プラグインプログラムを記憶部12に記憶させる。
また、機能管理部13は、MFP1が所定のコピー処理を行なう際、記憶部12が記憶している機能間関係管理テーブル31に基づいて、機能選択画面(ユーザが機能を選択するための画面)を作成するための情報(選択機能リスト)をアプリケーション18に提供する。
PC4は、ネットワークI/F41、記憶装置42、CPU(Central Processing Unit)43、入力装置44、ディスプレイ45を備えている。ネットワークI/F41は、通信ネットワーク7と接続する通信インタフェースである。ここでのネットワークI/F41は、通信ネットワーク7を介してサーバ6やMFP1と接続している。ネットワークI/F41は、入力装置44から入力されて記憶装置42に記憶するコピー用のデータを通信ネットワーク7を介してMFP1に送信する。
入力装置44は、コピー用のデータを入力する。記憶装置42は、入力装置44から入力されたコピー用のデータを記憶する。CPU43は、MFP1にコピーさせるデータを記憶装置42から抽出し、ネットワークI/F41を介してMFP1に送信する。ディスプレイ45は、液晶モニタなどを備えて構成され、入力装置44に入力されたコピー用のデータや記憶装置42に記憶されているコピー用のデータを表示する。
なお、通信ネットワークシステム100内でPC4とMFP1が接続する構成について説明したが、MFP1が入力装置44や記憶装置42を備える構成とし、入力装置44から入力されたコピー用のデータや記憶装置42に記憶するコピー用のデータをMFP1が直接コピーする構成としてもよい。
つぎに、実施の形態にかかるMFP1を備えた通信ネットワークシステムの動作手順について説明する。なお、MFP1は、予め所定のコピー機能を備えた状態であり、このMFP1に対して新規のプラグインをインストールし、インストールしたプラグインに基づいてMFP1がコピー処理を行なう場合の動作手順について説明する。ここでは、まずMFP1によるプラグインのダウンロード、インストールに関する処理の動作手順について説明し、次にMFP1によるコピー処理に関する動作手順について説明する。
図3は、MFPを備えた通信ネットワークシステムの動作手順(プラグインのダウンロード、インストール)を示すフローチャートである。ユーザは、MFP1に対して新規のプラグインをインストールするため、まずオペレーションパネル14(操作部15)に、サーバ6から公開されているプラグインリストの表示要求(指示情報)を入力する。これにより、サーバ6から公開されているプラグインリストの表示要求がオペレーションパネル14から記憶部12内のアプリケーション17(プラグインを行なうためのアプリケーション)に送信される(s1)。アプリケーション17は、オペレーションパネル14からプラグインリストの表示要求を受信すると、ネットワークI/F11を介してサーバ6にプラグインリストの表示要求を送信する(s2)。MFP1からサーバ6へのプラグインリストの表示要求は、通信ネットワーク7を介してサーバ6に送られる。
サーバ6は、ネットワークI/F61を介してMFP1からのプラグインリストの表示要求を受信し、受信したプラグインリストの表示要求を判断部63に送信する。
判断部63は、記憶部61に記憶しているプラグインリストの中からプラグインリストの表示要求に応じたプラグインリストを抽出し、ネットワークI/F61を介してMFP1に送信(通知)する(s3)。
サーバ6から送信されたプラグインリストは、MFP1がネットワークI/F11を介して受信し、記憶部12内のアプリケーション17に入力される。アプリケーション17は、ネットワークI/F11を介して受信したプラグインリストをオペレーションパネル14の表示部16に表示させる(s4)。
この後、ユーザは表示部16に表示されているプラグインリストから所望のプラグインを選択し、選択情報としてオペレーションパネル14の操作部15に入力する。操作部15は、操作部15に入力されたプラグインの選択情報に基づいて、プラグインの選択要求をアプリケーション17に入力する(s5)。アプリケーション17は、操作部15からプラグインの選択要求が入力されると、選択されたプラグインをインストール可能か否かの判定要求を機能管理部13に送信する(s6)。機能管理部13は、選択されたプラグインをインストール可能か否かの判定要求を受信すると、選択されたプラグインをインストールするための条件をサーバ6に要求する(s7)。ここでの機能管理部13は、選択されたプラグインを識別する情報を含んだインストール条件の要求情報をサーバ6へ送信(通知)する。
サーバ6の判断部63は、MFP1からインストール条件の要求情報を受信すると、このインストール条件の要求情報内から選択されたプラグインを識別する情報を抽出する。そして、判断部63は、ユーザによって選択されたプラグインに対応するインストール条件を、識別情報に基づいて記憶部61から抽出し、MFP1に送信する(s8)。プラグインに対応するインストール条件は、例えばプラグインをインストール可能なアプリケーションを示す情報(アプリケーション条件)(アプリケーション17を識別する情報)を含んでいる。
MFP1の機能管理部13は、ユーザによって選択されたプラグインに対応するインストール条件をサーバ6から受信すると、ユーザによって選択されたプラグインがインストール可能であるか否かを受信したインストール条件に基づいて判定する(s9)。機能管理部13は、例えばインストール条件内のアプリケーション条件に基づいて、ユーザによって選択されたプラグインがインストール可能であるか否かを判定する。
機能管理部13は、ユーザによって選択されたプラグインがインストール可能であるか否かの判定結果を、アプリケーション17に入力する。すなわち、機能管理部13は、インストール可否の判定結果の通知をアプリケーション17に対して行なう(s10)。
アプリケーション17は、このインストール可否の判定結果をオペレーションパネル14に通知し、オペレーションパネル14に判定結果を表示させる(s11)。これにより、オペレーションパネル14は、インストール可否の判定結果を表示部16に表示させる。
オペレーションパネル14にインストール可否の判定結果として「インストール可能」を示す判定結果が表示されると、ユーザは必要に応じてインストール可能なプラグインの要求をオペレーションパネル14の操作部15に入力する。操作部15は、操作部15に入力されたプラグインのインストール要求をアプリケーション17に入力する(s12)。
アプリケーション17は、操作部15からプラグインのインストール要求が入力されると、プラグインのインストール要求を機能管理部13に行なう(s13)。ここでのアプリケーション17は、ダウンロード要求を行なうプラグインを識別する情報を含んだダウンロード要求を機能管理部13へ送信する。
機能管理部13は、アプリケーション17からプラグインのインストール要求を受信すると、このプラグインのダウンロード要求をサーバ6に送信する(s14)。ここでの機能管理部13は、ダウンロード要求を行なうプラグインを識別する情報を含んだダウンロード要求をサーバ6へ送信(通知)する(s14)。
サーバ6の判断部63は、MFP1からプラグインのダウンロード要求を受信すると、このダウンロード要求内からプラグインを識別する情報を抽出する。そして、判断部63は、抽出した識別情報に基づいてダウンロードさせるプラグインを記憶部61から抽出し、MFP1に送信する。これにより、MFP1の機能管理部13は、サーバ6からプラグインをダウンロードする(s15)。
MFP1の機能管理部13は、ダウンロードしたプラグインの展開処理(インストール)を行なう。ここで、記憶部12で記憶されるプラグインを追加するアプリケーション17、記憶部12で記憶され機能管理部13で管理されるプラグインに関する情報について説明する。
図4は、プラグインを追加するアプリケーションとインストール後のプラグインのデータ構成を示す図である。記憶部12は、アプリケーション格納領域21にプラグインを追加するアプリケーション(アプリケーション17)を記憶するとともに、このアプリケーション17の付帯情報を記憶している。このアプリケーション17の付帯情報は、アプリケーション17を識別するためのアプリケーション名、アプリケーション17のバージョンを示す情報を含んで構成されている。
プラグイン情報スロット22は、プラグインのインデックスなどを格納する領域である。プラグイン情報スロット22には、プラグインのインデックス(プラグイン名、プラグインのバージョンを示す情報)とともに、インデックスの付帯情報が格納されている。
このプラグインのインデックスの付帯情報は、プラグインをインストールする条件(プラグインをインストール可能なアプリケーション条件)、プラグインを利用する際に必要な情報(プラグインの実行タイミング、プラグインの実行に必要な引数、プラグインに必要なデータサイズ、プラグインを格納するデータアドレスなど)を含んでいる。
プラグインデータ領域23は、実行するプラグインプログラム本体を格納する領域である。機能間関係記憶領域24は、MFP1が予め備える機能(既にプラグイン済みの機能)やプラグインする機能の機能間関係(処理依存関係)を管理するためのテーブル(後述の機能間関係管理テーブル31)を格納する。記憶部12で記憶しているプラグイン情報スロット22、プラグインデータ領域23、機能間関係記憶領域24は機能管理部13によって管理されている。
ここでMFP1の機能管理部13が行なう、ダウンロードしたプラグインの展開処理について説明する。図5は、プラグインの展開処理を説明するための図である。MFP1がサーバ6からダウンロードしたプラグイン51は、プラグイン名(プラグイン1X)、プラグインのバージョン(Ver3.0)、プラグインするためのアプリケーション条件(アプリケーション1YのVer1.0以降、アプリケーション2YのVer2.0以降)、プラグインの実行タイミング(画像変換終了時)、プラグインの実行に必要な引数(画像サイズ、画像解像度、ページ数)、プラグインプログラムのデータサイズ(200KB)、他機能との依存関係を示す情報テーブル(後述の他機能関係情報テーブル32)などに関する情報(プラグイン情報)と、プラグインプログラムを含んで構成されている。
MFP1の機能管理部13は、アプリケーション格納領域21に記憶しているアプリケーション17を用いてダウンロードしたプラグインの展開を行なう。MFP1の機能管理部13は、ダウンロードしたプラグインの展開処理として、まずプラグインプログラムの展開処理を行なう(s16)。すなわち、機能管理部13は、プラグイン51からプラグインプログラムを抽出し、抽出したプラグインプログラムをプラグインデータ領域23の空き領域に展開して記憶させる。
また、MFP1の機能管理部13は、ダウンロードしたプラグインの展開処理として、プラグイン情報の展開処理を行なう(s17)。すなわち、機能管理部13は、プラグイン51からプラグイン名、プラグインのバージョンなどのプラグイン情報を抽出し、抽出したプラグイン情報をプラグイン情報スロット22の空き領域に展開して記憶させる。
さらに、MFP1の機能管理部13は、ダウンロードしたプラグインの展開処理として、他機能関係情報テーブル(処理依存関係)32の展開処理を行なう。すなわち、機能管理部13は、プラグイン51から他機能関係情報テーブル32を抽出し、抽出した他機能関係情報テーブル32を機能間関係記憶領域24の機能間関係管理テーブル31として展開し記憶させる(新規テーブル要素として追加する)(s18)。
ここで、機能間関係記憶領域24に格納されるMFP1が予め備える機能(他機能)と新たにプラグインする機能の機能間関係(処理依存関係)について説明する。図6−1〜図6−4は、機能間関係を説明するための図である。MFP1では、使用可能な機能、使用不可能な機能をオペレーションパネル14の表示部16によって表示する。例えば、図6−1に示すように機能の選択が可能なモード(MODE)(選択可能モード)を状態(ボタン)M1で表示部16に表示し、機能が選択中のモード(選択中モード)を状態M2で表示部16に表示し、機能の選択が不可のモード(選択不可モード)を状態M3で表示部16に表示する。
図6−2は、モードAとモードBの機能間関係が「関連なし」の場合を示している。モードAとモードBの機能間関係が「関連なし」の場合、初期状態では表示部16においてモードAおよびモードBが選択可能モード(状態M1)として表示される(1)。
この状態において、モードAがユーザによって選択されると、モードAの機能がMFP1に設定され、モードAが選択中モード(状態M2)として表示部16に表示される。このとき、モードBの機能はMFP1に設定されることなく、選択可能な状態のまま変化しない(2)。
さらに、この状態において、選択中モードのモードAがユーザによって解除されると、モードAの機能がMFP1から設定解除され、モードAが選択可能モード(状態M1)として表示部16に表示される。このとき、モードBは選択可能モードのまま変化しない(3)。
すなわち、モードAとモードBの機能間関係が「関連なし」の場合、モードAを選択することによってもモードAの選択を解除することによっても、モードBの状態(MFP1への機能の設定状態)は影響を受けない。
図6−3は、モードAとモードBの機能間関係が「連動」の場合を示している。モードAとモードBの機能間関係が「連動」の場合、初期状態では表示部16においてモードAおよびモードBが選択可能モード(状態M1)として表示される(4)。
この状態において、モードAがユーザによって選択されると、モードAの機能がMFP1に設定され、モードAが選択中モード(状態M2)として表示部16に表示される。このとき、モードBの機能はモードAの状態に連動してMFP1に設定されるとともに、モードBは選択中モード(状態M2)として表示部16に表示される(5)。
さらに、この状態において、選択中モードのモードAがユーザによって解除されると、モードAの機能がMFP1から設定解除され、モードAが選択可能モード(状態M1)として表示部16に表示される。このとき、モードBの機能はモードAの状態に連動してMFP1から設定解除されるとともに、モードBは選択可能モード(状態M1)として表示部16に表示される(6)。
すなわち、モードAとモードBの機能間関係が「連動」の場合、モードAを選択することによってもモードAの選択を解除することによっても、モードBの状態(MFP1への機能の設定状態)はモードAの状態に連動してモードAと同じ状態になる。
図6−4は、モードAとモードBの機能間関係が「選択制限排他」の場合を示している。モードAとモードBの機能間関係が「選択制限排他」の場合、初期状態では表示部16においてモードAおよびモードBが選択可能モード(状態M1)として表示される(7)。
この状態において、モードAがユーザによって選択されると、モードAがMFP1に設定され、モードAが選択中モード(状態M2)として表示部16に表示される。このとき、モードBの機能はMFP1において設定禁止の状態になるとともに、モードBは選択不可モード(状態M3)として表示部16に表示される(8)。
さらに、この状態において、選択されていたモードAがユーザによって解除されると、モードAの機能がMFP1から設定解除され、モードAが選択可能モード(状態M1)として表示部16に表示される。このとき、モードBの機能はMFP1において設定禁止の状態から設定可能な状態に変化するとともに、モードBは選択可能モード(状態M1)として表示部16に表示される(9)。
すなわち、モードAの機能がMFP1に設定されると、モードBの機能はMFP1において設定禁止状態になり、モードAの機能がMFP1で設定解除されると、モードBの機能はMFP1において設定可能状態になる。換言すると、モードAとモードBの機能間関係が「選択制限排他」の場合、モードAまたはモードBの何れか一方が選択中の場合、他方が選択不可の状態となり、両方が選択中となることはない。
図6−5は、モードAとモードBの機能間関係が「選択解除排他」の場合を示している。モードAとモードBの機能間関係が「選択解除排他」の場合、モードBが選択中の状態でモードAが選択可能な状態として示されている場合(10)に、モードAがユーザによって選択されると、モードAがMFP1に設定され、モードAが選択中モードとして表示部16に表示される。このとき、モードBの機能はモードAの機能と反対にMFP1から設定解除され、モードBは選択可能モード(状態M1)として表示部16に表示される(11)。
この状態において、選択されていたモードAがユーザによって解除されると、モードAの機能がMFP1から設定解除され、モードAが選択可能モード(状態M1)として表示部16に表示される。このとき、モードBは選択モードのまま変化しない(12)。
すなわち、モードBは選択中モードであってもモードAが選択されることによって選択中モードが解除されて選択可能モードとなる。また、モードBが選択可能モードの場合、モードAが選択されることによってもモードAの選択中モードが解除されることによってもモードBは選択可能モードのまま変化しない。換言すると、モードBは、モードBが選択中モードにおいてモードAが選択された場合のみ、モードAの影響を受けて選択中モードが解除される。
ここで、プラグイン51から抽出する他機能関係情報テーブル32、機能間関係記憶領域24の内の機能間関係管理テーブル31の構成について説明する。図7は、他機能関係情報テーブルの構成の一例を示す図である。他機能関係情報テーブル32は、新規にプラグインする機能が他の機能へ及ぼす影響、新規にプラグインする機能が他の機能から及ぼされる影響を示す情報テーブルである。
図7では、コピーした用紙のソートを行なうソート機能、コピーした用紙のソートを行なわない非ソート機能、2枚の原稿を1枚に集約してコピーする機能である2in1集約機能(2面集約機能)、1枚の原稿を1枚の用紙の上下または左右に2つコピーするダブルコピー機能、コピーした用紙をステープルで綴じるステープル機能などの他機能(MFP1に予めプラグインされている機能や標準装備の機能)と新規にプラグインする機能との関係について示している。
ここでは、新規にプラグインする機能がソート機能および非ソード機能へ及ぼす影響は「選択解除排他」であり、新規にプラグインする機能が2in1集約機能、ダブルコピー機能、ステープル機能へ及ぼす影響は「関連なし」である場合を示している。
また、新規にプラグインする機能がソート機能、非ソード機能、2in1集約機能、ダブルコピー機能から及ぼされる影響は「選択制限排他」であり、新規にプラグインする機能がステープル機能から及ぼされる影響は「関連なし」である場合を示している。
図8は、機能間関係管理テーブルの構成の一例を示す図である。機能間関係管理テーブル31は、各機能間の処理依存の関係を示す情報テーブルである。図8では、ソート機能、非ソート機能、2in1集約機能、ダブルコピー機能、ステープル機能が、それぞれ他の機能に及ぼす影響(処理依存の関係)を示している。ここでは、モード(MODE)A側がモードB側に及ぼす影響を示している。
すなわち、ソート機能(モードA)は、非ソート機能に対して「選択解除排他」の関係にあり、2in1集約機能、ダブルコピー機能、ステープル機能に対して「関連なし」の関係にある。換言すると、ソート機能が設定または設定解除されても2in1集約機能、ダブルコピー機能、ステープル機能はその設定状態に影響を受けない。
また、非ソート機能(モードA)は、ソート機能に対して「選択解除排他」の関係にあり、2in1集約機能、ダブルコピー機能、ステープル機能に対して「関連なし」の関係にある。
また、2in1集約機能(モードA)は、ソート機能、非ソート機能、ステープル機能に対して「関連なし」の関係にあり、ダブルコピー機能に対して「選択制限排他」の関係にある。
また、ダブルコピー機能(モードA)は、ソート機能、非ソート機能、ステープル機能に対して「関連なし」の関係にあり、2in1集約機能に対して「選択解除排他」の関係にある。
また、ステープル機能(モードA)は、ソート機能に対して「連動」の関係にあり、非ソート機能に対して「選択制限排他」の関係にあり、2in1集約機能、ダブルコピー機能に対して「関連なし」の関係にある。
このように、例えばソート機能(モードA)はステープル機能に対して「関連なし」の関係にあるため、ソート機能が選択または選択解除されてもステープル機能はソート機能に影響を受けない。一方、ステープル機能(モードA)は、ソート機能に対して「連動」の関係にあるため、ステープル機能が選択または選択解除されると、これに連動してソート機能も選択または選択解除されることとなる。
MFP1の機能管理部13が、プラグイン51から他機能関係情報テーブル32を抽出し、抽出した他機能関係情報テーブル32を機能間関係記憶領域24の機能間関係管理テーブル31として展開すると、機能管理部13はプラグイン51のインストールが終了したことを示す通知をアプリケーション17に入力する(s19)。アプリケーション17はこのインストールが終了したことを示す通知をオペレーションパネル14に送信し、表示部16に表示させる(s20)。
次にMFP1によるコピー処理に関する動作手順について説明する。図9は、コピー処理の実行手順を示すフローチャートである。ユーザは、MFP1に対してコピーを行なう際の機能を選択するため、まずオペレーションパネル14(操作部15)に、機能選択画面の表示要求を(指示情報)を入力する。これにより、機能選択画面の表示要求がオペレーションパネル14から記憶部12内のアプリケーション18(コピー処理を行なうためのアプリケーション)に送信される(s31)。アプリケーション18は、オペレーションパネル14から機能選択画面の表示要求を受信すると、機能管理部13に選択可能な機能リストの取得要求を送信する(s32)。
機能管理部13は、機能間関係管理テーブル31に基づいて、選択可能な機能のリスト(後述の選択機能リスト33)を作成し保持しておく(s33)。機能管理部13は、作成した選択機能リスト33をアプリケーション18に入力(通知)する(s34)。
アプリケーション18は、機能管理部13から取得した選択機能リスト33に基づいて、機能選択画面を作成する(s35)。ここでの機能選択画面には、選択可能な機能が例えば図6−1の状態M1のように示される。アプリケーション18は、作成した機能選択画面をオペレーションパネル14に送信し、オペレーションパネル14の表示部16に表示させる(s36)。
この後、ユーザは表示部16に表示されている機能選択画面から所望の機能を選択し、選択情報としてオペレーションパネル14の操作部15に入力する。操作部15は、操作部15に入力され機能の選択情報に基づいて、機能の選択要求をアプリケーション18に入力する(s37)。
なお、アプリケーション18は、所定の時間内に機能管理部13から選択機能リスト33を取得できなかった場合、再度機能管理部13に選択可能な機能リストの取得要求を送信することとしてもよい。
アプリケーション18は、オペレーションパネル14からの機能の選択要求を機能管理部13に送信する(s38)。機能管理部13は、機能間関係管理テーブル31およびアプリケーション18からの機能の選択要求に基づいて、選択機能リスト33をあらためて作成し保持(更新)する(s39)。ここでの機能管理部13は、s33の処理で保持しておいた選択機能リスト33およびアプリケーション18からの機能の選択要求に基づいて、選択機能リスト33を作成(更新)してもよい。
ここで選択機能リスト33の構成の一例を説明する。図10は、選択機能リストの構成を説明するための図である。選択機能リスト33は、初期状態(機能の選択前)においては、全ての機能が選択可能な状態となっている。すなわち、MFP1が予め備えている機能(ソート機能、非ソート機能、2in1集約機能、ダブルコピー機能、ステープル機能)と、新規にプラグインされた機能(新規プラグイン機能P1,P2)が全て選択可能な状態となっている。
したがって、この状態でアプリケーション18から機能管理部13に選択機能リスト33の取得要求があると、機能管理部13からアプリケーション18へ全ての機能が選択可能なことを示す選択機能リスト33が送られる。これにより、アプリケーション18は、全ての機能が選択可能(状態M1)なことを示す機能選択画面を作成し、オペレーションパネル14に表示させる。
選択機能リスト33が初期状態である場合に、例えばユーザがソート機能と新規プラグイン機能P1を選択すると、アプリケーション18から機能管理部13にソート機能の選択要求と新規プラグイン機能P1の選択要求が送られる。これにより、機能管理部13は、初期状態の選択機能リスト33内のソート機能、新規プラグイン機能P1を「選択可能」から「選択済み」に変更する。
また、機能管理部13は、機能間関係管理テーブル31に基づいて、選択されたソート機能、新規プラグイン機能P1によって影響を及ぼされる機能を抽出する。ここでの機能管理部13は、ソート機能、新規プラグイン機能P1が選択可能な状態(選択可能モード)から選択済みの状態(選択中)に変化することによって状態変更となる機能を抽出する。例えば、図8に示したようにソート機能は、非ソート機能に対して「選択解除排他」の関係にあるため、ソート機能が選択可能な状態から選択済みの状態に変化することによって、非ソート機能は選択可能な状態から選択不可の状態に変化する。
機能管理部13は、アプリケーション18からの機能の選択要求に基づいて、初期状態の選択機能リスト33内から選択要求された機能の選択状況を選択済みに変更するとともに、変更となった機能に応じて状態変化する機能(非ソート機能)の状態を変更し、新たな選択機能リスト33を作成する。
機能管理部13は、新たに作成した選択機能リスト33をアプリケーション18に入力する(s40)。アプリケーション18は、機能管理部13から取得した新たな選択機能リスト33に基づいて、新たな機能選択画面を作成する(s41)。ここでの機能選択画面には、選択可能な機能が例えば状態M1のように示され、選択済みの機能(ソート機能、新規プラグイン機能P1)が状態M2のように示され、選択不可の機能(非ソート機能)が状態M3のように示される。
図11は、機能選択画面の画面表示を説明するための図である。機能選択画面は、初期状態(機能の選択前)においては、全ての機能が選択可能な状態(図6−1の状態M1)として表示される。選択画面が初期状態である場合に、例えばユーザがソート機能と新規プラグイン機能P1を選択すると、ソート機能と新規プラグイン機能P1が選択中の状態(図6−1の状態M2)として表示される。さらに、ソート機能が選択可能な状態から選択中の状態に変化することによって、非ソート機能は選択可能な状態から選択不可の状態(図6−1の状態M3)に変化する。
アプリケーション18は、新たに作成した機能選択画面をオペレーションパネル14に送信し、オペレーションパネル14の表示部16に表示中の機能選択画面を更新させる(s42)。
この後、ユーザが表示部16に表示されている機能選択画面から所望の機能を選択または解除する場合、s37〜s42の処理が繰り返される。
コピー処理に用いる機能が全て選択され、ユーザがオペレーションパネル14の操作部15からコピー処理の実行指示を入力すると、コピー処理の実行指示情報がオペレーションパネル14からアプリケーション18に入力される(s43)。
アプリケーション18は、コピー処理の実行指示がオペレーションパネル14から入力されると、コピー処理に必要な情報(プラグインを利用するための情報)の取得要求を機能管理部13に送信する(s44)。
機能管理部13は、アプリケーション18からプラグインを利用するための情報の取得要求があると、記憶部12のプラグイン情報スロット22からプラグインを利用するための情報(プラグインのアプリケーション条件、プラグインの実行タイミングなど)(プラグイン利用情報)を抽出する。このとき、機能管理部13は、選択機能リスト33で選択済みの機能に対応するプラグイン利用情報をプラグイン情報スロット22から抽出する。そして、機能管理部13は、抽出したプラグイン利用情報をアプリケーション18に入力(通知)する(s45)。
アプリケーション18は、機能管理部13から入力されたプラグイン利用情報を用いてプラグインを利用するための準備処理を行なう(s46)。アプリケーション18は、例えばプラグインの実行タイミングや、プラグインの実行に必要な引数などを設定することによってプラグインを利用するための準備処理を行なう。
この後、アプリケーション18は、準備処理を行なったプラグインの実行要求をプラグインデータ領域23内のプラグインプログラムに対して行なう。このとき、アプリケーション18は、プラグイン利用情報に含まれているプラグインのデータアドレスに基づいて、プラグインデータ領域23内のプラグインを指定し、実行要求を行なう(s47)。
アプリケーション18から実行要求が入力されたプラグインプログラムは、初期化処理、プラグインプログラムに応じた機能の実行処理、終了処理(s48〜s50)を行なう。
プラグインプログラムは、プラグインプログラムに応じた機能の実行処理が終了すると、実行の終了を示す通知をアプリケーション18に入力する(51)。これにより、アプリケーション18はプラグインプログラムに応じた機能の実行が終了したことを示す情報を、オペレーションパネル14に表示させる(52)。
つぎに、図3のs18の処理で説明した他機能関係情報テーブル32を機能間関係記憶領域24の機能間関係管理テーブル31として展開する処理を詳細に説明する。まず、MFP1への搭載される機能の搭載方法の分類について説明する。図12は、MFPへの搭載される機能の搭載方法の分類を示す図である。MFP1へ搭載される機能には、標準搭載機能、標準プラグイン機能、新規プラグイン機能がある。
このうち、標準搭載機能は、MFP1に標準搭載されている機能であり、MFP1の生産時に搭載されている機能である。標準プラグイン機能は、MFP1の発売時に公開または公開予定の機能であり、発売後ユーザによって追加搭載(プラグイン)される機能である。新規プラグイン機能は、MFP1の発売後に公開される機能であり、発売後ユーザによって追加搭載される機能である。
図13は、1つの新規プラグイン機能をMFPに追加搭載する場合の機能間関係管理テーブルの構成を示す図である。新規プラグイン機能のプラグインは、標準搭載機能や標準プラグイン機能に対する他機能関係情報テーブル32を含んで構成されている。機能管理部13は、この他機能関係情報テーブル32を用いて新たな機能間関係管理テーブル31を作成する。
例えば新規プラグイン機能が図7に示した他機能関係情報テーブル32を含んで構成されている場合、機能管理部13は図13に示す機能間関係管理テーブル31を作成する。図13では、新規プラグイン機能がソート機能、非ソート機能に対して「選択解除排他」の関係にあり、2in1集約機能、ダブルコピー機能、ステープル機能に対して「関連なし」の関係にある。
また、ソート機能、非ソート機能、2in1集約機能、ダブルコピー機能の各機能が新規プラグイン機能に対して「選択制限排他」の関係にあり、ステープル機能が新規プラグイン機能に対して「関連なし」の関係にある。
つぎに、複数の新規プラグイン機能をMFPに追加搭載する場合の機能間関係管理テーブルの構成について説明する。複数の新規プラグイン機能をMFP1に追加搭載する場合において、各新規プラグイン機能のプラグインに新規プラグイン機能間の他機能関係情報テーブル32が含まれていない場合、機能管理部13は各新規プラグイン機能間の依存関係を機能間関係管理テーブル31において例えば「関連なし」(互いに他の機能に依存しないことを示す処理依存関係)に設定する。
図14は、新規プラグインに他機能関係情報テーブルが含まれていない場合の機能間関係管理テーブルの構成を示す図である。図14では、新規プラグイン機能P1がソート機能、非ソート機能に対して「選択解除排他」の関係にあり、2in1集約機能、ダブルコピー機能、ステープル機能に対して「関連なし」の関係にある場合を示している。
また、ソート機能、非ソート機能、2in1集約機能、ダブルコピー機能の各機能が新規プラグイン機能P1に対して「選択制限排他」の関係にあり、ステープル機能が新規プラグイン機能P1に対して「関連なし」の関係にある場合を示している。
さらに、ここではプラグインに新規プラグイン機能P1,P2間の他機能関係情報テーブル32が含まれていないので、機能管理部13は新規プラグイン機能P1,P2間の依存関係として、新規プラグイン機能P1が新規プラグイン機能P2に対して「関連なし」となるよう機能間関係管理テーブル31を設定している。
また、図14では新規プラグイン機能P2がソート機能に対して「連動」の関係にあり、非ソート機能、2in1集約機能に対して「選択解除排他」の関係にあり、ダブルコピー機能、ステープル機能に対して「関連なし」の関係にある場合を示している。
また、ソート機能、2in1集約機能、ダブルコピー機能の各機能が新規プラグイン機能P2に対して「関連なし」の関係にあり、非ソート機能、ステープル機能が新規プラグイン機能P2に対して「選択制限排他」の関係にある場合を示している。
さらに、ここではプラグインに新規プラグイン機能P1,P2間の他機能関係情報テーブル32が含まれていないので、機能管理部13は新規プラグイン機能P1,P2間の依存関係として、新規プラグイン機能P2が新規プラグイン機能P1に対して「関連なし」となるよう機能間関係管理テーブル31を設定している。
また、複数の新規プラグイン機能をMFPに追加搭載する場合において、各新規プラグイン機能のプラグインに新規プラグイン機能間の他機能関係情報テーブル32が含まれていない場合、機能管理部13は各新規プラグイン機能間の依存関係をサーバ6などの外部装置からダウンロードしてもよい。
図15は、新規プラグインに他機能関係情報テーブルが含まれていない場合の機能間関係管理テーブルの他の構成を示す図である。図15では、機能管理部13あ新規プラグイン機能P1,P2間の依存関係が互いに「選択解除排他」であることを示す情報(他機能関係情報テーブル32)をサーバ6からダウンロードした場合の機能間関係管理テーブル31の設定を示している。
すなわち、機能管理部13は、新規プラグイン機能P1が新規プラグイン機能P2に対して「選択解除排他」となるよう機能間関係管理テーブル31を設定するとともに、新規プラグイン機能P2が新規プラグイン機能P1に対して「選択解除排他」となるよう機能間関係管理テーブル31を設定している(図15の斜線領域)。
なお、この場合において、サーバ6からの他機能関係情報テーブル32は、新規プラグインP2と同時にダウンロードしてもよいし、新規プラグインP2とは別々にダウンロードしてもよい。
ところで、複数の新規プラグイン機能をMFP1に追加搭載する場合、後にプラグインする新規プラグイン機能のプラグインに新規プラグイン機能間(以前の新規プラグインと後の新規プラグインの間)の他機能関係情報テーブル32を含めてダウンロード、インストールさせてもよい。
図16は、後にプラグインする新規プラグイン機能に新規プラグイン機能間の他機能関係情報テーブルが含まれている場合の機能間関係管理テーブルの構成を示す図である。機能管理部13は、最初の新規プラグイン機能P1を追加搭載する際には、この新規プラグイン機能P1と他の機能(搭載済みの機能)との間の他機能関係情報テーブル32を、新規プラグイン機能P1から抽出して機能間関係管理テーブル31を作成(更新)する。
その後、つぎの新規プラグイン機能P2を追加搭載する際には、機能管理部13は、この新規プラグイン機能P2と他の機能(搭載済みの機能)との間の他機能関係情報テーブル32を、新規プラグイン機能P2から抽出して機能間関係管理テーブル31を作成(更新)する。
新規プラグイン機能P2から抽出した機能間関係管理テーブル31には、先の新規プラグイン機能P1と後の新規プラグイン機能P2との間の他機能関係情報テーブル32が含まれている。このため、機能管理部13は、先の新規プラグイン機能P1と後の新規プラグイン機能P2との間の他機能関係情報テーブル32に基づいて、先の新規プラグイン機能P1と後の新規プラグイン機能P2との間の処理依存関係を設定した機能間関係管理テーブル31を作成する。
図16の機能間関係管理テーブル31では、図15の機能間関係管理テーブル31と同様に、機能管理部13あ新規プラグイン機能P1,P2間の依存関係が互いに「選択解除排他」であることを示す情報をサーバ6からダウンロードした場合の機能間関係管理テーブル31の設定を示している。
図17は、かかるMFP1のハードウェア構成を示すブロック図である。本図に示すように、このMFP1は、コントローラ110とエンジン部(Engine)160とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ110は、MFP1全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部160は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部160には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
コントローラ110は、CPU111と、ノースブリッジ(NB)113と、システムメモリ(MEM−P)112と、サウスブリッジ(SB)114と、ローカルメモリ(MEM−C)117と、ASIC(Application Specific Integrated Circuit)116と、ハードディスクドライブ(HDD)118とを有し、ノースブリッジ(NB)113とASIC116との間をAGP(Accelerated Graphics Port)バス115で接続した構成となる。また、MEM−P112は、ROM(Read Only Memory)112aと、RAM(Random Access Memory)112bとをさらに有する。
CPU11は、MFP1の全体制御をおこなうものであり、NB113、MEM−P112およびSB114からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB113は、CPU111とMEM−P112、SB114、AG1P15とを接続するためのブリッジであり、MEM−P112に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P112は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM112aとRAM112bとからなる。ROM112aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM112bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB114は、NB113とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB114は、PCIバスを介してNB113と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC116は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP115、PCIバス、HDD118およびMEM−C117をそれぞれ接続するブリッジの役割を有する。このASIC116は、PCIターゲットおよびAGPマスタと、ASIC116の中核をなすアービタ(ARB)と、MEM−C117を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部160との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC116には、PCIバスを介してFCU(Fax Control Unit)130、USB(Universal Serial Bus)140、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース150が接続される。
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)118は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP115は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P112に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
なお、本実施形態のMFP1で実行される画像処理機能のプラグイン用のプログラムは、ROM等に予め組み込まれて提供される。
本実施形態のMFP1で実行されるプラグイン用のプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態のMFP1で実行されるプラグイン用のプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のMFP1で実行されるプラグイン用のプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施の形態の〜装置で実行されるプラグイン用のプログラムは、上述した各部(ネットワークI/F11、記憶部12、機能管理部13、オペレーションパネル14)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから〜プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ネットワークI/F11、記憶部12、機能管理部13、オペレーションパネル14が主記憶装置上に生成されるようになっている。
なお、本実施の形態では、画像形成装置がMFP1である場合について説明したが、複数の機能を有する装置であれば何れの画像形成装置であってもよい。例えば、画像形成装置を複合機として機能するLP3などに適用してもよい。 このように実施の形態によれば、新規なプラグインを行なう際に、他機能関係情報テーブル32に基づいて機能間関係管理テーブル31を作成し、この機能間関係管理テーブル31に基づいて、MFP1のコピー処理、コピー機能を選択する際の表示等を行なうので、各機能間の処理依存関係に応じた装置設定を簡易な構成で容易に行なうことが可能となる。