(57)【要約】【課題】  ネットワーク接続された相異なるデバイスのうちの任意のデバイスを監視する。【解決手段】  ハードウェアアクセスモジュール経由で第１データベースにアクセスすることを含む。第１データベースは、複数の通信プロトコルをサポートするように構成され、被監視デバイスの製造元やモデル情報を判定するために、複数の通信プロトコルによって使用される情報を格納する。通信プロトコルが複数の通信プロトコルから選択され、選択される通信プロトコルは、被監視デバイスからステータス情報を受信するように構成される。受信したステータス情報を第２データベースに格納し、受信したステータス情報を解析して被監視デバイスの動作ステータスを表すパラメータ値を抽出し、抽出されたパラメータ値に対応する動作ステータス情報を第２データベースから取り出す。【選択図】図１
2004259259.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに通信可能に結合した相異なるデバイスのうちの１つのデバイスを監視する方法であって、
複数の通信プロトコルをサポートするように構成され、前記デバイスに関する情報を抽出するために該複数の通信プロトコルによって使用される情報を有する第１データベースにアクセスするステップと、
前記複数の通信プロトコルのうち、前記デバイスからステータス情報を受信するように構成された通信プロトコルを選択するステップと、
前記選択された通信プロトコルと、前記選択された通信プロトコルをサポートするように構成された前記第１データベースからの情報とを用いて前記デバイスにアクセスするステップと、
前記アクセスされたデバイスからデータ文字列としてステータス情報を受信するステップと、
前記第１データベースからの情報を用いて前記アクセスされたデバイスのステータス情報値を抽出するため、データ文字列を処理するステップと、
第２データベースに前記抽出されたステータス情報値を格納するステップと、
を含むデバイスを監視する方法。
【請求項２】
前記アクセスされたデバイスから受信される情報で前記第２データベースを更新するステップをさらに含む請求項１に記載のデバイスを監視する方法。
【請求項３】
前記第１データベースへのアクセスはハードウェアアクセスモジュール経由で実行される請求項１に記載のデバイスを監視する方法。
【請求項４】
固有のＩＰアドレスを用いて前記相異なるデバイスのそれぞれにアクセスするステップをさらに含む請求項１に記載のデバイスを監視する方法。
【請求項５】
前記アクセスされたデバイスから受信される前記情報から該アクセスされたデバイスのソフトウェアオブジェクトを作成するステップと、および
前記アクセスされたデバイスのＩＰアドレスに関連づけて製造元情報およびモデル情報を格納するステップと、
をさらに含む請求項２に記載のデバイスを監視する方法。
【請求項６】
抽出されるパラメータ値が前記相異なるデバイスに対する相異なる動作ステータスに対応する請求項１に記載のデバイスを監視する方法。
【請求項７】
ＨＴＭＬ／ＸＭＬプロトコル、ＳＮＭＰプロトコル、または該プロトコルの両方で前記アクセスされたデバイスから情報を受信する請求項１に記載のデバイスを監視する方法。
【請求項８】
ネットワークに通信可能に結合した相異なるデバイスの任意のデバイスを監視するシステムであって、
複数の通信プロトコルをサポートするように構成され、前記デバイスに関する情報を抽出するために該複数の通信プロトコルによって使用される情報を有し、該デバイスは、該デバイスからステータス情報を受信するために複数の通信プロトコルから選択された通信プロトコルを用いてアクセスされ、また、該デバイスは、該通信プロトコルをサポートする情報を用いてアクセスされるために使用される第１データベースと、
データ文字列の形態で前記デバイスからステータス情報を受信するハードウェアアクセスモジュールと、
前記第１データベースからの情報を用いて前記デバイスのステータス情報値を抽出するために前記データ文字列を処理するプロセッサと、
前記抽出されたステータス情報値を格納する第２データベースと、
を備えるデバイスを監視するシステム。
【請求項９】
前記第２データベースは、前記デバイスから受信される情報で更新される請求項８に記載のデバイスを監視するシステム。
【請求項１０】
前記第１データベースは、前記デバイスに関する情報を取得するために前記ハードウェアアクセスモジュール経由でアクセスされる請求項８に記載のデバイスを監視するシステム。
【請求項１１】
ネットワークに通信可能に結合した前記相異なるデバイスのそれぞれが固有のＩＰアドレスを用いてアクセスされる請求項８に記載のデバイスを監視するシステム。
【請求項１２】
前記デバイスから受信される情報は、該デバイスのソフトウェアオブジェクトを作成するために使用され、
製造元情報およびモデル情報は、前記デバイスのＩＰアドレスに関連づけて前記第２データベースに格納される、
請求項９に記載のデバイスを監視するシステム。
【請求項１３】
抽出されるパラメータ値は、前記相異なるデバイスに対する相異なる動作ステータスに対応する請求項８に記載のデバイスを監視するシステム。
【請求項１４】
前記デバイスから受信される情報がＨＴＭＬ／ＸＭＬプロトコルフォーマット、ＳＮＭＰプロトコルフォーマット、または該プロトコルフォーマットの両方で、前記アクセスされたデバイスからの情報を含む請求項８に記載のデバイスを監視するシステム。
【請求項１５】
ネットワークに通信可能に結合した相異なるデバイスのうちの１つのデバイスを監視するためのコンピュータ使用可能媒体を有するコンピュータプログラム製品であって、
複数の通信プロトコルをサポートするように構成され、前記デバイスに関する情報を抽出するために該複数の通信プロトコルによって使用される情報を有する第１データベースにアクセスする命令と、
前記複数の通信プロトコルのうち、前記デバイスからステータス情報を受信するように構成された通信プロトコルを選択する命令と、
前記選択された通信プロトコルと、前記選択された通信プロトコルをサポートする前記第１データベースからの情報とを用いて前記デバイスにアクセスする命令と、
前記アクセスされたデバイスからデータ文字列の形態でステータス情報を受信する命令と、
前記第１データベースからの情報を用いて前記アクセスされたデバイスのステータス情報値を抽出するために前記データ文字列を処理する命令と、
第２データベースに前記抽出されたステータス情報値を格納する命令と、
を備えるコンピュータプログラム製品。
【請求項１６】
前記アクセスされたデバイスから受信される情報で前記第２データベースを更新する命令をさらに備える請求項１５に記載のコンピュータプログラム製品。
【請求項１７】
ネットワークに通信可能に結合した相異なるデバイスのうちの任意のデバイスを監視するシステムであって、
複数の通信プロトコルをサポートするように構成され、前記デバイスに関する情報を抽出するために該複数の通信プロトコルによって使用される情報を有する第１データベースにアクセスする手段と、
前記複数の通信プロトコルのうち、前記デバイスからステータス情報を受信するように構成された通信プロトコルを選択する手段と、
前記選択された通信プロトコルと、該選択された通信プロトコルをサポートする前記第１データベースからの情報とを用いて前記デバイスにアクセスする手段と、
前記アクセスされたデバイスからデータ文字列の形態でステータス情報を受信する手段と、
前記第１データベースからの情報を用いて前記アクセスされたデバイスのステータス情報値を抽出するために前記データ文字列を処理する手段と、
第２データベースに前記抽出されたステータス情報値を格納する手段と、
を備えるデバイスを監視するシステム。
【請求項１８】
前記アクセスされたデバイスから受信される情報で前記第２データベースを更新する手段をさらに備える請求項１７に記載のデバイスを監視するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたデバイスの監視に関する。特に、本発明は、複数のプロトコルを用いてネットワーク接続されたデバイスを監視する方法、システムおよびそのコンピュータプログラム製品に関する。
【０００２】
［関連出願への相互参照］
本出願は、以下の同一出願人の同時係属中の出願に関連している。「Method  and  Apparatus  Utilizing  Communication  Means  Hierarchy  to  Configure  or  Monitor  an  Interface  Device」と題する２００２年２月１１日出願の米国特許出願第１０／０６８，８６１号、「Verification  Scheme  for  Email  Message  Containing  Information  About  Remotely  Monitored  Devices」と題する２００２年５月１３日出願の米国特許出願第１０／１４２，９８９号、「Method  and  System  of  Remote  Support  of  Device  Using  Email」と題する２００１年１月９日出願の米国特許出願第０９／７５６，１２０号、「Method  and  Apparatus  for  Modifying  Remote  Devices  monitored  by  a  Monitoring  System」と題する２００２年５月３１日出願の米国特許出願、「Method  and  System  for  Remote  Support  of  Device  Using  Email  Based  Upon  Pop3  With  Decryption  Capability  Through  Virtual  Function」と題する２００１年１０月１５日出願の米国特許出願第０９／９７５，９３５号、「Method  and  System  of  Remote  Support  of  Device  Using  Email  Through  Data  Transfer  Module」と題する２００１年９月１７日出願の米国特許出願第０９／９５３，３５８号、「Method  and  System  to  Use  HTTP  and  HTML/XML  for  Monitoring  the  Devices」と題する２００２年６月５日出願の米国特許出願第１０／１６２，４０２号、「Method  for  Scrambling  Information  about  Network  Devices  That  is  Placed  in  Email  Message」と題する２００２年５月３１日出願の米国特許出願第１０／１５７，９０３号、「Universal  Controller  in  The  Wireless  Networked  Environment」と題する２００１年８月６日出願の米国特許出願第０９／９２１，７０７号、および「Method  and  System  for  Monitoring  Network  Connected  Devices  with  Multiple  Protocols」と題する米国特許出願第１０／２２５，２９０号。これらの開示は全体として参照により本明細書に援用される。
【背景技術】
【０００３】
一般的に知られているように、コンピュータシステムはハードウェアおよびソフトウェアを含む。ソフトウェアは、コンピュータシステムを構成するハードウェアコンポーネントを動作させ、かつ管理するために作成された命令のリストを含む。通常、コンピュータシステムは、互いにインタフェースをとりあう種々のハードウェアコンポーネント／デバイスを含む。コンピュータシステムは、スタンドアロン型でもネットワーク接続型でもよい。ネットワーク接続型コンピュータシステムでは、複数の相異なるデバイスがネットワークに接続されることにより、これらの相異なるデバイス間の通信がネットワーク経由で可能となる。
【０００４】
また、ハードウェアデバイスを動作させるソフトウェアは、ハードウェアデバイス間の通信を可能にするために、ハードウェアデバイスが協調的に機能するように構成される必要がある。さらに、このような通信を容易にする目的で、各ハードウェアデバイスが効率的に機能していることを保証するために、ハードウェアデバイスが監視され、また各ハードウェアデバイスのステータスが識別されることも望ましい。
【０００５】
ここでは、複数の相異なるデバイスまたはハードウェアデバイスを制御し、構成し、または監視するハードウェアデバイスを「監視デバイス」と呼び、監視デバイスによって制御され、構成され、または監視されているハードウェアデバイスを「被監視デバイス」と呼ぶことにする。
【０００６】
ネットワーク上に配置されるハードウェアデバイスについて、これらのデバイスが保守、使用または他の目的で監視されることが望ましい。しかし、ハードウェアデバイスおよびインタフェースに関連する製造元の相違を考えると、監視デバイスが、ネットワークに接続された種々の他のデバイスと通信することは困難なことがある。このような欠点は、ネットワークに接続されたデバイスのパフォーマンスおよび効率に関する重大な情報をネットワーク管理者が取得するのを妨げる可能性が非常に高い。
【０００７】
シンプルネットワーク管理プロトコル（ＳＮＭＰ）は今日、データ通信ネットワーク上のデバイス、電気通信システムおよびグローバルに到達可能なデバイスの監視および管理のための事実上の業界標準である。実際上、コンピュータおよび関連デバイスを取り扱うあらゆる組織は、ローカルエリアネットワークおよび広域ネットワークを越えてそれぞれのそのようなデバイスを集中的に監視、診断および構成することができることを期待している。ＳＮＭＰは、この相互作用を可能にするプロトコルである。
【０００８】
デバイスがＳＮＭＰリクエストに応答するためには、デバイスが適当にＳＮＭＰリクエストを解釈し、そのリクエストによって要求されるアクションを実行し、ＳＮＭＰリプライを生成することを可能にするソフトウェアをデバイスに装備することが望ましい。ＳＮＭＰエージェントソフトウェアは通常、ネットワークエンティティに存在するサブシステムソフトウェアモジュールである。
【０００９】
システムによって実装されるオブジェクトのコレクションは、一般に管理情報ベース（ＭＩＢ）と呼ばれる。ＭＩＢは、デバイスの監視に関連する情報を有するデータベースであってもよい。他のＭＩＢの例としては、いくつか列挙すれば、イーサネットインタフェースを中心に扱うイーサネットＭＩＢ、８０２．１Ｄブリッジの管理のためのオブジェクトを定義するブリッジＭＩＢがある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
デバイスを監視するためにＳＮＭＰを使用することは困難である。というのは、プライベートＭＩＢは、有効なキーなしに解読するのが難しい値を含むからである。会社のネットワークに接続された種々のデバイスを監視するためにＳＮＭＰを使用している会社は、会社の機密情報として保持される固有の識別子／キーを作成する。たいていの場合、結果は２値または整数値として表示される。したがって、ＳＮＭＰを使用する場合、監視されているデバイス（被監視デバイス）から受信される結果は、ユーザに理解可能な形で被監視デバイスのステータスをユーザに提供することができない。
【００１１】
さらに、ＳＮＭＰを使用する場合、２値または整数値として取得された結果を解読するために、有効なキーまたはプライベートＭＩＢへのアクセスなしに被監視デバイスに関する詳細な情報を取得することは困難である。
【課題を解決するための手段】
【００１２】
本発明のシステムおよび方法は、ネットワークに接続されたデバイスの監視を可能にすることによって上記の問題の解決を図る。ネットワークに通信可能に結合した相異なるデバイスのうちの１つのデバイスを監視する方法が記述される。
【００１３】
本方法は、ハードウェアアクセスモジュール経由で第１データベース（SupportODBC）にアクセスすることを含む。第１データベースは、複数の通信プロトコルをサポートするように構成される。第１データベースには、被監視デバイスの製造元およびモデル情報のような種々の情報を取得するために、複数の通信プロトコルによって使用される情報が格納される。通信プロトコルが複数の通信プロトコルから選択される。選択される通信プロトコルは、被監視デバイスからステータス情報を受信するように構成される。本方法はさらに、選択された通信プロトコルおよび第１データベースからの情報を用いて被監視デバイスにアクセスすること、ならびにアクセスされたデバイスからステータス情報を受信し、受信したステータス情報を第２データベース（DeviceODBC）に格納することを含む。
【００１４】
別の実施形態では、本発明は、ネットワークに通信可能に結合した相異なるデバイスのうちの１つのデバイスを監視する方法を提供する。被監視デバイスから情報を取り出すために複数の通信プロトコルを使用してもよい。例えば、被監視デバイスにアクセスするために、ＳＮＭＰプロトコルがまず選択され、ＳＮＭＰプロトコルを用いて効率的に取り出されるように構成されたデバイス情報が取得される。次に、ＨＴＴＰプロトコルが選択され、ＳＮＭＰプロトコルを用いて効率的に取り出すことができなかった情報を取得する。プロトコルの選択は、例えばSupportODBCのようなデータベースに格納されたサポート情報を用いて、プロトコルマネージャによって実行される。
【００１５】
本発明では、監視システムが、例えばＬＡＮまたはＷＡＮのようなネットワークに接続された少なくとも１つのデバイス（被監視デバイス）を監視することを可能にする。被監視デバイスは、固有のＩＰアドレスを有するように構成される。被監視デバイスに割り当てられるＩＰアドレス、および被監視デバイスについてのベンダ／製造元の詳細は、データベースに格納される。
【００１６】
本発明は、被監視デバイスから受信されるＨＴＭＬ情報から必要な情報を抽出する方法を指定する。一旦被監視デバイスのページ位置に（すなわち、ＩＰアドレスおよび指定されたポートを通じて）アクセスすると、被監視デバイスに対応する特定のウェブページが表示される。ウェブページに表示される情報は、キーおよび値の対の形態である。ウェブページ内の情報から必要な情報を取り出すために、ＨＴＭＬ／ＸＭＬパーサを用いてページを解析する。ＨＴＭＬ／ＸＭＬパーサを用いてウェブページから抽出された必要な情報およびパラメータ値は、DeviceODBCデータベースに格納される。
【００１７】
本発明の一態様では、ネットワーク接続された相異なるデバイスのうちの１つのデバイスを監視する方法が記述される。本方法は、ハードウェアアクセスモジュール経由で第１データベースにアクセスすることを含む。第１データベースは、複数の通信プロトコルをサポートするように構成される。第１データベースには、被監視デバイスの製造元およびモデル情報等の種々の情報を取得するために、複数の通信プロトコルによって使用される情報が格納される。通信プロトコルが複数の通信プロトコルから選択される。選択される通信プロトコルは、被監視デバイスからステータス情報等の種々の情報を受信するために使用される。本方法はさらに、選択された通信プロトコルおよび第１データベースからの情報を用いて被監視デバイスにアクセスすること、アクセスされたデバイスからステータス情報を受信すること、および受信したステータス情報を第２データベースに格納することを含む。
【００１８】
本発明の別の態様では、ネットワークに通信可能に結合した相異なるデバイスのうちの１つのデバイスを監視するシステムが提供される。本システムは、複数の通信プロトコルをサポートするように構成された第１データベースを含む。第１データベースは、デバイスに関する情報を抽出するために複数の通信プロトコルによって使用される情報を有する。デバイスは、デバイスから製造元、モデル、固有ＩＤおよびステータス情報のような種々の情報を受信するために、複数の通信プロトコルから選択される通信プロトコルを用いてアクセスされる。その通信プロトコルをサポートする第１データベースからの情報も使用される。本システムはさらに、データ文字列の形態でデバイスからステータス情報を受信するハードウェアアクセスモジュールと、第１データベースからの情報を用いてデバイスのステータス情報値を抽出するために、データ文字列を処理するプロセッサと、抽出されたステータス情報値を格納する第２データベースとを含む。
【００１９】
本発明はまた、本明細書に記載されるような監視システムによってサポートされる被監視デバイスの種々のベンダおよびデバイスモデルも識別する。被監視デバイスの種々のベンダがベンダ固有の方法で被監視デバイスに関する情報を提示するので、本発明は、被監視デバイスのベンダおよびモデルの識別が、被監視デバイスの動作ステータスを決定することを可能にする。
【発明の効果】
【００２０】
本発明は、特定のプライベート管理情報ベース（ＭＩＢ）情報を有することさえなしに、マルチベンダ環境における種々のデバイスの監視を可能にし、さらに、ユーザが理解しやすい、またはユーザが利用しやすい方法で、詳細な情報を取り出し表示することを容易にする。
【００２１】
本発明のさらに完全な理解と、本発明に付随する利点の多くは、本発明が以下の詳細な説明を添付図面とともに考察して参照することによってより一層理解されるようになるとともに、容易に得られるであろう。
【発明を実施するための最良の形態】
【００２２】
図１は、種々のデバイスと、デバイスの動作を監視、診断および制御するコンピュータとを有する概略図を示している。具体的には、図１は、コンピュータワークステーション１７、１８、２０および２２に接続されたローカルエリアネットワーク（ＬＡＮ）のような第１ネットワーク１６を含む。ワークステーションは、例えばパーソナルコンピュータデバイス、Unixベースのコンピュータ、LinuxベースのコンピュータまたはApple  Macintoshを含む、いかなるタイプのコンピュータであってもよい。ネットワーク１６には、デジタル画像形成装置２４、ファクシミリ装置２８およびプリンタ３２も接続されている。当業者には理解されるように、デジタル画像形成装置２４およびファクシミリ装置２８の２つ以上のコンポーネントが、統合された「画像形成装置」へと組み合わされてもよい。例えば、画像形成装置２４、ファクシミリ装置２８、プリンタ３２ならびにワークステーション１７、１８、２０および２２は、マシンまたは被監視デバイスと呼ばれてもよい。構成によっては、１つまたは複数のワークステーションが事務用機器へと転換されるものもある。さらに、いかなるネットワーク事務用機器／デバイスがネットワーク１６に取り付けられてもよい。
【００２３】
このような事務用機器の一例は、Ricoh社から販売されているeCabinet（登録商標）である。また、ファクシミリサーバ（図示せず）がネットワーク１６に接続され、電話、サービス総合デジタル網（ＩＳＤＮ）、ケーブルまたは無線接続を有していてもよい。デジタル画像形成装置２４、ファクシミリ装置２８およびプリンタ３２のそれぞれは、ネットワーク１６に接続されていることに加えて、それぞれ従来の電話および／またはＩＳＤＮおよび／またはケーブルおよび／または無線接続２６、３０および３４を含んでもよい。以下で説明するように、被監視デバイス２４、２８および３２は、例えばネットワーク１６経由でインターネットを通じて、または直接の電話、ＩＳＤＮ、無線もしくはケーブル接続によって、監視デバイスとも呼ばれるリモートの監視、診断および制御ステーションと通信する。
【００２４】
別の例示的なビジネス環境では、被監視デバイスは、多機能イメージングデバイス、スキャナ、プロジェクタ、会議システムおよびシュレッダのようなデバイスを含んでもよい。別の応用例として、ネットワーク１６はホームネットワークであってもよく、その場合、被監視デバイスは計器（電気、ガス、水道）または例えば電子レンジ、洗濯機、乾燥機、皿洗い機、家庭用娯楽システム、冷蔵庫、炊飯器、ヒータ、エアコン、湯沸器、セキュリティカメラのような機器である。
【００２５】
図１で、広域ネットワーク（ＷＡＮ）（例えば、インターネットまたはその後継）が包括的に１０で示されている。ＷＡＮ１０は、プライベートＷＡＮ、パブリックＷＡＮまたは混成型のいずれでもよい。ＷＡＮ１０は、１２Ａ〜１２Ｉで示される複数の相互接続されたコンピュータおよびルータを含む。ＷＡＮを通じて通信する方法は、Internet  Engineering  Task  Force（ＩＥＴＦ）からwww.ietf.org/rfc.htmlで入手可能な一連のRequest  for  Comments（ＲＦＣ）文書を通じて既知であり、これには、「Simple  Mail  Transfer  Protocol」と題するＲＦＣ８２１、「Standard  for  the  Format  of  ARPA  Internet  Text  Message」と題するＲＦＣ８２２、「File  Transfer  Protocol  (FTP)」と題するＲＦＣ９５９、「Multipurpose  Internet  Mail  Extensions  (MIME)  Part  One：Format  of  Internet  Message  Bodies」と題するＲＦＣ２０４５、「An  Extensible  Message  Format  for  Delivery  Status  Notifications」と題するＲＦＣ１８９４、「Post  Office  protocol−Version  3」と題するＲＦＣ１９３９、「Hypertext  Transfer  Protocol−HTTP/1.1」と題するＲＦＣ２０６８、および「An  Extensible  Message  Format  for  Message  Disposition  Notifications」と題するＲＦＣ２２９８がある。これらの参考文献のそれぞれの内容は参照により本明細書に援用される。
【００２６】
伝送制御プロトコル（Transmission  Control  Protocol）／インターネットプロトコル（Internet  Protocol）（ＴＣＰ／ＩＰ）関連の通信は、例えば、Addison−Wesley  Publishing社から１９９４年に出版された、W．R．Stevens著「TCP/IP  Illustrated」Vol.1、The  Protocolsに記載されており、その内容全体が参照により本明細書に援用される。ComerとStevensによる「Internetworking  with  TCP/IP」の第１〜３巻もまた、全体として参照により本明細書に援用される。
【００２７】
図１の参照を続けると、ファイアウォール５０ＡがＷＡＮ１０とネットワーク１６の間に接続されている。ファイアウォールは、ファイアウォールの一方の側にある権限のあるコンピュータのみが、ファイアウォールの他方の側にあるネットワーク、コンピュータまたは個別の部分にアクセスすることを可能にするデバイスである。ファイアウォールは既知の市販のデバイスおよび／またはソフトウェアである（例えば、Zone  Labsから販売されているZoneAlarm）。同様に、ファイアウォール５０Ｂおよび５０Ｃは、ＷＡＮ１０をそれぞれネットワーク５２およびワークステーション４２から分離する。ファイアウォールについてさらに詳細には、W．R．CheswickおよびS．M．Bellovin著「Firewalls  and  Internet  Security」1994、Addison  Wesley  Publishing、およびD．B．ChapmanおよびE．D．Zwicky著「Building  Internet  Firewalls」1995、O’Reilly  &  Associates社に見ることができる。これらの２つの参考文献の内容全体が参照により本明細書に援用される。
【００２８】
ネットワーク５２は従来のネットワークであり、複数のワークステーション５６、６２、６８および７４を含む。これらのワークステーションは、単一の会社内の異なる部門（例えば、営業、製造、設計技術および顧客サービス部門）内に分散して配置されてもよい。ネットワーク５２経由で接続されるワークステーションに加えて、ネットワーク５２に直接接続されていないワークステーション４２も提供される。ワークステーション４２に接続されたディスク４６に格納されているデータベース内の情報は、適当な暗号化およびプロトコルを用いてＷＡＮ１０を通じて、ネットワーク５２に直接接続されたワークステーションと共有されてもよい。また、ワークステーション４２は、電話回線および／またはＩＳＤＮおよび／またはケーブルネットワークおよび／または無線ネットワーク４４への直接接続を含み、ディスク４６内のデータベースは、電話回線、ＩＳＤＮ、ケーブルネットワークを通じて、または無線ネットワーク４４経由でアクセスされてもよい。本発明によって使用されるケーブルネットワークは、通常はテレビ番組を伝送するために使用されるケーブルネットワーク、通常はコンピュータ等で使用されるデジタルデータの高速通信用に提供されるケーブル、またはいかなる他の所望のタイプのケーブルを用いて実施されてもよい。
【００２９】
別の実施形態では、ワークステーション４２は、ネットワーク機能付きのラップトップコンピュータ、ＰＤＡ、パームトップコンピュータまたは携帯電話であってもよい。これらのデバイスは、ディスク４６に格納されたデータベースに格納されている情報にアクセスするために使用されてもよい。
【００３０】
事務用マシン、業務用デバイスまたは事務用機器２４、２８および３２に関連する情報はそれぞれ、ディスク４６、５４、５８、６４、７０および７６に格納された１つまたは複数のデータベースに格納されてもよい。既知のデータベースには、（１）Microsoft、IBM、OracleおよびSybaseによるＳＱＬデータベース、（２）他の関係データベースならびに（３）非関係データベース（Objectivity、JYD  Software  EngineeringおよびOrient  Technologiesから販売されているオブジェクト指向データベースを含む）がある。顧客サービス、営業、製造および技術部門のそれぞれが、自己の固有のデータベースを有してもよく、あるいは１つまたは複数のデータベースを共有してもよい。データベースを格納するために使用される各ディスクは、ハードディスクまたは光ディスクのような不揮発性メモリである。別法として、データベースは、固体状態および／または半導体メモリデバイス等のいかなるストレージデバイスに格納されてもよい。例えば、ディスク６４に営業データベースが格納され、ディスク５８に製造データベースが格納され、ディスク７０に技術データベースが格納され、ディスク７６に顧客サービスデータベースが格納されてもよい。別法として、ディスク５４および４６に、データベースのうちの１つまたは複数が格納されてもよい。
【００３１】
ワークステーション５６、６２、６８、７４および４２がＷＡＮ１０に接続されることに加えて、これらのワークステーションは、監視、診断および／または制御されるマシン／デバイスへの安全な接続を提供するために、電話回線、ＩＳＤＮ、ケーブルまたは無線ネットワークへの接続を含んでもよい。さらに、通信媒体の１つが正しく動作していない場合に、他の１つが通信のためにバックアップとして自動的に使用されてもよい。
【００３２】
本発明の特徴は、マシンを診断および制御するためにマシンとコンピュータ／監視システムとの間の通信（例えばインターネット電子メール、本明細書においてＥメールともいう）または送信の「蓄積転送」モードを使用することである。別法として、送信されるメッセージは、ＦＴＰやハイパーテキスト転送プロトコル（Hyper  Text  Transfer  Protocol）（ＨＴＴＰ）のような直接のエンドツーエンド接続（例えば、最終宛先へのソケット接続を用いて）を行う通信モードを用いて実施されてもよい。
【００３３】
図２は、図１に示したデジタル画像形成装置２４の機械的配置を示している。図２において、１０１はスキャナのためのファンであり、１０２はレーザプリンタで使用されるポリゴンミラーであり、１０３はレーザ（図示せず）からの光をコリメートするために使用されるＦθレンズを表す。参照番号１０４は、スキャナからの光を検出するセンサを表す。参照番号１０５は、スキャナからセンサ１０４への光の焦点を合わせるレンズを表し、参照番号１０６は、光導電性ドラム１３２上の画像を消去するために使用されるクエンチングランプを表す。帯電コロナユニット１０７および現像ローラ１０８がある。参照番号１０９は、スキャンされる文書を示すために使用されるランプを表し、要素１１０、１１１および１１２は、センサ１０４へ光を反射するミラーを表す。ドラムミラー１１３が、ポリゴンミラー１０２から発する光を光導電性ドラム１３２へ反射するために提供される。ファン１１４が、デジタル画像形成装置の帯電領域を冷却するために使用され、第１給紙ローラ１１５が第１用紙カセット１１７から給紙するために使用され、参照番号１１６は手差しテーブルを表す。同様に、第２給紙ローラ１１８が第２カセット１１９とともに使用される。参照番号１２０はリレーローラを表し、１２１は見当合わせローラを表し、１２２は画像濃度センサを表し、１２３は転写／分離コロナユニットを表す。参照番号１２４はクリーニングユニットを表し、１２５は吸引ファンを表し、１２６は搬送ベルトを表し、１２７は圧力ローラを表し、１２８は出口ローラを表す。熱ローラ１２９がトナーを用紙上に定着させるために使用され、１３０は排気ファンを表し、主モータ１３１がデジタル画像形成装置２４を駆動するために使用される。
【００３４】
図３は、図２のデジタル画像形成装置２４の電子コンポーネントを示すブロック図である。ＣＰＵ１６０は、装置のコントローラとして作用するマイクロプロセッサである。ランダムアクセスメモリ（ＲＡＭ）１６２は、デジタル画像形成装置２４の動作パラメータを含む動的に変化する情報を格納する。不揮発性メモリ（例えば、読み出し専用メモリ（ＲＯＭ）１６４またはフラッシュメモリ）は、画像形成装置２４を記述する静的状態データ（例えば、複写機のモデル番号、シリアル番号およびデフォルトパラメータ）とともに、デジタル画像形成装置を動作させるために使用されるプログラムコードを格納する。
【００３５】
マルチポートネットワークインタフェース１６６は、デジタル画像形成装置２４が少なくとも１つの通信ネットワークを通じて外部デバイスと通信することを可能にするために提供される。参照番号１６８は電話、ＩＳＤＮまたはケーブル回線を表し、番号１７０は、１６８で識別されるネットワークとは異なる別のタイプのネットワークを表す。マルチポートネットワークインタフェースについてさらに詳細には図４に関して記載される。インタフェースコントローラ１７２は、操作パネル１７４をシステムバス１８６に接続するために使用される。操作パネル１７４は、デジタル画像形成装置２４に見られる標準的な入出力デバイスを含み、これには複写ボタンや、例えば複写枚数、拡大縮小、明暗等のような画像形成装置の動作を制御するためのキーが含まれる。さらに、デジタル画像形成装置２４のパラメータおよびメッセージをユーザに対して表示するために、液晶ディスプレイが操作パネル１７４内に含まれてもよい。
【００３６】
ローカル接続インタフェース１７１は、ＲＳ２３２、パラレルプリンタポート、ＵＳＢおよびＩＥＥＥ１３９４のようなローカルポートによる接続である。FireWire（ＩＥＥＥ１３９４）は、Wickelgren，I．著「The Facts  About  FireWire」IEEE  Spectrum、April  1997、Vol．34、Number  4、pp.19-25に記載されており、その内容全体が参照により本明細書に援用される。好ましくは、誤り検出および再送を含む「信頼性のある」通信プロトコルが使用される。
【００３７】
ストレージインタフェース１７６は、ストレージデバイスをシステムバス１８６に接続する。例えば、ストレージデバイスとしては、フラッシュメモリ１７８（これは、従来の電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）によって置換可能である）およびディスク１８２がある。ディスク１８２は、ハードディスク、光ディスクおよび／またはフロッピーディスクドライブであり得る。追加のメモリデバイスが、接続１８０経由でデジタル画像形成装置２４に接続されてもよい。フラッシュメモリ１７８は、デジタル画像形成装置２４の寿命にわたってあまり頻繁に変化しないデジタル画像形成装置２４のパラメータを記述する準静的状態データを格納するために使用される。このようなパラメータとしては、例えば、デジタル画像形成装置のオプションおよびコンフィグレーションがある。オプションインタフェース１８４は、外部インタフェースのような追加のハードウェアがデジタル画像形成装置２４に接続されることを可能にする。クロック／タイマ１８７は、日時を追跡するとともに経過時間を測定するために利用される。
【００３８】
図３は、デジタル画像形成装置２４を構成する種々のセクションも示している。参照番号２０２はソータを表し、デジタル画像形成装置２４の出力をソートするために使用されるセンサおよびアクチュエータを含む。デュプレクサ２００は、両面印刷動作の実行を可能にする。デュプレクサ２００は、従来のセンサおよびアクチュエータを含む。大容量トレーユニット１９８が、大量の用紙を保持する用紙トレーを可能にするために提供される。デュプレクサ２００と同様、トレーユニット１９８もまた従来のセンサおよびアクチュエータを含む。
【００３９】
給紙コントローラ１９６が、デジタル画像形成装置への給紙動作、およびデジタル画像形成装置を通る給紙動作を制御するために使用される。スキャナ１９４は、画像をスキャンしてデジタル画像形成装置に取り込むために使用され、ライト、ミラー等のような従来のスキャニング要素を含む。さらに、スキャナがホームポジションにあるかどうかを判定するためのホームポジションセンサのようなスキャナセンサが使用され、ランプサーミスタがスキャニングランプの正しい動作を保証するために使用される。プリンタ／イメージャ１９２が、デジタル画像形成装置の出力を印刷し、従来のレーザ印刷機構、トナーセンサおよび画像濃度センサを含む。定着器１９０は、高温ローラを用いてページ上にトナーを定着させるために使用され、出口センサ、定着器１９０が過熱していないことを保証するためのサーミスタおよびオイルセンサを含む。さらに、自動ドキュメントフィーダ、異なるタイプのソータ／コレータ等のデジタル画像形成装置に追加可能な要素のような、デジタル画像形成装置のオプション要素に接続するために使用されるオプションユニットインタフェース１８８がある。
【００４０】
図４は、マルチポートネットワークインタフェース１６６の詳細を示す。デジタル画像形成装置は、トークンリングインタフェース２２０、ケーブルを通じての高速接続を有するケーブルモデムユニット２２２、電話回線１６８Ａに接続する従来の電話インタフェース２２４、ＩＳＤＮ回線１６８Ｂに接続するＩＳＤＮインタフェース２２６、無線インタフェース２２８またはＬＡＮ１７０に接続するイーサネットインタフェース２３０を通じて、外部デバイスと通信してもよい。他のインタフェースとしては、限定はされないが、デジタル加入者回線（ＤＳＬ）（オリジナルＤＳＬ、同軸ＤＳＬおよび非対称ＤＳＬ）があり得る。単体でローカルエリアネットワークおよび電話回線の両方に接続するデバイスがIntelから市販されており、Intel  Pro  10/100+Modemとして知られている。
【００４１】
ＣＰＵまたは他のマイクロプロセッサもしくは回路が、デジタル画像形成装置の各センサの状態を監視する監視プロセスを実行し、シーケンス制御プロセスが、デジタル画像形成装置を制御し、かつ動作させるために使用されるコードの命令を実行するために使用される。さらに、（１）デジタル画像形成装置の全体動作を制御するために実行される中央システム制御プロセス、および（２）デジタル画像形成装置に接続される外部デバイスとの信頼性のある通信を保証するために使用される通信プロセスがある。システム制御プロセスは、静的状態メモリ（例えば、図３のＲＯＭ１６４）、準静的メモリ（例えば、フラッシュメモリ１７８またはディスク１８２）または動的状態メモリ（例えば、揮発性または不揮発性メモリ（例えば、ＲＡＭ１６２、フラッシュメモリ１７８またはディスク１８２））内のデータストレージを監視および制御する。さらに、静的状態メモリは、ＲＯＭ１６４以外の、フラッシュメモリ１７８またはディスク１８２のいずれかを含む不揮発性メモリのようなデバイスであってもよい。
【００４２】
上記の詳細は、デジタル画像形成装置に関して説明されているが、本発明は、アナログ複写機、ファクシミリ機、スキャナ、プリンタ、ファクシミリサーバ、プロジェクタ、会議機器、シュレッダのような他の事務用マシンもしくはデバイスや、他の事務用マシン、事務用機器または他の機器（例えば、電子レンジ、ＶＣＲ、デジタルカメラ、携帯電話機、パームトップコンピュータ）にも同様に適用可能である。さらに、本発明は、蓄積交換型または直接接続方式の通信を用いて動作する他のタイプのデバイスを含む。このようなデバイスには、動作または遠隔診断中に監視されることを必要とする計測システム（ガス、水道または電気計測システムを含む）、自動販売機またはいかなる機械的デバイス（例えば自動車）も含まれる。特定用途のマシンおよびコンピュータを監視することに加えて、本発明は、監視および／または制御されるデバイスとなる汎用コンピュータを監視、制御および診断するためにも使用可能である。
【００４３】
図５は、種々のデバイスおよびサブシステムがＷＡＮ１０に接続される本発明の代替システムの図を示している。しかし、これらのデバイスまたはサブシステムのそれぞれを本発明の一部として有する必要はない。図５に示す各コンポーネントまたはサブシステムは、個別に本発明の一部である。さらに、図１に示した要素が図５に示すＷＡＮ１０に接続されてもよい。図５において、イントラネット２６０−１に接続されたファイアウォール５０−１が示されている。イントラネット２６０−１に接続されたサービスマシン２５４はその内部に、またはそれに接続されて、データベースフォーマットで格納可能なデータ２５６を有する。データ２５６には、履歴、性能、故障や、被監視デバイスの動作もしくは障害または設定の統計情報、または被監視デバイスとともにどのコンポーネントもしくはオプション機器が含まれているかというようなコンフィグレーション情報等のいかなる他の情報も含まれる。サービスマシン２５４は、被監視デバイスに対してデータを送信するよう要求し、または遠隔制御および／または診断テストが被監視デバイス上で実行されることを要求するデバイスまたはコンピュータとして実施されてもよい。サービスマシン２５４は、いかなるタイプのデバイスとして実施されてもよいが、好ましくは、汎用コンピュータのようなコンピュータ化されたデバイスを用いて実施される。
【００４４】
図５の別のサブシステムは、ファイアウォール５０−２、イントラネット２６０−２、およびそれに接続されたプリンタ２６２を含む。このサブシステムでは、プリンタ２６２による（および同様に複写機２８６による）電子メッセージの送受信の機能が、（１）回路、（２）マイクロプロセッサまたは（３）プリンタ２６２内に含まれ、もしくはそれに装着された（すなわち、別個の汎用コンピュータを使用しない）任意の他のタイプのハードウェアによって実行される。
【００４５】
代替のタイプのサブシステムとしては、インターネットサービスプロバイダ２６４を使用するものが含まれる。これは、America  Online、EarthlinkおよびNiftyserveのような既知の営利会社を含むいかなるタイプのインターネットサービスプロバイダ（ＩＳＰ）であってもよい。このサブシステムでは、コンピュータ２６６がデジタルまたはアナログモデム（例えば、電話回線モデム、ケーブルモデム、サービス総合デジタル網（ＩＳＤＮ）回線もしくは非対称デジタル加入者回線（ＡＤＳＬ）を通じて使用されるモデムのような任意のタイプの配線を使用するモデム、フレームリレー通信を使用するモデム、無線周波数モデムのような無線モデム、光ファイバモデムまたは赤外光波を使用するデバイス）を通じてＩＳＰ２６４に接続される。さらに、事務用デバイス２６８がコンピュータ２６６に接続される。事務用デバイス２６８（または、図５に示されている任意の他のデバイス）の代替形態として、デジタル複写機、任意のタイプの機器、セキュリティシステム、もしくは電気、水道もしくはガス需要計器のような需要計器、または本明細書で考察される任意の他のデバイスのような、異なるタイプのマシンが監視または制御されてもよい。
【００４６】
また図５には、ネットワーク２７４に接続されたファイアウォール５０−３も示されている。ネットワーク２７４は、いかなるタイプのコンピュータネットワーク（例えば、イーサネットまたはトークンリングネットワーク）として実施されてもよい。ネットワークを制御するために使用可能なネットワーキングソフトウェアとしては、NovellやMicrosoftから市販されているソフトウェアを含むいかなる所望のネットワーキングソフトウェアも含まれる。ネットワーク２７４は、所望であれば、イントラネットとして実施されてもよい。ネットワーク２７４に接続されるコンピュータ２７２は、事務用デバイス２７８から情報を取得し、ネットワークに接続されている種々のマシンで発生した問題を示すレポートや、ネットワーク２７４に接続されているデバイスの月別使用状況レポートのようなレポートを生成するために使用されてもよい。この実施形態では、コンピュータ２７６は、事務用デバイス２７８とネットワーク２７４の間に接続される。このコンピュータは、ネットワークからの通信を受信し、適切なコマンドもしくはデータ、または任意の他の情報を、事務用デバイス２７８に転送する。
【００４７】
事務用デバイス２７８とコンピュータ２７６の間の通信は、有線または無線のいずれの方法を用いて達成されてもよい。これには、以下のものに限定されないが、無線周波数接続、電気接続および光接続（例えば、赤外線接続または光ファイバ接続）がある。同様に、図５に示されている種々のネットワークおよびイントラネットのそれぞれは、無線周波数ネットワークのような無線ネットワークの確立によるものを含むいかなる所望の方法を用いて確立されてもよい。本明細書に記載される無線通信は、拡散符号を使用する技法や、Bluetooth  Specification（ワールドワイドウェブサイトwww．Bluetooth．comで入手可能）に開示されている周波数ホッピング無線技法のような周波数ホッピング技法を含むスペクトラム拡散技法を用いて確立されてもよく、これは参照により本明細書に援用される。
【００４８】
図５に示されている別のサブシステムは、ファイアウォール５０−４、イントラネット２６０−４、それに接続されたコンピュータ２８２、事務用機器２８５および複写機２８６を含む。コンピュータ２８２は、レポートを生成し、診断または制御手続きを要求するために使用されてもよい。これらの診断および制御手続きは、事務用機器２８５および複写機２８６、または図５に示され、もしくは図５とともに使用されるいかなる他のデバイスに関して実行されてもよい。図５は複数のファイアウォールを示しているが、ファイアウォールは好ましいが随意の機器であり、したがって本発明は、所望であればファイアウォールを使用せずに運用されてもよい。ネットワーク接続された機器の監視および制御のため、いかなるコンピュータ（２６６、２７２または２８２）も２５４の代わりに使用されることが可能である。
【００４９】
図６Ａは、コンポーネント３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６および３１８を含む一般的な電子メール交換システムに接続されたデバイス／機器３００を示している。これは従来の方法で実施されてよく、上述のStevensのFigure  28.1を改変したものである。コンピュータインタフェース３０２が、本明細書に記載される任意のアプリケーションユニットまたはデバイス／機器３００とインタフェースをとる。図６Ａは、デバイス／機器３００が送信側である場合を示しているが、送信および受信の機能は図６Ａで逆にしてもよい。さらに、所望であれば、ユーザはデバイス／機器３００とインタフェースをとることを全く必要としなくてもよい。次に、コンピュータインタフェース３０２はメールエージェント３０４と相互作用する。Unix用の普及しているメールエージェントとしては、MH、Berkeley  Mail、ElmおよびMushがある。Windowsファミリのオペレーティングシステム用のメールエージェントとしては、Microsoft  OutlookおよびMicrosoft  Outlook  Expressがある。コンピュータインタフェース３０２の要求時に、メールエージェント３０４は、送信されるべき電子メールメッセージを作成し、所望であれば、送信されるべきこれらのメッセージをキュー３０６に入れる。送信されるべきメールは、メッセージ転送エージェント（ＭＴＡ）３０８に転送される。Unixシステム用の普通のＭＴＡはSendmailである。通常、メッセージ転送エージェント３０８と３１２は、ＴＣＰ／ＩＰ接続３１０を用いて交信する。特に、メッセージ転送エージェント３０８と３１２の間の通信は、いかなるサイズのネットワーク（例えば、ＷＡＮまたはＬＡＮ）を通じて行われてもよい。さらに、メッセージ転送エージェント３０８および３１２は、いかなる通信プロトコルを使用してもよい。本発明の一実施形態では、図６Ａの要素３０２および３０４は、アプリケーションユニットの使用を監視するためのライブラリに存在する。
【００５０】
メッセージ転送エージェント３１２から、電子メールメッセージがユーザメールボックス３１４に格納され、これがメールエージェント３１６に転送され、最終的に、受信端末として機能する端末３１８のユーザに送信される。
【００５１】
この「蓄積交換」プロセスは、送信側メールエージェント３０４を、メール受信側との直接接続が確立されるまで待機しなければならないことから解放する。ネットワーク遅延のため、通信には相当の時間を要することがあり、その間アプリケーションは応答しなくなる。このような応答性の遅延は一般に、アプリケーションユニットのユーザにとって受け入れ難いであろう。電子メールを蓄積交換プロセスとして使用することによって、障害後の再送試行が一定期間（例えば３日間）自動的に行われる。一代替実施形態では、アプリケーションは、１つまたは複数の別個のスレッドに通信要求を渡すことによって、待機を避けることができる。その後、それらのスレッドが受信側端末３１８との通信を制御し、一方でアプリケーションはユーザインタフェースへの応答を再開する。さらに別の実施形態では、ユーザが続行前に通信を完了したい場合、受信側端末との直接通信が使用される。このような直接通信は、送信側と受信側の端末間のファイアウォールによって遮断されないいかなるプロトコルを利用することも可能である。このようなプロトコルの例としては、Telnet、ファイル転送プロトコル（File  Transfer  Protocol）（ＦＴＰ）およびハイパーテキスト転送プロトコル（Hyper  Text  Transfer  Protocol）（ＨＴＴＰ）がある。
【００５２】
インターネットのようなパブリックＷＡＮは一般に、安全であるとはみなされていない。したがって、メッセージを秘密に保ちたい場合、パブリックＷＡＮ（および多企業プライベートＷＡＮ）を通じて送信されるメッセージを暗号化することができる。暗号化メカニズムが知られておりかつ市販されていて、本発明とともに使用してもよい。例えば、Unixオペレーティングシステムで使用するために、Ｃ＋＋ライブラリ関数crypt()がSun  Microsystemsから入手可能である。暗号化および復号化ソフトウェアパッケージが知られており、これも本発明とともに使用してもよい。１つのこのようなパッケージは、PGP社から入手可能なＰＧＰである。
【００５３】
図６Ａの一般的構成の代替形態として、コンピュータインタフェース３０２、メールエージェント３０４、メールキュー３０６およびメッセージ転送エージェント３０８として機能する単一のコンピュータを使用してもよい。図６Ｂに示すように、デバイス／機器３００はコンピュータ３０１に接続され、コンピュータ３０１はメッセージ転送エージェント３０８を含む。
【００５４】
別の代替構成を図６Ｃに示す。この構成では、メッセージ転送エージェント３０８はデバイス／機器３００の一部として形成される。さらに、メッセージ転送エージェント３０８は、ＴＣＰ／ＩＰ接続３１０によってメッセージ転送エージェント３１２に接続される。図６Ｃの実施形態では、デバイス／機器３００が電子メール機能を有し、ＴＣＰ／ＩＰ接続３１０に直接接続される。図６Ｃの実施形態の１つの用途として、電子メール機能付きのファクシミリ機（例えば、ＲＦＣ２３０５（インターネットメールを用いたファクシミリの簡易モード）で規定されるような）をデバイス／機器３００として使用することがある。
【００５５】
図６Ｄは、デバイス／機器３００がそれ自体は電子メールを直接受信する機能を有しないが、メッセージ転送エージェント３０８およびメールボックス３１４を含むメールサーバ／ＰＯＰ３サーバへの接続３１０を有し、デバイス／機器３００がＰＯＰ３プロトコルを用いてメールサーバから受信メールを取り出すようなシステムを示している。
【００５６】
図７は、メールを転送する一代替実施態様を示しており、前に参照したStevensのFigure  28.3を改変したものである。図７は、それぞれの側にリレーシステムを有する電子メールシステムを示している。図７の構成は、組織における１つのシステムがメールハブとして作用することを可能にする。図７には、２つのメールエージェント３０４と３１６の間に接続された４つのＭＴＡがある。これらのＭＴＡとしては、ローカルＭＴＡ３２２Ａ、リレーＭＴＡ３２８Ａ、リレーＭＴＡ３２８ＢおよびローカルＭＴＡ３２２Ｄがある。本発明とともに使用可能な、メールメッセージに使用される最も普通のプロトコルはＳＭＴＰ（Simple  Mail  Transfer  Protocol）であるが、いかなる所望のメールプロトコルを利用してもよい。図７において、３２０は、コンピュータインタフェース３０２、メールエージェント３０４およびローカルＭＴＡ３２２Ａを含む送信側ホストを表す。デバイス／機器３００は送信側ホスト３２０に接続され、または別法としてその内部に含まれる。別の場合として、デバイス／機器３００およびホスト３２０が１つのマシン内にあり、ホスト機能がデバイス／機器３００に組み込まれてもよい。他のローカルＭＴＡ３２２Ｂ、３２２Ｃ、３２２Ｅおよび３２２Ｆも含まれてよい。送受信されるメールは、リレーＭＴＡ３２８Ａのメールのキュー３０６Ｂにキューイングされてもよい。メッセージは、ＴＣＰ／ＩＰ接続３１０（例えば、インターネット接続または任意の他のタイプのネットワークを通じた接続）を越えて転送される。
【００５７】
送信されたメッセージは、リレーＭＴＡ３２８Ｂによって受信され、所望であれば、メールのキュー３０６Ｃに格納される。次に、メールは受信側ホスト３４２のローカルＭＴＡ３２２Ｄに転送される。メールは、１つまたは複数のユーザメールボックス３１４に入れられ、続いてメールエージェント３１６に転送され、最後に端末３１８のユーザに転送されてもよい。所望であれば、メールは、ユーザとの対話なしに端末に直接転送されてもよい。
【００５８】
図５のコンピュータ２６６および２７６など、本発明で使用される種々のコンピュータは、図８に示すように実施されてもよい。さらに、本発明で使用されるいかなる他のコンピュータも、所望であれば、図５のサービスマシン２５４、コンピュータ２７２およびコンピュータ２８２など、図８に示すコンピュータと同様に実施されてもよい。しかし、図８に示すあらゆる要素がそれらの各コンピュータに必要なわけではない。
【００５９】
図８において、コンピュータ３６０はＣＰＵ３６２を含む。これは、Intel、AMD、Motorola、HitachiおよびNECのような会社からの市販のマイクロプロセッサを含むいかなるタイプのプロセッサとして実施されてもよい。ＲＡＭ３６４のようなワーキングメモリ、および無線デバイス３６８と通信する無線インタフェース３６６がある。インタフェース３６６とデバイス３６８の間の通信は、いかなる無線媒体（例えば、電波または光波）を使用してもよい。電波は、符号分割多元接続（ＣＤＭＡ）通信のようなスペクトラム拡散技法を用いて、またはBluetooth仕様に開示されているもののような周波数ホッピング技法を用いて実施されてもよい。
【００６０】
コンピュータ３６０は、ＲＯＭ３７０およびフラッシュメモリ３７１を含むが、いかなる他のタイプの不揮発性メモリ（例えば、消去可能プログラム可能ＲＯＭ、またはＥＥＰＲＯＭ）がフラッシュメモリ３７１に加えて、またはその代わりに使用されてもよい。入力コントローラ３７２には、キーボード３７４およびマウス３７６が接続される。シリアルデバイス３８０に接続されるシリアルインタフェース３７８がある。さらに、パラレルインタフェース３８２がパラレルデバイス３８４に接続され、ユニバーサルシリアルバス（ＵＳＢ）インタフェース３８６がユニバーサルシリアルバスデバイス３８８に接続され、ＩＥＥＥ１３９４インタフェース３９８に接続される、一般にファイヤワイヤデバイスと呼ばれるＩＥＥＥ１３９４デバイス４００もある。システムバス３９０が、コンピュータ３６０の種々の要素を接続する。ディスクコントローラ３９６が、フロッピーディスクドライブ３９４およびハードディスクドライブ３９２に接続される。通信コントローラ４０６は、コンピュータ３６０が電話回線４０２またはネットワーク４０４を通じて他のコンピュータと（例えば電子メールメッセージを送信することによって）通信することを可能にする。Ｉ／Ｏ（入出力）コントローラ４０８が、例えばＳＣＳＩ（Small  Computer  System  Interface）バスを用いてプリンタ４１０およびハードディスク４１２に接続される。また、ＣＲＴ（ブラウン管）４１４に接続されるディスプレイコントローラ４１６もあるが、液晶ディスプレイ、発光ダイオードディスプレイ、プラズマディスプレイ等を含むいかなる他のタイプのディスプレイが使用されてもよい。
【００６１】
次に図９を参照すると、本発明の一例示的実施形態によるシステム９００全体の概略図が示されている。システム９００は、複数のデバイス、例えば、レーザプリンタ９０８、スキャナ９１０、ネットワークデバイス９１２、および多機能プリンタ９１４を含み、すべてがネットワーク１００に接続されているように示されている。これらの複数のデバイスは本明細書では包括的に「被監視デバイス」と呼ばれる。システム９００はまた、ワークステーション／監視システム９０２（以下コントローラ９０２という）も含む。これは、被監視デバイス９０８、９１０、９１２、および９１４を監視および制御するためにネットワーク１００に接続される。被監視デバイス９０８、９１０、９１２、および９１４のそれぞれには固有のアドレスが与えられる。例えば、デバイスに割り当てられるＩＰアドレスが、そのデバイスの固有アドレスの役割を果たす。したがって、コントローラ９０２のユーザは、それぞれの被監視デバイスに割り当てられた固有のＩＰアドレスにアクセスすることによって、被監視デバイス９０８〜９１４のうちのそれぞれのデバイスにアクセスすることができる。理解されるように、本発明は、ネットワークに接続されるデバイスを一意的に識別するためにＩＰアドレスを使用することには限定されない。
【００６２】
コントローラ９０２は、被監視デバイス９０８〜９１４のうちのデバイスにアクセスすると、ＳＮＭＰまたは／およびＨＴＴＰプロトコルを通じて種々の情報を取得する。このような情報は、トラブルシューティング情報を含むそのデバイスの動作ステータスに関する詳細情報を含む。例えば、コントローラ９０２は、特定のデバイスにアクセスしてそのジャム位置を取得し、そのジャムを解消するためにそのデバイスの担当者にメッセージを送信する。レーザプリンタ９０８の動作ステータス／詳細は、トナーレベル、紙詰まりの指示、プリンタトレー内の印刷用紙の量等の詳細を含む。
【００６３】
理解されるように、コントローラ９０２はネットワーク１００に物理的に接続されても無線結合してもよい。例えば、携帯情報端末（ＰＤＡ）９２０またはラップトップコンピュータ９２２が、ネットワーク１００に無線結合しているように図示されているが、これらがコントローラ９０２として使用されてもよい。アクセスポイント９２４が、ネットワーク１００とＰＤＡ９２０またはラップトップコンピュータ９２２との間の無線通信を可能にするインタフェースとして作用する。以下、本発明は、コントローラ９０２が、ネットワークに接続されている被監視デバイスのステータスを制御および監視すると仮定して説明される。
【００６４】
ネットワーク１００は、コントローラ９０２と被監視デバイス９０８〜９１４の間の通信を容易にして、このような被監視デバイスの監視および制御を可能にする。ネットワークに接続されるデバイスの個数は本発明を限定するものではない。理解されるように、ネットワーク１００は、ローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）のいずれでもよい。同様に、被監視デバイス９０８、９１０、９１２、および９１４は単に例示として示されている。
【００６５】
コントローラ９０２は、ストレージデバイス９０４およびデータベース９０６に通信可能に結合する。ストレージデバイス９０４としては、ハードディスク、光ディスク、および／または外部ディスクドライブなどがある。データベース９０６は、ストレージデバイス９０４に通信可能にリンクされ、ストレージデバイス９０４に格納されているデータの容易な検索および取り出しのための関係データベース管理システム（ＲＤＢＭＳ）を含む。ストレージデバイス９０４は、好ましくは、被監視デバイス９０８〜９１４のそれぞれに関する詳細情報を格納する。例えば、レーザプリンタ９０８の製造元、モデル、ならびに種々の機能およびトラブルシューティングの詳細のような詳細情報がストレージデバイス９０４に格納される。また、所定の基準値と比較しての、レーザプリンタの動作ステータスに関する偏差値もまたストレージデバイス９０４に格納されてもよい。データベース９０６およびストレージデバイス９０４はコントローラ９０２に通信可能に結合しているように記載されているが、理解されるように、コントローラ９０２は、ストレージデバイスおよびデータベースがその内部にインストールされて構成されてもよい。このような場合、ストレージデバイス９０６およびデータベース９０４はコントローラ９０２の内部にあるものとして描かれるであろう。
【００６６】
コントローラ９０２には、複数のデバイス９０８〜９１４の監視および制御を容易にするためにソフトウェアがインストールされる。コントローラ９０２が複数のデバイス９０８〜９１４を監視するためにSimple  Network  Management  Protocol（ＳＮＭＰ）およびHyper  Text  Transfer  Protocol（ＨＴＴＰ）が使用され、複数のデバイス９０８〜９１４から受信されるデータは、９５０に示すように、ＡＳＮ．１バイナリフォーマットまたはＨＴＭＬもしくはＸＭＬフォーマットの形態で提示される。
【００６７】
図９はイメージングデバイスのみを示しているが、監視デバイスと複数の被監視デバイスの間で情報を通信するためのネットワークは、機器および計器がネットワークに接続されたホームネットワークを含んでもよい。理解されるように、コントローラ／ワークステーション９０２によって収集されるデータは、さらに処理をするために、電子メール、ＦＴＰ、またはいかなる他の通信プロトコル手段を通じてリモートデバイスへ送信されてもよい。
【００６８】
図１０は、本発明の一例示的実施形態によるデータの監視およびそのインタフェース関数で使用されるシステム１０００を示している。システム１０００は、ＮＴまたはWindows  2000におけるサービスやUnixにおけるデーモンのようなコンピュータ常駐プログラムであるモジュールMonitorService１００４を含む。また、システム１０００には、Timerモジュール１００２およびMonitorモジュール１００６も含まれる。モジュール１００２および１００６は、MonitorService１００４によって呼び出されるライブラリ関数である。例えば、MonitorService１００４は、InitTimer１００３関数を呼び出すことによってTimerモジュール１００２を初期化し、obtainDelayAndAction(int  &，int  &)関数を呼び出すことによって遅延およびアクションパラメータを取得する。init()関数もまた、図１３に示すようなMonitorモジュール１００６内の種々のモジュールを初期化するためにMonitorService１００４によって呼び出される。init()関数は、「ping」のような既知の方法を通じて被監視デバイスに割り当てられているＩＰアドレスを取得するために使用可能である。Monitorモジュール１００６は、サポートデータベース１０２４およびモニタデータベース１０１４に通信可能に結合する。
【００６９】
被監視デバイスのＩＰアドレスが取得されると、そのＩＰアドレスは、監視システムが被監視デバイスと交信して、製造元やモデル情報のような情報を取得するために使用される。システム１０００によって実行される関数を以下で説明する。
【００７０】
void  initTimer(void)
この関数はTimerを初期化する。特に、この関数はTimerオブジェクトをトリガしてレジストリからタイミング情報を獲得する。
【００７１】
void  obtainDelayAndAction(int  &  out_nDelay，int  &  out_nAction)
この関数は、::Sleep関数のための秒単位の遅延時間（１０００倍することが必要）、およびアクションインジケータを返す。
【００７２】
int  init(void)
この関数はMonitorを初期化する。さらに、監視されるべきデバイスを作成する。返値intはエラーコードであり、ゼロがエラーなしと定義される。
【００７３】
int  monitorStatus(int  in_nAction)
この関数はプリセット情報を監視する。返値intはエラーコードであり、ゼロがエラーなしと定義される。
【００７４】
int  end(void)
この関数は、オブジェクトをクローズする前にMonitorをクリーンアップする。返値intはエラーコードであり、ゼロがエラーなしと定義される。
【００７５】
図１１は、Monitorモジュール１００６内の構成の詳細およびMonitorモジュール１００６のサブモジュール間の呼出し関数を示している。Monitorモジュール１００６は、図１０に示したようなインタフェース関数によって定義されるタスクを完了するために、DeviceODBC１１０４、Deviceモジュール１１１０、ハードウェアアクセス（HWaccess）モジュール１１１６、およびSupportODBC１１１４のような他のサブモジュールを管理するMonitorManager１１０２を含む。具体的には、DeviceODBCサブモジュール１１０４およびSupportODBCサブモジュール１１１４は、標準的なインタフェースを通じて外部情報にアクセスするためにアクセスされる。MonitorManager１１０２はHWaccessモジュール１１１６経由でSupportODBCサブモジュール１１１４に結合する。HWaccessモジュール１１１６は、複数の通信プロトコル（いくつか列挙すれば、例えばＨＴＴＰ、ＳＮＭＰのような）のうちから所定の通信プロトコルを用いて被監視デバイスにアクセスするために、データベース１０２４に接続されたSupportODBC１１１４を通じて取得される情報を用いて被監視デバイスからベンダ、モデル、固有ＩＤ、およびステータス情報を取得する。
【００７６】
SupportODBCモジュール１１１４に存在する情報は、複数の通信プロトコルをサポートするために使用される。例えば、SupportODBCモジュール１１１４は、種々の通信プロトコルをサポートし、ベンダおよびデバイスモデルに固有の種々の通信プロトコルによって使用され得る情報を格納するために作成されてもよい。被監視デバイスが、通信プロトコルを使用するとともにSupportODBC１１１４に格納されている情報を使用してアクセスされると、被監視デバイスから受信されるステータス情報がDeviceODBC１１０４を通じてデータベース１０１４に格納される。サブモジュール間で実行される呼出し関数は以下のように定義される。
【００７７】
主要インタフェース
このセクションは、パッケージ間の主要インタフェースのみを論ずる。以下は、パッケージ間のインタフェースの完全なリストではない。例えば、一部のパッケージは、都合の良いフォーマットで情報を取得するために、init関数または追加的関数を有する必要があるかもしれない。
【００７８】
void  updateConfig(std::map<infoType，std::string>  &)
この関数が呼び出される前に、get関数がVendorModelパッケージからヌル文字列を返す場合には、呼出し関数は製造元およびモデルのエントリを置き換えないほうが好ましい。この関数は、DeviceODBC１１０４を通じてカレントレコードのデバイス情報データベースを更新する。この関数は、下記のobtainConfigが最初に呼び出される場合に非常に効率的である。
【００７９】
bool  obtainConfig(std::map<infoType，std::string>  &)
この関数は、所与のフォーマットでデバイス情報に対してDeviceODBC１１０４を通じてマップを取得する。関数は、返されるデータがあればtrueを返し、もはやデータがなければfalseを返す。
【００８０】
bool  saveStatus(std::map<infoType，std::string>  &)
この関数は、DeviceODBC１１０４を通じてデータベース１０１４にステータス情報を保存する。関数は、保存が成功すればtrueを返し、成功しなければfalseを返す。
【００８１】
Cdevice  *  createDevice(std::string  &  in_sIP，CHWaccess  &  in_Hwaccess，std::string  &  in_sCommunity)
この関数は、in_sIPおよびin_sCommunityに基づいて、CHWaccessを通じてハードウェアに接続されるデバイスを作成する。デバイスを作成することができない場合、関数は０を返す。したがって、呼出し側オブジェクトは、返されるオブジェクトポインタが０であるか否かをチェックしなければならない。
【００８２】
bool  canAccessHW(void)
この関数は、ハードウェアがネットワークを通じてアクセス可能であればtrueを返し、アクセス可能でなければfalseを返す。
【００８３】
bool  getVendor(std::string  &  out_sVendor)
この関数はベンダ名を返す。デバイスがシステムによってサポートされないがＳＮＭＰまたはＨＴＴＰを通じてアクセス可能である場合、文字列は「GENERIC」を含むはずである。プロセス中にエラーが検出された場合、関数はヌル文字列とともにfalseを返す。検出されなければ関数はtrueを返す。
【００８４】
bool  getModel(std::string  &  out_sModel)
この関数はデバイスのモデルを獲得する。モデルが取得された場合、関数はtrueを返す。プロセス中にエラーが検出された場合、関数はヌル文字列とともにfalseを返す。
【００８５】
bool  getUniqueID(std::string  &  out_sUniqueID)
この関数はデバイスの固有ＩＤを返す。固有ＩＤが取得された場合、関数はtrueを返す。プロセス中にエラーが検出された場合、関数はヌル文字列とともにfalseを返す。
【００８６】
bool  obtainStatus(map<infoType，std::string>  &  out_StatusMap)
この関数はステータスマップを返す。関数は、ステータスが返される場合にtrueを返し、ステータスを取得することができなければfalseを返す。なお、この関数はHWaccessパッケージおよびDeviceパッケージから異なるマップを返すことに留意されたい。Deviceパッケージでは、エラーステータス情報が、HWaccessから返されるマップに付加され、エラーステータス情報はゼロにクリアされる。
【００８７】
enum  checkErrorStatus(void)
この関数は、ＳＮＭＰを通じてプリンタのエラーバイトを取得することをトリガする。enum型および値はクラス内で定義されなければならない。enum値は値「eNoErrorSinceClearAndNoErrorDetected、eNoErrorSinceClearAndErrorDetected、eErrorSinceClearAndNoErrorDetected、eErrorSinceClearAndErrorDetectedを」含まなければならない。
【００８８】
bool  obtainErrorStatus(map<infoType，std::string>  &  out_ErrorStatusMap)
この関数はエラーステータス情報を取得する。関数は、ステータスが返される場合にtrueを返し、ステータスを取得することができなければfalseを返す。
【００８９】
void  clearErrorStatus(void)
この関数は、最後のobtainStatus関数呼出しまたはclearErrorStatus以降に蓄積したエラーステータスをクリアする。
【００９０】
void  initBegin(void)
この関数は、特にソフトウェアデバイスオブジェクトを作成するために、HWaccessを通じて初期化プロセスを開始する。
【００９１】
void  initEnd(void)
この関数は、HWaccessを通じて初期化プロセスを終了し、デバイスオブジェクト作成が終了したことを示す。
【００９２】
bool  canAccessIP(std::string  &  in_sIP，std::string，&  in_sCommunity)
この関数は、デバイスがＩＰアドレスにおいてアクセス可能であればtrueを返し、アクセス可能でなければfalseを返す。
【００９３】
bool  obtainVendor(std::string  &  out_sVendor，std::string  &  in_sIP，std::string  &  in_sCommunity)
この関数はベンダを取得する。関数は、動作が成功すればtrueを返し、成功しなければ空文字列とともにfalseを返す。
【００９４】
bool  obtainModel(std::string  &  out_sModelName，std::string  &  in_sIP，std::string  &  in_sCommunity)
この関数はモデル名を取得する。関数は、動作が成功すればtrueを返し、成功しなければ空文字列とともにfalseを返す。
【００９５】
bool  obtainUniqueID(std::string  &  out_sUniqueID，std::string  &_sIP，std::string  &  in_sCommunity)
この関数は固有ＩＤを取得する。関数は、動作が成功すればtrueを返し、成功しなければ空文字列とともにfalseを返す。
【００９６】
ErrorCode  obtainErrorStatus(char  &  out_cError，std::string  &  in_sIP，std::string  &  in_sCommunity)
この関数は、ＳＮＭＰを通じてエラーステータスバイトを取得する。関数は、動作が成功すればtrueを返し、成功しなければゼロバイトとともにfalseを返す。EerrorCodeは下記で定義する。
【００９７】
bool  obtainStatus(map<infoType，std::string>  &  out_StatusMap，std::string  &  in_sIP，std::string  &  in_sVendor，std::string  &  in_sModel，std::string，in_sCommunity)
この関数はデバイスのステータスを取得する。関数は、動作が成功すればtrueを返し、成功しなければ空マップとともにfalseを返す。
【００９８】
bool  obtainSNMPVendor(std：：string  out_sVendor，std::string  &  out_sOIDVendor，std::string  &  out_sOIDModelLocation，std::string  &  out_sOIDUniqueID)
この関数は、ＳＮＭＰの場合に、ベンダの名前、そのベンダＯＩＤ、モデル情報が格納されているＯＩＤ、および固有ＩＤを取得することができるＯＩＤを取得する。この関数は、データが返される場合にtrueを返し、もはやデータが利用可能でなければfalseを返してすべての文字列にヌル文字列がセットされる。
【００９９】
bool  obtainSNMPVendorStatus(infoType  &  out_nNum，std::string  &  out_sOID，std::string  &  in_sVendor)
この関数は、ＳＮＭＰの場合に、所与のベンダに対するinfoTypeおよびそのinfoTypeに関連するＯＩＤを取得する。取得されるinfoTypeおよびＯＩＤの対は、所与のベンダからのすべてのデバイスによってサポートされる。この関数は、データが返される場合にtrueを返し、もはやデータが利用可能でなければfalseを返してすべての文字列にヌル文字列がセットされる。注意：GENERICが、すべてのベンダに共通のベンダである。
【０１００】
bool  obtainSNMPModelStatus(infoType  &  out_nNum，std::string  &  out_sOID，std::string  &  in_sVendor，std::string  &  in_sModel)
この関数は、ＳＮＭＰの場合に、所与のベンダおよびモデルに対するinfoTypeおよびそのinfoTypeに関連するＯＩＤを取得する。この関数は、データが返される場合にtrueを返し、もはやデータが利用可能でなければfalseを返してすべての文字列にヌル文字列がセットされる。
【０１０１】
bool  obtainSupportedVendorModel(std::string  &  out_sVendor，std::string  &  out_sModel，int  &  out_nDelay)
この関数は、ＨＴＴＰを通じてウェブサイトにアクセスするための遅延とともに、ベンダおよびサポートされるモデルを取得する。ベンダおよびモデルに対してＳＮＭＰのみがサポートされる場合、out_nDelayは−１でなければならない。同じベンダの複数のインスタンスがあってもよいが、モデルは所与のベンダに対して固有である。この関数は、データが返される場合にtrueを返し、もはやデータが利用可能でなければfalseを返してすべての文字列にヌル文字列がセットされる。
【０１０２】
bool  obtainHTTPWebUniqueIDForVendor(std::string  &  out_sWebPage，SkeyValueInfo  &  out_KeyValueInfo，std::string  &  in_sVendor)
この関数は、所与のベンダに対するウェブページおよび固有ＩＤのSKeyValueInfo構造体を取得する。同じベンダが複数のウェブページを有してもよい。この関数は、データが返される場合にtrueを返し、もはやデータが利用可能でなければfalseを返してすべての値にヌル値がセットされる。
【０１０３】
bool  obtainHTTPWebPageInfoForVendorModel(std::string  &  out_sWebPage，std::vector<SKeyValueInfo>  &  out_KeyValueInfoVector，std::string  &  in_sVendor，std::string  &  in_sModel)
この関数は、所与のベンダおよびモデルに対するウェブページおよびそのウェブページに関連するSKeyValueInfo構造体のベクタを取得する。同じベンダおよびモデルが複数のウェブページを有してもよい。この関数は、データが返される場合にtrueを返し、もはやデータが利用可能でなければfalseを返してすべての値にヌル値がセットされる。
【０１０４】
図１２Ａは、図１１に示したHWaccessサブモジュール１１１６およびSupportODBCサブモジュール１１１４が、HWaccessサブモジュール１１１６によって受信されるキー値に関連する値の取り出しのための情報を交換するために使用されるデータ構造体を示している。例えば、図１２Ａに示すようなSKeyValueInfoデータ構造体１２００は、所与のウェブページ内の特定のinfoTypeに対応する情報を取得する方法を決めるために使用される。通常、多数のベンダが、それぞれのウェブページに表示される、被監視デバイスに関連するキー情報を識別するために、ベンダ固有の識別子および命名法を使用している。例えば、プリンタデバイスによって印刷されるページ数を決めるため、Hewlett  Packardは「Page  Count」機能を使用する一方、Xeroxは「Total  Sheet  Delivered」機能を用いてそれを識別する。本発明の特徴は、データ構造体／SKeyValueInfo構造体１２００を使用することによって、ベンダ間の相違を克服し、それによりデバイス固有情報を識別する標準化された統一的方法を提供し、その情報に対応する値を抽出することである。SKeyValueInfoデータ構造体１２００は、公開の属性を含む。
【０１０５】
SKeyValueInfoは通常、データ文字列またはキー文字列の形態で被監視デバイスから受信される情報から値情報を識別するために作成されるデータ構造体である。SKeyValueInfoは複数のフィールドを含み、各フィールドは図１２Ａに示す情報によって表される。SKeyValueInfo構造体１２００は、文字列キーを表すm_sKeyフィールド１２０４と、その文字列内で値情報が位置し得る位置の個数を示す、好ましくはタグに基づく値であるm_nPositionフィールド１２０６を含む。例えば、監視を受けているプリンタデバイスのPage  Countは、キーワードに続く２番目の位置に見つかるかもしれない。m_sType１２０８は、被監視デバイスの表示されるウェブページから取り出すことができる情報の型を表す。
【０１０６】
例えば被監視デバイスのモデル名のような値がキー（Product  Name）と同じデータ行内に見つかる場合、m_nPositionフィールドは「０」である。m_sDelimiter１２１０は、キーに関連する値を抽出するために使用される特定のデリミタを示す。SKeyValueInfoは、被監視デバイスからＨＴＭＬフォーマットで受信される情報から値情報を抽出する方法を示す。図１２Ｂは、オブジェクト識別子（ＯＩＤ）をinfoTypeと関連づける例示的データ構造体を示している。
【０１０７】
図１３は、図１０に示したMonitorモジュール１００６の呼出しシーケンスを説明するためにinit関数のシーケンスを示している。MonitorManager１１０２は、HWaccessモジュール１１１６を初期化して初期化関数を開始する。次に、MonitorManager１１０２は、被監視デバイスに関する情報を取得し、被監視デバイスに割り当てられているＩＰアドレスを用いて被監視デバイスと通信する。MonitorManager１１０２は、DeviceODBC１１０４にアクセスして、被監視デバイスのコンフィグレーション情報を取得する。MonitorManager１１０２に返されるコンフィグレーション情報としては、例えば、被監視デバイスのＩＰアドレス、ならびに被監視デバイスのベンダ／製造元およびモデル情報がある。ＩＰアドレスが取得されると、MonitorManager１１０２は、CDeviceFactory１１０６を通じてソフトウェアデバイスオブジェクト（１１１０）を作成するためにそのＩＰアドレスをセットする。デバイスオブジェクト（１１１０）の作成に成功すると、HWaccessモジュール１１１６を用いてベンダ、モデル、および固有ＩＤが被監視デバイスから取得され、作成されたデバイスオブジェクト１１１０に格納される。
【０１０８】
ベンダ、モデル情報、および固有ＩＤがデバイスオブジェクト１１１０から取得されると、MonitorManager１１０２は、被監視デバイスから受信された情報でデータベース（例えばDeviceODBC１１０４）を更新する。
【０１０９】
ベンダ、モデルおよび固有ＩＤのような値情報を被監視デバイスから抽出する方法はSupportODBC１１１４から取得される。
【０１１０】
図１４は、図１１に示したMonitorManager１１０２によって被監視デバイスのステータスを判定するためのステータスモニタ関数のシーケンスを示している。このプロセスは、図１５に示すベクタに格納されているすべての被監視デバイスにわたって繰り返される。
【０１１１】
図１５を参照すると、図１３および図１４に示したCDeviceFactory１１０６によって作成されMonitorManager１１０２によって使用されるデバイスへの参照を有するベクタ１５００が示されている。MonitorManager１１０２は、CDeviceFactory１１０６によって作成された、例えばCDeviceオブジェクトへのポインタ１５０２、およびCDeviceオブジェクトへのポインタ１５０４のようなデバイスポインタをベクタに格納する。ベクタシーケンスは、被監視デバイスのステータスを取得するために反復される。被監視デバイスのポーリングは、obtainStatusコマンドを発行することによってデバイスオブジェクトに対して実行される。それぞれのソフトウェアオブジェクトのステータスが取得されると、このステータスはDeviceODBC１１０４を通じて更新される。ステータスモニタシーケンスについては図１４で既に説明したので、ここでは繰り返さない。
【０１１２】
表１に示すDeviceInfo構造体は、１つの被監視デバイスに関する情報を反映する。DeviceInfo構造体は、連絡担当者の電子メールアドレスを電話番号に加えて含む。
【０１１３】
【表１】
2004259259.tif 000003
【０１１４】
図１６は、HWaccessモジュール１１１６（図１１）を通じての情報収集をサポートするテーブル構造を示している。図１６に示すテーブル１６００は、好ましくは、SupportODBC１１１４（図１１）を通じて監視システム９０２（図９）と通信するデータベースに格納される。具体的には、図１６は、種々のテーブルを、それぞれのフィールドとともに示している。テーブル１６０２、１６０４、１６０６、および１６１０は、ＳＮＭＰによって使用されるオブジェクト識別子（ＯＩＤ）に関係づけられている。HTML-ModelKeyValueテーブル１６１４は、例えば、nVendorModelWebPageID、対象となるパラメータ値を抽出するために使用されるキー文字列情報、ＨＴＭＬ構造内の値位置、値の型、値がキー文字列と同じデータ内に配置されている場合のデリミタ、値がキー文字列と同じデータ内に配置されている場合の値のnInLinePosition、およびキー文字列に対する標準の列挙子のような情報を含む。
【０１１５】
VendorModelWebPageテーブル１６１２は、ウェブページＩＤを実際のウェブページ文字列と関連づける。EnumCorrespondenceテーブル１６１８は、標準列挙およびそれらの説明を含む。UniqueIDWebPageテーブル１６０８は、被監視デバイスに対するベンダ関連情報を含み、ここで固有ＩＤはデバイスから取得される。VendorModelWebPageテーブル１６１２は、特定ベンダの特定モデルからの被監視デバイスに固有の情報を含む。
【０１１６】
本発明によって使用される例示的なenum型は以下のものを含む。これらのenum型は単に例示であり、したがって本発明を限定するものと解釈されてはならない。
【０１１７】
infoType（typedef  int  infoType）
このセクションは、infoType（int）の定義を記述する。値範囲０〜９９はデータ型に割り当てられる。値範囲１００〜４９９はデバイス情報に割り当てられる。値範囲５００〜１９９９は標準ＭＩＢパラメータを含む共通パラメータに割り当てられる。値範囲２０００〜３９９９はRicoh固有情報に割り当てられる。値範囲４０００〜４９９９はXeroxに割り当てられる。値範囲５０００〜５９９９はLexmarkに割り当てられる。値範囲６０００〜６９９９は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，ePrtLifeCount，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
以下のコードは単なる例示であり、より多くのコードを既存のセットに追加してもよい。範囲０〜９９は予約されている。範囲１００〜１９９はＳＭＴＰ、２００〜２９９はＰＯＰ３、３００〜３９９はソケット、および４００〜４９９はＨＴＴＰに対するものである。他の指定されていない範囲は必要があればユーザによって定義されてもよい。
【０１２０】
enum  EerrorCode(eNoError＝0，eUnknownError＝1，eSomeError，eCompleteFailure，eSomeDeviceCreationError＝20，eCreateDeviceError，eNoDeviceCreated，eObtainConfigError，eSaveStatusError，eObtainUniqueIDError，eObtainStatusError，eStartSendError，eSomeDataSendError，eCompleteDataSendFailure，eEndSendError，eSendHeloCommandFailed＝100，eSendMailCommandFailed，eSendRcptCommandFailed，eSendDataCommandFailed，eSendDataFailed，eSendQuitCommandFailed，eSendUserCommandFailed＝200，eSendPassCommandFailed，eSendStatCommandFailed，eSendRetrCommandFailed，eSendDeleCommandFailed，eSendQuitPop3CommandFailed，eCreateSocketFailed＝300，eConnectSocketFailed，eBadRequest=400，eUnauthorized，ePaymentRequired，eForbidden，eNotFound，eMethodNotAllowed，eNotAcceptable，eProxyAuthenticationRequired，eRequestTimeOut，eConflict，eGone，eLengthRequired，ePreconditionFailed，eRequestEntityTooLarge，eRequestURITooLarge，eUnsupportedMediaType，eRequestedRangeNotSatisfiable，eExpectationFailed，eInternalServerError＝450，eNotImplemented，eBadGateway，eServiceUnavailable，eGatewayTimeOut，eHTTPVersionNotSupported，eMultipleChoices＝480，eMovedPermanently，eFound，eSeeOther，eNotModified，eUseProxy，eTemporaryRedirect)．
【０１２１】
図１７は、HWaccessモジュールに必要情報を保存するステップを示す例示的フローチャートである。ステップ１７０２で、複数の通信プロトコルをサポートするために、例えばデータベース１０２４のような第１データベースが作成される。ステップ１７０４で、ソフトウェアデバイスオブジェクトを作成するために必要な一般的情報が、デバイスおよびそのアクセス方法に共通の情報とともに、第１データベースから取得され、HWaccessモジュールに格納される。ステップ１７０６で、ソフトウェアデバイスオブジェクトを作成している間に、ベンダおよび／またはモデルに固有の情報のようなデバイスオブジェクトのタイプに固有の情報とそのアクセス方法が、第１データベースから取得され、HWaccessモジュールに格納される。
【０１２２】
図１８は、デバイスからのステータス情報取り出しステップを示す。このプロセスは、初期化で作成されるすべてのデバイスに対して使用される。ステップ１８０２で、プロセスは、すべてのプロトコルが処理されたかどうかをチェックする。すべてのプロトコルが処理された場合、取得されたステータスが固有ＩＤとともに第２データベース１０１４に格納される。プロトコルが完了していない場合、ステップ１８０４で、次のプロトコルが選択される。次に、ステップ１８０６で、システムは、選択されたプロトコルを通じてデバイスにアクセスし、第１データベースから取得されたHWaccessに格納されている情報を用いてステータスが取得される。ステップ１８０８で、システムは、各ステータスが収集されたかどうかをチェックする。収集されていない場合、実行はステップ１８０２に進む。各ステータスが収集された場合、ステップ１８１０で、システムはステータス情報および固有ＩＤを第２データベースに格納する。
【０１２３】
本発明は、ネットワークに接続された、監視を必要とする数個のデバイスを含むように示されているが、理解されるように、本発明の精神および範囲から逸脱することなく、数個より多くのデバイスがネットワークに接続されてもよい。また、本発明は、種々のデバイスが監視および制御されることを必要とするようなホーム環境に適用されてもよい。
【０１２４】
コンピュータ技術の当業者には明らかなように、本発明のコントローラは、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータまたはマイクロプロセッサを用いて都合よく実施されてもよい。ソフトウェア技術の当業者には明らかなように、適当なソフトウェアコーディングが、本開示の教示に基づいて、通常の技術を有するプログラマによって容易に作成されることが可能である。当業者には容易に明らかなように、本発明は、特定用途向け集積回路の作成によって、または従来のコンポーネント回路の適当なネットワークを相互接続することによって実施されてもよい。
【０１２５】
本発明は、本発明のプロセスを実行するようにコンピュータをプログラムするために使用可能な命令を含む記憶媒体であるコンピュータプログラム製品を含む。記憶媒体としては、以下のものには限定されないが、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、および光磁気ディスクを含むいかなるタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気もしくは光カード、または電子的命令を格納するのに好適ないかなるタイプの媒体もあり得る。
【０１２６】
明らかに、上記の教示に照らして、本発明の数多くの変更および変形が可能である。したがって、添付の特許請求の範囲の記載の範囲内で、本発明は本明細書に具体的に記載された以外の形で実施されてもよいと理解すべきである。
【図面の簡単な説明】
【０１２７】
【図１】インターネットを通じてコンピュータおよびデータベースのネットワークに接続された、３つのネットワーク接続された事務用デバイスを示す図である。
【図２】デジタル画像形成装置のコンポーネントを示す図である。
【図３】図２に示されるデジタル画像形成装置の電子コンポーネントを示す図である。
【図４】図３に示されるマルチポート通信インタフェースの詳細を示す図である。
【図５】事務用デバイスが、ネットワークに直接接続されるか、またはネットワークに接続されたコンピュータに接続される、代替システム構成を示す図である。
【図６Ａ】電子メールを用いたアプリケーションユニットとの間の情報の流れを示すブロック図である。
【図６Ｂ】アプリケーションユニットに接続されたコンピュータがメッセージ転送エージェント（ＭＴＡ）としても働く、電子メールを用いた通信の代替方法を示す図である。
【図６Ｃ】アプリケーションユニットが、電子メールを交換するメッセージ転送エージェントを含む、電子メールを用いた通信の代替方法を示す図である。
【図６Ｄ】メールサーバが機器／デバイスのメールを受信するＰＯＰ３サーバとして、および機器／デバイスのメールを送信するSimple Mail Transfer Protocol（ＳＭＴＰ）サーバとして作用する、電子メールを用いた通信の代替方法を示す図である。
【図７】インターネットを通じてメッセージを送信する代替方法を示す図である。
【図８】機器／デバイスに接続され、電子メールメッセージを通信するために使用され得る例示的なコンピュータを示す図である。
【図９】本発明の例示的な一実施形態によるシステム全体の概略図である。
【図１０】本発明の例示的な一実施形態によるデータの監視に使用されるモジュールおよびそのインタフェース関数を示す図である。
【図１１】Monitorモジュール内の詳細およびサブモジュール間のその呼出し関数を示す図である。
【図１２Ａ】図１１に示されるHWaccessサブモジュールおよびSupportODBCサブモジュールによって使用されるデータ構造体を示す図である。
【図１２Ｂ】オブジェクト識別子（ＯＩＤ）をInfoTypeと関連づける例示的なデータ構造体を示す図である。
【図１３】図１０に示されるMonitorモジュールのinit関数のシーケンスを示す図である。
【図１４】図１１に示されるMonitorManagerによって被監視デバイスのステータスを判定するステータスモニタ関数の例示的なシーケンスを示す図である。
【図１５】図１３に示されるCDeviceFactoryによって作成され、MonitorManagerによって使用されるデバイスへの参照のベクタを示す図である。
【図１６】図１１に示されるHwaccessモジュールを通じて情報収集をサポートするためにデータベースに格納されるテーブル関係を示す図である。
【図１７】HWaccessモジュールに情報を格納するステップを開示する例示的なフローチャートである。
【図１８】複数のプロトコルを用いてネットワークデバイスを監視するステップを開示する例示的なフローチャートである。
【符号の説明】
【０１２８】
１０    広域ネットワーク
１６、５２  ネットワーク
17、18、20、22、42、56、62、68、74    ワークステーション（ＷＳ）
２４    画像形成装置
２８    ファクシミリ装置
３２    プリンタ
46、54、58、64、70、76    ディスク
５0Ａ、50Ｂ、50Ｃ    ファイアウォール
【図１】
2004259259.tif 000004
【図２】
2004259259.tif 000005
【図３】
2004259259.tif 000006
【図４】
2004259259.tif 000007
【図５】
2004259259.tif 000008
【図６Ａ】
2004259259.tif 000009
【図６Ｂ】
2004259259.tif 000010
【図６Ｃ】
2004259259.tif 000011
【図６Ｄ】
2004259259.tif 000012
【図７】
2004259259.tif 000013
【図８】
2004259259.tif 000014
【図９】
2004259259.tif 000015
【図１０】
2004259259.tif 000016
【図１１】
2004259259.tif 000017
【図１２Ａ】
2004259259.tif 000018
【図１２Ｂ】
2004259259.tif 000019
【図１３】
2004259259.tif 000020
【図１４】
2004259259.tif 000021
【図１５】
2004259259.tif 000022
【図１６】
2004259259.tif 000023
【図１７】
2004259259.tif 000024
【図１８】
2004259259.tif 000025