以下、本発明を実施するための形態について図面を用いて説明する。
<画像形成装置の構成>
本実施例では、画像形成装置の一例として、コピー機能やプリンタ機能等の複数の機能を有するMFP(Multi Function Peripheral)機ついて説明する。しかし、本発明の画像形成装置は、コピー機能のみ又はプリンタ機能のみを有するSFP(Single Function Peripheral)であってもよく、これに限定されるものではない。まず、図1を参照して、画像形成装置100の構成例について説明する。
図1は、本発明の一実施例を示す画像形成装置を含むシステムを例示する図である。
コントローラ部(制御部)110は、リーダ部120及びプリンタ部130と電気的に接続されている。制御部110は、リーダ部120及びプリンタ部130からデータを受信する。また、制御部110は、リーダ部120及びプリンタ部130に対して各種のコマンドを送信する。さらに、制御部110は、ネットワーク160を介してホスト(161、162)と接続されており、それらから画像データや制御コマンドを受信する。
ネットワーク160は、例えば、イーサネット(登録商標)で構築される。ホスト(PC161、162)は、ネットワーク160を介して、画像形成装置100に対して、機器の構成情報や現在のステータス情報の監視等も行っている外部の情報処理装置である。なお、ネットワーク160は、イントラネットであっても、インターネットであってもよい。
リーダ部120は、原稿の画像を光学的に読み取り、画像データに変換する。リーダ部120は、原稿を読み取る機能を有するスキャナユニット121と、原稿をスキャナユニット121によって読み取り可能な位置まで搬送する原稿給紙ユニット122とを備える。スキャナユニット121が備えるスキャナコントローラ123は、制御部110からの指示に基づいて、スキャナユニット121と原稿給紙ユニット122とを制御する。
プリンタ部130は、画像形成(印刷)用の用紙(用紙又は記録材)を収納する給紙ユニット131と、画像データを用紙に転写及び定着させるマーキングユニット132と、印刷された用紙を排紙する排紙ユニット134とを備える。プリンタ部130は、制御部110からの指示に基づいて、給紙ユニット131から用紙をマーキングユニット132へ給紙し、マーキングユニット132で当該用紙に対して画像データを印刷した後、当該用紙を排紙ユニット134へ排紙する。排紙ユニット134は、マーキングユニット132で印刷された用紙に対し、ソートやステイプル等の処理を施すことができる。給紙ユニット131は、複数の給紙部を備えており、各給紙部には用紙が収納され、載置(設定)される。各給紙部は、例えば、普通紙や光沢紙等、複数種類の用紙を収納できる。また、各給紙部は、画像形成装置100のプリンタ部130で印刷された用紙を、再び収納することもできる。給紙部の例として、給紙カセットや、給紙デッキ、手差用紙トレイ等がある。給紙部の形態はこれに限られず、その他、収納された用紙をマーキングユニット132に搬送できればよい。
操作部140は、例えば、ハードキーや、液晶表示部及びその表面上に貼り付けられたタッチパネル部を備え、それらを介してユーザから指示を受け付ける。また、操作部140は、液晶表示部にソフトキーや、画像形成装置100の機能や状態を表示することができる。操作部140は、ユーザからの指示に対応するコマンドを、制御部110に送信する。HDD(Hard Disk Drive)150は、画像形成装置100の各種設定及び画像データを記憶する。なお、HDD150の代わりに、SSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
上記の構成に基づき、画像形成装置100は、例えば、コピー機能、画像データ送信機能、プリンタ機能等の種々の機能を実現する。コピー機能を実現する場合には、制御部110は、リーダ部120で原稿の画像データを読込み、プリンタ部130で当該画像データを用いて用紙に印刷する制御を行う。画像データ送信機能を実現する場合に、制御部110は、リーダ部120で読み込んだ原稿の画像データをコードデータに変換し、当該コードデータを、ネットワーク160を介してホスト(161、162)に送信する。さらに、プリンタ機能を実現する場合には、制御部110は、ホスト(161、162)からネットワーク160を介して受信したコードデータ(印刷データ)を画像データに変換し、プリンタ部130へ送信する。プリンタ部130は、受信した画像データを用いて用紙に印刷する。
制御部110は、図示しない、CPU、ROM、RAM、ネットワークI/F等を有し、CPUがROMやHDD150等に格納されるプログラムを実行することにより、上述した各種制御を実現する。
<標準技術の説明>
次に、IETF(Internet Engineering Task Force)がインターネットで利用される技術の標準化を目的として発行しているRFC(Request for Comments)に基づく、ネットワーク機器からの情報取得の技術について説明する。
ネットワーク上のデバイスの情報監視プロトコルとしてSNMP(Simple Network Management Protocol)が一般的に広く用いられている。SNMPで管理されるネットワーク機器は、MIB(Management Information Base)情報を搭載し、管理端末からのSNMPリクエストに対してレスポンスを行うことで管理される。MIB情報の構造についても、IEFTで標準化がなされている。
MIB情報は分野別の階層構造となっており、枝にはそれぞれ番号が割り当てられており、この番号をつなげたものをOID(Object IDentifier)と呼ぶ。MIBでは、この階層構造と、OIDを持つオブジェクトがどの様な情報を持ち、どのようなデータ型で定義されているのか等が規定される。MIBには、各種のRFCによって規定されるものや、企業により独自に拡張されたプライベート情報等がある。データ型の定義についても管理情報構造(SMI(Structure of Management Information))としてRFCに規定があり、ASN.1(Abstract Syntax Notation One)というISOとITU−Tで規定された記述言語で表現される。
なお、RFCの技術仕様は不変ではなく、技術の進歩によって更新が行われる。RFCには「RFCxxxx」という番号があり、一度公開された仕様の更新にあたっては、旧来の番号をObsolete扱いとし、新規の番号が割り当てられる。
SNMPとMIBを用い、ネットワーク機器の状態監視をネットワーク上の遠隔のホストから行うために、Host Resources MIBが用いられている例がある。なお、Host Resources MIBには、RFC1514と、更新されたRFC2790とが存在しており、基本的には上位互換の仕様拡張となっている。
しかしながら、RFC1514と、更新されたRFC2790との間には、一部の互換性が損なわれている仕様が存在している。以下、図2〜図5を用いて、その仕様や、仕様非互換がネットワークに接続された画像形成装置の状態監視にどのような影響を与えているかを説明する。
<仕様非互換の説明>
まず、RFC1514とRFC2790において問題となる仕様非互換のMIB情報について説明する。
各仕様における"hrPrinterDetectedErrorState OBJECT-TYPE"に係る記載では、データ型がオクテット型のバイナリ列であり、バイナリのビットアサインを上位互換となるようにRFC2790の定義が更新されているように見える。しかしながら、前述のASN.1によるバイナリ変換規則を用い、データを、ネットワーク上のバイトオーダーで数値としてみた場合には、図2に示すように差が生まれる。
図2は、Host Resources MIBのhrPrinterDetectedErrorStateの仕様差を説明するための図である。
図2(a)において、200は、2000年03月に発行されたRFC2790に則したビットアサインを示している。204は、ビットが立った時のプリンタの状態=Conditionを示している。205は、1993年09月に発行されたRFC1514則したビットアサインを示している。201は、RFC1514とRFC2790とでビットアサインとしては互換となっている割り当てを示している。一方、202は、RFC2790で仕様追加が行われ、新たなConditionとビットアサインとが追加されている。なお、203は、Conditionの割り当てがされていないビットを示している。
前述の通り、このビットアサインを見る限りにおいては、RFC2790でのhrPrinterDetectedErrorStateは、RFC1514と互換性があるように見える。hrPrinterDetectedErrorStateを、ASN.1によるバイナリ変換規則を用い、ネットワーク上のバイトオーダーで数値としての対応付けすると、図2(b)に示すようになる。
図2(b)では、206がCondition、207がRFC2790での16進数での数値、208がRFC1514での16進数での数値を示している。
hrPrinterDetectedErrorStateは、RFC1514では1バイト(8ビット)のデータであるが、RFC2790では2バイト(16ビット)のデータとなり、RFC2790で仕様追加された210で示す状態は、旧仕様であるRFC1514では示すことが出来ない。hrPrinterDetectedErrorStateを数値としてみた場合、209で示すidel状態のみが、旧仕様のRFC1514と新仕様のRFC2790とで一致し、それ以外の状態は不一致となることが分かる。
<ホストによる画像形成装置の状態監視>
ホストによる画像形成装置の状態監視の例を図3〜図5に示す。
図3〜図5は、ホストによる画像形成装置の状態監視を説明する図である。
まず、図3を用いて、旧RFCに対応する状態監視の例を示す。
図3において、ホストA(161)はRFC1514(以下、旧RFC)に対応したホストを示しており、画像形成装置A(100)も旧RFCに対応した画像形成装置を示している。即ち、図3は、旧RFCに則って状態監視を行うホストA(161)と、旧RFCに則って状態通知を行う画像形成装置A(100)との組み合わせでの状態監視の例に対応する。
ホストA(161)は画像形成装置A(100)の状態取得を行うため、SNMPのGetRequestオペレーションを用いhrPrinterDetectedErrorStateの取得リクエストを画像形成装置A(100)に送信する(300)。GetRequestに含めるOID値は、NULL指定というSNMP仕様のため、ホストA(161)が送信するGetRequestのパケット(300)からは、新旧何れのRFCに対応したホストであるか、受信側の画像形成装置A(100)では判別できない。
画像形成装置A(100)は、現在の機器状態を旧RFCの状態マッピングに基づいた値でレスポンスを行う(301)。レスポンス301の返信値が「0x00」の場合、図2に基づくと「idel」の状態を示しているため、ホストA(161)は、画像形成装置A(100)の状態が正常であると認識する(302)。
画像形成装置A(100)を正常状態として認識したホストA(161)は、正常状態と認識した機器に対しての余分なネットワークトラフィックを回避するため、次回の画像形成装置A(100)に対する状態の更新を所定の時間間隔の経過後(ここでは10分後とする)に行う(303)。このリクエストに対して、画像形成装置A(100)は、給紙ユニット131が用紙無しの状態であると制御部110が判断した場合、現在の機器の状態として「0x40」の値で返信を行う(304)。
304の返信値が「0x40」の場合、図2の旧RFCの状態マッピングでは「noPaper」を示しているため、ホストA(161)は、画像形成装置A(100)の状態を用紙無し(noPaper)と認識する(305)。画像形成装置A(100)の状態が用紙無し(noPaper)と認識したホストA(161)は、エラー状態からの復帰確認を行うため、エラー復帰まで上記所定の時間間隔よりも短い時間間隔(ここでは30秒間隔とする)で、画像形成装置A(100)の状態取得を繰り返す(306)。30秒後の状態に変化が無い場合、画像形成装置A(100)は用紙無し状態が継続していることを示すため、「0x40」の返信値で応答を返す(307)。ホストA(161)は用紙無しの状態が継続していると判断し(308)、再度30秒後に画像形成装置A(100)の状態取得を行う(309)。
この時点で画像形成装置A(100)の給紙ユニット131に対して用紙補給が完了している場合には、制御部110は用紙無しが解消したと判断し、画像形成装置A(100)は、309の状態取得のリクエストに対する返信値として、「0x00」(idel)で返信を行う(310)。310の返信を受けたホストA(161)は、画像形成装置A(100)の状態が正常に戻ったと判断し(311)、次回の画像形成装置A(100)に対する状態取得の間隔を10分後とした状態取得を行う(312)。上述のように、ホストは、監視内容によっては定期的なポーリング間隔の調整を行い、これにより、画像形成装置の例えば用紙詰まり等の異常検出状態からの復帰や、ウォームアップ中からの復帰時等の印刷可能状態への状態変化時の応答性を高めることができる。
次に、図4を用いて、新RFCに対応する状態監視の例を示す。
図4において、ホストB(162)はRFC2790(以下、新RFC)に対応したホストを示しており、画像形成装置B(100)は図3の画像形成装置A(100)に対して新RFC対応に設定変更した画像形成装置B(100)を示している。即ち、図4は、新RFCに則って状態監視を行うホストB(162)と、新RFCに則って状態通知を行う画像形成装置B(100)との組み合わせでの状態監視の例に対応する。
ホストB(162)は画像形成装置B(100)の状態取得を行うため、SNMPのGetRequestオペレーションを用いhrPrinterDetectedErrorStateの取得リクエストを画像形成装置A(100)に送信する(400)。画像形成装置B(100)は現在の機器状態を新RFCの状態マッピングに基づいた値でレスポンスを行う(401)。レスポンス401の返信値が「0x0000」の場合、図2に基づくと「idel」の状態を示しているため、ホストB(162)は、画像形成装置B(100)の状態が正常であると認識する(402)。
画像形成装置B(100)を正常状態として認識したホストB(162)は、正常状態と認識した機器に対しての余分なネットワークトラフィックを回避するため、次回の画像形成装置B(100)に対する状態の更新を10分後に行う(403)。このリクエストに対して、画像形成装置B(100)は、給紙ユニット131が用紙無しの状態であると制御部110が判断した場合、現在の機器の状態を「0x4000」の値で返信を行う(404)。
404の返信値が「0x4000」の場合、図2の新RFCの状態マッピングでは「noPaper」を示しているため、ホストB(162)は、画像形成装置B(100)の状態を用紙無し(noPaper)と認識する(405)。画像形成装置B(100)の状態が用紙無し(noPaper)と認識したホストB(162)は、エラー状態からの復帰確認を行うため、エラー復帰まで30秒間隔で、画像形成装置B(100)の状態取得を繰り返す(406)。30秒後の状態に変化が無い場合、画像形成装置B(100)は用紙無し状態が継続していることを示すため、「0x4000」の返信値で応答を返す(407)。ホストB(162)は用紙無しの状態が継続していると判断し(408)、再度30秒後に画像形成装置B(100)の状態取得を行う(409)。
この時点で画像形成装置B(100)の給紙ユニット131に対して用紙補給が完了している場合には、制御部110は用紙無しが解消したと判断し、画像形成装置B(100)は、409の状態取得のリクエストに対する返信値として、「0x0000」(idel)で返信を行う(410)。410の返信を受けたホストB(162)は、画像形成装置B(100)の状態が正常に戻ったと判断し(411)、次回の画像形成装置B(100)に対する状態取得の間隔を10分後とした状態取得を行う(412)。
最後に、図5を用いて、新旧RFCに対応する装置が混在する場合の状態監視の例を示す。
図5において、ホストA(161)は旧RFCに対応したホストを示しており、画像形成装置B(100)は図3の画像形成装置A(100)に対して新RFC対応に設定変更した画像形成装置B(100)を示している。即ち、図5は、旧RFCに則って状態監視を行うホストA(161)と、新RFCに則って状態通知を行う画像形成装置B(100)との組み合わせでの状態監視の例に対応する。
ホストA(161)は画像形成装置A(100)の状態取得を行うため、SNMPのGetRequestオペレーションを用いhrPrinterDetectedErrorStateの取得リクエストを画像形成装置B(100)に送信する(500)。GetRequestに含めるOID値は、NULL指定というSNMP仕様のため、ホストA(161)が送信するGetRequestのパケット(500)からは、新旧何れのRFCに対応したホストであるか、受信側の画像形成装置B(100)では判別できない。
画像形成装置B(100)は現在の機器状態を新RFCの状態マッピングに基づいた値でレスポンスを行う(501)。レスポンス501の返信値が「0x0000」の場合、図2に基づくと「idel」の状態を示している。
一方、401の返信を受けたホストA(161)が旧RFCの解釈のみしかサポートしていない場合、ホストA(161)は、hrPrinterDetectedErrorStateの1オクテット分の解釈しかできない。即ち、ネットワークのバイトオーダーに従ってホストA(161)が受信を行い、解釈できない返信値のデータ部を切り捨てると、16進数の下位1バイト分の解釈しかできないことと等価である。つまり、501の画像形成装置B(100)からの返信値「0x0000」は、ホストA(161)で受信し解釈されるのは、下位1バイト分の「0x00」となる。なお、この値は、図2の旧RFCに対しての状態マッピングでは「idel」の状態を示しているため、ホストA(161)は、画像形成装置B(100)の状態が正常であると認識する(502)。
画像形成装置B(100)を正常状態として認識したホストA(161)は、正常状態と認識した機器に対しての余分なネットワークトラフィックを回避するため、次回の画像形成装置B(100)に対する状態の更新を10分後に行う(503)。このリクエストに対して、画像形成装置B(100)は、給紙ユニット131が用紙無しの状態であると制御部110が判断した場合、現在の機器の状態を、新RFCに則った「0x4000」の値で返信を行う(504)。504の返信値が「0x4000」の場合、図2の新RFCの状態マッピングではnoPaperを示している。
一方、旧RFCの解釈しかできないホストA(161)は、前述の通り画像形成装置B(100)からの返信値の下位1バイト分、つまり「0x00」しか認識することができない。ホストA(161)が認識する「0x00」の状態マッピングは図2の旧RFCに当てはめると「idel」となる。このため、ホストA(161)は、新RFCに則った画像形成装置B(100)からの「用紙無し」の異常状態を、正常な「idel状態」として、誤認識してしまう(505)。
505で画像形成装置B(100)の状態を「正常」と誤認識したホストA(161)は、正常状態と認識した機器に対しての余分なネットワークトラフィックを回避するロジックが働くため、次回の画像形成装置B(100)に対する状態の更新を10分後に行う(506)。この時点において、画像形成装置B(100)の用紙なし状態が解消されていない場合、画像形成装置B(100)からの返信値は前述したのと同様に、新RFCに則った「0x0400」で返信されることになる(507)。ホストA(161)は旧RFCに則った解釈しかできないため、ホストA(161)では、同様に画像形成装置B(100)が「正常状態」であるという誤認識の状態が継続される(508)。
ホストA(161)は、画像形成装置B(100)に不都合が生じた場合、機器管理者にe−Mail通知を行ったり、画像形成装置B(100)へ印刷Jobの投入を抑制したり、正常な別な機器へ代行処理を行わせるなどといった役割も担っている。このため、画像形成装置B(100)の状態を、上述の505や508のように誤認識してしまうと、システム全体の運用に支障が出る可能性がある。
ホストA(161)は、画像形成装置B(100)の状態を正常状態(508)と誤認識しているため、10分後に画像形成装置B(100)の状態取得を行う(509)。この時点で画像形成装置B(100)の給紙ユニット131に対して用紙補給が完了している場合には、制御部110は用紙無しが解消したと判断し、画像形成装置B(100)は、509の状態取得のリクエストに対する返信値として、「0x0000」(idel)で返信を行う(510)。
ホストA(161)は、前述した通り旧RFCに則って、返信値を「0x00」として認識し、図2の旧RFCの状態マッピングでは旧RFCでも「idel」となるため、画像形成装置B(100)の状態を正常(511)と認識する。そのため、ホストA(161)は、次回の画像形成装置B(100)に対する状態取得の間隔を10分後とした状態取得を行う(512)。
以上のように、旧RFCに則って状態監視を行う監視アプリケーションと、新RFCに則って状態通知を行う画像形成装置との組み合わせで状態監視を行った場合、監視アプリケーション側で、画像形成装置の状態を正しく把握できない。このため、監視アプリケーションが画像形成装置の状態監視のためのポーリング間隔を画像形成装置の状態に応じて変更する(例えば異常時では正常時より短縮する)といった監視機構も正しく働かなくなってしまう。上述のように、正常時には10分間隔でポーリング監視し、異常時30秒間隔でポーリング監視する監視機構を監視アプリケーションが備えているとする。しかし、RFC仕様変更に対応していない監視アプリケーションでは、画像形成装置の異常を認識できず、図5に示したように、常に10分間隔でポーリング監視することになってしまう。
本発明では、画像形成装置側で新旧仕様の利用有無に加え、新旧仕様に対応した複数の状態の生成、及び、新旧仕様の適用範囲を設定し、その設定に沿った運用を行う。以下、その設定画面を図6で示し、画像形成装置の動作を図7のフローチャートで示す。
図6は、実施例1におけるUI設定画面の一例を示す図であり、画像形成装置100の制御部110の制御により操作部140の表示画面に表示される。図6に示す設定画面は、画像形成装置の状態を示す値の定義に係るRFC仕様を複数のRFC仕様のいずれにするかを決定するための指定を行うためのものである。ここでは、画像形成装置100の操作部140を用いて以下の説明を行うが、操作部140に代わり、PC161上のウェブブラウザ(不図示)等を用い、画像形成装置100のリモートUI機能に接続し、同様の設定を行う構成であってもよい。
図6において、600は、新旧RFC仕様を切り替えるための設定を行う画面の表示例を示す。601は、図2のRFC2790で拡張されたhrPrinterDetectedErrorState定義のbit8〜bit15の拡張定義の使用の有無を設定する設定項目である。本実施例では、601の設定に関し「使う」「使わない」の二択で説明を行っているが、応答仕様がさらに拡張された場合には、設定可能な選択肢をさらに追加し、ユーザが2以上の選択肢の中から設定を行えるような操作部140の表示、及び処理としてもよい。602の「使う」を設定した場合にはRFC2790仕様に基づいた状態返信を行い、603の「使わない」を設定した場合にはRFC1514仕様に基づいた状態返信を行う設定となる。
また、604は、RFC2790拡張の返信値ではなく、RFC1514の旧仕様の返信値を、特定のIPアドレスに対して行うための例外設定を使うか否かの設定を行う設定項目である。605の「使う」がユーザによって選択された場合、選択内容が操作部140から制御部110へ送信され、607〜613で示す例外アドレス設定のための設定項目の入力が可能となる。606の「使わない」がユーザによって選択された場合には607〜613で示す例外アドレス設定のための入力項目はマスクされ、操作部140は該入力項目への入力を受け付けない。
607は、IPアドレスによる例外設定を行う設定項目であり、本実施例では最大5つまでの設定を可能としている。608の登録する例外IPアドレスに関して、609の入力欄に、個別のIPアドレス、もしくはIPアドレスの範囲(レンジ)、プレフィックス長指定の入力をユーザが行い、610のOKボタンを押下することで設定が行われる。609で設定された内容は、611の登録済み設定としてリスト表示され、設定内容が612に各々リスト表示される。登録済みの設定変更を行う場合には、613の削除ボタンを押下することで設定の削除を行った後に、再度例外アドレス設定を行う。
600に示す設定画面に表示された内容で問題が無い場合には、614の「OK」ボタンをユーザが押下することによって、設定操作が終了し、操作部140から制御部110に最終の設定内容の送信が行われる。600の画面例は、RFC2790を使用することが前提であり、例外設定としてRFC1514の旧仕様での返信が必要なホストのIPアドレスを設定する場合の入力画面例である。600の表示画面で、603の「使わない」を押下すると、630に示す初期値の入れ替えが行われ、設定画面が615の表示に切り替えられる。
以下、603の設定でRFC2790を「使わない」と設定した場合の画面設定例を615の表示例を用いて簡単に説明する。615の画面例では、RFC1514の旧仕様を用いることが前提となっており、例外設定としてRFC2790の新仕様に対応したホストのIPアドレスを設定する流れとなる。
616は、RFC2790拡張を使うか否かの設定項目である。本実施例では、616の設定に関し「使う」「使わない」の二択で説明を行っているが、応答仕様がさらに拡張された場合には、設定可能な選択肢をさらに追加し、ユーザが2以上の選択肢の中から設定を行えるような操作部140の表示、及び処理としてもよい。617の「使う」を設定した場合にはRFC2790仕様に基づいた状態返信を行い、618の「使わない」を設定した場合にはRFC1514仕様に基づいた状態返信を行う設定となる。ここでユーザが617の「使う」を押下すると、630に示す初期値の入れ替えが行われ、設定画面が600の表示に切り替えられる。
619は、前述の604とは逆に、新仕様であるRFC2790を適用するホストのアドレス設定を使用するか否かの設定を行う設定項目である。620の「使う」がユーザによって選択された場合、選択内容が操作部140から制御部110へ送信され、622〜628で示す適用アドレス設定のための設定項目の入力が可能となる。621の「使わない」がユーザによって選択された場合には622〜628で示す適用アドレス設定のための入力項目はマスクされ、操作部140は該入力項目へのユーザによる入力を受け付けない。
622は、IPアドレスによる適用設定を行う設定項目であり、本実施例では最大5つまでの設定を可能としている。623の登録する適用IPアドレスに関して、624の入力欄に、個別のIPアドレス、もしくはIPアドレスの範囲、プレフィックス長指定の入力をユーザが行い、625のOKボタンを押下することで設定が行われる。625で設定された内容は、626の登録済み設定としてリスト表示され、設定内容が627に各々リスト表示される。登録済みの設定変更を行う場合には、628の削除ボタンを押下することで設定の削除を行った後に、再度適用アドレス設定を行う。
615に示す設定画面に表示された内容で問題が無い場合には、629の「OK」ボタンをユーザが押下することによって、設定操作が終了し、操作部140から制御部110に最終の設定内容の送信が行われる。制御部110は、操作部140から受信した設定内容をHDD150等に保存し、以後、該設定内容を用い、図7に示すフローチャートに則った処理を行うことで、本実施例の機能を実現させる。以上の設定画面により、上記状態取得を要求するパケットの送信元の情報処理装置のアドレスもしくはアドレスの範囲ごとに、上記要求に対して返却する状態の値を作成する際に用いるRFC仕様を指定する。なお、設定方法は、同様の指定が可能なものであれば、どのようなものであってもよい。
次に、図7を用いて、図6で設定された内容に基づく画像形成装置100の状態値の返信値切り替え処理について説明する。
図7は、実施例1における画像形成装置100の状態値の返信値切り替え処理を例示するフローチャートである。このフローチャートの処理は、画像形成装置100の制御部110のCPUがROM又はHDD150等に格納されたプログラムを読み出して実行することにより実現されるものである。
S900において、画像形成装置100の処理が開始される。S901において、制御部110は、PC161やPC162からのHost Resources MIBのhrPrinterDetectedErrorStateの問合わせのパケットを受信すると、S902に処理を進める。
S902では、制御部110は、図6の601あるいは616で設定された、新仕様を使用するか否かの判断を行う。そして、新仕様を使用すると判断した場合(S902でYesの場合)、制御部110は、S903に処理を遷移させる。
S903では、制御部110は、図6の604の設定を参照し、上記S901で受信したパケットの送り元PCのIPアドレスが612の例外IPアドレスに含まれているか否かを判断する。そして、図6の604の設定が、605の例外アドレスを「使う」かつ、上記S901で受信したパケットの送り元PCのIPアドレスが612の例外IPアドレスに含まれていると判断した場合(S903でYesの場合)、制御部110は、S905に処理を遷移させる。S905では、制御部110は、旧仕様で画像形成装置100の状態を返信するための返信値(旧仕様に準拠した返信値)とパケットを生成し、S907に処理を遷移させる。
また、上記S903において、図6の604の設定が、606の例外アドレスを「使わない」もしくは上記S901で受信したパケットの送り元PCのIPアドレスが612の例外IPアドレスに含まれていないと判断した場合(S903でNoの場合)、制御部110は、S906に処理を遷移させる。S906では、制御部110は、新仕様で画像形成装置100の状態を返信するための返信値(新仕様に準拠した返信値)とパケットを生成し、S907に処理を遷移させる。
S907では、制御部110は、上記S905又はS906で生成した返信値のパケットを、上記S901で受信したパケットの送り元PCに対して返信処理し、S908で、一連の処理を完了させる。
また、上記S902において、新仕様を使用しないと判断した場合(S902でNoの場合)、制御部110は、S904に処理を遷移させる。S904では、制御部110は、図6の619の設定を参照し、上記S901で受信したパケットの送り元PCのIPアドレスが627の適用IPアドレスに含まれているか否かを判断する。そして、図6の619の設定が、621の適用IPアドレスを「使わない」もしくは上記S901で受信したパケットの送り元PCのIPアドレスが627の適用IPアドレスに含まれていないと判断した場合(S904でNoの場合)、制御部110は、S905に処理を遷移させる。一方、図6の619の設定が、620の適用IPアドレスを「使う」かつ、上記S901で受信したパケットの送り元PCのIPアドレスが627の適用IPアドレスに含まれていると判断した場合(S904でYesの場合)、制御部110は、S906に処理を遷移させる。なお、S905以降、S906以降の処理に関しては上述のものと同一であるので説明を省略する。
以上示したように、実施例1によれば、監視アプリケーション側(ホスト側)のhrPrinterDetectedErrorStateの新旧RFCの対応状況に応じて、画像形成装置が応答する状態通知の値を追随させることが可能となる。その結果、旧RFC仕様しか解釈できない監視アプリケーションに対して、新RFC仕様で画像形成装置が返信を行ってしまい誤判定されてしまう状況を回避可能となる。また逆に、新RFCに対応した監視アプリケーションに対して画像形成装置が旧RFCで定義された少ない範囲の状態通知しか行えないといった状況も回避可能となる。よって、監視アプリケーションは、常に適切な状態監視を継続的に行うことができる。
上記実施例1では、返信値を生成する新旧仕様を、状態取得を要求するパケットの送信元のIPアドレスに応じて切り替える構成を説明した。実施例2では、返信値を生成する新旧仕様を、新旧仕様の切り替え期日と曜日ごとの時間帯設定に応じて切り替えるように構成する。以下、その設定画面を図8で示し、画像形成装置の動作を図9のフローチャートで示す。
図8は、実施例2におけるUI設定画面の一例を示す図であり、画像形成装置100の制御部110の制御により操作部140の表示画面に表示される。図8に示す設定画面は、画像形成装置の状態を示す値の定義に係るRFC仕様を複数のRFC仕様のいずれにするかを決定するための指定を行うためのものである。ここでは、画像形成装置100の操作部140を用いて以下の説明を行うが、操作部140に代わり、PC161上のウェブブラウザ(不図示)等を用い、画像形成装置100のリモートUI機能に接続し、同様の設定を行う構成であってもよい。
図8において、700は、新旧RFC仕様を切り替えるための設定を行う画面の表示例を示す。701は、図2のRFC2790で拡張されたhrPrinterDetectedErrorState定義のbit8〜bit15の拡張定義の使用の有無を設定する設定項目である。本実施例では、701の設定に関し「使う」「使わない」の二択で説明を行っているが、応答仕様がさらに拡張された場合には、設定可能な選択肢をさらに追加し、ユーザが2以上の選択肢の中から設定を行えるような操作部140の表示、及び処理としてもよい。702の「使う」を設定した場合にはRFC2790仕様に基づいた状態返信を行い、703の「使わない」を設定した場合にはRFC1514仕様に基づいた状態返信を行う設定となる。
また、704は、RFC2790拡張の返信値ではなく、RFC1514の旧仕様の返信値を、特定の期日まで例外として使用するか否かの設定を行う設定項目である。705の「使う」がユーザによって選択された場合、選択内容が操作部140から制御部110へ送信され、707で示す例外期日設定のための設定項目の入力が可能となり、設定後に、708の「OK」ボタンをユーザが押下することによって設定が完了となる。706の「使わない」がユーザによって選択された場合には、707で示す例外期日設定のための設定項目の入力項目はマスクされ、操作部140はユーザによる該入力項目への入力を受け付けない。
709は、曜日と、曜日ごとの設定された時間帯において、RFC2790拡張の返信値ではなく、RFC1514の旧仕様の返信値を用いる例外設定を使用するか否かを設定するための設定項目である。710の「使う」がユーザによって選択された場合、選択内容が操作部140から制御部110へ送信され、712〜715で示す例外設定のための設定項目の入力が可能となる。711の「使わない」がユーザによって選択された場合には、712〜715で示す例外設定のための設定項目の入力項目はマスクされ、操作部140は該入力項目へのユーザによる入力を受け付けない。
712は曜日を示しており、ユーザは、曜日ごとに例外適用の開始時刻の入力を713に、終了時刻の入力を714に行う。これらを解除する場合には、曜日ごとに設けられた715の解除ボタンを押下することによって行う。
700の設定画面に表示された内容で問題が無い場合には、716の「OK」ボタンをユーザが押下することによって、設定操作が終了し、操作部140から制御部110に最終の設定内容の送信が行われる。700の画面例は、RFC2790を使用することが前提であり、例外設定としてRFC1514の旧仕様での返信が必要な期日と曜日ごとの例外適用の設定を行う場合の入力画面例である。700の表示画面で、703の「使わない」を押下すると、734に示す初期値の入れ替えが行われ、設定画面が717の表示に切り替えられる。
以下、703の設定でRFC2790を「使わない」と設定した場合の画面設定例を717の表示例を用いて簡単に説明する。717の画面例では、RFC1514の旧仕様を用いることが前提である。718は、RFC2790拡張を使うか否かの設定項目である。本実施例では、718の設定に関し「使う」「使わない」の二択で説明を行っているが、応答仕様がさらに拡張された場合には、設定可能な選択肢をさらに追加し、ユーザが2以上の選択肢の中から設定を行えるような操作部140の表示、及び処理としても良い。719の「使う」を設定した場合にはRFC2790仕様に基づいた状態返信を行い、720の「使わない」を設定した場合にはRFC1514仕様に基づいた状態返信を行う設定となる。ここでユーザが719の「使う」を押下すると、734に示す初期値の入れ替えが行われ、700の設定画面の表示に切り替えられる。
721〜725は、上述の704〜725の設定項目と同じであるため説明を割愛する。726は、曜日と、曜日ごとの設定された時間帯において、RFC1514の返信値ではなく、RFC2790の新仕様の返信値を用いる例外設定を使用するか否かを設定するための設定項目である。727の「使う」がユーザによって選択された場合、選択内容が操作部140から制御部110へ送信され、729〜732で示す例外設定のための設定項目の入力が可能となる。728の「使わない」がユーザによって選択された場合には、729〜732で示す例外設定のための設定項目の入力項目はマスクされ、操作部140は該入力項目へのユーザによる入力を受け付けない。
729は曜日を示しており、ユーザは、曜日ごとに例外適用の開始時刻の入力を730に、終了時刻の入浴を731に行う。これらを解除する場合には、曜日ごとに設けられた732の解除ボタンを押下することによって行う。
717の設定画面に表示された内容で問題が無い場合には、733の「OK」ボタンをユーザが押下することによって、設定操作が終了し、操作部140から制御部110に最終の設定内容の送信が行われる。制御部110は、操作部140から受信した設定内容をHDD150等に保存し、以後、該設定内容を用い、図9に示すフローチャートに則った処理を行うことで、本実施例の機能を実現させる。
なお、図8では、曜日と時間帯の組み合わせごとに旧仕様又は新仕様を例外として用いることを設定した。しかし、単に曜日ごとに旧仕様又は新仕様を例外として用いる設定であっても、単に時間帯ごとに旧仕様又は新仕様を例外として用いる設定であってもよい。以上の設定画面により、上記状態取得の要求を受ける時間帯ごと、曜日ごと、もしくは時間帯と曜日の組み合わせごとに、上記要求に対して返却する状態の値を作成する際に用いるRFC仕様を指定する。また、該RFC仕様を切り替える期日を指定する。なお、設定方法は、同様の指定可能なものであれば、どのようなものであってもよい。
次に、図9を用いて、図8で設定された内容に基づく画像形成装置100の状態値の返信値切り替え処理について説明する。
図9は、実施例2における画像形成装置100の状態値の返信値切り替え処理を例示するフローチャートである。このフローチャートの処理は、画像形成装置100の制御部110のCPUがROM又はHDD150等に格納されたプログラムを読み出して実行することにより実現されるものである。
S1000において、画像形成装置100の処理が開始される。S1001において、画像形成装置100の制御部110は、PC161やPC162からのHost Resources MIBのhrPrinterDetectedErrorStateの問合わせのパケットを受信すると、S1002に処理を進める。
S1002では、制御部110は、図8の701あるいは718で設定された、新仕様を使用するか否かの判断を行う。そして、新仕様を使用すると判断した場合(S1002でYesの場合)、制御部110は、S1003に処理を遷移させる。
S1003では、制御部110は、図8の704の設定を参照し、例外期日の設定を「使う」と設定されているか否かを判断する。そして、例外期日の設定を「使う」と設定されていると判断した場合(S1003でYesの場合)、制御部110は、S1004に処理を遷移させる。
S1004では、制御部110は、図8の707で設定された例外期日設定の日時と現在の日時とを比較し、現在の日時が例外期日設定の日時の前であるか否かを判断する。そして、現在の日時が例外期日設定の日時の前であると判断した場合(S1004でYesの場合)、制御部110は、S1005に処理を遷移させる。
S1005では、制御部110は、図8の709の設定を参照し、例外(旧仕様)ウィークリータイマを「使う」か否かを判断する。そして、例外(旧仕様)ウィークリータイマを「使う」と判断した場合(S1005でYesの場合)、制御部110は、S1006に処理を遷移させる。一方、例外(旧仕様)ウィークリータイマを「使わない」と判断した場合(S1005でNoの場合)、制御部110は、そのままS1007に処理を遷移させる。
S1006では、制御部110は、図8の712〜714の曜日ごとの例外(旧仕様)時刻の設定と、現在の曜日と日時とを比較して、現在の曜日と日時が例外の範囲内であるか否かを判断する。そして、現在の曜日と日時が例外の範囲内であると判断した場合(S1006でYesの場合)、制御部110は、S1007に処理を遷移させる。S1007では、制御部110は、旧仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1011に処理を進める。
また、上記S1003において、例外期日の設定を「使わない」と設定されていると判断した場合(S1003でNoの場合)、制御部110は、S10008に処理を遷移させる。また、上記S1004において、現在の日時が例外期日設定の日時の前でないと判断した場合(S1004でNoの場合)にも、制御部110は、S1008に処理を遷移させる。また、上記S1006において、現在の曜日と日時が例外の範囲内でないと判断した場合(S1006でNoの場合)にも、制御部110は、S1008に処理を遷移させる。S1008では、制御部110は、新仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1011に処理を進める。
S1011では、上記S1001で受信したパケットの送り元PCに対して、上記S1007又はS1008で生成したパケットを返信する返信処理を行い、S1012において、一連の処理を完了させる。
また、上記S1002において、新仕様を使用しないと判断した場合(S1002でNoの場合)、制御部110は、S1009に処理を遷移させる。S1009では、制御部110は、図8の726の設定を参照し、例外(新仕様)ウィークリータイマを「使う」か否かを判断する。そして、例外(新仕様)ウィークリータイマを「使わない」と判断した場合(S1009でNoの場合)、制御部110は、S1007に処理を遷移させる。一方、例外(新仕様)ウィークリータイマを「使う」と判断した場合(S1009でYesの場合)、制御部110は、S1010に処理を遷移させる。
S1010では、制御部110は、図8の729〜731の曜日ごとの例外(新仕様)時刻の設定と、現在の曜日と日時とを比較して、現在の曜日と日時が例外の範囲内であるか否かを判断する。そして、現在の曜日と日時が例外の範囲内でないと判断した場合(S1010でNoの場合)、制御部110は、S1007に処理を遷移させる。一方、現在の曜日と日時が例外の範囲内であると判断した場合(S1010でYesの場合)、制御部110は、S1008に処理を遷移させる。なお、S1007以降、S1008以降の処理に関しては上述のものと同一であるので説明を省略する。
以上示したように、実施例2によれば、新旧仕様の切り替え期日と曜日ごとの時間帯設定に応じて、画像形成装置が応答する状態通知の値の新旧仕様を切り替えることが可能となる。よって、監視アプリケーション側(ホスト側)の新旧仕様の切り替え日や、監視スケジュール等に合わせて設定を行っておくことにより、旧RFC仕様しか解釈できない監視アプリケーションに対して、新RFC仕様で画像形成装置が返信を行ってしまい誤判定されてしまう状況を回避可能となる。また逆に、新RFCに対応した監視アプリケーションに対して画像形成装置が旧RFCで定義された少ない範囲の状態通知しか行えないといった状況も回避可能となる。よって、監視アプリケーションは、常に適切な状態監視を継続的に行うことができる。
実施例3では、返信値を生成する新旧仕様を、SNMPのプロトコルバージョンと、SNMPの仕様として複数存在する情報取得系のオペレーションによって切り替えるように構成する。以下、その設定画面を図10で示し、画像形成装置の動作を図11及び図12のフローチャートで示す。
図10は、実施例3におけるUI設定画面の一例を示す図であり、画像形成装置100の制御部110の制御により操作部140の表示画面に表示される。図6に示す設定画面は、画像形成装置の状態を示す値の定義に係るRFC仕様を複数のRFC仕様のいずれにするかを決定するための指定を行うためのものである。ここでは、画像形成装置100の操作部140を用いて以下の説明を行うが、操作部140に代わり、PC161上のウェブブラウザ(不図示)等を用い、画像形成装置100のリモートUI機能に接続し、同様の設定を行う構成であってもよい。
図10において、800は、新旧RFC仕様を切り替えるための設定を行う画面の表示例を示す。801で図2のRFC2790で拡張されたhrPrinterDetectedErrorState定義のbit8〜bit15の拡張定義の使用の設定全体を示す。この例では、SNMPのプロトコルバーションが「v1」の情報取得系オペレーションと、「v1」の情報取得系オペレーションについて設定可能である。
802は、SNMPのプロトコルバーションが「v1」の情報取得系オペレーションに関して、RFC2790拡張の返信値を使うか否かの設定を行う設定項目である。SNMPv1の仕様では、ホストがターゲット機器からMIB情報の取得を行うオペレーションとしてGetRequest(803)とGetNextRequest(804)が存在している。
802の設定項目では、805の「使う」を選択した場合には、SNMPv1の取得系の全オペレーションに対して新仕様が適用され、808で示すオペレーション毎の設定項目はマスクされ、操作部140は設定項目808へのユーザによる入力を受け付けない。806の「使わない」を選択した場合には、SNMPv1の取得系の全オペレーションに対して旧仕様が適用され、808で示すオペレーション毎の設定項目はマスクされ、操作部140は設定項目808へのユーザによる入力を受け付けない。
807の「個別設定」が選択されたことが操作部140から画像形成装置100の制御部110に通知されると、制御部110は、808で示すオペレーション毎の設定項目のマスクを解除するように操作部140に通知する。これにより、操作部140では、808へのユーザによる入力を受け付ける。よって、GetRequest(803)とGetNextRequest(804)のオペレーション毎に新旧の仕様の切り替えを設定することが可能となる。
802は、SNMPのプロトコルバーションが「v3」の情報取得系オペレーションに関して、RFC2790拡張の返信値を使うか否かの設定を行う設定項目である。SNMPv3の仕様では、ホストがターゲット機器からMIB情報の取得を行うオペレーションとしてGetRequest(810)と、GetNextRequest(811)と、GetBulkRequest(812)が存在している。
809の設定項目では、813の「使う」を選択した場合には、SNMPv3の取得系の全オペレーションに対して新仕様が適用され、816で示すオペレーション毎の設定項目はマスクされ、操作部140は設定項目816へのユーザによる入力を受け付けない。814の「使わない」を選択した場合には、SNMPv3の取得系の全オペレーションに対して旧仕様が適用され、816で示すオペレーション毎の設定項目はマスクされ、操作部140は設定項目816へのユーザによる入力を受け付けない。
815の「個別設定」が選択されたことが操作部140から画像形成装置100の制御部110に通知されると、制御部110は、808で示すオペレーション毎の設定項目のマスクを解除するように操作部140に通知する。これにより、操作部140では、816へのユーザによる入力を受け付ける。よって、GetRequest(810)と、GetNextRequest(811)と、GetBulkRequest(812)のオペレーション毎に新旧の仕様の切り替えを設定することが可能となる。
800の設定画面に表示された内容で問題が無い場合には、817の「OK」ボタンをユーザが押下することによって、設定操作が終了し、操作部140から制御部110に最終の設定内容の送信が行われる。なお、800の設定画面では、808、816の設定に関し有無の二択で説明を行っているが、応答仕様がさらに拡張された場合には、設定可能な選択肢をさらに追加し、ユーザが2以上の選択肢の中から設定を行えるような操作部140の表示、及び処理としてもよい。以上の設定画面により、上記状態取得の要求に対応するSNMPのバージョンごとに、上記要求に対して返却する状態の値を作成する際に用いるRFC仕様を指定する。また、SNMPのオペレーションごとに、該RFC仕様を指定する。なお、設定方法は、同様の指定可能なものであれば、どのようなものであってもよい。
次に、図11、図12を用いて、図10で設定された内容に基づく画像形成装置100の状態値の返信値切り替え処理について説明する。
図11、図12は、実施例3における画像形成装置100の状態値の返信値切り替え処理を例示するフローチャートである。このフローチャートの処理は、画像形成装置100の制御部110のCPUがROM又はHDD150等に格納されたプログラムを読み出して実行することにより実現されるものである。
S1100において、画像形成装置100の処理が開始される。S1101において、画像形成装置100の制御部110は、PC161やPC162からのHost Resources MIBのhrPrinterDetectedErrorStateの問合わせのパケットを受信すると、S1102に処理を進める。本実施例では、画像形成装置100がサポートしているSNMPのプロトコルバージョンを「1」と「3」として説明する。
S1102において、制御部110は、上記S1101で受信したパケットの解析を行い、SNMPのプロトコルバージョンが「1」であるか否かを判断する。そして、SNMPのプロトコルバージョンが「1」であると判断した場合(S1102でYesの場合)、制御部110は、S1106に処理を進める。
S1106では、制御部110は図10の802の設定が新仕様を「使う」か否かの判断を行う。そして、802の設定が新仕様を「使う」であると判断した場合(S1106でYesの場合)、制御部110は、S1107に処理を遷移させる。S1107では、制御部110は、新仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1108に処理を遷移させる。
一方、上記S1106において、802の設定が新仕様を「使う」でないと判断した場合(S1106でNoの場合)、制御部110は、S1110に処理を遷移させる。S1110では、制御部110は、802の設定が「個別設定」であるか否かの判断を行う。そして、802の設定が「個別設定」でないと判断した場合(S1110でNoの場合)、即ち、802の設定が「使わない」の場合、制御部110は、S1113に処理を遷移させる。S1113では、制御部110は、旧仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1108に処理を遷移させる。
S1108では、上記S1001で受信したパケットの送り元PCに対して、上記S1107又はS1113で生成したパケットを返信する返信処理を行い、S1109において、一連の処理を完了させる。
また、上記S1110において、802の設定が「個別設定」であると判断した場合(S1110でYesの場合)、制御部110は、S1111に処理を遷移させる。S1111では、制御部110は、SNMPオペレーションが「GetRequest」であるか否かを判断する。そして、SNMPオペレーションが「GetRequest」であると判断した場合(S1111でYesの場合)、制御部110は、S1112に処理を遷移させる。S1112では、制御部110は、図10の808の設定された「GetRequest」の設定値を参照し、新仕様を「使う」設定であるか否かを判断する。そして、「GetRequest」の設定値が新仕様を「使う」設定であると判断した場合(S1112でYesの場合)、制御部110は、S1107に処理を遷移させ、一方、「GetRequest」の設定値が新仕様を「使わない」設定であると判断した場合(S1112でNoの場合)、制御部110は、S1113に処理を遷移させる。なお、S1107以降、S1113以降の処理に関しては上述のものと同一であるので説明を省略する。
また、上記S1111において、SNMPオペレーションが「GetRequest」でないと判断した場合(S1111でNoの場合)、制御部110は、S1114に処理を遷移させる。S1114では、制御部110は、SNMPオペレーションが「GetNextRequest」であるか否かを判断する。そして、SNMPオペレーションが「GetNextRequest」であると判断した場合(S1114でYesの場合)、制御部110は、S1115に処理を遷移させる。S1115では、制御部110は、図10の808の設定された「GetNextRequest」の設定値を参照し、新仕様を「使う」設定であるか否かを判断する。そして、「GetNextRequest」の設定値が新仕様を「使う」設定であると判断した場合(S1115でYesの場合)、制御部110は、S1107に処理を遷移させ、一方、「GetNextRequest」の設定値が新仕様を「使わない」設定であると判断した場合(S1115でNoの場合)、制御部110は、S1113に処理を遷移させる。なお、S1107以降、S1113以降の処理に関しては上述のものと同一であるので説明を省略する。
また、上記S1114において、SNMPオペレーションが「GetNextRequest」でないと判断した場合(S1114でNoの場合)、制御部110は、S1116に処理を遷移させる。S1116では、制御部110は、SNMPv1の既定外オペレーションと判断し、エラーで返信するためのパケットを生成し、上記S1101で受信したパケットの送り元PCに対してエラーの返信処理を行い、S1109で一連の処理を完了させる。
また、上記S1102において、SNMPのプロトコルバージョンが「1」でないと判断した場合(S1102でNoの場合)、制御部110は、S1103に処理を進める。S1103では、制御部110は、SNMPのプロトコルバージョンが「3」であるか否かを判断する。そして、SNMPのプロトコルバージョンが「3」でないと判断した場合(S1103でNoの場合)、制御部110は、S1105に処理を進める。S1105では、サポート外のプロトコルバージョンであるため、制御部110は、上記S1101で受信したパケットを破棄し、処理をS1109に遷移させ、処理終了となる。
一方、SNMPのプロトコルバージョンが「3」であると判断した場合(S1103でYesの場合)、制御部110は、S1104に遷移させる。S1104以降の処理に関しては、図12のS1200以降で説明を行う。
図12のS1200において、SNMPのプロトコルバージョンが「3」である時の判別処理が開始される。S1201において、制御部110は、図10の809の設定が新仕様を「使う」か否かの判断を行う。そして、809の設定が新仕様を「使う」であると判断した場合(S1201でYesの場合)、制御部110は、S1202に処理を遷移させる。S1202では、制御部110は、新仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1203に処理を遷移させる。
一方、上記S1201において、809の設定が新仕様を「使う」でないと判断した場合(S1201でNoの場合)、制御部110は、S1205に処理を遷移させる。S1205は、制御部110は、809の設定が「個別設定」であるか否かの判断を行う。そして、809の設定が「個別設定」でないと判断した場合(S1205でNoの場合)、即ち、809の設定が「使わない」の場合、制御部110は、S1208に処理を遷移させる。S1208では、制御部110は、旧仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1203に処理を遷移させる。
S1203では、上記図11のS1101で受信したパケットの送り元PCに対して、上記S1202又はS1208で生成したパケットを返信する返信処理を行い、S1204において、一連の処理を完了させる。
また、上記S1205において、809の設定が「個別設定」であると判断した場合(S1205でYesの場合)、制御部110は、S1206に処理を遷移させる。S1206では、制御部110は、SNMPオペレーションが「GetRequest」であるか否かを判断する。そして、SNMPオペレーションが「GetRequest」であると判断した場合(S1206でYesの場合)、制御部110は、S1207に処理を遷移させる。S1207では、制御部110は、図10の816の設定された「GetRequest」の設定値を参照し、新仕様を「使う」設定であるか否かを判断する。そして、「GetRequest」の設定値が新仕様を「使う」設定であると判断した場合(S1207でYesの場合)、制御部110は、S1202に処理を遷移させ、一方、「GetRequest」の設定値が新仕様を「使わない」設定であると判断した場合(S1207でNoの場合)、制御部110は、S1208に処理を遷移させる。なお、S1202以降、S1208以降の処理に関しては上述のものと同一であるので説明を省略する。
また、上記S1206において、SNMPオペレーションが「GetRequest」でないと判断した場合(S1206でNoの場合)、制御部110は、S1209に処理を遷移させる。S1209では、制御部110は、SNMPオペレーションが「GetNextRequest」であるか否かを判断する。そして、SNMPオペレーションが「GetNextRequest」であると判断した場合(S1209でYesの場合)、制御部110は、S1210に処理を遷移させる。S1210では、制御部110は、図10の816の「GetNextRequest」の設定値を参照し、新仕様を「使う」設定であるか否かを判断する。そして、「GetNextRequest」の設定値が新仕様を「使う」設定であると判断した場合(S1210でYesの場合)、制御部110は、S1202に処理を遷移させ、一方、「GetNextRequest」の設定値が新仕様を「使わない」設定であると判断した場合(S1210でNoの場合)、制御部110は、S1208に処理を遷移させる。なお、S1202以降、S1208以降の処理に関しては上述のものと同一であるので説明を省略する。
また、上記S1209において、SNMPオペレーションが「GetNextRequest」でないと判断した場合(S1209でNoの場合)、制御部110は、S1211に処理を遷移させる。S1211では、制御部110は、SNMPオペレーションが「GetBulkRequest」であるか否かを判断する。そして、SNMPオペレーションが「GetBulkRequest」であると判断した場合(S1211でYesの場合)、制御部110は、S1212に処理を遷移させる。S1212では、制御部110は、図10の816の「GetBulkRequest」の設定値を参照し、新仕様を「使う」設定であるか否かを判断する。そして、「GetBulkRequest」の設定値が新仕様を「使う」設定であると判断した場合(S1212でYesの場合)、制御部110は、S1202に処理を遷移させ、一方、「GetBulkRequest」の設定値が新仕様を「使わない」設定であると判断した場合(S1212でNoの場合)、制御部110は、S1208に処理を遷移させる。なお、S1202以降、S1208以降の処理に関しては上述のものと同一であるので説明を省略する。
また、上記S1211において、SNMPオペレーションが「GetBulkRequest」でないと判断した場合(S1211でNoの場合)、制御部110は、S1213に処理を遷移させる。S1213では、制御部110は、SNMPv3の既定外オペレーションと判断し、エラーで返信するためのパケットを生成し、上記図11のS1101で受信したパケットの送り元PCに対してエラーの返信処理を行い、S1204で一連の処理を完了させる。
以上示したように、実施例3によれば、SNMPのプロトコルバージョンと、SNMPの仕様として複数存在する情報取得系のオペレーションに応じて、画像形成装置が応答する状態通知の値の新旧仕様を切り替えることが可能となる。よって、旧RFC仕様しか解釈できない監視アプリケーション(ホスト)に対して、新RFC仕様で画像形成装置が返信を行ってしまい誤判定されてしまう状況を回避可能となる。また逆に、新RFCに対応した監視アプリケーションに対して画像形成装置が旧RFCで定義された少ない範囲の状態通知しか行えないといった状況も回避可能となる。よって、監視アプリケーションは、常に適切な状態監視を継続的に行うことができる。
なお、上記実施例1〜3を組み合わせて、機能を構成してもよい。
実施例4では、状態取得に来たIPアドレス毎に状態取得の間隔を、画像形成装置100が正常な場合と正常でない場合とに分けてサンプリングし、該サンプリングした結果から、IPアドレス毎に、返信値を生成する新旧仕様を切り替えるように構成する。以下、サンプリング処理を図13のフローチャートで示し、サンプリング結果を図14で示し、画像形成装置の切り替え処理を図15のフローチャートで示す。
以下、図13を用いて、状態取得を要求した装置のIPアドレス毎に状態取得の間隔を、画像形成装置100が正常な場合と正常でない場合とに分けてサンプリングするための処理について説明する。
図13は、実施例4における画像形成装置100のサンプリング処理を例示するフローチャートである。このフローチャートの処理は、画像形成装置100の制御部110のCPUがROM又はHDD150等に格納されたプログラムを読み出して実行することにより実現されるものである。
S1300において、サンプリングを行うための処理が、画像形成装置100の制御部110で開始される。S1301において、制御部110は、受信したSNMPパケットにhrPrinterDetectedErrorStateが含まれているか否かの判断を行う。そして、hrPrinterDetectedErrorStateが含まれていないと判断した場合(S1301でNoの場合)、制御部110は、S1302に処理を遷移させる。
S1302では、制御部110は、サンプリングの終了条件に達したか否かの判断を行う。サンプリングの終了条件に関しては、例えば、予め定められた回数や、予め定められた時間等を用いるが、これらに限定されるものではない。そして、サンプリングの終了条件に達していないと判断した場合(S1302でNoの場合)、制御部110は、処理をS1301に遷移させ、サンプリングの処理を継続する。
また、上記S1301において、受信したSNMPパケットにhrPrinterDetectedErrorStateが含まれていると判断した場合(S1301でYesの場合)、制御部110は、S1304に処理を遷移させる。S1304では、制御部110は、サンプリング・テーブル上に、上記S1301で受信した状態取得を行っているPC161やPC162などのIPアドレスのエントリが存在しているか否かを判断する。なお、サンプリング・テーブルは、後述する図14に示すようなものであり、例えば、HDD150に格納されているものとする。
そして、上記S1304において、サンプリング・テーブル上にエントリが存在していないと判断した場合(S1304でNoの場合)、制御部110は、S1308に処理を遷移させる。S1308では、制御部110は、サンプリング・テーブル上に新規のエントリを作成し、S1302に処理を遷移させる。
一方、上記S1304において、サンプリング・テーブル上にエントリが存在していると判断した場合(S1304でYesの場合)、制御部110は、S1305に処理を遷移させる。S1305では、制御部110は、上記S1301で受信した状態取得を行っているホストに前回返信を行った時に、正常時のステータスとして返信を行った否かを判断する。なお、正常時のステータスの一例としては、図2に示した「idel」状態が挙げられる。
そして、上記S1305において、前回に正常時ステータスで返信を行ったと判断した場合(S1305でYesの場合)、制御部110は、S1306に処理を遷移させる。S1306では、制御部110は、サンプリング・テーブルに対して正常時のホストからの状態取得のポーリング間隔に関するデータとして、前回の返信日時と今回の問合わせ日時を記録し、S1302に処理を遷移させる。
一方、上記S1305において、前回に正常時ステータスで返信を行っていないと判断した場合(S1305でNoの場合)、制御部110は、S1307に処理を遷移させる。S1307では、制御部110は、サンプリング・テーブルに対してエラー時のホストからの状態取得のポーリング間隔に関するデータとして、前回の返信日時と今回の問合わせ日時を記録し、S1302に処理を遷移させる。
そして、上記S1302において、サンプリングの終了条件に達したと判断した場合(S1302でYesの場合)、制御部110は、S1303に処理を遷移させ、サンプリング処理を終了させる。以上のように、上記状態取得を要求するパケットの送信元の情報処理装置ごとに、正常な状態を示す値を返却してから次の要求を受け取るまでの間隔と、異常な状態を示す値を返却してから次の要求を受け取るまでの間隔とをサンプリングする。なお、サンプリング方法は、同様のサンプリングが可能なものであれば、どのようなものであってもよい。
図14は、サンプリング・テーブルの一例を示す図である。
図14において、1400はエントリを示す。本実施例では画像形成装置100の状態取得を行うPC161やPC162のIPアドレスをエントリのキーとしているが、他にMACアドレスなど他の情報と併せてエントリのキーとしてもよい。
1401は、サンプリング回数を示している。図14では、サンプリング回数が3回の例が示されているが、増減を調整できるようにしてもよい。
1402は、PC161などからの情報取得に対して、制御部110が、前回に正常時ステータス(例えば図2のidel)で返信を行った場合の日時から今回の問合わせまでの間隔を特定するための情報を記録する。図14の例では、前回正常時ステータスを返信した日時と今回の問合わせ日時とを記録する。
1403は、PC161などからの情報取得に対して、制御部110が、前回に正常以外のステータス(例えば図2のnoPaper)で返信を行った場合の日時から今回の問合わせまでの間隔を特定するための情報を記録する。図14の例では、前回正常以外のステータスを返信した日時と今回の問合わせ日時とを記録する。
1404と1405は、エントリのキーとしているIPアドレスの情報であり、情報取得を行ってくるホストの数に対応して増減する。1406は、サンプリングが未だ行われていないことを示している。
次に図15を用いて、図13に示したサンプリング処理の結果に基づく返信値の切り替え処理を説明する。
図15は、実施例4における画像形成装置100の状態値の返信値切り替え処理を例示するフローチャートである。このフローチャートの処理は、画像形成装置100の制御部110のCPUがROM又はHDD150等に格納されたプログラムを読み出して実行することにより実現されるものである。
S1500において、状態取得の返信として用いる値を新旧仕様の何れで返信を行うかの処理が画像形成装置100の制御部110で開始される。S1501において、制御部110は、PC161やPC162からのHost Resources MIBのhrPrinterDetectedErrorStateの問合わせのパケットを受信すると、以下の判断を行う。制御部110は、前回の返信値が、正常時の値で返信を行った時と、正常時以外の値で返信を行った時とで、そのホストが次回に情報取得のパケットを送出してくるまでのポーリング間隔を比較し、両間隔が「ほぼ一致」しているか否かの判断を行う。なお、この判断にあたっては、制御部110は、両間隔が予め定めた誤差範囲で一致しているか否かをもって判断を行うものとする。両間隔が予め定めた誤差範囲で一致している場合(両間隔の差分が予め定めた誤差範囲内の場合)には「ほぼ一致」と判断する。一方、両間隔が予め定めた誤差範囲で一致していない場合(両間隔の差分が予め定めた誤差範囲を超える場合)には「ほぼ一致」でないと判断する。
そして、S1501において、正常時とエラー時とでポーリング間隔がほぼ一致していると判断した場合(S1501でYesの場合)、制御部110は、S1520に処理を遷移させる。S1502では、制御部110は、今回の状態取得を受信したホストがRFC2790の新仕様に対応していないと判断する。これは、前述で説明した、図5の状態と等価であるということを、画像形成装置100の制御部110が判断したということになる。そしてS1503に処理を進める。
S1503では、制御部110は、新旧仕様の優先モードの設定(新旧仕様のどちらを優先するかの指定)があるか否かを判断する。なお、優先モードの設定は、例えば、新仕様を優先、旧仕様を優先、又は、設定しない、のいずれかを設定する画面を操作部140に表示し、操作部140を通じてユーザからの優先モードの設定指示を受け付けるものとする。この設定は、上記S1501及びS1502の処理において、ホスト側が新仕様に対応していない状態であることが類推されるため、図5に示したような状態に陥る可能性があることから、ユーザの指示によって最終的な切り替え判断を行うためである。なお、この設定は、上記S1503の実行時に1回だけ行い、以後、この設定を記憶して用いるものとしてもよいし、上記S1503の実行時に毎回行っても良いし、予め行っておきHDD150に記憶しておく構成でもよい。また、この設定は、ホスト毎に行うものであっても、全ホストに共通であってもよい。
そして、上記S1503において、新旧仕様の優先モードの設定がないと判断した場合(S1503でNoの場合)、制御部110は、S1510に処理を進める。S1510では、制御部110は、旧仕様で返信できるように、新仕様で返信を行うためのフラグ(新仕様フラグ)を落とす(OFFにする)フラグ操作を行ない、S1506に処理を遷移させる。なお、上記新仕様フラグは、制御部110内のRAMに記憶されているものとする。
一方、上記S1503において、新旧仕様の優先モードの設定があると判断した場合(S1503でYesの場合)、制御部110は、S1504に処理を進める。S1504では、制御部110は、優先モードが新仕様優先であるか否かを判断する。そして、優先モードが旧仕様優先させる設定(新仕様を優先しない設定)であると判断した場合(S1504でNoの場合)、制御部110は、処理をS1510に遷移させる。S1510では、制御部110は、上述したように、新仕様フラグを落とし(OFFにし)、S1506に処理を遷移させる。
一方、上記S1504において、優先モードが新仕様優先させる設定であると判断した場合(S1504でYesの場合)、制御部110は、処理をS1505に遷移させる。S1505では、制御部110は、新仕様フラグを立て(ONにし)、S1506に処理を遷移させる。
S1506では、制御部110は、前述の新仕様フラグの値に基づいて新旧仕様の返信値を決定し、処理をS1507に遷移させる。新仕様フラグがONの場合、制御部110は、返信値の仕様を「新仕様」と決定する。一方、新仕様フラグがOFFの場合、制御部110は、返信値の仕様を「旧仕様」と決定する。
S1507では、制御部110は、上記S1506で決定した仕様で画像形成装置100の状態を返信するための返信値とパケットを生成し、S1508に処理を遷移させる。S1508では、制御部110は、上記S1501で受信したパケットの送り元PCに対して、上記S1507で作成したパケットの返信処理を行い、S1509で一連の処理を完了させる。
また、上記S1501において、正常時とエラー時とでポーリング間隔がほぼ一致ではないと判断した場合(S1501でNoの場合)、制御部110は、S1511に処理を進める。S1511では、制御部110は、ホストがRFC2790の新仕様に対応していると判断する。これは、前述で説明した、図4の状態と等価であるということを、画像形成装置100の制御部110が判断したということになる。そしてS1512に処理を進める。S1512では、制御部110は、新仕様フラグを立て(ONにし)、S1506に処理を遷移させる。なお、S1506以降の処理に関しては上述のものと同一であるので説明を省略する。
以上示したように、実施例4によれば、状態取得に来たIPアドレス毎に状態取得の正常時とエラー時の間隔をそれぞれサンプリングし、該サンプリング結果に応じて、画像形成装置が応答する状態通知の値の新旧仕様を切り替えることが可能となる。これにより、旧RFC仕様しか解釈できない監視アプリケーションに対して、新RFC仕様で画像形成装置が返信を行ってしまい誤判定されてしまう状況を回避可能となる。また逆に、新RFCに対応した監視アプリケーションに対して画像形成装置が旧RFCで定義された少ない範囲の状態通知しか行えないといった状況も回避可能となる。よって、監視アプリケーションは、常に適切な状態監視を継続的に行うことができる。
従って、ホストからの要求に応じて画像形成装置が返却する状態を示す値を、ホストにおける状態を示す値の定義に係る仕様に応じて追随させることを可能とし、ホストにおいて画像形成装置の状態が誤判定されてしまう状況の発生を回避するホスト側での状態の誤判定を防止することができる。よって、SNMP/MIBを使用して、ホストから画像形成装置の状態を正しく把握できるようにすることが可能となる。上記各実施例の画像形成装置100は、ホストからの所定の時間間隔(例えば10分間隔)に基づく要求に応じて、上記UI設定画面等での指定に従い決定された仕様に準拠した画像形成装置100の状態を示す値を該ホストに返却する。また、画像形成装置100は、上記返却する値が異常を示すとホストにより判定された場合の、上記所定の時間間隔より短い時間間隔(例えば30秒間)に基づく要求に応じて、上記UI設定画面等での指定に従い決定された仕様に準拠した画像形成装置100の状態を示す値を該ホストに返却する。なお、RFC等の標準規格が更新され新たな仕様が追加された場合、追加された仕様で応答できる画像形成装置とそうでないもの、一方、画像形成装置を管理するホスト側においても同じく、追加された仕様を理解できるものと出来ないものが混在する。このような混在環境においても適切に画像形成装置の状態管理を行えるようにすることができる
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。