(57)【要約】【課題】メモリデバイス装着時、それが機器で使用可能かどうか容易に判別ができるようにする。【解決手段】動的に着脱可能なメモリデバイスを装着可能な機器（１１）であって、装着されたメモリデバイスが当該機器（１１）で利用可能か否か不明かの判定に使用する情報を内部に有し、この情報は、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む。【選択図】        図２
2010128707.tif 000002
【特許請求の範囲】
【請求項１】
動的に着脱可能なメモリデバイスを装着可能な電子機器であって、
装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定に使用する、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む情報を内部に有し、
前記情報を基に、前記電子機器に装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定をする判定手段を有することを特徴とする電子機器。
【請求項２】
装着されたメモリデバイスが当該電子機器でサポート可能か不明な場合、前記メモリデバイスが当該電子機器で利用可能かどうかの検査を行う検査手段をさらに有することを特徴とする請求項１に記載の電子機器。
【請求項３】
装着されたメモリデバイスが当該電子機器で利用不可である場合にはその旨を表す表示を、また不明である場合には前記検査の実施を利用者に選択させる表示を当該電子機器の表示部に表示する提示手段をさらに有することを特徴とする請求項２に記載の電子機器。
【請求項４】
前記検査の結果を内部に保存する保存手段と、前記検査の結果をネットワーク上のサーバに送信する送信手段とをさらに有することを特徴とする請求項２または請求項３に記載の電子機器。
【請求項５】
前記送信手段は、ネットワーク未接続の状態から、ネットワークに再接続できたとき、保存された前記検査の結果を前記サーバに送信することを特徴とする請求項４に記載の電子機器。
【請求項６】
サーバから前記情報の更新の通知を受ける受信手段と、該更新の通知に応じて自身が有する前記情報を更新する更新手段とをさらに有することを特徴とする請求項１から請求項５のいずれか１項に記載の電子機器。
【請求項７】
請求項２または請求項３に記載の電子機器から前記検査の結果を受信する受信手段と、
その検査の結果を自律的に判断して、自身が有する、前記電子機器に装着されたメモリデバイスが前記電子機器で利用可能か否か不明かの判定に使用する、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む情報を更新する更新手段と
を有することを特徴とするサーバ。
【請求項８】
前記サーバ自身が有する前記情報の更新終了後、ネットワーク上にある前記電子機器に対して該情報の更新を通知する通知手段をさらに有することを特徴とする請求項７に記載のサーバ。
【請求項９】
動的に着脱可能なメモリデバイスを装着可能であり、かつ、装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定に使用する、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む情報を内部に有する電子機器が、前記情報を基に、前記電子機器に装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定をする判定工程を含むことを特徴とする電子機器の制御方法。
【請求項１０】
装着されたメモリデバイスが当該電子機器でサポート可能か不明な場合、前記電子機器により前記メモリデバイスが当該電子機器で利用可能かどうかの検査を行う検査工程をさらに含むことを特徴とする請求項９に記載の電子機器の制御方法。
【請求項１１】
装着されたメモリデバイスが当該電子機器で利用不可である場合にはその旨を表す表示を、また不明である場合には前記検査の実施を利用者に選択させる表示を当該電子機器の表示部に表示する提示工程をさらに含むことを特徴とする請求項１０に記載の電子機器の制御方法。
【請求項１２】
前記電子機器が前記検査の結果を内部に保存する保存工程と、前記電子機器が前記検査の結果をネットワーク上のサーバに送信する送信工程とをさらに含むことを特徴とする請求項１０または請求項１１に記載の電子機器の制御方法。
【請求項１３】
前記送信工程は、前記電子機器がネットワーク未接続の状態から、ネットワークに再接続できたとき、前記電子機器に保存された前記検査の結果を前記サーバに送信する工程を含むことを特徴とする請求項１２に記載の電子機器の制御方法。
【請求項１４】
サーバから前記情報の更新の通知を受ける受信工程と、該更新の通知に応じて自身が有する前記情報を更新する更新工程とをさらに含むことを特徴とする請求項９から請求項１３のいずれか１項に記載の電子機器の制御方法。
【請求項１５】
請求項１２または請求項１３に記載の送信工程によって電子機器から送信される前記検査の結果をサーバが受信する受信工程と、
該サーバが、その検査の結果を自律的に判断して、自身が有する、前記電子機器に装着されたメモリデバイスが前記電子機器で利用可能か否か不明かの判定に使用する、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む情報を更新する更新工程とを含むことを特徴とするサーバの制御方法。
【請求項１６】
前記サーバ自身が有する前記情報の更新終了後、前記サーバが、ネットワーク上にある前記電子機器に対して前記情報の更新を通知する通知工程をさらに含むことを特徴とする請求項１５に記載のサーバの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデバイス装着時、それが当該装置で使用可能かどうか容易に判別できるようにする、動的に着脱可能なメモリデバイスを装着可能な電子機器、該電子機器とネットワーク接続されるサーバ、およびその制御方法に関するものである。
【背景技術】
【０００２】
世界中のさまざまな企業が、多種多様なＳＤカードや、ＵＳＢメモリなど着脱可能なメモリデバイス（以後「メモリデバイス」と記す）を生産している。このようなメモリデバイスは携帯性に優れており、近年、その記憶容量も格段に増加している。しかも安価であり、急速に所有者を増やしている。
【０００３】
このような状況を受け、かつてはＰＣなどの情報機器のみで使用されていたこれらのメモリデバイスが、家電をはじめとする各種電子機器（このメモリデバイスを装着可能な電子機器を以後「機器」と略記する）でも使われるようになった。
【０００４】
こうしたメモリデバイスには、その規格が存在する。メモリデバイスが規格に従うことで、この規格に対応した各種機器にメモリデバイスを装着しても問題は起こらない。
【０００５】
ところが、中には規格を満たさない劣悪なメモリデバイスが存在する。このようなメモリデバイスが機器に装着されると、機器の誤動作を招くことがある。誤動作の程度も、「機器が停止する」といったものから、「メモリデバイスを機器側で認識したが、読み書きができない」といったものまでさまざまである。いずれにせよ、利用者から見れば不便を強いることになる。
【０００６】
また、機器を販売するメーカは、市場に製品を出す前に何らかの検査を実施する。機器にメモリデバイスを使用する機能が存在する場合、メーカは当然メモリデバイスを使用した検査を実施する。しかし、市場に存在する全てのメモリデバイスを使用して該当機能を検査することはコストの面からも、要する時間の面からも非現実的である。そのため、通常はメモリデバイスの中から代表的なメモリデバイスを選定し、選定されたメモリデバイスを使ってテストを実施する。そして、テストに合格した「代表的なメモリデバイス」を「推奨メモリデバイス」として扱い、他のデバイスをサポート対象外にすることが多い。
【０００７】
したがって、推奨品以外のメモリデバイスを保持している利用者は、該当メモリデバイスが使用できるかどうかわからないため、機器が誤動作するリスクを犯してメモリデバイスを使用するということになる。特許文献１の「ＵＳＢデバイス評価システム」では、動作評価中のＵＳＢデバイスをＰＣ上で動作させている時に何らかの不具合が発生した場合、その原因究明および修正のために、不具合発生時のＵＳＢバスの状況を記録できるようにしている。
【０００８】
【特許文献１】特開２００３−１１４８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の技術は、不具合が発生した場合の問題点を改善するものにすぎず、推奨品以外のメモリデバイスを保持している利用者は、やはり、機器が誤動作するリスクを犯してメモリデバイスを使用するということになる。
また、いちいち利用者側で「推奨メモリデバイス」を記憶したり調べたりするのも不便であるし、まして「推奨メモリデバイス」を一々準備するのも利用者に不便を強いることになる。
【００１０】
市場に存在するメモリデバイスを順次メーカ側で検査していくということも考えられるが、上記のように、これを実施するためのコストおよび時間の制約もあり、そのようなことは現実的に大変困難である。しかも、市場でどのようなメモリデバイスが多く使用されているか調査する必要もあるが、このようなことはコスト的にも事実上不可能に近い。
【００１１】
本発明は、上記に鑑みてなされたものであって、メモリデバイス装着時に、装着したメモリデバイスが当該機器で使用可能かどうか容易に判別できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかる電子機器は、動的に着脱可能なメモリデバイスを装着可能な電子機器であって、装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定に使用する、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む情報を内部に有し、前記情報を基に、前記電子機器に装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定をする判定手段を有することを特徴とする。
また、本発明にかかる電子機器の制御方法は、動的に着脱可能なメモリデバイスを装着可能であり、かつ、装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定に使用する、少なくとも、使用できるメモリデバイスをリストアップしたリストと、使用できるか否か不明のメモリデバイスをリストアップしたリストと、使用できないメモリデバイスをリストアップしたリストとを含む情報を内部に有する電子機器が、前記情報を基に、前記電子機器に装着されたメモリデバイスが当該電子機器で利用可能か否か不明かの判定をする判定工程を含むことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、メモリデバイス装着時、装着したメモリデバイスが機器で使用可能かどうか容易に判別が可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる機器とサーバの最良な実施の形態を詳細に説明する。
【００１５】
（ハードウェア構成）
はじめに、本発明の一実施形態のハードウェア構成について、図１を用いて説明する。
図１（Ａ）は、本発明の一実施形態にかかるハードウェアの全体構成を示すブロック図であり、同図（Ｂ）は、機器およびサーバが内蔵するハードウェア構成を示すブロック図である。
【００１６】
図１（Ａ）に示すように、本実施形態は、メモリデバイス装着可能な機器（すなわち着脱可能なメモリデバイスを装着可能な機器）１１とサーバ１２と着脱可能なメモリデバイス１３とから構成される。
【００１７】
通常、ＳＤカードや、ＵＳＢメモリなどメモリデバイスの規格上、こうしたメモリデバイスを機器に接続した時に、このメモリデバイスを一意に識別するＩＤ（メモリデバイスの製造元を示すＩＤ（ベンダーＩＤ）と、そのメモリデバイスを特定するＩＤ（プロダクトＩＤ、シリアルナンバー）；以下、メモリデバイスＩＤと総称する）を取得できることが一般的である。例えば、ＵＳＢデバイス接続時に行われる「エニュメレーション」がメモリデバイスＩＤを取得する処理に該当する。本実施形態において「メモリデバイスＩＤ」は、「エニュメレーション」のような規格に従った接続処理を通じて取得するものとする。
【００１８】
また、図１（Ｂ）に示すように、機器１１とサーバ１２は、全体を制御するＣＰＵ１と、ＣＰＵ１により実行される当該装置を制御するための制御プログラム等が記憶されているＲＯＭ（Read  Only  Memory）２と、ＣＰＵ１のワークエリア等として使用されるＲＡＭ３と、外部機器とのインターフェースである入出力Ｉ／Ｆ４と、各種プログラムおよびデータを記憶するＨＤＤ５と、これらを接続するバス６とを少なくとも備えており、いずれも通常のコンピュータを利用したハードウェア構成となっている。なお、機器１１は、任意の機能をもたせるための追加の構成を含めることができる。
【００１９】
続いて、図２に、本実施形態における機器１１とサーバ１２が有する３種のリストおよび自動テスト項目と、同実施形態の機器１１およびサーバ１２における特徴的な機能を実行する各処理部からなる機能ブロック図を示す。
図２に示すように、機器１１及びサーバ１２には、それぞれの制御プログラムに従って、内在するＣＰＵが実行する各処理部がある。なお、各処理部による処理において、外部とのデータの送受信を伴う場合、入出力Ｉ／Ｆ４を介してデータの送受信が行われる。
【００２０】
機器１１は、判定部２０１、検査部２０２、提示部２０３、保存部２０４、送信部２０５、受信部２０６、更新部２０７を備えて構成されている。
判定部２０１は、下記の「ホワイトリスト」（推奨デバイスリスト）、「グレーリスト」、「ブラックリスト」の３種のリストに基づいて、機器１１に装着されたメモリデバイス１３が当該機器で利用可能か否か不明かの判定をする。
【００２１】
検査部２０２は、装着されたメモリデバイス１３が当該機器１１でサポート可能か不明な場合に、メモリデバイス１３が当該機器１１で利用可能かどうかの自動テストを行う。
提示部２０３は、装着されたメモリデバイス１３が当該機器１１で利用不可である場合にはその旨を表す表示を、また不明である場合には自動テストの実施を利用者に選択させる表示を当該機器１１の表示部（図示せず）に表示させる。
【００２２】
保存部２０４は、自動テストの結果をＨＤＤ５に保存する。
送信部２０５は、自動テストの結果をネットワーク上のサーバ１２に送信する。
受信部２０６は、サーバ１２から上記３種のリストの更新の通知を受ける。
更新部２０７は、サーバ１２からの更新の通知に応じて、自身が有する上記３種のリストのいずれかまたは全部を更新する。
【００２３】
一方、サーバ１２は、受信部２１１、更新部２１２、通知部２１３を備えて構成されている。
受信部２１１は、機器１１から上記自動テストの結果を受信する。
更新部２１２は、機器１１から受けた自動テストの結果の結果を自律的に判断して、自身が有する下記の３種のリストのいずれかまたは全部を更新する。
通知部２１３は、サーバ１２自身が有するリストの更新終了後、ネットワーク上にある機器１１に対して、この情報の更新を通知する。
【００２４】
また、サーバ１２と機器１１にはそれぞれ、図２に示すように、ＨＤＤ５に、「ホワイトリスト」（推奨デバイスリスト）（２２１，２３１）、「グレーリスト」（２２２，２３２）、「ブラックリスト」（２２３，２３３）の３種のリストと、自動テスト項目（２２４，２３４）を保持している。
【００２５】
「ホワイトリスト」とは、機器上で確実に動作するメモリデバイス（すなわち推奨デバイス）をリストアップし記録したリスト（推奨デバイスリスト）である。
【００２６】
「グレーリスト」は、確実に動作するか不明なメモリデバイスをリストアップし記録したリストである。ここでいう「確実に動作するか不明」とは「動作実績はあるが、推奨デバイスか否かを決定するには実績数が不足している」ことを指す。
【００２７】
「ブラックリスト」は、確実に動作しないあるいは機器に悪影響を及ぼすメモリデバイスをリストアップし記録したリストである。
いずれのリストにも、該当のメモリデバイスを一意に識別するＩＤであるメモリデバイスＩＤが記録されている。
【００２８】
「自動テスト項目」は、メモリデバイス装着時に、必要であれば実施する自動テストの項目と、そのテスト項目を自動テストするためのコード（スクリプト、命令コード）が記録されている。詳細は後述する。
なお、サーバ１２と機器１１の双方がもつ３種のリストおよび自動テスト項目は、機器製造時に初期値が格納されて実機内に必ず存在するものである。また、機器起動時およびサーバ１２でのそれらの更新時に、機器１１とサーバ１２間で通信をして同期がとられる。また、以降の説明では、説明を簡単にするため、３つのリスト内のいずれかまたはすべてを指すものとして、リストと略して記す。
【００２９】
（機器起動時の同期処理）
ここで、機器１１の起動時におけるリスト／自動テスト項目の同期処理について図３を用いて説明する。
図３は、機器起動時のリスト更新にかかる、機器１１とサーバ１２間の通信の概略を示したシーケンス図である。
【００３０】
図３に示すように、機器１１の電源がＯＮされると、機器１１は、サーバ１２に対しリスト更新日付要求を送信する（ｔ３１）。
リスト更新日付要求を受けたサーバ１２は、サーバ１２側で行われたリスト更新の日付を知らせるためのリスト更新日付応答を機器１１に返信する（ｔ３２）。
【００３１】
リスト更新日付応答を受けた機器１１は、機器１１の保持するリストの更新日付と、リスト更新日付応答で示されるサーバ１２側でのリストの更新日付とを比較する。そして、機器１１の保持するリストの更新日付がサーバ１２で保持するリストの更新日付よりも過去の時刻となっていた場合は、機器１１は、さらに、更新されたリストを要求するリスト要求をサーバ１２に送信する（ｔ３３）。
【００３２】
リスト要求を受けたサーバ１２は、サーバ１２側で更新されたリストの内容を通知するためのリスト応答を機器１１に返信する（ｔ３４）。
リスト応答を受けた機器１１は、機器１１が保持するリストの内容を更新する（ｔ３５）。
以上ｔ３１〜ｔ３５の手順は、ホワイトリスト、グレーリスト、ブラックリストのそれぞれについて実行する。
【００３３】
引き続き、リスト更新の手順が終了すると、自動テスト項目を機器１１とサーバ１２間で同期させるため、機器１１からサーバ１２に対し、自動テスト項目日付要求を送信する（ｔ３６）。
自動テスト項目日付要求を受けたサーバ１２は、サーバ１２側での自動テスト項目の更新日付を通知するための自動テスト項目日付応答を機器１１に返信する（ｔ３７）。
【００３４】
自動テスト項目日付応答を受けた機器１１は、機器１１の保持する自動テスト項目の更新日付と、自動テスト項目日付応答で示されるサーバ１２側での自動テスト項目の更新日付とを比較する。そして、機器１１の保持する自動テスト項目の更新日付がサーバ１２で保持する自動テスト項目の更新日付よりも過去の時刻となっていた場合、機器１１は、さらに、更新された自動テスト項目の内容を要求する自動テスト項目要求をサーバ１２に送信する（ｔ３８）。
【００３５】
自動テスト項目要求を受けたサーバ１２は、サーバ１２側で更新された自動テスト項目の内容を通知するための自動テスト項目応答を機器１１に返信する（ｔ３９）。
自動テスト項目応答を受けた機器１１は、機器１１が保持する自動テスト項目の内容を更新する（ｔ４０）。
【００３６】
（サーバ側リスト／自動テスト項目更新時の同期処理）
続いて、サーバ１２が「ホワイトリスト」、「グレーリスト」、「ブラックリスト」の３種のリストと、自動テスト項目のいずれかを更新した場合の同期処理について、図４を用いて説明する。
図４は、サーバ１２側でのリスト／自動テスト項目更新時の機器１１とサーバ１２間の通信の概略を示すシーケンス図である。
なお、サーバ１２側で行われる更新の要因については後述する。
【００３７】
はじめに、サーバ１２側でリスト／自動テスト項目が更新されると、サーバ１２は、機器１１へリスト／自動テスト項目更新通知をブロードキャスト（同報通信）で送信する（ｔ４１）。
リスト／自動テスト項目更新通知を受けた起動済みの機器１１は、リスト／自動テスト項目要求をサーバ１２へ送信する（ｔ４２）。
【００３８】
リスト／自動テスト項目要求を受けたサーバ１２は、更新されたリスト／自動テスト項目の内容を機器に通知するためのリスト／自動テスト項目応答を機器１１に返信する（ｔ４３）。
リスト／自動テスト項目応答を受けた機器１１は、リスト／自動テスト項目応答が示す情報に基づいてリストおよび／または自動テスト項目の内容を更新する（ｔ４４）。
【００３９】
以上ｔ４２〜ｔ４４の手順は、通知のあったリスト（ホワイトリスト／グレーリスト／ブラックリスト）または自動テスト項目についてのみ行う。また、前述の「機器起動時の同期処理」では、機器１１からサーバ１２へ、リスト更新日付要求および自動テスト項目日付要求を実施していたが、サーバ１２側で更新処理が行われた直後に実施される本同期処理では、この更新が最新であることが自明であるので、機器１１からサーバ１２へのリスト更新日付要求および自動テスト項目日付要求は実施しない。
なお、機器１１が未だ起動していない場合は、上記同期処理は行えないが、機器１１が起動されると、その時点で前述の「機器起動時の同期処理」により同期がなされる。
【００４０】
（メモリデバイス装着時の処理）
次に機器側におけるメモリデバイス装着時の処理について、図５を用いて説明する。
図５は、メモリデバイス装着時の処理フローである。
【００４１】
メモリデバイス１３が機器１１に装着されると、機器１１はメモリデバイス１３からメモリデバイスＩＤを取得し、このメモリデバイスＩＤがホワイトリスト内にあるか判断する（ステップＳ５０１）。
このときメモリデバイス１３のメモリデバイスＩＤがホワイトリスト内にあった場合、無条件にメモリデバイス１３を使用できるものとみなし、このメモリデバイスを使った機器１１の機能を利用者が使用できるようにし（ステップＳ５０２）、本処理フローは終了する。
【００４２】
一方、メモリデバイス１３のメモリデバイスＩＤがホワイトリスト内にない場合は、さらにこのメモリデバイスＩＤがブラックリスト内にあるか判断する（ステップＳ５０３）。
このときメモリデバイス１３のメモリデバイスＩＤがブラックリスト内にあった場合は、無条件に「このメモリデバイスは使用できない」旨を機器１１に備わるＬＣＤパネルに表示して通知し、メモリデバイス１３を使った機器１１の機能を使用できないようにする（ステップＳ５０４）。
そして、メモリデバイス１３の抜去されるのを待って（ステップＳ５０５）、本処理フローは終了する。
【００４３】
一方、メモリデバイス１３のメモリデバイスＩＤがブラックリスト内にない場合は、後述のグレーリスト処理を実行する（ステップＳ５０６）。
以上のように、機器１１にメモリデバイス１３が装着されたとき、このメモリデバイス１３がいずれのリストに載っているかにより機器１１の挙動が異なるものとなっている。
【００４４】
（グレーリスト処理）
ここで、グレーリスト処理について、図６を用いて説明する。
図６は、グレーリスト処理の処理フローである。
【００４５】
メモリデバイス１３のメモリデバイスＩＤがグレーリストに載っている場合、はじめに、以下の２点を利用者に通知する。すなわち、
（ａ）機器１１に装着されたメモリデバイス１３が当該機器１１では推奨されていないこと、
（ｂ）機器１１に装着されたメモリデイバス１３を使用したい場合、まずこのメモリデバイス１３が使用可能かどうかのテストを行う必要があること、
を利用者に通知する。そして、
その上で、利用者に「使用できるかどうかテストを実施する」のか「機器側で該当メモリデバイスを使用するのをやめる」のかを機器１１（例えば、後述の画像形成装置）のＬＣＤパネルに表示して選択させる（ステップＳ６０１）。
【００４６】
利用者が「テストを実施する」を選択したと判定された場合（ステップＳ６０２でＹｅｓの場合）、機器１１は、その内部に保存している所定のテスト手順に従い自動テストを実施する。これにより、機器１１に装着されたメモリデバイス１３が正常に動作するか確認する（ステップＳ６０３）。
【００４７】
ここで自動テストに成功した場合（ステップＳ６０４でＹｅｓの場合）、
（１）メモリデバイスＩＤと、テスト結果（すなわち、テストに成功した旨）をサーバ１２に送信し（ステップＳ６０５）、
（２）テストに成功した旨を機器１１のＬＣＤパネルに表示して利用者に通知し（ステップＳ６０６）、
（３）該当メモリデバイス１３を使った機器１１の機能を利用者が使用できるようにする（ステップＳ６０７）。
【００４８】
一方、自動テストでエラーを検知した場合（ステップＳ６０４でＮｏの場合）、
（１）メモリデバイスＩＤと、テスト結果（すなわち、テストに失敗した旨）をサーバに送信し（ステップＳ６０８）、
（２）「テストに失敗したこと」と「装着したメモリデバイスを機器から取り除いてほしい」旨を機器１１のＬＣＤパネルに表示して利用者に通知し（ステップＳ６０９）、
（３）利用者が該当メモリデバイス１３を機器１１から取り除くまで（ステップＳ６１１でＹｅｓと判定されるまで）、機器１１を使用できないようにする（ステップＳ６１０）。
【００４９】
そして、該当メモリデバイス１３が機器１１から取り除かれると（ステップＳ６１１でＹｅｓの場合）、機器１１を再度利用できるようにする（ステップＳ６１２）。
【００５０】
上記ステップＳ６０１の段階で、利用者が「メモリデバイス使用をやめる」を選択した場合（ステップＳ６０２でＮｏの場合）、「装着メモリデバイスは使用可能か不明のため機器利用ができない」旨を機器１１のＬＣＤパネルに表示して利用者に通知する。そして、上記ステップＳ６０９〜Ｓ６１２の処理を行い、該当メモリデバイス１３を機器１１から取り除くまで機器１１を使用できないようにする。
【００５１】
上記グレーリスト処理は、メモリデバイス１３のメモリデバイスＩＤがグレーリスト内にある場合の処理である。本実施形態では、このメモリデバイスＩＤがグレーリスト内にない場合（このとき、メモリデバイスＩＤはいずれのリストにもないことになる）であっても、グレーリスト内にある場合と同じくグレーリスト処理を行う。
【００５２】
（サーバ側リスト更新処理）
次に、機器１１からのテスト結果を受けたサーバ１２側でのテスト結果の反映とリストの更新処理について、図７を用いて説明する。
図７は、サーバ側のリスト更新処理の処理フローである。
【００５３】
前述の「メモリデバイス装着時の処理」にて説明したとおり、機器１１において、メモリデバイス装着時に自動テストを行うケースがある。自動テストが行われた場合、そのテスト結果はサーバ１２に送信される。サーバ１２は、受信したテスト結果に対し、以下の処理を行う。
なお、サーバ１２側には、リスト更新処理を行うために以下の３つのしきい値が用意されている。
【００５４】
（１）成功十分回数：本実施形態では、サーバ１２側で受信したテスト結果が示す成功の回数をカウントし、累積の成功回数がこの値を上回った場合、原則として該当メモリデバイスＩＤを他のリストからホワイトリストに移動させ、移動元のリストとホワイトリストとを更新する。成功十分回数は、そのためのしきい値である。
【００５５】
（２）失敗回数レベル１：本実施形態では、サーバ１２側で受信したテスト成功回数が成功十分回数を上回っても、テスト失敗回数がこのしきい値を上回った場合はホワイトリストに移動させない。そのような判定をするためのしきい値である。このような回数（失敗回数レベル１）を設けた理由は、不良品が多いメモリデバイスでは、多数の成功と多数の失敗を生み出す傾向があり、このようなメモリデバイスをホワイトリストとして承認できないためである。このようなメモリデバイスがホワイトリストに載ることを防ぐために、このようなしきい値を別途設けた。
【００５６】
（３）失敗回数レベル２：本実施形態では、サーバ１２側で受信したテスト失敗回数がこのしきい値を上回った場合、原則として該当メモリデバイスをブラックリストに移動させ、移動元のリストとブラックリストとを更新する。
【００５７】
ここで、サーバ１２で行われる処理の詳細を説明する。
はじめに、前述のグレーリスト処理において機器１１から送信されるメモリデバイスＩＤとテスト結果を受信する（ステップＳ７０１）。
次いで、受信したメモリデバイスＩＤがグレーリストにあるか判断し（ステップＳ７０２）、グレーリストにない場合はステップＳ７０３に移行する。
ステップＳ７０３では、受信したメモリデバイスＩＤをグレーリストに追加し、ステップＳ７０４にて、カウンタとして用いる失敗回数および成功回数をそれぞれ０（ゼロ）にする。
【００５８】
次いで、ステップＳ７０３でグレーリストを更新しているので、リスト更新通知をネットワーク上の機器にブロードキャスト送信する（ステップＳ７０５）。
一方、上記ステップＳ７０２の判断で、受信したメモリデバイスＩＤがグレーリストにあると判定された場合は、さらに、受信したテスト結果から自動テストが成功したか判断する（ステップＳ７０６）。
【００５９】
ステップＳ７０６の判断で、自動テストが成功したと判定された場合はステップＳ７０７に移行し、成功回数に１を加算する（ステップＳ７０７）。
次いで、成功回数が閾値である成功十分回数以上あるか判断し（ステップＳ７０８）、成功回数が一定回数以上ない場合は一連の処理を終了する。
【００６０】
一方、ステップＳ７０８の判断で、成功回数が閾値である一定回数以上ある場合は、ステップＳ７０９に移行し、さらに、失敗回数が閾値である「失敗レベル１」以上あるか判断する。
ステップＳ７０９で失敗回数が「失敗レベル１」以上あると判定された場合は、成功回数を０（ゼロ）にして（ステップＳ７１０）、一連の処理を終了する。
【００６１】
一方、ステップＳ７０９で失敗回数が「失敗レベル１」未満であると判定された場合は、ステップＳ７１１に移行する。
ステップＳ７１１では、グレーリストから、ステップＳ７０１で受信したメモリデバイスＩＤを削除し、ステップＳ７１２で、このメモリデバイスＩＤをホワイトリストに追加する。
そして、ステップＳ７１１でグレーリストを更新しさらにステップＳ７１２でホワイトリストを更新しているので、リスト更新通知をネットワーク上の機器にブロードキャスト送信し（ステップＳ７１３）、一連の処理を終了する。
【００６２】
一方、上記ステップＳ７０６の判断で、受信したテスト結果から自動テストが失敗だったと判定された場合、ステップＳ７１４に移行し、このステップで失敗回数に１を加算する。
次いで、失敗回数が閾値である「失敗レベル２」以上あるかさらに判断し（ステップＳ７１５）、失敗回数が「失敗レベル２」未満である場合、一連の処理を終了する。
【００６３】
一方、ステップＳ７１５の判断で、失敗回数が閾値である「失敗レベル２」以上あると判定された場合は、ステップＳ７１６に移行する。
ステップＳ７１６では、グレーリストから、ステップＳ７０１で受信したメモリデバイスＩＤをグレーリストから削除し、ステップＳ７１７で、このメモリデバイスＩＤをブラックリストに追加する。
そして、ステップＳ７１６でグレーリストを更新しさらにステップＳ７１７でブラックリストを更新しているので、リスト更新通知をネットワーク上の機器にブロードキャスト送信し（ステップＳ７１８）、一連の処理を終了する。
【００６４】
以上のように、自動テストの成功回数が成功十分回数を上回るメモリデバイスについてはそのメモリデバイスＩＤをホワイトリストに移動させている。ただし、自動テストの失敗回数が失敗回数レベル１を上回る場合は、自動テストの成功回数のみ０とし、該当メモリデバイスのメモリデバイスＩＤはグレーリストに載せたままにする。また、自動テストの失敗回数が失敗回数レベル２を上回るメモリデバイスについてはそのメモリデバイスＩＤをブラックリストに移動させるようにしている。そして、上記条件でリストが更新された場合、図４のように、サーバ１２は、該当のリストが更新された旨を機器側にブロードキャストで通知し、起動済みの機器からの要求に応じて更新されたリストの内容を知らせる応答を機器に送信する。
以上、サーバ側のリスト更新処理について説明した。
【００６５】
（機器がサーバと接続できない場合の処理）
次に、機器１１がサーバ１２と接続できない場合の処理について図８および図９を用いて説明する。
図８は、ネットワーク未接続時における、メモリデバイス装着時処理の処理フローであり、図９は、そのグレーリスト処理の処理フローである。
【００６６】
これまでに説明した内容は機器１１がサーバ１２と接続できることを前提としていた。しかし、機器１１がネットワークと接続できないような機器である場合およびネットワーク障害などの要因で機器１１がサーバと接続できない場合、以下のような処理を実施する。
【００６７】
図８に示すメモリデバイス装着時の処理については、前述したサーバ接続時におけるメモリデバイス装着時の処理（図５）とほとんど同様である。ただし、装着したメモリデバイス１３がグレーリストに載っているかまたはいずれのリストにも載っていない場合の処理、すなわちグレーリスト処理（図５ではステップＳ５０６，図８ではステップＳ８０６）に差異がある。したがって、グレーリスト処理以外の共通する部分はその説明を省略する。
以下では、ネットワーク未接続時における、グレーリスト処理（図９）の詳細を説明する。
【００６８】
はじめに、以下の２点を利用者に通知する。すなわち、
（ａ）機器１１に装着されたメモリデバイスが当該機器１１では推奨されていないこと、
（ｂ）当該メモリデバイスを使用したい場合、まず機器１１に装着されたメモリデバイス１３が使用可能かどうかのテストを行うこと、
を通知する。その上で、利用者に「使用できるかどうかテストを実施する」か「機器側で該当メモリデバイスを使用するのをやめる」のかを機器１１（例えば、画像形成装置）のＬＣＤパネルに表示して選択させる（ステップＳ９０１）。
【００６９】
利用者が「テスト実施」を選択したと判定された場合（ステップＳ９０２でＹｅｓの場合）、機器１１はその内部に保存している所定のテスト手順に従い自動テストを実施する。これにより、機器１１に装着されたメモリデバイス１３が正常に動作するか確認する（ステップＳ９０３）。
【００７０】
ここで自動テストに成功した場合（ステップＳ９０４でＹｅｓの場合）、
（１）機器内部で保持する「通算成功回数」に１を加算し（ステップＳ９０５）、
（２）テストに成功した旨を機器１１のＬＣＤパネルに表示して利用者に通知し（ステップＳ９０６）、
（３）該当メモリデバイス１３を使った機器１１の機能を利用者が使用できるようにする（ステップＳ９０７）。
【００７１】
一方、自動テストでエラーを検知した場合（ステップＳ９０４でＮｏの場合）、
（１）機器内部で保持する「通算失敗回数」に１加算し（ステップＳ９０８）、
（２）「テストに失敗したこと」と「装着したメモリデバイスを機器から取り除いてほしい」旨を機器１１のＬＣＤパネルに表示して利用者に通知し（ステップＳ９０９）、
（３）利用者が該当メモリデバイス１３を機器１１から取り除くまで機器１１を使用できないようにする（ステップＳ９１０）。
そして、該当メモリデバイス１３が機器１１から取り除かれると（ステップＳ９１１でＹｅｓの場合）、機器１１を再度利用できるようにする（ステップＳ９１２）。
【００７２】
上記ステップＳ９０１の段階で、利用者が「メモリデバイス使用をやめる」を選択した場合（ステップＳ９０２でＮｏの場合）、「装着メモリデバイスは使用可能か不明のため機器利用ができない」旨を機器１１のＬＣＤパネルに表示して利用者に通知する。そして、上記ステップＳ９０９〜Ｓ９１２の処理を行い、該当メモリデバイス１３を機器１１から取り除くまで機器１１を使用できないようにする。
【００７３】
上記グレーリスト処理は、メモリデバイス１３のメモリデバイスＩＤがグレーリスト内にある場合の処理である。本実施形態では、このメモリデバイスＩＤがグレーリスト内にない場合（このとき、メモリデバイスＩＤはいずれのリストにもないことになる）であっても、グレーリスト内にある場合と同じくグレーリスト処理を行う。
【００７４】
（サーバ未接続時におけるリストの更新について）
特定のメモリデバイスで多数の成功実績を重ねても、多数の失敗実績を重ねても、機器１１がローカルで保持するリストは更新されない。
その理由として、以下を挙げることができる。
（１）リストは、「製造元が推奨するかどうか」を基準に決定されるべきであり、特定機器の環境の実績のみで決せられるべきではない。
（２）ネットワーク再接続後、リストの更新が発生した場合の不一致を防ぐ必要がある。
【００７５】
仮に、ローカルでリストが更新されるとする。この場合に、ローカルで特定のメモリデバイス１３が成功実績を重ねると、グレーリストからホワイトリストに格上げされることになる。ここで、サーバ１２側でのリスト更新が発生すると、今までローカルに存在したリストがサーバ１２側のリストで上書きされ、ローカルでの実績が消えてしまう。そうなると、利用者から見て「今まで使えていたのに、突然非推奨品扱いされる」ということが起こる可能性がある。これを防ぐために、ローカルで保持するリストは、ローカルで更新されない仕様とする。
【００７６】
（ネットワーク再接続時のリスト更新処理）
ここで、機器１１のネットワーク再接続時のリスト更新処理について、図１０を用いて説明する。
図１０は、機器１１のネットワーク再接続時におけるリスト／自動テスト項目更新時の機器１１とサーバ１２間の通信の概略を示すシーケンス図である。
【００７７】
ネットワーク接続ができた場合、まず、サーバ１２に、メモリデバイスＩＤとともに（図１０にて図示せず）、図７におけるテスト結果として通算成功回数を通知し（ｔ１０１）さらに通算失敗回数を通知する（ｔ１０２）。
【００７８】
サーバ１２は、機器１１から受けた通算成功回数を、図７を用いて前述したサーバ側リスト更新処理における「成功回数」に加算し、通算失敗回数を「失敗回数」に加算する。
そしてサーバ１２側でのリスト更新処理（ｔ１０３；図７のステップＳ７０２〜Ｓ７１８に相当）を行う。このとき、機器１１は所定の期間待機している。なお、このようにサーバ側処理を待つ理由は、通算成功回数および通算失敗回数の通知によって、サーバ１２側のリストが更新される可能性があるためである。
【００７９】
次いで、サーバ１２側でのリスト更新処理により、実際にいずれかのリストが更新された場合、図４を用いて前述したシーケンスで、機器１１とサーバ１２のリストの同期がなされる。
【００８０】
一方、ｔ１０３のサーバ１２側でのリスト更新処理でリストが更新されなかった場合、ｔ１０４以降のシーケンスでリストの同期がなされる。この場合は、図３を用いて前述した機器起動時におけるリスト／自動テスト項目更新時のシーケンス（ｔ３１〜ｔ４０）と同様であるのでその説明は省略する。
【００８１】
（画像形成装置への適用例）
次に、前述の機器１１として画像形成装置１１００を用いた場合の実施例を、図面を用いて説明する。
【００８２】
（構成）
図１１に画像形成装置１１００の構成を示し、図１２に本実施例の全体構成を示す。
【００８３】
本実施例は、図１２に示すように、画像形成装置１１００と、サーバ１２と、一般的に用いられているメモリデバイスとしてのＵＳＢメモリ１３’とから構成される。
本実施例の画像形成装置１１００は、ＵＳＢメモリ１３’を装着可能であり、装着されたＵＳＢメモリ１３’に画像データ等を書き込む機能を有する他、前述のリストの同期処理や自動テストを行う機能を有する画像形成装置である。これらの機能は、図１１に示すメモリデバイス管理アプリ１１７１、ＵＳＢメモリドライバ１１６１、ＵＳＢ  Ｉ／Ｆ１１１５、パネル管理アプリ１１７２、パネルドライバ１１６２、ＬＣＤパネル１１１１、ネットワーク管理アプリ１１７３、ネットワークドライバ１１６３、ネットワークＩ／Ｆ１１１４によって達成される。
【００８４】
続いて、画像形成装置１１００の構成の詳細について、図１１を用いて説明する。
図１１は、画像形成装置１１００の構成を示すブロック図である。
【００８５】
画像形成装置１１００は、制御手段としてのソフトウェア群１１０１ａ、１１０１ｂと、画像形成装置起動部１１５０と、ハードウェア資源１１０３とから構成される。
【００８６】
画像形成装置起動部１１５０は、画像形成装置１１００の電源投入時に最初に実行され、アプリケーション層１１０４およびプラットフォーム１１０６を起動する。
【００８７】
ハードウェア資源１１０３は、Ｂ＆Ｗ  ＬＰ（白黒レーザプリンタ）１１１２と、Ｃｏｌｏｒ  ＬＰ（カラーレーザプリンタ）１１１３と、ネットワーク  Ｉ／Ｆ（インターフェース）１１１４と、ＵＳＢ  Ｉ／Ｆ１１１５と、表示手段および操作手段としてのＬＣＤパネル１１１１とを含んでいる。
【００８８】
ソフトウェア群１１０１ａは、ＵＮＩＸ（登録商標）などの汎用ＯＳ１１４１上に起動されるアプリケーション層１１０４と、汎用ＯＳ１１４１等を含むプラットフォーム１１０６とを含んで構成されている。
ソフトウェア群１１０１ａにおけるアプリケーション層１１０４は、プリンタ、コピー、ファクシミリ、スキャナなどの画像形成に関する機能や付加された機能に対して、それぞれ固有の処理を行うプログラムであり、プリンタ用のアプリケーションであるプリンタアプリ１１２１と、コピー用のアプリケーションであるコピーアプリ１１２２と、ファクシミリ用のアプリケーションであるファクックスアプリ１１２３と、スキャナ用のアプリケーションであるスキャナアプリ１１２４と、ネットワークファイル用のアプリケーションであるネットファイルアプリ１１２５と、工程検査用のアプリケーションである工程検査アプリ１１２６と、ＲＲＵ（Ｒｅｍｏｔｅ  ＲＯＭ  Ｕｐｄａｔｅ）用のアプリケーションであるＲＲＵアプリ１１２７と、本画像形成装置１１００に装着されるＵＳＢメモリを管理するメモリデバイス管理アプリ１１７１と、メモリデバイス管理アプリ１１７１のプロセスと連携し、ＬＣＤパネル１１１１の表示およびＬＣＤパネル１１１１からの入力を制御するパネル管理アプリ１１７２と、メモリデバイス管理アプリ１１７１のプロセスと連携し、ネットワーク上のサーバとの通信を管理するネットワーク管理アプリ１１７３とを含んで構成されている。
【００８９】
また、ソフトウェア群１１０１ａにおけるプラットフォーム１１０６は、後述のＳＣＳ１１３４およびＳＲＭ１１３７と同様の機能をもつＳＣＳ１１２８およびＳＲＭ１１２９と、汎用ＯＳ１１４１とを含む。汎用ＯＳ１１４１は、ＵＳＢメモリドライバ１１６１、パネルドライバ１１６２、ネットワークドライバ１１６３などの各種ドライバを含んで構成される。このように画像形成装置１１００は、ネットワークインターフェース１１１４やＵＳＢインターフェース１１１５などの通信インターフェースの制御ができる構成である。画像形成装置１１００は、これらの通信インターフェースを介して外部機器と接続され、通信データの入出力を行うことができる。
【００９０】
メモリデバイス管理アプリ１１７１は、前述の機器１１におけるリストの同期処理および自動テストを実施するためのアプリケーションである。パネル管理アプリ１１７２は、下記のＯＣＳ１１３２と連携して、後述の図１５、１６、１９、２１、２３を用いて説明するようなＬＣＤパネル１１１１に対する表示制御およびＬＣＤパネル１１１１からの利用者による操作入力の制御を行う。ネットワーク管理アプリ１１７３は、下記のＮＣＳ１１３１と連携してサーバ１２との通信制御を行う。ネットワーク管理アプリ１１７３が実施する通信の内容は、図３、４、１０のシーケンス図を用いて前述したものと同様である。
【００９１】
ソフトウェア群１１０１ｂは、ＵＮＩＸ（登録商標）などの汎用ＯＳ１１４０上に起動されるプラットフォーム１１０６と、このプラットフォーム１１０６上で動作するＲＲＵアプリ１１３０とを含んで構成されている。ＲＲＵアプリ１１３０は、ＲＲＵアプリ１１２７と同様に、ＲＲＵ（Ｒｅｍｏｔｅ  ＲＯＭ  Ｕｐｄａｔｅ）用のアプリケーションである。ソフトウェア群１１０１ｂにおけるプラットフォーム１１０６は、アプリケーション層１１０４からの処理要求を解釈してハードウェア資源１１０３の獲得要求を発生するコントロールサービス層１１０５と、一つ以上のハードウェア資源１１０３の管理を行ってコントロールサービス層１１０５からの獲得要求を調停するＳＲＭ（システムリソースマネージャ）１１３７と、ＳＲＭ１１３７からの獲得要求に応じてハードウェア資源１１０３の管理を行う汎用ＯＳ１１４０とを含み構成されている。
【００９２】
コントロールサービス層１１０５は、ＮＣＳ（ネットワークコントロールサービス）１１３１と、ＯＣＳ（オペレーションパネルコントロールサービス）１１３２と、ＭＣＳ（メモリコントロールサービス）１１３３と、ＳＣＳ（システムコントロールサービス）１１３４等を含み構成されており、一つ以上のサービスモジュールを含むものである。
【００９３】
また、プラットフォーム１１０６は、あらかじめ定義されている関数により、アプリケーション層１１０４からの処理要求を受信可能とするＡＰＩ（Application Program Interface）を介するよう構成されている。ＵＮＩＸ（登録商標）などの汎用ＯＳ１１４０、１１４１は、アプリケーション層１１０４およびプラットフォーム１１０６の各ソフトウェアをプロセスとして並列実行する。
【００９４】
ＮＣＳ１１３１のプロセスは、ネットワークＩ／Ｆ１１１４を必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信したりする際の仲介を行う。
【００９５】
例えば、ＮＣＳ１１３１は、ネットワークを介して接続されるネットワーク機器とのデータ通信をｈｔｔｐｄ（hypertext transfer protocol daemon）により、ＨＴＴＰで制御する。ＯＣＳ１１３２のプロセスは、利用者と本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。
【００９６】
ＭＣＳ１１３５のプロセスは、不図示のシステムメモリの領域の取得および解放や不図示の記憶装置の利用などの制御を行う。ＳＣＳ１１３４のプロセスは、アプリケーションの管理、割り込みアプリケーション制御などの処理を行う。
【００９７】
ＳＲＭ１１３７のプロセスは、ＳＣＳ１１３４と共にシステムの制御およびハードウェア資源１１０３の管理を行うものである。例えば、ＳＲＭ１１３７のプロセスは、Ｂ＆Ｗ  ＬＰ１１１２やＣｏｌｏｒ  ＬＰ１１１３などのハードウェア資源１１０３を利用する上位層からの獲得要求にしたがって調停を行い、実行制御する。具体的に、ＳＲＭ１１３７のプロセスは、獲得要求されたハードウェア資源１１０３が利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたハードウェア資源１１０３が利用可能である旨を上位層に通知する。また、ＳＲＭ１１３７のプロセスは、上位層からの獲得要求に対してハードウェア資源１１０３を利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像動作、システムメモリの領域確保、ファイル生成など）を直接実行する。
以上、画像形成装置１１００の構成について説明した。
【００９８】
前述の機器１１としての本実施例の画像形成装置１１００の機能は、基本的に機器１１の場合と同様であるので、以下では、本実施例において特徴的な部分についのみ説明する。
【００９９】
（リスト）
サーバ１２と画像形成装置１１００にはそれぞれ、前述のように（図２）、「ホワイトリスト」（推奨デバイスリスト）、「グレーリスト」、「ブラックリスト」の３種のリストと、自動テスト項目を保持している。
【０１００】
「ホワイトリスト」とは、確実に動作するメモリデバイス（すなわち推奨デバイス）をリストアップし記録したリスト（推奨デバイスリスト）である。
【０１０１】
「グレーリスト」は、確実に動作するか不明なメモリデバイスをリストアップし記録したリストである。
【０１０２】
「ブラックリスト」は、確実に動作しないあるいは機器に悪影響を及ぼすメモリデバイスをリストアップし記録したリストである。
いずれのリストにも、該当のメモリデバイスを一意に識別するＩＤであるメモリデバイスＩＤが記録されている。
【０１０３】
「自動テスト項目」は、メモリデバイス装着時に、必要であれば実施する自動テストの項目と、そのテスト項目を自動テストするためのコード（スクリプト、命令コード）が記録されている。詳細は後述する。
【０１０４】
なお、サーバ１２と画像形成装置１１００の双方がもつ３種のリストおよび自動テスト項目は、装置製造時に初期値が格納されて実機内に必ず存在するものである。また、画像形成装置１１００の起動時およびサーバ１２でのそれらの更新時に、画像形成装置１１００とサーバ１２間で通信をして同期がとられる。
【０１０５】
この通信はＴＣＰを使って行う。図１３に、ＴＣＰによる通信データのフォーマットを示す。ただし、ＴＣＰヘッダ、ＩＰヘッダおよびＥｔｈｅｒｎｅｔ(登録商標）ヘッダは省略し図示している。同図に示すように、通信データは、通信内容を識別するための「通信ＩＤ」と、通信ＩＤ毎に異なるデータ部（データ１、データ２、…、データｎ）に分かれている。本実施例では、通信データのフォーマットとして、図１３に示すフォーマットを用いる。
画像形成装置１１００の起動時におけるリスト／自動テスト項目の同期処理は、図３を用いて説明したシーケンスと同じであるのでその説明は省略する。
【０１０６】
このとき画像形成装置１１００とサーバ１２間で交換される、ＴＣＰによる通信データの内容（上記各ヘッダは省略）を、図１４に示す。
図１４（ａ）リスト更新日付要求：通信ＩＤにはリスト更新日付要求を識別するＩＤが設定され、データ部１には、リストの種別（グレー／ホワイト／ブラック）が設定される。
図１４（ｂ）リスト更新日付応答：通信ＩＤにはリスト更新日付応答を識別するＩＤが設定され、データ部１にはリストの種別（グレー／ホワイト／ブラック）が設定されデータ部２には更新日付（例えば、ＵＮＩＸ(登録商標）のＥｐｏｃｈ  Ｔｉｍｅ）が設定される。
【０１０７】
図１４（ｃ）リスト要求：通信ＩＤにはリスト要求を識別するＩＤが設定され、データ部１にはリストの種別（グレー／ホワイト／ブラック）が設定される。
図１４（ｄ）リスト応答：通信ＩＤにはリスト応答を識別するＩＤが設定され、データ部１にはリストの種別（グレー／ホワイト／ブラック）が設定されデータ部２にはリストの内容が設定される。
【０１０８】
図１４（ｅ）自動テスト項目日付要求：通信ＩＤには自動テスト項目日付要求を識別するＩＤが設定される。なお、この要求にはデータ部はない。
図１４（ｆ）自動テスト項目日付応答：通信ＩＤには自動テスト項目日付応答を識別するＩＤが設定され、データ部１には更新日付（例えば、ＵＮＩＸ(登録商標）のＥｐｏｃｈ  Ｔｉｍｅ）が設定される。
【０１０９】
図１４（ｇ）自動テスト項目要求：通信ＩＤには自動テスト項目要求を識別するＩＤが設定される。なお、この要求にはデータ部はない。
図１４（ｈ）自動テスト項目応答：通信ＩＤには自動テスト項目応答を識別するＩＤが設定され、データ部１には自動テスト項目の内容が設定される。
【０１１０】
（ＵＳＢメモリ装着時の処理と自動テスト）
前述のように、画像形成装置１１００にメモリデバイス１３としてのＵＳＢメモリ１３’が装着されたとき、このメモリのメモリデバイスＩＤがいずれのリストに載っているかにより画像形成装置１１００の挙動が異なるものとなっている。
【０１１１】
（１）ＵＳＢメモリ１３’のメモリデバイスＩＤがホワイトリストに載っている場合、無条件にＵＳＢメモリ１３’を使用できるものとみなし、このメモリを使った画像形成装置１１００の機能を利用者が使用できるようにする。
【０１１２】
（２）ＵＳＢメモリ１３’のメモリデバイスＩＤがブラックリストに載っている場合、図１５に示すように、警告として「このメモリデバイスは使用できない」旨（同図の例では「装着したＵＳＢメモリはこの機器では動作しません。」）を画像形成装置１１００のＬＣＤパネル１１１１に表示し、ＵＳＢメモリ１３’を使った画像形成装置１１００の機能を使用できないようにする。
【０１１３】
（３）ＵＳＢメモリ１３’のメモリデバイスＩＤがグレーリストに載っている場合、図１６に示すように、以下の２点、すなわち、
（ａ）画像形成装置１１００に装着されたＵＳＢメモリ１３’が当該画像形成装置１１００では推奨されていないこと、
（ｂ）当該ＵＳＢメモリ１３’を使用したい場合、まず画像形成装置１１００に装着されたＵＳＢメモリ１３’が使用可能かどうかのテストを行う必要があること、
を利用者に通知する。そして、その上で、利用者に、ＵＳＢメモリ１３’が使用できるかどうかの「テストをする」か、画像形成装置１１００で該当の「ＵＳＢメモリを使わない」のかを、画像形成装置１１００のＬＣＤパネル１１１１に表示して選択させる。このとき、図１６に示すように、これらの選択をするための選択ボタンとして表示する。
【０１１４】
（利用者が「テストをする」を選択した場合の処理）
画像形成装置１１００は内部に保存しているテスト手順１７０１に従い自動テストを実施する。自動テストの手続きの流れは図１７の通りである。「テスト手順」の実体はダイナミックリンクライブラリ（ＤＬＬ）を使用し、テスト実施時に画像形成装置１１００内のＲＡＭ１７０２上のワークエリアにロードする。ロードした後、図１１に示したメモリデバイス管理アプリ１１７１が、ライブラリ側で準備したテスト用に定義された関数を呼び出す。ダイナミックリンクライブラリを使用することで、テスト時のみ「テスト手順」のコードがＲＡＭ１７０２上にロードされる。そのため、画像形成装置１１００のＲＡＭの節減にもなる。
【０１１５】
（自動テスト）
続いて、自動テスト時の処理の流れを図１８のシーケンス図を用いて説明する。
【０１１６】
前述のように、自動テストは、装着されたＵＳＢメモリ１３’のメモリデバイスＩＤがグレーリストにあるか、またはいずれのリストにもない場合に、利用者の指示によって行うものである。したがって、図１８では、ＵＳＢメモリ１３’のメモリデバイスＩＤがホワイトリストおよびブラックリストにある場合の処理については省略している。
【０１１７】
はじめに、ＵＳＢメモリ１３’が画像形成装置１１００に装着されると、ＵＳＢメモリドライバ１１６１によりＵＳＢエニュメレーションが行われる。このとき、ＵＳＢメモリドライバ１１６１は、ＵＳＢメモリ１３’のメモリデバイスＩＤを取得する（ｔ１８０１）。
【０１１８】
次いで、メモリデバイス管理アプリ１１７１は、ＵＳＢメモリドライバ１１６１からＵＳＢメモリ１３’のメモリデバイスＩＤを取得する（ｔ１８０２）。
メモリデバイス管理アプリ１１７１は、取得したメモリデバイスＩＤでグレーリストを検索する（ｔ１８０３）。
【０１１９】
メモリデバイス管理アプリ１１７１は、グレーリストにＵＳＢメモリ１３’のメモリデバイスＩＤを見つけると（ｔ１８０４；「デバイスＩＤ有り」）、テスト項目をＲＡＭ１７０２上にロードする（ｔ１８０５）。
さらにメモリデバイス管理アプリ１１７１は、テスト関数を呼び出す（ｔ１８０６）。前述のように自動テスト項目にはテスト項目を自動テストするためのコード（スクリプト、命令コード）が含まれている。
【０１２０】
ＵＳＢメモリドライバ１１６１は、呼び出されたテスト関数に従って（ｔ１８０７）、ＵＳＢメモリ１３’にアクセスし所定のテストを行う（ｔ１８０８）。
テストの結果はＵＳＢメモリドライバ１１６１からテスト関数に返され（ｔ１８０９）、このテスト関数による判定結果がメモリデバイス管理アプリ１１７１に返される（ｔ１８１０）。
【０１２１】
（自動テストに成功した場合）
自動テストに成功した場合、図１９に示すように、テストに成功した旨（同図の例では、「機器に装着されたＵＳＢメモリは問題なく使用可能です。」）を画像形成装置１１００のＬＣＤパネル１１１１に表示して利用者に通知する。
さらに、該当のＵＳＢメモリ１３’のメモリデバイスＩＤとテストに成功した旨を通知するための自動テスト成功通知をサーバ１２に送信する。なお、この通信はＴＣＰを使って行う。このとき画像形成装置１１００からサーバ１２に送信される自動テスト成功通知のＴＣＰによる通信データの内容は、図２０に示すように、通信ＩＤには自動テスト成功通知を識別するＩＤが設定され、データ部１にはメモリデバイスＩＤが設定される。
そして、ＵＳＢメモリ１３’を使った画像形成装置１１００の機能を利用者が使用できるようにする。
【０１２２】
（自動テストでエラーを検知した場合）
自動テストでエラーを検知した場合、図２１に示すように「テストに失敗したこと」（同図の例では「機器に装着したＵＳＢメモリはこの装置では使用できません。」）と「装着したメモリデバイスを機器から取り除いてほしい」旨（同図の例では、「機器に装着されたＵＳＢメモリを取り外してください。」）を画像形成装置１１００のＬＣＤパネル１１１１に表示して利用者に通知する。
さらに、メモリデバイスＩＤとテストに失敗した旨を通知するための自動テスト不成功通知をサーバ１２に送信する。この通信はＴＣＰを使って行う。このとき画像形成装置１１００からサーバ１２に送信されるＴＣＰによる通信データの内容は、図２２に示すように、通信ＩＤには自動テスト不成功通知を識別するＩＤが設定され、データ部１にはメモリデバイスＩＤが設定される。
そして、利用者が、装着されたＵＳＢメモリ１３’を画像形成装置１１００から取り除くまで、画像形成装置１１００を使用できないようにする。
【０１２３】
（利用者が「ＵＳＢメモリを使わない」を選択した場合の処理）
図２３に示すように、「装着メモリデバイスは使用可能か不明のため機器利用ができない」旨を画像形成装置１１００のＬＣＤパネル１１１１に表示して利用者に通知する。また、「装着されたＵＳＢメモリを取り外してください。」との表示も行って、利用者が、該当のＵＳＢメモリ１３’を機器から取り除くまで画像形成装置１１００を使用できないようにする。
【０１２４】
（自動テスト項目の同期処理）
自動テストを実施するために、画像形成装置１１００には自動テスト項目が保存されている。この自動テスト項目はアップデートされることもありえるので、以下２点のタイミングで同期処理が行われる。
（１）画像形成装置１１００の起動時にネットワーク経由でサーバ１２に接続したとき。
（２）サーバ１２側から自動テスト項目が更新された旨が通知されたとき。
【０１２５】
（リストの更新）
「（利用者が「テストをする」を選択した場合の処理）」で説明したとおり、テストの結果はサーバ１２に送信される。サーバ１２への送信はメモリデバイス管理アプリ１１７１がネットワーク管理アプリ１１７３を介して行う。
【０１２６】
サーバ１２側では、図７を用いて前述したとおり、受信したテスト結果をカウントし、以下の処理を行う。
【０１２７】
（１）一定数のテスト成功実績を重ねたＵＳＢメモリのメモリデバイスＩＤをホワイトリストに移動させる。ただし、失敗実績も一定数以上の場合は、成功回数のみクリアし（０（ゼロ）にし）、グレーリストに該当メモリデバイスＩＤを載せたままにする。ここで成功回数のみクリアする理由は、画像形成装置１１００の誤動作を防ぐことが趣旨のためである。そのため、ある程度の成功実績があっても、一定数の失敗実績があった場合、誤動作をする危険性が大きいとみなしている。
【０１２８】
（２）一定数のテスト失敗実績を重ねたＵＳＢメモリ１３’のメモリデバイスＩＤをブラックリストに移動させる。
もし、（１）、（２）のいずれかによりリストが更新された場合、サーバ１２はリストが更新された旨を画像形成装置１１００に通知する。その上で、更新されたリストを画像形成装置１１００に送信する。
【０１２９】
（画像形成装置がサーバと接続できない場合の処理）
これまでに説明した内容は画像形成装置１１００がサーバ１２と接続できることを前提としていた。しかし、ネットワークを介してサーバ１２と接続できない画像形成装置１１００およびネットワーク障害などの要因でサーバ１２と接続できない場合、以下のような処理を実施する。
【０１３０】
（ＵＳＢメモリ装着時）
このときの処理は、サーバ接続時の処理とほとんど同様である。ただし、装着されたＵＳＢメモリ１３’がグレーリストに載っているかまたはいずれのリストにも載っていない場合の処理に差異がある。
【０１３１】
装着されたＵＳＢメモリ１３’がグレーリストに載っているかまたはいずれのリストにも載っていない場合の画像形成装置１１００の動作として、まず以下の２点を利用者に通知する。すなわち、
（ａ）画像形成装置１１００に装着されたＵＳＢメモリ１３’が画像形成装置１１００では推奨されていないこと、
（ｂ）画像形成装置１１００に装着されたＵＳＢメモリ１３’使用したい場合、まずこのＵＳＢメモリ１３’が使用可能かどうかのテストを行う必要があること、
をＬＣＤパネル１１１１に表示して利用者に通知する。そして、その上で、
図１６を用いて前述したように、利用者に、「使用できるかどうかテストを実施する」のか「機器側で該当メモリデバイスを使用するのをやめる」のかを画像形成装置１１００のＬＣＤパネル１１１１に表示して選択させる。
【０１３２】
利用者が「テスト実施」を選択した場合、画像形成装置１１００内のメモリデバイス管理アプリ１１７１は内部に保存しているテスト手順に従い自動テストを実施する。これにより、画像形成装置１１００側で、装着されたＵＳＢメモリ１３’が正常に動作するか確認する。このときの処理は、図９を用いて前述したとおりである。
【０１３３】
自動テストに成功した場合は、まず、図１９に示すようにテストに成功した旨を画像形成装置１１００のＬＣＤパネル１１１１に表示して利用者に通知する。
次いで、画像形成装置１１００内部で保持する「通算成功回数」に１加算し、ＵＳＢメモリ１３’を使った画像形成装置１１００の機能を使用できるようにする。
そして、ＵＳＢメモリ１３’を使用する画像形成装置１１００の機能を利用者が使用できるようにする。
【０１３４】
一方、自動テストでエラーを検知した場合、まず、図２１に示すように「テストに失敗したこと」（同図の例では「機器に装着したＵＳＢメモリはこの装置では使用できません。」）と「装着したメモリデバイスを機器から取り除いてほしい」旨（同図の例では、「機器に装着されたＵＳＢメモリを取り外してください。」）を画像形成装置１１００のＬＣＤパネル１１１１に表示して利用者に通知する。
【０１３５】
次いで、画像形成装置１１００内部で保持する「通算失敗回数」に１を加算し、ＵＳＢメモリ１３’を使った画像形成装置１１００の機能を使用できないようにする。
そして、装着されたＵＳＢメモリ１３’を画像形成装置１１００から取り除くまで画像形成装置１１００を使用できないようにする。
【０１３６】
なお、前述のように、特定のＵＳＢメモリで多数の成功実績を重ねても、また多数の失敗実績を重ねたとしても、画像形成装置１１００がローカルで保持するリストは更新されない。こうする理由は、「（サーバ未接続時におけるリストの更新について）」で前述したとおりである。
【０１３７】
ネットワーク再接続ができた場合は、画像形成装置１１００は、サーバ１２との接続時に、サーバ１２に「通算成功回数」と、「通算失敗回数」とを通知する。そして、「（ネットワーク再接続時のリスト更新処理）」にて前述したように、サーバ１２側での処理後、リストの同期を取り、ローカルのリストを破棄する。この際の通信はＴＣＰを使って行う。
【０１３８】
図２４に、通算成功回数および通算失敗回数を通知するための通算テスト回数通知のＴＣＰによる通信データの内容（ヘッダ部は省略）を示す。
サーバ未接続時の間に、画像形成装置１１００において複数のＵＳＢメモリに対して自動テストが行われることもありうる。したがって、通算テスト回数通知は、テストされたデバイス毎に、デバイスのメモリデバイスＩＤと通算成功回数と通算失敗回数の３つのエントリが作成される。
【０１３９】
図２４に示した例では、通信ＩＤに、この通算テスト回数通知を識別するＩＤが設定され、データ部１には、テストしたデバイス（ＵＳＢメモリ）の個数が設定され、データ部２にはデバイス１のメモリデバイスＩＤが設定され、データ部３にはデバイス１の通算成功回数が設定され、データ部４にはデバイス１の通算失敗回数が設定されている。また、データ部５にはデバイス２のメモリデバイスＩＤが設定され、データ部６にはデバイス２の通算成功回数が設定され、データ部７にはデバイス２の通算失敗回数が設定されている。このようにデバイス毎に、デバイスのメモリデバイスＩＤと通算成功回数と通算失敗回数の３つのエントリが作成される。
以上、画像形成装置への適用例を説明した。
【０１４０】
なお、上記実施例では、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能等を有する複合機を画像形成装置１１００として説明したが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の単機能の画像形成装置であってもよい。
【図面の簡単な説明】
【０１４１】
【図１】（Ａ）本発明の一実施形態にかかるハードウェアの全体構成を示すブロック図、（Ｂ）同実施形態における機器１１およびサーバ１２が内蔵するハードウェア構成を示すブロック図である。
【図２】同実施形態における機器とサーバが有する３種のリストおよび自動テスト項目と、同実施形態の機器およびサーバにおける特徴的な機能を実行する各処理部を示す機能ブロック図である。
【図３】同実施形態における、機器起動時のリスト更新にかかる、機器１１とサーバ１２間の通信の概略を示したシーケンス図である。
【図４】同実施形態における、サーバ１２側でのリスト／自動テスト項目更新時の機器１１とサーバ１２間の通信の概略を示すシーケンス図である。
【図５】同実施形態における、メモリデバイス装着時の処理フローを示す図である。
【図６】同実施形態における、グレーリスト処理の処理フローを示す図である。
【図７】同実施形態における、サーバ側のリスト更新処理の処理フローを示す図である。
【図８】同実施形態における、ネットワーク未接続時の、メモリデバイス装着時処理の処理フローを示す図である。
【図９】図８の処理フローにおけるグレーリスト処理の処理フローを示す図である。
【図１０】機器１１のネットワーク再接続時におけるリスト／自動テスト項目更新時の機器１１とサーバ１２間の通信の概略を示すシーケンス図である。
【図１１】機器１１として用いる画像形成装置１１００の構成を示す図である。
【図１２】機器１１として画像形成装置１１００を用いた実施例の全体構成を示す図である。
【図１３】同実施例におけるＴＣＰによる通信データのフォーマットを示す図である。
【図１４】同実施例における画像形成装置１１００とサーバ１２間で交換される、ＴＣＰによる通信データの内容を示す図である。
【図１５】同実施例におけるブラックリストにリストアップされたＵＳＢメモリ装着時の、ＬＣＤパネルの表示例を示す図である。
【図１６】同実施例におけるグレーリストにリストアップされたＵＳＢメモリ装着時の、ＬＣＤパネルの表示例を示す図である。
【図１７】同実施例における自動テストの手続きの流れを説明する図である。
【図１８】同実施例における自動テスト時の処理の流れを示すシーケンス図である。
【図１９】同実施例における、自動テストが正常終了したときの、ＬＣＤパネルの表示例を示す図である。
【図２０】同実施例における、自動テスト成功時の通信データ（自動テスト成功通知）のフォーマットを示す図である。
【図２１】同実施例における、自動テストが不成功で終了したときの、ＬＣＤパネルの表示例を示す図である。
【図２２】同実施例における、自動テスト不成功時の通信データ（自動テスト不成功通知）のフォーマットを示す図である。
【図２３】同実施例における、利用者が「ＵＳＢメモリを使わない」を選択したときの、ＬＣＤパネルの表示例を示す図である。
【図２４】同実施例における自動テストの通算テスト回数通知のフォーマットを示す図である。
【符号の説明】
【０１４２】
１１  メモリデバイス装着可能な機器
１２  サーバ
１３  メモリデバイス
１３’  ＵＳＢメモリ
１１００  画像形成装置
１１７１  メモリデバイス管理アプリ
１１７２  パネル管理アプリ
１１７３  ネットワーク管理アプリ
【図１】
2010128707.tif 000003
【図２】
2010128707.tif 000004
【図３】
2010128707.tif 000005
【図４】
2010128707.tif 000006
【図５】
2010128707.tif 000007
【図６】
2010128707.tif 000008
【図７】
2010128707.tif 000009
【図８】
2010128707.tif 000010
【図９】
2010128707.tif 000011
【図１０】
2010128707.tif 000012
【図１１】
2010128707.tif 000013
【図１２】
2010128707.tif 000014
【図１３】
2010128707.tif 000015
【図１４】
2010128707.tif 000016
【図１５】
2010128707.tif 000017
【図１６】
2010128707.tif 000018
【図１７】
2010128707.tif 000019
【図１８】
2010128707.tif 000020
【図１９】
2010128707.tif 000021
【図２０】
2010128707.tif 000022
【図２１】
2010128707.tif 000023
【図２２】
2010128707.tif 000024
【図２３】
2010128707.tif 000025
【図２４】
2010128707.tif 000026