(57)【要約】【課題】画像処理装置におけるファームウェアの更新に際し、当該画像処理装置の既存の通信相手との通信の不具合が生じることを回避すること。【解決手段】ＭＦＰ１００は、当該ＭＦＰ１００のファームウェアの更新の通知を受けると、ファームウェアの更新前に、サーバー３００に、更新後のファームウェアを利用した通信についてのテスト通信を依頼する。サーバー３００は、ＭＦＰ１００と端末２００とを含む仮想環境を構築し、当該仮想環境において更新後のファームウェアを利用したテスト通信を実行し、当該テスト通信の結果をＭＦＰ１００に通知する。【選択図】図２
2019120995.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアを利用して端末と通信する画像処理装置と、
前記画像処理装置と前記端末とを含む仮想環境を構築する環境構築手段とを備え、
前記環境構築手段は、
前記端末のモデルと前記画像処理装置のファームウェア更新後のモデルとを用いた仮想的な通信環境における、前記端末と前記画像処理装置との通信履歴を用いたテスト通信を実行し、
前記画像処理装置は、
前記テスト通信の結果に基づいて、前記ファームウェアを更新するか否かを決定するように構成されている、画像処理システム。
【請求項２】
前記画像処理装置は、
前記テスト通信の結果における不具合の発生確率が、前記通信履歴における不具合の発生確率以下である場合には、前記ファームウェアを更新し、
前記テスト通信の結果における不具合の発生確率が、前記通信履歴における不具合の発生確率より高い場合には、前記ファームウェアを更新しない、
ように構成されている、請求項１に記載の画像処理システム。
【請求項３】
前記画像処理装置は、
ファームウェアの更新の通知を受けた場合に、ファームウェアの更新前に、前記環境構築手段に前記テスト通信の実行を要求するように構成されており、
前記環境構築手段は、
前記画像処理装置からの要求に応じて、前記テスト通信を実行し、当該テスト通信の結果を前記画像処理装置へ通知するように構成されている、請求項１または請求項２に記載の画像処理システム。
【請求項４】
前記画像処理装置は、
前記通信履歴のうち、ファームウェアの更新の前記通知における更新内容に対応する通信履歴のみについて、前記テスト通信の実行を要求するように構成されている、請求項３に記載の画像処理システム。
【請求項５】
前記環境構築手段は、前記画像処理装置に対して離間した装置によって実現される、請求項１〜請求項４のいずれか１項に記載の画像処理システム。
【請求項６】
前記環境構築手段は、前記画像処理装置と一体的に構成される、請求項１〜請求項４のいずれか１項に記載の画像処理システム。
【請求項７】
前記画像処理装置は、画像処理を実行する画像処理部と、サーバー処理を実行するサーバー部とを含み、
前記環境構築手段は、
前記仮想環境のうち前記画像処理装置に相当する部分を、前記画像処理部によって実現され、
前記仮想環境のうち前記端末に相当する部分を、前記サーバー部によって実現される、
ように構成されている、請求項６に記載の画像処理システム。
【請求項８】
前記画像処理装置と前記端末との通信履歴を格納する情報処理装置をさらに備え、
前記環境構築手段は、前記情報処理装置から前記通信履歴を取得することにより、前記テスト通信を実行するように構成されている、請求項１〜請求項７のいずれか１項に記載の画像処理システム。
【請求項９】
ファームウェアを利用して端末と通信する画像処理部と、
前記画像処理部と前記端末とを含む仮想環境を構築する環境構築部とを備えた、情報処理機器であって、
前記環境構築部は、
前記端末のモデルと前記画像処理部のファームウェア更新後のモデルとを用いた仮想的な通信環境における、前記端末と前記画像処理部との通信履歴を用いたテスト通信を実行し、
前記画像処理部は、
前記テスト通信の結果に基づいて、前記ファームウェアを更新するか否かを決定するように構成されている、情報処理機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置のファームウェアのバージョンの変更に関する。
【背景技術】
【０００２】
従来、端末におけるプリンタードライバーのインストールに際して、プリンター（画像処理装置）側のファームウェアと当該ドライバーとの整合を確認する技術が提案されている。たとえば、特開２００７−２９３５１４号公報（特許文献１）は、プリンタードライバーのインストーラーを開示している。当該インストーラーは、プリンターのファームウェアのバージョンを取得し、データベースからプリンターのファームウェアのバージョンの整合性に関する情報を読み出し、ドライバーのバージョンとファームウェアのバージョンとの整合性を維持する機能を有する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２９３５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、プリンター側でファームウェアが更新される場合がある。プリンター側のファームウェアが更新されると、端末とプリンターとの通信において不具合が生じる場合がある。
【０００５】
本開示は、係る実情に鑑み考え出されたものであり、その目的は、画像処理装置におけるファームウェアの更新による、当該画像処理装置の既存の通信相手との通信の不具合が生じることを回避することである。
【課題を解決するための手段】
【０００６】
本開示のある局面に従うと、ファームウェアを利用して端末と通信する画像処理装置と、画像処理装置と端末とを含む仮想環境を構築する環境構築手段とを備えた画像処理システムが提供される。環境構築手段は、端末のモデルと画像処理装置のファームウェア更新後のモデルとを用いた仮想的な通信環境における、端末と画像処理装置との通信履歴を用いたテスト通信を実行するように構成されている。画像処理装置は、テスト通信の結果に基づいて、ファームウェアを更新するか否かを決定するように構成されている。
【０００７】
画像処理装置は、テスト通信の結果における不具合の発生確率が、通信履歴における不具合の発生確率以下である場合には、ファームウェアを更新し、テスト通信の結果における不具合の発生確率が、通信履歴における不具合の発生確率より高い場合には、ファームウェアを更新しない、ように構成されていてもよい。
【０００８】
画像処理装置は、ファームウェアの更新の通知を受けた場合に、ファームウェアの更新前に、環境構築手段にテスト通信の実行を要求するように構成されていてもよい。環境構築手段は、画像処理装置からの要求に応じて、テスト通信を実行し、当該テスト通信の結果を画像処理装置へ通知するように構成されていてもよい。
【０００９】
画像処理装置は、通信履歴のうち、ファームウェアの更新の通知における更新内容に対応する通信履歴のみについて、テスト通信の実行を要求するように構成されていてもよい。
【００１０】
環境構築手段は、画像処理装置に対して離間した装置によって実現されてもよい。
環境構築手段は、画像処理装置と一体的に構成されてもよい。
【００１１】
画像処理装置は、画像処理を実行する画像処理部と、サーバー処理を実行するサーバー部とを含んでいてもよい。環境構築手段は、仮想環境のうち画像処理装置に相当する部分を、画像処理部によって実現され、仮想環境のうち端末に相当する部分を、サーバー部によって実現される、ように構成されていてもよい。
【００１２】
画像処理システムは、画像処理装置と端末との通信履歴を格納する情報処理装置をさらに備えていてもよい。環境構築手段は、情報処理装置から通信履歴を取得することにより、テスト通信を実行するように構成されていてもよい。
【００１３】
本開示の他の局面に従うと、ファームウェアを利用して端末と通信する画像処理部と、画像処理部と端末とを含む仮想環境を構築する環境構築部とを備えた、情報処理機器が提供される。環境構築部は、端末のモデルと画像処理部のファームウェア更新後のモデルとを用いた仮想的な通信環境における、端末と画像処理部との通信履歴を用いたテスト通信を実行するように構成されている。画像処理部は、テスト通信の結果に基づいて、ファームウェアを更新するか否かを決定するように構成されている。
【発明の効果】
【００１４】
本開示によれば、画像処理装置は、当該画像処理装置と端末との通信履歴に従い、かつ、当該画像処理装置のファームウェアが更新された状況を想定した、テスト通信の結果に基づいて、ファームウェアを更新するか否かを決定する。これにより、画像処理装置においてファームウェアを更新するか否かが、画像処理装置と当該画像処理装置の既存の通信相手との通信履歴に従ったテスト通信の結果に基づいて判断される。当該テスト通信は、ファームウェアが更新された状況を想定されたものである。したがって、画像処理装置におけるファームウェアを更新するか否かが、当該画像処理装置の既存の通信相手との通信の不具合を回避する態様で決定される。
【図面の簡単な説明】
【００１５】
【図１】画像処理システムの一例の構成を概略的に示す図である。
【図２】サーバー３００における上記テスト通信の内容を模式的に示す図である。
【図３】ＭＦＰ１００のハードウェア構成を概略的に示す図である。
【図４】端末２００のハードウェア構成の一例を示す図である。
【図５】サーバー３００のハードウェア構成の一例を示す図である。
【図６】ジョブ情報の内容の一例を模式的に示す図である。
【図７】装置情報の内容の一例を模式的に示す図である。
【図８】ＭＦＰ１００が、サーバー３００にテスト通信を要求するために実行する処理の一例のフローチャートである。
【図９】サーバー３００が、ＭＦＰ１００からテスト通信を要求されたときに実行する処理の一例のフローチャートである。
【図１０】サーバー３００からＭＦＰ１００に通知されるテスト通信に関する通知のの一例を示す図である。
【図１１】第２の実施の形態の画像処理システムの構成を模式的に示す図である。
【図１２】第３の実施の形態の画像処理システムの構成を模式的に示す図である。
【図１３】ＭＦＰ１００のハードウェアブロック図である。
【図１４】第３の実施の形態におけるテスト通信の実施の態様を模式的に示す図である。
【図１５】第３の実施の形態のテスト通信における、仮想環境１０００内の通信の態様を説明するための図である。
【図１６】画像処理システムの第４の実施の形態を示す図である。
【図１７】第４の実施の形態のサーバー３００におけるテスト通信の内容を模式的に示す図である。
【発明を実施するための形態】
【００１６】
以下に、図面を参照しつつ、画像処理システムの実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００１７】
＜第１の実施の形態＞
［１．画像処理システムの概略的な構成］
図１は、画像処理システムの一例の構成を概略的に示す図である。図１に示されるように、画像処理システムは、ＭＦＰ（Multi-Functional  Peripheral）１００とサーバー３００とを含む。ＭＦＰ１００は、画像処理装置の一例である。サーバー３００は、環境構築手段の一例である。ＭＦＰ１００は、現実の通信環境において、端末２００と通信する。端末２００は、たとえば、パーソナルコンピューター、または、スマートフォンである。
【００１８】
より具体的には、端末２００には、ＭＦＰ１００と通信するためのプログラム（たとえば、プリンタードライバー）がインストールされている。ＭＦＰ１００と端末２００との間で種々のデータが送信される。送信されるデータは、たとえば、メール文、または、スキャンアウトデータ（ＭＦＰ１００におけるスキャンにおいて生成されたデータ）である。
【００１９】
ＭＦＰ１００は、ＭＦＰ１００と端末２００との間の通信の履歴を蓄積する。履歴は、通信の結果を含む。たとえば、ＭＦＰ１００が端末２００に対してデータを送信すると、端末２００は、当該データの受信処理の結果（正常、エラー、等）をＭＦＰ１００に送信する。ＭＦＰ１００は、当該結果を履歴としてＭＦＰ１００内に蓄積する。履歴は、送受信されたデータを含む。
【００２０】
図１の例では、通信の履歴は、「ジョブ情報」と「ジョブパケット」とを含む。「ジョブ情報」は、後述する図６を参照して説明されるように、ジョブ（通信）の結果を含む。「ジョブパケット」は、送受信されたデータを表わす。本明細書では、ＭＦＰ１００の記憶装置における、「ジョブ情報」および「ジョブパケット」を格納する領域を「ジョブ情報・ジョブパケット保存領域」と称する場合がある。
【００２１】
ＭＦＰ１００は、当該ＭＦＰ１００のファームウェアの更新の通知を受けると、ファームウェアの更新前に、サーバー３００に、更新後のファームウェアを利用した通信についてのテスト通信を依頼する。サーバー３００は、ＭＦＰ１００と端末２００とを含む仮想環境を構築し、当該仮想環境において更新後のファームウェアを利用したテスト通信を実行し、当該テスト通信の結果をＭＦＰ１００に通知する。
【００２２】
［２．テスト通信の概要］
図２は、サーバー３００における上記テスト通信の内容を模式的に示す図である。図２に示されるように、サーバー３００は、仮想環境１０００として、ＭＦＰ１００と端末２００とを含むネットワーク環境を仮想的に生成する。サーバー３００は、仮想環境１０００において、ＭＦＰ１００と端末２００との通信をシミュレーションすることにより、ＭＦＰ１００と端末２００との間の通信のテスト通信を実行する。サーバー３００は、当該テスト通信の結果をＭＦＰ１００に通知する。以下、仮想環境１０００を用いたテスト通信について、段階的に説明する。
【００２３】
（仮想環境の構築）
サーバー３００は、ＭＦＰ１００および端末２００の装置情報を利用して、仮想環境１０００を構築する。仮想環境１０００は、ＭＦＰ１００の対応物であるＭＦＰモデル１１００と、端末２００の対応物である端末モデル１２００とを含む。現実の通信環境においてＭＦＰ１００が複数の端末と通信する場合には、仮想環境１０００は、複数の端末のそれぞれのモデルを含んでいてもよい。
【００２４】
サーバー３００は、たとえばＭＦＰ１００から、ＭＦＰ１００および端末２００の装置情報を受信する。図２において、ＭＦＰ１００からサーバー３００への装置情報の送信は、「工程１」として示される。サーバー３００は、装置情報を用いて各装置のモデルを生成する。
【００２５】
図２の例において、ＭＦＰ１００の装置情報は、現実の通信環境におけるＭＦＰ１００のネットワーク上のアドレスと、ＭＦＰ１００の機種タイプを特定する情報（タイプ情報）と、ＭＦＰ１００のファームウェアのバージョンを特定する情報（バージョン情報）とを含む。なお、テスト通信のためにＭＦＰ１００がサーバー３００に与えるファームウェアのバージョンは、現在のバージョンではなく、更新予定のバージョンであってもよい。すなわち、ＭＦＰ１００のファームウェアの現在のバージョンが4.22であって、当該バージョンが5.00へと更新される通知を受けた場合、ＭＦＰ１００は、サーバー３００に、更新予定のバージョン（5.00）を与えてもよい。
【００２６】
図２の例において、端末２００の装置情報は、現実の通信環境における端末２００のネットワークアドレスと、端末２００の機種タイプを特定する情報（タイプ情報）と、端末２００のＯＳ（Operating  System）の種類およびバージョンを特定する情報（バージョン情報）とを含む。本実施の形態における仮想環境は、公知の仮想ネットワークの構築技術を用いて構築され得る。装置情報は、仮想ネットワークの構築に必要とされる情報を含んでいればよい。
【００２７】
（テスト通信）
サーバー３００は、ＭＦＰ１００と端末２００との間の、現実の通信環境における通信履歴を用いて、仮想環境１０００におけるシミュレーションを実行する。本明細書では、ＭＦＰ１００と端末２００との間の通信履歴を「ジョブ履歴」ともいう。一例では、ＭＦＰ１００が、テスト通信の要求とともに、サーバー３００にジョブ履歴（ジョブ情報とジョブパケット）を送信する。図２では、ＭＦＰ１００からサーバー３００へのジョブ履歴の送信が「工程２」として示されている。
【００２８】
サーバー３００は、ＭＦＰ１００からジョブ履歴を受信すると、仮想環境１０００において、ＭＦＰ１００のファームウェアのバージョンがＭＦＰ１００の装置情報において規定されるバージョン（更新予定のバージョン）とされた場合の、仮想的な通信（テスト通信）を実行する。ＭＦＰ１００は、ファームウェアの更新の通知を受信したときに、更新後のファームウェアのプログラムを受信してもよい。ＭＦＰ１００は、更新後のファームウェアのプログラムをサーバー３００へ送信してもよい。サーバー３００は、ＭＦＰモデル１１００として、更新後のファームウェアをインストールされた装置を仮想的に生成する。テスト通信では、各ジョブＩＤのジョブ情報に列挙された条件（「ＭＦＰファームＶｅｒ」以外）に従って、「ジョブパケット」として格納されるパケットが送受信される。テスト通信では、ＭＦＰモデル１１００は、更新後のファームウェアを利用して通信する。図２の例では、現実の通信環境においてＭＦＰ１００から端末２００へとデータが送信されたジョブについての、仮想環境１０００におけるテスト通信が示されている。
【００２９】
サーバー３００は、上記テスト通信を実行した後、当該テスト通信の結果（たとえば、正常、エラー、等）をＭＦＰ１００へ通知する。図２では、当該通知が「工程３」として示されている。
【００３０】
ＭＦＰ１００は、上記テスト通信の結果に基づいて、ファームウェアを更新するか否かを決定してもよい。一例では、現実空間において正常に完了したジョブの送信が、テスト通信でも正常に完了した場合には、ＭＦＰ１００はファームウェアを更新する。現実空間において正常に完了したジョブの送信が、テスト通信では失敗した場合（結果が「エラー」）には、ＭＦＰ１００はファームウェアを更新しない。
【００３１】
［３．ＭＦＰ１００の構成］
図３は、ＭＦＰ１００のハードウェア構成を概略的に示す図である。図３を参照して、ＭＦＰ１００は、全体を制御するためのＣＰＵ（Central  Processing  Unit）１５０と、プログラムおよびデータを格納するための記憶装置１６０と、操作パネル１７０とを含む。
【００３２】
記憶装置１６０は、ＣＰＵ１５０により実行されるプログラムおよび各種データを記憶する。操作パネル１７０は、ディスプレイ１７１と、操作部１７２とを含む。ディスプレイ１７１の一例は、液晶表示装置である。ディスプレイ１７１の他の例は、プラズマディスプレイである。操作部１７２は、ＭＦＰ１００に対する操作の入力を受け付ける。
【００３３】
ＭＦＰ１００は、さらに、画像処理部１５１と、画像形成部１５２と、画像読取部１５３と、ファクシミリ通信部１５４と、ＮＩＣ（Network  Interface  Controller）１５５とを含む。画像処理部１５１は、入力された画像に対して拡大・縮小を含む各種の処理を施す。画像形成部１５２は、感光体等の、記録用紙に画像を形成するための要素を含む。画像読取部１５３は、スキャナー等の原稿の画像データを生成するための要素を含み、原稿のスキャンによりスキャンデータを生成する。ファクシミリ通信部１５４は、モデム等のファクシミリ通信により画像データの送受信するための要素を含む。ＮＩＣ１５５は、ネットワークを介してデータ通信をするための要素を含む。画像処理部１５１、画像形成部１５２、画像読取部１５３、ファクシミリ通信部１５４、および、ＮＩＣ１５５のそれぞれの機能は、画像形成装置においてよく知られたものであるから、ここでは詳細な説明は繰返さない。
【００３４】
［４．端末２００の構成］
図４は、端末２００のハードウェア構成の一例を示す図である。図４に示されるように、端末２００は、主な構成要素として、ＣＰＵ２０１と、ＲＡＭ（Random  Access  Memory）２０２と、記憶装置２０３と、通信インターフェース２０４と、ディスプレイ２１０とを含む。ＣＰＵ２０１と、ＲＡＭ２０２と、記憶装置２０３と、通信インターフェース２０４と、ディスプレイ２１０とは、互いに内部バスで接続されている。
【００３５】
ＣＰＵ２０１は、たとえばプログラムを実行することにより端末２００の動作を制御するための処理を実行する演算装置の一例である。実行されるプログラムは、ＭＦＰ１００のドライバーソフトウェアを含む。ディスプレイ２１０は、ＣＰＵ２０１による演算の結果を表示し得る。
【００３６】
ＲＡＭ２０２は、ＣＰＵ２０１における処理実行時のワークエリアとして機能する。記憶装置２０３は、たとえばハードウェアディスクによって実現され、ＣＰＵ２０１が実行するプログラムを格納する。記憶装置２０３は、さらに、当該プログラムの実行に利用されるデータを格納していてもよい。通信インターフェース２０４は、各種の装置（ＭＦＰ１００等）と通信するための機器であって、たとえば無線通信回路によって実現される。
【００３７】
［５．サーバー３００の構成］
図５は、サーバー３００のハードウェア構成の一例を示す図である。図５に示されるように、サーバー３００は、主な構成要素として、ＣＰＵ３０１と、ＲＡＭ３０２と、記憶装置３０３と、通信インターフェース３０４とを含む。ＣＰＵ３０１と、ＲＡＭ３０２と、記憶装置３０３と、通信インターフェース３０４とは、互いに内部バスで接続されている。
【００３８】
ＣＰＵ３０１は、たとえばプログラムを実行することによりサーバー３００の動作を制御するための処理を実行する演算装置の一例である。実行されるプログラムは、仮想環境を生成するためのソフトウェアプログラムを含む。
【００３９】
ＲＡＭ３０２は、ＣＰＵ３０１における処理実行時のワークエリアとして機能する。記憶装置３０３は、たとえばハードウェアディスクによって実現され、ＣＰＵ３０１が実行するプログラムを格納する。記憶装置３０３は、さらに、当該プログラムの実行に利用されるデータを格納していてもよい。通信インターフェース３０４は、各種の装置（ＭＦＰ１００等）と通信するための機器であって、たとえば無線通信回路によって実現される。
【００４０】
［６．ジョブ情報］
図６は、ジョブ情報の内容の一例を模式的に示す図である。ジョブ情報は、たとえばＭＦＰ１００の記憶装置１６０に格納される。
【００４１】
図６に示されるように、ジョブ情報は、各ジョブについて、「ジョブＩＤ」「種類」「機能」「通信相手のアドレス」「ユーザーＩＤ」「パスワード」「時刻」「ジョブ結果」および「ＭＦＰファームＶｅｒ」を含む。「ジョブＩＤ」は、各ジョブを識別する。
【００４２】
「種類」は、ジョブの種類を表わす。「受信」は、ＭＦＰ１００が受信したジョブを表わす。「送信」は、ＭＦＰ１００が送信したジョブを表わす。
【００４３】
「機能」は、ジョブの送信に利用されたプロトコルを表わす。
「通信相手のアドレス」は、ジョブの送受信における通信相手（端末２００等）のアドレスを表わす。
【００４４】
「ユーザーＩＤ」は、ジョブの実行を指示したユーザーを識別する。「パスワード」は、ユーザーＩＤに関連付けられているパスワードを表わす。ユーザーは、ネットワークシステムにログインするために、ユーザーＩＤとパスワードとの組合せを利用する。
【００４５】
「時刻」は、ジョブが実行された時刻を表わす。「ジョブ結果」は、ＭＦＰ１００と端末２００との間のジョブのデータ送信の結果を表わす。「ＭＦＰファームＶｅｒ」は、ジョブが送受信された際のＭＦＰ１００のファームウェアのバージョンを表わす。
【００４６】
［７．装置情報］
図７は、装置情報の内容の一例を模式的に示す図である。図７の装置情報は、たとえばＭＦＰ１００の記憶装置１６０に格納される。装置情報は、「端末番号」「アドレス」「タイプ情報」および「バージョン情報」を含む。
【００４７】
「端末番号」は、各装置を識別する。一例では、端末番号「０」は、ＭＦＰ１００自身を表わす。端末番号「１」は、端末２００を表わす。端末番号「２」は、他の端末を表わす。
【００４８】
「アドレス」は、各装置に割り当てられている、現実の通信環境におけるネットワークアドレスを表わす。「タイプ情報」は、装置の種別（機種、等）を表わす。「バージョン情報」は、各装置において使用されているＯＳの種類および／またはバージョンを表わす。
【００４９】
図７の例は、端末番号「０」の装置（ＭＦＰ１００）について、アドレス「172.16.0.3」と、タイプ情報「ＭＦＰ−ＴｙｐｅＡ」と、バージョン情報「ver. 4.22」とを含む。これは、ＭＦＰ１００の現実の通信環境におけるＩＰ（Internet  Protocol）アドレスが「172.16.0.3」であり、ＭＦＰ１００の機種のタイプが「ＭＦＰ−ＴｙｐｅＡ」で特定され、ＭＦＰ１００のファームウェアのバージョンが「ver. 4.22」であることを表わす。
【００５０】
図７の例は、端末番号「１」の装置（端末２００）について、アドレス「172.16.0.10」と、タイプ情報「ＰＣ−ＭＡＣ」と、バージョン情報「ＭＡＣ−ＯＳ  ver. 9」とを含む。これは、端末２００のＩＰアドレスが「172.16.0.10」であり、端末２００の機種が「ＰＣ−ＭＡＣ」で、端末２００のバージョンが「ver. 9」であることを表わす。
【００５１】
［８．テスト通信の要求と結果の受信］
図８は、ＭＦＰ１００が、サーバー３００にテスト通信を要求するために実行する処理の一例のフローチャートである。図９は、サーバー３００が、ＭＦＰ１００からテスト通信を要求されたときに実行する処理の一例のフローチャートである。図８の処理は、たとえば、ＭＦＰ１００のＣＰＵ１５０が所与のプログラムを実行することによって実現される。ＣＰＵ１５０は、たとえば、ＭＦＰ１００のファームウェアの更新の通知を受信したことに応じて、図８の処理を開始する。図９の処理は、たとえば、サーバー３００のＣＰＵ３０１が所与のプログラムを実行することによって実現される。
【００５２】
まず図８を参照して、ステップＳ１００にて、ＣＰＵ１５０は、ＭＦＰ１００の最新のファームウェアの情報を取得する。たとえば、ＭＦＰ１００のメーカーが、ＭＦＰ１００の最新のファームウェアを開発し、ＭＦＰ１００に対してファームウェアの更新を通知する。当該通知に応じて、ＭＦＰ１００のＣＰＵ１５０は、更新後のファームウェアのプログラムを受信する。
【００５３】
ステップＳ１０２にて、ＣＰＵ１５０は、サーバー３００に、仮想環境でのテスト通信を要求する。
【００５４】
ステップＳ１０４にて、ＣＰＵ１５０は、サーバー３００に、仮想環境でＭＦＰ１００および端末２００のモデル構築用の情報（たとえば、上記「装置情報」）を送信する。
【００５５】
ステップＳ１０６にて、ＣＰＵ１５０は、サーバー３００に、テスト通信の関連情報（たとえば、上記「ジョブ履歴」）を送信する。
【００５６】
ステップＳ１０２におけるテスト通信の要求に応じて、サーバー３００のＣＰＵ３０１は図９の処理を開始する。ステップＳ３００にて、ＣＰＵ３０１は、ステップＳ１０４において送信されたモデル構築用の情報を受信する。
【００５７】
ステップＳ３０２にて、ＣＰＵ３０１は、ＭＦＰ１００および端末２００のモデル構築に必要な情報を全て取得したか否かを判断する。ＣＰＵ３０１は、モデル構築に必要な情報を全て取得したと判断すると（ステップＳ３０２にてＹＥＳ）、ステップＳ３０６へ制御を進め、不足しているデータがあると判断すると（ステップＳ３０４にてＮＯ）、ステップＳ３０４へ制御を進める。
【００５８】
ステップＳ３０４にて、ＣＰＵ３０１は、ＭＦＰ１００に対してモデル構築に必要な情報を要求して、ステップＳ３００に制御を戻す。
【００５９】
ステップＳ３０６にて、ＣＰＵ３０１は、サーバー３００において、既に、接続試験用の、ＭＦＰ１００および端末２００の仮想環境が構築されているか否かを判断する。ＣＰＵ３０１は、未だそのような仮想環境が構築されていないと判断すると（ステップＳ３０６にてＮＯ）、ステップＳ３０８にて仮想環境を構築して、ステップＳ３１０へ制御を進める。ＣＰＵ３０１は、既に上記仮想環境が構築されていると判断すると（ステップＳ３０６にてＹＥＳ）、そのままステップＳ３１０へ制御を進める。
【００６０】
ステップＳ３１０にて、ＣＰＵ３０１は、テスト通信用の仮想環境の構築または既に構築された仮想環境の修正を行う。当該仮想環境の構築または修正において、ＣＰＵ３０１は、ＭＦＰ１００のＣＰＵ１５０がステップＳ１０６にて送信したテスト通信の関連情報を用いる。一例では、ステップＳ３１０の制御は、ジョブＩＤごとに実行される。図６に示されるように、通信相手のアドレスは、ジョブＩＤごとに規定される。ステップＳ３１０では、ジョブＩＤごとに、通信相手のアドレスに対応する端末モデルが構築されてもよい。
【００６１】
ステップＳ３１２にて、ＣＰＵ３０１は、ステップＳ３１０にて構築された仮想環境に試験用のパラメーター（送受信された「ジョブパケット」、等）を設定する。
【００６２】
ステップＳ３１４にて、ＣＰＵ３０１は、テストの対象となっているジョブＩＤの種類が「送信」側であるか（すなわち、ＭＦＰ１００が端末にデータを送信したジョブであるか）否かを判断する。ＣＰＵ３０１は、種類が「送信」であれば（ステップＳ３１４にてＹＥＳ）、ステップＳ３１６へ制御を進める。ＣＰＵ３０１は、種類が「受信」であれば（ステップＳ３１４にてＮＯ）、ステップＳ３１８へ制御を進める。
【００６３】
ステップＳ３１６にて、ＣＰＵ３０１は、ステップＳ３１０にて構築された仮想環境においてＭＦＰ１００のモデルから端末のモデルへとデータを送信するテスト通信を実行する。ステップＳ３１８にて、ＣＰＵ３０１は、ステップＳ３１０にて構築された仮想環境において端末のモデルからＭＦＰ１００のモデルへとデータを送信するテスト通信を実行する。
【００６４】
ステップＳ３２０にて、ＣＰＵ３０１は、ＭＦＰ１００に、ステップＳ３１６またはステップＳ３１８におけるテスト通信の結果（正常、または、エラー）を送信する。ＣＰＵ３０１は、たとえば、テスト通信において、送信元から送信先へのデータ（ジョブパケット）の送信が正常に終了した場合には、テスト通信の結果として「正常」を送信し、当該データの送信が失敗した場合には、テスト通信の結果として「エラー」を送信する。
【００６５】
図８に戻って、ステップＳ１０８にて、ＭＦＰ１００のＣＰＵ１５０は、サーバー３００からテスト通信の結果を受信したか否かを判断する。ＣＰＵ１５０は、当該結果を受信するまで待機し（ステップＳ１０８にてＮＯ）、受信すると（ステップＳ１０８にてＹＥＳ）、ステップＳ１１０へ制御を進める。
【００６６】
ステップＳ１１０にて、ＣＰＵ１５０は、ステップＳ１０８にて受信したテスト通信の結果を、ジョブ履歴の中のジョブ情報として格納されている結果と比較する。ステップＳ１１０により、ジョブ履歴の中の処理対象のジョブＩＤについて、現実の通信環境におけるデータ送受信の結果と、仮想環境におけるデータ送受信のテスト通信の結果とが比較される。
【００６７】
ステップＳ１１２にて、ＣＰＵ１５０は、ステップＳ１１０における比較において、２つの結果が一致するか否かを判断する。ＣＰＵ１５０は、結果が一致すると判断すると（ステップＳ１１２にてＹＥＳ）、ステップＳ１１４へ制御を進める。一方、結果が一致しなければ（ステップＳ１１２にてＮＯ）、ＣＰＵ１５０は、ステップＳ１１６へ制御を進める。たとえば、現実の通信環境におけるデータ送受信の結果が「正常」であり、ステップＳ１０８にて受信されたの結果が「正常」である場合、２つの結果が一致するため（ステップＳ１１２にてＹＥＳ）、ＣＰＵ１５０はステップＳ１１４へ制御を進める。一方、たとえば、ステップＳ１１６へ制御を進め、現実の通信環境におけるデータ送受信の結果が「正常」であり、ステップＳ１０８にて受信されたの結果が「エラー」である場合、２つの結果が一致しないため（ステップＳ１１２にてＮＯ）、ＣＰＵ１５０はステップＳ１１６へ制御を進める。
【００６８】
ステップＳ１１４にて、ＣＰＵ１５０は、テスト通信待ちのジョブ履歴が存在するか否かを判断する。ＣＰＵ１５０は、たとえば、ジョブ情報（図６）に列挙された全てのジョブＩＤについてテスト通信を実行し、テスト通信が正常に完了したジョブＩＤをたとえばテスト通信完了フラグがセットする等して識別する。テスト通信待ちのジョブ履歴の一例は、テスト通信完了フラグをセットされていないジョブＩＤである。
【００６９】
ＣＰＵ１５０は、ジョブ情報において、テスト通信完了フラグがセットされていないジョブＩＤが存在する場合（ステップＳ１１４にてＹＥＳ）、ステップＳ１０６に制御を戻す。ステップＳ１０６にて、ＣＰＵ１５０は、サーバー３００に、テスト通信完了フラグがセットされていなかったジョブＩＤについて、テスト通信の実行を要求する。当該ジョブＩＤについて、たとえば、ＭＦＰ１００がステップＳ１１０にてサーバー３００からテスト通信の結果を受信したことに応じて、テスト通信完了フラグがセットされる。ＣＰＵ１５０は、テスト通信を実行されるべきジョブＩＤのすべてにテスト通信完了フラグがセットされている場合には、ステップＳ１２０へ制御を進める。
【００７０】
ステップＳ１１６にて、ＣＰＵ１５０は、エラー情報を記憶装置１６０に格納する。エラー情報とは、エラーが発生した通信の状態を特定するための情報であり、たとえば、エラーが発生したときのＭＦＰ１００のファームウェアのバージョンを特定する情報、送受信されたパケット、等を含む。仮想環境におけるテスト通信にてエラーが発生した場合には、ＭＦＰ１００の更新予定のファームウェアのバージョンを特定する情報が記憶装置１６０に格納されてもよい。
【００７１】
ステップＳ１１８にて、ＣＰＵ１５０は、エラー情報を、所与の相手に通知する。通知される相手の一例は、ＭＦＰ１００のメーカーである。他の例は、ＭＦＰ１００が現実の通信環境において所属するネットワーク環境の管理者である。通知の方法は、たとえば、予め定められたアドレスへのデータの送信である。
【００７２】
図９に戻って、ステップＳ３２２にて、サーバー３００のＣＰＵ３０１は、ＣＰＵ１５０からの新たなジョブＩＤのテスト通信の要求（ステップＳ１０６）の有無を判断する。当該要求があれば（ステップＳ３２２にてＹＥＳ）、ステップＳ３１０に制御を戻す。一方、ＣＰＵ３０１は、当該要求がなければ、ステップＳ３２４に制御を進める。
【００７３】
ＭＦＰ１００は、所与の条件を満たす場合、サーバー３００に、テスト通信の再実施を要求してもよい。たとえば、更新後のファームウェアを用いたテスト通信の結果が「エラー」である場合であって、さらに新しいファームウェアがリリースされた旨の通知を受けた場合、ＭＦＰ１００のＣＰＵ１５０は、サーバー３００に対してテスト通信の再実施を要求する。
【００７４】
ステップＳ３２４にて、サーバー３００のＣＰＵ３０１は、ＭＦＰ１００からテスト通信の再実施の要求があったか否かを判断する。ＣＰＵ３０１は、当該要求があったと判断すると（ステップＳ３２４にてＹＥＳ）、ステップＳ３００へ制御を戻し、当該要求がないと判断すると（ステップＳ３２４にてＮＯ）、図９の処理を終了する。
【００７５】
図８に戻って、ステップＳ１２０にて、ＭＦＰ１００のＣＰＵ１５０は、最新版のファームウェアを当該ＭＦＰ１００にインストールした後、図８の処理を終了する。
【００７６】
以上説明された本実施の形態では、ＭＦＰ１００のＣＰＵ１５０は、ファームウェアの更新の通知を受けると、図８の処理を開始する。ＣＰＵ１５０は、サーバー３００に対して、仮想環境でのテスト通信を要求し（ステップＳ１０２）、仮想環境の構築に必要な情報を送信し（ステップＳ１０４）、テスト通信に必要な情報を送信する（ステップＳ１０６）。
【００７７】
ＣＰＵ１５０は、サーバー３００から受信したテスト通信の結果が元のジョブ履歴における結果（図６の「ジョブ結果」）と異なる場合、ＭＦＰ１００内にエラー情報を格納し（ステップＳ１１６）、エラー情報を外部に通知する（ステップＳ１１８）。図１０は、サーバー３００からＭＦＰ１００に通知されるテスト通信に関する通知のの一例を示す図である。図１０に示されるように、サーバー３００からＭＦＰ１００への通知は、テスト通信の条件と結果とを含む。
【００７８】
図１０の通知は、各ジョブについて９項目（「ジョブＩＤ」「種類」「機能」「通信相手のアドレス」「ユーザーＩＤ」「パスワード」「時刻」「ジョブ結果」および「ＭＦＰファームＶｅｒ」）を含む。これら９項目のうち、「ジョブ結果」および「ＭＦＰファームＶｅｒ」以外は、図６の各項目と同一である。すなわち、図１０の通知は、図６のジョブ履歴中の各ジョブの履歴に対して、ＭＦＰ１００のファームウェアのバージョンが変更された状態で実施されたテスト通信の結果を表わす。
【００７９】
たとえば、図１０の通知の中のジョブＩＤ「１」は、図６のジョブ履歴中のジョブＩＤ「１」に対するテスト通信の結果を含む。より具体的には、図６のジョブ履歴の中のジョブＩＤ「１」では、ＭＦＰ１００のファームウェアのバージョンは「4.22」である。図１０の通知の中のジョブＩＤ「１」では、ＭＦＰ１００のファームウェアのバージョンは「5.00」である。すなわち、図１０のジョブＩＤ「１」は、サーバー３００が、ＭＦＰ１００のファームウェアのバージョン「4.22」に対応する現実の通信環境における通信履歴を利用し、ＭＦＰ１００のファームウェアのバージョンを「5.00」に更新して、テスト通信を実行したことを意味する。さらに、図１０のジョブＩＤ「１」は、当該テスト通信のジョブ結果が「正常」であり、図６のジョブ結果「正常」と一致する。
【００８０】
本実施の形態において、サーバー３００は、図６のジョブ履歴のうち、ジョブ結果が「正常」のジョブＩＤのみをテスト通信の対象としてもよい。一例では、現実の通信環境においてデータ送受信が正常に完了したジョブのみが、ＭＦＰ１００のファームウェアのバージョンが更新された状態でも同様にデータ送受信が正常に完了するか否かが仮想環境において検証されればよい。より具体的には、図６のジョブ履歴では、ジョブＩＤ「１」およびジョブＩＤ「２」のジョブ結果が「正常」であるが、ジョブＩＤ「３」のジョブ結果は「エラー」である。この場合、サーバー３００は、ジョブＩＤ「１」およびジョブＩＤ「２」についてはテスト通信を実施するが、ジョブＩＤ「３」についてはテスト通信を実施しなくてもよい。
【００８１】
本実施の形態では、ＭＦＰ１００は、テスト通信が実施されたすべてのジョブの結果が、ジョブ履歴におけるジョブ結果と一致したことを条件として、ファームウェアを更新する。すなわち、ＭＦＰ１００は、ファームウェアの更新の通知を受けたとき、ファームウェアの更新を実施する前に、更新後のファームウェアを用いたテスト通信をサーバー３００に要求する。当該テスト通信において、サーバー３００は、更新前のファームウェアで通信が正常に完了していたジョブについて、ＭＦＰ１００のファームウェアを更新後のものに変更してもジョブが正常に完了され得るかどうかを検証する。
【００８２】
図６の例において、ＭＦＰ１００は、当該ＭＦＰ１００のファームウェアのバージョンが「4.22」から「5.00」へと更新されることを通知された場合、サーバー３００に対して、バージョン「5.00」を利用したテスト通信を要求する。当該要求は、少なくともジョブＩＤ「１」およびジョブＩＤ「２」についての要求を含む。
【００８３】
サーバー３００は、仮想環境においてジョブＩＤ「１」およびジョブＩＤ「２」のそれぞれについて、テスト通信を実施し、それらの結果をＭＦＰ１００に通知する。
【００８４】
図６のジョブ履歴において、ジョブＩＤ「１」およびジョブ「２」の双方のジョブ結果は「正常」である。ＭＦＰ１００のＣＰＵ１５０は、ファームウェアの更新の通知と同時に更新後のファームウェアを受信してもよい。しかしながら、ＣＰＵ１５０は、サーバー３００から通知されたテスト通信の結果においてジョブＩＤ「１」およびジョブＩＤ「２」の双方の結果が「正常」でなければ、ＭＦＰ１００に、更新後のファームウェアをインストールしない。
【００８５】
ジョブＩＤ「１」およびジョブＩＤ「２」のうち少なくとも一方のテスト通信の結果が「エラー」であった場合、ＣＰＵ１５０は、ＭＦＰ１００のメーカーおよび／またはネットワーク環境の管理者にエラー情報を通知してもよい。エラー情報の通知は、仮想環境におけるテスト通信において送受信されたデータパケットを含んでいてもよい。ＭＦＰ１００のメーカーは、エラー情報に含まれるデータパケットを解析の結果を、ファームウェアの開発に利用してもよい。
【００８６】
ＭＦＰ１００のメーカーは、エラー情報を用いて新たなバージョンのファームウェアを開発した場合、ＭＦＰ１００に再度通知を行ってもよい。当該通知により、ＭＦＰ１００のＣＰＵ１５０は、再度、ステップＳ１００から図８の処理を開始してもよい。新たなバージョンのファームウェアについて、テスト通信の結果が現実の通信環境におけるジョブ結果と一致すれば、ＭＦＰ１００のＣＰＵ１５０は、当該新たなバージョンのファームウェアを当該ＭＦＰ１００にインストールする。
【００８７】
ＭＦＰ１００のＣＰＵ１５０は、ジョブ履歴における通信の不具合の発生確率と、テスト通信における不具合の発生確率との比較の結果に基づいて、ファームウェアを更新するか否かを決定してもよい。たとえば、ＣＰＵ１５０は、テスト通信における不具合の発生確率がジョブ履歴における通信の不具合の発生確率以下であることを条件として、新たなバージョンのファームウェアをＭＦＰ１００にインストールしてもよい。より具体的には、ジョブ履歴において、ＭＦＰ１００と端末２００との間の１０回の通信のうち１回しか不具合（エラー）が発生していない場合、ジョブ履歴における通信の不具合の発生確率は１０％である。この場合、ＭＦＰモデル１１００と端末モデル１２００との間のテスト通信における不具合（エラー）の発生確率が１０％以下であることを条件として、ＣＰＵ１５０は、新たなバージョンのファームウェアをＭＦＰ１００にインストールしてもよい。
【００８８】
なお、ＭＦＰ１００のＣＰＵ１５０は、ジョブ履歴との比較をすることなく、テスト通信の結果のみに基づいて、ＭＦＰ１００に新たなバージョンのファームウェアをインストールするか否かを決定してもよい。これにより、新たなバージョンのファームウェアを用いたテスト通信においてＭＦＰモデル１１００と端末モデル１２００との通信が正常に終了すれば、ＣＰＵ１５０は、ジョブ履歴におけるジョブ結果を参照することなく、新たなバージョンのファームウェアをＭＦＰ１００にインストールできる。
【００８９】
ＭＦＰ１００のＣＰＵ１５０は、ファームウェアの更新の通知を受けたときに、ジョブ履歴に含まれるジョブのうち、当該更新に関連する機能に関連するジョブのみを、テスト通信の対象として選択するように構成してもよい。たとえば、更新によって、ファームウェアが、そのＦＴＰ（File  Transfer  Protocol）通信に関する機能のみを更新される場合、ＣＰＵ１５０は、ジョブ履歴のうち、機能が「ＦＴＰ」であるジョブのみをテスト通信の対象としてもよい。この場合、ＣＰＵ１５０は、ステップＳ１０６において、機能が「ＦＴＰ」であるジョブの関連情報のみをサーバー３００に送信する。
【００９０】
＜第２の実施の形態＞
第１の実施の形態の画像処理システムでは、環境構築手段（サーバー３００）は画像処理装置（ＭＦＰ１００）に対して離間した装置として実現されていた。第２の実施の形態の画像処理システムでは、環境構築手段は画像処理装置と一体的に構成されていてもよい。図１１は、第２の実施の形態の画像処理システムの構成を模式的に示す図である。
【００９１】
図１１の例では、ＭＦＰ１００（のＣＰＵ１５０）によって、仮想環境１０００が生成される。仮想環境１０００は、図２の仮想環境１０００と同様に、ＭＦＰモデル１１００と端末モデル１２００とを含む。ＣＰＵ１５０は、ファームウェアの更新の通知を受信すると、仮想環境１０００におけるテスト通信を実施し、当該テスト通信の結果に基づいて、更新後のファームウェアを当該ＭＦＰ１００にインストールするか否かを決定する。すなわち、図１１の例では、ＭＦＰ１００のＣＰＵ１５０は、図８の処理と図９の処理の双方を実行するように構成されていてもよい。
【００９２】
＜第３の実施の形態＞
［１．画像処理システムの概要］
第３の実施の形態のＭＦＰ１００は、画像処理機能を実行するためのハードウェア要素と、サーバー機能を実行するためのハードウェア要素とを備える。図１２は、第３の実施の形態の画像処理システムの構成を模式的に示す図である。
【００９３】
図１２に示されるように、画像処理システム９００において、ＭＦＰ１００は、ネットワークＮを介して端末２００と通信する。ネットワークＮは、ＬＡＮ（ローカルエリアネットワーク）であってもよいし、グローバルネットワークであってもよい。端末２００は、たとえば、パーソナルコンピューター、スマートフォン、または、タブレット端末である。
【００９４】
第３の実施の形態では、ＭＦＰ１００は、サーバー機能と画像処理機能とが一体に構成された機器として実現される。ＭＦＰ１００は、画像処理部１０と、サーバー部２０と、操作パネル３０とを備える。操作パネル３０は、画像処理部１０およびサーバー部２０のユーザーインターフェースとして利用される。
【００９５】
［２．ＭＦＰのハードウェア構成］
図１３は、ＭＦＰ１００のハードウェアブロック図である。以下、図１３を参照して、画像処理部１０とサーバー部２０のそれぞれの構成を説明する。
【００９６】
（画像処理部１０）
画像処理部１０は、画像処理部１０全体を制御するためのＣＰＵ１５０と、記憶装置１６０とを含む。記憶装置１６０は、たとえば、不揮発性メモリーによって実現される。記憶装置１６０に格納される情報は、ＣＰＵ１５０によって実行されるプログラム、および、当該プログラムの実行に利用されるデータを含んでいてもよい。
【００９７】
画像処理部１０は、さらに、画像処理部１５１と、画像形成部１５２と、画像読取部１５３と、ＮＩＣ１５５と、内部インターフェース１８０とを含む。
【００９８】
画像処理部１５１は、入力された画像データを処理することにより、たとえば出力される画像の拡大・縮小等の処理を実行する。画像処理部１５１は、たとえば画像処理用のプロセッサーおよびメモリーによって実現される。画像形成部１５２は、トナーカートリッジ、記録用紙を収容するための用紙トレイ、および、感光体等の、記録用紙に画像を形成するためのハードウェア資源、ならびに、記録用紙を搬送するためのハードウェア資源によって実現される。画像読取部１５３は、スキャナー等の、原稿の画像データを作成するように構成されたハードウェア資源によって実現される。画像処理部１５１、画像形成部１５２、および、画像読取部１５３のそれぞれの機能は、画像形成装置においてよく知られたものであるから、ここでは詳細な説明は繰返さない。
【００９９】
内部インターフェース１８０は、サーバー部２０との通信のインターフェースとして機能し、たとえばＬＡＮ（Local  Area  Network）カードによって実現される。
【０１００】
（サーバー部２０）
サーバー部２０は、サーバー部２０全体を制御するためのＣＰＵ２５０と、ＮＩＣ２６０と、記憶装置２７０と、内部インターフェース２８０とを含む。ＮＩＣ２６０は、グローバルネットワークを介して端末２００等の外部機器との間でデータの送受信を実行するように構成された、ハードウェア資源によって実現される。当該ハードウェア資源の一例は、ネットワークカードである。ＣＰＵ２５０は、ＮＩＣ２６０を介して外部機器と通信する。
【０１０１】
記憶装置２７０は、たとえば、不揮発性メモリーによって実現される。記憶装置２７０に格納される情報は、ＣＰＵ２５０によって実行されるプログラム、および、当該プログラムの実行に利用されるデータを含んでいてもよい。
【０１０２】
ＣＰＵ２５０は、さらに、操作パネル３０を制御するように構成されている。操作パネル３０は、制御用回路３５０と、有機ＥＬ（Electro  Luminescence）ディスプレイ等によって実現される表示部３６０と、タッチセンサー等によって実現される操作部３７０と、非接触カードリーダー等によって実現されるカードリーダー３８０とを含む。
【０１０３】
制御用回路３５０は、ＣＰＵ２５０からの制御信号に従って、表示部３６０の表示動作を制御する。操作部３７０は、入力された情報を制御用回路３５０へ出力する。制御用回路３５０は、操作部３７０から入力された情報に応じた信号をＣＰＵ２５０へ出力する。制御用回路３５０は、ＣＰＵ２５０からの制御信号に応じて、カードリーダー３８０によって読み込まれたデータをサーバー部２０に転送する。
【０１０４】
［３．テスト通信］
図１４は、第３の実施の形態におけるテスト通信の実施の態様を模式的に示す図である。図１４に示されるように、第３の実施の形態では、仮想環境１０００は、画像処理部１０のＣＰＵ１５０とサーバー部２０のＣＰＵ２５０とによって協働して生成される。
【０１０５】
図１５は、第３の実施の形態のテスト通信における、仮想環境１０００内の通信の態様を説明するための図である。図１５に示されるように、ＭＦＰモデル１１００は、ＣＰＵ１５０によって生成される。端末モデル１２００は、ＣＰＵ２５０によって生成される。ＣＰＵ１５０とＣＰＵ２５０とが、内部インターフェース１８０と内部インターフェース２８０とを介して通信することにより、仮想環境１０００内でＭＦＰモデル１１００と端末モデル１２００との通信がシミュレーションされ、これにより、テスト通信が実現される。
【０１０６】
第３の実施の形態では、たとえば、画像処理部１０のＣＰＵ１５０が当該画像処理部１０のファームウェアの更新の通知を受けると、ＣＰＵ１５０は、ＣＰＵ２５０に、端末２００のモデルの生成に必要な情報を送信する。これにより、ＣＰＵ２５０は、端末モデル１２００を生成できる。ＣＰＵ１５０は、ＭＦＰモデル１１００と、ＣＰＵ２５０上の端末モデル１２００とを通信させることにより、テスト通信を実施し、当該テスト通信の結果に基づいて、更新後のファームウェアを画像処理部１０にインストールするか否かを決定する。
【０１０７】
ＭＦＰ１００において、ＣＰＵ１５０とＣＰＵ２５０とは、ＮＩＣ１５５，２６０を用いて、ネットワークＮを介して通信することができる。第３の実施の形態におけるテスト通信において、ＣＰＵ１５０は、ＭＦＰモデル１１００と、ＣＰＵ２５０上の端末モデル１２００と、ネットワークＮを介して通信させてもよい。これにより、テスト通信の結果に、ネットワークＮにおける実際の通信負荷が反映され得る。したがって、テスト通信の結果が実際の通信環境をより正確に反映し得る。
【０１０８】
＜第４の実施の形態＞
図１６は、画像処理システムの第４の実施の形態を示す図である。図１６の例では、画像処理システムは、ＭＦＰ１００、端末２００、およびサーバー３００に加えて、認証サーバー４００をさらに備える。認証サーバー４００は、ＭＦＰ１００と端末２００との間の通信履歴を格納する情報処理装置の一例である。
【０１０９】
第４の実施の形態の画像処理システムでは、認証サーバー４００は、プリンターサーバーとして機能する。端末２００のＣＰＵ２０１は、ＭＦＰ１００用のプリンタードライバーを用いて、ＭＦＰ１００に実行させるジョブを認証サーバー４００に登録する。認証サーバー４００は、ＭＦＰ１００にジョブを転送する。第４の実施の形態では、認証サーバー４００の記憶装置はジョブ情報・ジョブパケット保存領域を含む。すなわち、認証サーバー４００の記憶装置には、ジョブ情報（図６）およびジョブパケットが格納される。
【０１１０】
図１７は、第４の実施の形態のサーバー３００におけるテスト通信の内容を模式的に示す図である。図１７の例は、図２の例と比較して、認証サーバー４００をさらに含み、また、「工程２」の代わりに「工程２Ａ」および「工程２Ｂ」を含む。
【０１１１】
第４の実の形態において、ＭＦＰ１００が当該ＭＦＰ１００のファームウェアの更新の通知を受けると、ＭＦＰ１００のＣＰＵ１５０は、認証サーバー４００に対して、ジョブ情報およびジョブパケットのサーバー３００への送信を要求する（図１７中の「工程２Ａ」）。これに応じて、認証サーバー４００は、サーバー３００に、ジョブ情報およびジョブパケットを送信する（図１７中の「工程２Ｂ」）。
【０１１２】
その後、サーバー３００は、第１の実施の形態等と同様に、テスト通信を実施し、当該テスト通信の結果をＭＦＰ１００へ通知する。ＭＦＰ１００は、テスト通信の結果に基づいて、更新後のファームウェアをＭＦＰ１００にインストールするか否かを判断する。
【０１１３】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【０１１４】
１０  画像処理部、２０  サーバー部、３０  操作パネル、１００  ＭＦＰ、１５２  画像形成部、１５３  画像読取部、１６０，２０３，２７０，３０３  記憶装置、１７１，２１０  ディスプレイ、１７２，３７０  操作部、１８０，２８０  内部インターフェース、２００  端末、２０２，３０２  ＲＡＭ、２０４，３０４  通信インターフェース、３００  サーバー、４００  認証サーバー、９００  画像処理システム、１０００  仮想環境、１１００  ＭＦＰモデル、１２００  端末モデル。
【図１】
2019120995.tif 000003
【図２】
2019120995.tif 000004
【図３】
2019120995.tif 000005
【図４】
2019120995.tif 000006
【図５】
2019120995.tif 000007
【図６】
2019120995.tif 000008
【図７】
2019120995.tif 000009
【図８】
2019120995.tif 000010
【図９】
2019120995.tif 000011
【図１０】
2019120995.tif 000012
【図１１】
2019120995.tif 000013
【図１２】
2019120995.tif 000014
【図１３】
2019120995.tif 000015
【図１４】
2019120995.tif 000016
【図１５】
2019120995.tif 000017
【図１６】
2019120995.tif 000018
【図１７】
2019120995.tif 000019