(57)【特許請求の範囲】
【請求項１】
画像形成装置において実行される複数のアプリケーションのうちのエラーを生じるアプリケーションである不具合アプリケーションを修正するアプリケーション修正装置であって、
前記不具合アプリケーションを前記画像形成装置が実行した際の第一の条件と、前記複数のアプリケーションのうちの、当該不具合アプリケーションとの共通点を有する当該不具合アプリケーション以外のアプリケーションを当該不具合アプリケーションよりも後にエラーを生じることなく前記画像形成装置が実行した際の第二の条件と、に基づいて、当該不具合アプリケーションの中の不具合がある可能性のある不具合可能性個所を抽出する、抽出手段と、
前記第二の条件に基づいて前記不具合可能性個所を更新することによって前記不具合アプリケーションを修正する修正手段と、
を有することを特徴とするアプリケーション修正装置。
【請求項２】
前記不具合アプリケーションは、特定の種類のジョブを実行するためのアプリケーションであって、
前記共通点は、前記特定の種類のジョブを実行するためのアプリケーションであることである、
請求項１に記載のアプリケーション修正装置。
【請求項３】
前記特定の種類のジョブは、データを特定の宛先へ送信するジョブであって、
前記抽出手段は、前記特定の宛先へデータを送信することが含まれる条件を前記第二の条件として用いて前記不具合可能性個所を抽出する、
請求項２に記載のアプリケーション修正装置。
【請求項４】
前記特定の種類のジョブは、画像を出力するジョブであって、
前記抽出手段は、前記複数のアプリケーションのうちの、前記不具合アプリケーションにおける出力の対象の画像と同一の画像を出力するために用いられたアプリケーションが実行された際の条件を、前記第二の条件として用いて前記不具合可能性個所を抽出する、
請求項２に記載のアプリケーション修正装置。
【請求項５】
前記修正手段は、前記不具合可能性個所を更新することをユーザが許可した場合に、前記不具合アプリケーションを修正する、
請求項１ないし請求項４のいずれかに記載のアプリケーション修正装置。
【請求項６】
前記修正手段は、さらに、前記複数のアプリケーションのうち、前記不具合アプリケーション以外の、前記共通点を有するアプリケーションを修正する、
請求項２に記載のアプリケーション修正装置。
【請求項７】
画像形成装置において実行される複数のアプリケーションのうちのエラーを生じるアプリケーションである不具合アプリケーションを修正するアプリケーション修正方法であって、
前記不具合アプリケーションを前記画像形成装置が実行した際の第一の条件と、前記複数のアプリケーションのうちの、当該不具合アプリケーションとの共通点を有する当該不具合アプリケーション以外のアプリケーションを当該不具合アプリケーションよりも後にエラーを生じることなく前記画像形成装置が実行した際の第二の条件と、に基づいて、当該不具合アプリケーションの中の不具合がある可能性のある不具合可能性個所を抽出し、
前記第二の条件に基づいて前記不具合可能性個所を更新することによって前記不具合アプリケーションを修正する、
ことを特徴とするアプリケーション修正方法。
【請求項８】
画像形成装置において実行される複数のアプリケーションのうちのエラーを生じるアプリケーションである不具合アプリケーションを修正するコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記不具合アプリケーションを前記画像形成装置が実行した際の第一の条件と、前記複数のアプリケーションのうちの、当該不具合アプリケーションとの共通点を有する当該不具合アプリケーション以外のアプリケーションを当該不具合アプリケーションよりも後にエラーを生じることなく前記画像形成装置が実行した際の第二の条件と、に基づいて、当該不具合アプリケーションの中の不具合がある可能性のある不具合可能性個所を抽出する抽出処理を実行させ、
前記第二の条件に基づいて前記不具合可能性個所を更新することによって前記不具合アプリケーションを修正する修正処理を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置にインストールされているアプリケーションを書き換える技術に関する。
【背景技術】
【０００２】
近年、コピー、スキャン、ファックス、ドキュメント管理など様々な機能が備わった画像形成装置が普及している。このような画像形成装置は、「複合機」または「ＭＦＰ（Multi Function Peripherals）」と呼ばれることもある。
【０００３】
さらに、画像形成装置にウェブブラウザが備えられるようになった。ウェブブラウザでウェブサーバへアクセスし、ウェブアプリケーションをウェブサーバに実行させることによって、様々なサービスを受けることができるようになった。
【０００４】
また、「ＩＷＳ（Internal Web Server）」というウェブサーバを画像形成装置に設ける技術が、提案されている。画像形成装置のメーカ以外の企業またはユーザが、広く知られているＨＴＭＬ（Hypertext Markup Language）またはＪａｖａＳｃｒｉｐｔ（登録商標）などの言語を用いてウェブアプリケーションを作成して画像形成装置にインストールし、ＩＷＳに実行させることができる。よって、ＩＷＳによると、画像形成装置の機能の拡張性を従来よりも容易に向上させることができる。
【０００５】
そのほか、アプリケーションをインストールする作業の負担を軽減する技術として、次の技術が提案されている。インストールする新規アプリケーションの初期設定値として、既存アプリケーションの設定値を取得して自動的に反映する（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２６９６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
メーカによって作成され画像形成装置に予めインストールされているアプリケーションに比べて、ＩＷＳ上で動作するアプリケーションは、不具合が生じやすい。メーカ以外の企業またはユーザが自由に作成することができるからである。
【０００８】
不具合が生じるアプリケーションを画像形成装置に適するように書き換えることができれば、便利である。
【０００９】
本発明は、このような課題に鑑み、不具合が生じるアプリケーションを従来よりも容易に画像形成装置に適するように書き換えることを、目的とする。
【課題を解決するための手段】
【００１０】
本発明の一形態に係るアプリケーション修正装置は、画像形成装置において実行される複数のアプリケーションのうちのエラーを生じるアプリケーションである不具合アプリケーションを修正するアプリケーション修正装置であって、前記不具合アプリケーションを前記画像形成装置が実行した際の第一の条件と、前記複数のアプリケーションのうちの、当該不具合アプリケーションとの共通点を有する当該不具合アプリケーション以外のアプリケーションを当該不具合アプリケーションよりも後にエラーを生じることなく前記画像形成装置が実行した際の第二の条件と、に基づいて、当該不具合アプリケーションの中の不具合がある可能性のある不具合可能性個所を抽出する、抽出手段と、前記第二の条件に基づいて前記不具合可能性個所を更新することによって前記不具合アプリケーションを修正する修正手段と、を有する。
【００１１】
好ましくは、前記不具合アプリケーションは、特定の種類のジョブを実行するためのアプリケーションであって、前記共通点は、前記特定の種類のジョブを実行するためのアプリケーションであることである。
【００１２】
または、前記特定の種類のジョブは、データを特定の宛先へ送信するジョブであって、前記抽出手段は、前記特定の宛先へデータを送信することが含まれる条件を前記第二の条件として用いて前記不具合可能性個所を抽出する。
【００１３】
または、前記特定の種類のジョブは、画像を出力するジョブであって、前記抽出手段は、前記複数のアプリケーションのうちの、前記不具合アプリケーションにおける出力の対象の画像と同一の画像を出力するために用いられたアプリケーションが実行された際の条件を、前記第二の条件として用いて前記不具合可能性個所を抽出する。
【００１４】
または、前記修正手段は、前記不具合可能性個所を更新することをユーザが許可した場合に、前記不具合アプリケーションを修正する。
【００１５】
または、前記修正手段は、さらに、前記複数のアプリケーションのうち、前記不具合アプリケーション以外の、前記共通点を有するアプリケーションを修正する。
【発明の効果】
【００１６】
本発明によると、不具合が生じるアプリケーションを従来よりも容易に画像形成装置に適するように書き換えることができる。
【図面の簡単な説明】
【００１７】
【図１】アプリケーションシステムの全体的な構成の例を示す図である。
【図２】画像形成装置のハードウェア構成の例を示す図である。
【図３】画像形成装置のプラットフォームの例を示す図である。
【図４】メニュー画面の例を示す図である。
【図５】条件設定画面の例を示す図である。
【図６】ワンタッチ指令画面の例を示す図である。
【図７】条件設定画面の例を示す図である。
【図８】ワンタッチ指令画面の例を示す図である。
【図９】メニュー画面の例を示す図である。
【図１０】修正用プログラムによって実現される機能的構成の例を示す図である。
【図１１】ジョブ実績データ６１の例を示す図である。
【図１２】変更選択画面の例を示す図である。
【図１３】ソースコードの例を示す図である。
【図１４】修正用プログラムによる画像形成装置の全体的な処理の流れの例を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
図１は、アプリケーションシステム１００の全体的な構成の例を示す図である。図２は、画像形成装置１のハードウェア構成の例を示す図である。図３は、画像形成装置１のプラットフォームの例を示す図である。図４は、メニュー画面５０の例を示す図である。図５は、条件設定画面５３１の例を示す図である。図６は、ワンタッチ指令画面５３２の例を示す図である。図７は、条件設定画面５４１の例を示す図である。図８は、ワンタッチ指令画面５４２の例を示す図である。図９は、メニュー画面５７の例を示す図である。図１０は、修正用プログラム４８によって実現される機能的構成の例を示す図である。
【００１９】
図１に示すように、アプリケーションシステム１００は、画像形成装置１、サーバ装置２１、端末装置２２、印刷専用機２３、および通信回線２９などによって構成される。
【００２０】
画像形成装置１は、通信回線２９を介してサーバ装置２１、端末装置２２、および印刷専用機２３と通信することができる。通信回線２９として、ＬＡＮ（Local Area Network）回線、インターネット、公衆回線、または専用線などが用いられる。
【００２１】
画像形成装置１は、コピー、ＰＣプリント、ファックス、スキャン、ボックス、およびユビキタスなどのサービスを提供する機能を集約した装置である。一般に、「複合機」または「ＭＦＰ（Multi Function Peripherals）」などと呼ばれることがある。
【００２２】
ＰＣプリントのサービスは、端末装置２２から受信した画像データに基づいて画像を用紙に印刷するサービスである。「ネットワークプリンティング」または「ネットワークプリント」などと呼ばれることもある。
【００２３】
ボックスのサービスは、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像データなどを保存し管理するためのサービスである。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
【００２４】
スキャンのサービスは、用紙に記されている画像を読み取って画像データを生成し、記録媒体に保存しまたは他の装置へ送信するサービスである。保存先または送信先によって、サービスが細分化されている。例えば、保存先がボックスである「ＳＣＡＮ＿ＴＯ＿ＢＯＸ」、送信先が電子メールアドレスである「ＳＣＡＮ＿ＴＯ＿ＥＭＡＩＬ」、および送信先がＦＴＰ（File Transfer Protocol）サーバである「ＳＣＡＮ＿ＴＯ＿ＦＴＰ」などのサービスがある。
【００２５】
ユビキタスサービスは、他の画像形成装置と連携してユーザのログインおよびデータの管理などを行うサービスである。
【００２６】
サーバ装置２１は、ＦＴＰサーバであって、ＦＴＰによって他の装置へファイルを提供したり他の装置から受信したファイルを管理したりする。
【００２７】
端末装置２２は、画像形成装置１の上述のサービスを遠隔的に使用するためのクライアントである。端末装置２２として、パーソナルコンピュータ、スマートフォン、またはタブレットコンピュータなどが用いられる。
【００２８】
画像形成装置１は、図２に示すように、ＣＰＵ（Central Processing Unit）１０ａ、ＲＡＭ（Random Access Memory）１０ｂ、ＶＲＡＭ（Video RAM）１０ｃ、ＲＯＭ（Read Only Memory）１０ｄ、大容量記憶装置１０ｅ、タッチパネルディスプレイ１０ｆ、操作キーパネル１０ｇ、ＮＩＣ（Network Interface Card）１０ｈ、モデム１０ｉ、スキャンユニット１０ｊ、プリントユニット１０ｋ、およびフィニッシャ１０ｍなどによって構成される。
【００２９】
タッチパネルディスプレイ１０ｆは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびＣＰＵ１０ａが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ１０ｆは、タッチされた位置を示す信号をＣＰＵ１０ａへ送る。
【００３０】
ＶＲＡＭ１０ｃは、タッチパネルディスプレイ１０ｆに表示させる画面のデータを記憶するために用いられる。
【００３１】
操作キーパネル１０ｇは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
【００３２】
ＮＩＣ１０ｈは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などのプロトコルで他の装置との通信を行う。
【００３３】
モデム１０ｉは、ファクシミリ端末との間でＧ３などのプロトコルで画像データをやり取りする。
【００３４】
スキャンユニット１０ｊは、プラテンガラスの上にセットされたシートに記されている画像を読み取って画像データを生成する。
【００３５】
プリントユニット１０ｋは、スキャンユニット１０ｊによって読み取られた画像のほか、ＮＩＣ１０ｈまたはモデム１０ｉによって他の装置から受信した画像を用紙に印刷する。
【００３６】
フィニッシャ１０ｍは、プリントユニット１０ｋによって画像が印刷された用紙つまり印刷物をステープラで綴じたり、パンチ穴を開けたりする。フィニッシャ１０ｍは、いわゆるオプション装置であって、取り外すことができる。
【００３７】
ＲＯＭ１０ｄまたは大容量記憶装置１０ｅには、画像形成装置１の全体的な管理または基本的な処理を行ったりユーザインタフェースを提供したりするソフトウェアとして、図３に示すオペレーティングシステム１０１およびＭＦＰシステム１０２がインストールされている。オペレーティングシステム１０１またはＭＦＰシステム１０２の機能をアプリケーションに提供するために、ネイティブアプリケーショプラットフォーム１０３が用意されている。
【００３８】
さらに、大容量記憶装置１０ｅには、コピーアプリケーション４０１、スキャンアプリケーション４０２、およびボックスアプリケーション４０３のほか、ブラウザアプリケーション４０４、およびメニューアプリケーション４０５などがインストールされている。コピーアプリケーション４０１ないしメニューアプリケーション４０５などは、ネイティブアプリケーショプラットフォーム１０３を介して動作する。
【００３９】
また、大容量記憶装置１０ｅには、ＩＷＳ（Internal Web Server）用のソフトウェアであるウェブサーバシステム１０５がインストールされている。さらに、簡易設定コピーアプリケーション４７１、ワンタッチコピーアプリケーション４７２、スキャン送信アプリケーション４７３、ワンタッチスキャン送信アプリケーション４７４、およびメニューウェブアプリケーション４７５のほか、電子掲示板のアプリケーション、翻訳のアプリケーション、およびオンラインストレージのアプリケーションなどがインストールされている。これらのアプリケーションは、ウェブサーバシステム１０５を介して動作する。
【００４０】
このように、アプリケーションには、ネイティブアプリケーショプラットフォーム１０３を介して実行されるものもあれば、ウェブサーバシステム１０５を介して実行されるものもある。
【００４１】
以下、これらのアプリケーションを区別するために、ネイティブアプリケーショプラットフォーム１０３を介して実行されるアプリケーションを「ネイティブアプリケーション４０」と記載する。一方、ウェブサーバシステム１０５を介して実行されるアプリケーションを「ＩＷＳアプリケーション４７」と記載する。
【００４２】
コピーアプリケーション４０１、スキャンアプリケーション４０２、およびボックスアプリケーション４０３は、それぞれ、上述のコピー、スキャン、およびボックスの各サービスを提供するためのアプリケーションである。
【００４３】
コピーアプリケーション４０１によると、ユーザは、コピーに関するすべての項目（部数、カラー、用紙サイズ、倍率、読取解像度、出力解像度、印刷面、集約印刷、および仕上げなど）の条件を任意に設定し、コピーのジョブを画像形成装置１に実行させることができる。
【００４４】
スキャンアプリケーション４０２によると、ユーザは、スキャンに関するすべての項目の条件を任意に設定し、スキャンのジョブ（用紙から画像をスキャンして画像データを生成しそれを保存しまたは送信するジョブ）を画像形成装置１に実行させることができる。
【００４５】
ブラウザアプリケーション４０４は、ウェブブラウザである。メニューアプリケーション４０５は、図４のような、ネイティブアプリケーション４０のボタンを含むメニュー画面５０を表示し、ユーザが選択したボタンのネイティブアプリケーション４０を起動するアプリケーションである。
【００４６】
ネイティブアプリケーション４０は、基本的に画像形成装置１に固定的にインストールされている。
【００４７】
簡易設定コピーアプリケーション４７１は、コピーアプリケーション４０１と同様に、コピーのサービスをユーザへ提供する。上述の通りコピーアプリケーション４０１によるとコピーに関するすべての項目の条件を任意に設定することができたが、簡易設定コピーアプリケーション４７１によると、図５のような条件設定画面５３１がタッチパネルディスプレイ１０ｆに表示される。ユーザは、特定の一部の項目の条件のみを、条件設定画面５３１を介して設定し、コピーのジョブを画像形成装置１に実行させることができる。
【００４８】
ワンタッチコピーアプリケーション４７２も、コピーアプリケーション４０１と同様に、コピーのサービスをユーザへ提供する。ワンタッチコピーアプリケーション４７２によると、図６のようなワンタッチ指令画面５３２がタッチパネルディスプレイ１０ｆに表示される。ユーザは、中央のボタンを押すだけでジョブの指令を与えることができるが、予め決められた条件の通りにしかコピーのジョブを行わせることができない。
【００４９】
スキャン送信アプリケーション４７３は、スキャンアプリケーション４０２と同様に、スキャンのサービスをユーザへ提供する。上述の通りスキャンアプリケーション４０２によるとスキャンに関するすべての項目の条件を任意に設定することができたが、スキャン送信アプリケーション４７３によると、図７のような条件設定画面５４１がタッチパネルディスプレイ１０ｆに表示される。ユーザは、特定の一部の項目の条件のみを、条件設定画面５４１を介して設定し、スキャンのジョブを実行させることができる。
【００５０】
ワンタッチスキャン送信アプリケーション４７４も、スキャンアプリケーション４０２と同様に、スキャンのサービスをユーザへ提供する。ワンタッチスキャン送信アプリケーション４７４によると、図８のようなワンタッチ指令画面５４２がタッチパネルディスプレイ１０ｆに表示される。ユーザは、中央のボタンを押すだけでジョブの指令を与えることができるが、予め決められた条件の通りにしかスキャンのジョブを実行させることができない。
【００５１】
メニューウェブアプリケーション４７５は、図９のような、上に例示したネイティブアプリケーション４０およびＩＷＳアプリケーション４７のうちの特定のアプリケーションのボタンを含むメニュー画面５７を表示し、ユーザが選択したボタンのアプリケーションを起動するアプリケーションである。ユーザは、どのアプリケーションのボタンを配置するのかをカスタマイズすることができる。
【００５２】
ＩＷＳアプリケーション４７は、主にソースファイルによって構成される画像ファイルまたは音声ファイルが含まれることもある。ソースファイルとして、ウェブページファイルまたはプログラムファイルが用いられる。
【００５３】
ウェブページファイルは、そのＩＷＳアプリケーション４７のウェブページを表示するためのファイルであって、マークアップ言語（例えば、ＨＴＭＬ（Hypertext Markup Language）またはＸＭＬ（Extensible Markup Language））またはスクリプト言語（例えば、ＰｙｔｈｏｎまたはＪａｖａＳｃｒｉｐｔ（登録商標））によって記述される。
【００５４】
プログラムファイルは、ＣＧＩ（Common Gateway Interface）、例えば、ＰｙｔｈｏｎのＷＳＧＩ（Web Server Gateway Interface）によって記述される。
【００５５】
１つのＩＷＳアプリケーション４７にソースファイルが複数用意されていることもある。また、ウェブページファイルが予め用意されておらず、ウェブブラウザからアクセスがあるごとにプログラムファイルによって新たに生成されることも、ある。
【００５６】
ユーザは、ＩＷＳアプリケーション４７のインストールおよびアンインストールを自由に行うことができる。
【００５７】
さらに、大容量記憶装置１０ｅには、ジョブマネージャ４９がインストールされている。ジョブマネージャ４９は、ユーザがネイティブアプリケーション４０またはＩＷＳアプリケーション４７を用いてジョブの実行を指令すると、そのジョブをキューに登録する。そして、各ハードウェアの状況などに応じて、キューに登録されているジョブを順次、実行させる。
【００５８】
これらのソフトウェアを構成するモジュールまたはプログラムファイルは、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによって実行される。大容量記憶装置１０ｅとして、ハードディスクドライブまたはＳＳＤ（Solid State Drive）などが用いられる。
【００５９】
なお、オペレーティングシステム１０１、ＭＦＰシステム１０２、およびネイティブアプリケーショプラットフォーム１０３は、一般的な画像形成装置の従来のプラットフォームの要素の一部である。機種によっては、これらのすべての部分または一部分がファームウェアに相当する。一方、ウェブサーバシステム１０５は、ウェブアプリケーションを実行するために拡張した要素である。
【００６０】
さらに、ＩＷＳアプリケーション４７は、正常に動作しない場合に、修正用プログラム４８によって、正常に動作するように修正される。修正用プログラム４８は、大容量記憶装置１０ｅに予めインストールされている。そして、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによって実行される。
【００６１】
修正用プログラム４８は、ファームウェアの１つとして画像形成装置１にインストールされている。
【００６２】
以下、修正用プログラム４８によるＩＷＳアプリケーション４７の修正の仕組みについて説明する。
【００６３】
修正用プログラム４８は、図１０に示すジョブ実績保存部４８１、ジョブ実績書込部４８２、失敗ジョブ検索部４８３、成功ジョブ検索部４８４、条件差異抽出部４８５、変更選択画面表示部４８６、ソースファイル読出部４８７、不具合個所更新部４８８、およびソースファイル書換部４８９などの機能を実現するプログラムである。
【００６４】
〔修正に必要な情報の収集〕
図１１は、ジョブ実績データ６１の例を示す図である。
【００６５】
ジョブ実績保存部４８１には、図１１に示すように、画像形成装置１に与えられたジョブごとのジョブ実績データ６１が保存される。
【００６６】
ジョブ実績データ６１には、次の事項が示される。「ジョブ番号」は、そのジョブ実績データ６１に係るジョブを識別するための番号であって、実行された順に付される。「サービス」は、上に例示したコピー、ＰＣプリント、ファックス、ＳＣＡＮ＿ＴＯ＿ＢＯＸ、ＳＣＡＮ＿ＴＯ＿ＥＭＡＩＬ、およびＳＣＡＮ＿ＴＯ＿ＦＴＰなど、画像形成装置１が提供するサービスのうち、そのジョブによって提供されるサービスである。
【００６７】
「使用アプリケーション」は、そのジョブのために使用されたアプリケーションである。「結果」は、ジョブの実行の成否である。「成功」は、そのジョブが成功したことを意味し、「エラー」は、失敗したことを意味する。「ジョブ条件」は、そのジョブの条件である。
【００６８】
ジョブ実績書込部４８２は、ジョブが実行されるごとに、そのジョブのジョブ実績データ６１を生成し、ジョブ実績保存部４８１に書き込む。
【００６９】
このようにジョブが実行されるごとにジョブ実績書込部４８２によってジョブ実績データ６１が生成され、ジョブ実績保存部４８１にジョブ実績データ６１が蓄積される。
【００７０】
〔ＩＷＳアプリケーション４７の修正の処理〕
図１２は、変更選択画面５５の例を示す図である。図１３は、ソースコード４７ｃの例を示す図である。
【００７１】
失敗ジョブ検索部４８３ないしソースファイル書換部４８９は、所定のタイミングでＩＷＳアプリケーション４７の書換えの処理を実行する。例えば、画像形成装置１の電源がオンになりオペレーティングシステムが起動したタイミングで実行する。または、画像形成装置１がスリープモードになる直前に実行する。
【００７２】
失敗ジョブ検索部４８３は、ジョブ実績保存部４８１から、結果として「エラー」を示しかつ使用アプリケーションとしていずれかのＩＷＳアプリケーション４７を示すものを検索する。以下、失敗ジョブ検索部４８３によって検索されたジョブ実績データ６１を「失敗ジョブ実績データ６１Ｆ」と記載する。
【００７３】
成功ジョブ検索部４８４は、失敗ジョブ実績データ６１Ｆに示されるサービスと同じサービスを示しかつ結果として「成功」を示すジョブ実績データ６１をジョブ実績保存部４８１から検索する。ただし、検索の対象を、その失敗ジョブ実績データ６１Ｆに係るジョブよりも後に実行されたジョブのジョブ実績データ６１に限定する。以下、成功ジョブ検索部４８４によって検索されたジョブ実績データ６１を「成功ジョブ実績データ６１Ｓ」と記載する。
【００７４】
なお、ジョブマネージャ４９が、実行されたジョブの実績のデータをデータベース（例えば、ジョブ情報格納領域４３）へ記録する場合は、ジョブ実績保存部４８１およびジョブ実績書込部４８２の代わりにジョブマネージャ４９およびジョブ情報格納領域４３を用いてもよい。この場合は、失敗ジョブ検索部４８３および成功ジョブ検索部４８４は、ジョブ実績データ６１に相当するデータをジョブ情報格納領域４３から検索すればよい。
【００７５】
条件差異抽出部４８５は、失敗ジョブ実績データ６１Ｆに示されるジョブ条件および成功ジョブ実績データ６１Ｓに示されるジョブ条件を比較することによって、相違する部分のデータを抽出する。
【００７６】
例えば、ジョブ番号が「０００１」であるジョブ実績データ６１が失敗ジョブ実績データ６１Ｆであり、ジョブ番号が「０００２」であるジョブ実績データ６１が成功ジョブ実績データ６１Ｓである場合は、失敗ジョブ実績データ６１Ｆから「punch setting:true」および「output tray:Tray3」が抽出され、成功ジョブ実績データ６１Ｓから「punch setting:false」および「output tray:Tray1」が抽出される。
【００７７】
「：」の左側つまり「punch setting」および「output tray」は、アプリケーションにおける処理用の項目名である。右側つまり「true」、「false」、「Tray3」、および「Tray1」は、項目に設定されている条件を示す値（いわゆる条件値）である。
【００７８】
つまり、条件差異抽出部４８５は、失敗ジョブ実績データ６１Ｆおよび成功ジョブ実績データ６１Ｓから、項目名は同一であるが条件値が相違するデータを抽出する。
【００７９】
変更選択画面表示部４８６は、失敗ジョブ実績データ６１Ｆおよび成功ジョブ実績データ６１Ｓから条件差異抽出部４８５によって抽出されたデータに基づいて、図１２のような変更選択画面５５をタッチパネルディスプレイ１０ｆに表示させる。
【００８０】
「パンチ穴」および「排紙トレイ」は、ともに表示用の項目名であって、失敗ジョブ実績データ６１Ｆから抽出された「punch setting:true」の「punch setting」および「output tray:Tray3」の「output tray」に基づいている。各項目について、表示用の項目名と処理用の項目名との対応関係が予め変更選択画面表示部４８６に用意されている。この対応関係に基づいて、表示用の項目名が変更選択画面５５に配置される。後述する「あり」および「なし」などの条件値についても、同様である。
【００８１】
なお、表示用の項目名の代わりに処理用の項目名をそのまま変更選択画面５５に配置してもよい。
【００８２】
「あり→なし」の矢印（→）の左側はつまり「あり」は、表示用の条件値であって、失敗ジョブ実績データ６１Ｆの「punch setting:true」の「true」に対応している。同様に、右側つまり「なし」も表示用の条件値であって、成功ジョブ実績データ６１Ｓの「punch setting:false」の「false」に対応している。
【００８３】
「あり→なし」は、パンチ穴を複写物に開ける項目の条件を「あり」から「なし」に変更するか否かをユーザに問い合せるためのメッセージである。
【００８４】
そのメッセージの右に、変更選択ボタン５５１および変更非選択ボタン５５２が１つずつ配置される。
【００８５】
ユーザは、「あり」から「なし」に変更したい場合は、変更選択ボタン５５１を押す。変更したくない場合は、変更非選択ボタン５５２を押す。
【００８６】
「トレイ３→トレイ１」についても、同様の仕組みによって変更選択画面５５に各オブジェクト（メッセージおよびボタン）が配置される。ユーザは、複写物を排出するための排紙トレイを「トレイ３」から「トレイ１」に変更したい場合は、その項目に対応する変更選択ボタン５５１を押し、変更したくない場合は、その項目に対応する変更非選択ボタン５５２を押す。
【００８７】
ユーザは、各項目について条件を変更するか否かを決め、それに応じて変更選択ボタン５５１または変更非選択ボタン５５２を押す操作を行ったら、実行ボタン５５３を押す。
【００８８】
すると、ソースファイル読出部４８７は、失敗ジョブ実績データ６１Ｆに使用アプリケーションとして示されるＩＷＳアプリケーション４７のソースファイルを大容量記憶装置１０ｅから読み出す。
【００８９】
不具合個所更新部４８８は、ソースファイル読出部４８７によって読み出されたソースファイルを次のように更新する。以下、ワンタッチコピーアプリケーション４７２のソースファイルが読み出された場合を例に説明する。
【００９０】
不具合個所更新部４８８は、そのソースファイルに示されるソースコードの中から、更新対象項目に対応する個所を検索する。「更新対象項目」は、変更選択画面表示部４８６が失敗ジョブ実績データ６１Ｆから抽出したデータに項目名が示されかつユーザが図１２の変更選択画面５５において変更選択ボタン５５１を押した項目である。成功ジョブ実績データ６１Ｓから、その更新対象項目に対して設定されている条件値を抽出する。そして、そのソースコードの中の、その更新対象項目に対して設定されている条件値を、抽出した条件値に置き換える。
【００９１】
例えば、そのソースファイルにソースコードとして、図１３（Ａ）のようなソースコード４７ｃが示されており、失敗ジョブ実績データ６１Ｆおよび成功ジョブ実績データ６１Ｓがそれぞれ、図１１の通りジョブ番号が「０００１」であるジョブ実績データ６１およびジョブ番号が「０００２」であるジョブ実績データ６１であり、かつパンチ穴（punch setting）についてのみ変更選択ボタン５５１が押された場合は、「punch setting:true」の「true」を「false」に置き換える。
【００９２】
または、パンチ穴だけでなく排出トレイ（output tray）についても変更選択ボタン５５１が押された場合は、図１３（Ｂ）のように、さらにソースコード４７ｃの中の「output tray:Tray3」の「Tray3」を「Tray1」に置き換える。
【００９３】
このようにソースコードに対する条件値の置換えがなされることによって、ソースファイルが更新される。
【００９４】
ソースファイル書換部４８９は、大容量記憶装置１０ｅに記憶されている古いソースファイル（例えば、図１３（Ａ）のソースコード４７ｃのソースファイル）を、更新されたソースファイル（例えば、図１３（Ｂ）のソースコード４７ｃのソースファイル）に置き換える。つまり、ソースファイルの書換えを行う。これにより、ワンタッチコピーアプリケーション４７２が修正される。
【００９５】
なお、１つのＩＷＳアプリケーション４７について複数のソースファイルがある場合は、それぞれについて、上述の処理を行う。これにより、これらのソースファイルの一部または全部が書き換えられる。
【００９６】
ワンタッチコピーアプリケーション４７２によって実行されるジョブが、ワンタッチコピーアプリケーション４７２がインストールされた当初はエラーが生じないが、後にエラーが生じることがある。その原因の１つとして、フィニッシャ１０ｍが画像形成装置１から取り外されたことが、考えられる。
【００９７】
しかし、修正用プログラム４８によると、エラーが発生した後、同じサービスを提供する他のアプリケーション（ネイティブアプリケーション４０またはＩＷＳアプリケーション４７）を用いて正常に実行されたジョブの情報に基づいてワンタッチコピーアプリケーション４７２を修正することができる。本例では、パンチ穴を開けないようにワンタッチコピーアプリケーション４７２が修正される。よって、修正後、エラーを生じることなくジョブを実行させることができる。
【００９８】
または、ワンタッチスキャン送信アプリケーション４７４によって実行されるジョブが、ワンタッチスキャン送信アプリケーション４７４がインストールされた当初はエラーが生じないが、後にエラーが生じることがある。その原因の１つとして、サーバ装置２１へのログインに使用するパスワードが、インストールの後、しばらく経ってから変更されたことが、考えられる。
【００９９】
しかし、修正用プログラム４８によると、エラーが発生した後、同じサービスを提供する他のアプリケーション（ネイティブアプリケーション４０またはＩＷＳアプリケーション４７）を用いて正常に実行されたジョブの情報に基づいてワンタッチスキャン送信アプリケーション４７４を修正することができる。例えば、図１１に示す、ジョブ番号が「０００４」であるジョブ実績データ６１を失敗ジョブ実績データ６１Ｆとして用い、ジョブ番号が「０００５」であるジョブ実績データ６１を成功ジョブ実績データ６１Ｓとして用いて、パスワードが変更後のもの（「ｅｆｇ９８７ａａａ」）になるようにワンタッチコピーアプリケーション４７２が修正される。よって、修正後、エラーを生じることなくジョブを実行させることができる。
【０１００】
図１４は、修正用プログラム４８による画像形成装置１の全体的な処理の流れの例を説明するフローチャートである。
【０１０１】
次に、画像形成装置１が修正用プログラム４８に基づいて実行する全体的な処理の流れを、図１４のフローチャートを参照しながら説明する。
【０１０２】
画像形成装置１は、電源がオンになりオペレーティングシステムが起動するなど、所定のタイミングが訪れると（＃７０１でＹｅｓ）、ジョブ実績保存部４８１の中から、「エラー」を結果として示すジョブ実績データ６１を検索する（＃７０２）。検索されたジョブ実績データ６１は、以下、失敗ジョブ実績データ６１Ｆとして用いられる。
【０１０３】
検索した失敗ジョブ実績データ６１Ｆに係るジョブがＩＷＳアプリケーション４７によって実行されたものであれば（＃７０３でＹｅｓ）、画像形成装置１は、その失敗ジョブ実績データ６１Ｆに示されるサービスと同一のサービスを示しかつ結果として「成功」を示すジョブ実績データ６１を検索する（＃７０４）。ただし、検索の対象を、その失敗ジョブ実績データ６１Ｆに係るジョブよりも後に実行されたジョブのジョブ実績データ６１に限定する。検索されたジョブ実績データ６１は、以下、成功ジョブ実績データ６１Ｓとして用いられる。
【０１０４】
成功ジョブ実績データ６１Ｓがあった場合は（＃７０５でＹｅｓ）、画像形成装置１は、その失敗ジョブ実績データ６１Ｆに示されるジョブ条件およびその成功ジョブ実績データ６１Ｓに示されるジョブ条件を比較することによって、相違する部分のデータを抽出する（＃７０６）。
【０１０５】
そして、画像形成装置１は、抽出したデータに基づいて、変更選択画面５５（図１２参照）を表示する（＃７０７）。
【０１０６】
ここで、ユーザは、条件値を変更したい項目については、それに対応する変更選択ボタン５５１を押す。変更したくない項目については、それに対応する変更非選択ボタン５５２を押す。そして、実行ボタン５５３を押すことによって、変更を指令する。
【０１０７】
すると、画像形成装置１は、変更選択画面５５に対してなされた指定を受け付ける（＃７０８）。少なくとも１つの項目について変更選択ボタン５５１が押された場合は（＃７０９でＹｅｓ）、その失敗ジョブ実績データ６１Ｆに示されるＩＷＳアプリケーション４７のソースファイルを読み出し（＃７１０）、ステップ＃７０６で抽出したデータに示される項目（更新対象項目）に対応する個所を検索する（＃７１１）。そして、その成功ジョブ実績データ６１Ｓの中からその更新対象項目に対して設定されている条件値を抽出し、そのソースファイルに示されるソースコードの中の、その更新対象項目に対して設定されている条件値を、抽出した条件値に置き換える（＃７１２）。
【０１０８】
これにより、ソースファイルが更新される。画像形成装置１は、大容量記憶装置１０ｅに記憶されている古いソースファイルを、更新したソースファイルに置き換える（＃７１３）。
【０１０９】
ステップ＃７０２において複数のジョブ実績データ６１が失敗ジョブ実績データ６１Ｆとして得られた場合は、画像形成装置１は、それぞれの失敗ジョブ実績データ６１Ｆについてステップ＃７０３〜＃７１３の処理および＃７１４〜＃７１５の処理を適宜、実行する。
【０１１０】
または、画像形成装置１は、ジョブを実行するごとに（＃７１４でＹｅｓ）、そのジョブのジョブ実績データ６１を生成し、ジョブ実績保存部４８１によって保存する（＃７１５）。
【０１１１】
画像形成装置１は、電源がオフになるまで、ステップ＃７０１〜＃７１５の処理を適宜、実行する。
【０１１２】
なお、修正の際に失敗ジョブ実績データ６１Ｆとして使用されたジョブ実績データ６１をジョブ実績保存部４８１から削除してもよい。
【０１１３】
本実施形態によると、不具合が生じるアプリケーションを従来よりも容易に画像形成装置に適するように修正することができる。
【０１１４】
本実施形態では、失敗ジョブ実績データ６１Ｆに対応する成功ジョブ実績データ６１Ｓとして、（１）失敗ジョブ実績データ６１Ｆに係るジョブ（失敗ジョブ）と同一のサービスを提供するためのジョブであること、（２）失敗ジョブよりも後に実行されたジョブであること、（３）成功したジョブであること、の３つの要件を満たすジョブのジョブ実績データ６１を使用し、ＩＷＳアプリケーション４７の修正を行った。
【０１１５】
しかし、成功ジョブ実績データ６１Ｓとして使用するジョブ実績データ６１を例えば次のように、さらに限定してもよい。
【０１１６】
上記の３つの要件に該当するジョブ実績データ６１が複数ある場合は、最も古いジョブ実績データ６１、つまり、失敗ジョブの後において最も先に実行されたジョブのジョブ実績データ６１を使用する。
【０１１７】
または、（４）宛先が失敗ジョブと同一であるジョブであることを、さらに要件として加えてもよい。または、（５）失敗ジョブにおける複写または送信の対象である画像データと同一の画像データを複写しまたは送信したジョブであることを、さらに要件として加えてもよい。または、（６）失敗ジョブの実行後、所定の時間以内に実行されたジョブであることを、さらに要件として加えてもよい。または、（４）〜（６）のいずれか２つまたはすべてを、さらに要件として加えてもよい。
【０１１８】
（５）の要件を用いる場合は、画像データまたはその特徴を表わすデータ（例えば、ハッシュデータ）をジョブ実績データ６１に含めてジョブ実績保存部４８１に記録しておく。そして、それに基づいて（５）の要件を満たすか否かを判別する。
【０１１９】
（４）または（５）の要件を課すことによって、不具合のあるＩＷＳアプリケーション４７の修正を、そのＩＷＳアプリケーション４７の代わりにユーザが使用したアプリケーションのジョブ実績データ６１を成功ジョブ実績データ６１Ｓとして使用して行うことができる。よって、修正の正確性を高めることができる。
【０１２０】
本実施形態では、画像形成装置１は、変更選択画面５５においてユーザが変更選択ボタン５５１を選択した項目についてのみ、ソースコードの書換えを行ったが、ユーザに選択させることなく、条件値が相違するすべての項目について、書換えを行ってもよい。
【０１２１】
本実施形態では、ＩＷＳアプリケーション４７を画像形成装置１が修正したが、他の装置、例えばメンテナンス用のコンピュータが修正してもよい。
【０１２２】
本実施形態では、画像形成装置１は、実行するのに失敗したＩＷＳアプリケーション４７を修正したが、このＩＷＳアプリケーション４７と同一のサービスを提供しかつエラーの原因として同一の条件値が設定されている他のＩＷＳアプリケーション４７も、修正してもよい。これにより、未だエラーを発生させていないが、不具合があると考えられる他のＩＷＳアプリケーション４７を予め修正することができる。
【０１２３】
その他、アプリケーションシステム１００、画像形成装置１の全体または各部の構成、処理内容、処理順序、データの構成、画面の構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【０１２４】
１  画像形成装置（アプリケーション修正装置）
４０  ネイティブアプリケーション
４７  ＩＷＳアプリケーション
４７２  ワンタッチコピーアプリケーション（不具合アプリケーション）
４７４  ワンタッチスキャン送信アプリケーション（不具合アプリケーション）
４８５  条件差異抽出部（抽出手段）
４８８  不具合個所更新部（修正手段）
６１Ｆ  失敗ジョブ実績データ（第一の条件）
６１Ｓ  成功ジョブ実績データ（第二の条件）
【図１】
0006547392.tif 000002
【図２】
0006547392.tif 000003
【図３】
0006547392.tif 000004
【図４】
0006547392.tif 000005
【図５】
0006547392.tif 000006
【図６】
0006547392.tif 000007
【図７】
0006547392.tif 000008
【図８】
0006547392.tif 000009
【図９】
0006547392.tif 000010
【図１０】
0006547392.tif 000011
【図１１】
0006547392.tif 000012
【図１２】
0006547392.tif 000013
【図１３】
0006547392.tif 000014
【図１４】
0006547392.tif 000015