説明

被監視装置に格納されたウェブページからステータス情報を抽出するための方法、システム及びコンピュータプログラム

【課題】被監視装置のウェブページから正しいステータス情報を取得する。
【解決手段】ネットワーク上の被監視装置に格納されたウェブページのスクリプトからHTTP通信プロトコルを用いてステータス情報を抽出する。パラメータストリング及びウェブページの身元を、ベンダー及びモデル情報に基づいて取得し;ウェブページにアクセスし、スクリプトにてウェブページのラインを取得し;分析し、パラメータストリングが捜し出されたかを判別する。パラメータが捜し出されるまでアクセス及び分析を反復し全てのパラメータストリングが捜し出されているか否かを判別する。捜し出されていない場合、全てのパラメータストリングが捜し出されるまで、アクセス、分析、反復及び判別を反復する。全てのパラメータストリングがスクリプトにて捜し出された場合には、最後に捜し出されたパラメータストリングの場所に基づいてウェブページからステータス情報を抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワークに接続された装置の監視に関する。特に、複数のプロトコルを用いてネットワークに接続された装置を遠隔監視する方法、システム、コンピュータプログラムおよびその関連製品に関する。
【背景技術】
【0002】
広く知られているように、コンピュータシステムにはハードウェアとソフトウェアが含まれる。ソフトウェアはコンピュータシステムを構成するハードウェア部品を動作させ管理するために作られた命令のリストを含んでいる。一般に、コンピュータシステムは相互にインターフェイスする様々なハードウェア部品や装置を含んでいる。コンピュータシステムにはスタンドアロン型やネットワーク接続型等がある。ネットワークタイプのコンピュータシステムでは、複数の装置各々がネットワークに接続されており、そのネットワークを介して個々の装置間で通信が行われる。
【0003】
さらに、ハードウェア装置が協働的に機能するように、ハードウェア装置間の通信を可能とするために、ハードウェア装置を動作させるソフトウェアが構成されていなければならない。さらに、そのような通信を支援するため、ハードウェア装置を監視し、指定されたハードウェア装置各々の状態を監視し、各ハードウェア装置が効率的に機能していることを保証することが望ましい。
【0004】
本特許出願に関し、複数の個別の装置またはハードウェア装置を制御、設定又は監視するハードウェア装置を監視装置と呼び、監視装置により制御、設定又は監視されているハードウェア装置を「被監視装置」と呼ぶ。
【0005】
ネットワーク上のハードウェア装置に関し、これらの装置は、メンテナンス、使用、その他の目的のために監視されることが望ましい。しかし、ハードウェア装置とインターフェイスに関する製造者の違いを考慮すると、監視装置がネットワークに接続された他のいろいろな装置と通信することは困難かもしれない。このような不利益により、ネットワーク管理者は、そのネットワークに接続された装置の性能(パフォーマンス)と効率についての重要な情報を取得することが妨げられる傾向がある。
【0006】
シンプルネットワークマネージメントプロトコル(SNMP)は、今日、データ通信ネットワーク上の装置、電気通信システム、その他のグローバルに到達可能な装置を監視および管理するためのデファクトスタンダードである。実際には、コンピュータ及び関連装置を取り扱うすべての組織は、ローカルエリアネットワークやワイドエリアネットワークを通じてそのような各装置を集中的に監視、診断、設定できることを期待している。SNMPはこのようなやりとり(インターラクション)を実現するプロトコルである。
【0007】
装置がSNMPリクエストに応答するために、SNMPリクエストを正しく解釈し、そのリクエストにより要求されたアクションを実行し、SNMPリプライを生成することができるようにするソフトウェアを装置に備えることが望ましい。SNMPエージェントソフトウェアは、一般的にネットワークの構成要素(エンティティ)に備わるサブシステムソフトウェアモジュールである。
【0008】
システムにより使用されるオブジェクトの集まりは、一般に管理情報ベース(MIB)と呼ばれる。MIBは装置の監視に関する情報を有するデータベースでもある。MIBの例としては、二、三例を挙げると、イーサネット(登録商標)インターフェイスにフォーカスしたイーサネット(登録商標)MIB、802.1Dブリッジ管理用のオブジェクトを定義するブリッジMIB等がある。
【0009】
装置の監視にSNMPを使用することは困難である。なぜなら、有効なキーが無ければ解読困難な値がプライベートMIBに含まれているからである。自社のネットワークに接続されたいろいろな装置を監視するためにSNMPを使用している会社は、その会社の独占情報として維持されるユニークな識別子/キーを生成する。通例、結果は二値または整数の値として表示される。このように、SNMPを用いても、監視されている装置(被監視装置)から受信した結果は、被監視装置の状態をユーザが理解可能な形でユーザに提供することはできない。
【0010】
さらに、SNMPを用いても、有効なキーなしに被監視装置についての詳細な情報を取得し、又はプライベートMIBにアクセスして、バイナリまたは整数値として取得した結果を解読することは困難である。また、与えられたプロトコル(例えば、SNMPまたはHTTP/HTML)は、時間切れ(タイムアウト)やパケット喪失等のいろいろな理由でうまく機能しないこともある。また、複数のプロトコルを用いて与えられた装置から抽出した情報は、各プロトコルでダブっているかもしれない。従って、このような状況において装置からのデータ抽出をうまく管理しないと、プロトコルによっては他のプロトコルよりも多くのリソースを必要とするものもあるので、時間とメモリの効率が悪くなる。更に、或るプロトコルを用いて情報抽出をすれば、他のプロトコルを用いるよりも少ない処理量と費用で情報を抽出することができるかもしれない。さらにまた、或るプロトコルを用いて取得した情報は、他のプロトコルを用いて取得した情報よりも監視装置にとって有用であるかもしれない。
【0011】
本発明は以下の文献で参照及び説明される様々な技術を利用してもよい。列挙される文献各々の内容全体は本願のリファレンスに組み入れられる。
【非特許文献1】Goldfart,C.,The SGML Handbook,Clarendon Press(1990)
【非特許文献2】Castro,E.,HTML for the World Wide Web,Peachpit Press,Berkeley(1996)
【非特許文献3】Megginson,D.,Structuring XML Documents,Prentice Hall,NJ(1998)
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の課題である上記問題の解決は、ネットワークに接続された装置を監視可能とする本発明のシステムと方法によりなされる。以下、ネットワークに通信可能に接続された個々の装置の間で装置を監視する方法が説明される。
【課題を解決するための手段】
【0013】
該方法はハードウェアアクセスモジュールを介して第1のデータベースにアクセスするステップを含み、前記第1のデータベースは複数の通信プロトコルをサポートするように構成されている。第1のデータベースには、被監視装置の製造者やモデル情報等、様々な情報を取得するための、複数の通信プロトコルにより使用される情報が格納されている。通信プロトコルは複数の通信プロトコルから選択され、選択された通信プロトコルは被監視装置から状態情報(ステータス情報)を受信するように機能する。該方法は、前記第1のデータベースから選択された通信プロトコルと情報を用いて前記被監視装置にアクセスするステップと、前記アクセスした装置からステータス情報を受信するステップと、前記受信したステータス情報を第2のデータベース(DeviceODBC)に格納するステップとを有する。
【発明を実施するための最良の形態】
【0014】
他の実施形態において、本発明はネットワークに通信可能に接続された個々の装置の間で装置を監視する方法を提供する。複数の通信プロトコルは被監視装置から情報を検索するために使用される。例えば、SNMPプロトコルが最初に被監視装置にアクセスするために選択され、SNMPプロトコルを用いて効率的に読み出せるように構成された装置情報が取得される。その後、前記装置が追加的なプロトコルをサポートしている場合、SNMPプロトコルを用いて効率的に読み出すことができない情報を取得するために、HTTP及びFTPプロトコルが選択される。プロトコルの選択は、データベースに格納されたサポート情報と併せてプロトコルマネージャにより実行される。
【0015】
本発明において、例えばLANやWANなどのネットワークに接続された少なくとも1つの装置(被監視装置)の監視が監視システムにより可能となる。前記被監視装置は固有の(ユニークな)IPアドレスを有する。被監視装置に割り当てられたIPアドレスや、前記被監視装置のベンダー/製造者の詳細は、データベースに格納される。ネットワークをスキャンして装置に問い合わせることにより、装置のIPアドレスを取得できる。その方法は既知である。それゆえ、監視される装置のIPアドレスはすでに取得され、データベースに格納されていると仮定する。
【0016】
本発明は、被監視装置から受け取ったHTML情報から必要な情報をいかに抽出するかを特定する。一旦、被監視装置のウェブページにアクセスすると(すなわち、IPアドレスと特定されたポートを通じて)、被監視装置に対応する特定のウェブページが表示される。そのウェブページの情報はキーと値のペアの形式をとる。例えば、カラープリンターのウェブページにおいて、トナーレベルは「ブラック100%」のように表示される。HTML/XMLパーサを用いて、ウェブページの情報から必要な情報を読み出すためにそのページを解釈する。HTML/XMLパーサを用いてウェブページから抽出した必要な情報とパラメータ値はサポートデータベースに格納される。
【0017】
本発明は、ここで説明されるように、監視システムによりサポートされた被監視装置の様々なベンダー及び装置モデルを特定する。被監視装置のいろいろなベンダーはそのベンダー固有のやり方で被監視装置に関する情報を提示するので、本発明により被監視装置のベンダーとモデルを特定して被監視装置の動作状態を判断することができる。
【0018】
本発明の一態様によると、ネットワークに通信可能に結合された被監視装置に関する情報をHTTP通信プロトコルを用いて検索するための方法、システム及びコンピュータプログラム製品が提供される。これらは、被監視装置のベンダー及びモデル情報を第1メモリから検索し;ベンダー及びモデル情報に基づいて、被監視装置の装置情報を得るためにHTTPプロトコルを用いて被監視装置にアクセスするよう構成された少なくとも1つのアクセス機能を決定し、その少なくとも1つのアクセス機能は、(1)被監視装置に格納されたウェブページ中のタグから装置情報を取得するよう形成された第1アクセス機能及び(2)ウェブページ中のスクリプトから装置情報を取得するよう構築された第2アクセス機能の少なくとも1つを含み;装置情報の取得を試みるために少なくとも1つのアクセス機能の各アクセス機能及びHTTPプロトコルを用いて被監視装置にアクセスし;及びアクセスステップで取得された装置情報をベンダー及びモデル情報と関連付けて第2メモリに格納する。
【0019】
本発明の他の態様によると、被監視装置に格納されたウェブページのスクリプトから抽象(abstract)クラスインターフェースを用いてステータス情報を抽出するための方法、システム及びコンピュータプログラム製品がもたらされる。抽象クラスインターフェースは、ステータス情報を抽出するのに使用されるサポート情報を取得するよう構築される第1機能と、ウェブページのスクリプトからサポート情報を用いてステータス情報を抽出するよう構築される第2機能とを含む。本方法は:(1)被監視装置のベンダー及びモデル情報を第1メモリから検索するステップ;(2)被監視装置から取得するステータス情報の少なくとも1つのタイプをベンダー及びモデル情報に基づいて判定するステップ;(3)抽象クラスインターフェースの第1関数を用いて、ベンダー及びモデル情報並びにウェブページに基づいて、サポート情報を取得するステップ;(4)HTTPプロトコル、取得したサポート情報及び抽象クラスインターフェースの第2機能を利用して被監視装置にアクセスし、ウェブページのスクリプトから少なくとも1つのタイプのステータス情報を取得するステップ;及び(5)アクセスステップで取得したステータス情報をベンダー及びモデル情報に関連付けて第2メモリに格納するステップを有する。
【0020】
本発明の他の形態によると、ネットワークに通信可能に接続された被監視装置に関連するステータス情報をHTTP通信プロトコルを用いて検索するための方法、システム及びコンピュータプログラム製品がもたらされる。本方法は、被監視装置のベンダー及びモデル情報を第1メモリから検索するステップ;ベンダー及びモデル情報に基づいて少なくとも1つの手段識別子を検索するステップであって、手段識別子の各々は、ステータス情報を取得するためにHTTPプロトコルを用いて被監視装置にアクセスするように構築された対応するアクセス機能を識別し、少なくとも1つの手段識別子は、(1)被監視装置に格納されたウェブページ中のタグから装置情報を取得するよう形成された第1アクセス機能及び(2)ウェブページ中のスクリプトから装置情報を取得するよう構築された第2アクセス機能の少なくとも1つを確認するところのステップ;少なくとも1つの手段識別子の手段識別子を選択するステップ;ベンダー及びモデル情報並びに選択された手段識別子に基づいて、手段識別子に対応するアクセス機能を利用して、ウェブページからステータス情報を取得するのに使用されるパラメータ値を第1メモリから検索するステップ;手段識別子に対応するアクセス機能、パラメータ値及びHTTPプロトコルを用いて被監視装置にアクセスし、ステータス情報の取得を試みるステップ;及びアクセスステップで取得したステータス情報をベンダー及びモデル情報に関連付けて第2メモリに格納するステップを有する。
【0021】
本発明の他の形態によると、ネットワークに通信可能に接続された被監視装置に格納されたウェブページのスクリプトからステータス情報をHTTP通信プロトコルを用いて検索するための方法、システム及びコンピュータプログラム製品がもたらされる。本方法は、(1)ベンダー及びモデル情報に基づいて、ウェブページのスクリプトからステータス情報を抽出するのに使用される少なくとも1つのパラメータストリング(文字列)及びウェブページの身元を取得するステップ;(2)ウェブページの身元及びHTTPプロトコルを用いてウェブページにアクセスし、スクリプト中のウェブページのラインを取得するステップ;(3)ウェブページの取得したラインを分析し、少なくとも1つのパラメータストリングのパラメータストリングが取得したライン中に発見されるか否かを確認するステップ;(4)パラメータストリングが取得したライン中に見出されなかったことが分析ステップで確認された場合に、パラメータストリングが発見されるまで、アクセス及び分析のステップが反復されるステップ;(5)パラメータストリングが取得したライン中に発見されたことが分析ステップで確認された場合に、少なくとも1つのパラメータストリング中の全てのパラメータストリングが発見されているか否かを確認するステップ;(6)少なくとも1つのパラメータストリング中の全てのパラメータストリングは発見されていないことが確認ステップで確認された場合に、少なくとも1つのパラメータストリング中の全てのパラメータストリングが発見されるまで、アクセス、分析、反復及び確認のステップを反復するステップ;及び(7)スクリプト中で全てのパラメータストリングが発見されたことが確認ステップで確認された場合に、最後に発見されたパラメータストリングの場所に基づいてウェブページからステータス情報を抽出するステップ;を有する。
【0022】
本願は以下の米国特許出願に関連する。
【0023】
1.西暦2000年5月17日付けで出願された“Method and System of Remote Diagnostic,Control,and Information Collection using a Dynamic Linked Library of Multiple Formats and Multiple Protocols with Intelligent Formatter”と題する米国特許出願第09/453,937号;
2.西暦2001年1月9日付けで出願された“Method and System of Remote Support of Device Using Email”と題する米国特許出願第09/756,120号;
3.西暦2001年2月14日付けで出願された“Method and System of Remote Diagnostic Control,and Information Collection using a Dynamic Linked Library of Multiple Formats and Multiple Protocols with Three-Level Formatting”と題する米国特許出願第09/782,064号;
4.西暦2001年8月6日付けで出願された“Universal Controller in The Wireless Networked Environment”と題する米国特許出願第09/921,707号;
5.西暦2001年9月17日付けで出願された“Method and System of Remote Support of Device Using Email Through Data Transfer Module”と題する米国特許出願第09/953,358号;
6.西暦2001年9月17日付けで出願された“Method and System for Remote Support of Device using Email for Sending Information Related to a Monitored Device”と題する米国特許出願第09/953,359号;
7.西暦2001年10月15日付けで出願された“Method and System for Remote Support of Device Using Email Based Upon Pop3 With Decryption Capability Through Virtual Function”と題する米国特許出願第09/975,935号;
8.西暦2002年2月11日付けで出願された“Method and Apparatus Utilizing Communication Means Hierarchy to Configure or Monitor an Interface Device”と題する米国特許出願第10/068,861号;
9.西暦2002年5月13日付けで出願された“Verification Scheme for Email Message Containing Information About Remotely Monitored Devices”と題する米国特許出願第10/142,989号;
10.西暦2002年5月13日付けで出願された“Method for Scrambling Information about Network Devices That is Placed in Email Message”と題する米国特許出願第10/142,992号;
11.西暦2002年5月31日付けで出願された“Method and Apparatus for Modifying Remote Devices Monitored by a Monitoring System”と題する米国特許出願第10/157,903号;
12.西暦2002年6月5日付けで出願された“Method and System to Use HTTP and Html/Xml for Monitoring the Devices”と題する米国特許出願第10/162,402号;
13.西暦2002年6月13日付けで出願された“Method and System of Remote Position Reporting Device”と題する米国特許出願第10/167,497号−継続出願第09/575,702号−(米国特許第6,421,608号);
14.西暦2002年8月22日付けで出願された“Method and System for Monitoring Network Connected Devices with Multiple Protocols”と題する米国特許出願第10/225,290号;
15.西暦2002年12月26日付けで出願された“Method and Accessing Information from Database to be used to Obtain Status Information from the Web Pages of Remotely Monitored Devices”と題する米国特許出願第10/328,003号;
16.西暦2002年12月26日付けで出願された“Method of using Internal Structure to Store Database Information for Multiple Vendor and Model Support for Remotely Monitored Devices”と題する米国特許出願第10/328,008号;
17.西暦2002年12月26日付けで出願された“Method of using Vectors of Structures for Extracting Information from the Web Pages of Remotely Monitored Devices”と題する米国特許出願第10/328,026号;
18.西暦2003年2月26日付けで出願された“Method and System for Monitoring Network Connected Devices with Multiple Protocols”と題する米国特許出願第10/372,939号;
19.西暦2003年6月13日付けで出願された“Method for Efficiently Storing Information used to Extract Status Information from a Device Coupled to a Network in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/460,150号;
20.西暦2003年6月13日付けで出願された“Method for Efficiently Extracting Status Information Related to a Device Coupled to a Network in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/460,151号;
21.西暦2003年6月13日付けで出願された“Method for Parsing an Information String to Extract Requested Information Related to a Device Coupled to a Network in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/460,404号;
22.西暦2003年6月13日付けで出願された“Method and System for Extracting Vendor and Model Information in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/460,408号;
23.西暦2003年9月26日付けで出願された“Method and System for Extracting Information from Networked Devices in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/670,505号;
24.西暦2003年9月26日付けで出願された“Method and System for Supporting Multiple Protocols Used to Monitor Networked Deices in a Remote Monitoring System”と題する米国特許出願第10/670,604号;
25.西暦2004年1月27日付けで出願された“Method and System for Determining the Type of Status Information to Extract from Networked Devices in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/767,467号;
26.西暦2004年1月27日付けで出願された“Method and System for Managing Protocols Used to Obtain Status Information from a Network Device”と題する米国特許出願第10/764,527号;
27.西暦2004年1月27日付けで出願された“Method and System for Managing Vendor and Model Information in a Multi-Protocol Remote Monitoring System”と題する米国特許出願第10/764,569号;
28.西暦2004年1月27日付けで出願された“Method and System for Initializing Protocol Information Used to Extract Status Information from Networked Devices”と題する米国特許出願第10/764,582号;
29.西暦2004年8月27日付けで出願された米国特許出願第10/927,158号;
30.西暦2004年8月27日付けで出願された米国特許出願第10/927,257号;
31.西暦2004年8月27日付けで出願された米国特許出願第10/927,283号;
32.西暦2005年1月11日付けで出願された米国特許出願第10/032,039号;
33.西暦2005年1月11日付けで出願された米国特許出願第10/032,016号;
34.西暦2005年1月11日付けで出願された米国特許出願第10/032,063号;
35.西暦2005年1月11日付けで出願された米国特許出願第10/032,008号;
36.西暦2005年1月11日付けで出願された米国特許出願第10/032,192号;
37.本願基礎出願と共に出願された“Method and System for Use of Abstract Classes for Script Implementation of HTTP to Obtain Information from Devices”と題する出願−代理人管理番号271205US−(RSID 1−461);
38.本願基礎出願と共に出願された“Database for Multiple Implementation of HTTP to Obtain Information from Devices”と題する出願−代理人管理番号271203US−(RSID 1−462);
39.本願基礎出願と共に出願された“Method and System for Script Implementation of HTTP to Obtain Information from Remote Devices”と題する出願−代理人管理番号271207US−(RSID 1−460)。
【0024】
上記の米国特許及び特許出願各々の開示内容全体は本願のリファレンスに組み入れられる。
【0025】
添付した図面を参照して以下の詳細な説明を読めば、本発明及びその結果得られる多くの利点をよりよく理解し、獲得することができる。
【実施例1】
【0026】
図1は、いろいろな装置と、その装置の動作を監視、診断及び制御するコンピュータとを示す概略図である。具体的に、図1は、コンピュータワークステーション17、18、20および22に接続されたローカルエリアネットワーク(LAN)等の第1のネットワーク16を含む。ワークステーションは、例えば、パーソナルコンピュータ、UNIX(登録商標)ベースのコンピュータ、リナックスベースのコンピュータ、アップルマッキントッシュ等を含むいかなるタイプのコンピュータであってもよい。また、デジタル画像形成装置24、ファックス28、プリンター32もネットワーク16に接続されている。当業者には明らかであるが、デジタルコピー/プリンター24とファクシミリ28を2つ以上組み合わせて、一体の「画像形成装置」とすることができる。例えば、コピー/プリンター24、ファックス28、プリンター32、ワークステーション17、18、20、22をマシンと呼び、あるいは被監視装置と呼ぶこともある。システム構成によっては、1以上のワークステーションはビジネスオフィス機器であってもよい。また、いかなるビジネスオフィス機器/装置をネットワーク16に付加してもよい。また、ワークステーション17、18、20、22、およびオフィス機器27は中間監視装置として機能し、ネットワーク16上の被監視装置をポーリングし、集めたデータを監視装置に送信する。
【0027】
このようなビジネスオフィス機器の一例は、株式会社リコーのeCabinet(登録商標)である。また、ファクシミリサーバ(図示せず)をネットワーク16に接続して、電話、ケーブル、または無線で接続してもよい。デジタルコピー/プリンター24、ファクシミリ28、プリンター32は、各々ネットワーク16に接続されているのに加えて、従来の電話、ケーブル、または無線接続26、30、34も有する。以下に説明するように、被監視装置24、28、32は、監視装置とも呼ぶ遠隔監視・診断・制御ステーションと通信する。この通信は、例えば、ネットワーク16とインターネットを介して、または電話、無線、またはケーブル接続を介して直接行われる。
【0028】
他のビジネス環境において、被監視装置には、多機能画像化装置(複合装置)、スキャナー、プロジェクター、テレビ会議システム、およびシュレッダー等の装置が含まれてもよい。他のアプリケーションにおいて、ネットワーク16はホームネットワークでもよく、その場合、被監視装置は(電気、ガス、水道等の)メータであってもよく、例えば、電子レンジ、洗濯機、乾燥機、食器洗い機、ホームエンターテイメントシステム、冷蔵庫、炊飯器、ヒーター、空調機、温水器、セキュリティカメラ等の機器であってもよい。
【0029】
図1において、ワイドエリアネットワーク(WAN)(例えば、インターネットやその後継ネットワーク)は全体的に参照符号10で示される。WAN10は、プライベートWANでも、パブリックWANでも、ハイブリッドタイプであってもよい。WAN10は、相互接続された複数のコンピュータとルータを含み、これらは参照符号12A-12Iで示される。WANを介した通信方式は、インターネットエンジニアリングタスクフォース(IETF)から入手可能な一連のRequest for Comments(RFC)により知られている。ウェブサイトwww.ietf.org/rfc.htmlを参照。例えば、RFC 821「Simple Mail Transfer Protocol」、RFC 822「Standard for the Format of ARPA Internet Text Message」、RFC 959「File Transfer Protocol(FTP)」、RFC 2045「Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies」、RFC 1894「An Extensible Message Format for Delivery Status Notifications」、RFC 1939「Post Office protocol−Version 3」、RFC 2068「Hypertext Transfer Protocol−HTTP/1.1」、及びRFC 2298「An Extensible Message Format for Message Disposition Notifications」等がある。これら引用文献の内容は参照によりここに援用する。
【0030】
トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)に関連する通信は、例えば、W.R. Stevens著「TCP/IP Illustrated」Vol. 1, The Protocols、Addison-Wesley Publishing Company、1994年に説明されている。この書籍の内容はすべてここに参照により援用する。Comer、Stevens著「TCP/IPによるインターネットワーキング」第1巻ないし第3巻もここに引用によりその全体を援用する。
【0031】
引き続き図1を参照して、ファイヤーウォール50AがWAN10とネットワーク16との間に接続されている。ファイヤーウォールは、その一方の側にある権限を与えられたコンピュータだけが、他方の側にあるネットワーク、コンピュータ、個別パーツにアクセスできるようにする装置である。ファイヤーウォールは商業的に入手可能な既知の装置またはソフトウェア(例えば、Zone Labs社のZoneAlarm)である。同様に、ファイヤーウォール50Bと50Cは、WAN10をネットワーク52とワークステーション42からそれぞれ分離している。ファイヤーウォールに関するさらに詳細は、W.R.Cheswick及びS.M.Bellovin著「Firewalls and Internet Security」(AddisonWesley Publishing、1994年)とD.B.Chapman及びE.D.Zwicky著「Building Internet Firewalls」(O’Reilly&Associates, Inc.、1995年)に載っている。これら2冊の引用文献の内容はここに参照により援用する。
【0032】
ネットワーク52は従来のネットワークであり、複数のワークステーション56、62、68、74を含んでいる。これらのワークステーションは分散され、一つの会社の異なる部署(例えば、販売、注文処理、会計、請求、マーケティング、生産、設計エンジニアリング、カスタマーサービス等)に配置されている。ネットワーク52を介して接続されたワークステーションに加え、ネットワーク52には直接接続されていないワークステーション42も設けられている。ワークステーション42に接続されたディスク46に格納されたデータベース中の情報を、ネットワーク52に直接接続されたワークステーションで、WAN10を介して適当な暗号化およびプロトコルを用いて共有することもできる。また、ワークステーション42は電話線、ケーブルネットワーク、及び/またはワイヤレスネットワーク44に直接接続され、ディスク46中のデータベースにはその電話線、ケーブルネットワーク、またはワイヤレスネットワーク44を通してアクセスできる。本発明で使用するケーブルネットワークは、一般的にテレビジョン番組を伝送するために使用するケーブルネットワーク、一般的にコンピュータ等で使用するデジタルデータの高速通信を提供するケーブル、またはその他望ましいタイプのケーブルを用いて実現される。
【0033】
他の実施形態において、ワークステーション42はラップトップコンピュータ、PDA、パームトップコンピュータ、またはネットワーク機能を有した携帯電話であってもよい。これらの装置を用いてディスク46に格納されたデータベース中の情報にアクセスしてもよい。
【0034】
デジタルコピー/プリンター24、オフィス機器27、ファクシミリ28、プリンター32それぞれに関する情報は、ディスク46、54、58、64、70、76に格納された1以上のデータベースに格納される。既知のデータベースには、(1)マイクロソフト、IBM、オラクル、サイベースのSQLデータベース、(2)その他のリレーショナルデータベース、(3)非リレーショナルデータベース(例えば、オブジェクティビティ、JYDソフトウェアエンジニアリング、オリエントテクノロジーのオブジェクト指向データベースを含む)などがある。販売、受注処理、会計、請求、カスタマーサービス、マーケティング、生産、エンジニアリング部門は各々自分のデータベースを有しても、1以上のデータベースを共有してもよい。データベースを格納するために使用する各ディスクは、ハードディスクまたは光ディスク等の不揮発メモリである。あるいは、データベースは、固体および/または半導体メモリデバイス等のいかなる記憶デバイスに格納してもよい。例えば、ディスク64にはマーケティングデータベースを格納し、ディスク58には生産データベースを格納し、ディスク70にはエンジニアリングデータベースを格納し、ディスク76にはカスタマーサービスデータベースを格納してもよい。あるいは、ディスク54と46に1以上のデータベースを格納してもよい。
【0035】
ワークステーション56、62、68、74、42は、WAN10への接続に加えて、監視・診断・制御されるマシン/装置とのセキュアな接続をするために、電話線、ケーブル、ワイヤレスネットワークに接続されていてもよい。また、通信媒体の一つが故障したとき、通信用バックアップとして他の通信媒体が自動的に用いられてもよい。
【0036】
本発明の特徴は、「ストアアンドフォワード」通信モード(例えば、インターネット電子メール、以下単に電子メールとも呼ぶ)、すなわちマシンを診断・制御するためのそのマシンとコンピュータ/監視システムとの間の送信を使用することにある。あるいは、FTPやハイパーテキストトランスファープロトコル(HTTP)のような直接のエンドツーエンドの(例えば、最終目的地とのソケット接続を用いた)接続をする通信モードを用いて、メッセージの送信を実現する。
【0037】
図2は、図1に例示したデジタルコピー/プリンター24の機械的構成を示す図である。図2において、101はスキャナー用のファンであり、102はレーザプリンターで使用されるポリゴンミラーであり、103はレーザ(図示せず)からの光をコリメートするために使用するFθレンズである。参照番号104はスキャナーからの光を検出するセンサーを指す。参照番号105は、スキャナーからの光をセンサー104にフォーカスするレンズを指し、参照番号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をドライブするために使用する。
【0038】
図3は、図2のデジタルコピー/プリンター24の電子部品を示すブロック図である。CPU160は装置のコントローラとして機能するマイクロプロセッサである。ランダムアクセスメモリ(RAM)162は、デジタルコピー/プリンター24の動作パラメータ等の動的に変化する情報を格納する。不揮発メモリ(例えば、リードオンリーメモリ(ROM)164またはフラッシュメモリ)は、デジタルコピー/プリンター24を記述する静的状態データ(例えば、装置のモデル名、モデル番号、シリアル番号、およびデフォルトパラメータ)のみでなく、そのデジタルコピー/プリンターを動作させるプログラムコードを格納している。
【0039】
マルチポートネットワークインターフェイス166が設けられ、デジタルコピー/プリンター24は少なくとも1つの通信ネットワークを介して外部の装置と通信可能である。参照番号168は、電話、ワイヤレス、またはケーブルラインを表し、参照番号170はネットワーク168とは別のタイプのネットワークを表す。マルチポートネットワークインターフェイスに関するさらに詳細は、図4を参照して説明する。インターフェイスコントローラ172はオペレーションパネル(操作パネル)174をシステムバス186に接続するために使用する。オペレーションパネル174は、デジタルコピー/プリンター24の標準的入出力装置を含んでいる。標準的入出力装置とは、例えば、コピーボタンや、コピー枚数、拡大/縮小、濃度等の画像形成装置の動作を制御するためのキーなどである。また、液晶ディスプレイパネルがオペレーションパネル174に含まれており、デジタルコピー/プリンター24のパラメータやメッセージをユーザに表示する。
【0040】
ローカル接続インターフェイス171は、RS232、パラレルプリンターポート、USB、IEEE1394等のローカルポートを介した接続である。ファイヤーワイヤ(IEEE1394)は、Wickelgren,I著「ファイヤーワイヤに関する事実」(IEEESpectrum、1997年4月、Vol.34、Number4、19-25ページ)に記載されている。その内容はすべてここに参照により援用する。エラー検出と再送信を含む「信頼できる」通信プロトコルを使用することが好ましい。
【0041】
ストレージインターフェイス176は、システムバス186にストレージ装置を接続する。例えば、ストレージ装置はフラッシュメモリ178とディスク182を含む。フラッシュメモリ178は従来の電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)で代替することができる。ディスク182は、ハードディスクドライブ、光ディスクドライブ、および/またはフロッピー(登録商標)ディスクドライブである。接続180を介して付加的記憶装置をデジタルコピー/プリンター24に接続してもよい。フラッシュメモリ178は、デジタルコピー/プリンター24の製品寿命にわたって頻繁には変化しないパラメータを表す準静的状態(semi-static state)データを格納するために使用する。このようなパラメータには、例えば、デジタルコピー/プリンターのオプションや設定が含まれる。オプションインターフェイス184により、外部インターフェイス等の付加的ハードウェアをデジタルコピー/プリンター24に接続することができる。クロック/タイマー187を用いて時間と日付を常に把握したり、経過時間を測定したりすることができる。
【0042】
図3は、デジタルコピー/プリンター24を構成するいろいろなセクションも示している。参照番号202はソータを指し、デジタルコピー/プリンター24の出力をソートするために使用するセンサーおよびアクチュエータを含んでいる。デュプレクサ200によりデュプレックス動作を実行することができる。デュプレクサ200は従来のセンサーとアクチュエータを含む。大容量トレイユニット198が設けられ、多量の用紙を用紙トレイに保持することができる。デュプレクサ200と同様に、トレイユニット198も従来のセンサーとアクチュエータを含む。
【0043】
給紙コントローラ196を用いて、デジタル画像形成装置の給紙動作を制御することができる。スキャナー194を用いて画像をスキャンしてデジタル画像形成装置に取り込むことができる。スキャナー194は、光源、ミラー等の従来のスキャンエレメントを含んでいる。また、ホームポジションセンサー等のスキャナーセンサーを用い、スキャナーがホームポジションにいるかどうか判断する。また、ランプサーミスターを用い、スキャンランプが正しく動作することを保証する。プリンター/イメージャ192は、デジタル画像形成装置の出力を印刷する。従来のレーザ印刷メカニズム、トナーセンサー、及び画像濃度センサーを有している。フューザ190は、高温ローラを用いてトナーを用紙上に溶かす。エグジットセンサと、フューザ190がオーバーヒートしないことを保証するサーミスターと、オイルセンサーとを含む。また、オプショナルユニットインターフェイス188があり、デジタル画像形成装置の任意的構成要素への接続に使用される。任意的構成要素とは、例えば、自動文書フィーダ、異なるタイプのソータ/コレータ、その他デジタル画像形成装置に付加できる構成要素である。他のエレメントには、その装置の位置を特定することができるGPSなどが含まれる。
【0044】
図4は複数ポートネットワークインターフェイス166の詳細を示す図である。デジタル画像形成装置は、セルラインターフェース227、無線インターフェイス228又はLAN170に接続されたイーサーネットインターフェース230を介して外部装置と通信することができる。その他のインターフェイスとしてデジタル加入者ライン(DSL)(オリジナルDSL、コンセントリックDSL、アシンメトリックDSL)もあるが、これに限定されない。単一の装置でローカルエリアネットワークと電話ラインの両方に接続できる製品がインテルから商業的に入手可能であり、インテルプロ(Intel Pro)10/100+Modemとして知られている。
【0045】
CPU、その他のマイクロプロセッサ、または回路が監視プロセスを実行し、デジタル画像形成装置の各センサーの状態を監視する。シーケンスプロセスを用いて、デジタル画像形成装置を制御し動作させるための命令コードを実行する。また、(1)デジタル画像形成装置の動作全般を制御するために実行される中央システム制御プロセスと、(2)デジタル画像形成装置に接続された外部装置との信頼できる通信を確保するために使用する通信プロセスがある。システム制御プロセスは、静的メモリ(例えば、図3に示したROM164)、準静的メモリ(例えば、フラッシュメモリ178やディスク182)、動的メモリ(例えば、RAM162、フラッシュメモリ178、ディスク182等の揮発性または不揮発性メモリ)のデータ記憶を監視および制御する。また、静的メモリはROM164以外のデバイスであってもよく、例えばフラッシュメモリ178やディスク182のいずれかを含む不揮発メモリであってもよい。
【0046】
上記の通り、デジタル画像形成装置について詳細を説明したが、本発明は他のビジネスオフィスマシンや装置にも同様に適用可能である。他のビジネスオフィスマシンや装置とは、例えば、アナログコピー、ファクシミリ、スキャナー、プリンター、ファクシミリサーバ、プロジェクター、会議機器、シュレッダー、その他のビジネスオフィスマシン、ビジネスオフィス機器、その他の機器(例えば、電子レンジ、VCR、DVD、デジタルカメラ、携帯電話、パームトップコンピュータ)などである。また、本発明には、ストアアンドフォワードまたはダイレクト接続ベースの通信を用いて動作するその他の装置も含む。そのような装置には、(ガス、水道、電気のメータシステムを含む)メータシステム、自動販売機、動作中の監視や遠隔診断が必要となるようなその他の機械的装置(例えば、自動車、オートバイ、洗濯機、乾燥機)などが含まれる。また、特定目的のマシンやコンピュータの監視に加え、本発明は汎用コンピュータの監視、制御、診断に使用でき、その場合は、その汎用コンピュータが監視及び/または制御される装置となる。
【0047】
図5は、本発明の別のシステムのシステム図であり、様々な装置やサブシステムがWAN10に接続されている。しかし、これらの装置やサブシステムの各々は、本発明の一部として必ずしも必須のものではない。図5に示した各コンポーネントやサブシステムは、個々に本発明の一部である。さらに、図1に示した構成要素を図5に示したWAN10に接続してもよい。図5には、イントラネット260−1に接続されたファイヤーウォール50−1が示されている。イントラネット260−1に接続されたサービスマシン254は、データベースフォーマットで格納されたデータ256を含むか、そのデータ256に接続されている。データ256には、被監視装置の履歴、パフォーマンス、故障情報や、その他の動作、故障、設定に関する統計情報等、または被監視装置にどのコンポーネントや任意的機器が含まれているか等を示す構成情報が含まれている。サービスマシン254は、被監視装置にデータを送信するように要求し、またはその被監視装置にリモート制御および/または診断テストを実行することを要求する装置またはコンピュータである。サービスマシン254は、いかなるタイプの装置でもよく、好ましくは汎用コンピュータなどのコンピュータ化された装置を用いて実施される。また、サービスマシン254は、請求、会計、サービス処理、パーツトラッキング、およびレポートを含む様々なデータベースを有するネットワーク上の複数のコンピュータにより構成される。
【0048】
図5に示した他のサブシステムには、ファイヤーウォール50-2、イントラネット260-2、それに接続されたプリンター262が含まれる。このサブシステムにおいて、プリンター262(同様にコピー機286)による電子メッセージを送受信する機能は、(1)回路、(2)マイクロプロセッサ、(3)プリンター262に含まれた、または搭載されたその他のタイプのハードウェアにより(すなわち、別の汎用コンピュータを使用せずに)実行される。
【0049】
別のタイプのサブシステムには、インターネットサービスプロバイダー264の使用を含む。そのインターネットサービスプロバイダー264は、いかなるタイプのインターネットサービスプロバイダー(ISP)でもよく、アメリカオンライン、イーサリンク、ニフティサーブ等の既知の事業会社を含む。このサブシステムにおいて、コンピュータ266はデジタルまたはアナログモデム(例えば、電話ラインモデム、ケーブルモデム、非対称デジタル加入者ライン(ADSL)で使用されるモデム、フレームリレー通信を使用するモデム、無線周波数モデム等のワイヤレスモデム、光ファイバーモデム、赤外線を使用する装置)を介してISP264に接続されている。さらに、ビジネスオフィス装置268はコンピュータ266に接続されている。ビジネスオフィス装置268(または図5に示したその他の装置)ではなく、異なるタイプのマシンを監視または制御してもよい。異なるタイプのマシンとは、例えば、デジタルコピー、すべてのタイプの機器、セキュリティシステム、ユーティリティメータ、(例えば、電気、水道、ガスのユーティリティメータ)、その他のここで説明する装置を含む。
【0050】
図5には、ネットワーク274に接続されたファイヤーウォール50-3も示されている。ネットワーク274はいかなるタイプのコンピュータネットワークでもよい(例えば、イーサネット(登録商標)またはトークンリングネットワーク)。ネットワークを制御するために使用するネットワークソフトウェアには、ノベルまたはマイクロソフトから商業的に入手可能なソフトウェア等を含むネットワークソフトウェアが含まれる。ネットワーク274は、必要に応じてイントラネットであってもよい。ネットワーク274に接続されたコンピュータ272は、ビジネスオフィス装置278から情報を取得し、ネットワークに接続されたいろいろなマシンで発生した問題を示すレポートや、ネットワーク274に接続された装置の月間使用レポート等を生成するために使用される。本実施形態において、コンピュータ276はビジネスオフィス装置278とネットワーク274の間に接続されている。このコンピュータはネットワークからの通信を受信し、適当なコマンド、データ、またはその他の情報をビジネスオフィス装置278に転送する。
【0051】
ビジネスオフィス装置278とコンピュータ276の間の通信は、有線ベースまたはワイヤレス方式を使用してなされる。その方式には、例えば、ラジオ周波数接続、電気的接続、光接続(例えば、赤外線接続や光ファイバー接続)等が含まれるが、これに限定されない。同様に、図5に示したいろいろなネットワークやイントラネットは、所望の方式でよく、例えば、無線周波数ネットワーク等のワイヤレスネットワーク方式でもよい。ここに説明したワイヤレス通信は、拡散コードとブルートゥース仕様書(ウェブサイトwww.bluetooth.comで入手可能である)に開示された周波数ホッピングワイヤレス技術等を用いる技術を含む拡散スペクトルを用いて行うことができる。このブルートゥース仕様書はここに参照により援用する。
【0052】
図5に示した他のサブシステムには、ファイヤーウォール50-4、イントラネット260-4、それに接続されたコンピュータ282、ビジネスオフィス機器285、コピー機286が含まれる。コンピュータ282を用いて、レポートを生成し、診断または制御プロシージャを要求する。これらの診断および制御プロシージャは、ビジネスオフィス機器285、コピー機286、または図5に示したその他の装置、またはそれらとともに使用する装置に対して実行してもよい。図5は複数のファイヤーウォールを示しているが、ファイヤーウォールは好ましいが任意的な機器であり、それゆえ、本発明はファイヤーウォールなしで使用することもできる。ネットワークされた機器の監視および制御のために、コンピュータ254ではなくどのコンピュータ(266、272、または282)を使用することもできる。また、いずれかのコンピュータがコンピュータ254にアクセスして、必要な装置情報や使用情報を、ウェブを介して読み出してもよい。
【0053】
図6Aは、典型的な電子メール交換システムに接続された装置/機器300を示しており、コンポーネント302、304、306、308、310、312、314、316、318を含んでいる。このシステムは従来の方式で実現されてもよく、上記引用文献(Stevens)の図28.1に適用可能である。コンピュータインターフェイス302は、ここに説明したいかなるアプリケーションユニットや装置/機器300ともインターフェイスする。図6Aでは装置/機器300は送信元であるが、図6Aの送信と受信の機能は逆にしてもよい。さらにまた、もし望ましければ、ユーザは装置/機器300とインターフェイスする必要は必ずしもない。コンピュータインターフェイス302はメールエージェント304とやり取りする。Unix(登録商標)用の一般的なメールエージェントとしては、MH、バークレーメール、Elm、Mushなどがある。ウィンドウズ(登録商標)ファミリーのオペレーティングシステム用のメールエージェントには、マイクロソフトアウトルックとマイクロソフトアウトルックエクスプレスがある。コンピュータインターフェイス302の要求により、メールエージェント304は送信する電子メールメッセージを作成し、必要であれば、送信するこれらのメッセージをキュー306に入れる。送信されるメールはメッセージトランスファーエージェント(MTA)308に送られる。Unix(登録商標)システム用の一般的なMTAはSendmailである。メッセージトランスファーエージェント308と312は、一般的には、TCP/IP接続310を用いて通信する。特に、メッセージトランスファーエージェント308と312の間の通信は、如何なるサイズのネットワーク(例えば、WANまたはLAN)でなされてもよい。さらに、メッセージトランスファーエージェント308と312はどの通信プロトコルを使用してもよい。本発明の一実施形態において、図6Aの構成要素302と304は、アプリケーションユニットの使用を監視するライブラリにある。
【0054】
電子メールメッセージは、メッセージトランスファーエージェント312からユーザメールボックス314に格納され、メールエージェント316に転送され、最終的に受信端末として機能する端末318のユーザに送信される。
【0055】
送信メールエージェント304は、この「ストアアンドフォワード」プロセスにより、メール受信者との直接接続が確立されるまで待つ必要が無くなる。ネットワーク遅延により、通信にはかなりの時間を要し、その間アプリケーションは応答しない。このような応答の遅延は、アプリケーションユニットのユーザには一般に受け入れがたいものである。電子メールをストアアンドフォワードプロセスとして使用することにより、通信が失敗した後一定期間(例えば3日間)、自動的に再送を試みることができる。別の実施形態において、アプリケーションは、1以上の別のスレッドに通信要求を送ることにより、待たなくて済む。これらのスレッドは、受信端末318との通信を制御することができ、一方、アプリケーションは、ユーザインターフェイスに再度応答をすることができる。さらに別の実施形態において、ユーザが通信を完了させたいと思っている場合、受信端末との直接通信を使用する。このような直接通信には、送受信端末間のファイヤーウォールによりブロックされないプロトコルであればいかなるものを使用することもできる。そのようなプロトコルの例としては、テルネット(Telnet)、ファイルトランスファープロトコル(FTP)、ハイパーテキストトランスファープロトコル(HTTP)等がある。
【0056】
インターネット等のパブリックWANは、一般的に安全であるとは言えない。それゆえ、メッセージを秘匿したいときは、パブリックWAN(および複数企業のプライベートWAN)を介して送信するメッセージは暗号化される。暗号化手法自体は既知であり、商業的に入手可能であり、本発明とともに使用することができる。例えば、C++ライブラリ関数crypt()をサンマイクロシステムズから入手して、Unix(登録商標)オペレーティングシステムで使用することができる。暗号化および復号ソフトウェアパッケージが知られており、商業的に入手可能であり、本発明で使用することができる。パッケージの例として、PGPコーポレーションが出しているPGPがある。
【0057】
図6Aの一般的構造の代替例として、コンピュータインターフェイス302、メールエージェント304、メールキュー306、メッセージトランスファーエージェント308として機能する単一のコンピュータを使ってもよい。図6Bに示したように、装置/機器300はコンピュータ301に接続されており、そのコンピュータ301はメッセージトランスファーエージェント308を含む。
【0058】
さらに別の構成を図6Cに示したが、この構成ではメッセージトランスファーエージェント308が装置/機器300の一部となっている。さらに、メッセージトランスファーエージェント308はメッセージトランスファーエージェント312とTCP/IP接続310により接続されている。図6Cの実施形態において、装置/機器300は、電子メール機能を有するTCP/IP接続310に直接接続されている。図6Cの実施形態の使用には、(例えば、RFC2305(インターネットメールを用いた単一モードのファクシミリ)に規定された)電子メール機能を有するファクシミリを装置/機器300として使用することが含まれる。
【0059】
図6Dに示したシステムは、装置/機器300が自分では電子メールを直接受信する能力を有していないが、メッセージトランスファーエージェント308とメールボックス314を含むメールサーバ/POP3サーバとの接続310を有し、装置/機器300がPOP3プロトコルを使用してメールサーバから受信メールを読み出す。
【0060】
図7は、メール転送の別の実施形態を示す図であり、前に参照した引用文献(Stevens)の図28.3に基づき作成したものである。図7は、リレーシステムを各端に有する電子メールシステムを示す。図7の構成により、組織の一システムをメールハブとして機能させることができる。図7において、2つのメールエージェント304と316の間に4つのMTAが接続されている。その4つのMTAは、ローカルMTA322A、リレーMTA328A、リレーMTA328B、およびローカルMTA322Dである。メールメッセージで最も一般的なプロトコルはSMTP(シンプルメールトランスファープロトコル)であり、このプロトコルを本発明に使用することができるが、他のメールプロトコルを使用することもできる。図7において、参照番号320はコンピュータインターフェイス302、メールエージェント304、ローカルMTA322Aを含む送信ホストを指す。装置/機器300はこの送信ホスト320に接続されるか、あるいはその中に含まれている。他の場合として、装置/機器300とホスト320は、ホスト機能が装置/機器300に組み込まれた1つのマシンであってもよい。他のローカルMTA322B、322C、322E、322Fが含まれていてもよい。送受信メールは、リレーMTA328Aのメールキュー306Bの待ち行列に入れられる。メッセージはTCP/IP接続310(例えば、インターネット接続またはその他のタイプのネットワークにわたる接続)により転送される。
【0061】
送信メッセージはリレーMTA328Bにより受信され、必要に応じてメールキュー306Cに格納される。メールはその後受信ホスト342のローカルMTA322Dに転送される。メールは1つ以上のユーザメールボックス314に入れられ、その後メールエージェント316に転送され、最後に端末318のユーザに転送される。必要に応じて、メールは、ユーザによる関与無しに端末に直接転送される。
【0062】
図5のコンピュータ266と276を含めて、本発明で使用される様々なコンピュータは、図8に示したようなものである。さらに、本発明で使用される他のコンピュータは、図8に示したコンピュータと同様なものであり、必要に応じて、図5に示したサービスマシン254、コンピュータ272、コンピュータ282を含んでもよい。しかし、これらのコンピュータの各々において、図8に示したすべての構成要素が必要なわけではない。
【0063】
図8において、コンピュータ360はCPU362を含む。このCPU362は、インテル、AMD、モトローラ、日立、NEC等の会社から商業的に入手可能なマイクロプロセッサを含む、いかなるタイプのプロセッサであってもよい。RAM364等のワーキングメモリと、ワイヤレスデバイス368と通信するワイヤレスインターフェイス366がある。インターフェイス366とデバイス368の間の通信には、いかなる無線媒体(例えば、ラジオ波や光波)を使用してもよい。ラジオ波は、符号分割多重アクセス(CDMA)通信等の拡散スペクトル技術や、ブルートゥース仕様書に開示されている周波数ホッピング技術を用いてもよい。
【0064】
コンピュータ360はROM370とフラッシュメモリ371とを含むが、他のいかなるタイプの不揮発性メモリ(例えば、消去可能プログラマブルROM、またはEEPROM)をフラッシュメモリ371に加え、またはそれの替わりに使用してもよい。入力コントローラ372にはキーボード374およびマウス376が接続されている。シリアルインターフェイス378があり、シリアルデバイス380が接続されている。また、パラレルインターフェイス382はパラレルデバイス384に接続されており、ユニバーサルシリアルバス(USB)インターフェイス386はユニバーサルシリアルバスデバイス388に接続されており、またIEEE1394デバイス400(一般に、ファイヤーワイヤデバイスと呼ばれる)があり、IEEE1394インターフェイス398に接続されている。システムバス390にはコンピュータ360のいろいろな構成要素を接続する。ディスクコントローラ396には、フレキシブルディスクドライブ394とハードディスクドライブ392が接続されている。コンピュータ360は、通信コントローラ406により、ネットワーク404を介して、(例えば、電子メールメッセージを送信することにより)他のコンピュータと通信することができる。I/O(入出力)コントローラ408には、例えば、SCSI(Small Computer
System Interface)バスを用いてプリンター410とハードディスク412が接続されている。CRT(陰極線管)414が接続されたディスプレイコントローラ416もある。ディスプレイはいかなるタイプでもよく、例えば液晶ディスプレイ、発光ダイオードディスプレイ、プラズマディスプレイ等であってもよい。
【0065】
図9は、本発明の一実施形態によるシステム900の全体を示す概略図である。システム900は、レーザプリンター908、スキャナー910、ネットワーク装置912、多機能プリンター914など複数の装置を含んでおり、これらはすべてネットワーク100に接続されている。これら複数の装置は一般的にここで「被監視装置」と呼ばれる。システム900には、ネットワーク100に接続され被監視装置908、910、912、914を監視および制御するワークステーション/監視システム902(以下、コントローラ902と呼ぶ)も含まれている。各被監視装置908、910、912、914には一意的なアドレスが与えられている。例えば、装置に割り当てられたIPアドレスはその装置の一意的なアドレスとして機能する。このように、コントローラ902のユーザは、それぞれの被監視装置に割り当てられた一意的なIPアドレスにアクセスすることにより、被監視装置908-914の中で個々の装置にアクセスすることができる。当然のことながら、本発明は、IPアドレスを用いてネットワークに接続された装置を一意的に特定することに限定されない。
【0066】
コントローラ902は、被監視装置908-914の1つにアクセスする際、SNMP及び/またはHTTPプロトコルでいろいろな情報を取得する。情報の例としては、装置の動作状態に関する詳細な情報(トラブルシューティング情報を含む)がある。例えば、コントローラ902は、ある装置にアクセスし、そのジャム位置を取得し、そのジャムを解消するためにその装置の管理者にメッセージを送信する。レーザプリンター908の動作状態/詳細情報には、トナーレベル、ペーパージャムの表示、プリンタートレイにある印刷用紙の枚数等の詳細情報が含まれる。
【0067】
当然のことながら、コントローラ902はネットワーク100と物理的に接続されていても、ワイヤレスで結合されていてもよい。例えば、パーソナルデジタルアシスタント(PDA)920やラップトップコンピュータ922は、ネットワーク100にワイヤレスに結合しているように示されているが、コントローラ902として使用することもできる。アクセスポイント924は、ネットワーク100とPDA922またはラップトップコンピュータ922との間のワイヤレス通信を可能とするインターフェイスとして機能する。ここからは、コントローラ902は、ネットワークに接続されている被監視装置の状態を制御および監視するという仮定の下に本発明を説明する。
【0068】
ネットワーク100により、コントローラ902と被監視装置908−914の間の通信が容易になり、被監視装置の監視と制御が可能となる。ネットワークに接続された装置の数は、本発明を限定するものではない。当然のことながら、ネットワーク100はローカルエリアネットワーク(LAN)でもワイドエリアネットワーク(WAN)でもよい。同様に、被監視装置908、910、912、914は例として示されているに過ぎない。
【0069】
コントローラ902は、記憶装置904とデータベース906に通信可能に結合している。記憶装置904には、ハードディスクドライブ、光ディスクドライブ、及び/または外部ディスクドライブが含まれる。データベース906は記憶装置904に通信可能にリンクされており、記憶装置904に格納されたデータを容易に検索し読み出すためのリレーショナルデータベースマネージメントシステム(RDBMS)を含んでいる。記憶装置904は、好ましくは、各被監視装置908−914に関する詳細情報を格納している。例えば、レーザプリンター908のメーカー、モデル、いろいろな機能およびトラブルシューティングの詳細等の詳細情報が記憶装置904に格納されている。また、所定の基準値と比較したレーザプリンターの動作状態に関する偏差値(差分)を記憶装置904に格納してもよい。データベース906と記憶装置904はコントローラに通信可能に結合していると説明したが、当然のことながら、コントローラ902が記憶装置と一体に構成され、データベースがそれにインストールされていてもよい。その場合、記憶装置906とデータベース904はコントローラ902に内蔵されるように描かれるであろう。
【0070】
コントローラ902は、複数の装置908−914の監視と制御を容易にするために、ソフトウェアで導入されてもよい。コントローラ902は複数の装置908−914を監視するためにシンプルネットワークマネージメントプロトコル(SNMP)、ファイルトランスファープロトコル(FTP)、およびハイパーテキストトランスファープロトコル(HTTP)を使用する。その複数の装置908−914から受信したデータは950で示したようにASN.1バイナリーフォーマット、HTMLフォーマット、またはXMLフォーマットの形式で表される。
【0071】
図9には画像化装置のみを示したが、監視装置と複数の被監視装置の間で情報を通信するためのネットワークには、機器とメータがネットワークに接続されたホームネットワークを含めてもよい。当然のことながら、コントローラ/ワークステーション902により収集されたデータは、さらに処理するために、電子メール、FTP、その他の通信プロトコル手段を介してリモート装置に送信される。ワークステーション902、PDA920、またはラップトップコンピュータ922は、データを収集し、それを格納または通信プロトコルを使って送信するコントローラでもよく、そのコントローラはネットワークに接続されているどの装置であってもよい。どのネットワーク装置(例えば、プリンター)にも、ネットワーク中の他の装置の状態を監視し、収集したデータを格納し、および/または収集したデータを他の通信プロトコル手段(例えば、電子メール、FTP)を通じて送信することができる監視システムの機能を持たせることができる。ゼロックスDocuPrinter4025及びHPLaserJet9000は双方とも電子メールを送信できる。
【0072】
監視ステーション902はSMTPを介して電子メールでステータス情報を遠隔地に送信できる。図9に示されるように、監視ステーション902はSMTPサーバ926を介して電子メールでステータス情報を遠隔地に又は遠隔ネットワークに送信する。遠隔地には電子メールを受信するためのPOP3サーバ930が備わる。ワークステーション940はPOP3サーバ903と通信し、ステータス情報を含む電子メールを検索する。ワークステーション940はステータス情報をデータベース960に格納してもよい。電子メールにより、ステータス情報が遠隔地に容易に伝送されるようにできる。ステータス情報は電子メールメッセージ中に又は添付物(アタッチメント)中にあってもよい。ステータス情報はセキュアな(安全な)データ伝送を行うためにエンコード(暗号化)されてもよい。FTP、HTTPのような他のプロトコル又はウェブサービスを利用して情報を遠隔地に転送してもよい。
【0073】
監視システムのアーキテクチャ
図10は、本発明の一実施形態による、リモート装置に関連したデータの監視に使用される監視システム1000(および、関連するインターフェイス機能)を示す。監視システム1000は、ソフトウェアモジュールMonitorService1004を含む。このソフトウェアモジュールMonitorService1004は、NTやウィンドウズ(登録商標)2000のサービスやUnix(登録商標)のデーモン等のコンピュータ常駐プログラムである。好ましい実施形態において、監視システムはオブジェクト指向ソフトウェア環境を用いて実装されている。また、Timer(タイマー)モジュール1002とMonitor(モニター)モジュール1006が監視システム1000に含まれている。タイマーモジュール1002とMonitorモジュール1006は、MonitorService(モニターサービス)モジュール1004により呼び出されるライブラリ関数である。例えば、MonitorService1004は、InitTimer関数1003を呼び出してTimerモジュール1002を初期化し、obtainDelayAndAction(int&,int&)関数を呼び出して遅延および動作パラメータを取得する。図13に示されるように、init()関数は、MonitorServiceモジュール1004によっても呼び出され、Monitorモジュール1006のいろいろなモジュールを初期化する。init()関数を用いて、既知の方法で収集されたIPアドレス、パラメータ名、パラメータ値を含む外部ソースを通じて、被監視装置に割り当てられたIPアドレスとパラメータ値を取得することができる。Monitorモジュール1006は、サポートデータベース1024と監視データベース1014に通信可能に結合される。これらのデータベースは後でより詳しく説明する。
【0074】
一旦被監視装置のIPアドレスを取得すると、監視システムは、そのIPアドレスを用いて被監視装置にコンタクトして製造者(ベンダー)およびモデル等の情報を取得する。監視システム1000により実行される関数には以下の関数がある。
【0075】
void initTimer(void)
この関数はタイマーを初期化する。特に、この関数がトリガーになって、Timerオブジェクトがレジストリからタイミング情報を入手する。
【0076】
void obtainDelayAndAction(int & out_nDelay, int & out_nAction)
この関数は、Sleep関数(1000倍する必要がある)と動作インジケータのために、秒単位の遅延時間を返す。動作インジケータは以下のように定義されている:0=イベントチェック中;1=被監視データを送信中;2=データを監視してローカルデータベースに格納中。
【0077】
int init(void)
この関数はモニタ(Monitor)を初期化する。また、監視される装置を生成する。戻り値はエラーコードであり、ゼロはエラーなしを表すと決められている。
【0078】
int monitorStatus(int in_nAction)
この関数はプリセット情報を監視する。戻り値はエラーコードであり、ゼロはエラーなしを表すと決められている。
【0079】
int end(void)
この関数はオブジェクトを閉じる(クローズする)前にモニターをきれいにする(クリーンアップする)。戻り値はエラーコードであり、ゼロはエラーなしを表すと決められている。
【0080】
モニターモジュール
図11は、Monitor(モニター)モジュール1006の構造の詳細を示し、いろいろなソフトウェアサブモジュールとサブモジュール間の呼び出し関数とを含んでいる。Monitorモジュール1006は、多数のモジュールにより使用されるクラスを含むCommon(コモン)モジュール1101、及び他のサブモジュール(DeviceODCBモジュール1104、Device(デバイス)モジュール1110、HWaccess(HWアクセス)モジュール1116)を管理するMonitorManager(モニターマネージャ)モジュール1102とを含み、図10に示したようにインターフェイス機能により規定されたタスクを完了する。具体的に、DeviceODBC(デバイスODBC)モジュール1104は、標準インターフェイスを通じて外部装置情報にアクセスするために、アクセスされる。HWaccessモジュール1116は、複数の通信プロトコル(例えば、HTTP、SNMP、FTP)のうちから選択された通信プロトコルを用いて、被監視装置からベンダー、モデル、一意なID、ステータス情報を取得する。各Monitorソフトウェアモジュールは、以下により詳細に説明する。
【0081】
上述のモニターモジュール間のインターフェイスの一部を以下に説明する。例えば、モジュールによっては、便利なフォーマットで情報を取得するために、「init」関数又は他の関数が必要である。
【0082】
void updateConfig(std::map<infoType, std::string> &)
この関数を呼び出す前に、呼んでいる関数は、obtain関数がnullストリングを返した場合、ベンダーとモデルのエントリーを置き換えないことが好ましい。この関数は、DeviceODBC1104の装置情報データベースのカレントレコードを更新する。この関数は、下記のObtainConfigが最初に呼ばれた時に最も効率的である。この関数は、最初に、IPアドレスがDeviceODBC1104と同じかどうかをチェックする。IPアドレスフィールドが同じでない場合、正しいIPアドレスのレコードをデータベースから取得する。そして、他のフィールドがコピーされ、レコードが更新される。
【0083】
bool obtainConfig(std::map<infoType, std::string> &, std::map<std::string, std::vector<SParameter>> &)
この関数は、DeviceODBC1104から所与のフォーマットの装置情報のマップと、プロトコルとそれに関連するパラメータのマップとを取得する。この関数は返すデータがあれば真を返し、データがもうなければ偽を返す。
【0084】
bool saveStatus(std::map<infoType, std::string> &)
この関数は、ステータス情報をDeviceODBC1104に保存する。保存が成功した場合、真を返し、失敗した場合、偽を返す。
【0085】
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かどうかをチェックしなければならない。
【0086】
bool canAccessHW(void)
この関数は、ハードウェアがネットワークを通じてアクセスできる時に真を返し、そうでない時に偽を返す。
【0087】
bool getVendor(std::string & out_sVendor)
この関数はベンダー名を返す。その装置がシステムによってサポートされていないが、プロトコルの1つを通してアクセス可能なときは、ストリングに「GENERIC」と表示される。プロセス中でエラーを検出すると、本関数はnullストリングと偽を返す。そうでない時は真を返す。
【0088】
bool getModel(std::string & out_sModel)
この関数は装置のモデルを取得する。モデルを取得すると、関数は真を返す。プロセス中でエラーを検出すると、本関数はnullストリングと偽を返す。
【0089】
bool getUniqueID(std::string & out_sUniqueID)
この関数は装置の一意の(ユニークな)IDを返す。一意的IDを取得すると、関数は真を返す。プロセス中でエラーを検出すると、本関数はnullストリングと偽を返す。
【0090】
bool obtainStatus(map<infoType, std::string> & out_StatusMap)
この関数は状態マップを返す。本関数は、状態が返されたとき真を返し、状態を取得できなかったとき偽を返す。この関数はHWaccessとDeviceモジュールでは異なるマップを返すことに注意を要する。Deviceモジュールでは、イベントステータス情報はHWaccessから返されたマップに付加され、クリアされる。
【0091】
enum checkEventStatus(void)
この関数はネットワーク装置のイベントを取得するトリガーとして機能する。enumタイプと値はクラスで定義しなければならない。enum値は値eNoEventSinceClearAndNoEventDetected、eNoEventSinceClearAndEventDetected、eEventSinceClearAndNoEventDetected、及びeEventSinceClearAndEventDetectedを含まねばならない。
【0092】
bool
obtainEventStatus(std::map<infoType, std:: string> & out_EventStatusMap)
この関数はイベントステータス情報を取得する。本関数は、状態が返されたとき真を返し、状態を取得できなかったとき偽を返す。
【0093】
void clearEventStatus(void)
この関数は最後のobtainStatusまたはclearEventStatusのファンクションコール以降に集積されたイベントステータスをクリアする。
【0094】
void initBegin(void)
この関数は、HWaccessを通じて初期化プロセスを開始し、具体的にはソフトウェアデバイスオブジェクトを生成する初期化プロセスを生成する。
【0095】
void initEnd(void)
この関数はHWaccessを通じて初期化プロセスを終了させるが、これはデバイスオブジェクトの生成が終了することを示す。
【0096】
bool canAccessIP(const std::string & in_sIP, std::map<std::string, std::vector<SParameter>> & in_ProtocolParameters)
この関数は、IPアドレスで装置にアクセスできるとき真を返し、そうでないとき偽を返す。
【0097】
bool obtainVendor(std::string & out_sVendor,
std::map<std::string, std::vector<SParameter>> & inOut_ProtocolParameters, const std::string & in_sIP)
この関数はベンダーを取得する。この関数は、正常に動作したとき真を返し、そうでなければ空のストリングとともに偽を返す。このファンクションコールの間、プロトコルが調べられ、特定のプロトコルがステータス監視に使用できないとき、そのプロトコルはinOut_ProtocolParametersから削除される。
【0098】
bool obtainModel(std::string & out_sModelName, std::map<std::string, std::vector<SParameter>> & inOut_ProtocolParameters, const std::string & in_sIP)
この関数はモデル名を取得する。この関数は、正常に動作したとき真を返し、そうでなければ空のストリングとともに偽を返す。このファンクションコールの間、プロトコルが調べられ、特定のプロトコルがステータス監視に使用できないとき、そのプロトコルはinOut_ProtocolParametersから削除される。
【0099】
bool obtainUniqueID(std::string & out_sUniqueID, std::map<std::string, std::vector<SParameter>> & inOut_ProtocolParameters, const std::string & in_sIP)
この関数は一意的IDを取得する。この関数は、正常に動作したとき真を返し、そうでなければ空のストリングとともに偽を返す。このファンクションコールの間、プロトコルが調べられ、特定のプロトコルがステータス監視に使用できないとき、そのプロトコルはinOut_ProtocolParametersから削除される。
【0100】
EerrorCode obtainEventStatus(std::map<infoType, std::string> & out_StatusMap, const std::string & in_sIP, std::map<std::string, std::vector<SParameter>> & in_ProtocolParameters)
この関数はイベントステータスを取得する。ErrorCodeは後で定義する。
【0101】
bool obtainStatus(std::map<infoType, std::string> & out_StatusMap, const std::string & in_sIP, const std::string & in_sVendor, const std::string & in_sModel, std::map<std::string, std::vector<SParameter>> & in_ProtocolParameters)
この関数は装置のステータスを取得する。この関数は、正常に動作したときは真を返し、そうでないときは空のマップとともに偽を返す。
【0102】
図13は、図10に示した、Monitorモジュール1006の呼び出しシーケンスを説明するinit()関数のシーケンスを示す。MonitorManager1102は、HWaccessモジュール1116を初期化して初期化関数を開始する。そして、MonitorManager1102は被監視装置に関する情報を取得し、被監視装置に割り当てられたIPアドレスを用いてその被監視装置と通信する。MonitorManager1102は、DeviceODBC1104にアクセスし被監視装置の設定情報を取得する。MonitorManager1102に返される設定情報は、例えば、被監視装置のIPアドレス、各プロトコルのパラメータ名とそれに関連する値、被監視装置のベンダー/製造者及びモデル情報が含む。一旦IPアドレスを取得すると、MonitorManager1102は、各プロトコルについてそのIPアドレス、パラメータ名、それに関連する値を設定し、Deviceモジュール1110の装置についてソフトウェアオブジェクトを生成する。デバイスソフトウェアオブジェクトが正常に生成されると、HWaccessモジュール1116を用いて、被監視装置からベンダー、モデル、一意的IDを取得し、生成されたデバイスソフトウェアオブジェクトに格納する。
【0103】
一旦デバイスソフトウェアオブジェクトからベンダー、モデル情報、一意的IDを取得すると、MonitorManager1102は被監視装置から受信した情報でデータベース(例えば、DeviceODBC1104)を更新する。図12には1つの装置を示しているが、obtainConfigからupdateConfigまでのステップを繰り返し、外部ソースで指示された装置すべてをカバーする。また、図21,31,32,33に示した各プロトコルが初期化される。図21,31,32,33に示したODBCに対応するデータベーステーブルにアクセスし、アクセスされた装置からのステータス情報の収集が速くなるように、アクセスされた装置の必要情報を外部記憶から内部データ構造に転送する。
【0104】
図13は、図11に示した、MonitorManagerモジュール1102による被監視装置のステータスを決定するためのステータス監視機能のシーケンスを示す。DeviceからHWaccessにobtainStatus関数が発行されると、CHWaccessクラスは、以下に説明するように、異なるパラメータを用いて、抽象型クラスを通じて図21,31,32,33に示した各プロトコルに対してobtainStatus関数コールを順次発行する。各プロトコルモジュールは被監視装置からステータス情報を抽出するのに必要な情報をすでにキャッシュしている。その被監視装置は、図12に示した初期化時にすでにアクセスされている。それゆえ、ステータス情報は、ステータス監視の際に外部ソースにアクセスすることなく、被監視装置から素早く抽出することができる。このプロセスは、図14に示したベクトルに格納されたすべての被監視装置について繰り返される。
【0105】
図14を参照して、ベクトル1500が示されており、図12と13に示されるように、図11のデバイスモジュール1110内で生成され、MonitorManager1102により使用される装置を参照している。MonitorManager1102は、例えば、CDeviceオブジェクト1502へのポインタ、CDeviceオブジェクト1504へのポインタ等のデバイスポインタをそのベクトルにおけるデバイスモジュール1110に格納している。ベクトルシーケンスが繰り返され、被監視装置のステータスを取得する。obtainStatusコマンドを発行することにより、装置オブジェクトに被監視装置のポーリングを実行する。各ソフトウェアオブジェクトのステータスを一旦取得すると、そのステータスはDeviceODBC1104を通じて更新される。ステータス監視シーケンスは、図13を参照して上で説明したので、ここでは説明を繰り返さない。
【0106】
テーブルI(表1)に示したDeviceInfo構造は、被監視装置の一例に関する情報を示している。DeviceInfo構造は、連絡を取る人物の電話番号に加えて電子メールアドレスを含んでいる。
【0107】
【表1】

監視データベース
図17は監視データベースの組織を示し、各被監視装置の装置情報を含んでいる(表1も参照)。図17に示したように、各通信プロトコル(例えば、SNMP、HTTP、FTP)に対して一組のパラメータが、各被監視装置の装置情報DeviceInfo1902と関連している。さらに、1つのプロトコル(例えば、SNMP1908、HTTP1910、FTP1912)の各パラメータの組は、パラメータ名と値のペア(例えば、sPar1NameとsPar1Value)のリストとしてまとめられている。各プロトコルのパラメータ数は、図17に示した数よりも少ない場合も多い場合もあることに注意すべきである。例えば、ある被監視装置については、ユーザ名とパスワードはFTPパラメータとして格納され、一方、コミュニティ名とパスワードはSNMPパラメータとして格納される。図17に示したように、監視データベースはDeviceHistory1904とEnumCorrespondence1906に関する情報も含む。
【0108】
図15はSParameterデータ構造1700を示し、このデータ構造はいろいろな通信プロトコルにより使用されるパラメータをパスするために使用される。Sparameterは2つのフィールドを含む。SParameterは2つのフィールドm_sParName1702とm_sParValue1704を含み、それぞれパラメータの名前と値を表す。
【0109】
図16は、マップ構造1800を示し、このマップ構造は、監視データベースから取得した各プロトコルのパラメータのベクトルを各被監視装置に関連するソフトウェアオブジェクトにパスするために使用される。マップ構造1800は、各プロトコル/キーフィールド1802、1804、1806を、図15に示したSParameterフォーマットに従って構成した対応するパラメータ1808、1810、1812のベクトルそれぞれと関連づける。例えば、SNMPプロトコル1802の場合、パラメータベクトル1808は、SNMPプロトコルを用いて被監視装置にアクセスするために使用するパラメータ名、パラメータ値ペアのリストを含んでいる。例えば、ベクトル1808に格納されるSNMPパラメータ名は、対応するパラメータ値とともに「コミュニティ名」と「パスワード」を含んでいてもよい。しかし、マップ構造1800では、プロトコルとそれに付随するパラメータベクトルの数はいくつでもよく、図16に示したSNMP、HTTP、FTPプロトコルに限定されない。
【0110】
サポートデータベース
図18ないし図20は、図10に示したサポートデータベース1024の構成を示す。サポートデータベースは、各被監視装置からステータス情報を抽出するのに必要な情報を含み、通信プロトコルにより組織される。更に、 サポートデータベースは、どのプロトコルが所与のベンダー及びモデルによってサポートされているかを確認するための情報を含む。例えば、図18は、被監視装置から情報を抽出するために使用するSNMP関係のサポート情報のサポートデータベースの構成を示し、データ構造SNMPVendor2002、SNMPComVendorStatus2004、EnumCorrespondence2006、SNMPVendorModelStatus2008を含む。サポートデータベースの所与のデータ構造は、抽出を制御するパラメータと合わせて、抽出するステータス情報のタイプを一意的に特定するパラメータを含む。例えば、SNMPComVendorStatusデータ構造2004は、抽出する情報のタイプ(例えば、トナーレベル)を特定するnENUMフィールド2009と、他のプロトコルに関する抽出情報の重みや重要性を示すnRelativePriorityフィールド2010を含む。このように、同じ情報が2以上のプロトコルを用いて被監視装置から抽出される場合、nRelativePriority値がどのプロトコルで抽出された値を使用するかに関する表示を与える。例えば、HTTPはトナーレベルの高低を表示する情報だけを抽出でき、一方、SNMPプロトコルは残りのトナーのパーセンテージを抽出できる場合、SNMPのトナーレベルの優先レベルがHTTPの対応する値よりも高くなるであろう。また、サポートデータベースでは、プロトコル全体にデフォルトの優先値をつけてもよい。一実施形態において、プロトコル値が0から32,000の範囲であるシステムにおいて、SNMPプロトコルには優先値10,000を与える。
【0111】
図19と20は、サポートデータベース1024のHTTPとFTP部分に含まれるデータ構造を示し、図18を参照して上で説明したデータ構造に類似したデータ構造を含んでいる。図18−20に示されるEnumCorrespondenceデータ構造は、そのサポートデータベースにおける全てのプロトコルについてそのデータベース構造で共用され、図17に示されるのと同じデータ構造である。
【0112】
図19では、被監視装置から情報を取得するために使用するHTTPプロトコルについて2組のデータ構造が示されている。一方は、「タグ」(Tag)のプレフィックス(接頭辞)を用いてラベルが付され、被監視装置のウェブページ中のタグにある情報を抽出するためのサポート情報を用意する。もう一方のデータ行動は、「スクリプト」(Script)のプレフィックスを用いてラベルが付され、被監視装置のウェブページ中のジャバ(Java(登録商標))スクリプトに含まれる情報を抽出するためのサポート情報を用意する。
【0113】
図20は被監視装置のFTPファイルから情報を抽出するのに使用されるサポート情報を含むデータ構造を示す。
【0114】
本発明で使用するenumタイプの例は、以下に定義するinfoTypeである。(enumタイプは単なる一例であり、本発明を限定するものとして解釈してはならない。)
infoType (typedef int infoType)
このセクションではinfoType(int)の定義を説明する。データタイプには0から99までの範囲の値が割り当てられている。100から499までの値の範囲が装置情報に割り当てられている。500から1999の値の範囲が標準MIBパラメータを含む共通パラメータに割り当てられている。2000から3999の範囲がリコー特有の情報に割り当てられている。4000から4999の範囲がゼロックスに割り当てられている。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,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
以下のコードは単なる一例であり、より多くのコードを既存のセットに加えてもよい。0-99の範囲は予約されている。範囲100−199はSMTP用、200−299はPOP3用、300−399はソケット(Socket)用、400−499はHTTP用、500−599はFTP用である。その他指定されていない範囲は、必要に応じてユーザにより定義されてもよい。
【0115】
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モジュールの抽象型クラス
図21は、HWaccessパッケージを示すパッケージ図である。このパッケージは、監視されるネットワーク装置を特定し、いろいろなネットワークプロトコル(例えば、SNMP、HTTP、FTP)を用いてそのネットワーク装置に関する情報を取得する役割を担う。このパッケージは、パッケージHTTP2302、SNMP2304、FTP2306、及びクラスCHWaccess2300、CAbsProtocol2308、CrecordSet2310を含む。パッケージHTTP2302、SNMP2304、FTP2306は、ネットワーク装置にアクセスしそれらから情報を取得するためのネットワークプロトコルを実装する。例えば、HTTPパッケージ2302は、ネットワーク装置のウェブページにアクセスしそのウェブページから情報を取得するためのHTTPプロトコルを実装する。クラスCHWaccess2300はすべてのプロトコルパッケージを管理し、ネットワーク装置から必要な情報を取得する。クラスCAbsProtocol2308は如何なるプロトコルをも表す抽象型クラスである。このクラスは、CHWaccess2300及びプロトコルパッケージ間のインターフェイスを提供する。クラスCAbsProtocol2308は、図21に示した一組の共通関数をCHWaccess2300に提供する。すべてのプロトコルは、CHWaccess2300に必要な情報を提供する。後に出てくる図面で説明するように、CAbsProtocol2308から導かれるクラスは、適当なプロトコルについて各関数のメソッドを提供する。クラスCRecordSet2310は、マイクロソフトファウンデーションクラスのクラスである。このクラスにより用意される各プロトコルパッケージは、データベースにアクセスして、ネットワーク装置のどのベンダーのどのモデルがサポートされ且つそのネットワーク装置からどんな情報を取得するかという情報を取得することができる。CabsProtcolのクラス仕様についてはアペンディックス1を参照されたい。
【0116】
図21に示されるようなプロトコルパッケージ(HTTP2302,SNMP2304,FTP2306)の各々は或るクラスを含み、そのクラスは装置から情報を取得するためのネットワーク装置へのアクセスを管理する。クラスは抽象クラスCabsProtocol2308から導出され、そのクラスは、ネットワーク装置から情報にアクセスするプロトコルを実行する方法を用意する。抽象クラスはインターフェイス機能だけを提供し、如何なるプロセスも実行しない。抽象クラスから導出されたクラスは、インターフェイス機能のプロセスを実行する方法を提供する。抽象クラスの導出されるクラスは多数存在し、導出された様々なクラスはインターフェイス機能のプロセスを様々に実行できる。例えばCAbsProtocolのインターフェイス機能はObtainStatus()である。図31に示される導出されたクラスCSNMPProtocolはネットワーク装置のステータス情報をSNMPを用いて取得する方法を提供する関数ObtainStatus()を含み、図33に示される導出されたクラスCHTTPProtocolはネットワーク装置のステータス情報をHTTPを用いて取得する方法を提供する関数obtainStatus()を含む。Hwaccessパッケージの設計(デザイン)により、CabsProtocolの導出されたクラスを含む新たなパッケージを追加することで、新たなプロトコルがシステムに追加可能であり、そのクラスは新たなプロトコルを用いてネットワーク装置にアクセスする新たなパッケージを管理する。抽象クラスはシステムの将来的な拡張を可能にする。
【0117】
図22は、ネットワーク装置にアクセスしてそれから情報を取得するためのプロトコルをすべて保持する、図21のHWaccessパッケージで使用されるデータ構造を示している。図22に示したデータ構造は、CAbsProtocol2308へのポインタのベクトル500である。クラスCHWaccess2300は、このデータ構造体を含み、使用する。ベクトル500は、CAbsProtocol2308から導き出されたクラスへのポインタを含んでいるが、CHWaccess2300は、そのベクトルをCAbsProtocol2308へのポインタを含むとみなし、仮想ファンクションコールメカニズムによりCAbsProtocol2308のインターフェイス関数を呼び出す。CHWaccess2300は、実際には、CAbsProtocol2308の派生クラスのインターフェイス関数を呼び出す。例えば、ベクトルの第1のエントリーのCAbsProtocolへのポインタ502は、図31に示される派生クラスCSNMPProtocolへのポインタであり、ベクトルの第2のエントリーのCAbsProtocolへのポインタ504は、図33に示される派生クラスCHTTPProtocolへのポインタであり、ベクトルの第3のエントリーのCAbsProtocolへのポインタ506は、図32に示される派生クラスCFTPProtocolへのポインタでもよい。そこで、CHWaccess2300がベクトルのCabsProtocol2308のインターフェイス関数を呼び出すとき、実際にはCSNMPProtocol、CHTTPProtocol、CFTPProtocolのインターフェイス関数を呼び出している。ベクトル500の抽象型クラスCAbsProtocol2308を使用することにより、どのプロトコルを使用してもネットワーク装置にアクセスして、そのネットワーク装置から情報を取得することができる。抽象型クラスCAbsProtocol2308は、どのプロトコルが使用されているかの詳細を隠蔽する。
【0118】
図23はモニタパッケージのinit()が呼び出された場合のHWaccessパッケージの初期化を行うシーケンス図である。監視される装置から情報へアクセスするために全てのプロトコルオブジェクトが作成及び初期化される。CHWaccessの関数initBegin()の呼出は全てのプロトコルオブジェクト(CAbsProtocolから派生する全て)を作成する。各プロトコルオブジェクトのinitBegin()は、被監視装置のベンダー、モデル及び固有のIDを確認するのに使用されるサポート情報を初期化するために呼び出される。CHWaccessのinitEnd()が呼び出される前に、プロトコルオブジェクト及びCHWaccessの関数が呼び出され、装置にアクセスし、全プロトコルについてその装置のベンダー、モデル及び固有のID情報を取得及び初期化する。CHWaccessのinitEnd()が呼び出される時点までに、各プロトコルオブジェクトは全ての情報(そのプロトコルがサポートする被監視装置のステータス情報を取得するのに必要な情報)を用意する。各プロトコルオブジェクトのinitEnd()は、初期化後に不要なデータ構造全てを削除(クリーンアップ)する。
【0119】
図24はHWaccessパッケージのcanAccessIP()を示すシーケンス図であり、装置が何らかのプロトコルでアクセス可能であるか否かを確認するためのものである。プロトコルオブジェクトの1つがそのIPアドレスに対応する装置にアクセス可能になるまで、CHWaccessは各プロトコルオブジェクトのcanAccessIP()を呼び出す。どのプロトコルオブジェクトも装置にアクセスできなければ、CHWaccessのcanAccessIP()は偽を返し、その装置は将来監視されない。
【0120】
図25A,25Bは2つのシーケンス図を示し、プロトコルオブジェクトから装置の固有のID、モデル及びベンダーを取得し、ベンダー及びモデル情報と共に他のプロトコルオブジェクトを初期化する2つの異なる筋書き(シナリオ)を示す。装置のベンダー及びモデル情報をプロトコルオブジェクトが一旦取得すると、プロトコルオブジェクトはその装置についてのサポート内容を更新し、その装置からステータス情報を取得できるようにする。他のプロトコルオブジェクトは、その装置についてそれらのサポート内容を更新できるように、その装置からステータス情報を取得できるように、装置のベンダー及びモデル情報についての情報を受信することを要する。CHWaccessのobtainUniqueID(),obtainModel()及びobtainVendor()は図25A及び25B双方で呼び出されている。CHWaccessは、装置の固有のID、モデル及びベンダーを取得し且つベンダー及びモデル情報で他のプロトコルオブジェクト全てを初期化するのに必要なプロトコルオブジェクトを同程度に多く使用する。CHWaccessは装置の所与のIPアドレスについてベンダー、モデル及び固有のIDを維持する。図25Aの或るシナリオでは、CHWaccessは、プロトコルオブジェクトのVendorModelUniqueID()を呼出、そのプロトコルオブジェクトから全ての情報を取得する。そして、CHWaccessは、他のプロトコルオブジェクト全てのinitWithVendorModel()を呼び出すことで、ベンダー及びモデル情報と共に他の全てのプロトコルオブジェクトを初期化する。図25Bの別のシナリオでは、CHWaccessは、プロトコルオブジェクトのobtainVendorModelUniqueID()を呼び出し、プロトコルオブジェクトからそのベンダーだけを取得する。CHWaccessは別のプロトコルオブジェクトのobtainModel()及びobtainUniqueID()を呼び出し、モデル及び固有のIDを取得する。そしてCHWaccessは、他の全てのプロトコルオブジェクトのinitWithVendorModel()を呼び出すことで、ベンダー及びモデル情報と共に他の全てのプロトコルオブジェクトを初期化する。
【0121】
図26は、図16のプロトコルパラメータマップ1800をいかに更新して、どのプロトコルを使用してネットワーク装置からステータス情報を取得するかを説明するフローチャートを示す。図26のステップを実行し、プロトコルについてネットワーク装置のベンダー名とモデル名を取得する。ステップ3702において、プロトコルを用いてネットワーク装置にアクセスできるか検査する。マップ1800の情報を用いてそのプロトコルをによりネットワーク装置にアクセスする。そのプロトコルを通じてそのネットワーク装置にアクセスできない場合、ステップ3704において、プロトコルパラメータマップ1800からそのプロトコルを削除し、ステップ3714において、マップ1800の更新を終了する。そのネットワーク装置にそのプロトコルを通じてアクセスできるとき、ステップ3706において、そのネットワーク装置のベンダーをそのプロトコルを用いて取得できるかどうかチェックする。ベンダーを取得できないとき、ステップ3707において、ジェネリック(GENERIC)ベンダーがそのプロトコルでサポートされているかどうかチェックする。プロトコルがジェネリックベンダーをサポートしているとは、プロトコルがその装置のベンダーを取得できないまたはサポートしていないときでさえも、プロトコルがすべての装置に共通のステータス情報(共通ステータス情報)を取得できることを意味する。そのプロトコルによりジェネリックベンダーがサポートされていないとき、ステップ3704において、そのプロトコルはプロトコルパラメータマップ1800から削除され、ステップ3714において、マップ1800の更新が完了する。そのプロトコルがジェネリックベンダーをサポートしているとき、そのプロトコルはプロトコルパラメータマップ1800に残され、ステップ3714において、マップの更新が完了する。ステップ3706においてベンダーを取得できる場合、ステップ3708において、そのネットワーク装置のベンダーがそのプロトコルでサポートされているかどうかチェックする。ベンダーがそのプロトコルによりサポートされていないとき、ステップ3707において、ジェネリックベンダーがそのプロトコルによりサポートされているかどうかチェックする。ステップ3707以降のステップのシーケンスは説明済みである。
【0122】
ベンダーがそのプロトコルでサポートされているとき、ステップ3710において、そのネットワーク装置のモデルがそのプロトコルを用いて取得できるかどうか判断する。モデルを取得できないとき、ステップ3711において、ジェネリックモデルがそのプロトコルでサポートされているかどうかをチェックする。プロトコルがジェネリックモデルをサポートしているとは、プロトコルがその装置のモデルを取得できず、またはサポートしていなくても、そのプロトコルがベンダーのすべての装置に共通なステータス情報(特定ベンダーステータス情報)を取得できることを意味する。ジェネリックモデルをプロトコルがサポートしていないとき、ステップ3704において、そのプロトコルはプロトコルパラメータマップ1800から削除され、ステップ3714において、マップ1800の更新が終了する。ジェネリックモデルがプロトコルによりサポートされているとき、そのプロトコルはプロトコルパラメータマップ1800に残され、ステップ3714においてマップの更新を終了する。ステップ3710でモデルを取得できるとき、ステップ3712において、そのネットワーク装置のモデルがプロトコルによりサポートされているかどうか判断する。そのモデルがプロトコルでサポートされていないとき、ステップ3711で、ジェネリックモデルをそのプロトコルがサポートしているかどうかチェックする。ステップ3711に続くステップのシーケンスについては説明済みである。そのモデルがプロトコルによりサポートされているとき、そのプロトコルを用いてネットワーク装置のステータス情報を取得でき、ステップ3714でプロトコルパラメータマップ1800の更新は終了する。ベンダーとモデルが取得またはサポートされていないとき、そのプロトコルはプロトコルパラメータマップ1800から削除され、ステータス情報の取得には使用されない。プロトコルに応じて図26に示したプロセスにいくつかの変形例(バリエーション)がある。HTTPとFTPはフローチャートの説明通りだが、ベンダーがサポートされているがモデルとジェネリックモデルはサポートされていない場合でさえも、SNMPはサポートされ、ステータス情報を取得するために使用されてもよい。
【0123】
上で説明したように、ベンダーとモデルが取得またはサポートされていなくても、SNMPによりステータス情報をネットワーク装置から取得できる。ネットワーク装置がSNMPをサポートし、SNMPによりアクセスできる限り、そのネットワーク装置の管理情報ベース(MIB)から情報を取得することができる。ステップ3702において、ネットワーク装置がSNMPを通じてアクセスできないとき、ステップ3704で、SNMPプロトコルはプロトコルパラメータマップ1400から削除される。しかし、そのネットワーク装置にSNMPでアクセスできる場合、ベンダーやモデルが取得及びサポートされているかどうかにかかわらず、SNMPプロトコルはプロトコルパラメータマップ1800に残される。SNMPをサポートするネットワーク装置はMIBを提供し、リモートシステムはそのネットワーク装置から情報を常に取得可能である。しかし、ネットワーク装置から取得可能な情報のタイプと数は、ベンダーとモデルが取得およびサポートされるかどうかに依存する。ベンダーとモデルが取得され、かつ知られていれば、SNMPによりネットワーク装置からより多くの情報を取得することができる。ベンダーとモデルを取得できなくても、SNMPはすべての装置が提供できる情報は取得可能である。例えば、システムの説明やシステムが動作している時間等は取得可能である。SNMPは次の3つの条件の下でネットワーク装置から情報を取得するために使用できる:(1)ベンダーとモデルがサポートされている;(2)ベンダーはサポートされているが、モデルはサポートされていない;(3)ベンダーもモデルもサポートされていない。HTTPとFTPは、SNMPのような特徴は有していない。SNMPは、すべてのネットワーク装置が従うことができる標準MIBを有しており、情報を取得できるが、ウェブページとFTPファイルは、ベンダーとモデルが異なるネットワーク装置では異なる。ネットワーク装置が情報を取得するために従うウェブページとFTPファイルの標準はない。
【0124】
図27は、すべてのプロトコルを用いてネットワーク装置に関するステータス情報を取得するプロセスを説明するためのフローチャートである。図25A及び25Bを参照して説明したようにプロトコルオブジェクトが、それでサポートするネットワーク装置のベンダーとモデルに関する情報で初期化され後、そのプロトコルオブジェクトはネットワーク装置からステータス情報を取得するために使用可能である。そのプロトコルオブジェクトは、図18,19及び20のサポートデータベースからの情報を含むデータ構造を用いて、所与のベンダーとモデルについてステータス情報をいかに取得するかに関する情報を含む。図22を参照して説明したCAbsProtocol2308へのポインタのベクトルを使用して、すべてのプロトコルオブジェクトについてステータス情報を取得する。フローチャートのプロセスは、そのベクトルを一回通る。ステップ3122において、CAbsProtocolへのポインタのベクトルからプロトコルオブジェクトを取得する。プロトコルオブジェクトは、ネットワーク装置にアクセスするためのネットワークプロトコル(例えば、SNMP、HTTP、FTP)の1つに対応する。ステップ3124において、ベクトルから取得できるプロトコルオブジェクトがあるかどうか検査する。この検査は、ベクトルの終わりに来たかどうか判断することによりなされる。プロトコルオブジェクトがもう取得できなければ、ステップ3126において、すべてのプロトコルオブジェクトを用いてネットワーク装置からステータス情報を取得し終わっている。ベクトルから取得したプロトコルオブジェクトがあれば、ステップ3128において、そのプロトコルオブジェクトを用いてネットワーク装置のステータス情報を取得する。プロトコルオブジェクトを用いてステータス情報を取得した後、ステップ3122に戻り、他のプロトコルオブジェクトを用いてステータス情報をさらに取得する。
【0125】
図28は、様々なプロトコルで取得するステータス情報を維持するために使用するデータ構造を示している。このデータ構造は、そのステータス情報を取得するためにどのプロトコルが使用されたかに関する情報を維持していない。データ構造はマップ724である。マップ724に対するキー726はinfoTypeである。infoTypeは情報のタイプを表す番号である。マップ724に対する値728はペアである。ペアはストリングと整数よりなる。ペア中のストリングは、infoTypeに対応するネットワーク装置から取得したステータス情報である。ペア中の整数は、プロトコルから取得したステータス情報の重みまたは優先度である。一例として、infoTypeが700であり、それがプリンターカートリッジのブラックトナーのレベルを表す場合、そのペアはストリング「75%」と整数10000を含むかもしれない。ストリング「75%」はカートリッジに75%のトナーが残っていることを示し、整数10000はそのステータス情報の重みまたは優先度である。CSNMPProtocol2402、CHTTPProtocol2502、CFTPProtocol2602は、ネットワーク装置から取得したステータス情報をマップ724に追加する。
【0126】
図29は、図21のプロトコルパッケージのそれぞれで使用されるパッケージ図を示し、ここでXXXはSNMP、HTTP、またはFTPのいずれかである。抽象クラスCAbsProtocolは、装置から情報を取得するインターフェイス関数を提供するが、その情報を取得するメソッドは提供しない。CAbsProtocolから派生するクラスは、装置から情報を取得する新しいプロトコルを追加しやすくする方法を提供する。CXXXProtocolImp1クラスは、XXXパッケージのインターフェイスであり、そのパッケージ内の他のすべてのクラス/パッケージを管理する。CXXXProtocolImp1はCabsProtocolから派生するので、このクラスは与えられたプロトコルで装置から情報を取得する方法を提供する。XXXaccessパッケージは、その装置にアクセスしてその装置から情報を取得するプロトコルを実装する。XXXODBCパッケージは、サポートデータベースからプロトコルサポート情報を取得する。この情報には、そのプロトコルがサポートするベンダー及びモデルの情報、その装置からベンダー、モデル、及び一意的識別子に関する情報をいかにして取得するかの情報、及びその装置からステータス情報をいかに取得するかの情報が含まれる。図31,32は、SNMP及びFTPの場合に具体的にこのパッケージ図を使用したものである。装置からステータス情報を取得するために使用する新しいプロトコルはいずれも、そのパッケージ図のこの構造に従う。そのような新しいプロトコルの1つとしてウェブサービスがある。また、様々なプロトコル実装もパッケージ図のこの構造に従ってよい。
【0127】
図30は、図21のプロトコルパッケージのそれぞれで使用可能な別のパッケージ図を示し、ここでXXXはSNMP、HTTP、またはFTPのいずれかである。このパッケージ図はどのプロトコルにも適用可能であるが、図33に示されるようにHTTPプロトコルを例として説明する。このパッケージ構造は、装置から情報を取得する新たなプロトコルの実装を拡張可能にする。情報を取得するためのプロトコルの既存の実装が情報の新しいフォーマット(例えば、HTTPの別の実装を要する図40及び42に示したウェブページの例)に対してうまく機能しない場合、この拡張が必要である。図29に示したように、このパッケージ図により、抽象クラスCAbsProtocolも使用される。CXXXProtocolクラスはCabsProtocolから派生する。CXXXProtocolは、XXXパッケージに対しインターフェイスを提供し、装置から情報を取得する異なる方法に対応するすべてのクラスを管理する。
【0128】
クラスCXXXProtocolImp1とCXXXProtocolImp2は、同じプロトコルを用いて情報を取得する異なる方法を使用する。CXXXProtocolImp1クラスは、装置から情報を取得するための実装を提供し、パッケージXXXaccess1及びXXXODBC1を用いる。XXXaccess1パッケージは、その装置にアクセスしてその装置から情報を取得するプロトコルを実装する。XXXODBC1パッケージは、データベースからプロトコルサポート情報を取得する。この情報には、そのプロトコルがサポートするベンダー及びモデル、その装置からベンダー、モデル、及び一意的識別子に関する情報をいかにして取得するかの情報、及びその装置からステータス情報をいかに取得するかの情報が含まれる。CXXXProtocolImp2クラスは、CXXXProtocolImp1と同じプロトコルを用いて装置から情報を取得するための他の実装である。CXXXProtocolImp2は、パッケージXXXaccess2とXXXODBC2を使用する。XXXaccess2パッケージは、その装置にアクセスしてその装置から情報を取得するプロトコルを実装する。XXXODBC2パッケージは、XXXODBC1と同様に、データベースからプロトコルサポート情報を取得する。このパッケージの設計により、プロトコルの新しい実装が可能となる。新しい実装が必要なとき、そのプロトコルを用いて装置にアクセスし、サポートデータベースから情報を取得するために、他の実装クラスがサポートパッケージとともに追加される。本発明の実施形態は、新しい実装の新しい装置とともに、すでにサポートされている装置から情報を取得するための既存の実装でも機能する。
【0129】
SNMPとFTPのパッケージ図は、図29のパッケージ構造に従い、図31及び32に示されている。このシステムのHTTPのパッケージ図は、図30のパッケージ構造に従い、図33に示されている。
【0130】
図31は、SNMPパッケージ2304の第1の実施形態を示すパッケージ図である。このパッケージは、SNMPプロトコルによりサポートされたネットワーク装置のベンダーとモデルおよびSNMPプロトコルによりネットワーク装置から取得する情報を決定し、SNMPプロトコルを通じてネットワーク装置にアクセスしてそのネットワーク装置から情報を取得する役割を担う。上記パッケージは、パッケージSNMPaccessとSNMPODBCおよびクラスCSNMPProtocolを含み、図21に示したようにクラスCAbsProtocol2400とCRecordSet2408を使用する。SNMPaccessパッケージは、ネットワーク装置にアクセスしそれから情報を取得するためのSNMPプロトコルを実装する。SNMPODBCパッケージは、データベースにアクセスして、SNMPプロトコルによりサポートされたネットワーク装置のベンダーとモデルと、SNMPプロトコルによりそのネットワーク装置から取得する情報とに関する情報を取得する。CSNMPProtocolクラスは、CAbsProtocolクラス2400から導き出されたクラスである。CSNMPProtocolは、SNMPプロトコルを用いてネットワーク装置から必要な情報を取得する。CSNMPProtocolは、図21に示したようにCAbsProtocol2400のすべてのインターフェイス関数のメソッドを提供する。図31は、CSNMPProtocolが使用するパッケージSNMPaccessとSNMPODBCの関数を示している。SNMPODBCパッケージは、クラスCRecordSetを使用してデータベースから情報を取得する。
【0131】
図32は、FTPパッケージ2306を示すパッケージ図である。このパッケージは、FTPプロトコルによりサポートされたネットワーク装置のベンダー及びモデルと、FTPプロトコルによりそのネットワーク装置から取得する情報とを決定し、FTPプロトコルによりそのネットワーク装置にアクセスして、そのネットワーク装置から情報を取得する役割を担っている。このパッケージは、パッケージFTPaccessとFTPODBCおよびクラスCFTPProtocolを含み、図21を参照して説明したようにクラスCAbsProtocol2600とCRecordSet2608を使用する。FTPaccessパッケージは、ネットワーク装置にアクセスし、そのネットワーク装置から情報を取得するためのFTPプロトコルを実装している。FTPODBCパッケージは、データベースにアクセスし、FTPプロトコルによりサポートされたネットワーク装置のベンダーとモデル、およびFTPプロトコルによりそのネットワーク装置から取得する情報、に関する情報をそのデータベースから取得する。CFTPProtocolクラスは、CAbsProtocolクラス2600から導き出されたクラスである。CFTPProtocolは、FTPプロトコルを用いてネットワーク装置から必要な情報を取得する。CFTPProtocolは、図21を参照して説明したように、CAbsProtocol2600のインターフェイス関数すべてのメソッドを提供する。図32は、CFTPProtocolが使用するパッケージFTPaccessとFTPODBCの関数も示している。FTPODBCパッケージは、クラスCRecordSetを用いてデータベースから情報を取得する。
【0132】
図33は、HTTPパッケージの場合のパッケージ図を示し、図30に示したパッケージ図に基づく。このパッケージは、ウェブページから情報を取得するためのHTTPの2つの実装例を含んでいる。このパッケージは、図21を参照して上で説明したように、抽象クラスCAbsProtocolを使用する。CHTTPProtocolクラスはCAbsProtocolから派生する。CHTTPProtocolは、HTTPパッケージのためのインターフェイスであり、装置から情報を取得するHTTPの2つの異なる実装例に対応するパッケージを管理する。tagHTTPImplementationパッケージは、装置のウェブページのタグから情報を取得するためのHTTPの実行手段である。tagHTTPImplementationパッケージは、関連する米国特許出願第11/032,039の実施例として説明されており、そのパッケージは第2HTTPImplementationと呼ばれる。TagHTTPImplementationパッケージはTagHTTPODBCパッケージを用いて、サポートされる装置及びその装置から情報を如何にして取得するかについてのサポート情報をデータベースから取得する。ScriptHTTPImplementationパッケージは、図40及び42に示したような装置のウェブページのジャバスクリプトから情報を取得するためのHTTPの他の実行手段を提供する。ScriptHTTPImplementationパッケージは、ScriptHTTPODBCパッケージを用いて、サポートされる装置及びその装置から情報をいかに取得するかに関するサポート情報をデータベースから取得する。ScriptHTTPIMplementationパッケージによるHTTPの第2の実行手段は、情報がウェブページのジャバスクリプト中に有る場合に、装置から情報を取得する問題を取り扱う。HTTP_HTMLToolは1つのパッケージとして示されているが、それは2つの実装パッケージにより使用されるオブジェクトを含むネームスペースである。ネームスペースを用いることにより、それが含むオブジェクトをHTTPパッケージ内で使用できる。これにより、HTTPのすべてのクラス及びパッケージがネームスペースのオブジェクトを共有することができる。HTTPパッケージは、HTTPが装置に関する情報を取得するためのインターフェイスを提供する抽象クラスCAbsHTTPImplementationを含む。アペンディックス2はCAbsHTTPImplementationのクラス仕様を提供する。CAbsHTTPImplementationから派生したクラスは、その情報を実際に取得する方法を提供する。TagHTTPImplementation及びScriptHTTPIMplementationパッケージは、情報を取得する方法を規定するCAbsHTTPImplementationから派生したクラスを含む。このHTTPパッケージの設計により、将来の拡張が可能である。現在の実行手段が装置のウェブページから情報を取得できなかった場合、或る実行手段とODBCパッケージを追加することにより、新しい実行手段のデザインを追加することができる。
【0133】
図34では、CHTTPProtocolクラスのデータ構造m_ImplementationMapが同じエンティティ内に示される。マップ構造m_ImplementationMapのキーは、CAbsHTTPImplementationクラスへのポインタである。キーは抽象クラスCAbsHTTPImplementationへのポインタであるが、そのポインタは実際にはCAbsHTTPImplementationの派生クラスを指す。図34は、CAbsHTTPImplementationの2つの派生クラスであるCFirstHTTPImplementationとCSecondHTTPImplementationに対応するマップのサンプルエントリーを示す。マップの値は、キーで指し示された実装クラスが使用されるかどうかを示すブール値である。このマップは、システムがスタートする際、CHTTPProtocolのコンストラクタが呼び出されるときに初期化される。このマップは、情報を取得するHTTPの様々な全ての実現手段で占められ、そのブール値は偽に設定される。どの装置を監視するかを判断するディスカバリープロセス中に(初期化中に)、どの実装が必要かを判断する。装置から情報取得するために或る実行手段が必要な場合、そのブール値は真に設定される。ディスカバリープロセスが完了した後、実行手段に対応するブール値が偽であったならば その実行手段はマップから削除される。
【0134】
図35では、サンプルエントリーと共に、CHTTPProtocolクラスのマップ構造m_VendorModelSupportMapを示す図である。このマップを用いて、被監視装置の特定のベンダー及びモデルの情報を取得するために、HTTPのどの実行手段を使用するかを判断する。そのマップのキーは、ベンダー及びモデル名の連結を含むストリングである。そのキーに対応する値は、抽象クラスCAbsHTTPImplementationに対するポインタのベクトルである。ポインターは、実際にはCAbsHTTPImplementationの派生クラスの1つを指し示す。ベクトルは、或るベンダ及びモデルに関するステータス情報を取得するためのHTTPの全ての実行手段を含む。マップm_VendorModelSupportMapは、システムのディスカバリープロセスの間に(初期化の際)占められる。
【0135】
図36A,36B,36Cのシーケンス図はinitWithVendor(),initWithModel()及びinitWithVendorModel()のCHTTPProtocolの関数のプロセスを示す。これらの関数はHTTPプロトコルの実行手段全てを初期化し、特定のベンダー、特定のモデル又は特定のベンダー及びモデルに関する装置のステータス(状態)を取得するために、各実行手段が情報を有するようにする。これらの関数は、SNMP又はFTPのような別のプロトコルがその装置のベンダー及び/又はモデルを発見したときはいつでも及びHTTPプロトコルオブジェクトが装置についてのHTTPサポート内容の存否を確認するためにベンダー及び/又はモデルで初期化されることを要するときはいつでも呼び出される。
【0136】
図37のフローチャートはCHTTPProtocolの関数obtainStatus()のプロセスを示し、マップm_VendorModelSupportMapを利用する。このプロセスは、関数への入力がステータス情報を取得するのに適切な情報を含んでいるか否かを確認する。含んでなければこの関数は偽を返す。関数の入力が適切な情報を含んでいたならば、このプロセスはベンダー及びモデルに関するHTTPサポートの有無を確認する。無ければ関数は偽を返す。ベンダー及びモデルがHTTPでサポートされていたならば、そのベンダー及びモデルをサポートするHTTPの全ての実行手段は、装置のウェブページからステータス情報を取得する。HTTPの全ての実行手段が装置から何らかのステータス情報を得ることに失敗すると、その関数は偽を返す。そうでなければ関数は真を返す。
【0137】
図38は、TagHTTPImplementationパッケージに関するパッケージ図である。このパッケージは、装置のウェブページのタグから情報を取得するためにHTTPを実装する。クラスCTagHTTPImplementationは、このパッケージのインターフェイスであり、装置のウェブページから情報を取得するメソッドを実装するように他のクラス及びパッケージを管理する。CTagHTTPImplementationは、CAbsHTTPImplementationから派生したクラスである。TagHTTPODBCパッケージとHTTP_HTMLToolパッケージは、図33を参照しながら既に説明された。クラスCTagHTMLProcessorは、装置のウェブページを処理して、所望の情報を取得する。このクラスは、特定のフォーマットのウェブページのテキストを処理して所望の情報を取得する方法を含む。より具体的には、このクラスはウェブページを処理し、そのウェブページでは、情報を発見するためのキーワードが複数の箇所に登場する。
【0138】
図39は、CTagHTTPImplementationのマップ構造m_VendorModelWebInfoMapを示す図である。このマップ構造は、装置のウェブページからその装置のステータス情報を取得するために、HTTPのタグ実行手段により使用される。そのマップのキーは、装置のベンダー名のストリングである。そのマップの値は、与えられたモデルの装置のウェブページからステータス情報を取得するために用いられる情報を含む他のマップである。内部マップのキーは、装置のモデル名のストリングであり、その値は、ウェブページに関する情報とウェブページからステータス情報をいかに取得するかに関する情報とを含むベクトル構造SWebPageInfoである。構造SwebPageInfoは、ウェブページから或る一つの情報を取得するために必要なすべての情報を提供する構造SPreconKeyValueInfoを含む。マップ構造は、HTTPのタグ実行手段用のサポートデータベースのテーブルからの情報で占められる。CTagHTTPImplementationはTagHTTPODBCパッケージを用いてデータベースのテーブルから情報を取得する。
【0139】
図40はシステムがステータス情報を抽出するための装置のウェブページ例である。このウェブページサンプルは装置のステータス情報を含むジャバスクリプトを使用する。
【0140】
図41では、HTMLソースファイルの一部が示され、このファイルの結果ウェブページは図40に示されるようにブラウザ上で表示される。ファイルはHTMLタグ及びジャバスクリプト双方を示す。様々なトナーレベルについての情報はジャバスクリプトで発見される。
【0141】
図42はシステムがステータス情報を抽出するための装置の別のウェブページ例である。このウェブページサンプルも装置のステータス情報を含むジャバスクリプトを使用する。
【0142】
図43では、HTMLソースファイルの一部が示され、このファイルの結果ウェブページは図42に示されるようにブラウザ上で表示される。ファイルはHTMLタグ及びジャバスクリプト双方を示す。黒色のトナーレベルについての情報はジャバスクリプトで発見される。
【0143】
図44ではScriptHTTPImplementationパッケージ用のパッケージ図が示される。このパッケージはHTTPを実装し、図40,42に示されるような装置のウェブページのジャバスクリプトから情報を取得する。クラスCScriptHTTPImplementationは、このパッケージのインターフェイスであり、他のクラス及びパッケージを管理し、装置のウェブページのジャバスクリプトから情報を取得する方法を実行する。CScriptHTTPImplementationはCAbsHTTPImplementationから導出されるクラスである。アペンディックス3はCScriptHTTPImplementationのクラス仕様を示す。ScriptHTTPODBCパッケージ及びHTTP_HTMLToolパッケージは図33に関連して説明済みである。クラスScriptHTMLProcessorは装置のウェブページを処理し、装置のウェブページからジャバスクリプトのみを取得する。クラスCabsScriptProcessはステータス情報を取得するためにジャバスクリプトを処理する抽象クラスである。アペンディックス4はCabsScriptProcessのクラス仕様を示す。クラスCAbsScriptProcessは一組の共通関数を用意し、ウェブページのタグから情報を取得するため及びウェブページのジャバスクリプトから情報を取得するために使用されるデータ構造を初期化する。CabsScriptProcessから導出されたクラスは関数各々についての方法をもたらす。本方法は装置のウェブページ、モデル及びベンダーに依存する。様々な派生クラスがインターフェイス関数の処理を様々に処理できるように、抽象クラスの派生クラスは多数存在してよい。抽象クラスは新たな装置が加えられることを許可し、その情報はウェブページのジャバスクリプト中に存在する。
【0144】
図45ではCScriptHTTPImplementationのマップ構造m_VendorModuleInfoMapが示され、そのマップ構造はHTTPのスクリプト実効手段により使用され、装置のウェブページのジャバスクリプトからその装置のモデル名を取得する。マップのキーは装置のベンダー名のストリングである。マップの値は構造SModuleInfoのベクトルである。構造SModuleInfoは、装置のベンダー名のストリングと、モデル名を含む装置のウェブページのストリングと、(装置のモデル名を取得するためにウェブページ中のジャバスクリプトを処理する)抽象クラスCAbsScriptProcessに対するポインタとを含む。ポインタはCAbsScriptProcessの派生クラスを指す。
【0145】
図46では、CScriptHTTPImplementationのマップ構造m_UniqueIDInforMapが示され、このマップ構造は、装置のウェブページのジャバスクリプトからその装置固有の識別子を取得するために、HTTPのスクリプト実行手段により使用される。固有の識別子は装置を確認する文字列(ストリング)であり、例えばシリアル番号やMACアドレスである。マップに対するキーは、装置のベンダー及びモデル名の連結であるストリングである。その値は構造SUniqueIDInfoである。構造SUniqueIDInfoは、装置のベンダー名のストリングと、装置のモデル名のストリングと、固有の識別子を含む装置のウェブページのストリングと、(装置固有の識別子を取得するためにウェブページ中のジャバスクリプトを処理する)抽象クラスCAbsScriptProcessに対するポインタとを含む。ポインタはCAbsScriptProcessの派生クラスを指す。
【0146】
図47では、CScriptHTTPImplementationのマップ構造m_StatusMapが示され、このマップ構造は、装置のウェブページのジャバスクリプトからその装置固有の識別子を取得するために、HTTPのスクリプト実行手段により使用される。マップのキーは或るストリングであり、そのストリングは装置のベンダー及びモデル名の連結である。その値は構造SwebPageStatusのベクトルである。構造SWebPageStatusは、ウェブページのストリングと、ウェブページから取得可能なステータス情報及びウエイト(優先度)のマップ構造と、(装置のステータス情報を取得するためにウェブページ中のジャバスクリプトを処理する)抽象クラスCAbsScriptProcessに対するポインタとを含む。ポインタはCAbsScriptProcessの派生クラスを指す。
【0147】
3つのマップ構造は例えばディスカバリープロセスのようなシステムの初期化中に占められる。CAbsScriptProcessの派生クラス全てが作成され、システムの初期化中に初期化される。派生クラスはウェブページのジャバスクリプトから所望の情報を抽出するのに必要な情報と共に初期化される。システムの初期化後に、装置のウェブページからステータス情報を周期的に取得するためにマップ構造m_StatusMapのみが必要とされる。従って、初期化後に、構造m_VendorModelInfoMap及びm_UniqueIDInfoMapはもはや必要ないので削除(クリーンアップ)される。
【0148】
図48では、ScriptHTTPImplementationパッケージによるステータス情報取得手順を示すフローチャートが示される。第1ステップはIPアドレスが空(empty)であるか否かを検査する。IPアドレスが空でなければ本プロセスは偽を返す。そうでなければ本方法は装置のベンダー及びモデル名がHTTPのスクリプト実行手段によりサポートされているか否かを確認する。ベンダー及びモデルがサポートされていなかったならば、本プロセスは偽を返す。そうでなければ本方法はHTTPにより装置のウェブページへのアクセスに要する遅延時間を設定する。次に装置とHTTPセッションが始められる。HTTPセッションが開始できなかったならば、本プロセスは偽を返す。そうでなければ本プロセスは或る装置のウェブページ全てを取得し、そのウェブページのジャバスクリプト中にはステータス情報が含まれている。ウェブページの各々について、本プロセスは以下に説明される手順を用いてジャバスクリプトからステータス情報を取得する。ウェブページからステータス情報を取得した後に、本プロセスはその装置とのHTTPセッションを終了する。HTTPのスクリプト実行手段によりステータス情報がその装置から一切取得されなくなったならば、本プロセスは偽を返す。そうでなければ本プロセスは真を返す。
【0149】
ウェブページのジャバスクリプトからステータス情報を取得する際に、本プロセスは、どの情報が取得されることを要するかを確認する。これは、他のプロトコルにより又は他のHTTPの実行により既に取得済みのステータス情報を検査することでなされる。ウェブページから取得されるべきステータス情報が取得されていない場合或いは取得されているが低い重み(優先度)であった場合、本プロセスはステータス情報を取得する。全てのステータス情報が既に取得済みであったならば、ウェブページからステータス情報を取得するプロセスは完了する。そうでなければ本プロセスはステータス情報を取得するためにスクリプトプロセッサを初期化する。初期化はCAbsScriptProcessのstart()関数を呼び出すことを含む。そしてこのプロセスはスクリプトプロセッサを用いてステータス情報を取得する。ステータス情報の取得は、CAbsScriptProcessのtransformData()関数を呼び出すことを含む。図49はtransformData()関数を用いてステータス情報を取得する様子の詳細を示す。スクリプトプロセッサを用いてステータス情報を取得すると、ウェブページからステータス情報を取得するプロセスは完了する。
【0150】
図49では、ScriptHTTPImplementationパッケージのスクリプトからステータス情報を取得するプロセスを説明するためのフローチャートが示される。第1に本プロセスはHTTPセッションを用いてウェブページへのアクセスを試みる。ウェブページにアクセスできなかったならば本プロセスは偽を返す。そうでなければ本プロセスはウェブページからライン(line)を取得する。ウェブページからラインが取得されると、本プロセスはそのラインがジャバスクリプトの一部であるか否かを確認する。一部でなければ、本システムはウェブページから次のラインを取得する。そうでなければ、本プロセスはスクリプトプロセッサを用いてそのジャバスクリプトからステータス情報を取得する。スクリプトプロセッサがジャバスクリプトのラインからステータス情報を取得しなかったならば、本システムはウェブページから次のラインを取得する。そうでなければ本プロセスはスクリプトプロセッサから取得したステータス情報が必要か否かを確認する(スクリプトプロセッサで取得されたもの以上のウエイトを有するステータス情報が、他のプロトコルにより又はHTTPの他の実行手段により既に取得済みであったならば、ステータス情報は不要かもしれない。)。ステータス情報が必要とされるならば、本プロセスはそのステータス情報を格納する。ステータス情報は図28に示されるマップ構造に位置づけられる。ステータス情報を格納した後に又はステータス情報が不要であった場合に、本プロセスは、より多くのステータス情報がウェブページのジャバスクリプトから取得される必要の有無を確認する。より多くのステータス情報が取得されなければならない場合、システムはウェブページから次のラインを取得する。取得されるべき更なるステータス情報が無かった場合又はウェブページから取得可能な更なるラインが無かった場合、本プロセスは、ジャバスクリプトから取得される何らかのステータス情報の有無を確認する。ステータス情報が一切取得されないならば、本プロセスは偽を返す。そうでなければ本プロセスは真を返す。
【0151】
図50はScriptHTTPODBCパッケージを示すクラス図である。このパッケージはサポートデータベースとインターフェイスをとり、装置のウェブページのジャバスクリプトからモデル名、固有の識別子及びステータス情報を抽出するのに使用される情報を取得する。CScriptHTTPODBCクラスは、このパッケージに関するインターフェイスであり、他のクラスを管理し、サポートデータベースのテーブルから適切な情報を取得する。アペンディックス5はCScriptHTTPPODBCのクラス仕様を示す。CXXXDataクラス及びその対応するCXXXTableクラスは、テーブルから情報を取得するための、図19に示されるサポートデータベースのXXXテーブルへのアクセス権を与える。このパッケージは、様々な装置のウェブページのジャバスクリプトを処理するのに使用されるCAbsScriptProcessの全ての派生クラス、CYYYScriptProcessを含む。各派生クラスは、ステータス情報を取得するのに使用されるデータ構造を設定し(putParameters()関数)、ステータス情報を取得するためにプロセスを初期化し(start()関数)、ジャバスクリプトからステータス情報を取得し(transformData()関数)、及びステータス情報を取得するプロセスを終了する(end()関数)ための方法を用意する。HTTPのスクリプト実行手段によりサポートされる新たな装置の追加は、その装置のCAbsScriptProcessから導出される新たなクラスの追加を要する。CScriptHTTPODBCの関数setupCreateFunctionMap()は、CAbsScriptProcessの派生クラス全てについてデータ構造を作成及び設定する。
【0152】
図51に示される状態図は、情報を取得するためにCAbsScriptProcessの派生クラスにより装置のウェブページのジャバスクリプトを処理するためのものである。この状態図はCAbsScriptProcessのtransformData()関数に対応する。アペンディックス4はCAbsScriptProcessのクラス仕様を示す。CAbsScriptProcessで規定される1つの
構造及び2つのenum(列挙)がある。enumEReturnはtransformData()関数によって使用され、装置のウェブページのジャバスクリプトから情報を取得する際に関数の結果を返す。enumEStateはtransformData()関数によって使用され、ジャバスクリプトから情報を取得するプロセスの状態を確認する。状態図中のほとんどの状態はenumEStateに関連する。構造SinfoStructureはウェブページのジャバスクリプトから情報を取得するのに使用される。CAbsScriptProcessの派生クラスはenums及び構造の利用の際に変化する。或る派生クラスはtransformData()でenumEReturnの2値のみを利用するが、別の派生クラスは4つ全てを使用するかもしれない。或る派生クラスはenumEStateの2値のみを用いて所望の情報を取得するが、別の派生クラスは3つだけ又は4つを使用するかもしれない。或る派生クラスは、ウェブページから情報を取得するためのtypeSInfoStructureである帰属メンバを含み、別の派生クラスはウェブページから複数の情報を取得するためのSinfoStructureのベクトルである帰属メンバを含むかもしれない。
【0153】
状態図では、enumEStateの値に対応する5つの状態全てが示されているが、ジャバスクリプトから所望の情報を取得する際に全ての装置について全てが使用されなくてもよい。状態数や、状態間の遷移に使用される構造SinfoStructureにおけるm_sParの数は、ベクトル、モデル及びウェブページに依存する。状態図は状態eStartから始まる。このプロセスは、structSInfoStructureのストリングm_sPar1がジャバスクリプトのライン中に発見されるまで、このeStart状態のままである。ベンダー、モデル及びウェブページに対応するプロセスが、データの抽出前にm_sPar1を発見することだけを必要としていたならば、次の状態は抽出状態であり、ジャバスクリプトのラインから情報が抽出される。こうしてこのプロセスは完了する。そうでなければ次の状態はePrecon1である。このプロセスは、structSInfoStructureのストリングm_sPar2がジャバスクリプトのライン中に発見されるまで、ePrecon1のままである。本プロセスが、データ抽出前に、発見されるべきm_sPar2を要するベンダー、モデル及びウェブページに関連するならば、次の状態は抽出状態であり、ジャバスクリプトのラインから情報が抽出される。かくてこのプロセスは完了する。そうでなければ次の状態はePrecon2である。状態ePrecon2及びePrecon3の遷移は状態ePrecon1のものと同様であるが、structSInfoStructureのストリングm_sPar3及びm_sPar4が生じる状態遷移を引き起こす点が異なる。プロセスが状態ePrecon5にあると、そのプロセスは、構造SInfoStructureのm_sPar5がジャバスクリプトのライン中に発見されるまでその状態にとどまる。次の状態は抽出状態であり、このプロセスは終了する。ジャバスクリプトから情報を得る際に、5つのストリングm_sPar1乃至m_sPar5は、所望の情報を取得するのに必要なほとんどのストリングであるべきである。
【0154】
図52はCAbsScriptProcessの2つの派生クラスで使用されるデータ構造サンプルを示す。CAbsScriptProcess、CSamsungStatusCLP550ScriptProcessの第1派生クラスは、structSInfoStructureのベクトルを用いて、装置のウェブページのジャバスクリプトからカラートナーレベルを得る。トナーレベルの各々はステータス情報を取得するために3つのストリングm_sPar1ないしm_sPar3を要する。従って情報を取得するためのプロセスは、ステータス情報がジャバスクリプトから抽出される前に、3つの状態を介して進行する−eStart、ePrecon1及びePrecon2。第2の派生クラス(CsamsungStatusML2550ScriptProcess)は、structSInfoStructureをそれ自身で使用し、装置のウェブページのジャバスクリプトから黒色のトナーレベルを取得する。黒色のトナーレベルを得るためにトナーレベルは2つのストリングm_sPar1及びm_sPar2を要する。従ってその情報を取得するためのプロセスは、ブラックトナーレベルがジャバスクリプトから抽出される前に、2つの段階を通じて進行する−eStart及びePrecon1。アペンディクス6,7はCSamsungStatusCLP550ScriptProcess及びCsamsungStatusML2550ScriptProcessのクラス仕様をそれぞれ示す。
【0155】
図53では、ウェブページのサンプルを使用して、CAbsScriptProcessの派生クラスがジャバスクリプトを含む装置のウェブページをどのように処理するかを示す。structSInfoStructureのサンプル値はウェブページの下に示されている。この例では取得されているステータス情報は、シアン色のトナーレベルである。structSInfoStructureの3つのストリング(パラメータ)m_sPar1、m_sPar2及びm_sPar3がステータス情報を見つけるのに必要とされる。structSInfoStructureのEstate m_Stateは遭遇したストリングを追跡し続けるのに使用される。structSInfoStructureの区切り符号(デリミタ)m_sDelimiter及びstructSInfoStructureの位置m_nInLinePositionは、ステータス情報を含むラインからステータス情報を抽出するのに必要とされる。ウェブページのラインは、全てのステータス情報が取得されるまで或いはウェブページの最後に遭遇するまで読み取られる。ジャバスクリプトの一部であるラインのみが、CAbsScriptProcessのtransformData()に伝送される。structSInfoStructureのm_Stateの初期値はeStartである。ジャバスクリプトのラインはCAbsScriptProcessのtransformData()に伝送される。ライン“関数RemainTonerOption()”がそこに伝送されると、structSInfoStructureのm_sPar1がライン中で発見される。structSInfoStructureのm_StateはePrecon1である。ジャバスクリプトの更なるラインはm_Stateに対する変更なしに伝送される。ライン“else”がそこに伝送されると、structSInfoStructureのm_sPar2がライン中で発見される。structSInfoStructureのm_StateはePrecon2である。ジャバスクリプトの更なるラインは、ライン“varCyanTonerPre=100”がそこに伝送されるまで、m_Stateに対する変更なしに伝送される。structSInfoStructureのm_sPar3はライン中で発見され、structSInfoStructureのm_sDelimiter及びm_nInLinePositionの値を用いてそのラインからステータス情報が抽出される。M_sDelimiterはステータス情報を区切るキャラクタであり、m_nInLinePositionはステータス情報に遭遇する前にどの程度多くのデリミタが有るかを決定する数である。ステータス情報が最初のデリミタより先にある場合には、m_nInLinePositionは0である。シアントナーレベルについてジャバスクリプトから「100」の値が得られると、更なるウェブページは取得されることを要しない。
【0156】
図54はCAbsScriptProcessの派生クラスのプロセスを示すフローチャートであり、装置のウェブページから情報を抽出するためのものである。このフローチャートは図53で説明されたようなシアントナーレベルを抽出するのに使用されるサンプルプロセスである。このプロセスはCAbsScriptProcessのtransformData()に対応する。CAbsScriptProcessの派生クラスのtransformData()の方法はベンダー及びモデルによって変化するが、ステータス情報を見出すためにステータスを使うことは、ステータス情報を取得するための共通の手法である。
【0157】
図55Aはウェブページから情報を抽出するのに使用される構造structSInfoStructureのメンバを示す。この構造は、アペンディックス4で示されるCAbsScriptProcessで規定され、CAbsScriptProcessの全ての派生クラスで使用可能である。ストリングm_sParXXXをCAbsScriptProcessの派生クラスで使用し、所望の情報を含むウェブページのラインを見出す。所望の情報を見出すのに全てのストリングが必要なわけではなく、5つのストリングm_sParXXXを利用可能にすることで、所望の情報を見出すのに5つ全てのストリングを要するかもしれない将来的な装置に備えた柔軟性を可能にする。ストリングm_sDelimiter及び整数m_nInLinePositionは、情報を含むウェブページのラインから所望の情報を抽出するのに使用される。infoTypeのm_nENUMは、シアントナーレベルを表現するeCyanや、装置で印刷されるページ総数を表現するePrtLifeCountのように、抽出されるべき情報のタイプを表現する数である。EStateのm_Stateは、ウェブページから所望の状態を突き止めるので、構造の状態を追跡し続けるのに使用される。それは開始状態でeStateに初期化され、各ストリングm_sParXXXに出会うと状態を変える。
【0158】
CAbsScriptProcess、その派生クラス及びその構造SInfoStructureの説明及び利用法に関し、ウェブページのスクリプトからデータを取得することに焦点が当てられてきたが、それらの構造及び方法の有用性はウェブページのタグからデータを抽出することに適用されてもよく、その場合m_sParXXXはデータを取得するための或るタグに対応する。
【0159】
図55Bは図55Aの構造SinfoStructureのメンバのサンプル値を示す。この構造は装置のシアントナーレベル(m_nENUM=eCyan)をそのウェブページから見出すのに使用される。m_sPar1ないしm_sPar3の3つのストリングのみが所望の情報を見出すのに必要とされる。m_sPar4及びm_sPar5の残りの2つはエンプティであり、使用されない。M_sDelimiterのキャラクタ‘=’及び‘,’並びにm_nInLinePositionの1を用いて、所望の情報が存在するラインからそれを抽出する。
【0160】
ネットワークに接続された監視が必要な少数の装置について本発明を示したが、当然のことながら、本発明の精神と範囲から逸脱することなく、ネットワークに接続される装置の数はいくつでもよい。また、本発明は、いろいろな装置を監視かつ制御する必要があるような家庭環境に適用してもよい。
【0161】
本発明の実施形態によれば、マルチベンダー環境において、いろいろな装置の監視が可能となり、特定のプライベートなマネージメント情報ベース(MIB)情報を持たなくても、詳細な情報を検索し、ユーザが理解しやすく扱いやすい方法で表示することを促す。さらに、読み出した情報は、SMTP、FTP、ウェブサービス等のいろいろな方法を用いて再配信することができる。
【0162】
コンピュータ技術の当業者には明らかであるように、本発明のコントローラは、本発明の教示によりプログラムされた、通常の汎用デジタルコンピュータまたはマイクロプロセッサとしてもよい。本開示の教示に基づく知識を備えたプログラマーは容易に適当なソフトウェアのコーディングをでき、ソフトウェア技術の当業者には明らかである。本発明は、特定用途用集積回路や従来のコンポーネント回路を適当に配線して相互接続することによっても実施することができ、これは当該分野の当業者には明らかである。
【0163】
本発明はコンピュータをプログラムし本発明のプロセスを実行させる命令を含むコンピュータプログラム、およびそのコンピュータプログラムが格納された記録媒体を含む。記録媒体には、フロッピディスク、光ディスク、CD-ROM、光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気または光カード、その他の電子的命令を格納するのに好適ないかなる媒体も含む。
【0164】
上記の教示を考慮して本発明を様々に修正したり、バリエーションを考えたりすることができる。従って、当然のことながら、添付したクレームの範囲内で、ここに具体的に説明したものとは別の実施形態により本発明を実施することができる。
【0165】
以下に、付録(アペンディックス)を示す。








































【図面の簡単な説明】
【0166】
【図1】インターネットを介してコンピュータおよびデータベースのネットワークに接続された、ネットワーク化されたビジネスオフィス装置群を示す図である。
【図2】デジタル画像形成装置の構成を示す図である。
【図3】図2に示したデジタル画像形成装置の電子的構成を示す図である。
【図4】図3に示した複数ポート通信インターフェイスの詳細を示す図である。
【図5】ビジネスオフィス装置がネットワークに直接接続された、またはネットワークに接続されたコンピュータに接続された別のシステム構成を示す図である。
【図6A】電子メールを用いたアプリケーション部への及びそこからの情報の流れを示すブロック図である。
【図6B】電子メールを用いた通信の別の方法を示す図(アプリケーション部に接続されたコンピュータはメッセージ転送エージェント(MTA)としても機能する)である。
【図6C】電子メールを用いた通信の別の方法を示す図(アプリケーション部は電子メールを交換するメッセージ転送エージェントを含む)である。
【図6D】メールサーバがPOP3サーバとして機能して機器/装置のメールを受信し、シンプルメール転送プロトコル(SMTP)サーバとして機能してその機器/装置のメールを送信する、電子メールを用いた通信の別の方法を示す図である。
【図7】インターネットを通してメッセージを送信する別の方法を示す図である。
【図8】機器/装置に接続し、電子メールメッセージを通信するために使用するコンピュータの一例を示す図である。
【図9】本発明の一実施形態によるシステム全体を示す概略図である。
【図10】本発明の一実施形態による、データの監視に使用するモジュールとそのインターフェイス機能を示す図である。
【図11】監視モジュールの詳細とサブモジュール間の呼び出し機能を示す図である。
【図12】図10に示した監視モジュールのinit関数のシーケンスを示す図である。
【図13】図11に示した、監視マネージャにより監視される装置の状態を判断する状態監視機能のシーケンスの一例を示す図である。
【図14】図12に示した、CDeviceFactoryにより生成され監視マネージャにより使用される、装置を示すベクトルを示す図である。
【図15】本発明の一実施形態による、被監視装置へのアクセスに必要なパラメータ値を格納するために使用するSParameterデータ構造を示す図である。
【図16】本発明の一実施形態による、被監視装置へのアクセスに必要なパラメータ値を格納するために使用するマップ構造を示す図である。
【図17】本発明の一実施形態で使用する監視データベースの構成を示す図である。
【図18】本発明の一実施形態による通信プロトコルにより構成されたサポートデータベースの構成を示す図である。
【図19】本発明の一実施形態によるHTTPプロトコル用のサポートデータベースの構成を示す図である。
【図20】本発明の一実施形態による通信プロトコルにより構成されたサポートデータベースの構成を示す図である。
【図21】本発明の一実施形態によるHWaccessモジュールのクラス構造を示す図である。
【図22】本発明の一実施形態による、被監視装置にアクセスしその被監視装置からステータス情報を取得するために必要な情報を維持する、図21のHWaccessモジュールで使用されるデータ構造を示す図である。
【図23】関しパッケージのinit関数が呼び出された場合のHwaccessパッケージの初期化シーケンス図である。
【図24】装置が何らかのプロトコルでアクセス可能か否かを判別するために、HWaccessパッケージのcanAccessIP()のシーケンス図である。
【図25A】HwaccessパッケージのobtainVendor(),obtainModel()及びobtainUniqueID()関数のシーケンス図である。
【図25B】HwaccessパッケージのobtainVendor(),obtainModel()及びobtainUniqueID()関数のシーケンス図である。
【図26】本発明の一実施形態による、どのプロトコルを使用して被監視装置のステータス情報を取得するかを判断するために、被監視装置を表すソフトウェアオブジェクトで使用されるデータ構造がどのように更新されるかを示すフローチャートである。
【図27】本発明の一実施形態による、すべての通信プロトコルを用いて被監視装置からステータス情報を取得する過程を示すフローチャートである。
【図28】本発明の一実施形態による、各プロトコルについて、ある特定のベンダーとモデルに関する被監視装置のステータス情報を格納及び維持するために使用するデータ構造を示す図である。
【図29】図21の各プロトコルパッケージを示すパッケージ図(「XXX」はHTTP、FTP、SNMP等である)を示す。
【図30】図21の各プロトコルパッケージを示す別のパッケージ図(「XXX」はHTTP、FTP、SNMP等である)を示す。
【図31】SNMPパッケージのクラス構造を示す図である。
【図32】FTPパッケージのパッケージ図を示すである。
【図33】スクリプト中のウェブページ及びタグからの情報抽出をサポートするHTTPパッケージのパッケージ図である。
【図34】CHTTPProtocolクラスのデータ構造m_ImplementationMapを示す図である。
【図35】CHTTPProtocolクラスのデータ構造m_VendorModelSupportMapを示す図である。
【図36A】CHTTPProtocolのinitWithVendor()関数のシーケンス図を示す。
【図36B】CHTTPProtocolのinitWithModel()関数のシーケンス図を示す。
【図36C】CHTTPProtocolのinitWithVendorModel()関数のシーケンス図を示す。
【図37】HTTPを介して装置のステータス情報を取得するフローチャートである。
【図38】装置のウェブページのタグから情報を抽出するためのTagHTTPImplementationパッケージのパッケージ図を示す。
【図39】CScriptHTTPImplementationクラスのマップ構造m_VendorModelWebInfoMapを示す図である。
【図40】システムがステータス情報を抽出するための装置のウェブページ例を示す図である。
【図41】図40のウェブページの表示を生成するジャバスクリプト及びHTMLタグの一部を示す図である。
【図42】本発明のシステムがステータス情報を抽出するための装置の別のウェブページ例を示す図である。
【図43】図42のウェブページの表示を生成するジャバスクリプト及びHTMLタグの一部を示す図である。
【図44】装置のウェブページのスクリプトから情報を抽出する、ScriptHTTPImplementationパッケージのパッケージ図を示す。
【図45】モデル名、固有のID及びステータス情報を装置のウェブページから取得するのに使用されるCScriptHTTPImplementationクラスのデータ構造を示す図である。
【図46】モデル名、固有のID及びステータス情報を装置のウェブページから取得するのに使用されるCScriptHTTPImplementationクラスのデータ構造を示す図である。
【図47】モデル名、固有のID及びステータス情報を装置のウェブページから取得するのに使用されるCScriptHTTPImplementationクラスのデータ構造を示す図である。
【図48】ScriptHTTPImplementationによりステータス情報を取得するプロセスを説明するフローチャートである。
【図49】ScriptHTTPImplementationパッケージによりウェブページのスクリプトからステータス情報を取得するプロセスを説明するフローチャートである。
【図50】ScriptHTTPODBCパッケージのクラス図を示す。
【図51】導出されたCabsScriptProcessのクラスにより装置のウェブページのジャバスクリプトを処理する状態図を示す。
【図52】CabsScriptProcessの2つの導出されたクラスにより使用されるサンプルデータ構造を示す。
【図53】ジャバスクリプトを含む装置のウェブページを導出されたCabsScriptProcessのクラスがどのように処理するかを示す図である。
【図54】装置のウェブページから情報を抽出するために、CabsScriptProcessの導出されたクラスのプロセスを示す図である。
【図55A】ウェブページから情報を抽出するために使用される構造SInfoStructureの構成メンバを示す図である。
【図55B】図55Aの構造SInfoStructureの構成メンバのサンプル値を示す図である。
【符号の説明】
【0167】
24 デジタルコピー/プリンター
27 オフィス機器
28 ファクシミリ
32 プリンター
50A ファイヤーウォール
50B ファイヤーウォール
50C ファイヤーウォール
166 多ポートネットワークI/F
172 IFコントローラ
174 操作パネル
176 記憶I/F
178 フラッシュメモリ
184 オプションI/F
187 クロック/タイマー
171 ローカル接続
188 オプショナルユニットインターフェイス
190 フューザ
192 プリンター/イメージャ
194 スキャナー
196 ペーパーフィードコントローラ
198 大容量トレイ部
200 デュプレクサ
202 ソータ

【特許請求の範囲】
【請求項1】
ネットワークに通信可能に結合された被監視装置に格納されたウェブページのスクリプトからHTTP通信プロトコルを用いてステータス情報を抽出する方法であって、
ウェブページのスクリプトからステータス情報を抽出するのに使用される少なくとも1つのパラメータストリング及びウェブページの身元を、ベンダー及びモデル情報に基づいて取得する取得ステップと、
ウェブページの身元及びHTTPプロトコルを用いて前記ウェブページにアクセスし、前記スクリプトにてウェブページのラインを取得するアクセスステップと、
取得したウェブページのラインを分析し、前記少なくとも1つのパラメータストリング中のパラメータストリングが、取得したラインの中で捜し出されたか否かを判別する分析ステップと、
前記パラメータストリングが取得したラインの中で捜し出されなかったことが分析ステップで確認された場合に、前記パラメータが捜し出されるまで前記アクセス及び分析ステップを反復する反復ステップと、
前記パラメータストリングが取得したラインの中で捜し出されたことが分析ステップで確認された場合に、前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されているか否かを判別する判別ステップと、
前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されていないことが前記判別ステップで確認された場合に、前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されるまで前記アクセス、分析、反復及び判別ステップを反復するステップと、
全てのパラメータストリングが前記スクリプトにて捜し出されたことが前記判別ステップで確認された場合に、最後に捜し出されたパラメータストリングの場所に基づいて前記ウェブページからステータス情報を抽出する抽出ステップと、
を有することを特徴とする方法。
【請求項2】
前記抽出ステップで取得したステータス情報を前記ベンダー及びモデル情報に関連付けて第2メモリに格納するステップ
を更に有することを特徴とする請求項1記載の方法。
【請求項3】
被監視装置のベンダー及びモデル情報を第1メモリから検索するステップ
を更に有することを特徴とする請求項1記載の方法。
【請求項4】
前記抽出ステップが、
最後のパラメータストリングが捜し出された取得済みラインからステータス情報を取得するステップを有する
ことを特徴とする請求項1記載の方法。
【請求項5】
前記アクセスステップが、
被監視装置に格納されたHTMLファイルにアクセスし、ジャバスクリプトからHTMLファイルのラインを取得するステップを有する
ことを特徴とする請求項1記載の方法。
【請求項6】
ネットワークに通信可能に結合された被監視装置に格納されたウェブページのスクリプトからHTTP通信プロトコルを用いてステータス情報を抽出するコンピュータシステムであって、
ウェブページのスクリプトからステータス情報を抽出するのに使用される少なくとも1つのパラメータストリング及びウェブページの身元を、ベンダー及びモデル情報に基づいて取得する取得手段と、
ウェブページの身元及びHTTPプロトコルを用いて前記ウェブページにアクセスし、前記スクリプトにてウェブページのラインを取得するアクセス手段と、
取得したウェブページのラインを分析し、前記少なくとも1つのパラメータストリング中のパラメータストリングが、取得したラインの中で捜し出されたか否かを判別する分析手段と、
前記パラメータストリングが取得したラインの中で捜し出されなかったことが前記分析手段で確認された場合に、前記パラメータが捜し出されるまで前記アクセス手段及び分析手段の動作を反復させる反復手段と、
前記パラメータストリングが取得したラインの中で捜し出されたことが分析手段で確認された場合に、前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されているか否かを判別する判別手段と、
前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されていないことが前記判別手段で確認された場合に、前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されるまで前記アクセス手段、前記分析手段、前記反復手段及び前記判別手段の動作を反復させる手段と、
全てのパラメータストリングが前記スクリプトにて捜し出されたことが前記判別手段で確認された場合に、最後に捜し出されたパラメータストリングの場所に基づいて前記ウェブページからステータス情報を抽出する抽出手段と、
を有することを特徴とするコンピュータシステム。
【請求項7】
前記抽出手段で取得したステータス情報を前記ベンダー及びモデル情報に関連付けて第2メモリに格納する手段
を更に有することを特徴とする請求項6記載のコンピュータシステム。
【請求項8】
被監視装置のベンダー及びモデル情報を第1メモリから検索する手段
を更に有することを特徴とする請求項6記載のコンピュータシステム。
【請求項9】
前記抽出手段が、
最後のパラメータストリングが捜し出された取得済みラインからステータス情報を取得する手段を有する
ことを特徴とする請求項6記載のコンピュータシステム。
【請求項10】
前記アクセス手段が、
被監視装置に格納されたHTMLファイルにアクセスし、ジャバスクリプトからHTMLファイルのラインを取得する手段を有する
ことを特徴とする請求項6記載のコンピュータシステム。
【請求項11】
コンピュータシステムで実行する命令を含むコンピュータプログラムであって、ネットワークに通信可能に結合された被監視装置に格納されたウェブページのスクリプトからHTTP通信プロトコルを用いてステータス情報をコンピュータシステムに抽出させ、当該コンピュータプログラムは、
ウェブページのスクリプトからステータス情報を抽出するのに使用される少なくとも1つのパラメータストリング及びウェブページの身元を、ベンダー及びモデル情報に基づいて取得する取得ステップと、
ウェブページの身元及びHTTPプロトコルを用いて前記ウェブページにアクセスし、前記スクリプトにてウェブページのラインを取得するアクセスステップと、
取得したウェブページのラインを分析し、前記少なくとも1つのパラメータストリング中のパラメータストリングが、取得したラインの中で捜し出されたか否かを判別する分析ステップと、
前記パラメータストリングが取得したラインの中で捜し出されなかったことが分析ステップで確認された場合に、前記パラメータが捜し出されるまで前記アクセス及び分析ステップを反復する反復ステップと、
前記パラメータストリングが取得したラインの中で捜し出されたことが分析ステップで確認された場合に、前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されているか否かを判別する判別ステップと、
前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されていないことが前記判別ステップで確認された場合に、前記少なくとも1つのパラメータストリングの全てのパラメータストリングが捜し出されるまで前記アクセス、分析、反復及び判別ステップを反復するステップと、
全てのパラメータストリングが前記スクリプトにて捜し出されたことが前記判別ステップで確認された場合に、最後に捜し出されたパラメータストリングの場所に基づいて前記ウェブページからステータス情報を抽出する抽出ステップと、
をコンピュータシステムに実行させる命令を有することを特徴とするコンピュータプログラム。
【請求項12】
前記抽出ステップで取得したステータス情報を前記ベンダー及びモデル情報に関連付けて第2メモリに格納するステップ
を更にコンピュータシステムに実行させる請求項11記載のコンピュータプログラム。
【請求項13】
被監視装置のベンダー及びモデル情報を第1メモリから検索するステップ
を更にコンピュータシステムに実行させる請求項11記載のコンピュータプログラム。
【請求項14】
前記抽出ステップが、
最後のパラメータストリングが捜し出された取得済みラインからステータス情報を取得するステップを有する
ことを特徴とする請求項11記載のコンピュータプログラム。
【請求項15】
前記アクセスステップが、
被監視装置に格納されたHTMLファイルにアクセスし、ジャバスクリプトからHTMLファイルのラインを取得するステップを有する
ことを特徴とする請求項11記載のコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図6D】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25A】
image rotate

【図25B】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36A】
image rotate

【図36B】
image rotate

【図36C】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55A】
image rotate

【図55B】
image rotate


【公開番号】特開2007−95055(P2007−95055A)
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願番号】特願2006−259325(P2006−259325)
【出願日】平成18年9月25日(2006.9.25)
【公序良俗違反の表示】
特許法第64条第2項第4号の規定により図面の一部または全部を不掲載とする。
(特許庁注:以下のものは登録商標)
1.マッキントッシュ
2.リナックス
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】