JP2005258691A - デバイス管理装置 - Google Patents

デバイス管理装置 Download PDF

Info

Publication number
JP2005258691A
JP2005258691A JP2004067776A JP2004067776A JP2005258691A JP 2005258691 A JP2005258691 A JP 2005258691A JP 2004067776 A JP2004067776 A JP 2004067776A JP 2004067776 A JP2004067776 A JP 2004067776A JP 2005258691 A JP2005258691 A JP 2005258691A
Authority
JP
Japan
Prior art keywords
information
conversion
request
printer
acquired
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004067776A
Other languages
English (en)
Inventor
Yasuhiro Hosoda
泰弘 細田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004067776A priority Critical patent/JP2005258691A/ja
Publication of JP2005258691A publication Critical patent/JP2005258691A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】デバイスから独立性を高めたデバイス管理システムを提供する。
【解決手段】プリンタ情報取得サービスM400は、プリンタドライバやプリンタ管理アプリケーションなどのクライアントからプリタ情報取得リクエストを受信すると、制御モジュールM408による制御の下、そのリクエストで要求される情報の種類に対応するテンプレートを変換情報記憶部M413から読んでXMLパーサM410で解析する。そして、テンプレートの記述にしたがってSNMP要求パケットを生成してデバイスに発行する。それに対応するSNMP応答パケットを受信したなら、そのパケットに含まれるMIBから得られた情報を、テンプレートの記述にしたがって演算などの変換を施し、クライアントが要求する意味のデータに変換してからクライアントに返す。
【選択図】図4

Description

本発明は、たとえばコンピュータ等により、それに接続されたプリンタ等のデバイスから情報を取得してそのデバイスを管理するデバイス管理装置に関する。
現在、PC(パーソナルコンピュータ)等のコンピュータから利用可能な周辺装置として、プリンタ、ファクシミリ、スキャナ、MFP(マルチファンクションペリフェラル装置)等が普及している。
PCには、これら周辺装置(以下デバイスと呼ぶ。)を利用する為のデバイスドライバ(以下ドライバと呼ぶ。)やポートモニタ、デバイスを管理する為のデバイス管理ユーティリティソフトなどのソフトウェアがインストールされる。ドライバとは、デバイスの種類や機種に応じた差異を吸収するためにデバイスに特有の処理を実行するためのソフトウエアである。プリンタはプリンタポートとして指定されたI/Oポートのインターフェイスを通してPCと通信する。ポートモニタは、プリンタに対するI/Oポート(すなわちプリンタポート)を制御するためのソフトウエアで、マイクロソフト社のウィンドウズ(登録商標)OSにおける名称である。デバイス管理ユーティリティソフトウエアは、デバイスの状態を取得し、それを表示したりあるいはデバイスの設定を変更するなどの操作等を管理者に行わせるためのソフトウエアである。
これらのソフトウェアは、デバイスと通信を行ってデバイスの構成情報やオプション情報、ジョブ情報、ユーザ情報、状態情報などを取得する機能を備えていることが多い。一般にデバイスはデバイスの種類や機種毎に仕様が異なり、また、ひとつの機種であってもオプション等による相違がある場合もあり、デバイスから取得可能な情報や、取得する方法が異なることが多い。このため、一般的には、デバイスから情報を取得する装置やソフトウェアはデバイスのベンダが提供している。PCがデバイスからその状態等のデバイスに固有な情報を取得する為のプロトコルとしてはSNMPが一般的である。また、デバイスのベンダが独自に定義したプロトコルを用いる場合もある(特許文献1等参照)。
一方、文書を単なる文字列として扱うだけでなく、文書の論理構造を表現することができる構造化文書が提案されている。構造化文書の形式のひとつとして、W3C(World Wide Web Consortium)が制定するXMLがある。XMLでは、文書の論理構造をスキーマ言語である文書型定義(DTD,Document Type Definition)やXMLスキーマにより指定し、表題、著者名、序文および本文のような文書構成要素としての役割を、文書タグと呼ばれる構造要素識別子を用いて表現することができる。XMLでは、文書構成要素のみならず、データの意味的構造化を行うようなタグをユーザが必要に応じて自ら定義できる。XML対応のシステムはスキーマに基づいてデータを処理する。
特開2003−29949号公報
従来のデバイスドライバやデバイス管理ユーティリティソフトウェアは、デバイスから取得する情報や、デバイスから情報を取得する処理、デバイスから取得した情報の変換処理を、プログラムコードにハードコーディングしていることが多い。ハードコーディングとは、デバイスに固有の情報等をパラメータ化せず、プログラムコードの中に埋め込んでしまうようなプログラム手法をいう。ハードコーディングを行うと、デバイスに固有の情報等に変更があったり、他機種用に解像する様な場合、コード自体を見直さなければならない。このため、デバイスの仕様変更や、従来機種と仕様の異なる新機種に対応する為に、プログラムコードを変更し、再構築したソフトウェアをユーザに再配布する必要があり、ソフトウェアの管理工数が大きいという問題点があった。
また、ドライバやデバイス管理ユーティリティソフトウェアを提供するベンダと、管理されるデバイスのベンダが異なる場合、ドライバやデバイス管理ユーティリティソフトウェアが扱う情報・データ形式と、実際に、デバイスから取得可能な情報・データ形式が一致しない場合がある。この場合、デバイスから取得したデータをネットワークデバイス管理システムが扱えるデータ形式に変換する必要がある。デバイスからの情報の取得処理、取得した情報の変換処理は、デバイスの仕様が分からないと行えない為、この変換処理を行うプログラムを作成するためには、デバイスのベンダにデバイスの仕様を公開してもらうか、デバイスからの情報の取得処理および取得した情報の変換処理を行うプログラム・モジュール自体をデバイスのベンダに提供してもらうことが考えられる。デバイスの仕様を公開してもらう為には、ベンダ間で特別な契約を締結する必要があり実際上は困難な場合が多い。また、デバイスのベンダにプログラム・モジュールを提供してもらう為には、デバイスのベンダにプログラムの仕様を詳しく理解してもらう必要性がある。またベンダにおいても、変換プログラムをデバイスの種類や機種毎に提供しなければならず負担が大きい。さらに、デバイスのベンダに提供してもらったプログラム・モジュールのバグが原因でシステム全体が障害を起こす危険性がありシステムの安全性や安定性の点でも問題がある。
本発明は上記従来例に鑑みてなされたもので、デバイスに対する要求およびデバイスからの応答を、デバイスに依存しない形式とデバイスに依存する形式との間で変換する変換情報を用意することで、たとえば管理するデバイスの機種の増加や、扱う情報のデータ形式の変更等がされる場合に、また、管理するデバイスの仕様が分からない場合などにも、その変換情報を変更するだけで対応可能なデバイス管理装置を実現することを目的とする。
上記目的を達成するために本発明は以下のような構成を備える。
接続されたデバイスを管理するデバイス管理装置であって、
前記デバイスに対してデバイス情報の要求および設定またはそのいずれかを行うデバイス管理手段と、
前記デバイス管理手段が処理可能な情報の形式と前記デバイスが処理可能な情報の形式との間で変換を行うための変換情報を格納する格納手段と、
前記格納手段に格納された変換情報を参照して、前記デバイス管理手段によるデバイス情報の要求および設定またはそのいずれかについて前記デバイスが処理可能な形式の情報に変換し、前記デバイスから受信した情報について前記デバイス管理手段が処理可能な情報の形式に変換する変換手段とを備える。
あるいは、デバイスから情報を取得するデバイス管理装置であって、
取得しようとする情報をデバイスから取得する為のプロトコル情報に変換し、また、デバイスから取得したデータを前記取得しようとする情報に変換するためのXMLで記述された変換情報を格納する格納手段と、
前記デバイスから情報を取得する際に、前記変換情報を参照して前記デバイスへ送信する要求パケットを生成する手段と、
前記要求パケットを前記デバイスへ送信し、前記デバイスからの応答パケットを受信する手段と、
前記応答パケットから取得した情報を前記変換情報を参照して前記取得しようとする情報に変換する手段と
を備える。
あるいは、XMLで記述された情報取得リクエストをクライアントより受信する手段と、
前記受信手段により受信されたXMLで記述された情報取得リクエストを解釈し、リクエストに対するSNMP用パケットを生成し、デバイスに送信する手段と、
前記送信手段によりデバイスに送信されたSNMP用パケットに基づくMIBのデータを取得する取得手段と、
前記取得手段により取得されたMIBのデータをXMLで記述されたデータに基づき変換する変換手段と、
前記変換手段により変換されたデータをクライアントに送信する送信手段とを有する。
本発明によれば、デバイスに対する要求およびデバイスからの応答を、デバイスに依存しない形式とデバイスに依存する形式との間で変換する変換情報を用意することで、たとえば管理するデバイスの機種の増加や、扱う情報のデータ形式の変更等がされる場合に、また、管理するデバイスの仕様が分からない場合などにも、その変換情報を変更するだけで対応可能なデバイス管理装置を実現することができる。
以下に、本実施形態のデバイス管理システムについて説明する。図1は、本実施形態におけるネットワークの構成図である。図1において、クライアントPC(C101, C103,C103)およびプリンタ(P104)は、ネットワーク(N105)を介して相互に通信可能とする。ネットワーク(N105)には、本実施形態ではLAN(Local Area Network)を用いる。
図2は、クライアントPC(C101)の概略構成を表すブロック図である。なお、クライアントPC(C102、C103)の構成も同様である。クライアントPCは、CPU(C201)、ROM(C202)、外部メモリ(C203)、キーボード(C204)、通信部(C205)、RAM(C206)、HD(ハードディスク)(C207)、ディスプレイ(C208)、システムバス(B209)を備えている。
CPU(C201)はシステムバス(B209)に接続された各デバイスを統括的に制御する中央処理装置である。CPU(C201)は、HD(C207)に格納されているアプリケーションプログラム、プリンタ管理ユーティリティソフト、プリンタドライバ、ポートモニタ、OS、ネットワークプリンタ制御プログラム、通信プログラムなどを実行し、RAM(C206)にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ROM(C202)には、基本I/Oプログラム等のプログラムを記憶する。外部メモリ(C203)には、FD(フレキシブルディスク)、CD−ROM、CD−R、CD−RW、DVD、HD、フラッシュメモリ、不揮発性のメモリカード、磁気テープなどがあり、各種記憶媒体からプログラムやデータを本コンピュータシステムにロードすることができる。キーボード(C204)は、ユーザからクライアントPCに対する入力を指示し、ディスプレイ(C208)は、キーボード(C204)からの入力やアプリケーションプログラムのGUI(グラフィックユーザインターフェース)の表示などを行う。ユーザはプリンタを使用して印刷する際、印刷設定に関するウインドウを開き、プリンタの設定や印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができるようになっている。通信部は、NICなどを備え、ネットワークを介して他のクライアントPCやプリンタ(P104)と通信を行う。
プリンタ(P104)は、ネットワーク管理プロトコルSNMP(Simple Network Management Protocol)とデータベースMIB(Management Information Base)を実装しており、クライアントPCは、SNMPでプリンタと通信することによりプリンタのMIBへアクセスして情報を取得できる。
クライアントPCには、プリンタから情報を取得するためのプリンタ情報取得サービス、プリンタドライバ、プリンタ管理アプリケーションがインストールされている。プリンタドライバ、プリンタ管理アプリケーションは、プリンタ情報取得サービスを用いてプリンタから情報を取得する。プリンタ情報取得サービスはクライアントPCのRAMに常駐する常駐プログラムである。プリンタから取得する情報としては、給紙オプション情報(給紙カセット段数、用紙サイズ、用紙残量)、インク/トナー残量、排紙オプション情報(フィニッシャの種類、ステイプルユニット有り無し、製本ユニット有り無し)、両面印刷ユニット有り無し、総RAM容量などが挙げられる。プリンタドライバやプリンタ管理アプリケーションが取得したプリンタ構成情報は、図3のようなGUIでクライアントPCのディスプレイモニタで表示される。また、プリンタドライバは取得したプリンタのオプション情報をみて、ステイプル可能か、両面印刷ができるか、プリンタに投入できる印刷ジョブの最大サイズはいくらか、などを判定してユーザに提供可能な印刷機能を設定する。
プリンタ情報取得サービスは、XMLの構文で記述されたファイルを読んで解釈し、記述にしたがって処理を行う機能を有しており、XMLファイルには以下に示す(1)〜(3)の情報がXMLの構文に沿って記述されている。
(1)プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式。
(2)プリンタから情報を取得するために必要なSNMPプロトコル情報(リクエストオペレーション(GetRequest、GetNextRequest、SetRequest)、コミュニティ名、オブジェクト識別子(OBJECT IDENTIFIER),データタイプ)、プリンタから取得したMIBの識別情報。
(3)プリンタから取得した情報を(1)の情報に変換するための変換方法。
これらの情報を含むXMLデータを本実施形態ではテンプレートと呼ぶことにする。なおテンプレートは、デバイス(ここではプリンタ)から取得すべき情報の種類ごとにファイルとして設けても良いし、取得すべき全ての情報についてのテンプレートをまとめてひとつのテンプレートファイルとしても良い。
以下に、プリンタドライバ、プリンタ管理アプリケーション、プリンタ情報取得サービスのプログラムモジュール構成の簡略図(図4)を参照して、プログラム構成について説明する。
プリンタドライバ(M402)、プリンタ管理アプリケーション(M405)はそれぞれUI(ユーザインターフェース)モジュール(M401、M404)と、プロキシモジュール(M403、M406)を備えている。プロキシ(M403、M406)は、プリンタ情報取得サービスのスタブモジュール(M407)とプロセス間通信を行う。プロキシ/スタブは異なるPC間の通信も可能であり、プリンタドライバ及びプリンタ管理アプリケーションと、プリンタ情報取得サービスとは異なるクライアントPCにインストールされていても良い。このような場合にも、プロキシとスタブとのインターフェースにより、プリンタ管理アプリケーションおよびプリンタドライバと、プリンタ情報取得サービスとの間では、ひとつのPCにある場合と同様に通信が行える。プロキシ/スタブモジュールには、マイクロソフト社のCOM(Componet Object Model)や.Net(ドットネット)など技術が使われることが想定される。
プリンタ情報取得リクエストは、プリンタドライバ(M402)またはプリンタ管理アプリケーション(M405)から発行され、プロキシ/スタブを介してプリンタ情報取得サービスの制御モジュール(M408)に伝えられる。プリンタ情報リクエストには、プリンタから取得しようとする情報の種類(給紙カセット段数、用紙サイズ、用紙残量、インク/トナー残量、フィニッシャの種類、ステイプルユニット有り無し、製本ユニット有り無し、両面印刷ユニット有り無し、総RAM容量など)を示す情報(IDや文字列など。本実施形態では種類識別情報と呼ぶ。)が含まれている。
制御モジュール(M408)は、主にクライアント(プリンタドライバやプリンタ管理アプリケーションなど、プリンタ情報取得サービスのクライアント)と情報取得要求リクエストの管理を行う。データ構成モジュール(M409)は、制御モジュール(M408)からリクエストを受けてSNMP用のデータを構築し、また、SNMPモジュール(M411)がプリンタから取得したMIBデータを上位モジュールで扱うデータ構造に変換する。SNMP用のデータ構築、プリンタから取得したMIBデータの変換に関する情報はXMLファイル(テンプレートファイル)より取得する。テンプレートファイルは、RAMやHD等により実現される変換情報記憶部M413に格納される。XMLファイルの解析は、プリンタ情報取得リクエストが発行される度に、XMLパーサM410によって行われる。この場合には、当該プリンタ情報取得リクエストに対応して変換情報記憶部M413から読み出されたテンプレート(XMLファイル)だけを解析の対象とすればよい。あるいは、プリンタ情報取得サービスの起動時に一度だけ行うこともできる。後者の場合、XML全体について解析される。そして解析したデータ(たとえばテンプレート毎の構文の正誤等の結果など)をメモリ上に持ち、プリンタ情報取得リクエストが発行される度にメモリを参照する。SNMPモジュール(M408)は、SNMPパケットヘッダの生成と解析を行うモジュールである。トランスポートモジュール(M412)はTCP(UDP)/IPのパケットの生成と解析を行う。トランスポートモジュールM412から、更に下位のプロトコルスタックやインターフェース回路等のハードウエアを介して、プリンタなどのデバイスに接続されている。
<プリンタ情報取得サービスによる処理>
次に、プリンタ情報取得サービスが、プリンタドライバ、プリンタ管理アプリケーションから情報を取得した場合の処理を図5のフローチャートを用いて説明を行う。この処理はCPU(C201)により実行される。
プリンタ情報取得サービスは、ステップS501において、スタブモジュール(M407)でプリンタドライバもしくはプリンタ管理アプリケーションからのプリンタ情報取得リクエストを受信することによって、プリンタから情報を取得する処理を開始する。
次に、ステップS502において、受信したリクエストを解析して、情報を取得するプリンタの機種、プリンタのアドレス、プリンタから取得する情報を特定する。次にステップS503でテンプレートを読み込み、XMLパーサ(M410)によって構文を解析する。解析結果はRAMなどのメモリに保存する。解析結果としては、たとえば構文上の誤りがあればその旨が記憶されるし、構文上正しければ、解析後の形式(XML解析データと呼ぶ。)でメモリに保存される。たとえば、XMLファイルではタグにより表されているデータを、XMLの構文解析なしに直ちに利用できる所定の表形式やリスト形式などでメモリに保存する。
プリンタドライバやプリンタ管理アプリケーションが取得しようとする情報の種類は、プリンタ情報取得リクエストの例えばパラメータにより特定されるので、ステップS502ではそのパラメータを参照し、ステップS503ではそのパラメータの値に応じたテンプレートを読み込んで解析すればよい。このパラメータ値とテンプレートとの対応は、たとえばRAMやHDなどにテーブルとしてテンプレートであるXMLファイルとともに格納しておけばよい。
ステップS504において、解析の結果読み込んだテンプレートの構文が正しいか否かを判定し、正しい場合は、解析したデータをメモリ(RAMなど)に記録する。なお、ステップS503、ステップS504処理におけるXMLファイル解析に関する処理を、サービス起動時などに既に行っている場合は、ステップS503、ステップS504は省略して、メモリから解析結果、解析データを参照することも可能である。
ステップS505では、メモリに保持したXML解析データより、プリンタ情報取得リクエストに対応したSNMP用データ(リクエストオペレーション(GetRequest、GetNextRequest、SetRequest)、コミュニティ名、オブジェクト識別子(OBJECT IDENTIFIER),データタイプなど)を取得する。
次にステップS506において、上記SNMP用のデータを用いてSNMPパケットを生成する。パケットの生成は、取得したSNMP用データをSNMPのPDUの形式にしたがって配置して生成する。配置のしかたは、たとえばXML解析データにおける配置に基づいて決定される。ステップS507では、生成したSNMPリクエストパケットの送信処理を行う。プリンタへの送信が成功した場合に、ステップS508において、プリンタからのリクエストに対するリプライパケットの受信処理を行う。ステップS506〜S508はSNMPモジュールM411により行われる。
リプライパケットの受信に成功した場合、ステップS509において受信したリプライパケットを解析して、MIBのデータを取得する。次に、ステップS510において、メモリに保持したXML解析データよりデータ変換方法に関する情報を取得し、ステップS511において、取得したMIBデータに対してデータの変換処理を行う。ステップS512では、ステップS511における変換後のデータを上位モジュール(プリンタドライバ、プリンタ管理アプリケーションなど)の解析可能なデータ構造体に格納する。前記ステップのいずれかの処理でエラーが発生している場合は、エラーを示す情報(エラーコードなど)をデータ構造体に格納する。最後に、ステップS513においてクライアント(プリンタドライバ、プリンタ管理アプリションなど)にデータ(リクエストに対する処理結果)を送信して処理を終了する。
以上の手順により、プリンタドライバやプリンタ管理アプリケーションにおけるプリンタ情報取得リクエストの送信やそれに対するレスポンス処理は、デバイスの有するMIBの構成から独立させることができる。そして、デバイスの構成の変更等によりMIBの構成が変更された場合には、プリンタ情報取得サービスが用意するXMLで記述したテンプレートを、MIBに応じて変更することで対応できる。このため、デバイスの機種や機能、オプションの変更などは、デバイスのベンダにより提供されるテンプレートを用いることで、プリンタ管理アプリケーションやプリンタドライバに影響を及ぼすことはない。
[テンプレートの例1]
本実施形態で使用するXMLファイルとデータ変換の例を挙げて説明する。図6は、プリンタに設置されたRAMの容量をメガバイト(Mbyte)単位で取得するためのXMLファイル(テンプレート)の記述の例である。すなわち、プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「RAM容量」を示す種類情報が指定されている場合に、図6のテンプレートが用いられる。ここでは、「プリンタ構成情報のデータ形式」「SNMPプロトコル情報」「変換方法」の3つの部分に分けて説明する。
(1.プリンタ構成情報のデータ形式)
<RamSize>タグで囲まれた部分は、RAM容量を取得するための処理を表す。<RamSize TYPE=“INTEGER” >の属性部分であるtypeは、クライアントに返すべきデータの型(INTEGER(整数型)、STRING(文字列)、BOOL、 INTARRAY(整数型の配列)、STRARRAY(文字列型の配列)など)を指定する。この<RamSize>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
<MIB>タグは、プリンタからSNMPで取得するMIBの情報を示す。属性のnameは、プリンタから取得したMIBデータを識別する為の任意の名前を指定する。operationには、SNMPのリクエストコマンド(GetRequest、SetRequest、GetNextRequest)を指定する。指定されたコマンドが、生成されるSNMPパケットのコマンドとなる。communityには、SNMPのコミュニティ名を指定する。oidには、オブジェクト識別子を指定する。指定されたオブジェクトIDが、SNMPパケットにおいて指定されるオブジェクトIDとなる。MIBは木構造のデータ構造を有しており、全てのノードが一意に番号付けされている。このMIBの構造は、管理情報構造(Structure of Management Information、SMI)と呼ばれ、RFC1155 Structure and Identification of Management Information for TCP/IP-based Internetsで規定されている。MIBは、SNMPで管理される機器が標準的に備えている標準MIBと呼ばれるオブジェクト群から構成される部分木(このノードの下のオブジェクトの詳細な構造については、RFC1213 Management Information Base for Network Management of TCP/IP-based Internets:MIB-IIに規定されている。)と、プライベートMIBと呼ばれる、企業や団体などが独自のMIB定義を行うための部分木とを含む。図6のオブジェクトID(oid)である“1.3.6.1.4.1.1602.1.2.3.1”においては、ノード番号1602は企業拡張MIBと呼ばれるもののひとつで、プライベートMIBの中で企業が独自の拡張を行うための頂点となるノードである。この下に企業独自のMIBを定義することができる。たとえば本例では企業MIBの頂点ノードのオブジェクト識別子は、1.3.6.1.4.1.1602であり、その下に企業により定義されたMIBが定義されている。企業拡張MIBは、たとえば装置の種類、その装置の種類における機種、その機種における固有の情報等の階層で定義できよう。typeには、取得するMIBデータの型を指定する。これもSNMPパケットにセットされる。このほか、SNMPパケットに固定的に与えることができる項目については、テンプレートで定義するまでもなく、パケットの生成時に設定することができる。
この<MIB>タグが、プリンタから情報を取得するために必要なSNMPプロトコル情報に相当する。
(3.変換方法)
<ReturnValue>タグには、最終的にRAM容量として設定する値を指定する。“RamSizeValue/1024”は、SNMPによりプリンタから取得した値を1024で割った値をRAM容量とすることを示す。これは、MIBから取得したRamSizeがkByte単位である為に、Mbyte単位に変換している。図6の例では、<ReturnValue>タグがmプリンタから取得した情報を(1)の情報に変換するための変換方法に相当する。
以上のテンプレートを解析した後、データ構成モジュールは、テンプレートに定義されたSNMPプロトコル情報にしたがってSNMP要求パケットを生成し、それをSNMPモジュールにわたしてプリンタに送信する。そしてそれに対するSNMP応答パケットを受信すると、その値を取り出し、テンプレートに定義された変換方法にしたがって、同じくテンプレートに定義された型の値に変換する。そして変換された値をクライアントに返す。
同様の処理をプログラミング言語C++のように表現した場合、図7のようになる。図7は、図6のXMLをデータ構成モジュールにより解釈実行した場合の動作を、C原語で記述した例として説明するための図であって、本実施形態の発明と直接的に関係するためのものではない。関数GetMIBData()は、プリンタからSNMPでMIBデータを取得するための関数である。得た整数型の値RamSizeDataを1024で除算した値を戻り値としている。
本実施の形態によれば、ネットワークデバイス管理システムの提供者(ベンダ)と管理されるデバイスの製造元(ベンダ)が異なる場合でも、デバイスの製造元は、XMLファイルを提供するだけで、ネットワークデバイス管理システムがデバイスを管理することが可能となる。
また、管理するデバイスの機種の増加や、扱う情報のデータ形式が変更される際にも、システム本体を変更することなく、XMLの記述を変更するだけで対応可能にすることができる。
[テンプレートの例2]
次に、プリンタに複数のRAMが設置されており、プリンタに図8のようなRAM管理テーブルがMIBデータとして実装されている場合に、プリンタから総RAM容量を取得する場合のXML記述の例について説明する。テーブルの各要素には、SNMPのGetNextで順次アクセス可能なものとする。XMLファイルの記述例を図9に示す。
本実施形態で使用するXMLファイルとデータ変換の例を挙げて説明する。図9は、このプリンタに設置されたRAMの容量をメガバイト(Mbyte)単位で取得するためのXMLファイル(テンプレート)の記述の例である。プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「RAM容量」を示す種類情報が指定されている場合に、図9のテンプレートが用いられる。すなわち、クライアントからのプリンタ情報取得リクエストは、図6の例と同様である。しかし、プリンタの構成の相違により、図6ではなく図9のテンプレートが用いられる。
(1.プリンタ構成情報のデータ形式)
<TotalRamSize>タグで囲まれた部分は、RAM容量を取得するための処理を表す。<TotalRamSize TYPE=“INTEGER” >の属性部分であるtypeは、クライアントに返すべきデータの型(この例ではINTEGER(整数型))を指定する。この<TotalRamSize>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
<MIBTable>タグは、SNMPのGetNextRequstで順次取得した値をテーブル(配列)の形式で扱うことを示す。その他の属性は図6と同様である。MIBTableタグをテンプレートから読み込んだ(ただし読むのは解析後であり正確にはタグとは言えないが、便宜的にタグと読んでいる。以下同様である。)データ構成モジュールM409は、GetNextRequstパケットを生成して発行する。そして、それに対応するGetResponseパケットを受け取った後、レスポンスに含まれる値を読み取った順序で保存する。そしてそのレスポンスにおいて読むべきデータがない旨の応答がされるまで、繰り返してGetNextRequstパケットを発行する。すなわち、図5のステップS506〜S509を、読むべきデータがなくなるまで繰返し実行する。
(3.変換方法)
<Variable >タグでは、総RAM容量を計算するために使用する変数を定義している。属性のnameには、変数を識別するための名前を、typeは変数として扱うデータの型を指定する。<SUM>タグは、タグで囲まれた値の合計を算出することを表す。図9の場合、プリンタからSNMP(GetNextRequst)で取得したRAM容量のテーブルのエントリの値のそれぞれをGetNextRequstにより読み、Sumタグにより合計を算出してTotalRamSizeValueの値とする。最終的に、図6の例と同様にTotalRamSizeValueの値1024で除算してTotalRamSizeの値を得る。これがクライアントに戻すべき値となる。
以上の処理を、プログラミング言語C++のように表現した場合、図10のようになる。関数Sum()は指定された、配列の要素を合計する関数である。図10は、図9のXMLをデータ構成モジュールにより解釈実行した場合の動作を、C原語で記述した例として説明するための図であって、本実施形態の発明と直接的に関係するためのものではない。関数GetMIBData()は、プリンタからSNMPでMIBデータを取得するための関数である。この関数により、整数型データの配列pRamSizeDataの要素として獲得し、その値を合計して整数型の値TotalRamSizeDataを得る。それを1024で除算した値を戻り値としている。
以上のテンプレートを解析した後、データ構成モジュールは、テンプレートに定義されたSNMPプロトコル情報にしたがってSNMP要求パケット(GetNextRequest)を生成し、それをSNMPモジュールにわたしてプリンタに送信する。そしてそれに対するSNMP応答パケットを受信すると、その値を取り出しておく。そして、すべてのデータを読み出し終えるまで受信すると、そして取り出された値を、変換方法に従い、テンプレートに定義された型の値に変換してクライアントに返す。
[テンプレートの例3]
次に、プリンタに複数のRAMとROMが設置されており、プリンタに図11のようなメモリ管理テーブルがMIBデータとして実装されている場合に、メモリ管理テーブルの中から、RAMの項目だけを抜き出し、RAMの容量を合計して総RAM容量をメガバイト単位で計算する場合のXML記述例を図12に示す。テーブルの各要素には、SNMPのGetNextで順次アクセス可能なものとする。図11のテーブルにおけるMemoryNameとMemorySizeとにはそれぞれ相異なるオブジェクトIDが与えられている。図12のテンプレートを読んだデータ構成モジュールは、SNMPのGetNextを使用してテーブルのMemoryNameとMemorySizeとをそれぞれ取得する。プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「RAM容量」を示す種類情報が指定されている場合に、図12のテンプレートが用いられる。すなわち、クライアントからのプリンタ情報取得リクエストは、図6および図9の例と同様である。しかし、プリンタの構成の相違により図12のテンプレートが用いられる。
(1.プリンタ構成情報のデータ形式)
<TotalRamSize>タグで囲まれた部分は、RAM容量を取得するための処理を表す。<TotalRamSize TYPE=“INTEGER” >の属性部分であるtypeは、クライアントに返すべきデータの型(この例ではINTEGER(整数型))を指定する。この<TotalRamSize>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
<MIBTable>タグは、SNMPのGetNextRequstで順次取得した値をテーブル(配列)の形式で扱うことを示す。その属性は図9と同様である。MIBTableタグをテンプレートから読み込んだデータ構成モジュールM409は、GetNextRequstパケットを生成して発行する。そして、それに対応するGetResponseパケットを受け取った後、レスポンスに含まれる値を、読み取った順序でname属性で与えられる変数名に、読まれた順序に応じたインデックスを付して保存する。そしてそのレスポンスにおいて読むべきデータがない旨の応答がされるまで、繰り返してGetNextRequstパケットを発行する。すなわち、図5のステップS506〜S509を、読むべきデータがなくなるまで繰返し実行する。
図12のテンプレートでは、<MIBTable>タグが、オブジェクトID=1.3.6.1.4.1.1602.1.2.2と、オブジェクトID=1.3.6.1.4.1.1602.1.2.3とについて定義されている。前者は図11のテーブルのMemoryNameであり、後者はMemorySizeである。データ構成モジュールM409は、MemoryNameについてのGetNextRequstパケット発行を繰返し行い、その後MemorySizeについてのGetNextRequstパケット発行を繰返し行う。
(3.変換方法)
<Array>タグ1201は配列型の変数を定義することを示す。<GetIndexFromValue>タグは、from属性に指定したテーブル(配列)の各要素とvalue属性に指定した値を、condition属性に指定した条件で比較し、一致した場合に、テーブルのindexを返す処理を示す。図12の場合、MemoryNameテーブルから名前がRAMのindexを取得し、配列形式のデータRamIndexとする。このタグを読んだデータ構成モジュールは、上記定義の動作を実行する。
次の<Array>タグ1202で、要素が整数型のRamSizeを名称とする配列が定義されている。<GetValueFromIndex>タグは、from属性で指定したテーブル(配列)より、index属性で指定した配列のindexの位置に相当する値を取得する。図12の場合、MemorySizeテーブルからRamIndexの値を全て取得し配列形式のデータRamSizeとする。このタグを読んだデータ構成モジュールは、上記定義の動作すなわちMemoryNameの値がRAMのメモリサイズについて、配列RamSizeに格納する。
配列RamSizeは、図9の例と同様に<SUM>タグで合計されて値TotalRamSizeValueに保存される。最終的に、1024で除算してTotalRamSizeの値を得る。データ構成モジュールは、図12のテンプレートを読むと、上記定義の通りに動作する。
以上の処理を、プログラミング言語C++のように表現した場合、図13のようになる。関数GetMIBData()は、プリンタからSNMPでMIBデータを取得するための関数である。この関数により、文字列型データの配列MemoryNameの要素としてMemoryNameを獲得し、同様に整数型データの配列pMemorySizeの要素としてMemorySizeの値を獲得する。そして関数GetIndexFromValue()により、整数型の配列pRamIndexの要素として、配列MemoryNameのうち値がRAMの要素のインデックスを保存する。そして、関数GetValueFromIndex()により、配列MemorySizeから、配列pRamIndexの各要素の値をインデックスとする値を配列pRamSizeに取り出す。そして関数SUMにより、整数TotalRamSizeDataにその要素の合計値を得る。それを1024で除算した値を戻り値としている。なお図13は、図12のXMLをデータ構成モジュールにより解釈実行した場合の動作を、C原語で記述した例として説明するための図であって、本実施形態の発明と直接的に関係するためのものではない。
[テンプレートの例4]
次に、プリンタに複数のオプションユニットが設置されており、プリンタに図14のようなオプションユニットテーブルがMIBデータとして実装されている場合に、オプションユニット管理テーブルの中から、フィニッシャに相当する名前を抜き出して、フィニッシャ名を取得する場合のXMLの記述の例を図15に示す。テーブルの各要素には、SNMPのGetNextで順次アクセス可能なものとする。プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「フィニッシャの名前(種類)」を示す種類情報が指定されている場合に、図15のテンプレートが用いられる。
(1.プリンタ構成情報のデータ形式)
<FinisherName>タグ1500で囲まれた部分は、フィニッシャの名前を取得するための処理を表す。<FinisherName TYPE=“STRING” >の属性部分であるtypeは、クライアントに返すべきデータの型(この例ではSTRING(文字列型))を指定する。この<FinisherName>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
<MIBTable>タグ1501は、SNMPのGetNextRequstで順次取得した値をテーブル(配列)の形式で保存して扱うことを示す。その他の属性は図9と同様である。MIBTableタグをテンプレートから読み込んだデータ構成モジュールM409は、GetNextRequstパケットを生成して発行する。そして、それに対応するGetResponseパケットを受け取った後、レスポンスに含まれる値を読み取った順序でOptiionUnitNamesとして保存する。そしてそのレスポンスにおいて読むべきデータがない旨の応答がされるまで、繰り返してGetNextRequstパケットを発行する。すなわち、図5のステップS506〜S509を、読むべきデータがなくなるまで繰返し実行する。
(3.変換方法)
この例では、プリンタに設置可能なフィニッシャには、“FinisherA1”,“FinisherA2”,“FinisherA3”がある。図15ではこれらを、配列型のデータFinsherNamesとして<Array>タグ1502により定義している。<FindValue>タグ1503は、from属性に指定したテーブル(配列)からvalue属性に指定した配列の要素をcondition属性に指定した条件(Equal:一致、more:数値が大きい、from属性の文字列がvalue属性の文字列に包含される、less:数値が小さい、value属性の文字列がfrom属性の文字列に包含される)で比較して一致したテーブルの値を返すことを示す。そのType属性は、value属性に指定するデータの型を示している。図15の場合、SNMPリクエストパケットにより獲得したOptionUnitNamesテーブルの各要素を、FinisherNamesテーブルの各要素“FinisherA1”,“FinisherA2”,“FinisherA3”と順次比較し、最初に一致したOptionUnitNamesテーブルの要素の値をFinisherNameとする。そしてその値FinisherNameを、データ構成モジュールはクライアントに返す。
データ構成モジュールは、図15のテンプレートを読むと、上記の通りに動作する。以上の処理を、プログラミング言語C++のように表現した場合、図16のようになる。図16のコードでは、GetMIBData関数によりフィニッシャの持つ機能の名前をプリンタMIBから獲得してOptionUnitNamesに読む。そしてその中からFindValue関数により“FinisherA1”,“FinisherA2”,“FinisherA3”と一致する要素をFinisherNameに取り出してそれを戻り値とする。なお図16は、図15のXMLをデータ構成モジュールにより解釈実行した場合の動作を、C原語で記述した例として説明するための図であって、本実施形態の発明と直接的に関係するためのものではない。
[テンプレートの例5]
次に、図14のオプションユニットテーブルをプリンタから取得して、テーブルの要素の中から、部分文字列“Finisher”を含むものを取得する場合のXMLの記述の例を図17に示す。プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「フィニッシャ」を示す種類情報が指定されている場合に、図17のテンプレートが用いられる。
(1.プリンタ構成情報のデータ形式)
<FinisherName>タグ1700で囲まれた部分は、フィニッシャの名前を取得するための処理を表す。<FinisherName TYPE=“STRING” >の属性部分であるTYPEおよびNUMは、クライアントに返すべきデータの型および数字の桁数(この例ではSTRING(文字列型)と1桁の数字)を指定する。また、この<FinisherName>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
図17の<MIBTable>タグ1701は、SNMPのGetNextRequstで順次取得した値をテーブル(配列)の形式で保存して扱うことを示す。その他の属性は図9と同様である。MIBTableタグをテンプレートから読み込んだデータ構成モジュールM409は、GetNextRequstパケットを生成して発行する。そして、それに対応するGetResponseパケットを受け取った後、レスポンスに含まれる値を読み取った順序でOptiionUnitNamesとして保存する。そしてそのレスポンスにおいて読むべきデータがない旨の応答がされるまで、繰り返してGetNextRequstパケットを発行する。すなわち、図5のステップS506〜S509を、読むべきデータがなくなるまで繰返し実行する。
(3.変換方法)
図17の<FindValue>タグ1702は、プリンタから取得したOptionUnitNamesテーブルから部分文字列“Finisher”を含む要素を抽出して文字型の変数FinisherNameに設定することを示す。変数FinisherNameがクライアントに返される。図17のテンプレートを読んだデータ構成モジュールは以上に定義されたように動作する。
以上の処理を、プログラミング言語C++のように表現した場合、図18のようになる。すなわち、関数GetMIBDataによりオプション機器の名前を配列OptionUnitNameに読み込み、そのうちから“Finisher”を有する要素をFinisherNameとしてクライアントに返す。なお図18は、図17のXMLをデータ構成モジュールにより解釈実行した場合の動作を、C原語で記述した例として説明するための図であって、本実施形態の発明と直接的に関係するためのものではない。
[テンプレートの例6]
次に、プリンタの製本機能の有り無しをBOOL値で取得する場合のXMLの記述の例を図19に示す。製本機能は、紙折りユニットと、ステイプルユニットの両方がプリンタに設置されていると実現可能なものとする。本例では、プリンタ情報取得サービスは、プリンタから図14のようなオプションユニットテーブルを取得し、オプションユニットテーブルから紙折りユニットとステイプルユニットの存在を確認し、両方の存在が確認できた場合に製本機能有りと判断する。プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「製本機能」を示す種類情報が指定されている場合に、図19のテンプレートが用いられる。
(1.プリンタ構成情報のデータ形式)
<BookBindingInstalled>タグ1900で囲まれた部分は、製本機能の有無を表すBOOL変数を定義している。その属性部分であるTYPEは、クライアントに返すべきデータの型(この例ではBOOL(論理型))を指定する。また、この<BookBindingInstall>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
図19の<MIBTable>タグ1901は、SNMPのGetNextRequstで順次取得した値をテーブル(配列)の形式で保存して扱うことを示す。その他の属性は図17と同様である。MIBTableタグをテンプレートから読み込んだデータ構成モジュールM409は、GetNextRequstパケットを生成して発行する。そして、それに対応するGetResponseパケットを受け取った後、レスポンスに含まれる値を読み取った順序でOptiionUnitNamesとして保存する。そしてそのレスポンスにおいて読むべきデータがない旨の応答がされるまで、繰り返してGetNextRequstパケットを発行する。すなわち、図5のステップS506〜S509を、読むべきデータがなくなるまで繰返し実行する。
(3.変換方法)
図19において、<Find>タグ1902、1903は、from属性に指定されたテーブルからvalue属性にしていされた値をcondition属性に指定された条件で検索し、検索に成功するとBOOL値TRUEを設定する。
図19の場合、<Find>タグ1902を読んだデータ構成モジュールは、OptionUnitNameテーブルから文字列“PaperFoldingUnit”を検索し、検索の結果をBOOL値PaperFoldingUnitInstalledに設定する。同様に、<Find>タグ1903を読んだデータ構成モジュールは、OptionUnitNameテーブルから文字列“StapleUnit”を検索し、検索の結果をBOOL値StapleUnitInstalledに設定する。
最終的に、BOOL値PaperFoldingUnitInstalledとBOOL値StapleUnitInstalledのANDをとり、BOOL値BookBindingInstalledに設定する(1904)。この値がクライアントに返される。図19のテンプレートを読んだデータ構成モジュールは以上に定義されたように動作する。
以上の処理を、プログラミング言語C++のように表現した場合、図20のようになる。処理の内容は図19と同様である。なお図20は、図19のXMLをデータ構成モジュールにより解釈実行した場合の動作を、C原語で記述した例として説明するための図であって、本実施形態の発明と直接的に関係するためのものではない。
本実施の形態により、ネットワークデバイス管理システムが所望する一つの情報を得るために、デバイスから複数の情報を取得しなければならない場合に対応できる。例えば、複数の装置がデバイスに設置されていなければ実現しない機能などがあり、この場合、該当する装置が全てデバイスに設定されているかどうかを問い合わせる必要がある場合に対応できる。
[テンプレートの例7]
次に、プリンタに紙の種別を識別する為のID(整数値)がMIBデータとして実装されている場合に、プリンタから紙を識別する為のIDを取得し、整数値であるIDを文字列である用紙名称に変換する場合のXMLの記述の例を図21に示す。なお図21の例は、プリンタのカセット1にセットされた用紙の種類を取得する例を示している。この場合プリンタのMIBには、オブジェクトID=1.3.6.1.4.1.1602.1.4.1として、用紙種類を示すコードが格納されている。プリンタ管理アプリケーション等のクライアントからのプリンタ情報取得リクエストにより、取得すべき情報として「用紙種類」を示す種類情報が指定されている場合に、図21のテンプレートが用いられる。
(1.プリンタ構成情報のデータ形式)
<Casset1PaperSizeName>タグ2100で囲まれた部分は、製本機能の有無を表す変数を定義している。その属性部分であるTYPEは、クライアントに返すべきデータの型(この例ではSTRING(文字型))を指定する。また、この<Casset1PaperSizeName>タグが、プリンタドライバ、プリンタ管理アプリケーションが必要とするプリンタ構成情報のデータ形式に相当する。
(2.SNMPプロトコル情報)
図21の<MIB>タグ2101は、SNMPのGetRequstで取得した値を変数PaperSizeとして保存することを示す。その他の属性は図6と同様である。MIBタグ2101をテンプレートから読み込んだデータ構成モジュールM409は、GetRequstパケットを生成して発行する。そして、それに対応するGetResponseパケットを受け取った後、レスポンスに含まれる値を読み取って変数PaperSizeとして保存する。
(3.変換方法)
<Substitution>タグ2102は、属性fromに指定された値を、type属性に指定したデータ形式に置換してname属性に指定した識別子に設定することを示す。図21の場合、MIBから取得した整数値PaperSizeを文字列PaperNameに置換する。<case>タグは、<Substitution>タグのfrom属性に指定した値がsrc属性に指定した値と一致する場合に、dst属性に指定した値に変換することを示す。すなわち、PaperSizeが1,2,3,4のいずれかであれば、変数PaperSizeNameにそれぞれ“B5”,“A4”,“B4”,“A3”と保存する。変数PaperSizeNameがクライアントに返される。図21のテンプレートを読んだデータ構成モジュールは以上に定義されたように動作する。
以上説明したように、本実施形態のプリンタ情報取得サービスによれば、クライアントが要求するデバイス情報の種類に応じて、デバイスが処理可能な形式で、要求されたデバイス情報を獲得するためのデータや命令を含むパケットを作成してデバイスに送信する。作成に際しては、XMLで記述されたテンプレートによる定義にしたがってパケットを作成する。また、デバイスからの要求に応じた応答についてもMIBから読み出された応答の内容を、テンプレートにしたがって、クライアントの要求に応じた形式や意味を持つ情報に変換する。これにより、デバイスの変更、たとえばMIBの構成の変更が生じても、テンプレートをMIBに対応させて変更することで、柔軟にデバイスの変更に対応できるデバイス管理システムが実現できる。すなわち、デバイス管理システムを、デバイスに依存しないシステムとして提供することが可能となった。
また、テンプレートはXMLというテキストベースの形式で記述されるので、パーソナルコンピュータなど普及した道具を用い手テンプレートを作成できる。
さらに、本実施形態のデバイス管理システムにより、デバイスから情報を取得する処理に必要な情報、取得したデータの変換処理に必要な情報をXMLファイルで扱うことにより、管理するデバイスの機種の増加や、扱う情報のデータ形式が変更される際にも、システム本体を変更することなく、XMLの記述を変更するだけで対応可能にすることができる。また管理するデバイスの仕様が分からない場合でも、デバイスのベンダにXMLファイルを提供してもらうだけで、デバイスを管理することができる。このためデバイス管理システムの柔軟性が高く、管理工数が少なく、かつ、安全性を高めることができる。
[その他の実施形態]
第1の実施形態では、デバイスとしてプリンタを想定しているが、他のデバイスとしてFAX、複写機、複合機などのほかに、ルータなどのネットワーク機器にも同様に本発明を適用できる。これはあらゆる機器において同様であり、これに限るものではない。
第1の実施形態のデバイス管理システムは、1つのサービス(常駐プロセス)と複数のクライアント(プリンタドライバ、プリンタ管理アプリケーション)を想定しているが、デバイス管理システムは、複数のプロセスで実現されていても、単一のプロセスで実現されていても良い。同様にデバイス管理システムは、複数の端末(PC)からなる構成であっても、単一の端末からなる構成であっても良い。第1の実施形態では、プリンタから情報を取得するためのプロトコルとしてSNMPを想定しているが、あらゆる接続形態、通信プロトコルにおいて同様であり、これに限るものではない。
また、クライアントが供給する意味を持つ情報を生成するために、データ変換モジュールは、第1実施形態で説明した以外の変換を行うことができる。たとえば、四則演算、値の置換、値の探索、値の抽出、文字列の置換、文字列の探索、部分文字列の抽出、ブール値の論理演算などがある。
また上記実施形態ではSNMPの要求パケットとそれに対する応答パケットについて、テンプレートを用いた変換の対象としているが、トラップパケットについても、トラップによりもたらされる情報を、テンプレートを用いて変換することもできる。
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
第1の実施形態におけるネットワーク構成の概略図である。 第1の実施形態におけるクライアントPCの構成を表すブロック図である。 第1の実施形態におけるプリンタドライバ、プリンタ管理アプリのプリンタの構成情報を表示するUIを示す図である。 第1の実施形態におけるプリンタ情報取得サービスのモジュール構成を表す図である。 第1の実施形態におけるプリンタ情報取得サービスの動作を表すフローチャートである。 RAM容量を取得する為のXMLファイルの記述例を示す図である。 図6のXMLファイルにおける変換処理をプログラミング言語で表現した例を示す図である。 プリンタから取得できるRAM容量テーブルを示す図である。 総RAM容量を取得する為のXMLファイルの記述例を示す図である。 図9のXMLファイルにおける変換処理をプログラミング言語で表現した例を示す図である。 プリンタから取得できるメモリ管理テーブルを示す図である。 総RAM容量を取得する為のXMLファイルの記述例を示す図である。 図12のXMLファイルにおける変換処理をプログラミング言語で表現した例を示す図である。 プリンタから取得できるオプションユニットテーブルを示す図である。 プリンタからフィニッシャ名称を取得する為のXMLファイルの記述例を示す図である。 図15のXMLファイルにおける変換処理をプログラミング言語で表現した例を示す図である。 プリンタからフィニッシャ名称を取得する為のXMLファイルの記述例を示す図である。 図17のXMLファイルにおける変換処理をプログラミング言語で表現した例を示す図である。 プリンタの製本機能の有り無しを調べる為のXMLファイルの記述例を示す図である。 図19のXMLファイルにおける変換処理をプログラミング言語で表現した例を示す図である。 プリンタから用紙サイズ名称を得る為のXMLファイルの記述例を示す図である。

Claims (12)

  1. 接続されたデバイスを管理するデバイス管理装置であって、
    前記デバイスに対してデバイス情報の要求および設定またはそのいずれかを行うデバイス管理手段と、
    前記デバイス管理手段が要求する情報と前記デバイスが処理可能な情報との間で変換を行うための変換情報を格納する格納手段と、
    前記格納手段に格納された変換情報を参照して、前記デバイス管理手段によるデバイス情報の要求および設定またはそのいずれかについて前記デバイスが要求する情報に変換し、前記デバイスから受信した情報について前記デバイス管理手段が処理可能な情報に変換する変換手段と
    を備えることを特徴とするデバイス管理装置。
  2. 前記変換情報は、前記デバイス管理手段によるデバイス情報の要求および設定またはそのいずれかを、前記デバイスの有する情報に応じて、該情報を取得するための命令およびパラメータに変換するための変換情報を含むことを特徴とする請求項1に記載のデバイス管理装置。
  3. 前記変換情報は、前記デバイスから受信した情報を、前記デバイスの有する情報に応じて、前記デバイス管理手段が処理可能な情報に変換するための変換情報を含むことを特徴とする請求項1または2に記載のデバイス管理装置。
  4. 前記前記デバイスから受信した情報を、前記デバイスの有する情報に応じて、前記デバイス管理手段が処理可能な情報に変換するための変換情報には、前記デバイスから受信した情報について、四則演算、値の置換、値の探索、値の抽出、文字列の置換、文字列の探索、部分文字列の抽出、ブール値の論理演算の少なくともいずれかを用いて変換することを表す変換情報を含むことを特徴とする請求項3に記載のデバイス管理装置。
  5. デバイスから情報を取得するデバイス管理装置であって、
    取得しようとする情報をデバイスから取得する為のプロトコル情報に変換し、また、デバイスから取得したデータを前記取得しようとする情報に変換するためのXMLで記述された変換情報を格納する格納手段と、
    前記デバイスから情報を取得する際に、前記変換情報を参照して前記デバイスへ送信する要求パケットを生成する手段と、
    前記要求パケットを前記デバイスへ送信し、前記デバイスからの応答パケットを受信する手段と、
    前記応答パケットから取得した情報を前記変換情報を参照して前記取得しようとする情報に変換する手段と
    を備えることを特徴とするデバイス管理装置。
  6. 接続されたデバイスを管理するデバイス管理方法であって、
    前記デバイスに対してデバイス情報の要求および設定またはそのいずれかを行うための第1形式の要求を発行する要求発行工程と、
    格納手段に格納された、前記第1形式と、前記デバイスが処理可能な情報の第2形式との間で変換を行うための変換情報を参照して、前記デバイス情報の要求および設定またはそのいずれかを行うための第1形式の要求を、前記第2形式の情報に変換し、前記デバイスから受信した情報について前記デバイス管理手段が処理可能な情報の形式に変換する変換工程と
    を備えることを特徴とするデバイス管理方法。
  7. デバイスから情報を取得するデバイス管理方法であって、
    前記デバイスから情報を取得する際に、取得しようとする情報をデバイスから取得する為のプロトコル情報に変換し、また、デバイスから取得したデータを前記取得しようとする情報に変換するためのXMLで記述された変換情報を参照して、前記デバイスへ送信する要求パケットを生成する工程と、
    前記要求パケットを前記デバイスへ送信し、前記デバイスからの応答パケットを受信する工程と、
    前記応答パケットから取得した情報を前記変換情報を参照して前記取得しようとする情報に変換する工程と
    を備えることを特徴とするデバイス管理方法。
  8. コンピュータにより、接続されたデバイスを管理するためのプログラムであって、
    前記デバイスに対してデバイス情報の要求および設定またはそのいずれかを行うための第1形式の要求を発行する要求発行工程と、
    格納手段に格納された、前記第1形式と、前記デバイスが処理可能な情報の第2形式との間で変換を行うための変換情報を参照して、前記デバイス情報の要求および設定またはそのいずれかを行うための第1形式の要求を、前記第2形式の情報に変換し、前記デバイスから受信した情報について前記デバイス管理手段が処理可能な情報の形式に変換する変換工程と
    をコンピュータにより実行させることを特徴とするプログラム。
  9. コンピュータにより、接続されたデバイスを管理するためのプログラムであって、
    前記デバイスから情報を取得する際に、取得しようとする情報をデバイスから取得する為のプロトコル情報に変換し、また、デバイスから取得したデータを前記取得しようとする情報に変換するためのXMLで記述された変換情報を参照して、前記デバイスへ送信する要求パケットを生成する工程と、
    前記要求パケットを前記デバイスへ送信し、前記デバイスからの応答パケットを受信する工程と、
    前記応答パケットから取得した情報を前記変換情報を参照して前記取得しようとする情報に変換する工程と
    をコンピュータにより実行させることを特徴とするプログラム。
  10. XMLで記述された情報取得リクエストをクライアントより受信する手段と、
    前記受信手段により受信されたXMLで記述された情報取得リクエストを解釈し、リクエストに対するSNMP用パケットを生成し、デバイスに送信する手段と、
    前記送信手段によりデバイスに送信されたSNMP用パケットに基づくMIBのデータを取得する取得手段と、
    前記取得手段により取得されたMIBのデータをXMLで記述されたデータに基づき変換する変換手段と、
    前記変換手段により変換されたデータをクライアントに送信する送信手段とを有することを特徴とするデバイス管理装置。
  11. XMLで記述された情報取得リクエストをクライアントより受信するステップと、
    前記受信ステップにより受信されたXMLで記述された情報取得リクエストを解釈し、リクエストに対するSNMP用パケットを生成し、デバイスに送信する送信ステップと、
    前記送信ステップによりデバイスに送信されたSNMP用パケットに基づくMIBのデータを取得する取得ステップと、
    前記取得ステップにより取得されたMIBのデータをXMLで記述されたデータに基づき変換する変換ステップと、
    前記変換ステップにより変換されたデータをクライアントに送信する送信ステップとを有することを特徴とするデバイス管理方法。
  12. XMLで記述された情報取得リクエストをクライアントより受信するステップと、
    前記受信ステップにより受信されたXMLで記述された情報取得リクエストを解釈し、リクエストに対するSNMP用パケットを生成し、デバイスに送信するステップと、
    前記送信ステップによりデバイスに送信されたSNMP用パケットに基づくMIBのデータを取得する取得ステップと、
    前記取得ステップにより取得されたMIBのデータをXMLで記述されたデータに基づき変換する変換ステップと、
    前記変換ステップにより変換されたデータをクライアントに送信する送信ステップとを有することを特徴とするコンピュータ読み取り可能なプログラム。
JP2004067776A 2004-03-10 2004-03-10 デバイス管理装置 Withdrawn JP2005258691A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004067776A JP2005258691A (ja) 2004-03-10 2004-03-10 デバイス管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004067776A JP2005258691A (ja) 2004-03-10 2004-03-10 デバイス管理装置

Publications (1)

Publication Number Publication Date
JP2005258691A true JP2005258691A (ja) 2005-09-22

Family

ID=35084358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004067776A Withdrawn JP2005258691A (ja) 2004-03-10 2004-03-10 デバイス管理装置

Country Status (1)

Country Link
JP (1) JP2005258691A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007140786A (ja) * 2005-11-16 2007-06-07 Canon Inc コントローラ装置及びその制御方法、並びに、印刷システム
JP2007233556A (ja) * 2006-02-28 2007-09-13 Hitachi Ltd トレーサビリティシステム構成管理装置およびトレーサビリティ構成管理方法
JP2007261255A (ja) * 2006-03-01 2007-10-11 Ricoh Co Ltd プリンタ装置
JP2007293758A (ja) * 2006-04-27 2007-11-08 Sharp Corp 印刷制御装置および印刷制御方法
JP2010224652A (ja) * 2009-03-19 2010-10-07 Hitachi Information Systems Ltd ネットワーク管理方法及びシステム、並びにネットワーク管理システム用プログラム
JP2012079326A (ja) * 2006-09-15 2012-04-19 Ricoh Co Ltd 情報処理装置、方法、システム、プログラム及びその記録媒体

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007140786A (ja) * 2005-11-16 2007-06-07 Canon Inc コントローラ装置及びその制御方法、並びに、印刷システム
JP4632442B2 (ja) * 2005-11-16 2011-02-16 キヤノン株式会社 コントローラ装置及びその制御方法、並びに、印刷システム
JP2007233556A (ja) * 2006-02-28 2007-09-13 Hitachi Ltd トレーサビリティシステム構成管理装置およびトレーサビリティ構成管理方法
JP2007261255A (ja) * 2006-03-01 2007-10-11 Ricoh Co Ltd プリンタ装置
JP2007293758A (ja) * 2006-04-27 2007-11-08 Sharp Corp 印刷制御装置および印刷制御方法
JP2012079326A (ja) * 2006-09-15 2012-04-19 Ricoh Co Ltd 情報処理装置、方法、システム、プログラム及びその記録媒体
JP2010224652A (ja) * 2009-03-19 2010-10-07 Hitachi Information Systems Ltd ネットワーク管理方法及びシステム、並びにネットワーク管理システム用プログラム

Similar Documents

Publication Publication Date Title
US9092232B2 (en) Information processing apparatus, information processing method, alternate response apparatus, response method, control program, and network system
US7809750B2 (en) Data management apparatus that controls a data storage apparatus by transmitting command of structured document format
JP4563161B2 (ja) バックプレーン
US7148987B2 (en) Information processing apparatus, information processing method, and program for controlling computer
US7522299B2 (en) System and method for automatic configuration
KR100446404B1 (ko) 네트워크 장치를 관리하기 위한 방법 및 장치
US8001270B2 (en) Method and apparatus for discovering a network address
US8325366B2 (en) Image forming system and image forming apparatus
KR101306430B1 (ko) 정보 처리 장치, 정보 처리 장치의 제어 방법 및 저장 매체
US7742183B2 (en) Method and apparatus for format conversion of printing data
US20110128572A1 (en) Printing apparatus, printing method and storage medium
US20050231759A1 (en) Print management apparatus and print management system incorporating the same
JP3854852B2 (ja) 管理情報送信装置、機器管理装置および機器管理システム
WO2006052274A2 (en) Open architecture and interfaces for workflow applications in office document systems
US7461069B2 (en) Log information management device, log information generation device, and computer-readable medium storing log information management program therein
US20090063612A1 (en) Image forming apparatus and image forming system
US20100220352A1 (en) Image forming apparatus, image forming system, and information processing method
JP4953753B2 (ja) 情報処理装置及びその制御方法、プログラム
JP2003323364A (ja) ネットワークデバイス管理装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20040199651A1 (en) Apparatus, method and system of providing information
JP2005258691A (ja) デバイス管理装置
US8688858B2 (en) Image processing device, device management system, and image processing method
JP2007323162A (ja) クライアント装置及びサーバ装置及びプログラム
US20040064812A1 (en) System and method for updating software versions
US20030133151A1 (en) Print system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605