(57)【要約】      （修正有）【課題】複数のプログラムを含んで構成されるソフトウェアにおいて、プログラム構成の変更を容易に実行可能にする。【解決手段】操作端末から入力された情報を受信し、受信した操作情報に基づいて、予め設定された条件に対応するプログラムを取得し、取得したプログラムをインストールし、インストールされたプログラムが複数のプログラムによって構成されるソフトウェアに含まれるようにソフトウェアの更新を行い、ソフトウェアの実行を制御し、操作端末から受信した情報に基づいてソフトウェアが正常に実行されたか否かの判定を行い、判定の結果に基づいて、インストールされたプログラムが含まれないようにソフトウェアの更新を行う。【選択図】図１３
2019008543.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された情報処理装置から取得したプログラムをインストールする画像処理装置であって、
操作端末から入力された操作情報を受信する操作情報受信制御部と、
受信した前記操作情報に基づいて、予め設定された条件に対応するプログラムを前記情報処理装置から取得するプログラム取得部と、
取得した前記プログラムをインストールし、インストールされた前記プログラムが複数のプログラムによって構成されるソフトウェアに含まれるように当該ソフトウェアの更新を行うプログラム更新部と、
前記ソフトウェアに含まれる前記複数のプログラムの実行を制御することによって、前記ソフトウェアの実行を制御する実行制御部と、
前記操作端末から受信した前記操作情報に基づいて前記ソフトウェアが正常に実行されたか否かの判定を行う実行結果判定部と、
を含み、
前記プログラム更新部は、
前記判定の結果に基づいて、インストールされた前記プログラムが前記ソフトウェアに含まれないように当該ソフトウェアの更新を行うことを特徴とする画像処理装置。
【請求項２】
前記ソフトウェアからインストールされた前記プログラムを分離させるプログラム分離部を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記プログラム分離部は、
前記ソフトウェアからインストールされた前記プログラムを分離し、
前記プログラム更新部は、
インストールされた前記プログラムとは異なるバージョンのプログラムが含まれるように当該ソフトウェアの更新を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記プログラム分離部は、
前記ソフトウェアからインストールされた前記プログラムを分離し、
前記プログラム更新部は、
前記プログラムがインストールされる直前の当該ソフトウェアに含まれていたバージョンのプログラムが含まれるように当該ソフトウェアの更新を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記ソフトウェアが正常に実行されたか否かを示す履歴を記憶装置に記憶させる実行履歴記憶制御部を含み、
前記実行結果判定部は、
記憶されている前記履歴と前記条件とに基づいて前記ソフトウェアが正常に実行されたか否かの判定を行うことを特徴とする請求項１から請求項４のいずれか一項に記載の画像処理装置。
【請求項６】
前記ソフトウェアが正常に実行されたか否かを示す履歴を記憶装置に記憶させる実行履歴記憶制御部と、
記憶されている前記履歴に基づいて前記ソフトウェアから除外する除外プログラムを決定する除外条件決定部と、
を含み、
前記実行結果判定部は、
前記除外プログラムが除外されて構成されたソフトウェアが正常に実行されたか否かの判定を行うことを特徴とする請求項１から請求項４のいずれか一項に記載の画像処理装置。
【請求項７】
情報処理装置と前記情報処理装置とネットワークを介して接続された画像処理装置とによって構成されるシステムであって、
前記情報処理装置は、
プログラムを記憶するプログラム記憶部と、
記憶されている前記プログラムを、前記ネットワークを介して接続された他の装置に送信するプログラム送信制御部と、
を含み、
前記画像処理装置は、
操作端末から入力された操作情報を受信する操作情報受信制御部と、
受信した前記操作情報に基づいて、予め設定された条件に対応するプログラムを取得するプログラム取得部と、
取得した前記プログラムをインストールし、インストールされた前記プログラムが複数のプログラムによって構成されるソフトウェアに含まれるように当該ソフトウェアの更新を行うプログラム更新部と、
前記ソフトウェアの実行を制御する実行制御部と、
前記操作端末から受信した前記操作情報に基づいて前記ソフトウェアが正常に実行されたか否かの判定を行う実行結果判定部と、
を含み、
前記プログラム更新部は、
前記判定の結果に基づいて、インストールされた前記プログラムが前記ソフトウェアに含まれないように当該ソフトウェアの更新を行うことを特徴とするシステム。
【請求項８】
情報処理装置と前記情報処理装置とネットワークを介して接続された画像処理装置とによって構成されるシステムの制御方法であって、
前記情報処理装置は、
プログラムを記憶するプログラム記憶部に記憶されている前記プログラムを、前記ネットワークを介して接続された他の装置に送信し、
前記画像処理装置は、
操作端末から入力された操作情報を受信し、
受信した前記操作情報に基づいて、予め設定された条件に対応するプログラムを取得し、
取得した前記プログラムをインストールし、インストールされた前記プログラムが複数のプログラムによって構成されるソフトウェアに含まれるように当該ソフトウェアの更新を行い、
前記ソフトウェアの実行を制御し、
前記操作端末から受信した前記操作情報に基づいて前記ソフトウェアが正常に実行されたか否かの判定を行い、
前記判定の結果に基づいて、インストールされた前記プログラムが前記ソフトウェアに含まれないように当該ソフトウェアの更新を行うことを特徴とする制御方法。
【請求項９】
ネットワークを介して接続された情報処理装置から取得したプログラムをインストールする画像処理装置の制御プログラムであって、
操作端末から入力された操作情報を受信するステップと、
受信した前記操作情報に基づいて、予め設定された条件に対応するプログラムを取得するステップと、
取得した前記プログラムをインストールし、インストールされた前記プログラムが複数のプログラムによって構成されるソフトウェアに含まれるように当該ソフトウェアの更新を行うステップと、
前記ソフトウェアの実行を制御するステップと、
前記操作端末から受信した前記操作情報に基づいて前記ソフトウェアが正常に実行されたか否かの判定を行うステップと、
を実行させ、
前記ソフトウェアの更新を行うステップにおいて、前記判定の結果に基づいて、インストールされた前記プログラムが前記ソフトウェアに含まれないように当該ソフトウェアの更新を行うことを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、システム、制御方法、制御プログラムに関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリおよび書類の電子化に用いるスキャナなどの画像処理装置は欠かせないものとなっている。このような画像処理装置は、撮像機能、画像形成機能、および通信機能などを備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置は、プリンタ、ファクシミリ、スキャナ、複写機のそれぞれの機能を利用するための複数のプログラムを含んで構成されているソフトウェアによって制御される。また、このようなソフトウェアによって画像処理装置に何らかの問題が検知された場合、修正版のソフトウェアにアップデートして検知された問題を回避する。さらに、修正版のソフトウェアが準備されていない場合には、過去使用されていたソフトウェアを用いて当該画像処理装置が制御されるようにソフトウェアのダウングレードを行うことにより、検知された問題を回避する。
【０００４】
複数のプログラムを含んで構成されるソフトウェアをアップデートする技術として、クライアント端末およびサーバにそれぞれ保存されているプログラムのバージョン情報に基づいて、クライアント端末に最新バージョンのプログラムをダウンロードし、クライアント端末の電源再投入時に最新バージョンのプログラムを起動する技術が開示されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プリンタ、ファクシミリ、スキャナ、複写機の機能を利用するための個々のプログラムを含むソフトウェアをアップデートした際に、アップデート後のソフトウェアに基づいて画像処理装置を動作させたときに問題が生ずることがある。このような問題が検知された場合、特許文献１の技術では、どのプログラムが問題の原因になったものであるか（当該画像処理装置に対応していないものであるか）を判別することができない。したがって、特許文献１の技術では、複数のプログラムを含んで構成されているソフトウェアにおいて、画像処理装置に対応していないプログラムを特定することができない。
【０００６】
本発明は、このような課題を解決するためになされたものであり、複数のプログラムを含んで構成されるソフトウェアにおいて、プログラム構成の変更を容易に実行可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は、ネットワークを介して接続された情報処理装置から取得したプログラムをインストールする画像処理装置であって、操作端末から入力された操作情報を受信する操作情報受信制御部と、受信した前記操作情報に基づいて、予め設定された条件に対応するプログラムを前記情報処理装置から取得するプログラム取得部と、取得した前記プログラムをインストールし、インストールされた前記プログラムが複数のプログラムによって構成されるソフトウェアに含まれるように当該ソフトウェアの更新を行うプログラム更新部と、前記ソフトウェアに含まれる前記複数のプログラムの実行を制御することによって、前記ソフトウェアの実行を制御する実行制御部と、前記操作端末から受信した前記操作情報に基づいて前記ソフトウェアが正常に実行されたか否かの判定を行う実行結果判定部と、を含み、前記プログラム更新部は、前記判定の結果に基づいて、インストールされた前記プログラムが前記ソフトウェアに含まれないように当該ソフトウェアの更新を行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のプログラムを含んで構成されるソフトウェアにおいて、プログラム構成の変更を容易に実行可能にすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るシステムの運用形態を示す図。
【図２】本発明の実施形態に係る画像処理装置および操作端末のハードウェア構成を示す図。
【図３】本発明の実施形態に係るサーバのハードウェア構成を示す図。
【図４】本発明の実施形態に係る画像処理装置の機能構成を示す図。
【図５】本発明の実施形態に係る画像処理装置の主制御部の内部構成を示す図。
【図６】本発明の実施形態に係るサーバの機能構成を示す図。
【図７】本発明の実施形態に係るプログラム記憶部に記憶されているパッケージを示す図。
【図８】本発明の実施形態に係る画像処理装置にダウンロードされたパッケージを示す図。
【図９】本発明の実施形態に係る操作表示制御部が実行する処理の流れを示すフローチャート。
【図１０】本発明の実施形態に係るプログラム構成メニューを示す図。
【図１１】本発明の実施形態に係るプログラム構成の設定を行うための画面を示す図。
【図１２】本発明の実施形態に係る入出力装置に表示される画面を示す図。
【図１３】本発明の実施形態に係る問題が生じる原因となっているプログラムを特定する処理の流れを示すフローチャート。
【図１４】本発明の実施形態に係るプログラムの構成例を示す図。
【図１５】本発明の実施形態に係るプログラム構成の設定を行うための画面を示す図。
【図１６】本発明の実施形態に係るプログラムの構成例を示す図。
【図１７】本発明の実施形態に係るプログラム構成の設定を行うための画面を示す図。
【図１８】本発明の実施形態に係るプログラム構成の設定を行うための画面を示す図。
【図１９】本発明の実施形態に係る画像処理装置の動作履歴を示す図。
【図２０】本発明の実施形態に係るプログラム構成の設定を行うための画面を示す図。
【図２１】本発明の実施形態に係る画像処理装置の動作履歴を示す図。
【図２２】本発明の実施形態に係るプログラム構成の設定を行うための画面を示す図。
【図２３】本発明の実施形態に係るプログラム記憶部に記憶されているパッケージを示す図。
【図２４】本発明の実施形態に係る問題が生じる原因となっているプログラムを特定する処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施形態を説明する。本実施形態においては、ユーザが操作入力を行うためのユーザインタフェースとして、タッチパネルやキーボードを備えた画像処理装置であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）と、画像処理装置を制御するソフトウェアが記憶されているサーバとをネットワークで接続して構成されるシステムを例として挙げて説明を行う。
【００１１】
まず、本実施形態に係るシステム４の全体構成について説明する。図１は、本実施形態に係るシステム４の運用形態を示す図である。図１に示すように、本実施形態に係るシステム４は、画像処理装置１とサーバ３とがネットワーク５を介して接続されて構成されている。画像処理装置１は、画像処理装置１を操作するための操作表示部である操作端末２と、ネットワークもしくは信号線を介して接続されている。
【００１２】
画像処理装置１は、撮像機能、画像形成機能および通信機能などを備えることによって、プリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰである。操作端末２はユーザが操作する端末であり、ユーザの操作に基づいて、画像処理装置１に印刷ジョブの実行やジョブの設定、画像処理装置１に必要なプログラムのインストールを実行する操作情報を送信する端末である。
【００１３】
操作端末２には、プリンタ、ファクシミリ、スキャナ、複写機を利用するためのアプリケーションがインストールされており、そのアプリケーションを利用して、画像処理装置１に印刷ジョブの実行やジョブ設定、画像処理装置１に必要なプログラムのインストールを実行する情報を送信する。なお、操作端末２は、タッチパネルやキーボードなど、画像処理装置１の操作部であって、画像処理装置１に着脱可能な構成であってもよい。
【００１４】
サーバ３は、画像処理装置１を制御するプログラムや、操作端末２から画像処理装置１に搭載された機能を利用するためのアプリケーションなどが記憶された記憶部を含む情報処理装置である。また、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を情報処理装置として用いる構成であってもよい。
【００１５】
サーバ３は、ネットワーク５を介して接続されているクライアント端末からの要求を受けて、記憶されている各種のプログラムをクライアント端末に送信する。なお、本実施形態においては、画像処理装置１がサーバ３のクライアント端末として機能する。
【００１６】
次に、本実施形態に係る画像処理装置１および操作端末２のハードウェア構成について図２を参照して説明する。図２は、本実施形態に係る画像処理装置１および操作端末２のハードウェア構成を示すブロック図である。図２に示すように、操作端末２は、画像処理装置１における入出力機能を実現する装置として構成される。なお、図２においては、操作端末２が画像処理装置１に取り付けられている構成を例として説明する。
【００１７】
本実施形態に係る画像処理装置１は、一般的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバ等の情報処理装置と同様の構成を有する。すなわち、本実施形態に係る画像処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶媒体４０、Ｉ／Ｆ５０がバス９０を介して接続されている。また、画像処理装置１は、スキャナ、プリンタ等を実現するためのエンジン８０を備える。
【００１８】
ＣＰＵ１０は演算手段であり、画像処理装置１全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。記憶媒体４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム（以後、アプリケーション）等が格納されている。
【００１９】
Ｉ／Ｆ５０は、バス９０と各種のハードウェアやネットワーク５等を接続し制御する。また、画像処理装置１に接続された操作端末２は、タッチパネルやハードキー等によって構成され、操作表示部として機能する。
【００２０】
このようなハードウェア構成において、ＲＯＭ３０に格納されたプログラムや記憶媒体４０はからＲＡＭ２０に読み出されたプログラムにしたがってＣＰＵ１０が演算を行うことにより、図４において説明するコントローラ１００内部の機能が構成される。このようにして構成されたコントローラ１００内部の機能と、ハードウェアとの組み合わせによって、画像処理装置１の機能を実現する機能ブロックが構成される。
【００２１】
また、図２に示すように、本実施形態に係る操作端末２は、ＣＰＵ１２、ＲＡＭ２２、ＲＯＭ３２、フラッシュメモリ等の記憶媒体４２、Ｉ／Ｆ５２がバス９２を介して接続されている。また、Ｉ／Ｆ５２を介して、画像処理装置１やネットワーク５と接続され、情報の送受信を行う。さらに、入出力装置７１は、操作受付部の一例であって、タッチスクリーンおよび操作画面上に表示されるアイコン等の図形化情報であるソフトキーを含む。ユーザは、そして、外部接続Ｉ／Ｆ５１は、ＩＣカードリーダ等の周辺装置と接続するためのインタフェースである。
【００２２】
ＣＰＵ１２は演算手段であり、操作端末２全体の動作を制御する。ＲＡＭ２２は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１２が情報を処理する際の作業領域として用いられる。ＲＯＭ３２は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。記憶媒体４２は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳや各種の制御プログラム、アプリケーション・プログラム（以後、アプリケーションと記載する）等が格納されている。なお、操作端末２の画面を介してユーザが行うアプリケーションの操作に基づいて、例えば、印刷ジョブの実行やスキャン実行等の、画像処理装置１に搭載されている機能の実行や、印刷時における印刷条件の設定を、それぞれの項目ごとに指示することができる。
【００２３】
Ｉ／Ｆ５２は、バス９２と各種のハードウェアやネットワーク５等を接続して制御する。入出力装置７１は、上述したように、Ｉ／Ｆ５２を介して受信した画像処理装置１の状態をユーザが確認する、または、ユーザが画像処理装置１に情報を入力するためのユーザインタフェースである。なお、本実施形態において、入出力装置７１は、タッチパネルによって構成され、その動作原理方式としては、抵抗膜方式、表面弾性波方式、静電容量方式等を用いることができる。
【００２４】
このようなハードウェア構成において、ＲＯＭ３２に格納されたプログラムや記憶媒体４２はからＲＡＭ２２に読み出されたプログラムにしたがってＣＰＵ１２が演算を行うことにより、操作端末２全体の動作を制御する制御部が構成される。このようにして構成された制御部の機能と、ハードウェアとの組み合わせによって、操作端末２の動作を制御する機能ブロックが構成される。
【００２５】
次に、図３を参照して、サーバ３のハードウェア構成について説明する。図３は、本実施形態に係るサーバ３のハードウェア構成を示すブロック図である。本実施形態に係るサーバ３は、ＣＰＵ１３、ＲＡＭ２３、ＲＯＭ３３、ＨＤＤ４３、Ｉ／Ｆ５３がバス９３を介して接続されている。
【００２６】
ＣＰＵ１３は演算手段であり、サーバ３全体の動作を制御する。ＲＡＭ２３は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１３が情報を処理する際の作業領域として用いられる。ＲＯＭ３３は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。
【００２７】
ＨＤＤ４３は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳや各種の制御プログラム、アプリケーション等が格納されている。Ｉ／Ｆ５３は、バス９３と各種のハードウェアやネットワーク５等を接続し制御する。
【００２８】
このようなハードウェア構成において、ＲＯＭ３３に格納されたプログラムやＨＤＤ４３はからＲＡＭ２３に読み出されたプログラムにしたがってＣＰＵ１３が演算を行うことにより、図６において説明するサーバ３内部の機能が構成される。このようにして構成されたサーバ３内部の機能と、ハードウェアとの組み合わせによって、サーバ３の機能を実現する機能ブロックが構成される。
【００２９】
次に、図４を参照して、本実施形態に係る画像処理装置１の機能構成について説明する。図４に示すように、画像処理装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１０１、スキャナユニット１０２、排紙トレイ１０３、操作端末２、給紙テーブル１０５、プリントエンジン１０６、排紙トレイ１０７およびネットワークＩ／Ｆ１０８を有する。
【００３０】
また、コントローラ１００は、主制御部１１０、エンジン制御部１２０、画像処理部１３０、操作表示制御部１４０および入出力制御部１５０を含む。図４に示すように、画像処理装置１は、スキャナユニット１０２、プリントエンジン１０６を有する複合機として構成されている。なお、図４においては、電気的な接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００３１】
操作端末２は、画像処理装置１の状態を視覚的に表示する表示部であるとともに、タッチパネルとしてユーザが画像処理装置１を直接操作し、もしくは、画像処理装置１に対して情報を入力する際の入力部でもある。すなわち、操作端末２は、ユーザによる操作を受けるための画像を表示する操作表示部として機能する。
【００３２】
ネットワークＩ／Ｆ１０８は、画像処理装置１がネットワークを介して他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられる。ネットワークＩ／Ｆ１０８は、ＴＣＰ／ＩＰプロトコルによる通信が可能である。また、ネットワークＩ／Ｆ１０８は、画像処理装置１がファクシミリとして機能する際に、ファクシミリ送信を実行するためのインタフェースとしても機能する。そのため、ネットワークＩ／Ｆ１０８は、電話回線にも接続されている。ネットワークＩ／Ｆ１０８は、図２に示すＩ／Ｆ５０によって実現される。
【００３３】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０や不揮発性メモリ、ならびに、ＨＤＤや光学ディスクなどの不揮発性の記憶媒体４０に格納されたプログラムが、ＲＡＭ２０などの揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ１０がそのプログラムに従って演算を行うことにより構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、画像処理装置１全体を制御する制御部として機能する。
【００３４】
主制御部１１０は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１２０は、プリントエンジン１０６やスキャナユニット１０２などを制御する、もしくは、駆動する駆動手段としての役割を担う。画像処理部１３０は、主制御部１１０の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１０６が画像形成動作において形成すべき画像を描画するための情報である。
【００３５】
また、画像処理部１３０は、スキャナユニット１０２から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像処理装置１の記憶領域に格納され、もしくは、ネットワークＩ／Ｆ１０８を介して他の情報処理端末や記憶装置に送信される情報である。
【００３６】
操作表示制御部１４０は、操作端末２に情報表示を行い、もしくは、操作端末２を介して入力された情報を主制御部１１０に通知する操作情報受信制御部として機能する。入出力制御部１５０は、ネットワークＩ／Ｆ１０８を介して入力される情報を主制御部１１０に入力する。また、主制御部１１０は、入出力制御部１５０を制御し、ネットワークＩ／Ｆ１０８およびネットワークを介してネットワークに接続された他の機器にアクセスする。
【００３７】
画像処理装置１がプリンタとして動作する場合は、まず、入出力制御部１５０がネットワークＩ／Ｆ１０８を介して印刷ジョブを受信する。入出力制御部１５０は、受信した印刷ジョブを主制御部１１０に転送する。主制御部１１０は、印刷ジョブを受信すると、画像処理部１３０を制御して印刷ジョブに含まれる文書情報もしくは画像情報に基づいて描画情報（描画データ）を生成させる。
【００３８】
画像処理部１３０によって描画情報が生成されると、エンジン制御部１２０は、プリントエンジン１０６を制御し、上記生成された描画情報に基づき、給紙テーブル１０５から搬送される用紙に対して画像形成を実行させる。すなわち、画像処理部１３０、エンジン制御部１２０およびプリントエンジン１０６が画像形成出力部として機能する。プリントエンジン１０６によって画像形成が施された文書は排紙トレイ１０７に排紙される。
【００３９】
画像処理装置１がスキャナとして動作する場合は、ユーザによる操作端末２の操作もしくはネットワークＩ／Ｆ１０８を介して他の端末から入力されるスキャン実行指示に応じて、操作表示制御部１４０もしくは入出力制御部１５０が主制御部１１０にスキャン実行信号を転送する。主制御部１１０は、受信したスキャン実行信号に基づき、エンジン制御部１２０を制御する。
【００４０】
エンジン制御部１２０は、ＡＤＦ１０１を駆動し、ＡＤＦ１０１にセットされた撮像対象原稿をスキャナユニット１０２に搬送する。また、エンジン制御部１２０は、スキャナユニット１０２を駆動し、ＡＤＦ１０１から搬送される原稿を撮像する。また、ＡＤＦ１０１に原稿がセットされておらず、スキャナユニット１０２に直接原稿がセットされた場合、スキャナユニット１０２は、エンジン制御部１２０の制御に従い、セットされた原稿を撮像する。すなわち、スキャナユニット１０２が撮像部として動作するとともに、エンジン制御部１２０が、読取制御部として機能する。
【００４１】
撮像動作においては、スキャナユニット１０２に含まれるＣＩＳ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ）やＣＣＤ（ｃｈａｒｇｅ−ｃｏｕｐｌｅｄ  ｄｅｖｉｃｅ）などの撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部１２０は、スキャナユニット１０２が生成した撮像情報を画像処理部１３０に転送する。画像処理部１３０は、主制御部１１０の制御に従い、エンジン制御部１２０から受信した撮像情報に基づき画像情報を生成する。
【００４２】
画像処理部１３０が生成した画像情報は主制御部１１０が取得し、主制御部１１０がＨＤＤ５４などの画像処理装置１に装着された記憶媒体に保存する。すなわち、スキャナユニット１０２、エンジン制御部１２０および画像処理部１３０が連動して、画像入力部として機能する。画像処理部１３０によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ５４等に格納されもしくは入出力制御部１５０およびネットワークＩ／Ｆ１０８を介して外部の装置に送信される。
【００４３】
また、画像処理装置１が複写機として動作する場合は、エンジン制御部１２０がスキャナユニット１０２から受信した撮像情報もしくは画像処理部１３０が生成した画像情報に基づき、画像処理部１３０が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１２０がプリントエンジン１０６を駆動する。なお、描画情報と撮像情報との情報形式が同一である場合は、撮像情報をそのまま描画情報として用いることも可能である。
【００４４】
また、主制御部１１０は、図５に示すように、プログラム構成部１１１、プログラム更新部１１２、プログラム分離部１１３を含む。本実施形態において、主制御部１１０は、コントローラ１００に含まれる各部から送信される情報を受信して、画像処理装置１にダウンロードされたプログラムを用いて画像処理装置１に搭載されている機能を実行した際に、問題が発生するか否かを判定する。
【００４５】
プログラム構成部１１１は、操作端末２から送信された操作信号に基づいて、画像処理装置１にダウンロードするプログラムの構成を決定する。そしてプログラム構成部１１１は、ＲＯＭ３０、ＲＡＭ２０、記憶媒体４０に記憶されているプログラムを取得するか、もしくは、決定された構成のプログラムを取得する取得情報をサーバ３に送信し、取得情報に基づいてサーバ３から送信されてくるプログラムを取得する。
【００４６】
プログラム更新部１１２は、プログラム構成部１１１が取得したプログラムをインストールして、画像処理装置１において使用されるプログラムのアップデートを実行する。
【００４７】
プログラム分離部１１３は、操作端末２から送信された操作信号に基づいて、画像処理装置１においてインストールされたプログラムを実行した際に問題が発生するか否かを判定する。さらに、プログラム分離部１１３は、問題が発生すると判定されたプログラムを特定する情報を、入出力制御部１５０を介してサーバ３に送信する。プログラム分離部１１３によってサーバ３に送信される情報は、問題が発生すると判定されたプログラムを分離するための情報として使用される。
【００４８】
具体的に、プログラム分離部１１３は、操作端末２から送信された信号を操作表示制御部１４０から受信して、画像処理装置１に搭載されている機能が正常に実行されたか否かを判定する。ユーザは、画像処理装置１に搭載されている機能を実行した際に、例えば、印刷されない画像がある、スキャン動作ができない、といった問題が生じているか否かに応じて操作端末２を操作する。操作端末２は、ユーザの操作に基づいて出力された操作信号を画像処理装置１に送信する。
【００４９】
次に、サーバ３の機能構成について図６を参照して説明する。サーバ３は、プログラム送信制御部３０１、プログラム記憶部３０２を含む。プログラム送信制御部３０１は、プログラム構成部１１１から受信した情報に応じたプログラムを、画像処理装置１に送信する。
【００５０】
プログラム記憶部３０２は、画像処理装置１において使用される各種のプログラムが記憶されている記憶領域である。プログラム記憶部３０２においては、図７に示すように、画像処理装置１において使用されるプログラム群がひとまとまりのパッケージにされて記憶されている。以後、プログラム記憶部３０２で記憶されているプログラム群のそれぞれを総じて「ソフトウェア４００」と記載する。
【００５１】
プログラム記憶部３０２には、図７に示すように、ソフトウェア４０１、ソフトウェア４０２、ソフトウェア４０３が記憶されている。なお、ソフトウェア４０３が、画像処理装置１のソフトウェア４００の最新バージョンである。
【００５２】
ソフトウェア４０１に含まれるそれぞれのプログラムのバージョンは、システム：１．０、コピー：１．０、プリンタ：１．０、ＦＡＸ：０．５、スキャナ：１．０である。また、ソフトウェア４０２に含まれるそれぞれのプログラムのバージョンは、システム：２．０、コピー：１．１、プリンタ：１．１、ＦＡＸ：１．０、スキャナ：２．０である。ソフトウェア４０３に含まれるそれぞれのプログラムのバージョンは、システム：３．０、コピー：１．２、プリンタ：１．２、ＦＡＸ：１．１、スキャナ：２．１である。
【００５３】
一般的に、サーバ３のクライアント端末において使用されるファームウェアなどのソフトウェア４００のアップデートを行う際には、クライアント端末に搭載されている機能を実行するためのプログラム群がひとまとまりのパッケージになったもの（本実施形態のソフトウェアに相当するもの）がクライアント端末にダウンロードされる。すなわち、本実施形態においては、コピー、プリンタ、ＦＡＸ、スキャナのそれぞれの機能、そして、画像処理装置１のシステムを制御するためのプログラムがひとまとまりに画像処理装置１にダウンロードされる。
【００５４】
図８は、画像処理装置１にダウンロードされたパッケージを示す図である。図８には、ソフトウェア４０３を画像処理装置１にダウンロードしたものを例として挙げている。このとき、ソフトウェア４０３に含まれるプログラムによって画像処理装置１を動作させると、印刷されない画像がある、スキャン動作ができない、などの問題が生じることがある。
【００５５】
このような場合、ソフトウェア４０３よりも前のバージョンのソフトウェア４０２を再度、画像処理装置１にダウンロードするか、もしくは、ソフトウェア４０３よりも新しいバージョンのパッケージを画像処理装置１にダウンロードすることによって生じた問題を解消することができる。
【００５６】
しかし、がソフトウェア４０２を再度、画像処理装置１にダウンロードした場合、ソフトウェア４０３で改良された機能を画像処理装置１において使用できなくなってしまう。また、新しいバージョンのソフトウェア４００を画像処理装置１にダウンロードするためには、新しいバージョンのソフトウェア４００が開発されるまで待たなければならない。
【００５７】
そこで、本実施形態では、複数のプログラムをパッケージ化して構成されるソフトウェア４００から、問題が生じる原因となるプログラムを特定することによって、画像処理装置１に適したプログラムを構成する。このようにすることによって、ユーザは、問題が生じる原因となっているプログラムにのみ対処するだけで、パッケージ化されているソフトウェア４００がアップデートされて画像処理装置１に生じる問題を解消することができる。
【００５８】
次に、本実施形態において、複数のプログラムをパッケージ化して構成されるソフトウェアから、問題が生じる原因となるプログラムを特定する処理の流れについて図を参照して説明する。図９は、本実施形態に係る操作表示制御部１４０が実行する処理の流れを示すフローチャートである。
【００５９】
操作端末２から画像処理装置１に最適なプログラム構成の実行を指示する所定の操作が行われたことを示す操作信号を受信したことをトリガーとして、操作表示制御部１４０は、図１０に示すように、操作端末２の入出力装置７１に「プログラム構成」を行うための画面（「プログラム構成メニュー」）を表示させる（Ｓ９０１）。
【００６０】
なお、本実施形態において、「プログラム構成」とは、さまざまなバージョンのプログラムを組み合わせてソフトウェア４００を構成することを示す。また、「プログラム構成条件」とは、さまざまなバージョンのプログラムを組み合わせるときに、組み合わせるプログラムの種類、組み合わせるプログラムのバージョンを示す条件のことである。
【００６１】
操作端末２から画像処理装置１に最適なプログラム構成の実行を指示する所定の操作とは、例えば、画像処理装置１の動作中にユーザが、操作端末２の入出力装置７１に表示されているソフトキーを長押しするなどの操作としてもよい。
【００６２】
このとき、操作端末２は、例えば、画像処理装置１を制御するためのソフトウェアがアップデートされた直後に操作端末２が操作されたときに、操作端末２において画像処理装置１に最適なプログラム構成の実行を指示する所定の操作が行われたとして、操作信号を出力してもよい。
【００６３】
入出力装置７１に表示された「プログラム構成メニュー」画面において、「プログラム構成の設定」キーが操作されると、ＣＰＵ１２は、図１１に示すように、入出力装置７１に「プログラム構成の設定」を行うための画面を表示させ、当該画面に対してユーザが行った操作に基づいて「プログラム構成条件」を設定する（Ｓ９０２）。Ｓ９０２で設定された「プログラム構成条件」を、ＲＡＭ２２で一時的に保存する構成であってもよい。
【００６４】
ユーザは、入出力装置７１に表示された「プログラム構成の設定」画面を操作して、画像処理装置１のプログラムを構成するにあたっての条件を設定する。図１１に示す「プログラム構成の設定」画面では、「対象となるプログラム：全てのプログラム」、「構成条件：１つ前のバージョンまで」という設定がユーザによってなされている。
【００６５】
「対象となるプログラム：全てのプログラム」、「構成条件：１つ前のバージョンまで」という設定がなされた場合、画像処理装置１のシステム、および、画像処理装置１に搭載されている機能（コピー、プリンタ、ＦＡＸ、スキャナ）の全てのプログラムにおいて１つ前のバージョンまで含んだ画像処理装置１のプログラムを組み合わせてソフトウェアを構成する。
【００６６】
なお、画像処理装置１においてプログラムの構成が実行されている間には、図１２（ａ）に示すように、コピー動作など画像処理装置１の動作状況を示す画面において「プログラム構成中」を示す画像もしくはソフトキーが入出力装置７１に表示される。
【００６７】
「プログラム構成条件」が設定されると、ＣＰＵ１２は、入出力装置７１の画面を図１０の画面に遷移させる。そして、図１０に示す「プログラム構成開始」キーが押下されるなど、入出力装置７１に表示された画面に対してユーザによってプログラムの構成を開始するための操作が実行されると、ＣＰＵ１２は、Ｓ９０２で設定された「プログラム構成条件」を示す情報と、プログラム構成を開始する命令情報とを画像処理装置１に送信する（Ｓ９０３）。
【００６８】
操作端末２からプログラム構成を開始する命令情報を受信すると、主制御部１１０は、画像処理装置１を制御するソフトウェアを構成する複数のプログラムにおいて、問題が生じる原因となるプログラムの有無を特定する処理を開始する。図１３は、本実施形態に係る複数のプログラムをパッケージ化して構成される画像処理装置１のソフトウェアから、問題が生じる原因となっているプログラムを特定する処理の流れを示すフローチャートである。
【００６９】
図１３の処理においては、画像処理装置１が、図１４（ａ）に示される「（システム：３．０）、（コピー：１．２）、（プリンタ：１．２）、（ＦＡＸ：１．１）、（スキャナ：２．１）」のバージョンのプログラムによって構成されるソフトウェアによって制御されていると仮定して説明を行う。
【００７０】
画像処理装置１が操作端末２から送信される操作情報の一種である命令情報を受信すると、プログラム構成部１１１は、「プログラム構成条件」を示す情報をサーバ３に送信し、サーバ３からプログラムをダウンロードする（Ｓ１３０１）。ここで、「命令情報」とはプログラム構成を開始する命令を含む情報である。したがって、プログラム構成部１１１は、プログラム取得部としても機能する。プログラム送信制御部３０１は、「プログラム構成条件」を示す情報に対応するプログラムをプログラム記憶部３０２から取得し、画像処理装置１に送信する。
【００７１】
プログラム送信制御部３０１は、図１４（ｂ）に示すように、まず、「（システム：２．０）」のプログラムを画像処理装置１に送信する。プログラム構成部１１１は、サーバ３から送信されたプログラムをダウンロードする。本実施形態において、「ダウンロード」とは、異なる装置からプログラムもしくはソフトウェアなどのデータファイルを取得することを示す。
【００７２】
プログラム更新部１１２は、ダウンロードされたプログラム「（システム：２．０）」をインストールして、画像処理装置１を制御するソフトウェアを構成する複数のプログラムを更新し、主制御部１１０は、更新された後のソフトウェアによって画像処理装置１を動作させる（Ｓ１３０２）。したがって、主制御部１１０は、実行制御部として機能する。  
【００７３】
本実施形態において、「インストール」とは、ダウンロードしたプログラムやソフトウェアを装置において実行可能な状態にすることを示す。また、「更新」とは、インストールされたプログラムを含めてソフトウェアをアップデートすることを示す。
【００７４】
このとき、主制御部１１０は、例えば、スキャナユニット１０２にセットされた原稿を読み取り、読み取った画像を印刷するなどの動作を実行するように画像処理装置１を制御する。ユーザは、Ｓ１３０２における動作の状況を判断して、操作端末２を操作し、画像処理装置１の動作に問題があるか否かを入力する。
【００７５】
ユーザによって画像処理装置１の動作に問題があることを示す操作が行われた場合、操作端末２は、更新後のプログラムにおいて画像処理装置１の動作に問題があることを示す情報を画像処理装置１に送信する（Ｓ１３０３）。画像処理装置１の動作に問題があることを示す操作とは、例えば、図１２（ａ）に示す画面において、「プログラム構成中」を示すソフトキーが長押しされる操作のことである。
【００７６】
ユーザによって画像処理装置１の動作に問題がないことを示す操作が行われた場合、操作端末２は、更新後のプログラムにおいて画像処理装置１の動作に問題がないことを示す情報を画像処理装置１に送信する（Ｓ１３０３）。画像処理装置１の動作に問題がないことを示す操作とは、例えば、図１２（ａ）に示す画面において、「プログラム構成中」を示すソフトキーを押下することによって遷移した図１２（ｂ）に示す画面上で、「問題なし」のソフトキーを押下する操作のことである。
【００７７】
プログラム分離部１１３は、操作端末２から受信した情報に基づいて更新後のプログラムにおいて画像処理装置１の動作に問題が発生しているか否か判定する（Ｓ１３０４）。したがって、プログラム分離部１１３は、実行結果判定部としても機能する。
【００７８】
更新後のプログラムにおいて画像処理装置１の動作に問題が発生していない場合（Ｓ１３０４／ＮＯ）、プログラム分離部１１３は、Ｓ１３０１でダウンロードしたプログラムがインストールされる前のプログラムによって画像処理装置１の動作に問題が生じていると判定し、更新前のプログラムを特定する情報をプログラム更新部１１２に送信する（Ｓ１３０５）。
【００７９】
そして、プログラム分離部１１３は、「プログラム構成条件」において示されているプログラムの組み合わせすべてに対して、再度Ｓ１３０１からの一連の処理を実行する（Ｓ１３０６）。
【００８０】
すなわち、図１４（ｂ）に示す（システム：２．０）、図１４（ｃ）に示す（コピー：１．１）、図１４（ｄ）に示す（プリンタ：１．１）、図１４（ｅ）に示す（ＦＡＸ：１．０）、図１４（ｆ）に示す（スキャナ：２．０）の順に、プログラムを入れ替えた組み合わせのプログラム構成について、再度Ｓ１３０１からの一連の処理を実行する。
【００８１】
なお、プログラム構成に含まれるプログラムの組み合わせは、図１４（ａ）から図１４（ｃ）に示すように、図１４（ｂ）のプログラム構成に含まれている「システム：２．０」のプログラムは、図１４（ｃ）に示すように「システム：３．０」に変更されてプログラム構成が実行され、プログラム更新部１１２によってプログラム構成が更新される。
【００８２】
これは、図１４（ｂ）のプログラム構成において画像処理装置１の動作に問題が生じていない場合、システム以外のプログラムによって画像処理装置１の動作に問題が生じていることが明らかなためである。そのため、プログラム分離部１１３は、インストールされた「システム：２．０」のプログラムを分離させる。そして、プログラム更新部１１２は、「システム：２．０」がインストールされる直前のプログラム構成に含まれていた「システム：３．０」のプログラムを含めてプログラム構成を更新する。
【００８３】
なお、本実施形態において「プログラムの分離」とは、ソフトウェア４００に含まれる所定のバージョンのプログラムを切り分けることを示す。また、プログラムが分離されると、プログラム更新部１１２は、切り分けたプログラムのバージョン違いのものを含めてソフトウェアを更新する。
【００８４】
更新後のプログラムにおいて画像処理装置１の動作に問題が発生している場合（Ｓ１３０４／ＹＥＳ）、プログラム分離部１１３は、Ｓ１３０１でダウンロードしたプログラムがインストールされる前のプログラムによっては、画像処理装置１の動作に問題は生じないと判定する。そして、プログラム分離部１１３は、「プログラム構成条件」において示されているプログラムの組み合わせすべてに対して、再度Ｓ１３０１からの一連の処理を実行する（Ｓ１３０７）。
【００８５】
プログラム分離部１１３は、全ての組み合わせについて更新後のプログラムにおいて画像処理装置１の動作に問題が発生している場合、どのプログラムが画像処理装置１の動作に影響を与えているか判定できないことを示す情報をプログラム構成部１１１に送信する（Ｓ１３０８）。
【００８６】
ユーザは、画像処理装置１の動作に問題があるか否かを入力したのち、操作端末２においてプログラムの構成を終了するための操作を実行する。操作端末２は、ユーザの操作に基づいて画像処理装置１のプログラムの構成を終了するための命令情報を画像処理装置１に送信する（Ｓ１３０９）。プログラム構成部１１１は、Ｓ１３０８の命令情報を受信すると、プログラムの構成を終了する（Ｓ１３１０）。
【００８７】
なお、図１５に示すように、入出力装置７１に「プログラム構成の設定」を行うための画面を表示させ、当該画面に対してユーザが行った操作に基づいて、図１１とは異なる「プログラム構成条件」を設定し、図９および図１３のフローチャートに従った処理を実行してもよい。
【００８８】
図１５においては、「対象となるプログラム：全てのプログラム」、「構成条件：２つ前のバージョンまで」という設定がなされている。このような場合、画像処理装置１は、画像処理装置１のシステム、および、画像処理装置１に搭載されている機能の全てのプログラムにおいて、２つ前のバージョンまで含んだ画像処理装置１のプログラムを組み合わせてソフトウェアを構成し、図９および図１３のフローチャートに従った処理を実行する。
【００８９】
図１５に示す「プログラム構成条件」では、「構成条件：２つ前のバージョンまで」という設定がなされている。そのため、図９および図１３のフローチャートに従って処理を行う場合、図１６（ａ）から図１６（ｅ）に示すように、それぞれのプログラムにおいて２つ前のバージョンまでを組み合わせて、更新後のプログラムにおいて画像処理装置１の動作に問題が発生しているか否かの判定が実行される。
【００９０】
また、図１７に示すように、「プログラム構成条件」として、「対象となるプログラム：プリンタ以外の全てのプログラム」、「構成条件：２つ前のバージョンまで」を「全て検証する」という設定を行ってもよい。
【００９１】
このような場合、図９および図１３のフローチャートに従って処理を行う場合、システム、コピー、ＦＡＸ、スキャナのそれぞれのプログラムにおいて２つ前のバージョンまでを組み合わせて、更新後のプログラムにおいて画像処理装置１の動作に問題が発生しているか否かの判定が実行される。なお、プリンタのプログラムについては、プログラム構成開始時点におけるバージョンのプログラムのみを使用してプログラム構成が実行される。
【００９２】
さらに異なる「プログラム構成条件」の設定態様として、更新後のプログラムにおいて画像処理装置１の動作に問題があるか否かを判定するために、図１８に示すように、「対象となるプログラム：ＦＡＸ」、「問題なしとする条件：ネットワークに正常に接続」という設定を行い、図９および図１３に示すフローチャートの処理を実行させてもよい。
【００９３】
図１８に示す設定では、ネットワークに接続してＦＡＸの送受信を行う際に、画像処理装置１においてネットワークへの接続が成功したか否かを示す動作の履歴情報を参照して更新後のプログラムにおいて画像処理装置１の動作に問題があるか否かを判定する。
【００９４】
図１９は、ネットワークに接続してＦＡＸの送受信を行う際に、画像処理装置１においてネットワークへの接続ができなかった場合の履歴情報を示す図である。図１９に示すように、画像処理装置１がネットワークと接続したか否かを示す履歴は、４５１４行目において「ｃｈｅｃｋ  Ｃｏｎｎｅｃｔ」という履歴情報で示されている。
【００９５】
また、４５１５行目では、「ｅｒｒｏｒ」という履歴情報が記録されており、４５１６行目の「ｅｘｉｔ  ｆｕｎｃ＿ＦＡＸ」という履歴情報によって、ＦＡＸのプログラムを終了させたことが記録されている。図１８では、「問題なしとする条件：ネットワークに正常に接続」されたことが更新後のプログラムにおいて画像処理装置１の動作に問題がないと判定される条件として設定されている。
【００９６】
図１９に示すように、画像処理装置１においてネットワークへの接続ができなかった場合、ＦＡＸのプログラムが起動した履歴情報である「ｃａｌｌ  ｆｕｎｃ＿ＦＡＸ」からＦＡＸのプログラムが終了した履歴情報である「ｅｘｉｔ  ｆｕｎｃ＿ＦＡＸ」の間の履歴情報において、「ｃｈｅｃｋ  Ｃｏｎｎｅｃｔ」の次の行に「ｅｒｒｏｒ」が記録される。
【００９７】
そのため、図９および図１３のフローチャートに従って処理を実行した場合に、「ｃａｌｌ  ｆｕｎｃ＿ＦＡＸ」から「ｅｘｉｔ  ｆｕｎｃ＿ＦＡＸ」の間の履歴情報において、「ｃｈｅｃｋ  Ｃｏｎｎｅｃｔ」の次の行に「ｅｒｒｏｒ」が記録された場合、プログラム分離部１１３は、更新後のプログラムにおいて画像処理装置１の動作に問題があると判定する。
【００９８】
さらに異なる「プログラム構成条件」の設定態様として、更新後のプログラムにおいて画像処理装置１の動作に問題があるか否かを判定するために、図２０に示すように、問題のある機能のプログラムと、問題の発生しないプログラムの組み合わせとを指定して「プログラム構成条件」として設定してもよい。
【００９９】
図２０に示す「プログラム構成条件」においては、「対象となるプログラム：プリンタ」、「問題が発生しない構成条件：（システム：２．０）、（コピー：１．０）、（プリンタ：１．１）、（ＦＡＸ：１．０）、（スキャナ：１．０）」という条件が設定されている。
【０１００】
このような「プログラム構成条件」を設定することにより、プログラム構成部１１１は、サーバ３からダウンロードするプログラムを、プリンタのプログラムのみに限定することができる。さらに、「問題が発生しない構成条件」において設定されたバージョンよりも古いバージョンの組み合わせについては、画像処理装置１で問題なく動作することが確認されている。
【０１０１】
そのため、プログラム構成部１１１は、「問題が発生しない構成条件」において設定されたバージョンよりも古いバージョンのプログラムを組み合わせることなくプログラム構成を実行する。したがって、更新後のプログラムにおいて画像処理装置１の動作に問題があるか否かを判定する処理の負荷を低減させることができる。
【０１０２】
また、画像処理装置１の動作中に問題が発生したときの履歴情報に基づいて、図２０の「プログラム構成条件」における「対象となるプログラム」を決定してもよい。主制御部１１０は、画像処理装置１の動作中に問題が発生した場合の履歴情報を参照し、「プログラム構成条件」における「対象となるプログラム」を決定する。
【０１０３】
主制御部１１０は、記憶媒体４０やＲＯＭ３０に画像処理装置１の動作中に問題が発生した履歴情報を記憶させる。したがって、主制御部１１０は、実行履歴記憶制御部として機能する。図２１は、画像処理装置１の動作中に問題が発生したときの履歴情報を示す図である。図２１では、プリンタのプログラムに２回、スキャナのプログラムに１回、それぞれ問題が発生したことを示す履歴情報が示されている。
【０１０４】
プログラム構成部１１１は、この履歴情報を解析し、主制御部１１０は、解析結果に基づいて問題があると判定したプログラムの情報を、操作表示制御部１４０に送信する。操作表示制御部１４０は、Ｓ９０１の処理において、解析結果に基づいて問題があると判定されたプログラムの情報を「プログラム構成」を行うための画像を表示させる情報とともに操作端末２に送信する。
【０１０５】
このとき、入出力装置７１は、「プログラム構成の設定」を行うための画面を、解析結果に基づいて問題があると判定されたプログラムが「対象となるプログラム」としてデフォルトで指定された状態で表示する。
【０１０６】
また、入出力装置７１において、「プログラム構成の設定」画面において、解析結果に基づいて問題があると判定されたプログラム以外のプログラムを「対象となるプログラム」として設定する構成であってもよい。
【０１０７】
主制御部１１０は、解析結果に基づいて問題があると判定されたプログラムを「対象となるプログラム」から除外する除外プログラムとして、除外プログラムの情報を操作表示制御部１４０に送信してもよい。したがって、主制御部１１０は、除外条件決定部としても機能する。
【０１０８】
本実施形態において、「除外プログラム」とは、「プログラム構成条件」に基づいて、さまざまなバージョンのプログラムを組み合わせるときに、組み合わせ対象とされないプログラムのことを示す。また、本実施形態において「プログラムを除外する」とは、解析結果に基づいて問題があると判定されたプログラムを、組み合わせ対象にせずに「プログラム構成」を行うことを示す。
【０１０９】
さらに、プログラム構成部１１１は、解析結果に基づいて問題があると判定されたプログラムを「対象となるプログラム」として、プログラム構成を実行する構成であってもよい。
【０１１０】
さらに異なる「プログラム構成条件」の設定態様として、更新後のプログラムにおいて画像処理装置１の動作に問題があるか否かを判定するために、図２２に示すように、問題が発生しているプログラムをプログラム構成の組み合わせに含めないように「プログラム構成条件」を設定してもよい。
【０１１１】
図２２に示す「プログラム構成条件」においては、「対象となるプログラム：全てのプログラム」、「構成条件：１つ前のバージョンまで、問題のあるプログラムは除外」という設定がなされている。
【０１１２】
サーバ３において、図２３に示すように、ソフトウェア４０１に含まれるコピーのプログラム、および、ソフトウェア４０２に含まれるプリンタのプログラムに問題があることを示す情報が記憶されている。ここでは、Ｓ１３０５において問題があると判定されたプログラムの情報が、主制御部１１０によってサーバ３に送信され、プログラム記憶部３０２に記憶される。
【０１１３】
次に、図２２に示す「プログラム構成条件」およびサーバ３に図２３のようにプログラムが記憶されていることを前提として、複数のプログラムをパッケージ化して構成される画像処理装置１のソフトウェアから問題が生じる原因となるプログラムを特定する処理の流れを図２４のフローチャートに示される処理ステップに従って説明する。
【０１１４】
操作端末２からプログラム構成を開始する命令情報を受信すると、プログラム構成部１１１は、「プログラム構成条件」をサーバ３に送信する。このとき、プログラム構成部１１１は、「対象となるプログラム」および「構成条件」に該当するプログラムについて、問題があることを示す情報が記憶されていないかを示す情報をサーバ３に要求する。
【０１１５】
このとき、プログラム構成部１１１は、「プログラム構成条件」に基づいて組み合わせられてパッケージ化された全てのプログラムについて問題があることを示す情報が記憶されていないかを示す情報を要求してもよい。また、プログラム構成部１１１は、「プログラム構成条件」に基づいて組み合わせられてパッケージ化されたプログラムのうち、ひとつのプログラムについて問題があることを示す情報が記憶されていないかを示す情報を要求してもよい。
【０１１６】
サーバ３は、画像処理装置１からの要求に基づいて、問題があることを示す情報が記憶されているか否かを示す情報を画像処理装置１に送信する。プログラム構成部１１１は、サーバ３から取得した情報に基づいて、「対象となるプログラム」および「構成条件」に該当し、サーバ３からダウンロードするプログラムについて問題があることを示す情報が記憶されているか否かを判定する（Ｓ２４０１）。
【０１１７】
サーバ３からダウンロードするプログラムについて問題がないと判定した場合（Ｓ２４０２／ＮＯ）、プログラム構成部１１１は、サーバ３からプログラムをダウンロードする（Ｓ２４０３）。プログラム送信制御部３０１は、「プログラム構成条件」を示す情報に対応するプログラムをプログラム記憶部３０２から取得し、画像処理装置１に送信する。プログラム構成部１１１は、サーバ３から送信されたプログラムをダウンロードする。
【０１１８】
プログラム更新部１１２は、ダウンロードされたプログラムをインストールして、画像処理装置１を制御するソフトウェアを構成する複数のプログラムを更新し、プログラム分離部１１３は、主制御部１１０は、更新された後のソフトウェアによって画像処理装置１を動作させる（Ｓ２４０４）。
【０１１９】
このとき、主制御部１１０は、例えば、スキャナユニット１０２にセットされた原稿を読み取り、読み取った画像を印刷するなどの動作を実行するように画像処理装置１を制御する。ユーザは、Ｓ２４０４における動作の状況を判断して、操作端末２を操作し、画像処理装置１の動作に問題があるか否かを入力する。
【０１２０】
ユーザによって画像処理装置１の動作に問題があることを示す操作が行われた場合、操作端末２は、更新後のプログラムにおいて画像処理装置１の動作に問題があることを示す情報を画像処理装置１に送信する（Ｓ２４０５）。ユーザによって画像処理装置１の動作に問題がないことを示す操作が行われた場合、操作端末２は、更新後のプログラムにおいて画像処理装置１の動作に問題がないことを示す情報を画像処理装置１に送信する（Ｓ２４０５）。
【０１２１】
プログラム分離部１１３は、操作端末２から受信した情報に基づいて更新後のプログラムにおいて画像処理装置１の動作に問題が発生しているか否か判定する（Ｓ２４０６）。更新後のプログラムにおいて画像処理装置１の動作に問題が発生していない場合（Ｓ２４０６／ＮＯ）、プログラム分離部１１３は、Ｓ２４０３でダウンロードしたプログラムがインストールされる前のプログラムによって画像処理装置１の動作に問題が生じていると判定し、更新前のプログラムを特定する情報をプログラム更新部１１２に送信する（Ｓ２４０７）。
【０１２２】
そして、プログラム分離部１１３は、「プログラム構成条件」において示されているプログラムの組み合わせすべてに対して、再度Ｓ２４０１からの一連の処理を実行し（Ｓ２４０８）、Ｓ２４０３でダウンロードしたプログラムがインストールされる前のプログラムによって画像処理装置１の動作に問題が生じていると判定された、更新前のプログラムを特定する情報を、すべてサーバ３に送信する（Ｓ２４０９）。
【０１２３】
更新後のプログラムにおいて画像処理装置１の動作に問題が発生している場合（Ｓ２４０６／ＹＥＳ）、プログラム分離部１１３は、Ｓ２４０３でダウンロードしたプログラムがインストールされる前のプログラムによっては、画像処理装置１の動作に問題は生じないと判定する。そして、プログラム分離部１１３は、「プログラム構成条件」において示されているプログラムの組み合わせすべてに対して、再度Ｓ２４０１からの一連の処理を実行する（Ｓ２４１０）。
【０１２４】
プログラム分離部１１３は、全ての組み合わせについて更新後のプログラムにおいて画像処理装置１の動作に問題が発生している場合、どのプログラムが画像処理装置１の動作に影響を与えているか判定できないことを示す情報をプログラム構成部１１１に送信する（Ｓ２４１１）。
【０１２５】
ユーザは、画像処理装置１の動作に問題があるか否かを入力したのち、操作端末２においてプログラムの構成を終了するための操作を実行する。操作端末２は、ユーザの操作に基づいて画像処理装置１のプログラムの構成を終了するための命令情報を画像処理装置１に送信する（Ｓ２４１２）。プログラム構成部１１１は、Ｓ２４１２の命令情報を受信すると、プログラムの構成を終了する（Ｓ２４１３）。
【０１２６】
以上説明したように、本実施形態においては、複数のプログラムを含んで構成され、画像処理装置１の制御を行うソフトウェアにおいて、複数のプログラムのうち、画像処理装置１を動作させたときに問題を生じるプログラムを特定することができる。そして、特定されたプログラムを除外して画像処理装置１のソフトウェアをアップデートすることにより、問題を生じることなく画像処理装置１を動作させることができるようになる。
【０１２７】
また、どのプログラムが画像処理装置１を動作させたときに問題を生じるプログラムであるのかを特定できるため、画像処理装置１のソフトウェア開発を効率よく実行することが可能になる。
【符号の説明】
【０１２８】
１  画像処理装置
２  操作端末
３  サーバ
４  システム
５  ネットワーク
１００  コントローラ
１１０  主制御部
１１１  プログラム構成部
１１２  プログラム更新部
１１３  プログラム分離部
１２０  エンジン制御部
１３０  画像処理部
１４０  操作表示制御部
１５０  入出力制御部
３０１  プログラム送信制御部
３０２  プログラム記憶部
【先行技術文献】
【特許文献】
【０１２９】
【特許文献１】特開２０００−０３５８７９号公報
【図１】
2019008543.tif 000003
【図２】
2019008543.tif 000004
【図３】
2019008543.tif 000005
【図４】
2019008543.tif 000006
【図５】
2019008543.tif 000007
【図６】
2019008543.tif 000008
【図７】
2019008543.tif 000009
【図８】
2019008543.tif 000010
【図９】
2019008543.tif 000011
【図１０】
2019008543.tif 000012
【図１１】
2019008543.tif 000013
【図１２】
2019008543.tif 000014
【図１３】
2019008543.tif 000015
【図１４】
2019008543.tif 000016
【図１５】
2019008543.tif 000017
【図１６】
2019008543.tif 000018
【図１７】
2019008543.tif 000019
【図１８】
2019008543.tif 000020
【図１９】
2019008543.tif 000021
【図２０】
2019008543.tif 000022
【図２１】
2019008543.tif 000023
【図２２】
2019008543.tif 000024
【図２３】
2019008543.tif 000025
【図２４】
2019008543.tif 000026