(57)【要約】【課題】テストによって、アプリケーションが不正なものか否かを確認しつつ、テスト結果に異常がないとメーカが確認した状態から改ざんされたアプリケーションのパッケージングを防ぐ。【解決手段】画像形成装置と、第１のコンピュータと、画像形成装置から出力されたハッシュ値と、パッケージングしようとする開発中アプリケーションのハッシュ値が一致する場合、パッケージングする第２のコンピュータを含む画像形成システムの画像形成装置であり、画像形成装置は、開発中アプリケーションの入力を受け付ける入力部と、開発中アプリケーションと監視ソフトを記憶する記憶部と、開発中アプリケーションと、監視ソフトを動作させ、監視ソフトによるテスト結果を把握し、開発中アプリケーションのハッシュ値を演算する制御部と、テスト結果とハッシュ値を出力する出力部と、を備える。【選択図】図３
2012015749.tif 000002
【特許請求の範囲】
【請求項１】
開発中アプリケーションの画像形成装置への入力を受け付ける入力部と、
入力された前記開発中アプリケーションを記憶するとともに、実行された前記開発中アプリケーションの動作を監視し、テストする監視ソフトを記憶する記憶部と、
前記開発中アプリケーションと、前記監視ソフトを動作させ、前記監視ソフトによるテスト結果を把握し、前記開発中アプリケーションのハッシュ値を演算する制御部と、
前記テスト結果と前記ハッシュ値を出力する出力部と、を備える画像形成装置と、
前記画像形成装置から出力された開発中アプリケーションのテスト結果と前記ハッシュ値を取得する第１データ通信部を有する第１のコンピュータと、
前記開発中アプリケーションを記憶するとともに前記第１のコンピュータから前記ハッシュ値を取得する第２データ通信部を有し、前記ハッシュ値と、前記開発中アプリケーションを対象として求めたハッシュ値が一致する場合、前記開発中アプリケーションを前記画像形成装置にインストールできるようにパッケージングする第２のコンピュータと、
を含む画像形成システムにおける画像形成装置。
【請求項２】
前記制御部は、前記テスト結果と前記ハッシュ値の暗号化を行い、暗号化された前記テスト結果と前記ハッシュ値を前記出力部から出力させることを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記画像形成装置は、前記入力部に接続された外部記憶装置内に記憶される前記開発中アプリケーションを取り込んで前記記憶部に記憶し、前記テスト結果と前記ハッシュ値を前記出力部に接続された前記外部記憶装置に記憶させることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記記憶部は、前記監視ソフトによるテスト終了後、前記開発中アプリケーションを消去することを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記記憶部は、少なくともハードディスクドライブ、ランダムアクセスメモリを含み、
前記制御部は、データ及びプログラムの処理を行うための演算部を含み、前記監視ソフトにより、前記開発中アプリケーションの前記ハードディスクドライブ及び前記ランダムアクセスメモリにおける占有容量、及び、前記演算部の負荷率のテストを行い、
前記出力部は、前記占有容量及び前記負荷率をテスト結果として出力することを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
前記記憶部は、予め用意され、動作保証された命令、関数、ルーチンを記憶し、
前記制御部は、前記監視ソフトにより、前記開発中アプリケーションが予め用意され、動作保証された命令、関数、ルーチン以外の命令、関数、ルーチンを使用するか否かのテストを行い、
前記出力部は、命令、関数、ルーチンのテスト結果を出力することを特徴とする請求項１乃至５のいずれか１項に記載の画像形成装置。
【請求項７】
少なくとも画像形成装置と、第１のコンピュータと、第２のコンピュータで構成され、
前記画像形成装置は、
開発中アプリケーションの前記画像形成装置への入力を受け付ける入力部と、入力された前記開発中アプリケーションを記憶するとともに、実行された前記開発中アプリケーションの動作を監視し、テストする監視ソフトを記憶する記憶部と、前記開発中アプリケーションと、前記監視ソフトを動作させ、前記監視ソフトによるテスト結果を把握し、前記開発中アプリケーションのハッシュ値を演算する制御部と、前記テスト結果と前記ハッシュ値を出力する出力部と、を備え、
前記第１のコンピュータは、
前記画像形成装置が出力した前記テスト結果と前記ハッシュ値を取得する第１データ通信部を有し、取得した前記テスト結果に基づき、前記開発中アプリケーションにエラーが含まれるか否かを判断し、エラー部分が含まれていない場合、少なくとも、前記ハッシュ値を前記第１データ通信部から出力し、
前記第２のコンピュータは、
前記開発中アプリケーションを記憶するとともに前記第１のコンピュータから前記ハッシュ値を取得する第２データ通信部を有し、前記ハッシュ値と、前記開発中アプリケーションを対象として求めたハッシュ値が一致する場合、前記開発中アプリケーションを前記画像形成装置にインストールできるようにパッケージングする第２のコンピュータと、を含むことを特徴とする画像形成システム。
【請求項８】
前記第１のコンピュータは、前記開発中アプリケーションにエラーが含まれていないと判断した場合、アプリケーションコードを生成し、前記ハッシュ値とともに、前記アプリケーションコードを前記第１データ通信部から出力し、
前記第２のコンピュータは、前記第１のコンピュータが生成した前記アプリケーションコードを読み込んだことを条件として、前記開発中アプリケーションをパッケージングすることを特徴とする請求項７記載の画像形成システム。
【請求項９】
請求項７又は請求項８記載の画像形成システムにおける第１のコンピュータであることを特徴とするコンピュータ。
【請求項１０】
請求項７又は請求項８記載の画像形成システムにおける第２のコンピュータであることを特徴とするコンピュータ。
【請求項１１】
画像形成装置の入力部が開発中アプリケーションの入力を受け付けるステップと、
前記画像形成装置の記憶部が入力された前記開発中アプリケーションを記憶するステップと、
前記開発中アプリケーションを動作させるステップと、
前記制御部が、前記開発中アプリケーションの動作を監視し、テストする監視ソフトを動作させ、前記監視ソフトによるテスト結果を把握するステップと、
前記制御部が、前記開発中アプリケーションのハッシュ値を演算するステップと、
前記画像形成装置の出力部が前記テスト結果と前記ハッシュ値を出力するステップと、
第１のコンピュータが、第１データ通信部を用い、前記画像形成装置が出力した前記テスト結果と前記ハッシュ値を取得するステップと、
前記第１のコンピュータが、取得した前記テスト結果に基づき、前記開発中アプリケーションにエラーが含まれるか否かを判断するステップと、
前記第１のコンピュータが、エラーが含まれていない場合、前記ハッシュ値を前記第１データ通信部から出力するステップと、
前記第２のコンピュータが、第２データ通信部を用い、前記ハッシュ値を取得するステップと、
前記第２のコンピュータが記憶し、前記画像形成装置にインストールできるようにパッケージングしようとする前記開発中アプリケーションのハッシュ値を求めるステップと、
前記第２のコンピュータが、取得した前記ハッシュ値と、求めたハッシュ値の２つのハッシュ値が一致する場合、ハッシュ値を求めた前記開発中アプリケーションを前記画像形成装置にインストールできるようにパッケージングするステップと、を含む画像形成システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを追加して記憶する複合機、複写機、プリンタ、ＦＡＸ装置等の画像形成装置に関する。又、この画像形成装置を含む画像形成システム及び画像形成システムの制御方法に関する。
【背景技術】
【０００２】
通常、コピーやプリンタ、ファクシミリ、スキャナといった基本的な機能に関するプログラムやアプリケーションは、画像形成装置のメーカが作成する。そして、メーカのアプリケーションが画像形成装置に搭載される。しかし、近年、画像形成装置の利便性向上のため、メーカ以外の者が独自に画像形成装置用のアプリケーションの開発を望む場合がある。この要望に応えるため、メーカは、ＳＤＫ（Software Development Kit）と呼ばれる画像形成装置のアプリケーション開発用ツールを販売、提供することがある。そして、第三者は、開発者として所望の処理を実行するカスタムアプリケーションを開発する。
【０００３】
第三者が作成するアプリケーションの例を挙げると、例えば、スキャナ機能にＯＣＲ技術（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ   Ｒｅｃｏｇｎｉｔｉｏｎ、光学文字認識技術）を連携させ、スキャンした名刺をデータベース化するアプリケーションがある。又、スキャンした紙文書を電子文書化するアプリケーションがある。このように、第三者は、アプリケーションを作成することで、画像形成装置の機能を基礎として、画像形成装置の機能拡張を実現する。しかし、第三者が作成したアプリケーションが正常に動作するとは限らず、エラーが含まれる場合もある。そこで、ハードウェアやプログラムが適正な動作を行っているかを監視する機能を有する画像形成装置が特許文献１に記載されている。
【０００４】
具体的に、特許文献１には、画像像形成処理で使用されるハードウェア資源と、画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うアプリケーションのプロセスと、アプリケーションと前記ハードウェア資源との間に介在し、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の獲得要求、管理、実行制御並びに画像形成処理を行う複数のコントロールサービスのプロセスを含むプラットホームとを備えた画像形成装置であって、コントロールサービスまたはアプリケーションのプロセスとの間でプロセス間通信を行うことによって、コントロールサービスのソフトウェアエラーを検知する診断手段を備えた画像形成装置が記載されている。この構成により、コントロールサービスやアプリケーションなどのソフトウェアのエラーを検知し、障害が生じた場合の原因究明を正確かつ速やかに行おうとする（特許文献１：請求項１、段落［０００７］等参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−０７８６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、メーカ以外の第三者でも、アプリケーションを開発し、画像形成装置にインストールできるように、ＳＤＫが提供される。そして、画像形成装置で問題が生ずるようなアプリケーションの開発を防ぐ等の観点から、ＳＤＫは、メーカが開発を許可した者に提供される。言い換えると、メーカが認めた開発者のみアプリケーションの開発が行える。更に、メーカは、開発者に開発されたアプリケーションに問題があるか（エラーが含まれるか）のテスト結果を確認できるようにすべきであるという問題がある。
【０００７】
そして、例えば、開発者によって開発されたアプリケーションを複合機に最終的にインストールできるようにするため、ＳＤＫには、バイナリデータ、データファイル、構成ファイル等をバンドルするパッケージング用のプログラムが含まれる。そして、テストに異常がなければ、メーカから開発者にパッケージングの際に入力が求められるアプリケーションコードが与えられる場合がある。この場合、アプリケーションコードがあれば、開発者は開発したアプリケーションのパッケージングを行える。パッケージングを終えることで、開発者は開発したアプリケーションの販売、頒布等を行えるようになる。
【０００８】
しかし、この従来の方法では、アプリケーションコードがあればパッケージングできるので、テストされたアプリケーションを改ざんしたアプリケーションをパッケージングすることができる。改ざんで、アプリケーションを実行した際、画像形成装置でエラーが含まれるような命令等が追加される可能性がある。従って、改ざんを加えたアプリケーションのパッケージングを防止すべきという問題がある。
【０００９】
特に、ＳＤＫが、メーカが認めた開発者以外の第三者に流出する場合がある。流出があった場合、例えば、既にパッケージング用のアプリケーションコード等が発行されていれば、メーカは、第三者によって作成、販売されるアプリケーションに対する管理を全く行えなくなる。第三者に悪意があり、意図的にエラーが含まれるようなアプリケーションやアプリケーションを入手した者の情報が漏洩されるような不正なアプリケーションのパッケージングがなされることもあり得る。従って、無許可の悪意の第三者による無制限なアプリケーションの開発、販売を防ぐためにも、テスト結果に異常がないとメーカが確認した状態から改ざんされたアプリケーションのパッケージングを防ぐ必要がある。
【００１０】
ここで、特許文献１によれば、画像形成装置に搭載されるアプリケーションのエラーの検知等を行うことができる。しかし、パッケージング時点での改ざんについての言及はない。従って、上記の改ざんの問題に対応できない。尚、特許文献１記載の発明では、診断を行うには、各アプリケーションに診断関数を組み込んでおく必要がある（例えば、特許文献１：請求項２、段落［００５５］等参照）。しかし、特許文献１の発明では診断関数がアプリケーションに含まれていない場合の扱いについて示されておらず、又、ソフトウェアのエラーの診断関数は、具体的に何を診断するのか、どのようなエラーを検知するのか、全く記載されておらず、ソフトウェアのエラーを検知できるか不明である。
【００１１】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、テストによって、アプリケーションが不正なものか否かを確認しつつ、テスト結果に異常がないとメーカが確認した状態から改ざんされたアプリケーションのパッケージングを防ぐことを課題とする。
【課題を解決するための手段】
【００１２】
上記課題解決のため、請求項１に係る画像形成装置は、開発中アプリケーションの画像形成装置への入力を受け付ける入力部と、入力された前記開発中アプリケーションを記憶するとともに、実行された前記開発中アプリケーションの動作を監視し、テストする監視ソフトを記憶する記憶部と、前記開発中アプリケーションと、前記監視ソフトを動作させ、前記監視ソフトによるテスト結果を把握し、前記開発中アプリケーションのハッシュ値を演算する制御部と、前記テスト結果と前記ハッシュ値を出力する出力部と、を備える画像形成装置と、前記画像形成装置から出力された開発中アプリケーションのテスト結果と前記ハッシュ値を取得する第１データ通信部を有する第１のコンピュータと、前記開発中アプリケーションを記憶するとともに前記第１のコンピュータから前記ハッシュ値を取得する第２データ通信部を有し、前記ハッシュ値と、前記開発中アプリケーションを対象として求めたハッシュ値が一致する場合、前記開発中アプリケーションを前記画像形成装置にインストールできるようにパッケージングする第２のコンピュータと、を含む画像形成システムにおける画像形成装置であることとした。
【００１３】
この構成によれば、画像形成装置は、テスト結果とハッシュ値を出力する。これによりパッケージングを行う際の開発中アプリケーションのハッシュ値と、テストを実施する画像形成装置が出力したハッシュ値を比較することができる。従って、テストが行われた時点から、パッケージングを行おうとするまでの間に、開発中アプリケーションに対し改ざんが行われたかを確認することができる。又、画像形成装置の出力したテスト結果を第１のコンピュータで確認できる。従って、開発中アプリケーションに問題があるか否か（エラーを含む不正なアプリケーションか否か）も確認することができる。尚、開発中アプリケーションとは、開発中であり、最終的なパッケージングがなされず、開発完了に至っていないアプリケーションである。
【００１４】
又、請求項２に係る発明は、請求項１の発明において、前記制御部は、前記テスト結果と前記ハッシュ値の暗号化を行い、暗号化された前記テスト結果と前記ハッシュ値を前記出力部から出力させることとした。
【００１５】
この構成によれば、画像形成装置は、テスト結果とハッシュ値を暗号化して出力部から第１のコンピュータに出力する。これにより、悪意のある開発者にとって都合がよくなるようなテスト結果とハッシュ値自体の改ざんを防ぐことができる。従って、パッケージングを行おうとする開発中アプリケーションに改ざんがなされたか否かを、間違いなく判断することができる。又、テスト結果の信頼性が向上する。
【００１６】
又、請求項３に係る発明は、請求項１又は２の発明において、前記画像形成装置は、前記入力部に接続された外部記憶装置内に記憶される前記開発中アプリケーションを取り込んで前記記憶部に記憶し、前記テスト結果と前記ハッシュ値を前記出力部に接続された前記外部記憶装置に記憶させることとした。
【００１７】
この構成によれば、入力部に接続された外部記憶装置内に記憶される開発中アプリケーションが記憶部に記憶され、テスト結果とハッシュ値を出力部に接続された外部記憶装置に記憶される。これにより、例えば、ＵＳＢメモリのような外部記憶装置を接続するだけで、画像形成装置への開発中アプリケーションのインストールが行われ、テスト結果とハッシュ値が外部記憶装置に格納される。従って、画像形成装置への開発中アプリケーションのインストールやテスト結果やハッシュ値の第１のコンピュータへの引き渡しを容易に行うことができる。
【００１８】
又、請求項４に係る発明は、請求項１乃至３の発明において、前記記憶部は、前記監視ソフトによるテスト終了後、前記開発中アプリケーションを消去することとした。
【００１９】
この構成によれば、記憶部は、監視ソフトによるテスト終了後、開発中アプリケーションを消去する。これにより、開発中アプリケーションが不十分なものであっても、画像形成装置の動作に影響を与えることを防ぐことができる。
【００２０】
又、請求項５に係る発明は、請求項１乃至４の発明において、前記記憶部は、少なくともハードディスクドライブ、ランダムアクセスメモリを含み、前記制御部は、データ及びプログラムの処理を行うための演算部を含み、前記監視ソフトにより、前記開発中アプリケーションの前記ハードディスクドライブ及び前記ランダムアクセスメモリにおける占有容量、及び、前記演算部の負荷率のテストを行い、前記出力部は、前記占有容量及び前記負荷率をテスト結果として出力することとした。
【００２１】
この構成によれば、出力部は、開発中アプリケーションのハードディスクドライブ及びランダムアクセスメモリにおける占有容量、及び、演算部の負荷率をテスト結果として出力する。これにより、開発中アプリケーションのハードディスクドライブやランダムアクセスメモリの占有容量が大きすぎ、データのオーバーフローや、他のアプリケーションの動作の妨げになる等の弊害の発生の可能性を確認することができる。従って、開発中アプリケーションに不正な部分がないかを確認することができる。
【００２２】
又、請求項６に係る発明は、請求項１乃至５の発明において、前記記憶部は、予め用意され、動作保証された命令、関数、ルーチンを記憶し、前記制御部は、前記監視ソフトにより、前記開発中アプリケーションが予め用意され、動作保証された命令、関数、ルーチン以外の命令、関数、ルーチンを使用するか否かのテストを行い、前記出力部は、命令、関数、ルーチンのテスト結果を出力することとした。
【００２３】
この構成によれば、出力部は、動作保証された命令、関数、ルーチン以外の命令、関数、ルーチンを使用するか否かのテスト結果を出力する。開発中アプリケーションが、動作保証がない命令等を使用すれば、画像形成装置のフリーズ等、画像形成装置の動作に悪影響を与える場合がある。従って、開発中アプリケーションが、動作保証がない命令等を使用するか否かを確認することにより、開発中アプリケーションに不正な部分がないかを確認することができる。
【００２４】
又、請求項７に係る画像形成システムは、少なくとも画像形成装置と、第１のコンピュータと、第２のコンピュータで構成され、前記画像形成装置は、開発中アプリケーションの前記画像形成装置への入力を受け付ける入力部と、入力された前記開発中アプリケーションを記憶するとともに、実行された前記開発中アプリケーションの動作を監視し、テストする監視ソフトを記憶する記憶部と、前記開発中アプリケーションと、前記監視ソフトを動作させ、前記監視ソフトによるテスト結果を把握し、前記開発中アプリケーションのハッシュ値を演算する制御部と、前記テスト結果と前記ハッシュ値を出力する出力部と、を備え、前記第１のコンピュータは、前記画像形成装置が出力した前記テスト結果と前記ハッシュ値を取得する第１データ通信部を有し、取得した前記テスト結果に基づき、前記開発中アプリケーションにエラーが含まれるか否かを判断し、エラー部分が含まれていない場合、少なくとも、前記ハッシュ値を前記第１データ通信部から出力し、前記第２のコンピュータは、前記開発中アプリケーションを記憶するとともに前記第１のコンピュータから前記ハッシュ値を取得する第２データ通信部を有し、前記ハッシュ値と、前記開発中アプリケーションを対象として求めたハッシュ値が一致する場合、前記開発中アプリケーションを前記画像形成装置にインストールできるようにパッケージングする第２のコンピュータと、を含むこととした。
【００２５】
この構成によれば、画像形成装置は、テスト結果とハッシュ値を出力する。これによりパッケージングを行う際のアプリケーションのハッシュ値と、テストを行った画像形成装置が出力したハッシュ値を比較することができる。従って、テストが行われた時点から、パッケージングを行おうとするまでの間に、開発中アプリケーションに対し改ざんが行われたかを確認することができる。又、画像形成装置の出力したテスト結果を第１のコンピュータで確認できる。従って、開発中アプリケーションに問題があるか否か（エラーが含まれる不正なアプリケーションか否か）も確認することができる。
【００２６】
又、請求項８に係る発明は、請求項７記載の発明において、前記第１のコンピュータは、前記開発中アプリケーションにエラーが含まれていないと判断した場合、アプリケーションコードを生成し、前記ハッシュ値とともに、前記アプリケーションコードを前記第１データ通信部から出力し、前記第２のコンピュータは、前記第１のコンピュータが生成した前記アプリケーションコードを読み込んだことを条件として、前記開発中アプリケーションをパッケージングすることとした。
【００２７】
この構成によれば、第１のコンピュータは、アプリケーションコードを生成し、ハッシュ値とともに、アプリケーションコードを第１データ通信部から出力する。これにより、アプリケーションコードを与え、パッケージングにアプリケーションコードが必要になるという要件により、誰に、どのようなアプリケーションコードを与えるかが確認されて、誰がアプリケーションを開発したかを確認するステップが設けられる。従って、ＳＤＫの流出等により、無許可の第三者が開発したアプリケーションのパッケージングを未然に防止することができる。
【００２８】
又、請求項９に係るコンピュータは、請求項７又は請求項８記載の画像形成システムにおける第１のコンピュータであることとした。
【００２９】
この構成によれば、第１のコンピュータは、取得したテスト結果に基づき、開発中アプリケーションにエラーが含まれるか否かを判断し、ハッシュ値を出力する。これにより、第１のコンピュータは、開発中アプリケーションに問題がないか否かを確認できる。又、第２のコンピュータへのハッシュ値の引き渡しが必要となるので、第２のコンピュータの所持者を確認できる。従って、開発中アプリケーションをパッケージングしようとする者が、許可した者かを確認することができる。尚、メーカ側の管理用ＰＣの好適例である。
【００３０】
又、請求項１０に係るコンピュータは、請求項７又は請求項８記載の画像形成システムにおける第２のコンピュータであることとした。
【００３１】
この構成によれば、第２のコンピュータは、画像形成装置にインストールできるようにパッケージングしようとする開発中アプリケーションのハッシュ値を求め、第１のコンピュータから取得したハッシュ値と、求めたハッシュ値の２つのハッシュ値が一致する場合にのみハッシュ値を求めた開発中アプリケーションをパッケージングする。これにより、テスト時の開発中アプリケーションから改ざんを加えていない場合のみ、パッケージングが行われる。従って、テスト時から改ざんされた開発中アプリケーションのパッケージングを防ぐことができる。尚、開発者のＳＤＫ等を含む開発用ＰＣの好適例である。
【００３２】
又、請求項１１に係る画像形成システムの制御方法は、画像形成装置の入力部が開発中アプリケーションの入力を受け付けるステップと、前記画像形成装置の記憶部が入力された前記開発中アプリケーションを記憶するステップと、前記開発中アプリケーションを動作させるステップと、前記制御部が、前記開発中アプリケーションの動作を監視し、テストする監視ソフトを動作させ、前記監視ソフトによるテスト結果を把握するステップと、前記制御部が、前記開発中アプリケーションのハッシュ値を演算するステップと、前記画像形成装置の出力部が前記テスト結果と前記ハッシュ値を出力するステップと、第１のコンピュータが、第１データ通信部を用い、前記画像形成装置が出力した前記テスト結果と前記ハッシュ値を取得するステップと、前記第１のコンピュータが、取得した前記テスト結果に基づき、前記開発中アプリケーションにエラーが含まれるか否かを判断するステップと、前記第１のコンピュータが、エラーが含まれていない場合、前記ハッシュ値を前記第１データ通信部から出力するステップと、前記第２のコンピュータが、第２データ通信部を用い、前記ハッシュ値を取得するステップと、前記第２のコンピュータが記憶し、前記画像形成装置にインストールできるようにパッケージングしようとする前記開発中アプリケーションのハッシュ値を求めるステップと、前記第２のコンピュータが、取得した前記ハッシュ値と、求めたハッシュ値の２つのハッシュ値が一致する場合、ハッシュ値を求めた前記開発中アプリケーションを前記画像形成装置にインストールできるようにパッケージングするステップと、を含むこととした。
【００３３】
この構成によれば、テスト時からパッケージングを行おうとするまでの間に、開発中アプリケーションを改ざんしたかを確認することができ、開発中アプリケーションのテスト結果も確認することができる。
【発明の効果】
【００３４】
上述したように、本発明によれば、テストによって、アプリケーションが不正なものか否かが確認される。従って、画像形成装置の動作の安定性が保証される。また、テストしたアプリケーションから改ざんされたアプリケーションのパッケージングを防ぐことができ、エラーや異常のあるアプリケーションは、パッケージングできなくなる。
【図面の簡単な説明】
【００３５】
【図１】実施形態に係る画像形成システムの一例の概要を示す説明図である。
【図２】実施形態に係る複合機の一例を示す模型的正面断面図である。
【図３】実施形態に係る画像形成システムの構成の一例を示すブロック図である。
【図４】実施形態に係る複合機のソフトウェアの階層構成の一例を示す説明図である。
【図５】実施形態に係る開発中アプリケーションの複合機へのインストールでの流れの一例を示すフローチャートである。
【図６】実施形態に係る複合機の開発中アプリケーションに対する処理の一例を示すフローチャートである。
【図７】実施形態に係る画像形成システムでの暗号化されたテスト結果とハッシュ値の管理コンピュータへの引き渡しの一例を示すフローチャートである。
【図８】実施形態に係る管理コンピュータでのテスト結果とハッシュ値の管理コンピュータでの処理の一例を示すフローチャートである。
【図９】実施形態に係る開発用コンピュータでの開発中アプリケーションのパッケージングと複合機へのインストールの一例を示すフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態に係る画像形成装置や画像形成システム１００を図１〜図８を用いて説明する。但し、本実施の形態に記載されている構成、配置等の各要素は、発明の範囲を限定するものではなく単なる説明例にすぎない。
【００３７】
（画像形成システム１００の概要）
まず、図１を用いて、本発明の実施形態に係る画像形成システム１００の一例を説明する。図１は、本発明の実施形態に係る画像形成システム１００の一例の概要を示す説明図である。
【００３８】
図１のうち、右上に示すのは、複合機１（画像形成装置に相当）である。複合機１は、スキャナ機能、コピー機能、プリント機能、ＦＡＸ機能等を備える（詳細は後述）。又、この複合機１には、メーカ以外の第三者が開発したアプリケーションをインストールすることができる。
【００３９】
そして、図１において、複合機１の左下に示すコンピュータが、管理コンピュータ６（第１のコンピュータに相当）である。管理コンピュータ６は、開発者のアプリケーションの開発を管理するコンピュータである。管理コンピュータ６は、例えば、メーカや、複合機１のアプリケーションの開発を管轄する部門に設置される。管理コンピュータ６は、複合機１用のアプリケーションを管理するためのソフトウェアがインストールされる。
【００４０】
又、図１において、管理コンピュータ６の右下に配されるのが、開発用コンピュータ７（第２のコンピュータに相当）である。例えば、開発用コンピュータ７は、例えば、アプリケーションの開発部署に設置される。開発用コンピュータ７は、アプリケーションを開発するためのＳＤＫ７６がインストールされたパーソナルコンピュータである（図３参照）。開発用コンピュータ７は、開発中アプリケーション８のパッケージングを行うことができる。尚、パッケージングとは、開発中アプリケーション８のバイナリデータ、データファイル、構成ファイル等のバンドル等を行い、開発中アプリケーション８を複合機１にインストールできる状態とすることである。このパッケージング機能は、例えば、ＳＤＫ７６に含まれる。
【００４１】
そして、複合機１、管理コンピュータ６、開発用コンピュータ７間でデータがやりとりされ、アプリケーションの開発や、開発中アプリケーション８のパッケージングや、パッケージングされたアプリケーションの複合機１へのインストールが行われる。このように、本発明の画像形成システム１００は、少なくとも、複合機１、管理コンピュータ６、開発用コンピュータ７で構成される。
【００４２】
（画像形成装置の概略）
次に、図２に基づき、本発明の実施形態に係る複合機１の概略を説明する。図２は本発明の実施形態に係る複合機１の一例を示す模型的正面断面図である。
【００４３】
図２に示すように、本実施形態の複合機１は、最上部に原稿カバー２４を有し、複合機１本体には、操作パネル２Ａ、画像読取部２Ｂ、給紙部３Ａ、搬送路３Ｂ、画像形成部４Ａ、定着部４Ｂ等が設けられる。
【００４４】
まず、図２に破線で示すように、操作パネル２Ａは、複合機１の正面上方に設けられる。そして、操作パネル２Ａは、複合機１の状態や各種メッセージを表示する液晶表示部２１を備える。液晶表示部２１は、機能の選択、設定や文字入力等を行うためのキーを１又は複数表示できる。又、液晶表示部２１の上面に透明なタッチパネル２２（例えば、抵抗膜方式）が設けられる。タッチパネル２２は、液晶表示部２１で押下された部分の位置、座標を検出するためのものである。又、操作パネル２Ａには、コピー等の各種機能の実行開始を指示するためのスタートキー２３等、各種のハードキーも設けられる。
【００４５】
原稿カバー２４は、図２の紙面奥行き方向に支点を有し、紙面上下方向に開閉可能である。原稿カバー２４は、原稿の複写時、載置読取用コンタクトガラス２５に載置された原稿を押さえる。画像読取部２Ｂは、原稿を読み取り、原稿の画像データを形成する。又、画像読取部２Ｂ内には露光ランプ、ミラー、レンズ、イメージセンサ（例えば、ＣＣＤ）等の光学系部材（不図示）が設けられる。尚、原稿カバー２４に変えて、原稿を１枚ずつ、自動的、連続的に、画像読取部２Ｂの読み取り位置（送り読取用コンタクトガラス２６）に向けて搬送する原稿搬送装置を設けてもよい。
【００４６】
そして、これらの光学系部材を用い、載置読取用コンタクトガラス２５に載置される原稿に光を照射し、その原稿の反射光を受けたイメージセンサの各画素の出力値をＡ／Ｄ変換し、画像データが生成される。複合機１は、読み取りにより得られた画像データに基づき印刷を行うことができる（コピー機能）。
【００４７】
給紙部３Ａは、複数の用紙（例えば、コピー用紙、普通紙、再生紙、厚紙、ＯＨＰシート等の各種シート）を収容し、１枚ずつ搬送路３Ｂに送り込む。給紙部３Ａは、収納用紙が載置されるカセット３１を含む（図２で上方のものに３１Ａ、下方のものに３１Ｂの符号を付す）。又、カセット３１から搬送路３Ｂに送り出すため回転駆動する給紙ローラ３２が設けられる（図２で上方のものに３２Ａ、下方のものに３２Ｂの符号を付す）。例えば、印刷時には、給紙ローラ３２が回転駆動し、印刷に要する用紙が１枚ずつ搬送路３Ｂに送り出される。
【００４８】
搬送路３Ｂは、給紙部３Ａから排出トレイ３３まで用紙を搬送する通路である。尚、用紙搬送経路上には画像形成部４Ａ、定着部４Ｂ等が配される。そして、搬送路３Ｂには、用紙の案内のためのガイド３４や、用紙搬送の際に回転駆動する搬送ローラ対３５や、搬送されてくる用紙を画像形成部４Ａの手前で待機させ、トナー像形成のタイミングを合わせて用紙を送り出すレジストローラ対３６等が設けられる。
【００４９】
画像形成部４Ａは、画像データに基づきトナー像を形成し、搬送される用紙にトナー像を転写する。そのため、画像形成部４Ａは、図２中に示す矢印方向に回転駆動可能に支持された感光体ドラム４１、及び、感光体ドラム４１の周囲に配設された帯電装置４２、レーザ走査ユニット４３、現像装置４４、転写ローラ４５、清掃装置４６等を備える。
【００５０】
トナー像形成及び転写プロセスを説明すると、画像形成部４Ａの略中心に設けられ、所定方向に回転駆動する感光体ドラム４１は、図２において、感光体ドラム４１の右斜め上方に設けられる帯電装置４２により、所定電位に帯電される。図４において、レーザ走査ユニット４３は、帯電装置４２の右側方に設けられ、画像データに基づき、レーザ光Ｌをから出力し、感光体ドラム４１表面を走査露光して画像データに応じた静電潜像を形成する。尚、画像データは、画像読取部２Ｂで得られた画像データや、ネットワーク等により接続される外部のコンピュータ２００や相手方ＦＡＸ装置３００（図３参照）から送信された画像データ等が用いられる。
【００５１】
そして、図２において、感光体ドラム４１の右斜め下方に設けられる現像装置４４は、感光体ドラム４１に形成された静電潜像にトナーを供給して現像する。感光体ドラム４１の左方に設けられる転写ローラ４５は感光体ドラム４１に圧接し、ニップが形成される。そして、トナー像にあわせタイミングを図られつつ、用紙はニップに進入する。用紙進入時、転写ローラ４５には所定の電圧が印加され、用紙に感光体ドラム４１上のトナー像が転写される。清掃装置４６は、転写後に感光体ドラム４１に残留するトナーを除去する。
【００５２】
定着部４Ｂは、用紙に転写されたトナー像を定着させる。本実施形態における定着部４Ｂは、主として発熱体を内蔵する加熱ローラ４７と加圧ローラ４８で構成される。加熱ローラ４７と加圧ローラ４８は圧接しニップを形成する。そして、用紙が、このニップを通過することで、用紙表面のトナーが溶融・加熱され、トナー像が用紙に定着する。トナー定着後の用紙は、排出トレイ３３が受け止める。このようにして、コピー機能、プリンタ機能の使用時、画像形成（印刷）が行われる。
【００５３】
（画像形成システム１００のハードウェア構成）
そこで、次に、図３に基づき、本発明の実施形態に係る画像形成システム１００のハードウェア構成の一例を説明する。図３は、本発明の実施形態に係る画像形成システム１００の構成の一例を示すブロック図である。
【００５４】
まず、複合機１内には、制御部５が設けられ、制御部５は複合機１の動作を制御し、例えば、ＣＰＵ５１（演算部に相当）、画像処理部５２等で構成される。尚、制御部５は、全体制御や画像処理を行うメイン制御部と、画像形成や各種回転体を回転させるモータ等のＯＮ／ＯＦＦ等を制御するエンジン制御部等、機能ごとに分割して複数種設けられてもよい。
【００５５】
ＣＰＵ５１は、中央演算処理装置であって、記憶部５３に格納され、展開されるプログラムやデータに基づき複合機１の各部を制御する。画像処理部５２は、印刷を行う画像データや、外部のコンピュータ２００や相手方のＦＡＸ装置３００に送信される画像データに対し、各種画像処理を施す。
【００５６】
記憶部５３は、例えば、ＲＯＭ５４（Read Only Memory）、ＲＡＭ５５（Random Access Memory）、ＨＤＤ５６（Hard Disk Drive）を含む。記憶部５３のＲＯＭ５４は、例えば、フラッシュＲＯＭである。このように、記憶部５３は、不揮発性と揮発性の記憶装置を組み合わせて構成される。この記憶部５３には、複合機１の制御用等の各種のプログラムやデータ、設定データ、画像データ等の各種データを記憶できる。又、複合機１の機能拡張のため、第三者が作成したアプリケーションは、複合機１にインストールされると、記憶部５３がアプリケーションを記憶する。
【００５７】
そして、制御部５は、操作パネル２Ａ、画像読取部２Ｂ、給紙部３Ａ、搬送路３Ｂ、画像形成部４Ａ、定着部４Ｂ等の各部とバスや信号線等で接続され、各部、各装置を制御して複合機１の動作を制御する。
【００５８】
更に、制御部５は、各種コネクタ、ソケット、通信制御用のチップ等を備えたＩ／Ｆ部５７（入力部、出力部に相当）と接続される。Ｉ／Ｆ部５７は、ネットワークや公衆回線等により、外部の管理コンピュータ６や開発用コンピュータ７や、その他のコンピュータ２００や、相手方のＦＡＸ装置３００と、複合機１を通信可能に接続する。例えば、画像データを含むデータを外部のコンピュータ２００や相手方ＦＡＸ装置３００（インターネットＦＡＸでもよい）に送信することができる（スキャナ機能、ＦＡＸ機能）。又、外部のコンピュータ２００や相手方ＦＡＸ装置３００からの画像データに基づき印刷を行うこともできる（プリンタ機能、ＦＡＸ機能）。このように、複合機１は、コピー機能、プリンタ機能、スキャン機能、ＦＡＸ機能のうちの複数の機能を備える。
【００５９】
又、Ｉ／Ｆ部５７には、例えば、外部記憶装置９を接続するためのコネクタ、ソケット、ドライバ等も含まれる。これにより、複合機１に外部記憶装置９を取り付けることができる。例えば、外部記憶装置９は、ＵＳＢメモリ、ＳＤメモリカード、ＣＦ等の携帯型半導体メモリのほか、磁気や光学記憶媒体であってもよい。尚、図３は、外部のコンピュータとの通信用のインターフェイスと、外部記憶装置接続用のインターフェイスが、Ｉ／Ｆ部５７に含まれる例を示すが、各インターフェイスが、別々に設けられ、制御部５と接続されてもよい。
【００６０】
又、図３に示すように、管理コンピュータ６は、例えば、ＣＰＵ６１や、メモリ部６２（ＨＤＤやＲＡＭやＲＯＭで構成される）や、キーボードやマウス等の入力装置６３や、表示装置としてのディスプレイ６４や、外部と通信を行うためのインターフェイスである第１データ通信部６５を備える。
【００６１】
又、図３に示すように、開発用コンピュータ７も、例えば、ＣＰＵ７１や、メモリ部７２も（ＨＤＤやＲＡＭやＲＯＭで構成され、ＳＤＫ７６を含む。）や、キーボードやマウス等の入力装置７３や、表示装置としてのディスプレイ７４や、外部と通信を行うためのインターフェイスである第２データ通信部７５を備える。
【００６２】
例えば、図３に示すように、ケーブルやネットワーク等により、複合機１のＩ／Ｆ部５７と、管理コンピュータ６の第１データ通信部６５と、開発用コンピュータ７の第２データ通信部７５を、通信可能に接続することができる。従って、複合機１、管理コンピュータ６、開発用コンピュータ７間で、通信により各種データの送受信を行うことができる。
【００６３】
又、外部記憶装置９は、複合機１のＩ／Ｆ部５７だけでなく、管理コンピュータ６の第１データ通信部６５や、開発用コンピュータ７の第２データ通信部７５に接続できる。そのため、管理コンピュータ６の第１データ通信部６５や、開発用コンピュータ７の第２データ通信部７５も、外部記憶装置９を接続するためのコネクタ、ソケット、ドライバ等を含む。従って、複合機１、管理コンピュータ６、開発用コンピュータ７間で、外部記憶装置９の抜き差しにより、各種データの引き渡しや受け渡しを行うこともできる。
【００６４】
（複合機１のソフトウェアの構成）
次に、図４に基づき、本発明の実施形態に係る複合機１のソフトウェアの階層構成の一例を説明する。図４は、本発明の実施形態に係る複合機１のソフトウェアの階層構成の一例を示す説明図である。
【００６５】
図４に示すように、複合機１は、例えば、記憶部５３のＲＯＭ５４にファームウェア８０を記憶する。ファームウェア８０は、複合機１を制御するためのソフトウェアである。例えば、ファームウェア８０には、ＯＳ（オペレーティングシステム）が含まれる。ファームウェア８０やＯＳは、記憶部５３の管理、操作パネル２Ａに関する入出力制御など、アプリケーションが利用する基本的な機能を提供して画像形成装置全体を管理、制御する。
【００６６】
又、コピー、プリンタ、ファクシミリ、及びスキャナの複合機１の基本機能を利用するためのアプリケーションであるコピーアプリ８２、プリンタアプリ８３、ＦＡＸアプリ８４、及びスキャナアプリ８５は、予めメーカにより作成され、ファームウェア８０に含められる。
【００６７】
ファームウェア８０の上階層には、ＡＰＩ８１（Application Programming Interface）が存在する。例えば、ＡＰＩ８１には、複合機１のメーカが独自に作成した独自ＡＰＩ８１１や、Ｊａｖａ  ＶＭ８１２（Java Virtual Machine）が含まれる。独自ＡＰＩ８１１は、複合機１のメーカが作成したＡＰＩ８１である。一方、Ｊａｖａ  ＶＭ８１２は、さまざまな環境でＪａｖａのプログラムを実行するためのＡＰＩ８１である。各種ＡＰＩ８１は、例えば、複合機１のアプリケーションを実行する上での命令や関数やルーチンや規約の集合である、ＡＰＩ８１は、多くのアプリケーションが共通して利用する機能を実現する。各アプリケーションは、規約に従って機能を呼び出し、ＡＰＩ８１を利用することで、各アプリケーションに、ＡＰＩ８１に含まれるプログラムを含めることなく、機能を利用できる。各種ＡＰＩ８１は、例えば、ＲＯＭ５４やＨＤＤ５６に記憶される。
【００６８】
ＡＰＩ８１は、例えば、メーカや外部開発者が作成するアプリケーション８６（例えば、ユーザが個別に開発したカスタムアプリケーションや、メーカが機能拡張用に開発したアプリケーション）や、開発中アプリケーション８や、監視ソフト８７に利用される。尚、アプリケーション８６には、例えば、上述した、スキャンした名刺のデータペース化や、原稿をＰＤＦ等に電子文書化するプログラム等がある。
【００６９】
また、複合機１には、最終的なパッケージングがなされていない開発中アプリケーション８を、テストのため、インストールすることができる。そして、開発中アプリケーション８がインストールされると、監視ソフト８７が自動的に立ち上がる。若しくは、操作パネル２Ａを操作することにより、監視ソフト８７が手動で起動され、それから、開発中アプリケーション８が起動する。監視ソフト８７は、インストールされた開発中アプリケーション８を監視し、テストを行う。テストは、開発中アプリケーション８に不正な命令等、エラーが含まれるか否かを検出するために行われる。
【００７０】
以下、開発したアプリケーションを、複合機１にインストールし、販売、頒布できるようにするためのパッケージングが完了するまでの流れを説明する。概説すると、以下のような流れとなる。
１．開発中アプリケーション８の複合機１へのインストール→
２．開発中アプリケーション８に対する複合機１の処理→
３．テスト結果とハッシュ値の管理コンピュータ６への引き渡し→
４．管理コンピュータ６での処理→
５．開発用コンピュータ７でのパッケージング→
６．複合機１へのパッケージングされたアプリケーションのインストール
しかし、すべてを１つのフローとして示すと、長くなるので、区切りながら、開発したアプリケーションのパッケージングや、複合機１へのインストール完了までの流れを説明する。
【００７１】
（開発中アプリケーション８の複合機１へのインストール）
まず、図５に基づき、本発明の実施形態に係る画像形成システム１００での開発中アプリケーション８の複合機１へのインストールの一例を説明する。図５は、発明の実施形態に係る開発中アプリケーション８の複合機１へのインストールでの流れの一例を示すフローチャートである。
【００７２】
尚、本説明では、外部記憶装置９を用い、開発中アプリケーション８を複合機１にインストールする場合を説明する。尚、上述したように、外部記憶装置９を用いず、開発用コンピュータ７から開発中アプリケーション８を送信し、ネットワークやケーブルにより、これを複合機１が受信することにより、開発中アプリケーション８のインストールが行われてもよい。
【００７３】
まず、図５におけるスタートは、開発者が、開発中のアプリケーションをテストのため複合機１にインストールしようとする時点である。このとき、開発用コンピュータ７には、第２データ通信部７５に、ＵＳＢメモリ等の外部記憶装置９が接続された状態である。
【００７４】
そして、開発者の指示により、開発用コンピュータ７は、複合機１でのテスト用の仮パッケージングを行う（ステップ♯１１）。言い換えると、開発中アプリケーション８は、複合機１に仮インストールできる状態とされる。この仮パッケージングは、例えば、開発用コンピュータ７のメモリ部６２に記憶されたＳＤＫ７６を、ＣＰＵ６１が動作させる等により行われる。そして、開発用コンピュータ７は、外部記憶装置９に仮パッケージングされた開発中アプリケーション８を外部記憶装置９に記憶させる（ステップ♯１２）。
【００７５】
そして、外部記憶装置９は、開発者により、複合機１のＩ／Ｆ部５７に接続される（ステップ♯１３）。複合機１の制御部５は、Ｉ／Ｆ部５７に外部記憶装置９が接続されたこと、及び、開発中アプリケーション８が外部記憶装置９に記憶されていることを認識する（ステップ♯１４）。そして、制御部５は、外部記憶装置９からＩ／Ｆ部５７を介し、仮パッケージングされた開発中アプリケーション８を読み出す（ステップ♯１５）。そして、制御部５は、開発中アプリケーション８を、記憶部５３（例えば、ＨＤＤ５６）にインストールする（ステップ♯１６）。これにより、開発中アプリケーション８の複合機１へのインストールが完了する（エンド）
【００７６】
（開発中アプリケーション８に対する複合機１の処理）
次に、図６に基づき、本発明の実施形態に係る複合機１の開発中アプリケーション８に対する処理の一例を説明する。図６は、本発明の実施形態に係る複合機１の開発中アプリケーション８に対する処理の一例を示すフローチャートである。
【００７７】
図５を用いて説明したように、メーカ、使用者以外の第三者（開発者）が開発した開発中アプリケーション８は、複合機１に仮インストールすることができる。このインストールされた開発中アプリケーション８に対し、複合機１は、テスト等の各種処理を行う。
【００７８】
まず、図６のスタートは、複合機１に開発中アプリケーション８が仮インストールされた状態である。そうすると、複合機１の制御部５は、監視ソフト８７を起動する（立ち上げさせる。ステップ♯２１）。そして、制御部５は、開発中アプリケーション８を起動させる（立ち上げさせる。ステップ♯２２）。
【００７９】
そして、制御部５は、監視ソフト８７に、開発中アプリケーション８のテストを開始させる（ステップ♯２３）。そして、監視ソフト８７は、開発中アプリケーション８を動作させ、テストを行う。
【００８０】
テスト中、開発中アプリケーション８がどのような動作を行うかは、例えば、予め、開発中アプリケーション８内で定義される。言い換えると、テスト中は、開発中アプリケーション８は、テスト用プログラムに基づき動作する。
【００８１】
尚、このテスト中、操作パネル２Ａが、開発中アプリケーション８のテストでの操作や指示を与えるための画面を表示し、操作パネル２Ａになされた入力に従い、開発中アプリケーション８が動作してもよい。
【００８２】
具体的にテストでは、例えば、監視ソフト８７は、開発中アプリケーション８を実際に動作させた際のＲＡＭ５５の占有率を監視し、記録する（ステップ♯２４）。又、監視ソフト８７は、インストールされ、動作中の開発中アプリケーション８のＨＤＤ５６の占有率を監視し、記録する（ステップ♯２５）。又、監視ソフト８７は、開発中アプリケーション８を実際に動作させた際のＣＰＵ５１の負荷率を監視し、記録する（ステップ♯２６）。尚、ＲＡＭ５５、ＨＤＤ５６の占有率や、ＣＰＵ５１の負荷率は、開発中アプリケーション８の動作によって時間的に変動する場合があるので、例えば、一定時間ごとの計測値がログとして記録される。尚、監視ソフト８７による記録は、例えば、ＲＡＭ５５やＨＤＤ５６等に記録される（以下の記録も同様。）
【００８３】
又、監視ソフト８７は、開発中アプリケーション８が、例えば、ＡＰＩ８１として予め用意され、アプリケーション用の動作保証された命令、関数、ルーチン以外の命令を実行するか、アプリケーションに使用が認められていない命令を実行するか、ＲＡＭ５５やＨＤＤ５６等で、使用が認められない記憶領域（例えば、ＣＰＵ５１専用の記憶領域）や、存在しないアドレスへのアクセスが行われるか、等、不正な命令、関数、ルーチンが含まれるかも監視し、記録する（ステップ♯２７）。
【００８４】
又、監視ソフト８７は、開発中アプリケーション８についての他のテストを行ってもよい（ステップ♯２８）。例えば、複合機１は、記憶部５３にＦＡＸや画像データの送信先といった個人情報をアドレス帳として記憶する。悪意のある者は、個人情報の漏洩や、破壊を意図する可能性もある。又、悪意のある者は、複合機１に含まれるプログラムを破壊して、複合機１の機能を損なおうとする場合もある。そのため、監視ソフト８７は、例えば、開発中アプリケーション８が取得や改変を試みるデータのアクセス先や、Ｉ／Ｆ部５７からの送信等を試みるか等を監視し、記録してもよい。
【００８５】
もし、必要以上に、ＲＡＭ５５やＨＤＤ５６の占有率が大きすぎる場合や、ＣＰＵ５１の負荷率が大きすぎると、他のアプリケーション（例えば、コピーアプリ８２等）の動作の妨げや、複合機１の停止エラーが生ずる場合があるため、ＲＡＭ５５やＨＤＤ５６の占有率や、ＣＰＵ５１の負荷率を監視する。悪意があるものは、ＲＡＭ５５やＨＤＤ５６の占有率や、ＣＰＵ５１の負荷率を意図的に大きくし、複合機１の動作停止を意図する場合もある。又、不正な命令やルーチンや関数が含まれていると、複合機１の停止エラーが生ずる場合があるため、不正な命令等が含まれるかを監視する。悪意があるものは、不正な命令等をアプリケーションに含めておく場合もある。従って、これらのテストにより、開発者のアプリケーションに、複合機１の機能が損なわれるような問題が生ずるようなエラーが含まれるか確認することができる。
【００８６】
そして、必要なテストが全て完了すると（ステップ♯２９）、例えば、制御部５のＣＰＵ５１が、ハッシュ関数を用い、インストールされた開発中アプリケーション８のハッシュ値を演算する（ステップ♯２１０）。尚、ハッシュ関数は、チェックサムのような簡易なものでもよいし、暗号学的なアルゴリズムを用いてもよい。
【００８７】
そして、制御部５は、テスト結果（各種ログ）と、求めたハッシュ値に暗号化を施す（ステップ♯２１１）。そして、制御部５は、暗号化を施したテスト結果とハッシュ値を示すデータを外部記憶装置９に記憶させるとともに、開発中アプリケーション８を記憶部５３から消去させる（ステップ♯２１２→エンド）。これにより、インストールされた開発中アプリケーション８に対する複合機１での処理が終了する。
【００８８】
即ち、本実施形態の画像形成装置（例えば、複合機１）は、開発中アプリケーション８の画像形成装置への入力を受け付ける入力部（Ｉ／Ｆ部５７）と、入力された開発中アプリケーション８を記憶するとともに、実行された開発中アプリケーション８の動作を監視し、テストする監視ソフト８７を記憶する記憶部５３と、開発中アプリケーション８と、監視ソフト８７を動作させ、監視ソフト８７によるテスト結果を把握し、開発中アプリケーション８のハッシュ値を演算する制御部５と、テスト結果とハッシュ値を出力する出力部（Ｉ／Ｆ部５７）と、を備え、画像形成装置から出力された開発中アプリケーション８のテスト結果とハッシュ値を取得する第１データ通信部６５を有する第１のコンピュータ（管理コンピュータ６）と、開発中アプリケーション８を記憶するとともに第１のコンピュータからハッシュ値を取得する第２データ通信部７５を有し、取得したハッシュ値と、開発中アプリケーション８を対象として求めたハッシュ値が一致する場合、開発中アプリケーション８を画像形成装置にインストールできるようにパッケージングする第２のコンピュータ（開発用コンピュータ７）と、を含む画像形成システム１００における画像形成装置（例えば、複合機１）である。又、制御部５は、テスト結果とハッシュ値の暗号化を行い、暗号化されたテスト結果とハッシュ値を出力部から出力させる。又、画像形成装置は、入力部に接続された外部記憶装置９内に記憶される開発中アプリケーション８を取り込んで記憶部５３に記憶し、テスト結果とハッシュ値を出力部に接続された外部記憶装置９に記憶させる。又、記憶部５３は、監視ソフト８７によるテスト終了後、開発中アプリケーション８を消去する。
【００８９】
又、開発中アプリケーション８のテストに関し、記憶部５３は、少なくともハードディスクドライブ（ＨＤＤ５６）、ランダムアクセスメモリ（ＲＡＭ５５）を含み、制御部５は、データ及びプログラムの処理を行うための演算部（ＣＰＵ５１）を含み、監視ソフト８７により、開発中アプリケーション８のハードディスクドライブ及びランダムアクセスメモリにおける占有容量、及び、演算部の負荷率のテストを行い、出力部（Ｉ／Ｆ部５７）は、占有容量及び負荷率をテスト結果として出力する。又、記憶部５３は、予め用意され、動作保証された命令、関数、ルーチンを記憶し、制御部５は、監視ソフト８７により、開発中アプリケーション８が予め用意され、動作保証された命令、関数、ルーチン以外の命令、関数、ルーチンを使用するか否かのテストを行い、出力部は、命令、関数、ルーチンのテスト結果を出力する。
【００９０】
（テスト結果とハッシュ値の管理コンピュータ６への引き渡し）
次に、図７に基づき、本発明の実施形態に係る画像形成システム１００での暗号化されたテスト結果とハッシュ値の管理コンピュータ６への引き渡しの一例を説明する。図７は、本発明の実施形態に係る画像形成システム１００での暗号化されたテスト結果とハッシュ値の管理コンピュータ６への引き渡しの一例を示すフローチャートである。
【００９１】
自己が開発したアプリケーションを複合機１にインストールし、使用できるようにする、あるいは、販売等の目的で、開発中アプリケーション８のパッケージングを行うには、開発者は、暗号化されたテスト結果とハッシュ値のデータを管理者としてのメーカに引き渡す必要がある。尚、一般に、開発用コンピュータ７と、管理コンピュータ６は位置的に離れた場所に設置されるので、本説明では、インターネット等のネットワークを通じて送信する場合を説明する。尚、暗号化されたテスト結果とハッシュ値の引き渡しは、外部記憶装置９の郵送等で行われてもよい。
【００９２】
まず、図７のスタートは、開発者が、暗号化されたテスト結果やハッシュ値をメーカに送信しようとする時点である。そして、開発用コンピュータ７は、例えば、開発者により第２データ通信部７５に接続された外部記憶装置９から、暗号化されたテスト結果やハッシュ値を取得する（ステップ♯３１）。尚、開発用コンピュータ７は、複合機１のＩ／Ｆ部５７から出力された暗号化されたテスト結果やハッシュ値を、ネットワークを介して、第１データ通信部６５で受信して取得してもよい。
【００９３】
そして、開発用コンピュータ７のＣＰＵ７１は、例えば、メモリ部７２に暗号化されたテスト結果やハッシュ値を記憶させる（ステップ♯３２）。そして、例えば、開発者は、ＳＤＫ７６を利用して、暗号化されたテスト結果やハッシュ値の送信準備を開始する（ステップ♯３３）。
【００９４】
例えば、開発用コンピュータ７は、入力装置７３やディスプレイ７４に表示を行いつつ、暗号化されたテスト結果やハッシュ値の送信用画面での開発者による入力を受け付ける（ステップ♯３４）。例えば、送信用画面では、送信者、即ち、開発者の氏名やアドレスや会社名等の入力や、暗号化されたテスト結果やハッシュ値の添付指示が受け付けられる。例えば、送信用画面の画像データをＳＤＫ７６が含み、ＳＤＫ７６が送信用画面を表示させてもよい。また、開発者が、ブラウザ等を用いて、管理コンピュータ６にネットワーク経由でアクセスし、ブラウザに送信用画面が表示されてもよい。
【００９５】
そして、送信用画面での作業終了後、送信者（開発者）を特定するデータ（会社名や氏名等）が添付されつつ、暗号化されたテスト結果やハッシュ値が、開発用コンピュータ７から管理コンピュータ６に送信される（ステップ♯３５）。これにより、開発用コンピュータ７から管理コンピュータ６にデータの送信が完了する（エンド）。
【００９６】
（管理コンピュータ６での処理）
次に、図８に基づき、本発明の実施形態に係る管理コンピュータ６でのテスト結果とハッシュ値の管理コンピュータ６での処理の一例を説明する。図８は、本発明の実施形態に係る管理コンピュータ６でのテスト結果とハッシュ値の管理コンピュータ６での処理の一例を示すフローチャートである。
【００９７】
まず、図８のスタートは、管理コンピュータ６が、暗号化されたテスト結果やハッシュ値の処理を開始する時点である。まず、例えば、管理コンピュータ６は、送信者（開発者）を特定するデータ（会社名や氏名やアドレス等）とともに、暗号化されたテスト結果やハッシュ値を取得する（ステップ♯４１）。そして、例えば、管理コンピュータ６のＣＰＵ６１は、暗号化されたテスト結果を復号する（ステップ♯４２）。尚、暗号化用の鍵は、例えば、複合機１に予め含められ（記憶部５３が予め保持する）、復号用の鍵は、管理コンピュータ６のメモリ部６２や開発用コンピュータ７のメモリ部７２等が保持する。
【００９８】
そして、管理コンピュータ６は、テスト結果を確認し（ステップ♯４３）、開発中アプリケーション８にエラーが含まれるか否かを判断する（ステップ♯４４）。尚、開発中アプリケーション８に、エラーが含まれるか、言い換えると、開発中アプリケーション８に、複合機１の停止等のエラーや不要な動作等の原因となる不正な命令や異常が含まれるか否かの確認は、管理コンピュータ６が自動で判断してもよいし、管理コンピュータ６のオペレーターがテスト結果を参照して目視によって判断してもよいし、自動判断と、目視による判断のダブルチェックでおこなわれてもよい。
【００９９】
もし、エラーが含まれれば（ステップ♯４４のＹｅｓ）、管理コンピュータ６は、開発用コンピュータ７に向け、開発中アプリケーション８にエラーが含まれる旨や、引き起こされる異常、不正の内容や、開発中アプリケーション８のパッケージングは認められない旨を示す不許可返信データを送信し（ステップ♯４５）、管理コンピュータ６での処理は終了する（エンド）。
【０１００】
一方、エラーが含まれなければ（ステップ♯４４のＮｏ）、管理コンピュータ６は、開発中アプリケーション８のパッケージングに必要となるアプリケーションコードを生成する（ステップ♯４６）。アプリケーションコードは、開発されたアプリケーションごとに異なる（ユニークである）。そして、管理コンピュータ６は、開発用コンピュータ７に向けて、少なくとも、アプリケーションコードと、管理コンピュータ６が複合機１から取得した暗号化されたハッシュ値とを含み、開発中アプリケーション８のパッケージングを認める旨を示すファイル（許可返信データ）を送信する（ステップ♯４７）。この場合も、管理コンピュータ６での処理は終了する（エンド）。
【０１０１】
（パッケージングとインストール）
次に、図９に基づき、本発明の実施形態に係る開発用コンピュータ７での開発中アプリケーション８のパッケージングと複合機１へのインストールを説明する。図９は、本発明の実施形態に係る開発用コンピュータ７での開発中アプリケーション８のパッケージングと複合機１へのインストールの一例を示すフローチャートである。
【０１０２】
まず、図９のスタートは、アプリケーションコードの送信を受けた開発者が、開発中アプリケーション８のパッケージングを行おうとする時点である。このとき、開発用コンピュータ７は、管理コンピュータ６から、アプリケーションコードと、暗号化されたハッシュ値を含むファイル（許可返信データ）を受信している。
【０１０３】
次に、開発用コンピュータ７のＣＰＵ７１は、開発者の指示に基づき、パッケージング用のソフトウェアを起動させるとともに、複合機１が生成、出力し、暗号化されたハッシュ値の復号を行う（ステップ♯５１）。例えば、パッケージング用のソフトウェアは、ＳＤＫ７６に含まれる。また、復号用の鍵は、開発用コンピュータ７のメモリ部７２（例えば、ＳＤＫ７６）が保持する。
【０１０４】
そして、開発用コンピュータ７（のＣＰＵ７１）は、アプリケーションコードが含まれたファイル（許可返信データ）の読み込みを行う（ステップ♯５２）。このように、アプリケーションコードがなければ、開発中アプリケーション８のパッケージングを行うことができない。尚、アプリケーションコードの入力は、キーボード等の入力装置７３を用い、手入力で行われてもよい。
【０１０５】
ファイルの読み込みが行われると、アプリケーションコードが正当であるかが確認される（ステップ♯５３）。例えば、開発用コンピュータ７は管理コンピュータ６と通信を行い、読み込まれたアプリケーションコードの正当性を確認してもよい。また、開発用コンピュータ７は、アプリケーションコードとして与えられる可能性があるコードをメモリ部７２に予め記憶しておき、アプリケーションコードが、予め記憶されたコードと一致するかを確認して、正当性を確認してもよい。
【０１０６】
もし、アプリケーションコードが正当でなければ（ステップ♯５３のＮｏ）、例えば、開発用コンピュータ７は、アプリケーションコードが異常である旨を表示し（ステップ♯５４）、本処理を終了する（エンド）。一方、アプリケーションコードが正当であれば（ステップ♯５３のＹｅｓ）、開発用コンピュータ７のＣＰＵ７１等は、パッケージングしようとする開発中アプリケーション８のハッシュ値を演算する（ステップ♯５５）。尚、このときのハッシュ値を求めるためのハッシュ関数は、複合機１のものと同じである。言い換えると、複合機１（画像形成装置）と、開発用コンピュータ７は、同じハッシュ関数を用いてハッシュ値を求める。
【０１０７】
そして、開発用コンピュータ７は、ファイル（許可返信データ）に添付され、復号されたハッシュ値と、演算したハッシュ値（パッケージングしようとする開発中アプリケーション８のハッシュ値）が一致するかを確認する（ステップ♯５６）。言い換えると、開発用コンピュータ７は、テストがされた開発中アプリケーション８と、パッケージングしようとする開発中アプリケーション８が同じものであるかを確認する。
【０１０８】
もし、ハッシュ値が一致しなければ（ステップ♯５６のＮｏ）、テストされた開発中アプリケーション８からの改ざんがなされ、不正な命令の追加等があり、複合機１へのインストールされた際の安全性を保証することができないので、開発中アプリケーション８のパッケージングを行わないまま、処理が終了される（エンド）。一方、ハッシュ値が一致すれば、開発用コンピュータ７のパッケージング用のソフトウェアは、開発中アプリケーション８のパッケージングを行う（ステップ♯５７）。
【０１０９】
尚、パッケージングでは、例えば、ｅｘｅファイル生成や、アプリケーションに使用期間、販売期間や、アプリケーションコードを示すデータの付加や、インストールされたアプリケーションを使えるようにするための設定（アクティベーション）の必要性や、会社名等の諸情報の付加が行われる。そして、例えば、パッケージングにより、１つの圧縮ファイル（例えば、ｚｉｐファイル）が形成される。
【０１１０】
そして、開発用コンピュータ７は、パッケージングすることにより、開発中アプリケーション８を複合機１にインストール可能な状態とし、例えば、外部記憶装置９に記憶させる（ステップ♯５８）。そして、例えば、外部記憶装置９が複合機１のＩ／Ｆ部５７に接続される（ステップ♯５９）。その後、Ｉ／Ｆ部５７は、外部記憶装置９内のパッケージングされたアプリケーションを読み出し、制御部５は、例えば、複合機１００に搭載されるインストーラーを動作させ、複合機１にアプリケーションがインストールされる（ステップ♯５１０）。最終的に、記憶部５３（例えば、ＨＤＤ５６）は、インストール動作の過程で、外部記憶装置９内のパッケージングされたアプリケーションを読み込み記憶する。そして、本制御は、終了する（エンド）。
【０１１１】
このようにして、本実施形態の構成によれば、画像形成装置（例えば、複合機１）は、テスト結果とハッシュ値を出力する。これによりパッケージングを行う際の開発中アプリケーション８のハッシュ値と、テストを実施する画像形成装置（例えば、複合機１）が出力したハッシュ値を比較することができる。従って、テストが行われた時点から、パッケージングを行おうとするまでの間に、開発中アプリケーション８に対し改ざんが行われたかを確認することができる。又、画像形成装置（例えば、複合機１）の出力したテスト結果を第１のコンピュータ（管理コンピュータ６）で確認できる。従って、開発中アプリケーション８に問題があるか否か（エラーを含む不正なアプリケーションか否か）も確認することができる。
【０１１２】
又、画像形成装置（例えば、複合機１）は、テスト結果とハッシュ値を暗号化して出力部（Ｉ／Ｆ部５７）から第１のコンピュータ（管理コンピュータ６）に出力する。これにより、悪意のある開発者にとって都合がよくなるようなテスト結果とハッシュ値自体の改ざんを防ぐことができる。従って、パッケージングを行おうとする開発中アプリケーション８に改ざんがなされたか否かを、間違いなく判断することができる。又、テスト結果の信頼性が向上する。
【０１１３】
又、入力部（Ｉ／Ｆ部５７）に接続された外部記憶装置９内に記憶される開発中アプリケーション８が記憶部５３に記憶され、テスト結果とハッシュ値を出力部（Ｉ／Ｆ部５７）に接続された外部記憶装置９に記憶される。これにより、例えば、ＵＳＢメモリのような外部記憶装置９を接続するだけで、画像形成装置（例えば、複合機１）への開発中アプリケーション８のインストールが行われ、テスト結果とハッシュ値が外部記憶装置９に格納される。従って、画像形成装置への開発中アプリケーション８のインストールやテスト結果やハッシュ値の第１のコンピュータ（管理コンピュータ６）への引き渡しを容易に行うことができる。
【０１１４】
又、記憶部５３は、監視ソフト８７によるテスト終了後、開発中アプリケーション８を消去する。これにより、開発中アプリケーション８が不十分なものであっても、画像形成装置（例えば、複合機１）の動作に影響を与えることを防ぐことができる。又、出力部（Ｉ／Ｆ部５７）は、開発中アプリケーション８のハードディスクドライブ（ＨＤＤ５６）及びランダムアクセスメモリ（ＲＡＭ５５）における占有容量、及び、演算部（ＣＰＵ５１）の負荷率をテスト結果として出力する。これにより、開発中アプリケーション８のハードディスクドライブ（ＨＤＤ５６）やランダムアクセスメモリ（ＲＡＭ５５）の占有容量が大きすぎ、データのオーバーフローや、他のアプリケーションの動作の妨げになる等の弊害の発生の可能性を確認することができる。従って、開発中アプリケーション８に不正な部分がないかを確認することができる。
【０１１５】
又、出力部（Ｉ／Ｆ部５７）は、動作保証された命令、関数、ルーチン以外の命令、関数、ルーチンを使用するか否かのテスト結果を出力する。開発中アプリケーション８が、動作保証がない命令等を使用すれば、画像形成装置（例えば、複合機１）のフリーズ等、画像形成装置の動作に悪影響を与える場合がある。従って、開発中アプリケーション８が、動作保証がない命令等を使用するか否かを確認することにより、開発中アプリケーション８に不正な部分がないかを確認することができる。
【０１１６】
又、本発明は、画像形成装置だけでなく、画像形成システム１００の発明として捉えることもできる。具体的には、画像形成システム１００、少なくとも画像形成装置（例えば、複合機１）と、第１のコンピュータ（管理コンピュータ６）と、第２のコンピュータ（開発用コンピュータ７）で構成され、画像形成装置は、開発中アプリケーション８の画像形成装置への入力を受け付ける入力部（Ｉ／Ｆ部５７）と、入力された開発中アプリケーション８を記憶するとともに、実行された開発中アプリケーション８の動作を監視し、テストする監視ソフト８７を記憶する記憶部５３と、開発中アプリケーション８と、監視ソフト８７を動作させ、監視ソフト８７によるテスト結果を把握し、開発中アプリケーション８のハッシュ値を演算する制御部５と、テスト結果とハッシュ値を出力する出力部（Ｉ／Ｆ部５７）と、を備え、第１のコンピュータは、画像形成装置が出力したテスト結果とハッシュ値を取得する第１データ通信部６５を有し、取得したテスト結果に基づき、開発中アプリケーション８にエラーが含まれるか否かを判断し、エラー部分が含まれていない場合、少なくとも、ハッシュ値を第１データ通信部６５から出力し、第２のコンピュータは、開発中アプリケーション８を記憶するとともに第１のコンピュータからハッシュ値を取得する第２データ通信部７５を有し、取得したハッシュ値と、開発中アプリケーション８を対象として求めたハッシュ値が一致する場合、開発中アプリケーション８を画像形成装置（例えば、複合機１）にインストールできるようにパッケージングする第２のコンピュータと、を含む。
【０１１７】
この画像形成システム１００の構成によれば、画像形成装置（例えば、複合機１）は、テスト結果とハッシュ値を出力する。これによりパッケージングを行う際のアプリケーションのハッシュ値と、テストを行った画像形成装置が出力したハッシュ値を比較することができる。従って、テストが行われた時点から、パッケージングを行おうとするまでの間に、開発中アプリケーション８に対し改ざんが行われたかを確認することができる。又、画像形成装置（例えば、複合機１）の出力したテスト結果を第１のコンピュータ（管理コンピュータ６）で確認できる。従って、開発中アプリケーション８に問題があるか否か（エラーが含まれる不正なアプリケーションか否か）も確認することができる。
【０１１８】
又、画像形成システム１００では、第１のコンピュータ（管理コンピュータ６）は、開発中アプリケーション８にエラーが含まれていないと判断した場合、アプリケーションコードを生成し、ハッシュ値とともに、アプリケーションコードを第１データ通信部６５から出力し、第２のコンピュータ（開発用コンピュータ７）は、第１のコンピュータが生成したアプリケーションコードを読み込んだことを条件として、開発中アプリケーション８をパッケージングするようにしてもよい。
【０１１９】
この画像形成システム１００の構成によれば、第１のコンピュータ（管理コンピュータ６）は、アプリケーションコードを生成し、ハッシュ値とともに、アプリケーションコードを第１データ通信部６５から出力する。これにより、アプリケーションコードを与え、パッケージングにアプリケーションコードが必要になるという要件により、誰に、どのようなアプリケーションコードを与えるかが確認されて、誰がアプリケーションを開発したかを確認するステップが設けられる。従って、ＳＤＫ７６の流出等により、無許可の第三者が開発したアプリケーションのパッケージングを未然に防止することができる。
【０１２０】
又、画像形成システム１００での第１のコンピュータ（管理コンピュータ６）も、発明として捉えることもできる。第１のコンピュータは、取得したテスト結果に基づき、開発中アプリケーション８にエラーが含まれるか否かを判断し、ハッシュ値を出力する。これにより、第１のコンピュータは、開発中アプリケーション８に問題がないか否かを確認できる。又、第２のコンピュータ（開発用コンピュータ７）へのハッシュ値の引き渡しが必要となるので、第２のコンピュータの所持者を確認できる。従って、開発中アプリケーション８をパッケージングしようとする者が、許可した者かを確認することができる。
【０１２１】
又、画像形成システム１００での第２のコンピュータ（開発用コンピュータ７）も、発明として捉えることもできる。第２のコンピュータは、画像形成装置（例えば、複合機１）にインストールできるようにパッケージングしようとする開発中アプリケーション８のハッシュ値を求め、第１のコンピュータ（管理コンピュータ６）から取得したハッシュ値と、求めたハッシュ値の２つのハッシュ値が一致する場合にのみハッシュ値を求めた開発中アプリケーション８をパッケージングする。これにより、テスト時の開発中アプリケーション８に改ざんを加えていない場合のみ、パッケージングが行われる。従って、テスト時から改ざんされた開発中アプリケーション８のパッケージングを防ぐことができる。
【０１２２】
又、本発明は、画像形成装置や画像形成システム１００だけでなく、画像形成システム１００の制御方法と捉えることもできる。具体的には、画像形成システム１００の制御方法は、画像形成装置（例えば、複合機１）の入力部（Ｉ／Ｆ部５７）が開発中アプリケーション８の入力を受け付けるステップと、画像形成装置の記憶部５３が入力された開発中アプリケーション８を記憶するステップと、開発中アプリケーション８を動作させるステップと、制御部５が、開発中アプリケーション８の動作を監視し、テストする監視ソフト８７を動作させ、監視ソフト８７によるテスト結果を把握するステップと、制御部５が、開発中アプリケーション８のハッシュ値を演算するステップと、画像形成装置の出力部（Ｉ／Ｆ部５７）がテスト結果とハッシュ値を出力するステップと、第１のコンピュータ（管理コンピュータ６）が、第１データ通信部６５を用い、画像形成装置が出力したテスト結果とハッシュ値を取得するステップと、第１のコンピュータが、取得したテスト結果に基づき、開発中アプリケーション８にエラーが含まれるか否かを判断するステップと、第１のコンピュータが、エラーが含まれていない場合、ハッシュ値を第１データ通信部から出力するステップと、第２のコンピュータ（開発用コンピュータ７）が、第２データ通信部７５を用い、ハッシュ値を取得するステップと、第２のコンピュータが記憶し、画像形成装置にインストールできるようにパッケージングしようとする開発中アプリケーション８のハッシュ値を求めるステップと、第２のコンピュータが、取得したハッシュ値と、求めたハッシュ値の２つのハッシュ値が一致する場合、ハッシュ値を求めた開発中アプリケーション８を画像形成装置にインストールできるようにパッケージングするステップと、を含む。
【０１２３】
この画像形成システム１００の制御方法により、テスト時からパッケージングを行おうとするまでの間に、開発中アプリケーション８を改ざんしたかを確認することができ、開発中アプリケーション８のテスト結果も確認することができる。
【０１２４】
本発明の実施形態を説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で種々の変更を加えて実施することができる。
【産業上の使用可能性】
【０１２５】
本発明は、画像形成装置や、画像形成装置やコンピュータを含む画像形成システムに使用可能である。
【符号の説明】
【０１２６】
１      複合機（画像形成装置）            ５      制御部
５１    ＣＰＵ（演算部）                  ５３    記憶部
５５    ＲＡＭ（ランダムアクセスメモリ）
５６    ＨＤＤ（ハードディスクドライブ）  ５７    Ｉ／Ｆ部（入力部、出力部）
６      管理コンピュータ（第１のコンピュータ）
６５    第１データ通信部                  ７５    第２データ通信部
７      開発用コンピュータ（第２のコンピュータ）
１００  画像形成システム                  ８      開発中アプリケーション
８７    監視ソフト                        ９      外部記憶装置
【図１】
2012015749.tif 000003
【図２】
2012015749.tif 000004
【図３】
2012015749.tif 000005
【図４】
2012015749.tif 000006
【図５】
2012015749.tif 000007
【図６】
2012015749.tif 000008
【図７】
2012015749.tif 000009
【図８】
2012015749.tif 000010
【図９】
2012015749.tif 000011