以下、添付図面を参照して、本発明にかかる画像形成装置、情報処理方法及びプログラムの最良な実施形態を詳細に説明する。
[第1の実施形態]
図1は、本実施形態にかかる画像形成装置100の構成を示した図である。図1に示したように、画像形成装置100は、サブコントローラ10(コントローラ1)と、メインコントローラ20(コントローラ2)と、エンジンハードウェア30とを備えている。なお、ここでコントローラ1及びコントローラ2は、サブコントローラ10(60)及びメインコントローラ20(70、80)を識別するための名称であって、各実施形態において共通に使用する。
サブコントローラ10は、外部装置500から送信される画像データを印刷可能なデータに変換する機能を有した画像処理専用のコントローラである。また、メインコントローラ20は、コピー機能やスキャナ機能、FAX機能等を実現するための汎用コントローラである。なお、メインコントローラ20とエンジンハードウェア30とは、単独コントローラの画像処理装置としても動作することが可能であり、高速印刷を実現するために、印刷用の画像処理等に特化したサブコントローラ10を追加した構成となっている。そのため、エンジンハードウェア30は接続線N3を介しメインコントローラ20に接続されている。
サブコントローラ10とメインコントローラ20との間は、Ethernet(登録商標)規格に準じた接続線N1により接続されており、TCP/IPによる通信が行われるよう構成されている。なお、コントローラ間の通信が可能であれば、Ethernet(登録商標)以外の通信規格や、TCP/IP以外の通信方式(例えば、専用プロトコル等)を用いることとしてもよい。
また、サブコントローラ10は、WANやLAN等のネットワークN2に接続されており、このネットワークN2に接続された外部装置500との間でTCP/IPによる通信が行われるよう構成されている。なお、接続線N1で用いられるネットワークアドレスと、ネットワークN2で用いられるネットワークアドレスとは異なるものとする。
以下、画像形成装置100を構成する各部について説明する。サブコントローラ10は、後述する制御部101と、記憶部104に記憶されたUNIX(登録商標)等のOS(オペレーティングシステム)及び各種プログラムとの協働により、OS・ミドルウェア部11と、アプリケーション部12とを機能部として備えている。
ここで、OS・ミドルウェア部11は、サブコントローラ10のOSと、当該OSとアプリケーション部12との間の中間的な処理・動作を制御するミドルウェアと、から実現される。OS・ミドルウェア部11は、更にネットワーク制御部111と、テーブル管理部112と、ポート転送部113とを有する。
ネットワーク制御部111は、後述する内部I/F105及び外部I/F106の動作を制御する機能部であって、TCP/IPに準拠した通信プロトコルを用いて、メインコントローラ20や外部装置との間でデータの授受を行う。また、ネットワーク制御部111は、サブコントローラ10及びメインコントローラ20で実行されるアプリケーションに対応したポート(ポート番号)を、ネットワークN2上の外部装置500からアクセス可能に設定(開放)する。
テーブル管理部112は、ネットワーク制御部111により開放されたポートと、このポート宛の通信の転送先(フォーワーディング先)とを規定したポートフォワーディングテーブルを管理する。なお、ポートフォワーディングテーブルは、サブコントローラ10が備える後述する記憶部104等の記憶媒体に予め保持されているものとする。
図2は、テーブル管理部112が管理するポートフォワーディングテーブルの一例を示した図である。同図に示したように、ポートフォワーディングテーブルには、ポート(ポート番号)と、このポート宛の通信の転送先となるコントローラ(コントローラ1、コントローラ2)とが関連付けて登録されている。
ここで、コントローラ1に関連付けられたポートは、何れもサブコントローラ10のアプリケーション部12が提供する各サービスのリッスンポートに対応する。また、コントローラ2に関連付けられたポートは、何れもメインコントローラ20の後述するアプリケーション部22が提供する各サービスのリッスンポートに対応する。このように、ポートフォワーディングテーブルには、サブコントローラ10及びメインコントローラ20の夫々について、各コントローラで実行されるアプリケーションに対応したポートが関連付けて規定されている。
図1に戻り、ポート転送部113は、テーブル管理部112が管理するポートフォワーディングテーブルを参照し、このテーブルに規定されたポートと転送先との関係に基づいて、外部装置500から受け付けた特定のポート宛の通信を転送先のコントローラに転送する。ここで、ポート転送部113は、ネットワークN2でのネットワークアドレスから接続線N1でのネットワークアドレスにネットワークアドレス変換(NAT)を行う。なお、本実施形態では、メインコントローラ20が接続線N1のネットワークで待ち受ける各ポートは、図2で示したメインコントローラ20(コントローラ2)の各ポートと同値であるとするが、異なる値を設定する形態としてもよい。
例えば、外部装置500からLPR(515)ポート宛の通信を受け付けたとすると、ポート転送部113は、図2に示したポートフォワーディングテーブルに基づいて、自己のサブコントローラ10(コントローラ1)を転送先と決定し、この通信をローカルホスト宛(127.0.0.1)に転送する。また、外部装置500からFTP(21又は10021)ポート宛の通信を受け付けたとすると、ポート転送部113は、図2に示したポートフォワーディングテーブルに基づいて、メインコントローラ20を転送先と決定し、接続線N1を介しこの通信をメインコントローラ20のFTP(21又は10021)ポート宛に転送する。
アプリケーション部12は、後述する制御部101と記憶部104に記憶されたプログラムとの協働により実現される機能部であって、サブコントローラ10のOS上で動作する。アプリケーション部12は、プリンタアプリケーション121と、Webアプリケーション122と、SNMPアプリケーション123とを有する。
プリンタアプリケーション121は、印刷対象の画像データに対して印刷用の画像処理(印刷用画像処理)を施すための機能部であって、LPR(515)又はTCP IP raw(9100)による画像形成サービスを外部装置500に提供する。具体的に、プリンタアプリケーション121は、ポート転送部113からLPR(515)又はTCP IP raw(9100)ポート宛の通信が転送されると、この通信に含まれる印刷対象の画像データに印刷用画像処理を施し、接続線N1を介してメインコントローラ20へ送信する。
Webアプリケーション122は、Webサーバ及びWebアプリケーション機能を実現するための機能部であって、IPP(Internet Printing Protocol)による画像形成サービスを外部装置500に提供する。具体的に、Webアプリケーション122は、ポート転送部113からHTTP(80)又はHTTPS(443)ポート宛の印刷要求が転送されると、この通信に含まれる画像データをプリンタアプリケーション121に引き渡すことで、当該プリンタアプリケーション121に印刷用画像処理を実行させる。
SNMPアプリケーション123は、SNMP(Simple Network Management Protocol)エージェント機能を実現するための機能部であって、SNMPサービスを外部装置500に提供する。具体的に、SNMPアプリケーション123は、ポート転送部113からSNMP(161)ポート宛の通信が転送されると、後述するマスタエージェント41が管理するMIB(Management Information Base)を外部装置500に提供する。なお、SNMPアプリケーション123の詳細については後述する。
次に、メインコントローラ20について説明する。メインコントローラ20は、後述する制御部201と記憶部204に記憶されたUNIX(登録商標)等のOS、各種プログラムとの協働により、OS・ミドルウェア部21と、アプリケーション部22とを機能部として備える。
OS・ミドルウェア部21は、メインコントローラ20のOSと、当該OSとアプリケーション部22との間の中間的な処理・動作を制御するためのミドルウェアとにより実現される。OS・ミドルウェア部21は、プリンタアプリケーション121から印刷用画像処理が施された画像データを受け付けると、プリンタエンジン31を制御し、この画像データの印刷を行う。また、OS・ミドルウェア部21は、ネットワーク制御部211を有している。
ネットワーク制御部211は、後述する内部I/F206の動作を制御するための機能部であって、TCP/IPに準拠した通信プロトコルを用いて、サブコントローラ10との間でデータの授受を行う。また、ネットワーク制御部211は、メインコントローラ20で実行されるアプリケーションに対応したポートを、接続線N1を介して接続されたサブコントローラ10からアクセス可能に設定(開放)する。なお、上述したように、ネットワーク制御部211は、図2で示したメインコントローラ20(コントローラ2)の各ポートを開放する。
アプリケーション部22は、後述する制御部201と記憶部204に記憶された各種プログラムとの協働により実現される機能部であって、メインコントローラ20のOS上で動作する。アプリケーション部22は、スキャナアプリケーション221と、コピーアプリケーション222と、FAXアプリケーション223と、Webアプリケーション224と、FTPアプリケーション225と、SSHアプリケーション226と、TELNETアプリケーション227と、SNMPアプリケーション228とを有する。
スキャナアプリケーション221は、スキャナ機能を実現するための機能部である。具体的に、スキャナアプリケーション221は、スキャナエンジン32を制御することで、図示しない原稿載置台に載置された原稿の画像データを取得する。
コピーアプリケーション222は、原稿の複製を生成するコピー機能を実現するための機能部である。具体的に、コピーアプリケーション222は、スキャナエンジン32を制御することで図示しない原稿載置台に載置された原稿の画像データを取得し、この画像データをプリンタエンジン31に出力させることで原稿の複製を生成する。
FAXアプリケーション223は、FAX機能を実現するためのアプリケーションであって、外部装置500に対しFAXサービスを提供する。具体的に、FAXアプリケーション223は、スキャナエンジン32を制御し、図示しない原稿載置台に載置された原稿の画像データを取得すると、この画像データにFAX用の画像処理(FAX用画像処理)を施し、この画像データを指示された宛先にFAXエンジン33を用いてFAX送信する。
また、FAXアプリケーション223は、サブコントローラ10からFAX(49152)ポート宛の通信が転送されると、この通信に含まれた画像データにFAX用画像処理を施した後、この画像データを当該通信により指示された宛先にFAXエンジン33を用いてFAX送信する。
Webアプリケーション224は、Webサーバ及びWebアプリケーション機能を実現するための機能部であって、外部装置500に対しメインコントローラ20に係る各種設定内容を示した機器設定情報の公開を行う情報公開サービスを提供する。具体的に、Webアプリケーション224は、サブコントローラ10からHTTP(80)又はHTTPS(443)ポート宛の通信が転送されると、メインコントローラ20の機器設定情報を参照及び変更可能なGUI(以下、機器設定画面という)を生成し、サブコントローラ10を介して外部装置500に提供する。
本実施形態では、図2のポートフォワーディングテーブルに示したように、HTTP(80)又はHTTPS(443)ポート宛の通信はサブコントローラ10に転送されるよう規定されている。そのため、Webアプリケーション224への通信は転送されない構成となっている。なお、メインコントローラ20の機器設定画面を取得するには、図2のポートフォワーディングテーブルに示したHTTP(80)及びHTTPS(443)の転送先をコントローラ2に変更する必要がある。
FTPアプリケーション225は、FTP(File Transfer Protocol)サーバ機能を実現するための機能部であって、外部装置500に対しFTPサービスを提供する。具体的に、FTPアプリケーション225は、サブコントローラ10からFTP(21又は10021)ポート宛の通信が転送されると、メインコントローラ20に対するファイル転送のためのサービスを、サブコントローラ10を介して外部装置500に提供する。
SSHアプリケーション226は、SSH(Secure SHell)サーバ機能を実現するための機能部であって、外部装置500に対しSSHサービスを提供する。具体的に、SSHアプリケーション226は、サブコントローラ10からSSH/SFTP(22)ポート宛の通信が転送されると、メインコントローラ20に対する遠隔操作やファイル転送のためのサービスを、サブコントローラ10を介して外部装置500に提供する。
TELNETアプリケーション227は、TELNETサーバ機能を実現するための機能部であって、外部装置500に対しTELNETサービスを提供する。具体的に、TELNETアプリケーション227は、サブコントローラ10からTELNET(23)ポート宛の通信が転送されると、サブコントローラ10を介して、メインコントローラ20を遠隔操作するためのサービスを外部装置に提供する。
SNMPアプリケーション228は、SNMPエージェント機能を実現するための機能部であって、外部装置500に対しSNMPサービスを提供する。また、SNMPアプリケーション228は、サブコントローラ10のSNMPアプリケーション123と協働することで、メインコントローラ20及び当該メインコントローラ20の制御下におかれるエンジンハードウェア30についてのMIBの管理を、サブコントローラ10のSNMPアプリケーション123に移管する。なお、SNMPアプリケーション228の詳細については後述する。
エンジンハードウェア30は、メインコントローラ20に接続可能なプリンタエンジンやスキャナエンジン等である。本実施形態では、エンジンハードウェア30として、プリンタエンジン31と、スキャナエンジン32と、FAXエンジン33とを備えるものとする。
以下、図3及び図4を参照し、画像形成装置100の動作について説明する。ここで、図3は、外部装置500からサブコントローラ10のLPR又はTCP IP rawポート宛にアクセスが行われた場合の処理の流れを示したシーケンス図である。
まず、外部装置500からサブコントローラ10のLPR又はTCP IP rawポート宛にアクセスが行われると(ステップS11)、ポート転送部113は、ポートフォワーディングテーブルに基づき、この通信を自己のサブコントローラ10(ローカルホスト)に転送する(ステップS12)。
プリンタアプリケーション121は、ポート転送部113から通信の転送を受け付けると、この通信に含まれた印刷対象の画像データに印刷用画像処理を施した後(ステップS13)、接続線N1を介してメインコントローラ20へ送信する(ステップS14)。
一方、メインコントローラ20では、サブコントローラ10(プリンタアプリケーション121)から送信された通信が受信されると、OS・ミドルウェア部21は、この通信に含まれた画像データを、印刷を指示する指示情報とともにプリンタエンジン31に出力することで、当該画像データの印刷をプリンタエンジン31に実行させ(ステップS15)、処理を終了する。
なお、図3の例では、外部装置500からLPR又はTCP IP rawポート宛にアクセスが行われた場合について説明したが、HTTP(80)、HTTPS(443)又はSNMP(161)ポート宛のアクセスを受け付けた場合においても、図2に示したポートフォワーディングテーブルに基づき、サブコントローラ10(ローカルホスト)に転送されることになる。
図4は、外部装置500からサブコントローラ10のFAX(49152)ポート宛にアクセスが行われた場合の処理の流れを示したシーケンス図である。
まず、外部装置500からサブコントローラ10のFAXポート宛にアクセスが行われると(ステップS21)、ポート転送部113は、ポートフォワーディングテーブルに基づき、この通信を接続線N1を介してメインコントローラ20のFAX(49152)ポート宛に転送する(ステップS22)。
一方、メインコントローラ20では、サブコントローラ10(ポート転送部113)から送信された通信が受信されると、FAXアプリケーション223は、この通信に含まれた画像データにFAX用画像処理を施し(ステップS23)、この通信で指定された送信先を示す送信先情報とともにFAXエンジン33に出力する(ステップS24)。FAXエンジン33は、FAXアプリケーション223の指示に従い、画像データを指定された送信先に画像データをFAX送信し(ステップS25)、処理を終了する。
なお、図4の例では、外部装置500からFAX宛にアクセスが行われた場合について説明したが、FTP(21、10021)やSSH/SFTP(22)、TELNET(23)、HTTP(8080)、HTTPS(8431)ポート宛にアクセスが行われた場合においても、メインコントローラ20に転送される。
このように、本実施形態の画像形成装置100では、サブコントローラ10及びメインコントローラ20が提供するサービスに対応したポート単位で、外部装置500から要求される処理を各コントローラに振り分けることができるため、各コントローラで実行される処理の振り分けを細やかに制御することができる。また、サブコントローラ10のみをネットワークN2に接続するだけで、両コントローラが提供する各サービスを外部装置500に提供することができるため、各コントローラで実行される処理の振り分けを、ネットワーク構成に応じて柔軟に対応することができる。
次に、図5を参照し、サブコントローラ10及びメインコントローラ20における、SNMPアプリケーション間の関係について説明する。ここで、図5は、SNMPアプリケーション123及びSNMPアプリケーション228による、SNMPエージェント間の関係を模式的に示した図である。なお、図5では、外部装置500がSNMPマネージャであるとする。
サブコントローラ10のSNMPアプリケーション123は、その機能に応じて、マスタエージェント41とサブエージェント42とに区分けされる。また、メインコントローラ20のSNMPアプリケーション228も同様に、その機能に応じてマスタエージェント51とサブエージェント52とに区分けされる。
サブコントローラ10及びメインコントローラ20の内部において、マスタエージェントとサブエージェントとは、SNMPのAgentXプロトコルで通信を行う。また、サブコントローラ10のマスタエージェント41と、メインコントローラ20のサブエージェント52とは、接続線N1を介してSNMPのAgentXプロトコルにより通信することが可能となっている。
マスタエージェント41、51は、サブエージェント42、52により収集されたMIBとよばれる自己のコントローラの状態を示した状態情報を、夫々MIB管理ファイル411、511に登録して管理し、外部装置500(SNMPマネージャ)からの要求に応じて提供する。図5に示したように、MIB管理ファイル411、511には、サブエージェントで収集されたMIBと、その優先順位とが関連付けて登録されている。なお、本実施形態ではマスタエージェント51のMIB管理ファイル511に登録されるMIBは空(null)となっている。
サブエージェント42は、自己のコントローラ及び自己のコントローラの制御下に置かれる各装置からMIBを収集し、AgentXプロトコルを用いてマスタエージェント41のMIB管理ファイル411に登録する。具体的に、サブエージェント42は、サブコントローラ10に関するMIBとして、プリンタMIB1を要素とするプリンタMIB421を取得し、AgentXプロトコルを用いてMIB管理ファイル411に登録する。
一方、サブエージェント52は、メインコントローラ20のMIBとして、プライベートMIB1、MIB2を要素するプライベートMIB521と、プリンタエンジン31に係るプリンタMIB1’、MIB2を要素とするプリンタMIB522とを収集する。ここで、プライベートMIB521は、メインコントローラ20自体を識別するための個体識別情報(例えば、後述する外部I/F208のMACアドレスやシリアル番号)や、仕様や動作等の状態を表した情報を含んでいる。即ち、このプライベートMIB521は、管理対象(画像形成装置100)を一意に特定するための情報として用いることが可能である。
なお、図5の例では、説明の便宜上プリンタエンジン31に係るプリンタMIB522のみを例示したが、これに限らず、スキャナエンジン32やFAXエンジン33等についても同様にMIBが取得されるものとする。
また、サブエージェント52は、後述する内部I/F206のMIBを参照、又は、接続線N1を介してサブコントローラ10のマスタエージェント41と通信することで、サブコントローラ10との接続状態を検知し、接続されていると判定するとサブコントローラ10側のマスタエージェント41が管理するMIB管理ファイル411に、プライベートMIB521とプリンタMIB522とを登録する。
AgentXプロトコルを用いたMIB登録時の優先順位は、1から255で指定することが可能であり、値が小さくなるほど優先順位が高くなっている。この優先順位は任意の値を設定できるものとするが、本実施形態では、サブエージェント52からマスタエージェント41への登録時に、デフォルト値“127”が優先順位として指定されるものとする。
ここで、図5を参照すると、MIB管理ファイル411には、デフォルトの優先順位127でプリンタMIB1’、2及びプライベートMIB1、2が登録されているが、サブエージェント42が優先順位1でプリンタMIB1を登録している。そのため、優先順位1のプリンタMIB1が有線され、外部装置500(SNMPマネージャ)は、マスタエージェント41からプリンタMIB1、プリンタMIB2、プライベートMIB1及びプライベートMIB2を取得することになる。なお、サブコントローラ10側のプライベートMIB1の値を128以上とすることで、メインコントローラ20側のプリンタMIB1’を優先的に提供することが可能であるため、使用環境に応じて適宜調整することが好ましい。
このように、本実施形態の画像形成装置100では、サブコントローラ10のみがネットワークN2に接続された構成であっても、メインコントローラ20側のサブエージェント52が収集したMIBを、サブコントローラ10側のマスタエージェント41の管理下におくことで、メインコントローラ20に係るMIBをサブコントローラ10のマスタエージェント41から提供することができる。
なお、本実施形態では、サブコントローラ10にのみネットワークN2が接続される形態としたが、メインコントローラ20にのみネットワークN2が接続される形態としてもよい。また、この場合、メインコントローラ20側で転送制御を行うことが好ましく、具体的には、メインコントローラ20のミドルウェア部21が、上述したネットワーク制御部111、テーブル管理部112及びポート転送部113を備えることで、上記と同様の効果を奏することができる。
[第2の実施形態]
次に、第2の実施形態について説明する。上述した第1の実施形態では、画像処理装置が備えるコントローラ1及びコントローラ2のうち、コントローラ1側のみをネットワークN2に接続する形態とした。しかしながら、コントローラ2が備える機能部(アプリケーション)は独立的に利用することが可能であるため、コントローラ2に対し直接アクセスすることが可能な構成とすることが好ましい。そこで、本実施形態では、コントローラ1及び2の両者をネットワークN2に接続し、各コントローラに対し外部装置500から直接アクセスすることを可能にした形態について説明する。なお、第1の実施形態と同様の構成については、同じ符号を用い説明は省略する。
図6は、第2の実施形態に係る画像形成装置200の構成を示した図である。図6に示したように、画像形成装置200は、サブコントローラ60(コントローラ1)と、メインコントローラ70(コントローラ2)と、エンジンハードウェア30とを備えている。
サブコントローラ60は、外部装置500から送信された画像データを印刷可能なデータに変換する機能を有した画像処理専用のコントローラであって、後述する制御部101と記憶部104に記憶されたOS、各種プログラムとの協働により、OS・ミドルウェア部13と、アプリケーション部12とを機能部として備える。また、メインコントローラ70は汎用コントローラであって、後述する制御部201と記憶部204に記憶されたOS、各種プログラムとの協働により、OS・ミドルウェア部23と、アプリケーション部24とを機能部として備える。
サブコントローラ60側のOS・ミドルウェア部13は、ネットワーク制御部111と、テーブル管理部131と、ポート転送部113とを有している。
一方、メインコントローラ70側のOS・ミドルウェア部23は、ネットワーク制御部211と、ネットワーク構成検知部231とを有している。また、アプリケーション部24は、上述したSNMPアプリケーション228に代えて、SNMPアプリケーション241を有している。
ネットワーク構成検知部231は、メインコントローラ70が具備する後述する内部I/F206及び外部I/F208の状態を検知する機能部である。具体的に、ネットワーク構成検知部231は、ネットワークN2と接続する外部I/F208のリンクのUP/DOWNを検知し、この検知結果を示す検知情報をサブコントローラ60のテーブル管理部131に通知する。なお、この通知はサブコントローラ60とメインコントローラ70とを接続する接続線N1を介して行われるものとする。また、ネットワーク構成検知部231は、接続線N1と接続する内部I/F206のリンクのUP/DOWNを検知する。
一方、サブコントローラ60のテーブル管理部131は、メインコントローラ70のネットワーク構成検知部231から通知される検知情報に応じて、ポート転送部113が参照するポートフォワーディングテーブルを切り替える。
具体的に、テーブル管理部131は、ネットワーク構成検知部231から通知される検知情報がリンクUPを示す場合には、図7に示したポートフォワーディングテーブルを、ポート転送部113の参照先に設定する。
ここで、図7は、メインコントローラ70の外部I/F208がリンクUPの場合に有効化されるポートフォワーディングテーブルの一例を示した図である。同図に示したように、サブコントローラ60(コントローラ1)のアプリケーション部12で実行される各アプリケーションに対応するポート(LPR、TCP IP raw、SNMP)のみが有効化され、自己のサブコントローラ60に転送先が設定されている。また、メインコントローラ70(コントローラ2)のアプリケーション部24で実行される各アプリケーションに係るポートについては、その転送先が無効となるよう設定されている。
メインコントローラ70の外部I/F208がリンクUPの場合、メインコントローラ70は外部装置500から直接アクセスを受け付け、アクセスされたポートに応じて単独で処理を行うことが可能である。この場合、サブコントローラ60側でメインコントローラ70に対する処理要求を転送する必要はない。そのため、図7に示したように、テーブル管理部131は、サブコントローラ60で実行する必要のある通信のみを、ローカルホストに転送するよう規定されたポートフォワーディングテーブルを、ポート転送部113の参照先に設定する。なお、フォワーディング先が“エラー表示”のものについては、このポート宛にアクセスした外部装置500に対し、エラーの旨の情報を返すことを意味している。なお、メインコントローラ70に対し、HTTP(80)又はHTTPS(443)ポート宛の通信が外部装置500から行われた場合には、Webアプリケーション224により、メインコントローラ20についての機器設定画面が外部装置500に提供される。
また、テーブル管理部131は、ネットワーク構成検知部231から通知される検知情報がリンクDOWNを示す場合には、図2で説明したポートフォワーディングテーブルを、ポート転送部113の参照先に設定する。これにより、メインコントローラ70とネットワークN2とが切断された場合であっても、メインコントローラ70宛の処理要求を、サブコントローラ60を介して通知することができる。
なお、実施形態において、メインコントローラ70のネットワーク制御部211は、後述する内部I/F206及び外部I/F208が接続されるネットワークに対し、アプリケーション部22の各アプリケーションが提供するサービスに対応したポートを、アクセス可能に設定(開放)する。また、アプリケーション部22の各アプリケーションは、サブコントローラ60を介したアクセスした外部装置500に加え、後述する外部I/F208に直接アクセスした外部装置500に対しても所定のサービスを提供する。
以下、図8を参照して、テーブル管理部131及びネットワーク構成検知部231の動作について説明する。ここで、図8は、テーブル管理部131及びネットワーク構成検知部231の動作を説明するためのフローチャートである。
まず、メインコントローラ70のネットワーク構成検知部231は、ネットワークN2と接続する後述する外部I/F208のリンク状態を常時又は所定の期間毎に監視する(ステップS31;No)。ここで、ネットワーク構成検知部231は、外部I/F208のリンクUP又はリンクDOWNを検知すると(ステップS31;Yes)、このリンク状態を表した検知情報をテーブル管理部131に送信し(ステップS32)、ステップS31に再び戻る。
一方、サブコントローラ60のテーブル管理部131は、ネットワーク構成検知部231から検知情報を受け付けると、この検知情報がリンクUPを示すものか否かを判定する(ステップS41)。ここで、リンクUPと判定すると(ステップS41;Yes)、テーブル管理部131は、ポート転送部113の参照先を、自己のサブコントローラ60への転送のみを有効化したポートフォワーディングテーブル(図7参照)を、ポート転送部113の参照先に設定し(ステップS42)、ステップS41に再び戻る。
また、ステップS41において、リンクDOWNと判定すると(ステップS41;No)、テーブル管理部131は、ポート転送部113の参照先を、サブコントローラ60及びメインコントローラ70の両者への転送を有効化したポートフォワーディングテーブル(図2参照)を、ポート転送部113の参照先に設定し(ステップS43)、ステップS41に再び戻る。
このように、本実施形態の画像形成装置100によれば、メインコントローラ70のネットワークN2への接続状態に応じて、メインコントローラ70への転送の有効/無効を制御するポートフォワーディングテーブルを切り替えることができる。これにより、外部装置500からのアクセスを受け付け、処理を行うコントローラを自動的に切り替えることができるため、利便性を向上させることが可能となる。
また、サブコントローラ60及びメインコントローラ70の両方がネットワークN2に接続された場合には、各々が独立して外部装置500と通信可能とし、メインコントローラ70がネットワークN2から切断された場合には、サブコントローラ60を介してメインコントローラ70に外部装置500からの通信を転送できるため、各コントローラで実行される処理の振り分けを、ネットワーク構成に応じて柔軟に対応することができる。また、メインコントローラ70に対する通信の冗長性を向上させることができる。
次に、サブコントローラ60及びメインコントローラ70における、SNMPアプリケーション間の関係について説明する。ここで、図9は、SNMPアプリケーション123及びSNMPアプリケーション241による、SNMPエージェント間の関係を模式的に示した図である。なお、図9では、外部装置500がSNMPマネージャであるとする。
図9に示したように、サブコントローラ60のSNMPアプリケーション123は、その機能に応じて、マスタエージェント41とサブエージェント42とに区分けされる。また、メインコントローラ70のSNMPアプリケーション241も、その機能に応じてマスタエージェント51とサブエージェント53とに区分けされる。
ここで、メインコントローラ70側のサブエージェント53は、上述したサブエージェント52と同様、メインコントローラ70のMIBとして、プライベートMIB1、MIB2を要素するプライベートMIB521と、プリンタエンジン31に係るプリンタMIB1’、MIB2を要素とするプリンタMIB522とを収集する。
また、サブエージェント53は、ネットワーク構成検知部231により検知される内部I/F206及び外部I/F208のリンク状態に応じて、ネットワークN2に接続されたコントローラ側のマスタエージェントに、メインコントローラ70に関するMIBの一部又は全てを登録する。
具体的に、サブエージェント53は、ネットワーク構成検知部231による検知結果が内部I/F206のみリンクUPの場合、図5に示したように、メインコントローラ70に係る全てのMIB(プライベートMIB1、2、プリンタMIB1’、2)をマスタエージェント41のMIB管理ファイル411に登録する。
これにより、画像形成装置200(サブコントローラ60+メインコントローラ70)が有するMIBを、マスタエージェント41から外部装置に提供することが可能となる。なお、この場合、MIB管理ファイル511にメインコントローラ70に係るMIBが登録されていた場合には、図2に示したようにMIB管理ファイル511から削除してもよい。
また、サブエージェント53は、ネットワーク構成検知部231による検知結果が外部I/F208のみリンクUPの場合、図9に示したように、メインコントローラ70に係る全てのMIB(プライベートMIB1、2、プリンタMIB1’、2)をMIB管理ファイル511に登録する。
これにより、メインコントローラ70が有するMIBをマスタエージェント51から直接外部装置に提供することが可能となる。
また、サブエージェント53は、ネットワーク構成検知部231による検知結果が内部I/F206及び外部I/F208がリンクUPの場合、マスタエージェント51のMIB管理ファイル511にプリンタMIB522を登録し、マスタエージェント41のMIB管理ファイル411にプライベートMIB521及びプリンタMIB522を登録する。
これにより、メインコントローラ70側で実装されたプリンタMIB522をサブコントローラ60側で利用することが可能となり、サブコントローラ60側でプリンタMIB522を実装する工数を削減することができる。また、個体識別情報を含んだプライベートMIB521を、マスタエージェント51から直接外部装置に提供することが可能となる。
また、サブエージェント53は、ネットワーク構成検知部231による検知結果が内部I/F206のみリンクUPの状態から、内部I/F206及び外部I/F208がリンクUPの状態に切り替わった場合、マスタエージェント51のMIB管理ファイル511にプライベートMIB521及びプリンタMIB522を登録し、マスタエージェント41のMIB管理ファイル411からプライベートMIB521を削除する。
また、サブエージェント53は、ネットワーク構成検知部231による検知結果が内部I/F206及び外部I/F208がリンクUPの状態から、内部I/F206のみリンクUPの状態に切り替わった場合、マスタエージェント51のMIB管理ファイル511に登録されたプライベートMIB521及びプリンタMIB522を削除し、マスタエージェント41のMIB管理ファイル411にプライベートMIB521及びプリンタMIB522を登録する。
これにより、サブコントローラ60とメインコントローラ70との接続形態が動的に変わっても、何れかのマスタエージェントからプライベートMIB521を提供することができる。
なお、外部I/F208及び内部I/F206が共にリンクDOWNの場合、メインコントローラ20はスタンドアロン構成となるが、本実施形態では、リンクDOWN直前までのMIB管理ファイル511の状態が維持されるものとする。
以下、図10を参照して、メインコントローラ70のSNMPアプリケーション241の動作について説明する。ここで、図10は、サブエージェント53の動作を説明するためのフローチャートである。
サブエージェント53は、ネットワーク構成検知部231での検知結果を監視し(ステップS51;No)、外部I/F208及び/又は内部I/F206のリンク状態に変化が生じたと判定すると(ステップS51;Yes)、この検知結果が外部I/F208のリンクUPを示すものか否かを判定する(ステップS52)。
ステップS52において、外部I/F208のリンクDOWNと判定した場合(ステップS52;No)、サブエージェント53は、内部I/F206のリンク状態がリンクUPを示すものか否かを判定する(ステップS53)。ここで、内部I/F206のリンクDOWNと判定した場合(ステップS53;No)、ステップS51の処理に再び戻る。
一方、ステップS53において、内部I/F206のリンクUPと判定した場合(ステップS53;Yes)、サブエージェント53は、メインコントローラ70に係る全てのMIBをサブコントローラ60のMIB管理ファイル411に登録し(ステップS54)、ステップS51の処理に再び戻る。なお、MIB管理ファイル511にプライベートMIB521及びプリンタMIB522が登録されていた場合には、これらのMIBをMIB管理ファイル511から削除する。
また、ステップS52において、外部I/F208のリンクUPと判定した場合(ステップS52;Yes)、サブエージェント53は、さらに内部I/F206のリンク状態がリンクUPを示すものか否かを判定する(ステップS55)。ここで、内部I/F206のリンクDOWNと判定した場合(ステップS55;No)、サブエージェント53は、メインコントローラ70に係る全てのMIBをMIB管理ファイル511に登録した後(ステップS56)、ステップS51の処理に再び戻る。
一方、ステップS55において、内部I/F206のリンクUPと判定した場合(ステップS55;Yes)、サブエージェント53は、マスタエージェント51のMIB管理ファイル511にプリンタMIB522を登録するとともに、マスタエージェント41のMIB管理ファイル411にプライベートMIB521及びプリンタMIB522を登録し(ステップS57)、ステップS51の処理に再び戻る。なお、マスタエージェント41のMIB管理ファイル411にプライベートMIB521が登録されていた場合には、このプライベートMIB521をMIB管理ファイル411から削除する。
以上の処理により、メインコントローラ20側の外部I/F208がネットワークN2から切断された場合であっても、外部装置はメインコントローラ20のプライベートMIBをサブコントローラ10側のマスタエージェント41から取得することが可能となる。また、サブコントローラ10とのリンクが切れた場合であっても、メインコントローラ20側の外部I/F208がネットワークN2に接続されている場合には、外部装置はメインコントローラ20のプライベートMIBを当該メインコントローラ20から取得することができる。
このように、本実施形態によれば、メインコントローラ70のネットワークN2への接続状態に応じて、メインコントローラ70に係るMIBの一部又は全てを、ネットワークN2に接続されたコントローラ側のマスタエージェントに登録することができるため、MIBの提供方法をネットワーク構成に応じて柔軟に切り替えることができる。
なお、本実施形態では、サブエージェント53はネットワーク構成検知部231を介して外部I/F208及び内部I/F206の状態変化を検知する形態としたが、これに限らず、サブエージェント53が収集する外部I/F208及び内部I/F206に関するMIBからリンクUP/DOWNの状態変化を検知する形態としてもよい。
また、本実施形態では、メインコントローラ70側で外部I/F208の状態変化を検知し、サブコントローラ60側で転送制御を行う形態としたが、サブコントローラ60側で外部I/F206の状態変化を検知し、メインコントローラ70で転送制御を行う形態としてもよい。具体的には、サブコントローラ60のOS・ミドルウェア部13がネットワーク構成検知部231を備え、メインコントローラ70のOS・ミドルウェア部23がテーブル管理部131及びポート転送部113を備えることで、上記と同様の効果を奏することができる。
[第3の実施形態]
次に、第3の実施形態について説明する。第1、第2の実施形態で説明したように、一の画像形成装置が複数のコントローラで構成される場合、コントローラ毎に設定の変更を行う必要がある。この場合、操作が煩雑となるため利便性に欠けるという問題がある。そこで、本実施形態では、一方のコントローラにアクセスすることで、他方のコントローラの機能設定も行うことを可能とした形態について説明する。なお、上述した第1、第2の実施形態と同様の構成要素については、同じ符号を付与し説明を省略する。
図11は、第3の実施形態に係る画像形成装置300の構成を示した図である。図11に示したように、画像形成装置300は、サブコントローラ60(コントローラ1)と、メインコントローラ80(コントローラ2)と、エンジンハードウェア30とを備えている。
メインコントローラ80は、メインコントローラ20と同様の汎用コントローラであって、後述する制御部201と記憶部204に記憶されたOS、各種プログラムとの協働により、OS・ミドルウェア部23と、アプリケーション部25とを機能部として備える。
ここで、アプリケーション部25は、上述したWebアプリケーション224に代えてWebアプリケーション251を有している。Webアプリケーション251は、上述したWebアプリケーション224の機能に加え、画像形成装置300の各設定を示した機器設定情報と、その取得場所とを関連付けた情報テーブルを管理する情報テーブル管理部2511と、情報テーブルに基づいて機器設定情報の取得と更新とを行う機器設定管理部2512とを有している。
図12は、情報テーブル管理部2511が管理する情報テーブルの一例を示した図である。同図に示したように、情報テーブルには、画像形成装置300に関する各種の機器設定情報と、その取得場所としてコントローラ名(コントローラ1又はコントローラ2)とが関連付けて登録されている。なお、情報テーブルは、後述する記憶部204に予め記憶されているものとする。
機器設定管理部2512は、後述する外部I/F208又は内部I/F206を介し、外部装置500から機器設定情報を要求する通信、つまりHTTP(80)又はHTTPS(443)ポート宛の通信を受け付けると、情報テーブル管理部2511が管理する情報テーブルに基づいて、各取得場所から機器設定情報を取得する。
例えば、機器設定管理部2512は、画像形成装置300の印刷カウンタを、サブコントローラ60(コントローラ1)から取得する。また、機器設定管理部2512は、アドレス帳をメインコントローラ80(コントローラ2)から取得する。なお、機器設定情報を取得・変更方法は特に問わないものとする。例えば、SNMPアプリケーション123及びSNMPアプリケーション228と協働し、マスタエージェントから得られるMIB(状態情報)を機器設定情報とする形態としてもよい。また、機器設定情報の変更に関しても、SNMPアプリケーション123及びSNMPアプリケーション228と協働し、マスタエージェントに設定の変更を指示(例えば、SetRequest)することで、実現することができる。
Webアプリケーション251は、機器設定管理部2512により取得された機器設定情報に基づき、各機器設定情報の参照・設定変更を行うことが可能な機器設定画面を生成し、アクセス元の外部装置500に提供する。
なお、テーブル管理部131が管理するポートフォワーディングテーブルは、メインコントローラ80の外部I/F208の状態に応じて、図7に示したテーブル(外部I/F208のリンクUP時)と、図13に示したテーブル(外部I/F208のリンクDOWN時)とが切り替えられるものとする。
ここで、図13は、テーブル管理部131が管理するポートフォワーディングテーブルの一例を示した図である。同図において、HTTP(80)及びHTTPS(443)ポート宛の通信が、メインコントローラ80へ転送されるよう設定されている。つまり、外部I/F208のリンクUP時に、サブコントローラ60へHTTP(80)又はHTTPS(443)ポート宛のアクセスが行われると、Webアプリケーション122によりIPPによる画像形成サービスが提供される。また、外部I/F208のリンクDOWN時に、サブコントローラ60へHTTP(80)又はHTTPS(443)ポート宛のアクセスが行われると、この通信はメインコントローラ80へ転送される。
以下、図14を参照して、画像形成装置300の動作について説明する。ここで、図14は、外部装置500から機器設定情報の要求を指示するHTTP(80)又はHTTPS(443)ポート宛のアクセスが行われた場合の処理の流れを示したシーケンス図である。
まず、外部装置500から画像形成装置300の機器設定情報の要求を指示するHTTP(80)又はHTTPS(443)ポート宛のパケットが送信される。このとき、メインコントローラ80の外部I/F208がリンクDOWNであったとすると、外部装置500からの通信はテーブル管理部131及びポート転送部113の制御により、サブコントローラ60を経由してメインコントローラ80のWebアプリケーション251に到達する(ステップS61、S62)。また、メインコントローラ80の外部I/F208がリンクUPである場合には、外部装置500はメインコントローラ80に直接アクセスすることが可能であるため、Webアプリケーション251にHTTP(80)又はHTTPS(443)ポート宛のパケットが到達する(ステップS63)。
メインコントローラ80では、HTTP(80)又はHTTPS(443)ポート宛の通信が受信されると、Webアプリケーション251は、機器設定画面の生成を開始し、機器設定情報の取得を機器設定管理部2512に指示する(ステップS64)。なお、ここで、取得の対象となる機器設定情報を指定してもよい。
機器設定管理部2512では、情報テーブル管理部2511が管理する情報テーブルに基づいて、各種の機器設定情報を順次取得する。ここで、機器設定情報の取得場所がサブコントローラ60である場合、機器設定管理部2512は、内部I/F206を介してSNMPアプリケーション123と協働することで、サブコントローラ60から該当する機器設定情報を取得する(ステップS65)。また、機器設定情報の取得場所がメインコントローラ80である場合、機器設定管理部2512は、自己のコントローラから機器設定情報を取得する(ステップS66)。なお、ステップS65、S66の処理は、全ての機器設定情報が取得されるまで繰り返し実行される。
続いて、Webアプリケーション251は、ステップS65、S66で取得された機器設定情報を用いて、機器設定画面を生成すると(ステップS67)、サブコントローラ10を介して外部装置に提供し、本処理を終了する。ここで、メインコントローラ80の外部I/F208がリンクDOWNの場合には、サブコントローラ60を経由して機器設定画面が提供されるものとする(ステップS68、S69)。また、メインコントローラ80の外部I/F208がリンクUPである場合には、メインコントローラ80から外部装置500へ直接機器設定画面が提供されるものとする(ステップS70)。
以上のように、本実施形態によれば、外部装置を操作するユーザは、メインコントローラ80にアクセスすることで、サブコントローラ60及びメインコントローラ80の機器設定情報を取得することができるため、ユーザの利便性を向上させることができる。また、メインコントローラ80がネットワークN2から切断されている場合においても、サブコントローラ60にアクセスすることで、サブコントローラ60及びメインコントローラ80の機器設定情報を取得することができるため、ユーザの利便性を向上させることができる。
なお、本実施形態では、メインコントローラ80側で機器設定画面を生成する形態としたが、これに限らず、サブコントローラ60側で機器設定画面を生成する形態としてもよい。具体的には、サブコントローラ60がWebアプリケーション122に代えてWebアプリケーション251を備えることで、外部装置500からサブコントローラ60のHTTP(80)又はHTTPS(443)ポート宛にアクセスすることで、サブコントローラ60及びメインコントローラ80の機器設定情報を取得することができる。なお、メインコントローラ80のネットワークN2への切断時には、図2に示したポートフォワーディングテーブルがポート転送部113の参照先となるよう切り替えることが好ましい。
図15は、上述した各実施形態に係る画像形成装置(画像形成装置100、200、300)のハードウェア構成の一例を示したブロック図である。同図に示したように、画像形成装置は、コントローラ1(サブコントローラ10、60)と、コントローラ2(メインコントローラ20、70、80)と、エンジンハードウェア30とを備えている。
図15に示したように、コントローラ1は、CPUやGPU等で構成される制御部101、制御部101とシステムバスで接続されるROM102、RAM103、OSや各種プログラムを記憶するHDD等の記憶部104、接続線N1を介してコントローラ2と通信するための内部I/F105、ネットワークN2に接続された外部装置500と通信するための外部I/F106等を有している。
ここで、制御部101は、RAM103の所定領域を作業領域として、ROM102や記憶部104に予め記憶された各種プログラムとの協働により各種処理を実行し、サブコントローラ10を構成する各部の動作を統括的に制御する。また、制御部101は、ROM102や記憶部104に予め記憶された各種プログラムとの協働により、上述した各機能部を実現する。
コントローラ2は、CPUやGPU等の制御部201、制御部201とシステムバスで接続されるROM202、RAM203、OSや各種プログラムを記憶するHDD等の記憶部204、接続線N3を介してエンジンハードウェア30と接続するためのエンジンI/F205、接続線N1を介してサブコントローラ10と通信するための内部I/F206、コントローラ2を操作するための操作パネル207、ネットワークN2に接続された外部装置500と通信するための外部I/F208等を有している。
ここで、制御部201は、RAM203の所定領域を作業領域として、ROM202や記憶部204に予め記憶された各種プログラムとの協働により各種処理を実行し、メインコントローラ20を構成する各部の動作を統括的に制御する。また、制御部201は、ROM202や記憶部204に予め記憶された各種プログラムとの協働により、上述した各機能部を実現する。なお、上述した第1の実施形態に係る画像形成装置100は、外部I/F208が存在しない又はリンクDOWNの状態に相当する。
以上、本発明に係る実施形態について説明したが、これに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加等が可能である。
例えば、上記実施形態の処理にかかるプログラムを、コンピュータで読み取り可能な記憶媒体として提供することも可能である。記憶媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリ等、プログラムを記憶でき、且つ、コンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
また、上記実施形態の処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
また、上記実施形態では、コントローラ1及びコントローラ2(エンジンハードウェア30)を単一の画像形成装置として説明したが、コントローラ1とコントローラ2とを異なる場所に配置等することでシステム構成(画像形成システム)としてもよく、この場合においても上記実施形態と同様の効果を奏することが可能である。