(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-17
(45)【発行日】2022-01-26
(54)【発明の名称】画像処理装置および制御プログラム
(51)【国際特許分類】
G06F 8/65 20180101AFI20220119BHJP
G06F 11/22 20060101ALI20220119BHJP
G06F 3/12 20060101ALI20220119BHJP
【FI】
G06F8/65
G06F11/22 675E
G06F3/12 303
G06F3/12 330
G06F3/12 373
(21)【出願番号】P 2018013710
(22)【出願日】2018-01-30
【審査請求日】2020-12-17
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】穐田 勝彦
(72)【発明者】
【氏名】浅井 佑樹
(72)【発明者】
【氏名】橋本 晋弥
【審査官】多賀 実
(56)【参考文献】
【文献】特開2008-299709(JP,A)
【文献】特開平06-110797(JP,A)
【文献】特開2013-062599(JP,A)
【文献】特開2016-131304(JP,A)
【文献】特開2000-138788(JP,A)
【文献】特開2015-197844(JP,A)
【文献】特開2019-120995(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G03G 21/00
G06F 3/12
G06F 8/00-8/77
G06F 9/44-9/455
G06F 11/07
G06F 11/22-11/36
(57)【特許請求の範囲】
【請求項1】
端末と通信するように構成された画像処理装置であって、
前記画像処理装置を制御するためのファームウェアを記憶するように構成されたメモリーと、
前記ファームウェアに基づいて前記画像処理装置を制御するための処理を実行するように構成されたプロセッサーと、
前記端末と通信するための通信インターフェースとを備え、
前記メモリーは、前記端末と前記画像処理装置との通信履歴を記憶し、
前記プロセッサーは、
前記ファームウェアが更新された場合に、更新前のファームウェアの前記通信履歴に従って、更新後のファームウェアを利用して、前記端末とテスト通信を実行し、
前記テスト通信の結果に基づいて、前記ファームウェアの更新を維持するか否かを決定する、ように構成されている、画像処理装置。
【請求項2】
前記プロセッサーは、
前記テスト通信の結果が通信の失敗を示すものである場合に、更新前のファームウェアで、前記通信履歴に従った通信を再度実行し、
前記再度の通信の結果が通信の失敗を示すものである場合には、前記ファームウェアの更新を維持するように構成されている、請求項1に記載の画像処理装置。
【請求項3】
前記プロセッサーは、前記通信履歴の中の一部の通信内容であって、所与の条件を満たす通信内容について、前記テスト通信を実行するように構成されている、請求項1または2に記載の画像処理装置。
【請求項4】
前記所与の条件は、通信の結果が通信の成功を示すものであることを含む、請求項3に記載の画像処理装置。
【請求項5】
前記通信履歴は、2以上の通信先のそれぞれとの通信の内容を含み、
前記所与の条件は、前記画像処理装置との通信の頻度が所与の基準より高い通信先との通信内容であることを含む、請求項3または4に記載の画像処理装置。
【請求項6】
前記所与の条件は、共通する条件を有する2以上の通信内容の中の1つの通信内容であることを含む、請求項3~5のいずれか1項に記載の画像処理装置。
【請求項7】
前記プロセッサーは、
前記ファームウェアが更新されてから第1の期間以内に、前記通信履歴に含まれる通信内容のうち第1の条件を満たす通信内容について前記テスト通信を実行し、
前記ファームウェアが更新されてから前記第1の期間経過後に、前記通信履歴に含まれる通信内容のうち前記第1の条件を満たす通信内容以外の通信内容についての前記テスト通信を実行する、ように構成されている請求項1~6のいずれか1項に記載の画像処理装置。
【請求項8】
更新された前記ファームウェアは、所与の機能に関連付けられており、
前記プロセッサーは、前記通信履歴に含まれる通信内容のうち、前記所与の機能に関連する通信内容を含む一部の通信内容について、前記テスト通信を実行するように構成されている、請求項1~7のいずれか1項に記載の画像処理装置。
【請求項9】
前記ファームウェアは、前記更新によって一部の機能の設定値を変更され、
前記プロセッサーは、前記通信履歴についての前記テスト通信では、前記一部の機能について更新前の設定値を利用する、請求項1~8のいずれか1項に記載の画像処理装置。
【請求項10】
前記プロセッサーは、前記テスト通信の結果が通信の失敗を示すものである場合に、当該テスト通信のパケットを用いた検証のための処理を実行するように構成されている、請求項1~9のいずれか1項に記載の画像処理装置。
【請求項11】
コンピューターに、請求項1~10のいずれか1項に記載の画像処理装置の前記プロセッサーによって実行される処理を実行させる、画像処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置のファームウェアのバージョンの変更に関する。
【背景技術】
【0002】
従来、端末におけるプリンタードライバーのインストールに際して、プリンター(画像処理装置)側のファームウェアと当該ドライバーとの整合を確認する技術が提案されている。たとえば、特開2007-293514号公報(特許文献1)は、プリンタードライバーのインストーラーを開示している。当該インストーラーは、プリンターのファームウェアのバージョンを取得し、データベースからプリンターのファームウェアのバージョンの整合性に関する情報を読み出し、ドライバーのバージョンとファームウェアのバージョンとの整合性を維持する機能を有する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、プリンター側でファームウェアが更新される場合がある。更新後のファームウェアと端末のプリンタードライバーとの組合せによっては、ファームウェアの更新によって端末とプリンターとの通信に不具合が生じる場合があり得る。
【0005】
本開示は、係る実情に鑑み考え出されたものであり、その目的は、画像処理装置におけるファームウェアの更新による、当該画像処理装置の既存の通信相手との通信の不具合が生じることを回避することである。
【課題を解決するための手段】
【0006】
本開示のある局面に従うと、端末と通信するように構成された画像処理装置であって、画像処理装置を制御するためのファームウェアを記憶するように構成されたメモリーと、ファームウェアに基づいて画像処理装置を制御するための処理を実行するように構成されたプロセッサーと、端末と通信するための通信インターフェースとを備え、メモリーは、端末と画像処理装置との通信履歴を記憶し、プロセッサーは、ファームウェアが更新された場合に、更新前のファームウェアの通信履歴に従って、更新後のファームウェアを利用して、端末とテスト通信を実行し、テスト通信の結果に基づいて、ファームウェアの更新を維持するか否かを決定する、ように構成されている、画像処理装置が提供される。
【0007】
プロセッサーは、テスト通信の結果が通信の失敗を示すものである場合に、更新前のファームウェアで、通信履歴に従った通信を再度実行し、再度の通信の結果が通信の失敗を示すものである場合には、ファームウェアの更新を維持するように構成されていてもよい。
【0008】
プロセッサーは、通信履歴の中の一部の通信内容であって、所与の条件を満たす通信内容について、テスト通信を実行するように構成されていてもよい。
【0009】
所与の条件は、通信の結果が通信の成功を示すものであることを含んでいてもよい。
通信履歴は、2以上の通信先のそれぞれとの通信の内容を含んでいてもよい。所与の条件は、画像処理装置との通信の頻度が所与の基準より高い通信先との通信内容であることを含んでいてもよい。
【0010】
所与の条件は、共通する条件を有する2以上の通信内容の中の1つの通信内容であることを含んでいてもよい。
【0011】
プロセッサーは、ファームウェアが更新されてから第1の期間以内に、通信履歴に含まれる通信内容のうち第1の条件を満たす通信内容についてテスト通信を実行し、ファームウェアが更新されてから第1の期間経過後に、通信履歴に含まれる通信内容のうち第1の条件を満たす通信内容以外の通信内容についてのテスト通信を実行する、ように構成されていてもよい。
【0012】
更新されたファームウェアは、所与の機能に関連付けられていてもよい。プロセッサーは、通信履歴に含まれる通信内容のうち、所与の機能に関連する通信内容を含む一部の通信内容について、テスト通信を実行するように構成されていてもよい。
【0013】
ファームウェアは、更新によって一部の機能の設定値を変更されていてもよい。プロセッサーは、通信履歴についてのテスト通信では、一部の機能について更新前の設定値を利用してもよい。
【0014】
プロセッサーは、テスト通信の結果が通信の失敗を示すものである場合に、当該テスト通信のパケットを用いた検証のための処理を実行するように構成されていてもよい。
【0015】
本開示の他の局面に従うと、コンピューターに、上記の画像処理装置のプロセッサーによって実行される処理を実行させる、画像処理装置の制御プログラムが提供される。
【発明の効果】
【0016】
本開示によれば、画像処理装置のプロセッサーは、ファームウェアが更新された場合に、テスト通信の結果に基づいて、当該ファームウェアの更新を維持するか否かを決定する。これにより、画像処理装置は、ファームウェアの更新によって既存の通信相手との通信に不具合が生じる場合に、ファームウェアの更新を回避することができる。
【図面の簡単な説明】
【0017】
【
図1】情報処理システムの構成の一例を示す図である。
【
図2】MFP100のハードウェア構成を概略的に示す図である。
【
図4】MFP100のファームウェアの更新について、MFP100のCPU150が実行する処理のフローチャートの一例を示す図である。
【
図5】ある実施の形態における、テスト通信の履歴の一例を示す図である。
【
図6】第2の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図7】ステップS182における、更新前のファームウェアを用いた、再度ジョブAの通信が実行されたときのジョブ履歴の一例を表わす。
【
図8】第3の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図9】ジョブ履歴の内容の一例を模式的に示す図である。
【
図10】第4の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図11】第5の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図12】ジョブ履歴の内容の一例を模式的に示す図である。
【
図13】
図12のジョブ履歴から作成された「送信頻度順ジョブ履歴」の一例を示す図である。
【
図14】第6の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図15】ジョブ履歴の内容の一例を模式的に示す図である。
【
図16】
図15のジョブ履歴から抽出されたジョブを示す図である。
【
図17】第7の実施の形態のMFP100のCPU150が実行する処理の一部分のフローチャートである。
【
図18】第7の実施の形態のMFP100のCPU150が実行する処理の他の部分のフローチャートである。
【
図19】ジョブ履歴の内容の一例を模式的に示す図である。
【
図20】
図19のジョブ履歴から抽出されたジョブを示す図である。
【
図21】
図19のジョブ履歴に含まれるジョブのうち、抽出されたジョブ以外のジョブを示す図である。
【
図22】第8の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図23】ファームウェアの更新情報の一例を模式的に示す図である。
【
図24】第9の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【
図25】格納される設定情報の一例を示す図である。
【
図26】ファームウェア更新後の設定情報の一例を示す図である。
【
図27】第10の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
【発明を実施するための形態】
【0018】
以下に、図面を参照しつつ、画像処理装置の実施の形態を含む情報処理システムについて説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【0019】
<第1の実施の形態>
[1.情報処理システムの構成]
図1は、情報処理システムの構成の一例を示す図である。情報処理システムは、MFP(Multi-Functional Peripheral)100を含む。情報処理システムにおいて、MFP100は、ネットワークNを介して、管理サーバー200およびX台のホスト300-1~Xと通信する。Xは1以上の整数である。X台のホスト300-1~Xは、これらの間で共通した性質について言及されるときには、「ホスト300」と称される。ホスト300の一例は、プリンターサーバー等の情報処理装置である。他の例は、ユーザーによって操作されるパーソナルコンピューター等の端末である。
【0020】
本実施の形態において、MFP100は、ホスト300との間で、ジョブとして文書を送受信する。一例において、MFP100は、スキャンジョブとして、当該MFP100において生成されたファイルをホスト300へ送信する。他の例において、MFP100は、プルプリントジョブとして、ホスト300からファイルを受信し、当該ファイルの画像を出力する。
【0021】
管理サーバー200は、たとえばMFP100の製造元によって管理されるサーバーであり、MFP100のファームウェアを管理する。MFP100のファームウェアの更新版がリリースされると、管理サーバー200はMFP100に当該リリースを通知する。MFP100は、管理サーバー200に対して、更新後のファームウェアのプログラムを要求する。管理サーバー200は、MFP100に対して更新後のファームウェアを送信する。MFP100は、更新後のファームウェアを受信し、当該更新後のファームウェアを当該MFP100にインストールする。
【0022】
[2.ハードウェア構成]
図2は、MFP100のハードウェア構成を概略的に示す図である。
図2を参照して、MFP100は、全体を制御するためのCPU(Central Processing Unit)150と、プログラムおよびデータを格納するための記憶装置160と、操作パネル170とを含む。
【0023】
記憶装置160は、CPU150により実行されるプログラムおよび各種データを記憶する。操作パネル170は、ディスプレイ171と、操作部172とを含む。ディスプレイ171の一例は、液晶表示装置である。ディスプレイ171の他の例は、プラズマディスプレイである。操作部172は、MFP100に対する操作の入力を受け付ける。
【0024】
MFP100は、さらに、画像処理部151と、画像形成部152と、画像読取部153と、ファクシミリ通信部154と、NIC(Network Interface Controller)155とを含む。画像処理部151は、入力された画像に対して拡大・縮小を含む各種の処理を施す。画像形成部152は、感光体等の、記録用紙に画像を形成するための要素を含む。画像読取部153は、スキャナー等の原稿の画像データを生成するための要素を含み、原稿のスキャンによりスキャンデータを生成する。ファクシミリ通信部154は、モデム等のファクシミリ通信により画像データの送受信するための要素を含む。NIC155は、ネットワークを介してデータ通信をするための要素を含む。画像処理部151、画像形成部152、画像読取部153、ファクシミリ通信部154、および、NIC155のそれぞれの機能は、画像形成装置においてよく知られたものであるから、ここでは詳細な説明は繰返さない。
【0025】
[3.ジョブ履歴]
MFP100の記憶装置160は、MFP100のジョブ履歴(通信履歴)を格納する。
図3は、ジョブ履歴の一例を模式的に示す図である。
【0026】
図3を参照して、ジョブ履歴は、「ジョブID」「種類」「機能」「通信相手のアドレス」「ユーザーID」「パスワード」「時刻」「ジョブ結果」および「MFPファームVer」を含む。「ジョブID」は、各ジョブを識別する。
【0027】
「種類」は、ジョブの種類を表わす。「受信」は、MFP100が文書を受信したジョブを表わす。「送信」は、MFP100が文書を送信したジョブを表わす。
【0028】
「機能」は、ジョブの送信に利用されたプロトコルを表わす。「通信相手のアドレス」は、ジョブの送受信における通信相手(端末(ホスト300)等)のアドレスを表わす。「ユーザーID」は、ジョブの実行を指示したユーザーを識別する。「パスワード」は、ユーザーIDに関連付けられているパスワードを表わす。ユーザーは、ネットワークシステムにログインするために、ユーザーIDとパスワードとの組合せを利用する。
【0029】
「時刻」は、ジョブが実行された時刻を表わす。「ジョブ結果」は、MFP100と端末(ホスト300)との間のジョブのデータ送信の結果を表わす。OKは、データ送信が正常に終了したことを表わす。NGは、データ送信が正常に終了しなかったことを表わす。
【0030】
「MFPファームVer」は、ジョブが送受信された際のMFP100のファームウェアのバージョンを表わす。
【0031】
[4.処理の流れ]
図4は、MFP100のファームウェアの更新について、MFP100のCPU150が実行する処理のフローチャートの一例を示す図である。
図4の処理は、たとえば、CPU150が所与のプログラムを実行することによって実現される。
【0032】
図4を参照して、ステップS100にて、CPU150は、管理サーバー200からファームウェアの更新の通知を受信したか否かを判断する。CPU150は、当該通知を受信したと判断するまでステップS100に制御をとどめ(ステップS100にてNO)、当該通知を受信したと判断すると(ステップS100にてYES)、ステップS110へ制御を進める。
【0033】
ステップS110にて、CPU150は、管理サーバー200から更新後のファームウェアのプログラムを受信し、当該更新後のファームウェアをMFP100にインストールする。これにより、MFP100において、ファームウェアが更新される。
【0034】
ステップS120にて、CPU150は、ジョブ履歴に含まれる通信相手に接続する。一例では、ステップS120において、CPU150は、ジョブ履歴における最もジョブIDの値が大きいジョブであって、ステップS120の処理対象になっていないジョブの通信相手に接続する。
【0035】
ステップS130にて、CPU150は、通信相手に対して、ジョブ履歴の内容に従って通信し、当該通信の結果を記憶装置160に保存する。
【0036】
たとえば、CPU150は、ステップS120にて、
図3のジョブID「3」の通信相手のアドレス(172.16.0.30)に接続する。ジョブID「3」において、種類は「送信」であり、機能は「WebDAV(Web-based Distributed Authoring and Versioning)」である。CPU150は、ステップS130にて、ジョブID「3」において送信されたファイルを、アドレス「172.16.0.30」の端末へ、プロトコル「WebDAV」に従って送信する。
【0037】
なお、ステップS110において、ファームウェアが更新されている。したがって、CPU150は、ジョブID「3」の内容に従った通信を、更新後のファームウェアを利用して実行する。このような、更新後のファームウェアを用いて、更新前のジョブ履歴(プロトコル等)の内容を利用した通信を行うことを、「テスト通信」という。
図3のジョブ履歴では、ファームウェアのバージョンは「4.22」である。テスト通信では、CPU150は、バージョン「4.22」に対する更新後のバージョンのファームウェアを利用する。CPU150は、テスト通信の結果(たとえば、OKまたはNG)を保存する。
【0038】
ステップS140にて、CPU150は、ジョブ履歴内の通信の結果(項目「ジョブ結果」)と、ステップS130で保存したテスト通信の結果(ファームウェア更新後の通信の結果)とを比較する。たとえば、CPU150は、ステップS130においてジョブID「3」のテスト通信を実施した場合、ステップS140において、ジョブ履歴内のジョブID「3」の通信の結果と、ステップS130において得られた通信の結果とを比較する。
【0039】
ステップS150にて、CPU150は、ステップS140における比較において、2つの結果が同じであるか否かを判断する。CPU150は、2つの結果が同じであると判断すると(ステップS150にてYES)、ステップS170へ制御を進める。CPU150は、2つの結果が異なると判断すると(ステップS150にてNO)、ステップS160へ制御を進める。
【0040】
ステップS160にて、CPU150は、ファームウェア更新後の通信の結果(ステップS130にて取得された結果)が「NG」であるか否かを判断する。CPU150は、ファームウェア更新後の通信の結果が「NG」であると判断すると(ステップS160にてYES)、ステップS180へ制御を進める。ファームウェア更新後の通信の結果が「OK」であると判断すると(ステップS160にてNO)、ステップS170へ制御を進める。
【0041】
たとえば、ステップS130にてジョブID「3」についてのテスト通信が実施された場合、ジョブ履歴においてジョブID「3」の項目「ジョブ結果」の値が「OK」であって、テスト通信の通信の結果が「NG」であれば、制御はステップS160からステップS180へ進められる。ジョブ履歴においてジョブID「3」の項目「ジョブ結果」の値が「NG」であって、テスト通信の通信の結果が「OK」であれば、制御はステップS160からステップS170へ進められる。
【0042】
ステップS180にて、CPU150は、ステップS110において更新したファームウェアのバージョンを元に戻す。すなわち、更新後のファームウェアをアンインストールすること等により、ファームウェアのバージョンを更新前のものに戻す。その後、CPU150は、
図4の処理を終了させる。
【0043】
ステップS170にて、CPU150は、ジョブ履歴において未だテスト通信の対象となっていない(接続未確認の)ジョブがあるか否かを判断する。CPU150は、そのようなジョブがあると判断すると(ステップS170にてYES)、ステップS120へ制御を戻す。CPU150は、そのようなジョブが無いと判断すると(ステップS170にてNO)、
図4の処理を終了させる。
【0044】
以上説明された
図4の処理によれば、MFP100においてファームウェアが更新されると、ジョブ履歴内の各ジョブについてテスト通信が実行される。ジョブ履歴の中の少なくとも1つのジョブについて、ジョブ履歴中の通信の結果が「OK」であって、テスト通信の結果が「NG」である場合、ファームウェアの更新が解消される。すなわち、ファームウェアのバージョンが更新前のものへ戻される。
【0045】
なお、CPU150は、ジョブ履歴内の全てのジョブについてテスト通信を実行しなくてもよい。一例では、CPU150は、ジョブ履歴において、ジョブ結果の値が「OK」のジョブについてのみ、テスト通信を実行する。
【0046】
図5は、ある実施の形態における、テスト通信の履歴の一例を示す図である。
図5の履歴は、
図3の履歴のうち、ジョブ履歴においてジョブ結果の値が「OK」のジョブ(ジョブID「1」および「2」)についてのテスト通信の結果を含む。
図3の「MFPファームウェアVer」の値が4.22であるのに対し、
図5の「MFPファームウェアVer」の値が5.00である。これは、ファームウェアのバージョンが更新されたことを表わす。
【0047】
図5に示されるように、CPU150は、ジョブ履歴において、ジョブ結果の値が「OK」のジョブについてのみ、テスト通信を実行してもよい。
【0048】
<第2の実施の形態>
図6は、第2の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図6の処理は、
図4の処理に対して、ステップS182,S183,S184をさらに含む。
【0049】
第2の実施の形態において、CPU150は、ステップS180にてファームウェアのバージョンを更新前のものに戻した後、ステップS182にて、更新前のファームウェアで、再度、処理対象のジョブについての通信を行う。すなわち、CPU150は、更新前のファームウェアを用いて、ジョブ履歴の内容に従ってファイルの送信等を実行する。その後、CPU150は、ステップS183へ制御を進める。
【0050】
ステップS183にて、CPU150は、ステップS182における元のファームウェアを用いた通信の結果がNGであるか否かを判断する。CPU150は、ステップS182における通信の結果がNGであれば(ステップS183にてYES)、ステップS184へ制御を進める。CPU150は、ステップS182における通信の結果がOKであれば(ステップS183にてNO)、
図6の処理を終了させる。
【0051】
ステップS184にて、CPU150は、再度、ファームウェアを更新する。これにより、MFP100では、ファームウェアのバージョンは、ステップS110で更新され、ステップS130で更新前のものに戻された後、再度、ステップS184で更新される。その後、CPU150は
図6の処理を終了させる。
【0052】
以上説明された第2の実施の形態では、CPU150は、ジョブ履歴においてジョブAのジョブ結果の値が「OK」であるが、更新後のファームウェアを用いた当該ジョブAのテスト通信の結果が「NG」である場合、一旦、ステップS180にて、ファームウェアのバージョンを更新前のものに戻す。その後、更新前のバージョンのファームウェアを用いて、再度ジョブAの通信を実行し、当該通信の結果が「NG」であれば、CPU150は、ステップS184にて、ファームウェアのバージョンを再度更新する。すなわち、結果として、ファームウェアのバージョンの更新が維持される。
【0053】
図7は、ステップS182における、更新前のファームウェアを用いた、再度ジョブAの通信が実行されたときのジョブ履歴の一例を表わす。
図7の例では、ジョブAとして、ジョブID「2」のジョブが採用されている。
【0054】
図3、
図5、および
図7を参照する。ジョブID「2」について、ジョブ履歴(
図3)、更新後のファームウェアのテスト通信(
図5)、更新前のファームウェアを用いた再度の通信(
図7)のそれぞれのジョブ結果の値は、「OK」「NG」「NG」である。すなわち、2017年9月2日では、ファームウェアを更新しても、ファームウェアを更新しなくても、ジョブID「2」として示される内容の通信の結果はNGである。このような場合、CPU301は、ファームウェアを再度更新する。これにより、ファームウェアの更新が維持される。
【0055】
すなわち、第2の実施の形態では、テスト通信の結果が通信の失敗を示すもの(NG)である場合に、更新前のファームウェアで、通信履歴に従った通信を再度実行し、再度の通信の結果が通信の失敗を示すもの(NG)である場合には、ファームウェアの更新が維持されてもよい。
【0056】
<第3の実施の形態>
図8は、第3の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図8の処理は、
図4の処理に対して、ステップS112をさらに含む。第3の実施の形態では、テスト通信の対象となるジョブの条件が設定される。CPU150は、ジョブ履歴のうち、当該条件を満たすジョブについてのみ、テスト通信を実行する。
【0057】
より具体的には、
図8を参照して、CPU150は、ステップS110でファームウェアを更新した後、ステップS112へ制御を進める。
【0058】
ステップS112にて、CPU150は、ジョブ履歴が特定期間に実行されたジョブを含むか否かを判断する。特定期間は、テスト通信についての条件の一例である。CPU150は、ジョブ履歴における各ジョブの項目「時間」の値に基づいて、ジョブ履歴が特定期間に実行されたジョブを含むか否かを判断する。CPU150は、ジョブ履歴がそのようなジョブを含むと判断すると(ステップS112にてYES)、ステップS120へ制御を進め、そのようなジョブを含まないと判断すると(ステップS112にてNO)、そのまま
図8の処理を終了する。
【0059】
ステップS120にて、CPU150は、上記特定期間に実行されたジョブのうち、テスト通信の対象になっていないジョブのうちジョブIDの値が最も大きいジョブについて、通信相手のアドレスに接続する。
【0060】
図9は、ジョブ履歴の内容の一例を模式的に示す図である。
図9の例に対して、テスト通信の条件である特定期間が「2017年9月1日から2017年9月30日」と設定された場合、CPU301は、ジョブ履歴の中のジョブの内、ジョブID「102」~「150」のそれぞれについてテスト通信を実行し、ファームウェアの更新を維持するか否かを判断する。
【0061】
なお、「ジョブが特定期間内に実行されたものであること」は、テスト通信のための所与の条件の単なる一例である。当該条件の他の例は、「ジョブに使用された通信プロトコルの種類が特定の種類であること」である。さらに他の例は、「通信相手のアドレスが特定のアドレスであること」である。さらに他の例は、「通信相手のユーザーIDが特定のユーザーIDであること」である。
【0062】
<第4の実施の形態>
図10は、第4の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図10の処理は、
図4の処理に対して、ステップS114をさらに含む。
【0063】
第4の実施の形態において、CPU150は、ジョブ履歴のうち通信の結果の値が「OK」であるジョブについてのみ、テスト通信を実施する。
【0064】
より具体的には、CPU150は、ステップS110にてファームウェアを更新した後、ステップS114へ制御を進める。
【0065】
ステップS114にて、CPU150は、ジョブ履歴に登録されているジョブの内、テスト通信の対象となっていないものであって、結果の値が「OK」であるジョブがあるか否かを判断する。CPU150は、ジョブ履歴が、テスト通信の対象となっておらずかつ結果の値が「OK」であるジョブを含むと判断すると(ステップS114にてYES)、ステップS120へ制御を進める。そうでなければ(ステップS114にてNO)、CPU150は、
図10の処理を終了させる。
【0066】
結果の値が「OK」であることは、通信の結果が通信の成功を示すものであることの一例である。第4の実施の形態では、CPU150は、過去に通信が成功していた通信相手についてのみ、テスト通信を実施する。CPU150は、過去に通信できなかった通信相手とはテスト通信を行わない。これにより、MFP100は、更新後のファームウェアが、更新前のファームウェアによって通信できた通信相手と継続して通信ができるか否かを効率的に確認することができる。
【0067】
<第5の実施の形態>
図11は、第5の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図11の処理は、
図4の処理に対して、ステップS120,S170は含まないが、ステップS116,S122,S172を含む。
【0068】
図11を参照して、CPU150は、ステップS110にてファームウェアを更新すると、ステップS116へ制御を進める。
【0069】
ステップS116にて、CPU150は、ジョブ履歴から、「送信頻度順ジョブ履歴」を作成する。「送信頻度順ジョブ履歴」は、ジョブ履歴に含まれるジョブがMFP100との接続頻度の高い順に並べ直されることによって、作成される。
【0070】
図12は、ジョブ履歴の内容の一例を模式的に示す図である。
図12のジョブ履歴は、6のジョブ(ジョブID「1」~「6」)を含む。
図12のジョブ履歴は、通信相手のアドレスとして、2種類のアドレス(「172.16.0.10」「172.16.0.20」)を含む。前者のアドレスは4のジョブに対応し、後者のアドレスは2のジョブに対応する。すなわち、MFP100は、後者のアドレスより前者のアドレスの方に多く接続している。したがって、後者のアドレスより前者のアドレスの方が、MFP100の接続頻度が高い。
【0071】
図13は、
図12のジョブ履歴から作成された「送信頻度順ジョブ履歴」の一例を示す図である。
図13では、前者のアドレス(172.16.0.10)に対応するジョブが、後者のアドレス(172.16.0.20)に対応するジョブよりも上方に配置されている。
【0072】
図11に戻って、ステップS122にて、CPU150は、テスト通信の対象となるジョブを設定する。設定されるジョブは、「送信頻度順ジョブ履歴」(
図13)において、まだテスト通信の対象となっていないジョブのうち、最も上方に配置されたジョブである。CPU150は、当該ジョブにおける通信相手に接続する。
【0073】
その後、ステップS130にて、CPU150は、ステップS122にて接続した通信相手との間で、テスト通信の対象として設定されたジョブの内容を利用して、テスト通信を実施する。
【0074】
第5の実施の形態において、CPU150は、
図13に示されたように並べ直されたジョブ履歴のうち上方に配置された特定の数のジョブについてのみ、テスト通信を実行してもよい。
【0075】
また、CPU150は、
図13のジョブ履歴のうち、情報に配置された特定の数の通信相手のアドレスのそれぞれについて1回ずつテスト通信を実施してもよい。すなわち、CPU150は、アドレス(「172.16.0.10」)についてテスト通信を1回実施し、アドレス(「172.16.0.20」)についてテスト通信を1回実施してもよい。この場合、たとえば、ジョブID「1」~「6」のうち、ジョブID「5」,「4」についてのみ、テスト通信が実施されてもよい。
【0076】
CPU150は、
図4等のステップS170の代わりに、ステップS172の制御を実行する。ステップS172にて、CPU150は、「送信頻度順ジョブ履歴」に未確認の(未だテスト通信の対象となっていない)ジョブがあるか否かを判断する。CPU150は、そのようなジョブがあると判断すれば(ステップS172にてYES)、ステップS122へ制御を戻し、そのようなジョブが無いと判断すると(ステップS172にてNO)、
図11の処理を終了する。
【0077】
CPU150は、ジョブ履歴のうち、通信頻度の低い通信相手については、テスト通信を省略してもよい。たとえば、ジョブ履歴において、1つのジョブしか登録されていない通信相手については、CPU150は、テスト通信の実施を省略してもよい。
【0078】
以上説明された第5の実施の形態では、
図12に示されたように、通信履歴は、2以上の通信先(通信相手のアドレス)のそれぞれとの通信の内容を含んでいてもよい。テスト通信の実施のための条件は、「MFP100との通信の頻度が所与の基準より高い通信先との通信内容であること」を含んでいてもよい。
【0079】
<第6の実施の形態>
図14は、第6の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図14の処理は、
図4の処理に対して、ステップS120,S170は含まないが、ステップS124,S126,S173を含む。
【0080】
図14を参照して、ステップS110にてファームウェアを更新した後、CPU150は、ステップS124にて、ジョブ履歴から、同一機能、同一の通信相手のアドレス、および、同一のユーザーIDに関連付けられたジョブから1のジョブを抽出する。
【0081】
図15は、ジョブ履歴の内容の一例を模式的に示す図である。
図15のジョブ履歴は、6のジョブ(ジョブID「1」~「6」)を含む。
図16は、
図15のジョブ履歴から抽出されたジョブを示す図である。
図15の例では、ジョブID「6」とジョブID「3」では、機能(WebDAV)、通信相手のアドレス(172.2.0.30)、および、ユーザーID(user3)が共通する。したがって、
図16では、ジョブID「6」とジョブID「3」のうちジョブID「6」のみが選択されて登録されている。選択される基準は、たとえば、「時刻」が最も遅いものであることである。
【0082】
また、
図15の例では、ジョブID「5」とジョブID「2」では、機能(SMB(Server Message Block))、通信相手のアドレス(172.2.0.20)、および、ユーザーID(user2)が共通する。したがって、
図16では、ジョブID「5」とジョブID「2」のうちジョブID「5」のみが選択されて登録されている。
【0083】
また、
図15の例では、ジョブID「4」とジョブID「1」では、機能(FTP(File Transfer Protocol))、通信相手のアドレス(172.2.0.10)、および、ユーザーID(user1)が共通する。したがって、
図16では、ジョブID「4」とジョブID「1」のうちジョブID「4」のみが選択されて登録されている。
【0084】
図14に戻って、ステップS126にて、CPU150は、ステップS124にて抽出されたジョブのうち、まだテスト通信の対象になっていないジョブを、テスト対象のジョブとして設定する。CPU150は、当該ジョブにおける通信相手に接続する。その後、制御はステップS130へ進む。
【0085】
CPU150は、
図4等のステップS170の代わりに、ステップS173の制御を実行する。ステップS173にて、CPU150は、ステップS124にて抽出されたジョブのうち未確認の(未だテスト通信の対象となっていない)ジョブがあるか否かを判断する。CPU150は、そのようなジョブがあると判断すると(ステップS173にてYES)、ステップS126へ制御を戻し、そのようなジョブが無いと判断すると(ステップS173にてNO)、
図14の処理を終了する。
【0086】
以上説明された第6の実施の形態では、CPU150は、テスト通信の対象のジョブとして、共通する条件(機能、等)を有する2以上の通信内容(ジョブ)の中の1つの通信内容(ジョブ)を設定してもよい。
【0087】
<第7の実施の形態>
図17および
図18は、第7の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図17の処理は、
図14(第6の実施の形態)の処理に対して、ステップS118,S182をさらに含む。第7の実施の形態では、CPU150は、ファームウェアの更新通知を受信した時点では、第6の実施の形態と同様に、抽出されたジョブについてのみテスト通信を実施する。第7の実施の形態では、CPU150は、さらに、他のタイミングにおいて、残りのジョブについてのテスト通信を実施する。
【0088】
図17を参照して、CPU150は、ステップS110にてファームウェアを更新した後、ステップS118にて、「更新」フラグをオンする。その後、制御はステップS124へ進む。CPU150は、ステップS124にて、第6の実施の形態と同様にジョブ履歴からジョブを抽出し、ステップS126にて、抽出されたジョブの中から順にテスト通信の対象のジョブを設定する。
【0089】
図19は、ジョブ履歴の内容の一例を模式的に示す図である。
図19のジョブ履歴は、6のジョブ(ジョブID「1」~「6」)を含む。
図20は、
図19のジョブ履歴から抽出されたジョブを示す図である。
図20の例は、4のジョブ(ジョブID「6」「5」「4」「3」)を含む。
図21は、
図19のジョブ履歴に含まれるジョブのうち、抽出されたジョブ以外のジョブを示す図である。
図21の例は、2のジョブ(ジョブID「2」「1」)を含む。
【0090】
図17の処理において、CPU150は、ステップS126にて、
図20に示された4のジョブ(ジョブID「6」「5」「4」「3」)の中から1つのジョブを、順に、テスト通信の対象として設定する。これらの4つのジョブについてテスト通信を終了するか、少なくとも1つのジョブについてステップS180(ファームウェアのバージョンを元に戻す)を実行すると、CPU150は
図17の処理を終了させる。なお、ステップS180にてファームウェアのバージョンを元に戻した後、CPU150は、ステップS182にて、ステップS118にてオンした「更新」フラグをオフする。その後、CPU150は、
図17の処理を終了させる。
【0091】
図18を参照して、ステップS200にて、CPU150は、予め定められた期間が到来したか否かを判断する。
図18の例において、予め定められた期間とは、たとえば、夜間(たとえば、午後22時から午前2時)または休日(たとえば、日曜日)である。
【0092】
ステップS210にて、CPU150は、「更新」フラグがオンであるか否かを判断する。「更新」フラグは、ステップS118にてオンされて、ステップS182またはステップS260にてオフされる。
【0093】
ステップS220~S270にて、CPU150は、ジョブ履歴に含まれるジョブのうち、
図17の処理においてテスト通信の対象となったジョブ(
図20:抽出されたジョブ)以外のジョブ(
図21:残りのジョブ)について、順にテスト通信を実行する。
【0094】
すなわち、CPU150は、ステップS220にて、CPU150は、残りのジョブ(
図21)のうち1のジョブを処理対象に設定し、当該ジョブの通信相手に接続する。一例では、ステップS220において、CPU150は、残りのジョブのうち最もジョブIDの値が大きいジョブであって、ステップS220の処理対象になっていないジョブを、テスト通信の対象のジョブとして設定する。
【0095】
ステップS230にて、CPU150は、通信相手に対して、ジョブ履歴の内容に従って通信し、当該通信の結果を記憶装置160に保存する。ステップS240にて、CPU150は、ジョブ履歴内の通信の結果(項目「ジョブ結果」)と、ステップS230で保存したテスト通信の結果(ファームウェア更新後の通信の結果)とを比較する。
【0096】
ステップS250にて、CPU150は、ステップS240における比較において、2つの結果が同じであるか否かを判断する。CPU150は、2つの結果が同じであると判断すると(ステップS250にてYES)、ステップS270へ制御を進める。CPU150は、2つの結果が異なると判断すると(ステップS250にてNO)、ステップS260へ制御を進める。
【0097】
ステップS260にて、CPU150は、ファームウェア更新後の通信の結果(ステップS230にて取得された結果)が「NG」であるか否かを判断する。CPU150は、ファームウェア更新後の通信の結果が「NG」であると判断すると(ステップS260にてYES)、ステップS280へ制御を進める。ファームウェア更新後の通信の結果が「OK」であると判断すると(ステップS260にてNO)、ステップS270へ制御を進める。
【0098】
ステップS280にて、CPU150は、ステップS110(
図17)において更新したファームウェアのバージョンを元に戻す。その後、制御はステップS290へ進められる。
【0099】
ステップS270にて、CPU150は、残りのジョブ(
図21)のうち未だテスト通信の対象となっていないジョブがあるか否かを判断する。CPU150は、そのようなジョブがあると判断すると(ステップS270にてYES)、ステップS220へ制御を戻す。CPU150は、そのようなジョブが無いと判断すると(ステップS270にてNO)、ステップS290へ制御を進める。
【0100】
ステップS290にて、CPU150は、「更新」フラグをオフにして、
図18の処理を終了する。
【0101】
以上説明された第7の実施の形態では、CPU150は、ステップS110にてファームウェアが更新された直後に、ジョブ履歴から所与の条件に従って抽出されたジョブについてのテスト通信を実行する(
図17)。CPU150は、ファームウェアの更新の後、残りのジョブについてのテスト通信を実行する。ファームウェア更新直後とは、ファームウェア更新に付随して実行されることを意味し、ファームウェアが更新されてから第1の期間(
図17の処理に要することが想定される時間期間)以内であることを意味する。CPU150は、当該第1の期間内に、通信履歴に含まれる通信内容のうち第1の条件を満たす通信内容(
図20に示された、抽出されたジョブ)についてテスト通信を実行する。さらに、CPU150は、ファームウェアが更新されてから第1の期間経過後に、通信履歴に含まれる通信内容のうち第1の条件を満たす通信内容以外の通信内容(
図21に示された、残りのジョブ)についてのテスト通信を実行する。
【0102】
なお、本実施の形態において、ジョブ履歴からジョブを抽出(
図20)する条件は、任意に設定することができる。条件の一例は、接続頻度が高いこと(ジョブ履歴において10回以上の通信が通信アドレスであること、等)である。他の例は、特定のユーザーIDとの通信であることである。
【0103】
<第8の実施の形態>
図22は、第8の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図22の処理は、
図4の処理に対して、ステップS300,S310をさらに含む。
【0104】
図22を参照して、CPU150は、ステップS110にてファームウェアを更新した後、ステップS300にて、管理サーバー200からファームウェアの更新情報を受信する。
【0105】
図23は、ファームウェアの更新情報の一例を模式的に示す図である。
図23に示されるように、ファームウェアの更新情報は、ファームウェアバージョンと更新機能とを含む。ファームウェアバージョンは、更新後のファームウェアのバージョンを識別する。更新機能は、今回の更新に関連する通信の機能を識別する。
図23の例では、更新機能は「SMB送信」である。すなわち、
図23の例において、更新に関連する機能は、プロトコルSMBを利用したデータの送信である。
【0106】
図22に戻って、CPU150は、ステップS310にて、ジョブ履歴のうち、ファームウェアの更新情報における更新機能に関連付けられたジョブを抽出する。たとえば、
図23の例に従うと、更新機能が「SMB」であるため、
図19に示されたジョブ履歴から機能がSMBに関連付けられた2つのジョブ(ジョブID「4」「2」)が抽出される。
【0107】
その後、CPU150は、ステップS120~S170において、ステップS310にて抽出されたジョブについて順にテスト通信を実施する。
【0108】
以上説明された第8の実施の形態では、更新されたファームウェアは、所与の機能に関連付けられており、MFP100は、通信履歴に含まれる通信内容のうち当該所与の機能に関連する通信内容を含む一部の通信内容(
図23の例に従って抽出された2つのジョブ(ジョブID「4」「2」))について、テスト通信を実行する。
【0109】
<第9の実施の形態>
図24は、第9の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図24の処理は、
図4の処理に対して、ステップS102,S400,S410,S420,S430,S440をさらに含む。
【0110】
第9の実施の形態において、CPU150は、通信に各種の設定値を利用し、ファームウェア更新前の通信に利用されていた設定値を記憶装置160に格納する。ファームウェアの更新によってある項目の設定値が変更された場合、CPU150は、テスト通信では、当該項目の設定値として変更前の設定値を利用する。CPU150は、テスト通信における通信の結果が成功を表わすものであれば、当該項目の設定値として変更後の設定値を利用する。
【0111】
図24を参照して、CPU150は、ステップS100にてファームウェアの更新の通知を受信した後、ステップS102にて、ジョブ履歴に含まれる機能のファームウェア更新前の設定情報を記憶装置160に格納する。
図25は、格納される設定情報の一例を示す図である。
【0112】
図25に示されるように、設定情報は、機能と、設定項目と、設定値と、設定可能値とを含む。機能は、通信のプロトコルを表わす。設定項目は、機能における設定値の内容である。
図25の例(SMBバージョン)は、SMBプロトコルのバージョンを表わす。設定値は、設定される値である。
図25の例では、設定値は、SMBプロトコルのバージョン(v2)である。設定可能値は、設定項目の設定値として設定され得る値を表わす。
図25の例では、SMBプロトコルのバージョンとして3つの値(v1,v2,v3)が設定可能であることが示されている。
【0113】
図24に戻って、ステップS102の後、ステップS110にて、CPU150は、ファームウェアを更新する。その後、ステップS400にて、CPU150は、ステップS110でのファームウェアの更新の前後で、設定情報が同じであるか否かを判断する。CPU150は、設定情報が同じであると判断すると(ステップS400にてYES)、ステップS120へ制御を進め、そうでなければ(ステップS400にてNO)、ステップS410へ制御を進める。
【0114】
図26は、ファームウェア更新後の設定情報の一例を示す図である。設定情報は、たとえば、ファームウェアの更新時に、更新されたファームウェアによって変更される。
図25の例と比較して、
図26の例では、設定値が「v3」へと変更されている。
図25および
図26の例に従うと、CPU150は、ステップS400からステップS410へと制御を進める。
【0115】
図24に戻って、ステップS410にて、CPU150は、設定値を変更された項目について、(ファームウェア更新後の現時点において)ファームウェア更新前の設定情報に戻すことが可能であるか否かを判断する。CPU150は、戻すことが可能であると判断すると(ステップS410にてYES)、ステップS420へ制御を進め、そうでなければ(ステップS410にてNO)、ステップS120へ制御を進める。
【0116】
図25に示されるように、ファームウェア更新前の設定項目「SMBバージョン」の設定値は「v2」である。
図26に示されるように、ファームウェア更新後において、設定項目「SMBバージョン」の設定可能値が「v2」を含む。したがって、
図25および
図26に示された例では、設定値を更新された項目について、ファームウェア更新前の設定情報に戻すことが可能である。
【0117】
ステップS420にて、CPU150は、変更された設定情報を、ファームウェア更新前のものに変更した後、ステップS120へ制御を進める。
図25および
図26に示された例では、CPU150は、
図26の設定値を「v3」から「v2」へと変更する。
【0118】
その後、CPU150は、ステップS120以降でテスト通信を実行する。すなわち、ファームウェア更新によって、ある項目の設定値が変更された場合、テスト通信では、可能な限り変更前の設定値が利用される。
【0119】
ステップS150にて、ジョブ履歴の結果とテスト通信の結果とが同じであると判断すると(ステップS150にてYES)、CPU150は、ステップS430へ制御を進める。ステップS430にて、CPU150は、ステップS420にてファームウェア更新前の設定情報への変更を実施していたか否かを判断する。CPU150は、当該変更を実施していたと判断すると(ステップS430にてYES)、ステップS440で設定情報を再度変更する。ステップS440では、たとえば、
図26の設定値が「v2」から「v3」に戻される。その後、制御はステップS170へ進む。一方、CPU150は、上記変更を実施していなかったと判断すると(ステップS430にてNO)、そのままステップS170へ制御を進める。
【0120】
以上説明された第9の実施の形態では、ファームウェアの更新によって一部の機能の設定値を変更された場合、テスト通信では、一部の機能について更新前の設定値が利用され得る。なお、テスト通信の後、当該設定値は、変更後のものに戻される。
【0121】
<第10の実施の形態>
図27は、第10の実施の形態のMFP100のCPU150が実行する処理のフローチャートである。
図27の処理は、
図4の処理に対して、ステップS114,S168をさらに含む。
【0122】
図27を参照して、CPU150は、ステップS110にてファームウェアを更新した後、ステップS114にて、ジョブ履歴は、結果が「OK」であるジョブを含むか否かを判断する。CPU150は、ジョブ履歴がそのようなジョブを含むと判断すると(ステップS114にてYES)、ステップS120以降において、各ジョブについてのテスト通信を実行する。一方、CPU150は、ジョブ履歴が、結果が「OK」であるジョブを含まない場合(ステップS114にてNO)、すなわち、ジョブ履歴に含まれるすべてのジョブの結果が「NG」である場合、
図27の処理を終了させる。
【0123】
また、CPU150は、ステップS160にて、テスト通信の結果がNGであると判断した場合(ステップS160にてYES)、ステップS168へ制御を進める。ステップS168にて、CPU150は、当該テスト通信において送信または受信したパケットを取得し、当該パケットを仮想検証環境に送信して、通信の失敗の原因の解析を依頼する。当該依頼の際に、CPU150は、さらに、仮想検証環境に通信条件(プロトコル、設定値、等)を送信してもよい。仮想検証環境とは、たとえば、情報処理システム内に設けられた、通信環境の解析用のサーバーである。仮想検証環境は、解析の依頼を受信すると、通信の失敗原因を解析し、当該解析の結果を管理サーバー200へ送信する。
【0124】
管理サーバー200は、当該結果に基づいて、さらにファームウェアを更新することができる。管理サーバー200は、さらなるファームウェアの更新をMFP100に通知してもよい。当該通知と受けると、CPU150は、
図27等に記載された処理を、ステップS100から実行する。
【0125】
第10の実施の形態では、CPU150は、テスト通信の結果が通信の失敗を示すものである場合に、当該テスト通信のパケットを用いた検証のための処理の一例として、仮想検証環境に、テスト通信のパケットを送信する。
【0126】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0127】
100 MFP、150 CPU、160 記憶装置、200 管理サーバー、300 ホスト、N ネットワーク。