図1は、装置の動作をモニタリングし、診断し、制御するための種々の装置及びコンピュータを有する模式図を示している。特に、図1は、例えば、コンピュータワークステーション17、18、20及び22に接続された狭域ネットワーク(LAN)のような第1ネットワーク16を含む。それらのワークステーションは、例えば、パーソナルコンピュータ装置、Unix(登録商標)ベースのコンピュータ、Linuxベースのコンピュータ又はApple社のMacintosheを含むいずれのタイプのコンピュータであることが可能である。又、ディジタル画像形成装置24、ファックス装置28及びプリンタ32はネットワーク16に接続される。当業者は理解するであろうように、ディジタルコピー器/プリンタ24及びファックス装置28の2つの又はそれ以上の構成要素は、一体化された“画像形成装置”に結合されることができる。例えば、コピー器/プリンタ24、ファックス装置28、プリンタ31並びにワークステーション17、18、20及び22は機器又は被モニタ装置と呼ぶことが可能である。一部の構成においては、1つ又はそれ以上のワークステーションを事務所用電気製品に代えることが可能である。又、いずれのワークステーション17、18、20及び22並びに事務所用電気製品27は、ネットワーク16において被モニタ装置をポーリングするため、及びモニタリング装置に収集されたデータを送信するために、中間モニタリング装置として機能することができる。
そのような事務所の電気製品の一例としては、株式会社リコー製のeCabinet(登録商標)がある。又、ファックスサーバ(図示せず)はネットワーク16に接続され、電話、ケーブル又は無線コネクションを有することが可能である。各々のディジタルコピー器/プリンタ24、ファックス装置28及びプリンタ32は又、ネットワーク16に接続されることに加えて、従来の電話コネクション26及び/又はケーブルコネクション30及び/又は無線コネクション34それぞれを含むことが可能である。下で説明するように、被モニタリング装置24、28及び32は、直接電話コネクション、無線コネクション又はケーブルコネクションにより又はネットワーク16により、例えば、インターネットを介して、モニタリング装置と又呼ばれる、リモートモニタリング、診断及び制御ステーションと通信する。
他の代表的なビジネス環境下では、被モニタリング装置は、例えば、多機能イメージング装置、スキャナ、プロジェクタ、会議システム及びシュレッダ等を含むことが可能である。他の用途においては、ネットワーク16は、被モニタリング装置が例えば、マイクロ波オーブン、洗浄器、乾燥器、皿洗い器、家庭用娯楽システム、冷蔵庫、炊飯器、加熱器、エアコン、温水器、セキュリティカメラ等のような電気製品又はメータ(電気、ガス、水)である家庭用ネットワークであることが可能である。
図1において、広域ネットワーク(WAN)(例えば、インターネット又はその後継器)は、一般に、参照番号10により表される。WAN10は、プラーベートWAN、公衆WAN又はハイブリッドタイプであることが可能である。WAN10は、参照番号12A乃至12Iにより表される複数相互接続されたルータ及びコンピュータを含む。WANに亘って通信する方法は、“Simple Mail Transfer Protocol”と題されたRFC821、“ARPAインターネットテキストメッセージのフォーマットのための規格”と題されたRFC822、“ファイル転送プロトコル(FTP)”と題されたRFC959、“多目的インターネットメール拡張仕様(MIME)パート1:インターネットメッセージ本体”と題されたRFC2045、“An Extensible Message Format for Delivery Status Notifications”と題されたRFC1894、“Post Office Protocol−バージョン3”と題されたRFC1939、“Hypertext Transfer Protocol−HTTP/1.1”todaisareta RFC
2068、“An Extensible Message Format for Message Disportion Notifications”と題されたRFC2298を含む、www.ietf.org/rfc.htmlにおけるInternet Engineering Task Force(IETF)から利用可能な一連のRFC(Request for Comments)により周知である。これらのリファレンスの各々のコンテンツは、それらの援用によって発明の説明を一部代替する。
通信に関する伝送制御プロトコル/インターネットプロトコル(TCP/IP)については、例えば、1994年にAddison−Wesley Publishing Companyから出版された、W.R.Stevens著、文献“TCP/IP Illustrated”,Vol.1,The protocolsに記載されており、その文献の全体のコンテンツの援用によって発明の説明を一部代替する。又、Comer及びStevens著、“Internetworking with TCP/IP”,Vol.1−3の援用によって発明の説明を一部代替する。
図1を続けて参照するに、ファイアウォール50Aは、WAN10とネットワーク16との間に接続される。ファイアウォールは、ファイアウォールの一の側において許可されたコンピュータのみがネットワーク、コンピュータ又はファイアウォールの他の側における個別の部品にアクセスすることが可能である装置である。ファイアウォールは周知であり、市販されている装置及び/又はソフトウェア(例えば、Zone Labs社製のZone Alarm)である。同様に、ファイアウォール50B及び50Cは、ネットワーク52及びワークステーション42それぞれからWAN10を分離する。ファイアウォールに関する追加の詳細については、文献、“Firewalls and Internet Security”byW.R.Cheswick and S.M.Bellovin,1994,Addison Wesley Publishingと、文献、“Building Internat Firewalls”byD.B.Chapman and E.D.Zwicky,1995,O‘Reilly & Associates,Inc.において見出すことができる。その文献の全体のコンテンツの援用によって発明の説明を一部代替する。
ネットワーク52は従来のネットワークであり、複数のワークステーション56、62、68及び74を含む。これらのワークステーションは、1つの企業の異なる部署(例えば、営業、購買、経理、広報、マーケティング、製造、デザインエンジニアリング及び顧客サービス部)内に分布された状態で位置付けられることが可能である。ネットワーク52により接続されたワークステーションに加えて、ネットワーク52に直接、接続されないワークステーション42を又、備えることが可能である。ワークステーション42に接続されたディスク46に記憶されたデータベースにおける情報は、ネットワーク52に直接、接続されたワークステーションに対してWAN10に亘って適切な暗号化及びプロトコルを用いて共有されることが可能である。又、ワークステーション42は、電話回線への直接接続及び/又はケーブルネットワーク及び/又は無線ネットワーク44を含み、ディスク46におけるデータベースは電話回線、ケーブルネットワーク又は無線ネットワーク44によりアクセスされることが可能である。本発明により用いるケーブルネットワークは、テレビジョンプログラミングを担持するために典型的に用いられるケーブルネットワーク、コンピュータと共に典型的に用いられるディジタルデータの高速通信を提供するケーブル、又はいずれの他の所望のタイプのケーブルを用いて、実施されることが可能である。
他の実施形態においては、ワークステーション42は、ラップトップコンピュータ、PDA、パームトップコンピュータ又はネットワーク能力を有する携帯電話であることが可能である。これらの装置は、ディスク46に記憶されたデータベースに記憶された情報にアクセスするために用いられることが可能である。
ディジタルコピー器/プリンタ24、オフィス電気製品27、ファックス装置28又はプリンタ32それぞれに関する情報は、ディスク46、54、58,64、70及び76に記憶された1つ又はそれ以上のデータベースに記憶されることが可能である。基地のデータベースは、(1)Microsoft、IBM、Oracle及びSybaseによるSQLデータベース、(2)他の関連データベース、及び(3)非関連データベース(Objectivity、JYD Software Engineering及びOrient Technologyからのオブジェクト指向データべースを含む)、を含む。各々の営業、購買、経理、広報、マーケティング、製造、デザインエンジニアリング及び顧客サービス部は、それらの部署自体のデータベースを有することが可能である、又は1つ又はそれ以上のデータベースを共有することが可能である。データベースを記憶するために用いられる各々のディスクは、ハードディスク又は光ディスクのような不揮発性メモリである。代替として、データベースは、固体メモリ装置及び/又は半導体メモリ装置を含むいずれの記憶装置に記憶されることが可能である。例えば、ディスク64はマーケティングデータベースを記憶することが可能であり、ディスク58は製造データベースを記憶することが可能であり、ディスク70はエンジニアリングデータベースを記憶することが可能であり、及びディスク76は顧客サービスデータベースを記憶することが可能である。代替として、ディスク54及び56は1つ又はそれ以上のデータベースを記憶することが可能である。
WAN10に接続されるワークステーション56、62、68、74及び42に加えて、これらのワークステーションは又、モニタされる、診断される及び/又は制御される機械/装置への安全な接続を提供するための、電話回線、ケーブルネットワーク又は無線ネットワークへの接続を含むことが可能である。更に、通信媒体の一が適切に動作しない場合、他の通信媒体の1つが、通信のためのバックアップとして自動的に使用されることが可能である。
本発明の特徴は、機械を診断及び制御するためのコンピュータ/モニタリングシステムと機械との間の通信又は伝送の“蓄積型(store−and−forward)”モード(例えば、インターネットの電子メール、又は、ここでは、e−mailという)を使用することである。代替として、伝送されるメッセージは、FTP及びHTTP(Hyper Text Transfer Protocol)のような直接的な端末間接続(例えば、最終目的地へのソケットコネクション)を形成する通信のモードを用いて、実施されることが可能である。
図2は、図1に示しているディジタルコピー器/プリンタ24の機械的レイアウトを示している。図2において、参照番号101はスキャナのためのファンであり、参照番号102はレーザプリンタと共に用いられる多面鏡であり、参照番号103はレーザ(図示せず)からの光をコリメートするために用いられるFθレンズを表す。参照番号104スキャナからの光を検出するためのセンサを表す。参照番号105はスキャナからセンサに光を焦点合わせするためのレンズを表し、参照番号106は感光ドラム132において画像を消去するために用いるクエンチングランプを表す。帯電コロナユニット107及び現像ローラ108を備えている。参照番号109はスキャンされる文書を描写するためのランプを表し、要素110、111及び112はセンサ104に光を反射するための鏡を表す。ドラム鏡113は、多面鏡102からもたらされる光を感光ドラム132に反射するために備えられる。ファン114はディジタル画像形成装置の帯電領域を冷やすために用いられ、第1給紙ローラ115は第1給紙カセット117から紙を供給するために用いられ、参照番号116はマニュアル給紙テーブルを表す。同様に、第2給紙ローラ118は第2カセット119と連動して用いられる。参照番号120は中継ローラを表し、参照番号121はレジストレーションローラを表し、122は画像密度センサを表し、123は転写/分離コロナユニットを表す。参照番号124はクリーニングユニットを表し、125は真空ファンを表し、126は搬送ベルトを表し、127は圧力ローラを表し、そして128は出口ローラを表す。加熱ローラ129は紙にトナーを固定するために用いられ、130は排気ファンを表し、主モータ131はディジタルコピー器/プリンタ24を駆動するために用いられる。
図3は、図2のディジタルコピー器/プリンタ24の電気的構成要素を示すブロック図であり、CPU160はその装置の制御装置として機能するマイクロプロセッサである。ランダムアクセスメモリ(RAM)162は、ディジタルコピー器/プリンタ24の動作パラメータを含む帯電情報を動的に記憶する。不揮発性メモリ(例えば、読み出し専用メモリ(ROM)又はフラッシュメモリ)は、ディジタルコピー器/プリンタを作動させるために用いられるプログラムコードとコピー器/プリンタを表す静的状態データ(例えば、モデル名、モデル番号、装置のシリアルナンバー及びデフォルトパラメータ)とを記憶する。
マルチポートネットワークインタフェース166は、ディジタルコピー器/プリンタ24が少なくとも1つの通信ネットワークにより外部装置と通信することを可能にするように備えられている。参照番号168は電話、無線又はケーブル回線を表し、参照番号170は168において認識されるネットワークとは異なる他の種類のネットワークを表す。マルチポートネットワークインタフェースの更なる詳細については、図4を参照して説明することとする。インタフェース制御器172は、システムバス186に操作パネルを接続するために用いられる。操作パネル174は、例えば、コピーの枚数、縮小/拡大、暗さ/明るさ等のような画像形成装置の操作を制御するためのコピーボタン、キーを含むディジタルコピー器/プリンタ24においてみられる標準的な入力及び出力装置を含む。更に、液晶表示装置が、ユーザに対してディジタルコピー器/プリンタ24のメッセージ及びパラメータを表示するために操作パネル174内に含まれることが可能である。
ローカルコネクションインタフェース171は、RS232、パラレルプリンタポート、USB及びIEEE 1394のようなローカルポートによる接続である。FireWire(IEEE 1394)は、Wicklgren,I.,“The Facts About “FireWire”,IEEE Spectrum, April 1997,Vol.34,Number 4,pp.19−25において説明されており、その文献の全体のコンテンツの援用によって発明の説明を一部代替する。好適には、エラー検出及び再送を含む“高信頼性”通信プロトコルが用いられる。
ストレージインタフェース176はシステムバス186に記憶装置を接続する。例えば、記憶装置は、従来の電気的消却プログラム可能型読取専用メモリ(EEPROM:Electrically Erasable Programmable Read Only Memory)により置き換えることができるフラッシュメモリ178、及びディスク182を有する。ディスク182は、ハードディスク、光ディスク及び/又はフロッピー(登録商標)ディスクドライブであることが可能である。付加メモリ装置は、コネクション180によりディジタルコピー器/プリンタ24に接続されることが可能である。フラッシュメモリ178は、装置24の寿命に亘って殆ど変わらない、ディジタルコピー器/プリンタ24のパラメータを表す半静的状態データを記憶するために用いられる。そのようなパラメータは、例えば、ディジタルコピー器/プリンタのオプション及び設定を含む。任意インタフェース184は、外部のインタフェースのような付加ハードウェアがディジタルコピー器/プリンタ24に接続されることを可能にする。クロック/タイマー187は、時間及び月日の両方を常に把握し、又、経過時間を測定するために利用される。
図3は又、ディジタルコピー器/プリンタ24を構成する種々の部分を示している。参照番号202はソータを表し、ディジタルコピー器/プリンタ24の出力をソーティングするために用いられるアクチュエータ及びセンサを含む。デュプレクサ200は従来のセンサ及びアクチュエータを含む。大きい容量のトレーユニット198は、紙トレーが大量のシートを保持するために備えられる。デュプレクサと同様に、トレーユニット198は又、従来のセンサ及びアクチュエータを含む。
給紙制御器196は、ディジタル画像形成装置に及びそれにより給紙する操作を制御するために用いられる。スキャナ194はディジタル画像形成装置に画像をスキャンするために用いられ、光、鏡等のような従来のスキャニング要素を含む。更に、スキャナセンサは、スキャナがホームポジションにあることを決定するためにホームポジションセンサとして用いられ、ランプサーミスタはスキャンランプの正確な操作を確実にするために用いられる。プリンタ/イメージャ192はディジタル画像形成装置の出力をプリントし、従来のレーザプリント機構と、トナーセンサと、画像密度センサとを含む。フューザ190は、高温ローラを用いてページ上でトナーを溶かすために用いられ、出口センサと、フューザ190が過熱されないようにするサーミスタと、オイルセンサとを含む。更に、例えば、自動文書供給器、異なる種類のソータ/コレータ、又はディジタル画像形成装置に付加されることができる他の要素のような、ディジタル画像形成装置の任意の要素に接続するために用いられる、任意のユニットインタフェース188がある。
図4は、マルチポートネットワークインタフェース166についての詳細を示している。ディジタル画像形成装置は、トークンリングインタ、電話回線168Aに接続された従来の電話インタフェース224、無線インタフェース、又はLAN170に接続されたイーサネット(登録商標)インタフェースにより、外部装置に通信することが可能である。他のインタフェースとして、DSL(Digital Subscriber Line)(オリジナルDSL、同心DSL及び非対称DSL)を含むことが可能であるが、これらに限定されない。LAN(Local Area Network)及び電話回線の両方に接続される信号装置はIntel社から市販されており、Intel Pro 10/100+Modemとして知られている。
CPU若しくは他のマイクロプロセッサ又は回路構成は、ディジタル画像形成装置のセンサの各々の状態をモニタするためにモニタリング処理を実行し、順序付け処理がディジタル画像形成装置を制御し、操作するために用いられる。更に、ディジタル画像形成装置の全体的操作を制御するために実行される(1)中央システム制御処理と、ディジタル画像形成装置に接続された外部装置への高信頼性の通信を確実にするために用いられる(2)通信処理とがある。システム制御処理は、静的状態メモリ(例えば、図3のROM164)、セミ静的メモリ(例えば、フラッシュメモリ178又はディスク182)又は動的状態メモリ(例えば、揮発性又は不揮発性メモリ)(例えば、RAM162、フラッシュメモリ178又はディスク182)におけるデータ記憶をモニタし、制御する。更に、静的状態メモリは、例えば、フラッシュメモリ178か又はディスク182のどちらかを含む不揮発性メモリのようなROM164以外の素子であることが可能である。
上記の詳細説明はディジタル画像形成装置に関するものであるが、本発明は、例えば、アナログコピー装置、ファックス装置、スキャナ、プリンタ、ファックスサーバ、プロジェクタ、会議装置、シュレッダ、他の事務用機器又は事務所用電気製品のような他の事務所用機器又は装置、若しくは、他の電気製品(例えば、電子レンジ、VCR、DVD、ディジタルカメラ、携帯電話、パームトップコンピュータ)に同等に適用可能である。更に、本発明は、蓄積型(store−and−forward)又は直接接続ベースの通信を用いて動作する他の種類の装置を含む。そのような装置は、検針システム(ガス、水道、電気検針システムを含む)、自動販売機、又は、操作又はリモート診断の間にモニタされる必要がある、いずれの機械的装置(例えば、自動車、洗浄器、乾燥器)を含む。特殊用途の機器及びコンピュータのモニタリングに加えて、本発明は、モニタリングされる及び/又は制御される一般用途のコンピュータをモニタリング、制御及び診断するために用いられることができる。
図5は、異なる装置及びサブシステムがWAN10に接続されている、本発明の他のシステムを示す図である。しかしながら、本発明の一部としてこれらの装置又はサブシステムの各々を有する必要はない。図5における各々の構成要素又はサブシステムは、本発明の個別の部分である。更に、図1に示す要素は、図5に示すWAN10に接続されることが可能である。図5において、インターネット260−1に接続されたファイアウォール50−1を示している。インターネット260−1に接続されたサービスマシン254は、データベースフォーマットに記憶されることが可能であるデータ256を含み、又はそれに接続されている。データ256は、履歴、性能、故障、並びに、被モニタリング装置の操作、故障又は設定若しくはコンピュータ又は任意装置が非モニタリング装置により含まれるというような設定情報、を含む。サービスマシン254は、データを伝送するために被モニタリング装置を必要とし、又は、リモート制御及び/又は診断テストが被モニタリング装置において実施されることが必要である、コンピュータ又は装置として実施されることが可能である。サービスマシン254はいずれの種類の装置として実施されることが可能であり、好ましくは、一般用途コンピュータのようなコンピュータ化された装置を用いて実施される。又、サービスマシン254は、ビリング、アカウンティング、サービス処理、パーツ追跡及びレポートを含む種々多様なデータベースを有するネットワークに亘って、複数のコンピュータから成ることが可能である。
図5の他のサブシステムは、ファイアウォール50−2、イントラネット260−2及びそれらの接続されたプリンタ262を含む。このサブシステムにおいて、プリンタ262により(及び、同様に、コピー装置286により)電子メッセージを送信する及び受信する機能が、(1)回路構成、(2)マイクロプロセッサ又は(3)プリンタ262に組み込まれた又はそれの内部に含まれたいずれの他の種類のハードウェア(即ち、別個の一般用途のコンピュータを用いることなく)、により実行される。
代替の種類のサブシステムは、America Online、Earthlink及びNiftyserveのような既知の営利会社を含む、いずれのタイプのインターネットサービスプロバイダ(ISP)であることが可能であるインターネットサービスプロバイダ264の利用を含む。このようなサブシステムにおいて、コンピュータ266は、ディジタル又はアナログモデム(例えば、電話回線モデムと、ケーブルモデムと、ADSL(Asymmetric Digital Subscriber Line)に亘って使用されるモデムのようないずれの種類の通信を用いるモデムと、高周波モデム、光ファイバモデム又は赤外光線を用いる装置のような無線モデムと)によりISP264に接続される。更に、事務所用装置268はコンピュータ266に接続される。事務所用装置268(又は、図5に示す、いずれの他の装置)の代替として、ディジタルコピー装置、いずれの主対の電気製品、セキュリティシステム、又は電気、水道又はガスユーティリティメータのようなユーティリティメータ、又はいずれのここで述べた他の装置のような、異なる種類の機器をモニタリングする、又は制御することが可能である。
又、図5に、ネットワーク274に接続されたファイアウォール50−3を示している。ネットワーク274はいずれの種類のコンピュータネットワーク(例えば、イーサネット(登録商標)又はトークンリングネットワーク)として実施されることが可能である。ネットワークを制御するために用いられることが可能であるネットワーキングソフトウェアは、Novell社又はMicrosoft社から市販されているソフトウェアを含むいずれの好ましいネットワーキングソフトウェアを含む。ネットワーク274は、必要に応じて、インターネットとして実施されることが可能である。ネットワーク274に接続されたコンピュータ272は、事務所用装置278から情報を得るために用いられ、ネットワークに接続された種々の機器において起こった問題を示すレポート及びネットワーク274に接続された装置の月間使用レポートのようなレポートを作成することが可能である。この実施形態においては、コンピュータ276は事務所用装置278とネットワーク274との間に接続されている。このコンピュータはネットワークから通信を受信し、適切なコマンド、データ又はいずれの他の情報を事務所用装置278に転送する。
事務所用装置278とコンピュータ276との間の通信は、高周波コネクション、電気的コネクション及び光コネクション(例えば、赤外線コネクション又は光ファイバコネクション)を含む有線ベースの又は無線方式を用いて実現されることが可能である。同様に、図5に示している種々のネットワーク及びイントラネットの各々は、高周波ネットワークのような無線ネットワークの確立により含まれるいずれの好ましい方式を用いて確立されることが可能である。ここで説明している無線通信は、Bluetooth仕様(ワールドワイドウェブサイトwww.bluetooth.comで利用可能である)の状態で開示された周波数ホッピング無線技術のような拡散コード及び周波数ホッピング技術を用いる技術を含む拡散スペクトル技術を用いて確立されることが可能であり、その援用によって発明の説明を一部代替する。
図5に示す他のサブシステムは、ファイアウォール50−4、イントラネット260−4、イントラネットに接続されたコンピュータ282、事務所用電気製品185及びコピー装置286を有する。コンピュータ282は、レポートを作成し、診断又は制御手順を要求するために用いられる。このような診断及び制御手順は、事務所用電気製品185及びコピー装置286又は図5に示されている又は図5と共に用いられるいずれの他の装置に関連して実行されることが可能である。図5は複数のファイアウォールを示しており、ファイアウォールは好適であるが、オプションの装置、それ故、本発明は、必要に応じて、ファイアウォールの使用なしで操作されることが可能である。ネットワーク化された装置のモニタリング及び制御のために、サービスマシン254の代わりに、いずれのコンピュータ(266、272又は282)を用いることができる。更に、いずれのコンピュータは、ウェブにより必要な装置情報又は使用情報を検索するために、サービスマシン254にアクセスすることが可能である。
図6Aは、典型的なe−mail交換システムに接続された装置/電気製品300を示しており、それは、構成要素302、304、306、308、310、312、314、316及び316を含み、従来の方式で実施されることが可能であり、上で参照したStevensによる文献における図28.1からアレンジされている。コンピュータインタフェース302は、ここで説明している、いずれのアプリケーションユニット又は装置/電気製品300と接続される。図6Aは、装置/電気製品300が送信器であることを示しており、送信及び受信機能は図6Aにおけるものとは逆になっている。更に、必要に応じて、ユーザは装置/電気製品300と接続する必要は全くない。コンピュータインタフェース302は、次いで、メールエージェント304と相互作用する。Unix(登録商標)に対するポピュラーメールエージェントは、MH、Berkeley Mail、Elm及びMushを含む。オペレーティングシステムのWindows(登録商標)ファミリに対するメールエージェントは、Microsoft Outlook及びMicrosoft Outlook Expressを含む。コンピュータインタフェース302の要請により、メールエージェント304は、送信されるe−mailメッセージを作成し、必要に応じて、送信されるそのようなメッセージをキュー306に置く。送信されるべきメールはメッセージトランスファエージェント(MTA:Messaage Transfer Agent)308に転送される。Unix(登録商標)システムに対する共通MTAはSendmailである。典型的には、メッセージトランスファエージェント308及び312は、TCP/IPコネクション310を用いて通信を交換する。特に、メッセージトランスファエージェント308と312との間の通信はいずれのサイズのネットワーク(例えば、WAN又はLAN)に亘って存在することが可能である。更に、メッセージトランスファエージェント308及び312はいずれの通信プロトコルを用いることが可能である。本発明の一実施形態においては、図6Aの要素302および304は、アプリケーションユニットの使用をモニタリングするためにライブラリに存在する。
メッセージトランスファエージェント312から、e−mailメッセージはユーザメールボックス314に記憶され、メールエージェント316に転送され、最終的に、受信端末として機能する端末318においてユーザに送信される。
この“蓄積型(store−and−forward)”プロセスは、直接接続がメール受信者と確立されるまで待つ必要があることから、送信メールエージェント304を解放する。ネットワーク遅延のために、通信は、アプリケーションが感応しない実質的時間量を必要とする。そのような感応性における遅延は、一般に、アプリケーションユニットのユーザには受け入れられない。蓄積型プロセスとしてe−mailを用いることにより、固定された時間の期間(例えば、3日)の間、故障が自動的に生じた後、再送信が試みられる。代替の実施形態においては、アプリケーションは、1つ又はそれ以上の個別のスレッドに通信要求を渡すことにより、待つことを回避することができる。そのようなスレッドは、このとき、受信端末318との通信を制御することができる一方、アプリケーションは、再び、ユーザインタフェースへの応答を開始する。ユーザが継続する前に終了した通信を有するように望む、他の実施形態においては、受信端末との直接通信が用いられる。そのような直接通信は、送信端末と受信端末との間のファイアウォールによりブロックされないいずれのプロトコルを用いることができる。そのようなプロトコルの例としては、Telnet、FTP(File Transfer Protocol)及びHTTP(Hyper Text Transfer Protocol)がある。
インターネットのような公衆WANは、一般に、安全であるとはみなされない。それ故、メッセージの機密性を保つことが望まれる場合、公衆WAN(及び、他企業プレイベートWAN)に亘って伝送されるメッセージを暗号化することができる。暗号化機構は周知であって、市販されており、本発明と共に用いられることが可能である。例えば、C++ライブラリ機能、crypt()は、Unix(登録商標)オペレーティングシステムと共に使用するためにSun Microsystems社から市販されている。暗号化及び復号化ソフトウェアパッケージは周知であって、市販されており、本発明と共にしようされることが又、可能である。そのようなパッケージの1つはPGP社から市販されているPGPである。
図6Aの一般的構造に対する代替としては、コンピュータインタフェース302、メールエージェント304、メールキュー306及びメッセージトランスファエージェント308として機能する単一のコンピュータを用いることが可能である。更に、メッセージトランスファエージェント308は、TCP/IPコネクション310によりメッセージトランスファエージエンと312に接続される。図6Cの実施形態においては、装置/電気製品300は、e−mailの能力を用いてTCP/IPコネクション310に直接接続される。図6Cの実施形態の1つを使用することは、装置/電気製品300としてe−mailの能力と共にファックス装置を用いることを含む(例えば、RFC2305において規定されるように(インターネットメールを用いるファックスの簡単なモード))。
図6Dは、装置/電気製品300は、それ自体によりe−mailを直接受信する能力を有しないが、装置/電気製品300はメールサーバからメールを受信するためにPOP3プロトコルを用いるように、メールボックス314及びメッセージトランスファエージェント308を含むメールサーバ/POP3サーバへのコネクション310を有する。
図7は、メールを転送するための代替の実施形態を示しており、上で参照したStevensによる文献の図28.3から適合化されたものである。図7は、各々の端部にリレーシステムを有する電子メールシステムを示している。図7の構成は、機構における一システムがメールハブとして機能することを可能にする。図7においては、2つのメールエージェント304及び316の間に接続された4つのMTAが存在する。これらのMTAは、ローカルMTA322A、リレーMTA328A、リレーMTA328B及びローカルMTA322Dを含む。メールメッセージのために用いられる最も一般的なプロトコルは、本発明と共に用いられることができるSMTP(Simple Mail Transfer Protocol)であるが、いずれの好ましいメールプロトコルを用いることが可能である。図7において、参照番号320は、コンピュータインタフェース302、メールエージェント304及びローカルMTA322A を含む送信ホストを表す。装置/電気製品300は、送信ホスト320に接続され、又は、代替として、送信ホスト320内に含まれる。他の場合には、装置/電気製品300及びホスト320は、ホストの能力が装置/電気製品300に組み込まれた1つの機器の状態にあることが可能である。他のローカルMTA322B、322C、322E及び322Fを又、含むことが可能である。送信及び受信されるメールは、リレーMTA328Aのメールのキュー306Bにおいてキューイングされることが可能である。メッセージはTCP/IPコネクション310(例えば、インターネットコネクション又はいずれの他の種類のネットワークにおけるコネクション)において転送される。
送信されたメッセージは、リレーMTA328Bにより受信され、必要に応じて、メールのキュー306Cに記憶される。メールは、次いで、受信ホスト342のローカルMTA322Dに転送される。メールは、1つ又はそれ以上のユーザメールボックス314に置かれ、続いて、メールエージェント316に転送され、最終的に、端末318においてユーザに転送されることが可能である。必要に応じて、メールはユーザインタラクションなしで端末に直接、転送されることが可能である。
図5のコンピュータ266及び276を含む、本発明において用いられる種々のコンピュータは、図8に示すように実施されることが可能である。更に、必要に応じて、図5のサービスマシン254、コンピュータ272及びコンピュータ282を含む、本発明において用いられるいずれの他のコンピュータは、図8に示すコンピュータと類似する方式で実施されることが可能である。しかしながら、図8に示している要素の全てが、それらのコンピュータの各々において必要とされるとは限らない。
図8においては、コンピュータ360は、例えば、Intel、AMD、Motorola、日立及びNECのような企業から市販されているマイクロプロセッサを含むいずれのタイプのプロセッサとして実施されることが可能であるCPU362を含む。RAM364のような作用メモリがあり、無線インタフェース366は無線装置368と通信する。インタフェース366と装置368との間の通信はいずれの無線媒体(例えば、高周波又は光波)を用いることが可能である。高周波は、Bluetooth仕様において開示されているような周波数ホッピング技術を用いて又はCDMA(Code Division Multiple Access)通信のようなスペクトル拡散技術を用いて、実施されることが可能である。
コンピュータ360はROM370とフラッシュメモリ371とを含むが、いずれの他の種類の不揮発性メモリ(例えば、電気的消却プログラム可能ROM、即ち、EEPROM)をフラッシュメモリ371に付加して又はそれに代えて用いることが可能である。入力制御器372はキーボード374及びマウス371に接続されている。シリアル装置380に接続されたシリアルインタフェース378がある。更に、パラレルインタフェース382はパラレル装置384に接続され、ユニバーサルシリアルバス(USB)インタフェース386はユニバーサルシリアルバス装置388に接続され、又、IEEE 1394装置398に接続された、一般に、ファイアワイア(fire wire)装置と呼ばれるIEEE 1394装置400がある。システムバス390はコンピュータ360の種々の要素に接続している。ディスク制御器396は、フロッピー(登録商標)ディスクドライブ394及びハードディスクドライブ392に接続される。通信制御器406は、コンピュータ360がネットワーク404に亘って他のコンピュータ(例えば、e−mailメッセージを送信することにより)通信することを可能にする。I/O(Input/Output)制御器408は、例えば、SCSI(Small Computer System Interface)バスを用いて、ハードディスク412及びプリンタ410に接続される。又、CRT(陰極線管)414に接続された表示制御器416があるが、液晶表示装置、発光ダイオード表示装置、プラズマ表示装置等を含む、いずれの他の種類の表示装置を用いることが可能である。
ここで、図9を参照するに、本発明の代表的な実施形態に従った、全体的なシステム900の模式図を示している。システム900は、複数の装置であって、例えば、レーザプリンタ908、スキャナ910、ネットワーク装置912及び多機能プリンタ914を含むように示されており、全てはネットワーク100に接続されている。これらの複数の装置は、一般に、ここでは、“被モニタリング装置”という。システム900は又、被モニタリング装置908、910、912及び914をモニタリングし、制御するためのネットワーク100に接続されたワークステーション/モニタリングシステム902(以下、制御器902という)を含む。各々の被モニタリング装置908、910、912及び914には一意のアドレスが与えられている。例えば、ある装置に割り当てられたIPアドレスは、その装置に対する一意のアドレスとなる。それ故、制御器902においてユーザは、それぞれの被モニタリング装置に割り当てられた一意のIPアドレスにアクセスすることにより被モニタリング装置908乃至914の間のそれぞれの装置にアクセスすることができる。本発明は、ネットワークに接続された装置を一意に識別するためにIPアドレスを用いることに限定されるものではないことを理解することができるであろう。
被モニタリング装置908乃至914の間の装置にアクセスするとき、制御器902は、SNMP又は/及びHTTPプロトコルにより種々の情報を得る。そのような情報は、トラブルシューティング情報を含む装置の動作状態に関する詳細情報を含む。例えば、制御器902は、特定の装置のジャム(jam)位置を得て、アクセスし、そのジャムを取り除くようにその装置の担当者にメッセージを送信する。レーザプリンタ908の動作状態/詳細は、トナーレベル、ペーパージャムの兆候、プリンタのトレーのプリント用紙の品質等のような詳細を含む。
制御器902はネットワーク100に物理的に接続されることが可能であり、又は無線で結合されることが可能であることが理解されるであろう。例えば、ネットワーク100に無線で結合されたように示されている携帯情報端末(PDA)920又はラップトップコンピュータ922は又、制御器922として用いられることが可能である。アクセスポイント924は、ネットワーク100とPDA922又はラップトップコンピュータ922との間の無線通信を可能にするインタフェースとして機能する。以下、本発明は、制御器902はネットワークに接続された被モニタリング装置の状態を制御し、モニタリングすることを前提として説明することとする。
ネットワーク100は、そのような被モニタリング装置の制御及びモニタリングを可能にする被モニタリング装置908乃至914と制御器902との間の通信を容易にする。ネットワークに接続されている装置の数は、本発明においては限定されない。ネットワーク100はローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)であることが可能である。同様に、被モニタリング装置908、910、912及び914は単なる例示として示されている。
制御器902は、記憶装置904及びデータベース906に通信可能であるように結合されている。記憶装置904は、ハードディスク、光ディスク及び/又は外部ディスク装置を含む。データベース906は記憶装置904に通信可能であるようにリンクされ、記憶装置904に記憶されたデータの容易な検索のためのRDBMS(Relational Database Management System)を含む。記憶装置904は、好ましくは、被モニタリング装置908乃至914の各々に関する詳細データを記憶している。例えば、レーザプリンタ908の型、モデル、種々の機能及びトラブルシューティングの詳細のような詳細情報は記憶装置904に記憶されている。又、所定の基準値と比較される、レーザプリンタの動作状態についての偏差値は又、記憶装置904に記憶されることが可能である。データベース906及び記憶装置904は制御器902に通信可能であるように結合されると説明したが、制御器902はインストールされるデータベース及び設置される記憶装置と共に構築されることが可能であることが理解されるであろう。そのような場合、記憶装置906及びデータベース904は制御器902に内在するとして示される。
制御器902は、複数の装置908乃至914の制御及びモニタリングを用にするためにソフトウェアと共にインストールされる。シンプルネットワーク管理プロトコル(SNMP)、ファイル転送プロトコル(FTP)及びハイパーテキスト転送プロトコル(HTTP)は複数の装置908乃至914をモニタリングするための制御器902により用いられ、複数の装置908乃至914から受信されたデータは、参照番号950に示すように、ASN.1バイナリフォーマット、HTTMフォーマット又はXMLフォーマットの方式で提供される。
図9はイメージング装置のみを示しているが、モニタリング装置と複数の被モニタリング装置との間で情報を通信するためのネットワークは、電気製品と検針装置がネットワークに接続されている家庭用ネットワークを含むことが可能である。制御器/ワークステーション902により収集されたデータは、e−mail、FTP又は更なる処理のためのリモート装置に対するいずれの他の通信プロトコル手段により送信されることができる。ワークステーション902、PDA920又はラップトップ922は、データを収集し、データを記憶し、通信プロトコルによりデータを送信する制御器であることが可能であるが、制御器はネットワークに接続されたいずれの装置であることが可能であることが理解されるであろう。いずれのネットワーク装置(例えば、プリンタ)は、ネットワークにおいて他の装置の状態をモニタリングし、収集されたデータを記憶し、及び/又はいずれの他の通信プロトコル手段(例えば、e−mail、FTP)により収集されたデータを送信することが可能であるモニタリングシステムを含むことができる。Xerox Document 4025及びHP LaserJet 9000は両方共、e−mailを送信することができる。
モニタリングシステムアーキテクチャ
図10は、本発明の代表的な実施形態に従ったリモート装置に関連したデータのモニタリングにおいて用いられるモニタリングシステム1000(及び、関連インタフェース機能)を示している。モニタリングシステム1000は、例えば、NTにおけるService、WIndows 2000及びUnix(登録商標)におけるDaemonのようなコンピュータ駐在プログラムであるソフトウェアモジュールMonitoeServise 1004を含む。好ましい実施形態においては、モニタリングシステムは、オブジェクト指向ソフトウェア環境を用いて実施される。又、タイマーモジュール1002及びモニタモジュール1006はモニタリングシステム1000に含まれる。タイマーモジュール1002及びモニタモジュール1006は、モニタサービスモジュール1004により呼び出されるライブラリ機能である。例えば、モニタサービスモジュール1004はInitTimer1003機能と呼び出すことによりタイマーモジュール1002を初期化し、obtainDelayAndAction(int&,int&)機能を呼び出すことにより遅延パラメータ及びアクションパラメータを得る。init()機能は又、図13に示しように、モニタモジュール1006における種々のモジュールを初期化するためのモニタサービスモジュール1004と呼ばれる。init()機能は、既知の方法により収集されたIPアドレス、パラメータ名及び値を含む外部ソースにより被モニタリング装置に割り当てられたIPアドレス及びパラメータ値を得るために用いられることができる。モニタモジュール1006は、下で更に詳細に説明するように、支援データベース1024に及びモニタデータベース1014に通信可能であるように結合されている。
一旦、被モニタ装置のIPアドレスが得られると、IPアドレスは、製造メーカー(ベンダ)及びモデル情報のような情報を得るために被モニタリング装置と連絡をとるモニタリングシステムにより用いられる。モニタリングシステム1000により実行される一部の機能には次のような機能がある。
void initTimer(void)
この機能はタイマーを初期化する。特に、この機能はレジストリからタイミング情報を得るためにタイマーオブジェクトをトリガする。
void obtainDelayAndAction(int&out_nDelay,int&out_nAction)
この機能は、アクションインジケータ及びスリープ機能(1000を掛ける必要がある)に対してすぐに遅延時間を返送する。アクションインジケータは、次のように規定される。即ち、0=イベントチェッキング;1=被モニタリングデータを送信する;及び、2=データをモニタリングし、ローカルデータベースに記憶する。
int init(void)
この機能はモニタを初期化する。更に、それは装置がモニタリングされるようにする。リターンintはエラーがないとして0が定義されるエラーコードである。
int monitorStatus(int in_nAction)
この機能はプリセット情報である。リターンintはエラーがないとして0が定義されるエラーコードである。
int end(void)
この機能は、オブジェクトを閉じる前にモニタをきれいにする。リターンintはエラーがないとして0が定義されるエラーコードである。
モニタモジュール
図11は、種々のソフトウェアサブモジュールと、モニタモジュール1006のサブモジュール間の呼び出し機能とを含むモニタモジュール1006の構造の詳細を示している。モニタモジュール1006は、多くのモジュールにより用いられるクラスを含む共通モジュール1101、図10に示すようにインタフェース機能により規定されるタスクを終了するために、他のサブモジュール(装置ODBCモジュール1004、装置モジュール1110及びHWaccessモジュール1116を含む)を管理するモニタマネージャモジュール1102を含む。特に、装置ODBCモジュール1104は、標準インタフェースにより外部装置情報にアクセスするために、アクセスされる。HWaccessモジュール1116は、複数の通信プロトコルからの選択された通信プロトコル(例えば、HTTP、SNMP及びFTP)を用いて、被モニタリング装置からベンダ、モデル、一意のID及び状態情報を得る。
次に、上記のモニタモジュール間のインタフェースの一部の列挙及び説明を行う。例えば、一部のモジュールは、変換フォーマットにおいて情報を得るために“init”機能又は付加機能を有する必要がある。
void updataConfig(std::map<infoType,std::string>&)
この機能が呼び出される前に、呼び出し機能は、獲得された機能がヌルストリングを返送する場合、ベンダおよびモデルエントリを置き換えないことが好ましい。この機能は、装置ODBCモジュール1104において現在の記録の装置情報データベースを更新する。この機能は、下のObtainConfigが最初に呼び出されるとき、最も効率的である。先ず、この機能は、IPアドレスが装置ODBCモジュール1104において同じであるかどうかを調べる。IPアドレスフィールドが同じでない場合、正確なIPアドレスを有する記録がデータベースから得られる。次いで、他のフィールドがコピーされ、記録は更新される。
bool obtainConfig(std::map<infoType,std::string>&,std::map<std::string,std::vector<SParameter>>&)
この機能は、所定のフォーマットにおける装置情報に対する装置ODBCモジュール1104からマップを、並びにプロトコル及び関連パラメータのマップを得る。この機能は、データが返送される場合、真を返送し、更なるデータが存在しない場合、偽を返送する。
bool saveStatus(std::map<infoType,std::string>&)
この機能は装置ODBCモジュール1104に状態情報を記憶する。この機能は、記憶が成功したとき、真を返送し、そうでないときは、偽を返送する。
Cdevice * createDevice(const std::string&in_sIP,CHWaccess&in_HWaccess,std::map<std::string,std::vector<SParameter>>&in_ProtocolParameters)
この機能は、in_sIPとin_ProtocolParametersとに基づいて
装置を与える。与えられた装置はCHWaccessによりハードウェアに接続される。装置を与えることができない場合、その機能は0を返送する。それ故、呼び出しオブジェクトは、返送オブジェクトポインタが0であるか又は0でないかを調べる必要がある。
bool canAccessHW(void)
この機能は、ハードウェアがネットワークによりアクセスされることができるとき、真を返送し、そうでないとき、偽を返送する。
bool getVender(std::string&out_sVender)
この機能はベンダ名を返送する。装置がシステムにより支援されているが、プロトコルの1つによりアクセスされることができない場合、そのストリングは“GENERIC”を含む。プロトコルにおいてエラーが検出される場合、その機能はヌルストリングを返送する。そうでない場合、その機能は真を返送する。
bool getModel(std::string&out_sModel)
この機能は装置のモデルを得る。モデルが得られる場合、この機能は真を返送する。エラーがプロセスにおいて検出される場合、その関数はヌルストリングを伴って偽を返送する。
bool getUniqueID(std::string&out_sUniqueID)
この機能は装置の一意のIDを返送する。一意のIDが得られる場合、この機能は真を返送する。エラーがプロセスにおいて検出された場合、その機能はヌルストリングを伴って偽を返送する。
bool obtainStatus(map<infoType,std::string>&out_StatusMap)
この機能は状態マップを返送する。この機能は、状態が返送されるとき、真を返送し、状態が得られないとき、偽を返送する。この機能は、HWaccess及び装置モジュールからの異なるマップを返送することに留意されたい。装置モジュールにおいて、イベント状態情報は、HWaccessからのマップに加えられ、消去される。
enum checkEventStatus(void)
この機能はネットワーク装置のイベントを得るようにトリガする。enumタイプ及び値はクラスにおいて規定される必要がある。enum値は、eNoEventSinceClearAndNoEventDetected、eNoEventSinceClearAndEventDetected、eEventSinceClearAndNoEventDetected、eEventSinceClearAndEventDetectedを含む必要がある。
bool obtainEvenStatus(std::map<infoType,std::string>&out_EventStatusMap)
この機能はイベント状態情報を得る。この機能は、状態が返送されるとき、真を返送し、状態が得られないとき、偽を返送する。
void clearEventStatus(void)
この機能は、最後のobtainStatus機能がEventStatusを呼び出す又は消去するため、蓄積されたイベント状態を消去する。
void initBegin(void)
この機能は、特に、ソフトウェア装置オブジェクトを与えるために、HWaccessにより初期化プロセスを開始する。
void initEnd(void)
この機能は、特に、装置オブジェクト付与が終了したことを表すHWaccessにより初期化プロセスを終了する。
bool canAccessIP(cont std::string&in_sIP,std::map<std::string, std::vector<SParameter>>&in_ProtocolParameters)
この機能は、装置がIPアドレスにおいてアクセスされることができるとき、真を返送し、そうでないとき、偽を返送する。
boot obtainVender(std::string&out_sVender,std::map<std::string,std::vector<SParameter>>&inOut_ProtocolParameters,const std::string&in_sIP)
この機能はベンダを得る。この機能は、動作が成功する場合、真を返送し、そうでない場合、空ストリングを伴って偽を返送する。この機能呼び出しの間、プロトコルは調べられ、特定のプロトコルが状態モニタリングのために用いられない場合、そのプロトコルはinOut_ProtocolParametersから削除される。
boot obtainModel(std::string&out_sModelName,std::map<std::string,std::vector<SParameter>>&inOut_ProtocolParameters,const std::string&in_sIP)
この機能はモデル名を得る。この機能は、動作が成功する場合、真を返送し、そうでない場合、空ストリングを伴って偽を返送する。この機能呼び出しの間、プロトコルは調べられ、特定のプロトコルが状態モニタリングのために用いられない場合、そのプロトコルはinOut_ProtocolParametersから削除される。
boot obtainUniqueID(std::string&out_sUniqueID,std::map<std::string,std::vector<SParameter>>&inOut_ProtocolParameters,const std::string&in_sIP)
この機能は一意のIDを得る。この機能は、動作が成功する場合、真を返送し、そうでない場合、空ストリングを伴って偽を返送する。この機能呼び出しの間、プロトコルは調べられ、特定のプロトコルが状態モニタリングのために用いられない場合、そのプロトコルはinOut_ProtocolParametersから削除される。
EerrorCode obtainEvent Status(std::map<infoTYpe,std::string>&out_StaqtusMap, コンststd::sting&in_sIP,std::map<std::string,std::vector<Sparameter>>&in_ProtocolParameters)
この機能はイベント状態を得る。ErrorCodeは下のように定義される。
boot obtainStatus(std::map<infoType,::string>&out_StatusMap,const std::string&in_sIP,const std::string&in_sVender,const std::string&in_sModel,std::map<std::string,std::vector<SParameter>>&in_ProtocolParameters)
この機能は装置の状態を得る。この機能は、動作が成功する場合、真を返送し、そうでない場合、空マップを伴って偽を返送する。
図12は、HWaccessモジュール1116により受信されたキー値に関連する値の受信のために情報を交換するために、図11に示すようなHWaccessモジュール1116により用いられるデータ構造を示している。例えば、図12に示すようなSKeyValueInfoデータ構造は、所定のウェブページにおける特定の情報タイプ(m=infoType1202に対応する)に対応する情報を得る方法を決定するために用いられる。典型的には、数多くのベンダは、被モニタリング装置に関するそれぞれのウェブページに表示されるキー情報を識別するために、ベンダ固有識別子及び命名法を用いる。例えば、プリンタ装置によりプリントされるページ数を決定するために、Hewlett Packard社は“ページカウント”機能を用いる一方、Xerox社は、“給紙されたトータルシート”機能を用いて同様に識別する。本発明の機能は、ベンダ毎の多様性を克服するためのものであり、それ故、装置固有情報を識別する標準化され且つ一貫した方法を提供し、装置固有データ構造/SkeyValueInfo構造1200を用いることにより情報に対応する値を抽出する。SkeyValueInfoデータ構造1200は公である属性を含む。
SkeyValueInfoは、典型的には、データストリング又はキーストリングの方式で被モニタリング装置から受信された情報からの値情報を識別するために生成されたデータ構造である。SkeyValueInfoは複数のフィールドを含み、各々のフィールドは図12に示す情報により表される。SkeyValueInfo構造1200は
、ストリングキーを表すm_sKeyフィールド1204と、値情報が位置付けされることが可能である、好ましくは、ストリングにおける位置の数を示すタグベースの値であるm_nPositionフィールド1206と、m_nInLinePositionフィールド1212とを含む。例えば、モニタリングの対象となるプリンタ装置のページカウントを、キーワードの次の第2位置に見つけることが可能である。m_sType1208は、被モニタリング装置の表示されたウェブページから検索することができる情報のタイプを表す。
例えば、被モニタリング装置のモデル名のような値がキー(製品名)の同じデータラインにおいて見つけられるとき、m_nPositionフィールドは“0”であり、m_sDelimiter1210は、キーに関連する値を抽出するために用いられる特定のデリミタを示している。SKeyValueInfoデータ構造は、HTMLフォーマットにおいて被モニタリング装置から受信された情報からの値情報の抽出の方法を示している。
図13は、図10に示しているモニタモジュール1006の呼び出しシーケンスを表す一連のinit()機能を示している。モニタマネージャ1102は、初期化機能を開始するためにHWaccessモジュール1116を初期化する。続いて、モニタマネージャ1102は被モニタリング装置に関する情報を得、被モニタリング装置と通信するために被モニタリング装置に割り当てられたIPアドレスを用いる。モニタマネージャ1102は、被モニタリング装置のコンフィグレーション情報を得るためにDeviceODBC1104にアクセスする。モニタマネージャ1102に返送されたコンフィグレーション情報は、例えば、被モニタリング装置のIPアドレスと、各々のプロトコルのためのパラメータ名及び関連値と、ベンダ/製造メーカー及び被モニタリング装置のモデル情報とを含む。一旦、IPアドレスが得られると、モニタマネージャ1102は、図35のCDeviceFactoryクラス1302により装置モジュール1110のクラス構造に基づいてソフトウェアオブジェクトを生成するために、IPアドレスと、パラメータ名と、各々のプロトコルについての関連値とを設定する。装置ソフトウェアオブジェクトが連続的に生成されるとき、HWaccessモジュール1116は、生成された装置ソフトウェアオブジェクトに記憶されるべき被モニタリング装置からの一意のIDと、モデルと、ベンダとを得るために用いられる。
一旦、ベンダと、モデルと、一意のIDとが装置ソフトウェアオブジジェクトから得られると、MonitorMnager1102は、被モニタリング装置から受信された情報を用いてデータベース(例えば、DeviceODBC1104)を更新する。図13は1つの装置を示しているが、obtainConfigからupdateConfigまでの段階は、外部ソースにおいて特定の装置全てを網羅するために繰り返される。更に、図23、24、25及び26において指定された各々のプロトコルが初期化される。図24、25及び26におけるODBCに対応するデータベーステーブルはアクセスされ、被アクセス装置に対する必要な情報は、被アクセス装置からの状態情報収集がより早くなるように、外部記憶装置から内部データ構造に転送される。
図14は、図11に示すような、MonitorMnager1102により被モニタリング装置の状態を決定するための一連の状態モニタ機能を示している。obtainStatus機能が装置から生じてHWaccessにいくとき、下で説明するように、CHWaccessクラスは順に、異なるパラメータを有する抽象クラスにより、図23、24、25及び26において説明されている各々のプロトコルに対するobtainStatus機能呼び出しを発する。各々のプロトコルモジュールは、被モニタリング装置から状態情報を抽出するために必要な情報を既に貯えており、その情報は図13で表している初期化時間の間に一度アクセスされたものである。それ故、状態情報は、状態モニタリングの間に外部ソースにアクセスすることなく、被モニタリング装置から即座に抽出されることができる。このプロセスは、図15に示すようなベクトルにおいて記憶された被モニタリング装置全てに亘って繰り返される。
図15を参照するに、図13及び14に示すように、モニタマネージャ1102により及び図35のCDeviceFactory1302により生成されDeviceに対して基準を有するベクトル1500を示している。モニタマネージャ1102は、例えば、そのベクトルにおいて、図35のCDeviceFactory1302により生成されたCDeviceオブジェクト1504へのポインタ及びCDeviceオブジェクト1502へのポインタのように、装置ポインタを記憶する。ベクトルシーケンスは、被モニタリング装置の状態を得るために繰り返される。被モニタリング装置のポーリングは、obtainStatusコマンドを出すことにより装置オブジェクトに亘って実行される。一旦、ソフトウェアオブジェクトの各々の状態が得られると、そのような状態はDeviceODBC1104により更新される。状態モニタシーケンスについては図14のところで説明したので、ここでは繰り返して説明しない。
テーブル1に示すDeviceInfo構造は、一例の被モニタリング装置に関する情報を示している。DeviceInfo構造は、電話番号に加えて、コンタクトする人のe−mailアドレスを含む。
モニタリングデータベース
図19は、各々の被モニタリング装置(又、図1を参照されたい)に対する装置情報を含むモニタデータベースの構成を示している。図19に示すように、パラメータの集合、即ち、各々の通信プロトコル(例えば、SNMP、HTTP及びFTP)各々の1つの集合は、各々の被モニタリング装置に対する装置情報DeviceInfo1902に関連している。更に、特定のプロトコル(例えば、SNMP1908、HTTP1910及びFTP1912)に対するパラメータの各々の集合は、例えば、sPar1Name及びsPar1Value等のパラメータ名及び値の対のリストとして構成される。各々のプロトコルに対するパラメータ数は、図19に示す数より短い場合も長い場合もあり得る。例えば、ユーザ名及びパスワードはFTPパラメータとして記憶されることが可能である一方、コミュニティ名及びパスワードは所定の被モニタリング装置に対するSNMPパラメータとして記憶されることが可能である。図19に示しているように、モニタデータベースは又、DeviceHistory1904及びEnumCorrespondence1906に関連する情報を含む。図17は、種々の通信プロトコルにより用いられるパラメータを渡すために用いられるSParameterデータ構造1700を示している。SParameterは2つのファイル、即ち、m_sParName1702及びm_sParValue1704を含み、それらはパラメータの名前および値をそれぞれ表す。
図18は、各々の被モニタリング装置に関連したソフトウェアオブジェクトにモニタデータベースから得られた各々のプロトコルに対するパラメータのベクトルを渡すために用いられるマップ構造1800を示している。マップ構造1800は、各々のプロトコル/キーフィールド1802、1804及び1806を、図17に示すSParameterフォーマットに従って配列された、パラメータ1808、1810及び1812それぞれの対応するベクトルに関連付ける。例えば、SNMPプロトコル1802に対して、パラメータ1808のベクトルは、SNMPプロトコルを有する被モニタリング装置にアクセスするために用いられる、パラメータ名、パラメータ値の対のリストを含むことが可能である。例えば、ベクトル1808に記憶されたSNMPパラメータ名は、対応するパラメータ値と共に、“コミュニティ名”及び“パスワード”を含むことが可能である。しかしながら、マップ構造1800の構成はいずれの数のプロトコル及び関連パラメータベクトルを可能とし、図18に示すSNMP、HTTP及びFTPプロトコルに限定されるものではない。
支援データベース
図20乃至22は、図10に示している支援データベース1024の構成を示している。各々の被モニタリング装置から状態情報を抽出するために必要な情報を含む支援データベースは通信プロトコルにより構成される。例えば、被モニタリング装置から情報を抽出するために用いられるSNMP関連支援情報のための支援データベースの構成を示す図20は、SNMPVector2002、SNMPComVendoeStatus2004、EnumCorrespondence2006及びSNMPVenderModelStatus2008データ構造を含む。支援データベースにおける所定のデータ構造は、抽出を制御するパラメータと共に、抽出される状態情報のタイプを一意に識別するパラメータを含むことが可能である。例えば、SNMPComVendorStatusデータベース構造2004は、抽出される情報(例えば、トナーレベル)のタイプを識別するENUMフィールド2009と、他のプロトコルに関連する抽出された情報の重要性又は重みを表すnRelativePriorityフィールド2010とを含む。それ故、同じ情報が、2つ以上のプロトコルを用いて、被モニタリング装置から抽出されることが可能である場合、nRelativePriority値は、プロトコルの抽出された値が用いられる必要がある相対的表示を与える。例えば、HTTPは、トナーレベルが“高い”か又は“低い”かを示す情報を抽出することができる一方、SNMPプロトコルが残りのトナーの割合のレベルを抽出することができる場合、SNMPに対するトナーレベルについての優先順位レベルは対応するHTTPの値より高い。更に、支援データベースは、プロトコル値が0乃至32,000の範囲内にあるシステムにおいて優先順位値10,000を与える。
図21及び22は、支援データべース1024にHTTP及びFTP位置に含まれるデータ構造を示し、図20に関連して上で説明したデータ構造に類似しているデータ構造を含む。
本発明により用いられる代表的なenumタイプは、下で説明するinfoTypeである(enumタイプは単なる例示であって、それ故、本発明を限定するように解釈されるべきではない)。
infoType(typedef int infoType)
この段落は、infoType(int)の定義について説明する。0乃至99の値の範囲はデータタイプに割り当てられる。100乃至499の値の範囲はDeivice Informationに割り当てられる。500乃至1999の値の範囲は、標準的MIBのパラメータを含む共通パラメータに割り当てられる。範囲2000乃至3999はリコー社固有情報に割り当てられる。範囲4000乃至4999はXeroxに割り当てられる。範囲5000乃至5999はLexmarkに割り当てられる。範囲6000乃至6999はHPに割り当てられる、値は次のように定義される。
即ち、infotype{eNotDefine=0,eDeviceInformation=1,eStatusInformation=2,eVendor=100,eModel,eUniqueID,eIPAddress,eCompanyName,eStreet,eCity,eState,eZipCode,eLocation,eContactPerson,ePhoneNumber,eEMailAddress,eDateTime=500,eHrDeviceErrors,eLowPaper,eNoPaper,eLowToner,eNoToner,eDoorOpen,eJammed,eOffline,eServiceRequested,ePrtGeneralConfigChanges=600,aPrtLifeConunt,ePrtAlertDesc1,ePrtAlertDesc2,ePrtAlertDesc3,ePrtAlertDesc4,ePrtAlertDesc5,eBlack=700,eMagenta,eCyan,eYellow,eTonerCollector=800,eBlackDeveloper=810,eColorDeveloper,eFuser=820,eDrum=830,eTransfer=840,eMaintenanceKit=850,eOilKit=860,eStationInfo1=901,eStationInfo2,eStationInfo3,eStationInfo4,eStationInfo5,eRicohEngineCounterTotal=2000,eRicohEngineCounterPrinter,eRicohEngineCounterFax,eRicohEngineCounterCopier}、である。
EerrorCode
次に示すコードは単なる例示であり、更なるコードを示す集合に追加することが可能である。0乃至99の範囲は残しておく。範囲100乃至199はSMTPのためのものであり、範囲200乃至299はPOP3のためのものであり、範囲300乃至399はSocketのためのものであり、範囲400乃至499はHTTPのためのものであり、範囲500乃至599はFTPのためのものである。他の規定されていない範囲は、必要に応じて、ユーザにより規定されることが可能である。
即ち、erum EsroorCode(eNoError=0,eUnkownError=1,eSomeError,eDompleteFaluer,eSomeDeviceCreationError=20,eDeviceCreationError,eNoDeviceCreated,eObtainConfigError,eSaveStatusError,eObtainUniqueIDError,eObtainStatusError,eStartSendError,eSomeData SendError,eCompleteDataSendFalure,eEndSendError,eSendHeloCommnandFailed=100,eSendMailCommnadFailed,eSend RcptCommandFailed,eSendDataCommand Failed,eSendDataFailed,eSendQuitCommand Failed,eSendUserCommandFailed=200,eSendPassCommandFailed,eSendQuit Pop3CommandFailed,eCreateSocketFailed=300,eConnectSocketFailed,eBadRequest=400,eUnauthorized,ePaymantRequested,eForbidden,eNotFound,eMethodnotAllowed,eNOtAcceptable,eProxyAuthenticationRequested,eRequestTimeOut,eConflict,eGone,eLengthRequested,ePreconditionFailed,eRequestEntityTooLarge,eRequestURIToolarge,eIntarnalServerError=450,wNotImplemented,eBadGateway,eServiceUnavailable,eGatewayTimeOut,eHTTPVersionNotSupported,eMultipleChoices=480,eMovedPermanently,eFound,eSeeOther,enotModified,eUseProxy,eTemporaryRidirect)、である。
装置ODBCモジュールにおける抽象クラス
図16は、本発明に従った装置ODBCモジュールクラス構造について示しており、CAbsProtocolParametersクラスが装置ODBCモジュールにおいてどのように用いられるかを示している。CAbsProtocolParametersクラスは、特定の通信プロトコルを用いて、被モニタリング装置にアクセスするための情報を得るために及びモニタデータベース1014と接続するようにデザインされている。CAbsProtocolParametersクラスは、次のようなプロトコルに依存しない2つの仮想関数を有する。
(1)std::string obtainProtocolName(void)及び、
(2)bool obtainParameterVector(std::vector<SParameter>&out_ParameterVector,const std::string in_sIP)
HWaccessモジュールにおける抽象クラス
図23はHWaccessパッケージのためのパッケージを示す図である。このパッケージは、種々のネットワークプロトコル(例えば、SNMP、HTTP及びFTP)
を用いてネットワーク装置に関する情報を得、モニタリングされるネットワーク装置を識別するために責任を負う。このパッケージは、HTTP2302、SNMP2304及びFTP2306のパッケージ、並びに、CHWaccess2300,CAbsProtocol2308及びCRecordSet2310のクラスを含む。パッケージHTTP2302、SNMP2304及びFTP2306は、それらから情報を得るためにネットワーク装置にアクセスするためのネットワークプロトコルを実行する。例えば、HTTPパッケージ2302は、ウェブページから情報を得るためにネットワーク装置のウェブページにアクセスするためのHTTPプロトコルを実行する。クラスCHWaccess2300は、ネットワーク装置から必要な情報を得るためにプロトコルパッケージ全てを管理する。クラスCAbsProtocol2308は、いずれかのプロトコルを表す抽象クラスである。このクラスは、CHWaccess2300とプロトコルパッケージとの間のインタフェースを提供する。クラスCAbsProtocol2308は、全てのプロトコル2308が必要な情報をCHWaccess2300に提供するCHWaccess2300に、図23に示すような共通機能の集合を提供する。後で図に示すようなCAbsProtocol2308からもたらされるクラスは、適切なプロトコルのための機能の各々に対して方法を提供する。クラスCRecordSet2310は、どのネットワーク装置のベンダ及びモデルが支援されるか及びそれらのネットワーク装置からどのような情報を得るべきかについての情報を得るためにデータベースへの各々のプロトコルパッケージアクセスを提供するMicrosoft Foundation Classのクラスである。
図24は、SNMPパッケージ2304のためのパッケージを示す図である。このパッケージは、SNMPプロトコルによりネットワーク装置から得られる情報及びSNMPプロトコルにより支援されるネットワーク装置のベンダ及びモデルを決定するために、並びに、ネットワーク装置から情報を得るためにSNMPプロトコルによりネットワーク装置にアクセスするために責任を負う。このパッケージは、パッケージSNMPaccess2404及びSNMPODBC2406とクラスCSNMPProtocol2401とを含み、図23に示すようなクラスCAbsProtocol2400とCRecordSet2408とを用いる。SNMPaccess2404は、ネットワーク装置にアクセスするため及びネットワーク装置から情報を得るためにSNMPプロトコルを実行する。SNMPODBCパッケージ2406は、SNMPプロトコルにより支援された
ネットワーク装置のネットワークのベンダ及びモデルに関してデータベースからの情報にアクセスし、それを得、その情報はSNMPプロトコルによりネットワーク装置から得られる。CSNMPProtocolクラス2402はCAbsProtocolクラス2400からもたらされるクラスである。CSNMPProtocol2402は、SNMPプロトコルを用いて、ネットワーク装置から必要な情報を得る。CSNMPProtocol2402は、図23に示すようなCAbsProtocol2400のインタフェース機能全てに対する方法を提供する。図24は又、CSNMPProtocol2402が用いるパッケージSNMPaccess2404とSNMPODBC2406との機能を示している。SNMPODBCパッケージ2406は、データベースから情報を得るためにクラスCRecordSet2408を用いる。
図25は、HTTPパッケージ2302のためのパッケージを示す図である。このパッケージは、HTTPプロトコルによりネットワーク装置から得られる情報及びHTTPプロトコルにより支援されるネットワーク装置のベンダ及びモデルと決定するために、並びに、ネットワーク装置から情報を得るためにHTTPプロトコルによりネットワーク装置にアクセスするために、責任を負う。このパッケージは、図23に示すように、パッケージHTTPaccess2504及びHTTPODBC2506と、クラスCHTTPProtocol2502とを含み、クラスCAbsProtocol2500及びCRecordSet2508を用いる。HTTPaccessパッケージ2504は、ネットワーク装置にアクセスするために及びネットワーク装置から情報を得るためにHTTPプロトコルを実行する。HTTPODBCパッケージ2506は、HTTPプロトコルによりネットワーク装置から得られる情報と、HTTPプロトコルにより支援されるネットワーク装置のベンダ及びモデルに関するデータベースからの情報にアクセスし、それらを得る。CHTTPProtocolクラス2502はCAbsProtocolクラス2500からもたらされるクラスである。CHTTPProtocol2502は、HTTPプロトコルを用いて、ネットワーク装置から必要な情報を得る。CHTTPProtocol2502は、図23に示すようなCAbsProtocol2500のインタフェース機能全てに対する方法を提供する。図25は又、CHTTPProtocol2502が用いるパッケージHTTPaccess2504とHTTPODBC2506との機能を示している。HTTPODBCパッケージ2506は、データベースから情報を得るためにクラスCRecordSet2508を用いる。
図25は、FTPパッケージ2306のためのパッケージを示す図である。このパッケージは、FTPプロトコルによりネットワーク装置から得られる情報及びFTPプロトコルにより支援されるネットワーク装置のベンダ及びモデルと決定するために、並びに、ネットワーク装置から情報を得るためにFTPプロトコルによりネットワーク装置にアクセスするために、責任を負う。このパッケージは、図23に示すように、パッケージFTPaccess2604及びFTPODBC2606と、クラスCFTPProtocol2602とを含み、クラスCAbsProtocol2600及びCRecordSet2608を用いる。FTPaccessパッケージ2604は、ネットワーク装置にアクセスするために及びネットワーク装置から情報を得るためにFTPプロトコルを実行する。FTPODBCパッケージ2606は、FTPプロトコルによりネットワーク装置から得られる情報と、FTPプロトコルにより支援されるネットワーク装置のベンダ及びモデルに関するデータベースからの情報にアクセスし、それらを得る。CFTPProtocolクラス2602はCAbsProtocolクラス2600からもたらされるクラスである。CFTPProtocol2602は、FTPプロトコルを用いて、ネットワーク装置から必要な情報を得る。CFTPProtocol2602は、図23に示すようなCAbsProtocol2600のインタフェース機能全てに対する方法を提供する。図26は又、CFTPProtocol2602が用いるパッケージFTPaccess2604とFTPODBC2606との機能を示している。FTPODBCパッケージ2606は、データベースから情報を得るためにクラスCRecordSet2608を用いる。
図23乃至26に示すような、各々のプロトコルパッケージ、HTTP2302、SNMP2304及びFTP2306は、装置から情報を得るためにネットワーク装置へのアクセスを管理するクラスを含む。そのクラスは、ネットワーク装置からの情報にアクセスするためにプロトコルを実行する方法を備える抽象クラスCAbsProtoocol2308からもたらされる。抽象クラスはインタフェース機能のみを提供するが、いずれのプロセスを実行することはない。その抽象クラスから導き出されたクラスはインタフェース機能のためのプロセスを実行する方法を提供する。異なる導き出されたクラスがインタフェース機能のプロセスを異なるように実行することができるように、抽象クラスについて、多くの導き出されたクラスが存在することが可能である。例えば、CAbsProtocolのインタフェース機能はobtainStatus()である。導き出されたクラスCSNMPProtocol2402ha,SNMPを用いて練っておワーク装置の状態情報を得るための方法を提供する機能obtainStatus()を含む一方、導き出されたクラスCHTTPProtocol2502は、HTTPを用いてネットワーク装置の状態情報を得るための方法を提供する機能obtainStatus()を含む。HWaccessパッケージのデザインから、新しいプロトコルを用いてネットワーク装置にアクセスするために新しいパッケージを管理するCAbsProtocolの導き出されたクラスを含む新しいパッケージを加えることにより、新しいプロトコルはそのシステムに加えられることができる。抽象クラスは、システムの将来の拡張を可能にする。
図27A乃至27Dは、ネットワーク装置から情報を得るように及びアクセスするようにプロトコル全てを維持するために図23のHWaccessパッケージに用いられるデータ構造を示している。図27Aにおいて、データ構造はCAbsProtocol2308に対するポインタのベクトル500である。クラスCHWaccess2300はこのデータ構造を含み、用いる。ベクトル500がCAbsProtocol2308から導き出されたクラスにポインタを含むにも拘らず、CHWaccess2300は、CAbsProtocol2308にポインタを含むようにベクトルをみて、仮想機能呼び出し機構によりCAbsProtocol2308のインタフェース機能を呼び出す。実際には、CHWaccess2300は、CAbsProtocol2308の導き出されたクラスのインタフェース機能を呼び出す。例えば、ベクトルの第1エントリにおけるCAbsProtocol502に対するポインタは導き出されたクラスCSNMPProtocol2402に対するポインタであることが可能であり、ベクトルの第2エントリにおけるCAbsProtocol504に対するポインタは導き出されたクラスCHTTPProtocol2502に対するポインタであることが可能であり、ベクトルの第3エントリにおけるCAbsProtocol506に対するポインタは導き出されたクラスCFTPProtocol2602に対するポインタであることが可能である。従って、CHWaccess2300がベクトルにおいてCAbsProtocol2308のインタフェース機能を呼び出すとき、それは、実際には、CSNMPProtocol2402、CHTTPProtocol2502及びCFTPProtocol2602のインタフェース機能を呼び出す。ベクトルにおける抽象クラスCAbsProtocol2308の使用は、いずれのプロトコルがネットワーク装置からの情報にアクセスし及びその情報を得るために用いられるようにする。抽象クラスCAbsProtocol2308は、どのプロトコルが用いられているかについての詳細を隠す。
図27Bは、それらから状態情報を得るために用いられる情報とSNMPによりモニタリングされるネットワーク装置のベンダ及びモデルに関する情報とを維持するためにCSNMPProtocolにより用いられるデータ構造を示している。そのデータ構造はマップ510である。マップ510に対するキーは、ネットワーク装置のベンダ名を表すストリング512である。マップ510に対する値は他のマップ514である。マップ514に対するキーはネットワーク装置のモデル名を表すストリング516である。マップ514の値は対のベクトル518である。それらの対は構造SOIDinfoTypeと整数とを含む。構造SOIDinfoTypeは、SNMPを用いたネットワーク装置から単一の状態情報を得るために用いられる情報を含む。それ故、対のベクトル518は、固有のベンダ及びモデルに対してネットワーク装置についての状態情報全てを得るための情報を含む。マップ510は、図28において説明するプロセスを用いて、情報と共に初期化される。マップ510は、ベンダについてのストリング512及びモデルについてのストリング516に対するサンプルエントリを示している。
図27Cは、それらから状態情報を得るために用いられる情報とHTTPによりモニタリングされるネットワーク装置のベンダ及びモデルに関する情報とを維持するためにCHTTPProtocolにより用いられるデータ構造を示している。そのデータ構造はマップ520である。マップ520に対するキーは、ネットワーク装置のベンダ名を表すストリング522である。マップ520に対する値は他のマップ524である。マップ524に対するキーはネットワーク装置のモデル名を表すストリング526である。マップ524の値はSWebPageInfoのベクトル528である。構造SWebPageInfoは、HTTPを用いてネットワーク装置のウェブページから状態情報全てを得るために用いられる情報を含む。それ故、SWebPageInfoのベクトル528は、ウェブページの全てから固有のベンダ及びモデルに対してネットワーク装置についての状態情報全てを得るための情報を含む。マップ520は、図28において説明するプロセスを用いて、情報と共に初期化される。マップ520は、ベンダについてのストリング522及びモデルについてのストリング526に対するサンプルエントリを示している。
図27Dは、それらから状態情報を得るために用いられる情報とFTPによりモニタリングされるネットワーク装置のベンダ及びモデルに関する情報とを維持するためにCFTPProtocolにより用いられるデータ構造を示している。そのデータ構造はマップ530である。マップ530に対するキーは、ネットワーク装置のベンダ名を表すストリング532である。マップ530に対する値は他のマップ534である。マップ534に対するキーはネットワーク装置のモデル名を表すストリング536である。マップ534の値はSDirFileStatusInfoのベクトル538である。構造SDirFileStatusInfoは、FTPを用いてネットワーク装置のFTPファイルから状態情報全てを得るために用いられる情報を含む。それ故、SDirFileStatusInfoのベクトル538は、FTPファイルの全てから固有のベンダ及びモデルに対してネットワーク装置についての状態情報全てを得るために用いられる情報を含む。マップ530は、図28において説明するプロセスを用いて、情報と共に初期化される。マップ530は、ベンダについてのストリング532及びモデルについてのストリング536に対するサンプルエントリを示している。
図28は、システムによりモニタリングされるネットワーク装置のベクトルに関する情報と共にプロトコルオブジェクト全てを初期化するプロセスを示すフローチャートを示している。類似するプロセスは、システムによりモニタリングされるネットワーク装置のモデルに関する情報と共にプロトコルオブジェクト全てを初期化するために用いられる。モニタリングされる所定のネットワーク装置に対して、ネットワーク装置のベンダ及びモデルは、どのような情報がネットワーク装置から得られる必要があるかを判定するために、知られる必要がある。ネットワーク装置からの情報にアクセスするため及びその情報を得るために用いられる各々のプロトコルオブジェクトは、どのようにネットワーク装置から情報を得るか及びどのような情報を得るかについて判定するために、ベンダ及びモデルを知る必要がある。初期化を必要とするプロトコルオブジェクトは、CSNMPProtocol、CHTTProtocol及びCFTPProtocolであるCAbsProtocol2308から導き出されたクラスに対応するプロトコルオブジェクトである。プロトコルオブジェクトの初期化は、プロトコルに対応する図27B、27C及び27Dに示しているデータ構造への付加情報を含む。システムのデザインは、図27B、27C及び27Dのデータ構造に付加された情報はデータベースからもたらされるが、それらはテキストファイル又はスプレッドシートのような他の外部ソースからもたらされることが可能である。図27Aに示すCAbsProtocol2308に対するポインタのベクトルはプロトコルオブジェクト全てを初期化するために用いられる。そのフローチャートのプロセスは、そのベクトルにより2回進められる。1回目は、そのベクトルにより進められ、プロトコルオブジェクトはネットワーク装置のベクトルを見つけるために用いられる。ベンダ名がプロトコルオブジェクトの1つから得られる場合、プロトコルオブジェクト全ては、ベクトルが2回目を進められるとき、ベンダ名と共に初期化される。段階602において、プロトコルオブジェクトはCAbsProtocolに対してポインタのベクトルから得られる。プロトコルオブジェクトは、ネットワーク装置(例えば、SNMP、HTTP及びFTP)にアクセスするためにプロセスの1つに対応する。段階604において、ベクトルから得ることができるいずれの更なるプロトコルオブジェクトがあるかどうかを判定するためにチェックがなされる。このチェックは、ベクトルの終点が達したかどうかを判定することによりなされる。更なるプロトコルオブジェクトが得られない場合、システムはネットワーク装置のベンダ名を得ることができない。ネットワーク装置のプロトコルオブジェクトの初期化及びベンダ名を得ることができなかったプロトコルオブジェクト全ては段階606で終了する。ベクトルから得られるプロトコルオブジェクトある場合、そのプロトコルオブジェクトは、段階608においてネットワーク装置のベンダ名を得るために用いられる。段階610において、プロトコルオブジェクトがネットワーク装置のベンダ名を得ることができるかどうかを判定するためにチェックがなされる。プロトコルオブジェクトは、ネットワーク装置のベンダを判定するために用いられるデータベースから情報を得る。ベンダ名がプロトコルオブジェクトにより得られない場合、プロセスは、段階602に戻ることにより、ベクトルにおいて他のプロトコルオブジェクトを用いるベンダ名を得るように試みる。ベンダ名がプロトコルオブジェクトから得られる場合、プロセスは、段階612においてそのベンダ名と共にプロトコルオブジェクトを初期する。プロトコルオブジェクトは、得られたベンダ名のネットワーク装置から状態情報を得る方法についての情報と共に初期化される。図27B、27C及び27Dで示されているデータ構造に情報が付加される。段階614において、プロトコルオブジェクトはCAbsProtocolに対してポインタのベクトルから得られる。段階616において、ベクトルから得ることができるいずれの更なるプロトコルオブジェクトがあるかどうかを判定するためにチェックがなされる。更なるプロトコルオブジェクトが得られない場合、プロトコルオブジェクト全てはベンダ名を共に初期化され、プロトコルオブジェクト全ての初期化は段階606において終了する。プロトコルオブジェクト全てはベンダに関する情報を更新した。ベクトルから得られるプロトコルオブジェクトがない場合、段階618においてベンダ名とともにプロトコルオブジェクトを初期化する。丁度段階612のように、プロトコルオブジェクトは、得られたベンダ名のネットワークオブジェクトから状態情報を得る方法に関する情報と共に初期化される。ベンダ名と共にプロトコルオブジェクトを初期化した後、プロセスは、段階614に戻ることによりベンダ名と共に他のプロトコルオブジェクトを初期化する。
図28の段階608において、プロトコルオブジェクトはネットワーク装置のベンダ名を得る。SNMP、HTTP及びFTPプロトコルオブジェクトはベンダ名を得るためにネットワーク装置にアクセスすることができる。ベンダ名が見つけられることに関する情報はデータベースから得られる。プロトコルにより支援されるネットワーク装置のベクトルに関する情報と共に、データベースはネットワーク装置のベンダ名を位置づけるために情報を提供する。SNMPに対して、ネットワーク装置のMIBにおいて企業オブジェクト識別子を位置付けるために用いられるオブジェクト識別子及びベンダ名に関連する企業オブジェクト識別子に関する情報は、ベンダ名を得るためにSNMPプロトコルオブジェクトにより用いられる。HTTPに対して、ウェブページにおける位置とウェブページに関する情報は、ベンダ名を得るためにHTTPプロトコルオブジェクトにより用いられる。FTPに対して、FTPファイルにおける位置とFTPファイルに関する情報は、ベンダ名を得るためにプロトコルオブジェクトにより用いられる。
図29A乃至29Dは、異なるプロトコルに対する固有のベンダ及びモデルのネットワーク装置の状態情報を得るために用いられる異なるデータ構造を示している。異なるプロトコルは同じ状態情報を得るために用いられることが可能である。しかしながら、1つのプロトコルにより得られた状態情報は、更なる情報を提供するプロトコルから得られる状態情報が用いられる必要があるように、他の情報以上の情報を提供することが可能である。例えば、プリンタカートリッジのトナーレベルは、SNMP及びHTTPを用いて、ネットワークプリンタから得られる。SNMPにより得られたトナーレベルについての状態情報は“FULL”、“OK”
又は“EMPTY”であることが可能である一方、HTTPにより得られる同じ状態情報は、残っているトナーの割合であることが可能である。個の例においては、HTTPを用いて得られる状態情報は、HTTPにより得られる状態情報が用いられる必要があるように、更に報知性が高いものとなっている。図29A乃至29Dのデータ構造は、最も報知性の高い状態情報が得られるように、構成される。図29Aは、SNMPプロトコルを用いて、固有のベンダ及びモデルのネットワーック装置に対する状態情報を得るために用いられるデータ構造を示している。そのデータ構造は、対が構造SOIDinfoType706及び整数から成る対(例えば、702及び704)のベクトル700である。構造SOIDinfoType706は、SNMPを用いて、ネットワーク装置から固有の状態情報を得るために用いられる情報を含む。SOIDinfoType706の構造については図29Aに示している。その対の整数は状態情報の優先順位又は重みを決定する。その整数の値がより大きい程、より報知性が高いため、得られた状態情報はより保持される傾向にある。その整数の値がより小さい程、他のプロトコルから得られた同じ状態情報が保持される傾向にある。CSNMPProtocol2402は、どのような状態情報をネットワーク装置から得るべきかを決定するためにベクトル700を用いる。ベクトル700に置かれた情報は、固有のベンダ及びモデルに対して、図27Bにおけるデータ構造から得られる。
図29Bは、HTTPプロトコルを用いて、固有のベンダ及びモデルのネットワーク装置についての状態情報を得るために用いられるデータ構造を示している。そのデータ構造は、対が構造SKeyValueInfo714及び整数から成る対(例えば、710及び712)のベクトル708である。構造SKeyValueInfo714は、HTTPを用いて、ネットワーク装置のウェブページから固有の状態情報を得るために用いられる情報を含む。SKeyValueInfo714の構造については図29Bに示している。そのような対における整数は状態情報の優先順位又は重みを決定する。CHTTPProtocol2502は、どのような状態情報をネットワーク装置から得るべきかを決定するためにベクトル708を用いる。ベクトル708に置かれた情報は、固有のベンダ及びモデルについて図27Cにおけるデータ構造から得られる。
図29Cは、FTPプロトコルを用いて、固有のベンダ及びモデルのネットワーク装置についての状態情報を得るために用いられるデータ構造を示している。そのデータ構造は、対が構造SKeyInfoType722及び整数から成る対(例えば、718及び720)のベクトル716である。構造SKeyInfoType722は、FTPを用いて、FTPファイルから固有の状態情報を得るために用いられる情報を含む。SKeyInfotype722の構造については図29Cに示している。そのような対における整数は状態情報の優先順位又は重みを決定する。CFTPProtocol2602は、どのような状態情報をネットワーク装置から得るべきかを決定するためにベクトル716を用いる。ベクトル716に置かれた情報は、固有のベンダ及びモデルについて図27Dにおけるデータ構造から得られる。
図29Dは、種々のプロトコルにより得られた状態情報を維持するために用いられるデータ構造を示している。それは、どのプロトコルが状態情報を得るために用いられたかに関する情報を維持しない。そのデータ構造はマップ724である。マップ724に対するキー726はinfoTypeである。infoTypeは情報のタイプを表す数である。マップ724に対する値728は対である。その対はストリング及び整数から成る。その対におけるストリングは、infoTypeに対応するネットワーク装置から得られる状態情報である。その対における整数は、プロトコルから得られる状態情報の優先順位又は重みである。例として、プリンタカートリッジにおける黒色トナーのレベルを表すことが可能である700のinfoTypeに対して、そのような対はすとリング“75%”及び整数10000を有することが可能である。ストリング“75%”は、トナーの75%がカートリッジに残っていること、及び整数10000は状態情報の優先順位又は重みであることを表す。CSNMPProtocol2402,CHTTPProtocol2502及びCFTPProtocol2602は、マップ724に対してネットワーク装置から得られる状態情報を付加する。
図30は、図27D、29C及び29Dのデータ構造がFTPプロトコルを用いてネットワーク装置から状態情報を得るためにどのように用いられるかについての例を示している。サンプルデータを含むマップ800は図27Dに示すようなデータ構造に対応する。マップ800におけるサンプルデータは、FTPを用いて、モデルAficio120とベンダRicohに対するネットワーク装置についての状態情報にアクセスするために情報を提供する。ベクトルにおける各々の構造、即ち、SDirFileStatusInfo1、SDirFileStatusInfo2及びSDirFileStatusInfo3は、ネットワーク装置におけるFTPファイルからの状態情報にアクセスするために情報を提供する。SDirFileStatusInfo1802は、directory/pubにおいてFTPファイルstatus.txtからネットワーク装置からの状態情報にアクセスするための情報を含む。SkeyInfoType及び整数の対のベクトルを用いて、FTPファイルから5つの状態情報の値を得ることができる。ベクトルの対における各々のSkeyInfoTypeは、図30に示すようなinfoTypeに対応する異なる状態情報に対応する。マップ804は、図29Dに示すようなデータ構造に対応するサンプルデータを含む。マップ804は、他のプロトコルにより前に得られた状態情報を含む。マップ804は、infoType600、610及び700に対応する3つの状態情報を含む。infoType600についての状態情報は、500の重みをもつ場合“ペーパーが少ない”である。infoType610についての状態情報は、10000の重みをもつ場合“24321”である。
infoType70についての状態情報は、2500の重みを持つ場合“良好”である。FTPプロトコルを用いてどの状態情報が得られるかを決定するために、ベクトル806が得られるべき状態情報を得るために生成される。ベクトル806に付加されるべき情報は、マップ800における情報(特に、構造SDirFileStatusInfo1802における対のベクトル)とマップ804における状態情報とにより決定される。マップ800から得られる状態情報がマップ804において未だ得られていない場合、プロセスは、ベクトル806における状態情報を得るために必要な情報を付加する。マップ800から得られる状態情報がマップ804において既に得られている場合、FTPにより得られる状態情報が重みを比較することによりマップ804における状態情報より法知性が高いかどうかをチェックする。FTPにより得られた状態情報の重みがマップ804において既に得られた状態情報より重みが大きい場合にのみ、状態情報を得るために情報をベクトル806に付加する。SDirFileStatusInfo1 802に対応するFTPにより得られる状態情報は、fileType600、610、620,700及び710である。infoType620及び710は、状態情報がFTPを用いて得られる必要があるように、状態情報マップ804にはない。それ故、620(SKeyInfoType3)及び710(SKeyInfoType5)に対応する状態情報を得るために用いられる情報がベクトル806に付加される。infoType600及び700は状態情報マップ804にある。802において示されるようなこれらのinfoTypeに対するFTPにより得られる状態情報の重みは、状態情報マップ804におけるそれらの重みより大きい。従って、FTPによりこれら2つのinfoTypeに対して得られた状態情報は、マップ804にある状態情報より報知性が高い。それ故、infoType600(SKeyInfoType1)及び700(SKeyInfoType4)についての状態情報を得るための情報がベクトル806に付加される。infoType610は状態情報マップ804にある。802において示されているようなこのinfoTypeに対してFTPにより得られる状態情報の重みは状態情報マップ804における重みより小さい。従って、FTpによりこのinfoTypeにたいして得られる状態情報は、マップ804にある状態情報より報知性が低い。それ故、infoType610(SKeyInfoType2)についての状態情報を得るための情報はベクトル806には付加されない。このベクトル806は、infoType600、620,700及び710についての状態情報を得るためにFTPプロトコルにより用いられる。2つの状態情報値が状態情報マップに付加され、2つの状態情報値は、FTPが状態情報を得ることに成功する場合、状態情報マップ804において重ね書きされる。図30は、FTPプロトコルについての状態情報を得るためにどのようにデータ構造が用いられるかについての例を示している。図27B、27C、29A及び29Bのデータ構造を用いる類似プロセスは、SNMP及びHTTPについての状態情報を得るために用いられる。
図31Aは、状態情報を得る方法を示すフローチャートである。全てのプロトコルはここで示す同じ方法を用いる。固有の状態情報を得るためにプロトコルオブジェクトを用いる前に、プロトコルオブジェクトは、状態情報が他のプロトコルオブジェクトにより既に得られたかどうかを判定するためにチェックする。状態情報が既に得られている場合、状態情報が、他のプロトコルオブジェクトから既に得られたもの以外の更なる情報を得るかどうかを判定するようにチェックする必要がある。最も報知性の高い状態情報は保持される。このフローチャートの方法は、最も報知性が高い状態情報が得られるように構成される。図27B、27C及び27Dのデータ構造510、520および530は、どのような状態情報が得られるべきかを決定するために対応するプロトコルにより用いられる。段階3102において、ネットワーク装置から状態情報を得るために用いられる情報を含む対のベクトルがエントリを伴わずに生成される。その対のベクトルは、用いられるプロトコルに依存して、図19A乃至29Cのデータ構造700、708又は716の1つに対応する。段階3104において、所定のベンダ及びモデルのネットワーク装置から状態情報を得るために用いられる情報が得られる。全てのプロトコルオブジェクトは、全てのベクトル及びモデルに対してどのような状態情報をそれが支援するかについての情報を維持する。プロトコルオブジェクト全ては、図28に示している初期化プロセルによりこの情報と共に初期化される。1つの状態情報を得るために用いられる情報は、用いられるプロトコルに依存して、図29A、29B及び29Cの構造SOIDinfoType706、SKeyValueInfo714及びSKeyInfoType722の1つに記憶される。段階3106において、ネットワーク装置から状態情報を得るために用いられるいずれの更なる情報があるかどうかを決定するためのチェックがなされる。更なる情報がない場合、段階3102において生成された対のベクトルは、そのプロトコルについてのネットワークからの状態情報全てを得る必要がある情報全てを含んでいる。段階308において、プロトコルオブジェクトはネットワーク装置から状態情報を得るために対のベクトルを用い、状態情報は図19Dに示す状態情報マップ724に位置付けられる。プロトコルにより状態情報を得ることは段階3110において終了する。ネットワーク装置から状態情報を得るために用いられる更なる情報が存在する場合、段階3112において、状態情報が既に得られたかどうかについて判定するためにチェックする。これは、上位タイ情報がそのマップに既に存在するかどうかを判定するために図29Dに示す状態情報を含むマップを調べることによりなされる。状態情報がそのマップに存在しない場合、段階3114において、対のベクトルに対して状態情報を得るために用いられる情報を付加する。対のベクトルに情報を付加した後、状態情報を得るために用いられる更なる情報を得るために段階3104に戻る。状態情報が既に得られている場合、段階3116においてそのプロトコルにより得られることができる状態情報の優先順位又は重みを用いて既に得られた状態情報の重みを比較する。ネットワーク装置の状態情報についてのマップにおける状態情報の優先順位又は重みがそのプロトコルにより得られる状態情報の優先順位又は重みより大きい場合、対のベクトルに対して状態情報を得るために用いられる情報は付加されない。それに代えて、状態情報を得るために用いられる状態情報を得るために段階3104に戻る。マップにおける状態情報の優先順位又は重みがそのプロトコルにより得られる状態情報の優先順位又は重みより大きくない場合、段階3114において対のベクトルに対して状態情報を得るために用いられる情報を付加する。対のベクトルに情報を付加した後、状態情報を得るために用いられる更なる情報を得るために段階3104に戻る。
図31Bは、プロトコル全てを用いて、ネットワーク装置に関する状態情報を得るプロセスについて示すフローチャートである。プロトコルオブジェクトが、図28に示すように、それが支援するネットワーク装置のベンダ及びモデルに関する情報と共に初期化された後、そのプロトコルオブジェクトはネットワーク装置から状態情報を得るために用いられることができる。プロトコルオブジェクトは、図27B、27C及び27Dにおいて示すようなデータ構造を用いて、所定のベンダ及びモデルについての状態情報をどのように得るべきかについての情報を含む。図27AにしメスCAbsProtocol2308に対するポインタのベクトルは、プロトコルオブジェクト全てについての状態情報を得るために用いられる。そのフローチャートのプロセスは、一回、そのベクトルにより進められる。段階3122において、プロトコルオブジェクトはCAbsProtocolに対してポインタのベクトルから得られる。プロトコルオブジェクトはネットワーク装置(例えば、SNMP、HTTP及びFTP)にアクセスするためにネットワークプロトコルの1つに対応する。段階3124において、そのベクトルから得ることができるいずれの更なるプロトコルオブジェクトが存在するかどうかについて判定するためにチェックがなされる。このチェックは、ベクトルの終点が到達したかどうかを判定することによりなされる。更なるプロトコルオブジェクトが得られない場合、システムは、段階3126においてプロトコルオブジェクト全てを用いてネットワーク装置から状態情報を得るためにプロトコルオブジェクトを用いる。プロトコルオブジェクトを用いて状態情報を得た後、段階3122に戻ることにより他のプロトコルオブジェクトを用いて更なる状態情報を得る。 図32Aは、所定のプロトコルにより支援されているネットワーク装置のベンダ及びモデルについての情報を維持するために用いられるデータ構造を示している一方、図32Bは、データ構造において用いられる情報の例を示している。支援されているベンダ及びモデルについてのデータベースにおける情報の構成及びそれらから状態情報をどのように得るかはプロトコルにより変化する。それ故、異なるプロトコルについてのデータベースから支援されるベンダ及びモデルを得ることは互いに異なる。支援されるベンダ及びモデルのアクセスを簡単化して、プロトコルすべてに対してこの情報にアクセスするため及びこの情報を記憶するためにマップ構造を用いることができる。図32Aはベンダモデル支援マップ3200を示している。マップ3200に対するキー3202は、プロトコルにより支援されるベンダ及びモデルについての情報を含むストリングである。マップ3200に対する値3204は、ベクトルモデル識別数のようなベンダ及びモデルに関連する情報を表すために用いられることができる整数である。プロトコルにより支援されたベンダ及びモデルについての情報を含むようにマップ構造が選択される理由は、マップ構造がマップにおいてキーを容易にみつけるためにルックアップ機構を有するためであった。それ故、ベンダ及びモデルがマップにどのように記憶されるかを決定することは容易である。異なるプロトコルに対するベンダ及びモデルについての情報を示す図32Aについての説明はデータベースから導き出されたが、情報は、テキストファイル又はスプレッドシートのようないずれの外部ソースからもたらされる。
図32Bは、マップにおいてサンプルエントリをもつベンダモデル支援マップ3206を示している。マップ3206に対するキー3208は、ベンダ名、セパレータ“%%%%%”及びモデル名である。例えば、ベンダ“Xerox”及びモデル“NC60”に対しては、マップ3206に対するキー3208についてのストリングは“Xerox%%%%%NC60”である。セパレータ“%%%%%”は例として用いられたが、
“@@@@@”のようなベンダ名又はモデル名の一部とみなされないセパレータが用いられることができる。セパレータが用いられる理由は、ベンダ及びモデルをストリングから容易に得ることができるように、ベンダをモデルと区別して用いるためである。マップ3206に対する値3210は整数1である。マップ3206に対する値3210はいずれの整数であることが可能である。各々のプロトコルは、ベンダモデル支援マップ3200を維持する。
図33は、プロトコルにより支援されるベンダ及びモデル全てを含むように図32Aのベンダモデル支援マップ3200を支援するベンダ及びモデルを付加する方法について示すフローチャートである。段階3302において、ベンダ及びモデルはデータベースから得られる。ベンダ及びモデルがデータベースからどのように得られるかはプロトコルにより異なる。これは、支援されるベンダ及びモデルを含むデータベースにおけるテーブルに依存する。段階3304において、データベースかた得られる更なるベンダ及びモデル情報が存在するかどうかを判定するためにチェックがなされる。得られる更なる情報が存在しない、支援されるベンダ及びモデルと共にベンダモデル支援マップ3200を格納する方法は段階3306において終了する。ベンダモデル支援マップ3200はプロトコルにより支援されるベンダ及びモデル全てを含む。支援されたベンダ及びモデル情報を得るためにデータベースへの更なるアクセスは必要ない。データベースから得られるベンダ及びモデルが存在する場合、段階3308において、ベンダモデル支援マップ3200に対するキーとして用いられるストリングを生成する。そのストリングは、ベンダ名、セパレータ及びモデル名から成る。上記のように、セパレータは、ベンダ名又はモデル名の一部とみなされないいずれのストリングであることが可能である。段階3310において、ベンダ名、セパレータ及びモデル名を構成するストリングがベンダモデル支援マップ3200に既に存在するかどうかを判定するためにチェックがなされる。そのストリングがマップ3200に既に存在する場合、段階3302において、データベースから他のベンダ及びモデルを得る。そのストリングがマップ3200に存在しない場合、マップ3200にストリング及び整数を付加する。そのストリングがマップ3200に付加された後、段階3302においてデータベースから他のベンダ及びモデルを得る。
図34は、図32のベンダモデル支援マップ3200からのプロトコルにより支援されるベンダ及びモデルを得る方法について示すフローチャートである。段階3402において、キーに対するストリングはベンダモデル支援マップ3200から得られる。段階3404において、マップ3200から得られるいずれの更なるキーが存在するかどうかを判定するためにチェックがなされる。更にキーが存在しない場合、プロトコルにより支援されるベンダ及びモデル全てが得られており、ベンダ及びモデルを得ることは段階3406において終了する。キーに対するストリングがマップ3200にから得られる場合、段階3408において、セパレータがベンダ名を得る前にサブストリングを得る。段階3410において、セパレータがモデル名を得た後、サブストリングを得る。次いで、段階3406において、ベンダ及びモデルを得ることは終了する。マップ3200においてエントリ全てを完了することにより、プロトコルにより支援されるベンダ及びモデル全てを得ることができる。
図35は、装置パッケージのパッケージを示す図である。パッケージは、ネットワーク装置を表すソフトウェアオブジェクトを生成するために責任を負う。装置パッケージ1300は、2つのクラス、CDeviceFactory1302及びCDevice1304から成る。クラスCDeviceFactory1302は、ネットワーク装置に対してソフトウェアオブジェクトを生成し、初期化するために責任を負う。ソフトウェアオブジェクトの初期化は、ネットワーク装置にアクセスするために用いることができるプロトコルの設定と、ネットワーク装置のベンダ、モデル及び一意の識別子を決定とを含む。ネットワーク装置にアクセスすることができない場合、ネットワークに対するソフトウェアオブジェクトは生成されない。クラスCDevice1304はネットワーク装置に対してソフトウェアオブジェクトを表す。CDevice1304はネットワーク装置についての情報を維持し、ネットワーク装置についての状態情報を得る。CDevice1304は、装置から情報を得るために種々のプロトコルによりネットワーク装置にアクセスするために、図23に示すHWaccessパッケージを用いる。
図36Aは、どのプロトコルがネットワーク装置にアクセスするために用いられるかを判定するために、図35に示すようなネットワーク装置、即ち、CDevice1304を表すソフトウェアオブジェクトにより用いられるデータ構造を示している。CDevice1304はプロトコルパラメータマップ1400を含む。マップ1400に対するキー1402は、プロトコル(例えば、SNMP、HTTP、FTP)を表すストリングである。マップ1400に対する値1404は、構造SParameterのベクトルである。構造SPapameter1406は、ネットワーク装置のベンダ及びモデルの特徴より装置の特徴を備えた情報を含む。例えば、その情報はSNMPによりネットワーク装置にアクセスするためにコニュニティ名であることが可能であり、又はその情報はFTPによりネットワーク装置にアクセスするためにユーザ名及びパスワードであることが可能である。これらな、SNMP又はFTPによりいずれのネットワーク装置にアクセスするために用いられる共通情報値である。DeviceODBCパッケージにより得られたデータベースからの情報は、ネットワーク装置が種々のプロトコルによりアクセスされることができるように、そのマップに付加される。プロトコルがプロトコルを用いてネットワーク装置にアクセスすることができない場合及びベンダ及びモデルがプロトコルにより支援されない場合、そのマップにおけるエントリはそのプロトコルに対して取り除かれる。一部のプロトコルは、ベンダ及びモデルがプロトコルにより支援されない場合にも拘らず、ネットワーク装置にアクセスする。そのようなプロトコルの1つはSNMPである。
図36Bは、ネットワーク装置に対する図36Aのプロトコルパラメータマップ1400におけるサンプルデータを示している。ネットワーク装置は、状態情報SNMP及びFTPを得るために2つのプロトコルを用いる。それ故、ネットワーク装置のためのマップ1410は、キー“SNMP”及び“FTP”に対して2つのエントリを含む。SNMPを用いてネットワーク装置にアクセスするために、コミュニティ名が必要である。SNMPに対するSParameterのベクトルはコミュニティ名についての情報を含む。コミュニティのパラメータ名及び“私的”のパラメータ値は、1つのSParameterがネットワーク装置へのアクセスを可能とするように、用いられる。FTPを用いてネットワークにアクセスするために、ユーザ名及びパスワードが必要である。FTPのためのSParameterのベクトルはユーザ名及びパスワードについての情報を含む。パラメータ名“abc”をもつユーザ名のパラメータ名は、一のSParameterに対して用いられ、パラメータ名“xyz”をもつパスワードのパラメータ名は、ネットワーク装置にアクセスすることを可能にするように他のSParameterに対して用いられる。
図37は、どのプロトコルがネットワーク装置から状態情報を得るために用いられるかを判定するために、図36Aのプロトコルパラメータマップ1400がどのようにアップデートされるかを表すフローチャートを示している。図37における各段階は、プロトコルに対するネットワーク装置のベンダ名及びモデル名を得るために実行される。段階3702において、ネットワーク装置がプロトコルを用いてアクセスされることができるかどうかを判定するためにチェックがなされる。ネットワーク装置は、マップ1400において情報を用いてプロトコルによりアクセスされる。ネットワーク装置がプロトコルによりアクセスされることができない場合、そのプロトコルは段階3704においてプロトコルパラメータマップ1400から取り除かれ、マップ1400の更新は段階3714において終了する。ネットワーク装置がプロトコルによりアクセスされることができる場合、段階3706において、プロトコルを用いてネットワーク装置のベンダを得ることができるかどうかを判定するためにチェックがなされる。ベンダを得ることができない場合、段階3707において、GENERICベンダがプロトコルにより支援されているかどうかについてのチェックがなされる。GENERICベンダが装置のベンダを得ることができないかそれを支持しないに拘らず、全ての装置に共通の状態情報(共通の状態情報)をプロトコルが得ることができるプロトコル手段に対してGENERICベンダを支援する。GENERICベンダがプロトコルにより支援されない場合、段階3704において、そのプロトコルはプロトコルパラメータマップ1400から取り除かれ、段階3714において、マップ1400の更新は終了する。GENERICベンダがプロトコルにより支援される場合、そのプロトコルはプロトコルパラメータマップ1400に残り、段階3714において、マップの更新は終了する。段階3706において、ベンダを得ることができる場合、段階3708において、ネットワーク装置のベンダがプロトコルにより支援されているかどうかを判定するためにチェックがなされる。ベンダがプロトコルにより支援されていない場合、段階3707において、GENERICベンダがプロトコルにより支援されているかどうかのチェックがなされる。段階3707に続く段階のシーケンスについては、上で説明した。
ベンダがプロトコルにより支援されている場合、プロトコルを用いてネットワーク装置のモデルを得ることができるかどうかを判定するためにチェックがなされる。そのモデルを得ることができない場合、段階3711において、一般モデルがプロトコルにより支援されるかどうかのチェックがなされる。GENERICベンダが装置のモデルを得ることができないかそれを支持しないに拘らず、ベンダの全ての装置に共通の状態情報(ベンダ固有の状態情報)をプロトコルが得ることができるプロトコル手段に対してGENERICモデルを支援する。GENERICベンダがプロトコルにより支援されない場合、段階3704において、そのプロトコルはプロトコルパラメータマップ1400から取り除かれ、段階3714において、マップ1400の更新は終了する。GENERICモデルがプロトコルにより支援される場合、そのプロトコルはプロトコルパラメータマップ1400に残り、段階3714において、マップの更新は終了する。段階3710において、ベンダを得ることができる場合、段階3712において、ネットワーク装置のモデルがプロトコルにより支援されているかどうかを判定するためにチェックがなされる。モデルがプロトコルにより支援されていない場合、段階3711において、GENERICモデルがプロトコルにより支援されているかどうかのチェックがなされる。段階3711に続く段階のシーケンスについては、上で説明した。モデルがプロトコルにより支援される場合、プロトコルをネットワーク装置に対して状態情報を得るために用いることができ、プロトコルパラメータマップ1400の更新は段階3714において終了する。ベンダ及びモデルが得られず又は支援されていない場合、プロトコルはプロトコルパラメータマップ1400から取り除かれ、そのプロトコルは状態情報を得るためには用いられない。プロトコルに依存して図37において示されるプロセスに対して変形が存在する。HTTP及びFTPはフローチャートにおける説明に従い、SNMPは、ベンダは支援されているが、モデル及び一般モデルは支援されていない場合であっても、状態情報を得るために支援され、用いられる。
上記のように、ベンダ及びモデルが得られない又は支援されない場合であっても、状態情報をネットワーク装置からSNMPにより得ることができる。ネットワーク装置がSNMPを支援し、SNMPによりアクセスされることができる限り、SNMPプロトコルは、段階3704において、プロトコルパラメータマップ1400から取り除かれることが可能である。しかしながら、ネットワーク装置はSNMPによりアクセスされることができ、ベンダ又はモデルが得られ及び支援されるか否かに拘らず、SNMPプロトコルはプロトコルパラメータマップ1400に維持される。SNMPを支援するネットワーク装置はMIBを提供し、それ故、リモートシステムは、常に、装置から情報を得ることができる。しかしながら、ネットワーク装置から得ることができる情報のタイプ及び数は、ベンダ及びモデルが得られ、支援されるかどうかに依存する。SNMPによりネットワーク装置らか得ることができる更なる情報は、ベンダ及びモデルが得られ、周知であることである。ベンダ及びモデルを得ることができない場合、SNMPは又、システム説明書又はシステムが作動した時間のような、全ての装置が提供する情報を得ることができる。次のような3つの条件下でネットワーク装置から情報を得るためにSNMPを用いることができる。即ち、(1)ベンダ及びモデルは支援されている、(2)ベンダは支援され、モデルは支援されていない、及び(3)ベンダ及びモデルは支援されていない、の3つの条件である。HTTP及びFTPはSNMPとしての特性を有している。SNMPが、情報を得ることができるように、全てのネットワーク装置が従うことができる規準MIBを有する場合、ウェブページ及びFTPファイルは異なるベンダ及びモデルのネットワーク装置間で変化する。ネットワーク装置が情報を得るために従うFTPファイル及びウェブページについての基準はない。
本発明については、ネットワークに接続されるモニタリングを必要とする、幾つかの装置を含むように示したが、本発明の範囲及び主旨から逸脱することなく、いずれの数の装置をネットワークに接続すること可能であることを理解されるであろう。又、本発明は、種々の装置がモニタリングされ、制御される家庭環境において適用されることが可能である。
本発明は、特定の私的な管理情報ベース(MIB)情報を有することさえなく、ユーザによる理解可能又はユーザフレンドリな方式で詳細情報を検索し、表示する他のファシリティ及び複数ベンダの環境下で種々の装置のモニタリングを可能にする。
本発明の制御器は、コンピュータ技術分野における熟達した技術者に理解できるように、本発明の明細書の記載内容に従ってプログラム去れるマイクロプロセッサまたは従来の汎用のディジタルコンピュータを用いて便利に実施されることが可能である。適切なソフトウェアコーディングは、ソフトウェア技術分野における熟達した技術者に理解されるように、本発明の開示内容に基づいて熟練プログラマにより容易に準備されることができる。本発明は又、当業者により容易に理解できるように、従来のコンピュータ回路の適切なネットワークに相互接続することにより特定用途向け集積回路の作製により実行されることが可能である。
本発明は、本発明のプロセスを実行するようにコンピュータをプログラムするために用いることができる命令を含む記憶媒体に備えられたコンピュータプログラムプロダクトを含む。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、CD−ROM及び光磁気ディスクを含むいずれの種類のディスク、ROM、RAM、EPROM、EEPROM、磁気カード、光カード、又は電子的命令を記憶するために適切ないずれの種類の媒体を含むことができるが、それらに限定されるものではない。
明らかに、上記の開示に照らして、数多くの本発明の変更及び修正が可能である。従って、同時提出の特許請求の範囲における範囲内で、以上で具体的に説明した内容以外の他の方式で本発明を実施することが可能である。