(57)【特許請求の範囲】
【請求項１】
外部機器をローカル接続可能な電子機器であって、
前記電子機器の状態情報をオブジェクトＩＤ（以下「ＯＩＤ」と表記する）により識別可能に格納するマネージメントインフォメーションベース（以下「ＭＩＢ」と表記する）と、
ローカル接続された前記外部機器から、要求対象の前記状態情報のＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを受け取るローカル受信手段と、
前記第１のローカル通信用データに基づいて、前記ＯＩＤ特定情報により特定される前記ＯＩＤを含む第１のシンプルネットワークマネージメントプロトコル(以下「ＳＮＭＰ」と表記する)メッセージを生成するメッセージ生成手段と、
前記第１のＳＮＭＰメッセージの前記ＯＩＤに基づいて前記状態情報を前記ＭＩＢから取得し、前記取得した前記状態情報を含む第２のＳＮＭＰメッセージを生成するＭＩＢ管理手段と、
前記状態情報を含む前記第２のＳＮＭＰメッセージに基づいて、前記状態情報を含む第２のローカル通信用データを生成する応答データ生成手段と、
前記状態情報を含む前記第２のローカル通信用データをローカル接続された前記外部機器に送信するローカル送信手段と
を有する電子機器。
【請求項２】
前記電子機器は、ネットワークを介して外部機器と接続可能であり、
前記ネットワークを介して要求対象の前記状態情報のＯＩＤを含む第３のＳＮＭＰメッセージを受信するネットワーク受信手段を更に有し、
前記ＭＩＢ管理手段は、前記ネットワーク受信手段が受信した前記第３のＳＮＭＰメッセージの前記ＯＩＤに基づいて前記状態情報を前記ＭＩＢから取得し、前記取得した前記状態情報を含む第４のＳＮＭＰメッセージを生成し、
前記状態情報を含む前記第４のＳＮＭＰメッセージを前記外部機器に前記ネットワークを介して送信するネットワーク送信手段を更に備える
請求項１に記載の電子機器。
【請求項３】
前記第１及び第２のローカル通信用データは、アスキーコードのデータである
請求項１又は請求項２に記載の電子機器。
【請求項４】
前記ＯＩＤ特定情報は、前記ＯＩＤについて、前記ＯＩＤの一部分を、当該一部分をそのまま文字列で表すよりも短い変換文字列に置き換えた情報を含み、
前記メッセージ生成手段は、前記ＯＩＤ特定情報中の前記変換文字列に基づいて前記一部分を復元することにより前記ＯＩＤを生成し、生成した前記ＯＩＤを含めた前記第１のＳＮＭＰメッセージを生成する
請求項１乃至請求項３のいずれか一項に記載の電子機器。
【請求項５】
電子機器をローカル接続可能な外部機器であって、
前記電子機器は、前記電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢを有しており、
前記外部機器は、
要求する前記電子機器の前記状態情報に対応するＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを前記電子機器に送信する要求送信手段と、
前記電子機器から前記ＯＩＤに対応する前記状態情報を含む第２のローカル通信用データを受信する状態情報受信手段と
を有する外部機器。
【請求項６】
前記ＯＩＤ特定情報は、前記ＯＩＤについて、前記ＯＩＤの一部分を、当該一部分をそのまま文字列で表すよりも短い変換文字列に置き換えた情報を含む
請求項５に記載の外部機器。
【請求項７】
電子機器と、前記電子機器にローカル接続された外部機器とを有する機器システムであって、
前記外部機器は、
要求対象の前記電子機器の前記状態情報に対応するＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを前記電子機器に送信する要求送信手段と、
前記電子機器から前記ＯＩＤに対応する前記状態情報を含む第２のローカル通信用データを受信する状態情報受信手段と
を有し、
前記電子機器は、
前記電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢと、
ローカル接続された前記外部機器から、要求対象の前記状態情報のＯＩＤを特定するＯＩＤ特定情報を含む前記第１のローカル通信用データを受け取るローカル受信手段と、
前記第１のローカル通信用データに基づいて、前記ＯＩＤ特定情報により特定される前記ＯＩＤを含む第１のＳＮＭＰメッセージを生成するメッセージ生成手段と、
前記第１のＳＮＭＰメッセージの前記ＯＩＤに基づいて前記状態情報を前記ＭＩＢから取得し、前記取得した前記状態情報を含む第２のＳＮＭＰメッセージを生成するＭＩＢ管理手段と、
前記状態情報を含む前記第２のＳＮＭＰメッセージに基づいて、前記状態情報を含む前記第２のローカル通信用データを生成するデータ生成手段と、
前記状態情報を含む前記第２のローカル通信用データをローカル接続された前記外部機器に送信するローカル送信手段と
を有する
機器システム。
【請求項８】
外部機器をローカル接続可能な電子機器による前記電子機器の状態情報を送信する状態情報送信方法であって、
前記電子機器は、前記電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢを有しており、
前記電子機器のローカル受信手段が、ローカル接続された前記外部機器から要求対象の前記状態情報のＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを受け取るローカル受信ステップと、
前記電子機器のメッセージ生成手段が、前記第１のローカル通信用データに基づいて、前記ＯＩＤ特定情報により特定される前記ＯＩＤを含む第１のＳＮＭＰメッセージを生成するメッセージ生成ステップと、
前記電子機器のＭＩＢ管理手段が、前記第１のＳＮＭＰメッセージの前記ＯＩＤに基づいて前記状態情報を前記ＭＩＢから取得し、前記取得した前記状態情報を含む第２のＳＮＭＰメッセージを生成するＭＩＢ管理ステップと、
前記電子機器の応答データ生成手段が、前記状態情報を含む前記第２のＳＮＭＰメッセージに基づいて、前記状態情報を含む第２のローカル通信用データを生成する応答データ生成ステップと、
前記電子機器のローカル送信手段が、前記状態情報を含む前記第２のローカル通信用データをローカル接続された前記外部機器に送信するローカル送信ステップと
を有する状態情報送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己の状態情報を格納するＭＩＢ（Management Information Base）を有し、外部機器をローカル接続可能な電子機器等に関し、特に、ローカル接続された外部機器に状態情報を渡す技術に関する。
【背景技術】
【０００２】
従来、ネットワーク接続可能なプリンタ、スキャナー等の電子機器においては、ネットワーク接続されたＰＣ（Personal Computer）等の外部機器からの要求に対して、自己の状態情報を送信することが行われている。
【０００３】
状態情報を送受信するために用いられるネットワーク上のプロトコルとしては、例えば、ＳＮＭＰ（Simple Network Management Protocol）、ｈｔｔｐ（Hypertext Transfer Protocol）、ＳＯＡＰ（Simple Object Access Protocol）、ＳＬＰ（Service Location Protocol）、ＬＤＡＰ（Lightweight Directory Access Protocol）等がある。例えば、ＳＮＭＰを使用する場合であれば、外部機器がＳＮＭＰによって、電子機器内に用意された電子機器の状態情報を管理するＭＩＢから状態情報を容易に取得することができる。
【０００４】
しかしながら、電子機器によって状態情報を取得するためのプロトコルが異なっている場合があるので、外部機器が電子機器から状態情報を取得する場合には、対象とする電子機器に応じて使用するプロトコルを変えなければならなかった。
【０００５】
これに対して、ネットワーク上に存在する電子機器からそれぞれの電子機器に対応するプロトコルに従って状態情報を収集しておき、ＳＮＭＰによって、状態情報を取得することのできる技術が知られている（特許文献１参照）。
【０００６】
ところで、電子機器においては、例えば、ＵＳＢ（Universal serial bus）等によって、外部機器とローカル接続可能なものがある。このような電子機器においては、一般的には、電子機器特有な制御言語（Job Language）を用いて外部機器と状態情報のやりとりが行われている。
【０００７】
【特許文献１】特開２００６−１７９０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
電子機器とローカル接続される外部機器を利用して、電子機器のＭＩＢから状態情報を取得したいという要請がある。
【０００９】
ローカル通信においては、一般的にはパケット通信に対応していないので、ローカル通信においてＳＮＭＰをそのまま適用することができない。また、ＩＥＥＥ１２８４．４などのように、ローカル通信にパケット通信を適用する方策も考えられるが、適用しようとした場合には、多大な工数が必要となる問題がある。
【００１０】
本発明は、上記課題に鑑みなされたものであり、その目的は、ローカル接続された電子機器のＭＩＢから、簡易な構成によって容易に状態情報を取得することのできる技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的達成のため、本発明の第１の態様に係る電子機器は、外部機器をローカル接続可能な電子機器であって、電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢと、ローカル接続された外部機器から、要求対象の状態情報のＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを受け取るローカル受信手段と、第１のローカル通信用データに基づいて、ＯＩＤ特定情報により特定されるＯＩＤを含む第１のＳＮＭＰメッセージを生成するメッセージ生成手段と、第１のＳＮＭＰメッセージのＯＩＤに基づいて状態情報をＭＩＢから取得し、取得した状態情報を含む第２のＳＮＭＰメッセージを生成するＭＩＢ管理手段と、状態情報を含む第２のＳＮＭＰメッセージに基づいて、状態情報を含む第２のローカル通信用データを生成する応答データ生成手段と、状態情報を含む第２のローカル通信用データをローカル接続された外部機器に送信するローカル送信手段とを有する。
【００１２】
係る電子機器によると、ローカル接続されている外部機器からの状態情報の要求を含む第１のローカル通信用データを第１のＳＮＭＰメッセージに変換して状態情報を取得し、状態情報を含む第２のＳＮＭＰメッセージを第２のローカル通信用データに変換して外部機器に返信する。このため、ローカル接続における通信方法を変更することなく、状態情報をローカル接続した外部装置に適切に送信することができる。
【００１３】
上記電子機器において、電子機器は、ネットワークを介して外部機器と接続可能であり、ネットワークを介して要求対象の状態情報のＯＩＤを含む第３のＳＮＭＰメッセージを受信するネットワーク受信手段を更に有し、ＭＩＢ管理手段は、ネットワーク受信手段が受信した第３のＳＮＭＰメッセージのＯＩＤに基づいて状態情報をＭＩＢから取得し、取得した状態情報を含む第４のＳＮＭＰメッセージを生成し、状態情報を含む第４のＳＮＭＰメッセージを外部機器にネットワークを介して送信するネットワーク送信手段を更に備えるようにしてもよい。
【００１４】
係る電子機器によると、ローカル接続からの状態情報の要求と、ネットワークを介しての状態情報の要求とを、ＭＩＢ処理手段により同様に処理することができる。
【００１５】
また、上記電子機器において、第１及び第２のローカル通信用データは、ＡＳＣＩＩコードのデータであってもよい。係る電子機器によると、ＡＳＣＩＩコードのデータの通信を行うローカル接続によって、ＭＩＢから状態情報を取得することができる。
【００１６】
また、上記電子機器において、ＯＩＤ特定情報は、ＯＩＤについて、ＯＩＤの一部分を、当該一部分をそのまま文字列で表すよりも短い変換文字列に置き換えた情報を含み、メッセージ生成手段は、ＯＩＤ特定情報中の変換文字列に基づいて前記一部分を復元することによりＯＩＤを生成し、生成したＯＩＤを含めた第１のＳＮＭＰメッセージを生成するようにしてもよい。
【００１７】
係る電子機器によると、第１のローカル通信用データのデータ量を抑えることができ、通信時間を低減することができる。
【００１８】
また、上記目的達成のため、本発明の第２の態様に係る外部機器は、電子機器をローカル接続可能な外部機器であって、電子機器は、電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢを有しており、外部機器は、要求対象の電子機器の状態情報に対応するＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを電子機器に送信する要求送信手段と、電子機器から前記ＯＩＤに対応する前記状態情報を含む第２のローカル通信用データを受信する状態情報受信手段とを有する。
【００１９】
係る外部機器によると、電子機器の状態情報に対応するＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを電子機器に送信し、電子機器から第２のローカル通信用データにより状態情報を取得する。このため、ローカル接続における通信方法を変更することなく、状態情報を適切に取得することができる。
【００２０】
また、上記外部機器において、ＯＩＤ特定情報は、ＯＩＤについて、ＯＩＤの一部分を、当該一部分をそのまま文字列で表すよりも短い変換文字列に置き換えた情報を含んでもよい。係る外部機器によると、第１のローカル通信用データのデータ量を抑えることができ、通信時間を低減することができる。
【００２１】
また、上記目的達成のため、本発明の第３の態様に係る機器システムは、電子機器と、電子機器にローカル接続された外部機器とを有する機器システムであって、外部機器は、要求対象の電子機器の状態情報に対応するＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを電子機器に送信する要求送信手段と、電子機器からＯＩＤに対応する状態情報を含む第２のローカル通信用データを受信する状態情報受信手段とを有し、電子機器は、電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢと、ローカル接続された外部機器から要求対象の状態情報のＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを受け取るローカル受信手段と、第１のローカル通信用データに基づいて、ＯＩＤ特定情報により特定されるＯＩＤを含む第１のＳＮＭＰメッセージを生成するメッセージ生成手段と、第１のＳＮＭＰメッセージのＯＩＤに基づいて状態情報をＭＩＢから取得し、取得した状態情報を含む第２のＳＮＭＰメッセージを生成するＭＩＢ管理手段と、状態情報を含む第２のＳＮＭＰメッセージに基づいて、状態情報を含む第２のローカル通信用データを生成するデータ生成手段と、状態情報を含む第２のローカル通信用データをローカル接続された外部機器に送信するローカル送信手段とを有する。
【００２２】
係る機器システムによると、ローカル接続されている外部機器からの状態情報の要求を含む第１のローカル通信用データを第１のＳＮＭＰメッセージに変換して状態情報を取得し、状態情報を含む第２のＳＮＭＰメッセージを第２のローカル通信用データに変換して外部機器に返信する。このため、ローカル接続における通信方法を変更することなく、状態情報をローカル接続した外部装置に適切に送信することができる。
【００２３】
また、上記目的達成のため、本発明の第４の態様に係る機器情報送信方法は、外部機器をローカル接続可能な電子機器による電子機器の状態情報を送信する状態情報送信方法であって、電子機器は、電子機器の状態情報をＯＩＤにより識別可能に格納するＭＩＢを有しており、電子機器のローカル受信手段が、ローカル接続された外部機器から要求対象の状態情報のＯＩＤを特定するＯＩＤ特定情報を含む第１のローカル通信用データを受け取るローカル受信ステップと、電子機器のメッセージ生成手段が、第１のローカル通信用データに基づいて、ＯＩＤ特定情報により特定されるＯＩＤを含む第１のＳＮＭＰメッセージを生成するメッセージ生成ステップと、電子機器のＭＩＢ管理手段が、第１のＳＮＭＰメッセージのＯＩＤに基づいて状態情報をＭＩＢから取得し、取得した状態情報を含む第２のＳＮＭＰメッセージを生成するＭＩＢ管理ステップと、電子機器の応答データ生成手段が、状態情報を含む第２のＳＮＭＰメッセージに基づいて、状態情報を含む第２のローカル通信用データを生成する応答データ生成ステップと、電子機器のローカル送信手段が、状態情報を含む第２のローカル通信用データをローカル接続された外部機器に送信するローカル送信ステップとを有する。
【００２４】
係る状態情報送信方法によると、ローカル接続されている外部機器からの状態情報の要求を含む第１のローカル通信用データを第１のＳＮＭＰメッセージに変換して状態情報を取得し、状態情報を含む第２のＳＮＭＰメッセージを第２のローカル通信用データに変換して外部機器に返信する。このため、ローカル接続における通信方法を変更することなく、状態情報をローカル接続した外部装置に適切に送信することができる。
【発明を実施するための最良の形態】
【００２５】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２６】
まず、本発明の一実施形態に係る機器システムについて説明する。
【００２７】
図１は、本発明の一実施形態に係る機器システムの機能構成図である。
【００２８】
機器システム１は、外部機器の一例としての複数の端末２（２Ａ、２Ｂ）と、電子機器の一例としてのプリンタ３とを有する。端末２Ａとプリンタ３とは、例えば、ＵＳＢ（Universal serial bus）ケーブル等のローカルケーブル４を介して接続（ローカル接続）されている。また、端末２Ｂとプリンタ３とは、例えば、イーサネット（登録商標）等のネットワーク５を介して接続（ネットワーク接続）されている。また、プリンタ３は、外部機器の他の例としてのＵＳＢメモリ６（外部記憶媒体）が直接接続（ローカル接続）可能となっている。
【００２９】
端末２は、状態情報取得処理部２１と、要求送信手段及び状態情報受信手段の一例としてのＪＬ（Job Language）処理部２２及びローカルＩ／Ｆ（インターフェース）２３と、ＳＮＭＰ（Simple Network Management Protocol）処理部２４と、ソケット処理部２５と、ネットワークＩ／Ｆ（インターフェース）２６とを有する。端末２は、例えば、図示しないＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）等のハードウエアを有するＰＣ（Personal Computer）によって構成されている。状態情報取得処理部２１、ＪＬ処理部２２、ＳＮＭＰ処理部２４、ソケット処理部２５は、主に、ＣＰＵがプログラムを実行することによって実現される。
【００３０】
プリンタ３は、ローカル受信手段及びローカル送信手段の一例としてのローカルＩ／Ｆ部３１、ローカルＩ／Ｆ３２、及びＪＬ処理部３３と、ＪＬデータ記憶部３５と、ＪＬデータ記憶部３５に対するアクセス処理を実行・管理するＪＬデータ管理部３４と、メッセージ生成手段及び応答データ生成手段の一例としてのプロトコルコンバータ３６と、ネットワーク受信手段及びネットワーク送信手段の一例としてのネットワークＩ／Ｆ３７、ソケット処理部３８及びＳＮＭＰ処理部３９と、ＭＩＢ管理手段の一例としてのＭＩＢ（Management Information Base）エージェント４０と、ＭＩＢ４１とを有する。プリンタ３は、図示しないＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、プリンタエンジン等のハードウエアによって構成されている。ＪＬ処理部３３、ＪＬデータ管理部３４、プロトコルコンバータ３６、ソケット処理部３８、ＳＮＭＰ処理部３９、ＭＩＢエージェント４０は、主に、ＣＰＵが所定のプログラムを実行することによって実現される。ＪＬ記憶部３５及びＭＩＢ４１は、ＨＤＤによって実現される。
【００３１】
ここで、端末２及びプリンタ３の各部を説明する前に、ＭＩＢ４１について説明する。
【００３２】
図２は、本発明の一実施形態に係るＭＩＢの構成の一例を示す図である。
【００３３】
ＭＩＢ４１おいては、プリンタ３の複数の状態情報のそれぞれは、オブジェクトという単位によって管理されている。具体的には、ＭＩＢ４１では、状態情報を管理するオブジェクトに割り当てられている識別情報（ＯＩＤ：Object Identification）４１１と、当該オブジェクトの名称（オブジェクト名）４１２と、当該オブジェクトにより管理されている値（状態情報）４１３とが対応付けられて管理されている。
【００３４】
オブジェクトは、ツリー構造によって管理されており、当該オブジェクトのＯＩＤ４１１は、例えば、“1.3.6.1.2.1.43.12.1.1.4.1.1”のように、ツリー構造の最上位階層から該当するオブジェクトに至るまでの各階層の枝の番号（枝番）をピリオドで区切って繋げた形式によって表される。
【００３５】
このＭＩＢ４１によると、所望する状態情報のオブジェクトのＯＩＤによって、対応する状態情報（値）を把握することができる。
【００３６】
図１の説明に戻り、端末２の各部を詳細に説明する。
【００３７】
状態情報取得処理部２１は、所定のタイミングで、状態情報を取得（要求）する対象がネットワーク５を介して接続されたプリンタ３であれば、プリンタ３のＭＩＢ３５から取得すべき状態情報に対応するＯＩＤを含めたＳＮＭＰメッセージ（図５参照：第３のＳＮＭＰメッセージ）をＨＤＤから取得してＳＮＭＰ処理部２４に渡す一方、対象がローカルケーブル４によって接続されたプリンタ３であれば、プリンタ３のＭＩＢ４１から取得すべき状態情報に対応するＯＩＤを示すＯＩＤ特定情報を含むＪＬコマンド列（第１のローカル通信用データ）をＨＤＤから取得してＪＬ処理部２２に渡す。
【００３８】
ＪＬ処理部２２は、状態情報取得処理部２１から取得したＪＬコマンド列をローカルＩ／Ｆ２３及びローカルケーブル４を介して送信させるとともに、ローカルケーブル４及びローカルＩ／Ｆ２３を介してＪＬコマンド列（第２のローカル通信用データ）を受信し、受信したＪＬコマンド列を状態情報取得処理部２１に渡す。
【００３９】
ここで、ローカルＩ／Ｆ２３によるローカルケーブル４を介してのローカル通信では、ＡＳＣＩＩ（アスキー：American Standard Code for Information Interchange）コードのデータを通信可能となっているので、ＪＬコマンド列は、ＡＳＣＩＩコードのデータに限られ、コマンドの変数としては、ＡＳＣＩＩコード中のプリント可能コード（数字、アルファベット等）しか指定できないという制約がある。
【００４０】
端末２からプリンタ３のＭＩＢ４１を使用した処理を要求する場合に使用するＪＬコマンド列（第１のローカル通信用データ）は、例えば、“＠ＪＬ  ＭＤＲ  （短縮文字列）＝“（ＭＩＢＲｅｑｕｅｓｔデータ）””となっている。ここで、ＪＬコマンド列の（）は、記述そのものを示しておらず、記述内容を示している。なお、ＪＬコマンド列は、各文字に対応するＡＳＣＩＩコードによって構成されている。
【００４１】
“＠ＪＬ”は、ＪＬコマンド列であることを示す。ＭＤＲは、当該ＪＬコマンド列がＭＩＢを利用した処理を行うコマンド列であることを示すコマンドである。このＭＤＲは、既存のＪＬコマンドにはない新たなコマンドである。
【００４２】
短縮文字列は、対象とするＯＩＤに含まれている短縮対象値を示している。
【００４３】
図３は、本発明の一実施形態に係るＯＩＤの短縮対象値と短縮文字列との対応の一例を示す図である。
【００４４】
図３に示すように、短縮文字列としては、“ＰＭ”、“ＣＭ”とがあり、“ＰＭ”は、ＭＩＢ４１におけるプリンタＭＩＢのＯＩＤを示す短縮対象値“1.3.6.1.2.1.43”に対応し、“ＣＭ”は、短縮対応値“1.3.6.1”に対応する。
【００４５】
例えば、対象のＯＩＤが“1.3.6.1.1.515.4”であれば、短縮対象値である“1.3.6.1”を含んでいるので、短縮文字列“ＣＭ”がＪＬコマンド列の短縮文字列として設定される。
【００４６】
次に、ＭＩＢＲｅｑｕｅｓｔデータについて説明する。
【００４７】
図４は、本発明の一実施形態に係るＪＬコマンド列の一部のデータ構成を示す図である。図４（Ａ）は、ＭＩＢＲｅｑｕｅｓｔデータの構成を示している。
【００４８】
ＭＩＢＲｅｑｕｅｓｔデータは、コマンドフィールド５０と、ＯＩＤタイプフィールド５１、ＯＩＤサイズフィールド５２と、ＯＩＤフィールド５３とを有する。なお、ＭＩＢＲｅｑｕｅｓｔデータは、コマンドがSetRequestコマンドの場合には、値タイプフィールド５４と、値サイズフィールド５５と、値フィールド５６とを有する。また、ＭＩＢＲｅｑｕｅｓｔデータは、ＯＩＤタイプフィールド５１からＯＩＤフィールド５３までの組（コマンドがSetRequestコマンドの場合には、ＯＩＤタイプフィールド５１から値フィールド５６までの組）を１以上有することができる。
【００４９】
コマンドフィールド５０には、ＭＩＢエージェント４０に実行させるコマンド（ＳＮＭＰコマンド）を示す識別情報が格納される。コマンドを示す識別情報としては、ＳＮＭＰコマンドが、ＯＩＤが示すオブジェクトの値（状態情報）の取得を要求するためのGetRequestコマンドであれば、“００”であり、ＯＩＤの階層に従った次のオブジェクトの値の取得を要求するためのGetNextRequestコマンドであれば、“０１”であり、指定したＯＩＤのオブジェクトの値の変更を要求するためのSetRequestコマンドであれば、“０４”である。
【００５０】
ＯＩＤタイプフィールド５１には、後続するＯＩＤフィールド５３に格納するデータのタイプが格納される。本実施形態では、ＯＩＤフィールド５３に格納するデータがＯＩＤであることを示す“００”が格納される。
【００５１】
ＯＩＤサイズフィールド５２には、後続するＯＩＤフィールド５３に格納されるデータサイズ（データをバイナリ形式で格納した場合のバイト数）が格納される。
【００５２】
ＯＩＤフィールド５３には、ＯＩＤの短縮対象値以外の部分を特定可能な情報（ＯＩＤ部分特定情報）が格納される。本実施形態では、当該ＯＩＤ部分特定情報と、短縮文字列とによって、対象のＯＩＤの全体を特定することができる。ここで、本実施形態では、ＯＩＤ部分特定情報及び短縮文字列が、ＯＩＤ特定情報に相当する。
【００５３】
ここで、ＯＩＤ部分特定情報は、ＯＩＤの短縮対象値以外の部分をローカル通信で通信可能な形式に変換した情報である。具体的には、ＯＩＤ部分特定情報は、対象とするＯＩＤの短縮対象値以外の部分の各枝番の値（ピリオドで区切られる各値）が対応する文字列として記述され、それら文字列が前から順に並べられたものとなっている。
【００５４】
図５は、本発明の一実施形態に係るＯＩＤの変換を説明する図である。
【００５５】
ＯＩＤの枝の値からＯＩＤ部分特定情報への変換においては、図５に示すように、対象のＯＩＤの枝の値が００HEX〜７ＦHEXであれば、その値に対応する文字列“００”〜“７Ｆ”とされ、対象のＯＩＤの枝の値が８０HEX〜ＦＦHEXであれば、文字列“８１”のあとに、値に対応する文字列“８０”〜“ＦＦ”を追加した文字列“８１８０”〜“８１ＦＦ”とされ、対象のＯＩＤの枝の値が０１００HEX〜であれば、文字列“８２”のあとに、値に対応する文字列を追加した文字列“８２０１００”〜とされる。ここで、文字列“８”は、文字列が数値そのものではないことを示し、次に続く文字は、数値をバイナリコードで表した場合のバイト数を示している。例えば、“１”であれば、バイナリコードの１バイト（文字列では２文字）で数値を表していることを示し、“２”であれば、バイナリコードの２バイト（文字列では４文字）で数値を表していることを示している。
【００５６】
例えば、変換対象のＯＩＤが“1.3.6.1.1.515.4”であれば、短縮対象値である“1.3.6.1”の後に続く“1.515.4”について、“１”を文字列“０１”とし、“５１５”は、０２０３ＨＥＸであるので、文字列“８２０２０３”とし、“４”は文字列“０４”とし、それらを繋げた“０１８２０２０３０４”がＯＩＤ部分特定情報となる。
【００５７】
図４の説明に戻り、値タイプフィールド５４には、後続する値フィールド５６に格納するデータのタイプが格納される。本実施形態では、値フィールド５６に格納するデータが８バイト文字であることを示す“１４”が格納される。値サイズフィールド５５には、後続する値フィールド５６に格納されるデータサイズ（バイト数）が格納される。値フィールド５６には、ＯＩＤが示すオブジェクトに設定させる値が格納される。
【００５８】
例えば、ＯＩＤ“1.3.6.1.2.1.43.6.1.1.2.1.1”に対するGetRequestコマンドを行う場合においては、ＯＩＤは、短縮対象値であってプリンタＭＩＢを示す“1.3.6.1.2.1.43”を含んでいるので短縮文字列は、“ＰＭ”となる。また、ＭＩＢＲｅｑｕｅｓｔデータのコマンドフィールド５０には、GetRequestコマンドに対応する“００”が格納され、ＯＩＤタイプフィールド５１には、ＯＩＤフィールド５３に格納するデータがＯＩＤであることを示す“００”が格納され、ＯＩＤサイズフィールド５２には、ＯＩＤフィールドの長さが、６バイトであることを示す“０６”が格納され、ＯＩＤフィールド５３には、ＯＩＤのＯＩＤ部分特定情報である“6.1.1.2.1.1”に対応する“０６０１０１０２０１０１”が格納される。
【００５９】
したがって、この場合のＪＬコマンド列は、“＠ＪＬ  ＭＤＲ  ＰＭ＝“０００００６０６０１０１０２０１０１””となる。
【００６０】
次に、プリンタ３から端末２へ送信される、ＭＩＢ４１を使用した処理の要求に対する応答のＪＬコマンド列（第２のローカル通信用データ）について説明する。
【００６１】
プリンタ２から送信される応答ＪＬコマンド列は、例えば、“＠ＪＬ  ＭＤＲ  （短縮文字列）＝“（ＭＩＢＲｅｓｐｏｎｓｅデータ）””となっている。ここで、ＪＬコマンド列の（）は、記述そのものを示しておらず、記述内容を示している。
【００６２】
“＠ＪＬ”は、ＪＬコマンド列であることを示す。ＭＤＲ（MIB Direct Request）は、当該ＪＬコマンド列がＭＩＢを利用した処理に関わるコマンド列であることを示すコマンドである。このＭＤＲは、既存のＪＬコマンドにはない新たなコマンドである。
【００６３】
短縮文字列は、対象とするＯＩＤに含まれている短縮対象値を示している。なお、短縮文字列と短縮対象値との対応関係は、要求のＪＬコマンド列と同様である。
【００６４】
次に、ＭＩＢＲｅｓｐｏｎｓｅデータについて説明する。
【００６５】
図４（Ｂ）は、ＭＩＢＲｅｓｐｏｎｓｅデータの構成を示している。
【００６６】
ＭＩＢＲｅｓｐｏｎｓｅデータは、レスポンスフィールド６０と、リザルトフィールド６１と、ＯＩＤタイプフィールド６２、ＯＩＤサイズフィールド６３と、ＯＩＤフィールド６４とを有する。なお、ＭＩＢＲｅｓｐｏｎｓｅデータは、コマンドがGetRequestコマンド、GetNextRequestコマンド等の場合には、値タイプフィールド６５と、値サイズフィールド６６と、値フィールド６７とを有する。また、ＭＩＢＲｅｓｐｏｎｓｅデータは、ＯＩＤタイプフィールド６２からＯＩＤフィールド６４の組（コマンドがGetRequestコマンド、GetNextRequestコマンド等の場合には、ＯＩＤタイプフィールド６２から値フィールド６７までの組）を１以上有することができる。
【００６７】
レスポンスフィールド６０には、ＭＩＢエージェント４０による応答のコマンド（ＳＮＭＰコマンド）を示す識別情報が格納される。コマンドを示す識別情報としては、ＳＮＭＰコマンドが、GetRequestコマンドに対する応答であるGetResponseコマンドであれば、“８０”であり、GetNextRequestコマンドに対する応答であるGetNextResponseコマンドであれば、“８１”であり、SetRequestコマンドに対する応答であるSetResponseコマンドであれば、“８４”である。
【００６８】
リザルトフィールド６１には、要求の結果を示す情報が格納される。要求の結果を示す情報としては、例えば、正常である場合には、“００”が格納され、バッファオーバフローが発生した場合には、“８１”が格納され、コマンド実行エラーが発生した場合には、“８２”が格納される。
【００６９】
ＯＩＤタイプフィールド６２には、後続するＯＩＤフィールド６４に格納するデータのタイプが格納される。本実施形態では、ＯＩＤフィールド６４に格納するデータがＯＩＤであることを示す“００”が格納される。
【００７０】
ＯＩＤサイズフィールド６３には、後続するＯＩＤフィールド６４に格納されるデータのサイズ（バイト数）が格納される。
【００７１】
ＯＩＤフィールド６４には、ＯＩＤの一部、すなわち、短縮対象値以外の部分を特定可能な情報（ＯＩＤ部分特定情報）が格納される。本実施形態では、当該ＯＩＤ部分特定情報と、短縮文字列とによって、対象のＯＩＤの全体を特定することができる。このＯＩＤ部分特定情報は、前述の要求時のＪＬコマンド列と同様な規則に従って設定されている。
【００７２】
値タイプフィールド６５には、後続する値フィールド６７に格納するデータのタイプが格納される。本実施形態では、値フィールド６７に格納するデータが８バイト文字であることを示す“１４”が格納される。値サイズフィールド６６には、後続する値フィールド６７に格納されるデータサイズ（バイト数）が格納される。値フィールド６７には、要求時に指定したＯＩＤのオブジェクトの値（状態情報）を示す文字列がＡＳＣＩＩコードで格納される。
【００７３】
ＯＩＤ“1.3.6.1.2.1.43.6.1.1.2.1.1”に対するGetRequestコマンドに対応するＪＬコマンド列“＠ＪＬ  ＭＤＲ  ＰＭ＝“０００００６０６０１０１０２０１０１””を送信した場合には、例えば、応答のＪＬコマンド列“＠ＪＬ  ＭＤＲ  ＰＭ＝“８００００００６０６０１０１０２０１０１１４０７４３６Ｆ７６６５７２２０４１””が返信される。この応答のＪＬコマンド列においては、値タイプフィールド６５には、“１４”が格納され、値サイズフィールド６６には、“０７”が格納され、値フィールド６７には、“４３６Ｆ７６６５７２２０４１“が格納されている。値フィールド６７に格納されている文字列は、ＡＳＣＩＩコードで表現されているので、“ＣｏｖｅｒＡ”を示していることがわかる。したがって、この応答のＪＬコマンド列によると、ＯＩＤ“1.3.6.1.2.1.43.6.1.1.2.1.1”に対応する値は“ＣｏｖｅｒＡ”であることが把握できる。
【００７４】
図１の説明に戻り、状態情報取得処理部２１は、ＳＮＭＰ処理部２４から応答のＳＮＭＰメッセージを受け取り、当該ＳＮＭＰメッセージに含まれているプリンタ３の状態情報を取得し、当該状態情報を用いて所定の処理、例えば、状態情報の表示処理等を実行する。
【００７５】
また、状態情報取得処理部２１は、ＪＬ処理部２２から応答のＪＬコマンド列を受け取り、当該ＪＬコマンド列に含まれているプリンタ３の状態情報を取得し、当該状態情報を用いて所定の処理、例えば、状態情報の表示処理等を実行する。
【００７６】
ＳＮＭＰ処理部２４は、ネットワーク５を介して接続された機器（例えば、プリンタ３）との間でＳＮＭＰに従った通信処理を行う。具体的には、ＳＮＭＰ処理部２４は、下位プロトコルであるＵＤＰ（User Datagram Protocol）、ＩＰ（Internet Protocol）等に従った通信を行うソケット処理部２５及びネットワークＩ／Ｆ２６を使用して、ＳＮＭＰメッセージの送受信を行う。本実施形態では、ＳＮＭＰ処理部２４は、状態情報取得処理部２１から取得したＳＮＭＰメッセージ（第３のＳＮＭＰメッセージ）をソケット処理部２５に渡し、また、ソケット処理部２５からプリンタ３により送信されたＳＮＭＰメッセージ（第４のＳＮＭＰメッセージ）を受け取り、状態情報取得処理部２１に渡す。
【００７７】
ソケット処理部２５は、ＳＮＭＰ処理部２４から受け取った第３のＳＮＭＰメッセージをＳＮＭＰプロトコルパケットとして、ネットワークＩ／Ｆ２６を介して、プリンタ３の所定のポート宛に送信し、また、所定のポート宛のＳＮＭＰプロトコルパケットをネットワークＩ／Ｆ２６を介して受信して、当該ＳＮＭＰプロトコルパケットから第４のＳＮＭＰメッセージを取り出して、ＳＮＭＰ処理部２４に渡す。
【００７８】
図６は、本発明の一実施形態に係るＳＮＭＰプロトコルパケット及びＳＮＭＰメッセージの構成を示す図である。
【００７９】
ＳＮＭＰプロトコルパケット１００は、ＩＰヘッダフィールド１０１と、ＵＤＰヘッダフィールド１０２と、ＳＮＭＰメッセージフィールド１０３とを有する。
【００８０】
ＩＰヘッダフィールド１０１には、ＩＰに必要な各種情報、例えば、送信元ＩＰアドレス、送信先ＩＰアドレス等が格納される。ＵＤＰヘッダフィールド１０２には、ＵＤＰに必要な各種情報、例えば、送信元ポート、送信先ポート等が格納される。ＳＮＭＰメッセージフィールド１０３には、ＳＮＭＰメッセージが格納される。
【００８１】
ＳＮＭＰメッセージフィールド１０３は、ＳＮＭＰバージョンフィールド１０４と、コミュニティフィールド１０５と、ＰＤＵ（Protocol Data Unit）フィールド１０６とを有する。ＳＮＭＰバージョンフィールド１０４には、ＳＮＭＰのバージョン情報が格納される。コミュニティフィールド１０５には、コミュニティ名が格納される。ＰＤＵフィールド１０６には、ＰＤＵが格納される。ＰＤＵは、ASN.1（Abstract Syntax Notation One）形式に従って記述される。
【００８２】
ＰＤＵフィールド１０６は、ＰＤＵタイプフィールド１０７と、リクエスト識別子フィールド１０８と、エラーステータスフィールド１０９と、エラー位置番号フィールド１１０と、ＭＩＢ情報フィールド１１１とを有する。
【００８３】
ＰＤＵタイプフィールド１０７には、ＰＤＵのタイプが格納される。ＰＤＵには、指定したＯＩＤのオブジェクトの値（状態情報）の取得を要求するためのGetRequestコマンドと、指定したＯＩＤの階層に従った次のオブジェクトの値の取得を要求するためのGetNextRequestコマンドと、指定したＯＩＤのオブジェクトの値の変更を要求するためのSetRequestコマンドと、GetRequestコマンドに対する返答のためのGetResponseコマンドと、GetNextRequestコマンドに対する返答のためのGetNextResponseコマンドと、SetRequestコマンドに対する返答のためのSetResponseコマンドと、管理される機器が自発的に状態変更を通知するためのTrapコマンドとがある。リクエスト識別子フィールド１０８には、要求と応答とを関連付けるための値（リクエスト識別子）が格納される。エラーステータスフィールド１０９には、正常であるか、エラーが発生しているかを示すステータスコードが格納される。エラー位置番号フィールド１１０には、エラーが発生した場合におけるエラーが発生したデータを示す値が格納される。ＭＩＢ情報フィールド１１１には、ＰＤＵの対象となるＯＩＤや、ＯＩＤに対応するオブジェクトの値（状態情報）が格納される。
【００８４】
図１の説明に戻り、プリンタ３の各部について説明する。
【００８５】
ＪＬデータ記憶部３５は、ＪＬの通常コマンドによって利用される各種情報を記憶する。ＪＬデータ管理部３４は、ＪＬデータ記憶部３５に記憶されている各種情報に対するアクセス処理を実行管理する。
【００８６】
ＪＬ処理部３３は、ローカルＩ／Ｆ３２を介してＵＳＢメモリ６の所定のディレクトリにアクセスし、当該ディレクトリにＪＬコマンド列を含む所定の名称のファイルが格納されているか否かを判定し、存在する場合には、ファイルを取得する。本実施形態では、所定のディレクトリとしては、例えば、“￥プリンタ製造会社名￥機種名￥ｓｔａｔｕｓ”とし、所定の名称としては、“Ａｕｔｏｅｘｅｃ．ｊｌ”としている。
【００８７】
また、ＪＬ処理部３３は、ローカルケーブル４から受信したＪＬコマンド列、又はＵＳＢメモリ６から取得したＪＬコマンド列に、通常コマンド（本実施形態では、“ＭＤＲ”以外のコマンド）が含まれている場合には、通常コマンドに対応する処理を実行する。例えば、ＪＬ処理部３３は、通常コマンドに対応する情報をＪＬデータ管理部３４によりＪＬデータ記憶部３５から取得し、ＪＬコマンド列を生成してローカルＩ／Ｆ３１を介してローカルケーブル４に送信し、又はローカルＩ／Ｆ３２を介してＵＳＢメモリ６に格納する。この構成により、“ＭＤＲ”コマンドに対応していない端末からの要求や、通常コマンドによる端末２から要求に対して、従来通りの処理を支障なく実行できる。
【００８８】
また、ＪＬ処理部３３は、ローカルケーブル４からローカルＩ／Ｆ３１を介して受信したＪＬコマンド列に、ＭＩＢを利用した処理を示す拡張コマンド（例えば、“ＭＤＲ”）が含まれている場合には、当該ＪＬコマンド列（第１のローカル通信用データ）をプロトコルコンバータ３６に渡す。また、ＪＬ処理部３３は、プロトコルコンバータ３６から渡された応答のＪＬコマンド列（第２のローカル通信用データ）をローカルＩ／Ｆ３１を介してローカルケーブル４に送信する。
【００８９】
また、ＪＬ処理部３３は、ＵＳＢメモリ６から取得したファイル中のＪＬコマンド列にＭＩＢを利用した処理を示す拡張コマンド（例えば、“ＭＤＲ”）が含まれている場合には、当該ＪＬコマンド列（第１のローカル通信用データ）をプロトコルコンバータ３６に渡す。また、ＪＬ処理部３３は、プロトコルコンバータ３６から渡された応答のＪＬコマンド列（第２のローカル通信用データ）をローカルＩ／Ｆ３２を介してＵＳＢメモリ６に所定のファイルとして格納する。ＪＬ処理部３３は、例えば、ファイルを“￥プリンタ製造会社名￥機種名￥ｓｔａｔｕｓ”のディレクトリに、“機種名＋シリアル番号＋日時（年月日時）”の名称（例えば、機種Ａ＿１２３４＿０７０７１８１８００．ｓｔｓ）で格納する。
【００９０】
プロトコルコンバータ３６は、ＭＩＢを利用した処理を示す拡張コマンドに対応する処理を実行するために、追加された機能部である。
【００９１】
プロトコルコンバータ３６は、ＪＬ処理部３３から渡されたＪＬコマンド列（第１のローカル通信用データ）に基づいてＳＮＭＰメッセージ（第１のＳＮＭＰメッセージ）を生成する処理を実行し、ＳＮＭＰメッセージをＭＩＢエージェント４０に渡す。
【００９２】
具体的には、プロトコルコンバータ３６は、ＳＮＭＰメッセージのＳＮＭＰバージョンフィールド１０４に所定のＳＮＭＰのバージョンを格納し、コミュニティフィールド１０５に“Public”を格納し、ＰＤＵタイプフィールド１０７に、ＪＬコマンド列のコマンドフィールド５０に格納された識別情報に対応するＳＮＭＰコマンド（ＰＤＵタイプ）を格納し、ＭＩＢ情報フィールド１１１に、ＪＬコマンド列の短縮文字列及びＯＩＤ部分特定情報に基づいて復元（生成）したＯＩＤを格納することにより、ＳＮＭＰメッセージを生成する。
【００９３】
ＯＩＤを復元する場合には、短縮文字列を、短縮文字列に対応する短縮対象値を示すASN.1形式のデータ（バイナリデータ）に変換し、さらに、ＯＩＤ部分特定情報のそれぞれの文字列を、その文字列に対応するASN.1形式のデータに変換する。文字列が“００”〜“７Ｆ”であれば、その文字列が示す値のASN.1形式のデータに変換し、“８１”であれば、“８１”以降の２文字に対応する値を示すASN.1形式のデータに変換し、“８２”であれば、“８２”以降の４文字に対応する値を示すASN.1形式のデータに変換する。このようにして、ＳＮＭＰメッセージに設定するためのASN.1形式のデータからなるＯＩＤを得ることができる。
【００９４】
また、プロトコルコンバータ３６は、ＭＩＢエージェント４０から取得した応答のＳＮＭＰメッセージ(第２のＳＮＭＰメッセージ)に基づいて応答のＪＬコマンド列（第２のローカル通信用データ）を生成する処理を実行し、ＪＬ処理部３３に渡す。
【００９５】
応答のＪＬコマンド列は、前述したように、“＠ＪＬ  ＭＤＲ  （短縮文字列）＝“（ＭＩＢＲｅｓｐｏｎｓｅデータ）””となっている。
【００９６】
ここで、プロトコルコンバータ３６は、ＭＩＢＲｅｓｐｏｎｓｅデータのレスポンスフィールド６０に、取得したＳＮＭＰメッセージのＰＤＵタイプフィールド１０７に格納されているＳＮＭＰコマンドに対応する識別情報を格納する。例えば、ＰＤＵタイプフィールド１０７にGetResponseコマンドを示す識別情報が含まれていれば、GetResponseコマンドに対応する“８０”が格納される。
【００９７】
また、プロトコルコンバータ３６は、リザルトフィールド６１には、ＳＮＭＰメッセージのエラーステータスフィールド１０９に格納されているステータスに対応する情報を格納する。また、プロトコルコンバータ３６は、短縮文字列としては、要求時のＪＬコマンド列に含まれていた短縮文字列を格納する。また、プロトコルコンバータ３６は、ＯＩＤタイプフィールド６２、ＯＩＤサイズフィールド６３、及びＯＩＤフィールド６４には、要求時のＪＬコマンド列のＯＩＤタイプフィールド５１、ＯＩＤサイズフィールド５２、及びＯＩＤフィールド５３に含まれていた情報を格納する。なお、ＳＮＭＰメッセージのＭＩＢ情報フィールド１１１に格納されているＯＩＤからＯＩＤタイプフィールド６２、ＯＩＤサイズフィールド６３、及びＯＩＤフィールド６４に格納する情報を生成するようにしてもよい。
【００９８】
また、プロトコルコンバータ３６は、ＭＩＢ情報フィールド１１１にＯＩＤに対応する値（状態情報）が含まれている場合には、当該状態情報を対応する文字列のＡＳＣＩＩコードに変換して値フィールド６７に格納する。また、プロトコルコンバータ３６は、値タイプフィールド６５には、値フィールド６７に格納するデータが８バイト文字であることを示す“１４”を格納する。また、プロトコルコンバータ３６は、値サイズフィールド６６に、値フィールド６７に格納した文字列のサイズを格納する。
【００９９】
ＳＮＭＰ処理部３９は、ネットワーク５を介して接続された外部機器（例えば、端末２）との間でＳＮＭＰに従った通信処理を行う。具体的には、ＳＮＭＰ処理部３９は、下位プロトコルであるＵＤＰ（User Datagram Protocol）、ＩＰ（Internet Protocol）等に従った通信を行うソケット処理部３８及びネットワークＩ／Ｆ３７を使用して、ＳＮＭＰメッセージの送受信を行う。本実施形態では、ＳＮＭＰ処理部３９は、ＭＩＢエージェント４０から取得したＳＮＭＰメッセージ（第４のＳＮＭＰメッセージ）をソケット処理部３８に渡し、また、ソケット処理部３８からＳＮＭＰメッセージ（第３のＳＮＭＰメッセージ）を受け取り、ＭＩＢエージェント４０に渡す。
【０１００】
ソケット処理部３８は、ＳＮＭＰ処理部３９から受け取ったＳＮＭＰメッセージ（第４のＳＮＭＰメッセージ）をＳＮＭＰプロトコルパケットとして、ネットワークＩ／Ｆ３７を介して、端末２の所定のポート宛に送信し、また、所定のポート宛のＳＮＭＰプロトコルパケットをネットワークＩ／Ｆ３７を介して受信して、当該ＳＮＭＰプロトコルパケットからＳＮＭＰメッセージ（第３のＳＮＭＰメッセージ）を取り出して、ＳＮＭＰ処理部３９に渡す。
【０１０１】
ＭＩＢエージェント４０は、プロトコルコンバータ３６又はＳＮＭＰ処理部３９からＳＮＭＰメッセージ（第１、又は第３のＳＮＭＰメッセージ）を受け取り、当該ＳＮＭＰメッセージのＰＤＵタイプに応じた処理を実行する。例えば、ＭＩＢエージェント４０は、受け取ったＳＮＭＰメッセージのＰＤＵタイプがGetRequestコマンドを示していれば、ＳＮＭＰメッセージのＯＩＤに対応するオブジェクトの値をＭＩＢ４１から取得し、当該取得した値を返送するためのＰＤＵタイプがGetResponseコマンドのＳＮＭＰメッセージ（第２、又は第４のＳＮＭＰメッセージ）を生成して、要求元(プロトコルコンバータ３６又はＳＮＭＰ処理部３９)に対して渡す。ＭＩＢエージェント４０は、ＳＮＭＰメッセージを利用したＡＰＩ（Application Programming Interface）となっているので、プロトコルコンバータ３６に対しても、ＳＮＭＰ処理部３９と同様に対応することができる。すなわち、ＳＮＭＰ処理部３９に対して提供していた既存のＳＮＭＰにおける機能を、プロトコルコンバータ３６に対しても同様に提供することができる。
【０１０２】
次に、上記した各機能部により、端末２及びプリンタ３に構成されるプロトコルスタックについて説明する。
【０１０３】
図７は、本発明の一実施形態に係るプロトコルスタックを説明する図である。図７（Ａ）は、ネットワーク５を介して実行される通信におけるプロトコルスタックを説明する図であり、図７（Ｂ）は、ローカル接続による通信におけるプロトコルスタックを説明する図である。
【０１０４】
ネットワーク５を利用した通信におけるプロトコルスタックは、図７（Ａ）に示すように、ネットワーク５側の下位層から、端末２には、イーサネット（Ethernet）層２０６、Ｐｏｒｔ層２０５、ＵＤＰ層２０４、ソケット（socket）層２０３、ＳＮＭＰマネージャ層２０２、ＯＩＤアプリケーション層２０１が構成される。本実施形態では、イーサネット層２０６は、主に、ネットワークＩ／Ｆ２６によって実現され、Ｐｏｒｔ層２０５、ＵＤＰ層２０４、及びソケット（socket）層２０３は、ソケット処理部２５によって実現され、ＳＮＭＰマネージャ層２０２は、ＳＮＭＰ処理部２４によって実現され、ＯＩＤアプリケーション層２０１は、状態情報取得処理部２１によって実現されている。
【０１０５】
また、プリンタ３には、イーサネット（Ethernet）層３０６、Ｐｏｒｔ層３０５、ＵＤＰ層３０４、ソケット（socket）層３０３、ＳＮＭＰエージェント層３０２、ＭＩＢアプリケーション層３０１が構成される。本実施形態では、イーサネット層３０６は、ネットワークＩ／Ｆ３７によって実現され、Ｐｏｒｔ層３０５、ＵＤＰ層３０４、及びソケット層３０３は、ソケット処理部３８によって実現され、ＳＮＭＰエージェント層３０２は、ＳＮＭＰ処理部３９によって実現され、ＭＩＢアプリケーション層３０１は、ＭＩＢエージェント４０によって実現されている。
【０１０６】
また、ローカルケーブル４を利用した通信におけるプロトコルスタックは、図７（Ｂ）に示すように、ローカルケーブル４側の下位層から、端末２には、ＵＳＢ層２０９、要求側ＪＬ処理層２０８、コマンド準備層２０７、ＯＩＤアプリケーション層２０１が構成される。本実施形態では、ＵＳＢ層２０９は、ローカルＩ／Ｆ２３によって実現され、要求側ＪＬ処理層２０８は、ＪＬ処理部２２によって実現され、コマンド準備層２０７及びＯＩＤアプリケーション層２０１は、状態情報取得処理部２１によって実現されている。
【０１０７】
また、プリンタ３には、ＵＳＢ層３０９、ＪＬ処理層３０８、プロトコルコンバータ層３０７、ＭＩＢアプリケーション層３０１が構成される。本実施形態では、ＵＳＢ層３０９は、ローカルＩ／Ｆ３１によって実現され、ＪＬ処理層３０８は、ＪＬ処理部３３によって実現され、プロトコルコンバータ層３０７は、プロトコルコンバータ３６によって実現され、ＭＩＢアプリケーション層３０１がＭＩＢエージェント４０によって実現されている。
【０１０８】
本実施形態によると、ローカル通信において、プロトコルコンバータ３６によって提供されるプロトコルコンバータ層３０７によって、ＪＬ処理層３０８とＭＩＢアプリケーション層３０１との間を容易且つ適切につなげることができる。
【０１０９】
なお、プリンタ３は、ＵＳＢメモリ６からデータを受信する機能を有しているので、ＵＳＢメモリ６を接続する場合におけるプロトコルスタックは、図７（Ｂ）において、端末２をＵＳＢメモリ６に置き換え、端末２側における要求側ＪＬ処理層２０８、コマンド準備層２０７、及びＯＩＤアプリケーション層２０１が存在しないものに相当する。
【０１１０】
次に、本発明の一実施形態に係る機器システムの処理動作を説明する。
【０１１１】
図８は、本発明の一実施形態に係る端末による状態情報取得処理のフローチャートである。
【０１１２】
端末２の状態情報取得処理部２１が、電子機器（例えば、プリンタ３）から状態情報を取得する必要があるか否かを判定する（ステップＳ１）。例えば、状態情報を取得した時点から所定時間経過しているか否かによって、状態情報の取得する必要があるか否かを判定する。この結果、状態情報を取得する必要がないと判定した場合には、ステップＳ１を繰り返し実行する。
【０１１３】
一方、状態情報を取得する必要があると判定した場合（ステップＳ１のＹＥＳ）には、状態情報取得処理部２１は、状態情報を取得する電子機器がネットワーク接続されている電子機器であるか否かを判定する（ステップＳ２）。
【０１１４】
ネットワーク接続されている電子機器であると判定した場合（ステップＳ２のＹＥＳ）には、状態情報取得処理部２１は、必要とする状態情報のＯＩＤを含むＳＮＭＰメッセージ（第３のＳＮＭＰメッセージ）を図示しないＨＤＤから取得し（ステップＳ３）、ＳＮＭＰ処理部２４に渡す。ＳＮＭＰ処理部２４は、ＳＮＭＰメッセージを、ソケット処理部２５及びネットワークＩ／Ｆ２６によりネットワーク５を介して電子機器に送信する（ステップＳ４）。
【０１１５】
次いで、ＳＮＭＰ処理部２４は、ＳＮＭＰメッセージの送信先の電子機器から、ソケット処理部２５及びネットワークＩ／Ｆ２６を介して、応答のＳＮＭＰメッセージ（第４のＳＮＭＰメッセージ）を受信したか否かを判定し（ステップＳ５）、受信していない場合には、ステップＳ５を繰り返し実行する。一方、ＳＮＭＰメッセージを受信した場合には、ＳＮＭＰ処理部２４は、当該ＳＮＭＰメッセージを状態情報取得処理部２１に渡し、状態情報取得処理部２１は、ＳＮＭＰメッセージから状態情報を取得し（ステップＳ６）、当該状態情報を利用した処理を実行する。
【０１１６】
一方、ネットワーク接続されていない電子機器、すなわちローカル接続されている電子機器であると判定した場合（ステップＳ２のＮＯ）には、状態情報取得処理部２１は、必要とする状態情報のＯＩＤを特定するＯＩＤ特定情報を含むＪＬコマンド列（第１のローカル通信用データ）をＨＤＤから取得し（ステップＳ７）、ＪＬ処理部２２に渡す。ＪＬ処理部２２は、渡されたＪＬコマンド列をローカルＩ／Ｆ２３によりローカルケーブル４を介して電子機器に送信する（ステップＳ８）。
【０１１７】
次いで、ＪＬ処理部２２は、ローカル接続された電子機器から応答のＪＬコマンド列（第２のローカル通信用データ）をローカルＩ／Ｆ２３を介して受信したか否かを判定し（ステップＳ９）、受信していない場合には、ステップＳ９を繰り返し実行する。一方、受信した場合には、ＪＬ処理部２２は、当該ＪＬコマンド列を状態情報取得処理部２１に渡す。状態情報取得処理部２１は、ＪＬコマンド列から状態情報を取得し（ステップＳ６）、当該状態情報を利用した処理を実行する。
【０１１８】
この処理によって、ローカル接続されている電子機器に対して、ＭＩＢ４１から状態情報を取得させるコマンドを含むＪＬコマンド列を送信し、電子機器から受信した応答のＪＬコマンド列から状態情報を取得することができる。
【０１１９】
図９は、本発明の一実施形態に係るプリンタによる状態情報送信処理のフローチャートである。この処理は、例えば、所定時間毎に実行される。
【０１２０】
プリンタ３のＪＬ処理部３３は、ローカルケーブル４からローカルＩ／Ｆ３１を介してＪＬコマンド列を受信したか否かを判定する（ステップＳ２１）。この結果、ＪＬコマンド列を受信していないと判定した場合には、処理を終了する。
【０１２１】
一方、ＪＬコマンド列を受信したと判定した場合には、ＪＬ処理部３３は、ＪＬコマンド列に、“ＭＤＲ”（ＭＩＢ利用処理コマンド）が含まれているか否かを判定する（ステップＳ２２）。
【０１２２】
この結果、ＭＤＲが含まれていると判定した場合（ステップＳ２２のＹＥＳ）には、ＪＬ処理部３３は、ＪＬコマンド列（第１のローカル通信用データ）をプロトコルコンバータ３６に渡し、プロトコルコンバータ３６は、ＪＬコマンド列に基づいて、ＳＮＭＰメッセージ用のＯＩＤを生成し（ステップＳ２３）、当該ＯＩＤを含むＳＮＭＰメッセージ（第１のＳＮＭＰメッセージ）を生成し（ステップＳ２４）、ＳＮＭＰメッセージをＭＩＢエージェント４０に引き渡す（ステップＳ２５）。
【０１２３】
ＭＩＢエージェント４０は、引き渡されたＳＮＭＰメッセージからＯＩＤを取得し、当該ＯＩＤに対応する値（状態情報）をＭＩＢ４１から取得し（ステップＳ２６）、状態情報を含む応答用のＳＮＭＰメッセージ（第２のＳＮＭＰメッセージ）を生成し、プロトコルコンバータ３６に渡す。
【０１２４】
プロトコルコンバータ３６は、ＭＩＢエージェント４０から応答のＳＮＭＰメッセージを受け取って（ステップＳ２７）、当該ＳＮＭＰメッセージから含まれている状態情報を抽出し（ステップＳ２８）、当該状態情報を文字列のＡＳＣＩＩコードに変換して、ＭＩＢ４１を使用した処理要求に対する応答のＪＬコマンド列（第２のローカル通信用データ）を構築する（ステップＳ２９）。本実施形態では、プロトコルコンバータ３６は、応答用のＪＬコマンド列のデータ領域を確保し、その領域における値タイプフィールド６５、値サイズフィールド６６、及び値フィールド６７に当該状態情報に対応する情報を格納して応答のＪＬコマンド列を構築する。次いで、プロトコルコンバータ３６は、要求のＪＬコマンド列に次対象のＯＩＤ特定情報が含まれているか否かを判定し（ステップＳ３０）、次対象のＯＩＤ特定情報が含まれている場合（ステップＳ３０のＹＥＳ）には、当該ＯＩＤ特定情報に基づいて、上記ステップＳ２３からの処理を実行する。
【０１２５】
一方、次対象のＯＩＤ特定情報が含まれていない場合（ステップＳ３０のＮＯ）には、プロトコルコンバータ３６は、ステップＳ２９で構築した応答用のＪＬコマンド列に必要な他の情報を格納して完成させ（ステップＳ３１）、ＪＬ処理部３３に渡す。ＪＬ処理部３３は、受け取ったＪＬコマンド列を外部装置にローカルＩ／Ｆ３１及びローカルケーブル４を介して送信する（ステップＳ３２）。この処理によって、ＭＩＢ４１から取得した状態情報をローカル接続された外部機器に対して送信することができる。
【０１２６】
一方、ＪＬコマンド列に“ＭＤＲ”が含まれていないと判定した場合（ステップＳ２２のＮＯ）には、既存のＪＬコマンドの処理であることを意味するので、ＪＬ処理部３３は、ＪＬコマンド列に含まれているコマンドに対応する処理を、ＪＬデータ管理部３４を使用して実行し（ステップＳ３３）、既存のＪＬコマンドの処理に対応する応答のＪＬコマンド列を生成し（ステップＳ３４）、当該ＪＬコマンド列を外部装置にローカルケーブル４を介して送信する（ステップＳ３５）。
【０１２７】
この処理によって、ＭＤＲではない、既存のＪＬコマンドによる処理を実行して外部機器に応答を返すことができる。
【０１２８】
次に、プリンタ３に接続されるＵＳＢメモリ６への状態情報の格納に関する格納制御処理を説明する。
【０１２９】
図１０は、本発明の一実施形態に係るプリンタによる格納制御処理のフローチャートである。なお、図９に示すステップと同様なステップには、同一符号を付している。
【０１３０】
プリンタ３のＪＬ処理部３３は、ローカルＩ／Ｆ３２に対して、ＵＳＢメモリ６が接続されたか否かを判定し（ステップＳ４１）、この結果、ＵＳＢメモリ６が接続されていない場合には処理を終了する。
【０１３１】
一方、ＵＳＢメモリ６が接続されたと判定した場合（ステップＳ４１のＹＥＳ）には、ＪＬ処理部３３は、ローカルＩ／Ｆ３２を介してＵＳＢメモリ６の所定のディレクトリにアクセスし、当該ディレクトリにＪＬコマンド列を含む状態取得ファイルが格納されているか否かを判定する（ステップＳ４２）。その結果、状態取得ファイルが格納されていない場合には、処理を終了する。
【０１３２】
一方、状態取得ファイルが格納されている場合（ステップＳ４２のＹＥＳ）には、ＪＬ処理部３３は、ＵＳＢメモリ６から状態取得ファイルを取得（受信）し、そのファイルからＪＬコマンド列を取得する（ステップＳ４３）。
【０１３３】
次いで、ＪＬ処理部３３は、ＪＬコマンド列に、“ＭＤＲ”（ＭＩＢ利用処理コマンド）が含まれているか否かを判定する（ステップＳ４４）。
【０１３４】
この結果、“ＭＤＲ”が含まれていると判定した場合（ステップＳ４４のＹＥＳ）には、応答ＪＬコマンド列生成処理（ステップＳ４５：ステップＳ２３〜ステップＳ３１に相当）を実行する一方、ＪＬコマンド列に“ＭＤＲ”が含まれていないと判定した場合（ステップＳ４４のＮＯ）には、既存のＪＬコマンドの処理であることを意味するので、ＪＬ処理部３３は、ＪＬコマンド列に含まれているコマンドに対応する処理を、ＪＬデータ管理部３４を使用して実行し（ステップＳ３３）、処理に対応する応答のＪＬコマンド列を生成する（ステップＳ３４）。
【０１３５】
ステップＳ４５又はステップＳ３４において、ＪＬコマンド列が生成されると、ＪＬ処理部３３は、ローカルＩ／Ｆ３２を介してＵＳＢメモリ６の所定のディレクトリにアクセスし、生成されたＪＬコマンド列を所定の名称のファイルとして書き込む（送信する）（ステップＳ４６）。
【０１３６】
この処理によって、ＵＳＢメモリ６を使用して、ＭＩＢ４１に管理されている機器情報をＵＳＢメモリ６内に容易に格納させることができる。
【０１３７】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【０１３８】
例えば、上記実施形態では、電子機器の一例としてプリンタを用いて説明していたが、本発明はこれに限られず、イメージスキャナ、ＦＡＸ等の他の電子機器にも適用することができ、要は、ＭＩＢを有し、ローカル接続可能な電子機器であれば本発明を適用することができる。
【０１３９】
また、上記実施形態では、外部機器として、ＵＳＢメモリを例に示していたが、本発明はこれに限られず、外部機器はローカル接続可能な他の記憶媒体であってもよい。
【０１４０】
また、上記実施形態では、ＯＩＤ特定情報として、ＯＩＤ部分特定情報及び短縮文字列を用いていたが、本発明はこれに限られず、ＯＩＤ特定情報としては、短縮文字列を用いずに、ＯＩＤのそれぞれの数値を文字列に変換した情報であってもよく、要はＯＩＤを特定することができる情報であればよい。
【０１４１】
また、上記実施形態では、ローカル接続としてＵＳＢ規格による接続を例に示していたが、本発明はこれに限られず、例えば、ＲＳ−２３２Ｃ、ＩｒＤＡ（Infrared Data Association）、ＩＥＥＥ１３９４等の他の規格による接続に対しても適用することができる。
【０１４２】
また、上記実施形態では、ＪＬコマンド列においては、ＳＮＭＰメッセージにおけるコミュニティ名称を指定しないようにしていたが、本発明はこれに限られず、ＪＬコマンド列において、ＳＮＭＰメッセージにおけるコミュニティ名称を設定できるようにし、生成するＳＮＭＰメッセージのコミュニティフィールド１０５に当該コミュニティ名称を格納するようにしてもよい。このようにすると、所定の権限が必要なＭＩＢ４１に対する処理を、ＪＬコマンド列を送信することにより実行させることができるようになる。
【図面の簡単な説明】
【０１４３】
【図１】本発明の一実施形態に係る機器システムの機能構成図である。
【図２】本発明の一実施形態に係るＭＩＢの構成の一例を示す図である。
【図３】本発明の一実施形態に係るＯＩＤの短縮対象値と短縮文字列との対応を示す図である。
【図４】本発明の一実施形態に係るＪＬコマンド列の一部のデータ構成を示す図である。
【図５】本発明の一実施形態に係るＯＩＤの変換を説明する図である。
【図６】本発明の一実施形態に係るプロトコルパケット及びＳＮＭＰメッセージの構成を示す図である。
【図７】本発明の一実施形態に係るプロトコルスタックを説明する図である。
【図８】本発明の一実施形態に係る端末による状態情報取得処理のフローチャートである。
【図９】本発明の一実施形態に係るプリンタによる状態情報送信処理のフローチャートである。
【図１０】本発明の一実施形態に係るプリンタによる格納制御処理のフローチャートである。
【符号の説明】
【０１４４】
１  機器システム、２、２Ａ、２Ｂ  端末、３  プリンタ、４  ローカルケーブル、５  ネットワーク、６  ＵＳＢメモリ、２１  状態情報取得処理部、２２  ＪＬ処理部、２３  ローカルＩ／Ｆ、２４  ＳＮＭＰ処理部、２５  ソケット処理部、２６  ネットワークＩ／Ｆ、３１、３２  ローカルＩ／Ｆ、３３  ＪＬ処理部、３４  ＪＬデータ管理部、３５  ＪＬデータ記憶部、３６  プロトコルコンバータ、３７  ネットワークＩ／Ｆ、３８  ソケット処理部、３９  ＳＮＭＰ処理部、４０  ＭＩＢエージェント、４１  ＭＩＢ。
【図１】
0004894680.tif 000002
【図２】
0004894680.tif 000003
【図３】
0004894680.tif 000004
【図４】
0004894680.tif 000005
【図５】
0004894680.tif 000006
【図６】
0004894680.tif 000007
【図７】
0004894680.tif 000008
【図８】
0004894680.tif 000009
【図９】
0004894680.tif 000010
【図１０】
0004894680.tif 000011