以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
図1は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。図1を参照して、情報処理システム1は、MFP(Multi Function Peripheral)100と、パーソナルコンピューター(以下「PC」という)300と、検証サーバー200と、を含む。
MFP100は、画像形成装置の一例であり、処理対象となるデータを画像処理する画像処理機能、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えている。
PC300は、一般的なコンピューターである。したがって、そのハードウェア構成および機能については周知なので、ここでは説明を繰り返さない。
MFP100およびPC300それぞれは、ローカルエリアネットワーク(LAN)3に接続される。このため、MFP100およびPC300それぞれは、LAN3を介してデータの送受信が可能である。LAN3は、それに接続される装置が限定された閉じた環境となるため、LAN3に接続される複数の装置間、ここではMFP100およびPC300との間で送受信されるデータが外部に漏れないようにセキュリティが確保されている。なお、LAN3の接続形態は有線または無線を問わない。また、LAN3に代えて、セキュリティが確保されるのであれば、公衆交換電話網(Public Switched Telephone Networks)を用いたネットワーク、ワイドエリアネットワーク(WAN)を用いるようにしてもよい。
LAN3は、インターネット5に接続される。検証サーバー200は、インターネット5に接続されている。このため、MFP100およびPC300それぞれは、LAN3を介してインターネット5に接続された検証サーバー200と互いに通信可能である。MFP100およびPC300は内部に配置される装置であるのに対して、検証サーバー200は、MFP100およびPC300に対して外部に配置される装置である。内部とは、セキュリティが確保されている領域を示し、外部とは内部で確保されているセキュリティが確保されていない領域を示す。
本実施の形態における情報処理システム1において、検証サーバー200は、MFP100の提供者によって管理される。MFP100の提供者は、MFP100を製造する製造者、MFP100を販売する販売者、MFP100をメンテナンスするメンテナンス者、MFP100にインストールされたプログラムを開発する開発者を含み、MFP100を使用するユーザーとは異なる。検証サーバー200は、MFP100にインストールされたプログラムを評価するための評価リストを記憶している。評価リストは、複数のジョブ項目それぞれに対応する設定値の組み合わせが異なる複数の組それぞれに評価値を定める。ジョブ項目は、MFP100により実行されるジョブで定められる1以上の処理をMFP100が実行するために設定される1以上の設定値それぞれの種類を示す。ジョブは、1以上の処理を定める。MFP100は、1つのプログラムを実行することにより1以上の処理を実行する場合があり、また、複数のプログラムを実行することにより1つの処理を実行する場合がある。
図2は、本実施の形態における検証サーバーのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、検証サーバー200は、検証サーバー200の全体を制御するための中央演算装置(CPU)201と、CPU201が実行するためのプログラムを記憶するROM(Read Only Memory)202と、CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するハードディスクドライブ(HDD)204と、CPU201をLAN3に接続する通信部205と、情報を表示する表示部206と、ユーザーの操作の入力を受け付ける操作部207と、外部記憶装置208と、を含む。
表示部206は、液晶表示装置(LCD)、有機ELD(Electro-Luminescence Display)等の表示装置である。操作部207は、キーボードなどのハードキーである。また、操作部207は、タッチパネルであってもよい。タッチパネルは、表示部206の上面または下面に表示部206に重畳して設けられる。タッチパネルは、表示部206の表示面中でユーザーにより指示された位置を検出する。
通信部205は、CPU201をインターネット5に接続するためのインターフェースである。通信部205は、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、インターネット5に接続されたコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。検証サーバー200に、MFP100およびPC300それぞれのIP(Internet Protocol)アドレスを登録しておくことにより、検証サーバー200は、MFP100およびPC300それぞれと通信することができ、データの送受信が可能となる。
HDD204は、CPU201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。CPU201は、HDD204に記録されたプログラムを、RAM203にロードして実行する。
外部記憶装置208は、プログラムを記憶したCD-ROM(Compact Disk ROM)209が装着される。CPU201は、外部記憶装置208を介してCD-ROM209にアクセス可能である。CPU201は、外部記憶装置208に装着されたCD-ROM209に記録されたプログラムをRAM203にロードして実行する。なお、CPU201が実行するプログラムを記憶する媒体としては、CD-ROM209に限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROMまたはEPROM(Erasable Programmable ROM)などの半導体メモリであってもよい。
また、CPU201が実行するプログラムは、CD-ROM209に記録されたプログラムに限られず、HDD204に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、LAN3に接続された他のコンピューターが、HDD204に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、検証サーバー200が、LAN3またはインターネット5に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD204に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図3は、本実施の形態におけるMFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、メイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル160とを含む。
自動原稿搬送装置120は、原稿トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿に形成された画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。給紙部150は、給紙トレイに収納された用紙を画像形成部140に搬送する。
画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
メイン回路110は、MFP100の全体を制御するCPU111と、通信インターフェース(I/F)部112と、ROM113と、RAM114と、大容量記憶装置としてのハードディスクドライブ(HDD)115と、ファクシミリ部116と、外部記憶装置117と、を含む。CPU111は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150および操作パネル160と接続され、MFP100の全体を制御する。
ファクシミリ部116は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部116は、受信したファクシミリデータを、HDD115に記憶するとともに、画像形成部140で印刷可能な印刷データに変換して、画像形成部140に出力する。これにより、画像形成部140は、ファクシミリ部116により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部116は、HDD115に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
通信I/F部112は、LAN3にMFP100を接続するためのインターフェースである。通信I/F部112は、TCPまたはUDP等の通信プロトコルで、LAN3に接続されたPC300、またはインターネット5に接続された検証サーバー200と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部130から連続的に送られてくる読取画像を一時的に記憶する。
操作パネル160は、MFP100の上面に設けられる。操作パネル160は、表示部161と操作部163とを含む。表示部161は、例えば、液晶表示装置(LCD)であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。なお、LCDに代えて、画像を表示する装置であれば、例えば、有機ELディスプレイを用いることができる。
操作部163は、タッチパネル165と、ハードキー部167とを含む。タッチパネル165は、静電容量方式である。なお、タッチパネル165は、静電容量方式に限らず、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式等の他の方式を用いることができる。
タッチパネル165は、その検出面が表示部161の上面または下面に表示部161に重畳して設けられる。ここでは、タッチパネル165の検出面のサイズと、表示部161の表示面のサイズとを同じにしている。このため、表示面の座標系と検出面の座標系は同じである。タッチパネル165は、ユーザーが、表示部161の表示面を指示する位置を検出面で検出し、検出した位置の座標をCPU111に出力する。表示面の座標系と検出面の座標系は同じなので、タッチパネル165が出力する座標を、表示面の座標に置き換えることができる。
ハードキー部167は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。タッチパネル165は、表示部161の表示面中でユーザーにより指示された位置を検出する。ユーザーがMFP100を操作する場合は直立した姿勢となる場合が多いので、表示部161の表示面、タッチパネル165の操作面およびハードキー部167は、上方を向いて配置される。ユーザーが表示部161の表示面を容易に視認することができ、ユーザーが指で操作部163を容易に指示することができるようにするためである。
外部記憶装置117は、CPU111により制御され、CD-ROM118、または半導体メモリが装着される。本実施の形態においては、CPU111は、ROM113に記憶されたプログラムを実行する例を説明するが、CPU111は、外部記憶装置117を制御して、CD-ROM118からCPU111が実行するためのプログラムを読出し、読み出したプログラムをRAM114に記憶し、実行するようにしてもよい。
なお、CPU111が実行するためのプログラムを記憶する記録媒体としては、CD-ROM118に限られず、フレキシブルディスク、カセットテープ、光ディスク、ICカード、光カード、半導体メモリ等の媒体でもよい。さらに、CPU111がLAN3に接続されたコンピューターからプログラムをダウンロードしてHDD115に記憶する、または、LAN3に接続されたコンピューターがプログラムをHDD115に書き込みするようにして、HDD115に記憶されたプログラムをRAM114にロードしてCPU111で実行するようにしてもよい。ここでいうプログラムは、CPU111により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図4は、本実施の形態におけるMFPが備えるCPUが有する機能の一例を示すブロック図である。図4に示す機能は、MFP100が備えるCPU111が、ROM113、HDD115またはCD-ROM118に記憶された評価依頼プログラムを実行することにより、CPU111により実現される機能である。評価依頼プログラムは、アプリケーション管理プログラムの一部である。図4を参照して、CPU111は、処理実行部51と、実行条件送信部53と、環境情報送信部55と、更新部57と、を含む。
処理実行部51は、ジョブを実行する。処理実行部51が実行するジョブは、限定するものではないが、原稿読取ジョブ、画像形成ジョブ、データ送受信ジョブ、ファクシミリ送受信ジョブ、データ管理ジョブを含む。原稿読取ジョブは、原稿読取部130で原稿を読み取って得られる画像データをRAM114に記憶する処理を定める。画像形成ジョブは、データの画像を画像形成部140に給紙部150から供給される用紙に画像形成させる処理を定める。データ送受信ジョブは、通信I/F部112を介してLAN3に接続されたコンピューターからデータを受信する処理、または、HDD115または外部記憶装置117に記憶されたデータを通信I/F部112を介してLAN3に接続されたコンピューターに送信する処理を定める。ファクシミリ送受信ジョブは、ファクシミリデータの画像をファクシミリ部116に送信させる処理、または、ファクシミリデータの画像を外部から受信する処理を定める。データ管理ジョブは、HDD115または外部記憶装置117にデータを記憶する処理、HDD115または外部記憶装置117に記憶されたデータを変更または削除する処理、HDD115または外部記憶装置117に記憶されたデータのうちから1以上を処理対象に選択する処理を定める。データを変更する処理は、データを編集する画像処理、フォーマットを変更する画像処理を含む。
また、処理実行部51は、原稿読取ジョブ、画像形成ジョブ、データ送受信ジョブ、ファクシミリ送受信ジョブおよびデータ管理ジョブのうち2以上を組み合わせたジョブを実行可能である。例えば、原稿読取ジョブと画像形成ジョブとを組み合わせることにより、原稿を読み取ったデータの画像を形成する画像処理を定めるコピージョブになる。また、データ受信ジョブと画像形成ジョブとを組み合わせる場合、コンピューターから受信されるデータの画像を形成する画像処理を定めるプリントジョブになる。
実行条件送信部53は、処理実行部51がジョブを実行することに応じて、通信I/F部112を制御して、実行条件を検証サーバー200に送信する。実行条件は、処理実行部51がジョブを実行するための条件であり、ジョブに対して予め定められた複数のジョブ項目それぞれに設定値が定められる。
環境情報送信部55は、処理実行部51がジョブを実行する場合、通信I/F部112を制御して、環境情報を検証サーバー200に送信する。環境情報は、処理実行部51がジョブを実行するために実行したプログラムを識別するためのプログラム識別情報を含む。プログラム識別情報は、バージョンが異なる同一種類のプログラムが複数存在する場合には、そのバージョンを識別するためのバージョン識別情報を含む。環境情報送信部55は、処理実行部51がジョブを実行するために複数のプログラムを実行する場合には、複数のプログラムそれぞれのプログラム識別情報を含む環境情報を検証サーバー200に送信する。
図5は、本実施の形態における検証サーバーが備えるCPUが有する機能の一例を示すブロック図である。図5に示す機能は、検証サーバー200が備えるCPU201が、ROM202、HDD204またはCD-ROM209に記憶されたアプリケーション管理プログラムを実行することにより、CPU201により実現される機能である。
図5を参照して、検証サーバー200が備えるCPU201は、実行条件取得部251と、環境情報取得部253と、組選択部255と、追加部257と、項目追加部259と、評価リスト管理部261と、更新制御部263と、を含む。
実行条件取得部251は、通信部205がMFP100から実行条件を受信すると、実行条件を取得し、組選択部255に出力する。
環境情報取得部253は、通信部205がMFP100から環境情報を受信すると、環境情報を取得し、組選択部255に出力する。環境情報は、実行条件取得部251により取得された実行条件に従ってMFP100がジョブを実行した際に、実行されたプログラムのプログラム識別情報を含む。
評価リスト管理部261は、評価リストを管理する。評価リストは、プログラムに対応し、HDD204に記憶されている。評価リストは、複数のジョブ項目それぞれに対応する設定値の組み合わせが異なる複数の組それぞれに評価値を定める。ジョブ項目は、MFP100により実行されるジョブで定められる1以上の処理をMFP100が実行するために設定される1以上の設定値それぞれの種類を示す。ジョブは、1以上の処理を定める。MFP100は、1つのプログラムを実行することにより1以上の処理を実行する場合があり、また、複数のプログラムを実行することにより1つの処理を実行する場合がある。したがって、プログラムが定まれば評価リストが定まる。
組選択部255は、評価リスト管理部261により管理される複数の評価リストを参照して、環境情報および実行条件で特定される組を選択する。具体的には、組選択部255は、HDD204にプログラムごとに記憶されている評価リストのうちから環境情報に含まれるプログラム識別情報で特定されるプログラムに対応する評価リストを特定する。さらに、組選択部255は、特定された評価リストに含まれる1以上の組のうちから、実行条件と同じ設定値を定めた組を選択する。組選択部255は、選択結果を追加部257および項目追加部259に出力する。
追加部257は、組選択部255から入力される選択結果が、実行条件と同じ設定値を定めた組が選択されなかったことを示す場合、実行条件で定められる設定値を含む新たな組を実行条件組に決定し、実行条件組を評価リストに追加する。ここで、実行条件で定められるが、評価リストで定められていない設定値を特定設定値という。さらに、追加部257は、評価リストで定められる複数のジョブ項目のうち特定設定値が設定される特定ジョブ項目以外の1以上のジョブ項目に設定されている設定値が実行条件で定められる組と異なる組の特定ジョブ項目に特定設定値を設定した新たな組のすべてを特定設定値同一組に決定し、特定設定値同一組の全てを評価リストに追加する。特定設定値同一組は、ジョブ項目のうち特定設定値が設定される特定ジョブ項目以外の1以上のジョブ項目に設定されている設定値の組み合わせの数と同じ数である。追加部257が、評価リストに新たな組である実行条件組または特定設定値同一組を追加した段階では、新たな組には評価値は設定されていない。
項目追加部259は、組選択部255から入力される選択結果が、実行条件と同じ設定値を定めた組が選択されなかったことを示す場合であって、実行条件によって定められる複数の設定値のうちに評価リストで定められていない新たなジョブ項目に対する設定値が定められている場合、新たなジョブ項目を、追加項目に決定し、追加項目を評価リストに追加する。項目追加部259は、追加項目の設定値として実行条件で定められる設定値を設定するとともに、評価値を削除する。さらに、項目追加部259は、評価リストに含まれる複数の組それぞれの追加項目が実行条件と異なる複数の新たな組を項目追加組に決定し、複数の項目追加組の全てを評価リストに追加する。項目追加組の数は、評価リストに含まれる複数の組に追加項目に設定可能な設定値の種類の数を乗じた数と同じある。項目追加部259が、評価リストに新たな組である追加項目組を追加した段階では、新たな組には評価値は設定されていない。
評価リスト管理部261は、評価リストにおいて評価値が設定されていない新たな組を、プログラムを開発する開発ユーザーに通知する。開発ユーザーは、評価リストに含まれ、評価値が設定されていない組で示される複数のジョブ項目ごとの設定値に従って、プログラムを実行させ、プログラムの動作をチェックする。開発ユーザーは動作チェックの結果に基づいて、評価リストを更新するので、評価リスト管理部261は、開発ユーザーによる更新操作に従って、新たな組の評価値に動作チェックの結果が設定される。ここでは、評価リスト管理部261は、プログラムが正常に動作する場合に正常を示す情報を評価値に設定し、プログラムが正常に動作しない場合に異常を示す情報を評価値に設定する。
プログラムが正常に動作しない場合は、プログラムにバグがある場合、または、ジョブで設定される設定値とは別の環境設定値に不備がある場合である。環境設定値は、例えば、MFP100の管理者によりMFP100に設定され、管理者以外のユーザーが変更することのできない設定値である。開発ユーザーは、プログラムにバグがある場合にはバグを解消した更新プログラムを作成する場合がある。開発ユーザーは、更新プログラムを作成した場合には、更新プログラムの動作をチェックし、正常に動作することを確認すると、更新プログラムをHDD204に格納するとともに評価リストを更新する。評価リスト管理部261は、開発ユーザーによる評価リストの更新操作に従って、新たな組の評価値に更新プログラムが正常に動作することを示す情報を評価値に設定するとともに、更新制御部263に更新指示を出力する。この場合における更新指示は、更新プログラムを識別するためのプログラム識別情報を含む。
また、開発ユーザーは、環境設定値に不備がある場合には環境設定値に対して最適な設定値を決定する場合がある。開発ユーザーは、環境設定値に対して最適な設定値を決定する場合には、環境設定値を最適な設定値に変更した状態でプログラムの動作をチェックし、正常に動作することを確認すると、環境設定値をHDD204に格納するとともに評価リストを更新する。評価リスト管理部261は、開発ユーザーによる評価リストの更新操作に従って、新たな組の評価値にプログラムが正常に動作することを示す情報を評価値に設定するとともに、更新制御部263に更新指示を出力する。この場合における更新指示は、環境変数の最適な設定値を含む。
更新制御部263は、更新指示が入力されることに応じて、MFP100を更新する。更新制御部263は、更新指示に更新プログラムが含まれる場合には、MFP100を制御して更新プログラムをインストールさせる。また、更新制御部263は、更新指示に環境変数の最適な設定値が含まれる場合には、MFP100を制御して、環境変数を最適な設定値で更新させる。また、MFP100と同一のプログラムがインストールされている別の装置が存在する場合には、MFP100に加えて、別の装置を更新する。
図4に戻って、更新部57は、検証サーバー200による指示にしたがって、更新プログラムをインストールする。具体的には、更新部57は、検証サーバー200から受信される更新プログラムで、インストールされているプログラムを更新する。更新指示が環境変数の設定値を含む場合、更新部57は、環境変数を更新する。また、更新部57は、検証サーバー200から受信される最適な設定値で環境変数を更新する。
図6は、評価リストの一例を示す図である。図6に示す評価リスト500は、画像形成プログラムに対応する評価リストを示す。画像形成プログラムは、MFP100で画像形成ジョブが実行される場合に、CPU111により実行されるプログラムである。画像形成ジョブが実行される場合に、実行条件として、カラー/モノクロ、給紙口、用紙サイズの4つのジョブ項目に設定値が設定される。
評価リスト500は、カラー/モノクロ、給紙口、用紙サイズの4つのジョブ項目それぞれに対応する設定値の組み合わせが異なる16の組を含み、それぞれに評価値を定める。評価値は、「〇」は評価済であることを示し、「×」は不具合が存在することを示し、「◎」は修正済であることを示し、「□」は修正が不可能であることを示す。
図7は、更新後の評価リストの一例を示す第1の図である。図7に示す評価リスト500Aは、図6に示した評価リスト500を更新した評価リストを示している。実行条件として、カラー/モノクロのジョブ項目に設定値「カラー」が設定され、給紙口のジョブ項目に設定値「上段」が設定され、用紙サイズのジョブ項目に設定値「B6」が設定されて、画像形成ジョブが実行される場合を例に示している。
この場合、カラー/モノクロのジョブ項目が設定値「カラー」、給紙口のジョブ項目が設定値「上段」、用紙サイズのジョブ項目が設定値「B6」とする実行条件組が追加されている。実行条件組に対する評価値には何も設定されていない。
また、3つの特定設定値同一組が追加されている。3つの特定条件組それぞれに対する評価値には何も設定されていない。3つの特定条件組は、実行条件組と、「給紙口」のジョブ項目の設定値のみが異なる第1組と、「カラー/モノクロ」のジョブ項目の設定値のみが異なる第2組と、「カラー/モノクロ」および「給紙口」のジョブ項目それぞれの設定値が異なる第3組と、を含む。第1組~第3組それぞれにおいて、「用紙サイズ」のジョブ項目の設定値は「B6」であり、実行条件組と同じである。
図8は、更新後の評価リストの一例を示す第2の図である。図8に示す評価リスト500Bは、図6に示した評価リスト500を更新した評価リストを示している。実行条件として、カラー/モノクロのジョブ項目に設定値「カラー」が設定され、片面/両面のジョブ項目に設定値「片面」が設定され、給紙口のジョブ項目に設定値「上段」が設定され、用紙サイズのジョブ項目に設定値「A3」が設定されて、画像形成ジョブが実行される場合を例に示している。この場合、実行条件におけるジョブ項目は、片面/両面のジョブ項目が、評価リスト500のジョブ項目よりも多い。このため、評価リスト500Bは、評価リスト500が有するカラー/モノクロ、給紙口、用紙サイズの3つのジョブ項目に、片面/両面の追加項目が追加されている。
また、評価リスト500Bは、片面/両面の追加項目に実行条件と同じ設定値「片面」が設定されている組に加えて、片面/両面の追加項目に実行条件と異なる設定値「両面」が設定された項目追加組を含む。図8において、項目追加組を斜線のハッチングで示している。
図9は、アプリケーション管理処理の流れの一例を示すフローチャートである。アプリケーション管理処理は、検証サーバー200が備えるCPU201が、ROM202、HDD204またはCD-ROM209に記憶されたアプリケーション管理プログラムを実行することにより、CPU201により実現される機能である。
図9を参照して、CPU201は、MFP100から環境変数を取得したか否かを判断する(ステップS01)。通信部205がMFP100から環境変数を受信したならば、受信された環境変数を取得し、処理をステップS02に進めるが、そうでなければ処理をステップS14に進める。ステップS02においては、環境変数に基づいて、評価リストを特定する。HDD204に記憶されている複数の評価リストのうちから、環境変数に含まれるプログラム識別情報で特定されるプログラムに対応する評価リストを特定する。環境変数が複数のプログラム識別情報を含む場合、複数のプログラム識別情報でそれぞれ特定される複数のプログラムのすべてに対応する評価リストを特定する。
次のステップS03においては、MFP100から実行条件を取得する。通信部205がMFP100から実行条件を受信すると、受信された実行条件を取得する。そして、CPU201は、評価リストで定められる複数の組のうちに、実行条件と同一の組が存在するか否かを判断する(ステップS04)。実行条件と同一の組が存在しなければ処理をステップS05に進めるが、実行条件と同一の組が存在するならば処理をステップS01に戻す。実行条件で定められる組は、実行条件で定められる1以上の設定値にそれぞれ対応する1以上のジョブ項目を含む組である。
ステップS05においては、実行条件は追加項目を含むか否かを判断する。追加項目は、実行条件で定められる組に存在し、評価リストに存在しないジョブ項目である。追加項目が実行条件に含まれるならば処理をステップS10に進めるが、そうでなければ処理をステップS06に進める。
ステップS06においては、実行条件組を生成し、処理をステップS07に進める。実行条件組は、1以上のジョブ項目ごとに、実行条件で定められる1以上の設定値を含む。次のステップS07においては、評価リストに実行条件組を追加し、処理をステップS08に進める。ステップS08においては、特定設定値同一組を決定し、処理をステップS09に進める。特定設定値同一組は、評価リストに含まれる1以上の組のうち、特定設定値が設定される特定ジョブ項目以外の1以上のジョブ項目に設定されている設定値が実行条件で定められる組と異なる組の特定ジョブ項目に特定設定値を設定した組である。ステップS09においては、評価リストに特定設定値同一組を追加し、処理をステップS01に戻す。
ステップS10においては、評価リストに追加項目を追加し、処理をステップS11に進める。この場合、追加項目が追加された評価リストに含まれるすべての組の評価値を削除する。ステップS11においては、評価リストに含まれる複数の組それぞれの追加項目を実行条件と同じ設定値を設定し、処理をステップS12に進める。
ステップS12においては、項目追加組を生成する。評価リストに含まれる複数の組それぞれの追加項目に実行条件と異なる設定値を設定した新たな組を項目追加組として生成する。そして、生成された複数の項目追加組を評価リストに追加し(ステップS13)、処理をステップS01に戻す。
ステップS14においては、操作部207が、ユーザーにより入力される評価値更新操作を受け付けたか否かを判断する。評価値更新操作は、評価リストに含まれる1以上の組の評価値の項目に評価値を設定する操作である。評価値更新操作を受け付けたならば処理をステップS15に進めるが、そうでなければ処理をステップS16に進める。ステップS15においては、評価値更新操作に従って、評価リストに含まれる複数の組のうちからユーザーにより指定された組の設定値の項目に、ユーザーにより指定された評価値を設定し、処理をステップS01に戻す。
ステップS16においては、プログラムが更新されたか否かを判断する。MFP100にインストールされているプログラムのいずれかが更新されたか否かを判断する。プログラムが更新されたならば処理をステップS17に進めるが、そうでなければ処理をステップS19に進める。ステップS17においては、装置を特定する。更新されたプログラムが更新される前のプログラムがインストールされている装置を特定する。そして、特定された装置に、更新後のプログラムで更新を指示し(ステップS18)、処理をステップS01に戻す。具体的には、特定された装置を制御して、更新後のプログラムをインストールさせる。
ステップS19においては、環境変数が更新されたか否かを判断する。MFP100に設定される環境変数として検証サーバー200において定められた環境変数が更新されたか否かを判断する。環境変数が更新されたならば処理をステップS20に進めるが、そうでなければ処理をステップS01に戻す。ステップS20においては、装置を特定する。更新前の環境変数が設定されている装置を特定する。そして、特定された装置に、更新後の環境変数での更新を指示し(ステップS21)、処理をステップS01に戻す。具体的には、特定された装置を制御して、更新後の環境変数を設定させる。
以上説明したように、本実施の形態における検証サーバー200は、画像形成装置として機能するMFP100が実行するジョブに対して予め定められた複数のジョブ項目それぞれに対応する設定値の組み合わせが異なる複数の組それぞれに評価値を定めた評価リストを記憶しており、ジョブを実行する画像形成装置から実行条件を取得し、実行条件と同じ設定値を定めた組が評価リストに存在しない場合、実行条件で定められる複数の設定値の組を評価リストに追加する。このため、ユーザーがMFP100に実行させたジョブに対応した条件が評価リストに追加されるので、ユーザーの使用方法に対応した評価リストが生成される。また、ユーザーがMFP100に実行させないジョブに対応した条件は、評価リストに追加されない。したがって、MFP100の動作を評価するための条件をMFP100がユーザーにより使用される実績に基づいて決定した評価リストを生成することができる。
また、検証サーバー200は、MFP100から環境情報を取得し、環境情報で示されるプログラムに対応する評価リストを特定するので、MFP100で実行されるプログラムを評価するための条件を決定することができ、複数種類の画像形成装置それぞれに対応する評価リストを生成することができる。
また、検証サーバー200は、MFP100から取得された実行条件によって複数のジョブ項目にそれぞれ定められた複数の設定値のうちに評価リストで定められていない特定設定値が存在する場合、複数のジョブ項目のうち特定設定値が設定される特定ジョブ項目以外の1以上のジョブ項目に設定されている設定値が実行条件で定められる組と異なる組の特定ジョブ項目に特定設定値を設定したすべての組を評価リストに追加する。このため、ユーザーにより使用される可能性の高い条件を評価リストに追加することができる。
さらに、検証サーバー200は、MFP100から取得された実行条件によって定められる複数の設定値のうちに評価リストで定められていない新たなジョブ項目に対する設定値が定められている場合、評価リストに新たなジョブ項目を追加項目として追加し、評価リストに含まれる複数の組それぞれの追加項目に実行条件によって追加項目に設定されている設定値を設定するとともに、評価リストに含まれる複数の組それぞれの追加項目に実行条件によって追加項目に設定されている設定値と異なる設定値を設定した複数の項目追加組を評価リストに追加する。このため、MFP100に、古いバージョンのプログラムを更新した新たなプログラムがインストールされる場合に、その更新後の新たなプログラムに対応する評価リストを生成することができる。
また、検証サーバー200は、評価リストで定められた複数の組のうちで評価値が定められていない未設定組に対して、評価値がユーザーにより設定される場合、未設定組に評価値が定められたことを通知するので、ジョブを実行させるために設定可能な設定値をユーザーに知らせることができる。
また、検証サーバー200は、評価リストで定められた複数の組のうちで評価値が定められていない未設定組に対して、評価値が設定される場合であって、その組に対応するプログラムが更新される場合、更新後のプログラムをMFP100に送信する。このため、更新後のプログラムをMFP100に実行させることができるので、それまで設定できなかった設定値のジョブをMFP100が実行可能な状態にすることができる。
また、検証サーバー200は、MFP100にインストールされたプログラムと同じプログラムがインストールされた別の画像形成装置が存在する場合、MFP100にインストールした更新後のプログラムと同じ更新後のプログラムを別の画像形成装置にインストールする。このため、更新後のプログラムを別の画像形成装置に実行させることができる。したがって、MFP100がユーザーにより使用される実績に基づいて、別の画像形成装置にインストールされているプログラムを更新することができる。
なお、上述した実施の形態においては、検証サーバー200に評価リストを記憶するようにしたが、評価リストを記憶する装置として、MFP100またはLAN3に接続された内部サーバーとしてもよい。この場合には、MFP100または内部サーバーにおいて、検証サーバー200に記憶されている評価リストと同じ評価リストが記憶される。換言すれば、検証サーバー200において評価リストが更新されると、更新後の評価リストがMFP100または内部サーバーに記憶される。この場合、MFP100を操作するユーザーは、評価リストを参照することができるので、MFP100に実行させることが可能なジョブを知ることができる。
また、上述した実施の形態においては、サーバーの一例として検証サーバー200を示したが、図9に示したアプリケーション管理処理を、検証サーバー200に実行させるアプリケーション管理方法、また、そのアプリケーション管理方法を検証サーバー200が備えるCPU201に実行させるアプリケーション管理プログラムとして発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。